《数据库原理及应用》实验指导书

本文由用户“oocean”分享发布 更新时间:2023-05-09 21:19:19 举报文档

以下为《《数据库原理及应用》实验指导书》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

说 明

本实验指导书是根据教材------《面向21世纪高等院校计算机教材系列实验大纲编写而成。

在8个实验执行之前,须预先做前期准备阶段的2个实验:

第一个前期实验为数据库系统设计,要求写出如下三个设计报告:

1.系统需求分析报告;

2.数据库信息要求报告;

3.数据库的操作和应用要求报告。

第二个前期实验为关系数据模型的设计,

系统概念模型设计,要求使用E-R图表示系统中的实体情况,实体与实体间的联系情况。并使用数据字典对E-R图的实体和联系进行详细说明。

2.系统的关系数据模型设计,要求详细说明系统需要的基本表及属性、视图和索引,对基本表的主码、外码及被参照表进行说明。并对表中数据的约束条件进行详细说明。

实验一 SQL Server集成环境、数据库定义

一.实验目的

1.了解SQL Server的组成、主要管理工具,初步认识和了解SQL Server集成开发环境

2.了解SQL Server 数据库的文件组成

3.学会创建数据库的两种方法

4.掌握数据库备份的方法

二.实验内容

1、自行学习教材《数据库原理及应用(第2版)》第7章的7.1,了解SQL Server的组成、主要管理工具等相关知识。

2、自行学习教材第7章的7.2.1,了解SQL Server 数据库的文件组成的相关知识。

3、按照7.2.2中的方法,使用SQL Server Management Studio创建一个数据库,并设置和查看该数据库的属性。

4、参考教材P72例3-2,使用语句创建数据库,要求是:在D盘根目录下,创建 library 数据库,数据库各属性值(如初始大小、最大值等)可自行设置,写出创建数据库的代码。

5、数据库的分离和附加 (假设已经创建了一个数据库dlqx)

(1)分离:鼠标右键单击所要分离的数据库名,选择“任务”中的“分离”



弹出如下对话框,点“删除连接”,“更新统计信息”,使之打钩,单击“确定”按钮,完成数据库分离。



(2)复制数据库文件

按照该数据库数据文件的存储路径,找到所属打开文件夹,

可以看到两个数据库文件: dlqx .mdf 和 dlqx_log.ldf

复制这两个文件到你的 U盘中。

(3)附加

打开SQL Server ,连接后,开始数据库附加工作。单击数据库对象,选择“附加”,弹出对话框后,单击“添加”,通过文件浏览方式,选择你U盘中的数据库文件(dlqx.mdf),建议:先将U盘中文件拷贝到硬盘中,这样操作速度会快一些,只是记住上机结束时将数据库重新分离,再将新的数据库文件拷贝到U盘即可。



“确定”后,上次分离的数据库就附加到SQL Server 中了。

三.实验报告要求

所有代码不允许只以截图方式呈现,实验结果可以截图,需要有一定的文字说明。

实验二 数据表的建立与维护

一.实验目的

1.掌握数据库表的基础知识。

2.掌握创建、修改、使用、删除表不同方法,其中创建表要求会用Create Table语句建表。

二.实验内容

1、在实验一创建的数据库library中,建立以下数据表:(表结构+表数据)

要求:建表使用Create Table 语句,数据输入建议使用Insert 语句。

读者类型表 Reader_Type 结构

列名

数据类型

可否为空

备注



Rtype

Char(8)

否

读者类型 主码



Rnum

int

否

可借书数量





Reader_Typ

Rtype

Rnum



学生

10



教师

20





读者信息表Readers结构

列名

数据类型

可否为空

备注



RID

Char(10)

否

读者编号 主码



Rname

Char(10)

否

读者姓名



Rtype

Char(8)

否

读者类型 外码



Gender

Char (2)

否

性别,取值为男或女



Tel

Char(11)

可

手机号



Dept

Char(20)

可

所属院系



Borrowed

int

否

已借数量 默认值为0





Readers

RID

Rname

Rtype

