《數據庫原理及應用》根據理論與應用相結合的寫作思路,以一個簡單的數據庫應用實例貫穿全書,使讀者清晰認識到理論和應用各自解決的問題。在理論方面,詳細介紹了數據庫系統理論,包括數據模型、數據庫的設計、規范化理論、數據庫管理和數據庫的體系結構;在應用方面,主要介紹了在SQL Server 2005環境下如何完成數據庫的創建、數據庫的操作、數據庫應用設計及與數據庫的連接、XML等。全書共11章,為了便于讀者理解和掌握,每章配有習題,有些習題可供讀者上機使用。
《數據庫原理及應用》可作為高等院校信息管理與信息系統專業、電子商務專業及其他相關專業的教材,也可作為從事數據庫應用人員的參考書。
第1章 數據庫系統概論
1.1 數據庫系統的應用實例
1.1.1 學院教學管理系統
1.1.2 超市信息管理系統
1.2 數據管理的發展
1.2.1 人工管理階段
1.2.2 文件系統階段
1.2.3 數據庫管理階段
1.3 數據庫系統的概述
1.3.1 數據庫系統的組成
1.3.2 數據庫管理系統
1.4 數據模型
1.4.1 數據模型的類型和組成
1.4.2 概念模型
1.4.3 常用的數據模型
1.5 數據庫系統結構
1.5.1 數據抽象過程
1.5.2 數據庫系統的三級模式結構
1.6 習題
第2章 關系模型與關系代數
2.1 關系概念
2.1.1 域
2.1.2 笛卡兒積
2.1.3 關系的數學定義
2.1.4 關系模式、關系數據庫模式和關系數據庫
2.1.5 關系性質
2.2 關系的碼
2.3 關系的完整性
2.3.1 實體完整性
2.3.2 參照完整性
2.3.3 用戶定義完整性
2.4 關系代數
2.4.1 關系操作
2.4.2 關系運算
2.4.3 關系代數
2.5 習題
第3章 數據庫的概念設計
3.1 數據庫的設計過程
3.1.1 數據庫設計概述
3.1.2 需求分析
3.2 ER模型
3.2.1 ER方法
3.2.2 屬性和聯系概念的擴展
3.3 ER模型的設計
3.3.1 概念結構設計方法和步驟
3.3.2 局部ER模型的設計
3.3.3 局部ER模型設計案例
3.3.4 全局ER模型的設計
3.3.5 全局ER模型設計案例
3.3.6 優化全局ER模型
3.4 習題
第4章 數據庫的邏輯設計
4.1 ER模型轉換為關系模型
4.1.1 邏輯結構設計步驟
4.1.2 ER模型向關系模型的轉換
4.1.3 優化關系模式
4.1.4 邏輯結構設計案例
4.2 SQL概述
4.2.1 SQL的發展歷程
4.2.2 SQL數據庫的體系結構
4.2.3 SQL的特點與組成
4.3 SQL Server 2005入門知識
4.3.1 SQL Server 2005的概述
4.3.2 SQL Server 2005的配置要求與安裝
4.3.3 SQL Server Management Studio概述
4.4 數據庫的創建
4.4.1 SQL Server 2005數據庫的概述
4.4.2 創建用戶數據庫
4.4.3 數據庫的修改與刪除
4.5 表的創建
4.5.1 SQL Server 2005表的概述
4.5.2 SQL Server 2005表的創建
4.5.3 SQL Server 2005表結構的修改
4.5.4 輸入數據
4.5.5 表的刪除
4.6 視圖的創建
4.6.1 SQL Server 2005視圖的概述
4.6.2 SQL Server 2005視圖的創建
4.6.3 SQL Server 2005視圖的修改與刪除
4.6.4 視圖的應用
4.7 習題
第5章 數據庫的規范化
5.1 什么是好的數據庫設計
5.2 函數依賴理論
5.2.1 函數依賴的定義
5.2.2 完全函數依賴與部分函數依賴
5.2.3 傳遞函數依賴
5.2.4 鍵(碼)
5.3 關系的規范化
5.3.1 第一范式
5.3.2 第二范式
5.3.3 第三范式
5.3.4 BCNF
5.3.5 第四范式
5.4 習題
第6章 數據庫的物理設計
6.1 存儲和文件結構
6.1.1 物理設計的步驟
6.1.2 數據存儲
6.1.3 文件結構
6.2 索引與散列
6.2.1 索引的概念
6.2.2 散列的概念
6.3 SQL中的索引定義
6.4 評價物理結構
6.5 習題
第7章 數據庫的數據操作
7.1 簡單查詢
7.1.1 SELECT子句和FROM子句
7.1.2 WHERE子句
7.1.3 GROUPBY子句
7.1.4 ORDERBY子句
7.2 聚集函數
7.2.1 COUNT函數
7.2.2 SUM函數
7.2.3 AVG函數
7.2.4 MIN函數和MAX函數
7.3 空值
7.4 連接查詢
7.4.1 自連接查詢
7.4.2 內連接
7.4.3 外連接
7.4.4 交叉連接
7.5 集合運算
7.5.1 UNION運算符
7.5.2 INTERSECT運算符
7.5.3 EXCEPT運算符
7.6 嵌套查詢
7.6.1 單值比較嵌套查詢
7.6.2 帶[NOT]IN的嵌套查詢
7.6.3 多值比較嵌套查詢
7.6.4 帶[NOT]EXISTS的嵌套查詢
7.7 更新操作
7.7.1 插入數據
7.7.2 修改數據
7.7.3 刪除數據
7.8 習題
第8章 數據庫應用設計與開發
8.1 用戶界面和工具
8.1.1 表格和圖形用戶界面
8.1.2 報表生成器
8.1.3 數據分析工具
8.2 數據庫的Web界面
8.3 Servlet和ASP
8.4 建立大型Web應用
8.5 觸發器
8.5.1 觸發器的概念
8.5.2 SQL中的觸發器
8.6 存儲過程
8.6.1 存儲過程的概述
8.6.2 存儲過程的類型
8.6.3 存儲過程的使用
8.7 數據庫與多種語言的連接
8.7.1 VB與SQL Server的連接
8.7.2 ASP.NET與SQL Server的連接方式
8.8 習題
第9章 數據庫管理
9.1 數據庫的安全性
9.1.1 安全性控制
9.1.2 安全性級別
9.1.3 權限
9.1.4 SQL中的安全性的控制
9.1.5 視圖
9.2 事務處理
9.2.1 事務的概念
9.2.2 事務的性質
9.3 并發處理與并發控制
9.3.1 并發操作帶來的問題
9.3.2 封鎖
9.3.3 活鎖與死鎖
9.3.4 封鎖的粒度
9.4 數據庫的備份與恢復
9.4.1 故障分類
9.4.2 恢復的原理及實現的方法
9.4.3 檢查點機制
9.4.4 故障的恢復對策
9.5 數據庫完整性的控制
9.5.1 完整性規則的組成
9.5.2 完整性約束的分類
9.5.3 SQL中的完整性約束
9.6 習題
第10章 XML與關系數據庫
10.1 XML的基本知識
10.1.1 XML的數據結構
10.1.2 XML文檔模式
10.1.3 查詢與轉換
10.1.4 XML應用程序接口
10.2 XML與關系數據庫的關系
10.2.1 非關系的數據存儲
10.2.2 關系數據庫
10.3 SQLSever2005對XML的支持
10.3.1 SQL/XML
10.3.2 XML應用
10.4 習題
第11章 系統體系結構
11.1 數據庫體系結構
11.1.1 客戶/服務器體系結構
11.1.2 并行系統
11.1.3 分布式系統
11.2 并行數據庫
11.2.1 并行數據庫概述
11.2.2 并行系統設計
11.3 分布式數據庫
11.3.1 分布式數據庫概述
11.3.2 分布式數據庫的系統結構
11.3.3 數據分片
11.3.4 分布式數據庫管理系統
11.3.5 分布式查詢處理
11.4 主動數據庫
11.5 多媒體數據庫
11.6 習題
參考文獻
聚簇以后,聚簇碼相同的元組集中在一起了,因而聚簇碼值不必在每個元組中重復存儲,只要在一組中存一次就行了,因此可以節省一些存儲空間。
聚簇功能不但適用于單個關系,也適用于多個關系。假設用戶經常要按系別查詢學生成績單,這一查詢涉及學生關系和課程關系的連接操作,即需要按學號連接這兩個關系,為提高連接操作的效率,可以把具有相同學號值的學生元組和課程元組在物理上聚簇在一起。
但必須注意的是,聚簇只能提高某些特定應用的性能,而且建立與維護聚簇的開銷是相當大的。對已有關系建立聚簇,將導致關系中的元組移動其物理存儲位置,并使此關系上原有的索引無效,必須重建。當一個元組的聚簇碼改變時,該元組的存儲位置也要做相應移動。
2.設計數據的存取路徑
在關系數據庫中,選擇存取路徑主要是確定如何建立索引。例如,建立單碼索引還是組合索引,建立多少個索引合適,是否建立聚集索引等。
3.確定數據的存放位置
例如,數據庫數據備份、日志文件備份等由于只在故障恢復時才使用,而且數據量很大,可以考慮存放在磁帶上。目前許多計算機都有多個磁盤,因此進行物理設計時可以考慮將表和索引分別放在不同的磁盤上。在查詢時,由于兩個磁盤驅動器分別在工作,因而可以保證物理讀寫速度比較快,也可以將比較大的表分別放在兩個磁盤上,以加快存取速度,這在多用戶環境下特別有效。此外,還可以將日志文件與數據庫對象(表、索引等)放在不同的磁盤,以改進系統的性能。
4.確定系統配置
DBMS產品一般都提供了一些存儲分配參數,供設計人員和DBA對數據庫進行物理優化。初始情況下,系統都為這些變量賦予了合理的默認值。但是這些值不一定適合每一種應用環境,在進行物理設計時,需要重新對這些變量賦值以改善系統的性能。
通常情況下,這些配置變量包括同時使用數據庫的用戶數、同時打開的數據庫對象數、使用緩沖區長度、使用緩沖區個數、時間片大小、數據庫的大小、裝填因子和鎖的數目等,這些參數值影響了存取時間和存儲空間的分配,在物理設計時就要根據應用環境確定這些參數值,以使系統性能最優。
在物理設計時對系統配置變量的調整只是初步的,在系統運行時還要根據系統實際運行的情況做進一步的調整,以切實改進系統性能。
……