第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ù)免費閱讀

下載本文檔

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

文檔簡介

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

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

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

實體1實體2聯(lián)系實體1實體2聯(lián)系實體1實體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圖實例例1:請設(shè)計一個數(shù)據(jù)庫。要求包括學(xué)生(student)、課程(course)和教師(teacher)的信息。

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

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

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

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

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

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

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

可通過建立“PRIMARY

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1NF

2NF

3NF

BCNF

4NF

5NF

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

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

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

2NF

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

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

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

樓號成收費250046008800學(xué)好樓號010101201020140101032

溫馨提示

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

最新文檔

評論

0/150

提交評論