2012年4月17日火曜日

リレーショナルデータベース : 川嶋備忘録


データベースについての記事です
データベース=DBという略語を使っていきます

データベース(DB)@wikipedia
特定のテーマに沿ったデータを集めて管理し、容易に検索・抽出などの再利用をできるようにしたもの

wikipediaによると現在はほぼDB = リレーショナル (関係) データベースのようです
■DB分類
階層型DB : 木構造
ネットワーク型DB : グラフ構造
リレーショナルDB (RDB) : 表形式
オブジェクト指向DB (OODB) : データと操作を一体化

個人的にもDBというと(excel的な)表形式をイメージするので、
なるほどそりゃ主流は関係DBだよなと思います
(OODBはわからないですが・・・)
つまり簡単に言うと、"RDB = 表+管理機構"、とかでしょうか

ちなみにDBで有名な (だと自分が思っている)
Oracle Database、Microsoft SQL Server、MySQLなどはRDBです
またMySQLはフリーです
(いつか使ってみて感想とか書ければと思います というか使ったけど忘れました)


書籍の場合は巧妙で独創です。

■RDBの行と列、属性
RDBでは、1つの行は1つのデータに対応します
逆に表の列は、そのデータの持つ性質的なものに対応します
この性質を"属性"という (その列が何を意味するのか)

■主キー
データベース内から、ある1つのデータだけを探しあてて、そのデータのある属性(列)の値は何かを調べる(属性を一意に特定する)、という機能がないと困ります
そのためには、主キー(候補キー)の概念が必要です 定義は以下の通り

候補キー : すべての属性を一意に特定するような属性 (or属性の組で最小なもの)
主キー : 候補キー かつ NULLを含まない

今回はNULLの話は飛ばしますので無視してください
まとめると、
主キー、つまりその属性で他のすべての属性の値が決まるようなものが必要
基本的には、商品IDとか会員番号とかにあたるのでしょう

ただし場合によっては、1つの属性だけでは、一意に決められない場合があります
その場合が上のオレンジ色のor以降の部分で、2つ以上の属性の組を主キーにします
※下で出てきます()


で調査レポートを書き込む方法

■正規化
リレーションの正規化@wikipedia
RDBにおいて、正規形と呼ばれる形式に関係 (リレーション) を準拠させることにより、
データの一貫性の維持と効率的なデータアクセスを可能にするリレーション設計を導くための方法

(この説明はあまり自信がないです 誤りが多いかもしれません)
正規化とは、表から冗長性を排除し、従属性の強い項目ごとに表を作る (分割する) こと
まとめられるところはまとめて、データ量を小さくしようということだと思います?
以下の3つの段階が有名 第1→第2→第3という順に正規化を進める
・第1正規形 : 1つのセルにデータは1つだけ 繰り返し排除
・第2正規形 : 全属性が主キーに完全関数従属 ある主キーだけに依存するもので表を分割
・第3正規形 : 推移的関数従属の排除

●第1正規形

上図のように繰り返しがあるとき、下図のように行を分割します


どのように私はリネージュ2の結晶を得るのですか

●第2正規形
従属は、A→B、Aが決まればBが決まるということ (※A、Bは属性)
ここでは"ある主キーだけに依存するもので表を分割"します
ちなみに上図中の赤線の属性が主キーにあたります
会員IDと会員名は伝票IDが決まると決まり、商品名は商品IDで決まります
注意が必要なのは購入数で、これは伝票IDと商品IDが両方決まらないと決まりません(の話)

というわけで、表を分割したものがこれです

●第3正規形
推移的関数従属を排除したもの
推移的~は、伝票ID→会員ID→会員名となっているときの、伝票IDと会員名の関係です
1つはさんで従属しています

これを除去するにはまた表を分割します これで終わりです
たしかに、データ量が少なくかつまとまった表群が完成したように思えます

[個人的に気になること、感じたこと]
・正規形にしていくより、最初からちゃんとまとまった表群を作るべき


■SQL
"RDB = 表+管理機構"の管理機構のほうに近い話です
SQL@wikipedia
RDB管理システム (RDBMS) において、データの操作や定義を行うためのDB言語 (問い合わせ言語)
(※今後加筆予定)

[参考文献]
・徹底攻略 応用情報技術者教科書 平成24年度
・よく出るわかる基本情報技術者[午前]問題集 日本経済新聞社



These are our most popular posts:

メールマガジン:ドッグ・リレーション通信/既刊

G.レトリバーのカヤン Tタッチのプラクティショナー研修では、クライアントを招いてT タッチコンサルテーションの練習をする時間があります。 今回のご紹介するクライアント の1人&1匹は、犬訓練士のバーン(飼い主・男性)と3才のG.レトリーバー、カヤン(♂) です。 read more

【高等学校教科書:商業010情報処理】とうほう/東京法令出版

1・バッチ処理とリアルタイム処理; 2・情報通信ネットワーク; 3・クライアントサーバ システム. 3 ハード .... 1・テーブルの作成; 2・リレーションシップの設定; 3・クエリの作成 ; 4・選択クエリをもとにしたフォームの作成; 5・データの入力; 練習問題・実習問題. [6] 受注 ... read more

栃木県那須塩原市のサッカークラブ|FC西那須21アストロ|よくある質問

練習は何曜日にやっていますか? 毎週火・水・金曜日の週3回です。那須塩原市立東 小学校で行っております。陽の長さにより時間は異なりますので詳しくは「Information」 ページの内「ジュニア」カテゴリーに練習日時を更新しております。 Q3.月謝はいくらです か ... read more

メールマガジン:ドッグ・リレーション通信/既刊

「Tタッチって何?」です。 Tタッチは日本のホリスティック事情では、まだ"知る人ぞ知る" 的な存在。 マッサージの一種かなにか?という疑問を ... 私がドッグリレーションの マッサージのクラスで必ずお話している内容で● コントロール● 促し法の違いが あります。 クラスの中 ... これはグランドワーク(歩く練習)ですが、様々な非日常的な 刺激を与えるような練習をすることで、徐々に姿勢を正して歩くことができるようになり ました。 これだけ ... read more

0 件のコメント:

コメントを投稿