親子の関係(1)
以下に徳川家の家系の一部を示す。
家康 | ||||||||||||||||||||
信康 | 秀康 | 秀忠 | 義直 | 頼宣 | 頼房 | |||||||||||||||
家光 | 忠長 | 正之 | 光貞 | 頼純 | 頼重 | |||||||||||||||
網重 | 綱吉 | 家綱 | 綱教 | 頼職 | 吉宗 | 綱条 | ||||||||||||||
この表は、上下に接している欄が親子関係であることを表している。たとえば、家光、忠長、正之は秀忠の子である。
このような親子関係をデータベースであらわすにはどうしたらよいだろうか?
データベースは行と列からなる表の形ですべてのデータをあらわすということをすでに学んだ。親子関係は、専門用語でいうと「木構造」というデータ構造を持っている。したがってこのままではデータベースとして表すことができない。しかし、少し工夫をすれば、このような「木構造」のデータは簡単にデータベース化することができる。またそのデータを用いて、いろいろなクエリを自由自在に作ることも可能だ。
では、まずどのようなデータベースを作ればようか考えなさい。(次ページに答えがあるが、しばらく考えてから見るようにしなさい)
そして以下のようなクエリはどのように表せばよいかを考えなさい。(これも答えが示してあるが、授業中によいというまでは自分で考えて、それから答えを見るようにしなさい.)
- 家光の親を出力する。
- 家康の孫をすべて出力する。
- 家光のいとこを出力する。
- 各人毎に甥の数の一覧を出力する。