版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、大學計算機基礎(chǔ)與應(yīng)用教程主 編 謝 兵、劉遠軍第8章 數(shù)據(jù)庫設(shè)計基礎(chǔ) 8.1 數(shù)據(jù)庫系統(tǒng)的基本概念 8.2 數(shù)據(jù)模型 8.3 關(guān)系代數(shù) 8.4 數(shù)據(jù)庫設(shè)計與管理 8.1 數(shù)據(jù)庫系統(tǒng)的基本概念 8.1.1 數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng) 8.1.2 數(shù)據(jù)管理技術(shù)的發(fā)展 8.1.3 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu) 8.1.1 數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng) 1.數(shù)據(jù)(Data) 數(shù)據(jù)實際上就是描述事物的符號表示。軟件中的數(shù)據(jù)是有一定結(jié)構(gòu)的,即有型 (Type)和值(Value)之分,數(shù)據(jù)的型給出了數(shù)據(jù)表示的類型,如整型、實型、字符型等,包括將多種相關(guān)數(shù)據(jù)以一定結(jié)構(gòu)方式組合構(gòu)成的特定數(shù)據(jù)框架,即數(shù)據(jù)結(jié)構(gòu)(Data st
2、ructure),在數(shù)據(jù)庫中特定條件下稱之為數(shù)據(jù)模式(Data schema)。而數(shù)據(jù)的值給出了符合給定型的值,如整型值19。 8.1.1 數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng) 2數(shù)據(jù)庫(Database,DB) 數(shù)據(jù)庫是長期存儲在計算機內(nèi)、有組織、可共享的數(shù)據(jù)的集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模式組織、描述和存儲,具有較大的集成度和較小的冗余度,較高的數(shù)據(jù)獨立性和易擴展性,并可為各種用戶所共享。例如,通訊錄就是一個數(shù)據(jù)集合,它包含了每個人的姓名、電話、單位、地址等,將通訊錄的信息按照一定的結(jié)構(gòu)存儲到計算機中便形成了一個數(shù)據(jù)庫。8.1.1 數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng) 3.數(shù)據(jù)管理系統(tǒng)(databas
3、e management system,DBMS) 數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心軟件,是一種系統(tǒng)軟件,在操作系統(tǒng)的支持下工作,負責數(shù)據(jù)庫中的數(shù)據(jù)模式定義、數(shù)據(jù)存取的物理構(gòu)建、數(shù)據(jù)操縱、數(shù)據(jù)的完整性安全性定義與檢查、數(shù)據(jù)庫的并發(fā)控制與故障恢復(fù)、數(shù)據(jù)服務(wù),并提供相應(yīng)的數(shù)據(jù)語言(Data Language)。8.1.1 數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng) 數(shù)據(jù)定義語言(Data Definition Language 簡稱DDL):負責數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建等。 數(shù)據(jù)操縱語言(Data Manipulation Language 簡稱DML):負責實現(xiàn)對數(shù)據(jù)庫的基本操作:查詢、插入、刪除和
4、修改等。8.1.1 數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng) 數(shù)據(jù)控制語言(Data Control Language 簡稱DCL):負責數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等功能,包括系統(tǒng)初啟程序、文件讀寫與維護程序、存取路徑管理程序、緩沖區(qū)管理程序、安全性控制程序、完整性檢查程序、并發(fā)控制程序、事務(wù)管理程序、運行日志管理程序、數(shù)據(jù)庫恢復(fù)程序等。8.1.1 數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng) 上述數(shù)據(jù)語言按其使用方式分成兩種結(jié)構(gòu)形式: 交互式命令語言。又稱為自含型或自主型語言,語言簡單,能在終端上即時操作。 宿主型語言。一般嵌入某些宿主語言(Host Language)中,如嵌入C,C+等高級
5、過程性語言中。8.1.1 數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng) 此外,數(shù)據(jù)庫管理系統(tǒng)還有為用戶提供服務(wù)的服務(wù)性(Utility)程序,包括數(shù)據(jù)初始裝入程序、數(shù)據(jù)轉(zhuǎn)存程序、性能監(jiān)測程序、數(shù)據(jù)庫再組織程序、數(shù)據(jù)轉(zhuǎn)換程序、通信程序等。8.1.1 數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng) 4.數(shù)據(jù)庫系統(tǒng)(Data Base System,DBS) 數(shù)據(jù)庫系統(tǒng)通常是指帶有數(shù)據(jù)庫的計算機系統(tǒng),由數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、硬件平臺(硬件)、軟件平臺(軟件)五部分組成。8.1.1 數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng) 5.數(shù)據(jù)庫應(yīng)用系統(tǒng)(Database Application System 簡稱 D
6、BAS) 數(shù)據(jù)庫應(yīng)用系統(tǒng)由數(shù)據(jù)庫系統(tǒng)加上應(yīng)用軟件及應(yīng)用界面三者組成。具體包括數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員、硬件平臺、軟件平臺、應(yīng)用軟件、應(yīng)用界面。其中應(yīng)用軟件是由數(shù)據(jù)庫系統(tǒng)所提供的數(shù)據(jù)庫管理系統(tǒng)及數(shù)據(jù)庫系統(tǒng)開發(fā)工具所書寫而成,應(yīng)用界面大多由相關(guān)的可視化工具開發(fā)而成。8.1.2 數(shù)據(jù)管理技術(shù)的發(fā)展 數(shù)據(jù)管理技術(shù)的發(fā)展與計算機硬件和軟件技術(shù)的發(fā)展有密切的關(guān)系。 1人工管理階段(20世紀50年代中期以前) 2文件系統(tǒng)階段(20世紀50年代后期到時60年代中期) 3數(shù)據(jù)庫系統(tǒng)階段(20世紀60年代后期)8.1.2 數(shù)據(jù)管理技術(shù)的發(fā)展人工管理人工管理文件系統(tǒng)文件系統(tǒng)數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)背背景景應(yīng)
7、用背景科學計算科學計算、管理大規(guī)模管理硬件背景無直接存取設(shè)備磁盤、磁鼓大容量磁盤軟件背景沒有操作系統(tǒng) 有文件系統(tǒng)有數(shù)據(jù)庫管理系統(tǒng)處理方式批處理聯(lián)機實時處理批處理聯(lián)機實時處理分布處理批處理人工管理人工管理文件系統(tǒng)文件系統(tǒng)數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)特特點點數(shù)據(jù)庫管理者人文件系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)面向?qū)ο竽硞€應(yīng)用程序某個應(yīng)用程序現(xiàn)實世界數(shù)據(jù)共享程度無共享冗余度大共享性差冗余度大共享性大冗余度小數(shù)據(jù)獨立性不獨立,完全依賴于程序獨立性差具有高度的物理獨立性和一定的邏輯獨立性數(shù)據(jù)結(jié)構(gòu)化無結(jié)構(gòu)記錄內(nèi)有結(jié)構(gòu)整體無結(jié)構(gòu)整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述數(shù)據(jù)控制能力應(yīng)用程序自己控制應(yīng)用程序自己控制由DBMS提供數(shù)據(jù)安全性、完整
8、性、并發(fā)控制和恢復(fù)8.1.2 數(shù)據(jù)管理技術(shù)的發(fā)展 目前,數(shù)據(jù)庫技術(shù)也與其他信息技術(shù)一樣在迅速發(fā)展之中,一般認為,未來的數(shù)據(jù)庫系統(tǒng)應(yīng)支持數(shù)據(jù)管理、對象管理和知識管理,在關(guān)于數(shù)據(jù)庫的諸多新技術(shù)中,主要包括: 面向?qū)ο髷?shù)據(jù)庫系統(tǒng):用面向?qū)ο蠓椒?gòu)筑面向?qū)ο髷?shù)據(jù)模型使其具有比關(guān)系數(shù)據(jù)庫系統(tǒng)更為通用的能力。8.1.2 數(shù)據(jù)管理技術(shù)的發(fā)展 知識庫系統(tǒng):用人工智能中的方法特別是用謂詞邏輯知識表示方法構(gòu)筑數(shù)據(jù)模型,使其模型具有特別通用的能力。 關(guān)系數(shù)據(jù)庫系統(tǒng)的擴充:利用關(guān)系數(shù)據(jù)庫作進一步擴展,使其在模型的表達能力與功能上有進一步的加強,如與網(wǎng)絡(luò)技術(shù)相結(jié)合的Web數(shù)據(jù)庫、數(shù)據(jù)倉庫及嵌入式數(shù)據(jù)庫等。8.1.3 數(shù)
9、據(jù)庫系統(tǒng)結(jié)構(gòu) 可以從多種不同的層次或不同的角度考察數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)。 從數(shù)據(jù)庫管理系統(tǒng)角度看,數(shù)據(jù)庫系統(tǒng)通常采用三級模式結(jié)構(gòu)。這是數(shù)據(jù)庫管理系統(tǒng)內(nèi)部的系統(tǒng)結(jié)構(gòu)。 從數(shù)據(jù)庫最終用戶角度看,數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)分為集中式結(jié)構(gòu)、分布式結(jié)構(gòu)、客戶/服務(wù)器結(jié)構(gòu)和并行結(jié)構(gòu)。這是數(shù)據(jù)庫系統(tǒng)外部的體系結(jié)構(gòu)。8.1.3 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu) 1數(shù)據(jù)庫系統(tǒng)模式的概念 在數(shù)據(jù)模型中有“型”和“值”的概念。型是指對某一類數(shù)據(jù)的結(jié)構(gòu)和屬性的說明,值是型的一個具體賦值。模式是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,它僅僅涉及型的描述,不涉及具體的值。模式的一個具體值稱為模式的一個實例。8.1.3 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu) 2數(shù)據(jù)庫系統(tǒng)的三級
10、模式結(jié)構(gòu)8.1.3 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu) (1)模式(Schema) 模式也稱概念模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。此種描述是一種抽象的描述,它不涉及具體的硬件環(huán)境與平臺,也與具體的軟件環(huán)境無關(guān)。 模式實際上是數(shù)據(jù)庫數(shù)據(jù)在邏輯級上的視圖。一個數(shù)據(jù)庫只有一個模式。定義模式時不僅要定義數(shù)據(jù)的邏輯結(jié)構(gòu),而且要定義數(shù)據(jù)之間的聯(lián)系,定義與數(shù)據(jù)有關(guān)的安全性、完整性要求,一般數(shù)據(jù)庫系統(tǒng)都提供模式描述語言(模式DDL)來嚴格表示這些內(nèi)容。8.1.3 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu) (2)外模式(External Schema) 外模式也稱子模式或用戶模式,它是數(shù)據(jù)庫用戶能夠看見和使用的局部數(shù)
11、據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。外模式通常是概念模式的子集。一個數(shù)據(jù)庫可以有多個外模式。 應(yīng)用程序都是和外模式打交道。外模式是保證數(shù)據(jù)庫安全性的一個有力措施。每個用戶只能看見和訪問所對應(yīng)的外模式中的數(shù)據(jù),數(shù)據(jù)庫中的其余數(shù)據(jù)是不可見的。 數(shù)據(jù)庫系統(tǒng)提供外模式描述語言(外模式DDL)描述用戶的數(shù)據(jù)視圖。8.1.3 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu) (3)內(nèi)模式(Internal Schema) 內(nèi)模式也稱物理模式,用以定義數(shù)據(jù)存儲方式和物理結(jié)構(gòu),說明數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)中的內(nèi)部表示,是低層的描述,一個數(shù)據(jù)庫只有一個內(nèi)模式。例如,記錄的存儲方式是順序結(jié)構(gòu)存儲、樹結(jié)構(gòu)存儲
12、等;索引按什么方式組織;數(shù)據(jù)是否壓縮,是否加密;數(shù)據(jù)的存儲記錄結(jié)構(gòu)有何規(guī)定等。 在數(shù)據(jù)庫系統(tǒng)中,也為內(nèi)模式提供了內(nèi)模式描述語言(內(nèi)模式DDL)來定義和描述內(nèi)模式。8.1.3 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu) (4)三級模式間的映像 數(shù)據(jù)庫系統(tǒng)的三級模式是對數(shù)據(jù)的三個抽象級別。它把數(shù)據(jù)庫的具體組織留給了DBMS去完成,用戶只需要抽象地、邏輯地使用數(shù)據(jù),不需要關(guān)心這些數(shù)據(jù)在計算機中是如何表示和存儲的,大大減輕了用戶使用時的負擔。為了實現(xiàn)三個抽象級別的聯(lián)系和轉(zhuǎn)換,數(shù)據(jù)庫系統(tǒng)在三級模式中提供了兩個層次的映像,即 “外模式和模式映像”、“模式與內(nèi)模式映像”。8.1.3 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu) 外模式與模式映像 外模式與模式映像定
13、義了某一個外模式與模式之間的對應(yīng)關(guān)系,這些映像的定義通常包含在外模式當中。當模式改變時,外模式與模式映像也要做相應(yīng)地改變,以便保證外模式不變,訪問數(shù)據(jù)庫的應(yīng)用不變,從而保證數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)具有較高的邏輯獨立性。8.1.3 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu) 模式與內(nèi)模式映像 模式與內(nèi)模式映像定義了數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)的對應(yīng)關(guān)系。當數(shù)據(jù)庫的存儲結(jié)構(gòu)發(fā)生變化時,模式與內(nèi)模式映像也做了相應(yīng)的修改使模式不變,從而使數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)具有較高的物理獨立性。8.2 數(shù)據(jù)模型 8.2.1 數(shù)據(jù)模型的基本概念 8.2.2 E-R模型 8.2.3 邏輯數(shù)據(jù)模型 8.2.1 數(shù)據(jù)模型的基本概念 1數(shù)據(jù)模型的定義 數(shù)據(jù)模型是以數(shù)
14、據(jù)結(jié)構(gòu)的方法對客觀事物進行描述或模擬,是在信息模型的基礎(chǔ)上數(shù)據(jù)化的結(jié)果,數(shù)據(jù)化是一種抽象,不過這種抽象是憑借數(shù)學方法實現(xiàn)的。數(shù)據(jù)模型按不同的應(yīng)用層次分成三種類型,它們是概念數(shù)據(jù)模型(conceptual data model)、邏輯數(shù)據(jù)模型(logic data model)、物理數(shù)據(jù)模型(physical data model)。8.2.1 數(shù)據(jù)模型的基本概念 概念數(shù)據(jù)模型簡稱概念模型,它是整個數(shù)據(jù)模型的基礎(chǔ),是一種面向客觀世界、面向用戶的模型,著重于對客觀世界復(fù)雜事物的結(jié)構(gòu)描述及它們之間的內(nèi)在聯(lián)系刻畫,它與具體的數(shù)據(jù)庫管理無關(guān),與具體的計算機平臺無關(guān)。目前較為有名的概念模型有E-R模型、擴
15、充的E-R模型、面向?qū)ο竽P图爸^詞模型等。8.2.1 數(shù)據(jù)模型的基本概念 邏輯數(shù)據(jù)模型又稱數(shù)據(jù)模型,它是一種面向數(shù)據(jù)庫系統(tǒng)的模型,著重于在數(shù)據(jù)庫系統(tǒng)一級的實現(xiàn),只有在轉(zhuǎn)換成數(shù)據(jù)模型后才能在數(shù)據(jù)庫中得以表示。目前,邏輯數(shù)據(jù)模型主要有層次模型、網(wǎng)狀模型、關(guān)系模型等。 物理數(shù)據(jù)模型又稱物理模型,它是一種面向計算機物理表示的模型,此模型給出了數(shù)據(jù)模型在計算機上物理結(jié)構(gòu)的表示。8.2.1 數(shù)據(jù)模型的基本概念 2數(shù)據(jù)模型的組成要素 數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)的約束條件3部分組成,其中數(shù)據(jù)結(jié)構(gòu)是對系統(tǒng)靜態(tài)特性的描述,數(shù)據(jù)操作是對系統(tǒng)動態(tài)特性的描述。 (1)數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)模型中的數(shù)據(jù)結(jié)構(gòu)主要描述數(shù)
16、據(jù)的類型、內(nèi)容、性質(zhì)以及數(shù)據(jù)間的聯(lián)系等。數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)模型的基礎(chǔ),數(shù)據(jù)操作與約束均建立在數(shù)據(jù)結(jié)構(gòu)上。8.2.1 數(shù)據(jù)模型的基本概念 (2)數(shù)據(jù)操作。數(shù)據(jù)操作是指對數(shù)據(jù)庫中各種數(shù)據(jù)對象實例(即值)所允許執(zhí)行的操作集合,包括操作和操作規(guī)則。數(shù)據(jù)庫中操作主要劃分為兩大類:檢索和更新(插入、刪除和修改)。數(shù)據(jù)模型必須定義這些操作的確切含義、操作符號、操作規(guī)則(比如優(yōu)先級別)以及實現(xiàn)操作的語言。8.2.1 數(shù)據(jù)模型的基本概念 (3)數(shù)據(jù)的約束條件。數(shù)據(jù)的約束條件是一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)
17、據(jù)的正確、有效、相容。8.2.2 E-R模型 1.E-R模型的基本概念 (1)實體 客觀存在并可互相區(qū)別的事物稱為實體。實體是概念世界中的基本單位,凡是有共性的實體可組成一個集合稱為實體集(entity set)。例如,每個學生都是實體,所有學生組成一個實體集。8.2.2 E-R模型 (2)屬性 實體所具有的某一特性稱為屬性。一個實體可以由若干個屬性來描述,例如,學生實體可以由學號、姓名、性別、出生年份、系和入學時間等屬性來描述,一個屬性的取值范圍稱為該屬性的值域(value domain)或值集(value set)。8.2.2 E-R模型 (3)聯(lián)系 在現(xiàn)實世界中事物間的關(guān)聯(lián)稱為聯(lián)系,在信
18、息世界中反映為實體集內(nèi)部的聯(lián)系和實體集之間的聯(lián)系。兩個實體集間的聯(lián)系最為常見,可以分為3類: 一對一聯(lián)系(1 1) 一對多聯(lián)系(1 N) 多對多聯(lián)系(M N)8.2.2 E-R模型 2.E-R圖 E-R圖(entity-relationship)包括三個要素: (1)實體(型):用矩形框表示,框內(nèi)標注實體名稱。 (2)屬性:用橢圓形表示,框內(nèi)標注屬性名稱,并用連線與實體連接起來。 (3)實體之間的聯(lián)系:用菱形框表示,框內(nèi)標注聯(lián)系名稱,并用連線將菱形框分別與有關(guān)實體相連, 8.2.3 邏輯數(shù)據(jù)模型 數(shù)據(jù)庫中的邏輯數(shù)據(jù)模型主要有3種:層次模型、網(wǎng)狀模型、關(guān)系模型。層次模型和網(wǎng)狀模型稱為非關(guān)系模型,
19、由此構(gòu)成的數(shù)據(jù)庫產(chǎn)品目前已很少使用;關(guān)系模型構(gòu)成關(guān)系數(shù)據(jù)庫,是當前數(shù)據(jù)庫的主流產(chǎn)品。8.2.3 邏輯數(shù)據(jù)模型 1.層次模型(hierarchical model) 數(shù)據(jù)的層次模型用樹形結(jié)構(gòu)描述實體之間的聯(lián)系。這種數(shù)據(jù)結(jié)構(gòu)就像一棵倒置的樹,它有如下特點: 有且僅有一個節(jié)點無雙親,該節(jié)點稱為根節(jié)點。 其他節(jié)點有且僅有一個雙親。8.2.3 邏輯數(shù)據(jù)模型 層次模型的優(yōu)點如下: 層次數(shù)據(jù)模型本身比較簡單: 對于實體間聯(lián)系是固定的,且預(yù)先定義好的應(yīng)用系統(tǒng),采用層次模型來實現(xiàn),其性能優(yōu)于關(guān)系模型,不低于網(wǎng)狀模型。 層次數(shù)據(jù)模型提供了良好的完整性支持。8.2.3 邏輯數(shù)據(jù)模型 層次模型的缺點如下: 現(xiàn)實世界中
20、很多聯(lián)系是非層次的,如多對多聯(lián)系、一個節(jié)點具有多個雙親等。層次模型表示這類聯(lián)系的方法很笨拙,只能通過引入冗余數(shù)據(jù)(易產(chǎn)生不一致性)或創(chuàng)建非自然的數(shù)據(jù)組織(引入虛擬節(jié)點)來解決。 對插入和刪除操作的限制比較多。 查詢子女節(jié)點必須通過雙親節(jié)點。 由于結(jié)構(gòu)嚴密,層次命令趨于程序化。8.2.3 邏輯數(shù)據(jù)模型 2.網(wǎng)狀模型(Network model) 網(wǎng)狀模型用無向圖來描述實體之間的關(guān)系。 網(wǎng)狀模型的特點如下: 可以有一個以上的節(jié)點無雙親。 至少有一個節(jié)點有多于一個的雙親。圖8-5 網(wǎng)狀模型 可見,網(wǎng)狀模型是層次模型的一般形式。反過來講,層次模型是網(wǎng)狀模型的特殊形式 8.2.3 邏輯數(shù)據(jù)模型 網(wǎng)狀數(shù)據(jù)
21、模型的優(yōu)點如下: 能夠更為直接地描述現(xiàn)實世界,如一個節(jié)點可以有多個雙親。 具有良好的性能,存取效率高。 網(wǎng)狀數(shù)據(jù)模型的缺點如下: 結(jié)構(gòu)比較復(fù)雜,而且隨著應(yīng)用環(huán)境的擴大,數(shù)據(jù)庫的結(jié)構(gòu)變得越來越復(fù)雜,不利于最終用戶掌握。 數(shù)據(jù)庫描述和管理語言(DDL、DML)復(fù)雜,用戶不容易使用。8.2.3 邏輯數(shù)據(jù)模型 3.關(guān)系模型 (1)關(guān)系的數(shù)據(jù)結(jié)構(gòu) 關(guān)系模型以二維表格來表示,簡稱表。二維表由表框架(Frame)及表的元組(Tuple)組成。關(guān)系模型中的基本概念如下: 關(guān)系:一個關(guān)系對應(yīng)一個二維表。一個表由若干行和列組成。 屬性:表中的一列稱為一個“屬性”(又稱字段)。 域:屬性中的數(shù)據(jù)取值范圍稱為“域”。
22、8.2.3 邏輯數(shù)據(jù)模型 元組:表中的一行稱為一個“元組”(又稱為記錄)。每個表由多個同類元組組成。 碼:又稱關(guān)鍵字。二維表中凡能惟一標識元組的最小屬性集稱為該表的“侯選碼”或“候選鍵(Candidate key)” 若一個關(guān)系中有多個侯選碼,則選其中一個作為操作的依據(jù),稱為“主碼”或“主鍵(Primary key)”,也簡稱鍵或碼。 表A中的某屬性集是某表B的主鍵,則稱該屬性集為A的外鍵(Foreign key)或外碼。8.2.3 邏輯數(shù)據(jù)模型 分量:元組中一個屬性的值稱為“分量”。分量是表示不可再分的最小數(shù)據(jù)單位。在關(guān)系元組的分量中允許出現(xiàn)空值(NULL)以表示信息的空缺,空值用于表示未知
23、的值或不可能出現(xiàn)的值。 關(guān)系模式:關(guān)系模式是對關(guān)系的描述。關(guān)系模式包括關(guān)系名和組成該關(guān)系的屬性名。通常記為:關(guān)系名(屬性名1,屬性名2,屬性名N)。屬性名域的映象直接說明了屬性的類型和長度。8.2.3 邏輯數(shù)據(jù)模型 關(guān)系的性質(zhì)如下: 元組個數(shù)有限性:關(guān)系中元組的個數(shù)是有限的。 惟一性:關(guān)系中不允許出現(xiàn)相同的元組,關(guān)系中不允許出現(xiàn)相同的屬性。 次序無關(guān)性:元組間、屬性間的順序分別無關(guān)緊要。 元組分量的原子性:關(guān)系中每一個屬性值都是不可分解的。 分量值域的同一性:關(guān)系屬性的分量具有與該屬性相同的值域。8.2.3 邏輯數(shù)據(jù)模型 關(guān)系數(shù)據(jù)庫與其他數(shù)據(jù)庫相比的優(yōu)點如下: 使用簡便,處理數(shù)據(jù)效率高。 數(shù)據(jù)
24、獨立性高,有較好的一致性和良好的保密性。 數(shù)據(jù)庫的存取不必依賴于索引,可以優(yōu)化。 數(shù)據(jù)結(jié)構(gòu)簡單明了,便于用戶了解和維護。 可以配備多種高級接口。8.2.3 邏輯數(shù)據(jù)模型 關(guān)系數(shù)據(jù)模型的缺點主要是,由于存取路徑對用戶透明,查詢效率往往不如非關(guān)系數(shù)據(jù)模型。因此,為了提高性能,必須對用戶的查詢請求進行優(yōu)化,增加了開發(fā)數(shù)據(jù)庫管理系統(tǒng)的難度。8.2.3 邏輯數(shù)據(jù)模型 (2)關(guān)系操作 關(guān)系模型的數(shù)據(jù)操縱即是建立在關(guān)系上的數(shù)據(jù)操縱,分為兩大部分,即查詢和其它 查詢查詢其它其它選擇 Select增加 Insert投影 Project刪除 Delete連接 Join修改 Update除 Divide并 Unio
25、n交 Intersection差 Difference8.2.3 邏輯數(shù)據(jù)模型 (3)關(guān)系中的數(shù)據(jù)約束 關(guān)系模型允許定義三類數(shù)據(jù)約束。 實體完整性規(guī)則,如規(guī)定關(guān)系中的關(guān)鍵字值不能為空值。 參照完整性規(guī)則,如關(guān)系中每個非空的外關(guān)鍵字值必須與另一關(guān)系中的關(guān)鍵字值相匹配。 用戶根據(jù)數(shù)據(jù)模型提供的完整性約束條件定義自己的完整性規(guī)則,它反映了某一具體應(yīng)用所涉及的數(shù)據(jù)應(yīng)滿足的語義要求。8.3 關(guān)系代數(shù) 關(guān)系數(shù)據(jù)庫系統(tǒng)建立在數(shù)學理論的基礎(chǔ)之上,其中最為具名的是關(guān)系代數(shù)(relational algebra)與關(guān)系演算(relational calculus),數(shù)學上已經(jīng)證明兩者在功能上是等價的。 8.3.1
26、 關(guān)系的形式化定義 8.3.2 關(guān)系代數(shù)運算 8.3.1 關(guān)系的形式化定義 1.笛卡爾積 定義8.1 設(shè)D1,D2,D3,Dn為任意集合,定義Dl,D2,D3,Dn的笛卡爾積: D1D2D3Dn (d1,d2,d3, ,dn) |diDi,i1,2,3,n8.3.1 關(guān)系的形式化定義 每一個元素(d1,d2,d3, ,dn)叫做一個n元組(n-tuple)或簡稱為元組(tuple),每一個值di叫做一個分量(Component),若Di(il,2,n)為有限集,其基數(shù)(Cardinal number)即元素個數(shù)為mi(i=l,2,3,n),則D1D2D3Dn的基數(shù)M為niM1im8.3.1 關(guān)
27、系的形式化定義 笛卡爾積可以用二維表來表示。 例:D1=0,1,D2a,b,c 則:D1D2(0,a),(0,b),(0,c),(1,a),(1,b),(1,c) 8.3.1 關(guān)系的形式化定義 2.關(guān)系的形式化定義 定義8.2 稱D1D2D3Dn的子集為域D1,D2,D3,Dn上的關(guān)系,用R(D1,D2,D3,Dn)表示,稱關(guān)系R為n元關(guān)系。8.3.2 關(guān)系代數(shù)運算運算符運算符含義含義運算符運算符含義含義集合運算符并差交比較運算符 = 大于大于等于小于小于等于等(不等)于專門的關(guān)系運算符 笛卡爾積選擇投影連接除邏輯運算符非與或8.3.2 關(guān)系代數(shù)運算 1.傳統(tǒng)的集合運算 (1)并(Union)
28、 (2)差(Difference) (3)交(Intersection) (4)廣義笛卡爾積(Extended Cartesian Product);8.3.2 關(guān)系代數(shù)運算 2.專門的關(guān)系運算 (1)選擇(Selection) (2)投影(Projection) (3)連接(Join):連接分為:連接、等值連接及自然連接三種。 (4)除(Division)8.3.2 關(guān)系代數(shù)運算 3.需要注意的四個問題 (1)關(guān)系代數(shù)的五個基本操作為:并、差、笛卡爾積、投影和選擇。其它的操作都可以由5個基本的操作導出,因此它們構(gòu)成了關(guān)系代數(shù)完備的操作集。 (2)關(guān)系代數(shù)在使用的過程中對于只涉及選擇、投影、連
29、接的查詢可用表達式。 (3)對于否定操作,一般要用差操作表示。 (4)對于檢索具有全部特征的操作,一般要用除法操作表示,8.4 數(shù)據(jù)庫設(shè)計與管理 8.4.1 數(shù)據(jù)庫設(shè)計概述 8.4.2 數(shù)據(jù)庫設(shè)計的需求分析 8.4.3 數(shù)據(jù)庫概念設(shè)計 8.4.4 數(shù)據(jù)庫的邏輯設(shè)計 8.4.5 數(shù)據(jù)庫的物理設(shè)計8.4.1 數(shù)據(jù)庫設(shè)計概述 在數(shù)據(jù)庫設(shè)計中有兩種方法,一種是以信息需求為主,兼顧處理需求,稱為面向數(shù)據(jù)的方法(data-oriented approach);另一種方法是以處理需求為主,兼顧信息需求,稱為面向過程的方法(process-oriented approach)。由于在系統(tǒng)中穩(wěn)定性高,數(shù)據(jù)已成為
30、系統(tǒng)的核心,因此面向數(shù)據(jù)的設(shè)計方法已成為主流方法。8.4.1 數(shù)據(jù)庫設(shè)計概述 數(shù)據(jù)庫設(shè)計目前一般采用生命周期(life cycle)法,即將整個數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)分解成目標獨立的若干階段,它們是:需求分析階段、概念設(shè)計階段、邏輯設(shè)計階段、物理設(shè)計階段 .需求分析:需求說明書概念設(shè)計:概念數(shù)據(jù)模式邏輯設(shè)計:邏輯數(shù)據(jù)模式(DBMS模型)物理設(shè)計:邏輯數(shù)據(jù)模式(DBMS條件、硬件、OS特性)8.4.2 數(shù)據(jù)庫設(shè)計的需求分析 1.需求分析的任務(wù) 通過對現(xiàn)實世界要處理的對象(組織、部門、企業(yè)等)進行詳細調(diào)查,在充分了解原系統(tǒng)(手工系統(tǒng)或計算機系統(tǒng))運行概況的基礎(chǔ)上,確定新系統(tǒng)的功能。調(diào)查的重點是“數(shù)據(jù)
31、”和“處理”,通過調(diào)查、收集與分析,獲得用戶對數(shù)據(jù)庫的信息需求、處理需求和安全性與完整性需求。在需求分析階段一個重要而困難的任務(wù)是收集將來應(yīng)用所涉及的數(shù)據(jù)。8.4.2 數(shù)據(jù)庫設(shè)計的需求分析 2.需求分析的步驟 需求分析可以按照需求收集、分析整理、評審三個步驟來進行。 3.需求分析的方法 為了準確的了解用戶的實際需求,可以采用以下方法進行需求調(diào)查:跟班作業(yè)、開調(diào)查會、請專人介紹、詢問、設(shè)計調(diào)查表要用戶填寫和查閱記錄。在需求調(diào)查的過程中,往往需要采用上述多種方法相結(jié)合。必須強調(diào)用戶的參與,這是數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計的特點。8.4.2 數(shù)據(jù)庫設(shè)計的需求分析 4.需求分析的結(jié)果 結(jié)果以標準化文檔的形式寫出
32、來,并提交給用戶,征得用戶認可。需求分析的結(jié)果通常以需求說明、數(shù)據(jù)流圖和數(shù)據(jù)字典等方式表達。 (1)數(shù)據(jù)流圖(Data Flow Diagram:DFD) 也稱為數(shù)據(jù)流程圖,是便于用戶理解的系統(tǒng)數(shù)據(jù)流程的圖形表示,在邏輯上能精確描述系統(tǒng)的功能、輸入、輸出和數(shù)據(jù)存儲,表達數(shù)據(jù)和處理的關(guān)系。8.4.2 數(shù)據(jù)庫設(shè)計的需求分析 數(shù)據(jù)流圖一般由以下元素組成: 數(shù)據(jù)流 :數(shù)據(jù)及其流動方向,直線上方標明數(shù)據(jù)流名稱。 數(shù)據(jù)流的源點/終點 :數(shù)據(jù)流的源點和終點,方框內(nèi)標明相應(yīng)的名稱。 處理 :數(shù)據(jù)處理,圓圈內(nèi)標明處理名稱。 文件 :文件和數(shù)據(jù)存儲,在其內(nèi)標明相應(yīng)名稱。 外部實體 :代表系統(tǒng)之外的信息提供者或使用
33、者。8.4.2 數(shù)據(jù)庫設(shè)計的需求分析 (2)數(shù)據(jù)字典(Data Dictionary) 數(shù)據(jù)字典是系統(tǒng)中各類數(shù)據(jù)描述的文檔,它以特定的格式記錄系統(tǒng)中的各種數(shù)據(jù)、數(shù)據(jù)元素以及它們的名字、性質(zhì)、意義及各類約束條件,以及系統(tǒng)中用到的常量、變量、數(shù)組和其他數(shù)據(jù)單位。數(shù)據(jù)字典通常包括數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲和處理過程五個部分。8.4.2 數(shù)據(jù)庫設(shè)計的需求分析 數(shù)據(jù)項 數(shù)據(jù)項是不可再分的數(shù)據(jù)單位。其描述格式通常為: 數(shù)據(jù)項名,數(shù)據(jù)項含義說明,別名,數(shù)據(jù)類型,長度,取值范圍,取值含義,與其它數(shù)據(jù)項的邏輯關(guān)系,數(shù)據(jù)項之間的聯(lián)系 其中,“取值范圍”和“與其它數(shù)據(jù)項的邏輯關(guān)系”(如該數(shù)據(jù)項與其它數(shù)據(jù)項的
34、大小、相等關(guān)系,或等于其他幾個數(shù)據(jù)項之和,之差等關(guān)系)定義了數(shù)據(jù)的完整性約束條件。8.4.2 數(shù)據(jù)庫設(shè)計的需求分析 數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)反映了數(shù)據(jù)之間的組合關(guān)系。一個數(shù)據(jù)結(jié)構(gòu)可以由若干個數(shù)據(jù)項,或由若干個數(shù)據(jù)結(jié)構(gòu),或由若干個數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)組成。其描述格式通常為: 數(shù)據(jù)結(jié)構(gòu)名,含義說明,組成:數(shù)據(jù)項或數(shù)據(jù)結(jié)構(gòu)8.4.2 數(shù)據(jù)庫設(shè)計的需求分析 數(shù)據(jù)流 數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)的傳輸路徑。其描述格式通常為: 數(shù)據(jù)流名,說明,數(shù)據(jù)流來源,數(shù)據(jù)流去向,組成:數(shù)據(jù)結(jié)構(gòu),平均流量,高峰期流量 其中“數(shù)據(jù)流來源”指該數(shù)據(jù)流來自哪個過程,“數(shù)據(jù)流去向”指該數(shù)據(jù)流將到哪個過程去,“平均流量”是指在單位時間(每天、
35、每周、每月等)內(nèi)的傳輸次數(shù),“高峰期流量”是指在高峰時期的數(shù)據(jù)流量。8.4.2 數(shù)據(jù)庫設(shè)計的需求分析 數(shù)據(jù)存儲 數(shù)據(jù)存儲是數(shù)據(jù)結(jié)構(gòu)停留或保存的地方,也是數(shù)據(jù)流的來源和去向之一。它可以是手工文檔和憑證,也可以是計算機文檔。其描述格式通常為: 數(shù)據(jù)存儲名,說明,編號,輸入的數(shù)據(jù)流,輸出的數(shù)據(jù)流,組成:數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)量,存取頻度,存取方式 其中“存取頻度”指每小時或每天或每周存取幾次、每次存取多少數(shù)據(jù)等信息,“存取方式”包括批處理還是聯(lián)機處理、檢索還是更新、順序檢索還是隨機檢索等,“輸入的數(shù)據(jù)流” 要指出數(shù)據(jù)來源,“輸出數(shù)據(jù)流”要指出數(shù)據(jù)去向。 8.4.2 數(shù)據(jù)庫設(shè)計的需求分析 處理過程 處理過程說
36、明數(shù)據(jù)處理的邏輯關(guān)系,即輸入與輸出之間的邏輯關(guān)系。同時,也要說明數(shù)據(jù)處理的觸發(fā)條件、錯誤處理等問題。其描述格式通常為: 處理過程名,說明,輸入:數(shù)據(jù)流,輸出:數(shù)據(jù)流,處理:簡要說明 其中“簡要說明”主要說明該處理過程的功能及處理要求,功能是指該處理過程用來做什么,處理要求處理頻度(單位時間內(nèi)處理多少數(shù)據(jù)量、多少事務(wù)等)要求,響應(yīng)時間要求等。8.4.3 數(shù)據(jù)庫概念設(shè)計 1.數(shù)據(jù)庫概念設(shè)計的目標 概念設(shè)計的目標是產(chǎn)生反映系統(tǒng)信息需求的數(shù)據(jù)庫概念結(jié)構(gòu),即概念模式。在這一階段,設(shè)計人員要從用戶的角度看待數(shù)據(jù)以及數(shù)據(jù)處理的要求和約束,產(chǎn)生一個反映用戶觀點的概念模式,然后再把概念模式轉(zhuǎn)換為邏輯模式。8.4
37、.3 數(shù)據(jù)庫概念設(shè)計 設(shè)計概念結(jié)構(gòu)通常有四類方法: 自頂向下:即首先定義全局概念結(jié)構(gòu)的框架,然后逐步細化。 自底向上: 即首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu)。8.4.3 數(shù)據(jù)庫概念設(shè)計 逐步擴張:首先定義最重要的核心概念結(jié)構(gòu),然后向外擴充,以滾雪球的方式逐步生成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu)。 混合策略: 即將自頂向下和自底向上相結(jié)合,用自頂向下策略設(shè)計一個全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計的各局部概念結(jié)構(gòu)。8.4.3 數(shù)據(jù)庫概念設(shè)計 2.數(shù)據(jù)庫概念設(shè)計的過程 (1)數(shù)據(jù)抽象 (2)局部E-R模型設(shè)計 (3)總體E-R模型設(shè)計 (4)評審8.4.3 數(shù)據(jù)庫概念設(shè)計 各分ER圖之間
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025小區(qū)綠化養(yǎng)護合同范本
- 二零二五年藝術(shù)品投資分期購買合同下載3篇
- 2025-2030年中國甲基丙烯酸市場前景趨勢展望及投資潛力分析報告
- 2025-2030年中國瓶裝水行業(yè)競爭格局及投資前景規(guī)劃研究報告
- 2025-2030年中國物流裝備行業(yè)市場發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025-2030年中國混氣炭黑市場未來發(fā)展狀況及投資規(guī)劃研究報告
- 2025年水果采摘體驗活動運營合同范本3篇
- 二零二五版二手摩托車轉(zhuǎn)讓與專業(yè)檢測與評估服務(wù)協(xié)議3篇
- 二零二五版文化藝術(shù)品搬運與保管合同規(guī)范3篇
- 氫氧化鈣維修保養(yǎng)2025年度合同3篇
- 春節(jié)文化常識單選題100道及答案
- 2024年杭州師范大學附屬醫(yī)院招聘高層次緊缺專業(yè)人才筆試真題
- 制造業(yè)BCM業(yè)務(wù)連續(xù)性管理培訓
- 24年追覓在線測評28題及答案
- TGDNAS 043-2024 成人靜脈中等長度導管置管技術(shù)
- 《陸上風電場工程概算定額》NBT 31010-2019
- 工程建設(shè)項目內(nèi)外關(guān)系協(xié)調(diào)措施
- 招投標法考試試題及答案
- 皮帶輸送機工程施工電氣安裝措施要點
- 藥房(冰柜)溫濕度表
- QJ903.9A-1995航天產(chǎn)品工藝文件管理制度管理用工藝文件編制規(guī)則
評論
0/150
提交評論