數(shù)據(jù)庫系統(tǒng)基礎(chǔ)教程教案(南京理工大學(xué))_第1頁
數(shù)據(jù)庫系統(tǒng)基礎(chǔ)教程教案(南京理工大學(xué))_第2頁
數(shù)據(jù)庫系統(tǒng)基礎(chǔ)教程教案(南京理工大學(xué))_第3頁
數(shù)據(jù)庫系統(tǒng)基礎(chǔ)教程教案(南京理工大學(xué))_第4頁
已閱讀5頁,還剩148頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫系統(tǒng)基礎(chǔ)教程教案.3學(xué)分上課,1學(xué)分上機。.教材與參考書教科書:JeffreyD.Ullman,JenniferWidom數(shù)據(jù)庫系統(tǒng)基礎(chǔ)教程史嘉權(quán)等譯。清華大學(xué)出版社。1999.9本教材是美國斯坦福大學(xué)數(shù)據(jù)庫系列課程的第一門(其它的課程包括:數(shù)據(jù)庫系統(tǒng)原理,數(shù)據(jù)庫系統(tǒng)實現(xiàn)的工程訓(xùn)練,事務(wù)和分布式數(shù)據(jù)庫,數(shù)據(jù)庫理論),著重于數(shù)據(jù)庫設(shè)計和編程,適用于高年級本科生或低年級研究生。參考書:王能斌,數(shù)據(jù)庫系統(tǒng),電子工業(yè)出版社。王珊、薩師短,數(shù)據(jù)庫系統(tǒng),教育出版社。數(shù)據(jù)庫處理基礎(chǔ)、設(shè)計與實現(xiàn),施伯樂等譯校,電子工業(yè)出版社。.目的:掌握數(shù)據(jù)庫系統(tǒng)的基本概念、原理和方法;學(xué)會如何有效地使用數(shù)據(jù)庫管理系統(tǒng),包括數(shù)據(jù)庫的設(shè)計和對數(shù)據(jù)庫的編程。.方法:理論結(jié)合實踐;實用性原則。1數(shù)據(jù)庫系統(tǒng)的世界(概述)本章主要介紹各種重要的數(shù)據(jù)庫概念。數(shù)據(jù)庫系統(tǒng)的發(fā)展什么是數(shù)據(jù)庫?本質(zhì)上,數(shù)據(jù)庫是一個信息集合,要持續(xù)相當(dāng)長一段時間,又稱數(shù)據(jù)基。數(shù)據(jù)庫具有以下特點:.數(shù)據(jù)是按一定方式組織和管理的,這涉及到兩個相關(guān)的概念:數(shù)據(jù)模型和數(shù)據(jù)庫模式。.大容量且高效的。.共享數(shù)據(jù):多用戶并發(fā)訪問,且能避免某用戶的動作影響其他人;避免意外損壞數(shù)據(jù)。.由一組軟件對數(shù)據(jù)進行集中統(tǒng)一的管理(DBMS)。數(shù)據(jù)庫可被定義為基于某種數(shù)據(jù)模型而存貯起來的、為某個特定組織的多種應(yīng)用服務(wù)的、具有盡可能小的冗余度和盡可能高的數(shù)據(jù)獨立性的相互關(guān)聯(lián)的數(shù)據(jù)集合,由數(shù)據(jù)庫管理系統(tǒng)進行集中、統(tǒng)一的控制。數(shù)據(jù)庫的地位及作用現(xiàn)實世界(事物)一〉信息世界(信息)——〉計算機世界(數(shù)據(jù))信息:現(xiàn)實世界事物存在方式或運動狀態(tài)的反映。數(shù)據(jù):信息的載體。數(shù)據(jù)處理:對各種形式的數(shù)據(jù)進行收集、存貯、加工和傳播的一系列活動的總和。數(shù)據(jù)處理的目的:從大量的原始數(shù)據(jù)中抽取、推導(dǎo)出有價值的信息,以進行決策;借助計算機科學(xué)地保存和管理大量數(shù)據(jù),使人們能方便而充分地利用資源。數(shù)據(jù)庫技術(shù):研究如何科學(xué)地組織和存儲數(shù)據(jù),如何高效地獲取和處理數(shù)據(jù)。應(yīng)用的實例個人帳務(wù) ?銀行公司客戶及業(yè)務(wù) ?飛機訂票數(shù)據(jù)庫技術(shù)的發(fā)展從文件系統(tǒng)演化而來。文件系統(tǒng)特點:>數(shù)據(jù)以文件形式長期保存;>數(shù)據(jù)的物理結(jié)構(gòu)與邏輯結(jié)構(gòu)有了區(qū)別;>文件形式多樣化;>數(shù)據(jù)的存取以記錄為單位。缺點:?數(shù)據(jù)冗余:數(shù)據(jù)面向應(yīng)用,無法共享;?數(shù)據(jù)與程序缺乏獨立性。60年代后期,數(shù)據(jù)管理規(guī)模更為龐大,應(yīng)用更廣泛,數(shù)據(jù)量劇增,共享要求更強。為了克服文件系統(tǒng)的弊病,對數(shù)據(jù)進行集中、統(tǒng)一的管理,使數(shù)據(jù)存儲獨立于使用數(shù)據(jù)的程序,提出了數(shù)據(jù)庫技術(shù)。數(shù)據(jù)庫不僅反映數(shù)據(jù)本身的內(nèi)容,同時也反映數(shù)據(jù)之間的關(guān)聯(lián)。在數(shù)據(jù)庫中是采用數(shù)據(jù)模型來對現(xiàn)實世界進行抽象的。數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)中用于提供信息表示和操作手段的形式架構(gòu)。早期使用“層次模型”(樹型結(jié)構(gòu))和“網(wǎng)狀模型”來描述信息結(jié)構(gòu)。不支持高級查詢語言。1970年,TedCodd在ACM發(fā)表了“ARelationalModelforLargeSharedDataBanks",奠定了關(guān)系型數(shù)據(jù)庫的理論基礎(chǔ)。主要思想是把數(shù)據(jù)庫中的所有數(shù)據(jù)組織為“表table”的“關(guān)系relation”。可組織復(fù)雜數(shù)據(jù)結(jié)構(gòu);對大量查詢能快速反應(yīng);查詢可表示為一種高級語言,以提高編程效率。關(guān)系代數(shù)提供了關(guān)系模型的數(shù)學(xué)基礎(chǔ)。從而,使用簡單的結(jié)構(gòu)和方法可表示和實現(xiàn)復(fù)雜結(jié)構(gòu)和復(fù)雜計算。隨后,SQL(StructuralQueryLanguage)出現(xiàn)。一個簡單的關(guān)系實例教材p3,例LL銀行賬戶信息數(shù)據(jù)庫的研究方向DBMS研制:擴大功能、提高性能、增強實用性數(shù)據(jù)庫設(shè)計:設(shè)計方法、設(shè)計工具、標準及規(guī)范化數(shù)據(jù)庫理論:知識庫、演繹數(shù)據(jù)庫、模糊數(shù)據(jù)庫、面向?qū)ο髷?shù)據(jù)庫、多媒體數(shù)據(jù)庫……。1.2數(shù)據(jù)庫管理系統(tǒng)主要指負責(zé)數(shù)據(jù)庫存取、管理和維護的軟件系統(tǒng),通常叫做數(shù)據(jù)庫管理系統(tǒng)(DataBaseMenegermentSystem)o數(shù)據(jù)庫系統(tǒng)的各類用戶對數(shù)據(jù)庫的各種操

作請求,都是由DBMS響應(yīng)和處理的。1系統(tǒng)構(gòu)件劃分:供井中值 查詢(select…供井中值 查詢(select…)模式更新(create/alter/dr???數(shù)據(jù)更新(insert/delete/update)數(shù)據(jù)存儲器:存儲數(shù)據(jù)和元數(shù)據(jù)。主要以文件方式。元數(shù)據(jù)metadata:關(guān)于數(shù)據(jù)的結(jié)構(gòu)的信息。數(shù)據(jù)按元數(shù)據(jù)規(guī)范的格式存儲。索引index:一種數(shù)據(jù)結(jié)構(gòu),以快速查找數(shù)據(jù)項(item)。索引是數(shù)據(jù)的一部分,而對索引的說明則是元數(shù)據(jù)的一部分。Hash表是早期建立索引的主要方法,現(xiàn)一般使用B(Balance)樹。存儲管理器:接受上層的數(shù)據(jù)請求,提取或更新對應(yīng)的數(shù)據(jù)。包括文件管理和緩沖區(qū)管理。依賴于特定os。文件file管理:磁盤文件分塊block:1K-一16K緩沖區(qū)buffer管理:文件到內(nèi)存的映像。內(nèi)存分頁page:1K 4K查詢處理器:接受操作請求,把SQL命令轉(zhuǎn)變?yōu)閷Υ鎯?shù)據(jù)的操作序列,