Gender

Tel

Dept

Borrowed



S1039

赵某某

学生

男

***

***

0



S2213

王某某

学生

女

***

计***

2



S1905

李某某

学生

男

***

计***

2



S4077

蒋萧某某

学生

男

***

***

1



T0099

陆某某

教师

女

***

计***

1



T0348

张某某

教师

男

***

数理部

0



T0252

张某某

教师

女

***

***

0





图书类型表 Books_Type 结构

列名

数据类型

可否为空

备注



BTID

Char(4)

否

类型编号 主码



BTname

Char(20)

否

类型名称





BTID

BTname



S01

社会科学类



W05

外文期刊



N01

小说



N02

纪实



J01

计算机丛书



Books_Type

图书基本信息表 Books 结构

列名

数据类型

可否为空

备注



BID

Char(10)

否

图书编号 主码



ISBN

Char(13)

否

ISBN号 唯一约束



BTID

Char(4)

否

类型 外码



Bname

Char(30)

否

书名



Author

Char(20)

可

作者



Publisher

Char(50)

可

出版社



price

float

否

价格



status

Char(6)

否

状态 默认“可借”,取值(“可借”,“不可借”)





Books

BID

ISBN

BTID

Bname

Author

Publisher

price

status



J02234

***12218

J01

离散数学

蔡某某

西安电子科技大学出版社



32.0

不可借



J23900

***00707

J01

Oracle数据库教程

赵某某

清华大学出版社

49.0

可借



J01080

***65256

J01

数据库原理及应用(第2版)

姜某某

清华大学出版社

45.0

可借



J22215

***39922

J01

离散数学学习指导与习题解析

屈某某

高等教育出版社

40.2

不可借



N87888

***42929

N01

挪威的森林

村上春树

上海译文出版社

23.0

可借



N86531

***90518

N01

猫武士

艾琳·亨特

中国少年儿童出版社

20.0

可借



N90001

***31657

N02

中国八零后调查

段某某

重庆出版社

25.0

可借



N90002

***00919

N02

血色黄昏

老鬼

新星出版社

39.0

可借



Z10005

***63279

S01

在陌生人世界的思考

刘伟

清华大学出版社

58.0

不可借



Z10020

***78067

S01

千年文化的回想

黄某某

社会科学文献出版社

69.0

可借



Z10047

***53241

S01

偏爱学问

俞可平

上海交通大学出版社

38.0

不可借



Z10084

***52798

S01

字里行间

余斌

南京大学出版社

20.0

不可借



J05491

***33503

J01

计算机操作系统(第四版)

汤某某

西安电子科技大学出版社

39.0

不可借





图书借阅表 Borrow 结构

列名

数据类型

可否为空

备注



RID

Char(10)

否

读者编号 主码 外码



BID

Char(10)

否

图书编号 主码 外码



Borrow_date

datetime

否

借阅日期 主码



Due_date

datetime

否

到期日期 晚于 借阅日期



Return_date

datetime

可

实际归还日期



status

Char(4)

否

状态 默认“借出”,取值(“借出”,“已还”)





Borrow

RID

BID

Borrow_date

Due_date

Return_date

status



S2213

J05491

2017-1-7

2017-3-7

2017-3-1

已还



S2213

J02234

2018-8-30

2018-10-30

NULL

借出



S2213

J22215

2018-8-30

2018-10-30

NULL

借出



T0099

J05491

2018-9-20

2018-11-20

NULL

借出



S4077

Z10005

2018-2-1

2018-4-1

2018-4-1

已还



S4077

Z10005

2018-9-30

2018-11-30

NULL

借出



T0348

J05491

2018-1-5

2018-3-5

2018-2-22

已还



T0348

Z10020

2018-1-5

2018-3-5

2018-2-22

已还



S1905

Z10047

2018-7-29

2018-9-29

NULL

借出



S1905

Z10084

2018-7-29

2018-9-29

NULL

借出



T0252

Z10084

2017-12-12

2018-2-12

2018-1-2

已还



T0252

Z10047

2017-12-12

