データベース

データベース

後期講義用データベース

講義で使用しているデータベースが破損してしまった人は、以下をphpmyadmin上のSQL欄に貼りつけて実行してください。dbkiso2というデータベースが新規に作成されます。同名のデータベースが既にある場合はあらかじめ削除してください。S...
データベース

自然結合の応用

WHERE句で絞り込むテーブルを結合した場合でも、WHERE句で抽出されるレコードを絞り込むことができます。WHERE句の条件の書式は単一のテーブルの場合とまったく同じですが、絞り込みの条件式に使用するカラムはただ一つ特定できるように、必要...
データベース

自然結合

等結合は、結合に用いたカラムが2つずつ表示されており冗長です。これを排除したものが『自然結合』です。自然結合には、NATURAL JOIN句を用います。構文SELECT カラム FROM テーブル1 NATURAL JOIN テーブル2NA...
データベース

内部結合(等結合)

複数の関連づけたテーブルから、条件を満たした組み合わせのみを取り出す結合を『内部結合』といいます。内部結合を行うには、SELECT構文の中でINNER JOIN句を使います。構文SELECT カラム FROM テーブル1 INNER JOI...
データベース

直積結合

セットアップ用SQLはこちらSQLCREATE TABLE student_list ( student_id char(4), student_name varchar(15), PRIMARY KEY(student_id));CREA...
データベース

複数のテーブルにレコードを挿入する

次に、以下のレコードを挿入しましょう。外部キー制約があってもレコードを挿入するINSERT INTO構文には変化はありません。ただし、参照する側のレコードよりも先に参照される側のレコードを挿入しなければなりません。今回の例の場合は、【sub...
データベース

制約を定義する

CREATE TABLE構文は既に学びましたが、正規形で分割されたテーブルを使うための『外部キー制約(参照制約)』他、いくつか新たな構文について解説します。外部キー制約(参照制約)ある列が外部キーであることを定義するには、CREATE TA...
データベース

第3正規形

第3正規形まだ残っている関数従属性たとえば、【科目】に担当講師の情報を追加することを考えます。科目(科目ID、科目名、担当講師ID、担当講師名、内線番号)これで必要な情報を格納できているように見えます。【科目】の主キーは『科目ID』1つだけ...
データベース

第2正規形

第2正規形部分関数従属と完全関数従属先ほどの【科目履修状況】をもう一度見てみましょう。テーブルの構造を表すと、科目履修状況(学籍番号、学生名、科目ID、科目名)でした。この表の候補キーは(学籍番号、科目ID)です。つまり、すべての属性は(学...
データベース

関数従属

正規形の話を先に進める前に、重要な概念である『関数従属』について説明します。厳密な説明は難しいので省きますが、『属性(または属性の組)Xの値が判れば、属性(または属性の組)Yの値が一つに特定できる』ということが言えるとき、YはXに関数従属す...