MySQLデータベースの基礎知識

MySQLデータベースの基礎知識

1. データベースを理解する

1.1 データベースとデータ構造の関係

データ構造:

これは、互いに 1 つ以上の特定の関係を持つデータ要素のコレクションを指します。これは抽象的な分野です。

私たちがよく知っているデータ構造は次のとおりです。

シーケンシャルリスト、リンクリスト、スタック、キュー、バイナリツリー、ハッシュテーブル...

データベース:

データ構造とは異なり、データを管理できるより特殊なタイプのソフトウェアです。ただし、このデータベース ソフトウェアを実装するには、多くのデータ構造が必要になります。

データベースを使用してデータを管理する具体的な機能は次のとおりです。

  • 説明:データがどのように表現されるかを説明します
  • 組織:大量のデータを集約する方法

管理の目的は次のとおりです。

追加、削除、変更、確認するには

1.2 なぜデータベースが必要なのか?

データベースがデータを管理するための前提条件は、データを保存することです。しかし、ファイルを使用してデータを保存できる場合、なぜデータベースが必要なのでしょうか?

ファイルを使用してデータを保存すると、次のような欠点があります。

  • ファイルのセキュリティ問題
  • ファイルはデータのクエリや管理に役立ちません
  • ファイルは大量のデータを保存するのに適していない
  • プログラム内でファイルを制御するのは不便です

1.3 データベースストレージ

今日のほとんどのコンピューターはフォン・ノイマン・アーキテクチャに従っています。

データは一般的に内部メモリと外部メモリに保存されます(外部メモリにはハードディスク、CD、USBフラッシュドライブ、フロッピーディスクなどが含まれますが、ここではハードディスクを指します)

データベースには多くの種類があり、すべてのデータベースがどこに保存されるかについて統一された規定はありませんが、主なデータベースのデータ保存場所は次のとおりです。

  • ほとんどのデータベースは、 MySQLOracleSQL Serverなどの外部ストレージにデータを整理します。
  • いくつかのデータベースは、 Redisのようにデータをメモリ内に整理します。

補足: MySQL がデータを外部ストレージ (ハードディスク) に保存するのはなぜですか?ここではまずメモリとハードディスクの違いを理解する必要があります

違いメモリ外部ストレージ(ハードディスク)
1高速メモリアクセス速度ハードディスクのアクセス速度が遅い
2メモリ容量が小さい大容量のハードディスク
3メモリは高価ですハードドライブは安い
4電源を切るとメモリ内のデータは失われます。電源が切れてもハードディスクのデータは失われません

上記の 2、3、4 の違いから、MySQL ではハードディスクを使用してデータを保存する方がよいと考えられます。

2.SQL文

2.1 はじめに

Structured Query Language (SQL) は、特殊な目的のプログラミング言語です。これは、データにアクセスし、リレーショナル データベース システムをクエリ、更新、管理するために使用されるデータベース クエリおよびプログラミング言語です。

注: SQL と MySQL の違い

  • SQLはプログラミング言語です
  • MySQL は、リレーショナル データベースの一種に属するソフトウェアです。すべてのリレーショナル データベースは SQL をサポートしていますが、一部の非リレーショナル データベースは SQL をサポートしていません。

2.2 分類

SQL は 6 つの部分に分けられます。

  • データ クエリ言語 ( DQL ): そのステートメントは「データ取得ステートメント」とも呼ばれ、テーブルからデータを取得し、アプリケーションでデータをどのように表示するかを決定するために使用されます。
  • データ操作言語 ( DML ): そのステートメントには、動詞INSERTUPDATE 、およびDELETEが含まれます。それぞれ追加、変更、削除に使用されます。
  • トランザクション制御言語 ( TCL ): このステートメントにより、DML ステートメントの影響を受けるテーブルのすべての行が適切なタイミングで更新されることが保証されます。 COMMIT(コミット)コマンド、 SAVEPOINT (セーブポイント)コマンド、ROLLBACK(ロールバック)コマンドを含みます。
  • データ制御言語 ( DCL ): そのステートメントは、GRANT または REVOKE を通じて権限制御を実装し、個々のユーザーおよびユーザー グループのデータベース オブジェクトへのアクセスを決定します。一部のRDBMSでは、GRANT または REVOKE を使用して、テーブルの個々の列へのアクセスを制御できます。
  • データ定義言語 ( DDL ): そのステートメントには、CREATE、ALTER、および DROP の動詞が含まれます。データベースに新しいテーブルを作成したり、テーブルを変更または削除したり (CREATE TABLE または DROP TABLE)、テーブルにインデックスを追加したりします。
  • カーソル制御言語 (CCL): DECLARE CURSORFETCH INTOUPDATE WHERE CURRENTなどのステートメントは、1 つ以上のテーブルの個々の行を操作するために使用されます。

