课后作业答案.docx
《课后作业答案.docx》由会员分享,可在线阅读,更多相关《课后作业答案.docx(17页珍藏版)》请在冰豆网上搜索。
课后作业答案
产品数据库
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
2.66
1024
250
2114
1002
2.10
512
250
995
1003
1.42
512
80
478
1004
2.80
1024
250
649
1005
3.20
512
250
630
1006
3.20
1024
320
1049
1007
2.20
1024
200
510
1008
2.20
2048
250
770
1009
2.00
1024
250
650
1010
2.80
2048
300
770
1011
1.86
2048
160
959
1012
2.80
1024
160
649
1013
3.06
512
80
529
关系Laptop的数据
model
speed
ram
hd
screen
price
2001
2.00
2048
240
20.1
3673
2002
1.73
1024
80
17.0
949
2003
1.80
512
60
15.4
549
2004
2.00
512
60
13.3
1150
2005
2.16
1024
120
17.0
2500
2006
2.00
2048
80
15.4
1700
2007
1.83
1024
120
13.3
1429
2008
1.60
1024
100
15.4
900
2009
1.60
512
80
14.1
680
2010
2.00
2048
160
15.4
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.1
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.2[选做]
1.对于二战中的大型舰船数据库中的4个关系,写出它们的关系模式定义语句。
CREATETABLEClasses(
classchar(20)primarykey,
typechar
(2),
countrychar(20),
numGunssmallint,
boresmallint,
displacementint
);
CREATETABLEShips(
namechar(20)primarykey,
classchar(20),
launchedint
);
CREATETABLEBattles(
namec