主要問題是優(yōu)化。?事務(wù)管理器:負責(zé)系統(tǒng)數(shù)據(jù)的完整性。保證并發(fā)運行的多個SQL命令相互不沖突;保證系統(tǒng)出現(xiàn)故障時不丟失數(shù)據(jù)。處理三種SQL命令:模式更新:通常由管理員和設(shè)計員使用,改變當(dāng)前數(shù)據(jù)庫模式。查詢:對數(shù)據(jù)的詢問。兩種接口:通用的交互式接口(InteractiveSQL)和API。數(shù)據(jù)更新:改變當(dāng)前數(shù)據(jù)庫中數(shù)據(jù)的狀態(tài)。事務(wù)(Transaction)是什么?一組操作作為一個單元,按次序全部執(zhí)行,稱為事務(wù)Transaction。事務(wù)有那些特性?ACID:Atomicity:原子性,一個事務(wù)中的一組操作,要么全部執(zhí)行,要么一點也不執(zhí)行。Consistency:一致性,保持數(shù)據(jù)庫的正確狀態(tài)。Isolation:隔離性,多個事務(wù)并發(fā)運行時,作用效果相互分開。有一1定隔離級別。Durability:持久性,事務(wù)完成后,即使系統(tǒng)發(fā)生故障,事務(wù)的結(jié)果也不丟失。如何保持事務(wù)的特性:?加鎖?加鎖locking?提交commit?日志logging2系統(tǒng)功能劃分:數(shù)據(jù)庫管理系統(tǒng)是為數(shù)據(jù)庫的建立,使用和維護而配置的軟件。應(yīng)包括以下功能:數(shù)據(jù)庫定義功能數(shù)據(jù)存取功能數(shù)據(jù)控制功能數(shù)據(jù)庫維護功能數(shù)據(jù)通信功能1.3數(shù)據(jù)庫模式(schema)結(jié)構(gòu)模式是什么?模式(schema)是對某個數(shù)據(jù)庫的邏輯結(jié)構(gòu)的完整描述,通常用一組DDL來描述。子模式、用戶模式、視圖與應(yīng)用相關(guān)的局部特征.從模式角度看待一個數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)獨立性依靠模式分級及模式之間的映像實現(xiàn)。視圖view是什么??在關(guān)系數(shù)據(jù)庫中的一個子模式或外模式,對相同數(shù)據(jù)以不同方式/格式進行處理。?虛表,在一個或多個關(guān)系中的多個屬性上定義的“虛關(guān)系”。無實際存儲數(shù)據(jù),最終通過“實表”導(dǎo)出。?關(guān)系數(shù)據(jù)庫的一個組成部分。數(shù)據(jù)庫系統(tǒng)指使用了數(shù)據(jù)庫技術(shù)的計算機系統(tǒng)。應(yīng)包含:計算機基本系統(tǒng) ?數(shù)據(jù)庫管理員數(shù)據(jù)庫管理系統(tǒng) ?文檔及說明數(shù)據(jù)庫數(shù)據(jù)庫應(yīng)用體系結(jié)構(gòu)是什么?☆客戶/服務(wù)器(Client/Server,C/S)結(jié)構(gòu)??蛻舳薈lient:請求SQL服務(wù)的軟件進程。服務(wù)器Server:提供SQL服務(wù)的軟件進程。一個服務(wù)器可支持多個數(shù)據(jù)庫;一個數(shù)據(jù)庫包含多個關(guān)系。本課程內(nèi)容?設(shè)計design:如何建立一個有用的數(shù)據(jù)庫。包括需求分析,數(shù)據(jù)建模,關(guān)系設(shè)計。?編程progrmming:在數(shù)據(jù)庫設(shè)計的基礎(chǔ)上,如何進行各種查詢和計算操作。設(shè)計一個數(shù)據(jù)庫應(yīng)用實例如下:某商品銷售公司銷售業(yè)務(wù)數(shù)據(jù)庫系統(tǒng),該系統(tǒng)至少應(yīng)管理以下內(nèi)容:公司分為多個下屬部門(Department),如“江蘇銷售部”,“上海銷售部“等。每個部門有若干銷售員(Salesman),每個銷售員有唯一的員工號(如“S0025”)和身份證號,也包含姓名、性別、出生日期、電話等信息。一個銷售員僅屬于一個部門,且每個部門有一個銷售員擔(dān)任部門經(jīng)理。系統(tǒng)應(yīng)管理一組客戶(Customer):名稱、省、市、單位名稱、電話等。系統(tǒng)應(yīng)管理所有銷售的商品(Product):制造商(如“春蘭”、“海爾”等)、種類(如“摩托車”、“空調(diào)機”等)、規(guī)格(如“MT125”型摩托車、“RE1500”型空調(diào)等)、價格、功能及性能描述。系統(tǒng)用銷售訂單(Salesorder)表示銷售業(yè)務(wù)。每個訂單有一個訂單號和簽訂日期,且對應(yīng)一個客戶和一個銷售員。一個訂單至少銷售一種產(chǎn)品,并可銷售多種產(chǎn)品,每種產(chǎn)品應(yīng)確定其銷售數(shù)量和單價,以計算銷售金額。

