全套電子課件:數(shù)據(jù)庫技術與應用-第八套_第1頁
全套電子課件:數(shù)據(jù)庫技術與應用-第八套_第2頁
全套電子課件:數(shù)據(jù)庫技術與應用-第八套_第3頁
全套電子課件:數(shù)據(jù)庫技術與應用-第八套_第4頁
全套電子課件:數(shù)據(jù)庫技術與應用-第八套_第5頁
已閱讀5頁,還剩343頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、 第1章 數(shù)據(jù)庫概述第1章 數(shù)據(jù)庫概述 1.1 計算機數(shù)據(jù)管理的發(fā)展 1.2 數(shù)據(jù)庫管理系統(tǒng) 1.3 數(shù)據(jù)庫系統(tǒng) 1.4 數(shù)據(jù)模型 1.5 關系數(shù)據(jù)庫系統(tǒng) 1.6 本章小結 1.7 習題1.1 計算機數(shù)據(jù)管理的發(fā)展 1.1.1 數(shù)據(jù)管理 1.1.2 數(shù)據(jù)庫技術的產(chǎn)生和發(fā)展1.1.1 數(shù)據(jù)管理數(shù)據(jù)數(shù)據(jù)是對客觀事物的符號表示,通常是以一組“數(shù)字”組成用以表征某一自然客體或社會客體的數(shù)量或質(zhì)量的概念,即數(shù)據(jù)是用以表征物質(zhì)的存在、相互關系、運動狀態(tài)和變化規(guī)律的一組“數(shù)字”的組合。數(shù)據(jù)與信息 數(shù)據(jù)和信息的含義并不完全相同。數(shù)據(jù)是指記載下來的事實,是客觀實體屬性的值,而信息是一種已經(jīng)被加工為特定形式的數(shù)據(jù)

2、,是數(shù)據(jù)所表達的內(nèi)容,它能使事物的不確定性減少。1.1.2 數(shù)據(jù)庫技術的產(chǎn)生和發(fā)展人工管理階段文件系統(tǒng)階段數(shù)據(jù)庫系統(tǒng)階段數(shù)據(jù)倉庫階段數(shù)據(jù)庫系統(tǒng)階段(1)數(shù)據(jù)結構化(2)數(shù)據(jù)獨立性高(3)數(shù)據(jù)的共享性好,冗余度低(4)數(shù)據(jù)由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理和控制1.2 數(shù)據(jù)庫管理系統(tǒng)1.2.1 數(shù)據(jù)庫管理系統(tǒng)的定義1.2.2 數(shù)據(jù)庫管理系統(tǒng)的功能1.2.1 數(shù)據(jù)庫管理系統(tǒng)的定義數(shù)據(jù)庫管理系統(tǒng)(Database Management System,簡稱DBMS)是位于用戶和操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,它使用戶能方便地定義數(shù)據(jù)和操縱數(shù)據(jù),并能夠保證數(shù)據(jù)的安全性、完整性、多用戶并發(fā)使用及發(fā)生故障后的系統(tǒng)恢復

3、。 1.2.2 數(shù)據(jù)庫管理系統(tǒng)的功能1. 數(shù)據(jù)定義功能2. 數(shù)據(jù)操縱功能3. 數(shù)據(jù)庫的運行管理4. 數(shù)據(jù)庫的建立和維護功能5. 數(shù)據(jù)組織和管理6. 數(shù)據(jù)通信功能1.3 數(shù)據(jù)庫系統(tǒng)1.3.1 數(shù)據(jù)庫系統(tǒng)的定義1.3.2 數(shù)據(jù)庫系統(tǒng)的組成1.3.3 數(shù)據(jù)庫系統(tǒng)的模式1.3.4 數(shù)據(jù)庫語言1.3.1 數(shù)據(jù)庫系統(tǒng)的定義數(shù)據(jù)庫本身不是獨立存在的,它是數(shù)據(jù)庫系統(tǒng)的一部分,在實際應用中,人們所面對的數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫系統(tǒng)(Database System,簡稱DBS)是指帶有數(shù)據(jù)庫的計算機應用系統(tǒng)。 1.3.2 數(shù)據(jù)庫系統(tǒng)的組成數(shù)據(jù)庫系統(tǒng)是計算機應用系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng),簡單地講是由硬件、軟件、數(shù)據(jù)庫和人

4、員組成,具體講一般由硬件系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)及相關軟件、數(shù)據(jù)庫集合和人員組成數(shù)據(jù)庫管理員數(shù)據(jù)庫管理員(Database Administrator,簡稱DBA)是一個或一組人員,是數(shù)據(jù)庫的全面負責建立、維護和管理數(shù)據(jù)庫系統(tǒng)的人員,具體的職責包括:設計與定義數(shù)據(jù)庫系統(tǒng)監(jiān)控數(shù)據(jù)庫的使用和運行數(shù)據(jù)庫的轉儲與恢復數(shù)據(jù)庫的改進和重組數(shù)據(jù)庫的重構1.3.3 數(shù)據(jù)庫系統(tǒng)的模式1.3.4 數(shù)據(jù)庫語言1. 數(shù)據(jù)描述語言(DDL)2. 數(shù)據(jù)操縱語言(DML)3. 數(shù)據(jù)控制語言(DCL)4. 宿主語言1.4 數(shù)據(jù)模型1.4.1 數(shù)據(jù)處理的三個世界1.4.2 數(shù)據(jù)模型的要素1.4.3 數(shù)據(jù)模型的分類1.4.1 數(shù)據(jù)處

5、理的三個世界信息世界信息世界(或稱概念世界)是現(xiàn)實世界在人們頭腦中的反映,是對客觀事物及其聯(lián)系的一種抽象描述,一般使用實體-聯(lián)系(entity-relationship,縮寫為E-R)圖表示。信息世界涉及的主要概念有:(1)實體(entity)(2)屬性(attribute)(3)碼(key)(4)域(domain)(5)實體型(entity type)(6)聯(lián)系(relationship) 一對一聯(lián)系(1:1) 一對多聯(lián)系(1:n) 多對多聯(lián)系(m:n)信息世界建模最常用的工具是實體-聯(lián)系圖(E-R圖)。實體型,用矩形表示,矩形框內(nèi)寫明實體名;屬性,用橢圓形表示,并用無向邊將其與相應的實體連

6、接起來;聯(lián)系,用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關實體型連接起來,同時在無向邊旁標上聯(lián)系的類型。信息世界建模1.4.2 數(shù)據(jù)模型的要素數(shù)據(jù)結構 數(shù)據(jù)結構用于描述系統(tǒng)的靜態(tài)特性。數(shù)據(jù)操作 數(shù)據(jù)操作用于描述系統(tǒng)的動態(tài)特性。數(shù)據(jù)的約束條件 數(shù)據(jù)的約束條件是一組完整性規(guī)則的集合;完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和儲存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效和相容。1.4.3 數(shù)據(jù)模型的分類按照數(shù)據(jù)模型描述的角度不同,數(shù)據(jù)模型可以分為:概念模型和數(shù)據(jù)庫支持的數(shù)據(jù)模型。目前最常用的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和關系模型。隨著技術發(fā)展,

