リレーションとリレーションシップの誤用に注意¶
チェック¶
- [ ] 本文を確認した
- [ ] 概要を確認した
- [ ] タグを確認した
- [ ]
inbox/直下へ移行した
概要¶
RDB やデータモデリングで「リレーション」と「リレーションシップ」を混同しないよう注意する記事。 E. F. Codd の relational model における relation は、あるテーブルのある時点の全 tuple の集合を指す。 relationship は 2 つの relation 同士の関連であり、relation そのものとは別概念。 日本語の「関係」という訳語が両者の混同を招いている、という指摘。
本文¶
RDB の理論的枠組みは、E. F. Codd の 1970 年の論文で示された。 そこで使われる relation が relational database の呼称の由来。
relation は、1 個の table に格納された rows、つまり tuple の集合を指す。 記事では「あるテーブルのある瞬間における全行のまとまり」が relation だと説明している。
一方で relationship は、2 つの relation 同士の関連。 friend と friend の間に friendship があるように、relation と relation の間に relationship がある。 この 2 つを混同すると、relational model の用語の意味が曖昧になる。
誤用の背景には翻訳問題がある。 relational model は「関係モデル」と訳されることが多いが、日本語の「関係」では relation なのか relationship なのか区別しにくい。 データモデリングでは relation を「関係」、relationship を「関連」と呼び分けることもあるが、自然な日本語として定着しているとは言いにくい。
古い MS Access でも、table 間の relationship を「リレーション」と呼ぶ誤用があったとされる。 こうした背景があるため個々の誤用を過度に責めるより、Codd の relational model への理解として区別しておきたい、という記事。
要点¶
- relation は table の tuple 集合であり、relationship は relation 間の関連。
- RDB の relational は relationship ではなく relation に由来する。
- 日本語の「関係」は両者を混同しやすい。
- データモデリングでは用語を正しく使わないと概念理解が崩れる。