第1章 數(shù)據(jù)庫理論基礎(chǔ)_第1頁
第1章 數(shù)據(jù)庫理論基礎(chǔ)_第2頁
第1章 數(shù)據(jù)庫理論基礎(chǔ)_第3頁
第1章 數(shù)據(jù)庫理論基礎(chǔ)_第4頁
第1章 數(shù)據(jù)庫理論基礎(chǔ)_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一章數(shù)據(jù)庫理論基礎(chǔ)本節(jié)要點(diǎn)數(shù)據(jù)庫理論基礎(chǔ)數(shù)據(jù)庫系統(tǒng)構(gòu)成數(shù)據(jù)庫設(shè)計(jì)理論概念模型設(shè)計(jì)關(guān)系模型什么是數(shù)據(jù)庫?數(shù)據(jù)庫(DataBase,DB)

是長期保存在計(jì)算機(jī)內(nèi)的、有組織、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型描述、組織和儲(chǔ)存,具有很小的冗余度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可供多用戶共享。數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,DBMS)是為數(shù)據(jù)庫建立、使用和維護(hù)而配置的軟件系統(tǒng)。它是數(shù)據(jù)庫系統(tǒng)的核心組成部分,數(shù)據(jù)庫的一切操作,如查詢、更新、插入、刪除以及各種控制,都是通過DBMS進(jìn)行的。數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,DBS)是由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用程序、數(shù)據(jù)庫管理員、用戶等構(gòu)成的人-機(jī)系統(tǒng)。數(shù)據(jù)、硬件、軟件、用戶注意:數(shù)據(jù)庫系統(tǒng)并不單指數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng),而是指帶有數(shù)據(jù)庫的整個(gè)計(jì)算機(jī)系統(tǒng)。DBMS數(shù)據(jù)庫應(yīng)用程序操作系統(tǒng)數(shù)據(jù)庫管理員DBA用戶……數(shù)據(jù)庫系統(tǒng)的組成抽象轉(zhuǎn)換現(xiàn)實(shí)世界機(jī)器世界信息世界實(shí)體屬性數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)過程E-R模型的基本概念實(shí)體(entity):客觀存在,可以相互區(qū)別的事物稱為實(shí)體。屬性(attribute):實(shí)體有很多特性,每一個(gè)特性稱為屬性。每一個(gè)屬性有一個(gè)值域,其類型可以是整數(shù)型、實(shí)數(shù)型、字符串型等。碼(Key):唯一標(biāo)識(shí)實(shí)體的屬性集稱為碼。例如,學(xué)號(hào)是學(xué)生實(shí)體的碼。域(Domain):屬性的取值范圍稱為該屬性的域。實(shí)體型(EntityType):用實(shí)體名及其屬性名集合來抽象和刻畫的同類實(shí)體,稱為實(shí)體型。E-R模型的基本概念實(shí)體集(entityset):性質(zhì)相同的同類實(shí)體的集合,稱實(shí)體集。聯(lián)系(relationship)是實(shí)體之間的相互關(guān)系。數(shù)據(jù)模型:能表示實(shí)體類型及實(shí)體間聯(lián)系的模型稱為“數(shù)據(jù)模型”。E-R圖的基本組成部分

E/R圖有四個(gè)主要部分:實(shí)體集,用矩形表示。屬性,用橢圓形表示。聯(lián)系,用菱形或三角形表示。直線,表示聯(lián)系的類型及實(shí)體與實(shí)體之間的聯(lián)系;多端用無箭頭的直線,一端用有箭頭的直線。數(shù)據(jù)聯(lián)系聯(lián)系(relationship)是實(shí)體之間的相互關(guān)系。二元聯(lián)系有以下三種類型:一對(duì)一聯(lián)系:如果實(shí)體集E1中每個(gè)實(shí)體至多和實(shí)體集E2中的一個(gè)實(shí)體有聯(lián)系,反之亦然,那么實(shí)體集E1和E2的聯(lián)系稱為“一對(duì)一聯(lián)系”,記為“1:1”。一對(duì)多聯(lián)系:如果實(shí)體集E1中每個(gè)實(shí)體可以與實(shí)體集E2中任意個(gè)(零個(gè)或多個(gè))實(shí)體間有聯(lián)系,而E2中每個(gè)實(shí)體至多和E1中一個(gè)實(shí)體有聯(lián)系,那么稱E1對(duì)E2的聯(lián)系是“一對(duì)多聯(lián)系”,記為“1:N”。多對(duì)多聯(lián)系:如果實(shí)體集E1中每個(gè)實(shí)體可以與實(shí)體集E2中任意個(gè)(零個(gè)或多個(gè))實(shí)體有聯(lián)系,反之亦然,那么稱E1和E2的聯(lián)系是“多對(duì)多聯(lián)系”,記為“M:N”。

