數(shù)據(jù)庫(kù)系統(tǒng)概論之關(guān)系模型課件_第1頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)概論之關(guān)系模型課件_第2頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)概論之關(guān)系模型課件_第3頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)概論之關(guān)系模型課件_第4頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)概論之關(guān)系模型課件_第5頁(yè)
已閱讀5頁(yè),還剩129頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第三章關(guān)系模型--本章內(nèi)容基礎(chǔ)知識(shí)回顧關(guān)系模型概述關(guān)系模型基本概念關(guān)系模型的完整性約束關(guān)系代數(shù)邏輯數(shù)據(jù)庫(kù)設(shè)計(jì):ER到關(guān)系的轉(zhuǎn)換關(guān)系演算第三章關(guān)系模型--本章內(nèi)容基礎(chǔ)知識(shí)回顧1基礎(chǔ)知識(shí)回顧數(shù)據(jù)庫(kù)發(fā)展以數(shù)據(jù)模型劃分第一代網(wǎng)狀、層次數(shù)據(jù)庫(kù)系統(tǒng)。代表:1969年IBM的IMS(informationManagementSystem);美國(guó)CODASYL(ConferenceOnDataSystemLanguage)下屬的DBTG(DataBaseTaskGroup)于60年代末70年代初提議的方法。層次數(shù)據(jù)庫(kù)是數(shù)據(jù)庫(kù)的先驅(qū),而網(wǎng)狀數(shù)據(jù)庫(kù)是數(shù)據(jù)庫(kù)概念、方法、技術(shù)的奠基者。第二代關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。1970年IBM公司的研究員E.F.Codd提出了數(shù)據(jù)庫(kù)的關(guān)系模型,關(guān)系方法和關(guān)系數(shù)據(jù)理論的研究。代表:IBM的SystemR和Berkele大學(xué)的INGRES,成果:奠定了關(guān)系模型的理論基礎(chǔ);研究了關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言,有關(guān)系代數(shù)、關(guān)系演算、SQL語(yǔ)言、QBE等;研制了大量的RDBMS的原型,實(shí)現(xiàn)了查詢優(yōu)化、并發(fā)控制、故障恢復(fù)等關(guān)鍵技術(shù);基礎(chǔ)知識(shí)回顧數(shù)據(jù)庫(kù)發(fā)展2基礎(chǔ)知識(shí)回顧數(shù)據(jù)庫(kù)發(fā)展第三代以面向?qū)ο髷?shù)據(jù)模型為主要特征的數(shù)據(jù)庫(kù)系統(tǒng)。模型更加豐富、數(shù)據(jù)管理功能功能更加強(qiáng)大、能支持傳統(tǒng)數(shù)據(jù)庫(kù)難以支持的新的應(yīng)用。特征:支持?jǐn)?shù)據(jù)管理、對(duì)象管理和知識(shí)管理;保持或者繼承第二代數(shù)據(jù)庫(kù)的技術(shù);對(duì)其他系統(tǒng)開(kāi)放(支持?jǐn)?shù)據(jù)庫(kù)語(yǔ)言標(biāo)準(zhǔn)和標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議)。僅支持面向?qū)ο髷?shù)據(jù)模型并不能稱為第三代數(shù)據(jù)庫(kù)系統(tǒng)?;A(chǔ)知識(shí)回顧數(shù)據(jù)庫(kù)發(fā)展3基礎(chǔ)知識(shí)回顧關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。產(chǎn)品的發(fā)展情況:(1)對(duì)關(guān)系模型的支持:第一階段(70年代):僅支持關(guān)系數(shù)據(jù)結(jié)構(gòu)、基本的關(guān)系操作(選擇、投影、連接)。如:dBASE第二階段(80年代):SQL成為關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言的國(guó)際標(biāo)準(zhǔn)第三階段(90年代):加強(qiáng)了完整性、安全性的支持。(2)運(yùn)行環(huán)境:第一階段:在大、中、小型機(jī)上的RDBMS,多用戶系統(tǒng)第二階段:提高可移植性,能在多種硬件平臺(tái)、和操作系統(tǒng)環(huán)境下運(yùn)行;聯(lián)網(wǎng),向分布式發(fā)展,支持多種協(xié)議。第三階段:分布式數(shù)據(jù)庫(kù)和客戶/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫(kù)系統(tǒng)的推出。追求開(kāi)放性(可移植性、可連接性、可伸縮性)?;A(chǔ)知識(shí)回顧關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)4基礎(chǔ)知識(shí)回顧關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。產(chǎn)品的發(fā)展情況:(3)RDBMS系統(tǒng)構(gòu)成:第一階段:早期的RDBMS產(chǎn)品主要提供數(shù)據(jù)定義、數(shù)據(jù)存取、數(shù)據(jù)控制等基本操作和數(shù)據(jù)存儲(chǔ)組織、并發(fā)控制、安全性、完整性檢查、系統(tǒng)恢復(fù)等RDBMS的核心功能。第二階段:以RDBMS基本功能為核心,開(kāi)發(fā)外圍軟件系統(tǒng),如:FORM報(bào)表生成系統(tǒng),REPORT報(bào)表系統(tǒng)、MENU菜單生成系統(tǒng)、GRAPHIC圖形軟件等等。為用戶提供了良好的第四代應(yīng)用開(kāi)發(fā)環(huán)境。(4)對(duì)應(yīng)用的支持:第一階段:用于信息管理、輔助決策等應(yīng)用領(lǐng)域。第二階段:聯(lián)機(jī)事務(wù)處理的應(yīng)用領(lǐng)域,提高RDBMS事務(wù)處理的能力。第三階段:由集中到分布,由局部到整個(gè)企業(yè)甚至整個(gè)行業(yè)。支持整個(gè)企業(yè)的聯(lián)機(jī)事務(wù)處理。基礎(chǔ)知識(shí)回顧關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)5關(guān)系模型概述為什么要學(xué)習(xí)關(guān)系模型?關(guān)系模型是目前廣泛使用的一種數(shù)據(jù)模型IBMDB2,MiscrosoftSQLServer,Informix,Oracle,Sybase,…………….僅有少量的遺產(chǎn)系統(tǒng)使用舊的數(shù)據(jù)模型IBM的IMS目前仍在使用目前關(guān)系模型的競(jìng)爭(zhēng)者:面向?qū)ο蟮臄?shù)據(jù)模型Objectstore,Versant,Ontos,……….對(duì)象關(guān)系模型:InformixUniversalServer,UniSQL,O2,ORACLE,DB2,………...關(guān)系模型概述為什么要學(xué)習(xí)關(guān)系模型?6關(guān)系模型概述關(guān)系數(shù)據(jù)模型是由E.F.Codd于1970年提出在此之前大多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)是基于層次數(shù)據(jù)模型和網(wǎng)狀數(shù)據(jù)模型的關(guān)系模型給數(shù)據(jù)庫(kù)領(lǐng)域帶來(lái)了一場(chǎng)革命,并取代了舊的數(shù)據(jù)模型,E.F.Codd并因此于1983年獲得TuringAwards在70年代中期,IBM和UC-Berkeley開(kāi)發(fā)了早期的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)關(guān)系模型概述關(guān)系數(shù)據(jù)模型是由E.F.Codd于1970年提出7關(guān)系模型概述現(xiàn)在的關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)有IBM的DB2InformixOracleSybaseMicrosoft的Access,SQLServerFox-xParadox關(guān)系模型概述現(xiàn)在的關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)有8關(guān)系模型概述關(guān)系模型是十分簡(jiǎn)單的關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)非常單一,實(shí)體、聯(lián)系都表示成關(guān)系一個(gè)關(guān)系是一個(gè)具有行和列的二維表關(guān)系模型給出關(guān)系操作的能力,但不對(duì)RDBMS語(yǔ)言給出具體的語(yǔ)法要求查詢操作:選擇、投影、連接、除、并、交、差等更新操作:增加、刪除和修改一次一集合關(guān)系代數(shù)和關(guān)系演算高度非過(guò)程化關(guān)系模型概述關(guān)系模型是十分簡(jiǎn)單的9關(guān)系模型概述關(guān)系模型的三類完整性約束系統(tǒng)支持:實(shí)體完整性和參照完整性用戶定義:用戶定義的完整性本章主要討論以下問(wèn)題關(guān)系模型是如何表示數(shù)據(jù)的關(guān)系模型可以表示何種完整性約束數(shù)據(jù)是如何被查詢的如何將由ER模型表示數(shù)據(jù)庫(kù)概念模式轉(zhuǎn)換為關(guān)系模式(模式)的視圖(外模式)問(wèn)題關(guān)系模型概述關(guān)系模型的三類完整性約束10關(guān)系模型基本概念關(guān)系域:一組具有相同數(shù)據(jù)類型值的集合笛卡爾積:給定一組域D1,D2,…,Dn,它們的笛卡爾積為:D1XD2X…Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…n)元組:每一個(gè)元素(d1,d2,…,dn)叫做一個(gè)n元組,或元組分量:元素中的每一個(gè)值di叫做一個(gè)分量基數(shù):若Di為有限集,其基數(shù)為mi,則D1XD2X…Dn的基數(shù)為:關(guān)系模型基本概念關(guān)系11關(guān)系模型基本概念例如:給定三個(gè)域D1=MAN={王兵,李平,張英},D2=WOMAN={丁梅,吳芳}D3=CHILD={王一,李一,李二}D1XD2XD3={(王兵,丁梅,王一),(王兵,丁梅,李一),(王兵,丁梅,李二),(王兵,吳芳,王一),(王兵,吳芳,李一),…}笛卡爾積可以表示為一個(gè)二維表,表中的每一行對(duì)應(yīng)一個(gè)元組,每一列對(duì)應(yīng)一個(gè)域關(guān)系模型基本概念例如:給定三個(gè)域D1=MAN={王兵,李平,12關(guān)系模型基本概念MANWOMANCHILD王兵丁梅王一王兵丁梅李一王兵丁梅李二王兵吳芳王一王兵吳芳李一王兵吳芳李二李平丁梅王一李平丁梅李一李平丁梅李二李平吳芳王一李平吳芳李一李平吳芳李二MANWOMANCHILD張英丁梅王一張英丁梅李一張英丁梅李二張英吳芳王一張英吳芳李一張英吳芳李二續(xù)左表關(guān)系模型基本概念MANWOMANCHIL13關(guān)系模型基本概念關(guān)系:D1XD2X…Dn的子集叫做在域D1,D2,…,Dn上的關(guān)系表示為R(D1,D2,…,Dn)關(guān)系的目或度:n單元關(guān)系:n=1二元關(guān)系:n=2關(guān)系是一個(gè)二維表(子集)例如:假設(shè)王兵的妻子是丁梅,他們的孩子是王一,李平的妻子是吳芳,他們的孩子是李一和李二,則取笛卡爾積的一個(gè)子集構(gòu)造一個(gè)關(guān)系FAMILY關(guān)系模型基本概念關(guān)系:D1XD2X…Dn的子集叫做在域D114關(guān)系模型基本概念在R(D1,D2,…,Dn)表示中,域可以重名,給每列一個(gè)名字,稱為屬性,關(guān)系表示為:R(A1,A2,…,An)例如:FAMILY(FATHER,MOTHER,CHILD)MANWOMANCHILD王兵丁梅王一李平吳芳李一李平吳芳李二FAMILY關(guān)系模型基本概念在R(D1,D2,…,Dn)表示中,域15關(guān)系模型基本概念候選碼:能夠唯一標(biāo)識(shí)一個(gè)元組的最小屬性組主碼:主屬性:候選碼中的屬性非碼屬性:不包含在任何候選碼中的屬性關(guān)系的性質(zhì):關(guān)系模型要求在一個(gè)關(guān)系中不能存在完全相同的元組(但實(shí)際商用關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)支持重復(fù)元組)關(guān)系中元組行的序并不重要關(guān)系中列的序并不重要(但有些系統(tǒng)例外)關(guān)系模型基本概念候選碼:能夠唯一標(biāo)識(shí)一個(gè)元組的最小屬性組16關(guān)系模型基本概念分量必須取原子值不同的列可以出自同一個(gè)域給定域:person={王兵,李平,張英,丁梅,吳芳}child={王義,李一,李二}MANWOMANCHILDfirstsecond王兵丁梅王一李平吳芳李一李二FAMILYbad關(guān)系模型基本概念分量必須取原子值MANWOMAN17關(guān)系模型基本概念構(gòu)造FAMILY關(guān)系,仍然取personXpersonXchild的子集,表示為:FAMILY(FATHER,MOTHER,CHILD)此處dom(FATHER)=dom(MOTHER)=person關(guān)系模式:關(guān)系的描述形式化表示:R(U,D,dom,F),簡(jiǎn)記為R(U)或R(A1,A2,…,An)屬性向域的映象常常說(shuō)明為屬性的類型和長(zhǎng)度關(guān)系模式是型,關(guān)系是值關(guān)系模型基本概念構(gòu)造FAMILY關(guān)系,仍然取personX18關(guān)系模型基本概念在關(guān)系模型中,實(shí)體和聯(lián)系都是用關(guān)系表示的例如:左圖

