01 / 導讀
導讀
引用
Elmasri, R., & Navathe, S. B. (2016). Fundamentals of Database Systems (7th ed.). Pearson.
章節概要
第7版有12個部分共30章,另有5個附錄,約1240頁。Pearson 稱它是面向大學部三、四年級或研究生的一到兩學期資料庫課程的教材,同時也是一本參考書。用出版社的話說,重點是資料庫建模與設計的基礎、資料庫管理系統提供的語言和模型,以及資料庫的實作技術。Pearson 說,這一版新增了兩章,並增加了更多真實世界的問題。
第1部分,第1–2章:資料庫與資料庫使用者;資料庫系統概念與架構
引入部分,介紹什麼是資料庫、誰在使用它,然後講資料庫系統的概念與架構。
第2部分,第3–4章:使用實體關係(ER)模型進行資料建模;增強實體關係(EER)模型
概念建模排在關聯式模型之前,佔兩章:ER模型及其增強擴充。
第3部分,第5–9章:關聯式資料模型與關聯式資料庫限制;基本SQL;更多SQL:複雜查詢、觸發器、檢視與綱要修改;關聯代數與關聯演算;透過ER和EER到關聯式的對映進行關聯式資料庫設計
先講關聯式模型及其限制,接著是分兩章的SQL(基本SQL,然後是複雜查詢、觸發器、檢視與綱要修改),以及關聯代數與關聯演算。第9章把ER和EER綱要映射為關聯式設計,與第2部分首尾呼應。
第4部分,第10–11章:SQL程式設計技術導論;使用PHP的Web資料庫程式設計
兩章講如何編寫資料庫應用,後一章與一種具體的Web技術PHP繫結。
第5部分,第12–13章:物件與物件—關聯式資料庫;XML:可擴充標記語言
物件與物件—關聯式資料庫,以及XML。(Pearson 的目錄把第二個標題印成了「XLM」,應為筆誤。)
第6部分,第14–15章:函數相依與關聯式資料庫正規化基礎;關聯式資料庫設計演算法與其他相依
本書的設計理論排在程式設計和物件、XML模型之後:先是函數相依與正規化,然後是設計演算法和其他種類的相依。
第7部分,第16–17章:磁碟儲存、基本檔案結構、雜湊與現代儲存架構;檔案的索引結構與實體資料庫設計
實體層:儲存裝置、檔案與雜湊,然後是索引結構和實體設計。
第8部分,第18–19章:查詢處理策略;查詢最佳化
查詢如何執行,以及如何選擇執行策略。
第9部分,第20–22章:交易處理概念與理論導論;併發控制技術;資料庫復原技術
交易、併發控制和復原,連續三章。
第10部分,第23–25章:分散式資料庫概念;NOSQL資料庫與大資料儲存系統;基於MapReduce和Hadoop的大資料技術
先是分散式,然後是NOSQL系統與大資料儲存,再是MapReduce和Hadoop。Pearson 說這一版有兩個新章,但沒有說明是哪兩章。
第11部分,第26–29章:增強資料模型(主動、時態、空間、多媒體和演繹資料庫);資訊檢索與Web搜尋導論;資料探勘概念;資料倉儲與OLAP概述
講更多模型與應用的四章。它們的標題用了「導論」「概念」和「概述」這樣的詞,說明講解是入門層次的。
第12部分,第30章:資料庫安全
一章講安全,為正文收尾。
附錄A–E
ER模型的其他圖示表示法,磁碟參數,QBE語言概述,以及階層式資料模型和網狀資料模型的概述。
核心概念
第1–3部分:建模與關聯式模型
- ER與EER建模:先於關聯式設計的概念設計。
- 關聯式限制、SQL與關聯代數:關聯式模型及其語言。
- ER到關聯式的對映:把概念綱要轉換為表。
第4–6部分:應用、其他模型與設計理論
- 函數相依與正規化:良好關聯式設計的理論。
- 物件—關聯式資料與XML:超出普通表格的模型。
- SQL程式設計技術:把SQL嵌入應用,Web方面使用PHP。
第7–12部分:實作與較新的系統
- 檔案結構、雜湊與索引;查詢處理與最佳化。
- 交易、併發控制與復原。
- 分散式資料庫、NOSQL、MapReduce與Hadoop;資料探勘、資料倉儲與OLAP;資料庫安全。
評析
優點
- 概念建模有深度。 ER與EER佔兩章,向關聯綱要的映射有專門一章,附錄還概述了ER的其他表示法。相比之下,書單中另一本綜合性教材用一章講E-R設計。
- 從設計到內部實作的一條完整路徑。 從建模、關聯式模型、設計理論、儲存與索引、查詢處理、交易一直講到分散式,所以可以作為兩學期課程的唯一參考書。
- 涵蓋較新的系統。 Pearson 強調了兩個新章,第10部分涉及分散式資料庫、NOSQL系統和基於MapReduce的大資料技術。
- 教材與參考書合一。 出版社把它同時定位為這兩種用途,五個附錄把較舊或較專門的內容(QBE、階層式與網狀模型、磁碟參數)放在正文之外。
侷限
- 篇幅。 30章、超過1200頁,超出一到兩個學期的容量,教師必須取捨。
- 與具體技術繫結的章節。 第11章與PHP繫結,第12–13章講物件—關聯式模型和XML。使用其他技術堆疊的課程要換成自己的材料。
- 後面的章節偏概覽。 第26–29章的標題(「……導論」「概念」「……概述」)表明這些主題是入門介紹,而不是完整的論述。
- 無障礙提示。 Pearson 關於電子版的無障礙說明稱,影像可能沒有得到完整描述,這對使用螢幕閱讀器的讀者很重要。
在課程中的定位
Fundamentals of Database Systems 是書單中兩本綜合性資料庫教材之一。Silberschatz、Korth 和 Sudarshan 的 Database System Concepts 涵蓋大體相同的範圍,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 說明,讀者應熟悉基本的程式設計和資料結構概念,並對電腦組織的基礎有所接觸。本書適合大學部三、四年級學生和研究生。
一個實用的讀法:
- 第一門課的核心: 第1至3部分(第1–9章),然後讀第6部分(第14–15章)學習設計理論。學SQL的章節(第6章和第7章)時,要開啟一個真實的資料庫。
- 實作: 第7至9部分(第16–22章),用於第二學期或偏實作的課程。
- 選讀: 第10章和第11章講應用程式設計,第10部分講分散式與NOSQL系統,第26–30章作為簡短的概覽。
用章末習題練習建模,並在閱讀映射一章之前,先自己畫出ER圖。