實(shí)體1實(shí)體2聯(lián)系實(shí)體1實(shí)體2聯(lián)系實(shí)體1實(shí)體2聯(lián)系1﹕1聯(lián)系1﹕n聯(lián)系m﹕n聯(lián)系三種聯(lián)系的E-R圖三種聯(lián)系的E-R圖E-R圖實(shí)例例1:請(qǐng)?jiān)O(shè)計(jì)一個(gè)數(shù)據(jù)庫。要求包括學(xué)生(student)、課程(course)和教師(teacher)的信息。

上述實(shí)體中存在如下聯(lián)系:一個(gè)學(xué)生可以選修多門課,而每門課也能由多個(gè)學(xué)生選修;一位教師可以教多門課,每門課也可以由多個(gè)教師講授;用E-R圖來描述此數(shù)據(jù)庫。學(xué)生信息:學(xué)號(hào)(sNo)、姓名(sname)、年齡(age)、地址(saddress);課程信息:課程號(hào)(cNo)、課程名(cname)、課程學(xué)分(credit);教師信息:教師的工號(hào)(tNo)、姓名(tname)、教師的地址(taddress)studentcourseteachertaketeachcreditscnamecNosaddressagesnamesNotaddresstnametNoscore注意:如果一個(gè)聯(lián)系具有屬性,則這些屬性也要用無向邊與該聯(lián)系連接起來。學(xué)生-課程-教師E-R圖條碼白酒容量度數(shù)編號(hào)銷售商聯(lián)系人地址電話名稱銷售數(shù)量單價(jià)白酒-銷售商E-R圖例2:實(shí)體:白酒、銷售商。兩者間的聯(lián)系如下:一個(gè)銷售商可以銷售多種白酒,每種白酒可由多個(gè)銷售商銷售;用E-R圖來描述此數(shù)據(jù)庫。概念模式設(shè)計(jì)方法二(UML)UML(UnifiedModelingLanguage,UML)是一種面向?qū)ο蟮?、通用的建模語言。UML方法中用UML類圖(對(duì)象模型)表示概念模型。UML類圖主要描述系統(tǒng)的靜態(tài)結(jié)構(gòu),包括類和類間的聯(lián)系。UML對(duì)象模型實(shí)質(zhì)上是一種擴(kuò)展的E-R模型。與E-R模型相比,UML模型具有更強(qiáng)的表達(dá)能力。UML類圖與E-R圖中的術(shù)語E-R圖中術(shù)語UML圖中術(shù)語實(shí)體集(EntitySet)類(Class)實(shí)體(Entity)對(duì)象(Object)聯(lián)系(Relationship)關(guān)聯(lián)(Association)聯(lián)系元組(Tuple)關(guān)聯(lián)元組實(shí)體的基數(shù)(Cardinality)重復(fù)度(Multiplicity)UML類圖與E-R圖有許多類似之處,但是所用的術(shù)語和符號(hào)有所不同。數(shù)據(jù)模型數(shù)據(jù)模型,即邏輯數(shù)據(jù)模型。一個(gè)數(shù)據(jù)庫的數(shù)據(jù)模型由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)的約束條件三個(gè)部分組成,即數(shù)據(jù)模型的三要素。數(shù)據(jù)庫技術(shù)的發(fā)展是根據(jù)數(shù)據(jù)模型的發(fā)展來劃分的。根據(jù)所采用的數(shù)據(jù)模型不同,數(shù)據(jù)庫技術(shù)的可分為三代:第一代:采用層次模型、網(wǎng)狀模型的數(shù)據(jù)庫系統(tǒng);第二代:采用關(guān)系模型的關(guān)系數(shù)據(jù)庫系統(tǒng);第三代:以面向?qū)ο竽P蜑橹饕卣鞯臄?shù)據(jù)庫系統(tǒng)。層次模型:有且只有一個(gè)根結(jié)點(diǎn);除了根結(jié)點(diǎn),其它結(jié)點(diǎn)有且只有一個(gè)父結(jié)點(diǎn)。典型產(chǎn)品:1969年IBM公司的IMS系統(tǒng)網(wǎng)狀模型:允許結(jié)點(diǎn)有多于一個(gè)的父結(jié)點(diǎn);可以有一個(gè)以上的結(jié)點(diǎn)沒有父結(jié)點(diǎn)。典型產(chǎn)品:CODASYL系統(tǒng)關(guān)系模型:用二維表格結(jié)構(gòu)來表示實(shí)體和實(shí)體間聯(lián)系的數(shù)據(jù)模型。典型產(chǎn)品:AccessVisualFoxproSQLServerORACLEconferenceondatasystemlanguage對(duì)象模型:對(duì)象是現(xiàn)實(shí)世界中實(shí)體的模型化。將屬性集和方法集相同的所有對(duì)象組合在一起,構(gòu)成了一個(gè)類。典型產(chǎn)品:ONTOSDB關(guān)系模型實(shí)例

