數(shù)據(jù)庫已是當(dāng)今信息社會(huì)須臾不可脫離的重要工具,數(shù)據(jù)庫的教學(xué)也就成為計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的一門必修課程。
JeffreyD.1 511man教授是斯坦福大學(xué)計(jì)算機(jī)系的資深教授,自1980年編寫了其第一本數(shù)據(jù)庫教材《數(shù)據(jù)庫系統(tǒng)原理》以來,已出版過多本數(shù)據(jù)庫系統(tǒng)方面的教材。該書是他在斯坦福大學(xué)計(jì)算機(jī)系對(duì)大學(xué)生教授的第一門數(shù)據(jù)庫課程(CS145)中使用的教材,Ullman教授在第2版出版4年后,對(duì)其作了更新又出版了第3版。與第2版相比,第3版不僅重新組織了章節(jié)從而使這本書的系統(tǒng)性更強(qiáng),而且內(nèi)容作了大幅度增加,包括了有關(guān)索引的介紹和目前XML數(shù)據(jù)庫技術(shù)發(fā)展的新內(nèi)容。
數(shù)據(jù)庫技術(shù)發(fā)展到現(xiàn)在,其一個(gè)很大的變化是,數(shù)據(jù)庫不僅要管理結(jié)構(gòu)化的數(shù)據(jù),而且要管理更多的半結(jié)構(gòu)化的數(shù)據(jù)。本書正是從這個(gè)觀點(diǎn)出發(fā),將內(nèi)容分成兩大部分:首先仍然是流行的關(guān)系數(shù)據(jù)庫和對(duì)象關(guān)系數(shù)據(jù)庫內(nèi)容,介紹了關(guān)系數(shù)據(jù)模型、E/R模型、UML模型以及對(duì)象模型等高級(jí)數(shù)據(jù)模型。然后介紹了有關(guān)半結(jié)構(gòu)化數(shù)據(jù)組織管理中比較流行的XMI。等內(nèi)容,既包括了數(shù)據(jù)組織模型的內(nèi)容,也給出了相關(guān)編程語言,如XPath、XQuery、XSLT等。
出版者的話
譯者序
前言
第1章 數(shù)據(jù)庫系統(tǒng)世界
1.1 數(shù)據(jù)庫系統(tǒng)的發(fā)展
1.1.1 早期的數(shù)據(jù)庫管理系統(tǒng)
1.1.2 關(guān)系數(shù)據(jù)庫系統(tǒng)
1.1.3 越來越小的系統(tǒng)
1.1.4 越來越大的系統(tǒng)
1.1.5 信息集成
1.2 數(shù)據(jù)庫管理系統(tǒng)概述
1.2.1 數(shù)據(jù)定義語言命令
1.2.2 查詢處理概述
1.2.3 存儲(chǔ)器和緩沖區(qū)管理器
1.2.4 事務(wù)處理
1.2.5 查詢處理器
1.3 本書概述
1.4 參考文獻(xiàn)
第一部分 關(guān)系數(shù)據(jù)庫模型
第2章 關(guān)系數(shù)據(jù)模型
2.1 數(shù)據(jù)模型概述
2.1.1 什么是數(shù)據(jù)模型
2.1.2 一些重要的數(shù)據(jù)模型
2.1.3 關(guān)系模型簡介
2.1.4 半結(jié)構(gòu)化模型簡介
2.1.5 其他數(shù)據(jù)模型
2.1.6 幾種建模方法的比較
2.2 關(guān)系模型基礎(chǔ)
2.2.1 屬性
2.2.2 模式
2.2.3 元組
2.2.4 域
2.2.5 關(guān)系的等價(jià)描述
2.2.6 關(guān)系實(shí)例
2.2.7 關(guān)系上的鍵
2.2.8 數(shù)據(jù)庫模式示例
2.2.9 習(xí)題
2.3 在SQL中定義關(guān)系模式
2.3.1 SQL中的關(guān)系
2.3.2 數(shù)據(jù)類型
2.3.3 簡單的表定義
2.3.4 修改關(guān)系模式
2.3.5 默認(rèn)值
2.3.6 鍵的聲明
2.3.7 習(xí)題
2.4 代數(shù)查詢語言
2.4.1 為什么需要一種專門的查詢語言
2.4.2 什么是代數(shù)
2.4.3 關(guān)系代數(shù)概述
2.4.4 關(guān)系上的集合操作
2.4.5 投影
2.4.6 選擇
2.4.7 笛卡兒積
2.4.8 自然連接
2.4.9 θ連接
2.4.1 0組合操作構(gòu)成查詢
2.4.1 1命名和重命名
2.4.1 2操作之間的聯(lián)系
2.4.1 3代數(shù)表達(dá)式的線性符號(hào)
2.4.1 4習(xí)題
2.5 關(guān)系上的約束
2.5.1 作為約束語言的關(guān)系代數(shù)
2.5.2 引用完整性約束
2.5.3 鍵約束
2.5.4 其他約束舉例
2.5.5 習(xí)題
2.6 小結(jié)
2.7 參考文獻(xiàn)
第3章 關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論
3.1 函數(shù)依賴
3.1.1 函數(shù)依賴的定義
3.1.2 關(guān)系的鍵
3.1.3 超鍵
3.1.4 習(xí)題
3.2 函數(shù)依賴的規(guī)則
3.2.1 函數(shù)依賴的推導(dǎo)
3.2.2 分解/結(jié)合規(guī)則
3.2.3 平凡函數(shù)依賴
3.2.4 計(jì)算屬性的閉包
3.2.5 閉包算法為何有效
3.2.6 傳遞規(guī)則
3.2.7 函數(shù)依賴的閉包集合
3.2.8 投影函數(shù)依賴
3.2.9 習(xí)題
3.3 關(guān)系數(shù)據(jù)庫模式設(shè)計(jì)
3.3.1 異常
3.3.2 分解關(guān)系
3.3.3 Boyce—Codd范式
3.3.4 分解為BCNF
3.3.5 習(xí)題
3.4 分解的優(yōu)劣
3.4.1 從分解中恢復(fù)信息
3.4.2 無損連接的chase檢驗(yàn)
3.4.3 為什chase檢驗(yàn)有效
3.4.4 依賴的保持
3.4.5 習(xí)題
3.5 第三范式
3.5.1 第三范式的定義
3.5.2 3NF模式綜合算法
3.5.3 為什么3NF綜合算法有效
3.5.4 習(xí)題
3.6 多值依賴
3.6.1 屬性獨(dú)立及隨之產(chǎn)生的冗余
3.6.2 多值依賴的定義
3.6.3 多值依賴的推導(dǎo)
3.6.4 第四范式
3.6.5 分解為第四范式
3.6.6 范式間的聯(lián)系
3.6.7 習(xí)題
3.7 MVD的發(fā)現(xiàn)算法
3.7.1 閉包和chase
3.7.2 將chase擴(kuò)展到MVD
3.7.3 chase為何對(duì)MVD有效
3.7.4 投影MVD
3.7.5 習(xí)題
3.8 小結(jié)
3.9 參考文獻(xiàn)
第4章 高級(jí)數(shù)據(jù)庫模型
4.1 E/R模型
4.1.1 實(shí)體集
4.1.2 屬性
4.1.3 聯(lián)系
4.1.4 實(shí)體一聯(lián)系圖
4.1.5 E/R圖實(shí)例
4.1.6 二元E/R聯(lián)系的多樣性
4.1.7 多路聯(lián)系
4.1.8 聯(lián)系中的角色
4.1.9 聯(lián)系的屬性
4.1.10 多路聯(lián)系到二元聯(lián)系的轉(zhuǎn)換
4.1.11 E/R模型中的子類
4.1.12 習(xí)題
4.2 設(shè)計(jì)原則
4.2.1 忠實(shí)性
4.2.2 避免冗余
4.2.3 簡單性
4.2.4 選擇正確的聯(lián)系
4.2.5 選擇正確的元素種類
4.2.6 習(xí)題_
4.3 E/R模型中的約束
4.3.1 E/R模型中的鍵
4.3.2 E/R模型中鍵的表示
4.3.3 引用完整性
4.3.4 度約束
4.3.5 習(xí)題
4.4 弱實(shí)體集
4.4.1 弱實(shí)體集的來源
4.4.2 弱實(shí)體集的要求
4.4.3 弱實(shí)體集的符號(hào)
4.4.4 習(xí)題
4.5 從E/R圖到關(guān)系設(shè)計(jì)
4.5.1 實(shí)體集到關(guān)系的轉(zhuǎn)化
4.5.2 E/R聯(lián)系到關(guān)系的轉(zhuǎn)化
4.5.3 關(guān)系組合
4.5.4 處理弱實(shí)體集
4.5.5 習(xí)題
4.6 子類結(jié)構(gòu)到關(guān)系的轉(zhuǎn)化
4.6.1 E/R方式轉(zhuǎn)化
4.6.2 面向?qū)ο蠓椒?
4.6.3 使用空值組合關(guān)系
4.6.4 各種方法的比較
4.6.5 習(xí)題
4.7 統(tǒng)一建模語言
4.7.1 UML類
4.7.2 UML類的鍵
4.7.3 關(guān)聯(lián)
4.7.4 自關(guān)聯(lián)
4.7.5 關(guān)聯(lián)類
4.7.6 UML中的子類
4.7.7 聚集與組合
4.7.8 習(xí)題
4.8 UML圖到關(guān)系的轉(zhuǎn)化
4.8.1 UML到關(guān)系的基礎(chǔ)知識(shí)
4.8.2 從UML子類到關(guān)系
4.8.3 從聚集與組合到關(guān)系
4.8.4 UML與弱實(shí)體集的類比
4.8.5 習(xí)題
4.9 對(duì)象定義語言
4.9.1 類聲明
4.9.2 ODL中的屬性
4.9.3 ODL中的聯(lián)系
4.9.4 反向聯(lián)系
4.9.5 聯(lián)系的多重性
4.9.6 ODL中的類型
4.9.7 ODL沖的子類
4.9.8 在ODL沖聲明鍵
4.9.9 習(xí)題
4.10 從ODL設(shè)計(jì)到關(guān)系設(shè)計(jì)
4.10.1 從ODL類到關(guān)系
4.10.2 類中的復(fù)雜屬性
4.10.3 值集合類型屬性的表示
4.10.4 其他類型構(gòu)建器的表示
4.10.5 ODL中聯(lián)系的表示
4.10.6 習(xí)題
4.11小結(jié)
4.12參考文獻(xiàn)
第二部分 關(guān)系數(shù)據(jù)庫程序設(shè)計(jì)
第5章 代數(shù)和邏輯查詢語言
5.1 包上的關(guān)系操作
5.1.1 為什么采用包
5.1.2 包的并、交、差
5.1.3 包上的投影操作
5.1.4 包上的選擇操作
5.1.5 包的笛卡兒積
5.1.6 包的連接
5.1.7 習(xí)題
5.2 關(guān)系代數(shù)的擴(kuò)展操作符
5.2.1 消除重復(fù)
5.2.2 聚集操作符
5.2.3 分組
5.2.4 分組操作符
5.2.5 擴(kuò)展的投影操作符
5.2.6 排序操作符
5.2.7 外連接
5.2.8 習(xí)題
5.3 關(guān)系邏輯
5.3.1 謂詞和原子
5.3.2 算術(shù)原子
5.3.3 Datalog規(guī)則和查詢
5.3.4 Datalog規(guī)則的意義
5.3.5 擴(kuò)展謂詞和內(nèi)涵謂詞
5.3.6 Datalog規(guī)則應(yīng)用于包
5.3.7 習(xí)題
5.4 關(guān)系代數(shù)與Datalog
5.4.1 布爾操作
5.4.2 投影
5.4.3 選擇
5.4.4 積
5.4.5 連接
5.4.6 用Datalog模擬多重操作
5.4.7 Datalog與關(guān)系代數(shù)的比較
5.4.8 習(xí)題
5.5 小結(jié)
5.6 參考文獻(xiàn)
第6章 數(shù)據(jù)庫語言SQL
6.1 SQL中的簡單查詢
6.1.1 SQL中的投影
6.1.2 SQL沖的選擇
6.1.3 字符串比較
6.1.4 SQL中的模式匹配
6.1.5 日期和時(shí)間
6.1.6 空值和涉及空值的比較
6.1.7 布爾值UNKNOWN
6.1.8 輸出排序
6.1.9 習(xí)題
6.2 多關(guān)系查詢
6.2.1 SQL中的積和連接
6.2.2 消除屬性歧義
6.2.3 元組變量
6.2.4 多關(guān)系查詢的解釋
6.2.5 查詢的并、交、差
6.2.6 習(xí)題
6.3 子查詢
6.3.1 產(chǎn)生標(biāo)量值的子查詢
6.3.2 關(guān)系的條件表達(dá)式
6.3.3 元組的條件表達(dá)式
6.3.4 關(guān)聯(lián)子查詢
6.3.5 FROM子句中的子查詢
6.3.6 SQL的連接表達(dá)式
6.3.7 自然連接
6.3.8 外連接
6.3.9 習(xí)題
6.4 全關(guān)系操作
64.1 消除重復(fù)
6.4.2 并、交、差中的重復(fù)
6.4.3 SQL中的分組和聚集
6.4.4 聚集操作符
6.4.5 分組
6.4.6 分組、聚集和空值
6.4.7 HAVING子句
6.4.8 習(xí)題
6.5 數(shù)據(jù)庫更新
6.5.1 插入
6.5.2 刪除
6.5.3 修改
6.5.4 習(xí)題
6.6 SQL中的事務(wù)
6.6.1 可串行化
6.6.2 原子性
6.6.3 事務(wù)
6.6.4 只讀事務(wù)
6.6.5 讀臟數(shù)據(jù)
6.6.6 其他隔離層次
6.6.7 習(xí)題
6.7 小結(jié)
6.8 參考文獻(xiàn)
第7章 約束與觸發(fā)器
7.1 鍵和外鍵
7.1.1 外鍵約束聲明
7.1.2 維護(hù)引用完整性
7.1.3 延遲約束檢查
7.1.4 習(xí)題
7.2 屬性和元組上的約束
7.2.1 非空值約束
7.2.2 基于屬性的CHECK約束
7.2.3 基于元組的CHECK約束
7.2.4 基于元組和基于屙陛的約束的比較
7.2.5 習(xí)題
7.3 修改約束
7.3.1 給約束命名
7.3.2 修改表上的約束
7.3.3 習(xí)題
7.4 斷言
7.4.1 創(chuàng)建斷言
7.4.2 使用斷言
7.4.3 習(xí)題
7.5 觸發(fā)器
7.5.1 SQL中的觸發(fā)器
7.5.2 觸發(fā)器設(shè)計(jì)的選項(xiàng)
7.5.3 習(xí)題
7.6 小結(jié)
7.7 參考文獻(xiàn)
第8章 視圖與索引
8.1 虛擬視圖
8.1.1 視圖定義
8.1.2 視圖查詢
8.1.3 屬性重命名
8.1.4 習(xí)題
8.2 視圖更新
第三部分 半結(jié)構(gòu)化數(shù)據(jù)的建模和程序設(shè)計(jì)