




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、互聯網數據庫串講 學習目的和要求 了解數據管理發展歷程 理解數據模型的三要素及常用的三種數據模型 掌握數據庫系統的三級模式結構和數據的兩層映象 理解數據庫管理系統的組成和功能。 往年頻繁考點: 數據庫基本概念(DB,DBMS,DBS)及其聯系 數據管理技術發展的三個階段及其特點 數據模型的三要素 數據庫三級模式結構 二級映像與數據獨立性 數據庫管理系統的基本功能第一節 數據管理技術的發展 數據、數據庫、數據庫系統和數據庫管理系統的概念 數據:描述事物的符號記錄。 數據庫:數據庫是長期存儲在計算機內、有組織、可共享的數據集合。 數據庫系統(DBS):是實現有組織地、動態地存儲大量關聯數據,方便多
2、用戶訪問的計算機軟件、硬件和數據資源組成的系統,即采用了數據庫技術的計算機系統。 數據庫管理系統(DBMS):是位于用戶與操作系統之間的一層數據管理軟件,為用戶或應用程序提供訪問DB的方法,包括DB的建立、查詢、更新及各種數據控制。DBMS總是基于某種數據模型,可以分為層次型、網狀型、關系型、面向對象型DBMS。 數據管理經歷的三個階段 人工管理階段:數據不保存、數據需要由應用程序自己進行管理、基本上沒有文件概念、數據不共享。 文件系統階段:數據可以長期保存、文件系統管理數據、 文件已經多樣化、數據的存取基本上以記錄為單位。但數據共享性差,數據冗余度大;數據和程序缺乏獨立性。 數據庫系統階段:
3、數據結構化;數據共享性高、冗余度小、易擴充;數據獨立性高;統一的數據管理和控制:數據的安全性保護、數據的完整性控制、數據庫恢復和并發控制;數據的最小存取單位是數據項。 數據庫技術:是一門研究數據庫結構、存儲、管理和使用的軟件學科。 數據庫技術的發展 第一代數據庫系統,即層次數據庫系統和網狀數據庫系統 第二代數據庫系統,即關系數據庫系統 第三代數據庫系統,即面向對象數據庫系統 數據庫技術的研究領域 數據庫管理系統軟件的研制 數據庫設計 數據庫理論第二節 數據模型 數據模型是現實世界數據特征的抽象。是數據庫系統的核心和基礎。 數據模型應滿足三方面要求: 一是能比較真實地模擬現實世界; 二是容易為人
4、所理解; 三是便于在計算機上實現。 根據模型應用目的分為: 概念模型,也稱信息模型,它是按用戶的觀點對數據和信息建模。 數據模型,主要包括層次模型、網狀模型、關系模型和面向對象數據模型,它是按計算機系統的觀點對數據建模。 數據模型三個要素: 數據結構描述系統的靜態特性 數據操作描述系統的動態特性 數據的約束條件是一組完整性規則的集合 概念模型:用于信息世界的建模,是現實世界到信息世界的第一層抽象 實體(Entity):客觀存在并可相互區別的事物 屬性(Attribute):實體所具有的某一特性 實體集(Entity Set):性質相同的同類實體的集合 實體型(Entity Type):用實體名
5、及其屬性名集合來抽象和刻畫同類實體 碼(Key)唯一標識實體的屬性集(最小)稱為碼 域(Domain)屬性的取值范圍稱為該屬性的域 聯系(Relationship)實體(型)內部的聯系和實體(型)之間的聯系兩個實體型之間的聯系可以分為三類:一對一聯系(11);一對多聯系(1n);多對多聯系(mn) 概念模型的表示方法 E-R圖提供了表示實體型、屬性和聯系的方法。實體-聯系方法(E-R方法)是抽象和描述現實世界的有力工具。 實體型:用矩形表示,矩形框內寫明實體名。屬性:用橢圓形表示,并用無向邊將其與相應的實體連接起來。聯系:用菱形表示,菱形框內寫明聯系名,并用無向邊分別與有關實體連接起來,同時在
6、無向邊旁標上聯系的類型(11,1n或mn)。 數據模型:層次模型、網狀模型、關系模型和面向對象數據模型。其中層次模型和網狀模型統稱為非關系模型。 層次模型:用樹型結構表示實體類型及實體間聯系的數據模型 數據結構特征: 只有一個結點沒有雙親結點,稱之為根結點;根以外的其他結點有且只有一個雙親結點。 優缺點:優點:數據模型簡單;若實體間的關系固定,性能優于關系模型;良好的完整性支持。缺點:描述現實世界的非層次性很笨拙;插入和刪除操作限制較多;必須通過雙親才能找到子結點;由于結構嚴密,層次命令趨于程序化。 網狀模型:用有向圖結構表示實體類型及實體間聯系的數據模型。 數據結構特征 (1)允許一個以上的
7、結點無雙親;(2)一個結點可以有多于一個的雙親。 優缺點優點:能夠直接描述現實世界;存取效率較高。缺點:數據描述語言極其復雜;數據獨立性差。l 關系模型:是由若干個關系模式組成的集合 數據結構特征:是用二維表格結構表達實體集,用外鍵表示實體間聯系。關系模型要求關系必須是規范化的, 優缺點優點:有嚴格的數學概念作基礎;關系模型的概念單一;存取路徑對用戶透明缺點:查詢效率不高第三節 數據庫系統的結構 外模式、模式和內模式的概念和涵義 模式:數據庫中全體數據的邏輯結構和特征的描述,一個數據庫只有一個模式。 外模式:局部數據的邏輯結構和特征的描述,數據庫用戶的數據視圖,外模式是模式的子集。 內模式:數
8、據物理結構和存儲方式的描述,數據在數據庫內部的表示方法,一個數據庫只有一個內模式。 數據獨立性 數據獨立性是指數據和程序之間的獨立。它包括物理獨立性和邏輯獨立性兩個方面。 數據庫系統在三級模式之間提供的兩層映象: 外模式/模式映象:通常包含在各外模式描述中提供數據的邏輯獨立性:當模式改變時,通過改變外模式/模式映象而使外模式保持不變,因此應用程序不變。l 模式/內模式映象:通常包含在模式描述中提供數據的物理獨立性:當數據庫的存儲結構改變了,通過改變模式/內模式映象而使模式保持不變。 兩層映象保證了數據庫系統中的數據能夠具有較高的邏輯獨立性和物理獨立性。 第四節 數據庫管理系統 數據庫管理系統的
9、功能 數據定義 數據操縱 數據庫運行管理 數據組織、存儲和管理 數據庫的建立和維護 數據通信接口 數據庫管理系統的組成 數據定義語言及其翻譯處理程序 數據操縱語言及其編譯(或解釋)程序 數據庫運行控制程序 實用程序 一個設計優良的DBMS: 友好的用戶界面 比較完備的功能 較高的運行效率 清晰的系統結構和開放性 應用程序從數據庫中讀取一個數據通常需要以下步驟 : 應用程序向DBMS發出從數據庫中讀數據記錄的命令; DBMS對該命令進行語法檢查、語義檢查,并調用該應用程序對應的外模式,檢查程序的存取權限,決定是否執行該命令。如果拒絕執行,則向用戶返回錯誤信息; 在決定執行該命令后,DBMS調用模
10、式,依據外模式模式映象的定義,確定應讀入模式中的哪些記錄; DBMS調用內模式,依據模式內模式映象的定義,決定應從哪個文件、用什么存取方式、讀入哪個或哪些物理記錄; DBMS向操作系統發出執行讀取所需物理記錄的命令; 操作系統執行讀數據的有關操作; 操作系統將數據從數據庫的存儲區送至系統緩沖區; DBMS依據外模式模式映象的定義,導出應用程序所要讀取的記錄格式; DBMS將數據記錄從系統緩沖區傳送到應用程序的用戶工作區; DBMS向應用程序返回命令執行情況的狀態信息。第二章 關系數據庫簡介 學習目的和要求 了解關系模型的基本概念 掌握關系模型的構成 理解關系代數的兩類運算 理解關系演算的兩類演
11、算語言。 往年頻繁考點 關系數據結構的概念、特點;特別是基本關系的特點及關系模式的定義; 關系的三類完整性約束,特別是關系的兩個不變性:實體完整性和參照完整性的含義; 關系代數運算的分類、基本運算、含義、關系表達式的寫法。還有部分與第三章SQL相結合的練習; 關系演算的含義、分類方法,各類關系演算語言的運算規則、背景等。第一節 關系模型的基本概念 關系模型的組成 關系數據結構、關系操作集合、關系完整性約束 關系數據結構 域:是一組具有相同數據類型的值的集合。在關系中用域表示屬性的取值范圍。 屬性:關系中的每列起一個名字,稱為屬性。 元組:關系中的每一行,稱為一個元組,對應于概念模型的一個實體。
12、 候選碼:關系中能唯一地標識一個元組的某一屬性或屬性組 關系模式:關系的描述。它可以形式化地表示為:R(U, D, DOM, F) 關系數據庫的型也稱為關系數據庫模式,是對關系數據庫的描述,是關系模式的集合; 關系數據庫的值也稱為關系數據庫,是關系的集合。 關系可以有三種類型:基本關系(通常又稱為基本表或基表)、查詢表和視圖表 基本關系具有以下六條性質:列是同質的(Homogeneous),即每一列中的分量同一類型的數據,來自同一個域。不同的列可出自同一個域,稱其中的每列為一個屬性,不同的屬性要給予不同的屬性名。列的順序無所謂,即列的次序可以任意交換。任意兩個元組不能完全相同。行的順序無所謂,
13、即行的次序可以任意交換。分量必須取原子值,即每一個分量都必須是不可分的數據項。 關系數據庫中的關系與關系模式關系模式是型,是對關系的描述,關系模式是靜態的、穩定的 關系是值,是動態的、隨時間不斷變化的 關系是一張二維表,是元組的集合關系模式指出了這個元組集合的結構 關系操作 關系代數語言 例如ISBL 關系演算語言 元組關系演算語言 例如ALPHA,QUEL 域關系演算語言 例如QBE 關系代數、元組關系演算和域關系演算三種語言在表達能力上是完全等價的。 具有關系代數和關系演算雙重特點的語言 例如SQL 關系操作的特點: 一次一集合(set-at-a-time)的操作方式。 存取路徑對用戶透明
14、關系完整性約束 實體完整性規則:基本關系的主屬性不能取空值實體完整性規則是針對基本關系而言的。一個基本表通常對應現實世界的一個實體集。例如學生關系對應于學生的集合。現實世界中的實體是可區分的,即它們具有某種唯一性標識。相應地,關系模型中以碼作為唯一性標識。碼中的屬性即主屬性不能取空值。所謂空值就是不知道或無意義的值。 參照完整性規則:若屬性(或屬性組)F是基本關系R的外碼,它與基本關系S的碼Ks相對應,則對于R中每個元組在F上的值必須為:空值或者等于S中某個元組在Ks上的值。設F是基本關系R的一個或一組屬性,但不是關系R的碼。如果F與基本關系S的碼Ks相對應,則稱F是基本關系R的外碼參照完整性
15、規則要求不引用不存在的實體。關系模型中,表與表之間的聯系正是通過參照完整性實現的 用戶定義完整性規則:由具體應用環境決定,系統提供定義和檢驗這類完整性的機制。 實體完整性和參照完整性是關系模型必須滿足的完整性約束條件,被稱作是關系的兩個不變性,應該由關系系統自動支持。 關系代數的運算符 集合運算符、專門的關系運算符、算術比較符、邏輯運算符 傳統的集合運算 并:關系R與關系S的并由屬于R或屬于S的元組組成。 交:關系R與關系S的交由既屬于R又屬于S的元組組成。 差:關系R與關系S的差由屬于R而不屬于S的所有元組組成。 廣義笛卡爾積:兩個分別為n目和m目的關系R和S的廣義笛卡爾積是一個(n+m)列
16、的元組的集合。若R有k1個元組,S有k2個元組,則關系R和關系S的廣義笛卡爾積有k1k2個元組。 專門的關系運算 選擇:在關系中選擇滿足給定條件的諸元組。 投影:從R中選擇出若干屬性列組成新的關系。 連接:它是從兩個關系的笛卡爾積中選取屬性間滿足一定條件的元組。 除: 關系代數運算中并、差、笛卡爾積、投影和選擇5種運算為基本的運算。 關系演算是以數理邏輯中的謂詞演算為基礎的,按謂詞變元的不同,關系演算可分為元組關系演算和域關系演算。 元組關系演算 元組關系演算以元組變量作為謂詞變元的基本對象。 ALPHA語言是E.F.Codd提出的、典型的元組關系演算語言 ALPHA語言是以謂詞公式來定義查詢
17、要求的。在謂詞公式中存在客體變元,這里稱為元組變量。 元組變量主要有兩方面的用途:簡化關系名。操作條件中使用量詞時必須用元組變量。 域關系演算 域關系演算以元組變量的分量即域變量作為謂詞變元的基本對象。 QBE是1975年由IBM公司的M.Zloof提出的一個很有特色的域關系演算語言,該語言于1978年在IBM370上得以實現。 QBE是Query By Example的縮寫,也稱為示例查詢,它是一種很有特色的屏幕編輯語言,其特點如下:以表格形式進行操作通過例子進行查詢查詢順序自由第三章 關系數據庫標準語言SQL 學習目的和要求 了解SQL語言的主要特點 掌握SQL語言的數據定義功能和數據操縱
18、功能 理解視圖的定義和優點 了解數據控制的功能 了解嵌入式SQL語句的一般形式及其分類 往年頻繁考點: SQL語言的特點; 數據定義命令的應用; 數據查詢命令的靈活運用; 數據更新命令; 視圖的概念、特點及其定義語句; 數據控制概念及相關命令第一節 SQL概述 SQL:Structured Query Language,關系數據庫的標準語言 SQL語言集數據操縱、數據定義和數據控制功能于一體。 SQL語言的特點: 綜合統一 高度非過程化 面向集合的操作方式 以同一種語法結構提供兩種使用方式 語言簡潔,易學易用。 SQL對三級模式結構的支持: 外模式視圖和部分基本表 模式所有基本表 內模式存儲文
19、件 SQL DDL(Data Definition Language)語言 定義和撤消的數據對象 基本表(Table)、索引(Index) 命令動詞 Create(創建):建立表和索引 Alter(修改):一般只修改表的定義 Drop(刪除):可刪除表和索引 定義基本表常見列級完整性約束NOT NULLUNIQUE常見表級完整性約束PRIMARY KEY () 索引 建立索引是加快查詢速度的有效手段。 基本表上可以建立一個或多個索引。 建立與刪除索引由數據庫管理員DBA或表的屬主(即建立表的人)負責完成。 系統在存取數據時會自動選擇合適的路徑。用戶不必也不能選擇索引。 建立索引 可以建立在該表
20、的一列或多列上,當第一列的值相等時,考慮第二列的次序。 每個后面還可以用指定索引值的排列次序,可選ASC(升序)或DESC(降序),缺省值為ASC。 唯一索引的每一個索引值只對應唯一的數據記錄。 聚簇索引是指索引項的順序與表中記錄的物理順序一致的索引組織,在一個基本表上最多只能建立一個聚簇索引 檢索查詢 SELECT ALL|DISTINCT 別名, 別名 FROM 別名, 別名 WHERE GROUP BY HAVING ORDER BY ASC|DESC; 的格式 表名. , . .*;*; ( DISTINCT|ALL *),集函數:SUM、AVG、COUNT、MAX、MIN 的格式 q
21、 | | ANY/ALL (SELECT語句) NOT BETWEEN | | (SELECT語句) AND | | ANY/ALL (SELECT語句) NOT IN ( ,) | (SELECT語句) NOT LIKE IS NOT NULLNOT EXISTS (SELECT語句) AND|OR AND|OR 更新 INSERT(插入單記錄和子查詢兩種形式) DELETE(通過子查詢引入其他數據表) UPDATE(通過子查詢引入其他數據表) 更新操作與數據庫的一致性增刪改操作只能對一個表操作,這會影響數據庫的數據一致性(參照完整性)問題,不同的數據庫管理系統有不同的解決辦法。第四節 視圖
22、 視圖是從一個或幾個基本表(或視圖)導出的表,它與基本表不同,是一個虛表。 數據庫中只存放視圖的定義,而不存放視圖對應的數據,這些數據仍存放在原來的基本表中。 定義和合理地使用視圖能帶來的好處為: 視圖能夠簡化用戶的操作 視圖使用戶能以多種角度看待同一數據 視圖對重構數據庫提供了一定程度的邏輯獨立性 視圖能夠對機密數據提供安全保護 為防止用戶通過視圖對數據進行增、刪、改時,無意或故意操作不屬于視圖范圍內的基本表數據,可在定義視圖時加上WITH CHECK OPTION子句,這樣在視圖上增、刪、改數據時,DBMS會進一步檢查視圖定義中的條件,若不滿足條件,則拒絕執行該操作。 由于視圖是不實際存儲
23、數據的虛表,因此對視圖的更新,最終要轉換為對基本表的更新。 在關系數據庫中,因為有些視圖的更新不能唯一地有意義地轉換成對相應基本表的更新,因此并不是所有的視圖都是可更新的。 若一個視圖是從單個基本表導出的,并且只是去掉了基本表的某些行和某些列,但保留了碼,我們稱這類視圖為行列子集視圖。 一般對所有行列子集視圖都可以執行修改和刪除元組的操作,如果基本表中所有不允許空值的列都出現在視圖中,則也可以對其執行插入操作。 DBMS執行對視圖的查詢時,首先進行有效性檢查,檢查查詢的表、視圖等是否存在。如果存在,則從數據字典中取出視圖的定義,把定義中的子查詢和用戶的查詢結合起來,轉換成等價的對基本表的查詢,
24、然后再執行修正了的查詢,這一轉換過程稱為視圖消解第五節 數據控制 數據控制 SQL中數據控制功能包括事務管理功能和數據保護功能,即數據庫的恢復、并發控制;數據庫的安全性和完整性。 保證數據安全的主要措施是進行存取控制,即規定不同用戶對于不同數據對象所允許執行的操作,并控制各用戶只能存取他有權存取的數據。 授予權限命令GRANT 收回權限命令REVOKE第四章 關系數據庫設計理論 學習目的和要求 了解數據依賴的定義及兩種重要的類型 理解各類范式的概念及涵義 掌握相關概念及關系模式規范化的步驟。 往年頻繁考點: 函數依賴的定義、性質 部分函數依賴、傳遞函數依賴概念 碼、候選碼、主碼、主屬性、非主屬
25、性概念 第二范式;第三范式;BC范式的判斷和規范化 關系模式規范化的步驟 判斷關系模式的分解與原關系模式等價的標準第一節 數據依賴 數據依賴的涵義 數據依賴是通過一個關系中屬性間值的相等與否體現出來的數據間的相互關系,是現實世界屬性間相互聯系的抽象,是數據內在的性質,是語義的體現。現在人們已經提出了許多種類型的數據依賴,其中最重要的是函數依賴和多值依賴。 函數依賴 設R(U)是一個關系模式,U是R的屬性集合,X和Y是U的子集。對于R(U)的任意一個可能的關系r,如果r中不存在兩個元組,它們在X上的屬性值相同,而在Y上的屬性值不同,則稱X函數確定Y或Y函數依賴于X,記作XY。 平凡函數依賴;非平
26、凡函數依賴 在關系模式R(U)中,對于U的子集X和Y,如果XY,但YX,則稱XY是非平凡的函數依賴。若YX,則稱XY是平凡的函數依賴。 完全函數依賴;部分函數依賴 在R(U)中,如果XY,并且對于X的任何一個真子集X,都有XY,則稱Y對X完全函數依賴 若XY,但Y不完全依賴于X,則稱Y對X部分函數依賴 傳遞函數依賴 在R(U)中,如果XY,(YX),YX,YZ,則稱Z傳遞函數依賴于X。 數據依賴相關的一些概念 候選碼:設K為RU, F中的屬性或屬性組合,若U完全函數依賴于K,則K為R的候選碼 主碼:若候選碼多于一個,則選定其中的一個為主碼 主屬性:包含在任何一個候選碼中的屬性 非主屬性:不包含
27、在任何碼中的屬性稱作非主屬性 外部碼:關系模式R中屬性或屬性組X并非R的碼,但X是另一個關系模式的碼,則稱X是R的外部碼,也稱外碼第二節 范式 范式(Normal Form)是符合某一種級別的關系模式的集合,是衡量關系模式規范化程度的標準 根據規范化程度的不同,數據庫范式從低到高有第一范式、第二范式、第三范式、BC范式、第四范式、第五范式。對于各范式之間的聯系有: 5NF4NFBCNF3NF2NF1NF成立 1NF 如果一個關系模式R的所有屬性都是不可分的基本數據項,則R1NF。 僅滿足1NF的關系模式有插入異常、刪除異常、冗余過大和修改復雜。 2NF 若R1NF,且每一個非主屬性完全依賴于R
28、的任何碼,則R2NF 判斷的方法:先找出所有的候選碼,從而找出非主屬性和主屬性。如果不存在非主屬性對碼的部分函數依賴,則該關系屬于2NF;否則不屬于2NF。 3NF 關系模式RU,F2NF,且每一個非主屬性都不傳遞函數依賴于碼,則稱RU,F3NF。 判斷的方法:先判斷2NF,然后檢查有無非主屬性對碼的傳遞函數依賴 BCNF 設關系模式RU,F1NF,若XY且YX時X必含有碼,則RU,FBCNF BCNF的關系模式都具有如下3個性質:所有非主屬性都完全函數依賴于每個候選碼。所有主屬性都完全函數依賴于每個不包含它的候選碼。沒有任何屬性完全函數依賴于非碼的任何一組屬性。 判斷的方法:只需檢查所有的函
29、數依賴的決定因素是否包含碼 如果一個關系數據庫中的所有關系模式都屬于BCNF,那么在函數依賴范疇內,它已實現了模式的徹底分解,達到了最高的規范化程度,消除了插入異常和刪除異常。 多值依賴 設R(U)是一個關系模式,X,Y和Z是U的子集,并且Z=U-X-Y,多值依賴XY成立當且僅當對R的任一關系r,r在(X,Z)上的每個值對應一組Y的值,這組值僅僅決定于X值而與Z值無關。 4NF 關系模式RU,F1NF,如果對于R的每個非平凡多值依賴XY(YX),X都含有候選碼,則R4NF。 判斷的方法:先判斷BCNF,然后,看所有非平凡的多值依賴是否是函數依賴。 規范化 一個低一級的關系模式,通過模式分解可以
30、轉換為若干個高一級范式的關系模式的集合,這種過程就叫做規范化。規范化實質上是概念的單一化。 關系模式規范化時一般應遵循以下原則: 1)關系模式進行無損連接分解。 2)合理選擇規范化程度。 3)正確性與可實現性原則。 關系模式規范化的基本步驟: 對1NF關系進行投影,消除原關系中非主屬性對碼的部分函數依賴,將1NF關系轉換為若干個2NF關系。 對2NF關系進行投影,消除原關系中非主屬性對碼的傳遞函數依賴,從而產生一組3NF關系。 對3NF關系進行投影,消除原關系中主屬性對碼的部分函數依賴和傳遞函數依賴,得到一組BCNF關系。 對BCNF關系進行投影,消除原關系中非平凡且非函數依賴的多值依賴,從而
31、產生一組4NF關系。 對4NF關系進行投影,消除原關系中不是由候選碼所蘊含的連接依賴,即可得到一組5NF關系。 5NF是最終范式 無損連接性 設關系模式RU,F被分解為若干個關系模式R1U1,F1,R2U2,F2,RnUn,Fn(其中U=U1U2Un,且不存在UiUj,Fj為F在Ui上的投影),若R與R1,R2,Rn自然連接的結果相等,則稱關系模式R的這個分解具有無損連接性。 只有具有無損連接性的分解才能夠保證不丟失信息。 多值依賴是分解無損的充要條件。 函數依賴保持性 設關系模式RU,F被分解為若干個關系模式R1U1,F1,R2U2,F2,RnUn,Fn(其中U=U1U2Un,且不存在UiU
32、j,Fi為F在Ui上的投影),若F所邏輯蘊含的函數依賴一定也由分解得到的某個關系模式中的函數依賴Fi所邏輯蘊含,則稱關系模式R的這個分解是保持函數依賴的。 如果一個分解保持了函數依賴,則它可以減輕或解決各種異常情況。 分解具有無損連接性和分解保持函數依賴是兩個互相獨立的標準。 判斷對關系模式的一個分解是否與原關系模式等價可以有三種不同的標準: 1)分解具有無損連接性; 2)分解要保持函數依賴; 3)分解既要保持函數依賴,又要具有無損連接性。 規范化理論提供了一套完整的模式分解算法,按照這套算法可以做到: 若要求分解具有無損連接性,那么模式分解一定能夠達到4NF。 若要求分解保持函數依賴,那么模
33、式分解一定能夠達到3NF,但不一定能夠達到BCNF。 若要求分解既具有無損連接性,又保持函數依賴,則模式分解一定能夠達到3NF,但不一定能夠達到BCNF 第五章 數據庫保護 學習目的和要求 了解數據庫安全性控制的措施 理解完整性約束條件和控制機制 理解并發控制的原則和方法 了解恢復的原理及實現技術 往年頻繁考點: 數據庫安全性的概念 安全性控制的一般方法:用戶標識和鑒定、存取控制、定義視圖、審計和密碼存儲。 完整性的概念及其與安全性的區別 完整性約束條件的分類 數據庫管理系統完整性控制機制具有的功能:定義功能、檢查功能和保證功能 實現參照完整性應注意的問題 并發控制的單位事務的概念及特征:原子
34、性、一致性、隔離性和持續性 封鎖的概念及類型 死鎖與活鎖的含義與解決方法 故障的種類:事務故障、系統故障、介質故障、計算機病毒。 數據轉儲的方法及分類; 登記日志文件的登記內容和登記的原則。第一節 安全性 數據庫的安全性主要是指保護數據庫,防止由于非法使用數據庫造成數據泄露、更改或破壞。 安全性控制的一般方法: 用戶標識和鑒別 存取控制 定義視圖 審計 密碼存儲 好的安全措施:使得那些試圖破壞安全的人所花費的代價遠遠超過他們所得到的利益。 實現數據庫系統安全性的技術和方法有多種,最重要的是存取控制技術和審計技術。 第二節 完整性 數據庫的完整性是指數據的正確性、有效性和相容性。 數據庫是否具備
35、完整性關系到數據庫系統能否真實地反映現實世界 數據的完整性與安全性是數據庫保護的兩個不同的方面。安全性是防止用戶非法使用數據庫。完整性則是防止合法用戶使用數據庫時向數據庫中加入不合語義的數據。 完整性約束條件的分類: 靜態列級約束 靜態元組約束 靜態關系約束 動態列級約束 動態元組約束 動態關系約束第二節 完整性 數據庫管理系統完整性控制機制具有的功能: 定義功能: 提供定義完整性約束條件的機制 檢查功能: 檢查操作請求是否違背了完整性約束條件的機制 保證功能: 一旦發生違背完整性約束條件的操作, 要采取措施保證數據的完整性 實現完整性需要考慮的問題: 外碼能否接收空值 在被參照關系中刪除元組
36、,包括:級聯刪除、受限刪除、置空值刪除。 修改被參照關系中主碼,包括:級聯修改、受限修改、置空值修改。第三節 并發控制 事務 并發控制的單位,是用戶定義的一組數據庫操作序列。 事務的特性(ACID)原子性:事務是原子的, 要么都做, 要么都不做一致性:事務保證了數據庫的一致性隔離性:事務相互隔離. 并發執行的事務之間不能互相干擾持續性:事務一旦提交, 它對數據庫數據的改變是永久的 并發操作帶來的數據不一致 丟失修改 讀“臟”數據 不可重復讀 并發控制的主要技術是采用封鎖機制。 封鎖就是事務T可以向系統發出請求,對某個數據對象(最常用的是記錄)加鎖。于是事務T對這個數據對象就有一定的控制。 兩種
37、封鎖類型 排它鎖:簡稱X鎖, 又稱寫鎖。若事務T在數據對象A上有X鎖, 則其它任何事務都不能再對A加任何類型的鎖, 直到T釋放A上的鎖。 共享鎖:簡稱S鎖, 又稱讀鎖。若事務T對數據對象A加上S鎖,則其它事務只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。 保證數據一致性的封鎖協議 一級封鎖協議:事務T在修改數據R之前必須加X鎖, 直到事務結束。可防止丟失修改。不能保證可重復讀和不讀“臟”數據 二級封鎖協議: 1級封鎖協議加上事務T在讀取數據R之前必須加S鎖, 讀完后即可釋放。可防止丟失修改和讀“臟”數據,不能保證可重復讀 三級封鎖協議: 1級封鎖協議加上事務T在讀取數據R之前必須加S鎖
38、,直到事務結束才釋放。可防止丟失修改和讀“臟”數據,而且可以保證可重復讀 和操作系統一樣,封鎖的方法可能引起活鎖和死鎖。 活鎖是指當若干事務要對同一數據項加鎖時,造成一些事務的永遠等待,得不到控制權的現象 避免活鎖的方法:采取先來先服務的策略 死鎖是指兩個以上事務集合中的每個事務都在等待加鎖當前已被另一事務加鎖的數據項,從而造成相互等待的現象。 數據庫中解決死鎖的常用方法有: 要求每個事務一次就將所有要使用的數據全部加鎖,否則就不能執行。 采用按序加鎖法。 不采取任何措施來預防死鎖的發生,而是周期性的檢查系統中是否有死鎖。 可串行化的調度:如果幾個事務并行(交錯)執行的結果和按次序串行執行的結
39、果相同,則稱該并行執行結果是正確的。這樣的調度稱為可串行化的調度。 可串行化是并行事務正確性的準則 保證并行調度可串行性的封鎖協議 兩段鎖協議:指所有事務必須分兩個階段對數據庫項加鎖和解鎖。 所謂“兩段”鎖含義是:事務分為兩個階段。第一階段是獲得封鎖,也稱為擴展階段。在該階段,事務可以申請獲得任何數據項上的任何類型的鎖,但是不能釋放任何鎖。第二階段是釋放封鎖,也稱為收縮階段。在該階段,事務可以釋放任何數據項上的任何類型的鎖,但是不能再申請任何鎖 兩段鎖協議規定所有的事務應遵守下列規則: 在對任何數據進行讀、寫操作之前,事務首先要獲得對該數據的封鎖。 在釋放一個封鎖之后,事務不再獲得任何其他封鎖
40、。第四節 恢復 數據庫系統故障: 事務內部的故障 系統故障 介質故障 計算機病毒 恢復的基本原理: 制造冗余 建立冗余數據的常用技術 數據轉儲 登記日志文件 轉儲: DBA定期地將整個數據庫復制到磁帶或另一個磁盤上保存起來的過程。 靜態轉儲(轉儲期間不允許對數據庫進行任何存取、修改活動) 動態轉儲(轉儲期間允許對數據進行存取或修改) 海量轉儲(每次轉儲全部數據庫) 增量轉儲(每次只轉儲上次轉儲后更新過的數據) 日志文件是用來記錄對數據庫每一次更新活動的文件。在轉儲中必須建立日志文件,后援副本和日志文件綜合起來才能有效地恢復數據庫。 日志文件內容事務對數據庫的更新操作 BEGIN TRANSAC
41、TION 標記 COMMIT 或 ROLLBACK 標記 所有更新操作:事務標識, 操作的類型, 操作對象, 更新前后數據的舊值和新值 日志文件作用 用于事務故障和系統故障的恢復 數據轉儲的副本和日志文件結合起來才能有效地恢復數據庫 登記日志的原則: 登記的次序嚴格按并發事務執行的時間次序 先寫日志文件,后寫數據庫 利用日志文件恢復事務的過程: 從頭掃描日志文件,找出哪些事務在故障發生時已經結束,哪些事務尚未結束; 對尚未結束的事務進行撤銷處理 對已經結束的事務進行重做處理。 硬件故障、病毒破壞:當數據庫本身被破壞時,可重裝轉儲數據庫的后備副本,然后運行日志文件,執行事務恢復,這樣就可以重建數
42、據庫。 發生事務故障、系統故障:當數據庫本身沒被破壞,但內容已經不可靠時,可利用日志文件恢復事務,從而使數據庫回到某一正確狀態,這時不必重裝后備副本。 第六章 數據庫設計 學習目的和要求 了解數據庫設計的步驟 理解并掌握需求分析、概念結構設計、邏輯結構設計、數據庫物理設計以及數據庫實施的方法 了解數據庫運行與維護的內容 往年頻繁考點: 數據庫設計的步驟 需求分析的方法;數據字典的概念和組成 概念結構設計的特點、步驟;數據抽象;E-R圖的設計步驟;視圖的集成 邏輯結構設計的任務;邏輯結構設計的步驟;E-R圖向數據模型的轉換的方法 數據庫物理設計的步驟;數據庫物理設計的內容;確定、評價數據庫的物理
43、結構 數據庫維護的主要內容;數據庫的重組織和重構造 根據數據庫設計的基本步驟,能夠設計一個簡單的數據庫應用系統第一節 數據庫設計概述 數據庫設計是指對于一個給定的應用環境,構造最優的數據庫模式,建立數據庫及其應用系統,使之能夠有效地存儲數據,滿足各種用戶的應用需求 在數據庫領域內,使用數據庫的各類系統通常被稱為數據庫應用系統。 信息系統是提供信息、輔助人們對環境進行控制和進行決策的系統。數據庫是信息系統的核心和基礎。 數據庫設計內容: 結構(數據)設計:邏輯數據庫設計、物理數據庫設計 行為(處理)設計:數據的裝載、應用程序設計 新奧爾良(New Orleans)方法 需求分析(分析用戶要求)
44、概念設計(信息分析和定義) 邏輯設計(設計實現) 物理設計(物理數據庫設計) 數據庫設計分為以下六個階段: 系統需求分析需求收集和分析,結果得到數據字典描述的數據需求和數據流圖描述的處理需求 概念結構設計通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型,可以用E-R圖表示 邏輯結構設計將概念結構轉換為某個DBMS所支持的數據模型(例如關系模型),并對其進行優化。 數據庫物理設計為邏輯數據模型選取一個最適合應用環境的物理結構(包括存儲結構和存取方法)。 數據庫實施運用DBMS提供的數據語言(例如SQL)及其宿主語言(例如VB),根據邏輯設計和物理設計的結果建立數據庫,編制
45、與調試應用程序,組織數據入庫,并進行試運行。 數據庫運行維護數據庫應用系統經過試運行后即可投入正式運行。在數據庫系統運行過程中必須不斷地對其進行評價、調整與修改。 參加設計的人員: 系統分析人員、數據庫設計人員系統分析和數據庫設計人員是數據庫設計的核心人員,他們將自始至終參與數據庫設計,他們的水平決定了數據庫系統的質量。 程序員程序員則在系統實施階段參與進來,分別負責編制程序和準備軟硬件環境。 用戶、數據庫管理員用戶和數據庫管理員主要參加需求分析和數據庫的運行、維護,他們的積極參與不但能加速數據庫設計,而且也是決定數據庫設計的質量的重要因素。 數據庫設計過程中注意的問題: 數據庫設計過程中要充
46、分調動用戶的積極性。 應用環境的改變、新技術的出現等都會導致應用需求的變化,因此在設計數據庫時必須充分考慮到系統的可擴性。 在設計數據庫應用的過程中,必須充分考慮到已有應用,盡量使用戶能夠平穩地從舊系統遷移到新系統。 需求分析的任務 詳細調查應用領域要處理的對象 充分了解原系統的工作概況 明確用戶的各種要求(1) 信息要求:指用戶需要從數據庫中獲得信息的內容與性質。由信息要求可以導出數據要求,即在數據庫中需要存儲哪些數據。 (2) 處理要求:指用戶要完成什么處理功能,對處理的響應時間有什么要求,處理方式是批處理還是聯機處理。 (3) 安全性和完整性要求 確定新系統的功能 考慮今后的擴充性 調查
47、用戶需求的方法: 跟班作業 開調查會 請專人介紹 詢問 請用戶填寫調查表 查閱記錄數據字典 是系統中各類數據描述的集合,是進行詳細的數據收集和數據分析所獲得的主要成果。 包括:數據項、數據結構、數據流、數據存儲、處理過程。數據項是數據的最小組成單位,若干個數據項可以組成一個數據結構,數據字典通過對數據項和數據結構的定義來描述數據流、數據存儲的邏輯內容。 在需求分析階段需要注意的是: 設計人員應充分考慮到可能的擴充和改變,使設計易于更改,系統易于擴充,這是第一點。 必須強調用戶的參與,這是數據庫應用系統設計的特點。第三節 概念結構設計 概念結構設計就是將需求分析得到的用戶需求抽象為信息結構概念模
48、型的過程。 概念結構的特點: (1)能充分地反映現實世界; (2)易于理解; (3)易于更改; (4)易于向關系、網狀或層次等各種數據模型轉換。 概念結構設計的四種方法 自頂向下:先全局,后細化 自底向上:先局部,后集成 由里向外:先核心,后擴充 混合策略:自頂向下+自底向上 數據抽象:對實際的人、物、事和概念進行人為處理,抽取所關心的共同特性,忽略非本質的細節,并把這些特性用各種概念精確地加以描述,這些概念組成了某種模型。 分類(Classification):定義某一類概念作為一組對象的類型,抽象了對象值和型之間的is member of的語義。 聚集(Aggregation):定義某一類
49、型的組成成分,抽象了對象內部類型和成分之間is part of的語義。 概括(Generalization): 定義類型之間的一種子集聯系。它抽象了類型之間的is subset of的語義。 (自底向上)概念結構設計的步驟 抽象數據,設計局部視圖選擇局部應用:在多層的數據流圖中選擇一個適當層次的數據流圖,作為設計分E-R圖的出發點。 逐一設計分E-R圖:先從自然劃分出發定義E-R圖,然后再進行必要的調整。 集成局部視圖 ,得到全局的概念結構合并解決各分圖之間的沖突,生成初步E-R圖修改和重構消除不必要的冗余,生成基本E-R圖第三節 概念結構設計 分E-R圖調整原則: 能作為屬性對待的,盡量作為
50、屬性對待。 作為屬性,不能再具有需要描述的性質。 屬性不能與其他實體具有聯系。即E-R圖中所表示的聯系是實體之間的聯系。 實體或聯系和其屬性值之間保持1:1或n:1的關系 分E-R圖合并時的的沖突主要有 屬性沖突 命名沖突 結構沖突 概念結構獨立于數據庫邏輯結構,也獨立于支持數據庫的DBMS。第四節 邏輯結構設計 邏輯結構設計的任務是把概念結構設計階段設計好的基本E-R圖轉換為與選用的DBMS產品所支持的數據結構相符合的邏輯結構。 邏輯結構設計的步驟: (1)把概念結構向一般的關系、網狀模型轉換; (2)向特定的DBMS支持下的數據模型轉換; (3)對數據模型進行優化。第四節 邏輯結構設計 E
51、-R圖向關系模型的轉換: (1)一個實體型轉換為一個關系模式; (2)一個m:n聯系轉換為一個關系模式; (3)一個1:n聯系轉換為一個獨立的關系模式,也可以與n端對應的關系模式合并。 ; (4)一個1:1聯系轉換為一個獨立的關系模式也可與任意一端對應的關系模式合并; (5)三個或三個以上實體間的一個多元聯系轉換為一個關系模式; (6)同一實體集的實體間聯系; (7)具有相同碼的關系模式可合并。第四節 邏輯結構設計 數據模型的優化方法: (1)確定數據依賴; (2)對數據依賴進行極小化處理,消除冗余聯系; (3)按照數據依賴的理論對關系模式逐一進行分析,確定分別屬于第幾范式; (4)分析關系模式是否適應應用環境,確定是否進行合并或分解; (5)對關系模式進行必要的分解或合并。第五節 數據庫物理設計 數據庫物理設計的步驟: (1)確定數據庫的物理結構(確定數據的存儲結構;存取路徑的選擇和調整;確定數據存放位置;確定存儲分配); (2)評價物理結構,評價的重點是時間和空間效率。 數據庫物理設計的主要內容: (1)為關系模式選擇存取方法(包括索引存取方法、聚簇方法和HASH方法); (2)設計關系、索引等數據庫文件的物理存儲結構(確定數據的存放位置和確定系統配置)。 第五節 數據庫物理設計 設計人員設計數據庫的物理結構時主
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣告公司合同協議
- 工程清包施工合同
- 委托招生合作協議合同
- 幕墻分包施工合同
- 鞋子訂單合同
- 供貨質量保證承諾合同協議書
- 吊車汽車租賃合同
- 廣告牌鋼結構安裝工程合同
- 茶藝師中級練習試題及答案(一)
- 營銷現場作業安全管理和反竊電技能競賽參考復習試題附答案(一)
- 中水、純水系統簡介
- 12 UG NX運動仿真基礎
- (完整版)10KV配電室安裝工程施工方案
- 中國銀行履約保函(中英文)
- 邏輯思維訓練500題及答案
- 不銹鋼儲罐施工方案(2024043554)
- 新安全生產法主要負責人和安全管理人員職責
- VISI簡單操作說明140709
- 1.鋁合金陽極氧化實用工藝及全參數理論指導
- 油庫工藝流程及設備一覽表
- 1輔導員班主任談心談話記錄表
評論
0/150
提交評論