數(shù)據(jù)庫基本原理_第1頁
數(shù)據(jù)庫基本原理_第2頁
數(shù)據(jù)庫基本原理_第3頁
數(shù)據(jù)庫基本原理_第4頁
數(shù)據(jù)庫基本原理_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫基本原理第1頁,共73頁,2023年,2月20日,星期五1.1數(shù)據(jù)庫概述數(shù)據(jù)庫技術(shù)產(chǎn)生于20世紀(jì)60年代中期,幾十年來得到了迅速發(fā)展。人們對信息和數(shù)據(jù)的利用和處理已進(jìn)入自動化、網(wǎng)絡(luò)化和社會化階段,如銀行儲蓄、股票交易、資料查詢、氣象預(yù)報、機(jī)票預(yù)定等。這些任務(wù)既需要大量數(shù)據(jù),又要求快速處理并及時得到結(jié)果,是傳統(tǒng)的人工方法不可能完成的。飛速發(fā)展的計算機(jī)技術(shù)使上述大規(guī)模的數(shù)據(jù)處理得以實(shí)現(xiàn)。1.1.1數(shù)據(jù)庫的產(chǎn)生和發(fā)展

第2頁,共73頁,2023年,2月20日,星期五數(shù)據(jù)庫(Database)這個名詞起源于20世紀(jì)50年代。從目前情況看,關(guān)系數(shù)據(jù)庫仍然占絕對的主導(dǎo)地位,并將影響著數(shù)據(jù)庫技術(shù)的發(fā)展。數(shù)據(jù)庫技術(shù)的發(fā)展已經(jīng)歷了4個發(fā)展階段:第3頁,共73頁,2023年,2月20日,星期五1.人工管理數(shù)據(jù)階段的特點(diǎn)(1)數(shù)據(jù)不保存;(2)沒有專用軟件對數(shù)據(jù)進(jìn)行管理;(3)數(shù)據(jù)不共享;(4)數(shù)據(jù)不具有獨(dú)立性。2.文件系統(tǒng)管理階段的特點(diǎn)(1)數(shù)據(jù)可以長期保存;(2)有專用軟件對數(shù)據(jù)進(jìn)行管理;(3)數(shù)據(jù)共享性差、冗余度大;(4)數(shù)據(jù)獨(dú)立性差。第4頁,共73頁,2023年,2月20日,星期五3.數(shù)據(jù)庫系統(tǒng)階段的特點(diǎn)

(1)數(shù)據(jù)結(jié)構(gòu)化;(2)數(shù)據(jù)冗余度??;(3)數(shù)據(jù)共享性好;(4)數(shù)據(jù)獨(dú)立性高;(5)數(shù)據(jù)有統(tǒng)一管理和控制。第5頁,共73頁,2023年,2月20日,星期五4.高級數(shù)據(jù)庫階段

計算機(jī)輔助設(shè)計/制造(CAD/CAM)、計算機(jī)集成制造(CIM)、地理信息系統(tǒng)(GIS)、辦公信息系統(tǒng)(OIS)、計算機(jī)輔助超大規(guī)模集成電路設(shè)計(VLSICAD)等都需要數(shù)據(jù)庫的支持。這些系統(tǒng)在數(shù)據(jù)類型或數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)存儲方面有特殊要求,傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)并不能支持。第6頁,共73頁,2023年,2月20日,星期五1.1.2現(xiàn)實(shí)世界、信息世界、數(shù)據(jù)世界1.現(xiàn)實(shí)世界現(xiàn)實(shí)世界存在著大量的事物。這些事物可以是具體的,也可以是抽象的。各個事物都有表征自己的各種特征。由于考慮問題的不同,同一個事物可能有不同的特征來描述它。每一個事物的全部特征就反映了該事物本身。每一個事物至少有一個特征。第7頁,共73頁,2023年,2月20日,星期五2.信息世界人們觀察各種事物,在大腦中形成抽象概念,這就是信息(Information)。信息世界就是現(xiàn)實(shí)世界的事物在人腦中的抽象表現(xiàn)。第8頁,共73頁,2023年,2月20日,星期五3.數(shù)據(jù)世界數(shù)據(jù)世界就是信息世界中信息的數(shù)據(jù)化。信息和數(shù)據(jù)是緊密相關(guān)的,許多場合將它們看作同義詞。在數(shù)據(jù)世界里,將現(xiàn)實(shí)世界中諸事物凡有規(guī)律的特征都用恰當(dāng)?shù)木幋a表示是非常必要的。編碼的質(zhì)量是影響數(shù)據(jù)庫系統(tǒng)的決定性因素。

