私の中で今、集合論が熱い。
class→集合やん
継承→集合やん
配列→集合やん
文字列→集合やん
メンバー変数→インスタンスの集合やん
自然数→集合やん
型→集合やん
RDB→集合やん
テーブル→属性の集合やん
リレーション→aRbの集合やん
私の中で今、集合論が熱い。
class→集合やん
継承→集合やん
配列→集合やん
文字列→集合やん
メンバー変数→インスタンスの集合やん
自然数→集合やん
型→集合やん
RDB→集合やん
テーブル→属性の集合やん
リレーション→aRbの集合やん
書きかけ
オブジェクト指向的な発想では、データベースにpersonというテーブルがあったときに、personテーブルのカラムとしてnameを持つことになる。そして、ソフトウェア開発の現場ではしばしば「personはnameを持つ」と呼ぶ。したがって「nameはpersonに属する」と認知されている。
しかし、発想を逆転すると、「あるpersonの個体(つまりレコード)は、あるnameの個体の集合に属する」という見方ができる。具体的かつ日本語にすれば、「personの個体であるところの田中さんは、nameの個体であるところの"田中"という集合に属している」。
上記をテーブルにするならば、personテーブル、nameテーブル、
ソフトウェア開発ではしばしば、「テーブル間の関係が1対1であると思われていたが、実は1対多だった」あるいは、「実は多対多だった」ということが発生する。実際、多くのプログラマーの認知に反して、人と名前の関係は1対1ではない。