第2章介紹一種數(shù)據(jù)庫建模的圖形表示法:實體/聯(lián)系(Entity/Re1ationship)模型。目的:對一個應(yīng)用系統(tǒng)進行需求分析,建立E/R模型。Salesman(empid,idno,name,gender,pfig目的:由一個數(shù)據(jù)庫的E/R模型,產(chǎn)生符合一定規(guī)范的關(guān)系模型。Customer(custjd,name,prov,city,phone,unit)Department(deptidSalesman(empid,idno,name,gender,pfig目的:由一個數(shù)據(jù)庫的E/R模型,產(chǎn)生符合一定規(guī)范的關(guān)系模型。Customer(custjd,name,prov,city,phone,unit)Department(deptid,name,derid)oProduct(prodid,factory,type,spec,price,Salesorder(ordernoT個第3章介紹關(guān)系數(shù)據(jù)模型,關(guān)系模型是什么,如何設(shè)計規(guī)范的關(guān)系模型。Salesitem(ordgrno,lineno,pro'丞singlecost,quantity)編程第4章介紹關(guān)系模型中的運算,使用關(guān)系代數(shù)表示抽象的計算。目的:在一個關(guān)系模型基礎(chǔ)上,根據(jù)要求給出關(guān)系的計算過程。1計算名為“張三”的銷售員的員工號及其電話號碼。nempid,phone(。name='張三'(Salesman))2計算員工號為“E0056”的銷售員所經(jīng)辦的客戶的姓名及其電話號碼。nname,phone(oempid="E0056*(SalesorderXICustomer))第5章介紹數(shù)據(jù)庫語言SQL,使用SQL建立數(shù)據(jù)庫并實現(xiàn)關(guān)系計算。目的:以查詢語句為重點,完成具體關(guān)系運算。1計算名為“張三”的銷售員的員工號及其電話號碼。SELECTempid,phoneFROMsalesmanWHEREname='張三';2計算員工號為“E0056”的銷售員所經(jīng)辦的客戶的姓名及其電話號碼。SELECTname,phoneFROMsalesorderNATURALJOINcustomerWHEREempid='E0056';第6章介紹SQL中的約束和觸發(fā)器目的:實現(xiàn)各種約束條件。約束的品質(zhì)決定一個數(shù)據(jù)庫系統(tǒng)設(shè)計的質(zhì)量。第7章介紹SQL系統(tǒng)概況目的:用SQL事務(wù)保證數(shù)據(jù)完整性,通過用戶授權(quán)和訪問控制保證數(shù)據(jù)庫的安全性。2數(shù)據(jù)庫建模當(dāng)構(gòu)建一個數(shù)據(jù)庫應(yīng)用時,如何以簡單明確的方式描述所要解決問題的重要特征?如何說明數(shù)據(jù)庫中需要存貯的信息,以及這些信息之間的關(guān)系?在數(shù)據(jù)庫系統(tǒng)中,是以數(shù)據(jù)模型為工具來抽象、表示和處理現(xiàn)實世界的信息的。數(shù)據(jù)模型1數(shù)據(jù)模型的類型信息模型(概念模型):E/R模型,ODL模型等基本數(shù)據(jù)模型:層次模型,網(wǎng)狀模型,關(guān)系模型等2基本數(shù)據(jù)模型的三要素數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)及數(shù)據(jù)之間的關(guān)系數(shù)據(jù)操作:對特定數(shù)據(jù)結(jié)構(gòu)的操作完整性約束:模型特有的約束及用戶定義的約束實體/聯(lián)系圖實體/聯(lián)系圖是什么?Entity/Relationship圖,簡稱E/R圖,一種傳統(tǒng)的圖形化數(shù)據(jù)庫建模語言。E/R模型。E/R圖的主要建模元素是什么?實體集entityset:與類class相對應(yīng),同型實體的集合。描述名稱。用矩形表示。屬性attribute:描述實體某一個性質(zhì)的值。只描述名稱,不描述類型。用橢圓表示。實體型entitytype:實體名及屬性名的集合,用以刻畫某個實體集。實體entity:實體集中的某個元素,與對象object類似。聯(lián)系relationship:兩個或多個實體集之間的連接關(guān)系。通常需要描述名稱。用菱形表示。例2.7:p30電影、影星與制片公司2.2.1E/R聯(lián)系的多重性多重性multiplicity是什么?實體之間存在的一種定量的約束關(guān)系。多重性有哪幾種?本質(zhì)上區(qū)分兩種多重性:1:關(guān)聯(lián)零個或一個實體,“最多一個”多;關(guān)聯(lián)零個到多個實體,“能超過一個”組合起來,考慮實體集A到B的聯(lián)系1對1:A的一個實體對應(yīng)B的零個或一個實體;且B的一個實體對應(yīng)A的零個或一個實體。例如:系一系主任學(xué)生一圖書證1對多:A的一個實體對應(yīng)B的零個到多個實體;而B的一個實體對應(yīng)A的零個或一個實體。多對1是1對多的逆聯(lián)系。例如:學(xué)生一系圖書一分類人員一設(shè)備多對多:A到B是1對多且B到A也是1對多。例如:學(xué)生一課程圖書一圖書證電影一影星多重性之間的關(guān)系是什么?1對多是多對多的一種特例;多對多包含1對多的情形。1對1是1對多的一種特例;1對多包含1對1的情形。如何確定多重性?假設(shè)從實體集A到B有一個聯(lián)系,如何確定B方的多重性?方法如下:先確定實體集A的一個實體,再判斷所聯(lián)系的實體集B中關(guān)聯(lián)一個還是多個實體。例如:學(xué)生一系學(xué)生一課程E/R模型中如何表示多重性?有箭頭所指的實體集為1。無箭頭所連接的實體集為多。考慮:銀行客戶與儲蓄帳號之間聯(lián)系的多重性。多重性有何意義?最基本的定量關(guān)系。決定數(shù)據(jù)庫的基本結(jié)構(gòu)。2.2.2多兀聯(lián)系什么是多元聯(lián)系?一個聯(lián)系涉及兩個以上的實體集,該聯(lián)系就是多元聯(lián)系。較常見的是三元聯(lián)系。例2.8:P31電影、影星與制片公司之間的簽約聯(lián)系Contracts是一個三元聯(lián)系,表示一個制片公司和一個影星簽約以主演某一部電影。一個聯(lián)系可表示為一個三元組:(studio,star,movie)又如:供應(yīng)商一工程一零件之間的供應(yīng)關(guān)系。三元聯(lián)系中的多重性是如何確定的?在實體集A和B中先分別確定一個實體,判斷聯(lián)系的C的實體是一個還是多個。考慮:圖書館中“讀者”、“書籍”和“管理員”之間的聯(lián)系??紤]:學(xué)校教務(wù)管理中“學(xué)生”、“教師”和“課程”之間的聯(lián)系。2.2.3聯(lián)系中的角色☆角色role是什么?在一種聯(lián)系中,一個實體相對于被關(guān)聯(lián)的其它實體的職責(zé)。當(dāng)兩個不同實體集之間建立一種聯(lián)系時,假定雙方實體集的名稱可表示各自的角色。當(dāng)一個實體集自身存在某種聯(lián)系時,就需要確定聯(lián)系的雙方所扮演的不同角色。例2.9:P31電影之間的首集與續(xù)集聯(lián)系Original考慮:公司雇員之間的管理關(guān)系(superior—inferior)??紤]:零部件之間的裝配關(guān)系。有時候,在一個聯(lián)系中,一個實體集可能多次出現(xiàn)。同一實體集中的多個實體在一個聯(lián)系中表示不同的語義。例2.10:P31制片公司、影星、電影之間的簽約聯(lián)系兩個實體集之間是否會有多種聯(lián)系?考慮:設(shè)備一工人之間的維修關(guān)系與使用關(guān)系。2.2.4聯(lián)系中的屬性為何聯(lián)系也有屬性?除了實體集可定義屬性之外,聯(lián)系也可定義屬性來擴展語義。實例:P33。三元聯(lián)系Contracts可定義一個salary(片酬)和signdate(簽約時間)的屬性。二元聯(lián)系也可定義屬性。如Movies和Stars之間的stars-in可定義時間等屬性。又如:學(xué)生與課程之間的選修關(guān)系可定義成績屬性。2.2.5把多元聯(lián)系轉(zhuǎn)換為二元聯(lián)系為何要轉(zhuǎn)換?簡化模型,方便設(shè)計和實現(xiàn)。如何把多元聯(lián)系轉(zhuǎn)換到二元聯(lián)系,而不丟失信息?以三元聯(lián)系為例,①把三元聯(lián)系表示為一個實體集,稱為連接實體集;②確定連接實體集的屬性;

③分別建立該實體集到三個原實體集的多對1的二元聯(lián)系。連接實體集是什么?一種特殊的實體集,可等價表示一個聯(lián)系。通常有屬性。實例:P34何時需要轉(zhuǎn)換?①多元聯(lián)系;②多對多聯(lián)系;③有屬性的聯(lián)系??紤]:將學(xué)生與課程之間的選修聯(lián)系用連接實體集表示。考慮:以下表示是否等價:練習(xí):P3設(shè)計原則什么是設(shè)計原則?指導(dǎo)我們分析需求,設(shè)計解決方案的準則。為何需要設(shè)計原則?為了真實全面反應(yīng)客觀需求,以得到良好的設(shè)計,且避免常見問題。真實性真實性原則是什么?忠實反映需求規(guī)范。實體集、聯(lián)系和屬性應(yīng)反映客觀的實際情況。這是最基本的原則。在設(shè)計中應(yīng)注意保持一致性,不自相矛盾。若違背此原則,將會得到無效甚至有害的設(shè)計。例2.14:p36Star與Movie間聯(lián)系Stars-in的多重性。2.3.2避免冗余避免冗余原則是什么?對任何事物的任何性質(zhì)的描述,都僅描述一次。注意避免:重復(fù)的表示,二次數(shù)據(jù),冗余的聯(lián)系實例:Movies和Studios之間的Owns聯(lián)系,可以表示為Movies的一個屬性。但不能共存??赡艿膯栴}:空間浪費;維護一致性的代價??紤]:人事檔案中每個人有身份證號、性別、出生日期、年齡等屬性。有多余屬性嗎?簡單性原則是什么?避免引入多余的元素。例2.15:p36Holdings表示一部電影的所有權(quán)。如果沒有屬性的話,則是多余的實體集??赡芤鸬膯栴}:多余實體集必然導(dǎo)致多余的聯(lián)系,空間浪費;計算復(fù)雜;易出錯。要點:對1對1的聯(lián)系要仔細研究是否多余。2.3.4選擇合適的元素類型表示事物的某個性質(zhì)時,可能面臨多種建模元素的選擇?!昂线m”是什么原則?相對的合理;更自然;更簡單;更貼近需求。1是選擇屬性,還是實體集?例2.16:考慮Studios。如果設(shè)計中只要求Studios的名稱,不要求其它屬性,如地址、總裁等,是否可作為Movies的一個屬性,而無需一個實體集。建議:若某事物具有除名稱之外的更多信息,則應(yīng)建模為一個實體集;否則應(yīng)為屬性。屬性比實體集或聯(lián)系實現(xiàn)起來更簡單。此外,在E/R模型中,每個實體所具有的屬性值應(yīng)該是單值的,因此,若某個屬性是多值的,通常需要將之建模為實體集??紤]:人事檔案中每個人除有姓名、身份證號之外,若需多個住址和多個宅電號碼,應(yīng)如何建模?考慮:住址和宅電號碼之間是否可能有聯(lián)系?2是選擇一個多元聯(lián)系,還是一個等價的連接實體集?根據(jù)具體需求分析的要求決定。例2.17:p37電影、影星與兩個制片公司之間的簽約聯(lián)系。將簽約作為連接實體集可表示制片公司數(shù)量不定的特殊情形。練習(xí):P382.3.2、2.3.3子類子類是面向?qū)ο蟮母拍钤贓/R圖中的體現(xiàn)。在E/R模型中雖然有表示方法,但不能解決普遍的復(fù)雜性問題。超類< 子類整體特征 繼承附加特征例如:職工一采購員一保管員注意:1超類與子類之間是1:1聯(lián)系2子類具有(繼承)超類的一切屬性及聯(lián)系

3僅與子類相關(guān)的屬性及聯(lián)系標于子類框上例2.21:p42電影、卡通片與謀殺片練習(xí):P442.4.3對約束建模約束constraint是什么?關(guān)于某個性質(zhì)的語義條件或限制。約束決定數(shù)據(jù)庫的設(shè)計質(zhì)量。對約束建模是什么含義?以規(guī)范的方法對約束進行描述,以完成設(shè)計。為何要對約束建模?除了實體集、聯(lián)系和屬性的名稱之外,還有更多信息。這些信息不能獨立存在,而是附加在已有元素上。附加信息以約束的方式作用于實體集、聯(lián)系或?qū)傩?。有哪些重要的約束種類?■鍵key■單值single-value

