数据库实验报告文档格式.docx

上传人:b****3 文档编号:16717079 上传时间:2022-11-25 格式:DOCX 页数:35 大小:1.13MB
下载 相关 举报
数据库实验报告文档格式.docx_第1页
第1页 / 共35页
数据库实验报告文档格式.docx_第2页
第2页 / 共35页
数据库实验报告文档格式.docx_第3页
第3页 / 共35页
数据库实验报告文档格式.docx_第4页
第4页 / 共35页
数据库实验报告文档格式.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

数据库实验报告文档格式.docx

《数据库实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《数据库实验报告文档格式.docx(35页珍藏版)》请在冰豆网上搜索。

数据库实验报告文档格式.docx

该数据库包括四个表:

建议:

在定义表中字段时,尽量使用意义的英文单词。

“系别代码表“表名:

dep

“教师表”表名:

teacher

“学生表”表名:

student

“课程表”表名:

course

“选课表”表名:

sc

“系别代码表“ 表名:

其结构如下:

(该表的主键为“系代码”)

字段名称

字段类型

字段大小/格式

是否可为空

约束条件

系代码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;

为每个表准备大约10记录,使用Insert语句将这些数据插入到相应表中,数据录入完成后,将数据库备份到磁盘上,在以后的的试验中备用。

 

5、实验原理:

使用数据库管理系统DB、DDL创建数据库及数据库对象。

源代码如下:

createdatabaseSTUD;

createtabledep(depidvarchar(8)notnull,depnamevarchar(20)notnull,primarykey(depid));

createtableteacher(tidvarchar(8)notnull,tnamevarchar(8)notnull,

titlevarchar(8)notnull,depidvarchar(8),primarykey(tid));

createtablestudent(sidvarchar(11)notnullprimarykey,snamevarchar(8)notnull,depidvarchar(8),

sexvarchar

(2)notnull,birthdaydatetime,semailvarchar(20),homeaddressvarchar(40));

createtablecourse(cidvarchar(8)notnullprimarykey,cnamevarchar(30)notnull,creditsdecimal(3,1)notnull);

createtablesc(sidvarchar(11)notnull,cidvarchar(8)notnull,tidvarchar(8)notnull,scoredecimal(3,1),primarykey(sid,cid));

backupdatabaseSTUDtodisk='

withinit;

恢复数据库:

restoredatabasestudfromdisk='

withreplace

6、实验器材(设备、元器件等)

联想m490

windows8.1

SQLSEVER2012

7、实验步骤:

1.创建数据库:

STUD  

2.创建表:

.

“教师表”表名:

“选课表”表名:

3.备份数据库:

8、实验数据及结果分析:

源码:

createtablecourse(cidvarchar(8)notnullprimarykey,cnamevarchar(30)notnull,

creditsdecimal(3,1)notnull);

createtablesc(sidvarchar(11)notnull,cidvarchar(8)notnull,tidvarchar(8)notnull,

scoredecimal(3,1),primarykey(sid,cid));

截图:

9、实验结论、心得体会和改进建议:

1、结论:

实验中所用语句都符合规范,并且成功创建了数据库,5张表,结果见上。

2、心得体会:

通过实际的操作,将课程里学到的拿来东西运用,对课程的理解更加深入,掌握了数据库的创建,表的创建,以及数据的插入和查找这些基本数据库操作,收货很大,为以后的学习更进一步的课程和做技术奠定了基础。

实验二

一、实验名称:

数据库的完整性

二、实验学时:

三、实验目的:

通过设置表的检查约束、外键约束体会数据库完整性的含义,约束条件下数据修改操作的限制,以及实现修改操作的技巧。

四、实验内容:

(1)设置约束条件

●设置教师表,学生表中的院系字段(depid)的外键约束

●设置选课表的三个外键约束(学号,课程号,教师号)

●设置选课表中成绩字段的取值范围是0到100

●设置学生表中性别字段的取值为 “男”或“女”