學(xué)生(學(xué)號(hào),姓名,性別,專業(yè),年齡)

課程(課程號(hào),課程名,學(xué)時(shí),學(xué)分)選修(學(xué)號(hào),課程號(hào),成績(jī))一個(gè)關(guān)系數(shù)據(jù)庫(kù)是一組關(guān)系的集合;關(guān)系數(shù)據(jù)庫(kù)模式則是該數(shù)據(jù)庫(kù)所有關(guān)系模式的集合學(xué)生課程選修mn關(guān)系模型基本概念在關(guān)系模型中,實(shí)體和聯(lián)系都是用關(guān)系表示的學(xué)生19關(guān)系模型--關(guān)系的完整性關(guān)系模型的完整性是對(duì)關(guān)系的某種約束實(shí)體完整性:主碼中的屬性不可取空值(例子)參照完整性:例子:對(duì)于關(guān)系模式學(xué)生(學(xué)號(hào),姓名,性別,專業(yè),年齡)

課程(課程號(hào),課程名,學(xué)時(shí),學(xué)分)選修(學(xué)號(hào),課程號(hào),成績(jī))外碼:設(shè)F是關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系R的碼,如果F與關(guān)系S的主碼Ks相對(duì)應(yīng),則稱F為關(guān)系R的外碼關(guān)系模型--關(guān)系的完整性關(guān)系模型的完整性是對(duì)關(guān)系的某種約束20關(guān)系模型--關(guān)系的完整性參照關(guān)系R,被參照關(guān)系S參照完整性:F的取值必須為:或者取空值或者等于S中某個(gè)元組的主碼值例如:部門(部門號(hào),部門名,電話)

