MySQL シリーズ: MySQL リレーショナル データベースの基本概念

MySQL シリーズ: MySQL リレーショナル データベースの基本概念

1. 基本概念

データとは、物事を説明する記号的な記録です。物理的な記号を使用して記録された識別可能な情報を指します。

1. データベース (DB) とは、長期間コンピューターに保存された、整理され共有可能なデータの集合を指します。データは、特定のデータ モデルに従って整理、記述、保存され、冗長性が低く、データの独立性が高い必要があります。システムは拡張が容易で、複数のユーザーで共有できる必要があります。

データの 3 つの基本的な特性:

  • 永続ストレージ
  • 整頓された
  • 共有可能

2. データベース管理システム (DBMS) は、アプリケーション プログラムとオペレーティング システムの間にある、データベースを確立および管理するために特別に使用されるソフトウェアのセットです。 データベースシステムのさまざまな機能を実装します。データベースシステムの中核です。

  • データ定義機能
  • データ操作機能
  • データベース運用管理機能
  • データベース作成およびメンテナンス機能
  • データの整理、保存、管理機能
  • データセキュリティ保証
  • データバックアップ機能

3. データベースシステムは以下で構成されます。

  • ユーザー(エンドユーザー)
  • プログラム(API)
  • アプリケーション: データベースベースのアプリケーションを指します
  • データベース管理システム
  • データベース管理者(DBA):データベースの計画、設計、調整、保守、管理を担当します。
  • データベース

4. データベースシステムのアーキテクチャ:

  • スタンドアロンアーキテクチャ
  • メインフレーム/ターミナルアーキテクチャ
  • マスタースレーブアーキテクチャ c/s: クライアント/サーバー構造 (クライアント/サーバー、C/S) では、「クライアント」、「フロントエンド」、または「プレゼンテーション層」が主にデータベースユーザーとの対話タスクを完了し、「サーバー」、「バックエンド」、または「データ層」が主にデータ管理を担当します。
  • 分散アーキテクチャ

5. データベースシステムの構造

  • モード: 概念モードまたは論理モードとも呼ばれ、データの論理的なビュー、つまり概念的なビューです。
  • 外部モード: サブモードまたはユーザーモードデータビューとも呼ばれ、ユーザービュー
  • 内部モード: ストレージモードとも呼ばれ、内部ビューまたはストレージビューです。

外部モード/モードイメージはデータとプログラムの論理的独立性を保証する

内部モード/モードイメージはデータとプログラムの物理的な独立性を保証します

6. モデル

モデルは現実世界の特性をシミュレートし抽象的に表現したものです。

データ モデルは、現実世界のデータの特性を抽象化し、データの共通内容を記述します。

2. データベース管理技術の開発

  • 初期段階 ----- ファイルシステムはディスクファイルを使用してデータを保存します
  • 初期段階: データベースの第 1 世代は、ネットワーク モデルと階層モデルの形で登場しました。
  • 中間段階 - 第 2 世代データベース リレーショナル データベースと構造化クエリ言語
  • 上級段階 - 新世代のデータベース「リレーショナルオブジェクト」データベース

1. ファイルシステム管理の欠点

  • アプリケーションを書くのは不便
  • データの冗長性は避けられない
  • アプリケーションの依存関係
  • ファイルへの同時アクセスはサポートされていません
  • データ間の接続が弱い
  • ユーザービューによるデータの表現の難しさ
  • 安全制御機能なし

2. データベース管理システムの利点

  • 相互に関連するデータの集合
  • データの冗長性が少ない
  • プログラムとデータは互いに独立している
  • データのセキュリティと信頼性を確保する
  • データの精度を最大化する
  • 一貫性を保ちながらデータを同時に使用できる

3. リレーショナルデータベース(RDBMS)の概念

リレーショナル データベースは、リレーショナル データベースを構成するすべての関係の集合です。 データの論理モデルとしてリレーショナル モデルを使用し、データの整理方法としてリレーションを使用するデータベースの種類。データベース操作はリレーショナル代数に基づいています。

  • テーブルは、テーブル名、列、および複数のデータ行で構成される 2 次元のデータ構造です。
  • リレーション: リレーションは 2 次元のテーブルです。そして、次の特性を満たす: 表内の行と列の順序は重要ではない
  • 行: テーブル内の各行は、レコードまたはタプルとも呼ばれます。テーブル内のデータは行に格納されます。
  • 列: テーブル内の各列は属性と呼ばれ、フィールドはフィールドと呼ばれます。
  • コンポーネント: タプル (行) 内の属性値はコンポーネントと呼ばれます。
  • キー: 属性 (または属性グループ) の値を使用して、リレーションのタプルを一意に識別できます。これらの属性 (または属性グループ) は、リレーションのキーと呼ばれます。
  • 主キー: レコードを一意に識別するために使用されるフィールド。
  • 外部キー: 属性 (または属性グループ) はこのリレーションの主キーまたは候補キーではありませんが、別のリレーションの主キーです。
  • 参照関係と参照関係: 参照関係はスレーブ関係とも呼ばれ、参照関係はマスター関係とも呼ばれます。これらは、外部キーに関連付けられた 2 つの関係を指します。
  • ドメイン: 属性の値の範囲。たとえば、性別には「男性」と「女性」の 2 つの値のみを指定できます。
  • データ型 各列には対応するデータ型があり、これを使用して列に格納されるデータを制限 (または許可) します。

