RDB
増永教授のDB特論⑥
増永教授のDB特論⑤「3NF 分解と関数従属性保存」
1. はじめに
リレーショナルデータベース(RDB)を設計するにあたり,「リレーションは第 3 正規形(3NF)にしましょう」とはよく言われることです.リレーションの正規化理論によると,3NF への分解が情報無損失であることは間違いのないことですが,その際,関数従属性は保存されるのか,されないのか?このことについて,どうも不確かな認識が流布しているのではないか?と思われる事例に遭遇したので,この記事を書く気になりました.
増永教授のDB特論④「候補キーの見つけ方」
1. はじめに
SQL でテーブルを定義するときに PRIMARY KEY や UNIQUE を指定すると思いますが,皆さんはリレーション(スキーマ)のキー(key)を一体どのようにして見つけていますか?
そもそも,「キーとはタップルの一意識別能力を有する属性の極小組」であることは,リレーショナルデータモデルを学んだ人ならばデータベースのイロハといった事項でしょうが,具体的にリレーション(スキーマ)と所与の関数従属性の集合が指定されたときに,キーを求めなさいと言われると,結構難儀する場合もあるのではないか,と思います.
本稿では,次に示す 3 つの問題について改めて論じてみます.
- 候補キーを 1 つ見つける.
- 候補キーをすべて見つける.
- 候補キーの数の上限は?