雇員(雇員號(hào),雇員名,職稱,部門號(hào))雇員中部門號(hào)的取值部門雇員擁有1n關(guān)系模型--關(guān)系的完整性參照關(guān)系R,被參照關(guān)系S部門雇員擁有21關(guān)系模型--關(guān)系的完整性用戶定義的完整性:任何關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)都應(yīng)支持實(shí)體完整性和參照完整性用戶定義的完整性定義某一具體應(yīng)用中所涉及的數(shù)據(jù)必須滿足的語(yǔ)義要求,例如年齡的取值關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)提供定義和檢驗(yàn)這類完整性機(jī)制關(guān)系模型--關(guān)系的完整性用戶定義的完整性:22關(guān)系模型--關(guān)系代數(shù)關(guān)系代數(shù)運(yùn)算分為:傳統(tǒng)的集合運(yùn)算和專門的關(guān)系運(yùn)算集合運(yùn)算前提:關(guān)系R和關(guān)系S具有相同的目,相應(yīng)的屬性取自同一個(gè)域并:關(guān)系R和關(guān)系S的并記作:RS(下頁(yè))差:關(guān)系R和關(guān)系S的差記作:R-S交:關(guān)系R和關(guān)系S的交記作:RS關(guān)系模型--關(guān)系代數(shù)關(guān)系代數(shù)運(yùn)算分為:傳統(tǒng)的集合運(yùn)算和專門的23關(guān)系模型--關(guān)系代數(shù)ABCABCABCa1b1c1a1b2c2a1b1c1a1b2c2a1b3c2a1b2c2a2b2c1a2b2c1a2b2c1a1b3c2ABCABCa1b2c2a1b1c1a2b2c1RSRSRSR-S關(guān)系模型--關(guān)系代數(shù)ABC24關(guān)系模型--關(guān)系代數(shù)R×SABCABCABCa1b1c1a1b1c1a1b2c2a1b2c2a1b1c1a1b3c2a2b2c1a1b1c1a2b2c1a1b2c2a1b2c2ABCa1b2c2a1b3c2a1b2c2a1b2c2a2b2c1a1b3c2a2b2c1a1b2c2a2b2c1a2b2c1a1b3c2a2b2c1a2b2c1RS關(guān)系模型--關(guān)系代數(shù)R×SABC25關(guān)系模型--關(guān)系代數(shù)廣義笛卡爾積:兩個(gè)分別為n和m目的關(guān)系R和S的廣義笛卡爾積是一個(gè)n+m列的元組的集合。若R有k1個(gè)元組,S有k2個(gè)元組,則廣義笛卡爾積有k1×k2個(gè)元組記作:R×S關(guān)系模型--關(guān)系代數(shù)廣義笛卡爾積:兩個(gè)分別為n和m目的關(guān)系R26關(guān)系的建立和修改--SQL-92SQL語(yǔ)言的簡(jiǎn)單發(fā)展歷史SQL語(yǔ)言是由IBM公司在SystemR系統(tǒng)中首先提出SQL在1986年被ANSI采納為標(biāo)準(zhǔn),稱為SQL-86在1989又對(duì)SQL標(biāo)準(zhǔn)進(jìn)行了少量修改,稱為SQL-89在1992年ANSI和ISO對(duì)SQL標(biāo)準(zhǔn)進(jìn)行主要修改,稱之為SQL-92在1999年又對(duì)SQL-92進(jìn)行大量修改(面向?qū)ο蟮奶攸c(diǎn)),稱之為SQL-3,有時(shí)也稱為SQL-99關(guān)系的建立和修改--SQL-92SQL語(yǔ)言的簡(jiǎn)單發(fā)展歷史27關(guān)系的建立和修改關(guān)系表建立CREATETABLEStudents(sidCHAR(20),nameCHAR(30),loginCHAR(20),ageINTEGER,gpaREAL)關(guān)系表刪除DROPTABLEStudents關(guān)系表修改ALTERTABLEStudentsADDCOLUMNmaiden-nameCHAR(10)關(guān)系的建立和修改關(guān)系表建立28關(guān)鍵字約束--實(shí)現(xiàn)實(shí)體完整性通過(guò)UNIQUE子句來(lái)定義候選碼(候選關(guān)鍵字)通過(guò)PRIMARYKEY子句來(lái)定義主碼(主關(guān)鍵字)CREATETABLEStudents(sidCHAR(20),nameCHAR(30),loginCHAR(20),ageINTEGER,gpaREAL,UNIQUE(name,age),UNIQUE(login),PRIMARYKEY(sid))關(guān)鍵字約束--實(shí)現(xiàn)實(shí)體完整性通過(guò)UNIQUE子句來(lái)定義候選碼29外鍵約束--實(shí)現(xiàn)參照完整性外鍵約束指的是兩個(gè)關(guān)系之間的關(guān)鍵字約束關(guān)系,考慮下列關(guān)系Students(sid,name,login,age,gpa)Enrolled(sid,cid,grade)從語(yǔ)義上來(lái)講,在關(guān)系Enrolled中出現(xiàn)的sid值,在關(guān)系Students中必須存在,Enrolled中的sid稱為外鍵,引用關(guān)系Students中的主關(guān)鍵字sid外鍵必須與被引用關(guān)系中的主關(guān)鍵字相匹配可以有不同的名字列數(shù)要相同,且要具有兼容的數(shù)據(jù)類型外鍵約束--實(shí)現(xiàn)參照完整性外鍵約束指的是兩個(gè)關(guān)系之間的關(guān)鍵字30外鍵約束----示例外鍵約束----示例31外鍵約束的語(yǔ)義在被參照關(guān)系中關(guān)鍵字的值在參照關(guān)系中不一定出現(xiàn)但在參照關(guān)系中出現(xiàn)的關(guān)鍵字值在被參照關(guān)系中必須要出現(xiàn)如果我們向關(guān)系Enrolled中插入元組<55555,Art104,A>,這個(gè)操作將被拒絕因?yàn)檫`反了外鍵約束外鍵約束的語(yǔ)義在被參照關(guān)系中關(guān)鍵字的值在參照關(guān)系中不一定出現(xiàn)32外鍵約束的語(yǔ)義對(duì)于操作:將關(guān)系Students中的<53666,Jones,joines@cs,18,3.4>刪除,有兩種處理禁止這種刪除操作同時(shí)刪除參照關(guān)系中的相關(guān)元組值得注意的是外鍵可能來(lái)自于同一關(guān)系,也就是被參照關(guān)系就是參照關(guān)系Students(sid,name,login,age,gpa,partner),partner是對(duì)sid的一個(gè)外鍵約束Courses(cid,name,desc,preq),preq是對(duì)cid的一個(gè)外鍵約束當(dāng)一門課程沒(méi)有前期課程時(shí),preq可以為空,空值并不違反外鍵約束外鍵約束的語(yǔ)義對(duì)于操作:將關(guān)系Students中的<536633外鍵約束的定義---SQL-92外鍵約束的定義---SQL-9234邏輯數(shù)據(jù)庫(kù)設(shè)計(jì):ER到關(guān)系的轉(zhuǎn)換實(shí)體集到表的轉(zhuǎn)換實(shí)體集中的屬性映射為表中的屬性實(shí)體集中的(主)關(guān)鍵字映射為關(guān)系中的(主)關(guān)鍵字實(shí)體集中屬性的域映射為關(guān)系中屬性的域邏輯數(shù)據(jù)庫(kù)設(shè)計(jì):ER到關(guān)系的轉(zhuǎn)換實(shí)體集到表的轉(zhuǎn)換35實(shí)體集到表的轉(zhuǎn)換--示例實(shí)體集到表的轉(zhuǎn)換--示例36多對(duì)多聯(lián)系集到表的轉(zhuǎn)換多對(duì)多聯(lián)系被映射為一個(gè)關(guān)系表,包括屬性:每個(gè)參加聯(lián)系的實(shí)體集的主關(guān)鍵字屬性,作為外鍵存在所有外鍵構(gòu)成該實(shí)體集的主關(guān)鍵字聯(lián)系集本身的屬性--一般屬性多對(duì)多聯(lián)系集到表的轉(zhuǎn)換多對(duì)多聯(lián)系被映射為一個(gè)關(guān)系表,包括屬性37多對(duì)多聯(lián)系集到表的轉(zhuǎn)換--例1mn多對(duì)多聯(lián)系集到表的轉(zhuǎn)換--例1mn38多對(duì)多聯(lián)系集到表的轉(zhuǎn)換--例1多對(duì)多聯(lián)系集到表的轉(zhuǎn)換--例139多對(duì)多聯(lián)系集到表的轉(zhuǎn)換--例2mnp多對(duì)多聯(lián)系集到表的轉(zhuǎn)換--例2mnp40多對(duì)多聯(lián)系集到表的轉(zhuǎn)換--例2CREATETABLEWork3-In(ssnCHAR(11),didinteger,fromdate,todate,PRIMARYKEY(ssn,did,from,to)FOREIGKEY(ssn)REFERENCESEmployees,ONDELETENOACTION,FOREIGKEY(did)REFERENCESDepartments,FOREIGNKEY(from)REFERENCEDURATION,FOREIGNKEY(to)REFERENCEDURATION)多對(duì)多聯(lián)系集到表的轉(zhuǎn)換--例2CREATETABLEWo41一對(duì)多聯(lián)系集的翻譯1n一對(duì)多聯(lián)系集的翻譯1n42一對(duì)多聯(lián)系集的翻譯----方法一將一對(duì)多聯(lián)系翻譯為一個(gè)獨(dú)立的表一對(duì)多聯(lián)系集的翻譯----方法一將一對(duì)多聯(lián)系翻譯為一個(gè)獨(dú)立43一對(duì)多聯(lián)系集的翻譯----方法二將Manages和Departments翻譯為一個(gè)關(guān)系一對(duì)多聯(lián)系集的翻譯----方法二將Manages和Depa44關(guān)于聯(lián)系集到關(guān)系映射的思考題在一對(duì)多聯(lián)系中,Manages和Departments為什么可以合并為一個(gè)關(guān)系?對(duì)于一對(duì)多聯(lián)系翻譯的兩種方法的優(yōu)缺點(diǎn)是什么?對(duì)于一個(gè)多對(duì)多聯(lián)系集為什么必須映射為一個(gè)獨(dú)立的關(guān)系表?一對(duì)一聯(lián)系應(yīng)如何翻譯?關(guān)于聯(lián)系集到關(guān)系映射的思考題在一對(duì)多聯(lián)系中,Manages和45思考題部分答案方法一和方法二的優(yōu)缺點(diǎn)方法一多產(chǎn)生一個(gè)關(guān)系對(duì)于有些查詢,方法一需要兩次連接,而方法二只需要一次連接即可方法二的缺點(diǎn)是浪費(fèi)空間,如果有些部門沒(méi)有經(jīng)理的話思考題部分答案方法一和方法二的優(yōu)缺點(diǎn)46具有參加約束的聯(lián)系集的翻譯1nnm具有參加約束的聯(lián)系集的翻譯1nnm47具有參加約束的1:n(1:1)聯(lián)系集的翻譯具有參加約束的1:n(1:1)聯(lián)系集的翻譯48具有參加約束的聯(lián)系集的翻譯ssn的非空定義反映了參加約束使用上面的第一種方法也可以表示Manages和Departments,但使用方法二比方法一好,(why?因?yàn)榉椒ǘ速M(fèi)空間的缺點(diǎn)已不復(fù)存在)具有參加約束的聯(lián)系集的翻譯ssn的非空定義反映了參加約束49弱實(shí)體集的翻譯一個(gè)弱實(shí)體總是參加一個(gè)二元一對(duì)多聯(lián)系(?)全參加約束1m弱實(shí)體集的翻譯一個(gè)弱實(shí)體總是參加一個(gè)二元一對(duì)多聯(lián)系(?)1m50弱實(shí)體集的翻譯使用具有1:n聯(lián)系的第二種翻譯方法(Why?),但必須考慮下面的具體要求必須考慮弱實(shí)體集有一個(gè)部分關(guān)鍵字當(dāng)一個(gè)Owner實(shí)體被刪除以后,弱實(shí)體集中相應(yīng)的實(shí)體也應(yīng)被刪除弱實(shí)體集的翻譯使用具有1:n聯(lián)系的第二種翻譯方法(Why?)51弱實(shí)體集的翻譯弱實(shí)體集的翻譯52類層次的翻譯類層次的翻譯53類層次的翻譯--方法一三個(gè)實(shí)體集翻譯成三個(gè)關(guān)系實(shí)體集Employees的翻譯比較簡(jiǎn)單關(guān)系Hourly_Emps的屬性包括:ssn,hourly_wages,hours_worked,;ssn是主關(guān)鍵字;同時(shí)ssn一個(gè)外鍵;當(dāng)超類中實(shí)體被刪除時(shí)子類中的對(duì)象也必須刪除Contract_Emps的翻譯相類似思考題:為什么在關(guān)系Hourly_Emps的屬性中不包含屬性name和lot?

體現(xiàn)繼承性了嗎?類層次的翻譯--方法一三個(gè)實(shí)體集翻譯成三個(gè)關(guān)系54類層次的翻譯--方法一CREATETABLEHourly_Emps(ssnCHAR(20),hourly_wagesREAL,hours_workedINTEGER,PRIMARYKEY(ssn),FOREIGKEY(ssn)REFERENCESEmployees,ONDELETECASCADE)類層次的翻譯--方法一CREATETABLEHourl55類層次的翻譯--方法二三個(gè)實(shí)體集翻譯成兩個(gè)關(guān)系僅生成兩個(gè)關(guān)系:Hourly_Emps和Contract_Emps,他們都包含超類Employees的屬性,除了主關(guān)鍵字約束以外,不需要定義任何約束當(dāng)然,對(duì)于overlap約束只能用通用約束機(jī)制來(lái)實(shí)現(xiàn)對(duì)于方法一來(lái)講,covering約束也只能用通用約束機(jī)制來(lái)實(shí)現(xiàn)類層次的翻譯--方法二三個(gè)實(shí)體集翻譯成兩個(gè)關(guān)系56類層次的翻譯--兩種方法的比較方法一:當(dāng)查詢涉及到Employees的屬性和其它一些細(xì)節(jié)屬性時(shí)需要連接操作;當(dāng)查詢僅涉及到Employees的屬性時(shí)則在Employees關(guān)系上進(jìn)行即可;另一個(gè)優(yōu)點(diǎn)是可以存儲(chǔ)非Hourly_Emps和Contract_Emps的實(shí)體方法二:主要確定無(wú)法存儲(chǔ)非Hourly_Emps和Contract_Emps的實(shí)體,且name和lot出現(xiàn)了兩次;優(yōu)點(diǎn)是僅涉及到Hourly_Emps或Contract_Emps的查詢僅在一個(gè)關(guān)系上進(jìn)行即可,不需要額外的連接操作,但涉及到所有雇員的查詢則需要在兩個(gè)關(guān)系上進(jìn)行;類層次的翻譯--兩種方法的比較方法一:當(dāng)查詢涉及到Empl57實(shí)例分析一個(gè)公司數(shù)據(jù)庫(kù)需要存儲(chǔ)雇員、部門和雇員小孩的信息。雇員工作在部門(一個(gè)雇員只能工作在一個(gè)部門),每個(gè)部門由一個(gè)雇員管理,每個(gè)雇員小孩的名字是唯一的,假定小孩只有一個(gè)家長(zhǎng)工作在這個(gè)公司,而且我們不關(guān)心哪些已經(jīng)調(diào)離雇員的小孩情況。請(qǐng)畫(huà)出ER圖撲獲這些信息。雇員(ssn,salary,phone)部門(dno,dname,budget)小孩(name,age)實(shí)例分析一個(gè)公司數(shù)據(jù)庫(kù)需要存儲(chǔ)雇員、部門和雇員小孩的信息。雇58實(shí)例分析部門雇員小孩工作有1m管理n11ndnodnamebudgetssnsalaryphonenameage雇員(ssn,salary,phone,dno)部門(dno,dname,budget,ssnnotnull)小孩(ssn,name,age)實(shí)例分析部門雇員小孩工作有1m管理n11ndnodnameb59實(shí)例分析一個(gè)大學(xué)數(shù)據(jù)庫(kù)包括教授、課程信息。教授講授課程,下面幾種情況都是描述有關(guān)講授聯(lián)系集的,對(duì)于每一種情況畫(huà)ER圖描述教授可以在幾個(gè)學(xué)期講授同一門課程,但僅最近一次的講授活動(dòng)需被記錄下來(lái)教授可以在幾個(gè)學(xué)期講授同一門課程,每次講授活動(dòng)需被記錄下來(lái)每個(gè)教授必須講授課程每個(gè)教授只講授一門課程實(shí)例分析一個(gè)大學(xué)數(shù)據(jù)庫(kù)包括教授、課程信息。教授講授課程,下面60實(shí)例分析每個(gè)教授只講授一門課程,每門課程可有幾位教授講授假定一些課程可由一組教授聯(lián)合講授假定一些特定課程只能由一組教授聯(lián)合講授,且這些教授中的任一位不可能獨(dú)立講授這門課程(思考題)實(shí)例分析每個(gè)教授只講授一門課程,每門課程可有幾位教授講授61實(shí)例分析教授課程講授nm職工號(hào)姓名電話課號(hào)課時(shí)學(xué)分班級(jí)學(xué)期人數(shù)(1)實(shí)例分析教授課程講授nm職工號(hào)姓名電話課號(hào)課時(shí)學(xué)分班級(jí)學(xué)期人62實(shí)例分析教授課程講授nm職工號(hào)姓名電話課號(hào)課時(shí)學(xué)分班級(jí)學(xué)期人數(shù)教授課程講授nm職工號(hào)姓名電話課號(hào)課時(shí)學(xué)分班級(jí)學(xué)期人數(shù)?講授情況p(2)實(shí)例分析教授課程講授nm職工號(hào)姓名電話課號(hào)課時(shí)學(xué)分班級(jí)學(xué)期人63實(shí)例分析教授課程講授nm職工號(hào)姓名電話課號(hào)課時(shí)學(xué)分班級(jí)學(xué)期人數(shù)講授情況n(3)實(shí)例分析教授課程講授nm職工號(hào)姓名電話課號(hào)課時(shí)學(xué)分班級(jí)學(xué)期人64實(shí)例分析教授課程講授m1職工號(hào)姓名電話課號(hào)課時(shí)學(xué)分班級(jí)學(xué)期人數(shù)講授情況n(4,5)實(shí)例分析教授課程講授m1職工號(hào)姓名電話課號(hào)課時(shí)學(xué)分班級(jí)學(xué)期人65實(shí)例分析教授課程講授m1職工號(hào)姓名電話課號(hào)課時(shí)學(xué)分班級(jí)講授號(hào)人數(shù)講授情況n學(xué)期(6)實(shí)例分析教授課程講授m1職工號(hào)姓名電話課號(hào)課時(shí)學(xué)分班級(jí)講授號(hào)66實(shí)例分析教授課程m1職工號(hào)姓名電話課號(hào)課時(shí)學(xué)分n(7)組構(gòu)成nmISA一般課程特定課程講授2講授11參考答案實(shí)例分析教授課程m1職工號(hào)姓名電話課號(hào)課時(shí)學(xué)分n(7)組構(gòu)成67第三章關(guān)系模型--本章內(nèi)容基礎(chǔ)知識(shí)回顧關(guān)系模型概述關(guān)系模型基本概念關(guān)系模型的完整性約束關(guān)系代數(shù)邏輯數(shù)據(jù)庫(kù)設(shè)計(jì):ER到關(guān)系的轉(zhuǎn)換關(guān)系演算第三章關(guān)系模型--本章內(nèi)容基礎(chǔ)知識(shí)回顧68基礎(chǔ)知識(shí)回顧數(shù)據(jù)庫(kù)發(fā)展以數(shù)據(jù)模型劃分第一代網(wǎng)狀、層次數(shù)據(jù)庫(kù)系統(tǒng)。代表:1969年IBM的IMS(informationManagementSystem);美國(guó)CODASYL(ConferenceOnDataSystemLanguage)下屬的DBTG(DataBaseTaskGroup)于60年代末70年代初提議的方法。層次數(shù)據(jù)庫(kù)是數(shù)據(jù)庫(kù)的先驅(qū),而網(wǎng)狀數(shù)據(jù)庫(kù)是數(shù)據(jù)庫(kù)概念、方法、技術(shù)的奠基者。第二代關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。1970年IBM公司的研究員E.F.Codd提出了數(shù)據(jù)庫(kù)的關(guān)系模型,關(guān)系方法和關(guān)系數(shù)據(jù)理論的研究。代表:IBM的SystemR和Berkele大學(xué)的INGRES,成果:奠定了關(guān)系模型的理論基礎(chǔ);研究了關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言,有關(guān)系代數(shù)、關(guān)系演算、SQL語(yǔ)言、QBE等;研制了大量的RDBMS的原型,實(shí)現(xiàn)了查詢優(yōu)化、并發(fā)控制、故障恢復(fù)等關(guān)鍵技術(shù);基礎(chǔ)知識(shí)回顧數(shù)據(jù)庫(kù)發(fā)展69基礎(chǔ)知識(shí)回顧數(shù)據(jù)庫(kù)發(fā)展第三代以面向?qū)ο髷?shù)據(jù)模型為主要特征的數(shù)據(jù)庫(kù)系統(tǒng)。模型更加豐富、數(shù)據(jù)管理功能功能更加強(qiáng)大、能支持傳統(tǒng)數(shù)據(jù)庫(kù)難以支持的新的應(yīng)用。特征:支持?jǐn)?shù)據(jù)管理、對(duì)象管理和知識(shí)管理;保持或者繼承第二代數(shù)據(jù)庫(kù)的技術(shù);對(duì)其他系統(tǒng)開(kāi)放(支持?jǐn)?shù)據(jù)庫(kù)語(yǔ)言標(biāo)準(zhǔn)和標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議)。僅支持面向?qū)ο髷?shù)據(jù)模型并不能稱為第三代數(shù)據(jù)庫(kù)系統(tǒng)。基礎(chǔ)知識(shí)回顧數(shù)據(jù)庫(kù)發(fā)展70基礎(chǔ)知識(shí)回顧關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。產(chǎn)品的發(fā)展情況:(1)對(duì)關(guān)系模型的支持:第一階段(70年代):僅支持關(guān)系數(shù)據(jù)結(jié)構(gòu)、基本的關(guān)系操作(選擇、投影、連接)。如:dBASE第二階段(80年代):SQL成為關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言的國(guó)際標(biāo)準(zhǔn)第三階段(90年代):加強(qiáng)了完整性、安全性的支持。(2)運(yùn)行環(huán)境:第一階段:在大、中、小型機(jī)上的RDBMS,多用戶系統(tǒng)第二階段:提高可移植性,能在多種硬件平臺(tái)、和操作系統(tǒng)環(huán)境下運(yùn)行;聯(lián)網(wǎng),向分布式發(fā)展,支持多種協(xié)議。第三階段:分布式數(shù)據(jù)庫(kù)和客戶/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫(kù)系統(tǒng)的推出。追求開(kāi)放性(可移植性、可連接性、可伸縮性)。基礎(chǔ)知識(shí)回顧關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)71基礎(chǔ)知識(shí)回顧關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。產(chǎn)品的發(fā)展情況:(3)RDBMS系統(tǒng)構(gòu)成:第一階段:早期的RDBMS產(chǎn)品主要提供數(shù)據(jù)定義、數(shù)據(jù)存取、數(shù)據(jù)控制等基本操作和數(shù)據(jù)存儲(chǔ)組織、并發(fā)控制、安全性、完整性檢查、系統(tǒng)恢復(fù)等RDBMS的核心功能。第二階段:以RDBMS基本功能為核心,開(kāi)發(fā)外圍軟件系統(tǒng),如:FORM報(bào)表生成系統(tǒng),REPORT報(bào)表系統(tǒng)、MENU菜單生成系統(tǒng)、GRAPHIC圖形軟件等等。為用戶提供了良好的第四代應(yīng)用開(kāi)發(fā)環(huán)境。(4)對(duì)應(yīng)用的支持:第一階段:用于信息管理、輔助決策等應(yīng)用領(lǐng)域。第二階段:聯(lián)機(jī)事務(wù)處理的應(yīng)用領(lǐng)域,提高RDBMS事務(wù)處理的能力。第三階段:由集中到分布,由局部到整個(gè)企業(yè)甚至整個(gè)行業(yè)。支持整個(gè)企業(yè)的聯(lián)機(jī)事務(wù)處理?;A(chǔ)知識(shí)回顧關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)72關(guān)系模型概述為什么要學(xué)習(xí)關(guān)系模型?關(guān)系模型是目前廣泛使用的一種數(shù)據(jù)模型IBMDB2,MiscrosoftSQLServer,Informix,Oracle,Sybase,…………….僅有少量的遺產(chǎn)系統(tǒng)使用舊的數(shù)據(jù)模型IBM的IMS目前仍在使用目前關(guān)系模型的競(jìng)爭(zhēng)者:面向?qū)ο蟮臄?shù)據(jù)模型Objectstore,Versant,Ontos,……….對(duì)象關(guān)系模型:InformixUniversalServer,UniSQL,O2,ORACLE,DB2,………...關(guān)系模型概述為什么要學(xué)習(xí)關(guān)系模型?73關(guān)系模型概述關(guān)系數(shù)據(jù)模型是由E.F.Codd于1970年提出在此之前大多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)是基于層次數(shù)據(jù)模型和網(wǎng)狀數(shù)據(jù)模型的關(guān)系模型給數(shù)據(jù)庫(kù)領(lǐng)域帶來(lái)了一場(chǎng)革命,并取代了舊的數(shù)據(jù)模型,E.F.Codd并因此于1983年獲得TuringAwards在70年代中期,IBM和UC-Berkeley開(kāi)發(fā)了早期的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)關(guān)系模型概述關(guān)系數(shù)據(jù)模型是由E.F.Codd于1970年提出74關(guān)系模型概述現(xiàn)在的關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)有IBM的DB2InformixOracleSybaseMicrosoft的Access,SQLServerFox-xParadox關(guān)系模型概述現(xiàn)在的關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)有75關(guān)系模型概述關(guān)系模型是十分簡(jiǎn)單的關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)非常單一,實(shí)體、聯(lián)系都表示成關(guān)系一個(gè)關(guān)系是一個(gè)具有行和列的二維表關(guān)系模型給出關(guān)系操作的能力,但不對(duì)RDBMS語(yǔ)言給出具體的語(yǔ)法要求查詢操作:選擇、投影、連接、除、并、交、差等更新操作:增加、刪除和修改一次一集合關(guān)系代數(shù)和關(guān)系演算高度非過(guò)程化關(guān)系模型概述關(guān)系模型是十分簡(jiǎn)單的76關(guān)系模型概述關(guān)系模型的三類完整性約束系統(tǒng)支持:實(shí)體完整性和參照完整性用戶定義:用戶定義的完整性本章主要討論以下問(wèn)題關(guān)系模型是如何表示數(shù)據(jù)的關(guān)系模型可以表示何種完整性約束數(shù)據(jù)是如何被查詢的如何將由ER模型表示數(shù)據(jù)庫(kù)概念模式轉(zhuǎn)換為關(guān)系模式(模式)的視圖(外模式)問(wèn)題關(guān)系模型概述關(guān)系模型的三類完整性約束77關(guān)系模型基本概念關(guān)系域:一組具有相同數(shù)據(jù)類型值的集合笛卡爾積:給定一組域D1,D2,…,Dn,它們的笛卡爾積為:D1XD2X…Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…n)元組:每一個(gè)元素(d1,d2,…,dn)叫做一個(gè)n元組,或元組分量:元素中的每一個(gè)值di叫做一個(gè)分量基數(shù):若Di為有限集,其基數(shù)為mi,則D1XD2X…Dn的基數(shù)為:關(guān)系模型基本概念關(guān)系78關(guān)系模型基本概念例如:給定三個(gè)域D1=MAN={王兵,李平,張英},D2=WOMAN={丁梅,吳芳}D3=CHILD={王一,李一,李二}D1XD2XD3={(王兵,丁梅,王一),(王兵,丁梅,李一),(王兵,丁梅,李二),(王兵,吳芳,王一),(王兵,吳芳,李一),…}笛卡爾積可以表示為一個(gè)二維表,表中的每一行對(duì)應(yīng)一個(gè)元組,每一列對(duì)應(yīng)一個(gè)域關(guān)系模型基本概念例如:給定三個(gè)域D1=MAN={王兵,李平,79關(guān)系模型基本概念MANWOMANCHILD王兵丁梅王一王兵丁梅李一王兵丁梅李二王兵吳芳王一王兵吳芳李一王兵吳芳李二李平丁梅王一李平丁梅李一李平丁梅李二李平吳芳王一李平吳芳李一李平吳芳李二MANWOMANCHILD張英丁梅王一張英丁梅李一張英丁梅李二張英吳芳王一張英吳芳李一張英吳芳李二續(xù)左表關(guān)系模型基本概念MANWOMANCHIL80關(guān)系模型基本概念關(guān)系:D1XD2X…Dn的子集叫做在域D1,D2,…,Dn上的關(guān)系表示為R(D1,D2,…,Dn)關(guān)系的目或度:n單元關(guān)系:n=1二元關(guān)系:n=2關(guān)系是一個(gè)二維表(子集)例如:假設(shè)王兵的妻子是丁梅,他們的孩子是王一,李平的妻子是吳芳,他們的孩子是李一和李二,則取笛卡爾積的一個(gè)子集構(gòu)造一個(gè)關(guān)系FAMILY關(guān)系模型基本概念關(guān)系:D1XD2X…Dn的子集叫做在域D181關(guān)系模型基本概念在R(D1,D2,…,Dn)表示中,域可以重名,給每列一個(gè)名字,稱為屬性,關(guān)系表示為:R(A1,A2,…,An)例如:FAMILY(FATHER,MOTHER,CHILD)MANWOMANCHILD王兵丁梅王一李平吳芳李一李平吳芳李二FAMILY關(guān)系模型基本概念在R(D1,D2,…,Dn)表示中,域82關(guān)系模型基本概念候選碼:能夠唯一標(biāo)識(shí)一個(gè)元組的最小屬性組主碼:主屬性:候選碼中的屬性非碼屬性:不包含在任何候選碼中的屬性關(guān)系的性質(zhì):關(guān)系模型要求在一個(gè)關(guān)系中不能存在完全相同的元組(但實(shí)際商用關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)支持重復(fù)元組)關(guān)系中元組行的序并不重要關(guān)系中列的序并不重要(但有些系統(tǒng)例外)關(guān)系模型基本概念候選碼:能夠唯一標(biāo)識(shí)一個(gè)元組的最小屬性組83關(guān)系模型基本概念分量必須取原子值不同的列可以出自同一個(gè)域給定域:person={王兵,李平,張英,丁梅,吳芳}child={王義,李一,李二}MANWOMANCHILDfirstsecond王兵丁梅王一李平吳芳李一李二FAMILYbad關(guān)系模型基本概念分量必須取原子值MANWOMAN84關(guān)系模型基本概念構(gòu)造FAMILY關(guān)系,仍然取personXpersonXchild的子集,表示為:FAMILY(FATHER,MOTHER,CHILD)此處dom(FATHER)=dom(MOTHER)=person關(guān)系模式:關(guān)系的描述形式化表示:R(U,D,dom,F),簡(jiǎn)記為R(U)或R(A1,A2,…,An)屬性向域的映象常常說(shuō)明為屬性的類型和長(zhǎng)度關(guān)系模式是型,關(guān)系是值關(guān)系模型基本概念構(gòu)造FAMILY關(guān)系,仍然取personX85關(guān)系模型基本概念在關(guān)系模型中,實(shí)體和聯(lián)系都是用關(guān)系表示的例如:左圖

學(xué)生(學(xué)號(hào),姓名,性別,專業(yè),年齡)

課程(課程號(hào),課程名,學(xué)時(shí),學(xué)分)選修(學(xué)號(hào),課程號(hào),成績(jī))一個(gè)關(guān)系數(shù)據(jù)庫(kù)是一組關(guān)系的集合;關(guān)系數(shù)據(jù)庫(kù)模式則是該數(shù)據(jù)庫(kù)所有關(guān)系模式的集合學(xué)生課程選修mn關(guān)系模型基本概念在關(guān)系模型中,實(shí)體和聯(lián)系都是用關(guān)系表示的學(xué)生86關(guān)系模型--關(guān)系的完整性關(guān)系模型的完整性是對(duì)關(guān)系的某種約束實(shí)體完整性:主碼中的屬性不可取空值(例子)參照完整性:例子:對(duì)于關(guān)系模式學(xué)生(學(xué)號(hào),姓名,性別,專業(yè),年齡)

課程(課程號(hào),課程名,學(xué)時(shí),學(xué)分)選修(學(xué)號(hào),課程號(hào),成績(jī))外碼:設(shè)F是關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系R的碼,如果F與關(guān)系S的主碼Ks相對(duì)應(yīng),則稱F為關(guān)系R的外碼關(guān)系模型--關(guān)系的完整性關(guān)系模型的完整性是對(duì)關(guān)系的某種約束87關(guān)系模型--關(guān)系的完整性參照關(guān)系R,被參照關(guān)系S參照完整性:F的取值必須為:或者取空值或者等于S中某個(gè)元組的主碼值例如:部門(部門號(hào),部門名,電話)

雇員(雇員號(hào),雇員名,職稱,部門號(hào))雇員中部門號(hào)的取值部門雇員擁有1n關(guān)系模型--關(guān)系的完整性參照關(guān)系R,被參照關(guān)系S部門雇員擁有88關(guān)系模型--關(guān)系的完整性用戶定義的完整性:任何關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)都應(yīng)支持實(shí)體完整性和參照完整性用戶定義的完整性定義某一具體應(yīng)用中所涉及的數(shù)據(jù)必須滿足的語(yǔ)義要求,例如年齡的取值關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)提供定義和檢驗(yàn)這類完整性機(jī)制關(guān)系模型--關(guān)系的完整性用戶定義的完整性:89關(guān)系模型--關(guān)系代數(shù)關(guān)系代數(shù)運(yùn)算分為:傳統(tǒng)的集合運(yùn)算和專門的關(guān)系運(yùn)算集合運(yùn)算前提:關(guān)系R和關(guān)系S具有相同的目,相應(yīng)的屬性取自同一個(gè)域并:關(guān)系R和關(guān)系S的并記作:RS(下頁(yè))差:關(guān)系R和關(guān)系S的差記作:R-S交:關(guān)系R和關(guān)系S的交記作:RS關(guān)系模型--關(guān)系代數(shù)關(guān)系代數(shù)運(yùn)算分為:傳統(tǒng)的集合運(yùn)算和專門的90關(guān)系模型--關(guān)系代數(shù)ABCABCABCa1b1c1a1b2c2a1b1c1a1b2c2a1b3c2a1b2c2a2b2c1a2b2c1a2b2c1a1b3c2ABCABCa1b2c2a1b1c1a2b2c1RSRSRSR-S關(guān)系模型--關(guān)系代數(shù)ABC91關(guān)系模型--關(guān)系代數(shù)R×SABCABCABCa1b1c1a1b1c1a1b2c2a1b2c2a1b1c1a1b3c2a2b2c1a1b1c1a2b2c1a1b2c2a1b2c2ABCa1b2c2a1b3c2a1b2c2a1b2c2a2b2c1a1b3c2a2b2c1a1b2c2a2b2c1a2b2c1a1b3c2a2b2c1a2b2c1RS關(guān)系模型--關(guān)系代數(shù)R×SABC92關(guān)系模型--關(guān)系代數(shù)廣義笛卡爾積:兩個(gè)分別為n和m目的關(guān)系R和S的廣義笛卡爾積是一個(gè)n+m列的元組的集合。若R有k1個(gè)元組,S有k2個(gè)元組,則廣義笛卡爾積有k1×k2個(gè)元組記作:R×S關(guān)系模型--關(guān)系代數(shù)廣義笛卡爾積:兩個(gè)分別為n和m目的關(guān)系R93關(guān)系的建立和修改--SQL-92SQL語(yǔ)言的簡(jiǎn)單發(fā)展歷史SQL語(yǔ)言是由IBM公司在SystemR系統(tǒng)中首先提出SQL在1986年被ANSI采納為標(biāo)準(zhǔn),稱為SQL-86在1989又對(duì)SQL標(biāo)準(zhǔn)進(jìn)行了少量修改,稱為SQL-89在1992年ANSI和ISO對(duì)SQL標(biāo)準(zhǔn)進(jìn)行主要修改,稱之為SQL-92在1999年又對(duì)SQL-92進(jìn)行大量修改(面向?qū)ο蟮奶攸c(diǎn)),稱之為SQL-3,有時(shí)也稱為SQL-99關(guān)系的建立和修改--SQL-92SQL語(yǔ)言的簡(jiǎn)單發(fā)展歷史94關(guān)系的建立和修改關(guān)系表建立CREATETABLEStudents(sidCHAR(20),nameCHAR(30),loginCHAR(20),ageINTEGER,gpaREAL)關(guān)系表刪除DROPTABLEStudents關(guān)系表修改ALTERTABLEStudentsADDCOLUMNmaiden-nameCHAR(10)關(guān)系的建立和修改關(guān)系表建立95關(guān)鍵字約束--實(shí)現(xiàn)實(shí)體完整性通過(guò)UNIQUE子句來(lái)定義候選碼(候選關(guān)鍵字)通過(guò)PRIMARYKEY子句來(lái)定義主碼(主關(guān)鍵字)CREATETABLEStudents(sidCHAR(20),nameCHAR(30),loginCHAR(20),ageINTEGER,gpaREAL,UNIQUE(name,age),UNIQUE(login),PRIMARYKEY(sid))關(guān)鍵字約束--實(shí)現(xiàn)實(shí)體完整性通過(guò)UNIQUE子句來(lái)定義候選碼96外鍵約束--實(shí)現(xiàn)參照完整性外鍵約束指的是兩個(gè)關(guān)系之間的關(guān)鍵字約束關(guān)系,考慮下列關(guān)系Students(sid,name,login,age,gpa)Enrolled(sid,cid,grade)從語(yǔ)義上來(lái)講,在關(guān)系Enrolled中出現(xiàn)的sid值,在關(guān)系Students中必須存在,Enrolled中的sid稱為外鍵,引用關(guān)系Students中的主關(guān)鍵字sid外鍵必須與被引用關(guān)系中的主關(guān)鍵字相匹配可以有不同的名字列數(shù)要相同,且要具有兼容的數(shù)據(jù)類型外鍵約束--實(shí)現(xiàn)參照完整性外鍵約束指的是兩個(gè)關(guān)系之間的關(guān)鍵字97外鍵約束----示例外鍵約束----示例98外鍵約束的語(yǔ)義在被參照關(guān)系中關(guān)鍵字的值在參照關(guān)系中不一定出現(xiàn)但在參照關(guān)系中出現(xiàn)的關(guān)鍵字值在被參照關(guān)系中必須要出現(xiàn)如果我們向關(guān)系Enrolled中插入元組<55555,Art104,A>,這個(gè)操作將被拒絕因?yàn)檫`反了外鍵約束外鍵約束的語(yǔ)義在被參照關(guān)系中關(guān)鍵字的值在參照關(guān)系中不一定出現(xiàn)99外鍵約束的語(yǔ)義對(duì)于操作:將關(guān)系Students中的<53666,Jones,joines@cs,18,3.4>刪除,有兩種處理禁止這種刪除操作同時(shí)刪除參照關(guān)系中的相關(guān)元組值得注意的是外鍵可能來(lái)自于同一關(guān)系,也就是被參照關(guān)系就是參照關(guān)系Students(sid,name,login,age,gpa,partner),partner是對(duì)sid的一個(gè)外鍵約束Courses(cid,name,desc,preq),preq是對(duì)cid的一個(gè)外鍵約束當(dāng)一門課程沒(méi)有前期課程時(shí),preq可以為空,空值并不違反外鍵約束外鍵約束的語(yǔ)義對(duì)于操作:將關(guān)系Students中的<5366100外鍵約束的定義---SQL-92外鍵約束的定義---SQL-92101邏輯數(shù)據(jù)庫(kù)設(shè)計(jì):ER到關(guān)系的轉(zhuǎn)換實(shí)體集到表的轉(zhuǎn)換實(shí)體集中的屬性映射為表中的屬性實(shí)體集中的(主)關(guān)鍵字映射為關(guān)系中的(主)關(guān)鍵字實(shí)體集中屬性的域映射為關(guān)系中屬性的域邏輯數(shù)據(jù)庫(kù)設(shè)計(jì):ER到關(guān)系的轉(zhuǎn)換實(shí)體集到表的轉(zhuǎn)換102實(shí)體集到表的轉(zhuǎn)換--示例實(shí)體集到表的轉(zhuǎn)換--示例103多對(duì)多聯(lián)系集到表的轉(zhuǎn)換多對(duì)多聯(lián)系被映射為一個(gè)關(guān)系表,包括屬性:每個(gè)參加聯(lián)系的實(shí)體集的主關(guān)鍵字屬性,作為外鍵存在所有外鍵構(gòu)成該實(shí)體集的主關(guān)鍵字聯(lián)系集本身的屬性--一般屬性多對(duì)多聯(lián)系集到表的轉(zhuǎn)換多對(duì)多聯(lián)系被映射為一個(gè)關(guān)系表,包括屬性104多對(duì)多聯(lián)系集到表的轉(zhuǎn)換--例1mn多對(duì)多聯(lián)系集到表的轉(zhuǎn)換--例1mn105多對(duì)多聯(lián)系集到表的轉(zhuǎn)換--例1多對(duì)多聯(lián)系集到表的轉(zhuǎn)換--例1106多對(duì)多聯(lián)系集到表的轉(zhuǎn)換--例2mnp多對(duì)多聯(lián)系集到表的轉(zhuǎn)換--例2mnp107多對(duì)多聯(lián)系集到表的轉(zhuǎn)換--例2CREATETABLEWork3-In(ssnCHAR(11),didinteger,fromdate,todate,PRIMARYKEY(ssn,did,from,to)FOREIGKEY(ssn)REFERENCESEmployees,ONDELETENOACTION,FOREIGKEY(did)REFERENCESDepartments,FOREIGNKEY(from)REFERENCEDURATION,FOREIGNKEY(to)REFERENCEDURATION)多對(duì)多聯(lián)系集到表的轉(zhuǎn)換--例2CREATETABLEWo108一對(duì)多聯(lián)系集的翻譯1n一對(duì)多聯(lián)系集的翻譯1n109一對(duì)多聯(lián)系集的翻譯----方法一將一對(duì)多聯(lián)系翻譯為一個(gè)獨(dú)立的表一對(duì)多聯(lián)系集的翻譯----方法一將一對(duì)多聯(lián)系翻譯為一個(gè)獨(dú)立110一對(duì)多聯(lián)系集的翻譯----方法二將Manages和Departments翻譯為一個(gè)關(guān)系一對(duì)多聯(lián)系集的翻譯----方法二將Manages和Depa111關(guān)于聯(lián)系集到關(guān)系映射的思考題在一對(duì)多聯(lián)系中,Manages和Departments為什么可以合并為一個(gè)關(guān)系?對(duì)于一對(duì)多聯(lián)系翻譯的兩種方法的優(yōu)缺點(diǎn)是什么?對(duì)于一個(gè)多對(duì)多聯(lián)系集為什么必須映射為一個(gè)獨(dú)立的關(guān)系表?一對(duì)一聯(lián)系應(yīng)如何翻譯?關(guān)于聯(lián)系集到關(guān)系映射的思考題在一對(duì)多聯(lián)系中,Manages和112思考題部分答案方法一和方法二的優(yōu)缺點(diǎn)方法一多產(chǎn)生一個(gè)關(guān)系對(duì)于有些查詢,方法一需要兩次連接,而方法二只需要一次連接即可方法二的缺點(diǎn)是浪費(fèi)空間,如果有些部門沒(méi)有經(jīng)理的話思考題部分答案方法一和方法二的優(yōu)缺點(diǎn)113具有參加約束的聯(lián)系集的翻譯1nnm具有參加約束的聯(lián)系集的翻譯1nnm114具有參加約束的1:n(1:1)聯(lián)系集的翻譯具有參加約束的1:n(1:1)聯(lián)系集的翻譯115具有參加約束的聯(lián)系集的翻譯ssn的非空定義反映了參加約束使用上面的第一種方法也可以表示Manages和Departments,但使用方法二比方法一好,(why?因?yàn)榉椒ǘ速M(fèi)空間的缺點(diǎn)已不復(fù)存在)具有參加約束的聯(lián)系集的翻譯ssn的非空定義反映了參加約束116弱實(shí)體集的翻譯一個(gè)弱實(shí)體總是參加一個(gè)二元一對(duì)多聯(lián)系(?)全參加約束1m弱實(shí)體集的翻譯一個(gè)弱實(shí)體總是參加一個(gè)二元一對(duì)多聯(lián)系(?)1m117弱實(shí)體集的翻譯使用具有1:n聯(lián)系的第二種翻譯方法(Why?),但必須考

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論