第9頁,共73頁,2023年,2月20日,星期五1.1.3數(shù)據(jù)庫基本概念1.數(shù)據(jù)數(shù)據(jù)(Data)就是描述信息的符號,是數(shù)據(jù)庫中存儲的基本對象。數(shù)據(jù)處理(DataProcessing)是將原始數(shù)據(jù)轉(zhuǎn)換成信息的過程。2.數(shù)據(jù)庫數(shù)據(jù)庫(Database,簡稱DB)是在計算機(jī)系統(tǒng)中按照一定數(shù)據(jù)模型組織、存儲和應(yīng)用的相互聯(lián)系的數(shù)據(jù)集合。第10頁,共73頁,2023年,2月20日,星期五數(shù)據(jù)庫技術(shù)(DatabaseTechnique)就是一種對數(shù)據(jù)進(jìn)行加工以得到有用信息的計算機(jī)軟件技術(shù)。3.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,簡稱DBMS)是一種計算機(jī)軟件系統(tǒng)。以數(shù)據(jù)庫管理系統(tǒng)為核心的應(yīng)用系統(tǒng)稱為管理信息系統(tǒng)(ManagementInformationSystem,簡稱MIS)。

第11頁,共73頁,2023年,2月20日,星期五4.數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,簡稱DBS)就是以數(shù)據(jù)庫應(yīng)用為基礎(chǔ)的計算機(jī)系統(tǒng)。

數(shù)據(jù)庫系統(tǒng)不僅包括必須存儲的數(shù)據(jù),還包括相應(yīng)的硬件、軟件和各類工作人員。第12頁,共73頁,2023年,2月20日,星期五1.2數(shù)據(jù)模型數(shù)據(jù)庫中的大量數(shù)據(jù)必須按嚴(yán)格的數(shù)據(jù)模型來組織。數(shù)據(jù)庫中的數(shù)據(jù)是高度結(jié)構(gòu)化的,它不僅反映數(shù)據(jù)本身,而且反映數(shù)據(jù)之間的關(guān)系。數(shù)據(jù)模型就是描述這種關(guān)系的數(shù)據(jù)結(jié)構(gòu)形式。理想的數(shù)據(jù)模型應(yīng)能滿足三方面的要求:一是能比較真實(shí)地描述現(xiàn)實(shí)世界;二是容易被人所理解;三是便于在計算機(jī)上實(shí)現(xiàn)。根據(jù)模型應(yīng)用的不同目的??梢詫⒛P蛣澐譃閮深?,它們分屬于兩個不同的層次。

第13頁,共73頁,2023年,2月20日,星期五概念模型(IdeaModel)是現(xiàn)實(shí)世界到信息世界的抽象,又稱為信息模型。數(shù)據(jù)模型(DataModel)是信息世界到數(shù)據(jù)世界的抽象。數(shù)據(jù)庫領(lǐng)域最常見的數(shù)據(jù)模型有4種:層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο竽P?。其中層次模型和網(wǎng)狀模型統(tǒng)稱為非關(guān)系模型。目前,關(guān)系模型是最常用的數(shù)據(jù)模型。以關(guān)系模型為基礎(chǔ)建立的數(shù)據(jù)庫管理系統(tǒng)稱為關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。第14頁,共73頁,2023年,2月20日,星期五1.2.1

數(shù)據(jù)模型的組成要素數(shù)據(jù)模型通常都是由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束3個要素組成。1.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是所研究的對象類型(objecttype)的集合,用于描述系統(tǒng)的靜態(tài)特征。2.數(shù)據(jù)操作數(shù)據(jù)操作是指數(shù)據(jù)庫中各種對象(型)的實(shí)例(值)允許執(zhí)行的操作的集合,包括操作及有關(guān)的操作規(guī)則,用于描述系統(tǒng)的動態(tài)特征。第15頁,共73頁,2023年,2月20日,星期五3.數(shù)據(jù)約束條件數(shù)據(jù)約束條件是一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和存儲規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效和相容。數(shù)據(jù)模型還應(yīng)該提供定義完整性約束條件的機(jī)制,以反映具體應(yīng)用所涉及的數(shù)據(jù)必須遵守的特定的語義約束條件。第16頁,共73頁,2023年,2月20日,星期五1.2.2

