索引 / 001 JA
Fundamentals of Database Systems(データベースシステムの基礎) cover

コンピュータサイエンス

コンピュータサイエンス

Fundamentals of Database Systems(データベースシステムの基礎)

Ramez Elmasri; Shamkant B. Navathe

英語原題: Fundamentals of Database Systems

概念モデリングと関係モデルから、SQL と設計理論を経て、記憶構造、問合せ処理、トランザクション、新しいシステムまでを扱う包括的なデータベースの教科書。第7版では NoSQL データベースとビッグデータ技術の章が加えられ、著者らによる実体関連モデルと拡張実体関連モデルの詳しい解説も引き続き収められている。

前提知識: 入門的なプログラミングとデータ構造、離散数学、コンピュータ構成の基礎にある程度触れていること。

難易度レベル
中級
学術レベル
学部
databasesrelational modelsqldatabase designtransaction processing教科書

01 / 読書ガイド

読書ガイド

引用

Elmasri, R., & Navathe, S. B. (2016). Fundamentals of Database Systems (7th ed.). Pearson.

章の要約

第7版は12の部にまとめた30章と5つの付録からなり、約1,240ページある。Pearson は、これを学部3~4年次または大学院レベルの1~2学期のデータベース講義の教科書であり、参考書でもあると紹介している。出版社の言葉では、重点は、データベースのモデリングと設計の基礎、データベース管理システムが提供する言語とモデル、そしてデータベースの実装技法に置かれている。Pearson によれば、この版では2つの新しい章と、より多くの実世界の問題が加わった。

第1部、第1~2章:データベースとデータベース利用者、データベースシステムの概念とアーキテクチャ

導入の部で、データベースとは何か、誰が使うのかを示し、続いてデータベースシステムの概念とアーキテクチャを述べる。

第2部、第3~4章:実体関連(ER)モデルによるデータモデリング、拡張実体関連(EER)モデル

概念モデリングは関係モデルより先に置かれ、2章が充てられている。ERモデルと、その拡張である。

第3部、第5~9章:関係データモデルと関係データベースの制約、基本SQL、さらなるSQL:複雑な問合せ、トリガ、ビュー、スキーマ変更、関係代数と関係論理、ERおよびEERから関係への写像による関係データベース設計

関係モデルとその制約に続いて、SQLが2章(基本SQL、次に複雑な問合せ、トリガ、ビュー、スキーマ変更)と、関係代数・関係論理が続く。第9章はERおよびEERスキーマを関係設計に写像し、第2部と結びつける。

第4部、第10~11章:SQLプログラミング技法入門、PHPによるウェブデータベースプログラミング

データベースアプリケーションを書くための2章で、後者は特定のウェブ技術であるPHPに結びついている。

第5部、第12~13章:オブジェクトおよびオブジェクト関係データベース、XML:拡張可能マークアップ言語

オブジェクトおよびオブジェクト関係データベースと、XML。(Pearson の目次は2つ目の題を「XLM」と印刷しているが、誤植とみられる。)

第6部、第14~15章:関数従属性と関係データベースの正規化の基礎、関係データベース設計アルゴリズムとさらなる従属性

本書の設計理論は、プログラミングやオブジェクト・XMLモデルのあとに置かれている。関数従属性と正規化、続いて設計アルゴリズムと、そのほかの種類の従属性である。

第7部、第16~17章:ディスク記憶、基本的なファイル構造、ハッシュ、現代の記憶アーキテクチャ、ファイルの索引構造と物理データベース設計

物理的な層で、記憶装置、ファイルとハッシュ、そして索引構造と物理設計を扱う。

第8部、第18~19章:問合せ処理の戦略、問合せ最適化

問合せがどのように実行され、実行戦略がどのように選ばれるか。

第9部、第20~22章:トランザクション処理の概念と理論入門、同時実行制御技法、データベース回復技法

トランザクション、同時実行制御、回復を、連続する3章で扱う。

第10部、第23~25章:分散データベースの概念、NOSQLデータベースとビッグデータ記憶システム、MapReduce と Hadoop に基づくビッグデータ技術

分散、続いてNOSQLシステムとビッグデータの記憶、さらに MapReduce と Hadoop。Pearson はこの版に2つの新しい章があるとしているが、どれかは述べていない。

第11部、第26~29章:拡張データモデル(アクティブ、時間、空間、マルチメディア、演繹データベース)、情報検索とウェブ検索入門、データマイニングの概念、データウェアハウスとOLAPの概観

