目 錄
  • 基 礎 篇
    第○章 緒論 (投影片檢視)
  • 0.1 前言 0-2
    0.2 資料處理模式的演進 0-3
  • 0.2.1 第一階段—人工檔案管理 0-4
    0.2.2 第二階段—電腦化循序式檔案系統 0-5
    0.2.3 第三階段—電腦化直接存取式檔案系統 0-6
    0.2.4 第四階段—以記錄為處理單元的資料庫管理系統 0-6
  • 0.2.4.1 階層式資料庫管理系統 0-7
    0.2.4.2 網路式資料庫管理系統 0-7
    0.2.4.3 關聯式資料庫管理系統 0-8
  • 0.2.5 第五階段—
    以物件為處理單元的物件導向式資料庫管理系統 0-9
  • 0.2.5.1 物件導向式資料庫管理系統 0-10
    0.2.5.2 物件關聯式資料庫管理系統 0-10
  • 0.3 資料庫系統處理架構的演進 0-13
  • 0.3.1 第一階段—集中式處理 0-13
    0.3.2 第二階段—主-從式架構 0-14
    0.3.3 第三階段—三層式應用系統發展架構 0-14
    0.3.4 第四階段—同質性分散式處理 0-15
    0.3.5 第五階段—異質性分散式處理 0-15
    0.3.6 第六階段—行動計算處理 0-17
  • 0.4 資料處理的未來發展 0-24
  • 第一章 資料庫系統
  • 1.1 前言 1-2
    1.2 資料庫系統簡介 1-4
  • 1.2.1 使用者 1-5
  • 1.2.1.1 直接使用者 (End Users) 1-5
    1.2.1.2 應用程式 (Application Programs) 1-6
    1.2.1.3 資料庫管理師 (Database Administrator, DBA) 1-6
  • 1.2.2 資料 1-9
    1.2.3 硬體 1-9
    1.2.4 軟體 1-10
  • 1.2.4.1 資料庫管理系統的基本功能 1-10
    1.2.4.2 應用程式 1-15
  • 1.3 使用資料庫系統的優點 1-15
    1.4 使用資料庫系統的缺點與注意事項 1-17
  • 1.4.1 使用資料庫系統的缺點 1-17
    1.4.2 資料安全的維護 1-18
  • 1.5 資料獨立 (Data Independence) 1-21
    1.6 完整的資料庫系統架構 1-24
  • 1.6.1 外部層 (The External Level) 1-25
    1.6.2 概念層 (The Conceptual Level) 1-27
    1.6.3 內部層 (The Internal Level) 1-28
    1.6.4 各層之間的映對 (Mappings) 1-28
    1.6.5 資料庫管理系統與檔案系統間的差別 1-29
  • 1.7 主-從式架構 1-32
  • 1.7.1 傳統「集中式處理」 1-32
    1.7.2 主-從式架構處理 1-33
    1.7.3 三層式應用系統發展架構 1-40
  • 1.8 分散式資料庫系統 1-43
  • 1.8.1 為何會由集中式走向分散式? 1-43
    1.8.2 分散式處理模式的優、缺點 1-45
    1.8.3 分散式處理模式所引發的問題 1-46
  • 1.9 異質性資料庫系統 1-47
  • 1.9.1 為何會走向異質性系統的整合? 1-47
    1.9.2 資料的整合與系統的整合 1-48
  • 習題 1-49
  • 第二章 資料模式
  • 2.1 資料模式簡介 2-2
    2.2 階層式資料模式 2-5
  • 2.2.1 階層式資料模式的資料結構 2-5
    2.2.2 階層式資料模式中的整合限制條件 2-8
    2.2.3 階層式資料模式上的資料運算 2-8
  • 2.3 網路式資料模式 2-9
  • 2.3.1 網路式資料模式的資料結構 2-9
    2.3.2 網路式資料模式上的整合限制條件 2-11
    2.3.3 網路式資料模式上的資料運算 2-11
  • 2.4 關聯式資料模式 2-13
    2.5 物件導向式資料模式 2-16
  • 習題 2-16
  • 第三章 關聯式資料模式的資料結構
  • 3.1 關聯表綱要簡介 3-2
    3.2 關聯表的內容 3-5
  • 3.2.1 主鍵 (Primary Key) 3-5
    3.2.2 值域 (Domains) 3-6
    3.2.3 屬性 (Attributes) 3-7
    3.2.4 虛值 (Null Values) 3-8
  • 3.3 關聯表的正式定義 3-10
    3.4 關聯表的特性 3-12
    3.5 關聯表的種類 3-18
    3.6 關聯式資料庫 3-20
  • 習題 3-22
  • 第四章 關聯式資料模式的整合限制條件
  • 4.1 簡介 4-2
    4.2 候選鍵 (Candidate Keys) 4-3
    4.3 替代鍵 (Alternative Keys) 4-4
    4.4 外來鍵 (Foreign Keys) 4-5
    4.5 外來鍵參考圖 (Referential Diagram) 4-8
    4.6 關聯式模式的兩條整合限制規則 4-9
  • 4.6.1 個體整合限制 4-9
    4.6.2 參考整合限制 4-11
  • 4.7 外來鍵使用規則 4-12
    4.8 在關聯表上定義額外的整合限制規則 4-16
  • 習題 4-20
  • 第五章 關聯式代數
  • 5.1 前言 5-2
    5.2 關聯式代數簡介 5-3
    5.3 各個運算子的詳細說明 5-5
  • 5.3.1 原始運算子 5-6
  • 5.3.1.1 乘積運算 (Cartesian Product ) 5-6
    5.3.1.2 聯集運算 (Union) 5-7
    5.3.1.3 差集運算 (Difference) 5-8
    5.3.1.4 選擇運算 (Select) 5-9
    5.3.1.5 投影運算 (Project) 5-11
  • 5.3.2 非原始運算子 5-13
  • 5.3.2.1 交集運算 (Intersection) 5-13
    5.3.2.2 合併運算 (Join) 5-14
    5.3.2.3 除法運算 (Divide) 5-18
  • 5.4 關聯式代數的特性 5-20
  • 5.4.1 結合律 (Associativity) 5-20
    5.4.2 交換律 (Commutativity ) 5-23
    5.4.3 分配律 (Distributivity) 5-25
    5.4.4 退化的情況 5-27
  • 5.5 關聯式代數運算後所產生之結果的主鍵 5-28
    5.6 關聯式代數的用途 5-29
  • 習題 5-31
  • 第六章 關聯式計算
  • 6.1 前言 6-2
    6.2 值組導向關聯式計算 6-5
    6.3 將值組導向關聯式計算轉成關聯式代數 6-10
    6.4 值域導向關聯式計算 6-15
    6.5 Query-By-Example (QBE) 6-17
  • 習題 6-21
  • 第七章 關聯式資料庫管理系統:以 Sybase SQL Server 為例
  • 7.1 關聯式系統 7-2
    7.2 關聯式資料庫管理系統的架構 7-4
  • 7.2.1 一般的關聯式資料庫管理系統架構 7-4
    7.2.2 Sybase SQL Server 的組成與相關工具 7-6
  • 7.3 關聯式系統中的查詢最佳化處理 7-8
    7.4 系統目錄 7-10
  • 7.4.1 系統目錄的用途 7-10
    7.4.2 Sybase SQL Server 的系統目錄 7-11
  • 7.5 SQL Server 中的一般資料庫 7-14
  • 7.5.1 在 SQL Server 中建立自己的資料庫 7-14
    7.5.2 資料庫中有什麼東西? 7-16
  • 習題 7-18
  • 第八章 結構化查詢語言 SQL
  • 8.1 簡介 8-2
    8.2 資料定義語言 (DDL) 8-4
  • 8.2.1 作用於基底關聯表上的 DDL 8-6
  • 8.2.1.1 Create Table—新增關聯表 8-6
    8.2.1.2 Alter Table—更改關聯表綱要 8-9
    8.2.1.3 Drop Table—刪除整個關聯表 8-10
    8.2.1.4 Truncate Table—刪除關聯表內容,僅留下綱要 8-10
  • 8.2.2 作用於視界上的 DDL 8-10
  • 8.2.2.1 Create View—建立新視界 8-10
    8.2.2.2 Destroy (or Drop) View—刪除視界 8-11
  • 8.2.3 作用於索引上的 DDL 8-11
  • 8.2.3.1 Create Index—建立新索引 8-13
    8.2.3.2 Drop Index—刪除索引 8-13
  • 8.3 資料處理語言(DML)的查詢部份 8-14
  • 8.3.1 Select 子句 8-14
    8.3.2 算術運算式 8-16
    8.3.3 From 子句與合併運算 8-16
    8.3.4 Where 子句—指定查詢條件 8-19
    8.3.5 Order by 子句—對查詢結果做排序 8-21
    8.3.6 聚合函數 (Aggregate Functions) 8-22
    8.3.7 Group by 子句 8-25
    8.3.8 Having 子句 8-27
    8.3.9 巢狀式查詢 (Nested Queries) 8-28
  • 8.3.9.1 只傳回單一值的巢狀式子查詢 8-28
    8.3.9.2 傳回一個集合的巢狀式子查詢 8-30
    8.3.9.3 複雜查詢的拆解 8-39
  • 8.3.10 聯集 (Union) 8-42
    8.3.11 一個複雜的例子 8-43
  • 8.4 資料處理語言(DML)的異動部份 8-46
  • 8.4.1 Insert—新增值組 8-46
  • 8.4.1.1 加入單一記錄 8-47
    8.4.1.2 將查詢所得的結果新增到另一個關聯表中 8-48
  • 8.4.2 Delete—刪除值組 8-49
  • 8.4.2.1 刪除單一筆記錄 8-49
    8.4.2.2 依查詢結果做為條件來做刪除 8-50
    8.4.2.3 一次刪除多個關聯表中的記錄 8-52
  • 8.4.3 Update—更改值組內容 8-52
  • 8.4.3.1 更改單一筆記錄 8-53
    8.4.3.2 依查詢結果做為條件來做更改 8-53
    8.4.3.3 一次更改多個關聯表中的記錄 8-55
  • 8.5 SQL 與關聯式代數之間的對應 8-56
  • 8.5.1 原始運算子 8-56
  • 8.5.1.1 Select 8-56
    8.5.1.2 Project 8-56
    8.5.1.3 Cartesian Product 8-57
    8.5.1.4 Set Difference 8-57
  • 8.5.1.5 Set Union 8-58
  • 8.5.2 非原始運算子 8-58
  • 8.5.2.1 Join 8-58
    8.5.2.2 Intersection 8-59
    8.5.2.3 Divide 8-60
  • 8.6 嵌入式SQL (Embedded SQL) 8-61
  • 8.6.1 簡介 8-61
    8.6.2 Cursors 的說明 8-65
    8.6.3 Cursors 的運算 8-66
  • 8.7 動態SQL 8-70
    8.8 SQL Server的預儲程序與觸發程序 8-71
  • 8.8.1 SQL Server 的預儲程序 8-71
    8.8.2 SQL Server 的觸發程序 8-73
  • 8.9 系統目錄的查詢與異動 8-78
  • 8.9.1 查詢部份 8-78
    8.9.2 異動部份 8-79
  • 8.10 加速查詢的一些原則與技巧 8-80
  • 習題 8-86
  • 第九章 視界
  • 9.1 前言 9-2
    9.2 視界(View)的定義 9-3
    9.3 視界上的資料處理 9-6
  • 9.3.1 行列子集視界 9-11
    9.3.2 合併的視界 (Join Views) 9-15
    9.3.3 統計總覽視界 9-16
  • 9.4 以視界達成邏輯上的資料獨立 9-17
    9.5 視界的優點 9-19
  • 習題 9-21
  • 第十章 發展主從式資料庫系統以 Visual Basic 為工具
  • 10.1 使用 Visual Basic 存取各種資料庫的準備工作與觀念 10-2
    10.2 環境設定 10-6
  • 10.2.1 存取 VB 所支援的外部資料庫所需的環境設定 10-6
  • 10.2.1.1 存取 dBASE 所需的環境設定與注意事項 10-7
    10.2.1.2 存取 ODBC 外部資料庫所需的環境設定與注意事項 10-8
  • 10.3 開啟資料庫 10-14
    10.4 使用 Data Control 開啟資料庫 10-16
  • 10.4.1 Connect 與 DatabaseName 的設定說明 10-19
    10.4.2 Database 的使用說明 10-21
    10.4.3 Exclusive 的設定說明 10-21
    10.4.4 Options 的設定說明 10-22
    10.4.5 ReadOnly 的設定說明 10-23
    10.4.6 RecordSource 的設定說明 10-23
    10.4.7 Recordset 的使用說明 10-24
    10.4.8 使用 Bound Controls 10-30
    10.4.9 以寫程式方式來顯示資料庫中的資料 10-33
    10.4.10 Transaction 的使用 10-35
  • 10.5 使用 OpenDatabase 開啟資料庫 10-36
    10.6 關閉資料庫 10-37
    10.7 使用 VB 存取資料庫時必須先了解的幾個觀念 10-38
  • 10.7.1 Recordset 10-38
    10.7.2 附屬表 (Attached Tables) 10-42
    10.7.3 行動查詢 (Action Query) 10-43
    10.7.4 選取查詢 (Select Query) 10-45
    10.7.5 Table 物件 10-45
  • 10.7.5.1 Table 的產生方式 10-45
    10.7.5.2 Table 的特點 10-46
  • 10.7.6 Dynaset 物件 10-47
  • 10.7.6.1 Dynaset 的產生方式 10-47
    10.7.6.2 Dynaset 的特點 10-52
    10.7.6.3 重新建立 Dynaset 中的 Recordset 資料 10-54
  • 10.7.7 Snapshot 物件 10-54
  • 10.7.7.1 Snapshot 的產生方式 10-55
    10.7.7.2 Snapshot 的特點 10-57
    10.7.7.3 重新建立 Snapshot 中的 Recordset 10-58
  • 10.7.8 QueryDef 物件(僅 Microsoft Access 適用) 10-58
  • 10.7.8.1 QueryDef 的產生方式 10-58
    10.7.8.2 執行 QueryDef 物件所存放的 SQL 指令 10-59
    10.7.8.3 更改 QueryDef 物件的定義 10-60
    10.7.8.4 關閉 QueryDef 物件 10-61
    10.7.8.5 刪除 QueryDef 物件 10-61
  • 10.8 一個 VB 所提供的資料庫存取範例:VISDATA.MAK 10-62
  • 10.9 總結 10-63
  • 10.9.1 一般原則 10-64
    10.9.2 使用外部資料庫時的原則 10-65
    10.9.3 設計外部資料庫綱要時的考量 10-66
    10.9.4 使用 VB 連結資料庫方面常見的問題詳解 10-67
  • 習題 10-73
  • 進 階 篇
    第十一章 邏輯資料庫設計:關聯表的正規化
  • 11.1 簡介 11-2
  • 11.1.1 為什麼要正規化? 11-2
    11.1.2 正規化的階層架構 11-5
    11.1.3 功能相依性 11-8
  • 11.2 1NF、2NF 與 3NF 11-12
  • 11.2.1 1NF—第一正規化型式 11-12
    11.2.2 2NF—第二正規化型式 11-17
    11.2.3 3NF—原始的第三正規化型式 11-27
    11.2.4 BCNF—廣義的第三正規化型式 11-28
    11.2.5 一個是 3NF 但不是 BCNF 的例子 11-32
    11.2.6 一個含有兩個候選鍵的關聯表但也是 BCNF 的例子 11-36
  • 11.3 多重值相依性 (Multi-Valued Dependency) 11-37
    11.4 4NF—第四正規化型式 11-42
    11.5 5NF (PJ/NF)—第五正規化型式 11-43
    11.6 正規化的步驟 11-50
    11.7 利用「個體-關係模式」來做邏輯資料庫設計 11-52
  • 11.7.1 個體-關係模式中的概念 11-52
    11.7.2 個體-關係模式和自然語言間的關係 11-54
    11.7.3 個體關係圖 (E-R Diagram) 11-55
    11.7.4 個體-關係圖和自然語言間的對應關係 11-57
    11.7.5 個體-關係圖與關聯式資料庫的對應 11-59
  • 11.8 結論 11-63
  • 習題 11-66
  • 第十二章 異動的管理
  • 12.1 前言 12-2
    12.2 異動管理的目標 12-2
    12.3 異動的四個特性 12-3
  • 12.3.1 單元性 (Atomicity) 12-4
    12.3.2 並行性 (Concurrency) 12-6
    12.3.3 隔離性 (Isolation) 12-8
    12.3.4 持續性 (Durability) 12-9
  • 12.4 回復處理 (Failure Recovery) 12-10
  • 12.4.1 異動記錄 (Transaction Log) 12-12
    12.4.2 系統當機後資料庫管理系統完成回復處理的步驟 12-14
    12.4.3 磁碟損毀後的回復處理步驟 12-17
  • 12.5 異動的並行控制 12-19
  • 12.5.1 沒有並行控制所引發的問題 12-19
    12.5.2 異動的並行控制機制 12-21
    12.5.2.1 鎖定法 (Locking) 12-25
    12.5.2.2 時間戳記法 (Time Stamp Ordering) 12-28
    12.5.2.3 積極進取控制法 (Optimistic Control) 12-30
  • 12.6 使用Sybase SQL Server 時,在備份作法上的建議 12-31
  • 習題 12-34
  • 第十三章 物件導向式資料庫系統
  • 13.1 前言 13-2
    13.2 物件導向式資料庫系統簡介 13-4
    13.3 物件導向的主要觀念 13-4
  • 13.3.1 物件、類別與抽象資料型態 13-6
  • 13.3.1.1 物件與訊息 13-6
    13.3.1.2 類別 (Class) 13-7
    13.3.1.3 抽象資料型態 (Abstract Data Type) 13-8
  • 13.3.2 繼承 (Inheritance) 13-8
    13.3.3 多態性 (Polymorphism) 13-10
  • 13.4 物件導向式觀念的發展 13-10
  • 13.4.1 物件導向程式語言的發展 13-10
    13.4.2 物件導向方法論的發展 13-13
    13.4.3 物件導向式資料模式的發展 13-13
  • 13.5 物件導向式資料庫系統上的基本觀念 13-15
  • 13.5.1 物件導向式資料庫系統上的概念 13-15
    13.5.2 關聯式資料模式與物件導向資料模式的對應關係 13-23
  • 13.6 物件導向式資料庫系統的實現方式 13-26
    13.7 物件導向式資料庫管理系統的標準訂定 13-28
    13.8 著名的物件導向資料庫管理系統 13-29
    13.9 物件導向資料庫設計中的正規化問題 13-31
    13.10 物件導向觀念的優點 13-35
    13.11 ODMG 93—物件導向資料庫新標準 13-36
  • 13.11.1 ODMG 架構 13-37
    13.11.2 ODMG 物件模式 13-38
    13.11.3 ODMG 物件定義語言 (ODL) 13-39
    13.11.4 ODMG 物件查詢語言 (OQL) 13-40
  • 習題 13-41
  • 第十四章 分散式資料庫系統
  • 14.1 前言 14-2
    14.2 分散式資料庫系統簡介 14-3
  • 14.2.1 分散式資料庫系統的好處與缺點 14-4
    14.2.2 集中式與分散式資料庫系統的差異 14-6
    14.2.3 分散式資料庫系統的目標 14-8
  • 14.3 分散式資料庫系統上的問題探討 14-14
  • 14.3.1 查詢處理與最佳化 14-15
    14.3.2 分散式邏輯資料庫設計 14-21
    14.3.3 系統目錄管理 14-22
    14.3.4 回復處理 14-23
  • 14.3.4.1 兩段式委任 (Two-Phase Commit, 2PC) 14-24
    14.3.4.2 三段式委任 (Three-Phase Commit, 3PC) 14-30
  • 14.3.5 連鎖的更新問題 14-35
    14.3.6 並行控制 14-35
    14.3.7 資料的保密性與安全性控制 14-36
  • 習題 14-42
  • 第十五章 異質性分散式資料庫系統
  • 15.1 前言 15-2
    15.2 異質性資料庫系統簡介 15-5
  • 15.2.1 異質性 15-5
    15.2.2 區域資料站的自主性 15-10
  • 15.3 建構一個異質性資料庫系統 15-12
    15.4 異質性資料庫中的綱要整合問題 15-15
  • 15.4.1 資料命名上的衝突 15-16
    15.4.2 資料表示法上的衝突 15-17
    15.4.3 資料的編碼或資料內容的差異 15-17
    15.4.4 資料單位的衝突 15-19
    15.4.5 不相容的資料 15-21
    15.4.6 資料缺項 15-22
    15.4.7 角色互換的差異 15-23
    15.4.8 綱要結構上的差異 15-24
  • 15.5 異質性資料庫的查詢語言 15-26
    15.6 異質性資料庫中的資料與綱要整合 15-26
  • 15.6.1 外部合併運算 (Outerjoin) 15-27
    15.6.2 部份值 (Partial Values) 15-29
    15.6.3 整合異質性分散式資料庫中的資料 15-31
    15.6.4 查詢的拆解 (Query Decomposition) 15-36
    15.6.5 一個解決綱要結構上的差異之方案 15-37
  • 15.7 異質性資料庫系統中的異動管理問題 15-38
  • 15.7.1 異質性資料庫系統中的異動處理模式 15-38
    15.7.2 異質性資料庫系統中的異動處理問題探討 15-40
  • 15.8 著名的異質性資料庫系統建置專案 15-43
  • 15.8.1 著名的多重資料庫查詢語言系統專案 15-43
    15.8.2 著名的整體綱要多重資料庫系統專案 15-44
    15.8.3 著名的聯邦式資料庫系統專案 15-47
  • 習題 15-48
  • 第十六章 資料庫系統的研究方向
  • 16.1 資料模式的研究 16-3
    16.2 使用者介面 16-4
    16.3 資料庫管理系統的核心技術 16-6
    16.4 資料儲存結構與存取方法 16-8
    16.5 分散式技術 16-10
    16.6 物件導向技術 16-15
    16.7 從資料中發掘知識 16-16
    16.8 資料庫系統的硬體架構 16-22
    16.9 架於資料庫系統上的各種輔助系統 16-25
    16.10 資訊保密與安全性方面的議題 16-29
    16.11 管理方面的議題 16-31
    16.12 結語 16-32
    習題 16-36
  • 參考資料 2 ~ 21
    中英文對照索引 2 ~ 9
    英中文對照索引 2 ~ 10