Previous: データベースの論理設計
Up: データベースの論理設計
Next: 「テーブル」の満たすべき最低条件 第一正規形
Previous Page: データベースの論理設計
Next Page: 「テーブル」の満たすべき最低条件 第一正規形
これまで、一通りSQLのコマンドを見てきた。権限の弱いユーザーのコマンドから権限
の強いユーザーのコマンドへという、本書の叙述の順序に従って、基本的には、select
を中心に、データベースからデータを読みだそうとする一般のユーザーを想定して説明
を行ってきた。しかし、前章の後半に登場した、create tableやcreate databaseコマン
ドは、データベースの作成者が使用するコマンドであった。
本章では、データベース作成者の立場から、もう一度、データベース作成の過程を振り
返って見ることにしよう。
リレーショナル・データベースでは、データベースを作成するということは、とりもな
おさず、テーブルを作成することである。どのような種類のテーブルを作って、そこに
どの様な情報を持たせるかを決めることを、「データベースの論理設計」と呼ぶ。
データベースの論理設計、とりわけ、テーブルの設計によって、データベースの性能は
大きく変わって来る。この設計を誤ると、性能どころか、最悪の場合には、様々の矛盾
が噴き出して、データベースとしては使えなくなることさえある。テーブルの設計は、
実践的にきわめて重要な意味を持っている。
リレーショナル・データベースのテーブルとして好ましくない性質を持つテーブルを、
そのテーブルが持っている情報を変えずに、他の適当なテーブルに変えることを、
「テーブルを正規化する」と呼ぶ。では、どのような性質が「好ましくない」のであろ
うか? また、「情報を変えない」というのは、どのような意味なのであろうか?
本章では、「よりよいテーブル」の設計の為には、経験と直観に頼るだけではなく、
その背後に、理論的な裏付けが必要であることを示そうと思う。
前章では、SQLの処理系に依存しない形でサンプルを選んできた。データベース設計の 一般的な原則を述べた、本章の部分は処理系には依存していない。しかし。実際に データベースを定義する部分では、SYBASE上でのオペレーション例をあげていること を、予めお断りしておく。
maruyama@wakhok.ac.jp