■鍵key■其它■參照完整性■其它■域domain2.5.1鍵(鍵碼)鍵key是什么?若一個實體集中的一個或多個屬性的值可唯一標識一個實體,則該屬性集稱為實體集的一個鍵。在一個實體集中,不存在鍵值相同而其它屬性值不同的實體。這種特征在數(shù)據(jù)庫的整個生命周期內(nèi)均成立。例2.23:p45電影-一片名、年份制片公司-…名稱影星--姓名(地址)鍵中每個屬性稱為一個鍵屬性。(主屬性)注意:應(yīng)盡可能使鍵的屬性集合最小化。*對象標識ObjectIdentity(OID)如何在屬性集合中尋求鍵?注意區(qū)分鍵屬性和非鍵屬性;分析屬性之間的自然關(guān)系。例如:每個人:身份證號。例如:每個人:身份證號。每個學(xué)生;學(xué)號。每個雇員;員工號。每臺機動車:牌照號。每個駕駛員;駕照號。每份合同:合同號。每部電影:片名和年份。每個制片廠:名稱如果選錯鍵,會造成什么后果?錯誤設(shè)計。返工;修復(fù)代價高昂。E/R圖中如何表示鍵?下劃線表示鍵。例如:每個實體集只能有唯一的一個鍵嗎?例如:雇員:員工號、身份證號。一個實體集可能有多個鍵。E/R模型中每個實體集通常只選擇描述一個鍵,即“主鍵”PrimaryKeyo如果需要,可旁注說明多個鍵。每個實體集的鍵屬性肯定都是自己的屬性嗎?不是。有一種特殊的實體集,稱為“弱實體集”,一部分鍵屬性不是自身屬性。后面介紹。每個實體集是否都有自然的屬性作為鍵?不是,有些實體集需人工造鍵。2.5.2單值約束“值”是什么概念?一個實體在某方面的一個狀態(tài)。如某影片的片名、長度(分鐘)、所屬制片公司?!皢沃怠笔鞘裁锤拍??一個實體在某個屬性或聯(lián)系上的值“只有一個"。反之,如果多于一個值,則為“多值實例:一部影片的片名和長度的值是單值;一部影片到所屬制片公司是單值聯(lián)系(參照完整性)。一部影片的主演影星不是單值聯(lián)系,而是多值聯(lián)系。區(qū)別單值約束的兩種情況:“至多一個”:允許空值(NULL),即零個或一個。“必須一個"。不允許空值,必存在一個。例:一部影片的片名必須存在,而其長度和制片公司則可能不知道,為空值??罩礜ULL表示什么含義?空值表示“不明確”、或“現(xiàn)在不知道”或“不存在”的含義。E/R模型如何表示單值約束?實體集的每個屬性隱含單值約束,且允許為空。不允許為空的屬性,必須明確標注。{NOTNULL}多對1聯(lián)系是單值聯(lián)系。考慮:1對1是單值聯(lián)系嗎?多對多聯(lián)系為何不是單值聯(lián)系?鍵屬性是否允許為空?2.5.3參照完整性參照reference是什么?也稱引用,一種關(guān)聯(lián)對象的方式。先有對象實體存在,才能對其引用。若對象實體被撤銷而引用不撤銷,則會產(chǎn)生“掛空引用”。參照完整性referneeintegrity是什么?一種單值聯(lián)系。某個聯(lián)系所關(guān)聯(lián)的實體“必須有一個”。實例:Movies和Studios之間的聯(lián)系ownedby。對于一部電影,若對應(yīng)某個制片公司,則要求被參照的那個制片公司必須唯一存在。E/R模型如何表示參照完整性?圓箭頭指向“必須有一個”的一方。如何保持參照完整性?從實體增加來看,被參照對象應(yīng)先存在。從實體刪除來看,有兩種方法:被參照的實體不能被刪除。當(dāng)被參照的實體被刪除時,所有參照它的實體都要刪除。從修改聯(lián)系來看,當(dāng)參照實體的聯(lián)系改變時,新值必須參照已存在的實體。如某電影對應(yīng)的制片公司從Fox改為Paramounto當(dāng)被參照實體的鍵屬性值改變時,所有參照它的實體都自動改變。如將Fox改為20CFox。更多細節(jié)在第6章。5.4其它約束域domain約束是什么?限定某個屬性的取值范圍。例如:限定length的取值范圍為[20-240]。E/R圖中旁注。其它約束:對聯(lián)系多重性進行約束。練習(xí):重新檢查前面所做練習(xí),a選擇并說明鍵;b確定適當(dāng)?shù)膮⒄胀暾浴?弱實體集眾弱實體集WeakEntitySet是什么?一種特殊的實體集,其鍵屬性的一部分或全部屬性屬于其它實體集。6.1產(chǎn)生弱實體集的原因

