Distributed-dbms-concepts

提供:Dev Guides
移動先:案内検索

分散DBMS-コンセプト

組織を適切に機能させるには、適切に管理されたデータベースが必要です。 最近では、データベースは本質的に集中化されていました。 ただし、グローバリゼーションの増加に伴い、組織は世界中で多様化する傾向があります。 中央のデータベースではなく、ローカルサーバーにデータを分散することを選択する場合があります。 したがって、 Distributed Databases の概念に到達しました。

この章では、データベースとデータベース管理システム(DBMS)の概要を説明します。 データベースは、関連データの順序付けられたコレクションです。 DBMSは、データベース上で動作するソフトウェアパッケージです。 DBMSの詳細な研究は、「Learn DBMS」という名前のチュートリアルで利用できます。 この章では、DDBMSの研究を簡単に行えるように、主要な概念を修正します。 対象となる3つのトピックは、データベーススキーマ、データベースの種類、およびデータベースに対する操作です。

データベースおよびデータベース管理システム

  • データベース*は、特定の目的のために構築された関連データの順序付けられたコレクションです。 データベースは、複数のテーブルのコレクションとして編成できます。テーブルは、実世界の要素またはエンティティを表します。 各テーブルには、エンティティの特性を表すいくつかの異なるフィールドがあります。

たとえば、会社のデータベースには、プロジェクト、従業員、部門、製品、財務記録のテーブルが含まれる場合があります。 Employeeテーブルのフィールドには、Name、Company_Id、Date_of_Joiningなどがあります。

  • データベース管理システム*は、データベースの作成とメンテナンスを可能にするプログラムの集まりです。 DBMSは、データベース内のデータの定義、構築、操作、共有を容易にするソフトウェアパッケージとして利用できます。 データベースの定義には、データベースの構造の説明が含まれます。 データベースの構築には、任意の記憶媒体にデータを実際に保存することが含まれます。 操作とは、データベースから情報を取得し、データベースを更新してレポートを生成することです。 データを共有すると、異なるユーザーまたはプログラムがデータにアクセスしやすくなります。

DBMSアプリケーション領域の例

  • 自動預け払い機
  • 列車予約システム
  • 従業員管理システム
  • 学生情報システム

DBMSパッケージの例

  • MySQL
  • オラクル
  • SQLサーバー
  • dBASE
  • FoxPro
  • PostgreSQLなど

データベーススキーマ

データベーススキーマは、データベースの設計中に指定され、まれに変更される可能性のあるデータベースの説明です。 データの編成、データ間の関係、およびデータに関連付けられた制約を定義します。

多くの場合、データベースは* 3スキーマアーキテクチャ*または* ANSISPARCアーキテクチャ*で表されます。 このアーキテクチャの目標は、物理データベースからユーザーアプリケーションを分離することです。 3つのレベルは-

  • 内部スキーマを持つ内部レベル-データベースの物理構造、内部ストレージの詳細、アクセスパスについて説明します。
  • 概念スキーマを持つ概念レベル-データの物理ストレージの詳細を隠しつつ、データベース全体の構造を記述します。 これは、エンティティ、データ型と制約のある属性、ユーザー操作と関係を示しています。
  • 外部スキーマまたはビューを持つ外部またはビューレベル-特定のユーザーまたはユーザーグループに関連するデータベースの一部を説明し、残りのデータベースを非表示にします。

DBMSの種類

DBMSには4つのタイプがあります。

階層DBMS

階層DBMSでは、データベース内のデータ間の関係が確立され、1つのデータ要素が別のデータ要素の従属要素として存在します。 データ要素には親子関係があり、「ツリー」データ構造を使用してモデル化されます。 これらは非常に高速でシンプルです。

階層DBMS

ネットワークDBMS

データベース内のデータ間の関係がネットワーク形式の多対多のタイプであるネットワークDBMS。 多くの多対多の関係が存在するため、構造は一般的に複雑です。 ネットワークDBMSは、「グラフ」データ構造を使用してモデル化されます。

ネットワークDBMS

リレーショナルDBMS