信息世界的主要概念1.實(shí)體實(shí)體(Entity)就是現(xiàn)實(shí)世界中客觀存在并可相互區(qū)分的事物。實(shí)體既可以是看得見摸得著的具體的事物,也可以是抽象的概念或聯(lián)系。例如,某一本書、某一架飛機(jī)、某個學(xué)生等都是實(shí)體。第17頁,共73頁,2023年,2月20日,星期五2.屬性實(shí)體所具有的某一特征稱為屬性(Attribute)。一個實(shí)體由若干個(至少一個)屬性來描述。一個實(shí)體的所有屬性組成實(shí)體本身。例如,學(xué)生實(shí)體可以由學(xué)號、姓名、性別、出生年月日、班級等屬性組成。而(0100001、馮東梅、女、1980/12/26、01電子商務(wù)1)就是一個學(xué)生(實(shí)體)的屬性值。第18頁,共73頁,2023年,2月20日,星期五3.碼唯一標(biāo)識實(shí)體的屬性組稱為碼(Key),通常又稱為關(guān)鍵字。如果實(shí)體有多個碼,則可以選定其中一個碼為主碼(PrimaryKey),通常又稱為主關(guān)鍵字。如果實(shí)體只有一個碼,它就是主碼(主關(guān)鍵字)。第19頁,共73頁,2023年,2月20日,星期五例如,一個學(xué)校里,學(xué)生實(shí)體的學(xué)號是肯定不重復(fù)的。所以學(xué)號可以作為學(xué)生實(shí)體的碼。如果學(xué)生實(shí)體中含有身份證號屬性,則身份證號也是碼,可以在學(xué)號和身份證號中選定一個作為主碼(主關(guān)鍵字)。通常情況下只關(guān)注實(shí)體的主碼,所以,在不會引起混淆時,通常說碼、主碼、關(guān)鍵字或主關(guān)鍵字,含義都相同。4.域?qū)傩缘脑试S取值的集合稱為該屬性的域(Domain)。第20頁,共73頁,2023年,2月20日,星期五例如,學(xué)號的域是{7位數(shù)字}(某校規(guī)定),性別的域是{男、女},班級的域是該校所有班級的集合。5.實(shí)體型用實(shí)體名及其所有屬性名集合來抽象和描述同類實(shí)體稱為實(shí)體型(Entitytype)。例如,學(xué)生(學(xué)號、姓名、性別、出生年月日、班級)就是一個實(shí)體型。第21頁,共73頁,2023年,2月20日,星期五6.實(shí)體集同型實(shí)體的集合稱為實(shí)體集(Entityset)。例如,某個學(xué)校(或某個班級)的全體學(xué)生就是一個實(shí)體集。7.聯(lián)系信息世界的不同實(shí)體集之間和同一實(shí)體集內(nèi)部都可能存在一定的聯(lián)系(Relationship)。第22頁,共73頁,2023年,2月20日,星期五數(shù)據(jù)世界的概念是和信息世界的概念相對應(yīng)的:數(shù)據(jù)表(Datatable)是實(shí)體集的數(shù)據(jù)表示;記錄(Record)是實(shí)體的數(shù)據(jù)表示;數(shù)據(jù)項(Item)是屬性的數(shù)據(jù)表示。記錄由若干數(shù)據(jù)項組成。第23頁,共73頁,2023年,2月20日,星期五1.2.3實(shí)體的聯(lián)系信息世界存在的聯(lián)系有兩種:其一是一個實(shí)體集內(nèi)部的聯(lián)系;其二是不同實(shí)體集之間的聯(lián)系。1.實(shí)體集內(nèi)部的聯(lián)系實(shí)體集內(nèi)部的聯(lián)系通常指組成該實(shí)體的各屬性之間的聯(lián)系。第24頁,共73頁,2023年,2月20日,星期五在表1-1中,不同實(shí)體的學(xué)號都不重復(fù),即學(xué)號與實(shí)體間有一一對應(yīng)關(guān)系。學(xué)號就是學(xué)生情況這個實(shí)體集的關(guān)鍵字。表1-1學(xué)生情況學(xué)號姓名性別出生年月日家庭所在地家庭人均月收入0100001馮東梅女1980-12-26北京1,1000100002章蕾女1979-02-18上海3500100007聞維祥男1979-02-24天津4500100008黎念真女1979-08-19重慶4000100009鐘開才男1978-08-08廣東4000100117江介敏女1978-06-08湖北600第25頁,共73頁,2023年,2月20日,星期五表1-2選課及成績學(xué)號課程號成績0100001A002850100001B001920100001B022780100001C032850100001D012780100002A002900100002B001800100002B022980100002C032920100002D01289在表1-2中,不同實(shí)體的學(xué)號(或課程號、或成績)都有可能重復(fù)。但是,不同實(shí)體的學(xué)號加課程號則不可能重復(fù)。所以,學(xué)號和課程號這兩個屬性組成的屬性組是選課及成績這個關(guān)系的關(guān)鍵字。