7、面向對象模型越來越受到關注。層次模型和網(wǎng)狀模型統(tǒng)稱為非關系模型。在非關系模型中,實體用記錄表示,實體之間的聯(lián)系用轉換成記錄之間的兩兩聯(lián)系。 1.4.3 數(shù)據(jù)模型的分類1. 層次模型 層次模型是數(shù)據(jù)庫系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型,它的數(shù)據(jù)結構是一棵“有向樹”。層次模型的特征是: 有且僅有一個結點沒有父結點,它就是根結點; 其他結點有且僅有一個父結點。 在層次模型中,每個結點描述一個實體型,稱為記錄型。一個記錄型可有許多記錄值,簡稱為記錄。結點之間的有向邊表示記錄之間的聯(lián)系。如果要存取某一記錄型的記錄,可以從根結點開始,按照有向樹層次逐層向下查找,查找路徑就是存取路徑。1.4.3 數(shù)據(jù)模型的分類2.

8、網(wǎng)狀模型 用網(wǎng)狀結構表示實體及其之間聯(lián)系的模型稱為網(wǎng)狀模型。網(wǎng)中的每一個結點代表一個記錄類型,聯(lián)系用鏈接指針來實現(xiàn)。廣義地講,任何一個連通的基本層次聯(lián)系的集合都是網(wǎng)狀模型。它取消了層次模型的兩點限制,網(wǎng)狀模型的特征是: 可以有一個以上的結點沒有父結點; 允許結點有多于一個的父結點。1.4.3 數(shù)據(jù)模型的分類3. 關系模型 關系模型是用二維表格結構來表示實體以及實體之間聯(lián)系的數(shù)據(jù)模型。關系模型的數(shù)據(jù)結構是一個“二維表框架”組成的集合,每個二維表又可稱為關系,因此可以說,關系模型是“關系框架”組成的集合。目前大多數(shù)DBMS都是關系模型的,所以它是我們主要討論的數(shù)據(jù)模型。關系模型的特征是: 描述的一

9、致性,不僅實體用關系描述,實體之間的聯(lián)系也用關系描述; 可用關系直接表示多對多的聯(lián)系; 關系必須是規(guī)范化的,即每個屬性是不可分的數(shù)據(jù)項,不允許表中有表。 關系模型是建立在數(shù)學概念基礎上的,有較強的理論基礎。 1.4.3 數(shù)據(jù)模型的分類4.面向對象數(shù)據(jù)模型 根據(jù)數(shù)據(jù)模型的三要素:數(shù)據(jù)結構、數(shù)據(jù)操作和數(shù)據(jù)約束條件,將面向對象數(shù)據(jù)模型與關系數(shù)據(jù)模型做一簡單比較。(1)在關系數(shù)據(jù)模型中基本數(shù)據(jù)結構是表,相當于面向對象數(shù)據(jù)模型中的類;關系模型中的數(shù)據(jù)元組相當于面向對象數(shù)據(jù)模型中的實例(對象),它們的區(qū)別在于OO模型的類中還包括方法,關系數(shù)據(jù)模型中只有實體的屬性而沒有對實體的操作。(2)在關系數(shù)據(jù)模型中,

10、對數(shù)據(jù)庫的操作都歸結為對關系的運算,而在面向對象數(shù)據(jù)模型中對類的操作分為兩部分:一部分是封裝在類內(nèi)的操作即方法,另一部分是類間相互溝通的操作即消息。(3)在關系數(shù)據(jù)模型中有域、實體和參照完整性約束,完整性約束條件可以用邏輯公式表示,稱為完整性約束方法。在面向對象數(shù)據(jù)模型中這些用于約束的公式可以用方法或消息表示,稱為完整性約束消息。 1.5 關系數(shù)據(jù)庫系統(tǒng)1.5.1 關系數(shù)據(jù)結構1.5.2 關系操作集合1.5.3 完整性約束1.5.1 關系數(shù)據(jù)結構 1. 關系(1)域(2)笛卡兒積(3)關系 列是同質(zhì)的,即列中的每一個分量來自同一個域。 不同的列可以來自相同的域,但屬性名不能相同。 列的順序無所

11、謂,可以任意交換。 行的順序無所謂,可以任意交換。 任意兩個元組不能完全相同。 分量必須取原子值,即每一個分量都是不可分的數(shù)據(jù)項。 2. 關系模式 3. 關系數(shù)據(jù)庫1.5.2 關系操作集合1. 實體完整性(entity integrity)實體完整性規(guī)則:若屬性A是基本關系R的主屬性,則屬性A不能取空值。2. 參照完整性(referential integrity)參照完整性規(guī)則:若屬性(或屬性組)F是基本關系R的外碼,它與基本關系S的KS主碼相對應,則對于R中每個元組在F上的值必須為空值(F的每個屬性均為空)或者等于S中某個元組的主碼值。3. 用戶定義完整性(user-defined int

12、egrity)用戶定義完整性規(guī)則:針對具體應用,關系中的元組的取值必須滿足用戶規(guī)定的約束條件。 1.5.3 完整性約束在現(xiàn)實世界里的E-R模型在計算機世界里可以用支持關系模型的DBMS來實現(xiàn),實體及實體之間的聯(lián)系均表示成關系,而這些關系的集合就構成了關系數(shù)據(jù)庫。關系數(shù)據(jù)庫也有型和值之分。關系數(shù)據(jù)庫的型是對關系數(shù)據(jù)庫的描述,包括若干域和定義在這些域上的關系模式,也可稱為關系數(shù)據(jù)庫模式。關系數(shù)據(jù)庫的值,是某一時刻對應的關系的集合,也可稱為關系數(shù)據(jù)庫。通常,關系數(shù)據(jù)庫模式和關系數(shù)據(jù)庫統(tǒng)稱為關系數(shù)據(jù)庫。1.6 本章小結 本章概述了數(shù)據(jù)庫系統(tǒng)的基本概念和基本結構。本章首先介紹了計算機數(shù)據(jù)管理的發(fā)展,闡明

13、了數(shù)據(jù)與信息的異同。數(shù)據(jù)管理是數(shù)據(jù)處理的中心問題。隨著計算機硬件和軟件的發(fā)展,數(shù)據(jù)管理經(jīng)歷了人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)三個發(fā)展階段。本章介紹了數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫系統(tǒng)的有關概念。數(shù)據(jù)庫管理系統(tǒng)是位于用戶和操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。數(shù)據(jù)庫系統(tǒng)三級模式和兩層映象的系統(tǒng)結構保證了數(shù)據(jù)庫系統(tǒng)中能夠具有較高的邏輯獨立性和物理獨立性。數(shù)據(jù)庫語言包括數(shù)據(jù)描述語言、數(shù)據(jù)操縱語言、數(shù)據(jù)控制語言和宿主語言。數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎。本章介紹了組成數(shù)據(jù)模型的三個要素、概念模型和三種主要的數(shù)據(jù)庫模型。這幾種最常用的數(shù)據(jù)模型是層次模型、網(wǎng)狀模型和關系模型。其中層次模型和網(wǎng)狀模型統(tǒng)稱為非關系模型。實體

14、聯(lián)系模型是最常用的概念模型,關系模型是當今的主流模型,本章重點介紹了關系數(shù)據(jù)庫系統(tǒng)。 第2章關系數(shù)據(jù)庫標準語言SQL 第2章 關系數(shù)據(jù)庫標準語言SQL 2.1 SQL的特點 2.2 SQL數(shù)據(jù)定義功能 2.3 SQL數(shù)據(jù)查詢功能 2.4 SQL數(shù)據(jù)操縱功能 2.5 視圖 2.6 數(shù)據(jù)控制 2.7 本章小結 2.8 習題 2.1 SQL的特點2.1.1 綜合統(tǒng)一2.1.2 高度非過程化 2.1.3 面向集合的操作方式2.1.4 以同一種語法結構提供兩種操作方式2.1.5 語言簡潔,易學易用 2.1.1 綜合統(tǒng)一結構化查詢語言 (Structured Query Language,簡稱SQL)是關

