《數(shù)據(jù)庫(kù)系統(tǒng)概論》形考冊(cè)答案
《《數(shù)據(jù)庫(kù)系統(tǒng)概論》形考冊(cè)答案》由會(huì)員分享,可在線閱讀,更多相關(guān)《《數(shù)據(jù)庫(kù)系統(tǒng)概論》形考冊(cè)答案(30頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、《數(shù)據(jù)庫(kù)系統(tǒng)概論》作業(yè) 1 1.簡(jiǎn)述數(shù)據(jù)、數(shù)據(jù)模型、數(shù)據(jù)庫(kù)、關(guān)系數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)的概念。 答:數(shù)據(jù):存儲(chǔ)在計(jì)算機(jī)內(nèi)用來(lái)描述事物特征的各種符號(hào)及其組合,稱(chēng)為數(shù)據(jù)。它不但包括數(shù)字,還包括文字、圖形、圖像、聲音等。 數(shù)據(jù)模型:數(shù)據(jù)模型是一種對(duì)客觀事物抽象化的表現(xiàn)形式。數(shù)據(jù)模型首先要真實(shí)地反映現(xiàn)實(shí)世界,;其次要易于理解,和人們對(duì)外部事物的認(rèn)識(shí)相一致;最后要便于實(shí)現(xiàn),因?yàn)樽罱K是要由計(jì)算機(jī)來(lái)處理。數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三要素組成。 數(shù)據(jù)庫(kù):簡(jiǎn)稱(chēng)DB,是由DBMS管理的數(shù)據(jù)的聚集。是儲(chǔ)存在計(jì)算機(jī)內(nèi)具有一定結(jié)構(gòu)的數(shù)據(jù)集合。 關(guān)系數(shù)據(jù)庫(kù):是以關(guān)系模型為基礎(chǔ)的數(shù)
2、據(jù)庫(kù)?;蛘哒f(shuō)數(shù)據(jù)庫(kù)里的數(shù)據(jù)可以用一個(gè)二維表的的形式表示的數(shù)據(jù)庫(kù)。 數(shù)據(jù)庫(kù)管理系統(tǒng):簡(jiǎn)稱(chēng)DBMS,是專(zhuān)門(mén)用于建立和管理數(shù)據(jù)庫(kù)的一套軟件,介于應(yīng)用程序和操作系統(tǒng)之間。它不僅具有最基本的數(shù)據(jù)管理功能,還能保證數(shù)據(jù)的完整性、安全性、提供多用戶(hù)的并發(fā)控制,當(dāng)數(shù)據(jù)庫(kù)出現(xiàn)故障時(shí)對(duì)系統(tǒng)進(jìn)行恢復(fù)。DBMS主要由查詢(xún)處理程序、事務(wù)處理程序和存儲(chǔ)管理程序等組成。 數(shù)據(jù)庫(kù)系統(tǒng):簡(jiǎn)稱(chēng)DBS,使指引進(jìn)數(shù)據(jù)庫(kù)技術(shù)后的計(jì)算機(jī)系統(tǒng),它包括和數(shù)據(jù)庫(kù)有關(guān)的整個(gè)系統(tǒng):計(jì)算機(jī)軟硬件系統(tǒng)、數(shù)據(jù)庫(kù)、DBMS、應(yīng)用程序以及數(shù)據(jù)庫(kù)管理員和用戶(hù)等等。 2.答:主要特點(diǎn):數(shù)據(jù)結(jié)構(gòu)化;數(shù)據(jù)共享性好,冗余度小,數(shù)據(jù)獨(dú)立性好;數(shù)據(jù)由DBMS統(tǒng)一管
3、理和控制,從而保證多個(gè)用戶(hù)能并發(fā)、安全可靠地訪問(wèn),而一旦出現(xiàn)故障,能有效恢復(fù)。 3.假設(shè)學(xué)生關(guān)系Student包括五個(gè)屬性:學(xué)號(hào)StudentNo、姓名StudentName、年齡StudentAge、性別StudentSex和所在系Department。(1)指出該關(guān)系的鍵碼和屬性的類(lèi)型;2)給出三個(gè)適當(dāng)?shù)脑M。 答:(1)該關(guān)系的鍵碼是:學(xué)號(hào); 屬性的類(lèi)型:學(xué)號(hào):字符型;姓名:字符型;年齡:整型;性別:布爾型;所在系:字符型。 (2)學(xué)號(hào)姓名 年齡 性別 所在系 991510000張三 25 .T.計(jì)算機(jī) 991510078李四 24 .T. 化學(xué) 98150100
4、8王燕 25.F. 中文
4.同三
5.請(qǐng)為計(jì)算機(jī)經(jīng)銷(xiāo)商設(shè)計(jì)一個(gè)數(shù)據(jù)庫(kù),要求包括生產(chǎn)廠商和產(chǎn)品的信息。生產(chǎn)廠商的信息包括名稱(chēng)、地址、電話等;產(chǎn)品的信息包括生產(chǎn)商、品牌、配置、近價(jià)等。試用ODL描述這個(gè)數(shù)據(jù)庫(kù),注意要為所有的屬性和聯(lián)系選擇適當(dāng)?shù)念?lèi)型,并且指出每個(gè)類(lèi)的鍵碼。
答案:interfaceProduce
(keyname)
{ attributestringname;
attributestringaddress;
attributestringtel;
relationashipSet
5、cedBy;} interfaceProduct (key(brand,model)) { attributestringbrand; attributestringmodel; attributeintegerprice; relationashipProducerproducedBy inverseProducer::Produces;} 7.假設(shè)題5的數(shù)據(jù)庫(kù)中,計(jì)算機(jī)產(chǎn)品類(lèi)有了一個(gè)筆記本電腦子類(lèi),該子類(lèi)本身?yè)碛谐叽纾ㄩL(zhǎng)、寬、厚度)、電池型號(hào)等屬性,試重新設(shè)計(jì)數(shù)據(jù)庫(kù),將增加的部分分別用ODL和E/R圖描述。 答:(1)ODL: interfaceComputerPr
6、oduct :Product { } interfacePortableComputer:ComputerProduct { attributefloatLength; attributefloatWide; attributefloatThick; attributestringBatteryType } Product Brand Name Configure Begetter Type Inprice isa ComputerProduct isa PortableComputer Length Wide Thick k (2)E/R圖:
7、 8、如果某關(guān)系的實(shí)例滿足下列條件之一,要表示該實(shí)例,有多少種不同的方法(考慮元組的順序和屬性的順序): (1) 3個(gè)屬性,3個(gè)元組 (2) 4個(gè)屬性,5個(gè)元組 (3) m個(gè)屬性,n個(gè)元組 答: (1)3!*3!=36 (2)4!*5!=24*120=2880 (3)m個(gè)屬性可有m!種不同的排列順序,n個(gè)元組可有n!種不同的排列順序,因此共有m! * n!種不同的排列順序。 9.將題5的ODL設(shè)計(jì)轉(zhuǎn)換成關(guān)系數(shù)據(jù)庫(kù)模型。 答案:轉(zhuǎn)換為關(guān)系模式為: Producer (name,address,tel); Product (brand,model,name);(注:其
8、中name為廠商名,若同一廠商提供多種產(chǎn)品需建立多個(gè)記錄) 10.下圖表示的是一個(gè)航空公司的E/R圖,試將其轉(zhuǎn)換為關(guān)系數(shù)據(jù)庫(kù)模式。 Customer Flight No Name Date Seat Number Kint Address Bookingg 其中Customer表示乘客,有三個(gè)屬性:乘客號(hào)No,姓名Name和地址Address,F(xiàn)light表示航班,頁(yè)有三個(gè)屬性:航班號(hào)Number,日期Date和機(jī)型Kind;Booking表示乘客訂票的信息,有一個(gè)屬性:Seat。 答案:轉(zhuǎn)換為關(guān)系模式為: Customer(No,Name,Address)
9、 Flight(Number,Date,Kint) Booking(No,Number,Date,Seat) 11.假設(shè)學(xué)生選課數(shù)據(jù)庫(kù)如下: Student(Sno,Sname,Age,Dept) Couse(Cno,Cname,Teacher) SC(Sno,Cno,Score) 用關(guān)系代數(shù)分別進(jìn)行如下查詢(xún): (1)學(xué)號(hào)為9900111的學(xué)生的系別和年齡; (2)有不及格(成績(jī)《60》學(xué)生的課程名; (3)計(jì)算機(jī)系有不及格課程的學(xué)生名單; (4)學(xué)生張林的“數(shù)據(jù)庫(kù)原理”課成績(jī)。 答案: (1)πDept,Sage(σSno=9900111(Student)) (
10、2)πCname(σscore<60(SC)Course) (3)πSname(σscore<60(SC)σDept=‘計(jì)算機(jī)系’(Student) (4)πScore(σsname=‘張林’(Stident)SC (σCname=‘?dāng)?shù)據(jù)庫(kù)原理’(Course)) 12.分別用元組關(guān)系運(yùn)算和域關(guān)系演算表示題11中的查詢(xún)。。 (1)學(xué)號(hào)為9900111的學(xué)生的系別和年齡; (2)有不及格(成績(jī)《60》學(xué)生的課程名; (3)計(jì)算機(jī)系有不及格課程的學(xué)生名單; (4)學(xué)生張林的“數(shù)據(jù)庫(kù)原理”課成績(jī)。 答案: 元組關(guān)系運(yùn)算: (1) (2) (3) (4) 域關(guān)系演算: 1)π
11、Dept,Sage(σSno=9900111(Student)) (2)πCname(σscore<60(SC)∞ Course) (3)πSname(σscore<60(SC)∞ σDept=‘計(jì)算機(jī)系’(Student) (4)πScore(σsname=‘張林’(Stident)∞ SC∞(σCname=‘?dāng)?shù)據(jù)庫(kù)原理’(Course)) 12 13.用數(shù)據(jù)庫(kù)邏輯規(guī)則表示習(xí)題一中的查詢(xún)。 (1)學(xué)號(hào)為9900111的學(xué)生的系別和年齡; (2)有不及格(成績(jī)《60》學(xué)生的課程名; (3)計(jì)算機(jī)系有不及格課程的學(xué)生名單; (4)學(xué)生張林的“數(shù)據(jù)庫(kù)原理”課成績(jī)。 答案:
12、 (1)S (D,A ←Student(SNo,SN,A,D) AND SNO=9900111 (2)C (CN) ← Course (CNo,CN) AND SC (SNo,CNo,S) AND S<60 (3)S (S,N) ← Student(SNo,SN,A,D) AND SC (SNo,CNo,S) AND D=’計(jì)算機(jī)系’ AND S<60 (4)U (S) ← Student(SNo,SN,A,D) AND SC (SNo,CNo,S) AND Course (CNo,CN) AND SN=’張林’ AND CN=’數(shù)據(jù)庫(kù)原理’ 14.畫(huà)出題11中查詢(xún)(4)的
13、關(guān)系代數(shù)表達(dá)樹(shù)。 π Score σSName=’張林’ σCName=’數(shù)據(jù)庫(kù)原理’ Student Coure SC 《數(shù)據(jù)庫(kù)系統(tǒng)概論》作業(yè)2 1.一個(gè)電影資料數(shù)據(jù)庫(kù)有三個(gè)基本表:電影表Movie(含電影名、制作年份、長(zhǎng)度、是否彩色、制片商)、演員表Actor(含演員姓名、地址、性別、出生年月)和電影主演表Acts(電影名、制作年份、演員姓名)。用AQL的建表語(yǔ)句建立這三個(gè)基本表,有注意合理地選擇屬性的數(shù)據(jù)類(lèi)型。 答案: CREATE TABLE Movie( Title CHAR(30), Year IN
14、T, Length INT ); CREATE TABLE Actor( Name CHAR(20), Gender VARCHAR(30), Length CHAR(1) Birthdate DATE CREATE TABLE Acts( MoiveTitle CHAR(30), MoiveYear INT, ActorName CHAR(20) 2.在題1建立的表的基礎(chǔ)上,用SQL實(shí)現(xiàn)如下查詢(xún)或更新操作: (1)統(tǒng)計(jì)1999年制作電影的平均長(zhǎng)度和最短長(zhǎng)度; (2)在1999年主演過(guò)電影的演員姓名; (3)所有同名電影各自的電影名和制作年份; (4)往演員關(guān)系
15、Actor插入一個(gè)演員記錄,具體的數(shù)據(jù)值由你指定; (5)把電影“我的世界“的長(zhǎng)度改為109分鐘; (6)刪除1940年以前制作的所有電影記錄以及電影主演記錄。 答案: (1)SELECT AVG (Length),MIN(Length) FROM Movie WHERE Year=1999; (2)SELECT ActorName FROM Acts WHERE MovieYear=1999; (3)SELECT M1.Title,M1.Year,M2.Year FROM Movie AS M1, Movie AS M2 WHERE M1.Title=M2
16、.Title AND M1.Year 17、R TABLE Movie
ADD MovieDirector CHAR(20)
4.假設(shè)學(xué)生一課程數(shù)據(jù)庫(kù)關(guān)系模式如下:
Student(Sno,Sname,Sage,Ssex)
Course(Cno,Cname,Teacher)
SC(Sno,Cno,Grade)
用SQL語(yǔ)句表達(dá)下列查詢(xún):
(1)找出劉老師所授課程的課程號(hào)和課程名。
(2)找出年齡小于22歲女學(xué)生的學(xué)號(hào)和姓名。
(3)找出至少選修劉老師講的一門(mén)課的學(xué)生姓名。
(4)找出“程序設(shè)計(jì)”課成績(jī)?cè)?0分以上的學(xué)生姓名。
(5)找出不學(xué)C3課的學(xué)生姓名。
(6)找出至少選修C1課和C2課的學(xué)生學(xué)號(hào)。
答 18、案:
(1)SELECT Cno,Cname
FORM Course
WHIRE Teacher LIKE ‘劉%’;
(2)SELECT Sno,Sname
FORM Student
WHIRE Sage<22 AND Ssex=’F’;
(3)SELECT Sname
FORM Student,SC,Course
WHIRE Student.Sno=SC.Sno AND SC.Cno=Course.Cno AND Teacher LIKE ’劉%’;
(4)SELECT Sname
FORM Student,SC,Course
WHIRE Student.Sno=S 19、C.Sno AND SC.Cno=Course.Cno
AND Cname=’程序設(shè)計(jì)’ AND Grade>90;
(5)SELECT Sname
FORM Student
WHIRE NOT EXISTS
(SELECT *
FORM SC
WHIRE Sno=Student.Sno AND Cno=’C3’);
(6)SELECT X.Sno
FROM SC AS X, SC AS Y
WHERE X.Sno=Y.Y.Sno AND X.Cno=’C1’ AND Y.Cno=’C2’;
5.按照題4的數(shù)據(jù)庫(kù)模式謝出下列查詢(xún):
(1)求孫老師講的每門(mén)課的學(xué)生 20、平均成績(jī)。
(2)統(tǒng)計(jì)選修各門(mén)課的學(xué)生人數(shù)。輸出課程號(hào)和人數(shù)。查詢(xún)結(jié)果按人數(shù)降序排列,若人數(shù)相同,則按課程號(hào)升序排列。
答案:
(1)SELECT Cno,AVG(Grade)
FORM SC,Course
WHERE SC.Cno=Course.Cno AND Teacher LIKE ‘孫%’
GROUP BY Cno
(2)SELECT Cno,COUNT(*)
FORM SC
GROUP BY Cno
ORDER BY COUNT(*)DESC,Cno
6.用SQL的更新語(yǔ)句表達(dá)對(duì)學(xué)生-課程數(shù)據(jù)庫(kù)的下列更新操作:
(1)往學(xué)生關(guān)系Student中插入一個(gè)學(xué)生 21、元組(990012,梅立松,20,女)。
(2)從學(xué)生選課關(guān)系SC中刪除夏春秋同學(xué)的所有元組。
(3)在學(xué)生選課關(guān)系SC中,把英語(yǔ)課的成績(jī)提高10%。
答案:
(1)INSERT INTO Student
VALUES(990012,’梅立松’,20,’女’);
(2)DELETE FORM SC
WHERE Sno IN
(SELECT Sno
FORM Student
WHERE Sname=’夏春秋’);
(3)UPDATE SC SET Grade=1.1*Grade
WHERE Cno IN
(SELECT Cno
FORM Course
WHE 22、RE Cname=’英語(yǔ)’);
8.從學(xué)生選課數(shù)據(jù)庫(kù)中查詢(xún)選修“數(shù)據(jù)庫(kù)原理”課并且成績(jī)?cè)?0分以上的學(xué)生名單,SQL語(yǔ)句序列如下:
SELECT StudentName
FORM Student,Course,StudentCourse
WHERE Student.StudentNo= StudentCourse.StudentNo
AND Course.CourseNo= StudentCourse.CourseNo
AND Course.CourseName=’數(shù)據(jù)庫(kù)原理’ AND StudentCourse.Score>90
9.設(shè)T1、T2是如下兩個(gè)事務(wù):
T1:A 23、=B*2
T2:B=A+1
A、B的初值分別是1和3。
(1)設(shè)T1和T2可以并發(fā)執(zhí)行,并且對(duì)其操作的調(diào)度不加限制,那么它們的并發(fā)執(zhí)行可能產(chǎn)生哪幾種結(jié)果(寫(xiě)出最后A、B的值)?
(2)這些執(zhí)行結(jié)果中哪些是正確的?
答案:解:
(1)第一種調(diào)度:①讀A=1,B=3: (TI)
②A=B*2=6(T1)
③寫(xiě)回A=6,B=3 (T1)
④讀A=6,B=3 (T2)
⑤B=A+1=7 (T2)
⑥寫(xiě)回A=6,B=7(T2)
結(jié)果:A=6,B=7
第二種調(diào)度:①讀A=1,B=3: (T2)
②B=A+1=2(T2)
③寫(xiě)回A=1,B=2 (T2)
④讀A=1,B=2 ( 24、T1)
⑤A=B*2=4 (T1)
⑥寫(xiě)回A=4,B=2(T2)
結(jié)果:A=4,B=2
第三種調(diào)度:①讀A=1,B=3: (T1)
②讀A=1,B=3 (T2)
③A=B*2=6(T1)
④B=A+1=2(T2)
⑤寫(xiě)回A=6,B=3 (T1)
⑥寫(xiě)回A=1,B=2(T2)
結(jié)果:A=1,B=2
第四種調(diào)度:①讀A=1,B=3: (T2)
②讀A=1,B=3 (T1)
③B=A+1=2(T2)
④A=B*2=6(T1)
⑤寫(xiě)回A=1,B=2 (T2)
⑥寫(xiě)回A=6,B=3 (T1)
結(jié)果:A=6,B=3
第五種調(diào)度:①讀A=1,B=3: (T1)
②A=B 25、*2=6(T1)
③讀A=1,B=3 (T2)
④B=A+1=2(T2)
⑤寫(xiě)回A=6,B=3 (T1)
⑥寫(xiě)回A=1,B=2(T2)
結(jié)果:A=1,B=2
第六種調(diào)度:①讀A=1,B=3: (T2)
②B=A+1=2(T2)
③讀A=1,B=3 (T1)
④A=B*2=6(T1)
⑤寫(xiě)回A=1,B=2 (T2)
⑥寫(xiě)回A=6,B=3 (T1)
結(jié)果:A=6,B=3
(2)第一種結(jié)果:A=6,B=7;和第二種結(jié)果:A=4,B=2正確。根據(jù)可串行化的原則,兩個(gè)事務(wù)并發(fā)執(zhí)行的結(jié)果只要和任意一種串行的結(jié)果相同,就認(rèn)為是正確的。
《數(shù)據(jù)庫(kù)系統(tǒng)概論》作業(yè)3
1、 舉 26、例說(shuō)明不符合2NF,3NF和BCNF的關(guān)系模式,如何使之符合相應(yīng)范式?
答:第一種方法:
先求各種屬性組合的封閉集,再?gòu)闹姓页鲂碌暮瘮?shù)依賴(lài)。
A+=ABCDB+=BCDC+=C D+=D
A C,AD ……(2)
A B+=ABCD A C+=ABCDA D+=ABCD BC+=BCD BD+=BCDCD+=CD
ABC,ABD ACB,ACD ADB,ADC BCDBDC……(8)
A B C+=ABCD A B D+=ABCD BCD+=BCD
ABCD ABDC ……(2)
A B C D+=ABCD
蘊(yùn)含于給定函數(shù)依賴(lài)的非平凡函數(shù)依賴(lài)共12個(gè)。
2) 27、
A為鍵碼。
3)
AB,AC,AD,ABC,ABD,ABCD為超鍵碼。
第二種方法:
在Student(Sno,Sname,Sdept,Mname,Cname,Grade)中
存在依賴(lài):Sno,Cname→Sname,Sdept,Mname
左邊是鍵碼,但是右邊的非主屬性都部分依賴(lài)Sno
Sno →Sname
Sno →Sdept
Sno →Mname
所以Student不是2NF
Student可以分解為以下模式
Student(Sno,Sname,Sdept,Mname)
SC(Sno,Cname,Grade)
在Student中鍵碼是Sno,其它都是非 28、主屬性,它們都完全
函數(shù)依賴(lài)于Sno
在SC中,鍵碼是Sno,Cname,只有一個(gè)非主屬性Grade,
它完全函數(shù)依賴(lài)于鍵碼
所以分解后的關(guān)系模式是2NF
Supplyer(SpNo,City,Area,Phone)
SpNo——供應(yīng)商編號(hào)
Area——城市所在地區(qū)
其中,SpNo是鍵碼
函數(shù)依賴(lài)有
SpNo→City,SpNo →Area,SpNo →Phone
City →Area
所有的非主屬性都完全函數(shù)依賴(lài)于鍵碼,所以Supplyer是
2NF。
SpNo →City,City →Area,
所以Area傳遞依賴(lài)于鍵碼,且Aera是非主屬性。
Suppl 29、yer不是3NF。
Student(Sno,Sname,Sdept,Mname)
SC(Sno,Cname,Grade)
是2NF
但是在Student中:Sno →Sdept,Sdept →Mname
非主屬性Mname傳遞依賴(lài)于鍵碼Sno
所以以上關(guān)系模式不是3NF。
將Student分解為:
Student(Sno,Sname,Sdept)
Dept(Sdept,Mname)
Sdept是關(guān)系Dept的鍵碼
Student(Sno,Sname,Sdept)
Dept(Sdept,Mname)
SC(Sno,Cname,Grade)
是3NF
在一個(gè)關(guān)系模式 30、的所有非平凡函數(shù)依賴(lài)中,如果所有決定因素都包含鍵碼,即決定因素是超鍵,則該關(guān)系模式屬于BCNF
例1:C(City,Street,Zip)
其中鍵碼是City,Street
City——主屬性,Street——主屬性,Zip——非主屬性
City,Street→Zip
Zip →City
Zip不是超鍵碼
所以關(guān)系C是3NF,但不是BCNF
假如有關(guān)系模式R(A,B,C,D)和函數(shù)依賴(lài)集S={B->C,B->D}。
(1)找出所有BCNF違例。
(2)如果該關(guān)系模式不是BCNF,則將它分解為BCNF
(3)找出所有的違背3NF的依賴(lài)
(4)如果該關(guān)系不是3NF,則將它分 31、解為3NF
步驟一:找出R在S上的所有非平凡依賴(lài),首先計(jì)算封閉
集
單屬性封閉集:A+=A,B+=BCD,C+=C,D+=D
雙屬性封閉集:
AB+=ABCD,AC+=AC,AD+=AD,BC+=BCD,BD+=BCD,CD+=CD
三屬性封閉集:ABC+=ABCD,ABD+=ABCD,BCD+=BCD,ACD+=ACD
四屬性封閉集:ABCD+=ABCD
步驟二:根據(jù)計(jì)算所得的封閉集,找出鍵碼和超鍵碼
鍵碼:AB
超鍵碼:ABC,ABD,ABCD
步驟三:找出所有的非平凡函數(shù)依賴(lài)
B->C,B->D,AB->C,AB->D,BC->D,BD->C
ABC->D,AB 32、D->C
其中:
AB->C,AB->D,ABC->D,ABD->C
而:
B->C,B->D,BC->D,BD->C是BCNF違例
步驟四:進(jìn)行BCNF規(guī)范。
BCNF違例自成一體。從以上BCNF違例中選擇B->C自成
一體
R1(B,C)
舍其右全集歸一,即舍去B->C的右邊屬性C,所以得到
R2(A,B,D)
在R2中還存在BCNF違例B->D,因此B->D自成一體,得到
R21(B,D),舍其右全集歸一得到R22(A,B)
最后得到的關(guān)系模式是:
R1(B,C),R21(B,D),R22(A,B)
AB是鍵碼,所以A,B是主屬性,而C,D都是鍵碼以外的屬 33、
性,所以C,D都是非主屬性。
2、假設(shè)關(guān)系模式為R(A,B,C,D),函數(shù)依賴(lài)為A→B,B→C和B→D。
(1)求蘊(yùn)含給定函數(shù)依賴(lài)的所有非平凡函數(shù)依賴(lài)。
(2)求R的所有鍵碼和超鍵碼。
(3)判斷該模式為第幾范式?為什么?
答案:
(1)求A+,有A+={A},
因?yàn)锳→B,所以A+={A,B};
因?yàn)锽→C,所以A+={A,B,C};
因?yàn)锽→D,所以A+={A,B,C,D}。
因此A為Key,推出新依賴(lài):(1) A→C,(2) A→D。
求B+,有B+={B};
因?yàn)锽→C,所以B+={B,C};
因?yàn)锽→D, 所以B+={B,C,D}。
求C+,有C+={ 34、C}。
求D+,有D+={D}。
求AB+,有AB+={A,B};
因?yàn)锽→C,所以AB+={A,B,C};
因?yàn)锽→D,所以AB+={A,B,C,D}。
推出新依賴(lài):(3) AB→C,(4) AB→D。
求AC+,有AC+={A,C};
因?yàn)锳→B,所以AC+={A,,C,B};
因?yàn)锽→D,所以AC+={A,C,B,D}。
推出新依賴(lài):(5) AC→B, (6) AC→
求AD+,有AD+={A,D};
因?yàn)锳→B,所以AD+={A,D,B};
因?yàn)锽→C,所以AD+={A,D,B,C}。
推出新依賴(lài):(7) AD→B, (8) AD→C。
求BC+,有BC+= 35、{B,C};
因?yàn)锽→D,BC+={B,C,D}。
推出新依賴(lài):(9) BC→D。
求BD+,有BD+={B,D};
因?yàn)锽→C,所以BD+={B,C,D}。
推出新依賴(lài):(10) BD→C。
求CD+,有CD+={C,D}。
求ABC+,有ABC+={A,B,C};
因?yàn)锽→D,所以ABC+={A,B,C,D}。
推出新依賴(lài): (11) ABC→D。
求ABD+,有ABD+={A,B,D};
因?yàn)锽→C,所以ABD+={A,B,D,C}。
推出新依賴(lài):(12) ABD→C。
求ACD+,有ACD+={A,C,D};
因?yàn)锳→B,所以ACD+={A,C,D,B}.
36、
推出新依賴(lài):(13) ACD→D
求BCD+,有BCD+={DCB}。
(2)鍵碼為:A;超鍵碼為:AB,AC,AD,ABC,ABD,ABCD。
(3)該關(guān)系為第二范式(2NF)。因?yàn)殒I碼為A是單屬性,不存在非主屬性對(duì)鍵碼的部分依賴(lài),但存在非主屬性C,D通過(guò)B對(duì)鍵碼的傳遞依賴(lài)(A→B,B→C,B→D)。
3、假設(shè)關(guān)系模式為R(A,B,C,D),函數(shù)依賴(lài)為AB→C,C→D和D→A。
(1)找出所有違背BCNF的函數(shù)依賴(lài)。提示:應(yīng)考慮不在給定的依賴(lài)集但蘊(yùn)含于其中的依賴(lài)。
(2)把關(guān)系模式R分解成屬于BCNF的關(guān)系模式的集合。
答案:
3.
1)
參看教材P.122例6.1,共 37、有14個(gè)非平凡函數(shù)依賴(lài)(包括已知的和導(dǎo)出的):
CA,CD,DA
ABC,ABD,ACD,BCA,BCD,BDA,BDC,CDA
ABCD,ABDC,BCDA
共有3個(gè)鍵碼:AB,BC,BD
其決定因素不包含鍵碼的函數(shù)依賴(lài)即為BC范式的違例,如下所示:
CA,CD,DA,ACD,CDA
2)
以違例CD為基礎(chǔ)進(jìn)行分解:
R1(C,D)
R2(A,B,C)
R1屬于BC范式。
R2有函數(shù)依賴(lài)CA,ABC,BCA
AB+=ABC, BC+=ABC
AB,BC均為鍵碼。
函數(shù)依賴(lài)CA為BC范式違例。于是R2又可分解為:
R3(A,C)
R4(B,C)
至 38、此,R分解為R1,R3,R4,均屬于BC范式。
4、舉出兩個(gè)具有多值依賴(lài)的關(guān)系模式。分別將其分解成屬于4NF的關(guān)系模式。
答案:
從S中各種屬性組合的封閉集入手,分析其中蘊(yùn)含的函數(shù)依賴(lài)。
A+=A, B+=B, C+=ACE
對(duì)于S來(lái)說(shuō),CA.
AB+=ABCDE, AC+=ACE, BC+=ABCDE
對(duì)于S來(lái)說(shuō),ABC,BCA
S中成立的函數(shù)依賴(lài)為CA,ABC,BCA.
8、我們所熟悉的產(chǎn)品數(shù)據(jù)庫(kù)如下:
Product(maker,model,type)
PC(model,speed,ram,hd,cd,price)
Laptop(model,speed,ra 39、m,hd,screen,price)
Printer(model,color,type,price)
用C++或者其他你熟悉的宿主語(yǔ)言編寫(xiě)如下的嵌入式SQL查詢(xún):
(1)詢(xún)問(wèn)用戶(hù)所要求的價(jià)格,找出與要求的價(jià)格最接近(價(jià)格差小于1000元)的PC機(jī)。
(2)打印符合要求的PC機(jī)的制造商(maker)、型號(hào)(model)、速度(speed)和價(jià)格(price).
答案:
#define NO-TUPLE ! (strcmp (SQLSTATE,”02000”))
void closestMatchPC( ) {
EXEC SQL BEGIN DECLARE SECTION;
ch 40、ar maker1 [30], SQLSTATE [6];
int targetPrice, model1, speed1, price1;
EXEC SQL END DECLARE SECTION;
EXEC SQL DECLARE pcCursor CURSOR FOR
SELECT model, speed, price FROM PC;
EXEC SQL OPEN pcCursor;
cout<<”Input target price.”
cin>>targetPrice;
while (1) {
EXEC SQL FETCH FROM pcCursor
INTO 41、:model1, :speed1, :price1;
if (NO-TUPLE) break;
if ((targetPrice-price1<1000) || (price1-targetPrice<1000)) {
EXEC SQL SELECT maker
INTO :maker1
FROM Product
WHERE model=:model1;
cout< 42、N;
int model1;
EXEC SQL END DECLARE SECTION;
Void deleteTuple ( ) {
cout<<”Input model number.”;
cin>>model1;
EXEC SQL DELETE FROM Product
WHERE model=:model1;
EXEC SQL DELETE FROM PC
WHERE model=:model1;
EXEC SQL COMMIT;
6.
CREATE TABLE Movie(
Title CHAR(30),
Year INT,
Length INT
P 43、RIMARY KEY (Title,Year)
);
CREATE TABLE Actor(
Name CHAR(20) PRIMARY KEY,
Address VARCHAR(30),
Gender CHAR(1),
Birthdate DATE
);
CREATE TABLE Acts(
MovieTitle CHAR(30),
MovieYear INT,
ActorName CHAR(20),
PRIMARY KEY (MovieTitle,MovieYear,ActorName)
FOREIGN KEY (MovieTitle,MovieYear) 44、
REFERENCES Movie (Title,Year)
FOREIGN KEY (ActorName)
REFERENCES Actor (Name)
);
9、對(duì)于電影關(guān)系Movie(title,year,length,studioName)中的屬性,寫(xiě)出下列約束:
(1)年份不能在1895年以前。
(2)電影長(zhǎng)度不能短于60,也不能長(zhǎng)于240。
答案:
(1)CREATE TABLE Movie
…
year INT CHECK (year>=1895),
…
);
(2)CREATE TABLE Movie
…
length INT CHEC 45、K (length>=60 AND length<=240),
…
);
10、對(duì)于電影、演員和電影主演關(guān)系:
Movie(title,year,length,studioName)
Actor(Name,address,gender,birthdate)
Acts(Movietitle,movieyear,actorName)
寫(xiě)出下列基于元組的檢驗(yàn)(CHECK)約束:
(1)1939年以前制作的電影不會(huì)是彩色的。
(2)演員不會(huì)出現(xiàn)在他們出生以前制作的電影中。如果約束涉及到兩個(gè)關(guān)系,則應(yīng)把約束
放在兩個(gè)關(guān)系中,從而保證無(wú)論哪個(gè)關(guān)系發(fā)生變化都將對(duì)插入和修改的約束進(jìn)行 46、檢驗(yàn)。
答案:
(1)CREATE TABLE Movie
…
CHECK (NOT color OR year>=1939),
);
(2)CREATE TABLE Actor
…
birthyear INT
CHECK (name NOT IN (SELECT actorName FROM Acts)
OR birthyear 47、 FROM Actor)
OR movieYear > (SELECT year>(SELECT birthYear FROM actor
WHERE name=actorName))
);
《數(shù)據(jù)庫(kù)系統(tǒng)概論》作業(yè)4
1、有關(guān)產(chǎn)品(Product)類(lèi)及其三個(gè)子類(lèi)PC機(jī)(PC)、便攜式電腦(Laptop)、打印機(jī)(Printer)的ODL描述如下:
interface Product (extent Products Key model)
{
attribute integer model;
attribute 48、 string maker;
attribute string type;
attribute real price;
};
interface PC:Product (extent PCs)
{
attribute integer speed;
attribute integer ram;
attribute integer hd;
attribute string screen;
};
interface Printer:Product (extent Printer)
{
attribute Boolean color;
attribute string pr 49、inttype;
};
其中,Product類(lèi)有三個(gè)屬性:型號(hào)model、制造商maker和類(lèi)型type(PC、便攜式電腦或打印機(jī))。假設(shè)型號(hào)對(duì)于所有的制造商和產(chǎn)品類(lèi)型都是唯一。
PC機(jī)子類(lèi)有四個(gè)屬性:速度speed(指處理器的速度,以兆赫計(jì)算)、內(nèi)存容量(以兆字節(jié)計(jì)算)、硬盤(pán)hd容量(以千兆字節(jié)計(jì)算)和光盤(pán)驅(qū)動(dòng)器cd速度(以幾倍速計(jì)算)。
便攜式電腦Laptop子類(lèi)與PC機(jī)子類(lèi)不同之處在于:用屏幕尺寸screen(以英寸計(jì)算)代替光盤(pán)驅(qū)動(dòng)器速度。
打印機(jī)Printer子類(lèi)有2個(gè)屬性:輸出顏色color(彩色為真)和打印機(jī)類(lèi)型printertype(激光、噴墨等)。
把具有如下功能 50、的函數(shù)作為方法署名加到上述ODL中:
(1)從產(chǎn)品的價(jià)格中減去x。假設(shè)x是函數(shù)的輸入?yún)?shù)。
(2)如果產(chǎn)品是“PC”或者“Laptop”,則返回產(chǎn)品速度,否則就引發(fā)異?!皀ot-computer”。
(3)設(shè)置便攜式電腦的屏幕尺寸為特定的輸入值x。
解: (1)從產(chǎn)品的價(jià)格中減去x。假設(shè)x是函數(shù)的輸入?yún)?shù)。
在Product的最后一行前加上如下內(nèi)容:
real downprice(in x out Set) raises(noprice)
(2)如果產(chǎn)品是PC或Laptop則返回產(chǎn)品速度,否則引發(fā)異常(not Computer)。
integer myspeed( out Se 51、t) raises(not Computer)
(3)設(shè)置便攜式電腦的尺寸為特定的輸入值:
在Laptop最后一行加上:
screen (in x)
2、利用習(xí)題1中的ODL模式,用ODL寫(xiě)出下列查詢(xún):
(1)找出價(jià)格在8000元以下的所有PC機(jī)的型號(hào)。
(2)找出內(nèi)存至少為64字節(jié)、硬盤(pán)至少為10G的所有PC機(jī)型號(hào)。
(3)找出至少制造兩種不同型號(hào)激光打印機(jī)的制造商。
答案:
(1)SELECT p.model
FROM PCs p
WHERE p.price<8000;
(2)SELECT p.model
FROM PCs p
WHERE p.ram>=64 AND p.hd>=10;
(3)SELECT DISTINCT p1.maker
FROM printers p1,printers p2
WHERE p1.maker=p2.maker
AND p1.printertype=”laser”
AND p2.printertype=”laser”
AND p1.model
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 110中國(guó)人民警察節(jié)(筑牢忠誠(chéng)警魂感受別樣警彩)
- 2025正字當(dāng)頭廉字入心爭(zhēng)當(dāng)公安隊(duì)伍鐵軍
- XX國(guó)企干部警示教育片觀后感筑牢信仰之基堅(jiān)守廉潔底線
- 2025做擔(dān)當(dāng)時(shí)代大任的中國(guó)青年P(guān)PT青年思想教育微黨課
- 2025新年工作部署會(huì)圍繞六個(gè)干字提要求
- XX地區(qū)中小學(xué)期末考試經(jīng)驗(yàn)總結(jié)(認(rèn)真復(fù)習(xí)輕松應(yīng)考)
- 支部書(shū)記上黨課筑牢清廉信念為高質(zhì)量發(fā)展?fàn)I造風(fēng)清氣正的環(huán)境
- 冬季消防安全知識(shí)培訓(xùn)冬季用電防火安全
- 2025加強(qiáng)政治引領(lǐng)(政治引領(lǐng)是現(xiàn)代政黨的重要功能)
- 主播直播培訓(xùn)直播技巧與方法
- 2025六廉六進(jìn)持續(xù)涵養(yǎng)良好政治生態(tài)
- 員工職業(yè)生涯規(guī)劃方案制定個(gè)人職業(yè)生涯規(guī)劃
- 2024年XX地區(qū)黨建引領(lǐng)鄉(xiāng)村振興工作總結(jié)
- XX中小學(xué)期末考試經(jīng)驗(yàn)總結(jié)(認(rèn)真復(fù)習(xí)輕松應(yīng)考)
- 幼兒園期末家長(zhǎng)會(huì)長(zhǎng)長(zhǎng)的路慢慢地走