第26頁,共73頁,2023年,2月20日,星期五2.實(shí)體集之間的聯(lián)系

對于兩個不同的實(shí)體集A和B,它們之間的聯(lián)系通常有以下三種方式:

一對一聯(lián)系(1:1)一對多聯(lián)系(1:n)多對多聯(lián)系(m:n)第27頁,共73頁,2023年,2月20日,星期五一對一聯(lián)系是一對多聯(lián)系的特例,一對多聯(lián)系又是多對多聯(lián)系的特例。多對多聯(lián)系直接處理起來很困難,通常是將多對多聯(lián)系轉(zhuǎn)化為兩個一對多聯(lián)系來處理。概念模型和各種數(shù)據(jù)模型均不支持多對多聯(lián)系,只支持一對一聯(lián)系和一對多聯(lián)系。第28頁,共73頁,2023年,2月20日,星期五同一實(shí)體集內(nèi)的各實(shí)體之間也可以存在一對一、一對多或多對多聯(lián)系。例如,學(xué)生實(shí)體集內(nèi)部存在“領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)”的聯(lián)系,即某一學(xué)生(班長)“領(lǐng)導(dǎo)”多名(全班)學(xué)生,而一個學(xué)生僅被一個學(xué)生(班長)“領(lǐng)導(dǎo)”,這就是一對多聯(lián)系。在復(fù)雜問題中,兩個以上的實(shí)體集之間也往往存在一對一、一對多或多對多聯(lián)系。第29頁,共73頁,2023年,2月20日,星期五1.2.4概念模型對于具體的實(shí)際問題,建立正確合理的概念模型是建立數(shù)據(jù)模型的前提。一個好的概念模型應(yīng)該考慮和解決的問題是:

(1)

實(shí)際問題需要哪些實(shí)體集以及各個實(shí)體需要哪些屬性;

(2)

這些實(shí)體集內(nèi)部和實(shí)體集之間有怎樣的聯(lián)系;

(3)如果存在多對多聯(lián)系,如何轉(zhuǎn)化為一對多聯(lián)系。第30頁,共73頁,2023年,2月20日,星期五表示概念模型最常用的是實(shí)體―聯(lián)系方法(entity-relationshipapproach)。該方法用E―R圖來描述。在E―R圖中,實(shí)體型、屬性和聯(lián)系的表示方法如下:

(1)實(shí)體型:用矩形表示,矩形框內(nèi)寫實(shí)體名;

第31頁,共73頁,2023年,2月20日,星期五

(2)

屬性:用橢圓表示,并用無向線段與相應(yīng)的實(shí)體連接;

(3)聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向線段與有關(guān)的實(shí)體連接。同時在無向線段旁標(biāo)上聯(lián)系的類型(1:1,1:n或m:n)。聯(lián)系本身也是一種實(shí)體型,也可以有屬性。如果一個聯(lián)系有屬性,也用無向線段將屬性與該聯(lián)系連接。第32頁,共73頁,2023年,2月20日,星期五(a)1:1聯(lián)系(b)1:n聯(lián)系(c)m:n聯(lián)系兩個實(shí)體之間的三類聯(lián)系

第33頁,共73頁,2023年,2月20日,星期五學(xué)生實(shí)體、課程實(shí)體及其屬性將多對多聯(lián)系轉(zhuǎn)化為一對多聯(lián)系的一般方法是:增加一個新的實(shí)體集,并且這個新的實(shí)體集和原來的兩個實(shí)體集之間都是一對多聯(lián)系。第34頁,共73頁,2023年,2月20日,星期五學(xué)生學(xué)習(xí)成績管理概念模型第35頁,共73頁,2023年,2月20日,星期五這個例子也給出了將多對多聯(lián)系轉(zhuǎn)化為一對多聯(lián)系的一般方法,這就是:增加一個新的實(shí)體集,并且這個新的實(shí)體集和原來的兩個實(shí)體集之間都是一對多聯(lián)系。

第36頁,共73頁,2023年,2月20日,星期五1.2.5層次模型層次模型(HierarchicalModel)用樹形結(jié)構(gòu)表示各類實(shí)體以及實(shí)體間的聯(lián)系。從樹的觀點(diǎn)看,層次模型滿足以下兩個條件:

(1)

有且僅有一個結(jié)點(diǎn)無雙親結(jié)點(diǎn),稱之為根結(jié)點(diǎn)(簡稱根);

(2)