2018-2-12

2018-3-2

已还



T0252

Z10047

2018-4-4

2018-6-4

2018-4-30

已还



S2213

J01080

2018-7-7

2018-9-7

2018-9-10

已还





2、请先建立电力抢修工程数据库dlqx,在此数据库中,三张表的属性和含义、表数据如下:

(1)抢修工程计划表:

salvaging(prj_num, prj_name, start_date, end_date, Prj_status)

其中prj_num为主码

各属性含义如下:

工程项目编号(prj_num)

工程项目名称(prj_name)

开始日期(start_date)

结束日期(end_date)

是否按期完成(Prj_status)

(2)配电物资库存记录表:

stock(mat_num, mat_name, speci, warehouse, amount, unit, total)

其中mat_num为主码。

各属性含义如下:

物资编号(mat_num)

物资名称(mat_name)

规格(speci)

仓库名称(warehouse)

数量(amount)

单价(unit)

总金额(total)

(3)配电物资领料出库表:

out_stock(prj_num, mat_num, amount, get_date, department)

主码为(prj_num, mat_num)

各属性含义如下:

工程项目编号(prj_num)

物资编号(mat_num)

领取数量(amount)

领料日期(get_date)

领料部门(department)







三张表的建表语句,已经部分写好,请填写缺少的内容,数据需要同学自行输入(用语句或直接在环境中完成均可)

CREATE TABLE salvaging

( prj_num char(8) , /* 列级完整性约束,prj_num是主码*/

prj_name varchar(50) ,

start_date datetime ,

end_date datetime ,

prj_status ,

check( end_date>=start_date ) /* 表级完整性约束*/

);

CREATE TABLE stock

( mat_num char(8) PRIMARY KEY,

mat_name varchar(50) NOT NULL,

speci varchar(20) NOT NULL,

warehouse varchar(50) ,

amount int , /* 列级完整性约束,要求数量大于0*/

unit decimal(18, 2) ,

total AS ([amount] * [unit]),

/* as为自动计算字段,不能输入值,表示:总金额=数量*单价*/

);

CREATE TABLE out_stock

( prj_num char(8) ,

mat_num char(8) ,

amount int ,

get_date datetime ,

department varchar(100) ,

, /* 主码由两个属性构成,必须作为表级完整性约束*/

FOREIGN KEY (prj_num) REFERENCES salvaging(prj_num), /* 第一个外码*/

, /* 第二个外码*/

);

请将你完成的2个数据库做好备份(方法见实验一),以备下次上机时使用。建议建表、输入数据均使用SQL语句,以防数据文件损坏或数据库环境不兼容造成的数据库无法附加的情况出现。

三.实验报告要求

所有代码不允许只以截图方式呈现,实验结果可以截图,需要有一定的文字说明。

实验三 简单查询

一.实验目的

1.了解查询的概念和方法

2.掌握在SQL Server Management Studio中执行SELECT操作的方法

3.掌握SELECT语句在单表查询中的应用

二.实验内容

1.基于实验二中已建立的数据库library,请用SELECT语句实现下列查询,列出查询结果

查询单价在20-60之间的可借阅的图书书名和编号

查询查询目前借了书的男同学的姓名

在Borrow表中查询每位借书者所借过图书的数目(包括借过已还的和正在借阅的)

在Books表中查询每类图书的最高单价、最低单价

查询或是ISBN号尾号为7的、或是清华大学出版社出版的图书信息

2.基于实验二中已创建好的数据库dlqx,请用SELECT语句实现下列查询,列出查询结果

(1)查询所有工程的抢修天数

(2)查询供电局1#仓库中单价小于80的物资编号和名称

(3)查询物资名称中第三、四个字为“绝缘”的物资信息,结果按编号的降序排列

(4)查询查询使用了两种及两种以上物资的抢修工程项目号

(5)查询每个仓库中存放的物资种类数,结果列为仓库名称、物资种类数目

三.实验要求

