5年後期のデータベース(選択)の授業の最初ということで、 シラバスやガイダンスといった説明の後、データベースの利便性の導入を説明した。
最初に、JABEEで学習・教育目標を決めているけど、本科学生の学習・教育目標が 不明確ということで、本科の内容を少し変更された。特に4,5年生は、 本科学生かつJABEE対象ということで、2つの学習・教育目標(言い回しが微妙に違うだけ) が記載されている。
授業の方針などを話した後、データベースの利便性を説明するために、 1行1件可変長データでは、while+fscanf+if+処理では、シーケンシャルしかできず、 O(N)にしかならない話をする。速度向上のためには、2分探索などが必要であり、 ランダムアクセス機能が重要であることなどを説明する。 データベースシステムを使わない場合、ランダムアクセスをどのようにするかということで、 fseek+freadなどのC言語の関数を説明する。(参考:昨年度の初回内容)
しかしながら、fseek+freadでランダムアクセスのできる処理が書けたとしても、 以下のような問題が残っている。これらの問題が行ないようにするために、 データベースシステムを使わずにプログラムを書こうと思ったら、 プログラマーには大変な負担となる。
- OSが落ちた場合に処理が中途半端にならない原子性(Atomicity)
- データがあってはいけない値にならない整合性(Consistency)
- マルチタスクで複数の問い合わせがあった場合の、排他制御の重要性(Isolation)
- データが消失しない耐久性(Durability)