根以外的其他結(jié)點(diǎn)有且僅有一個雙親結(jié)點(diǎn)。層次模型只能反映實(shí)體之間一對多的關(guān)系。第37頁,共73頁,2023年,2月20日,星期五層次模型示意圖下圖所示是一個層次模型的典型。第38頁,共73頁,2023年,2月20日,星期五1.2.6網(wǎng)狀模型網(wǎng)狀模型(NetworkModel)是比層次模型更具普遍性的一種結(jié)構(gòu)。它去掉了層次模型的兩個限制條件,允許有一個以上的結(jié)點(diǎn)無雙親結(jié)點(diǎn),允許結(jié)點(diǎn)可以有多個雙親結(jié)點(diǎn),此外它還允許兩個結(jié)點(diǎn)之間有多種聯(lián)系(稱之為復(fù)合聯(lián)系)。第39頁,共73頁,2023年,2月20日,星期五網(wǎng)狀模型有如下優(yōu)點(diǎn):

(1)可以直接描述包括多對多在內(nèi)的更復(fù)雜的關(guān)系。

(2)具有良好的性能,存取效率較高。網(wǎng)狀模型也有缺點(diǎn):

(1)對計算機(jī)的硬件和軟件環(huán)境要求較高。

(2)數(shù)據(jù)庫的獨(dú)立性較差。

(3)操作比較復(fù)雜。第40頁,共73頁,2023年,2月20日,星期五下圖表示零部件的采購——使用關(guān)系,這是一個典型的網(wǎng)狀模型。第41頁,共73頁,2023年,2月20日,星期五下圖表示1.2.4介紹的學(xué)生選修關(guān)系這個網(wǎng)狀模型。

第42頁,共73頁,2023年,2月20日,星期五1.2.7關(guān)系模型關(guān)系模型(RelationalModel)中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。表1-1所示的學(xué)生情況就是一個關(guān)系模型。關(guān)系模型的主要概念關(guān)系(relation):關(guān)系模型中表示數(shù)據(jù)的整個一張二維表就是關(guān)系。元組(Tuple):二維表中的每一行即為一個元組,對應(yīng)概念模型的一個實(shí)體。屬性(Attribute):二維表中的每一列即為一個屬性,對應(yīng)概念模型的一個屬性。第43頁,共73頁,2023年,2月20日,星期五主碼(Key):二維表中唯一標(biāo)識元組的某個屬性組稱為該關(guān)系的主碼,對應(yīng)概念模型的碼。域(Domain):二維表中任一屬性的取值范圍稱為該屬性的域,對應(yīng)概念模型的域。分量:元組中的每一個屬性值稱為元組的分量。關(guān)系模式(Relationschema):對關(guān)系的描述稱為關(guān)系模式,通常用關(guān)系名及其所有屬性名集合來表示,類似概念模型中實(shí)體型的表示方法。第44頁,共73頁,2023年,2月20日,星期五整個表1-1就是一個關(guān)系。表中的每一行都是一個元組。學(xué)號、姓名、性別等每一列都是屬性。學(xué)號是這個關(guān)系的碼。{男、女}、正確的日期集合分別是性別和出生年月日的域?!?100001’、‘馮東梅’、‘女’、‘1980-12-26’、‘北京’和‘1100’等都是分量。而學(xué)生(學(xué)號,姓名,性別,出生年月日,家庭所在地,家庭人均月收入)是這個關(guān)系的關(guān)系模式。

第45頁,共73頁,2023年,2月20日,星期五關(guān)系模型既可以反映屬性之間一對多的關(guān)系,也可以反映屬性之間多對多的關(guān)系。關(guān)系模型具有以下特點(diǎn):

(1)

數(shù)據(jù)結(jié)構(gòu)簡單,概念清楚;

(2)

能夠直接反映實(shí)體之間一對一、一對多和多對多關(guān)系;

(3)

通過公共屬性就可以建立表與表之間的聯(lián)系,從而就建立了實(shí)體之間的聯(lián)系;

(4)

具有嚴(yán)格的理論基礎(chǔ)。第46頁,共73頁,2023年,2月20日,星期五1.2.8面向?qū)ο竽P兔嫦驅(qū)ο竽P停∣bjectOrientedModel)是數(shù)據(jù)庫系統(tǒng)中最近出現(xiàn)的一種模型。面向?qū)ο竽P椭凶罨镜母拍钍菍ο螅╫bject)和類(class)。面向?qū)ο竽P褪钦诎l(fā)展中的模型,具有廣闊的前途和生命力。第47頁,共73頁,2023年,2月20日,星期五1.3關(guān)系的完整性關(guān)系模型允許定義三類完整性:實(shí)體完整性、參照完整性和用戶定義的完整性。實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,被稱為關(guān)系的兩個不變性,由關(guān)系系統(tǒng)自動支持。這里先列出3個例題,以便后面引用。例1-1