兩個方面:■實體集之間存在層次結(jié)構(gòu)。例如:Studios和Crews之間;Company和Department之間;Salesorder和Salesitem之間■連接實體集。例2.1.5中Contracts若沒有簽約號,其鍵是Stars>Studios和Movies的鍵屬性的總和。Studios2.6.2對弱實體集的要求若E是一個弱實體集,則為E提供鍵屬性的每個實體集F必然通過一個聯(lián)系R與E關(guān)聯(lián),且滿足下面條件:.R是從E到F的二元多對1聯(lián)系。.F為E提供的鍵屬性必然是F的鍵.若F本身是弱實體集,則F為E提供的鍵屬性可能是通過另一個多對1聯(lián)系與F關(guān)聯(lián)的另一個實體集的鍵。.若從E到F存在多個多對1的聯(lián)系,則每個聯(lián)系都可能把F的鍵提供給E構(gòu)成其鍵。6.3弱實體集的表示法弱實體集:雙邊矩形。多對1的聯(lián)系:雙邊菱形。鍵屬性:下劃線。練習(xí):P5.22.7小結(jié)數(shù)據(jù)庫建模的目的是什么?如何對一個數(shù)據(jù)庫進行建模?我們學(xué)過哪種建模方法?建模時應(yīng)堅持哪些原則?系統(tǒng)中可能有哪些重要約束?如何對約束建模?弱實體集是什么?如何對弱實體集建模?實例:銷售業(yè)務(wù)管理系統(tǒng)建模3關(guān)系數(shù)據(jù)模型.關(guān)系數(shù)據(jù)模型是什么?.如何將E/R模型轉(zhuǎn)變?yōu)殛P(guān)系數(shù)據(jù)模型?.如何使關(guān)系模型滿足一定規(guī)范形式(范式)?3.1關(guān)系模型的基本概念關(guān)系模型是以集合論中的關(guān)系來表示數(shù)據(jù)以及數(shù)據(jù)之間的聯(lián)系的。關(guān)系relation是什么?由若干列和行組成的一個二維表,稱為一個關(guān)系,即一個表table。表示數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)集合的一種簡單方式。一個關(guān)系有一個名稱。MoviestitleyearlengthfilmTypeStarWarsWayne'sWorldMightyDucks19771992199112495104colorcolorcolor3.1.1屬性屬性attribute是什么?一個關(guān)系中某一列的名稱,描述一列數(shù)據(jù)的含義。如Movies中的lengtho一個屬性有一個名稱。一個關(guān)系中的多個屬性不能重名。關(guān)系模式relationalschema是什么?一個關(guān)系的名稱及其一組屬性的集合,稱為一個“關(guān)系模式表不為:關(guān)系名(屬性1、屬性2、…、屬性n)例如:movies(title,year,length,filmtype)一個數(shù)據(jù)庫包含一個或幾個關(guān)系模式。一個關(guān)系數(shù)據(jù)庫中所包含的關(guān)系模式的全體,稱為一個“關(guān)系數(shù)據(jù)庫模式”,或“數(shù)據(jù)庫模式一個關(guān)系模式中的各屬性排列有次序嗎?沒有。但為方便起見,一個關(guān)系通常設(shè)有一個“缺省次序”。1.3元組一個元組tupIe是什么?某個關(guān)系中除了屬性標題之外的一行數(shù)據(jù)。一個關(guān)系中可能沒有元組。一個元組(行)在每個屬性(列)上有一個交叉,即一個分量(component)o如何表示一個元組?按照關(guān)系模式,用逗號分割每個分量。例如:(StarWars,1977,124,color)注意:不表示屬性名稱,按照關(guān)系模式的屬性次序表示各分量。元組和對象之間有何對應(yīng)關(guān)系?一個關(guān)系可粗略對應(yīng)一個類。一個元組可粗略對應(yīng)一個對象。一個元組的一個分量對應(yīng)一個對象在某屬性上的一個值。元組和對象之間有何區(qū)別?對象具有自身固有的標識(OID);無需人為定義鍵。一個關(guān)系中的元組在關(guān)系中不能出現(xiàn)多次;而類中的一組對象的屬性值可以相同。1.4域域domain是什么概念?一個域是一種基本數(shù)據(jù)類型,如integer,char(n),date,time等。一個關(guān)系中每個屬性都屬于某個域,即某種基本數(shù)據(jù)類型。關(guān)系模型要求每個元組的每個分量必須具有原子性。原子性atomic是什么含義?沒有內(nèi)部結(jié)構(gòu),不能再分解的基本數(shù)據(jù)類型。1.5關(guān)系的等價表示法一個關(guān)系為什么有多種等價表示?改變關(guān)系中屬性的排列次序,即改變列次序,不改變關(guān)系的含義。注意,各分量對應(yīng)各列。改變關(guān)系中元組的排列次序,即改變行次序,不改變關(guān)系的含義。一個關(guān)系的模式和元組之間有何關(guān)系?關(guān)系模式相對靜態(tài);而關(guān)系中的元組是動態(tài)變化的。元組的增、刪、改必須按關(guān)系模式進行。關(guān)系的實例是什么?一個關(guān)系的一組元組即為該關(guān)系的一個實例。關(guān)系的實例隨時間變化,“當(dāng)前實例”指的是在當(dāng)前時刻,某關(guān)系中的元組。練習(xí):P623.1.1從ODL設(shè)計到關(guān)系設(shè)計從E/R圖到關(guān)系設(shè)計如何把E/R模型轉(zhuǎn)換為關(guān)系設(shè)計?3.1實體集到關(guān)系的轉(zhuǎn)換如何把非弱實體集轉(zhuǎn)換為關(guān)系設(shè)計?建立相同名稱的關(guān)系,且具有相同屬性集。例3.10:p73Movies(title,year,length,filmType)Stars(name,address)Studios(name,address)3.2E/R聯(lián)系到關(guān)系的轉(zhuǎn)換如何把多元聯(lián)系轉(zhuǎn)換為關(guān)系設(shè)計?先轉(zhuǎn)換為二元聯(lián)系,再按下面方法轉(zhuǎn)換。如何把二元聯(lián)系轉(zhuǎn)換為關(guān)系設(shè)計?根據(jù)多重性分別處理:E1到E2的多對多聯(lián)系R:R表示為一個關(guān)系,其屬性是E1和E2的鍵屬性,加上自身屬性。例如:Movies和Stars之間的Starsln(title,year,starName)例如:學(xué)生與課程間的選修關(guān)系:選修(學(xué)號,課號,成績)E1到E2的多對1聯(lián)系R:R可表示為一個關(guān)系,但不是必須表示為關(guān)系。例如:Movies至^Studios之間^lOwnedbvftitle,year,studioName)在El關(guān)系中增加E2的鍵屬性,E2作為被參照關(guān)系。例如:Moviesftitle,year,length,fileType,studioName)例如:系與職工間的從屬關(guān)系。職工(職工號,姓名,…,系號)E1到E2的1對1聯(lián)系R:R可表示為一個關(guān)系,但通常不表示為關(guān)系。而采用兩種方法:?在E1關(guān)系中增加E2關(guān)系的鍵,E2作為被參照關(guān)系。?在E2關(guān)系中增加E1關(guān)系的鍵,E1作為被參照關(guān)系。1對1聯(lián)系可能被合并為一個關(guān)系。例如:系與職工間的領(lǐng)導(dǎo)關(guān)系??杀硎緸椋合担ㄏ堤?,系名,系主任職工號)或;職工(職工號,姓名,…,系號,領(lǐng)導(dǎo)系號)如何把弱實體集轉(zhuǎn)換為關(guān)系設(shè)計?弱實體集E表示為一個關(guān)系,包含自身屬性和F關(guān)系的鍵屬性。關(guān)系R不再表示為一個關(guān)系。例如:職工與職工簡歷職工(職工號,姓名,性別,出生日期,…)職工簡歷(職工號,時間,單位,任職)例3.16:p77簽約Contracts(starName,studioName,titlt,year,salary)練習(xí):151銷售業(yè)務(wù)系統(tǒng)3.4子類結(jié)構(gòu)到關(guān)系的設(shè)計1單獨表示子類關(guān)系例如:職工與采購員表示為:職工(職工號,姓名,性別,出生日期,…)采購員(職工號,采購指標)2使用空值NULL合并子類關(guān)系。例如:職工與采購員表示為:職工(職工號,姓名,性別,出生日期,…,采購指標)例3.18:p79電影、卡通片與謀殺片用形式化方法研究一個關(guān)系中各屬性之間的語義關(guān)系。3.5.1函數(shù)依賴的定義函數(shù)依賴是如何定義的?若關(guān)系R的任意兩個元組在屬性Al、A2 An上一致(即有相同分量值),則這兩個元組在屬性B上也一致,則稱屬性AlA2...An函數(shù)決定B,或稱B函數(shù)依賴于A1A2…An。記為:AlA2...AnfB若t和u在A上一致,則在B上一致例如:學(xué)號f姓名學(xué)號f性別考慮:姓名一性別?關(guān)系:學(xué)生(學(xué)號,姓名,性別)中為何學(xué)號f姓名成立?如果兩個元組具有相同學(xué)號,則兩個元組指同一個學(xué)生,故具有相同姓名和性別。在一個關(guān)系中,不存在(鍵值)完全相同的元組。如果不存在兩個元組具有相同學(xué)號,即每個元組各表示一個學(xué)生,則學(xué)號一姓名成立。推論1:當(dāng)且僅當(dāng)AlA2...An—BlAlA2...An—B2AlA2...AnfBmAlA2...An—BlB2...Bm推論2:A-0?A例3.20:p82關(guān)系Movies(title,year,length,filmiype,studioName,starName)中,存在哪些函數(shù)依賴?titleyear-*lengthfilmTypestudioName考慮:titleyearfstarName?titleyearlengthfilmTypestudioNamestarNajneStarWars1977124colorFoxCarrieFisherStarWars1977124colorFoxMarkHamillStarWars1977124colorFoxHarrisonFordMightyDucks1991104colorDisneyEmilioEstevezWayne,sWorld199295colorParamountDanaCarveyWayne'sWorld199295colorParamountMikeMeyers例:分析學(xué)生(學(xué)號,課號,成績,系號,宿舍區(qū))中的函數(shù)依賴如何分析一個具體關(guān)系中的函數(shù)依賴?根據(jù)屬性之間的語義關(guān)系分析函數(shù)依賴。應(yīng)考慮所有可能的屬性組合。盡可能使函數(shù)依賴式的左面最小化,而右面最大化。注意:函數(shù)依賴是針對關(guān)系模式,而不是針對特定實例,故只從關(guān)系實例不能確切斷定函數(shù)依賴。判斷函數(shù)依賴的三種情形如果任意兩元組在屬性A上一致,在B上也一致,則有A-B成立。如果任意兩元組在屬性A上一致,在B上不一致,則A-B不成立。如果任意兩元組在屬性A上不可能一致,則不管在B上是否一致,有A-B成立。部分函數(shù)依賴:若X-Y,且存在X的真子集X,,X,一Y,則稱丫對X部分函數(shù)依賴。完全函數(shù)依賴:若XfY,且丫對X不是部分函數(shù)依賴,則稱丫對X是完全函數(shù)依賴。傳遞函數(shù)依賴:若XfY,Y"X,且YfZ,則稱Z對X是傳遞函數(shù)依賴。3.5.2關(guān)系的鍵如何用函數(shù)依賴定義鍵key?定義:對于關(guān)系R,若屬性集合{A1,A2,…,An}滿足下列條件,則該屬性集合是R的一個鍵key:Al,A2,…,An函數(shù)決定R中所有其他屬性。(超鍵){A1,A2,…,An}的任何真子集都不能函數(shù)決定R中所有其他屬性。(最小化)這個定義與2.4.1的鍵定義一致嗎?一致。前面的定義是鍵的一種非形式化的語義說明,而函數(shù)依賴的定義是形式化的定義。上例Movies關(guān)系的鍵是什么?{title,year}是鍵嗎?為何{title,year,starName}是鍵?若有關(guān)系R(A,B,C),已知A-B在R上成立,則R的鍵是什么?什么是主鍵PrimaryKey?一個關(guān)系可能有多個鍵,但只選擇表示其中的一個。什么是候選鍵CandidateKey?一個關(guān)系中的所有的鍵,都是候選鍵。5.3超鍵什么是超鍵superkey?鍵的超集supersetofkey。即包含鍵的屬性集合??珊瘮?shù)決定關(guān)系中所有屬性的屬性集合。每個鍵都是超鍵嗎?是。上例中屬性集{title,year,starName}是超鍵嗎?一個關(guān)系的屬性全集是超鍵嗎?是。每個超鍵都是鍵嗎?不是。上例中屬性集{title,year,length,starName}是鍵嗎?是超鍵嗎?5.4從E/R圖中發(fā)掘鍵如何表示一個關(guān)系模式中的鍵?每個關(guān)系只描述主鍵。下劃線表示。如何確定來自E/R模型實體集的關(guān)系的鍵?原有實體集的鍵即為對應(yīng)關(guān)系的鍵。例3.23:p85Movies(title,year,length,fileType)Stars(name,address)Studios(name,address)如何確定來自E/R模型的二元聯(lián)系的關(guān)系R的鍵?根據(jù)多重性分三種情況:多對多:相聯(lián)系的兩個實體集的鍵屬性共同構(gòu)成R的鍵。多對1:E1-E2,E1的鍵屬性作為R的鍵。通常該關(guān)系可合并到E1關(guān)系中。1對1:任意一端實體集的鍵都可作為R的鍵,但通常該關(guān)系可合并到E1或E2關(guān)系中。例3.23:p85Starsln(title,year,starName)Owns(title,year,studioName)可合并到movies關(guān)系中:Movies(title,year,length,fileType,studioName)例:銷售業(yè)務(wù)系統(tǒng)。見1513.6函數(shù)依賴規(guī)則什么是函數(shù)依賴規(guī)則?為何需要它?在一個給定關(guān)系上,已知一組函數(shù)依賴作為前提條件。根據(jù)一組函數(shù)依賴規(guī)則,推斷另一些函數(shù)依賴。這種計算和驗證可有效減少冗余,得到良好的關(guān)系設(shè)計。例3.26:p88已知R(A,B,C),及AfB,BfC,可證A-Co證明:設(shè)(a,bl,cl)和(a,b2,c2)是R的元組由AfB可知bl=b2記作b又由BfC可知cl=c2從而A—C有哪些重要的函數(shù)依賴規(guī)則?分解/合并(Splitting/combining)規(guī)則平凡依賴(TrivialDependance)規(guī)則傳遞(Transitivy)規(guī)則Armstrong公理兩個函數(shù)依賴集合之間有何關(guān)系?設(shè)T是關(guān)系R上的函數(shù)依賴集,若對R的所有實例,函數(shù)依賴X

