fc2ブログ

データベースをつつく3-関係モデル。貴方と私の関係は?

データモデルには、階層モデル、ネットワークモデル、関係モデルの三つがある事はもう言ったよね?今回はその中でも、一番有名で広く使われている関係モデルをつつくピヨ♪
関係モデルというのは、E.F.Codd氏が提唱した数学の集合理論に基盤を置くモデルで、フラットな表(テーブル)をデータ構造に採用したデーモデルピヨ♪関係モデルは一番成功したモデルで、みんながよく使っている、SQL Server、Oracle、MySQL・・・などはこのモデルによって作られたDBMSなんだ。だから、関係モデルは非常に重要な概念ピヨッ♪こういった概念の学習、楽しくないと感じる人が多いだろうけど、無味乾燥な知識じゃないし、分かったら楽しいから絶対マスターした方がいいピヨ♪じゃあ、前置きはこれぐらいにして、もっとつついていくピヨ♪

【特徴】
関係モデルの特徴は、三つあるピヨ♪。先ず一つ目は、対象となる世界をテーブルで表現する事ピヨ。二つ目は、テーブルの関係(リレーション)を重視する事ピヨ。三つ目は対象世界にある情報を数学の集合理論で捉える事ピヨ。この三つの特徴が関係データモデルを強力なものにしているんだ。数学に抵抗感を感じる人が居るかもしれないけど大丈夫、意外と感覚的に分かるピヨ♪それに、ボクの経験上、数学としての集合理論に拘り過ぎると、現実の曖昧さが影響してかえってシステム設計が出来ないピヨ。だから気楽に行こう♪考えるんじゃなくて感じよう♪
特徴を軽くつついたから、今度は関係モデルの概念を一つずつつついていくピヨ♪

バサバサバサバサバサバサバサバサバサバサバサバサバサバサバサバサバサバサバサバサバサバサ

【属性】
情報が持つ性質の事を属性と呼ぶピヨ♪例えば会員を管理するシステムを作る場合、テーブル館員は、会員番号、名前、住所、性別、生年月日・・・などの項目がが必要だよね。この項目を属性と呼ぶんだ。ちなみに、名前=山田太郎などのある属性の値を属性値と呼ぶピヨ♪

【定義域(domain)】
属性値がとりうる範囲の事を定義域(domain)と呼ぶピヨ♪。先ほどの例で言うと、名前と住所は「文字列」だよね。オブジェクト指向に慣れている人は、型のようなものだと思えばいいピヨ♪型との違いは、型はデータと手続きがセットだけど、定義域はデータと制約だという事ピヨ。

【関係】
複数の定義域の直積結果を定義域と呼ぶピヨ♪これは難しい概念だから例をあげるピヨ。例えば、先ほどの会員テーブルの他に、商品テーブルを参照する売り上げテーブルがあったとする。この場合、会員と商品の関係は売上という事ピヨ。

【候補キー】
複数ある関係の中で、1つの値を識別するための属性を候補キーと呼ぶピヨ♪候補キーは関係の中に複数あってもいいピヨ。

【主キー】
候補キーのうちどれか一つの主となるキーを主キーと呼ぶピヨ♪この概念は正規化の回で詳しくつつくピヨ♪

【外部キー】
テーブル間に参照関係があるとき、参照する側の項目を外部キーと呼ぶピヨ♪この概念も正規化の時に詳しくつつくピヨ♪


今回は軽く関係モデルの特徴と概念をつついたピヨ♪だから、今はあまり理解できなくてもいいピヨ♪ 次回からはもっと深く関係モデルをつついていくピヨね。関係モデルが分かったら設計能力が飛躍的に上昇するからお楽しみに♪
スポンサーサイト



テーマ : 情報処理技術
ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

インドリ

Author:インドリ
みなさん、はじめまして、
コンニチハ。

ボクは、無限の夢(infinity dream)を持つネタ好きな虹色の鳥インドリ(in dre)です。
色々な情報処理技術を啄ばむから楽しみにしてね。

http://twitter.com/indori
は別人による嫌がらせ行為です。
私とは関係ないので注意して下さい。
次はなりすましブログなどをするかもしれませんが、ここ以外でブログをするつもりがないので、ここ以外にインドリのブログがあったとしても無視してください。


何度言っても分からない人がいるので、ここにコメント欄へ書き込むときの注意事項を書きます。


一、社会人としてのマナーをわきまえましょう。
一、妄想に基づく書き込みを止めてください。
一、暴言の類は書かないで下さい。
一、某誹謗中傷サイトの書き込みは彼らの妄想に基づく書き込みですから無視して、ここへ書き込まないで下さい。
一、コメント書く前に他のコメントよく読んでから行って下さい。
一、言いがかかり等の行為を禁止します。
一、その他常識的に考えて迷惑なコメントはしないで下さい。


以上のルールを守れない人のコメントは削除します。



利用上の注意
ここに紹介してある文章およびプログラムコードは正確であるように心がけておりますが、内容を保証するものではありません。当サイトの内容によって生じた損害については、一切の責任を負いませんので御了承ください。


執筆したCodeZineの記事


【VB.NETで仮想CPUを作ろう】

  1. VB.NETで仮想CPUを作ろう
  2. レジスタの実装
  3. 仮想CPUのGUI化
  4. テストドライバの改良
  5. CPUの基礎動作の実装
  6. MOV命令の実装
  7. ADD命令実装
  8. SUB命令実装
  9. INC命令&DEC命令の実装と命令長
  10. MLU命令の実装とModR/Mについて
  11. DIV命令の実装とイベント設計について
  12. 機械語駆動式 関数電卓を作ろう!
  13. 機械語駆動式 関数電卓を作ろう! 解答編(前半)
  14. 機械語駆動式 関数電卓を作ろう! 解答編(後半)


【仮想ネットワーク実装でTCP/IPを学ぼう】
  1. TCP/IPの基礎と勘所
  2. ネットワークアクセス層の勘所
  3. インターネット層の勘所
  4. トランスポート層の勘所
  5. アプリケーション層の勘所
  6. セキュリティの基礎と仮想ネットワークの仕様
  7. GDI+と独自プロトコルの定義



【並列化】
インテル Parallel Studioを使って並列化プログラミングを試してみた
並列プログラミングの効率的なデバッグを実現する「Parallel Inspector」


【TBBシリーズ】
  1. インテル スレッディング・ビルディング・ブロックの概要
  2. インテルTBBから学ぶループの並列化
  3. スレッドセーフとインテルTBBのコンテナ
  4. インテルTBBのスレッドクラス


【OpenMPシリーズ】
  1. OpenMPの基礎構文
  2. OpenMPの実行時ライブラリと並列ループ
  3. OpenMPのメモリモデルとfork- joinモデル

最近の記事
最近のコメント
月別アーカイブ
カテゴリ
Ada (9)
COBOL (5)
C (9)
C++ (11)
C# (370)
D (25)
Java (8)
Perl (1)
Ruby (14)
PHP (2)
Boo (2)
Cobra (2)
LISP (6)
F# (33)
HTML (0)
XHTML (0)
CSS (0)
XML (0)
XSLT (0)
Scala (4)
WPF (0)
WF (2)
WCF (0)
LINQ (4)
MONO (5)
Linux (0)
MySQL (0)
ブログ内検索
リンク
最近のトラックバック
RSSフィード
ブロとも申請フォーム

この人とブロともになる

QRコード
FC2カウンター