●设置学生表电子邮件字段的取值必须包含@符号

(2)使用“Insert”语句向数据库添加数据,数据可自拟,注意顺序。

五、实验原理:

数据库库的完整性、约束条件、结构化查询语言.

六、实验器材(设备、元器件)

七、实验步骤:

即按实验内容做的。

八、实验数据及结果分析:

altertableteacheraddconstraintteach_1foreignkey(depid)referencesdep(depid);

altertablestudentaddconstraintstud_1foreignkey(depid)referencesdep(depid);

altertablescaddconstraintsc_1foreignkey(sid)referencesstudent(sid);

altertablescaddconstraintsc_2foreignkey(cid)referencescourse(cid);

altertablescaddconstraintsc_3foreignkey(tid)referencesteacher(tid);

altertablescaddconstraintsc_4check(score>

=0andscore<

=100);

altertablestudentaddconstraintstud_2check(sexin('

男'

'

女'

));

altertablestudentaddconstraintstud_3check(semaillike'

_%@_%'

);

注:

这个报错应该是我第一次运行已成功,然后改了一点标识名称又点了一次执行,结果就报错了,但约束应该第一是执行成功了的,如图:

选课表的三个外键约束:

九、实验结论、心得体会和改进建议:

通过实际的操作,将课程里学到的拿来东西运用,对课程的理解更加深入,掌握了数据库的参照完整性约束,在已经建立好的数据库中定义外键,约束条件下数据修改操作的限制,以及实现修改操作的技巧,此次试验收获很大,,可以说是掌握了数据库的一个至关重要的技术,那就是参照完整性,为以后的学习更进一步的课程和做技术奠定了基础。

在插入数据时,由于用了自己的学号,忘了设置sname时是11位,所以发生以下错误:

而后删除2位后没问题,但在做修改学号执行updatestudentsetsid=201206010101wheresid=1233时还是溢出,不知为何。

建议插入的数据代码统一给出,方便实验结果的判定,减少学生和老师的工作量。

实验三

数据查询

3、实验目的:

练习用SELECT查询语句,设置查询条件,实现单表查询。

练习使用SELECT语句从多个表中查询数据,表的内连接、左外连接、右外连接的使用以及设置连接条件,理解连接条件和查询条件的在目的和功能上的区别。

(1)查询年龄在20—22之间的学生姓名(通过出生日期和当前日期计算年龄)year(getdate())-year(birthd)

(2)查询所有教授的信息

(3)查询姓“张”的学生的学号、姓名、邮件地址

(4)求每门课程的选课人数、最高分、最低分、平均分,要求在查询结果中显示课程号和课程名;

(5)查询既选修了1号课程,又选修了2号课程的学生学号

(6)查询既选修了1号课程,又选修了2号课程的学生姓名

(7)查询选修了全部课程的学生姓名

结构化查询语言、表的连接、关系运算、分组查询

1.selectsnamefromstudentwhereyear(getdate())-year(birthday)between20and22

2.select*fromteacherwheretitle='

教授'

3.selectsid,sname,birthday,homeaddress,semailfromstudentwheresnamelike'

张%'

;

selectsid,sname,birthday,homeaddress,semailfromstudentwheresnamelike'

w%'

4.selectcname,sc.cid,count(*)as'

选课人数'

max(score)as'

最高分'

min(score)as'

最低分'

avg(score)as

'

平均成绩'

fromsc,coursewheresc.cid=course.cidgroupbycname,sc.cid;

5..selectstudent.sidfromstudent,scwherestudent.sid=sc.sidandcid='

6001'