15、系數(shù)據(jù)庫的標準語言。SQL集數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)操縱和數(shù)據(jù)控制功能于一體,充分體現(xiàn)了關系數(shù)據(jù)庫語言的特點和優(yōu)點,語言風格統(tǒng)一,可以獨立完成數(shù)據(jù)庫生命周期中的全部活動。2.1.2 高度非過程化用SQL進行數(shù)據(jù)操作,用戶無需了解存取路徑,存取路徑的選擇以及SQL語句的操作過程由系統(tǒng)自動完成。這不但大大減輕了用戶負擔,而且有利于提高數(shù)據(jù)獨立性。2.1.3 面向集合的操作方式 SQL采用集合操作方式,不僅查找結果可以是元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。 2.1.4 以同一種語法結構提供兩種操作方式SQL既是自含式語言,又是嵌入式語言。作為自含式語言,它能夠獨立地用于

16、聯(lián)機交互的使用方式。作為嵌入式語言,SQL語句能夠嵌入到高級語言(例如C、COBOL、FORTRAN、PL/1)程序中,供程序員設計程序時使用。 2.1.5 語言簡潔,易學易用SQL功能極強,但由于設計巧妙,語言十分簡潔,完成數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)控制的核心功能只用了9個動詞:CREATE、DROP、ALTER、SELECT、INSERT、UPDATE、DELETE、GRANT、REVOKE。而且SQL語法簡單,接近英語口語,因此容易學習,容易使用。2.2 SQL數(shù)據(jù)定義功能2.2.1 創(chuàng)建、刪除、修改基本表 2.2.2 創(chuàng)建、刪除、修改索引 2.2.1 創(chuàng)建、刪除、修改基本表創(chuàng)建基本表是數(shù)

17、據(jù)庫中最基本的操作,其格式為:CREATE TABLE (列名 數(shù)據(jù)類型 列級完整性約束條件,列名 數(shù)據(jù)類型 列級完整性約束條件,表級完整性約束條件);2.2.1 創(chuàng)建、刪除、修改基本表修改已建立好的基本表,包括增加新列、增加新的完整性約束條件、修改原有的列定義或刪除已有的完整性約束條件等,其一般格式為:ALTER TABLE 表名ADD 新列名 數(shù)據(jù)類型 完整性約束DROP 完整性約束名MODIFY 列名 數(shù)據(jù)類型;2.2.1 創(chuàng)建、刪除、修改基本表刪除基本表的一般格式為: DROP TABLE 表名;2.2.2 創(chuàng)建、刪除、修改索引建立索引的一般格式為:CREATE UNIQUE CLUS

18、TER INDEX 索引名ON 表名 (列名 次序,列名 次序);刪除索引的一般格式為:DROP INDEX 索引名;2.3 SQL數(shù)據(jù)查詢功能2.3.1 單表查詢2.3.2 連接查詢2.3.3 嵌套查詢2.3.4 集合查詢2.3.1 單表查詢 選擇表中的若干列 選擇表中的若干元組 對查詢結果排序 使用集函數(shù) 對查詢結果分組2.3.2 連接查詢等值與非等值連接查詢自身連接外連接復合條件連接2.3.3嵌套查詢 帶有IN謂詞的子查詢 帶有比較運算符的子查詢 2.3.4 集合查詢SELECT語句的查詢結果是元組的集合,所以多個SELECT語句的結果可進行集合操作。集合操作主要包括并操作UNION、交

19、操作INTERSECT和差操作MINUS。2.4 SQL數(shù)據(jù)操縱功能 2.4.1 插入數(shù)據(jù)2.4.2 修改數(shù)據(jù)2.4.3 刪除數(shù)據(jù)2.4.1 插入數(shù)據(jù)插入單個元組 INSERT語句的格式為:INSERT INTO (,)VALUES (,) 插入子查詢結果子查詢不僅可以嵌套在SELECT語句中,用以構造查詢的條件,也可以嵌套在INSERT語句中,用以生成要插入的批量數(shù)據(jù)。 INSERT INTO (,) 子查詢; 2.4.2 修改數(shù)據(jù)修改數(shù)據(jù)語句的一般格式為:UPDATE表名SET =,=WHERE 條件;其功能為:修改指定表中滿足WHERE子句條件的元組。其中SET子句給出表達式的值用于取代

20、相應的屬性列值。如果省略WHERE子句,則表示要修改表中的所有元組。可修改某一元組的值,也可修改多個元組的值,子查詢也可以嵌套在UPDATE語句中,用以構造修改的條件。 2.4.3 刪除數(shù)據(jù)刪除數(shù)據(jù)語句的一般格式為:DELETEFROM 表名WHERE 條件;刪除某個元組的值 刪除多個元組的值 帶子查詢的刪除語句 更新操作與數(shù)據(jù)庫的一致性 2.5 視圖2.5.1 定義和刪除視圖2.5.2 查詢視圖 2.5.3 更新視圖2.5.1 定義和刪除視圖建立視圖 格式:CREATE VIEW視圖名 (,列名) AS子查詢 WITH CHECK OPTION;刪除視圖 格式:DROP VIEW ;2.5.

21、2 查詢視圖視圖定義后,用戶就可以像對基本表一樣對視圖進行查詢了。對視圖的查詢時,首先進行有效性檢查,檢查查詢的表、視圖等是否存在。如果存在,則從數(shù)據(jù)字典中取出視圖的定義,把定義中的子查詢和用戶的查詢結合起來,轉換成等價的對基本表的查詢,然后再執(zhí)行修正后的查詢。這一轉換過程稱為視圖消解。 2.5.3 更新視圖由于視圖是不實際存儲數(shù)據(jù)的虛表,因此對視圖的更新最終要轉換為對基本表的更新。為防止用戶通過視圖對數(shù)據(jù)進行增加、刪除、修改時,有意無意地對不屬于視圖范圍內(nèi)的基本表數(shù)據(jù)進行操作,可在定義視圖時加上 WITH CHECK OPTION子句。這樣在視圖上增刪改數(shù)據(jù)時,DBMS會檢查視圖定義中的條件

22、,若不滿足條件,則拒絕執(zhí)行該操作。2.6 數(shù)據(jù)控制數(shù)據(jù)控制也稱為數(shù)據(jù)保護,包括數(shù)據(jù)的安全性控制、完整性控制、并發(fā)控制和恢復。關于數(shù)據(jù)保護的概念將在第4章中詳細介紹,本節(jié)主要介紹SQL的數(shù)據(jù)控制功能。授權收回權限2.7 本章小結 SQL的數(shù)據(jù)定義部分包括對SQL模式、基本表、視圖、索引的創(chuàng)建和撤消。SQL的數(shù)據(jù)操縱分成數(shù)據(jù)查詢和數(shù)據(jù)更新兩部分。SQL的數(shù)據(jù)查詢是用SELECT語句實現(xiàn),兼有關系代數(shù)和元組演算的特點。 SQL的數(shù)據(jù)更新包括插入、刪除和修改等三種操作,在視圖中只有行列子集視圖是可以更新的。嵌入式SQL涉及到SQL語句的宿主語言程序中的使用規(guī)定,以解決兩種語言的不一致和相互聯(lián)系的問題。

