- データベース管理
- 機能と要素
- -要素
- タプル
- カラム
- キー
- -誠実さのルール
- キーの整合性
- 参照整合性
- リレーショナルモデルの作成方法は?
- -データを収集します
- -主キーを定義する
- -テーブル間の関係を作成する
- 1対多
- 2つのテーブルを設計する
- 多対多
- 一つずつ
- 利点
- 構造的独立
- 概念の単純さ
- 設計、実装、メンテナンス、使用が簡単
- アドホッククエリ容量
- 短所
- ハードウェア費用
- デザインのしやすさはデザインの質を低下させる
- «情報島»の現象
- 例
- 参考文献
リレーショナル・データベース・モデルは、行と列からなる格子状の構造を使用して、リレーションシップを使用して、構造化データの方法です。これは、リレーショナルデータベースの概念的な原理です。1969年にエドガーF.コッドによって提案されました。
それ以降、階層、ネットワーク、オブジェクトなどの他のデータベースモデルと比較すると、ビジネスアプリケーションの主要なデータベースモデルになっています。
出典:pixabay.com
コッドは、リレーショナルデータベースのプラットフォームとしての彼の仕事がどれほど極めて重要で影響力があるかを知りませんでした。ほとんどの人は、データベース内の関係の物理的な表現であるテーブルに精通しています。
リレーショナルモデルは、1つ以上の独立したテーブルにデータ要素をグループ化できるデータベースとして定義されます。これは、関連する各テーブルに共通のフィールドを使用して相互に関連付けることができます。
データベース管理
データベーステーブルはスプレッドシートに似ています。ただし、テーブル間に作成できるリレーションシップにより、リレーショナルデータベースは大量のデータを効率的に格納でき、効率的に取得できます。
リレーショナルモデルの目的は、データとクエリを指定するための宣言的な方法を提供することです。ユーザーは、データベースにどのような情報が含まれ、どのような情報が必要かを直接宣言します。
一方、データベース管理システムソフトウェアに任せて、保存用のデータ構造とクエリに応答するための取得手順を記述します。
ほとんどのリレーショナルデータベースは、データのクエリと定義にSQL言語を使用します。現在、Oracle、IBM DB2、Microsoft SQL Serverなど、多くのリレーショナルデータベース管理システムまたはRDBMS(リレーショナルデータベース管理システム)があります。
機能と要素
-すべてのデータは、概念的には、リレーションまたはテーブルと呼ばれる、行と列のデータの順序付けられた配置として表されます。
-各テーブルにはヘッダーと本文が必要です。ヘッダーは単に列のリストです。本文は、テーブルに入力されるデータのセットであり、行で編成されます。
-すべての値はスカラーです。つまり、テーブル内の任意の行/列位置には、単一の値しかありません。
-要素
次の図は、完全な構造を構成する基本要素の名前の表を示しています。
タプル
データの各行はタプルであり、レコードとも呼ばれます。各行はnタプルですが、「n-」は通常破棄されます。
カラム
タプルの各列は、属性またはフィールドと呼ばれます。列は、特定の属性が持つことができる値のセットを表します。
キー
各行には、テーブルキーと呼ばれる1つ以上の列があります。この結合された値は、テーブルのすべての行で一意です。このキーにより、各タプルは一意に識別されます。つまり、キーを複製することはできません。これは主キーと呼ばれます。
一方、外部キーまたはセカンダリキーは、他のテーブルのプライマリキーを参照するテーブル内のフィールドです。プライマリテーブルを参照するために使用されます。
-誠実さのルール
リレーショナルモデルを設計するときは、整合性ルールと呼ばれる、データベースで満たす必要があるいくつかの条件を定義します。
キーの整合性
主キーはすべてのタプルに対して一意である必要があり、null(NULL)にすることはできません。そうしないと、行を一意に識別できなくなります。
複数列のキーの場合、これらの列にNULLを含めることはできません。
参照整合性
外部キーの各値は、参照されるテーブルまたは主テーブルの主キーの値と一致する必要があります。
外部キーを持つ行は、その値がプライマリテーブルに存在する場合にのみセカンダリテーブルに挿入できます。
行が更新または削除されたために、プライマリテーブルのキーの値が変更された場合、それに応じて、この外部キーを持つセカンダリテーブルのすべての行を更新または削除する必要があります。
リレーショナルモデルの作成方法は?
-データを収集します
データベースに格納するには、必要なデータを収集する必要があります。これらのデータは、さまざまなテーブルに分かれています。
列ごとに適切なデータ型を選択する必要があります。例:整数、浮動小数点数、テキスト、日付など。
-主キーを定義する
テーブルごとに、列(またはいくつかの列)を主キーとして選択する必要があります。これにより、テーブルの各行が一意に識別されます。主キーは、他のテーブルを参照するためにも使用されます。
-テーブル間の関係を作成する
独立した無関係のテーブルで構成されるデータベースは、ほとんど目的を果たしません。
リレーショナルデータベースの設計で最も重要な側面は、テーブル間の関係を識別することです。関係タイプは次のとおりです。
1対多
「クラスリスティング」データベースでは、1人の教師がクラスを教えている間、教師は0個以上のクラスを教えることができます。このタイプの関係は、1対多として知られています。
この関係を単一のテーブルで表すことはできません。データベース«クラスのリスト»には、教師に関する情報を格納するTeachersというテーブルがあります。
各教師が教えるクラスを保存するには、追加の列を作成できますが、作成する列の数という問題に直面します。
一方、クラスに関する情報を格納するClassesというテーブルがある場合は、追加の列を作成して教師に関する情報を格納できます。
ただし、教師は多くのクラスを教えることができるため、彼のデータはClassesテーブルの多くの行に複製されます。
2つのテーブルを設計する
したがって、2つのテーブルを設計する必要があります。Class_Idを主キーとするクラスに関する情報を格納するClassesテーブルと、Teacher_Idを主キーとする教師に関する情報を格納するTeachersテーブルです。
次に、以下に示すように、マスターテーブル(Master_Id)の主キーをクラステーブルに格納することで、1対多の関係を作成できます。
ClassesテーブルのMaster_Id列は、外部キーまたはセカンダリキーと呼ばれます。
マスターテーブルの各Master_Id値について、クラステーブルには0個以上の行が存在する可能性があります。ClassesテーブルのClass_Id値ごとに、Teachersテーブルには1行しかありません。
多対多
「製品販売」データベースでは、顧客の注文に複数の製品を含めることができ、1つの製品を複数の注文で表示できます。このタイプの関係は、多対多として知られています。
"Product sales"データベースは、ProductsとOrdersの2つのテーブルで開始できます。Productsテーブルには、productIDを主キーとする、製品に関する情報が含まれています。
一方、Ordersテーブルには、orderIDを主キーとする顧客の注文が含まれています。
製品用に予約する列の数がわからないため、注文した製品をOrdersテーブル内に格納できません。同じ理由で、注文をProductsテーブルに保存することもできません。
多対多の関係をサポートするには、結合テーブル(OrderDetails)と呼ばれる3番目のテーブルを作成する必要があります。この場合、各行は特定の順序のアイテムを表します。
OrderDetailsテーブルの場合、主キーは、orderIDとproductIDの2つの列で構成され、各行を一意に識別します。
OrderDetailsテーブルのorderID列とproductID列は、OrdersテーブルとProductsテーブルを参照するために使用されます。したがって、これらはOrderDetailsテーブルの外部キーでもあります。
一つずつ
「製品の販売」データベースでは、製品に追加の説明や画像などのオプションの情報を含めることができます。それをProductsテーブル内に保持すると、多くの空のスペースが生成されます。
したがって、オプションのデータを格納する別のテーブル(ProductExtras)を作成できます。オプションのデータを持つ製品の場合、レコードは1つだけ作成されます。
ProductsとProductExtrasという2つのテーブルには、1対1の関係があります。Productsテーブルの各行には、ProductExtrasテーブルに最大1つの行があります。両方のテーブルの主キーとして同じ製品IDを使用する必要があります。
利点
構造的独立
リレーショナルデータベースモデルでは、データベースの構造を変更しても、データへのアクセスには影響しません。
DBMSがデータにアクセスする能力に影響を与えずにデータベースの構造を変更できる場合、構造的独立性は達成されていると言えます。
概念の単純さ
リレーショナルデータベースモデルは、階層データベースモデルやネットワークデータベースモデルよりも概念的にシンプルです。
リレーショナルデータベースモデルでは、データの物理ストレージの詳細から設計者を解放できるため、設計者はデータベースの論理ビューに集中できます。
設計、実装、メンテナンス、使用が簡単
リレーショナルデータベースモデルは、データの独立性と構造の独立性の両方を実現します。これにより、データベースの設計、保守、管理、使用が他のモデルよりもはるかに簡単になります。
アドホッククエリ容量
非常に強力で柔軟性があり、使いやすいクエリ機能の存在は、リレーショナルデータベースモデルが非常に人気がある主な理由の1つです。
リレーショナルデータベースモデルのクエリ言語は、構造化クエリ言語(SQL)と呼ばれ、アドホッククエリを実現します。SQLは第4世代言語(4GL)です。
4GLを使用すると、ユーザーは、実行方法を指定せずに、実行すべきことを指定できます。したがって、SQLを使用すると、ユーザーは必要な情報を指定し、その情報をデータベースに取得する方法の詳細を残すことができます。
短所
ハードウェア費用
リレーショナルデータベースモデルは、その実装の複雑さとユーザーデータの物理ストレージの詳細を隠します。
これを行うには、リレーショナルデータベースシステムに、より強力なハードウェアとデータストレージデバイスを備えたコンピューターが必要です。
したがって、RDBMSをスムーズに実行するには、強力なマシンが必要です。ただし、現代のコンピューターの処理能力は指数関数的に増加しているため、今日のシナリオでより多くの処理能力を必要とすることは、もはやそれほど大きな問題ではありません。
デザインのしやすさはデザインの質を低下させる
リレーショナルデータベースは設計と使用が簡単です。ユーザーは、データの物理ストレージの複雑な詳細を知る必要はありません。データにアクセスするために、データが実際にどのように格納されているかを知る必要はありません。
この設計と使用の容易さは、不十分に設計されたデータベース管理システムの開発と実装につながる可能性があります。データベースは効率的であるため、データベースの設計時やデータ量が少ない場合には、これらの設計の非効率性は明らかになりません。
データベースが大きくなると、設計が不十分なデータベースはシステムの速度を低下させ、パフォーマンスの低下とデータの破損につながります。
«情報島»の現象
前述したように、リレーショナルデータベースシステムは実装と使用が簡単です。これは、あまりにも多くの人や部門が独自のデータベースやアプリケーションを作成する状況を作り出します。
これらの情報の島は、情報の統合を妨げます。これは、組織の円滑で効率的な機能に不可欠です。
これらの個々のデータベースは、データの不整合、データの重複、データの冗長性などの問題も引き起こします。
例
サプライヤ、パーツ、および出荷のテーブルで構成されるデータベースがあるとします。テーブルの構造といくつかのサンプルレコードは次のとおりです。
サプライヤテーブルの各行は、一意のサプライヤ番号(SNo)によって識別され、テーブルの各行を一意に識別します。同様に、各パーツには一意のパーツ番号(PNo)があります。
さらに、この組み合わせは多対多の関係であるため、ユニオンテーブルとして機能するシップメントの主キーであるため、シップメントテーブルの特定のサプライヤー/パーツの組み合わせに対して複数のシップメントは存在できません。
PartsテーブルとShipmentsテーブルの関係は、フィールドPNo(パーツ番号)を共通にすることで得られ、SupplierとShipmentsの関係は、SNoフィールド(サプライヤー番号)を共通にすることで得られます。
Shipmentsテーブルを分析すると、合計500のナッツがSuneetとAnkitのサプライヤーからそれぞれ250ずつ送られているという情報を得ることができます。
同様に、合計1,100個のボルトが3つの異なるサプライヤーから出荷されました。500の青いネジがSuneetサプライヤーから出荷されました。赤いネジの発送はありません。
参考文献
- ウィキペディア、無料の百科事典(2019)。リレーショナルモデル。取得元:en.wikipedia.org。
- Techopedia(2019)。リレーショナルモデル。取得元:ceilingpedia.com。
- Dinesh Thakur(2019)。リレーショナルモデル。電子計算機ノート。取得元:ecomputernotes.com。
- Geeks for Geeks(2019)。リレーショナルモデル。取得元:geeksforgeeks.org。
- 南洋理工大学(2019)。リレーショナルデータベース設計のクイックスタートチュートリアル。取得元:ntu.edu.sg。
- エイドリアンワット(2019)。第7章リレーショナルデータモデル。BC Open Textbooks。取得元:opentextbc.ca。
- Toppr(2019)。リレーショナルデータベースとスキーマ。取得元:toppr.com。