一個(gè)關(guān)系的邏輯結(jié)構(gòu)是一張二維表。它由行和列組成。關(guān)系模式是對(duì)關(guān)系的描述。

關(guān)系模式表示為:關(guān)系名(屬性1,屬性2,……屬性n)關(guān)系關(guān)系名關(guān)系模型的結(jié)構(gòu)-

三要素之一元組:表中的一行即為一個(gè)元組或記錄;字段:表中的一列,列值稱為字段值,列名稱為字段名值域:字段值的取值范圍元組(記錄)屬性(字段)主鍵:能唯一標(biāo)識(shí)一個(gè)元組的屬性集合。外鍵:若屬性組F不是關(guān)系R1的主鍵,但它是關(guān)系R2的主鍵,則F稱是關(guān)系R1的外鍵。主鍵主鍵外鍵關(guān)系的特性:每一列是不可再分的(原子性);每一列的取值范圍必須相同;任意兩個(gè)元組不能相同;列的順序可交換,不影響關(guān)系意義的表達(dá);行的順序可交換,不影響關(guān)系意義的表達(dá);不同的列取值范圍可以相同,但必須有唯一的屬性名。

操作對(duì)象是關(guān)系,操作結(jié)果也是關(guān)系。主要操作有:插入、刪除、查詢、更新等。描述操作的語言:標(biāo)準(zhǔn)查詢語言SQL(StructuredQueryLanguage)DDL(DataDefinitionLanguage)DML(DataManipulationLanguage)DCL(DataControlLanguage)關(guān)系模型的操作-三要素之二

關(guān)系的完整性約束:是指關(guān)系中數(shù)據(jù)與其描述的實(shí)際對(duì)象狀態(tài)保持一致的約束條件。它主要包括:實(shí)體完整性參照完整性用戶自定義完整(如:域完整性等)。關(guān)系的完整性約束-三要素之三實(shí)體完整性

也稱為行完整性。用于保證關(guān)系(表)中每一行數(shù)據(jù)惟一且不為空。

可通過建立“PRIMARY

KEY約束”(主鍵)、“惟一索引”、“UNIQUE約束”等實(shí)現(xiàn)。如:“學(xué)生”關(guān)系中的主鍵“學(xué)號(hào)”值不能為空,且具有唯一性。參照完整性也稱引用完成性,用于限制一個(gè)關(guān)系中某屬性(外鍵)取值必須是另一關(guān)系中主鍵的有效值,或者是Null。保證關(guān)系(表)之間數(shù)據(jù)的一致性??赏ㄟ^創(chuàng)建“FOREIGN

KEY”(外鍵)實(shí)施參照完整性約束。

如:“學(xué)生”關(guān)系中的“專業(yè)號(hào)”是外鍵,其取值必須為“專業(yè)”關(guān)系中主鍵“專業(yè)號(hào)”的某個(gè)值,或者為空。用戶自定義完整性是用戶根據(jù)業(yè)務(wù)要求自定義的規(guī)則或格式約束。其中最主要的是域完整性。

域完整性:指列的完整性。它規(guī)定了屬性的取值必須是域中的值。如:規(guī)定學(xué)生『生日』只能取1980年1月1日至今的日期型數(shù)據(jù);『性別』的取值只能是“男”、“女”之一。規(guī)定『學(xué)號(hào)』的取值是6位數(shù)字字符。