23、同時還介紹了動態(tài)SQL語句。 第3章 關系數(shù)據(jù)理論 第3章 關系數(shù)據(jù)理論 3.1 數(shù)據(jù)存儲異常 3.2 函數(shù)依賴 3.3 關系模式的規(guī)范化 3.4 關系模式的分解 3.5 本章小結 3.6 習題 3.1數(shù)據(jù)存儲異常3.1.1 關系模式的數(shù)學表示 3.1.2 一個實例 3.1.1關系模式的數(shù)學表示 關系模式是對關系的描述,可以將關系模式形式定義成一個五元組:R(U,D,DOM,F(xiàn))。其中:R為關系名;U為一組屬性,即組成R的全部屬性的集合;D為域的集合,即屬性取值范圍的集合;DOM為U與D之間的映象;F為屬性組U上的數(shù)據(jù)依賴關系的集合。 3.1.2 一個實例 一個教師授課管理系統(tǒng),在實際當中進行

24、教師授課的人工管理,通常是制作一張表。管理人員通過查詢該表,來了解某個教師可以教授哪些課程以便安排教學任務、通知授課老師。對這個實際問題,我們把它設計成一個教師授課管理的計算機系統(tǒng)。 3.2 函數(shù)依賴 數(shù)據(jù)依賴通過一個關系中屬性之間值的相等與否體現(xiàn)出來的數(shù)據(jù)間的相互關系,是現(xiàn)實世界事物之間的相互關聯(lián)性的一種表達,是屬性固有語義的體現(xiàn)。大多數(shù)數(shù)據(jù)依賴都是函數(shù)依賴平凡函數(shù)依賴與非平凡函數(shù)依賴完全函數(shù)依賴與部分函數(shù)依賴傳遞函數(shù)依賴主碼與候選碼3.3 關系模式的規(guī)范化一個低一級范式的關系模式,通過模式分解可以轉換為若干個高一級范式的關系模式的集合,這種過程就叫規(guī)范化。第一范式 如果一個關系模式R的所有

25、屬性都是不可分的基本數(shù)據(jù)項,則R1NF。第二范式 若關系模式R1NF,且每一個非主屬性都完全函數(shù)依賴于碼,則R2NF。第三范式 關系模式R(U,F(xiàn))中若不存在候選碼X、屬性組Y及非主屬性Z(ZY),使得XY,YZ,(Y X),成立則R(U,F(xiàn))3NF。BC范式 關系模式R(U,F(xiàn))1NF。若對于R的每一個函數(shù)依賴 XY,若YX,則 X必含有碼,那么R(U,F(xiàn))BCNF。 第四范式 關系模式R(U,F)1NF,如果對于R的每個非平凡多值依賴XY(YX),X都含有碼,則稱R(U,F(xiàn))4NF。 如果在4NF的基礎上,進一步投影分解,消除了連接依賴,就成為了5NF。 3.3 關系模式的規(guī)范化規(guī)范化小結

26、: 規(guī)范化:把低一級的關系模式通過模式分解,轉化為若干個高一級范式的關系模式的集合的過程。 目的:解決關系模式存在的插入、刪除異常、修改復雜,數(shù)據(jù)冗余等問題。 基本思想:“分離”,“一事一地”。讓一個關系描述一個概念、一個實體或者實體間的一種聯(lián)系。若多于一個概念就把它“分離”出去。 實質(zhì):概念的單一化。 3.4 關系模式的分解 3.4.1 關系模式分解的標準 3.4.2 無損連接性 3.4.3 保持函數(shù)依賴 3.4.1 關系模式分解的標準規(guī)范化過程中將一個關系模式分解為若干個關系模式,應該保證分解后產(chǎn)生的模式與原來的模式等價。通常關系模式分解等價標準是:要求分解是具有無損連接性要求分解是保持函

27、數(shù)依賴的 3.4.2 無損連接性設關系模式R(U,F(xiàn))(其中U為R的屬性的集合,F(xiàn)為R的函數(shù)依賴集合)分解為若干個關系模式R1(U1,F(xiàn)1),R2(U2,F(xiàn)2),RK(UK,F(xiàn)K),其中:U=U1U2UK,且不存在,F(xiàn)i是F在Ui上的投影。若R與R1,R2,RK自然連接的結果相等,則稱關系R的這個分解具有無損連接性(lossless join)。只有具有無損連接性的分解才能保證不丟失信息。3.4.3 保持函數(shù)依賴設關系模式R(U,F(xiàn))(其中U為R的屬性的集合,F(xiàn)為R的函數(shù)依賴集合)分解為若干個關系模式R1(U1,F(xiàn)1),R2(U2,F(xiàn)2),RK(UK,F(xiàn)K),其中:U=U1U2UK,且不存在,

28、Fi是F在Ui上的投影。若F所邏輯蘊涵的函數(shù)依賴一定也由分解得到的某個關系模式中的函數(shù)依賴Fi所邏輯蘊涵,則稱關系R的這個分解是保持函數(shù)依賴的(preserve dependency)。3.5 本章小結函數(shù)依賴是對關系中屬性值之間多對一的描述,也是對關系中值的一種約束。它是對關鍵碼概念的擴充。范式是衡量模式優(yōu)劣的標準。范式的級別越高,其數(shù)據(jù)冗余和操作異?,F(xiàn)象就越少。關系模式的規(guī)范化過程就是把低一級的關系模式通過模式分解,轉化為若干個高一級范式的關系模式的集合的過程。其目的是解決關系模式存在的插入、刪除異常、修改復雜,數(shù)據(jù)冗余等問題。關系模式在分解時,應該保證分解后產(chǎn)生的模式與原來的模式等價。通

29、常關系模式分解等價分別用無損連接性和保持函數(shù)依賴兩個特征來衡量。 第4章 數(shù)據(jù)庫保護第4章 數(shù)據(jù)庫保護 4.1 數(shù)據(jù)庫安全性 4.2 數(shù)據(jù)庫完整性 4.3 數(shù)據(jù)庫并發(fā)控制 4.4 數(shù)據(jù)庫恢復 4.5 本章小結 4.6 習題4.1 數(shù)據(jù)庫安全性4.1.1 數(shù)據(jù)庫的安全策略4.1.2 保證數(shù)據(jù)庫安全的一般方法4.1.1 數(shù)據(jù)庫的安全策略 數(shù)據(jù)庫安全策略是涉及信息安全的高級指導方針,這些策略根據(jù)用戶需要、安裝環(huán)境、建立規(guī)則和法律等方面的限制來制定。 數(shù)據(jù)庫系統(tǒng)安全性策略主要是一些基本性安全的問題,如訪問控制、偽裝數(shù)據(jù)的排除、用戶的認證、可靠性,這些問題是整個安全性問題的基本問題。 4.1.2 保證數(shù)

30、據(jù)庫安全的一般方法用戶標識與系統(tǒng)鑒定 機制過程存取控制 視圖保護 審計數(shù)據(jù)加密 4.2 數(shù)據(jù)庫完整性4.2.1 完整性概述4.2.2 完整性約束條件與DBMS的完整性機制4.2.1 完整性概述數(shù)據(jù)庫的完整性是指保證數(shù)據(jù)庫數(shù)據(jù)的正確性、有效性和相容性,防止錯誤的數(shù)據(jù)進入數(shù)據(jù)庫。數(shù)據(jù)完整性與安全性數(shù)據(jù)庫的完整性規(guī)則 4.2.2 完整性約束條件與DBMS的完整性機制 完整性約束條件 DBMS的完整性控制機制的功能4.3 數(shù)據(jù)庫并發(fā)控制 4.3.1 事務并發(fā)控制的基本單位 4.3.2 并發(fā)控制 4.3.3 封鎖4.3.4 死鎖及死鎖避免的方法 4.3.1 事務并發(fā)控制的基本單位 事務的定義 事務的特性