學(xué)生實(shí)體和專業(yè)實(shí)體可以用下面的關(guān)系表示(其中主碼用紅色體字標(biāo)識): 學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)

專業(yè)(專業(yè)號,專業(yè)名)第48頁,共73頁,2023年,2月20日,星期五例1-2

學(xué)生實(shí)體、課程實(shí)體、學(xué)生與課程之間的選課及成績實(shí)體可以用如下3個關(guān)系來表示: 學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)

課程(課程號,課程名,學(xué)分)

選課及成績(學(xué)號,課程號,成績)例1-3

另一個學(xué)生實(shí)體的關(guān)系是: 學(xué)生2(學(xué)號,姓名,性別,專業(yè)號,年齡,班長學(xué)號)第49頁,共73頁,2023年,2月20日,星期五1.3.1實(shí)體完整性一個基本關(guān)系通常對應(yīng)現(xiàn)實(shí)世界的一個實(shí)體集。例如,學(xué)生關(guān)系對應(yīng)學(xué)生的集合。現(xiàn)實(shí)世界的實(shí)體是可區(qū)分的,即它們具有某種唯一性標(biāo)識。相應(yīng)地,關(guān)系模型中以主碼作為唯一性標(biāo)識。主碼中的屬性即主屬性不能取空值。所謂空值就是“不知道”或“無意義”的值。如果主屬性取空值,就說明存在某個不可標(biāo)識的實(shí)體,即存在不可區(qū)分的實(shí)體,這與現(xiàn)實(shí)世界的應(yīng)用環(huán)境相矛盾,因此這個實(shí)體一定不是一個完整的實(shí)體。第50頁,共73頁,2023年,2月20日,星期五實(shí)體完整性(EntityIntegrity)規(guī)則:若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。在例1-1的學(xué)生關(guān)系中,學(xué)號為主碼,則學(xué)號不能取空值。實(shí)體完整性規(guī)則規(guī)定基本關(guān)系的所有主屬性都不能取空值,而不僅是主碼整體不能取空值。在例1-2的選課及成績關(guān)系中,學(xué)號+課程號為主碼,則學(xué)號和課程號兩個屬性都不能取空值。第51頁,共73頁,2023年,2月20日,星期五1.3.2參照完整性現(xiàn)實(shí)世界中的實(shí)體之間往往存在某種聯(lián)系,在關(guān)系模型中實(shí)體及實(shí)體間的聯(lián)系都是用關(guān)系來描述的。這樣就自然存在著關(guān)系與關(guān)系間的引用。例1-1的兩個關(guān)系之間存在著屬性的引用,即學(xué)生關(guān)系引用了專業(yè)關(guān)系的主碼“專業(yè)號”。顯然,學(xué)生關(guān)系中的專業(yè)號值,必須是確實(shí)存在的專業(yè)的“專業(yè)號”,即專業(yè)關(guān)系中有該專業(yè)的記錄。這就是說,學(xué)生關(guān)系中的某個屬性的取值需要參照專業(yè)關(guān)系對應(yīng)屬性的取值。第52頁,共73頁,2023年,2月20日,星期五例1-2的3個關(guān)系之間也存在著屬性的引用,即選課及成績關(guān)系引用了學(xué)生關(guān)系的主碼“學(xué)號”和課程關(guān)系的主碼“課程號”。選課及成績關(guān)系中的學(xué)號值必須是確實(shí)存在的學(xué)生的“學(xué)號”,即學(xué)生關(guān)系中有該學(xué)生的記錄;選課及成績關(guān)系中的課程號值,也必須是確實(shí)存在的課程的“課程號”,即課程關(guān)系中有該課程的記錄。選課及成績關(guān)系中某些屬性的取值需要參照其他關(guān)系對應(yīng)屬性的取值。第53頁,共73頁,2023年,2月20日,星期五不僅兩個或兩個以上的關(guān)系間可以存在引用關(guān)系,同一關(guān)系內(nèi)部屬性間也可能存在引用關(guān)系。

