DataBase Memo
::目次:: 1. データモデル 2. DBMS 3. RDB 4. リレーションの仕組み 5. キー 6. 正規化 7. リレーションシップ 8. 演算 9. SQL 言語 10. ホスト言語と SQL の連携 11. SQL
データモデル
- 階層データモデル:複数のレコードを木のような形をした階層関係のモデル。
- ネットワークデータモデル:レコード同士が網状に関係したモデル。
- リレーショナルデータモデル:2次元の表の概念を利用するモデル。現在の主流
データベース管理システム (DataBase Management System : DBMS)
DBMS が行うこと
- 問い合わせ処理
- データの一貫性のチェック
- 機密保護
- 同時実行制御:トランザクション、コミット
- 障害回復処理:ロールバック、ロールフォワード、ミラーリング
- 物理的なデータ管理
リレーショナルデータベース (Relational DataBase : RDB)
- 「表」(リレーション) を基本にしたデータベース
- 関係代数によるデータ操作
- データベース言語は SQL (Structured Query Language)
- 代表的な RDBMS (Relational DataBase Management System):Oracle, MS SQL Server, IBM DB2
リレーションの仕組み
- 2次元の「表」(テーブル) が基本
- 横の行:組 (タプル)、行 (ロー)
- 縦の列:属性 (アトリビュート)、列 (カラム)
- キー:特別の情報を持った列
- 定義域 (ドメイン):同じ種類の値の集合
キー
- 候補キー
- 主キー
- 代替キー
- 連結キー
正規化
- 第1正規形
- 第2正規形
- 第3正規形
- 第4正規形
リレーションシップ
リレーショナルデータベースにおいて表同士がもつ関係のこと.
- 外部キー:リレーションをもつ2つの列のうち,主キーでないほうの列
- 参照整合性:外部キーを設定することで,表同士で矛盾のない値を保つこと
演算
リレーショナルデータモデルの演算としては,和・差・積・直積・射影・選択・ 結合・商がある.
- 和:重複行を除く2つの表にあるすべての行を取り出す演算.
- 差:2つの表のどちらか一方だけにある行を取り出す演算.
- 積:2つの表に共通する行を取り出す演算.
- 直積:2つの表の行・列を全て組み合わせる演算. 取り出した結果の表の行数は2表の行数を掛け合わせた数,列数は 2表の列を足し合わせた数となる.
- 射影:表中の列を取り出す演算.
- 選択:表中の行を取り出す演算.
- 結合:定義域が等しい列を介して2つの表をつなぎ合わせる演算.
- 商:割るほうの表の行がすべて含まれる行を,もう一方の表から選び出し, 割るほうの表の列を除いたもの.
SQL 言語
3つの役割
- DML (Data Manipulation Languate):データ操作言語
- DDL (Data Definition Language):データ定義言語
- DCL (Data Control Languate):データ制御言語
主な SQL の機能
- DML (Data Manipulation Languate)
SELECT:行の問い合わせ INSERT:行の挿入 UPDATE:行の更新 DELETE:行の削除
CREATE:実表・ビュー表などの定義 ALTER:実表・列などの変更 DROP:実表・ビュー表・列などの削除
GRANT:権限の付与 REVOKE:権限の削除 COMMIT:コミット ROLLBACK:ロールバック
ホスト言語と SQL の連携
SQL 言語と連携させるプログラミング言語をホスト言語という.
その方法としては,次の3つ.
- モジュール呼び出し:SQL 文で記述されたモジュールを他の言語から呼び出して使う方法.
- 埋め込み SQL:他の言語のコードの中に SQL 文をそのまま埋め込む方法
- 動的 SQL:アプリケーションを実行する際に SQL 文を生成する方法.
SQL
SQLに関しては以下を参照。