BreathTake/ホームページ作成の小技・MySQL篇

*
ホームページ作成の小技タイトル・MySQL篇・イメージ写真
MySQLとは?

データベース

■データベースで使用されるデータは、下記のような構成になっています

表(テーブル)
関係(リレーション)
@フィールド1
Acolum(行)
B属性(ドメイン)
@フィールド2
Acolum(行)
B属性(ドメイン)
@フィールド3
Acolum(行)
B属性(ドメイン)
@フィールド4
Acolum(行)
B属性(ドメイン)
@レコード1
Arow(列)
B組・タプル
内容 内容 内容 内容
@レコード2
Arow(列)
B組・タプル
内容 内容 内容 内容
@レコード3
Arow(列)
B組・タプル
内容 内容 内容 内容
@レコード4
Arow(列)
B組・タプル
内容 内容 内容 内容

■データベースで使用されるデータは、いろいろな呼び名で呼ばれておりますが、一般的には、テーブル・レコード・フィールドという呼び名が使われています。
(マイクロソフト・アクセスでもこの名称で呼ばれています)
 リレーショナル・データベースでは、このテーブルをもとにして「関係演算」を実施して行きます。

■選択(特定のレコードを抽出)

表(テーブル)
関係(リレーション)
@フィールド1
Acolum(行)
B属性(ドメイン)
@フィールド2
Acolum(行)
B属性(ドメイン)
@フィールド3
Acolum(行)
B属性(ドメイン)
@フィールド4
Acolum(行)
B属性(ドメイン)
@レコード1
Arow(列)
B組・タプル
内容 内容 内容 内容
@レコード2
Arow(列)
B組・タプル
内容 内容 内容 内容
@レコード3
Arow(列)
B組・タプル
内容 内容 内容 内容
@レコード4
Arow(列)
B組・タプル
内容 内容 内容 内容

■射影(特定のフィールドを抽出)

表(テーブル)
関係(リレーション)
@フィールド1
Acolum(行)
B属性(ドメイン)
@フィールド2
Acolum(行)
B属性(ドメイン)
@フィールド3
Acolum(行)
B属性(ドメイン)
@フィールド4
Acolum(行)
B属性(ドメイン)
@レコード1
Arow(列)
B組・タプル
内容 内容 内容 内容
@レコード2
Arow(列)
B組・タプル
内容 内容 内容 内容
@レコード3
Arow(列)
B組・タプル
内容 内容 内容 内容
@レコード4
Arow(列)
B組・タプル
内容 内容 内容 内容

■結合(複数のテーブルをフィールドで結合)


下の例ではフィールド1とフィールド3を結合

表(テーブル)
関係(リレーション)
@フィールド1
Acolum(行)
B属性(ドメイン)
@フィールド2
Acolum(行)
B属性(ドメイン)
@フィールド3
Acolum(行)
B属性(ドメイン)
@フィールド4
Acolum(行)
B属性(ドメイン)
@レコード1
Arow(列)
B組・タプル
内容 内容 内容 内容
@レコード2
Arow(列)
B組・タプル
内容 内容 内容 内容
@レコード3
Arow(列)
B組・タプル
内容 内容 内容 内容
@レコード4
Arow(列)
B組・タプル
内容 内容 内容 内容

表(テーブル)
関係(リレーション)
@フィールド1
Acolum(行)
B属性(ドメイン)
@フィールド2
Acolum(行)
B属性(ドメイン)
@フィールド3
Acolum(行)
B属性(ドメイン)
@フィールド4
Acolum(行)
B属性(ドメイン)
@レコード1
Arow(列)
B組・タプル
内容 内容 内容 内容
@レコード2
Arow(列)
B組・タプル
内容 内容 内容 内容
@レコード3
Arow(列)
B組・タプル
内容 内容 内容 内容
@レコード4
Arow(列)
B組・タプル
内容 内容 内容 内容

正規化

非正規形 エクセルなどの表はこの形式で作成されることが多いです

伝票番号 受付日 顧客コード 顧客名 JAN 単価 数量 JAN 単価 数量
0001 2015
-01-01
B-01 ○○商事
株式会社
4901750
412111
250円 10個 4936790
440268
500円 30個

第一正規形 繰り返し書きこんでいる共通部分を分けます


@繰り返し項目を切り分けます

伝票番号
(共通)
受付日
(共通)
顧客コード
(共通)
顧客名
(共通)
JAN 単価 数量
0001 2015-01-01 B-01 ○○商事株式会社 4901750412111 250円 10個

伝票番号
(共通)
受付日
(共通)
顧客コード
(共通)
顧客名
(共通)
JAN 単価 数量
0001 2015-01-01 B-01 ○○商事株式会社 4936790440268 500円 30個

A切り分けた繰り返し項目を分割させて別表にします

伝票番号 受付日 顧客コード 顧客名
0001 2015-01-01 B-01 ○○商事株式会社

伝票番号 JAN 単価 数量
0001 4901750412111 250円 10個

伝票番号 JAN 単価 数量
0001 4936790440268 500円 30個

Bこの場合、赤が主キーとなります
伝票番号0001で検索すると、非正規形の値が全て表示可能になります。

第二正規形


■繰り返し項目を切り分けます

伝票番号 受付日 顧客コード 顧客名
0001 2015-01-01 B-01 ○○商事株式会社

伝票番号 JAN 数量
001 4901750412111 10個

JAN 単価
4901750412111 250円

伝票番号 JAN 数量
001 4936790440268 30個

JAN 単価
4936790440268 500円

第三正規形


■主キー以外のフィールドに主従関係があれば取り出します

伝票番号 受付日 顧客コード
001 2015-01-01 B-01

顧客コード 顧客名
B-01 ○○商事株式会社

伝票番号 JAN 数量
001 4901750412111 10個

JAN 単価
4901750412111 250円

伝票番号 JAN 数量
001 4936790440268 30個

JAN 単価
4936790440268 500円

Copyright © 2011 BreathTake All Rights Reserved