在例1-3的關(guān)系中,“學(xué)號”屬性是主碼,“班長學(xué)號”屬性表示該學(xué)生所在班級的班長的學(xué)號,班長必須是這個班的學(xué)生,即“班長學(xué)號”必須是確實(shí)存在的學(xué)生的“學(xué)號”。第54頁,共73頁,2023年,2月20日,星期五設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(guān)系R的碼,如果F與基本關(guān)系S的主碼K相對應(yīng),則稱F是基本關(guān)系R的外碼(Foreignkey),并稱基本關(guān)系R為參照關(guān)系(Referencingrelation),基本關(guān)系S為被參照關(guān)系(Referencedrelation)或目標(biāo)關(guān)系(Targetrelation)。關(guān)系R和S不一定是不同的關(guān)系。目標(biāo)關(guān)系S的主碼Ks和參照關(guān)系R的外碼F必須定義在同一個(或一組)域上。

第55頁,共73頁,2023年,2月20日,星期五下圖清楚地表達(dá)了例1-1、例1-2和例1-3的參照關(guān)系。

第56頁,共73頁,2023年,2月20日,星期五參照完整性規(guī)則就是定義外碼與主碼之間的引用規(guī)則。參照完整性(ReferentialIntegrity)

規(guī)則:若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對于R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值);或者等于S中某個元組的主碼值。第57頁,共73頁,2023年,2月20日,星期五對于例1-1,學(xué)生關(guān)系中每個元組的專業(yè)號屬性只能取下面兩類值:空值,表示尚未給該學(xué)生確定所學(xué)專業(yè);非空值,這時該值必須是專業(yè)關(guān)系中某個元組的專業(yè)號值,表示該學(xué)生不可能分配到一個不存在的專業(yè)中學(xué)習(xí)。即被參照關(guān)系“專業(yè)”中一定存在一個元組,它的主碼值等于該參照關(guān)系“學(xué)生”中的外碼值。第58頁,共73頁,2023年,2月20日,星期五對于例1-2中的選課及成績關(guān)系,按參照完整性規(guī)則,學(xué)號和課程號屬性也可以取兩類值:空值或目標(biāo)關(guān)系中已經(jīng)存在的值。但由于學(xué)號和課程號是選課及成績關(guān)系中的主屬性,按照實(shí)體完整性規(guī)則,它們均不能取空值。所以選課及成績關(guān)系中的學(xué)號和課程號屬性實(shí)際上只能取相應(yīng)被參照關(guān)系中已經(jīng)存在的主碼值。第59頁,共73頁,2023年,2月20日,星期五參照完整性規(guī)則中,R與S可以是同一個關(guān)系。 例如,對于例1-3,按照參照完整性規(guī)則,班長屬性值可以取兩類值:空值,表示該學(xué)生所在班級尚未選出班長;非空值,這時該值必須是本關(guān)系中某個元組的學(xué)號值。第60頁,共73頁,2023年,2月20日,星期五1.3.3用戶定義的完整性實(shí)體完整性和參照性適用于任何關(guān)系數(shù)據(jù)庫系統(tǒng)。除此之外,不同的關(guān)系數(shù)據(jù)庫系統(tǒng)根據(jù)其應(yīng)用環(huán)境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性就是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的實(shí)際要求,即取值的限制范圍。第61頁,共73頁,2023年,2月20日,星期五例如,某個非主屬性不能取空值(如:姓名)、某個屬性的取值范圍限定在0~100之間(如:成績)、某個屬性只能取幾個特定的值(如:性別)等。關(guān)系模型應(yīng)提供定義和檢驗這類完整性機(jī)制,以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應(yīng)用程序承擔(dān)這一功能。第62頁,共73頁,2023年,2月20日,星期五1.4關(guān)系模型的規(guī)范化用關(guān)系模型描述現(xiàn)實(shí)世界直觀、明了。但是,要做到用關(guān)系模型很好地描述現(xiàn)實(shí)世界卻不是一件容易的事情。設(shè)計一個好的數(shù)據(jù)庫是一項極其復(fù)雜的工作,規(guī)范化理論就是設(shè)計過程中的一個非常有用的輔助工具。一般地說,關(guān)系模型的范式級別越高,設(shè)計的數(shù)據(jù)結(jié)構(gòu)質(zhì)量越高。第一范式是關(guān)系模型規(guī)范化最基本的要求,第二范式的級別比第一范式高,第三范式的級別又比第二范式高。第63頁,共73頁,2023年,2月20日,星期五1.4.1第一范式如果關(guān)系模式R的每一個關(guān)系的屬性值都是不可分的原子值,則稱R屬于第一范式(1NF)。屬于1NF的關(guān)系稱為規(guī)范化關(guān)系,不屬于1NF的關(guān)系稱為非規(guī)范化關(guān)系。不難驗證,表1-1和表1-2所示的實(shí)體集都是屬于1NF的規(guī)范化關(guān)系。但是實(shí)際問題中的報表結(jié)構(gòu)有許多是非規(guī)范化的。例如,下頁表1-3是不規(guī)范的。從規(guī)范化的關(guān)系模型的數(shù)據(jù)庫是完全能夠生成象表1-3這樣結(jié)構(gòu)的報表的。第64頁,共73頁,2023年,2月20日,星期五表1-3指導(dǎo)研究生導(dǎo)師姓名專業(yè)學(xué)生

