おちくんのきままなプライベートブログ

はてなダイアリーから移行しました。きままに書いていきます。

進化するリレーショナルデータベース


最近,工学部DBの開発に関わるようになって,他の先生が設計してくれたDBを操作することになった.データベースはもちろん,リレーショナルDB(RDB).PostgeSQLと呼ばれるフリーなソフトだ.マイクロソフト派の僕としては,今までRDBといえば,SQLサーバかAccessを利用していた.で,これらはよく使っていたので,だいたいの要領はわかっていたのだが,提供されたDBを調べていくうちに,???なところに遭遇した.ずばりいうと,データの正規化がされていない.「データ表現が間違っているのかな?」と思ったがどうやらそうではないことが明らかになった.

RDBの基本といえば,データの正規化.1つのデータフィールドに複数のデータが含まれることはありえない.いや,そうなった場合は,正規化してそれを防ぐ...これが,RDBの大原則だったはず.が,最近のSQLの規格(SQL99)ではそうではないらしい.データ型に,「配列」というのが新たに加わった.つまり,1つのフィールドに複数のデータを入れてもよいことになったのだ.もちろん,SQL文でもそれに対応している.

便利といえば,便利だ.が,正規化の原則を崩すことに何か違和感も感じる.これから,RDBを学生に教えるときはどうすればいいのだろう?正規化は教えなくてもいいのかな?また,どういう時に配列型を使えばいいのだろう?Access2000やSQLサーバ7.0では,対応していないようだし.(その点,PostgreSQLは先進的だな.オープンなシステムゆえの利点か...)

とりあえず,情報工学を専門とするからには,こういった最新の技術動向にはちゃんと把握していかないとまずい気がする.