31、原子性一致性隔離性持久性 4.3.2 并發(fā)控制 并發(fā)控制是指在多用戶的環(huán)境下,對數(shù)據(jù)庫進行并發(fā)操作進行規(guī)范的機制。其目的是為了避免對數(shù)據(jù)的丟失修改、讀臟數(shù)據(jù)與不可重復讀等,從而保證數(shù)據(jù)的正確性與一致性。 并發(fā)操作可能產(chǎn)生的問題 并發(fā)操作的調(diào)度 4.3.3 封鎖封鎖類型 排它鎖共享鎖封鎖粒度 封鎖協(xié)議 保證數(shù)據(jù)一致性的三級封鎖協(xié)議共享鎖保證并行調(diào)度可串行化的兩段鎖協(xié)議 4.3.4 死鎖及死鎖避免的方法活鎖和死鎖 避免死鎖的方法一次封鎖法順序封鎖法死鎖的診斷和解除 4.4 數(shù)據(jù)庫恢復 4.4.1 數(shù)據(jù)庫故障4.4.2 數(shù)據(jù)庫恢復的一般方法 4.4.1 數(shù)據(jù)庫故障 事務故障 系統(tǒng)故障 介質(zhì)故障 計算

32、機病毒4.4.2 數(shù)據(jù)庫恢復的一般方法 轉儲靜態(tài)轉儲和動態(tài)轉儲 海量轉儲和增量轉儲 日志文件 日志文件的作用 登記日志文件 恢復事務 4.5 本章小結 數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫,防止用戶不合法使用所造成的數(shù)據(jù)泄露、修改或破壞。數(shù)據(jù)庫的安全性可以通過用戶身份鑒定和訪問控制來實現(xiàn)。數(shù)據(jù)庫的完整性是指保證數(shù)據(jù)庫數(shù)據(jù)的正確性、有效性和相容性,防止錯誤的數(shù)據(jù)進入數(shù)據(jù)庫。完整性可以用完整性約束來表示。 數(shù)據(jù)庫的并發(fā)控制以事務為單位,通常使用封鎖技術實現(xiàn)并發(fā)控制。本章介紹了兩類最常用的封鎖和三級封鎖協(xié)議。數(shù)據(jù)庫系統(tǒng)中可能發(fā)生的故障大致可以分為事務故障、系統(tǒng)故障、介質(zhì)故障和計算機病毒。數(shù)據(jù)庫轉儲和登記日志

33、文件是恢復中最經(jīng)常使用的技術。 第5章 數(shù)據(jù)庫設計第5章 數(shù)據(jù)庫設計5.1 數(shù)據(jù)庫設計概述5.2 需求分析5.3 概念結構設計5.4 邏輯結構設計5.5 數(shù)據(jù)庫物理設計5.6 數(shù)據(jù)庫實施5.7 數(shù)據(jù)庫運行和維護5.8 本章小結5.9 習題5.1 數(shù)據(jù)庫設計概述 5.1.1 數(shù)據(jù)庫設計的內(nèi)容 5.1.2 數(shù)據(jù)庫設計的基本步驟 5.1.3 數(shù)據(jù)庫設計方法5.1.1 數(shù)據(jù)庫設計的內(nèi)容 數(shù)據(jù)庫設計的內(nèi)容主要包括: 數(shù)據(jù)庫的結構特性設計 數(shù)據(jù)庫結構特性設計是指數(shù)據(jù)庫結構的設計,設計結果能否得到一個合理的數(shù)據(jù)模型,這是數(shù)據(jù)庫設計的關鍵。由于數(shù)據(jù)庫的結構特性是靜態(tài)的,一般情況下不會輕易變動,所以數(shù)據(jù)庫的結構

34、特性設計又稱為數(shù)據(jù)庫的靜態(tài)結構設計。首先要將現(xiàn)實世界中的事物以及事物間的聯(lián)系用E-R圖表示出來,再將各個分E-R圖進行匯總,得出數(shù)據(jù)庫的概念結構模型,然后將概念結構模型轉化為數(shù)據(jù)庫的邏輯結構模型表示,最后進行數(shù)據(jù)庫物理設計,并建立數(shù)據(jù)庫。 數(shù)據(jù)庫的結構特性設計起著關鍵的作用。 行為特性設計 數(shù)據(jù)庫的行為特性設計是指應用程序、事務處理的設計。數(shù)據(jù)庫的行為特性設計是基于數(shù)據(jù)庫用戶的行為和動作進行設計,而用戶行為總是更新數(shù)據(jù)庫內(nèi)容的操作,用戶行為特性是動態(tài)的,所以數(shù)據(jù)庫的行為特性設計又稱為數(shù)據(jù)庫的動態(tài)特性設計。首先要將現(xiàn)實世界中的數(shù)據(jù)用數(shù)據(jù)流程圖和數(shù)據(jù)字典表示,并詳細描述其中的數(shù)據(jù)操作要求,進而得出

35、系統(tǒng)的功能模塊結構和數(shù)據(jù)庫的子模式。5.1.2 數(shù)據(jù)庫設計的基本步驟1. 需求分析階段2. 概念結構設計階段3. 邏輯結構設計階段4. 物理結構設計階段5. 數(shù)據(jù)庫實施階段6. 數(shù)據(jù)庫運行和維護階段5.1.3 數(shù)據(jù)庫設計方法早期的數(shù)據(jù)庫設計采用手工試湊法進行,隨著計算機技術的飛速發(fā)展,人們也在不斷努力探索各種各樣非手工的數(shù)據(jù)庫設計方法,并提出了多種數(shù)據(jù)庫設計的準則和規(guī)范,這些設計方法被稱為規(guī)范設計法。非手工方法的主要代表有基于LRA方法、New orleans 方法、E-R模型方法等。其中New orleans 方法,即新奧爾良法是規(guī)范設計中比較著名的一種方法。本章節(jié)中所介紹的數(shù)據(jù)庫設計的基本

36、步驟正是按照新奧爾良法所提出的數(shù)據(jù)庫設計的六個階段進行操作的。數(shù)據(jù)庫工作者們十幾年來一直致力于研究和開發(fā)數(shù)據(jù)庫設計工具,以減輕數(shù)據(jù)庫設計人員的工作量,輔助他們更好的完成設計任務,特別是大型數(shù)據(jù)庫的設計更需要自動設計工具的支持。5.2 需求分析5.2.1 需求分析的主要任務5.2.2 需求分析的主要工作5.2.3 需求分析應注意的問題5.2.1需求分析的主要任務需求分析的主要任務是詳細調(diào)查現(xiàn)實世界的組織機構情況,充分了解系統(tǒng)概況和發(fā)展前景,明確用戶的各種需求,收集支持系統(tǒng)目標的基礎數(shù)據(jù)及其處理方法,確定新系統(tǒng)的功能和邊界。調(diào)查是需求分析的重要手段,只有通過對用戶的調(diào)查研究,才能獲取數(shù)據(jù)庫系統(tǒng)所需

37、數(shù)據(jù)情況和數(shù)據(jù)處理要求。調(diào)查的具體內(nèi)容包括:1. 數(shù)據(jù)庫信息內(nèi)容2. 數(shù)據(jù)處理內(nèi)容3. 數(shù)據(jù)安全性和完整性要求5.2.2需求分析的主要工作需求分析階段的工作主要有下面四部分組成:1. 分析用戶活動,產(chǎn)生用戶活動圖這一步主要是了解現(xiàn)實社會的機構組織及用戶當前的業(yè)務活動情況,搞清楚其業(yè)務流程,對一個比較復雜的處理,可劃分為若干子處理,分析之后畫出用戶活動圖。2. 確定系統(tǒng)范圍,產(chǎn)生系統(tǒng)范圍圖這一步主要是確定系統(tǒng)的邊界。哪些功能由人工完成,哪些功能由計算機實現(xiàn)。由計算機完成的功能就是新系統(tǒng)應該實現(xiàn)的功能。3. 分析用戶活動涉及的數(shù)據(jù),產(chǎn)生數(shù)據(jù)流圖這一步主要是深入分析用戶的業(yè)務處理,以數(shù)據(jù)流圖形式表示

