电子科技大学数据库原理及应用实验报告Word文档格式.docx
- 文档编号:17596802
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:22
- 大小:434.31KB
电子科技大学数据库原理及应用实验报告Word文档格式.docx
《电子科技大学数据库原理及应用实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《电子科技大学数据库原理及应用实验报告Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
“学生表”表名:
student
“课程表”表名:
course
“选课表”表名:
sc
为每个表准备大约10记录,使用Insert语句将这些数据插入到相应表中
数据录入完成后,将数据库备份到磁盘上,在以后的的试验中备用。
实验目的:
本实验要求学生掌握创建数据库的方法及相关操作
4、实验原理:
使用数据库管理系统DB、DDL创建数据库及数据库对象。
5、实验器材
笔记本一台CPUcorei7-3610QM内存8GB系统windows8.164位专业版dbms:
Sqlserver2012
6、实验步骤:
(1)创建数据库:
STUD
Createdatabasestud;
(2)创建表,表的详细说明见表格.
“系别代码表“ 表名:
其结构如下:
(该表的主键为“系代码”)
字段名称
字段类型
字段大小/格式
是否可为空
约束条件
系代码depid
VARCHAR
8
否
PK
系名depname
20
Notnull
“教师表”表名:
(该表的主键为“教师号”)
教师号tid
教师名tname
职称title
是
所属院系编号depid
“学生表”表名:
其结构如下:
(该表的主键为“学生号”)
学号sid
11
学生名sname
院系编号depid
性别sex
2
出生年月birthd
DATETIME
邮箱semail
家庭地址homeaddr
40
“课程表”表名:
(该表的主键是课程号)
课程号cid
课程名cname
30
学分credits
DECIMAL
3,1(小数位数1)
“选课表”表名:
Notnull,PK
成绩score
(3)备份数据库
BACKUPDATABASEstudTODISK='
d:
\stud.bak'
WITHINIT;
(4)恢复数据库
RESTOREDATABASEstudFROMDISK='
WITHREPLACE;
------------------------------------------------------
7、实验数据及结果分析:
(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='
\database\stud.bak'
withinit;
(4)restoredatabasestudfromdisk='
withreplace;
8、实验结论、心得体会和改进建议:
1、实验结论
2、心得体会
1)Sql语言用起来十分方便。
2)积累了宝贵操作经验。
3、改进建议
这几个实验可以合并成一个实验,可以减少实验报告的量。
实验二
数据库的完整性
实验内容:
设置约束条件
●设置教师表,学生表中的院系字段(depid)的外键约束
●设置选课表的三个外键约束(学号,课程号,教师号)
●设置选课表中成绩字段的取值范围是0到100
●设置学生表中性别字段的取值为 “男”或“女”
●设置学生表电子邮件字段的取值必须包含@符号
通过设置表的检查约束、外键约束体会数据库完整性的含义,约束条件下数据修改操作的限制,以及实现修改操作的技巧。
数据库库的完整性、约束条件、结构化查询语言。
1.恢复数据库,将数据库备份stud恢复到DB2中
2.执行SQL命令完成实验内容
3.备份数据库
1)restoredatabasestudfromdisk='
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='
积累了操作经验。
对数据库有了更深刻的理解。
这几个实验可以合并成一个实验,可以减少实验报告的次数。
实验三
数据查询
1、实验内容
(1)查询年龄在30—32之间的学生姓名(通过出生日期和当前日期计算年龄)year(getdate())-year(birthd)
(2)查询所有副教授的信息
(3)查询姓“张”的学生的学号、姓名、邮件地址
(4)求每门课程的选课人数、最高分、最低分、平均分,要求在查询结果中显示课程号和课程名;
(5)查询既选修了1号课程,又选修了2号课程的学生学号
(6)查询既选修了1号课程,又选修了2号课程的学生姓名
(7)查询选修了全部课程的学生姓名
2、实验目的
练习用SELECT查询语句,设置查询条件,实现单表查询。
练习使用SELECT语句从多个表中查询数据,表的内连接、左外连接、右外连接的使用以及设置连接条件,理解连接条件和查询条件的在目的和功能上的区别。
结构化查询语言、表的连接、关系运算、分组查询
1、restoredatabasestudfromdisk='
2、selectsname"
姓名"
(datepart(year,getdate())-datepart(year,birthd))"
年龄"
fromstudent
where(datepart(year,getdate())-datepart(year,birthd))between30and32;
select*
fromteacher
wheretitle='
副教授'
;
selectsid"
学号"
sname"
semail"
邮件地址"
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、实验结果
1)充分理解了聚集函数和groupby的用法
2)对自连接的理解更加深刻
3、改进意见
数据太少,若单条录入有显得繁杂,希望以后有现成的bak备份文件。
实验四
数据库建模
(1)使用PDM,以图形化界面方式创建表及确定各表之间的关系,在实验报告中给出模型图;
(2)通过“生成数据库”功能生成创建数据库的脚本,在实验报告中给出脚本内容;
本实验要求学生学习数据库建模工具PowerDesigner的使用方法,掌握最基本的使用方法。
实验步骤中已详细介绍。
笔记本一台CPUcorei7-3610QM内存8GB系统windows8.164位专业版powerdesigner版本:
1.通过生成PhysicalDataModel(PDM)以图形化界面创建表及确定各表之间的关系。
(1)打开了PD以后,选择New,并在Modeltype里面选择PhysicalDataModel,同时选择可使用的DBMS,如DB2或MySQL4.0,然后点击确定,如图1所示。
图1
(2)从Palette工具面板中单击创建Table的工具图标,并在图表窗口中点击一下便可产生一个新的Table(默认名称为Table_1,可修改该名称),如图2所示:
图2
(3)选中该表,右击选择”Properties”对该表进行编辑(修改名称、增加列等)如图3所示:
图3
(4)选择”Columns”标签,如图3中的红色矩形所示。
便可以给student这个表添加列了。
在添中列的时候应该指明列的类型,并指是否允许为空,是否为主键等各种属性,如图4所示:
图4
(5)按生成student表同样的办法生成department表,只是具体属性不一样,如图5所示:
图5
(6)学生表中的学生所在系是department表中的一个外键,这时我们需要建立一个表的引用。
如图6所示:
图6
(7)这时候可以发现student表中多了一个dno字段,并且有<
fk>
这种外键标识
,这样表也就建好了。
2.根据第一步生成的表导出数据库的脚本
要产生数据库生成脚本,进行如下操作:
(1)选择Database→GenerateDatabase,打开“ParametersforSybaseSQLAnywhere”窗口(图7)。
(2)在Filename框中接受缺省的文件名crebas.sql,在Directory框中接受缺省的目录名。
(3)接受其它缺省的生成参数和选项。
图7
(4)单击“Generatescript”按钮,打开如图8所示的确认框。
图8
(5)单击“是(Y)”按钮。
(6)打开数据库生成脚本文件,并浏览这个文件。
这个脚本文件就是我们通过图形化的界面创建的表及其之间的关系的一个SQL描述,我们可以在应用程序中或者相应的DBMS导入这个脚本就可以完成数据库的创建了(在例子中的这个脚本只有表相关的创建语句)。
3.利用PD的逆向工程生成PDM并进行修改
逆向工程的实验我们以从数据库生成脚本生成PDM为例。
从数据库生成脚本生成PDM,按下列步骤进行:
(1)选择File→ReverseEngineering→Database”窗口。
新窗口如图9所示:
图9
(2)从“Databasename”下拉列表框中选择数据库管理系统。
如图9的红圈所示,并点击确定。
(3)单击“Usingascriptfile”单选按钮,并添加一个SQL脚本文件,如图10所示:
图10
(4)单击“OK”,新的PDM出现在窗口中,如图11所示:
这时可按照步骤1介绍的方法进行图形化界面的修改,并生成新的SQL脚本文件,具体在这里就不重复介绍了。
1、
2、/*==============================================================*/
/*DBMSname:
SybaseSQLAnywhere11*/
/*Createdon:
2014/5/1021:
17:
11*/
/*==============================================================*/
ifexists(select1fromsys.sysforeignkeywhererole='
FK_STUDENT_REFERENCE_DEPARTME'
)then
altertablestudent
deleteforeignkeyFK_STUDENT_REFERENCE_DEPARTME
endif;
ifexists(
select1fromsys.systable
wheretable_name='
department'
andtable_typein('
BASE'
'
GBLTEMP'
droptabledepartment
student'
droptablestudent
/*Table:
department*/
createtabledepartment
(
dnovarchar(4)notnull,
dnamevarchar(10)null,
constraintPK_DEPARTMENTprimarykeyclustered(dno)
student*/
createtablestudent
snovarchar(4)notnull,
dnovarchar(4)null,
snamevarchar(10)null,
sdeptvarchar(4)null,
constraintPK_STUDENTprimarykeyclustered(sno)
altertablestudent
addconstraintFK_STUDENT_REFERENCE_DEPARTMEforeignkey(dno)
referencesdepartment(dno)
onupdaterestrict
ondeleterestrict;
3、
试验成功,成功通过生成PhysicalDataModel(PDM)以图形化界面创建表及确定各表之间的关系,并表导出数据库的脚本,之后又成功利用PD的逆向工程生成PDM并进行修改。
1)深刻了对数据库结构的理解,更有利于数据库科目的学习。
2)在图形化界面下能更好的理解和设计数据库。
实验步骤说明太过傻瓜化,完全没有体现的数据库的设计。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子科技大学 数据库 原理 应用 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)