1. 取引

複数の操作は全体として扱われます

トランザクションは ACID プロパティに従います。

  • A原子性: 不可分性、すべてのアクションが実行されるか、またはどれも実行されないか
  • C 一貫性: データの一貫性を維持する
  • 分離: トランザクションが完了するまで最終データは表示できません
  • ダーティデータ: トランザクションによって完了していないデータ
  • D 耐久性: 持続効果、永久

2. ER モデル (エンティティ リレーションシップ)

エンティティ: 客観的に存在し、互いに区別できる客観的な事物または抽象的な出来事をエンティティと呼びます。 ER 図では、エンティティは長方形のボックスで表され、エンティティ名はボックス内に記述されます。

属性: 実体が持つ特性または性質

リレーションシップ: リレーションシップは、データ間の関連の集合であり、客観的に存在するアプリケーション セマンティック チェーンです。エンティティ内には接続があり、エンティティ間にも接続があります。エンティティ間の接続は、ダイヤモンド形のボックスで表されます。

連絡先の種類:

  • 一対一のコンタクト(1:1)
  • 1対多の関係 (1:n)
  • 多対多の関係 (m:n)

3. リレーショナルデータベースの歴史

  • 1970 年に IBM の E.F. Codd がリレーショナル モデルを提案し、リレーショナル データベースの理論的基礎を築きました。
  • 1970 年代後半には、リレーショナル メソッドの理論的研究とソフトウェア システムの開発において大きな進歩がありました。
  • 1981 年には、比較的成熟したリレーショナル データベース管理テクノロジが登場し、高度な非手続き型言語インターフェイスと優れたデータ独立性といったリレーショナル データベースの利点が確認されました。
  • 1980 年代以降、ネットワーク モデルと階層モデルは基盤となる実装と密接に統合され、リレーショナル モデルは確固たる理論的基礎を持ち、主流のデータ モデルになりました。

4. リレーショナルデータモデルの要素

データ モデルの要素は次のとおりです。

  • リレーショナルデータ構造
  • 関係演算セット
  • リレーショナル整合性制約

5. データの3つの要素

  • データ構造: 2 つのカテゴリが含まれます。1 つのカテゴリは、リレーショナル モデル内のドメイン、属性、関係など、データ型、コンテンツ、プロパティに関連するオブジェクトです。もう 1 つのカテゴリは、データ組織レイヤーからのデータ レコードとフィールドの構造を表す、データ間の接続に関連するオブジェクトです。
  • データ操作:

データ抽出、データセットから興味深いコンテンツを抽出します。
データ更新: データベース内のデータを変更します。

  • データ制約: 整合性ルールのセット

エンティティの整合性
ドメイン整合性
参照整合性

6. 制約

  • 主キー制約: 1 つ以上のフィールドの組み合わせ。入力されたデータは、このテーブル内の行を一意に識別できる必要があります。データは NOT NULL として提供する必要があります。テーブルには 1 つしか含められません。
  • 一意キー制約: 1 つ以上のフィールドの組み合わせ。入力されたデータは、このテーブル内の行を一意に識別できる必要があります。NULL は許可されます。テーブルには複数のキーが存在する場合があります。
  • 外部キー制約: あるテーブルのフィールドに入力できるデータは、別のテーブルの主キーまたは一意キーに既に存在するデータによって決まります。
  • チェック制約: フィールド値が特定の範囲内にあること。

7. 索引

テーブル内の 1 つ以上のフィールドのデータをコピーして個別に保存し、特定の順序で並べ替えて保存する必要があります。

8. 関係演算

  • 選択: 条件を満たす行を選択します
  • 投影: 必要なフィールドを選択してください
  • 結合: テーブル内のフィールド間の関連付け

9. データモデル

  • データ抽象化:

物理層: データ保存形式、つまりRDBMSがディスク上のファイルを整理する方法 論理層: DBAの観点から、保存されているデータとデータ間の関係について説明します ビュー層: ユーザーの観点から、DB内の一部のデータについて説明します

  • リレーショナルモデルの分類:

オブジェクトベースのリレーショナルモデル 半構造化リレーショナルモデル

4. RDBMS設計パラダイム

リレーショナル データベースを設計する場合、さまざまな仕様に従って、合理的なリレーショナル データベースを設計する必要があります。これらのさまざまな仕様は、さまざまなパラダイムと呼ばれます。さまざまなパラダイムにはサブ仕様があります。パラダイムが高くなるほど、データベースの冗長性は少なくなります。