都成立,則稱T“邏輯蘊含"XfY。(X-丫可由T推導(dǎo)出來)設(shè)S是關(guān)系R上的另一函數(shù)依賴集,若對R的所有實例,S中的所有函數(shù)依賴均成立,則稱函數(shù)依賴集S“蘊含于”函數(shù)依賴集T。(S可由T推導(dǎo)出來)若函數(shù)依賴集S“蘊含于"T,同時T“蘊含于"S,則函數(shù)依賴集S“等價于”函數(shù)依賴集幾蘊含和等價關(guān)系有何用處?可用等價的更簡單的函數(shù)依賴集代替復(fù)雜的函數(shù)依賴集??稍谝粋€函數(shù)依賴集S中增加蘊含其中的其它函數(shù)依賴??膳袛嘁粋€函數(shù)依賴是否蘊含于已知的函數(shù)依賴集。3.6.1分解/合并規(guī)則什么是分解/合并規(guī)則(Splitting/CombiningRule)?AlA2...An-BlB2...Bm等價于AlA2...An-BlAlA2...AnfB2例如:關(guān)系Movies例如:關(guān)系Movies中,AlA2...AnfBmtitleyearflengthfilmTypestudioName等價于:titleyearflengthtitleyearfileTypetitleyearfstudioName注意:函數(shù)依賴的左面不能分解合并。例如:學(xué)號課號一成績平凡依賴(TrivialDependance)是何含義?對于函數(shù)依賴A1A2…AnfB,若B是A中的某一個屬性,則該函數(shù)依賴是“平凡的”。平凡依賴是恒真式。更一般定義:對于函數(shù)依賴AlA2...AnfBlB2...Bm若B是A的子集,則該依賴是“平凡的”;若B中至少有一個屬性不在A中,則該依賴是“非平凡的”;若B中沒有一個屬性在A中,則該依賴是“完全非平凡的例如:titleyear-?yearlength是非平凡的;titleyear-length是完全非平凡的。平凡依賴規(guī)則是什么?如果函數(shù)依賴式右邊的屬性中有一些出現(xiàn)在左面,那么可以將右邊重復(fù)出現(xiàn)的屬性刪除。即:函數(shù)依賴AlA2...AnfBlB2...Bm等價于AlA2...AnfClC2...Ck,其中:C是B中不在A中出現(xiàn)的屬性。如果t如果t和U在屬性A上?致則它們必然在B上一致,所以在C上也?致。3.6.3計算屬性的閉包已知S是關(guān)系R上的函數(shù)依賴集,則屬性集{A1,A2,…,An}可函數(shù)決定的最大屬性集合是什么?a)這個集合被稱做什么?b)如何計算這個集合?c)這種計算有何用途?屬性的閉包是什么?☆設(shè)S是關(guān)系R上的函數(shù)依賴集,A={A1,A2,…,An}是R上的屬性集,屬性A在函數(shù)依賴集S下的閉包(closure)是這樣一個屬性集B,使對關(guān)系R的所有實例,函數(shù)依賴:AlA2...AnfB均成立。即AlA2...AnfB“蘊含于”函數(shù)依賴集S。屬性集{A1,A2,…,An}的閉包表示為{Al,A2,-,An}+o{A1,A2,…,An}包含于{A1,A2,…,An}+若AlA2...An—X,則XqB如何計算屬性的閉包?給定函數(shù)依賴集S和屬性集人=依162,…An},如何計算A+?1將X初始化為{A1,A2,…,An},閉包最小集合。2遍歷S中的每個函數(shù)依賴,對于每個依賴式:B1B2…BmfC如果Bl、B2、…、Bm都在X中,而C不在X中,則把C加入X中。3重復(fù)第2步,直到遍歷完S中所有函數(shù)依賴,而沒有新屬性能加入到X中。4最終屬性集X即為屬性集A在函數(shù)依賴集S下的閉包A+。例3.28:P90設(shè)有關(guān)系R(A,B,C,D,E,F)與函數(shù)依賴集S:{ABfC,BCfAD,D-E,CFfB}求:{A,B}+解:X(1)={A,B},由AB-C,得:M2)={A,B,C},由BC-AD,得:X(3)={A,B,C,D},由D-E,得:X(4)={A,B,C,D,E}={A,B}+屬性閉包計算有何用途?假設(shè)關(guān)系R上已有一個依賴集S,另有一個函數(shù)依賴A1A2…An-B,該依賴是否蘊含于S?判斷方法:.計算{Al,A2,...,An『。.若B在{A1,A2,…An}+中,則函數(shù)依賴AlA2...An-B蘊含于S中。若B不在{A1,A2,…An}+中,則函數(shù)依賴A1A2…An-B不蘊含于S中。一般性結(jié)論:若關(guān)系R有函數(shù)依賴集S,當(dāng)且僅當(dāng)所有B1B2…Bm都在{A1,A2,…,An}+中,貝IJA1A2…An B1B2…Bm蘊含于S中。考慮:上例關(guān)系R中,AB-D和DfA是否蘊含于函數(shù)依賴集S中?屬性的閉包和鍵之間有何關(guān)系?對于一個關(guān)系R,當(dāng)且僅當(dāng)Al,A2,...,An是R的超鍵時,{Al,A2,...,An}+是R的所有屬性的集合。什么是傳遞規(guī)則?把兩個函數(shù)依賴級聯(lián)起來。具體來說:若A1A2…AnfB1B2…Bm和B1B2…BmfC1C2…Ck成立,貝IJA1A2…AnfC1C2…Ck成立(蘊含于前兩個依賴中)。如何證明傳遞規(guī)則?計算{A1,A2,…,An}的閉包,應(yīng)包含B1B2…Bm,再包含C1C2…Ck。傷!]:關(guān)系MovieStudio(title,year,legth,filmType,studioName,studioAddr)title,yearfstudioNamestudioNamefstudioAddr則title,yearfstudioAddr.6.5函數(shù)依賴的閉包以上三個規(guī)則,可由一組“給定”依賴集“導(dǎo)出”新依賴集。對于給定的關(guān)系模式R和函數(shù)依賴集F,所有能由F導(dǎo)出的函數(shù)依賴的全體稱作F的閉包,記作F+。通常我們更需要選擇一個依賴集來表示所有依賴。?對于一個關(guān)系,任何一個能導(dǎo)出所有依賴的依賴集,稱為該關(guān)系的一個“基”baseo對于同一個關(guān)系,可能有多個“基,?如果一個基的任何真子集都不能導(dǎo)出該關(guān)系的所有依賴集,則稱該基為“最小”基。對于同一個關(guān)系,可能有多個“最小”基。例3.31p93已知關(guān)系R(A,B,C)及函數(shù)依賴集F:{A—B,AC,B~A,B-C,C—A,CfB}最小基有:{AfB,B-A,BfC,CfB}{AfB,B—C,CfA}等Armstrong公理:P95自反律(Reflexivity)。若{B1,B2,…,Bm}L{Al,A2,…,An},貝(JAlA2...AnfBlB2...Bmo(平凡)增長律(Augmentation)。若AlA2...An-*BlB2...Bm,則對于任意屬性集{C1,C2,…,Ck},有AlA2...AnClC2...Ck-BlB2...BmClC2...Ck傳遞律(Transitivity)。若AlA2...An-*BlB2...Bm和BlB2...Bm-C1C2…Ck成立,貝IJA1A2…AnfClC2...Cko練習(xí):P9.2.6.1已知關(guān)系模式R(A,B,C,D)有函數(shù)依賴AB-C,C-*D,D-A(a)求蘊含于給定函數(shù)依賴的所有完全非平凡函數(shù)依賴。⑹求R的所有鍵。(c)求R的所有超鍵(不包括鍵)。解:(a)根據(jù)所有屬性集合的閉包,計算所有可能的函數(shù)依賴。{A}+={A}{B}+={B}