さらなるモデルと応用を扱う4章。題に「入門」「概念」「概観」の語が使われており、入門的な扱いであることがうかがえる。

第12部、第30章:データベースセキュリティ

セキュリティの1章が本文を締めくくる。

付録A~E

ERモデルの代替の図式表記、ディスクのパラメータ、QBE言語の概観、階層データモデルとネットワークデータモデルの概観。

主要概念

第1~3部:モデリングと関係モデル

  • ERとEERのモデリング:関係設計より前に行う概念設計。
  • 関係制約、SQL、関係代数:関係モデルとその言語。
  • ERから関係への写像:概念スキーマを表に変換すること。

第4~6部:応用、その他のモデル、設計理論

  • 関数従属性と正規化:優れた関係設計の理論。
  • オブジェクト関係データとXML:単純な表を超えるモデル。
  • SQLプログラミング技法:アプリケーションへのSQLの組み込みと、ウェブ向けのPHP。

第7~12部:実装と新しいシステム

  • ファイル構造、ハッシュ、索引付け、問合せ処理と最適化。
  • トランザクション、同時実行制御、回復。
  • 分散データベース、NOSQL、MapReduce、Hadoop、データマイニング、ウェアハウス、OLAP、データベースセキュリティ。

批判的分析

長所

  • 概念モデリングの深さ。 ERとEERに2章、関係スキーマへの写像に専用の1章が割かれ、付録でもERの代替表記が概観される。これに対し、この一覧にあるもう一つの包括的な教科書は、E-R設計を1章で扱っている。
  • 設計から内部構造までの一本の道筋。 モデリングから関係モデル、設計理論、記憶と索引、問合せ処理、トランザクション、分散まで進むので、2学期にわたる講義の唯一の参考書として使える。
  • 新しいシステムの扱い。 Pearson は2つの新しい章を強調しており、第10部は分散データベース、NOSQLシステム、MapReduce に基づくビッグデータ技術を扱う。
  • 教科書と参考書を兼ねる。 出版社はどちらの用途も想定しており、5つの付録が古い、あるいは専門的な内容(QBE、階層・ネットワークモデル、ディスクのパラメータ)を本文から切り離している。

短所

  • 分量。 1,200ページを超える30章は、1~2学期には多すぎる。教員は取捨選択しなければならない。
  • 特定の技術に結びついた章。 第11章はPHPに結びついており、第12~13章はオブジェクト関係モデルとXMLを扱う。ほかの技術を使う講義では、独自の教材で置き換えることになる。
  • 後半の章は概観的。 第26~29章の題(「…入門」「概念」「…の概観」)は、これらの話題が十分な扱いではなく入門であることを示している。
  • アクセシビリティの注意。 Pearson の電子版に関するアクセシビリティの説明は、画像が十分に説明されていない場合があるとしており、スクリーンリーダーを使う読者には重要である。

コースにおける位置づけ

Fundamentals of Database Systems は、この一覧にある2冊の包括的なデータベース教科書の一つである。Silberschatz、Korth、Sudarshan の Database System Concepts は、本書の2章に対して3章のSQLと、並列・分散システムのより大きなまとまりを備え、ほぼ同じ範囲を扱う。Elmasri と Navathe は概念モデリングにより重みを置く。どちらも主教材になりうるが、選択は、講義を設計から始めるか(本書)、SQLから始めるかによって変わりうる。

Hernandez の Database Design for Mere Mortals は平易な設計手法で、第2部や第6部を難しく感じる読者に向く。Ramakrishnan と Gehrke の Database Management Systems は同様の範囲を持つ基礎的な手引きで、Coronel と Morris の Database Systems は、ビジネス志向の設計、実装、管理を対象とする。Gray と Reuter の Transaction Processing は、トランザクションの実装を深く知りたい読者にとって、第20~22章よりはるかに先まで進む。

本書の使い方

Pearson は、読者が初歩的なプログラミングとデータ構造の概念に慣れ、計算機構成の基礎に多少触れていることを前提としている。学部3~4年次と大学院生に向いている。

実践的な進め方:

  • 最初の講義の中核: 第1~3部(第1~9章)、続いて設計理論のために第6部(第14~15章)。SQLの章(第6章と第7章)は、実際のデータベースを開いて取り組む。
  • 実装: 第7~9部(第16~22章)は、2学期目、または実装志向の講義に。
  • 選択: アプリケーションプログラミングには第10章と第11章、分散システムとNOSQLには第10部、第26~30章は短い概観として。

章末の問題でモデリングを練習し、写像の章を読む前に自分でER図を描いてみるとよい。