現在、リレーショナル データベースには、第 1 パラダイム (1NF)、第 2 パラダイム (2NF)、第 3 パラダイム (3NF)、Badesco パラダイム (BCNF)、第 4 パラダイム (4NF)、および第 5 パラダイム (5NF、完全パラダイムとも呼ばれる) の 6 つのパラダイムがあります。

最低限必要な正規形は、第 1 正規形 (1NF) です。より多くの仕様要件を満たす最初の正規形は第 2 正規形 (2NF) と呼ばれ、残りの正規形も同様です。

一般的に言えば、データベースは第 3 正規形 (3NF) を満たすだけで済みます。

  • 1NF: 重複する列はありません。各列は分割できない基本データ項目です。同じ列に複数の値が存在することはできません。つまり、エンティティ内の属性は複数の値や重複する属性を持つことはできません。同じタイプのフィールドを除いて、重複する列はありません。

注: 第 1 正規形 (1NF) はリレーショナル モデルの基本要件です。第 1 正規形 (1NF) を満たさないデータベースはリレーショナル データベースではありません。

  • 2NF: 属性は主キーに完全に依存します。第 2 正規形は、まず第 1 正規形を満たす必要があり、テーブル内の各行が一意に区別可能である必要があります。通常、各インスタンスの一意の識別子 PK を格納するために、テーブルに列が追加されます。非 PK フィールドは、PK 全体に直接関連付けられる必要があります。
  • 3NF: 属性は他の非主属性に依存しません。第 3 正規形を満たすには、まず第 2 正規形を満たす必要があります。第 3 正規形では、データベース テーブルに、他のテーブルにすでに含まれている非プライマリ キーワード情報が含まれないこと、および非 PK フィールド間に従属関係があってはならないことが要求されます。

これで、MySQL リレーショナル データベースの基本概念に関するこの記事は終了です。これは、MySQL シリーズの最初の章です。MySQL リレーショナル データベースの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • 基本的なデータベースの概念に関する面接の質問
  • データベースシステムの概要

<<:  VMware を使用して PXE バッチ インストール サーバーをテストする詳細なプロセス

>>:  CSS 属性を使用してマウス イベントをブロックする方法 (マウス クリックは上位の要素を貫通する可能性があります)

推薦する

例を通してMySQLの更新がテーブルをロックするかどうかを判定する

2つのケース: 1. 索引あり 2. 索引なし前提条件:方法: コマンドラインを使用してシミュレート...

Linux 環境の Apache サーバーでセカンダリドメイン名を設定する方法の詳細な説明

この記事では、Linux 環境の Apache サーバーでセカンダリ ドメイン名を構成する方法につい...

JS オブジェクトのコピー (ディープ コピーとシャロー コピー)

目次1. 浅いコピー1. Object.assign(ターゲット、ソース、ソース...) 2. スプ...

Linux での MySQL 5.7.18 yum のアンインストールからインストールまでのプロセスの図

いろいろ苦労しましたが、やっと yum インストールの手順がわかりました。以前、バイナリ パッケージ...

Linux における mv コマンドの高度な使用例

序文mv コマンドは、move の略語で、ファイルを移動したり、ファイル名を変更したり (ファイルの...

ネイティブ JavaScript でショッピングカートを実装する

この記事では、ショッピングカートを実装するためのJavaScriptの具体的なコードを参考までに紹介...

ボタンに醜い灰色の枠線が付いています。これを削除するにはどうすればよいですか?

ダイアログをクロージャで使用し、右上隅の向こう側に閉じるボタンがあるダイアログを描画しました。ボタン...

IDEA で mysql8.0.3 と mybatis-generator を使用する際に発生するバグ

1. プラグインを追加し、pomファイルの下に次の設定を追加します。 <!-- mybatis...

燃える炎効果の英語フォント16種類をシェアする

私たちは視覚の世界に住んでおり、多くの視覚効果に囲まれています。コンピューターの前にいても、屋外にい...

Nodejs エラー処理プロセス記録

この記事では、接続エラー ECONNREFUSED を例に、Node.js がエラーを処理するプロセ...

パスワードログインなしのLinux構成スタンドアロンおよびフルディストリビューションの詳細なチュートリアル

目次1: 単一マシンのパスワードフリーログイン構成1. 仮想マシンのホスト名を設定する2. 仮想マシ...

クロスドメイン js フロントエンドの 8 つの実装ソリューション

目次1. jsonp クロスドメイン2. document.domain + iframe クロスド...

ubuntu16.04 で nginx を完全にアンインストールするための関連コマンド

nginx の概要nginx は、無料のオープンソースの高性能 HTTP サーバーおよびリバース プ...

MYSQLが中国語を認識できない問題の恒久的な解決策

ほとんどの場合、MySQL はインストールしたばかりのときは中国語をサポートしません。これはエンコー...