课后作业答案.docx
- 文档编号:18058211
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:19
- 大小:23.21KB
课后作业答案.docx
《课后作业答案.docx》由会员分享,可在线阅读,更多相关《课后作业答案.docx(19页珍藏版)》请在冰豆网上搜索。
课后作业答案
产品数据库
Product(maker,model,type)
PC(model,speed,ram,hd,price)
Laptop(model,speed,ram,hd,screen,price)
Printer(model,color,type,price)
关系Product给出了各类产品的制造厂商、型号和产品类型(PC、笔记本电脑或打印机)。
为了简单起见,假设所有产品的型号都唯一,而无论它是由哪个制造商生产的。
关系PC对于不同型号给出了如下属性:
速度(处置器的速度,单位是GHz)、RAM的大小(单位是MB)、硬盘的容量(单位是GB)和价钱。
关系Laptop与关系PC类似,它在PC的基础上增加了属性screen,即显示器的尺寸(以英寸为单位)。
关系Printer对于每种型号有如下属性:
是不是彩色(若是是的话,那个值是true)、处置类型(激光的仍是喷墨的)和价钱。
关系Product的数据
Maker
model
type
A
1001
pc
A
1002
pc
A
1003
pc
A
2004
laptop
A
2005
laptop
A
2006
laptop
B
1004
pc
B
1005
pc
B
1006
pc
B
2007
laptop
C
1007
pc
D
1008
pc
D
1009
pc
D
1010
pc
D
3004
printer
D
3005
printer
E
1011
pc
E
1012
pc
E
1013
pc
E
2001
laptop
E
2002
laptop
E
2003
laptop
E
3001
printer
E
3002
printer
E
3003
printer
F
2008
laptop
F
2009
laptop
G
2010
laptop
H
3006
printer
H
3007
printer
关系PC的数据
model
speed
ram
hd
price
1001
1024
250
2114
1002
512
250
995
1003
512
80
478
1004
1024
250
649
1005
512
250
630
1006
1024
320
1049
1007
1024
200
510
1008
2048
250
770
1009
1024
250
650
1010
2048
300
770
1011
2048
160
959
1012
1024
160
649
1013
512
80
529
关系Laptop的数据
model
speed
ram
hd
screen
price
2001
2048
240
3673
2002
1024
80
949
2003
512
60
549
2004
512
60
1150
2005
1024
120
2500
2006
2048
80
1700
2007
1024
120
1429
2008
1024
100
900
2009
512
80
680
2010
2048
160
2300
关系Printer的数据
model
color
type
price
3001
true
ink-jet
99
3002
false
laser
239
3003
true
laser
899
3004
true
ink-jet
120
3005
false
laser
120
3006
true
ink-jet
100
3007
true
laser
200
二战中的大型舰船数据库
Classes(class,type,country,numGuns,bore,displacement)
Ships(name,class,launched)
Battles(name,date)
Outcomes(ship,battle,result)
相同设计的舰船组成一个“类”,类别的名称通常就是那个类的第一艘船的名字。
关系Classes记录了“类”的名字、型号(bb代表主力舰,bc代表巡洋舰)、生产国家、火炮的门数、火炮的尺寸(口径,单位是英寸)和排水量(重量,单位是吨)。
关系Ships记录了舰船的名字、舰船类属名字、开始服役的日期。
关系Battles给出了这些舰船参加的战役的时刻。
关系Outcomes给出了各个舰船在各场战役中的结果(是沉没,仍是受伤,或完好)
关系Classes的数据
class
type
country
numGuns
bore
displacement
Bismarck
bb
Germany
8
15
42000
Iowa
bb
USA
9
16
46000
Kongo
bc
Japan
8
14
32000
NorthCarolina
bb
USA
9
16
37000
Renown
bc
Gt.Britain
6
15
32000
Revenge
bb
Gt.Britain
8
15
29000
Tennessee
bb
USA
12
14
32000
Yamato
bb
Japan
9
18
65000
关系Ships的数据
name
class
launched
California
Tennessee
1921
Haruna
Kongo
1915
Hiei
Kongo
1914
Iowa
Iowa
1943
Kirishima
Kongo
1915
Kongo
Kongo
1913
Missouri
Iowa
1944
Musashi
Yamato
1942
NewJersey
Iowa
1943
NorthCarolina
NorthCarolina
1941
Ramillies
Revenge
1917
Renown
Renown
1916
Repulse
Renown
1916
Resolution
Revenge
1916
Revenge
Revenge
1916
RoyalOak
Revenge
1916
RoyalSovereign
Revenge
1916
Tennessee
Tennessee
1920
Washington
NorthCarolina
1941
Wisconsin
Iowa
1944
Yamato
Yamato
1941
关系Battles的数据
name
date
DenmarkStrait
5/24-27/41
Guadalcanal
11/15/42
NorthCape
12/26/43
SurigaoStrait
10/25/44
关系Outcomes的数据
ship
battle
result
Arizona
PearlHarbor
sunk
Bismarck
DenmarkStrait
sunk
California
SurigaoStrait
ok
DukeofYork
NorthCape
ok
Fuso
SurigaoStrait
sunk
Hood
DenmarkStrait
sunk
KingGeorgeV
DenmarkStrait
ok
Kirishima
Guadalcanal
sunk
PrinceofWales
DenmarkStrait
damaged
Rodney
DenmarkStrait
ok
Scharnhorst
NorthCape
sunk
SouthDakota
Guadalcanal
damaged
Tennessee
SurigaoStrait
ok
Washington
Guadalcanal
ok
WestVirginia
SurigaoStrait
ok
Yamashiro
SurigaoStrait
sunk
需要注意的是:
那个数据库中存在着“悬浮元组”,比如,在关系Outcomes中出现的船只可能在关系Ships中查不到。
※作业一:
习题
1.对于产品数据库中的4个关系,写出它们的关系模式概念语句。
CREATETABLEProduct(
makerchar(3),
modelchar(4)primarykey,
typechar(10)
);
CREATETABLEPC(
modelchar(4)primarykey,
speeddecimal(3,2),
ramint,
hdint,
priceint
);
CREATETABLELaptop(
modelchar(4)primarykey,
speeddecimal(3,2),
ramint,
hdint,
screendecimal(3,1),
priceint
);
CREATETABLEPrinter(
modelchar(4)primarykey,
colorchar(5),
typechar(10),
priceint
);
2.修改关系Printer,删掉属性color。
ALTERTABLEPrinterDROPCOLUMNcolor;
3.修改关系Laptop,增加属性od(光驱类型,比如CD、DVD)。
若是某个笔记本电脑没有光驱,则该属性的默许值为‘none’。
ALTERTABLELaptopADDodchar(10)DEFAULT‘none’;
习题[选做]
1.对于二战中的大型舰船数据库中的4个关系,写出它们的关系模式概念语句。
CREATETABLEClasses(
classchar(20)primarykey,
typechar
(2),
countrychar(20),
numGunssmallint,
boresmallint,
displacementint
);
CREATETABLEShips(
namechar(20)primarykey,
classchar(20),
launchedint
);
CREATETABLEBattles(
namechar(20)primarykey,
datedatetime
);
CREATETABLEOutcomes(
shipchar(20),
battlechar(20),
resultchar(7),
primarykey(ship,battle)
);
2.修改关系Classes,删掉属性bore。
ALTERTABLEClassesDROPCOLUMNbore;
3.修改关系Ships,增加属性yard,它给出了该船的船坞。
ALTERTABLEShipsADDyardchar(30);
※作业二:
(写关系代数表达式)
习题对于产品数据库,试写出下列查询的关系代数表达式。
1.哪一种PC型号具有最少的速度?
model(speed>=(PC))
2.哪个生产厂商的笔记本电脑的硬盘容量至少100GB?
maker(Product(hd>=100(Laptop)))
3.查询厂商B生产的所有产品的型号和价钱。
model,price(maker=’B’(Product)PC)model,price(maker=’B’(Product)Laptop)model,price(maker=’B’(Product)Printer)
4.查询所有彩色激光打印机的型号。
model(color=’true’type=’laser’(Printer))
5.查询那些只生产笔记本电脑,不生产PC的厂商。
maker(type=’laptop’(Product))-maker(type=’pc’(Product))
※习题(关系代数计算)
已知关系
R(A,B):
{(0,1),(2,3),(0,1),(2,4),(3,4)}
S(B,C):
{(0,1),(2,4),(2,5),(3,4),(0,2),(3,4)}
计算下面的表达式:
1.B+1,C-1(S)2.B,A(R)3.(R)
4.B,AVG(C)(S)5.A,AVG(C)(RS)(注:
此处代表自然连接)
6.R与S的自然左外连接7.R与S的自然右外连接
答:
1.{(1,0),(3,3),(3,4),(4,3),(1,1),(4,3)}
2.{(0,1),(0,1),(2,3),(2,4),(3,4)}
3.{(0,1),(2,3),(2,4),(3,4)}
4.{(0,,(2,,(3,4)}
5.{(2,4)}
6.{(2,3,4),(2,3,4),(0,1,NULL),(0,1,NULL),(2,4,NULL),(3,4,NULL)}
7.{(2,3,4),(2,3,4),(NULL,0,1),(NULL,2,4),(NUL,2,5),(NULL,0,2)}
习题[选做]
对于二战中的大型舰船数据库,试写出下列查询的关系代数表达式。
1.查询那些火炮口径大于16英寸的舰船类属和生产国。
class,country(bore>16(Classes))
2.查询在丹麦海峡(DenmarkStrait)战役中沉没的舰船。
ship(battle=’DenmarkStrait’result=’sunk’(Outcomes)
3.1921年签署的华盛顿条约禁止制造超过35000吨的大型军舰,请列出那些违背华盛顿条约的军舰。
name(displacement>35000(Classes)launched>1921(Ships))
4.列出参加了瓜达康纳尔岛(Guadalcanal)海战的战舰的名称、排水量及火炮的数量。
name,displacement,numGuns(battle=’Guadalcanal’(Outcomes)=(Ships)Classes)
5.列出那些既有主力舰又有巡洋舰的国家。
country(type=’bb’(Classes))country(type=’bc’(Classes))
作业三:
(写SQL语句)
习题对于产品数据库,用SQL写出下面的查询:
以下4小题要求利用连接查询
1.查询硬盘容量至少30G的笔记本电脑制造商及该电脑的速度。
SELECTmaker,speed
FROMProduct,Laptop
WHERE=andhd>=30;
2.查询制造商B生产的任意类型的所有产品的型号和价钱。
(SELECT,price
FROMProduct,PC
WHERE=ANDmaker='B')
UNION
(SELECT,price
FROMProduct,Laptop
WHERE=ANDmaker='B')
UNION
(SELECT,price
FROMProduct,Printer
WHERE=ANDmaker='B');
3.查询出此刻两种或两种以上PC中的硬盘大小。
SELECTDISTINCT
FROMPCX,PCY
WHERE=and<;
4.查询每对具有相同速度和RAM的PC的型号。
每一对只能列出一次;例如,若(i,j)已被列出,则(j,i)就不能再被列出。
SELECT,
FROMPCX,PCY
WHERE=and=and<;
以下4小题要求利用子查询(利用IN、EXISTS、ANY、ALL)
5.找出速度在以上的PC制造商。
SELECTDISTINCTmaker
FROMProduct
WHEREmodelIN(
SELECTmodel
FROMPC
WHEREspeed>=;
6.找出价钱最高的打印机。
SELECTmodel
FROMPrinter
WHEREprice>=ALL(SELECTprice
FROMPrinter);
7.找出速度比任何一台PC都慢的笔记本电脑。
SELECTmodel
FROMLaptop
WHEREspeed FROMPC); 8.找出价钱最低的彩色打印机的制造商 SELECTmaker FROMProduct WHEREmodelIN( SELECTmodelFROMPrinter WHEREcolor=‘true’ANDprice<=ALL(SELECTprice FROMPrinter WHEREcolor=‘true’)); 以下4小题利用集函数、分组 9.查询厂商A生产的PC的平均价钱。 SELECTAVG(price) FROMProduct,PC WHERE=andmaker=’A’; 10.查询每种不同速度的PC的平均价钱。 SELECTspeed,AVG(price) FROMPC GROUPbyspeed; 11.查询每家厂商生产的笔记本电脑的显示器尺寸的平均值。 SELECTmaker,AVG(screen) FROMProduct,Laptop WHERE= GROUPBYmaker 12.查询至少生产三种不同型号PC的制造商。 SELECTmaker FROMProduct WHEREtype=’pc’ GROUPBYmaker HAVINGCOUNT(model)>=3; 习题对于产品数据库,用SQL写出下面的更新: 1.通过两条INSERT语句在数据库中添加如下信息: 厂商C生产的型号为1100的PC,其速度为,RAM容量大小为1024,硬盘容量大小为180,售价为$2499。 INSERTINTOProductVALUES(‘C’,‘1100’,‘pc’); INSERTINTOPCVALUES(‘1100’,,1024,180,2499); 2.删除所有硬盘容量低于100GB的PC。 DELETEFROMPC WHEREhd<100; 3.厂商A收购了厂商B,将所有B生产的产品改成由A生产。 UPDATEProductSETmaker=’A’WHEREmaker=‘B’; 习题 Movies(title,year,length,genre,studioName,producerC#) StarsIn(movieTitle,movieYear,starName) MovieStar(name,address,gender,birthdate) MovieExec(name,address,cert#,netWorth) Studio(name,address,presC#) 从上面的大体表构造以下视图: 1.视图StudioPress给出了既是电影公司领导(Studiopresident)又是制片人(MovieExecutive)的那些人的名字、地址、证书号和资产。 CREATEVIEWStudioPress(name,address,cert#,netWorth)AS SELECT,,cert#,netWorth FROMStudio,MovieExec WHERE#=#; 2.视图ExecutiveStar给出了既是制片人又是演员的那些人的名字、地址、性别、生日。 CREATEVIEWExecutiveStar(name,address,gender,birthdate)AS SELECT,,gender,birthdate FROMMovieExec,MovieStar WHERE=and=; 不用大体表,基于以上视图,用SQL写出以下查询: 3.找出既是演员又是制片人的女性姓名。 SELECTname FROMExecutiveStar WHEREgender=’F’; 4.找出是电影公司领导,同时资产至少有$10000000的制片人名字。 SELECTname FROMStudioPress WHEREnetWorth>=; 5.找出是演员同时资产至少有$50000000的电影公司领导的名字。 SELECT FROMStudioPress,ExecutiveStar WHERE=and= andnetWorth>=; 为下面的属性或属性组声明索引: 6.StudioName CREATEINDEXnameIndexONMovies(studioName); 7.genre和length CREATEINDEXgenreIndexONMovies(genre,length); 作业四: 对于电影数据库,对所有关系都概念了主键,如下所示: Movies(title,year,length,genre,studioName,producerC#) StarsIn(movieTitle,movieYear,starName) MovieStar(name,address,gender,birthdate) MovieExec(name,address,cert#,netWorth) Studio(name,address,presC#) 习题声明如下引用完整性约束: 1.电影的制片人必需是MovieExec中的某个制片人。 任何对MovieExec的更新,若违背此约束则拒绝该操作。 FOREIGNKEY(producerC#)REFERENCESMovieExec
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课后 作业 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)