用戶自定義完整性約束可通過“CHECK約束”、“RULE規(guī)則”、“觸發(fā)器”等實(shí)現(xiàn)。E-R(UML)模型到關(guān)系模式的轉(zhuǎn)換1)實(shí)體(類)到關(guān)系模式的轉(zhuǎn)換2)聯(lián)系(關(guān)聯(lián))到關(guān)系模式的轉(zhuǎn)換1)實(shí)體到關(guān)系模式的轉(zhuǎn)換

規(guī)則:將實(shí)體的名稱作為表的名稱,將實(shí)體的屬性作為表的列,并用下劃線標(biāo)識(shí)出主屬性。student(snum,sname,sex,age),其中snum為主鍵。course(cnum,cname,credits),其中cnum為主鍵。2)聯(lián)系到關(guān)系模式的轉(zhuǎn)換1:1若實(shí)體間聯(lián)系是1:1,可以在兩個(gè)實(shí)體轉(zhuǎn)換成的兩個(gè)關(guān)系模式后,選擇在其中任意一個(gè)關(guān)系模式的屬性集中加入另一個(gè)關(guān)系模式的主鍵和聯(lián)系自身的屬性。1:1聯(lián)系不單獨(dú)轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系。2)聯(lián)系到關(guān)系模式的轉(zhuǎn)換1:N若實(shí)體間聯(lián)系是1:N,則在N端實(shí)體轉(zhuǎn)換成的關(guān)系模式中加入1端實(shí)體的主鍵和聯(lián)系的屬性。同樣1:N聯(lián)系也不獨(dú)立構(gòu)成一個(gè)關(guān)系。Teacher<<PK>>teacherIdteacherNamesexDepartment<<PK>>DepartmentIddeptNamelocation工作二元關(guān)系2)聯(lián)系到關(guān)系模式的轉(zhuǎn)換M:N若實(shí)體間聯(lián)系是M:N,則將聯(lián)系轉(zhuǎn)換成一個(gè)關(guān)系模式,其屬性為兩端實(shí)體的主鍵加上聯(lián)系自身的屬性,而聯(lián)系關(guān)系的主鍵為一復(fù)合鍵,通常是兩端實(shí)體主鍵的組合。對(duì)于“學(xué)生選課”E/R圖的課程和學(xué)生之間的多對(duì)多的聯(lián)系,可轉(zhuǎn)換成關(guān)系模式:

take(snum,cnum,grade)主鍵為復(fù)合鍵{snum,cnum}。例:關(guān)系的規(guī)范化學(xué)生選課表SnumSnameSdeptMnameCnamegrade991230賀小華計(jì)算機(jī)周至光數(shù)據(jù)庫96991239金謙計(jì)算機(jī)周至光操作系統(tǒng)90991239金謙計(jì)算機(jī)周至光編譯原理92993851陳剛建筑王勇建筑原理89992076呂宋自動(dòng)化李霞自動(dòng)化設(shè)計(jì)85992076呂宋自動(dòng)化李霞電路原理82

數(shù)據(jù)冗余修改異常插入異常刪除異常問題?更新異常:刪除學(xué)號(hào)為991250的學(xué)生的選課記錄,丟掉了該生選修“市場營銷學(xué)”的事實(shí),還失去了“市場營銷學(xué)”的學(xué)分是2的事實(shí)。插入異常:若有一門“法律”課,學(xué)分為3,尚無學(xué)生選修時(shí),將不能輸入。學(xué)號(hào)課程學(xué)分991201人工智能3991225中國近代史綱要2991250市場營銷學(xué)2991275人工智能3991290中國近代史綱要2消除異常的方法:模式分解

若將以上的學(xué)生關(guān)系分解成“學(xué)生-選課”、“課程-學(xué)分”關(guān)系,更新異常、插入異常就都可消除了,對(duì)關(guān)系進(jìn)行分解的過程就是規(guī)范化過程。學(xué)生選課關(guān)系課程學(xué)分關(guān)系學(xué)號(hào)課程991201人工智能991225中國近代史綱要991250市場營銷學(xué)991275人工智能991290中國近代史綱要課程學(xué)分人工智能3中國近代史綱要2市場營銷學(xué)2屬性間的三種聯(lián)系

