Open3
『Database Design and Implementation』読書メモ
ピン留めされたアイテム

書籍情報
Database Design and Implementation: Second Edition / Edward Sciore [著]
February 28, 2020 / Springer [出版]
本書の特徴
- Derby という Java によって実装された Relational Database Management System (RDBMS) をベースにして、学習目的のために簡略化した SimpleDB という RDBMS を実装することで、Database Engine の内部構造を学ぶことができる。
- 各章の章末には、よりアドバンスドなトピックについての課題や、熱意ある読者のための読書案内が記載されている。
追記予定
関連情報
-
The SimpleDB Database System
SimpleDB のソースコードのダウンロード先

全体まとめ
追記予定

Chapter 1. Database Systems
-
Database System が満たすべき機能
- データが永続的に保存されること。障害が発生してデータが失われてしまうと、データベースは意味をなさない。
- データの共有されること。同時に多くのユーザーがデータを利用できること。
- データの整合性や正確性が保証されること。データが信頼できないものであれば、データベースは意味をなさない。
- データが非常に大きくなってもそれに耐えること。そのため、データベースは効率的にデータを管理することができる必要がある。
- データベースは使用性が高く、ユーザーが簡単にデータを利用できること。
-
Derby という Java によって実装された Relational Database Management System (RDBMS)
- Derby は、Java で書かれた RDBMS 。Derby は、Apache Software Foundation によって開発されている。
- Derby は標準的は SQL の機能を実装しているため、ソースコードは読みづらく理解し難いので本書では簡略化した RDBMS である SimpleDB を実装する。
-
データベースアプリケーションは、2つの独立した部分からなる
- 1つは UI であり、もう1つは データベースにアクセスするためのコード (Database Engine) である。
- 2つの独立した部分に分けておくことで、柔軟性の高いアプリケーションを作ることができる。
- 例えば、同じ UI であるが、異なるデータベースエンジンを使用できたり、あるデータベースエンジンを使うための UI を複数用意できたりする。
-
JDBC とは
- Java 用のデータベース接続や操作のための API で、データベースエンジンとの通信を確立したり、SQL 文を送信し、結果を受け取ったりする。
- UI とデータベースエンジンの接続には 埋め込まれたもの (embedded) と サーバーベース (Server-Based) のものがある
- 埋め込まれたものは、データベースエンジンがアプリケーションの一部として動作する。アプリケーションが終了すると、データベースエンジンも終了する。
- サーバーベースのものは、データベースエンジンがアプリケーションとは別のプロセスとして動作する。アプリケーションが終了しても、データベースエンジンは動作し続ける。
-
SimpleDB という RDBMS
- 本書で実装する SimpleDB は多くの機能を犠牲にする代わりに、非常にシンプルな実装で理解しやすい。Derby と同じく Java で書かれています。
- 例えば以下のような機能になっています。
- AS キーワードを使ったフィールド名のリネーム機能はない。
- GROUP BY や ORDER BY はサポートされていない。
- AND 以外の論理演算子はサポートされていない。
- ネストしたクエリはサポートされていない。
- 算術演算子や組み込み関数はサポートされていない。
-
*
によるフィールド名の省略はサポートされていない。 - NULL 値はサポートされていない。
- 明示的な JOIN はサポートされていない。
- UNION キーワードはサポートされていない。
- INSERT 文は明示的な値のみをサポートしている。つまり、クエリによる挿入はサポートされていない。
- UPDATE 文は SET 句において、1 つの代入のみをサポートしている。