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

推薦する

vue3.0 でカルーセル コンポーネントをカプセル化する手順

目次1: カプセル化の考え方2. 包装工程3: ドットインジケーター4: 左と右のインジケーター5:...

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

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

jsイベント委譲の詳細な説明

1. 各関数はオブジェクトであり、メモリを占有します。メモリ内のオブジェクトが増えるほど、パフォーマ...

ボックスモデルのサイズの詳細な説明は、パディング、マージン、境界の値によって異なります。

ボックス モデルは、要素ボックスの幅と高さ、パディング、境界線、余白のサイズを指定します。境界線の内...

Vue-CLI3.xはプロジェクトをサーバーに自動的にデプロイします

目次序文1. scp2をインストールする2. テスト/本番環境サーバーのSSHリモートログインアカウ...

Linux プラットフォームでの Zabbix エージェントのインストールと設定方法

ここでは、Linux プラットフォームでの Zabbix エージェントのインストールと構成について簡...

タブ切り替え機能を実装するJavaScriptカスタムプラグイン

この記事では、タブ切り替え機能を実装するためのJavaScriptの具体的なコードを参考までに共有し...

iframe パラメータの説明と例

<iframe src=”test.jsp” width=”100″ height=”50″ ...

MySQL 数値型オーバーフローの処理方法

さて、質問させてください。MySQL で列を int(0) に設定すると何が起こりますか?この問題を...

Linuxコマンドunzipの詳しい説明

目次1. 解凍コマンド1.1 構文1.2 オプション2. 例1. 解凍コマンドunzip コマンドは...

Spring Boot Docker パッケージング ツールの概要

目次スプリングブートDocker spring-boot-maven-プラグインSpotify Ma...

ARGB、RGB、RGBAの違いと紹介

ARGB は、アルファ (透明度) チャネルが追加された RGB カラー モードであり、32 ビット...

Ubuntu 18.04で国内ソースを変更する方法の例

Ubuntu はソースが中国からなのでダウンロード速度が比較的遅いです。CentOS と異なり、yu...

WeChatアプレットが複数行テキストのスクロール効果を実現

この記事の例では、WeChatアプレットで複数行のテキストスクロールを実装するための具体的なコードを...

Vue の element-ui コンポーネントのデフォルトの CSS スタイルを変更する 4 つの方法

目次序文1. グローバル統合オーバーライドを使用する2. .vueファイルを変更する3. コンポーネ...