函數(shù)依賴:如果給定一個(gè)屬性的值,就可以獲得另一個(gè)屬性的值。例如,若已知“課程名”的值,便可知道“授課學(xué)時(shí)”。“授課學(xué)時(shí)”依賴于“課程名”,或“課程名”決定“授課學(xué)時(shí)”。記作“課程名→授課學(xué)時(shí)”。

課程號(hào)課程名授課學(xué)時(shí)授課學(xué)期J001數(shù)據(jù)庫726J003C++程序設(shè)計(jì)542Z004操作系統(tǒng)725Z006編譯原理726X001數(shù)值分析543X002計(jì)算機(jī)組成原理364部分依賴:

下表的主鍵是屬性集合{學(xué)號(hào),課程號(hào)}。但“學(xué)分”只由“課程號(hào)”決定,與“學(xué)號(hào)”無關(guān),也就是“學(xué)分”屬性只由主鍵{學(xué)號(hào),課程號(hào)}的一部分而不是全部來決定,把這種依賴稱為部分依賴。記作“{學(xué)號(hào),課程號(hào)}→學(xué)分”。p學(xué)號(hào)姓名課程號(hào)課程名學(xué)分010101李燦J001數(shù)據(jù)庫4010101李燦J004操作系統(tǒng)4010101李燦X001數(shù)值分析3010201張鍵J001數(shù)據(jù)庫4020301劉名F009德語6010201張鍵F009德語6傳遞依賴:

下表的主鍵是“學(xué)號(hào)”,學(xué)生住宿的樓號(hào)依賴于學(xué)號(hào)。但是,學(xué)生應(yīng)交的住宿費(fèi)是由樓號(hào)決定的,也就是說,“收費(fèi)”依賴于“樓號(hào)”,這是一種新的依賴關(guān)系:“樓號(hào)”依賴于“學(xué)號(hào)”,而“收費(fèi)”又依賴于“樓號(hào)”。一般把這種依賴關(guān)系稱為“傳遞依賴”。記作“學(xué)號(hào)→收費(fèi)”。t學(xué)好樓號(hào)收費(fèi)01010125000102014600010103250001050188000101082500住宿關(guān)系規(guī)范化

所謂范式就是符合某一規(guī)范級(jí)別的關(guān)系模式的集合。共有六種范式:

1NF

2NF

3NF

BCNF

4NF

5NF

規(guī)范化:通過分解把屬于低級(jí)范式的關(guān)系模式轉(zhuǎn)換為幾個(gè)屬于高級(jí)范式的關(guān)系模式的集合,這一過程稱為規(guī)范化(Normalization)。1)第一范式(1NF)

定義:如果一個(gè)關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng),則關(guān)系R屬于第一范式。字段不可分注意:集合、數(shù)組和結(jié)構(gòu)都不能為第一范式關(guān)系中屬性的類型。符合第一范式的關(guān)系可能有插入、刪除異常。例如:在關(guān)系“選課”中,存在著部分依賴:

{學(xué)號(hào),課程號(hào)}→學(xué)分將導(dǎo)致插入、刪除異常。p2)第二范式(

2NF

定義:若關(guān)系模式R屬于第一范式,且每個(gè)非主屬性都完全函數(shù)依賴于主鍵,則R屬于第二范式。有主鍵

注意:單個(gè)屬性作為主鍵的關(guān)系自動(dòng)就是第二范式。第二范式中的關(guān)系存在更新異常.

例如:住宿關(guān)系(學(xué)號(hào)、樓號(hào)、收費(fèi)),雖然學(xué)號(hào)是單屬性主鍵,屬于第二范式,而樓號(hào)、收費(fèi)都由學(xué)號(hào)決定,存在傳遞依賴關(guān)系:“學(xué)號(hào)→收費(fèi)”將導(dǎo)致更新異常。t3)第三范式(3NF)定義:如果一個(gè)關(guān)系R是第二范式的,并且每個(gè)非主屬性都不傳遞依賴于主鍵,則R屬于第三范式。非主鍵不能依賴?yán)纾簩W(xué)生住宿關(guān)系可以分解為兩個(gè)關(guān)系:學(xué)生-樓號(hào)關(guān)系(學(xué)號(hào),樓號(hào))和樓號(hào)-收費(fèi)關(guān)系(樓號(hào),收費(fèi))。這兩個(gè)關(guān)系屬于第三范式。

樓號(hào)成收費(fèi)250046008800學(xué)好樓號(hào)010101201020140101032

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論