《數據庫原理與應用(SQL Server 2005)》用通俗的語言將抽象的數據庫系統原理具體化,結合目前最流行的數據庫管理系統——SQL Server 2005講述了數據庫的基本理論與應用。全書共11章,主要內容包括緒論、數據模型、關系數據庫、SQL Server 2005數據庫基礎、關系數據庫標準語言SQL、存儲過程和觸發器、安全性管理、數據庫保護、關系模式規范化、數據庫設計和Visual Basic.NET數據庫編程實例——教務管理系統等,附錄部分還給出了實驗指導等內容。書中還包括大量的實例及習題,并配有豐富的實驗項目。書中實例采用積件的方式圍繞一個完整的數據庫管理系統——教務管理系統來設計,這也是《數據庫原理與應用(SQL Server 2005)》區分于其他數據庫教材的一個重要特色。?
《數據庫原理與應用(SQL Server 2005)》既可作為一般本科院校或高職高專計算機以及非計算機專業數據庫課程的教材,也可作為數據庫方面的培訓用書,還可作為數據庫開發人員的參考書。
數據庫技術是計算機學科中極其重要的組成部分。一直以來,各種應用廣泛的信息系統,包括國家經濟信息系統、企業管理信息系統、事務型管理信息系統、行政機關辦公型管理信息系統和專業型管理信息系統等,都需要數據庫技術的支持。同時,數據庫原理與技術也是當前高等院校計算機及相關專業必修的核心課程之一。
面對市場上琳瑯滿目的數據庫相關教材,讀者要選擇一本合適的教材卻并不容易,原因主要有兩點:一方面是有的數據庫教材過分強調理論,讀者在艱難的學習中好不容易理解了相關理論,卻不能將理論付諸于實踐;另一方面是有的數據庫教材過分強調應用,學生通過對教材的學習基本上能夠開發一個小型的數據庫應用系統,但只知其然而不知其所以然。以上兩方面的問題都源于數據庫技術理論與實踐教學的嚴重脫節。
為了解決上述問題,編者根據近二十年的“數據庫原理”、“SQL Servet與應用”、“數據庫原理與應用”等課程的教學經驗及其立項課題研究成果,堅持以理論與實踐相結合的原則,在注重理論性、系統性、科學性的同時,兼顧培養學生的自主創新學習能力,編寫了本書,旨在幫助讀者通過目前最流行的數據庫管理系統——SQL Servet 2005的學習掌握數據庫技術的基本原理,并能夠利用目前被廣泛應用的開發工具——Visual Basic.NET 2005開發一個實用的管理信息系統。
本書是湖南省教育廳2008年教學改革研究立項項目——“大學計算機應用基礎”課程教學改革的研究與實踐(湘教通[2008]263號)的研究成果。
出版說明
前言
第1章 緒論
1.1 信息、數據與數據處理
1.2 數據管理技術的發展
1.2.1 人工管理階段
1.2.2 文件系統階段
1.2.3 數據庫系統階段
1.3 數據庫系統的組成
1.4 數據庫技術的研究領域
1.5 本章小結
1.6 習題
第2章 數據模型
2.1 數據模型概述
2.1.1 數據描述的三種范疇
2.1.2 兩類抽象層次的數據模型
2.2 概念模型與E-R方法
2.2.1 概念模型的基本概念
2.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 本章小結
2.6 習題
第3章 關系數據庫
3.1 關系數據模型
3.1.1 關系數據模型的數據結構和基本術語
3.1.2 關系的形式定義
3.1.3 關系的性質
3.1.4 關系模式
3.2 關系模型的完整性約束
3.2.1 實體完整性規則
3.2.2 參照完整性規則
3.2.3 用戶定義完整性
3.3 關系代數
3.3.1 關系代數的五種操作
3.3.2 關系代數的其他操作
3.4 本章小結
3.5 習題
第4章 SQL Server 2005數據庫基礎
4.1 SQL Server 2005簡介
4.2 SQL Server服務器的啟動、暫停和停止
4.3 SQL Server Management Studio簡介
4.3.1 對象資源管理器
4.3.2 查詢編輯器
4.4 注冊服務器
4.5 SQL Server數據庫的創建與維護
4.5.1 SQL Server 數據庫的組成
4.5.2 系統數據庫
4.5.3 創建數據庫
4.5.4 修改數據庫
4.5.5 刪除數據庫
4.5.6 數據庫的重命名
4.6 Transact?SQL程序設計基礎
4.6.1 SQL與Transact?SQL
4.6.2 SQL Server標識符
4.6.3 數據類型
4.6.4 常量、變量和運算符
4.6.5 函數
4.6.6 程序注釋語句
4.6.7 批處理
4.6.8 流程控制語句
4.7 本章小結
4.8 習題
第5章 關系數據庫標準語言SQL
5.1 SQL的三級模式結構
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 嵌套查詢
5.3.5 集合查詢
5.4 數據操縱功能
5.4.1 插入數據
5.4.2 修改數據
5.4.3 刪除數據
5.5 視圖
5.5.1 視圖的概念
5.5.2 定義視圖
5.5.3 刪除視圖
5.5.4 查詢視圖
5.5.5 更新視圖
5.5.6 視圖的作用
5.6 數據控制
5.6.1 數據控制簡介
5.6.2 授權
5.6.3 收回權限
5.7 本章小結
5.8 習題
第6章 存儲過程和觸發器
6.1 存儲過程
6.1.1 存儲過程的基本概念
6.1.2 創建存儲過程
6.1.3 執行存儲過程
6.1.4 存儲過程的返回值和狀態信息
6.1.5 存儲過程的修改和刪除
6.2 觸發器
6.2.1 觸發器的概念
6.2.2 觸發器的功能
6.2.3 觸發器的分類
6.2.4 Inserted表和deleted表
6.2.5 操作觸發器的注意事項
6.2.6 創建觸發器
6.2.7 DML觸發器
6.2.8 DDL觸發器
6.3 本章小結
6.4 習題
第7章 安全性管理
7.1 SQL Server 的安全機制
7.1.1 操作系統級的安全性
7.1.2 SQL Server 級的安全性
7.1.3 數據庫級的安全性
7.2 登錄和用戶
7.2.1 登錄身份驗證模式及其設置
7.2.2 創建登錄
7.2.3 創建用戶
7.3 權限管理
7.3.1 服務器權限
7.3.2 數據庫對象權限
7.3.3 數據庫權限
7.4 角色管理
7.4.1 固定服務器角色
7.4.2 數據庫角色
7.5 本章小結
7.6 習題
第8章 數據庫保護
8.1 事務
8.1.1 事務的概念
8.1.2 事務的性質
8.1.3 事務調度
8.1.4 SQL Server的事務處理
8.2 并發控制
8.2.1 并發控制概述
8.2.2 封鎖
8.2.3 封鎖協議
8.2.4 活鎖和死鎖
8.2.5 并發調度的可串行性
8.2.6 兩段鎖協議
8.2.7 封鎖的粒度
8.2.8 SQL Server的并發控制
8.3 數據庫恢復技術
8.3.1 恢復的實現技術
8.3.2 具有檢查點的恢復技術
8.3.3 SQL Server 的備份與恢復
8.4 本章小結
8.5 習題
第9章 關系模式規范化
9.1 問題的提出
9.2 函數依賴的基本概念
9.2.1 函數依賴
9.2.2 一些術語和符號
9.3 規范化
9.3.1 第一范式
9.3.2 第二范式
9.3.3 第三范式
9.3.4 BCNF范式
9.3.5 多值依賴與第四范式
9.3.6 各范式間的關系
9.4 本章小結
9.5 習題
第10章 數據庫設計
10.1 數據庫設計概述
10.1.1 數據庫設計的特點
10.1.2 數據庫設計方法
10.1.3 數據庫設計的基本步驟
10.2 數據庫規劃
10.3 需求分析
10.3.1 需求分析的任務
10.3.2 調查
10.3.3 結構化分析方法
10.4 概念結構設計
10.4.1 概念結構設計的策略與步驟
10.4.2 采用E?R方法的概念結構設計
10.5 邏輯結構設計
10.5.1 E?R模型向關系數據模型的轉換
10.5.2 關系模型的優化
10.5.3 設計外模式
10.6 物理結構設計
10.6.1 物理設計的內容與方法
10.6.2 關系模式存取方法選擇
10.6.3 確定數據庫的存儲結構
10.6.4 物理設計的評價
10.7 數據庫行為設計
10.7.1 功能需求分析
10.7.2 功能設計
10.7.3 事務設計
10.8 數據庫的實施和維護
10.8.1 數據庫的實施
10.8.2 數據庫的運行和維護
10.9 本章小結
10.10 習題
第11章 Visual Basic.NET數據庫編程實例——教務管理系統
11.1 Visual Basic.NET介紹
11.1.1 Microsoft Visual Studio 2005集成開發環境
11.1.2 Visual Studio 2005 IDE 的用戶界面元素
11.2 利用ADO.NET進行數據庫開發
11.2.1 ADO.NET概述
11.2.2 ADO.NET對象模型
11.3 教務管理系統的實現
11.3.1 創建數據庫及數據表
11.3.2 系統框架示意圖
11.3.3 業務方法類的實現
11.3.4 系統登錄模塊的設計與實現
11.3.5 基礎數據管理模塊的設計與實現
11.3.6 教師選課以及成績管理模塊的設計與實現
11.3.7 學生選課以及成績查詢模塊的設計與實現
11.4 本章小結
附錄
附錄A 實驗指導
實驗一 SQL Server2005服務器與數據庫管理
實驗二 表的建立與維護
實驗三 數據查詢
實驗四 創建和使用視圖
實驗五 存儲過程的創建和使用
實驗六 觸發器的創建和使用
實驗七 SQL Server的數據庫恢復技術
實驗八 SQL Server的安全性管理
實驗九 數據庫系統開發
附錄B SQL Server 2005服務器注冊常見問題及其解決辦法
參考文獻
例如,學校教務處、財務處及醫院建立的文件中都有學生資料,如家庭住址、聯系電話等,這便是數據冗余,如果某個學生退學,就要修改三個部門文件中的數據,否則會導致同一數據在三個部門的不一致。產生上述問題的原因是這三個部門的文件中的數據沒有聯系。
1.2.3數據庫系統階段
20世紀60年代后期,計算機的軟硬件得到了進一步的發展,已出現了容量大、存取速度快的磁盤,需要管理的數據量急劇增加,數據管理技術得到了很大提高。1968年,美國IBM公司成功開發了世界上第一個數據庫管理系統IMs,標志著數據管理技術進入了數據庫系統階段。數據庫系統克服了文件系統的缺陷,應用程序與存儲的數據分離開來,提供了對數據更有效的管理。
數據庫系統階段的數據管理方式有以下幾個特點。
1.數據結構化
在數據庫系統中,數據按一定的模式組織與存儲,這就稱為數據的結構化。結構化的數據能反映數據間的內在聯系。由于數據庫是從全部應用的全局考慮并集成數據結構,因此數據庫中的數據已不再只是面向個別應用,而是面向整個系統,各個不同應用所需數據只是整個全局數據的局部子集。
2.數據的共享性高。冗余度低。易擴充
數據共享是數據庫技術先進性的重要體現。數據庫的數據共享主要體現在:第一,數據庫中的數據可供多個應用使用;第二,可以開發新的應用而不增加新的數據。數據共享可以減少數據冗余,節省存儲空間,同時可以在現有數據的基礎上開發新的應用,所以整個應用系統易于擴充。
3.數據獨立性高
數據庫系統中的數據文件是面向數據的,而與具體的應用程序無關。在數據庫系統中,數據具有很高的獨立性。
數據的獨立性包括數據的物理獨立性和數據的邏輯獨立性。
數據的物理獨立性是指應用程序與存儲在磁盤上的數據庫中的數據是相互獨立的。這是因為數據在磁盤上的存儲由數據庫管理系統統一管理,應用程序只是處理數據的邏輯結構,即使數據的物理存儲結構發生了變化,應用程序也不用改變。
數據的邏輯獨立性是指應用程序涉及的數據只是系統全局數據的局部子集,即使全局數據發生了改變,局部數據和應用程序也不用改變。
數據的邏輯獨立性和物理獨立性的具體實現細節將在第2章給出。
4.數據由數據庫管理系統統一控制
在數據庫系統中,多個用戶可以同時存取數據庫中的數據,甚至可以同時存取數據庫中的同一個數據,即數據庫的共享是并發的。數據庫管理系統對數據的控制主要體現在:第一,對數據的安全性進行保護;第二,對數據的完整性進行檢查;第三,數據的并發控制;第四,數據庫的恢復。具體內容參見本書后面的相關章節。