3. データベースの種類

データベースは大まかに次のように分けられます。

  • リレーショナルデータベース
  • 非リレーショナルデータベース

3.1 リレーショナルデータベース

導入:

  • リレーショナル モデルを使用してデータを整理するデータベースを指します。簡単に言えば、リレーショナル モデルとは 2 次元テーブル モデルを指し、リレーショナル データベースとは 2 次元テーブルとそれらの間の接続で構成されるデータ構成です。
  • リレーショナル データベースはすべて標準 SQL に基づいていますが、内部実装の一部は異なります。

一般的なリレーショナル データベース:

Oracle : Oracle 製品はデータベースの王様です。料金と、データ量の増加に伴うマシンの需要の増加により、使用コストは非常に高くなります。データセキュリティやサービスに対する要求が高く、資金力のある銀行などの企業に適用可能
MySQL : Oracle が買収したオープンソースで無料。現在多くの企業が広く利用している
SQL Server : Microsoft 製品。このデータベースはかつてwindows serverシステムにバンドルされており、ほとんどのサーバー システムは Linux 上にあるため、徐々に市場シェアを失っています。 Linuxをサポートしました

3.2 非リレーショナルデータベース

導入:

非リレーショナル データベースは、一般的にNoSQLを指します。リレーショナル データベースとは異なり、リレーショナル データの ACID プロパティは保証されません。リレーショナル データベースのリレーショナル プロパティが削除され、SQL ベースの実装は必要ありません。

一般的な非リレーショナル データベース:

  • redis : キーと値のペアに基づく
  • mongodb : 列ファミリーに基づく
  • hbase : ドキュメントベース

3.3 相違点

違いリレーショナルデータベース非リレーショナルデータベース
SQLの使用はい必須ではないが、通常はSQLに基づいて実装されない
取引サポートサポートサポートされていません
複雑な操作サポートサポートされていません
大量の読み取りおよび書き込み操作効率が低い高効率
基本構造テーブルと列に基づく固定構造高い柔軟性
使用シナリオビジネス OLTP システムデータキャッシュまたは統計分析用のOLAPシステム

補充:

  • OLTP(On-Line Transaction Processing):
  • OLAP(On-Line Analytical Processing):

4. MySQL プログラム構造

MySQLは実際には「クライアントサーバー」構造のプログラムです

では、クライアントとサーバーとは何でしょうか?以下では簡単に紹介します

4.1 クライアントとサーバー

導入:

  • クライアント: リクエストを開始する側
  • サーバー: 受動的にリクエストを受け入れる側
  • クライアントからサーバーに送信されるデータはRequestと呼ばれます。
  • サーバーからクライアントに返されるデータは、 Responseと呼ばれます。
  • サーバーは複数のクライアントに同時にサービスを提供する場合がある
  • ほとんどのクライアント サーバーは、この「1 つの要求、1 つの応答」対話モデルを使用します。
  • クライアントとサーバーはネットワークを介して通信する

例:

レストランに食事に行くと、店主に農家飯か香菜飯を頼み、店主が注文した料理を持って来てくれます。

この時点で、あなたは「クライアント」であり、レストランのオーナーは「サーバー」です。オーナーに食べ物を注文することがあなたの「リクエスト」であり、オーナーがあなたに食べ物を提供することが「レスポンス」です。そして、実際には 1 人のボスが複数の顧客にサービスを提供できます。

4.2 MySQLクライアントサーバーアーキテクチャ

MySQL を使用すると、実際に次のような状況に遭遇します。

  • MySQLクライアントと MySQL サーバーを同じホストにインストールします (これは、自分の PC にインストールする場合です)

  • MySQLクライアントとMySQLサーバーは2つの異なるホスト上にあります

  • 実際の業務では、複数のホストのクライアントが 1 つのホストのサーバーに接続するという状況がよく発生します。

知らせ:

  • MySQL は、データベース エンティティであり、データの管理を担当するサーバー上にデータを保存します。
  • MySQL クライアントは、実際にはユーザーとの対話にのみ使用される非常にシンプルなプログラムです。このプログラムは、コマンドラインプログラム、ビジュアルインターフェースを備えたプログラム、または独自のコードで実装されたプログラムのいずれかです。

