电子科技大学数据库原理及应用实验报告.docx
《电子科技大学数据库原理及应用实验报告.docx》由会员分享,可在线阅读,更多相关《电子科技大学数据库原理及应用实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
![电子科技大学数据库原理及应用实验报告.docx](https://file1.bdocx.com/fileroot1/2022-12/31/ca0e8864-fe7f-4660-b1e7-d4bad4498ebe/ca0e8864-fe7f-4660-b1e7-d4bad4498ebe1.gif)
电子科技大学数据库原理及应用实验报告
计算机专业类课程
实
验
盘
告
课程名称:
数据库原理及应用
学院:
计算机科学与工程
专业:
计算机科学与技术
学生姓名:
赵希
学号:
20
指导教师:
日期:
14年5月9日
电子科技大学
实验报告
实验一
一、实验名称:
创建数据库
二、实验学时:
4
三、实验内容和目的:
实验内容:
创建数据库:
manage
该数据库包括四个表:
建议:
在定义表中字段时,尽量使用意义的英文单词。
“系别代码表“
表名:
dep
“教师表”
表名:
teacher
“学生表”
表名:
student
“课程表”
表名:
course
“选课表”
表名:
sc
为每个表准备大约10记录,使用Insert语句将这些数据插入到相应表中
数据录入完成后,将数据库备份到磁盘上,在以后的的试验中备用。
实验目的:
本实验要求学生掌握创建数据库的方法及相关操作
四、实验原理:
使用数据库管理系统DRDDL创建数据库及数据库对象。
五、实验器材
Sqlserver2012
笔记本一台CPUcorei7-3610QM内存8GB系统windows8.164位专业版dbms:
六、实验步骤:
(1)创建数据库:
STUD
Createdatabasestud;
(2)创建表,表的详细说明见表格.
"系别代码表"表名:
dep
其结构如下:
(该表的主键为"系代码”)
字段名称
字段类型
字段大小/格式
是否出为空
约束条件
系代码depid
VARCHAR
8
否
PK
系名depname
VARCHAR
20
否
Notnull
"教师表”表名:
teacher
其结构如下:
(该表的主键为“教师号”)
字段名称
字段类型
字段大小/格式
是古可为空
约束条件
教师号tid
VARCHAR
8
否
PK
教师名tname
VARCHAR
8
否
Notnull
职称title
VARCHAR
8
是
所属院系编号depid
VARCHAR
8
是
"学生表”表名:
student
其结构如下:
(该表的主键为“学生号”)
字段名称
字段类型
字段大小/格式
是古可为空
约束条件
学号sid
VARCHAR
11
否
PK
学生名sname
VARCHAR
8
否
Notnull
院系编号depid
VARCHAR
8
是
性别sex
VARCHAR
2
否
出生年月birthd
DATETIME
是
邮箱semail
VARCHAR
20
是
家庭地址homeaddr
VARCHAR
40
是
"课程表”表名:
course
其结构如下:
(该表的主键是课程号)
字段名称
字段类型
字段大小/格式
是古可为空
约束条件
课程号cid
VARCHAR
8
否
PK
课程名cname
VARCHAR
30
否
Notnull
学分credits
DECIMAL
3,1(小数位数1)
否
Notnull
“选课表”表名:
sc
其结构如下:
(该表的主键是课程号)
字段名称
字段类型
字段大小/格式
是古可为空
约束条件
学号sid
VARCHAR
11
否
Notnull,PK
课程号cid
VARCHAR
8
否
Notnull,PK
教师号tid
VARCHAR
8
否
Notnull
成绩score
DECIMAL
3,1(小数位数1)
是
(3)备份数据库
BACKUPDATABASEstudTODISK='d:
\stud.bak'WITHINIT;
(4)恢复数据库
RESTOREDATABASEstudFROMDISK='d:
\stud.bak'WITHREPLACE;
七、实验数据及结果分析:
(1)createdatabasestud
(2)createtabledep(
depidvarchar(8)primarykey,depnamevarchar(20)notnull)
createtableteacher(
tidvarchar(8)primarykey,
tnamevarchar(8)notnull,
titlevarchar(8),
depidvarchar(8)
)
createtablestudent(
sidvarchar(11)primarykey,
snamevarchar(8)notnull,
depidvarchar(8),
sexvarchar
(2)notnull,
birthddate,
semailvarchar(20),
homeaddrvarchar(40)
)
createtablecourse(
cidvarchar(8)primarykey,
cnamevarchar(30)notnull,
creditsdecimalnotnull
)
createtablesc(
sidvarchar(11)notnull,
cidvarchar(8)notnull,
tidvarchar(8)notnull,
scoredecimal,
primarykey(sid,cid)
)
(3)backupdatabasestudtodisk='d:
\database\stud.bak'withinit;
(4)restoredatabasestudfromdisk='d:
\database\stud.bak'withreplace;
八、实验结论、心得体会和改进建议:
1、实验结论
j~;ha
石:
S■己而审FJK*
M^PC(11.4RTMlXl-PCglSlrtudDO^bOOD疔
2、心得体会
1)Sql语言用起来十分方便。
2)积累了宝贵操作经验。
3、改进建议
这几个实验可以合并成一个实验,可以减少实验报告的量。
电子科技大学
实验报告
实验二
一、实验名称:
数据库的完整性
二、实验学时:
4
三、实验内容和目的:
实验内容:
设置约束条件
设置教师表,学生表中的院系字段(depid)的外键约束
设置选课表的三个外键约束(学号,课程号,教师号)
设置选课表中成绩字段的取值范围是0到100
设置学生表中性别字段的取值为“男”或“女”
设置学生表电子邮件字段的取值必须包含廖f号
实验目的:
通过设置表的检查约束、外键约束体会数据库完整性的含义,约束条件下数据修改操作的限制,以及实现修改操作的技巧。
四、实验原理:
数据库库的完整性、约束条件、结构化查询语言。
五、实验器材
笔记本一台CPUcorei7-3610QM内存8GB系统windows8.164位专业版dbms:
Sqlserver2012
六、实验步骤:
1.恢复数据库,将数据库备份stud恢复到DB2中
2.执行SQL命令完成实验内容
3.备份数据库
七、实验数据及结果分析:
1)restoredatabasestudfromdisk='d:
\database\stud.bak'withreplace;
2)altertableteacheraddforeignkey(depid)referencesdep(depid);
altertablestudentaddforeignkey(depid)referencesdep(depid);
altertablescaddforeignkey(sid)referencesstudent(sid);
altertablescaddforeignkey(cid)referencescourse(cid);
altertablescaddforeignkey(tid)referencesteacher(tid);
altertablescaddcheck(scorebetween0and100);
altertablestudentaddcheck(sexin('男','女'));
altertablestudentaddcheck(semaillike'%@%');
3)restoredatabasestudfromdisk='d:
\database\stud.bak'withreplace;
八、实验结论、心得体会和改进建议:
积累了操作经验。
对数据库有了更深刻的理解。
3、改进建议
这几个实验可以合并成一个实验,可以减少实验报告的次数。
电子科技大学
实验报告
实验三
一、实验名称:
数据查询
二、实验学时:
4
三、实验内容和目的:
1、实验内容
(1)查询年龄在30—32之间的学生姓名(通过出生日期和当前日期计算年龄)year(getdate())-year(birthd)
(2)查询所有副教授的信息
⑶查询姓“张”的学生的学号、姓名、邮件地址
(4)求每门课程的选课人数、最高分、最低分、平均分,要求在查询结果中显示课程号和课程名;
(5)查询既选修了1号课程,又选修了2号课程的学生学号
(6)查询既选修了1号课程,又选修了2号课程的学生姓名
(7)查询选修了全部课程的学生姓名
2、实验目的
练习用SELECT^询语句,设置查询条件,实现单表查询。
练习使用SELECTS句从多个表中查询数据,
表的内连接、左外连接、右外连接的使用以及设置连接条件,理解连接条件和查询条件的在目的和功能上的区别。
四、实验原理:
结构化查询语言、表的连接、关系运算、分组查询
五、实验器材
笔记本一台CPUcorei7-3610QM内存8GB系统windows8.164位专业版dbms:
Sqlserver2012
六、实验步骤:
1.恢复数据库,将数据库备份stud恢复到DB2中
2.执行SQL命令完成实验内容
七、实验数据及结果分析:
1、restoredatabasestudfromdisk='d:
\database\stud.bak'withreplace;
2、selectsname,姓名",(datepart(year,getdate())-datepart(year,birthd))”年龄"fromstudent
where(datepart(year,getdate())-datepart(year,birthd))between30and32;select*fromteacher
wheretitle='副教授’;
selectsid”学号",sname”姓名",semail"邮件地址"
fromstudent
wheresnamelike'张%';
selectcourse.cid"课程号",cname"课程名称”,count(*)”选课人数”,max(score)”最高分",min(score)”最低分
”,avg(score)”平均分"
fromsc,course
wherecourse.cid=sc.cid
groupbycname,course.cid;
selectsc1.sid
fromscsc1,scsc2
wheresc1.sid=sc2.sidandsc1.cid=1andsc2.cid=2;
selectsname
fromstudent,scsc1,scsc2
wherestudent.sid=sc1.sidandsc1.sid=sc2.sidandsc1.cid=1andsc2.cid=2;
selectsname
fromstudent,scsc1,scsc2,scsc3
wherestudent.sid=sc1.sidandsc1.sid=sc2.sidandsc1.sid=sc3.sidandsc1.cid=1andsc2.cid=2andsc3.cid=32)
八、实验结论、心得体会和改进建议:
1)充分理解了聚集函数和groupby的用法
2)对自连接的理解更加深刻
3、改进意见
数据太少,若单条录入有显得繁杂,希望以后有现成的bak备份文件。
电子科技大学
实验报告
实验四
一、实验名称:
数据库建模
二、实验学时:
4
三、实验内容和目的:
1、实验内容
(1)使用PDM以图形化界面方式创建表及确定各表之间的关系,在实验报告中给出模型图;
(2)通过“生成数据库”功能生成创建数据库的脚本,在实验报告中给出脚本内容;
2、实验目的
本实验要求学生学习数据库建模工具PowerDesigner的使用方法,掌握最基本的使用方法。
四、实验原理:
实验步骤中已详细介绍。
五、实验器材
笔记本一台CPUcorei7-3610QM内存8GB系统windows8.164位专业版powerdesigner版本:
SybasePowerDesigner(R]
AboutPowerDesigner
Pc限rD点悬GkidioEntefprkeTrial.Expiresin15days.
Copyright(C)1991-2000Sybase,Inc.Anditssubsidiaries.
Allrighhreserved-
六、实验步骤:
1.通过生成PhysicalDataModel(PDM以图形化界面创建表及确定各表之间的关系。
(1)打开了PD以后,选择New,并在Modeltype里面选择PhysicalDataModel,同时选择可使
用的DBM$如DB2或MySQL4.0,然后点击确定,如图1所示。
图1
(2)从Palette工具面板中单击创建Table的工具图标,并在图表窗口中点击一下便可产生一个新的Table(默认名称为Table_1,可修改该名称),如图2所示:
图2
(3)选中该表,右击选择”Properties”对该表进行编辑(修改名称、增加列等)如图3所示:
图3
(4)选择"Column^'标签,如图3中的红色矩形所示。
便可以给student这个表添加列了。
在添
中列的时候应该指明列的类型,并指是否允许为空,是否为主键等各种属性,如图4所示:
骨|也田里曰E险堕XAW蚤
r・・E『■P^DJiriD'rEIRnxirTRllRnnnnA-^
图4
⑸按生成student表同样的办法生成department表,只是具体属性不一样,如图5所示:
=;iFr
Happing
Notes|EiiLgs
Dependencies
Eiet@ndedD叩QndQiiciew
VersionInfo
GireriL
Column.?
Chick
5*pt]OptioniE
Fr&via^
曹启匡占启XfflXM可二
NameCode
diLmnri&
小1*1印
两定I职消I应用置I裙助I
图5
(6)学生表中的学生所在系是department表中的一个外键,这时我们需要建立一个表的引用。
如
图6所示:
depaiment
、、口
OOzV
CS
(7)这时候可以发现student表中多了一个dno字段,并且有<fk>这种外键标识,这样表也就建
好了。
2.根据第一步生成的表导出数据库的脚本
要产生数据库生成脚本,进行如下操作:
(1)选择DatabaseGenerateDatabase,打开"ParametersforSybaseSQLAnywhere”窗口(图
7)。
⑵在框中接受缺省的文件名crebas.sql,在Directory框中接受缺省的目录名。
(3)接受其它缺省的生成参数和选项。
图7
⑷单击"Generatescript”按钮,打开如图8所示的确认框。
图8
⑸单击“是(Y)”按钮。
(6)打开数据库生成脚本文件,并浏览这个文件。
这个脚本文件就是我们通过图形化的界面创建的
表及其之间的关系的一个SQL描述,我们可以在应用程序中或者相应的DBMSt入这个脚本就
可以完成数据库的创建了(在例子中的这个脚本只有表相关的创建语句)。
3.利用PD的逆向工程生成PDM并进行修改
逆向工程的实验我们以从数据库生成脚本生成PDM^例。
从数据库生成脚本生成PDM按下列步骤进行:
(1)选择EngineeringDatabase”窗口。
新窗口如图9所示:
图9
⑵从"Databasename”下拉列表框中选择数据库管理系统。
如图9的红圈所示,并点击确定。
⑶单击"Usingascriptfile”单选按钮,并添加一个SQL脚本文件,如图10所示:
图10
⑷单击“OK',新的PDM出现在窗口中,如图11所示:
J|,J1ftL4t1
am地r.i2ii.w.L_
1,fk^rnLf«1Ujrl>_ll,
1
I"即nI
l?
*U■血Ldfibd.l-in:
^1yIimIi\ls如,JI』u
][2iW0
丑穿*申83*
r>■虫b0
■1仆><>A
方=>
国5ZH宜
SI
rs-
rn宣止跆跻的
电IkrEixQi.LtAiJtuL-il.S
]•泣wigm自山*=
TiVjTiibi^t
T血iz牡
-导肉边队心5卜
Ld
重复介绍了。
七、实验数据及结果分析:
2、/*==============================================================*/
/*DBMSname:
SybaseSQLAnywhere11*/
/*Createdon:
2014/5/1021:
17:
11*/
/*==============================================================*/
ifexists(select1fromsys.sysforeignkeywhererole='FK_STUDENT_REFERENCE_DEPARTME')thenaltertablestudent
deleteforeignkeyFK_STUDENT_REFERENCE_DEPARTME
endif;
ifexists(
select1fromsys.systable
wheretable_name='department'
andtable_typein('BASE','GBLTEMP')
)then
droptabledepartment
endif;
ifexists(
select1fromsys.systable
wheretable_name='student'
andtable_typein('BASE','GBLTEMP')
)then
droptablestudent
endif;
/*==============================================================*/
/*Table:
department*/
/*==============================================================*/
createtabledepartment
(
dnovarchar(4)notnull,
dnamevarchar(10)null,
constraintPK_DEPARTMENTprimarykeyclustered(dno)
);
*/
/*
/*Table:
student*/
/*==============================================================*/
createtablestudent
(
sno
varchar(4)
notnull,
dno
varchar(4)
null,
sname
varchar(10)
null,
sdept
varchar(4)
null,
constraintPK_STUDENTprimarykeyclustered(sno)
);
altertablestudent
addconstraintFK_STUDENT_REFERENCE_DEPARTMEforeignkey(dno)
referencesdepartment(dno)
onupdaterestrict
ondeleterestrict;
八、实验结论、心得体会和改进建议:
1、实验结论
试验成功,成功通过生成PhysicalDataModel(PDM以图形化界面创建表及确定各表之间的关
系,并表导出数据库的脚本,之后又成功利用PD的逆向工程生成PDM并进行修改。
2、心得体会
1)深刻了对数据库结构的理解,更有利于数据库科目的学习。
2)在图形化界面下能更好的理解和设计数据库。
3、改进建议
实验步骤说明太过傻瓜化,完全没有体现的数据库的设计。