南邮数据库基础教程实验报告Word文档下载推荐.docx
《南邮数据库基础教程实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《南邮数据库基础教程实验报告Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
(1)掌握数据库系统创建和数据添加的程序设计方法
(2)掌握采用SQL编程语言实现关系数据库查询的程序设计方法
(3)掌握对于已有数据库进行有兴趣的数据挖掘设计方法
(4)掌握对于复杂数据库查询的优化程序设计方法
(5)掌握SQL编程性能监测和分析方法
要求独立完成实验方案的设计、数据库的构建、数据录入、SQL程序的编制、调试和运行;
要求独立完成实验报告的编写。
二、实验环境(实验设备)
硬件:
微机
软件:
SQLServer2008
三、实验原理及内容
实验1、利用教材习题2.3.1给出的关系模式和习题2.4.1给出的数据,建立包括Product、PC、Laptop、Printer四个关系模式的关系数据库,并且录入给出的数据。
实验2、按照教材习题6.2.2要求,编制查询语句,并且利用实验1已经建立的关系数据库,执行查询语句,得出查询结果。
在编制查询语句时,建议参照习题2.4.1编制的相关查询的关系代数表达式。
实验3、按照教材习题6.3.1要求,参照习题2.4.1编制的相关查询的关系代数表达式,利用核心数据库查询语言(即核心SQL,不包括GROUPBY、SUM、AVG、MIN、MAX、和COUNT语句)编制查询语句,对在实验1中建立的关系数据库进行查询,并且记录查询结果。
实验4、按照教材习题6.4.6要求,利用完全数据库查询语言(完全SQL)编制查询语句,对在实验1中建立的关系数据库进行查询,并且记录查询结果。
实验5、基于在实验1中建立的关系数据库和录入的数据进行数据挖掘,查找“具有最流行配置的PC型号和制造商”,查找“具有较高性价比的Laptop型号和制造商”,以及至少针对自己设立的一项有兴趣的题目,进行数据挖掘,得出挖掘结果,并且监测数据挖掘所花费的时间。
实验6、对实验5的数据挖掘的SQL程序进行优化,重新执行以上的数据挖掘操作,监测优化后SQL程序所花费的时间,比较优化前后的数据挖掘的性能差异,分析其中的优化原理。
参考教材
《数据库系统基础教程(第三版)》中译本,JefferyD.Ullman,JenniferWidon著,岳丽华,金培权,万寿红等译.北京:
机械工业出版社,2011.
实验一
创建表
createtableProduct(
makerCHAR(30),
modelINTPRIMARYKEY,
typeCHAR(30),
);
CREATETABLEPC(
speedFLOAT,
ramINT,
hdINT,
priceINT,
CREATETABLELaptop(
screenFLOAT,
CREATETABLEPrinter(
colorCHAR(30),
录入数据
insertintoPCvalues(1001,2.66,1024,250,2114);
insertintoPCvalues(1002,2.10,512,250,995);
insertintoPCvalues(1003,1.42,512,80,478);
insertintoPCvalues(1004,2.80,1024,250,649);
insertintoPCvalues(1005,3.20,512,250,630);
insertintoPCvalues(1006,3.20,1024,320,1049);
insertintoPCvalues(1007,2.20,1024,200,510);
insertintoPCvalues(1008,2.20,2048,250,770);
insertintoPCvalues(1009,2.00,1024,250,650);
insertintoPCvalues(1010,2.80,2048,300,770);
insertintoPCvalues(1011,1.86,2048,160,959);
insertintoPCvalues(1012,2.80,1024,160,649);
insertintoPCvalues(1013,3.06,512,80,529);
insertintoLaptopvalues(2001,2.00,2048,240,20.1,3673);
insertintoLaptopvalues(2002,1.73,1024,80,17.0,949);
insertintoLaptopvalues(2003,1.80,512,60,15.4,549);
insertintoLaptopvalues(2004,2.00,512,60,13.3,1150);
insertintoLaptopvalues(2005,2.16,1024,120,17.0,2500);
insertintoLaptopvalues(2006,2.00,2048,80,15.4,1700);
insertintoLaptopvalues(2007,1.83,1024,120,13.3,1429);
insertintoLaptopvalues(2008,1.60,1024,100,15.4,900);
insertintoLaptopvalues(2009,1.60,512,80,14.1,680);
insertintoLaptopvalues(2010,2.00,2048,160,15.4,2300);
insertintoPrintervalues(3001,'
true'
'
ink_jet'
99);
insertintoPrintervalues(3002,'
false'
laster'
239);
insertintoPrintervalues(3003,'
899);
insertintoPrintervalues(3004,'
120);
insertintoPrintervalues(3005,'
insertintoPrintervalues(3006,'
100);
insertintoPrintervalues(3007,'
200);
insertintoProductvalues('
A'
1001,'
pc'
1002,'
1003,'
2004,'
laptop'
2005,'
2006,'
B'
1004,'
1005,'
1006,'
2007,'
C'
1007,'
D'
1008,'
1009,'
1010,'
)
3004,'
printer'
3005,'
E'
1011,'
1012,'
1013,'
2001,'
2002,'
2003,'
3001,'
3002,'
3003,'
F'
2008,'
2009,'
G'
2010,'
H'
3006,'
3007,'
实验二
A)
SELECTmaker,speed
FromProduct,Laptop
whereLaptop.hd>
=30ANDLaptop.model=Product.model
B)
SELECTProduct.model,price
FromProduct,PC
WhereProduct.maker='
ANDProduct.model=PC.model
UNION
ANDProduct.model=Laptop.model
FROMProduct,Printer
WHEREProduct.maker='
ANDProduct.model=Printer.model
C)
SELECTmaker
FromProductP
WhereP.type='
EXCEPT
D)
SELECTDISTINCTp.hd
FROMPCp,PCq
WHEREq.hd=p.hdANDp.model>
q.model
E)
SELECTp.modelASMODEL1,q.modelASMODEL2
WHEREp.speed=q.speedANDp.ram=q.ramANDp.model>
F)
SELECTp.maker
FROM(
SELECTE.maker,F.model
FROMProductE,PCF
WHEREF.speed>
3.0ANDE.model=F.model
UNION
SELECTG.maker,H.model
FROMProductG,LaptopH
WHEREH.speed>
3.0ANDG.model=H.model
)p
GROUPBYp.maker
HAVINGCOUNT(p.model)>
=2
实验三
FROMProduct,(
SELECTmodel
FROMPC
WHEREPC.speed>
3.0
)p
WHEREProduct.model=p.model
FROMProductJOINPC
ONProduct.model=PC.model
WHEREspeed>
SELECTp.price
FROMPrinterp
WHEREp.price>
=ALL(
SELECTprice
FROMPrinter
)
SELECTMAX(price)ASprice
FROMPrinter
SELECTp.model
FROMLaptopp
WHEREp.speed<
=(
SELECTMIN(speed)
FROMPC
)
=ALL(
SELECTspeed
D)
SELECTmodel,price
FROMPC
FROMLaptop
UNION
FROMPrinter
SELECTprice
FROMProduct
WHEREmodel=(
SELECTmodel
FROMPrinter
WHEREprice=(
SELECTMIN(price)ASprice
FROMPrinter
)
)
FROMProductp,Printerq
WHEREp.model=q.modelANDq.price<
SELECTprice
FROMPrinter
)
FROMProductp,PCq
WHEREp.model=q.model
ANDq.ram<
SELECTram
ANDq.speed>
SELECTspeed
)
实验四
SELECTAVG(speed)ASAVGSPEED
FROMPC
FROMPC
WHEREprice>
1000
SELECTAVG(price)ASAVGPRICE
FROMPC
WHEREmodelIN(
FROMProduct
WHEREmaker='
)
SELECTAVG(p.price)ASAVGPRICE
)p
WHEREp.modelIN(
SELECTspeed,AVG(price)ASAVGPRICE
GROUPBYspeed
SELECTmaker,AVG(screen)ASAVGSCREEN
FROMProductpJOINLaptopqONp.model=q.model
GROUPBYmaker
G)
WHEREtype='
PC'
HAVINGCOUNT(model)>
=3
H)
SELECTmaker,MAX(price)ASMAXPRICE
FROMProductpJOINPCqONp.model=q.model
I)
Wherespeed>
2.0
J)
SELECTAVG(hd)ASAVGHD
WHEREmakerIN(
SELECTmaker
Wheretype='
Printer'
四、实验小结(包括问题和解决方法、心得体会、意见与建议等)
通过四次实验,对T-SQL查询有了更深入的理解,对分组、聚集、子查询、连接等有了更好的运用。
五、指导教师评语
成绩
批阅人
日期