4.3 MySQLサーバー

導入:

  • MySQLサーバーには実際には複数のデータベースが含まれています(各データベースは論理的なコレクションとして扱われます)
  • データベースには複数の関連テーブルが含まれています
  • テーブルには複数の行が含まれます(各行には複数のレコードが含まれます)
  • 行には複数の列が含まれます (各列には特定の型要件があります)

例:

CSDN データを保存する MySQL サーバーがある場合、データベースが 3 つある可能性があります。データベース1には、ユーザー情報、ユーザーランキング、記事数などのデータが格納されます。データベース2には、活動内容、投稿記事、賞品情報などのデータが保存されます。データベース 2 には、ビデオやリソースなどのデータが保存されます。データベース 1 内のユーザー情報などのデータは、実際には Excel テーブルに似たテーブルであり、関連する複数のテーブルがデータベースを構成します。

知らせ:

データベースの意味は、実際には文脈によって異なります。データベースは、分野、ソフトウェアの種類、サーバー、またはデータの集合体である場合があります。

これで、MySQL データベースの基礎知識に関するこの記事は終了です。MySQL データベースに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • SQL Server 2005 の基礎知識の詳細な概要
  • SqlServer の基本データ取得、クエリの並べ替えステートメント
  • SQL Server ストアド プロシージャの基本的な説明
  • MySQL データベース JDBC プログラミング (Java は MySQL に接続します)
  • MySQLデータベースの基礎を理解するのに役立つ記事
  • SQL Server データベースの基本プログラミングの詳細な説明

<<:  JavaScript Promise の徹底解説

>>:  nginx をプロキシ キャッシュとして使用する方法

推薦する

ウェブデザイナーが知っておくべき効率的なナビゲーションデザインの3つの原則

ウェブサイトのナビゲーションを設計することは、家の基礎を築くようなものです。基礎がしっかりしていなけ...

MySQL 起動エラー 1067 および文字セットを変更して再起動した後の無効な回復

公式サイトからmysql-5.6.37-winx64.zipの解凍バージョンをダウンロードし、構成フ...

Ubuntu 18.04 で中国語入力方法を設定する方法

Ubuntuの最新バージョンでは、ユーザーは中国語入力方法を別途ダウンロードする必要がなくなりました...

JavaScript 事前分析、オブジェクトの詳細

目次1. 事前分析1. 変数の事前解析と関数の事前解析1. 変数の事前解析2. 機能事前分析2. 事...

JavaScript は最大値と最小値のアルゴリズムを通じて AI 三目並べゲームを実装します

では、早速スクリーンショットを実行してみましょう。黒い駒はプレイヤーの位置、赤い駒はコンピュータの位...

yum 経由で CentOS に PHP をインストールするチュートリアル

まず、yumを使ってCentOSにPHPをインストールする方法を紹介します。 1. PHPのyumソ...

MySQLスレーブライブラリの復元の実践記録

状況の説明:今日、MySQL データベースのスレーブ ノード ホストにログインしたところ、/var/...

HTMLエンコードによる文字化け問題について

今日、3年生から質問がありました。彼が書いた HTML コードを開くと、文字化けした文字が表示されま...

Vueにログイン認証傍受機能を設置するアイデアを詳しく解説

目次1. 解決策2. サーバーから返されたトークンをブラウザに保存する3. リクエストにアクセス権限...

Dockerスペースがいっぱいでコンテナに入れない場合の解決策

トラブル発生が突然で、業務も迫っていたため、現場のスクリーンショットを撮る時間がありませんでしたので...

HTMLボタンを中央に配置する方法

HTML ボタン自体を中央に配置するにはどうすればよいでしょうか? このアイデアは簡単に見つかります...

MySQL 数十億のデータのインポート、エクスポート、移行に関するメモ

最近はMySQLのメモをたくさん取っていますが、それは主に会社のOracleが比較的安定していてメン...

Linux環境でグラフデータベースneo4jを構築する方法の説明

Neo4j (Nosql の 1 つ) は、高性能なグラフ データベース (分散をサポートしていませ...

MySql データベースにおける単一テーブル クエリと複数テーブル結合クエリの効率の比較

この間、プロジェクトに取り組んでいるときに、データ間の接続が非常に複雑なモジュールに遭遇しました。テ...

nginx-ingress-controller ログ永続化ソリューションのソリューション

最近、nginx-ingress-controller のアプリケーションについて説明した公開アカウ...