{C}+{C}+={C,D,A){D}+={D,A}C-AD{A,B}+={A,B,C,D}ABfCD{A,C}+={A,C,D} AC-D{A,D}+={A,D}{B,C}+={B,C,D,A} BC-AD{B,D}+={B,D,A,C} BDfAC{C,D}+={C,D,A} CD-*A{A,B,C}+={A,B,C,D} ABC-D{A,B,D}+={A,B,D,C} ABD-C{A,C,D}+={A,C,D){B,C,D}+={B,C,D,A}BCD-A(b)所有的鍵:{A,B},{B,C},{B,D}(c)所有的超鍵(不包括鍵):(A,B,C},{A,B,D},{B,C,D},{A,B,C,D}3.7關(guān)系數(shù)據(jù)庫模式設(shè)計關(guān)系模式設(shè)計中為何出現(xiàn)冗余?關(guān)系模式設(shè)計中可能出現(xiàn)各種冗余,即同一事實在多個元組中重復(fù)。造成冗余的原因通常是將同一個對象的單值和多值特征混合在同一個關(guān)系中。例如:學(xué)生關(guān)系學(xué)號課號成績系號系主任S1C1ADIMlS1C2ADIMlS1C3BDIMlS2C2BDIMlS3C1AD2M2S3C3AD2M2S4C1BD2M2S4C2AD2M2如何解決冗余問題?按如下步驟解決冗余問題:.分析關(guān)系模式設(shè)計缺陷可能導(dǎo)致的問題。.引入“關(guān)系分解”,把一個關(guān)系模式(屬性集)分解為更小的模式。.介紹"Boyce-Codd范式"(Boyce-CoddNormalForm,即BCNF),給出關(guān)系模式所應(yīng)滿足的條件。.如何通過分解關(guān)系模式保證滿足BCNFo.放寬BCNF條件,引入“3NF”。.簡單介紹1NF和2NF。3.7.1異?!爱惓!敝甘裁??異常anomaly,即不符合規(guī)范,在操作數(shù)據(jù)庫時,影響數(shù)據(jù)一致性。關(guān)系設(shè)計中主要有哪些異常?.冗余。同一信息在多個元組中不必要的重復(fù)。浪費空間,增加更新操作的復(fù)雜度,影響數(shù)據(jù)一致性。.修改異常。當(dāng)修改了某個元組中的信息,而重復(fù)的信息可能未修改而破壞一致性。插入數(shù)據(jù)時,某些有用信息暫時無法插入。.刪除異常。當(dāng)刪除某個元組時,可能刪除其它信息;若需刪除某個對象時,必須刪除多個元組而不是一個元組。否則,破壞數(shù)據(jù)一致性。7.2關(guān)系分解什么是關(guān)系分解?給定一個關(guān)系R{A1,A2,…,An},將R分解為兩個關(guān)系S{B1,B2,…,Bm}和T{Cl,C2,...,Ck},使得{Al,A2,...,An}={B1,B2,…,Bm}U{C1,C2,…,Ck}S中的元組是R的所有元組在{Bl,B2,…,Bm}上的投影;T中的元組是R的所有元組在{C1,C2,…,Ck}上的投影。投影是什么?R中的一個元組在屬性B1,B2,…,Bm上的分量,構(gòu)成S中的一個元組,且保持元組不重復(fù)。為何要進行關(guān)系分解?為了避免異常,用幾個關(guān)系代替原有的關(guān)系,且保持數(shù)據(jù)一致性。關(guān)系分解的例子:例如:學(xué)生(學(xué)號,課號,成績,系號,系主任)分解為下面的關(guān)系:選修(學(xué)號,課號,成績)學(xué)號課號成績S1C1AS1C2AS1C3BS2C2BS3C1AS3C3AS4C1BS4C2A學(xué)生(學(xué)號,系號,系主任).學(xué)號系號系主任S1D1MlS2D1MlS3D2M2S4D2M2分解后的關(guān)系無異常。這些關(guān)系可連接(join)得到原有的關(guān)系元組,且不改變原有語義。對于一個給定的關(guān)系模式,如何判斷是否存在異常?如何進行關(guān)系模式的分解?7.3BC范式范式(NormaIForm)是什么:關(guān)系模式所滿足的不同程度的要求(規(guī)范形式)O若關(guān)系模式R的每個分量均是不可再分的數(shù)據(jù)項,則R滿足第一范式,又記作:ReINFo在第一范式的基礎(chǔ)上,逐步加強條件,分另IJ有2NF,3NF,BCNF,4NF,5NF。一個較低級別的關(guān)系模式,可通過分解的方式,轉(zhuǎn)換成若干個較高級別的關(guān)系模式,這種過程叫做關(guān)系規(guī)范化。為何引入BC范式?BC范式(BCNF,Boyce-CoddNormalForm)是常用判斷條件,滿足該條件就能避免函數(shù)依賴引起的異常。BC范式如何定義?關(guān)系模式R滿足BC范式,當(dāng)且僅當(dāng)若非平凡函數(shù)依賴AlA2...AnfBlB2...Bm在關(guān)系R中成立,貝|J{A1,A2,…,An}是R的超鍵。關(guān)系R滿足BC范式的兩種情形?關(guān)系R中不存在非平凡函數(shù)依賴。(只有平凡函數(shù)依賴)?每個非平凡函數(shù)依賴的左面包含某個鍵(即左面是超鍵)。關(guān)系R違背BC范式的唯一情形關(guān)系R中至少存在一個非平凡函數(shù)依賴,其左面不是超鍵。例如:學(xué)生(學(xué)號,課號,成績,系號,系主任)是否滿足BC范式?鍵:{學(xué)號,課號}非平凡函數(shù)依賴:學(xué)號一系號,系主任成立而左面不是超鍵。分解后的選修(學(xué)號,課號,成績)和學(xué)生(學(xué)號,系號,系主任)是否滿足BC范式?方法:1)找出所有的Key2)檢查所有非平凡函數(shù)依賴3)左面是否超鍵?僅有兩個屬性的關(guān)系必是BC范式R(A,B)可分四種情況討論:1沒有非平凡函數(shù)依賴。AfB成立,而B-A不成立。A是唯一鍵,依賴式左面是鍵。B-A成立,而AfB不成立。B是唯一鍵,依賴式左面是鍵。A-*B成立,且BfA成立,關(guān)系R有兩個鍵:A和B,每個依賴式左面是鍵。注意:一個關(guān)系可能有多個鍵,而BC范式要求依賴式左面包含某個鍵,而不是所有鍵。3.7.4分解為BC范式☆分解關(guān)系有何條件?把一個關(guān)系模式分解成一個由若干個關(guān)系模式構(gòu)成的集合,且這些關(guān)系模式應(yīng)滿足如下條件:1每個關(guān)系模式都滿足BCNF。2分解后的元組能如實反映原有關(guān)系中的數(shù)據(jù),即能從分解后的關(guān)系中準確重構(gòu)原有關(guān)系。問題:能否將所有關(guān)系分解為單目關(guān)系?分解策略:消除違背BCNF的函數(shù)依賴1找一個違背BCNF的非平凡函數(shù)依賴A1A2…AnfBlB2...Bmo2把關(guān)系R分解成兩個關(guān)系:Rl(Al,A2,...,An,B1,B2,…,Bm)。R2(A1,A2,…,An,所有其它屬性),若不滿足BC范式,則再分解。例如:R(學(xué)號,課號,成績,系號,系主任)不滿足BCNF。1非平凡函數(shù)依賴:學(xué)號一系號,系主任成立2R分解為:R1(學(xué)號,系號,系主任)R2(學(xué)號,課號,成績)分解消除了部分屬性對鍵的部分依賴。3非平凡函數(shù)依賴:系號f系主任成立4R1繼續(xù)分解為:Rll(系號,系主任)R12(學(xué)號,系號)分解消除了部分屬性對鍵的傳遞依賴。例3.363.373.38P1003.7.5函數(shù)依賴的投影設(shè)有關(guān)系模式R(U)及函數(shù)依賴集F,若將R分解為S(Ui)及T(U2),貝US上存在那些函數(shù)依賴?算法:對于S的屬性集Ui中的每個屬性子集X,計算X+,若B是S的屬性,B不在X中,且B£X+,貝(JXfB在S中成立。例3.39P103設(shè)有R(A,B,C,D),F:{A-B,B-C}及分解后所得的S(A,C),計算S中成立的函數(shù)依賴。解:①求{A}+={A,B,C},AfC在S中成立;② {C}+={C}③ {A,C}+={A,B,C)

例3.40P103設(shè)有R(A,B,C,D,E),F:{A-D,B-E,DE-C}及分解后所得的S(A,B,C),計算S中成立的函數(shù)依賴。解:{A}+={A,D}{B}+={B,E}{C}+={C}{A,B}+={A,B,C,D,E},AB-C在S中成立;{A,C}+={A,C,D){B,C}+={B,C,E){A,B,C}+={A,B,C,D,E}分解若非基于函數(shù)依賴,則可能無法恢復(fù)成原關(guān)系例3.41:P105設(shè)R為:分解為:BC分解為:BC2325ABC1422353.7.6第三范式例3.42:P105關(guān)系Booking(movie,theater,city)表示電影的預(yù)定。其中一個元組(m,t,c)表示預(yù)定在城市c的影院t放映影片mo條件:一座城市有多個影院;每個影院對應(yīng)唯一的城市。每個影院可放映多部影片;每部影片可在多個影院放映。同一個城市的兩個影院不會預(yù)定同一部影片。故有函數(shù)依賴:theater--citymoviecity-*theater有兩個鍵:{movie,city}和{movie,theater}非平凡函數(shù)依賴:theater-*city違背BCNFo{theater,movie)而保持原有函數(shù)依賴嗎?{theater,movie)而保持原有函數(shù)依賴嗎?假設(shè)這兩個關(guān)系的元組如下:theatercitytheatercityGuildMenloParkParkMenloParktheatermovieGuildTheNetParkTheNet把兩個關(guān)系連接起來,恢復(fù)為原有關(guān)系。theatercitymovieGuildMenloParkTheNetParkMenloParkTheNet函數(shù)依賴moviecity-*theater不成立,違背原有的語義。關(guān)系Booking(movie,theater,city)如果為了滿足BC范式而分解的話,就不能保持原有的函數(shù)依賴。什么是第三范式(3NF)?關(guān)系模式R滿足3NF,當(dāng)且僅當(dāng)若非平凡函數(shù)依賴AlA2...AnfB在關(guān)系R中成立,貝|J{A1,A2,…,An}是R的超鍵,或者B是某個鍵的組成部份(鍵屬性)。上例:Booking(movie,theater,city)中,theatercity違背BCNF,但右面city是鍵{movie,city}的組成部份,故滿足3NF,且無需再分解。結(jié)論:一個關(guān)系模式總可以分解為滿足3NF的模式,且所有的函數(shù)依賴都可得到保持。3.7.7第一范式和第二范式第一范式(1NF)的條件是什么?每個元組的每個分量都是原子的(atomic)。第二范式(2NF)的條件是什么?在1NF的基礎(chǔ)上,要求每個非鍵屬性依賴于鍵的整體(直接或間接),而不是鍵的部分屬性,即不允許有非平凡函數(shù)依賴的右面是非鍵屬性,而左面是某個鍵的真子集。滿足2NF的幾種情形:不存在非平凡函數(shù)依賴。存在非平凡函數(shù)依賴,且其右面是某個鍵的組成部分(鍵屬性)。存在非平凡函數(shù)依賴,且其右面是非鍵屬性,則其左面要么是超鍵,要么包含非鍵屬性。例如:學(xué)生(學(xué)號,課號,成績,系號,宿舍區(qū))滿足的最高范式是什么?僅滿足1NF。為何不滿足2NF?Movies(title,year,length.filmType.studioName.starName)滿足的最高范式是什么?僅滿足INF。為何不滿足2NF?MovieStudio(title,year,length,filmType,studioName,studioAddr)滿足的最高范式是什么?僅滿足2NF。為何不滿足3NF?滿足范式條件:BCNFf3NFf2NF1NF給定一個關(guān)系,函數(shù)依賴決定它是否滿足BCNF/3NF/2NF范式。問題:關(guān)系分解是逐步提高范式等級的嗎?例如:關(guān)系模式R(A,B,C,D)有函數(shù)依賴AB-C,CfD,DfA找出所有違背BCNF的函數(shù)依賴。必要時,分解為幾個滿足BCNF的關(guān)系找出所有違背3NF的函數(shù)依賴。解:①所有的鍵:{A,B},{B,C},{B,D}②違背BCNF的函數(shù)依賴:C-AD,DfA③分解:R1(A,C,D),R2(B,C)R11(A,D),R12(C,D)④函數(shù)依賴ABfC不保持⑤R滿足3NF練習(xí):3.7.1a)b)c).33.7.5a)b)3.8多值依賴多值依賴是如何產(chǎn)生的?反映兩個屬性或?qū)傩约ハ嗒毩⒌奶卣?;屬性獨立性可能?dǎo)致嚴重冗余;這種特征不能用函數(shù)依賴表示。與函數(shù)依賴有什么關(guān)系?多值依賴是函數(shù)依賴的一般化;函數(shù)依賴是多值依賴的特例;每個函數(shù)依賴都隱含一個相應(yīng)的多值依賴。本節(jié)要解決的問題和方法是什么?a)屬性獨立性引發(fā)的冗余b)如何定義多值依賴c)多值依賴有何規(guī)則d)第四范式是什么e)如何分解關(guān)系使之滿足4NFf)總結(jié)關(guān)系模式的范式。3.8.1屬性的獨立性及其帶來的冗余眾如果一個關(guān)系中包含了兩個多值屬性或聯(lián)系,會導(dǎo)致明顯的冗余,但卻可能符合BCNFo例3.43:pl08關(guān)系Star(name,street,city,title,year)表示影星的多個住址及其主演的多部影片。namestreetcitytitleyearCarrieFisher123MapleSt.HollywoodStarWars1977CarrieFisher5LocustLn.MailbuStarWars1977CarrieFisher123MapleSt.HollywoodEmpireStrikesBack1980CarrieFisher5LocustLn.MailbuEmpireStrikesBack1980CarrieFisher123MapleSt.HollywoodReturnofJedi1983CarrieFisher5LocustLn.MailbuReturnofJedi19836個元組表示1位影星的2個住址和3部影片。元組數(shù)目=n住址*m影片冗余是明顯的。但不存在非平凡函數(shù)依賴(全屬性集作為鍵),故滿足BCNFo這是多值依賴引起的冗余,故不能靠函數(shù)依賴解決冗余問題。屬性獨立性是什么?同一個關(guān)系中的兩個不交叉的屬性集相互沒有關(guān)聯(lián),都表示多值特征,造成兩者屬性值自由組合。導(dǎo)致嚴重冗余。8.2多值依賴的定義定義:若關(guān)系R(A,B,Z)中的元組在屬性A上取某一特定值,則其在屬性B上的值(集)與R中不屬于A和B的其它屬性Z無關(guān),這種條件即為多值依賴。記作:說明:.當(dāng)A上的值確定后,B上的值集亦隨之確定。 (多值).對于每一個(a,z),均有相同的B集。(與Z無關(guān))從而:在關(guān)系R(A,B,Z)中,若存在兩個元組t和u在屬性A上取值一致,則必可找到一個元組v,滿足:v與t、u在A上取值一致;v與t在B上取值一致,且v與u在Z上取值一致。則多值依賴A-fB成立。與u與u在B上一致,與t在Z上一致。注:若v與u重合為一個元組,則特化為函數(shù)依賴。所以函數(shù)依賴是多值依賴的一種特例。A: B : ZnamestreetcitytitleyearCarrieFisher123MapleSt.HollywoodStarWars1977CarrieFisher5LocustLn.MailbuStarWars1977CarrieFisher123MapleSt.HollywoodEmpireStrikesBack1980CarrieFisher5LocustLn.MailbuEmpireStrikesBack1980CarrieFisher123MapleSt.HollywoodReturnofJedi1983CarrieFisher5LocustLn.MailbuReturnofJedi1983故:有多值依賴nameffstreetcity成立同時name-ftitleyear成立判斷多值依賴的幾種情形(不完全)若限定在屬性A上的取值,則B上的取值與其它屬性值可自由組合,那么AffB成立。若限定在屬性A上的取值,則B上取值不能與其它屬性值自由組合,那么AffB不成立。若A-B,則AffB成立。若A和B并集構(gòu)成R屬性全集(沒有其它屬性),則A--B成立。例如:以下關(guān)系中系-班級是否成立?系班級學(xué)生0111S10111S20111S30112S40112S53.8.3多值依賴規(guī)則平凡依賴規(guī)則若多值依賴A—一B在關(guān)系R上成立,則Af—C成立,其中C是B屬性加上A的一個或幾個屬性;同時Af—D成立,其中D是B屬性中不屬于A的屬性。傳遞規(guī)則若多值依賴Af-B和B—C在關(guān)系R上成立,則A--C也成?注意:多值依賴沒有分解/合并規(guī)則。例如:namestreetcity成立;但name->->street不成立。兩個新規(guī)則:■函數(shù)依賴規(guī)則:函數(shù)依賴是多值依賴的特例。若A-B,則Af-Bo注意:反之不然?!龌パa規(guī)則:若A-fB,則AffZo上例:由namestreetcity可知name-titleyear成立8.4第四范式非平凡多值依賴是什么?關(guān)系R(A,B,Z)中AffB是非平凡多值依賴,當(dāng)且僅當(dāng)B中屬性不在A中; AnB=OA和B未包含R中所有屬性。AUBWU第四范式(4NF)如何定義?關(guān)系R(A,B,Z)滿足4NF,當(dāng)且僅當(dāng)若AffB是R上的非平凡多值依賴,貝!J{A}是R的超鍵。關(guān)系R滿足4NF的兩種情形R中不存在非平凡多值依賴。(只有平凡多值依賴)R中存在非平凡多值依賴,則要求所有非平凡多值依賴的左面包含某個