将查询需求用SQL语言表示;写出查询语句后,请在数据库中新建查询验证你的查询结果是否正确,如果结果不正确,要进行修改,直到正确为止。如有需要添加和修改的数据,请自行在数据表中操作。

四.实验报告要求

所有代码不允许只以截图方式呈现,实验结果可以截图,需要有一定的文字说明。

实验四 连接查询

一.实验目的

1.掌握SELECT语句在多表查询中的应用

2.初步掌握SELECT语句在复杂查询中的应用

二.实验内容

1.基于数据库library,请用SELECT语句实现下列查询,列出查询结果

查询比蔡某某所著“离散数学”的ISBN号小、但单价却比它高的图书信息

查询在册的“小说”类的图书都是哪些出版社出版的

查询姓“张”的男老师的借书记录,列出老师姓名、借阅的图书名、借阅日期

查询超期归还的借阅记录,列出读者编号和姓名、他所借图书的书名

查询属于"计算机丛书"的图书的所有被借记录,列出图书名、借阅者姓名、图书借阅状态(即是借出还是已还)

2.基于数据库dlqx,请用SELECT语句实现下列查询,列出查询结果

(1)查询同时使用了物资编号为m001和m002的抢修工程的工程号(请用至少两个不同的SELECT语句完成)

(2)查询工程3部曾经领用过哪些物资,列出编号和名称

(3)查询被领用次数最多的物资的编号、名称及领用次数

(4)查询未按期完工的工程是哪个或哪几个工程部负责的

(5)查询2011年1月到3月期间,按期完成的每个抢修工程领用了几种物资

三.实验要求

将查询需求用SQL语言表示;写出查询语句后,请在数据库中新建查询验证你的查询结果是否正确,如果结果不正确,要进行修改,直到正确为止。如有需要添加和修改的数据,请自行在数据表中操作。

四.实验报告要求

所有代码不允许只以截图方式呈现,实验结果可以截图,需要有一定的文字说明。

实验五 综合查询

一.实验目的

1. 熟练掌握SELECT语句在多表查询中的应用

2. 掌握SELECT语句在复杂和综合查询中的应用

二.实验内容

1.基于数据库library,请用SELECT语句实现下列查询,列出查询结果

(1)查询从未被借阅过的图书编号和书名

(2)某读者遗失了他的借书证,他提供了手机号“***”,希望查询他是否有未归还的图书,请将他所需要的信息列出:姓名、未还图书名、归还时间

(3)统计每位女性读者的借书次数(包括已归还和未归还的图书、一个读者借阅一本书,为一次借书)

(4)统计清华大学出版社的图书在2018年被借出过多少次

(5)查询从未借过“计算机丛书”的读者编号、姓 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 表,对应属性为职工号,编号为外码,其被参照表为社会团体表,对应属性为编号。

建立数据库和以上三个表,设置主键、外键和必要的约束;输入一些数据备用;

2. 用SQL语句表达下列操作:

(1) 查找姓李的男性职工的姓名和手机号,查询结果按照年龄降序排列,年龄相同的按职工号升序排列

(2) 查找在2017年参加书法社或篮球队的职工姓名

(3) 查找50岁以上、没有参加任何团体的职工工号和姓名

(4) 查找篮球队和话剧社的负责人的姓名

(5) 求社会团体的参加人数超过5人的社团名称

(6) 建立视图:参加了两个或两个以上社团的职工工号和姓名

(7) 加入一个新社团:舞蹈社、编号W56,由工号是1234的职工负责,其它信息暂无

(8) 篮球队获得了奖项,请将所有篮球队队员的“获奖情况”修改为“市级冠军”

(9) 删除职工号为007的职工的一切信息(假定他不是任何一个社团的负责人)

(10) 删除职工号为007的职工的一切信息;假定他是篮球队的负责人,但是篮球队并不解散,请问,这个操作如何进行?

三.实验报告要求

所有代码不允许只以截图方式呈现,实验结果可以截图,需要有一定的文字说明。

[文章尾部最后500字内容到此结束,中间部分内容请查看底下的图片预览]

以上为《《数据库原理及应用》实验指导书》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览