「データベースはブラックボックス。どんなSQL文を投げたらどんな結果が返ってくるかさえ知っていればよい」---そう思っている人も多いかもしれません。確かに,最近の市販のリレーショナル・データベース管理システム(RDBMS)にはGUIベースの管理ツールなどが付属し,データベースそのものについての深い知識が求められることは昔に比べれば少なくなりました。メモリーやディスクなどのハードウエア・リソースが増えて,開発者のスキル不足が表面化しにくくなったこともあるでしょう。 しかし,本物のソフトウエア・エンジニアを目指すのであれば,データベースが動く仕組みを学ぶことは避けて通れません。「SQL文を受け取ってから結果を返すまでにRDBMSがどんな処理をしているのか」「データ・ファイルの物理構造はどうなっているのか」「インデックスはどのように格納されているのか」——。こうした知識がないと,パフォーマンスな