【MySQL上級者ロード丨 前編】MySQLとは?
MySQL は最も人気のあるリレーショナル データベース管理システムであり、WEB アプリケーションの観点から言えば、MySQL は最高の RDBMS (Relational Database Management System: リレーショナル データベース管理システム) アプリケーション ソフトウェアの 1 つです。
データベースとは何ですか?
データベースは、データベース管理システム (DBMS) を使用してコンピュータ システムに保存、管理、およびアクセスされるデータの集合です。
データベースは主に次の側面で使用されます。
-
データ ストレージ: データベースは、データを保存するための構造化された方法を提供します。テーブル (リレーションシップまたはコレクションとも呼ばれます) を使用してデータを整理します。各テーブルは行と列で構成され、各行はレコードを表し、各列には同じ種類のデータが含まれます。
-
データ管理: データベース管理システムを使用すると、ユーザーは、新しいデータの挿入、既存のデータの削除、データの更新、データのクエリなど、データベース内のデータに対してさまざまな操作を実行できます。このようにして、ユーザーはデータの追加、変更、取得を簡単に行うことができ、データの包括的な管理を実現できます。
-
データの共有とコラボレーション: データベースは複数のユーザーが同時にデータにアクセスして操作できるようにサポートし、データの共有とコラボレーションを実現します。さまざまなユーザーがデータベースを通じてデータリソースを共有し、権限レベルに応じてデータ操作を実行できるため、チームのコラボレーションと協力が促進されます。
-
データの一貫性と整合性: データベースは、データの一貫性と整合性を保証するメカニズムを提供します。主キー、外部キー、制約などのルールを定義することで、データの正確性と整合性を保証し、データの冗長性やエラーを回避できます。
-
データ セキュリティ保護: データベースは、データのプライバシーとセキュリティを保護するためのセキュリティ メカニズムを提供します。アクセス制御、ユーザー認証、データ暗号化などにより、許可されたユーザーのみがデータにアクセスできるようにし、データ漏洩や不正アクセスを防止します。
-
データのバックアップとリカバリ: データベース管理システムは、データの損失や障害を防ぐためのデータのバックアップとリカバリ機能をサポートしています。データベースを定期的にバックアップすることで、予期せぬ状況でもデータを迅速に復元できるため、データのセキュリティと信頼性が確保されます。
簡単な例を挙げてください: ソーシャル メディア Web サイトを開発していて、ユーザーの登録を許可する必要があるとします。このプロセスではデータベースの使用が不可欠です。
まず、次のフィールドを含むユーザー テーブルを設計する必要があります。
用户ID
:各ユーザーを一意に識別するためのIDです。用户名
: ユーザーが選択した一意のユーザー名。ログインとプレゼンテーションに使用されます。密码
: 安全なログインのためにユーザーが設定したパスワード。电子邮件
: ユーザーが提供した電子メール アドレス。ユーザーへの連絡に使用できます。联系电话
: ユーザーが提供した連絡先電話番号。
次に、ユーザーがウェブサイト上の登録フォームに記入して登録リクエストを送信すると、当社のサーバーは、ユーザー名、パスワード、メールアドレス、連絡先番号など、ユーザーが提供した情報を収集します。
次に、サーバー側のアプリケーション プログラムは、データベース管理システム (MySQL、Oracle など) を介してデータベースと通信し、ユーザーによって提供された登録情報をユーザー テーブルの対応するフィールドに保存します。
後続のログイン プロセスで、ユーザーがユーザー名とパスワードを入力してログインすると、サーバーはこれらの資格情報がデータベース内のレコードと一致するかどうかを検証して、認証の正確性を保証します。
データベースを利用することで、多数のユーザーの登録情報を簡単に管理・操作することができます。クエリ操作を実行するか检索和筛选特定用户的信息
、続行することができます更新操作来修改用户的个人资料
。また、データベースにより、提供数据备份功能
ユーザーが登録した重要な情報がシステム障害などにより消失することも防ぐことができます。
データベースは、企業管理システム、電子商取引プラットフォーム、ソーシャル メディア サイトなどのさまざまなアプリケーションで広く使用されています。これらは、大量のデータを保存および管理するための柔軟かつ効率的な方法を提供し、ユーザーが必要な情報を迅速に取得し、データの信頼性と一貫性を実現できるようにします。
なぜ MySQL データベースなのか?
RDBMS 用語とは何ですか?
英語を学ぶのと同じように、最も基本的な単語と文法を学ぶ必要があるように、MySQL データベースを学ぶ過程で RDBMS 用語を学ぶ必要があります。
RDBMS 用語は、リレーショナル データベース内のデータを理解し、管理するための標準的で統一された構造化された方法を提供します。一般的に使用される RDBMS 用語の一部とその説明を次に示します。
-
数据库(Database)
: コンピューターに保存されている構造化データのコレクションを指します。データをテーブルの形式で編成し、操作とクエリに SQL を使用します。 -
表格(Table)
: リレーション (Relation) とも呼ばれ、データベース内のデータの主要な編成形式です。テーブルは行と列で構成され、各行はレコードを表し、各列には同じ種類のデータが含まれます。 -
列(Column)
: フィールド (フィールド) とも呼ばれ、テーブル内の垂直方向のデータ編成単位です。各列には、整数、文字列、日付などの特定のタイプのデータが含まれます。 -
行(Row)
: レコード (Record) とも呼ばれ、テーブル内の水平方向のデータ編成単位です。各行は複数の列で構成され、完全なデータ項目を表します。
主键(Primary Key)
: テーブル内の各行を一意に識別するフィールドです。主キーはデータの一意性と整合性を保証し、テーブルの高速な取得と関連付けに使用されます。
フォームの例:
+----+---------+-----+
| ID | Name | Age |
+====+=========+=====+
| 1 | John | 25 |
| 2 | Sarah | 30 |
| 3 | David | 28 |
+----+---------+-----+
上記のテーブル例では、「ID」列が主キーとして指定されています。各行には、レコードを識別するための一意の主キー値があります。
-
外键(Foreign Key)
: テーブル内の他のテーブルに関連付けられているフィールドです。外部キーはテーブル間の関連付けを確立し、データの参照整合性と一貫性を実現するために使用されます。 -
索引(Index)
: データクエリのパフォーマンスと取得効率を向上させるために使用されるデータ構造です。インデックスを使用すると、指定された列の値に基づいてデータをすばやく見つけ、クエリを高速化できます。
フォームの例:
+----+---------+-----+
| ID | Name | Age |
+----+---------+-----+
| 1 | John | 25 |
| 2 | Sarah | 30 |
| 3 | David | 28 |
+----+---------+-----+
インデックスの例:
+----+---------+-----+
ID: | 1 | 2 | 3 |
+----+---------+-----+
Row: | 0 | 1 | 2 |
+----+---------+-----+
上記のインデックスの例では、レコードの各行を指すインデックスを作成しました。これにより、クエリ時に特定のレコードをより速く見つけることができます。
これらのより詳細な例が主キーとインデックスの概念をよりよく説明することを願っています。他にご質問がございましたら、お気軽にお問い合わせください。
-
视图(View)
: は、1 つ以上のテーブルに基づくクエリ結果セットです。ビューは複雑なクエリ操作を簡素化し、データのセキュリティとプライバシーの保護を提供します。 -
事务(Transaction)
:データベースの一連の操作の論理的な単位です。すべてのトランザクションは正常に実行されるか、データの一貫性と整合性を確保するために初期状態にロールバックされます。 -
关联(Join)
: 共有列値を介して 2 つ以上のテーブルを接続します。関連付け操作は、関連付けられたテーブル内のデータを取得するために使用されます。
関連するグラフのより詳細な例を次に示します。
1 対 1 の関係:
例:
+----+---------+-----+
| ID | Name | Age |
+====+=========+=====+
| 1 | John | 25 |
+----+---------+-----+
+
|
v
+--------+----------------+
| User ID| Address |
+========+================+
| 1 | 123 Main St |
+--------+----------------+
上記の例では、ユーザー(User)とアドレス(Address)が対応付けられています。各ユーザーは、対応するアドレスに関連付けられる一意のユーザー ID を持っています。
1 対多の関係:
例:
+----+---------+-----+
| ID | Name | Age |
+====+=========+=====+
| 1 | John | 25 |
| 2 | Sarah | 30 |
+----+---------+-----+
+
|
v
+--------+----------------+
| User ID| Address |
+========+================+
| 1 | 123 Main St |
| 1 | 456 Elm St |
| 2 | 789 Oak St |
+--------+----------------+
上記の例では、ユーザーは複数のアドレスに対応できます。ユーザーは、ユーザー ID を通じて対応するアドレスに関連付けることができます。
多対多の関係:
例:
+----+---------+-----+
| ID | Name | Age |
+====+=========+=====+
| 1 | John | 25 |
| 2 | Sarah | 30 |
| 3 | David | 28 |
+----+---------+-----+
+ +
| |
v v
+--------+------------------------+
| User ID| Hobby |
+========+========================+
| 1 | Playing Guitar |
| 1 | Singing |
| 2 | Painting |
| 3 | Cooking |
| 3 | Hiking |
+--------+------------------------+
上記の例では、ユーザーは複数の趣味 (Hobby) を持つことができ、1 つの趣味を複数のユーザーが所有することもできます。ユーザー ID を使用して、ユーザーを対応する興味や趣味に関連付けます。
-
触发器(Trigger)
: これはデータベース内のテーブルに関連するコード セグメントであり、特定のアクションを自動的にトリガーするために使用されます。トリガーは、指定されたイベントが発生したときに対応するアクションを実行できます。 -
存储过程(Stored Procedure)
: 特定のデータベース操作を実行するために使用される、事前定義された SQL ステートメントのセットです。ストアド プロシージャは、複数のアプリケーションから繰り返し呼び出すことができます。 -
事务日志(Transaction Log)
: 挿入、更新、削除などを含むすべてのトランザクション操作をデータベースに記録します。トランザクション ログは、障害の回復とデータの一貫性の保証に使用されます。
トランザクション ログには通常、次の情報が含まれます。
事务的标识符(Transaction ID)
操作类型(插入、更新、删除等)
受影响的数据对象(表、行等)
原始数据和新数据的值
时间戳
グラフィック:
+-------------------------------------------------------+
| 事务日志 |
+-------------------------------------------------------+
| |
| +------------+ +------------+ +-------+|
| | 事务 T1 | | 事务 T2 | | ... ||
| +------------+ +------------+ +-------+|
| | | | | | ||
| | 操作类型 | | 操作类型 | | ||
| | | | | | ||
| | 数据对象 1 | | 数据对象 2 | | ||
| | | | | | ||
| | 旧数据 | | 旧数据 | | ||
| | | | | | ||
| | 新数据 | | 新数据 | | ||
| +------------+ +------------+ +-------+|
| |
+-------------------------------------------------------+
上の図は、簡略化されたトランザクション ログ構造を示しています。各トランザクションはログに記録され、各トランザクションには操作タイプ、影響を受けるデータ オブジェクト、古いデータと新しいデータなどの情報が含まれます。
実際のトランザクション ログには、タイムスタンプ、トランザクション ステータスなどの他のメタデータも含まれる場合があります。さらに、耐久性を確保するために、トランザクション ログの書き込みでは通常、バッチ書き込みやログ バッファーなどの最適化手法が使用されます。
-
归一化(Normalization)
: データの冗長性を減らし、データの保存効率を向上させることを目的としたデータベース スキーマの設計方法です。 -
ACID特性
: ACIDとは、データベーストランザクションが持つべき4つの特性、すなわち原子性(Aomicity)、一貫性(Consistency)、分離性(Isolation)、耐久性(Durability)を指します。
RDBMS 用語の主な役割は次のとおりです。
-
数据组织
: RDBMS 用語は、データを編成および保存するための構造化された方法を提供します。テーブル、列、行の概念を通じて、論理的な関係に従ってデータを分類および管理できるため、データの構成がより明確で理解しやすくなります。 -
数据操作
: RDBMS 用語は、データベース内のデータを追加、削除、変更、確認するための一連の操作とルールを定義します。SQL (構造化照会言語) 言語を使用すると、データのクエリ、更新、管理を簡単に行うことができます。
-
数据完整性
: RDBMS 用語には、主キー、外部キー、制約などの概念が含まれており、データの整合性と一貫性を確保するために使用されます。主キーは各レコードの一意性を保証し、外部キーは異なるテーブル間の関係を確立し、制約はデータの合法性と制限を規定します。 -
数据关联
: RDBMS 用語における結合 (Join) の概念は、複数のテーブル内の関連する関係でデータを接続するために使用されます。関連付け操作を通じて、異なるテーブル内の関連データを取得して、より複雑で包括的なデータ分析を実行できます。 -
数据查询和报表
: RDBMS 用語でのビュー (View) やインデックス (Index) などの概念は、データのクエリと取得の効率を向上させることができます。ビューによって複雑なクエリ操作が簡素化され、インデックスによってデータの取得が高速化され、より効率的なデータ クエリとレポートの生成が可能になります。 -
事务管理
: RDBMS 用語でのトランザクション (トランザクション) とトランザクション ログ (トランザクション ログ) は、データ操作のアトミック性、一貫性、分離性、耐久性を確保するために使用されます。トランザクション管理メカニズムは、複数の操作の一貫性を保証し、障害回復とデータの一貫性を保証します。
RDBMS 用語は、さまざまな概念、操作、ルールを定義し、データの整合性と一貫性を確保し、効率的なデータ管理とアプリケーション開発を実現することで、ユーザーがデータベースにデータを保存、操作、クエリするのに役立ちます。
同時に、RDBMS 用語に精通していると、開発者のコミュニケーション効率が向上し、チームのコラボレーションがよりスムーズになります。
要約する
上記は【MySQL上級者ロード丨 前編】MySQLとは?読者が MySQL の概念を予備的に理解し、習得していることを理解します。
フォローアップでは、[MySQL Advanced Road丨 パート 2] データベースのインストールと構成について説明します。
私は邱です、また会いましょう。