この記事では、SQL サーバー に関する関連知識を提供し、主に、単純なデータベース アプリケーション システムやデータベース設計の紹介など、データベースの基本に関する関連問題を紹介します。みんなを助けます。
推奨学習: 「SQL チュートリアル 」
##データベースの概念
「データはコンピューター上の Excel テーブルに保存できるのに、なぜデータベースを構築する必要があるの?」と疑問に思う人もいるかもしれません。
1.1 単純なデータベース アプリケーション システム
プロジェクト開発中は、特定のデータ モデルに従ってデータを整理し、データの統合管理を実行し、必要なアプリケーションに一貫したアクセス手段を提供するために、適切なデータベース管理システムを選択する必要があります。データを使用します。データ モデルには主に、リレーショナル モデル、階層モデル、ネットワーク モデルが含まれます。現在、リレーショナル モデルがより一般的に使用されています。 リレーショナル モデルは、データベース内のデータを 2 次元のテーブル (リレーショナル テーブル) の形式で編成します。例: 表 1.1 は、ある時点における学生図書貸出システムの学生データを示しています。テーブルはレコードと呼ばれます。レコードの場合、列はフィールドと呼ばれ、タイトルはフィールド名です。
リレーショナルテーブルの構造表現:リレーショナルテーブル名(フィールド名1、フィールド名2…フィールド
)。で表されます。例えば、学生テーブルxs(図書館カード番号、氏名、性別、生年月日、専攻、貸出冊数
- コード: フィールドの値またはフィールドの最小の組み合わせにより、対応するレコードを一意に識別できます。
テーブルには複数のコードを含めることができます。通常、1 つのコードがメイン コードとして指定され、関係テーブルでは下線
テーブル間の関係:
1.2 データベース設計
学生テーブル# たとえば、学籍番号「0001」の学年が知りたいのですが?次に、成績表で「学生 ID」の値が 0001 である行を探します。最後に、成績表に学生 ID がすべて「0001」であるデータが 3 行あることがわかり、それに対応して 3 つの行が見つかります。学生のコースと結果。関係とは、データが対応できる一致のことです。 1.2.1 E-R モデル
成績テーブル
通常、E-R モデルでは、各種類のデータ オブジェクトの個体を「エンティティ」と呼び、各種類のオブジェクトの個体の集合を「エンティティ セット」と呼びます。たとえば、図書館管理システムでは、これには主に「読者」(学生とも呼ばれる) と「本」およびその他のエンティティ セットが含まれます。非メイン エンティティ セットにはクラス、クラスの教師などが含まれます。各実体セットに含まれる情報項目は属性と呼ばれます。
(1) 実体集合の表現 E-R 図では、実体集合を長方形、属性を楕円、関係を菱形で表現します。エンティティセットと属性を線分で結びます。属性または属性の組み合わせをメインコードとして指定する場合は、エンティティセットと属性を結ぶ線上にスラッシュを付けます。
(2) エンティティセット間にはさまざまな関係が存在します
1. 1 対 1 の関係 (1:1) A のエンティティは B の最大 1 つのエンティティに関連付けられ、B のエンティティは A の最大 1 つのエンティティに関連付けられます。たとえば、クラスにはクラス教師が 1 人だけおり、逆に、クラス教師は 1 つのクラスにのみ所属するため、2 つのエンティティ セット「クラス」と「クラス教師」の間の関係は 1 対 1 の関係になります。 2 つのエンティティ セット「クラス」と「クラスの教師」の E-R モデルを図 1.2 に示します。
2. 1 対多の関係 (1:n) A のエンティティは B の複数のエンティティに関連付けることができ、B のエンティティは A の最大 1 つのエンティティに関連付けられます。たとえば、クラスには複数の生徒が存在でき、逆に、生徒は 1 つのクラスにのみ所属できるため、2 つのエンティティ セット「クラス」と「生徒」 (リーダー) 間の関係は 1 対多の関係になります。 2 つのエンティティ セット「クラス」と「学生」の E-R モデルを図 1.3 に示します。
3.多対多の関係 (m : n) A のエンティティは B の複数のエンティティに関連付けることができ、B のエンティティは A の複数のエンティティに関連付けることもできます。たとえば、2 つのエンティティ セット「読者」(学生) と「書籍」の間の関係は、多対多の関係になります。これは、読者は複数の本を借りることができ、逆に、書籍番号のある本を借りることができるためです。複数の生徒です。 2 つのエンティティ セット「reader」と「book」の E-R モデルを図 1.4 に示します。
店舗と顧客の 2 つのエンティティがあり、「店舗」には店舗番号、店舗名、住所、電話番号、 "customer" "顧客番号、名前、住所、年齢、性別の属性があります。顧客が店に買い物に行くたびに、消費金額と日付を持っているとします。 E-R 図を描いて、属性と連絡先の種類を示してみてください。
各生徒が複数のコースを受講し、各生徒の各コースの成績は 1 つだけで、各教師は 1 つのコースのみを担当するとします。コースは 1 つのコースで複数の教師によって指導されます。 「学生」には、学籍番号、氏名、住所、年齢、性別の属性があります。 「教師」には社員番号、教師名、職名という属性があり、「コース」にはコース番号、コース名という属性があります。 ER 図を描いて、属性と連絡先の種類を示してみてください。
3つの接続に基づいてE-R図から関係パターンを取得する方法を以下に示します。
1. (1 : 1) 関連する E-R 図のリレーションシップスキーマへの変換
a. 各エンティティセットはリレーションシップスキーマに対応します;
b. For (1 : 1) ) は、関係モデルのみに対応する場合もあれば、関係モデルのみに対応しない場合もあります。
(1) リレーションシップのみがリレーションシップ モデルに対応し、リレーションシップ モデルは、コンタクト属性と、コンタクトに参加する各エンティティ セットの主キー属性で構成されます。コンタクトに参加しているエンティティ セット内のパーティ。
たとえば、図 1.2 で説明した「クラス (bj)」と「クラスの先生 (bzr)」エンティティ セットが、所属 (sy) を通じて E-R モデルに接続すると考えます。次のような関係パターンを設計できます (下線)フィールドがメインコードであることを示します) :
bj (クラス番号、学部、専攻、人数)
bzr (社員番号、名前、連絡先番号)
sy (社員番号、クラス番号)
(2) 連絡先が個別に対応しない リレーションシップスキーマでは、一方の当事者のリレーションシップの属性と主キーが、他方のエンティティセットに対応するリレーションシップスキーマに追加されます。
たとえば、図 1.2 で説明した「クラス (bj)」と「クラスの先生 (bzb)」というエンティティ セットが、所属 (sy) を通じて E-R モデルに接触すると考えると、次のような関係モデルが設計できます。 ## bj (クラス番号、学科、専攻、人数)
bzr (社員番号、氏名、連絡先番号、クラス番号)
または:
bj (クラス番号、学科、専攻、人数)人、従業員番号)
bzr (従業員番号、名前、連絡先番号)
2. (1: n) E-R 図から関係スキーマへの変換
^ ^ a. 各エンティティ セットは関係スキーマに対応します;
^ ^ b. (1: n) 接触の場合、別の関係に対応できますスキーマ 、
関係パターンのみに対応する必要はありません。
(1) リレーションシップのみがリレーションシップパターンに相当し、リレーションシップパターンはアソシエーションの属性と、アソシエーションに参加する各エンティティセットの主キー属性で構成され、n 番目の主キーが使用されます。関係パターンの主キーとして使用します。
たとえば、図 1.3 で説明した「クラス (bj)」と「学生 (xs)」エンティティ セットの E-R モデルを考慮すると、次の関係モデルを設計できます。
bj (クラス番号、学部) 、専攻、人数)
xs (図書館カード番号、氏名、性別、生年月日、専攻、借りている冊数)
sy (図書館カード番号、クラス番号)
(2)関係が別の関係モデルに対応していない場合、関係の属性と 1 端の主コードを、n 端に設定された実際の
エンティティ セットに対応する関係パターンに追加します。主コードはそのままです。 n 番目のプライマリ コード。
たとえば、図 1.3 で説明されている「クラス (bj)」と「リーダー (xs)」エンティティ セットの E-R モデルは、次の関係パターンで設計できます。
bj (クラス番号、部門、専攻、人数)
xs (図書館カード番号、氏名、性別、生年月日、専攻、貸出冊数、クラス番号)
3. (m : n) 接触の E-R ダイアグラムから関係スキーマへの変換
^ ˆ a. 各エンティティ セットは関係スキーマに対応します;
^ ^ b. (m : n) 接触については、別の関係が存在します関係モデルには、関係の属性と、関係に参加する各エンティティ セットの主キー属性が含まれます。関係モデルの主キーは、各エンティティ セットの主キー属性で構成されます。
たとえば、図 1.4 で説明した「読者 (xs)」と「本 (book)」エンティティ セット間の借用関係 (jy) は次のように設計できます。
xs (図書館カード) 番号、氏名、性別、生年月日、専攻、借りた冊数)
書籍(ISBN、書名、訳者、出版社、価格、部数、在庫、概要)
jy(借りた図書館カード番号、ISBN 、請求番号、貸出時間)
リレーションシップ モデル jy の主キーは
主キーと、「図書館カード番号」と「ISBN」の 2 つの属性で構成されるリレーションシップです。パターンには主コードが 1 つだけあります。 。
演習 1: 店舗と顧客の 2 つのエンティティがあります。「店舗」には店舗番号、店舗名、住所、電話番号の属性があります。「顧客」には次の属性があります。お客様の番号、氏名、住所、年齢、性別。顧客が店に買い物に行くたびに、消費金額と日付を持っているとします。 E-R 図を作成し、リレーショナル モデルに変換します。
##演習 2: 各生徒が複数のコースを受講し、各生徒の各コースの成績は 1 つだけであり、各教師は 1 つのコースのみを教える責任があると仮定します。コースは 1 つのコースで複数の教師によって指導されます。 「学生」には、学籍番号、氏名、住所、年齢、性別の属性があります。 「教師」には社員番号、教師名、職名という属性があり、「コース」にはコース番号、コース名という属性があります。 ER 図を作成し、E-R 図をリレーショナル モデルに変換してみます。
#1.3 データベース アプリケーション システム
1.3.1 アプリケーションシステムのデータインターフェース
2. ADO データベース インターフェイス
ADO (ActiveX Data Object) は、Microsoft が開発した COM ベースのデータベース アプリケーション インターフェイスであり、ADO を介してデータベースに接続することで、データベース内のデータを柔軟に操作できます。 ADO を使用してリレーショナル データベースにアクセスするには、ODBC ドライバーを使用する方法と、データベース固有の OLE DB プロバイダーを使用する方法の 2 つの方法があり、後者の方がアクセス効率が高くなります。
ADO.NET データ モデルは ADO から開発されていますが、ADO を単に改良しただけではなく、まったく新しいテクノロジを使用しています。主に次の点に反映されます。
(1) ADO.NET は ActiveX テクノロジを使用しませんが、.NET Framework と緊密に統合された製品です。
(2) ADO.NET には XML 標準の完全なサポートが含まれており、これはクロスプラットフォームのデータ交換にとって非常に重要です。
(3) ADO.NET は、データ ソースに接続された環境でも、データ ソースから切断された環境でも動作します。特に後者は、ネットワーク環境ではデータ ソースとの接続を常に維持することは Web サイトの要件を満たさないため、ネットワーク アプリケーションのニーズに非常に適しています。非効率的でコストがかかるだけでなく、多くの場合、次のような問題が発生します。複数のユーザーによる同時アクセスによる問題 アクセスによる競合
ADO.NET はオブジェクト指向のデータベース ビューを提供し、多くのデータベース プロパティと関係をそのオブジェクトにカプセル化します。最も重要なことは、データベース アクセスの多くの詳細をさまざまな方法でカプセル化し、隠蔽することです。オブジェクトが ADO.NET オブジェクトと対話していることを意識する必要はなく、データを別のデータベースに移動したり、別のデータベースからデータを取得したりするなどの詳細を気にする必要はありません。図 1.6 は、ADO.NET を介してデータベースにアクセスするためのインターフェイス モデルを示しています。
4. JDBC データベース インターフェイス
JDBC (Java DataBase Connectivity) は、JavaSoft (SUN 社の元の事業部門) によって開発され、データベースへの接続と操作のために Java 言語で書かれたクラスとインターフェイスです。さまざまなリレーショナル データベース。 JDBC を介したデータベースへのアクセスには、Java アプリケーション、JDBC ドライバー マネージャー、ドライバー、およびデータ ソースの 4 つの主要コンポーネントが含まれます。 JDBC インターフェイスを使用してデータベースを操作すると、次の利点があります:
(1) JDBC API は ODBC に非常に似ているため、ユーザーが理解しやすくなります;
(2) プログラマが複雑な作業から解放されます。ドライバーはコマンドと関数を呼び出し、アプリケーション
プログラム関数の実装専用です;
(3) JDBC はさまざまなリレーショナル データベースをサポートし、プログラムの移植性を高めます。 ####5.データベース接続プール技術
ネットワーク環境におけるデータベースアプリケーションでは、ユーザー数が多いため、データベース接続には従来のJDBC方式が使用されており、過剰なシステムリソースのオーバーヘッドが大規模なエンタープライズレベルのアプリケーションの効率を制限するボトルネックとなっていました。データベース接続プール テクノロジを使用すると、接続管理によりシステムの効率と安定性が大幅に向上します。
1. クライアント/サーバー アーキテクチャ アプリケーション システム
Web ベースのデータベース アプリケーションは、3 層 (ブラウザ/Web サーバー/データベース サーバー) モデルを採用しています。図に示すように、B/S アーキテクチャとして知られています。
推奨学習: 「
SQL チュートリアル 」
以上がSQLサーバークイック基本データベースアプリケーションシステムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。