38、出數(shù)據(jù)的流向和對數(shù)據(jù)所進行的加工。4. 分析系統(tǒng)數(shù)據(jù),產(chǎn)生數(shù)據(jù)字典5.2.3 需求分析應注意的問題需求分析階段一定要收集未來應用所涉及的數(shù)據(jù)。如果數(shù)據(jù)庫設計人員僅僅按照當前應用來設計,新數(shù)據(jù)的加入就會在操作中顯得十分困難,不僅會影響數(shù)據(jù)庫的概念結構,而且將影響邏輯結構和物理結構。所以設計人員必須有前瞻性,充分考慮到未來應用可能的擴充和改變,使設計易于變動。需求分析必須有用戶的積極參與。由于用戶缺少計算機專業(yè)知識,有時不能準確表達自己的要求;而設計人員缺少用戶的專業(yè)知識,不易理解用戶的真正需求,這就是確定用戶最終需求成為一件非常困難的事情。只有兩者加強溝通,互相交流,及時反饋用戶意見,才能夠較好

39、的完成需求分析。因此,用戶的積極參與是數(shù)據(jù)庫設計中不可缺少的環(huán)節(jié)。 5.3 概念結構設計5.3.1 概念模型5.3.2 概念設計的策略和主要步驟5.3.3 數(shù)據(jù)抽象方法5.3.4 E-R方法簡介5.3.5 采用E-R方法的數(shù)據(jù)庫概念設計5.3.1 概念模型表達概念設計結果的工具稱為概念模型。通常是將客觀對象首先抽象為概念模型,然后再把概念模型轉換成機器世界中的數(shù)據(jù)模型。所以概念結構的設計在數(shù)據(jù)庫設計中是非常重要的一步。通常對概念模型有以下要求:概念模型是對現(xiàn)實世界的抽象和概括,應有豐富的語義表達能力,能表達用戶的各種需求,包括描述現(xiàn)實世界中各種對象及其復雜的聯(lián)系,及用戶對數(shù)據(jù)庫對象的處理要求等

40、。概念模型應簡潔明晰,易于交流和理解。概念模型要求方便應用系統(tǒng)開發(fā)人員和用戶之間交流意見,使用戶能積極參與數(shù)據(jù)庫的設計工作。概念模型應易于變動。概念模型要能靈活地加以修改和補充,以適應用戶需求和應用環(huán)境的變化。概念模型應易于向關系、層次和網(wǎng)絡等各種數(shù)據(jù)模型轉換,易于從概念模型導出與數(shù)據(jù)庫管理系統(tǒng)有關的邏輯模型。 5.3.2 概念設計的策略和主要步驟設計概念結構的策略主要有以下幾種:自頂向下:首先定義全局概念結構框架,然后逐步細化為完整的全局概念結構。 自底向上:首先定義每一局部應用的概念結構,然后按一定的規(guī)則把它們集成,從而得到全局概念結構。 由里向外:首先定義最重要的那些核心概念結構,再逐漸

41、向外擴充生成其它概念結構,直至完成總體概念結構。 混合策略:混合策略是把自頂向下和自底向上結合起來的方法,它先采用自頂向下的策略設計一個全局概念結構的框架,然后以它為骨架,再自底向上設計局部概念結構,并把他們集成。 5.3.2 概念設計的策略和主要步驟 最常用的策略是自底向上設計策略,其主要步驟如下所示: 進行數(shù)據(jù)抽象,設計局部概念模式。局部用戶的信息需求是構建全局概念模式的基礎。因此,首先要根據(jù)用戶的需求為其建立相應的局部概念結構。 將局部概念模式綜合成全局概念模式。在把局部概念模式綜合的過程中,主要處理各局部模式對各種對象定義不一致的問題。把各個局部結構合并,還會產(chǎn)生冗余問題,或導致對信息

42、需求的再調(diào)整與分析,以確定確切的含義。 進行評審、改進。消除了所有沖突后,就可以把全局概念結構提交評審。評審分為用戶評審和系統(tǒng)開發(fā)人員評審。前者的重點在于確認全局概念模式是否完整準確地反映用戶信息需求;而后者則側重于確認全局結構是否完整,成份劃分是否合理,是否存在不一致性等。如果在評審中發(fā)現(xiàn)問題,應及時改進。5.3.3 數(shù)據(jù)抽象方法進行數(shù)據(jù)抽象是完成概念設計的第一步。所謂抽象是對現(xiàn)實世界中的人、事、物的人為處理,抽取人們關心的共同特性,忽略非本質(zhì)的細節(jié),并把這些特性用各種概念精確地加以描述,形成某種模型。抽象有兩種形式,一種是系統(tǒng)狀態(tài)的抽象,即抽象對象;另一種是系統(tǒng)轉換的抽象,即抽象運算。在數(shù)

43、據(jù)庫設計中,概念設計的目的就是要定義抽象對象的關系結構。以下介紹數(shù)據(jù)抽象的三種基本方法,分類、聚集和概括。 1. 分類 2. 聚集 3. 概括5.3.4 E-R方法簡介概念設計方法最著名,最實用的是P.P.S.Chen于1976年提出的“實體-聯(lián)系法”(Entity-Relationship Approach,簡稱E-R方法)。這種方法將現(xiàn)實世界的信息結構統(tǒng)一用屬性,實體以及實體之間的聯(lián)系,即E-R圖來描述。 E-R方法的基本術語和E-R圖的表示如1.4節(jié)所示。5.3.5 采用E-R方法的數(shù)據(jù)庫概念設計采用E-R方法的數(shù)據(jù)庫概念設計可分為三步進行:設計局部E-R模型設計全局E-R模型全局E-R

44、模型優(yōu)化5.4 邏輯結構設計5.4.1 E-R圖轉換為數(shù)據(jù)模型5.4.2 關系規(guī)范化5.4.3 數(shù)據(jù)模型的優(yōu)化5.4.4 設計外模式5.4.1 E-R圖轉換為數(shù)據(jù)模型 邏輯結構設計將信息世界的概念模型E-R圖轉化為計算機世界的數(shù)據(jù)模型,需要遵循以下原則: 1. 實體轉換為關系 每個實體可以轉換為一個單獨的關系模式,實體的屬性就是關系的屬性,實體的碼就是關系的碼。 2. 聯(lián)系轉換為關系模式(1)m:n型的聯(lián)系(2)1:n型的聯(lián)系(3)1:1型的聯(lián)系(4)多元聯(lián)系轉換為關系模式(5)實體自聯(lián)系轉換為關系模式 3. 具有相同碼的關系模式可合并5.4.2 關系規(guī)范化關系規(guī)范化是指將E-R圖轉換為數(shù)據(jù)模

