ページ

2011年4月10日日曜日

データベース設計の基礎の基礎。

概念モデル→リレーショナルモデル→正規化。

主キーとは、その値でデータを特定できるもののこと。

外部キー(FK)とは、ほかのテーブルの主キー。

第1正規形はテーブルの列がそれ以上分割できない値のみをもつテーブル。
つまり、列の値が、一つの行に複数含まれている場合は、ほかのテーブルに分割する。

第2正規形はテーブルが第1正規形であり,なおかつ主キーである列の値によって主キーではない列の値が一意に特定できるテーブル。
つまり、主キーによって決まるんなら重複いらんやん、別テーブルでええやんて考え。


第3正規形は,テーブルが第2正規形であり,なおかつ,主キーではない列が関数従属性をもたないテーブル。
つまり、主キーじゃない列によってほかの値が決まるんなら重複いらんやん、別テーブルでええやん、て考え。


で、つづいてデータ型の設計。数値データ型、文字データ型、日付・時刻データ型、ビット・バイナリデータ型、論理値データ型などがある。


制約について。
検査制約。正の値のみ、の例CREATE TABLE products (

    id integer,
    name text,
    price integer CHECK (price > 0)
);
非NULL制約
CREATE TABLE products (
    id integer NOT NULL,
    name text NOT NULL,
    price integer NOT NULL CHECK (price > 0)
);
一意制制約
CREATE TABLE products (
      id integer UNIQUE NOT NULL,
      name text NOT NULL,
      price integer NOT NULL CHECK (price > 0)
  );
主キー制約(一意制制約と非NULL制約の合わせ技)
CREATE TABLE products (
      id integer PRIMARY KEY,
      name text NOT NULL,
      price integer NOT NULL CHECK (price > 0)
  );
外部キー制約。外部キーとしてどう振る舞うか。
CREATE TABLE order_details (
      order_id integer REFERENCES order (id),
      product_id integer REFERENCES product (id),
      quantity integer CHECK (quantity > 0),
      PRIMARY KEY (order_id, product_id)
  );

結合とかトランザクションとかその辺はまた今度。

今日は終わり。

0 件のコメント:

コメントを投稿