数据库系统及应用实验报告Word下载.docx
《数据库系统及应用实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《数据库系统及应用实验报告Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
“系别代码表“表名:
dep
“教师表”表名:
teacher
“学生表”表名:
student
“课程表”表名:
course
“选课表”表名:
sc
为每个表准备大约10记录,使用Insert语句将这些数据插入到相应表中
数据录入完成后,将数据库备份到磁盘上,在以后的的试验中备用。
四、实验原理:
使用数据库管理系统DB、DDL创建数据库及数据库对象。
五、实验器材(设备、元器件)
戴尔Inspiron灵越15RTurbo(Ins15TD-2628)
CPU型号:
Intel酷睿i53210M
CPU主频:
2.5GHz
内存容量:
6GBDDR31600MHz
硬盘容量:
750GB5400转
显卡芯片:
AMDRadeonHD7730M+IntelGMA
六、实验步骤:
1.创建数据库
2.创建表
3.备份数据库
4.恢复数据库
七、实验数据及结果分析:
CREATEDATABASESTUD;
createtableDep
(depidCHAR(8)notnull,
depnameCHAR(20)notnull,
primarykey(depid));
createtableTeacher
(Tidvarchar(8)notnull,
Tnamevarchar(8)notnull,
TitleVARCHAR(8)notnull,
DepidVARCHAR(8),
primarykey(Tid));
createtableStud
(SidVARCHAR(11)notnull,
DepidCHAR(8)notnull,
SnameVARCHAR(8)notnull,
Sexchar
(2)notnull,
BirthDDATEnotnull,
EmailVARCHAR(40),
HomeAddrVARCHAR(40),
primarykey(Sid));
createtableCourse
(CidVARCHAR(8)notnull,
CnameVARCHAR(20)notnull,
CreditsNUMERIC(3,1)notnull,
primarykey(Cid));
createtableSc
CidVARCHAR(8)notnull,
Tidvarchar(8)notnull,
ScoreINTEGER,
primarykey(sid,cid,tid));
BACKUPDATABASESTUDTODISK='
F:
\DBMS\BAK\STUD.bak'
WITHINIT;
USEMASTER;
RESTOREDATABASESTUDFROMDISK='
WITHREPLACE;
USESTUD;
8、实验结论、心得体会和改进建议:
成功的搭建了数据库,建立了表格,增强了相关语言的熟练度,体会是应该先建立概念模型,建议是以后可以使用右键单击菜单的方式建立会更方便吧....
实验二
数据库的完整性
二、实验学时:
目的:
通过设置表的检查约束、外键约束体会数据库完整性的含义,约束条件下数据修改操作的限
制,以及实现修改操作的技巧。
内容:
设置约束条件
●设置教师表,学生表中的院系字段(depid)的外键约束
●设置选课表的三个外键约束(学号,课程号,教师号)
●设置选课表中成绩字段的取值范围是0到100
●设置学生表中性别字段的取值为 “男”或“女”
●设置学生表电子邮件字段的取值必须包含@符号
4、实验原理:
数据库库的完整性、约束条件、结构化查询语言。
5、实验器材(设备、元器件)
6、实验步骤:
1.恢复数据库,将数据库备份stud恢复到DB2中
2.执行SQL命令完成实验内容
ALTERTABLETEACHER
ALTERCOLUMNDEPIDCHAR(8)
ALTERTABLESTUD
ALTERTABLETeacher
ADDCONSTRAINTTeacher_DepFOREIGNKEY(Depid)REFERENCESDep(Depid)
ADDCONSTRAINTSTUD_DepFOREIGNKEY(Depid)REFERENCESDep(Depid)
ALTERTABLEsc
ADDCONSTRAINTsc_studFOREIGNKEY(sid)REFERENCESstud(sid)
ADDCONSTRAINTsc_teacherFOREIGNKEY(tid)REFERENCESteacher(tid)
ADDCONSTRAINTsc_courseFOREIGNKEY(cid)REFERENCEScourse(cid)
ADDCONSTRAINTsc_scoreCHECK(score>
='
0'
ANDscore<
100'
)
ALTERTABLESTUD
ADDCONSTRAINTstud_sexCHECK(sexIN('
男'
'
女'
))
altertablestud
addconstraintchk_stud_1check(emaillike'
_%@_%'
结论是成功实现了数据库完整性的完善,体会是用表级约束语句建立约束更方便,notnull约束不知道能不能使用表级约束新建,改进建议无。
实验三
数据查询
练习用SELECT查询语句,设置查询条件,实现单表查询。
练习使用SELECT语句从多个表中查询数据,表的内连接、左外连接、右外连接的使用以及设置连接条件,理解连接条件和查询条件的在目的和功能上的区别。
(1)查询年龄在20—22之间的学生姓名(通过出生日期和当前日期计算年龄)year(getdate())-year(birthd)
(2)查询所有副教授的信息
(3)查询姓“张”的学生的学号、姓名、邮件地址
(4)求每门课程的选课人数、最高分、最低分、平均分,要求在查询结果中显示课程号和课程名;
(5)查询既选修了1号课程,又选修了2号课程的学生学号
(6)查询既选修了1号课程,又选修了2号课程的学生姓名
(7)查询选修了全部课程的学生姓名
结构化查询语言、表的连接、关系运算、分组查询
5、实验器材(设备、元器件)
1.恢复数据库,将数据库备份stud恢复到DB2中
2.执行SQL命令完成实验内容
7、实验数据及结果分析:
1.查询年龄在20—22之间的学生姓名(通过出生日期和当前日期计算年龄)
selectSname
FROMStud
WHEREyear(getdate())-year(birthd)between20and22
2.查询所有副教授的信息
SELECT*
FROMTEACHER
WHERETITLE='
副教授'
3.查询姓“张”的学生的学号、姓名、邮件地址
selectsid,sname,email
fromstud
wheresnamelike'
张%'
4.求每门课程的选课人数、最高分、最低分、平均分,要求在查询结果中显示课程号和课程名
selectcount(sid)as人数,max(score)as最高分,min(score)as最低分,avg(score)as平均分,min(cname)
fromscleftouterjoincourse
onsc.Cid=Course.Cid
groupbysc.cid
6.查询既选修了1号课程,又选修了2号课程的学生姓名
selectsname
fromscfirst,scsecond,stud
wherefirst.cid='
1'
andsecond.cid='
2'
andfirst.sid=second.sidandfirst.sid=stud.sid
7.查询选修了全部课程的学生姓名
andfirst.sid=second.sid
andsecond.sidin(selectsidfromscwherecid='
3'
)andfirst.sid=stud.sid
成功使用结构化查询语言完成了数据查询,并且熟悉了外连接的使用,改进建议是输入数据使用sqlserver的右键菜单编辑表格会更加方便!
,改进建议无。
实验四
一、实验名称:
数据库建模
本实验要求学生学习数据库建模工具PowerDesigner的使用方法,掌握最基本的使用方法。
本实验将重点练习:
使用PDM,以图形化界面方式创建表及确定各表之间的关系,在实验报告中给出模型图;
通过“生成数据库”功能生成创建数据库的脚本,在实验报告中给出脚本内容;
这是powerdesigner的功能
1.通过生成PhysicalDataModel(PDM)以图形化界面创建表及确定各表之间的关系。
2.根据第一步生成的表导出数据库的脚本
3.利用PD的逆向工程生成PDM并进行修改
脚本内容:
/*==============================================================*/
/*DBMSname:
MicrosoftSQLServer2008*/
/*Createdon:
2014-04-2217:
26:
45*/
ifexists(select1
fromsys.sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidando.type='
F'
wherer.fkeyid=object_id('
Sc'
)ando.name='
FK_SC_REFERENCE_TEACHER'
altertableSc
dropconstraintFK_SC_REFERENCE_TEACHER
go
FK_SC_REFERENCE_STUDENT'
dropconstraintFK_SC_REFERENCE_STUDENT
FK_SC_REFERENCE_COURSE'
dropconstraintFK_SC_REFERENCE_COURSE
Student'
FK_STUDENT_REFERENCE_DEP'
altertableStudent
dropconstraintFK_STUDENT_REFERENCE_DEP
Teacher'
FK_TEACHER_REFERENCE_DEP'
altertableTeacher
dropconstraintFK_TEACHER_REFERENCE_DEP
fromsysobjects
whereid=object_id('
Course'
andtype='
U'
droptableCourse
Dep'
droptableDep
droptableSc
droptableStudent
droptableTeacher
/*Table:
Course*/
createtableCourse(
cidvarchar(8)notnull,
cnamevarchar(30)null,
creditsdecimal(3,0)null,
constraintPK_COURSEprimarykey(cid)
Dep*/
createtableDep(
depidvarchar(8)notnull,
depnamevarchar(20)null,
constraintPK_DEPprimarykey(depid)
Sc*/
createtableSc(
tidvarchar(8)null,
sidvarchar(11)null,
cidvarchar(8)null,
scoredecimal(3,0)null
Student*/
createtableStudent(
sidvarchar(11)notnull,
depidvarchar(8)null,
snamevarchar(8)null,
sexvarchar
(2)null,
birthddatetimenull,
emailvarchar(20)null,
homeaddrvarchar(40)null,
constraintPK_STUDENTprimarykey(sid)
Teacher*/
createtableTeacher(
tidvarchar(8)notnull,
tnamevarchar(8)null,
titlevarchar(8)null,
constraintPK_TEACHERprimarykey(tid)
addconstraintFK_SC_REFERENCE_TEACHERforeignkey(tid)
referencesTeacher(tid)
addconstraintFK_SC_REFERENCE_STUDENTforeignkey(sid)
referencesStudent(sid)
addconstraintFK_SC_REFERENCE_COURSEforeignkey(cid)
referencesCourse(cid)
addconstraintFK_STUDENT_REFERENCE_DEPforeignkey(depid)
referencesDep(depid)
addconstraintFK_TEACHER_REFERENCE_DEPforeignkey(depid)
结论是用powerdesigner建立数据模型十分方便,而且它与数据库文件的转换也十分方便,以后一定要多多使用,以后学习ER图时还要频繁使用它,体会是不知道列的notnull属性该如何添加,改进建议无...