リレーショナルデータベースでは、データベースはリレーションの形式で表されます。 各関係はエンティティをモデル化し、値の表として表されます。 リレーションまたはテーブルでは、行はタプルと呼ばれ、単一のレコードを示します。 列はフィールドまたは属性と呼ばれ、エンティティの特性プロパティを示します。 RDBMSは、最も一般的なデータベース管理システムです。

例-学生関係-

リレーショナルDBMS

オブジェクト指向DBMS

オブジェクト指向DBMSは、オブジェクト指向プログラミングパラダイムのモデルから派生しています。 これらは、データベースに格納されている一貫性のあるデータと、プログラムの実行時に見られる一時的なデータの両方を表すのに役立ちます。 それらは、オブジェクトと呼ばれる小さく再利用可能な要素を使用します。 各オブジェクトには、データ部分と、データに作用する一連の操作が含まれます。 オブジェクトとその属性は、リレーショナルテーブルモデルに格納されるのではなく、ポインターを介してアクセスされます。

例-簡素化された銀行口座オブジェクト指向データベース-

オブジェクト指向DBMS

分散DBMS

分散データベースは、コンピューターネットワークまたはインターネットを介して分散される相互接続されたデータベースのセットです。 分散データベース管理システム(DDBMS)は、分散データベースを管理し、ユーザーに対してデータベースを透過的にするメカニズムを提供します。 これらのシステムでは、組織のすべてのコンピューティングリソースを最適に使用できるように、データが複数のノードに意図的に分散されています。

DBMSでの操作

データベースの4つの基本操作は、作成、取得、更新、削除です。

  • データベース構造を作成し、データを入力します-データベース関係の作成には、データ構造、データ型、保存するデータの制約の指定が含まれます。 + *例-学生テーブルを作成するSQLコマンド-
CREATE TABLE STUDENT (
   ROLL INTEGER PRIMARY KEY,
   NAME VARCHAR2(25),
   YEAR INTEGER,
   STREAM VARCHAR2(10)
);
 *データ形式が定義されると、実際のデータは何らかの記憶媒体の形式に従って保存されます。
+* 例*学生テーブルに単一のタプルを挿入するSQLコマンド-
INSERT INTO STUDENT ( ROLL, NAME, YEAR, STREAM)
VALUES ( 1, 'ANKIT JHA', 1, 'COMPUTER SCIENCE');
  • データベースからの RETRIEVE 情報–情報の取得には、通常、テーブルのサブセットを選択するか、いくつかの計算が行われた後にテーブルからデータを表示することが含まれます。 テーブルに対してクエリを実行することにより行われます。 + -Computer Scienceストリームのすべての学生の名前を取得するには、次のSQLクエリを実行する必要があります-
SELECT NAME FROM STUDENT
WHERE STREAM = 'COMPUTER SCIENCE';
  • UPDATE 情報の保存とデータベース構造の変更–テーブルの更新には、既存のテーブルの行の古い値を新しい値に変更することが含まれます。 + -ストリームをElectronicsからElectronics and Communicationsに変更するSQLコマンド-
UPDATE STUDENT
SET STREAM = 'ELECTRONICS AND COMMUNICATIONS'
WHERE STREAM = 'ELECTRONICS';
 *データベースの変更とは、テーブルの構造を変更することです。 ただし、テーブルの変更にはいくつかの制限があります。
+* 例*-新しいフィールドまたは列を追加するには、たとえば住所をStudentテーブルに追加するには、次のSQLコマンドを使用します-
ALTER TABLE STUDENT
ADD ( ADDRESS VARCHAR2(50) );
  • DELETE 情報の保存またはテーブル全体の削除–特定の情報を削除するには、特定の条件を満たすテーブルから選択した行を削除する必要があります。 + -現在失明している4年目にいるすべての生徒を削除するには、SQLコマンドを使用します-
DELETE FROM STUDENT
WHERE YEAR = 4;
 *または、テーブル全体をデータベースから削除することもできます。
+* 例*-学生テーブルを完全に削除するには、使用されるSQLコマンドは-
DROP TABLE STUDENT;