




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
教案(課時數(shù):2)章節(jié)標(biāo)題:第一章理解數(shù)據(jù)庫1.1什么是數(shù)據(jù)1.2數(shù)據(jù)描述教學(xué)目的:了解學(xué)習(xí)數(shù)據(jù)庫的作用及本學(xué)期學(xué)習(xí)的內(nèi)容,對數(shù)據(jù)庫有一定的認(rèn)識,由淺入深的引入課程的內(nèi)容教學(xué)難點:數(shù)據(jù)世界中數(shù)據(jù)的描述教學(xué)重點:數(shù)據(jù)的定義授課方法:理論授課教案類別:新授課√實驗課習(xí)題課復(fù)習(xí)提問復(fù)問內(nèi)容學(xué)生姓名成績作業(yè)及預(yù)習(xí)要求第一章理解數(shù)據(jù)庫1.1什么是數(shù)據(jù)第一章理解數(shù)據(jù)庫1.2數(shù)據(jù)描述教學(xué)后記1、學(xué)生提出的疑難問題紀(jì)錄:實體和屬性如何區(qū)分?2、對本課教學(xué)的體會及改進辦法:理論授課比較枯燥,在概念介紹時多加實例的說明
組織教學(xué):課程介紹:數(shù)據(jù)庫是數(shù)據(jù)管理的最新技術(shù),是計算機科學(xué)的重要分支。《數(shù)據(jù)庫原理及應(yīng)用》主要討論數(shù)據(jù)庫系統(tǒng)的基本概念、基本原理、基本方法以及有關(guān)的應(yīng)用。主要內(nèi)容包括:數(shù)據(jù)庫系統(tǒng)的組成、關(guān)系數(shù)據(jù)庫、數(shù)據(jù)庫設(shè)計等。本課程的任務(wù)是通過各個教學(xué)環(huán)節(jié),運用各種教學(xué)手段和方法,使學(xué)生在掌握數(shù)據(jù)模型、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫語言及數(shù)據(jù)庫設(shè)計理論等基本理論知識的基礎(chǔ)上,逐步具有開發(fā)和設(shè)計數(shù)據(jù)庫的能力。要求:1、上課認(rèn)真聽講2、作業(yè)認(rèn)真完成3、做好實驗預(yù)習(xí)報告4、做好實驗總結(jié)新授課程:理解數(shù)據(jù)庫數(shù)據(jù)庫的作用:例如,超市商品的管理、銀行帳戶的管理、網(wǎng)上招生管理等等?!?.1什么是數(shù)據(jù)一、信息與數(shù)據(jù)1、信息(Information):信息就是對各種事物的存在方式、運動狀態(tài)和相互聯(lián)系特征的一種表達和陳述,是自然界、人類社會和人類思維活動普遍存在的一切物質(zhì)和事物的屬性,它存在于人們的周圍。信息的特點:(1)知識性(2)有用性(3)實效性(4)客觀性(5)傳輸性(6)共享性2、數(shù)據(jù)(Data):數(shù)據(jù)是用來記錄信息的可識別的符號,是信息的具體表現(xiàn)形式。表示客觀事物的特性和特征。數(shù)據(jù)實際上就是描述事物的符號記錄。數(shù)據(jù)用型和值來表示,數(shù)據(jù)的型是指數(shù)據(jù)內(nèi)容存儲在媒體上的具體形式;值是指所描述的客觀事物的具體特性??梢远喾N不同的數(shù)據(jù)形式表示同一信息,信息不隨數(shù)據(jù)形式的不同而改變。例如文字、圖形、圖象、聲音……,這些都是數(shù)據(jù)。數(shù)據(jù)與其語義是不可分的。例如:學(xué)生檔案中的學(xué)生記錄:(李明,男,1972,江蘇,計算機系,1990)數(shù)據(jù)的形式不能完全表達其內(nèi)容數(shù)據(jù)的解釋語義:學(xué)生姓名、性別、出生年月、籍貫、所在系別、入學(xué)時間解釋:李明是個大學(xué)生,1972年出生,江蘇人,1990年考入計算機系二、數(shù)據(jù)處理是將數(shù)據(jù)轉(zhuǎn)換成信息的過程。內(nèi)容包括對數(shù)據(jù)進行收集、組織、整理、加工、存儲和傳播等。包括三個方面:數(shù)據(jù)管理、數(shù)據(jù)加工、數(shù)據(jù)傳播1.2數(shù)據(jù)描述一、現(xiàn)實世界現(xiàn)實世界是存在于人們頭腦之外的客觀世界?,F(xiàn)實世界存在各種事物,事物與事物之間存在聯(lián)系,這種聯(lián)系是由事物本身的性質(zhì)決定的。例如,學(xué)校中有教師、學(xué)生、課程,教師為學(xué)生授課,學(xué)生選修課程并取得成績;圖書館中有圖書、管理員和讀者,讀者借閱圖書,管理員對圖書和讀者進行管理等。二、信息世界信息世界是現(xiàn)實世界在人們頭腦中的反映,人們把它用文字或符號記載下來。1.實體(Entity)客觀存在并且可以相互區(qū)別的事物稱為實體。實體可以是具體的事物,也可以是抽象的事件。如一個學(xué)生、一本圖書等屬于實際事物;教師的授課、借閱圖書、比賽等活動是比較抽象的事件。2.屬性(Attribute)描述實體的特性稱為屬性。一個實體可以用若干個屬性來描述,如學(xué)生實體由學(xué)號、姓名、性別、出生日期等若干個屬性組成。實體的屬性用型(Type)和值(Value)來表示,例如,學(xué)生是一個實體,學(xué)生姓名、學(xué)號和性別等是屬性的型,也稱屬性名,而具體的學(xué)生姓名如“張三、李四”、具體的學(xué)生學(xué)號如“2002010101”、描述性別的“男、女”等是屬性的值。3.碼(Key)唯一標(biāo)識實體的屬性或?qū)傩缘慕M合稱為碼。如學(xué)生的學(xué)號是學(xué)生實體的碼。4.域(Domain)屬性的取值范圍稱為該屬性的域。例如學(xué)號的域為10位整數(shù),姓名的域為字符串集合,年齡的域為小于28的整數(shù),性別的域為男、女等。5.實體型(EntityType)具有相同屬性的實體必然具有共同的特征和性質(zhì),用實體名及其屬性名的集合來抽象和刻畫同類實體,稱為實體型。例如,學(xué)生(學(xué)號,姓名,性別,出生日期,系)就是一個實體型。6.實體集(EntitySet)同類實體的集合稱為實體集。例如全體學(xué)生、一批圖書等。7.聯(lián)系(Relationship)實體內(nèi)部的聯(lián)系通常是指組成實體的各屬性之間的聯(lián)系;實體之間的聯(lián)系通常是指不同實體集之間的聯(lián)系。兩個實體型之間的聯(lián)系可以分為3類。1)一對一聯(lián)系(One-to-OneRelationship)如果對于實體集A中的每一個實體,實體集B中至多存在一個實體與之聯(lián)系;反之亦然,則稱實體集A與實體集B之間存在一對一聯(lián)系,記作1∶1。例如,學(xué)校中一個班級只有一個正班長,而一個班長只在一個班中任職,則班級與班長之間存在一對一聯(lián)系;電影院中觀眾與座位之間、乘車旅客與車票之間等都存在一對一的聯(lián)系。2)一對多聯(lián)系(One-to-ManyRelationship)如果對于實體集A中的每一個實體,實體集B中存在多個實體與之聯(lián)系;反之,對于實體集B中的每一個實體,實體集A中至多只存在一個實體與之聯(lián)系,則稱實體集A與實體集B之間存在一對多的聯(lián)系,記作1∶n。例如,一個班里有很多學(xué)生,一個學(xué)生只能在一個班里注冊,則班級與學(xué)生之間存在一對多聯(lián)系;一個部門有許多職工,而一個職工只能在一個部門就職(不存在兼職情況),部門和職工之間存在一對多聯(lián)系。3)多對多聯(lián)系(Many-to-ManyRelationship)如果對于實體集A中的每一個實體,實體集B中存在多個實體與之聯(lián)系;反之,對于實體集B中的每一個實體,實體集A中也存在多個實體與之聯(lián)系,則稱實體集A與實體集B之間存在多對多聯(lián)系,記作m∶n。例如,一個學(xué)生可以選修多門課程,一門課程可同時由多個學(xué)生選修,則課程和學(xué)生之間存在多對多聯(lián)系;一個藥廠可生產(chǎn)多種藥品,一種藥品可由多個藥廠生產(chǎn),則藥廠和藥品之間存在多對多聯(lián)系。例如,對于課程、教師和參考書3個實體型,如果一門課程可以有若干位教師講授,使用若干本參考書,而每一位教師只講授一門課程,每一本參考書只供一門課程使用,則課程與教師、參考書之間的聯(lián)系是一對多的。在兩個以上的多實體集之間,當(dāng)一個實體集與其他實體集之間均存在多對多聯(lián)系而其他實體集之間沒有聯(lián)系時,這種聯(lián)系稱為多實體集間的多對多的聯(lián)系。例如,有3個實體集:供應(yīng)商、項目、零件,一個供應(yīng)商可以供給多個項目多種零件,而每個項目可以使用多個供應(yīng)商供應(yīng)的零件,每種零件可由不同的供應(yīng)商供給,可以看出供應(yīng)商、項目、零件三者之間存在多對多的聯(lián)系。同一實體集內(nèi)部的各實體也可以存在一對一、一對多、多對多的聯(lián)系。例如,職工實體集內(nèi)部具有領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)的聯(lián)系,即某一職工(干部)“領(lǐng)導(dǎo)”若干名職工,而一個職工僅被另外一個職工直接領(lǐng)導(dǎo),因此這是一對多的聯(lián)系。三、數(shù)據(jù)世界數(shù)據(jù)世界又稱機器世界。信息世界的信息在機器世界中以數(shù)據(jù)形式存儲,在這里,每一個實體用記錄表示,相應(yīng)于實體的屬性用數(shù)據(jù)項(又稱字段)來表示,現(xiàn)實世界中的事物及其聯(lián)系用數(shù)據(jù)模型來表示。為了把現(xiàn)實世界中的具體事物抽象、組織為某一數(shù)據(jù)庫管理系統(tǒng)(DBMS)支持的數(shù)據(jù)模型,人們常常首先將現(xiàn)實世界抽象為信息世界轉(zhuǎn)換為機器世界。把現(xiàn)實世界中的客觀對象抽象為某一種信息結(jié)構(gòu),這種信息結(jié)構(gòu)不依賴于具體的計算機系統(tǒng),不是某一個數(shù)據(jù)庫管理系統(tǒng)(DBMS)支持的數(shù)據(jù)模型,而是概念級的模型,然后再把概念模型轉(zhuǎn)換為計算機上某一數(shù)據(jù)庫管理系統(tǒng)(DBMS)支持的數(shù)據(jù)模型。小結(jié):信息、數(shù)據(jù)、數(shù)據(jù)處理、數(shù)據(jù)的三個世界、信息世界中與數(shù)據(jù)庫相關(guān)的術(shù)語作業(yè):課上概念總結(jié)(作業(yè)本上)、課后相關(guān)習(xí)題(做到書上)預(yù)習(xí):1.3教案(課時數(shù):2)章節(jié)標(biāo)題:第一章理解數(shù)據(jù)庫1.3數(shù)據(jù)模型教學(xué)目的:了解數(shù)據(jù)模型的分類認(rèn)識概念模型掌握數(shù)據(jù)模型中的關(guān)系模型教學(xué)難點:關(guān)系模型的概念和完整性約束教學(xué)重點:關(guān)系模型的基本概念關(guān)系的性質(zhì)完整性約束授課方法:理論授課教案類別:新授課√實驗課習(xí)題課復(fù)習(xí)提問復(fù)問內(nèi)容學(xué)生姓名成績數(shù)據(jù)、信息的概念。實體、屬性、碼、域的概念。數(shù)據(jù)描述的三個世界作業(yè)及預(yù)習(xí)要求第一章理解數(shù)據(jù)庫1.4關(guān)系代數(shù)教學(xué)后記1、學(xué)生提出的疑難問題紀(jì)錄:關(guān)系性質(zhì)的理解主碼和外碼的區(qū)別2、對本課教學(xué)的體會及改進辦法:本節(jié)新概念較多,應(yīng)逐個突破,每個概念都學(xué)的扎實,新知識也容易理解
[組織教學(xué)]:[復(fù)習(xí)提問]:數(shù)據(jù)、信息的概念。實體、屬性、碼、域的概念。數(shù)據(jù)描述的三個世界。[講授新課]:1.3數(shù)據(jù)模型模型是對現(xiàn)實世界特征的模擬和抽象,數(shù)據(jù)模型也是一種模型,在數(shù)據(jù)庫技術(shù)中,用數(shù)據(jù)模型對現(xiàn)實世界數(shù)據(jù)特征進行抽象,來描述數(shù)據(jù)庫的結(jié)構(gòu)與語義。一、數(shù)據(jù)模型分類目前廣泛使用的數(shù)據(jù)模型有兩種:概念數(shù)據(jù)模型和結(jié)構(gòu)數(shù)據(jù)模型。1.概念數(shù)據(jù)模型概念數(shù)據(jù)模型簡稱為概念模型,它表示實體類型及實體間的聯(lián)系,是獨立于計算機系統(tǒng)的模型。信息世界的數(shù)據(jù)模型,現(xiàn)實世界第一層抽象2.結(jié)構(gòu)數(shù)據(jù)模型結(jié)構(gòu)數(shù)據(jù)模型簡稱為數(shù)據(jù)模型,它是直接面向數(shù)據(jù)庫的邏輯結(jié)構(gòu),現(xiàn)實世界的第二層抽象。數(shù)據(jù)模型涉及計算機系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng),例如層次模型、網(wǎng)狀模型、關(guān)系模型等。二、概念模型的表示方法E-R模型是直接從現(xiàn)實世界中抽象出實體類型及實體間的聯(lián)系,是對現(xiàn)實世界的一種抽象,它的主要成分是實體、聯(lián)系和屬性。E-R模型的圖形表示稱為E-R圖。設(shè)計E-R圖的方法稱為E-R方法。利用E-R模型進行數(shù)據(jù)庫的概念設(shè)計可以分為3步:(1)設(shè)計局部E-R模型(2)把各個局部E-R模型綜合成一個全局E-R模型(3)對全局E-R模型進行優(yōu)化,得到最終的E-R模型。E-R圖通用的表示方式如下。(1)用矩形框表示實體型,在框內(nèi)寫上實體名。(2)用橢圓形框表示實體的屬性,并用無向邊把實體和屬性連接起來。(3)用菱形框表示實體間的聯(lián)系,在菱形框內(nèi)寫上聯(lián)系名,用無向邊分別把菱形框與有關(guān)實體連接起來,在無向邊旁注明聯(lián)系的類型。如果實體間的聯(lián)系也有屬性,則把屬性和菱形框也用無向邊連接起來。三、數(shù)據(jù)模型的要素和種類數(shù)據(jù)模型是嚴(yán)格定義的一組概念的集合,這些概念精確地描述了系統(tǒng)的靜態(tài)特征(數(shù)據(jù)結(jié)構(gòu))、動態(tài)特征(數(shù)據(jù)操作)和數(shù)據(jù)約束條件,這是數(shù)據(jù)模型的三要素。1.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)用于描述系統(tǒng)的靜態(tài)特征,是所研究的對象類型的集合,這些對象是數(shù)據(jù)庫的組成部分,包括兩個方面。(1)數(shù)據(jù)本身:數(shù)據(jù)的類型、內(nèi)容和性質(zhì)等。例如關(guān)系模型中的域、屬性、關(guān)系等。(2)數(shù)據(jù)之間的聯(lián)系:數(shù)據(jù)之間是如何相互關(guān)聯(lián)的。例如關(guān)系模型中的主碼、外碼聯(lián)系等。2.數(shù)據(jù)操作數(shù)據(jù)操作是對數(shù)據(jù)庫中的各種對象(型)的實例(值)允許執(zhí)行的操作集合。數(shù)據(jù)操作包括操作對象及有關(guān)的操作規(guī)則,主要有檢索和更新(包括插入、刪除和修改)兩類。3.約束條件數(shù)據(jù)約束條件是一組完整性規(guī)則的集合。完整性規(guī)則是給定數(shù)據(jù)模型中的數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)及其狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。4.常見的數(shù)據(jù)模型數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型分為4種:層次模型、網(wǎng)狀模型、關(guān)系模型和關(guān)系對象模型。四、關(guān)系模型1.關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。1)關(guān)系(Relation)一個關(guān)系就是一張二維表2)元組(Tuple)元組也稱記錄,關(guān)系表中的每行對應(yīng)一個元組,組成元組的元素稱為分量。數(shù)據(jù)庫中的一個實體或?qū)嶓w之間的一個聯(lián)系均使用一個元組來表示。例如,表1-1中有多個元組,分別對應(yīng)多個學(xué)生,“2007X1201,李小雙,18,女,信息系”是一個元組,由5個分量組成。3)屬性(Attribute)表中的一列即為一個屬性,給每個屬性取一個名稱為屬性名,表1-1中有5個屬性(學(xué)號,姓名,年齡,性別,所在系)。屬性具有型和值兩層含義:屬性的型指屬性名和屬性值域;屬性的值是指屬性具體的取值。關(guān)系中的屬性名具有標(biāo)識列的作用,所以在同一個關(guān)系中的屬性名(列名)不能相同。一個關(guān)系中通常有個多個屬性,屬性用于表示實體的特征。4)域(Domain)屬性的取值范圍,如表1-1中的性別屬性的域是男、女,大學(xué)生的年齡屬性域可以設(shè)置為10~30等。5)分量(Component)元組中的一個屬性值,如表1-1中的“李小雙”、“男”等都是分量。6)候選碼(Candidatekey)若關(guān)系中的某一屬性或?qū)傩越M的值能唯一標(biāo)識一個元組,則稱該屬性或?qū)傩越M為候選碼(Candidatekey),候選碼簡稱為碼。7)主碼(Primarykey)若一個關(guān)系中有多個候選碼,則選定其中一個為主碼。例如,表1-1中的候選碼之一是“學(xué)號”屬性。假設(shè)表1-1中沒有重名的學(xué)生,則學(xué)生的“姓名”也是該關(guān)系的候選碼。在該關(guān)系中,應(yīng)當(dāng)選擇“學(xué)號”屬性作為主碼。8)全碼(All-key)在最簡單的情況下,候選碼只包含一個屬性;在最極端的情況下,關(guān)系模式的所有屬性是這個關(guān)系模式的候選碼,稱為全碼。全碼是候選碼的特例。例如,設(shè)有以下關(guān)系:學(xué)生選課(學(xué)號,課程)其中的“學(xué)號”和“課程”相互獨立,屬性間不存在依賴關(guān)系,它的碼就是全碼。9)主屬性(PrimeAttribute)和非主屬性(Non-primeAttribute)在關(guān)系中,候選碼中的屬性稱為主屬性,不包含在任何候選碼中的屬性稱為非主屬性。10)關(guān)系模式(RelationSchema)關(guān)系的描述稱為關(guān)系模式,它可以形式化地表示為R(U,D,Dom,F(xiàn))。其中,R為關(guān)系名;U為組成該關(guān)系的屬性的集合;D為屬性組U中的屬性所來自的域;Dom為屬性向域的映像集合;F為屬性間數(shù)據(jù)依賴關(guān)系的集合。關(guān)系模式通??梢院営洖镽(U)或R(A1,A2,…,An)。其中R為關(guān)系名,A1,A2,…,An為屬性名。而域名及屬性向域的映像常直接稱為屬性的類型及長度。例如,關(guān)系學(xué)生學(xué)籍表的關(guān)系模式可以表示為:學(xué)生學(xué)籍表(學(xué)號,姓名,年齡,性別,所在系)。關(guān)系是關(guān)系模式在某一時刻的狀態(tài)或內(nèi)容。關(guān)系模式是靜態(tài)的、穩(wěn)定的,而關(guān)系是動態(tài)的、隨時間不斷變化的,因為關(guān)系操作在不斷地更新著數(shù)據(jù)庫中的數(shù)據(jù)。2.關(guān)系的性質(zhì)(1)同一屬性的數(shù)據(jù)具有同質(zhì)性,即每一列中的分量是同一類型的數(shù)據(jù),它們來自同一個域。(2)同一關(guān)系的屬性名具有不可重復(fù)性,即同一關(guān)系中不同屬性的數(shù)據(jù)可出自同一個域,但不同的屬性要給予不同的屬性名。(3)關(guān)系中列的位置具有順序無關(guān)性,即列的次序可以任意交換、重新組織。(4)關(guān)系具有元組無冗余性,即關(guān)系中的任意兩個元組不能完全相同。(5)關(guān)系中元組的位置具有順序無關(guān)性,即元組的順序可以任意交換。(6)關(guān)系中每個分量必須取原子值,即每個分量都必須是不可分的數(shù)據(jù)項。五、關(guān)系的完整性關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件。關(guān)系模型中允許定義3類完整性約束:實體完整性、參照完整性和用戶自定義的完整性。1.實體完整性(EntityIntegrity)規(guī)則1.1實體完整性規(guī)則若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。例如,學(xué)生關(guān)系“學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)”中,“學(xué)號”為主碼,則“學(xué)號”不能取空值。實體完整性規(guī)則規(guī)定基本關(guān)系的所有主屬性都不能取空值,而不僅是指主碼不能取空值。例如,學(xué)生選課關(guān)系“選修(學(xué)號,課程號,成績)”中,“學(xué)號、課程號”為主碼,則“學(xué)號”和“課程號”兩個屬性都不能取空值。對于實體完整性規(guī)則說明如下。(1)實體完整性規(guī)則是針對基本關(guān)系而言的。一個基本表通常對應(yīng)信息世界的一個實體集,例如學(xué)生關(guān)系對應(yīng)于學(xué)生的集合。(2)信息世界中的實體是可區(qū)分的,即它們具有某種唯一性標(biāo)識。(3)關(guān)系模型中以主碼作為唯一性標(biāo)識。(4)主碼中的屬性即主屬性不能取空值。所謂空值就是“不知道”或“不確定”的值,如果主屬性取空值,就說明存在某個不可標(biāo)識的實體,即存在不可區(qū)分的實體,這與第(2)點相矛盾,因此這個規(guī)則稱為實體完整性規(guī)則。2.參照完整性(ReferentialIntegrity)在信息世界中,實體之間往往存在著某種聯(lián)系,在關(guān)系模型中實體及實體間的聯(lián)系都是用關(guān)系來描述的,這樣就自然存在著關(guān)系與關(guān)系間的引用?!纠?-1】學(xué)生關(guān)系和專業(yè)關(guān)系表示如下,其中主碼用下劃線標(biāo)識。學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)專業(yè)(專業(yè)號,專業(yè)名)這兩個關(guān)系之間存在著屬性的引用,即學(xué)生關(guān)系引用了專業(yè)關(guān)系的主碼“專業(yè)號”。顯然,學(xué)生關(guān)系中的“專業(yè)號”值必須是確實存在的專業(yè)的專業(yè)號,即專業(yè)關(guān)系中有該專業(yè)的記錄,也就是說,學(xué)生關(guān)系中的某個屬性的取值需要參照專業(yè)關(guān)系的屬性來取值。【例1-2】學(xué)生、課程、學(xué)生與課程之間的多對多聯(lián)系選修可以用如下3個關(guān)系表示。學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)課程(課程號,課程名,學(xué)分)選修(學(xué)號,課程號,成績)這3個關(guān)系之間也存在著屬性的引用,即選修關(guān)系引用了學(xué)生關(guān)系的主碼“學(xué)號”和課程關(guān)系的主碼“課程號”。同樣,選修關(guān)系中的“學(xué)號”值必須是確實存在的學(xué)生的學(xué)號,即學(xué)生關(guān)系中有該學(xué)生的記錄;選修關(guān)系中的“課程號”值也必須是確實存在的課程的課程號,即課程關(guān)系中有該課程的記錄。也就是說,選修關(guān)系中某些屬性的取值需要參照其他關(guān)系的屬性來取值。不僅兩個或兩個以上的關(guān)系間可以存在引用關(guān)系,同一關(guān)系內(nèi)部屬性間也可能存在引用關(guān)系?!纠?-3】在關(guān)系“學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡,班長)”中,“學(xué)號”屬性是主碼,“班長”屬性表示該學(xué)生所在班級的班長的學(xué)號,它引用了本關(guān)系“學(xué)號”屬性,即“班長”必須是確實存在的學(xué)生的學(xué)號。設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(guān)系R的主碼。如果F與基本關(guān)系S的主碼Ks相對應(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和關(guān)系S有可能是同一關(guān)系。顯然,被參照關(guān)系S的主碼Ks和參照關(guān)系R的外碼F必須定義在同一個(或一組)域上。在例1-1中,學(xué)生關(guān)系的“專業(yè)號”屬性與專業(yè)關(guān)系的主碼“專業(yè)號”相對應(yīng),因此“專業(yè)號”屬性是學(xué)生關(guān)系的外碼。這里專業(yè)關(guān)系是被參照關(guān)系,學(xué)生關(guān)系為參照關(guān)系。在例1-2中,選修關(guān)系的“學(xué)號”屬性與學(xué)生關(guān)系的主碼“學(xué)號”相對應(yīng),“課程號”屬性與課程關(guān)系的主碼“課程號”相對應(yīng),因此“學(xué)號”和“課程號”屬性是選修關(guān)系的外碼。這里學(xué)生關(guān)系和課程關(guān)系均為被參照關(guān)系,選修關(guān)系為參照關(guān)系。在例1-3中,“班長”屬性與本身的主碼“學(xué)號”屬性相對應(yīng),因此“班長”是外碼。學(xué)生關(guān)系既是參照關(guān)系也是被參照關(guān)系。需要指出的是,外碼并不一定要與相應(yīng)的主碼同名。但在實際應(yīng)用中,為了便于識別,當(dāng)外碼與相應(yīng)的主碼屬于不同關(guān)系時,則給它們?nèi)∠嗤拿?。參照完整性?guī)則定義了外碼與主碼之間的引用規(guī)則。規(guī)則1.2參照完整性規(guī)則若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S有可能是同一關(guān)系),則對于R中每個元組在F上的值必須為以下值之一。(1)或者取空值(F的每個屬性值均為空值)。(2)或者等于S中某個元組的主碼值。在例1-1中學(xué)生關(guān)系中每個元組的“專業(yè)號”屬性只能取下面兩類值。(1)空值,表示尚未給該學(xué)生分配專業(yè)。(2)非空值,這時該值必須是專業(yè)關(guān)系中某個元組的“專業(yè)號”值,表示該學(xué)生不可能分配到一個不存在的專業(yè)中,即被參照關(guān)系“專業(yè)”中一定存在一個元組,它的主碼值等于該參照關(guān)系“學(xué)生”中的外碼值。在例1-2中按照參照完整性規(guī)則,“學(xué)號”和“課程號”屬性也可以取兩類值:空值或被參照關(guān)系中已經(jīng)存在的值。但由于“學(xué)號”和“課程號”是選修關(guān)系中的主屬性,按照實體完整性規(guī)則,它們均不能取空值,所以選修關(guān)系中的“學(xué)號”和“課程號”屬性實際上只能取相應(yīng)被參照關(guān)系中已經(jīng)存在的主碼值。在參照完整性規(guī)則中,關(guān)系R與關(guān)系S可以是同一個關(guān)系。在例1-3中,按照參照完整性規(guī)則,“班長”屬性可以取兩類值。(1)空值,表示該學(xué)生所在班級尚未選出班長。(2)非空值,該值必須是本關(guān)系中某個元組的學(xué)號值。3.用戶自定義的完整性(User-definedIntegrity)用戶自定義的完整性就是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。例如某個屬性必須取唯一值、屬性值之間應(yīng)滿足一定的函數(shù)關(guān)系、某屬性的取值范圍在0~100之間等。例如,性別只能取“男”或“女”;學(xué)生的成績必須在0~100之間。小結(jié):數(shù)據(jù)模型、數(shù)據(jù)模型的分類、概念模型的表示方法、數(shù)據(jù)模型的要素和種類、關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)及術(shù)語、關(guān)系的性質(zhì)、關(guān)系的完整性。作業(yè):總結(jié)課上概念、課后相關(guān)習(xí)題預(yù)習(xí):1.4教案(課時數(shù):2)章節(jié)標(biāo)題:第一章理解數(shù)據(jù)庫1.4關(guān)系代數(shù)教學(xué)目的:認(rèn)識各種關(guān)系運算教學(xué)難點:笛卡兒積教學(xué)重點:傳統(tǒng)集合運算授課方法:理論授課教案類別:新授課√實驗課習(xí)題課復(fù)習(xí)提問復(fù)問內(nèi)容學(xué)生姓名成績什么是關(guān)系、元組、屬性、域、候選碼、主碼、全碼、主屬性、非主屬性關(guān)系的性質(zhì)有哪些?實體完整性規(guī)則、參照完整性規(guī)則作業(yè)及預(yù)習(xí)要求第一章理解數(shù)據(jù)庫1.5數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)教學(xué)后記1、學(xué)生提出的疑難問題紀(jì)錄:關(guān)系代數(shù)的綜合應(yīng)用2、對本課教學(xué)的體會及改進辦法:學(xué)生對理解專門的關(guān)系運算有一定難度在教學(xué)上應(yīng)多加習(xí)題練習(xí)
[組織教學(xué)]:[復(fù)習(xí)提問]:概念模型的表示方法數(shù)據(jù)模型的三要素什么是關(guān)系、元組、屬性、域、候選碼、主碼、全碼、主屬性、非主屬性關(guān)系的性質(zhì)有哪些?實體完整性規(guī)則、參照完整性規(guī)則[講授新課]:1.4關(guān)系代數(shù)關(guān)系代數(shù)的運算按運算符的不同可分為傳統(tǒng)的集合運算和專門的關(guān)系運算兩類。傳統(tǒng)的集合運算將關(guān)系看成元組的集合,其運算是從關(guān)系的“水平”方向即行的角度進行的專門的關(guān)系運算不僅涉及行而且涉及列。比較運算符和邏輯運算符是用來輔助專門的關(guān)系運算進行操作的。一、傳統(tǒng)的集合運算傳統(tǒng)的集合運算是二目運算,包括并、交、差、廣義笛卡兒積4種運算。設(shè)關(guān)系R和關(guān)系S具有相同的目n(即兩個關(guān)系都具有n個屬性),且相應(yīng)的屬性取自同一個域,則可以定義并、差、交、廣義笛卡兒積運算如下。1.并(Union)關(guān)系R與關(guān)系S的并記作:R∪S={t│tRtS},t是元組變量其結(jié)果關(guān)系仍為n目關(guān)系,由屬于R或?qū)儆赟的元組組成。2.差(Difference)關(guān)系R與關(guān)系S的差記作:R-S={t│tRtS},t是元組變量其結(jié)果關(guān)系仍為n目關(guān)系,由屬于R而不屬于S的所有元組組成。3.交(Intersection)關(guān)系R與關(guān)系S的交記作:R∩S={t│tRtS},t是元組變量其結(jié)果關(guān)系仍為n目關(guān)系,由既屬于R又屬于S的元組組成。關(guān)系的交可以用差來表示,即R∩S=R-(R-S)4.廣義笛卡兒積(ExtendedCartesianProduct)兩個分別為n目和m目的關(guān)系R和S的廣義笛卡兒積是一個(n+m)列的元組的集合。元組的前n列是關(guān)系R的一個元組,后m列是關(guān)系S的一個元組。若R有k1個元組,S有k2個元組,則關(guān)系R和關(guān)系S的廣義笛卡兒積有kl×k2個元組。記作:R×S={│trRtsS}小結(jié):傳統(tǒng)的關(guān)系運算、專門的關(guān)系運算作業(yè):課后相關(guān)習(xí)題預(yù)習(xí):1.5教案(課時數(shù):2)章節(jié)標(biāo)題:第一章理解數(shù)據(jù)庫1.4關(guān)系代數(shù)教學(xué)目的:認(rèn)識各種關(guān)系運算能用關(guān)系代數(shù)表達查詢教學(xué)難點:專門的關(guān)系運算應(yīng)用關(guān)系運算表達查詢教學(xué)重點:專門的關(guān)系運算授課方法:理論授課教案類別:新授課√實驗課習(xí)題課復(fù)習(xí)提問復(fù)問內(nèi)容學(xué)生姓名成績四種傳統(tǒng)的集合運算的用法和意義作業(yè)及預(yù)習(xí)要求第一章理解數(shù)據(jù)庫1.5數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)教學(xué)后記1、學(xué)生提出的疑難問題紀(jì)錄:關(guān)系代數(shù)的綜合應(yīng)用2、對本課教學(xué)的體會及改進辦法:學(xué)生對理解專門的關(guān)系運算有一定難度在教學(xué)上應(yīng)多加習(xí)題練習(xí)
[組織教學(xué)]:[復(fù)習(xí)提問]:概念模型的表示方法數(shù)據(jù)模型的三要素什么是關(guān)系、元組、屬性、域、候選碼、主碼、全碼、主屬性、非主屬性關(guān)系的性質(zhì)有哪些?實體完整性規(guī)則、參照完整性規(guī)則[講授新課]:1.4關(guān)系代數(shù)二、專門的關(guān)系運算專門的關(guān)系運算包括選擇、投影、連接、除等。為了敘述上的方便,先引入幾個記號。(1)設(shè)關(guān)系模式為R(A1,A2,…,An),它的一個關(guān)系設(shè)為R,tR表示t是R的一個元組,t[Ai]表示元組t中相應(yīng)于屬性Ai上的一個分量。(2)若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,則A稱為屬性列或域列。t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元組t在屬性列A上諸分量的集合。表示{A1,A2,…,An)中去掉{Ai1,Ai2,…,Aik}后剩余的屬性組。(3)R為n目關(guān)系,S為m目關(guān)系。trR,tsS,稱為元組的連接,它是一個n+m列的元組,前n個分量為R中的一個n元組,后m個分量為S中的一個m元組。(4)給定一個關(guān)系R(X,Z),X和Z為屬性組。定義當(dāng)t[X]=x時,x在R中的象集為:Zx={t[Z]|tR,t[X]=x}它表示R中屬性組X上值為x的諸元組在Z上分量的集合。1.選擇(Selection)選擇又稱為限制(Restriction),它是在關(guān)系R中選擇滿足給定條件的諸元組,記作:σF(R)={t|tRF(t)='真'}其中,F(xiàn)表示選擇條件,它是一個邏輯表達式,取邏輯值為“真”或“假”。邏輯表達式F的基本形式為:X1θY1[ΦX2θY2…]其中,θ表示比較運算符,它可以是>、、<、、=或≠;X1、Y1是屬性名、常量或簡單函數(shù),屬性名也可以用它的序號(如1,2,…)來代替;Φ表示邏輯運算符,它可以是(非)、∧(與)或∨(或);[]表示任選項,即[]中的部分可要可不要;…表示上述格式可以重復(fù)下去。選擇運算實際上是從關(guān)系R中選取使邏輯表達式F為真的元組,這是從行的角度進行的運算。設(shè)有一個學(xué)生-課程數(shù)據(jù)庫見表1-6,它包括以下內(nèi)容。學(xué)生關(guān)系Student(說明:sno表示學(xué)號,sname表示姓名,ssex表示性別,sage表示年齡,Sdept表示所在系)課程關(guān)系course(說明:cno表示課程號,cname表示課程名)選修關(guān)系score(說明:sno表示學(xué)號,cno表示課程號,degree表示成績)其關(guān)系模式如下。Student(sno,sname,ssex,sage,sdept)Course(cno,cname)Score(sno,cno,degree)【例】查詢數(shù)學(xué)系學(xué)生的信息。σSdept='數(shù)學(xué)系'(Student)或σ5='數(shù)學(xué)系'(Student)【例】查詢年齡小于20歲的學(xué)生的信息。σSage<20(Student)或σ4<20(Student)2.投影(Projection)關(guān)系R上的投影是從R中選擇出若干屬性列組成新的關(guān)系,記作:πA(R)={t[A]|tR}其中A為R中的屬性列。投影操作是從列的角度進行的運算。投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組,因為取消了某些屬性列后,就可能出現(xiàn)重復(fù)元組,關(guān)系操作將自動取消相同的元組?!纠坎樵儗W(xué)生的學(xué)號和姓名。πSno,Sname(Student)或π1,2(Student)【例】查詢學(xué)生關(guān)系Student中都有哪些系,即查詢學(xué)生關(guān)系Student在所在系屬性上的投影。πSdept(Student)或π5(Student)3.連接(Join)連接也稱為θ連接,它是從兩個關(guān)系的笛卡兒積中選取屬性間滿足一定條件的元組,記作:其中A和B分別為R和S上數(shù)目相等且可比的屬性組,θ是比較運算符。連接運算是從R和S的笛卡兒積R×S中選取(R關(guān)系)在A屬性組上的值與(S關(guān)系)在B屬性組上的值滿足比較關(guān)系θ的元組。連接運算中有兩種最為重要也最為常用的連接:一種是等值連接;另一種是自然連接。(1)等值連接:θ為“=”的連接運算稱為等值連接,它是從關(guān)系R與S的笛卡兒積中選取A、B屬性值相等的那些元組,等值連接為:(2)自然連接:是一種特殊的等值連接,它要求兩個關(guān)系中進行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉,即若R和S具有相同的屬性組B,則自然連接可記作:一般的連接操作是從行的角度進行運算的,但自然連接還需要取消重復(fù)列,所以自然連接是同時從行和列的角度進行運算的?!纠?-8】設(shè)關(guān)系R、S分別見表1-11(a)和表1-11(b),一般連接C<E的結(jié)果見表1-11(c),等值連接R.B=S.B的結(jié)果見表1-11(d),自然連接的結(jié)果見表1-11(e)。5.關(guān)系代數(shù)操作舉例(強化訓(xùn)練)在關(guān)系代數(shù)中,關(guān)系代數(shù)運算經(jīng)過有限次復(fù)合后形成的式子稱為關(guān)系代數(shù)表達式。對關(guān)系數(shù)據(jù)庫中數(shù)據(jù)的查詢操作可以寫成一個關(guān)系代數(shù)表達式,或者說,寫成一個關(guān)系代數(shù)表達式就表示已經(jīng)完成了查詢操作。以下給出利用關(guān)系代數(shù)進行查詢的例子。設(shè)學(xué)生-課程數(shù)據(jù)庫中有3個關(guān)系。學(xué)生關(guān)系:S(Sno,Sname,Ssex,Sage)課程關(guān)系:C(Cno,Cname,Teacher)學(xué)習(xí)關(guān)系:SC(Sno,Cno,Degree)(1)查詢學(xué)習(xí)課程號為C3號課程的學(xué)生學(xué)號和成績。πSno,Degree(σCno='C3'(SC))(2)查詢學(xué)習(xí)課程號為C4課程的學(xué)生學(xué)號和姓名。πSno,Sname(σCno='C4'(S∞SC))(3)查詢學(xué)習(xí)課程名為maths的學(xué)生學(xué)號和姓名。πSno,Sname(σCname='maths'(S∞SC∞C))(4)查詢學(xué)習(xí)課程號為C1或C3課程的學(xué)生學(xué)號。πSno(σCno='C1'∨Cno='C3'(SC))(5)查詢不學(xué)習(xí)課程號為C2的學(xué)生的姓名和年齡。πSname,Sage(S)-πSname,Sage(σCno='C2''(S∞SC))(6)查詢學(xué)習(xí)全部課程的學(xué)生姓名。πSname(S∞(πSno,Cno(SC)÷πCno(C)))(7)查詢所學(xué)課程包括200701所學(xué)課程的學(xué)生學(xué)號。πSno,Cno(SC)÷πCno(σSno='200701'(SC))小結(jié):傳統(tǒng)的關(guān)系運算、專門的關(guān)系運算作業(yè):課后相關(guān)習(xí)題預(yù)習(xí):1.5教案(課時數(shù):2)章節(jié)標(biāo)題:第一章理解數(shù)據(jù)庫1.5數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)教學(xué)目的:了解數(shù)據(jù)庫的相關(guān)概念理解數(shù)據(jù)庫的三級體系結(jié)構(gòu)教學(xué)難點:三級結(jié)構(gòu)的劃分兩級映射的作用教學(xué)重點:數(shù)據(jù)庫系統(tǒng)的組成三級結(jié)構(gòu)和兩級映射授課方法:理論授課教案類別:新授課√實驗課習(xí)題課復(fù)習(xí)提問復(fù)問內(nèi)容學(xué)生姓名成績傳統(tǒng)的關(guān)系運算有哪幾種?專門的關(guān)系運算有哪幾種?選擇、投影、連接的概念作業(yè)及預(yù)習(xí)要求第二章數(shù)據(jù)庫設(shè)計教學(xué)后記1、學(xué)生提出的疑難問題紀(jì)錄:如何實現(xiàn)兩級獨立性2、對本課教學(xué)的體會及改進辦法:內(nèi)容抽象,可通過列舉數(shù)據(jù)庫的實例幫助學(xué)生理解相關(guān)內(nèi)容
[組織教學(xué)][復(fù)習(xí)提問]1、傳統(tǒng)的關(guān)系運算有哪幾種?2、專門的關(guān)系運算有哪幾種?3、選擇、投影、連接的概念[講授新課]1.5數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)一、數(shù)據(jù)庫相關(guān)概念1.數(shù)據(jù)庫(DB)長期存放在計算機內(nèi)、有組織的、可共享的相關(guān)數(shù)據(jù)的集合,它將數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲,具有較小的冗余度、較高的數(shù)據(jù)獨立性和易擴展性、可被各類用戶共享等特點。2.數(shù)據(jù)庫管理系統(tǒng)(DBMS)位于用戶與操作系統(tǒng)(OS)之間的一層數(shù)據(jù)管理軟件,它為用戶或應(yīng)用程序提供訪問數(shù)據(jù)庫的方法,包括數(shù)據(jù)庫的創(chuàng)建、查詢、更新及各種數(shù)據(jù)控制,它是數(shù)據(jù)庫系統(tǒng)的核心。流行的DBMS有VisualFoxPro、Access、Sybase、SQLServer、Oracle等數(shù)據(jù)庫管理系統(tǒng)的主要功能包括以下幾個方面。1)數(shù)據(jù)定義功能(DDL)用戶通過它可以方便地對數(shù)據(jù)庫中的數(shù)據(jù)對象進行定義。2)數(shù)據(jù)操縱功能(DML)用戶可以使用DML操縱數(shù)據(jù)實現(xiàn)對數(shù)據(jù)庫的基本操作,如查詢、插入、刪除和修改等。3)數(shù)據(jù)庫的運行管理數(shù)據(jù)庫在創(chuàng)建、運用和維護時由DBMS統(tǒng)一管理、統(tǒng)一控制,以保證數(shù)據(jù)的安全性、完整性、多用戶對數(shù)據(jù)的并發(fā)使用及發(fā)生故障后的系統(tǒng)恢復(fù)。4)數(shù)據(jù)庫的創(chuàng)建和維護功能數(shù)據(jù)庫的創(chuàng)建和維護功能包括數(shù)據(jù)庫初始數(shù)據(jù)的輸入、轉(zhuǎn)換功能,數(shù)據(jù)庫的轉(zhuǎn)儲、恢復(fù)功能,數(shù)據(jù)庫的組織功能和性能監(jiān)視、分析功能等。這些功能通常是由一些實用程序完成的。3.數(shù)據(jù)庫應(yīng)用系統(tǒng)凡使用數(shù)據(jù)庫技術(shù)管理其數(shù)據(jù)的系統(tǒng)都稱為數(shù)據(jù)庫應(yīng)用系統(tǒng)(DataBaseApplicationSystem)。數(shù)據(jù)庫應(yīng)用系統(tǒng)的應(yīng)用非常廣泛,它可以用于事務(wù)管理、計算機輔助設(shè)計、計算機圖形分析和處理及人工智能等系統(tǒng)中。4.數(shù)據(jù)庫系統(tǒng)(DBS)在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng),它由計算機硬件、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、數(shù)據(jù)庫應(yīng)用系統(tǒng)、數(shù)據(jù)庫用戶構(gòu)成。數(shù)據(jù)庫用戶包括數(shù)據(jù)庫管理員、系統(tǒng)分析員、數(shù)據(jù)庫設(shè)計人員及應(yīng)用程序開發(fā)人員和終端用戶。數(shù)據(jù)庫管理員(DBA)是高級用戶,他的任務(wù)是對使用中的數(shù)據(jù)庫進行整體維護和改進,負(fù)責(zé)數(shù)據(jù)庫系統(tǒng)的正常運行,他是數(shù)據(jù)庫系統(tǒng)的專職管理和維護人。二、數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)數(shù)據(jù)庫的體系結(jié)構(gòu)分為三級模式和兩級映像DBMS在三級結(jié)構(gòu)之間提供了兩級映像(Mapping):外模式/模式映像,模式/內(nèi)模式映像。正是這兩級映像保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨立性和物理獨立性。1.模式模式、概念模式、邏輯模式,是對數(shù)據(jù)庫中全部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。模式實際上是數(shù)據(jù)庫數(shù)據(jù)在概念級上的視圖,一個數(shù)據(jù)庫只有一個模式。模式通常以某種數(shù)據(jù)模型為基礎(chǔ),統(tǒng)一綜合地考慮了所有用戶的需求,并將這些需求有機地結(jié)合成一個邏輯整體。定義模式時不僅要定義數(shù)據(jù)的邏輯結(jié)構(gòu),例如數(shù)據(jù)記錄由哪些數(shù)據(jù)項構(gòu)成,數(shù)據(jù)項的名稱、類型、取值范圍等,而且還要定義數(shù)據(jù)項之間的聯(lián)系,定義不同記錄之間的聯(lián)系,以及定義與數(shù)據(jù)有關(guān)的完整性、安全性等要求。完整性包括數(shù)據(jù)的正確性、有效性和相容性。安全性主要指保密性。2.外模式外模式、子模式、用戶模式,它是對數(shù)據(jù)庫用戶(包括程序員和最終用戶)能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,即個別用戶涉及的數(shù)據(jù)的邏輯結(jié)構(gòu)。外模式通常是模式的子集,一個數(shù)據(jù)庫可以有多個外模式。外模式是根據(jù)用戶自己對數(shù)據(jù)的需要,從局部的角度進行設(shè)計,因此如果不同的用戶在應(yīng)用需求、看待數(shù)據(jù)的方式、對數(shù)據(jù)保密的要求等方面存在差異,則其外模式描述也不同。一方面即使是模式中的同一數(shù)據(jù)在外模式中的結(jié)構(gòu)、類型、長度、保密級別等都可以不同。另一方面,同一外模式也可以為某一用戶的多個應(yīng)用系統(tǒng)所使用,但一個應(yīng)用程序只能使用一個外模式。外模式是保證數(shù)據(jù)庫安全性的一個有效措施,每個用戶只能看見或訪問所對應(yīng)的外模式中的數(shù)據(jù),數(shù)據(jù)庫中的其余數(shù)據(jù)是不可見的。3.內(nèi)模式內(nèi)模式、存儲模式、物理模式,一個數(shù)據(jù)庫只有一個內(nèi)模式。內(nèi)模式是對數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式。例如,記錄的存儲方式是順序存儲、按照B樹結(jié)構(gòu)存儲還是按hash方法存儲;索引按照什么方式組織;數(shù)據(jù)是否壓縮存儲,是否加密;數(shù)據(jù)的存儲記錄結(jié)構(gòu)有何規(guī)定等。內(nèi)模式的設(shè)計目標(biāo)是將系統(tǒng)的模式(全局邏輯結(jié)構(gòu))組織成最優(yōu)的物理模式,以提高數(shù)據(jù)的存取效率,改善系統(tǒng)的性能指標(biāo)。4.外模式/模式映像模式描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu),外模式描述的是數(shù)據(jù)的局部邏輯結(jié)構(gòu),對應(yīng)于同一個模式可以有任意多個外模式。對于每個外模式,數(shù)據(jù)庫系統(tǒng)都有一個外模式/模式映像,它定義了該外模式與模式之間的對應(yīng)關(guān)系。這些映像定義通常包含在各自外模式的描述中。5.模式/內(nèi)模式映像數(shù)據(jù)庫中只有一個模式,也只有一個內(nèi)模式,所以模式/內(nèi)模式映像是唯一的,它定義了數(shù)據(jù)庫全局邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的對應(yīng)關(guān)系。例如,說明邏輯記錄和字段在內(nèi)部是如何表示的。該映像定義通常包含在模式描述中。6.兩級數(shù)據(jù)獨立性數(shù)據(jù)獨立性是指應(yīng)用程序和數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)之間相互獨立,不受影響。1)邏輯數(shù)據(jù)獨立性當(dāng)模式改變時(如增加新的關(guān)系、新的屬性、改變屬性的數(shù)據(jù)類型等),由數(shù)據(jù)庫管理員對各個外模式/模式映像作相應(yīng)改變,可以使外模式保持不變。應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,因而應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨立性,簡稱邏輯數(shù)據(jù)獨立性。2)物理數(shù)據(jù)獨立性當(dāng)數(shù)據(jù)庫的存儲結(jié)構(gòu)改變了(如選用了另一種存儲結(jié)構(gòu)),由數(shù)據(jù)庫管理員對模式/內(nèi)模式映像作相應(yīng)改變,可以保證模式保持不變,因而應(yīng)用程序也不必改變。保證了數(shù)據(jù)與程序的物理獨立性,簡稱物理數(shù)據(jù)獨立性。小結(jié):數(shù)據(jù)庫的相關(guān)概念、數(shù)據(jù)庫體系結(jié)構(gòu)、三級模式、二級映象作業(yè):課上重點概念、課后相關(guān)習(xí)題預(yù)習(xí):2.1教案(課時數(shù)2)章節(jié)標(biāo)題:數(shù)據(jù)庫設(shè)計概述教學(xué)目的:掌握數(shù)據(jù)庫設(shè)計的階段;需求分析的步驟與方法概念結(jié)構(gòu)設(shè)計邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計教學(xué)難點:概念結(jié)構(gòu)設(shè)計各種轉(zhuǎn)換原則教學(xué)重點:概念結(jié)構(gòu)設(shè)計各種轉(zhuǎn)換原則教學(xué)方法:教案類別:□新授課√□實驗課□習(xí)題課復(fù)習(xí)提問復(fù)問內(nèi)容學(xué)生姓名成績查詢學(xué)習(xí)課程號為C3號課程的學(xué)生學(xué)號和成績查詢學(xué)習(xí)課程號為C4課程的學(xué)生學(xué)號和姓名查詢學(xué)習(xí)課程名為maths的學(xué)生學(xué)號和姓名查詢學(xué)習(xí)課程號為C1或C3課程的學(xué)生學(xué)號作業(yè)及預(yù)習(xí)要求:1、總結(jié)課上概念、課后相關(guān)習(xí)題課后總結(jié):本節(jié)重點講述以下內(nèi)容:數(shù)據(jù)庫設(shè)計各階段的任務(wù),概念設(shè)計的步驟與方法。實際教學(xué)中存在的問題:需求分析的各階段不明確;解決實際問題時無從下手局部E-R圖設(shè)計不理想;從局部到全局E-R圖不會轉(zhuǎn)換;
[組織教學(xué)]:[復(fù)習(xí)提問]:設(shè)學(xué)生-課程數(shù)據(jù)庫中有3個關(guān)系。學(xué)生關(guān)系:S(Sno,Sname,Ssex,Sage)課程關(guān)系:C(Cno,Cname,Teacher)學(xué)習(xí)關(guān)系:SC(Sno,Cno,Degree)查詢學(xué)習(xí)課程號為C1或C3課程的學(xué)生學(xué)號。πSno(σCno='C1'∨Cno='C3'(SC))[講授新課]:2.1數(shù)據(jù)庫設(shè)計概述數(shù)據(jù)庫設(shè)計的6個階段具體說明如下。1.需求分析階段需求分析就是根據(jù)用戶的需求收集數(shù)據(jù),是設(shè)計數(shù)據(jù)庫的起點。需求分析的結(jié)果是否準(zhǔn)確反映用戶的實際需求,將直接影響到后面各個階段的設(shè)計,并影響到設(shè)計結(jié)果是否合理和實用。2.概念結(jié)構(gòu)設(shè)計階段概念結(jié)構(gòu)設(shè)計是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵,它通過對用戶的需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型。3.邏輯結(jié)構(gòu)設(shè)計階段邏輯結(jié)構(gòu)設(shè)計是指將概念模型轉(zhuǎn)換成某個DBMS所支持的數(shù)據(jù)模型,并對其進行優(yōu)化。4.數(shù)據(jù)庫物理設(shè)計階段數(shù)據(jù)庫物理設(shè)計是指為邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)和存取方法)。5.數(shù)據(jù)庫實施階段在數(shù)據(jù)庫實施階段,設(shè)計人員運用DBMS提供的數(shù)據(jù)語言及其宿主語言,根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果創(chuàng)建數(shù)據(jù)庫(此項工作在第3章具體實現(xiàn)),編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進行試運行。6.數(shù)據(jù)庫運行與維護階段數(shù)據(jù)庫運行與維護是指對數(shù)據(jù)庫應(yīng)用系統(tǒng)正式投入運行后,在數(shù)據(jù)庫系統(tǒng)運行過程中必須不斷地對其進行評價、調(diào)整與修改。提示:設(shè)計一個完善的數(shù)據(jù)庫應(yīng)用系統(tǒng)是不可能一蹴而就的,它往往是上述6個階段的不斷反復(fù)。2.2需求分析2.2.1需求分析的任務(wù)及目標(biāo)需求分析的任務(wù)就是收集數(shù)據(jù),要盡可能多地收集關(guān)于數(shù)據(jù)庫要存儲的數(shù)據(jù)以及將來如何使用這些數(shù)據(jù)的信息,確保收集到數(shù)據(jù)庫需要存儲的全部信息。明確下面一些問題將有助于幫助實現(xiàn)數(shù)據(jù)庫設(shè)計目標(biāo)。(1)有多少數(shù)據(jù),數(shù)據(jù)的來源在哪里,是否有已存在的數(shù)據(jù)資源?(2)必須保存哪些數(shù)據(jù),數(shù)據(jù)是字符、數(shù)字或日期?(3)誰使用數(shù)據(jù),如何使用?(4)數(shù)據(jù)是否經(jīng)常修改,如何修改和什么時候修改?(5)某個數(shù)據(jù)是否依賴于另一個數(shù)據(jù)或被其他數(shù)據(jù)引用?(6)某個信息是否要唯一?(7)哪些數(shù)據(jù)是組織內(nèi)部的和哪些是外部數(shù)據(jù)?(8)哪些業(yè)務(wù)活動與數(shù)據(jù)有關(guān),數(shù)據(jù)如何支持業(yè)務(wù)活動?(9)數(shù)據(jù)訪問的頻度和增長的幅度如何?(10)誰可以訪問數(shù)據(jù),如何保護數(shù)據(jù)。2.2.2需求分析的方法進行需求分析首先是調(diào)查清楚用戶的實際需求,與用戶達成共識,然后分析與表達這些需求。調(diào)查用戶需求的具體步驟如下。(1)調(diào)查組織機構(gòu)情況。包括了解該組織的部門組成情況、各部門的職責(zé)等,為分析信息流程做準(zhǔn)備。(2)調(diào)查各部門的業(yè)務(wù)活動情況。包括了解各個部門輸入和使用什么數(shù)據(jù),如何加工處理這些數(shù)據(jù),輸出什么信息,輸出到什么部門,輸出結(jié)果的格式是什么,這是調(diào)查的重點。(3)在熟悉了業(yè)務(wù)的基礎(chǔ)上,協(xié)助用戶明確對新系統(tǒng)的各種要求,包括信息要求、處理要求、完全性與完整性要求,這是調(diào)查的又一個重點。(4)確定新系統(tǒng)的邊界。對前面調(diào)查的結(jié)果進行初步分析,確定哪些功能由計算機完成或?qū)頊?zhǔn)備讓計算機完成,哪些活動由人工完成。由計算機完成的功能就是新系統(tǒng)應(yīng)該實現(xiàn)的功能。在調(diào)查過程中,可以根據(jù)不同的問題和條件使用不同的調(diào)查方法。常用的調(diào)查方法如下。(1)跟班作業(yè)。通過親身參加業(yè)務(wù)工作來了解業(yè)務(wù)活動的情況。通過這種方法可以比較準(zhǔn)確地了解用戶的需求,但比較耗費時間。(2)開調(diào)查會。通過與用戶座談來了解業(yè)務(wù)活動情況及用戶需求。座談時,參加者和用戶之間可以相互啟發(fā)。(3)請專人介紹。(4)詢問。對某些調(diào)查中的問題,可以找專人詢問。(5)問卷調(diào)查。設(shè)計調(diào)查表請用戶填寫。如果調(diào)查表設(shè)計得合理,這種方法是很有效的,也易于為用戶所接受。(6)查閱記錄。查閱與原系統(tǒng)有關(guān)的數(shù)據(jù)記錄。2.3概念結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)設(shè)計是將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)即概念模型的過程,它是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵。2.3.1概念結(jié)構(gòu)設(shè)計的方法和步驟1.概念結(jié)構(gòu)設(shè)計的方法概念結(jié)構(gòu)設(shè)計的方法通常有以下4種。(1)自頂向下。首先定義全局概念結(jié)構(gòu)的框架,然后逐步細化。(2)自底向上。首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu)。(3)逐步擴張。首先定義最重要的核心概念結(jié)構(gòu),然后向外擴充,以滾雪球的方式逐步生成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu)。(4)混合策略。將自頂向下和自底向上的方法相結(jié)合,用自頂向下策略設(shè)計一個全局概念結(jié)構(gòu)的框架,以它為框架自底向上設(shè)計各局部概念結(jié)構(gòu)。其中最常采用的策略是混合策略,即自頂向下進行需求分析,然后再自底向上設(shè)計概念結(jié)構(gòu),其方法如圖2.2所示。2.概念結(jié)構(gòu)設(shè)計的步驟按照圖2.2所示的自頂向下需求分析與自底向上概念結(jié)構(gòu)設(shè)計的方法,概念結(jié)構(gòu)的設(shè)計可分為以下兩步。(1)進行數(shù)據(jù)抽象,設(shè)計局部E-R模型。(2)集成各局部E-R模型,形成全局E-R模型,其步驟如圖2.3所示。2.3.2局部E-R模型設(shè)計實際上實體和屬性是相對而言的。同一事物在一種應(yīng)用環(huán)境中作為“屬性”,在另一種應(yīng)用環(huán)境中就有可能作為“實體”。因此,為了解決這個問題,應(yīng)當(dāng)遵循兩條基本準(zhǔn)則。(1)屬性不能再具有需要描述的性質(zhì),即屬性必須是不可分的數(shù)據(jù)項,不能再由另一些屬性組成。(2)屬性不能與其他實體具有聯(lián)系。聯(lián)系只發(fā)生在實體之間。符合上述兩條特性的事物一般作為屬性對待。為了簡化E-R圖的處理,現(xiàn)實世界中的事物凡能夠作為屬性對待的,應(yīng)盡量作為屬性。2.3.3全局E-R模型設(shè)計各個局部E-R圖建立好后,還需要對它們進行合并,集成為一個整體的概念數(shù)據(jù)結(jié)構(gòu)即全局E-R圖。局部E-R圖的集成有兩種方法。(1)多元集成法,也叫做一次集成,一次性將多個局部E-R圖合并為一個全局E-R圖,如圖2.7(a)所示。(2)二元集成法,也叫做逐步集成,首先集成兩個重要的局部E-R圖,然后用累加的方法逐步將一個新的E-R圖集成進來,如圖2.7(b)所示。在實際應(yīng)用中,可以根據(jù)系統(tǒng)復(fù)雜性選擇這兩種方案。如果局部圖比較簡單,可以采用一次集成法。在一般情況下,采用逐步集成法,即每次只綜合兩個圖,這樣可降低難度。無論使用哪一種方法,E-R圖集成均分為如下兩個步驟。(1)合并,消除各局部E-R圖之間的沖突,生成初步E-R圖。(2)優(yōu)化,消除不必要的冗余,生成基本E-R圖。1.合并分E-R圖,生成初步E-R圖由于各個局部應(yīng)用所面向的問題不同,并且通常由不同的設(shè)計人員進行局部E-R圖設(shè)計,因此,各局部E-R圖不可避免地會有許多不一致的地方,通常把這種現(xiàn)象稱為沖突。E-R圖中的沖突有3種:屬性沖突、命名沖突和結(jié)構(gòu)沖突。1)屬性沖突屬性沖突又分為屬性值域沖突和屬性的取值單位沖突。(1)屬性值域沖突。即屬性值的類型、取值范圍或取值集合不同。(2)屬性的取值單位沖突。屬性沖突屬于用戶業(yè)務(wù)上的約定,必須與用戶協(xié)商后解決。2)命名沖突命名不一致可能發(fā)生在實體名、屬性名或聯(lián)系名之間,其中屬性的命名沖突最為常見。一般表現(xiàn)為同名異義或異名同義。(1)同名異義,即同一名字的對象在不同的局部應(yīng)用中具有不同的意義。(2)異名同義,即同一意義的對象在不同的局部應(yīng)用中具有不同的名稱。命名沖突的解決方法同屬性沖突相同,需要與各部門協(xié)商、討論后加以解決。3)結(jié)構(gòu)沖突(1)同一對象在不同應(yīng)用中有不同的抽象,可能為實體,也可能為屬性。這類沖突在解決時,就是使同一對象在不同應(yīng)用中具有相同的抽象,或把實體轉(zhuǎn)換為屬性,或把屬性轉(zhuǎn)換為實體。(2)同一實體在不同局部應(yīng)用中的屬性組成不同,可能是屬性個數(shù)或?qū)傩缘呐帕写涡虿煌?。解決辦法是,合并后的實體的屬性組成為各局部E-R圖中的同名實體屬性的并集,然后再適當(dāng)調(diào)整屬性的排列次序。(3)實體之間的聯(lián)系在不同局部應(yīng)用中呈現(xiàn)不同的類型。例如,局部應(yīng)用X中E1與E2可能是一對一聯(lián)系,而在另一局部應(yīng)用Y中可能是一對多或多對多聯(lián)系,也可能是在E1、E2、E3三者之間有聯(lián)系。解決方法:根據(jù)應(yīng)用語義對實體聯(lián)系的類型進行綜合或調(diào)整。2.消除不必要的冗余,生成基本E-R圖在初步的E-R圖中,可能存在冗余的數(shù)據(jù)和冗余的實體之間的聯(lián)系。冗余的數(shù)據(jù)是指可由基本數(shù)據(jù)導(dǎo)出的數(shù)據(jù),冗余的聯(lián)系是指可由其他的聯(lián)系導(dǎo)出的聯(lián)系。冗余的存在容易破壞數(shù)據(jù)庫的完整性,給數(shù)據(jù)庫的維護增加困難,應(yīng)該消除。當(dāng)然,不是所有的冗余數(shù)據(jù)和冗余聯(lián)系都必須消除,有時為了提高某些應(yīng)用的效率,不得不以冗余信息作為代價。設(shè)計數(shù)據(jù)庫概念模型時,哪些冗余信息必須消除,哪些冗余信息允許存在,需要根據(jù)用戶的整體需求來確定。把消除了冗余的初步E-R圖稱為基本E-R圖。通常采用分析的方法消除冗余。數(shù)據(jù)字典是分析冗余數(shù)據(jù)的依據(jù),還可以通過數(shù)據(jù)流圖分析出冗余的聯(lián)系。提示:用戶和數(shù)據(jù)庫人員必須對這一模型反復(fù)討論,在用戶確認(rèn)這一模型已正確無誤地反映了他們的要求之后,才能進入下一階段的設(shè)計工作。2.4邏輯結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)設(shè)計階段得到的E-R模型是用戶的模型,它獨立于任何一種數(shù)據(jù)模型,獨立于任何一個具體的DBMS。E-R圖所表示的概念模型可以轉(zhuǎn)換成任何一種具體的DBMS所支持的數(shù)據(jù)模型,如網(wǎng)狀模型、層次模型和關(guān)系模型。這里只討論關(guān)系數(shù)據(jù)庫的邏輯設(shè)計問題,所以只介紹E-R圖如何向關(guān)系模型進行轉(zhuǎn)換。一般的邏輯設(shè)計分為以下3步,如圖2.9所示。(1)初始關(guān)系模式設(shè)計。(2)關(guān)系模式規(guī)范化。(3)模式的評價與改進。2.4.1初始關(guān)系模式設(shè)計1.轉(zhuǎn)換原則概念設(shè)計中得到的E-R圖是由實體、屬性和聯(lián)系組成的,而關(guān)系數(shù)據(jù)庫邏輯設(shè)計的結(jié)果是一組關(guān)系模式的集合。所以將E-R圖轉(zhuǎn)換為關(guān)系模型實際上就是將實體、屬性和聯(lián)系轉(zhuǎn)換成關(guān)系模式。在轉(zhuǎn)換中要遵循以下規(guī)則。規(guī)則2.1實體類型的轉(zhuǎn)換:將每個實體類型轉(zhuǎn)換成一個關(guān)系模式,實體的屬性即為關(guān)系的屬性,實體的標(biāo)識符即為關(guān)系模式的碼。規(guī)則2.2聯(lián)系類型的轉(zhuǎn)換:根據(jù)不同的聯(lián)系類型做不同的處理。規(guī)則2.2.1若實體間聯(lián)系是1∶1,可以在兩個實體類型轉(zhuǎn)換成的兩個關(guān)系模式中任意一個關(guān)系模式中加入另一個關(guān)系模式的碼和聯(lián)系類型的屬性。規(guī)則2.2.2若實體間的聯(lián)系是1∶n,則在n端實體類型轉(zhuǎn)換成的關(guān)系模式中加入1端實體類型的碼和聯(lián)系類型的屬性。規(guī)則2.2.3若實體間聯(lián)系是m∶n,則將聯(lián)系類型也轉(zhuǎn)換成關(guān)系模式,其屬性為兩端實體類型的碼加上聯(lián)系類型的屬性,而碼為兩端實體碼的組合。規(guī)則2.2.43個或3個以上的實體間的一個多元聯(lián)系,不管聯(lián)系類型是何種方法,總是將多元聯(lián)系類型轉(zhuǎn)換成一個關(guān)系模式,其屬性為與該聯(lián)系相連的各實體的碼及聯(lián)系本身的屬性,其碼為各實體碼的組合。規(guī)則2.2.5具有相同碼的關(guān)系可合并。2.4.2關(guān)系模式的規(guī)范化數(shù)據(jù)庫邏輯設(shè)計的結(jié)果不是唯一的。為了進一步提高數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能,還應(yīng)該根據(jù)應(yīng)用需要適當(dāng)?shù)匦薷摹⒄{(diào)整數(shù)據(jù)模型的結(jié)構(gòu),這就是數(shù)據(jù)模型的優(yōu)化。關(guān)系數(shù)據(jù)模型的優(yōu)化通常以規(guī)范化理論為指導(dǎo)。關(guān)系模式設(shè)計的好壞將直接影響到數(shù)據(jù)庫設(shè)計的成敗。將關(guān)系模式規(guī)范化,使之達到較高的范式是設(shè)計好關(guān)系模式的唯一途徑,否則,設(shè)計的關(guān)系數(shù)據(jù)庫會產(chǎn)生一系列的問題。1.存在的問題及解決方法從表2-1中的數(shù)據(jù)情況可以看出,該關(guān)系存在以下問題。(1)數(shù)據(jù)冗余太大。(2)插入異常。(3)刪除異常。(4)更新異常。2)解決方法對于存在問題的關(guān)系模式,可以通過模式分解的方法使之規(guī)范化。“分解”是解決冗余的主要方法,也是規(guī)范化的一條原則,“關(guān)系模式有冗余問題,就分解它”。2.函數(shù)依賴基本概念1)規(guī)范化規(guī)范化是指用形式更為簡潔、結(jié)構(gòu)更加規(guī)范的關(guān)系模式取代原有關(guān)系模式的過程。2)關(guān)系模式對數(shù)據(jù)的要求關(guān)系模式必須滿足一定的完整性約束條件以達到現(xiàn)實世界對數(shù)據(jù)的要求。完整性約束條件主要包括以下兩個方面。(1)對屬性取值范圍的限定。(2)屬性值間的相互聯(lián)系(主要體現(xiàn)在值的相等與否),這種聯(lián)系稱為數(shù)據(jù)依賴。3)屬性間的聯(lián)系第1章講到客觀世界的事物間存在著錯綜復(fù)雜的聯(lián)系,實體間的聯(lián)系有兩類:一類是實體與實體之間的聯(lián)系;另一類是實體內(nèi)部各屬性間的聯(lián)系。這里主要討論第二類聯(lián)系。屬性間的聯(lián)系可分為3類。一對一聯(lián)系、一對多聯(lián)系(1∶n)、多對多聯(lián)系(m∶n)上述屬性間的3種聯(lián)系實際上是屬性值之間相互依賴又相互制約的反映,稱為屬性間的數(shù)據(jù)依賴。4)數(shù)據(jù)依賴數(shù)據(jù)依賴是指通過一個關(guān)系中屬性間值的相等與否體現(xiàn)出來的數(shù)據(jù)間的相互關(guān)系,是現(xiàn)實世界屬性間相互聯(lián)系的抽象,是數(shù)據(jù)內(nèi)在的性質(zhì)。數(shù)據(jù)依賴共有3種:函數(shù)依賴(FunctionalDependency,F(xiàn)D)、多值依賴(MultiValuedDependency,MVD)和連接依賴(JoinDependency,JD),其中最重要的是函數(shù)依賴和多值依賴。5)函數(shù)依賴在數(shù)據(jù)依賴中,函數(shù)依賴是最基本、最重要的一種依賴,它是屬性之間的一種聯(lián)系,假設(shè)給定一個屬性的值,就可以唯一確定(查找到)另一個屬性的值。例如,知道某一學(xué)生的學(xué)號,可以唯一地查詢到其對應(yīng)的系別,如果這種情況成立,就可以說系別函數(shù)依賴于學(xué)號。這種唯一性并非指只有一個記錄,而是指任何記錄。定義1:設(shè)有關(guān)系模式R(U),X和Y均為U={A1,A2,…,An}的子集,r是R的任一具體關(guān)系,r中不可能存在兩個元組在X上的屬性值相等,而在Y上的屬性值不等(也就是說,如果對于r中的任意兩個元組t和s,只要有t[X]=s[X],就有t[Y]=s[Y]),則稱X函數(shù)決定Y,或稱Y函數(shù)依賴于X,記作X→Y,其中X叫做決定因素(Determinant),Y叫做依賴因素(Dependent)。這里的t[X]表示元組t在屬性集X上的值,s[X]表示元組s在屬性集X上的值。FD是對關(guān)系模式R的一切可能的當(dāng)前值r的定義,不是針對某個特定關(guān)系的。通俗地說,在當(dāng)前值r的兩個不同元組中,如果X值相同,就一定要求Y值也相同,或者說,對于X的每個具體值,都有Y唯一的具體值與之對應(yīng)。下面介紹一些相關(guān)的術(shù)語與記號。(1)X→Y,但YX,則稱X→Y是非平凡的函數(shù)依賴。(2)X→Y,但YX,則稱X→Y是平凡的函數(shù)依賴。因為平凡的函數(shù)依賴總是成立的,所以若不特別聲明,本書后面提到的函數(shù)依賴,都不包含平凡的函數(shù)依賴。(3)若X→Y,Y→X,則稱XY。(4)若Y不函數(shù)依賴于X,則記作XY。定義2:在關(guān)系模式R(U)中,如果X→Y,并且對于X的任何一個真子集X',都有X'Y,則稱Y對X完全函數(shù)依賴,記作XY。若X→Y,如果存在X的某一真子集X'(X'X),使X'→Y,則稱Y對X部分函數(shù)依賴,記作XY。定義3:在關(guān)系模式R(U)中,X、Y、Z是R的3個不同的屬性或?qū)傩越M,如果X→Y(YX,Y不是X的子集),且YX,Y→Z,則稱Z對X傳遞函數(shù)依賴,記作XY。加上條件YX,是因為如果Y→X,則XY,實際上是X→Z,是直接函數(shù)依賴而不是傳遞函數(shù)依賴。6)屬性間聯(lián)系決定函數(shù)依賴前面討論的屬性間的3種聯(lián)系,并不是每種聯(lián)系中都存在函數(shù)依賴。(1)1∶1聯(lián)系:如果兩屬性集X、Y之間是1∶1聯(lián)系,則存在函數(shù)依賴:XY。如學(xué)生關(guān)系模式S中,如果不允許學(xué)生重名,則有:snosname。(2)1∶n聯(lián)系:如果兩屬性集X、Y之間是n∶1聯(lián)系,則存在函數(shù)依賴:X→Y,即多方?jīng)Q定一方。如sno→sdept、sno→sage、sno→mname等。(3)m∶n聯(lián)系:如果兩屬性集X、Y之間是m∶n聯(lián)系,則不存在函數(shù)依賴。注意:屬性間的函數(shù)依賴不是指關(guān)系模式R的某個或某些關(guān)系滿足上述限定條件,而是指R的一切關(guān)系都要滿足定義中的限定。只要有一個具體關(guān)系r違反了定義中的條件,就破壞了函數(shù)依賴,使函數(shù)依賴不成立。識別函數(shù)依賴是理解數(shù)據(jù)語義的一個組成部分,依賴是關(guān)于現(xiàn)實世界的斷言,它不能被證明,決定關(guān)系模式中函數(shù)依賴的唯一方法是仔細考察屬性的含義。3.范式利用規(guī)范化理論,使關(guān)系模式的函數(shù)依賴集滿足特定的要求,滿足特定要求的關(guān)系模式稱為范式。關(guān)系按其規(guī)范化程度從低到高可分為5級范式(NormalForm),分別稱為1NF、2NF、3NF(BCNF)、4NF、5NF。規(guī)范化程度較高者必是較低者的子集,即5NF4NFBCNF3NF2NF1NF一個低一級范式的關(guān)系模式,通過模式分解可以轉(zhuǎn)換成若干個高一級范式的關(guān)系模式的集合,這個過程稱為規(guī)范化。1)第一范式(1NF)定義4:如果關(guān)系模式R中不包含多值屬性(每個屬性必須是不可分的數(shù)據(jù)項),則R滿足第一范式(FirstNormalForm),記作R∈1NF。2)第二范式(2NF)定義5:如果關(guān)系模式R(U,F(xiàn))1NF,且R中的每個非主屬性完全函數(shù)依賴于R的某個候選碼,則R滿足第二范式(SecondNormalForm),記作R2NF。不滿足2NF的關(guān)系模式,會產(chǎn)生以下幾個問題。(1)插入異常。插入一個新學(xué)生,若該生沒有選課,則CNO為空,但碼不能為空,所以不能插入。(2)刪除異常。某學(xué)生只選擇了一門課,現(xiàn)在該門課要刪除,則該學(xué)生的基本信息也將刪除。(3)更新異常。某個學(xué)生要從一個系轉(zhuǎn)到另一個系,若該生選修了K門課,必須修改的該學(xué)生相關(guān)的字段值為2K個(系別、住處),一旦有遺漏,將破壞數(shù)據(jù)的一致性。造成以上問題的原因是SDEPT、SLOC部分函數(shù)依賴于碼。解決的辦法是用投影分解把關(guān)系模式分解為多個關(guān)系模式。3)第三范式(3NF)定義6:如果關(guān)系模式R(U,F(xiàn))2NF,且每個非主屬性都不傳遞函數(shù)依賴于任何候選碼,則R滿足第三范式(ThirdNormalForm),記作R3NF。3NF是一個可用的關(guān)系模式應(yīng)滿足的最低范式,也就是說,一個關(guān)系模式如果不滿足3NF,實際上它是不能使用的。4)BCNFBCNF(BoyceCoddNormalForm)是由Boyce和Codd提出的,比上述的3NF又進了一步,通常認(rèn)為BCNF是修正的第三范式,有時也稱為擴充的第三范式。定義7:關(guān)系模式R(U,F(xiàn))1NF,若X→Y且YX時,X必含有碼,則R(
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 陜西中醫(yī)藥大學(xué)《藏醫(yī)藥經(jīng)典著作選讀》2023-2024學(xué)年第一學(xué)期期末試卷
- 陜西國際商貿(mào)學(xué)院《中國財政史》2023-2024學(xué)年第二學(xué)期期末試卷
- 陜西學(xué)前師范學(xué)院《食品微生物》2023-2024學(xué)年第二學(xué)期期末試卷
- 陜西師范大學(xué)《固體礦產(chǎn)勘查案例》2023-2024學(xué)年第二學(xué)期期末試卷
- 陜西服裝工程學(xué)院《彝文典籍導(dǎo)讀》2023-2024學(xué)年第二學(xué)期期末試卷
- 陜西省咸陽市禮泉縣2025屆高三下學(xué)期第五次月考語文試題試卷含解析
- 陜西省延安一中2024-2025學(xué)年高三二模數(shù)學(xué)試題試卷與答案含解析
- 陜西省榆林市佳縣2025屆六年級下學(xué)期5月模擬預(yù)測數(shù)學(xué)試題含解析
- 陜西省漢中市南鄭中學(xué)2025屆高三第五次適應(yīng)性訓(xùn)練生物試題試卷含解析
- 陜西省渭南市2024-2025學(xué)年小升初復(fù)習(xí)數(shù)學(xué)模擬試卷含解析
- 藥械不良事件知識培訓(xùn)
- 2025至2031年中國管道直飲水系統(tǒng)行業(yè)投資前景及策略咨詢研究報告
- 現(xiàn)場材料進場驗收培訓(xùn)
- 外賣騎手交通安全培訓(xùn)
- 【指導(dǎo)規(guī)則】央企控股上市公司ESG專項報告參考指標(biāo)體系
- 電力公司安全生產(chǎn)責(zé)任制度
- 工程機械租賃服務(wù)方案及保障措施 (二)
- 《矩陣式組織結(jié)構(gòu)》課件
- 南京理工大學(xué)泰州科技學(xué)院《電路》2021-2022學(xué)年第一學(xué)期期末試卷
- 【MOOC】公司財務(wù)管理:理論與案例-北京交通大學(xué) 中國大學(xué)慕課MOOC答案
- 教師職業(yè)病健康知識講座
評論
0/150
提交評論