45、型后,通常以規(guī)范化理論為指導,對關系進行分解或合并,這是關系模式的初步優(yōu)化。一般按照以下步驟進行: 考察關系模式的函數(shù)依賴關系。按照需求分析得到的語義關系,將各個關系模式中的函數(shù)依賴關系提煉出來,并進行極小化處理,消除冗余。 按照數(shù)據(jù)依賴理論,將關系模式分解,至少達到第三范式,即消除部分函數(shù)依賴和傳遞依賴。并不是規(guī)范化程度越高關系就越優(yōu),因為規(guī)范化程度越高,系統(tǒng)就會越經(jīng)常做連接運算,這是以效率為代價的。一般地說,第三范式就足夠了。5.4.3 數(shù)據(jù)模型的優(yōu)化 為了進一步提高數(shù)據(jù)庫應用系統(tǒng)的性能,還可以對產(chǎn)生的關系模式進行進一步優(yōu)化,即修改、調(diào)整和重構。根據(jù)需要,可以添加適當?shù)摹叭哂唷?,以提高效?/p>

46、。例如,實體班級和學生的關系為1:n,經(jīng)過規(guī)范化后,學生中加入屬性“所在班級”,通過對相同班號的學生求和就可以得到某班的人數(shù),可是這種求班級人數(shù)的工作是經(jīng)常做的,而且對于班級來說,其人數(shù)也是非常重要的屬性,因此,可以在班級中加入屬性“人數(shù)”,雖然這是冗余字段,可是能提高數(shù)據(jù)庫的整體效率,這是很值得的。如果一個關系的某個屬性可以由本關系的其它屬性計算得到,這絕對是冗余屬性;如果一個關系的某個屬性是由其它關系的屬性計算得來的,則這個屬性在某些時候可以加在此關系中。5.4.4 設計外模式 外模式是保護數(shù)據(jù)庫安全性的一個有力措施。每個用戶只能看見和訪問所對應的外模式中的數(shù)據(jù),數(shù)據(jù)庫中的其余數(shù)據(jù)對他們來

47、說是不可見的。同時,對于每一個外模式,數(shù)據(jù)庫系統(tǒng)都有一個外模式/模式映像,它定義了該外模式與模式之間的對應關系。這些映像定義通常包含在各自外模式的描述中。當模式改變時,由數(shù)據(jù)庫管理員對數(shù)據(jù)庫外模式/模式映像作相應改變,可以使外模式保持不變。從而應用程序不必修改,保證了數(shù)據(jù)的邏輯獨立性。 在設計外模式時,要注意以下幾點: 按照用戶習慣進行命名,包括關系名、屬性名。外模式與模式的屬性本質(zhì)即使相同也可以取不同的名字。 針對用戶的不同級別定義不同的外模式,以保護系統(tǒng)的安全性。 構造必要的外模式,以簡化用戶操作。 5.5 數(shù)據(jù)庫物理設計5.5.1 物理結構設計5.5.2 評價物理結構5.5.1 物理結構

48、設計 1. 存儲記錄的格式設計 對數(shù)據(jù)項類型特征做分析,對存儲記錄進行格式化,決定如何進行數(shù)據(jù)壓縮或代碼化??墒褂谩按怪狈指罘ā?,對含有校對屬性的關系,按其中屬性的使用頻率不同進行分割;或使用“水平分割方法”,對含有較多記錄的關系,按某些條件進行分割。并把分割后的關系定義在相同或不同類型的物理設備上,或在同一設備不同區(qū)域上。 2. 存儲方法設計 順序存放,平均查詢次數(shù)為記錄個數(shù)的二分之一 。 雜湊存放,查詢次數(shù)由雜湊算法決定。 索引存放,要確定建何種索引,及建立索引的表的屬性。 聚簇存放,記錄聚簇是指將不同類型的記錄分配到相同的物理區(qū)域中去 3. 訪問方法設計 為存儲在物理設備上的數(shù)據(jù)提供存儲

49、結構和查詢路徑,與DBMS有很大關系。 4. 完整性和安全性考慮 根據(jù)邏輯設計說明書中提供的對數(shù)據(jù)庫的約束條件、具體的DBMS、OS的性能特征和硬件環(huán)境,設計數(shù)據(jù)庫的完整性和安全措施。 5. 應用設計 包括人機接口設計,如菜單、屏幕設計、I/O格式設計等。在物理設計中,還應充分注意物理數(shù)據(jù)的獨立性(是指消除由于物理數(shù)據(jù)結構設計變動而引起對應用程序的修改)。最后,物理設計要形成物理設計說明書,其內(nèi)容包括存儲記錄格式,存儲記錄位置分布及訪問方法,能滿足的操作需求,并給出對硬件和軟件系統(tǒng)的約束。5.5.2 評價物理結構 假設數(shù)據(jù)庫性能用“開銷” ,即時間、空間及可能的費用來衡量,則在數(shù)據(jù)庫應用系統(tǒng)生

50、存期中,總的開銷包括規(guī)劃開銷,設計開銷,實施和測試開銷,操作開銷和運行維護開銷。對物理設計者來說,主要考慮操作開銷,即使用戶獲得及時的開銷和計算機資源的開銷??煞譃槿缦聨最悾?查詢和響應時間:響應時間定義為從查詢開始到查詢結果開始顯示之間所經(jīng)歷的時間,它包括CPU服務時間、CPU隊列等待時間、I/O隊列等待時間、封鎖延遲時間和通信延遲時間。 一個好的應用程序設計可以減少CPU服務時間和I/O服務時間。 更新事務的開銷:主要包括修改索引、重寫物理塊或文件、校驗等方面的開銷。 報告生成的開銷:主要包括檢索、重組、排序和結果顯示方面的開銷。 主存儲空間開銷:包括程序和數(shù)據(jù)所占用的空間的開銷。 輔助存

51、儲空間:分為數(shù)據(jù)塊和索引塊兩種空間。設計者可以控制索引塊的大小、裝載因子、指針選擇項和數(shù)據(jù)冗余度等。 實際上,數(shù)據(jù)塊設計者能有效控制I/O服務和輔助空間;有限地控制封鎖延遲,CPU時間和主存空間;而完全不能控制CPU和I/O隊列等待時間,數(shù)據(jù)通信延遲時間。 5.6 數(shù)據(jù)庫實施5.6.1 數(shù)據(jù)庫的實現(xiàn)5.6.2 數(shù)據(jù)庫其他設計5.6.1數(shù)據(jù)庫的實現(xiàn) 1. 建立實際的數(shù)據(jù)庫結構 即對描述邏輯設計和物理設計結果的程序,經(jīng)數(shù)據(jù)庫管理系統(tǒng)編譯成目標模式和執(zhí)行后建立了實際的數(shù)據(jù)庫結構。 2. 裝入試驗數(shù)據(jù)對應用程序進行測試 裝入試驗數(shù)據(jù)對應用程序進行測試,以確認其功能和性能是否滿足設計要求,并檢查其空間的

52、占有情況。試驗數(shù)據(jù)可以是實際數(shù)據(jù),也可以是由手工生成或隨機生成,應使試驗數(shù)據(jù)盡可能覆蓋現(xiàn)實世界的各種情況。 3. 裝入實際數(shù)據(jù) 即數(shù)據(jù)庫加載,并運行應用程序進行調(diào)試。測試系統(tǒng)的性能指標分析是否符合設計目標。由于對數(shù)據(jù)庫進行物理設計時考慮的性能指標只是近似的估計,和系統(tǒng)實際運行總會有一定差距,因此必須在試運行階段進行測試。如果測試結果不理想,則要返回物理設計階段修改物理結構,某些情況下甚至要修改邏輯結構。5.6.2 數(shù)據(jù)庫其他設計 1. 數(shù)據(jù)庫的再組織 設計對數(shù)據(jù)庫的概念,邏輯和物理結構的改變稱為再組織。再組織通常是由于環(huán)境需求的變化或性能原因而引起的。一般數(shù)據(jù)庫管理系統(tǒng)都提供數(shù)據(jù)庫的再組織應用

