




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫系統(tǒng)原理第1章數(shù)據(jù)庫系統(tǒng)基本概念第2章數(shù)據(jù)模型與概念模型第3章數(shù)據(jù)庫設(shè)計第4章關(guān)系數(shù)據(jù)庫第5章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言——SQL第7章關(guān)系數(shù)據(jù)庫理論第8章數(shù)據(jù)庫保護12/31/2022制作人:張宇敬第1章數(shù)據(jù)庫系統(tǒng)基本概念1.1數(shù)據(jù)庫的作用及相關(guān)概念一.數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(1)數(shù)據(jù)(Data)數(shù)據(jù)實際上就是描述事物的符號記錄。數(shù)據(jù)的形式本身并不能完全表達其內(nèi)容,需要經(jīng)過語義解釋。數(shù)據(jù)與其語義是不可分的。(2)數(shù)據(jù)庫(DB)數(shù)據(jù)庫是長期存儲在計算機內(nèi)有結(jié)構(gòu)的大量的共享的數(shù)據(jù)集合。它可以供各種用戶共享、具有最小冗余度和較高的數(shù)據(jù)獨立性。(3)數(shù)據(jù)庫管理系統(tǒng)(DBMS)數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。數(shù)據(jù)庫管理系統(tǒng)使用戶能方便地定義數(shù)據(jù)和操縱數(shù)據(jù),并能夠保證數(shù)據(jù)的安全性、完整性、多用戶對數(shù)據(jù)的并發(fā)使用及發(fā)生故障后的系統(tǒng)恢復(fù)。
12/31/2022制作人:張宇敬(4)數(shù)據(jù)庫系統(tǒng)(DBS)數(shù)據(jù)庫系統(tǒng)是指在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成,一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構(gòu)成。(5)數(shù)據(jù)庫系統(tǒng)管理員(DBA)數(shù)據(jù)庫系統(tǒng)管理員負(fù)責(zé)數(shù)據(jù)庫的建立、使用和維護的專門的人員。二.數(shù)據(jù)庫管理系統(tǒng)
DBMS是數(shù)據(jù)庫系統(tǒng)的核心。它建立在操作系統(tǒng)的基礎(chǔ)上,是位于操作系統(tǒng)與用戶之間的一層數(shù)據(jù)管理軟件,負(fù)責(zé)對數(shù)據(jù)庫進行統(tǒng)一的管理和控制。1、DBMS的功能(1)數(shù)據(jù)定義定義數(shù)據(jù)庫的模式、存儲模式和外模式,定義各個外模式與模式之間的映射,定義模式與存儲模式之間的映射,定義有關(guān)的約束條件。12/31/2022制作人:張宇敬(2)數(shù)據(jù)操縱數(shù)據(jù)操縱包括對數(shù)據(jù)庫數(shù)據(jù)的檢索、插入、修改和刪除等基本操作。(3)數(shù)據(jù)庫運行管理包括對數(shù)據(jù)庫進行并發(fā)控制、安全性檢查、完整性約束條件的檢查和執(zhí)行數(shù)據(jù)庫的內(nèi)部維護(如索引、數(shù)據(jù)字典的自動維護)等。(4)數(shù)據(jù)組織、存儲和管理對數(shù)據(jù)字典、用戶數(shù)據(jù)、存取路徑等數(shù)據(jù)進行分門別類地組織、存儲和管理,確定以何種文件結(jié)構(gòu)和存取方式物理地組織這些數(shù)據(jù),如何實現(xiàn)數(shù)據(jù)之間的聯(lián)系,以便提高存儲空間利用率以及提高隨機查找、順序查找、增、刪、改等操作的時間效率。(5)數(shù)據(jù)庫的建立和維護建立數(shù)據(jù)庫包括數(shù)據(jù)庫初始數(shù)據(jù)的輸入與數(shù)據(jù)轉(zhuǎn)換等。維護數(shù)據(jù)庫包括數(shù)據(jù)庫的轉(zhuǎn)儲與恢復(fù)、數(shù)據(jù)庫的重組織與重構(gòu)造、性能的監(jiān)視與分析等。(6)數(shù)據(jù)通信接口DBMS需要提供與其他軟件系統(tǒng)進行通信的功能。例如提供與其他DBMS或文件系統(tǒng)的接口,從而能夠?qū)?shù)據(jù)轉(zhuǎn)換為另一個DBMS或文件系統(tǒng)能夠接受的格式,或者接收其他DBMS或文件系統(tǒng)的數(shù)據(jù)。12/31/2022制作人:張宇敬2、DBMS的組成(1)數(shù)據(jù)定義語言及其翻譯處理程序(2)數(shù)據(jù)操縱語言及其翻譯解釋程序數(shù)據(jù)操縱語言(DataManipulationLanguage,簡稱DML)用來實現(xiàn)對數(shù)據(jù)庫的檢索、插入、修改、刪除等基本操作。(3)數(shù)據(jù)運行控制程序數(shù)據(jù)定義語言(DataDefinitionLanguage,簡稱DDL)供用戶定義數(shù)據(jù)庫的模式、存儲模式、外模式、各級模式間的映射、有關(guān)的約束條件等。系統(tǒng)運行控制程序負(fù)責(zé)數(shù)據(jù)庫運行過程中的控制與管理(包括系統(tǒng)初啟程序、文件讀寫與維護程序、存取路徑管理程序、緩沖區(qū)管理程序、安全性控制程序、完整性檢查程序、并發(fā)控制程序、事務(wù)管理程序、運行日志管理程序等)。(4)實用程序包括數(shù)據(jù)初始裝入程序、數(shù)據(jù)轉(zhuǎn)儲程序、數(shù)據(jù)庫恢復(fù)程序、性能監(jiān)測程序、數(shù)據(jù)庫再組織程序、數(shù)據(jù)轉(zhuǎn)換程序、通信程序等。12/31/2022制作人:張宇敬3.DBMS的工作過程(1)應(yīng)用程序A向DBMS發(fā)出從數(shù)據(jù)庫中讀數(shù)據(jù)記錄的命令;(2)DBMS對該命令進行語法檢查、語義檢查,并調(diào)用應(yīng)用程序A對應(yīng)的子模式,檢查A的存取權(quán)限,決定是否執(zhí)行該命令。如果拒絕執(zhí)行,則向用戶返回錯誤信息;(3)在決定執(zhí)行該命令后,DBMS調(diào)用模式,依據(jù)子模式/模式映象的定義,確定應(yīng)讀入模式中的哪些記錄;(4)DBMS調(diào)用物理模式,依據(jù)模式/物理模式映象的定義,決定應(yīng)從哪個文件、用什么存取方式、讀入哪個或哪些物理記錄;(5)DBMS向操作系統(tǒng)發(fā)出執(zhí)行讀取所需物理記錄的命令;(6)操作系統(tǒng)執(zhí)行讀數(shù)據(jù)的有關(guān)操作;(7)操作系統(tǒng)將數(shù)據(jù)從數(shù)據(jù)庫的存儲區(qū)送至系統(tǒng)緩沖區(qū);(8)DBMS依據(jù)子模式/模式映象的定義,導(dǎo)出應(yīng)用程序A所要讀取的記錄格式;(9)DBMS將數(shù)據(jù)記錄從系統(tǒng)緩沖區(qū)傳送到應(yīng)用程序A的用戶工作區(qū);(10)DBMS向應(yīng)用程序A返回命令執(zhí)行情況的狀態(tài)信息。12/31/2022制作人:張宇敬1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展
12/31/2022制作人:張宇敬1.3數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)
數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)是指數(shù)據(jù)庫系統(tǒng)是由外模式、模式和內(nèi)模式三級構(gòu)成。12/31/2022制作人:張宇敬
(1)模式模式是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。數(shù)據(jù)庫模式以某一種數(shù)據(jù)模型為基礎(chǔ)。定義模式時不僅要定義數(shù)據(jù)的邏輯結(jié)構(gòu)(例如數(shù)據(jù)記錄由哪些數(shù)據(jù)項構(gòu)成,數(shù)據(jù)項的名字、類型、取值范圍等),而且要定義與數(shù)據(jù)有關(guān)的安全性、完整性要求,定義這些數(shù)據(jù)之間的聯(lián)系。(2)外模式外模式也稱子模式或用戶模式,它是數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶)看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。(3)內(nèi)模式內(nèi)模式也稱存儲模式,它是數(shù)據(jù)物理結(jié)構(gòu)和存儲結(jié)構(gòu)的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式(例如,記錄的存儲方式是順序存儲、按照B樹結(jié)構(gòu)存儲還是按hash方法存儲;索引按照什么方式組織;數(shù)據(jù)是否壓縮存儲,是否加密;數(shù)據(jù)的存儲記錄結(jié)構(gòu)有何規(guī)定)。一個數(shù)據(jù)庫只有一個內(nèi)模式。12/31/2022制作人:張宇敬
3、數(shù)據(jù)庫的二級映象功能與數(shù)據(jù)獨立性對于每一個外模式,數(shù)據(jù)庫系統(tǒng)都有一個外模式/模式映象,它定義了該外模式與模式之間的對應(yīng)關(guān)系。當(dāng)模式改變時,由數(shù)據(jù)庫管理員對各個外模式/模式的映象作相應(yīng)改變,可以使外模式保持不變,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)的邏輯獨立性。數(shù)據(jù)庫中只有一個模式,也只有一個內(nèi)模式,所以模式/內(nèi)模式映象是唯一的,它定義了數(shù)據(jù)全局邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的對應(yīng)關(guān)系。當(dāng)數(shù)據(jù)庫的存儲結(jié)構(gòu)改變了,由數(shù)據(jù)庫管理員對模式/內(nèi)模式映象作相應(yīng)改變,可以使模式保持不變,從而保證了數(shù)據(jù)的物理獨立性。12/31/2022制作人:張宇敬4.?dāng)?shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)(1)單用戶數(shù)據(jù)庫系統(tǒng)整個數(shù)據(jù)庫系統(tǒng),包括應(yīng)用程序、DBMS、數(shù)據(jù),都裝在一臺計算機上,為一個用戶獨占,不同機器之間不能共享數(shù)據(jù)。(2)主從式結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)指一個主機帶多個終端的多用戶結(jié)構(gòu)。在這種結(jié)構(gòu)中,數(shù)據(jù)庫系統(tǒng),包括應(yīng)用程序、DBMS、數(shù)據(jù),都集中存放在主機上,所有處理任務(wù)都由主機來完成,各個用戶通過主機的終端并發(fā)地存取數(shù)據(jù)庫,共享數(shù)據(jù)資源。(3)分布式結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)分布式結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)是指數(shù)據(jù)庫中的數(shù)據(jù)在邏輯上是一個整體,但物理地分布在計算機網(wǎng)絡(luò)的不同結(jié)點上。網(wǎng)絡(luò)中的每個結(jié)點都可以獨立處理本地數(shù)據(jù)庫中的數(shù)據(jù),執(zhí)行局部應(yīng)用;同時也可以同時存取和處理多個異地數(shù)據(jù)庫中的數(shù)據(jù),執(zhí)行全局應(yīng)用。
(4)客戶/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)服務(wù)器:網(wǎng)絡(luò)中某個(些)結(jié)點上的計算機專門用于執(zhí)行DBMS功能,稱為數(shù)據(jù)庫服務(wù)器。客戶機:其他結(jié)點上的計算機安裝DBMS的外圍應(yīng)用開發(fā)工具,支持用戶的應(yīng)用,稱為客戶機。回首頁12/31/2022制作人:張宇敬第2章數(shù)據(jù)模型與概念模型
2.1信息的三種世界1.數(shù)據(jù)模型基本概念數(shù)據(jù)模型用來抽象、表示和處理現(xiàn)實世界中的數(shù)據(jù)和信息。即數(shù)據(jù)模型就是現(xiàn)實世界的模擬。數(shù)據(jù)模型應(yīng)滿足三個方面的要求:比較真實的模擬現(xiàn)實世界;容易為人們理解;便于計算機表達。數(shù)據(jù)模型分成兩個不同的層次:(1)概念模型,它是按用戶的觀點來對數(shù)據(jù)和信息建模。(2)數(shù)據(jù)模型,主要包括網(wǎng)狀模型、層次模型、關(guān)系模型等,它是按計算機系統(tǒng)的觀點對數(shù)據(jù)建模。2.?dāng)?shù)據(jù)模型的三要素(1)數(shù)據(jù)結(jié)構(gòu)(2)數(shù)據(jù)操作(3)數(shù)據(jù)的約束條件12/31/2022制作人:張宇敬2.2.概念模型及其特點1.概念模型:概念模型用于信息世界的建模。概念模型不依賴于某一個DBMS支持的數(shù)據(jù)模型。概念模型可以轉(zhuǎn)換為計算機上某一DBMS支持的特定數(shù)據(jù)模型。概念模型特點:(1)具有較強的語義表達能力,能夠方便、直接地表達應(yīng)用中的各種語義知識.(2)應(yīng)該簡單、清晰、易于用戶理解,是用戶與數(shù)據(jù)庫設(shè)計人員之間進行交流的語言。2.實體型(EntityType)用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型。3.實體集(EntitySet)同型實體的集合稱為實體集。4.聯(lián)系(Relationship)現(xiàn)實世界中事物內(nèi)部以及事物之間的聯(lián)系在信息世界中反映為實體內(nèi)部的聯(lián)系和實體之間的聯(lián)系。5.表示概念模型的實體-聯(lián)系方法(Entity-RelationshipApproach,E-R方法)E-R圖提供了表示實體型、屬性和聯(lián)系的方法: 實體型:用矩形表示,矩形框內(nèi)寫明實體名。 屬性:用橢圓形表示,并用無向邊將其與相應(yīng)的實體連接起來 聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實體連接起來,同時在無向邊旁標(biāo)上聯(lián)系的類型(1:1、1:n或m:n)。12/31/2022制作人:張宇敬2.3常見的三種模型1.層次數(shù)據(jù)模型(1)數(shù)據(jù)結(jié)構(gòu)用樹形結(jié)構(gòu)表示各類實體以及實體之間的聯(lián)系。只有一個根結(jié)點;除結(jié)點外的其它結(jié)點只有一個雙親結(jié)點。(2)操縱及完整性約束層次數(shù)據(jù)模型的操縱主要有查詢、插入、刪除和更新。進行插入、刪除、更新操作時要滿足層次模型的完整性約束條件。進行插入操作時,如果沒有相應(yīng)的雙親結(jié)點值就不能插入子女結(jié)點值。進行刪除操作時,如果刪除雙親結(jié)點值,則相應(yīng)的子女結(jié)點值也被同時刪除。進行更新操作時,應(yīng)更新所有相應(yīng)記錄,以保證數(shù)據(jù)的一致性。(3)層次數(shù)據(jù)模型的存儲結(jié)構(gòu)
鄰接法:按照層次樹的一定順序把所有記錄值依次鄰接存放,即通過物理空間的位置相鄰來實現(xiàn)層次順序。鏈接法:用指針來反映數(shù)據(jù)之間的層次聯(lián)系。12/31/2022制作人:張宇敬2.網(wǎng)狀數(shù)據(jù)模型(1)數(shù)據(jù)結(jié)構(gòu)網(wǎng)狀數(shù)據(jù)模型是一種比層次模型更具普遍性的結(jié)構(gòu),它去掉了層次模型的兩個限制,允許多個結(jié)點沒有雙親結(jié)點,允許結(jié)點有多個雙親結(jié)點,允許兩個結(jié)點之間有多種聯(lián)系(稱之為復(fù)合聯(lián)系)。(2)操縱及完整性約束
網(wǎng)狀數(shù)據(jù)模型的操縱主要包括查詢、插入、刪除和更新數(shù)據(jù)。插入操作允許插入尚未確定雙親結(jié)點值的子女結(jié)點值。刪除操作允許只刪除雙親結(jié)點值。更新操作時只需更新指定記錄即可。(3)存儲結(jié)構(gòu)
網(wǎng)狀數(shù)據(jù)模型的存儲結(jié)構(gòu)依具體系統(tǒng)不同而不同,常用的方法是鏈接法,包括單向鏈接、雙向鏈接、環(huán)狀鏈接等。12/31/2022制作人:張宇敬3.關(guān)系數(shù)據(jù)模型(1)數(shù)據(jù)結(jié)構(gòu)
一個關(guān)系模型的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。表中的一行即為一個元組;表中的一列即為一個屬性。(2)操縱及完整性約束
關(guān)系數(shù)據(jù)模型的操縱主要包括查詢、插入、刪除和更新數(shù)據(jù)這些操作必須滿足關(guān)系的完整性約束條件。關(guān)系模型中的數(shù)據(jù)操作是集合操作,操作對象和操作結(jié)果都是關(guān)系,即若干元組的集合。關(guān)系模型把存取路徑向用戶隱蔽起來,用戶只要指出“干什么”,不必詳細(xì)說明“怎么干”,從而大大地提高了數(shù)據(jù)的獨立性。關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)操作語言是SQL語言。(3)存儲結(jié)構(gòu)
關(guān)系數(shù)據(jù)模型中,實體及實體間的聯(lián)系都用表來表示。在數(shù)據(jù)庫的物理組織中,表以文件形式存儲,每一個表通常對應(yīng)一種文件結(jié)構(gòu)。后首頁12/31/2022制作人:張宇敬第3章數(shù)據(jù)庫設(shè)計
3.1數(shù)據(jù)庫設(shè)計的步驟1.數(shù)據(jù)庫設(shè)計的基本步驟(1)需求分析階段需求收集和分析,結(jié)果得到數(shù)據(jù)字典描述的數(shù)據(jù)需求和數(shù)據(jù)流圖描述的處理需求。(2)概念結(jié)構(gòu)設(shè)計階段通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型,可以用E-R圖表示。(3)邏輯結(jié)構(gòu)設(shè)計階段將概念結(jié)構(gòu)轉(zhuǎn)換為某個DBMS所支持的數(shù)據(jù)模型,例如關(guān)系模型,并對其進行優(yōu)化。(4)數(shù)據(jù)庫物理設(shè)計階段為邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu),包括存儲結(jié)構(gòu)和存取方法。12/31/2022制作人:張宇敬(5)數(shù)據(jù)庫實施階段運用DBMS提供的數(shù)據(jù)語言(例如SQL)及其宿主語言(例如C),根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進行試運行。(6)數(shù)據(jù)庫運行和維護階段數(shù)據(jù)庫應(yīng)用系統(tǒng)經(jīng)過試運行后即可投入正式運行。在數(shù)據(jù)庫系統(tǒng)運行過程中必須不斷地對其進行評價、調(diào)整與修改。3.2需求分析
1.需求分析的任務(wù).詳細(xì)調(diào)查現(xiàn)實世界要處理的對象.充分了解原系統(tǒng)工作概況.明確用戶的各種需求.確定新系統(tǒng)的功能12/31/2022制作人:張宇敬2.需求分析的方法(1)調(diào)查組織機構(gòu)情況(2)調(diào)查各部門的業(yè)務(wù)活動情況(3)協(xié)助用戶明確對新系統(tǒng)的各種要求(4)確定新系統(tǒng)的邊界3.數(shù)據(jù)流圖數(shù)據(jù)流圖表達了數(shù)據(jù)和處理過程的關(guān)系。系統(tǒng)中的數(shù)據(jù)則借助數(shù)據(jù)字典(DataDictionary,簡稱DD)來描述。4.數(shù)據(jù)字典數(shù)據(jù)字典是進行數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要成果。數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合。數(shù)據(jù)字典通常包括數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲和處理過程五個部分。12/31/2022制作人:張宇敬3.3概念結(jié)構(gòu)設(shè)計
1.概念結(jié)構(gòu)設(shè)計的方法·自頂向下:先定義全局概念結(jié)構(gòu)的框架,然后逐步細(xì)化。·自底向上:先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu)。·逐步擴張:先定義最重要的核心概念結(jié)構(gòu),然后向外擴充,直至總體概念結(jié)構(gòu)。無論采用哪種設(shè)計方法,一般都以E-R模型為工具來描述概念結(jié)構(gòu)。2.數(shù)據(jù)抽象與局部視圖設(shè)計以自底向上設(shè)計方法為例,它通常分為兩步:第一步,根據(jù)需求分析的結(jié)果,對現(xiàn)實世界的數(shù)據(jù)進行抽象,設(shè)計各個局部視圖即分E-R圖。第二步,集成局部視圖。3.視圖的集成集成分E-R圖時都需要兩步:1)合并;2)修改與重構(gòu)。12/31/2022制作人:張宇敬3.4邏輯結(jié)構(gòu)設(shè)計
設(shè)計邏輯結(jié)構(gòu)時一般要分三步進行:·將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型·將轉(zhuǎn)化來的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換·對數(shù)據(jù)模型進行優(yōu)化1.E-R圖向數(shù)據(jù)模型的轉(zhuǎn)換轉(zhuǎn)換原則:(1)一個實體型轉(zhuǎn)換為一個關(guān)系模式。實體的屬性就是關(guān)系的屬性。實體的碼就是關(guān)系的碼。(2)一個m:n聯(lián)系轉(zhuǎn)換為一個關(guān)系模式。與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性。而關(guān)系的碼為各實體碼的組合。(3)一個1:n聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式,也可以與n端對應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個獨立的關(guān)系模式,則與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為n端實體的碼。(4)一個1:1聯(lián)系可轉(zhuǎn)換為一個獨立的關(guān)系模式,也可與任一端對應(yīng)的關(guān)系模式合并。(5)三個或三個以上實體間的一個多元聯(lián)系轉(zhuǎn)換為一個關(guān)系模式。與該多元聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性。而關(guān)系的碼為各實體碼的組合。(6)同一實體集的實體間的聯(lián)系,即自聯(lián)系,也可按上述1:1、1:n和m:n三種情況分別處理。(7)具有相同碼的關(guān)系模式可合并。
12/31/2022制作人:張宇敬2.數(shù)據(jù)模型的優(yōu)化(1)確定數(shù)據(jù)依賴。(2)按照數(shù)據(jù)依賴的理論對關(guān)系模式逐一進行分析,考查是否存在部分函數(shù)依賴、傳遞函數(shù)依賴、多值依賴等,確定各關(guān)系模式分別屬于第幾范式。(3)按照需求分析階段得到的各種應(yīng)用對數(shù)據(jù)處理的要求,分析對于這樣的應(yīng)用環(huán)境這些模式是否合適,確定是否要對它們進行合并或分解。(4)對關(guān)系模式進行必要的分解。3.設(shè)計用戶子模式局部應(yīng)用視圖是概念模型,用E-R圖表示。在將概念模型轉(zhuǎn)換為邏輯模型后,即生成了整個應(yīng)用系統(tǒng)的模式后,還應(yīng)該根據(jù)局部應(yīng)用需求,結(jié)合具體DBMS的特點,設(shè)計用戶的外模式。12/31/2022制作人:張宇敬3.5數(shù)據(jù)庫物理設(shè)計一、確定數(shù)據(jù)庫的物理結(jié)構(gòu)(1)確定數(shù)據(jù)的存儲結(jié)構(gòu)(2)設(shè)計數(shù)據(jù)的存取路徑(3)確定數(shù)據(jù)的存放位置(4)確定系統(tǒng)(參數(shù))配置二、評價物理結(jié)構(gòu)評價物理數(shù)據(jù)庫的方法完全依賴于所選用的DBMS,主要是從定量估算各種方案的存儲空間、存取時間和維護代價入手,對估算結(jié)果進行權(quán)衡、比較,選擇出一個較優(yōu)的合理的物理結(jié)構(gòu)。如果該結(jié)構(gòu)不符合用戶需求,則需要修改設(shè)計。12/31/2022制作人:張宇敬3.6數(shù)據(jù)庫實施、運行與維護一、定義數(shù)據(jù)庫結(jié)構(gòu)確定了數(shù)據(jù)庫的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)后,就可以用所選用的DBMS提供的數(shù)據(jù)定義語言(DDL)來嚴(yán)格描述數(shù)據(jù)庫結(jié)構(gòu)。二、數(shù)據(jù)裝載數(shù)據(jù)庫結(jié)構(gòu)建立好后,就可以向數(shù)據(jù)庫中裝載數(shù)據(jù)了。組織數(shù)據(jù)入庫是數(shù)據(jù)庫實施階段最主要的工作。對于數(shù)據(jù)量不是很大的小型系統(tǒng),可以用人式方法完成數(shù)據(jù)的入庫,其步驟為:(1)篩選數(shù)據(jù):需要裝入數(shù)據(jù)庫中的數(shù)據(jù)通常都分散在各個部門的數(shù)據(jù)文件或原始憑證中,所以首先必須把需要入庫的數(shù)據(jù)篩選出來。(2)轉(zhuǎn)換數(shù)據(jù)格式篩選出來的需要入庫的數(shù)據(jù),其格式往往不符合數(shù)據(jù)庫要求,還需要進行轉(zhuǎn)換。這種轉(zhuǎn)換有時可能很復(fù)雜。(3)輸入數(shù)據(jù)將轉(zhuǎn)換好的數(shù)據(jù)輸入計算機中。(4)校驗數(shù)據(jù)檢查輸入的數(shù)據(jù)是否有誤。三、編制與調(diào)試應(yīng)用程序數(shù)據(jù)庫應(yīng)用程序的設(shè)計應(yīng)該與數(shù)據(jù)設(shè)計并行進行。調(diào)試應(yīng)用程序時由于數(shù)據(jù)入庫尚未完成,可先使用模擬數(shù)據(jù)。四、數(shù)據(jù)庫試運行回首頁12/31/2022制作人:張宇敬第4章關(guān)系數(shù)據(jù)庫
4.1關(guān)系數(shù)據(jù)庫概述一.關(guān)系模型的組成關(guān)系模型是關(guān)系數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)模型。關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作和完整性約束三部分組成。關(guān)系數(shù)據(jù)結(jié)構(gòu):關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)其邏輯形式是一張二維表。這種二維表的結(jié)構(gòu)可描述現(xiàn)實世界的實體以及實體間的各種聯(lián)系,且結(jié)構(gòu)單一。關(guān)系操作:關(guān)系操作采用集合操作方式,即操作的對象和結(jié)果都是集合。常用的關(guān)系操作包括:查詢、選擇、投影、連接、除、并、交、差、增加、刪除、修改等。完整性約束:關(guān)系模型定義了三類完整性約束:實體完整性、參照完整性和用戶定義的完整性。其中實體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束,由關(guān)系數(shù)據(jù)庫系統(tǒng)強制執(zhí)行。12/31/2022制作人:張宇敬二.描述關(guān)系操作的語言描述關(guān)系操作的語言可以分為三類:三.關(guān)系數(shù)據(jù)結(jié)構(gòu)在關(guān)系模型中,實體和實體之間的聯(lián)系均由關(guān)系(二維表)來表示。12/31/2022制作人:張宇敬1.基本概念域:域是一組具有相同數(shù)據(jù)類型的值的集合。例如:非負(fù)整數(shù)、長度等于3的字符串。笛卡爾積:給定一組域D1,D2,…,Dn。D1,D2,…,Dn的笛卡爾積定義為:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Dj,j=1,2,…,n}其中每一個元素(d1,d2,…,dn)叫作一個元組。元素中的每一個值di叫作一個分量。若Di(i=1,2,…,n)為有限集,其基數(shù)為mi(i=1,2,…,n),則D1×D2×…×Dn的基數(shù)為:nm=∏mii=112/31/2022制作人:張宇敬2.關(guān)系D1×D2×…×Dn的一個子集叫作域D1、D2、…、Dn上的一個關(guān)系,用R(D1,D2,…,Dn)表示。這里R表示關(guān)系的名字,n是關(guān)系的目或度。關(guān)系中的每個元素是關(guān)系中的元組,通常用t表示。關(guān)系是笛卡積的子集,所以關(guān)系也是一個二維表,表的每行對應(yīng)一個元組,表的每列對應(yīng)一個域。由于域可以相同,為了加以區(qū)分,必須對每列起一個名字,稱為屬性名。候選碼:能唯一地標(biāo)識一個元組的一組屬性。3.關(guān)系的性質(zhì):①同一列中的分量是同一類型的數(shù)據(jù)。不同列可以取相同的數(shù)據(jù)類型。②關(guān)系中的列又稱為屬性,并賦予屬性名。不同列的屬性名不同。③列的次序可以任意交換。④任意兩個元組不能完全相同。⑤行的次序可以任意交換。⑥列具有原子性,即每一列值是不可分的數(shù)據(jù)項12/31/2022制作人:張宇敬4.關(guān)系模式關(guān)系模式是對關(guān)系的描述。一個關(guān)系模式是一個五元組??杀硎緸镽(U,D,DOM,F)其中R為關(guān)系名,U為屬性名集合,D為屬性組U中屬性所來自的域,DOM為屬性向域的映象集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集合。5.關(guān)系數(shù)據(jù)庫在關(guān)系模型中,實體以及實體間的聯(lián)系都是用關(guān)系來表示。在一個給定應(yīng)用中,所有實體及實體之間聯(lián)系的關(guān)系的集合構(gòu)成一個關(guān)系數(shù)據(jù)庫。四.關(guān)系的完整型1.實體完整性實體完整性規(guī)則:若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。2.參照完整性定義設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(guān)系R的碼,如果F與基本關(guān)系S的主碼Ks相對應(yīng),則稱F是基本關(guān)系R的外碼,并稱基本關(guān)系R為參照關(guān)系,基本關(guān)系S為被參照關(guān)系。12/31/2022制作人:張宇敬參照完整性規(guī)則:若屬性或?qū)傩越MF是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng),則對于R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值);或者等于S中某個元組的主碼值。3.用戶定義的完整性用戶定義的完整性是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。例如: 某個屬性的取值不能為空; 某個屬性的取值范圍在0~100之間。12/31/2022制作人:張宇敬4.2關(guān)系代數(shù)
1.關(guān)系代數(shù)運算符12/31/2022制作人:張宇敬幾個記號(1)設(shè)關(guān)系模式為R(A1,A2,…,An)。它的一個關(guān)系設(shè)為R。t∈R表示t是R的一個元組。t[Ai]則表示元組t中相應(yīng)于屬性Ai的一個分量。(2)設(shè)A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,則A稱為屬性列。フA則表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的屬性組。
t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元組t在屬性列A上諸分量的集合。(3)R為n目關(guān)系,S為m目關(guān)系。稱為元組的連接。它是一個(n+m)列的元組,前n個分量為R中的一個n元組,后m個分量為S中的一個
m元組。3.傳統(tǒng)的集合運算(1)并(Union)
R∪S={t|t∈R∨t∈S}12/31/2022制作人:張宇敬(2)差(Difference)R-S={t|t∈R∧フt∈S}(3)交(IntersectionReferentialintegrity)R∩S={t|t∈R∧t∈S}(4)廣義笛卡爾積(Extendedcartesianproduct)4.專門的關(guān)系運算專門的關(guān)系運算包括選擇、投影、連接、除等。(1)選擇(Selection)它是在關(guān)系R中選擇滿足給定條件的諸元組.(2)投影(Projection)關(guān)系R上的投影是從R中選擇出若干屬性列組成新的關(guān)系。記作:ΠA(R)={t[A]|t∈R}12/31/2022制作人:張宇敬(3)連接(Join)它是從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組.。有兩種常用的連接,一種是等值連接,另一種是自然連接。θ為“=”的連接運算稱為等值連接。它是從關(guān)系R與S的笛卡爾積中選取A、B屬性值相等的那些元組。自然連接是一種特殊的等值連接。需在等值連接的結(jié)果中把重復(fù)的屬性去掉。一般的連接操作是從行的角度進行運算。但自然連接還需要取消了重復(fù)列,所以是同時從行和列的角度進行運算。12/31/2022制作人:張宇敬4.3關(guān)系演算關(guān)系演算是以數(shù)理邏輯中的謂詞演算為基礎(chǔ)的。按謂詞變元的不同,關(guān)系演算可分為元組關(guān)系演算和域關(guān)系演算。以下以ALPHA語言為例,介紹元組關(guān)系演算的思想。1.元組關(guān)系演算ALPHAALPHA語言主要有GET、PUT、HOLD、UPDATE、DELETE、DROP六條語句。語句的基本格式是:操作語句工作空間名(表達式):操作條件其中表達式用于指定語句的操作對象,它可以是關(guān)系名或?qū)傩悦?。操作條件是一個邏輯表達式,用于將操作對象限定在滿足條件的元組中。2、檢索操作:用GET語句實現(xiàn)。3、更新操作(1)修改操作修改操作用UPDATE語句實現(xiàn)。(2)插入操作插入操作用PUT語句實現(xiàn)。(3)刪除刪除操作用DELETE語句實現(xiàn)?;厥醉?2/31/2022制作人:張宇敬第5章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL
5.1SQL概述1.SQL的特點(1)綜合統(tǒng)一SQL語言集DDL、DML、DCL的于一體,包括定義關(guān)系模式、錄入數(shù)據(jù)、建立數(shù)據(jù)庫、查詢、更新、維護、數(shù)據(jù)庫重構(gòu)、數(shù)據(jù)庫安全性控制等一系列功能。(2)非過程化用戶無需了解存取路徑,用戶只需提出“做什么”,而不必指明“怎么做”。存取路徑的選擇以及SQL語句的操作過程由系統(tǒng)自動完成。(3)面向集合的操作方式SQL語言采用集合操作方式,不僅查找結(jié)果可以是元組的集合。(4)以同一種語法結(jié)構(gòu)提供兩種使用方式SQL語言可采用交互式和嵌入式兩種使用方式。(5)語言簡潔SQL語言功能強,語言簡潔。12/31/2022制作人:張宇敬2.SQL語言的基本概念SQL語言支持關(guān)系數(shù)據(jù)庫三級模式結(jié)構(gòu)。外模式對應(yīng)于視圖和部分基本表,模式對應(yīng)于基本表,內(nèi)模式對應(yīng)于存儲文件?;颈硎潜旧愍毩⒋嬖诘谋恚赟QL中一個關(guān)系就對應(yīng)一個表。一個存儲文件中可有多個基本表。存儲文件的邏輯結(jié)構(gòu)組成了關(guān)系數(shù)據(jù)庫的內(nèi)模式。存儲文件的物理文件結(jié)構(gòu)是任意的。視圖是從基本表或其他視圖中導(dǎo)出的表,它不獨立存儲在數(shù)據(jù)庫中,數(shù)據(jù)庫只存放視圖的定義,因此視圖是一個虛表。
12/31/2022制作人:張宇敬5.2數(shù)據(jù)定義1.定義基本表CREATETABLE<表名> (<列名><數(shù)據(jù)類型>[列級完整性約束條件] [,<列名><數(shù)據(jù)類型>[列級完整性約束條件]...) [,<表級完整性約束條件>];建表時可定義完整性約束條件,當(dāng)用戶操作表中數(shù)據(jù)時系統(tǒng)自動檢查該操作是否違背這些完整性約束條件。如果完整性約束條件涉及多個屬性列,則必須定義在表級上,否則既可以定義在列級也可以定義在表級。2.修改基本表ALTERTABLE<表名> [ADD<新列名><數(shù)據(jù)類型>[完整性約束]] [DROP<完整性約束名><完整性約束名>] [MODIFY<列名><數(shù)據(jù)類型><數(shù)據(jù)類型>];ADD子句用于增加新列和新的完整性約束條件,DROP子句用于刪除指定的完整性約束條件,MODIFY子句用于修改原有的列定義。
12/31/2022制作人:張宇敬3.刪除基本表 DROPTABLE<表名>基本表定義一旦刪除,表中的數(shù)據(jù)、在此表上建立的索引都將自動被刪除掉,而建立在此表上的視圖雖仍然保留,但已無法引用。4.建立索引CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]]...);索引可以建在表的一列或多列上。可在每個<列名>后面指定索引值的排列次序。ASC表示升序,DESC表示降序,缺省值為ASC。UNIQUE表明建唯一性索引。CLUSTER表示建聚簇索引。所謂聚簇索引是指索引項的順序與表中記錄的物理順序一致的索引。5.刪除索引 DROPINDEX<索引名>;12/31/2022制作人:張宇敬5.3查詢SELECT[ALL|DISTINCT]<目標(biāo)列表達式>[,<目標(biāo)列表達式>]...FROM<表名或視圖名>[,<表名或視圖名>]...[WHERE<條件表達式>][GROUPBY<列名1>[HAVING<條件表達式>]][ORDERBY<列名2>[ASC|DESC]];·SELECT語句的含義:根據(jù)WHERE子句的條件表達式,從FROM子句指定的基本表或視圖中找出滿足條件的元組,再按SELECT子句中的目標(biāo)列表達式,選出元組中的屬性值形成結(jié)果表。·如果有GROUP子句,則將結(jié)果按<列名1>的值進行分組,該屬性列值相等的元組為一個組,每個組產(chǎn)生結(jié)果表中的一條記錄。·如果GROUP子句帶HAVING短語,則只有滿足指定條件的組才予輸出?!と绻蠴RDER子句,則結(jié)果表還要按<列名2>的值的升序或降序排序。12/31/2022制作人:張宇敬1.單表查詢(1)查詢指定列例1查詢?nèi)w學(xué)生的學(xué)號與姓名 SELECTSno,Sname FROMStudent;(2)查詢?nèi)苛欣?查詢?nèi)w學(xué)生的詳細(xì)記錄 SELECT* FROMStudent;(3)消除取值重復(fù)的行例6查所有選修過課的學(xué)生的學(xué)號 SELECTdistinctSno FROMSC;(4)查詢滿足條件的元組查詢滿足指定條件的元組可以通過WHERE子句實現(xiàn)。WHERE子句常用的查詢條件如表:12/31/2022制作人:張宇敬12/31/2022制作人:張宇敬(5)對查詢結(jié)果排序例查詢選修了3號課程的學(xué)生的學(xué)號及其成績,查詢結(jié)果按分?jǐn)?shù)的降序排列 SELECTSno,Grade FROMSC WHERECno=’3'GROUPBYGradeDESC;(6)使用集函數(shù)COUNT([DISTINCT|ALL]*)統(tǒng)計元組個數(shù)COUNT([DISTINCT|ALL]<列名>)統(tǒng)計一列中值的個數(shù)SUM([DISTINCT|ALL]<列名>)計算一列值的總和AVG([DISTINCT|ALL]<列名>)計算一列值的平均值MAX([DISTINCT|ALL]<列名>)求一列值中的最大值MIN([DISTINCT|ALL]<列名>)求一列值中的最小值例查詢學(xué)習(xí)1號課程的學(xué)生最高分?jǐn)?shù) SELECTMAX(Grade) FROMSCWHERECno='1';(7)對查詢結(jié)果分組GROUPBY子句可以將查詢結(jié)果表的各行按一列或多列取值相等的原則進行分組。12/31/2022制作人:張宇敬2.連接查詢?nèi)粢粋€查詢同時涉及兩個以上的表,則稱之為連接查詢。連接查詢主要包括等值連接、非等值連接查詢、自身連接查詢(自身連接)、外連接查詢(外連接)和復(fù)合條件連接查詢(復(fù)合條件連接)。(1)等值與非等值連接查詢用來連接兩個表的條件稱為連接條件,其一般格式為:[<表名1>.]<列名1><比較運算符>[<表名2>.]<列名2>其中比較運算符主要有:=、>、<、>=、<=、!=<=、!=此外連接謂詞詞還可以使用下面形式:[<表名1>.]<列名1>BETWEEN[<表名2>.]<列名2>AND[<表名2>.]<列名3>當(dāng)連接運算符為=時,稱為等值連接。使用其它運算符稱為非等值連接。連接謂詞中的列名稱為連接字段。連接條件中的各連接字段類型必須是可比的。12/31/2022制作人:張宇敬(2)自身連接連接操作不僅可以在兩個表之間進行,也可以是一個表與其自己進行連接,這種連接稱為表的自身連接。(3)外連接在通常的連接操作中,只有滿足連接條件的元組才能作為結(jié)果輸出。有時我們想以Student表為主體列出每個學(xué)生的基本情況及其選課情況,若某個學(xué)生沒有選課,則只輸出其基本情況信息,其選課信息為空值即可,這時就需要使用外連接(OuterJoin)。外連接的運算符通常為*。有的關(guān)系數(shù)據(jù)庫中也用+?;厥醉?2/31/2022制作人:張宇敬第7章關(guān)系數(shù)據(jù)庫設(shè)計理論
7.1函數(shù)依賴1.關(guān)系模式中的數(shù)據(jù)依賴一個關(guān)系模式應(yīng)當(dāng)是一個五元組。R(U,D,DOM,F)R是關(guān)系名;U是一組屬性;D是屬性組U中屬性所來自的域;DOM是屬性到域的映射;F是屬性組U上的一組數(shù)據(jù)依賴關(guān)系的集合。屬性間數(shù)據(jù)的依賴關(guān)系集合F實際上是描述關(guān)系的元組定義,限定組成關(guān)系的各個元組必須滿足的完整型約束條件。在實際應(yīng)用中,這些約束或者通過對屬性的取值范圍限定,或者通過屬性間的相互關(guān)連反映出來。后者稱為數(shù)據(jù)依,這是數(shù)據(jù)庫模式設(shè)計的關(guān)鍵。由于D和DOM對模式設(shè)計關(guān)系不大,因此我們把關(guān)系模式看作是一個三元組:R〈U,F(xiàn)〉當(dāng)且僅當(dāng)U上的一個關(guān)系r滿足F時,r稱為關(guān)系模式R〈U,F(xiàn)〉的一個關(guān)系。12/31/2022制作人:張宇敬2.數(shù)據(jù)依賴對關(guān)系模式的影響數(shù)據(jù)依賴是通過一個關(guān)系中屬性間值的相等與否體現(xiàn)出來的數(shù)據(jù)間的相互關(guān)系。它是現(xiàn)實世界屬性間相互聯(lián)系的抽象,是數(shù)據(jù)內(nèi)在的性質(zhì),是語義的體現(xiàn)?,F(xiàn)在人們已經(jīng)提出了許多種類型的數(shù)據(jù)依賴,其中最重要一個數(shù)據(jù)依賴是:函數(shù)依賴(FunctionalDependency簡記為FD)函數(shù)依賴極為普遍地存在于現(xiàn)實生活中。如學(xué)生關(guān)系,可有學(xué)號(SNO),姓名(SNAME),系名(SDEPT)等幾個屬性。由于一個學(xué)號只對應(yīng)一個學(xué)生,一個學(xué)生只在一個系學(xué)習(xí)。因而當(dāng)“學(xué)號”值確定之后,姓名和該生所在系的值也就被唯一地確定了。3.有關(guān)概念(1)函數(shù)依賴定義設(shè)R(U)是屬性集U上的關(guān)系模式。X,Y是U的子集。若對于R(U)的任意一個可能的關(guān)系r,r中不可能存在兩個元組在X上的屬性值相等,而在Y上的屬性值不等,則稱X函數(shù)確定Y或Y函數(shù)依賴于X,記作X→Y。 ·若X→Y,則X叫做決定因素(Determinant)。 ·若X→Y,Y→X,則記作X←→Y。12/31/2022制作人:張宇敬(2)平凡的函數(shù)依賴與非平凡的函數(shù)依賴定義在關(guān)系模式R(U)中,對U中的子集X,Y,如果X→Y,但YX,則稱X→Y是非平凡的函數(shù)依賴。若YX,則稱X→Y是平凡的函數(shù)依賴。對于任一關(guān)系模式,平凡的函數(shù)依賴都是必然存在的。(3)完全函數(shù)依賴與部分函數(shù)依賴定義在R(U)中,如果X→Y,并且對于X的任何一個真子集X',都有X'→Y,則稱Y對X完全函數(shù)依賴,記作:XY。若X→Y,但Y不完全函數(shù)依賴于X,則稱Y對X部分函數(shù)依賴,記作XY(4)傳遞依賴定義在R(U)中,如果X→Y,Y→Z,且(YX),Y→X,則稱Z對X傳遞函數(shù)依賴。在關(guān)系Std(Sno,Sdept,Mname)中,有 Sno→SdeptSdept→Mname Mname傳遞依賴Sno。(5)碼定義設(shè)K為R〈U,F(xiàn)〉中的屬性或?qū)傩越M合,若KU,則稱K為R的一個候選碼。若R中有多個候選碼,則選定其中的一個作為主碼。。12/31/2022制作人:張宇敬7.2范式范式是滿足一定函數(shù)依賴的關(guān)系模式的集合。目前主要有多種范式:第一范式、第二范式、第三范式、BC范式等。滿足最低要求的的叫第一范式,簡稱1NF。在第一范式基礎(chǔ)上進一步碼組一些要求的為第二范式,簡稱2NF。其余以次類推。1NF2NF3NFBCNF1.第一范式(1NF)定義如果一個關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項,則R∈1NF。SLC(Sno,Sdept,Sloc,Cno,Grade)∈1NF不滿足1NF的數(shù)據(jù)庫模式不能稱為關(guān)系數(shù)據(jù)庫。2.第二范式(2NF)定義若R∈lNF,且每一個非主屬性完全函數(shù)依賴于碼,則R∈2NF。3.第三范式(3NF)定義關(guān)系模式R〈U,F〉中若不存在侯選碼X、屬性組Y及非主屬性Z(ZY),使得X→Y,Y→Z和(Y→X)成立,則R∈3NF。上述定義說明,若R∈3NF,則每一個非主屬性既不部分依賴于碼也不傳遞依賴于碼。12/31/2022制作人:張宇敬7.3關(guān)系模式的規(guī)范化一個關(guān)系只要其分量都是不可分的數(shù)據(jù)項,它就是規(guī)范化的關(guān),但這是最基本的規(guī)范化。規(guī)范化程度有多個個級別,一個低一級范式的關(guān)系模式,通過分解可以轉(zhuǎn)換為若干高一級范式的關(guān)系模式集合,這種過程就叫關(guān)系模式的規(guī)范化。1.關(guān)系模式規(guī)范化的步驟規(guī)范化程度過低的關(guān)系可能會存在插入異常、刪除異常、修改復(fù)雜和數(shù)據(jù)冗余等問題,需要對其進行規(guī)范化,轉(zhuǎn)換成高級范式。但在現(xiàn)實世界中,設(shè)計數(shù)據(jù)庫模式結(jié)構(gòu)時,應(yīng)對用戶需要做進一步的分析,確定一個合適的模式。2.關(guān)系模式的分解關(guān)系模式的分解必須保證分解后的關(guān)系模式與原關(guān)系模式等價。設(shè)關(guān)系模式R〈U,F(xiàn)〉被分解為若干關(guān)系模式 R1〈U1,F(xiàn)1〉、R2〈U2,F(xiàn)2〉,…,Rn〈Un,F(xiàn)n〉若R與R1,R2,。。。,Rn的自然連接的結(jié)果相等,則稱關(guān)系R的這個分解具有無損連接性。具有無損連接性的分解才能保證不丟失信息后首頁12/31/2022制作人:張宇敬第8章數(shù)據(jù)庫保護
8.1安全性計算機系統(tǒng)安全性,是指為計算機系統(tǒng)建立和采取的各種安全保護措施,以保護計算機系統(tǒng)中的硬件、軟件及數(shù)據(jù),防止其因偶然或惡意的原因使系統(tǒng)遭到破壞,數(shù)據(jù)遭到更改或泄露等。計算機系統(tǒng)的安全性問題可分為三大類,即:技術(shù)安全類、管理安全類和政策法律類。(1)技術(shù)安全是指計算機系統(tǒng)中采用具有一定安全性的硬件、軟件來實現(xiàn)對計算機系統(tǒng)及其所存數(shù)據(jù)的安全保護,當(dāng)計算機系統(tǒng)受到無意或惡意的攻擊時仍能保證系統(tǒng)正常運行,保證系統(tǒng)內(nèi)的數(shù)據(jù)不增加、不丟失、不泄露。(2)管理安全技術(shù)安全之外的,諸如軟硬件意外故障、場地的意外事故、管理不善導(dǎo)致的計算機設(shè)備和數(shù)據(jù)介質(zhì)的物理破壞、丟失等安全問題,視為管理安全。(3)政策法律類則指政府部門建立的有關(guān)計算機犯罪、數(shù)據(jù)安全保密的法律道德準(zhǔn)則和政策法規(guī)、法令。12/31/2022制作人:張宇敬安全性控制的一般方法(1)用戶標(biāo)識和鑒別(2)存取控制(3)定義視圖(4)審計(5)數(shù)據(jù)加密8.2完整性數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。數(shù)據(jù)庫是否具備完整性關(guān)系到數(shù)據(jù)庫系統(tǒng)能否真實地反映現(xiàn)實世界,因此維護數(shù)據(jù)庫的完整性是非常重要的。1.完整性約束條件第一類靜態(tài)列級約束靜態(tài)列級約束是對一個列的取值域的說明,這是最常用也最容易實現(xiàn)的一類完整性約束。12/31/2022制作人:張宇敬第二類、靜態(tài)元組約束一個元組是由若干個列值組成的,靜態(tài)元組約束就是規(guī)定元組的各個列之間的約束關(guān)系。第三類、靜態(tài)關(guān)系約束在一個關(guān)系的各個元組之間或者若干關(guān)系之間常常存在各種聯(lián)系或約束。常見的靜態(tài)關(guān)系約束有:實體完整性約束、參照完整性約束等。第四類、動態(tài)列級約束動態(tài)列級約束是修改列定義或列值時應(yīng)滿足的約束條件。第五類、動態(tài)元組約束動態(tài)元組約束是指修改元組的值時元組中各個字段間需要滿足某種約束條件。例如職工工資調(diào)整時新工資不得低于原工資+工齡*1.5,等等。第六類、動態(tài)關(guān)系約束動態(tài)關(guān)系約束是加在關(guān)系變化前后狀態(tài)上的限制條件,例如事務(wù)一致性、原子性等約束條件。12/31/2022制作人:張宇敬2.完整型控制DBMS的完整性控制機制應(yīng)具有三個方面的功能:(1)定義功能,提供定義完整性約束條件的機制。(2)檢查功能,檢查用戶發(fā)出的操作請求是否違背了完整性約束條件。(3)保護功能,當(dāng)發(fā)現(xiàn)用戶的操作請求違背了數(shù)據(jù)的完整性約束條件,則采取一定的動作來保證數(shù)據(jù)的完整性。幾個問題。(1)外碼能否接受空值問題(2)刪除被參照關(guān)系中的元組的問題(3)在參照關(guān)系中插入元組時的問題(4)修改關(guān)系中主碼的問題12/31/2022制作人:張宇敬8.3并發(fā)控制數(shù)據(jù)庫是一個共享資源,可以供多個用戶使用。允許多個用戶同時使用的數(shù)據(jù)庫系統(tǒng)稱為多用戶數(shù)據(jù)庫系統(tǒng)。當(dāng)多個用戶并發(fā)地存取數(shù)據(jù)庫時就會產(chǎn)生多個事務(wù)同時存取同一數(shù)據(jù)的情況。若對并發(fā)操作不加控制就可能會存取和存儲不正確的數(shù)據(jù),破壞數(shù)據(jù)庫的一致性。數(shù)據(jù)庫管理系統(tǒng)必須提供并發(fā)控制機制。并發(fā)控制機制是衡量一個數(shù)據(jù)庫管理系統(tǒng)性能的重要標(biāo)志之一。1.并發(fā)操作隱含的數(shù)據(jù)不一致性問題。一.丟失修改二.不可重復(fù)讀三.讀“臟”數(shù)據(jù)(dirtyread)2.封鎖封鎖是實現(xiàn)并發(fā)控制的一個非常重要的技術(shù)。封鎖就是事務(wù)T在對某個數(shù)據(jù)對象(如表、記錄等)操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事務(wù)T就對該數(shù)據(jù)對象有了一定的控制,在事務(wù)T釋放它的鎖之前,其它的事務(wù)不能更新此數(shù)據(jù)對象。12/31/2022制作人:張宇敬3.封鎖協(xié)議在使用X鎖和S鎖對數(shù)據(jù)對象加鎖時,需約定一些規(guī)則。例如應(yīng)何時申請X鎖或S鎖、持鎖時間、何時釋放等。我們稱這些規(guī)則為封鎖協(xié)議。對封鎖方式規(guī)定不同的規(guī)則,就形成了各種不同的封鎖協(xié)議。(1)1級封鎖協(xié)議:事務(wù)T在修改數(shù)據(jù)A之前必須先對其加X鎖,直到事務(wù)結(jié)束才釋放。1級封鎖協(xié)議可防止丟失修改,并保證事務(wù)T是可恢復(fù)的。在1級封鎖協(xié)議中,如果僅僅是讀數(shù)據(jù)不對其進行修改,是不需要加鎖的,所以它不能保證可重復(fù)讀和不讀“臟”數(shù)據(jù)。(2)2級封鎖協(xié)議:事務(wù)T在修改數(shù)據(jù)A之前必須先對其加X鎖,在讀取數(shù)據(jù)A之前必須先對其加S鎖,讀完后即可釋放S鎖。2級封鎖協(xié)議可防止丟失修改、讀“臟”數(shù)據(jù)。(3)3級封鎖協(xié)議:事務(wù)T在修改數(shù)據(jù)A之前必須先對其加X鎖,在讀取數(shù)據(jù)A之前必須先對其加S鎖,直到事務(wù)結(jié)束才釋放。3級封鎖協(xié)議除防止了丟失修改和不讀‘臟’數(shù)據(jù)外,還進一步防止了不可重復(fù)讀。12/31/2022制作人:張宇敬4.死鎖如果事務(wù)T1封鎖了數(shù)據(jù)R1,T2封鎖了數(shù)據(jù)R2,然后T1又請求封鎖R2。接著T2又申請封鎖R1。這樣就出現(xiàn)了T1在等待T2,而T2又在等待T1的局面,T1和T2兩個事務(wù)永遠(yuǎn)不能結(jié)束,形成死鎖。(1)死鎖的預(yù)防產(chǎn)生死鎖的原因是兩個或多個事務(wù)都已封鎖了一些數(shù)據(jù)對象,然后又都請求對已為其他事務(wù)封鎖的數(shù)據(jù)對象加鎖,從而出現(xiàn)死等待。防止死鎖的發(fā)生其實就是要破壞產(chǎn)生死鎖的條件。預(yù)防死鎖通常有兩種方法:①一次封鎖法
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 美術(shù)比賽組織與評審標(biāo)準(zhǔn)計劃
- 如何提高團隊建設(shè)的成效計劃
- 酒店業(yè)酒店服務(wù)標(biāo)準(zhǔn)化的提升策略
- 超聲科常見疾病診斷與治療策略
- 有效時間管理策略制定計劃
- 浙江國企招聘2024金華市羅洋港務(wù)有限公司招聘2人筆試參考題庫附帶答案詳解
- 食品飲料行業(yè)營銷活動創(chuàng)新案例
- 浙江2025年01月浙江省平陽縣企事業(yè)單位2025年面向全球引進10名博士筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 河南2025年01月2025年河南平頂山市市直機關(guān)遴選公務(wù)員報考指南國家公務(wù)員考試消息筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 跨學(xué)科視角下的臨床前藥效研究進展及展望
- 圍填海項目生態(tài)保護修復(fù)方案編制技術(shù)指南(試行)
- 物體打擊傷亡事故應(yīng)急處置卡
- 2024-2030年中國飛機AFP和ATL復(fù)合材料行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 七年級英語上冊(人教版2024)新教材解讀課件
- 中醫(yī)食療藥膳學(xué)智慧樹知到答案2024年四川護理職業(yè)學(xué)院
- NB/T 11431-2023土地整治煤矸石回填技術(shù)規(guī)范
- 中醫(yī)師承跟師筆記50篇
- 聚乳酸-標(biāo)準(zhǔn)規(guī)程
- 任務(wù)型閱讀-小升初英語專項練習(xí)(譯林版三起)
- 部編版語文二年級下冊第三單元教材解讀大單元集體備課
- ISO28000:2022供應(yīng)鏈安全管理體系
評論
0/150
提交評論