RDB

増永教授のDB特論⑤「3NF 分解と関数従属性保存」

1. はじめに

 リレーショナルデータベース(RDB)を設計するにあたり,「リレーションは第 3 正規形(3NF)にしましょう」とはよく言われることです.リレーションの正規化理論によると,3NF への分解が情報無損失であることは間違いのないことですが,その際,関数従属性は保存されるのか,されないのか?このことについて,どうも不確かな認識が流布しているのではないか?と思われる事例に遭遇したので,この記事を書く気になりました.

続きを読む

増永教授のDB特論④「候補キーの見つけ方」

1. はじめに

 SQL でテーブルを定義するときに PRIMARY KEY や UNIQUE を指定すると思いますが,皆さんはリレーション(スキーマ)のキー(key)を一体どのようにして見つけていますか?
 そもそも,「キーとはタップルの一意識別能力を有する属性の組」であることは,リレーショナルデータモデルを学んだ人ならばデータベースのイロハといった事項でしょうが,具体的にリレーション(スキーマ)と所与の関数従属性の集合が指定されたときに,キーを求めなさいと言われると,結構難儀する場合もあるのではないか,と思います.
 本稿では,次に示す 3 つの問題について改めて論じてみます.

  • 候補キーを 1 つ見つける.
  • 候補キーをすべて見つける.
  • 候補キーの数の上限は?

続きを読む