电子科技大学数据库原理及应用实验报告.docx

上传人:b****1 文档编号:12791416 上传时间:2023-04-22 格式:DOCX 页数:23 大小:434KB
下载 相关 举报
电子科技大学数据库原理及应用实验报告.docx_第1页
第1页 / 共23页
电子科技大学数据库原理及应用实验报告.docx_第2页
第2页 / 共23页
电子科技大学数据库原理及应用实验报告.docx_第3页
第3页 / 共23页
电子科技大学数据库原理及应用实验报告.docx_第4页
第4页 / 共23页
电子科技大学数据库原理及应用实验报告.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

电子科技大学数据库原理及应用实验报告.docx

《电子科技大学数据库原理及应用实验报告.docx》由会员分享,可在线阅读,更多相关《电子科技大学数据库原理及应用实验报告.docx(23页珍藏版)》请在冰豆网上搜索。

电子科技大学数据库原理及应用实验报告.docx

电子科技大学数据库原理及应用实验报告

计算机专业类课程

实验报告

课程名称:

数据库原理及应用

学  院:

计算机科学与工程

专  业:

计算机科学与技术

学生姓名:

赵希

学  号:

20

指导教师:

日  期:

   14 年  5月  9日

电子科技大学

实验报告

实验一

1、实验名称:

创建数据库

2、实验学时:

4

3、实验内容和目的:

实验内容:

创建数据库:

manage

该数据库包括四个表:

建议:

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

“系别代码表“表名:

dep

“教师表”表名:

teacher

“学生表”表名:

student

“课程表”表名:

course

“选课表”表名:

sc

为每个表准备大约10记录,使用Insert语句将这些数据插入到相应表中

数据录入完成后,将数据库备份到磁盘上,在以后的的试验中备用。

实验目的:

本实验要求学生掌握创建数据库的方法及相关操作

4、实验原理:

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

5、实验器材

6、笔记本一台CPUcorei7-3610QM内存8GB系统64位专业版dbms:

Sqlserver2012

7、实验步骤:

(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:

\'WITHINIT;

(4)恢复数据库

RESTOREDATABASEstudFROMDISK='d:

\'WITHREPLACE;

------------------------------------------------------

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

(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\'withinit;

(4)restoredatabasestudfromdisk='d:

\database\'withreplace;

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

1、实验结论

2、心得体会

1)Sql语言用起来十分方便。

2)积累了宝贵操作经验。

3、改进建议

这几个实验可以合并成一个实验,可以减少实验报告的量。

电子科技大学

实验报告

实验二

1、实验名称:

数据库的完整性

2、实验学时:

4

3、实验内容和目的:

实验内容:

设置约束条件

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

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

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

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

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

实验目的:

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

4、实验原理:

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

6、实验器材

7、笔记本一台CPUcorei7-3610QM内存8GB系统64位专业版dbms:

Sqlserver2012

8、实验步骤:

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

2.执行SQL命令完成实验内容

3.备份数据库

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

1)restoredatabasestudfromdisk='d:

\database\'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\'withreplace;

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

1、实验结论

2、心得体会

积累了操作经验。

对数据库有了更深刻的理解。

3、改进建议

这几个实验可以合并成一个实验,可以减少实验报告的次数。

 

电子科技大学

实验报告

实验三

1、实验名称:

数据查询

2、实验学时:

4

3、实验内容和目的:

4、1、实验内容

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

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

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

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

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

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

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

2、实验目的

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

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

5、实验原理:

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

6、实验器材

7、笔记本一台CPUcorei7-3610QM内存8GB系统64位专业版dbms:

Sqlserver2012

8、实验步骤:

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

2.执行SQL命令完成实验内容

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

1、restoredatabasestudfromdisk='d:

\database\'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'张%';

select"课程号",cname"课程名称",count(*)"选课人数",max(score)"最高分",min(score)"最低分",avg(score)"平均分"

fromsc,course

where=

groupbycname,;

select

fromscsc1,scsc2

where=and=1and=2;

selectsname

fromstudent,scsc1,scsc2

where=and=and=1and=2;

selectsname

fromstudent,scsc1,scsc2,scsc3

where=and=and=and=1and=2and=32)

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

1、实验结果

2、心得体会

1)充分理解了聚集函数和groupby的用法

2)对自连接的理解更加深刻

3、改进意见

数据太少,若单条录入有显得繁杂,希望以后有现成的bak备份文件。

 

电子科技大学

实验报告

实验四

1、实验名称:

数据库建模

2、实验学时:

4

3、实验内容和目的:

1、实验内容

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

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

2、实验目的

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

4、实验原理:

5、实验步骤中已详细介绍。

6、实验器材

7、笔记本一台CPUcorei7-3610QM内存8GB系统64位专业版powerdesigner版本:

8、实验步骤:

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

(1)打开了PD以后,选择New,并在Modeltype里面选择PhysicalDataModel,同时选择可使用的DBMS,如DB2或MySQL,然后点击确定,如图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字段,并且有这种外键标识 ,这样表也就建好了。

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

要产生数据库生成脚本,进行如下操作:

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

(2)在Filename框中接受缺省的文件名,在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脚本文件,具体在这里就不重复介绍了。

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

1、

2、/*==============================================================*/

/*DBMSname:

SybaseSQLAnywhere11*/

/*Createdon:

2014/5/1021:

17:

11*/

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

 

ifexists(select1fromwhererole='FK_STUDENT_REFERENCE_DEPARTME')then

altertablestudent

deleteforeignkeyFK_STUDENT_REFERENCE_DEPARTME

endif;

ifexists(

select1from

wheretable_name='department'

andtable_typein('BASE','GBLTEMP')

)then

droptabledepartment

endif;

ifexists(

select1from

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

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、

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

1、实验结论

试验成功,成功通过生成PhysicalDataModel(PDM)以图形化界面创建表及确定各表之间的关系,并表导出数据库的脚本,之后又成功利用PD的逆向工程生成PDM并进行修改。

2、心得体会

1)深刻了对数据库结构的理解,更有利于数据库科目的学习。

2)在图形化界面下能更好的理解和设计数据库。

3、改进建议

实验步骤说明太过傻瓜化,完全没有体现的数据库的设计。

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

当前位置:首页 > 医药卫生 > 基础医学

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

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