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 をプロキシ キャッシュとして使用する方法

推薦する

Vueナンバープレート検索コンポーネントの使い方の詳しい説明

参考までに、シンプルなナンバープレート入力コンポーネント(vue)です。具体的な内容は次のとおりです...

docker windows10共有ディレクトリのマウント失敗の解決策

原因docker スクリプトを実行すると、コンテナを作成できないというエラーが発生します。以下のよう...

Vue v-for ループを書く 7 つの方法

目次1. v-forループでは常にキーを使用する2. 特定のスコープ内でv-forループを使用する3...

React で遅延読み込みを使用して最初の画面の読み込み時間を短縮する方法

目次使用インストールルーティングでどのように使用しますか?読み込み速度の比較最近、中間およびバックエ...

CSS3 テキストアニメーション効果

効果 html <div class="sp-container">...

Dockerは異常なコンテナ操作を排除する

この初心者は、Docker を学び始めたばかりの頃にこのような問題に遭遇しました。記録しておきます。...

VMware vSphere6.0 サーバー仮想化の展開とインストールの図 (詳細な手順)

1. VMware vSphere 導入の早期計画のポイント1. vSphereの利点(わずかに)...

スライダーを作成するためのネイティブ js ドラッグ アンド ドロップ機能のサンプル コード

ドラッグ アンド ドロップはフロントエンドでよく使われる機能であり、多くのエフェクトで js のドラ...

React を使って小さなプログラムを書くための Remax フレームワークのコンパイル プロセス分析 (推奨)

Remax は、実行時に構文制限のないソリューションを採用した React を使用して小規模なプロ...

Dockerはコンテナポートバインディングのローカルポートを実装します

今日、イメージを起動した後、HTTP リクエスト経由でアクセスできないという小さな問題が発生しました...

高性能ウェブサイトの最適化ガイド

パフォーマンスの黄金律:エンドユーザーの応答時間のわずか 10% ~ 20% が HTML ドキュメ...

ReactとReduxの関係を詳しく説明

目次1. reduxとreactの関係2. Reactのマルチコンポーネント共有3. reduxの3...

Windows で Graphviz をインストールして開始する方法のチュートリアル

ダウンロードとインストール環境変数の設定インストール環境変数の設定確認基本的な描画の紹介グラフディグ...

C++ TpeScriptシリーズのジェネリックについて

目次1. テンプレート2. ジェネリック3. ジェネリック再帰4. デフォルトのジェネリックパラメー...

Nginx ベースのアクセス制御と接続制限の実装

序文Nginxの組み込みモジュールは、同時リクエスト数の制限とリクエストのソースの制限をサポートして...