andsc.sidin(selectsc.sidfromscwherecid='

6002'

selectstudent.snamefromstudent,scwherestudent.sid=sc.sidandcid='

Select*fromscajoinscbona.sid=b.sidwherea.cid='

andb.cid='

6、实验器材(设备、元器件)

联想pc

win8.1,

SQLSEVER2012EXPRESS.

恢复数据库,将数据库备份stud恢复到DB2中

执行SQL命令完成实验内容

5.selectstudent.sidfromstudent,scwherestudent.sid=sc.sidandcid='

1、实验结论:

本次完成了实验的目的,基本将书本的第三章查询,无论是连接查询,还是组合查询等,都做到了更深的认识和融会贯通。

可以看出,本次实验全部结果与预期的相符合,实验中所用语句都符合规范且都正确,操作全部成功,证明实验正确。

2.、心得体会:

本次实验练习使用SELECT查询语句,查询种类多样,从多种方面进行查询,在实际的操作中,我深刻体会到内连接,左外连接,右外连接以及多重查找的具体步骤。

练习使用聚集函数count(),AVG()等在SQL命令中实现统计功能,使用了GROUPBY实现分组查询。

经过对这几个函数的反复使用,深刻的记住了其用法和格式,巩固了在书本上学得的知识,将其与课本知识结合起来,使我更加深刻理解了SELECT语句的强大,理解了连接条件和查询条件的区别。

当然,在第三个语句要显示课程号与课程名,没有想起在select和groupby可以直接添加,所以纠结了一会儿。

不过本次实验收获很大。

3、改进建议:

也是由于实验数据指导没有完全给出,导致在查找同时选择课程1和2的人时,第一次没有结果,原来是自己插入时根本就没有实现那样。

导致浪费了时间。

还有第三个个人觉得,内容偏少,不全面。

实验四

数据库建模

本实验要求学生学习数据库建模工具PowerDesigner的使用方法,掌握最基本的使用方法。

本实验将重点练习。

1.使用PDM,以图形化界面方式创建表及确定各表之间的关系,在实验报告中给出模型图;

2.通过“生成数据库”功能生成创建数据库的脚本,在实验报告中给出脚本内容;

数据库的基本知识与数据库建模工具PowerDesign的基本操作。

联想pc,win8.1,SQLSEVER2012EXPRESS.

七.实验步骤:

1.通过生成PhysicalDataModel(PDM)以图形化界面创建表及确定各表之间的关系。

(1)打开了PD以后,选择New,并在Modeltype里面选择PhysicalDataModel,同时选择可使用的DBMS,由于这个版本没有SQLsever2012,所以选了2008版。

然后点击确定,如图1所示。

图1

(2)从Palette工具面板中单击创建Table的工具图标,如图2所示:

图2

(3)选中该表,右击选择”Properties”对该表进行编辑(修改名称、增加列等)如图3所示:

图3

(4)选择”Columns”标签,给student这个表添加列。

在添中列的时候应该指明列的类型,并指是否允许为空,是否为主键等各种属性,如图4所示:

图4

(5)按生成student表同样的办法生成department表,teacher,等表,只是具体属性不一样,如图5所示:

图5

(6)学生表中的学生所在系是department表中的一个外键,这时我们需要建立一个表的引用。

如图6所示:

图6

2.根据第一步生成的表导出数据库的脚本

(1)选择Database→GenerateDatabase,打开“ParametersforSybaseSQLAnywhere”窗口(图7)。

(2)在Filename框中接受缺省的文件名crebas.sql,在Directory框中接受缺省的目录名。

(3)接受其它缺省的生成参数和选项。

3.利用PD的逆向工程生成PDM并进行修改

逆向工程的实验我们以从数据库生成脚本生成PDM为例。

从数据库生成脚本生成PDM,按下列步骤进行:

(1)选择File→ReverseEngineering→Database”窗口。

新窗口如图9所示:

图9

(2)单击“Usingascriptfile”单选按钮,并添加一个SQL脚本文件。

(3)单击“OK”,新的PDM出现在窗口中,如图11所示:

八.实验数据及结果分析:

1.模型图:

根据实验一与二逆向工程的模型图为:

2.数据库的脚本:

/*==============================================================*/

/*DBMSname:

MicrosoftSQLServer2008*/

/*Createdon:

2014/6/40:

12:

56*/

/*============================

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 自考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1