鍵。上例:關(guān)系Star(name,street,city,title,year)中有非平凡多值依賴name streetcity左面不是超鍵,故不符合4NFo但符合BCNFo(假設(shè)增加一個屬性gender表示性別,又符合什么范式?)注意:鍵和超鍵只與函數(shù)依賴有關(guān),增加多值依賴并不改變鍵。注意:每個函數(shù)依賴都是一個多值依賴,違背BCNF定違背4NF;滿足4NF定滿足BCNFo4NF在BCNF基礎(chǔ)上,進一步消除非平凡、非函數(shù)依賴性質(zhì)的多值依賴。3.8.5分解成第四范式與BCNF分解相似1找一個違背4NF的多值依賴Af->B,A不是超鍵。2把關(guān)系R分解兩個關(guān)系:RI(A,B)oR2(A,所有其它屬性),若不滿足4NF,則再分解。上例:關(guān)系Star(name,street,city,title,year)非平凡多值依賴nameffstreetcity,違背4NF分解: RI(name,street,city)R2(name,title,year) 不存在非平凡多值依賴,故滿足4NF.namestreetnamestreetcityCarrieFisher123MapleSt.HollywoodCarrieFisher5LocustLn.MailbunametitleyearCarrieFisherStarWars1977CarrieFisherEmpireStrikesBack1980CarrieFisherReturnofJedi19833.8.6范式間的聯(lián)系原子性原子性對于一個特定關(guān)系,應(yīng)關(guān)注其滿足的最高范式,或違背的最低范式。特性3NFBCNF4NF消除函數(shù)依賴引起的冗余大部分消除多值依賴引起的冗余保持函數(shù)依賴可能可能保持多值依賴可能可能可能練習(xí):P1.3商品銷售業(yè)務(wù)管理系統(tǒng)的關(guān)系設(shè)計符合最高范式是什么?Customer(custid,name,prov,city,phone,unit)Product(prodid,factory,type,spec,price,deSalesman(empid,idno,name,gender,phone,deptid)Customer(custid,name,prov,city,phone,unit)Product(prodid,factory,type,spec,price,deSalesman(empid,idno,name,gender,phone,deptid)Department(deptiSalesorder(orderno,signdate,empuSalesitem(orderno,lineno,prodid、singlecost,quantity)基于同樣的語義,下面關(guān)系符合的最高范式是什么?ReportKempid,name,custid,custname)Reportlfempid,idno,name,gender,phone,deptid,deptname,isheader)〃isheader表示是否為部門經(jīng)理Report3(orderno,signdate,empid,custid,prodid,singlecost,quantity)Report4(empid,name,orderno,signdate,amount)“amount表示一個訂單的總金額Reports(empid,custid,prodid)Report6(empid,orderno,signdate,custid,amount)//amount表示一個訂單的總金額3.9小結(jié).關(guān)系數(shù)據(jù)模型是什么?.如何將E/R模型轉(zhuǎn)變?yōu)殛P(guān)系數(shù)據(jù)模型?.函數(shù)依賴是什么?如何用函數(shù)依賴決定關(guān)系的鍵?.函數(shù)依賴有哪些推理規(guī)則?.在關(guān)系模式設(shè)計中,函數(shù)依賴如何決定并改進關(guān)系的范式?.多值依賴是什么?多值依賴如何決定并改進關(guān)系的范式?4關(guān)系模型中的運算在關(guān)系模式設(shè)計已確定的前提下,在這些關(guān)系上可進行哪些運算?得到怎樣的新關(guān)系?關(guān)系操作有兩種不同的表示方式:代數(shù)的和邏輯的。關(guān)系代數(shù)不僅可以表示運算,也可以表示對數(shù)據(jù)庫的約束。關(guān)系操作可在無重復(fù)元組的集合set上運算,也能在有重復(fù)元組的包bag上運算。關(guān)系代數(shù)什么是關(guān)系代數(shù)RelationalAlg

溫馨提示

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

評論

0/150

提交評論