53、程序。 2. 故障恢復方案設計 數(shù)據(jù)庫設計中考慮的故障恢復方案,一般都是基于數(shù)據(jù)庫管理系統(tǒng)提供的故障恢復手段。如果數(shù)據(jù)庫管理系統(tǒng)已提供了完善的軟硬件故障恢復和存儲介質(zhì)的故障恢復手段,那么設計階段的任務就簡化為確定系統(tǒng)登陸的物理參數(shù),緩沖區(qū)個數(shù),大小,邏輯塊的長度,物理設備等。否則,就要指定人工備份方案。 3. 安全性考慮 許多數(shù)據(jù)庫管理系統(tǒng)都有描述各種對象(如記錄,數(shù)據(jù)項)的存取權限的成分,在設計時,根據(jù)對用戶需求分析,規(guī)定相應的存取權限。子模式是實現(xiàn)安全性要求的一個重要手段。也可以在應用程序中設置密碼,對不同的使用者給予一定的密碼,以密碼控制使用級別。 4. 事務控制 大多數(shù)數(shù)據(jù)庫管理系統(tǒng)都

54、支持事務概念,以保證多用戶環(huán)境下的數(shù)據(jù)完整性和一致性。事務控制有人工和系統(tǒng)兩種控制辦法,系統(tǒng)控制以數(shù)據(jù)操作語句為單位,人工控制則由程序員以事務的開始和結束語句顯示實現(xiàn)。大多數(shù)DBMS提供封鎖粒度的選擇,封鎖粒度一般有表級、頁面級、記錄級和數(shù)據(jù)項級,粒度越大控制越簡單,但并發(fā)控制性能差,這些在設計中都要運籌考慮。 5.7 數(shù)據(jù)庫運行和維護5.7.1 維護數(shù)據(jù)庫的安全性和完整性5.7.2 監(jiān)督并改善數(shù)據(jù)庫性能5.7.3 增加新的功能5.7.4 及時修改系統(tǒng)錯誤5.7.1 維護數(shù)據(jù)庫的安全性和完整性在數(shù)據(jù)庫運行過程中,要檢查系統(tǒng)的安全性是否受到侵犯,及時調(diào)整授權和密碼,實施數(shù)據(jù)庫系統(tǒng)的轉儲及后備,以

55、保證發(fā)生故障后及時將數(shù)據(jù)庫恢復到某種一致的狀態(tài),并盡可能減少對數(shù)據(jù)庫的破壞。5.7.2 監(jiān)督并改善數(shù)據(jù)庫性能在數(shù)據(jù)庫運行過程中,對數(shù)據(jù)庫的存儲空間和響應時間進行分析評價,結合用戶反映找出改進系統(tǒng)性能的措施和方法,必要時對數(shù)據(jù)庫進行再組織或再構造。 5.7.3 增加新的功能在數(shù)據(jù)庫運行過程中,數(shù)據(jù)庫管理員要根據(jù)用戶需求,在數(shù)據(jù)庫現(xiàn)有功能的基礎上進行擴充,以及時增加新的功能,改進和完善數(shù)據(jù)庫系統(tǒng)。 5.7.4 及時修改系統(tǒng)錯誤在數(shù)據(jù)庫運行過程中,數(shù)據(jù)庫管理員要及時改正運行中發(fā)現(xiàn)的系統(tǒng)錯誤,包括程序和數(shù)據(jù)。目前,隨著數(shù)據(jù)庫管理系統(tǒng)功能和性能的提高,特別是在關系型數(shù)據(jù)庫管理系統(tǒng)中,選擇一個合適的數(shù)據(jù)庫

56、管理系統(tǒng)能使數(shù)據(jù)庫物理設計變得十分簡單。要充分認識到,數(shù)據(jù)庫系統(tǒng)只要在運行,就要不斷的進行評價、調(diào)整和修改。如果應用變化太大,再組織工作已無濟于事,那么就表明數(shù)據(jù)庫應用系統(tǒng)生存期已經(jīng)結束,應該設計新的數(shù)據(jù)庫應用系統(tǒng)了。5.8 本章小結本章主要討論數(shù)據(jù)庫設計的方法和步驟,詳細介紹了數(shù)據(jù)庫設計中規(guī)劃、需求分析、概念設計、物理設計及運行與維護各個階段的目標、方法和應注意的事項。其中,概念結構設計和邏輯結構設計是整個數(shù)據(jù)庫設計過程中最重要的兩個環(huán)節(jié),也是本章重點介紹的內(nèi)容。讀者在本章的學習中,不但要通過書中介紹的理論和實例掌握數(shù)據(jù)庫設計的基本方法,還要學習在實際工作中運用這些思想,設計出符合應用需求的

57、數(shù)據(jù)庫應用系統(tǒng)。 第6章 數(shù)據(jù)庫產(chǎn)品簡介第6章 數(shù)據(jù)庫產(chǎn)品簡介 6.1 SQL Server 6.2 ORACLE 6.3 MySQL 6.4 Sybase 6.5 本章小結 6.6 習題6.1 SQL Server6.1.1 SQL Server的發(fā)展史6.1.2 SQL Server的特點6.1.3 應用程序訪問SQL Server的實例6.1.1 SQL Server的發(fā)展史最早的SQL Server是微軟公司和Sybase公司聯(lián)合開發(fā)的,1994年4月以后雙方?jīng)Q定各自獨立開發(fā)自己的數(shù)據(jù)庫系統(tǒng)。在短短幾年時間里SQL Server得到了快速發(fā)展。SQL Server 4.2SQL Ser

58、ver 6.5SQL Server 7.0SQL Server 2000從SQL Server 7.0時代就開始向TPC的性能十強挑戰(zhàn),TPC的全稱Transaction Processing Performance Council,是一個致力于數(shù)據(jù)庫系統(tǒng)測評的非盈利機構。很多數(shù)據(jù)庫廠商一直把TPC性能十強看作是一種實力的體現(xiàn)。在SQL Server 2000 發(fā)布后很快就進入面向聯(lián)機事務處理的TPC-C測試性能十強,并不斷刷新性能記錄,可以說SQL Server 2000是世界上最優(yōu)秀的數(shù)據(jù)庫軟件之一。 6.1.2 SQL Server的特點1. 客戶機/服務器體系2. 關系型數(shù)據(jù)庫3. T

59、-SQL語言4. 支持數(shù)據(jù)復制5. 支持分布式事務處理6. 支持數(shù)據(jù)倉庫7. 內(nèi)建式的在線分析處理6.1.3 應用程序訪問SQL Server的實例 以下是Asp 訪問SQL Server2000示例數(shù)據(jù)庫NorthWind的表Customer的一個小例子。%使用Recordset對象建立與數(shù)據(jù)庫的連接并查詢數(shù)據(jù)Cnstr=Data PROVIDER=MSDASQL.1; Driver=SQL Server; Server=; UID=sa; PWD=;Database=test;strSQL = SELECT id,name,age,address,phone FROM Customer S

60、et rs = Server.CreateObject(ADODB.Recordset)rs.Open strSQL, Cnstr顯示數(shù)據(jù)Set objID = rs (id)Set objname = rs (name)Set objage = rs (age)Set objaddress = rs (address)Set objphone = rs (phone)Do Until rs.EOFResponse.Write objID & & objname & & objage & & objaddress & & objphone & rs.MoveNextLoop關閉Recordse

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論