研究生1研究生2林知榮網(wǎng)絡(luò)系統(tǒng)田園劉剛周銀華數(shù)據(jù)庫技術(shù)曲彩燕

黎祥數(shù)據(jù)庫技術(shù)邱羅耕方萍實(shí)際問題中的報表結(jié)構(gòu)有許多是非規(guī)范化的。例如,表1-3是不規(guī)范的。不能依這樣的結(jié)構(gòu)設(shè)計關(guān)系模型,必須將這樣的表需要的數(shù)據(jù)(以及其它數(shù)據(jù))進(jìn)行處理,使之規(guī)范化。從規(guī)范化的關(guān)系模型的數(shù)據(jù)庫是完全能夠生成象表1-3這樣結(jié)構(gòu)的報表的。第65頁,共73頁,2023年,2月20日,星期五表1-4教師任課教工編號姓名課程號課程名稱10013羅開才C031計算機(jī)應(yīng)用基礎(chǔ)10013羅開才C032數(shù)據(jù)庫原理及應(yīng)用10013羅開才C043操作系統(tǒng)10036劉霞C031計算機(jī)應(yīng)用基礎(chǔ)10036劉霞C032數(shù)據(jù)庫原理及應(yīng)用10036劉霞C051軟件工程10038歐陽華D001統(tǒng)計原理10038歐陽華D012經(jīng)濟(jì)法基礎(chǔ)一個關(guān)系應(yīng)滿足1NF是最起碼的條件。然而,僅滿足1NF的關(guān)系還可能存在一些問題。表1-4是滿足1NF的一個具體實(shí)例,但在操作中可能出現(xiàn)如下的一些問題。

(1)插入異常

(2)刪除異常

(3)數(shù)據(jù)冗余第66頁,共73頁,2023年,2月20日,星期五1.4.2第二范式如果關(guān)系模式R屬于1NF,并且每個非碼屬性都完全依賴于各個碼,則稱R屬于第二范式(2NF)。如果某個數(shù)據(jù)庫模式中的每個關(guān)系模式都是2NF,則這個數(shù)據(jù)庫模式稱為2NF的數(shù)據(jù)庫模式。下頁表1-5所示的關(guān)系模式R(學(xué)號,系名,系辦地址,課程號,成績),主碼為學(xué)號+課程號。某個學(xué)生某門課程的成績(一個非碼屬性)是完全依賴于他的學(xué)號和該課程的代號(主碼)的。也就是說,知道了一個學(xué)生的學(xué)號和他參加考試的課程號(兩者缺一不可),就知道了他這一門課的成績。第67頁,共73頁,2023年,2月20日,星期五表1-5關(guān)系R學(xué)號系

名系辦地址課程號成績0100001經(jīng)濟(jì)管理系經(jīng)管大樓A002850100001經(jīng)濟(jì)管理系經(jīng)管大樓B001920100001經(jīng)濟(jì)管理系經(jīng)管大樓B022780100001經(jīng)濟(jì)管理系經(jīng)管大樓C032850100001經(jīng)濟(jì)管理系經(jīng)管大樓D012780100002經(jīng)濟(jì)管理系經(jīng)管大樓A002900100002經(jīng)濟(jì)管理系經(jīng)管大樓B001800100002經(jīng)濟(jì)管理系經(jīng)管大樓B022980100002經(jīng)濟(jì)管理系經(jīng)管大樓C032920100002經(jīng)濟(jì)管理系經(jīng)管大樓D012890100096電子工程系電子大樓A002800100096電子工程系電子大樓B001750100096電子工程系電子大樓D001450100096電子工程系電子大樓D01228第68頁,共73頁,2023年,2月20日,星期五他所在的系名(另一非碼屬性)實(shí)際上僅完全依賴于他的學(xué)號(主碼中的一個屬性),與課程代號(主碼中的另一個屬性)無關(guān)。也就是說,只要知道了一個學(xué)生的學(xué)號(并不需要知道課程號),就知道了他所在的系名和系辦地址。這個關(guān)系模式不屬于2NF(僅屬于1NF)。如果將R分解為兩個關(guān)系模式R1(學(xué)號,系名,系辦地址)和R2

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論