《数据库原理与应用》实验报告书修改版(2)答案 下载本文

《数据库原理与应用》

实验报告书

(2011—2012学年第二学期)

班 级: 学 号: 姓 名: 教 师: 郑先容

医药信息工程学院·数据决策

2012年2月

目 录

实验二 数据库的附加/分离、备份/还原与导入/导出 ..............................................................1 实验四 简单查询 .........................................................................................................................4 实验六 带函数查询和综合查询 .................................................................................................8 实验八 数据库视图与索引操作 ............................................................................................... 11 实验十 数据完整性实验 ...........................................................................................................14 实验十二 Power Designer中概念模型与物理模型的设计.........................................................20 实验十四 触发器的使用 .........................................................................................................29 实验十六 用visual studio连接数据库 .........................................................................................32 第十一章 并发控制作业 ...............................................................................................................33

《数据库原理与应用》实验报告

实验二 数据库的附加/分离、备份/还原与导入/导出

一、实验目的

1、理解备份的基本概念,掌握各种备份数据库的方法。 2、掌握如何从备份中还原数据库。

3、掌握数据库中各种数据的导入\\导出。

4、掌握数据库的附加与分离,理解数据库的附加与分离的作用。

二、实验内容

以下操作请参考实验指导或者视频文件,由于视频文件相对来说比较大,请同学们提前在ftp服务器下载每次的实验视频,最好在实验开始之前先预习。

1、使用老师给的数据库文件“(中)学生-课程-选课_Data.MDF”在服务器上附加一个(中)学生-课程-选课数据库。

调试通过

2、完成对该数据库的备份,备份名字为b1。 调试通过

3、更改该数据库内容,比如,删除一个表,或者在数据库中增加一个新表。

调试通过

4、还原该数据库,使它回到刚刚附加的时候的内容。(即使用本实验的第二步的备份内容b1来还原) 调试通过

5、分离该数据库,并把它拷到自己带的U盘,回去后试着在自己机器上安装sql server 2005,然后把分离的数据库按照附加->备份->更改->还原->分离的步骤继续做一遍,并好好体会它们的区别和联系。

6、把(中)学生-课程-选课_Data数据库中的计算机系学生表转换到ACCESS数据库中。

调试通过 三、实验小结

1. 观看视频或者指导,回答完整备份和完整差异备份有什么区别?

1

《数据库原理与应用》实验报告

2. 什么情况下应该使用数据库的备份和还原?什么情况下应该使用数据库的数据导入和导出?

3.什么时候使用数据库的附加和分离?附加和分离的关系是什么?

4.以后上实验课你会使用以上技术吗?你会选择哪一种?为什么?

五、作业

1、试述数据模型的概念、数据模型的作用和数据模型的三个要素。

2、试述数据库系统三级模式结构,这种结构的优点是什么?

2

《数据库原理与应用》实验报告

3、解释下列术语: DDL:

DML:

4、什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?

5、DBA的职责是什么?

6、填空题:

1)用树型结构表示实体类型及实体间联系的数据模型称为__________模型,上一层的父结点和下一层的子结点之间的联系是__________的联系。

2)用有向图结构表示实体类型及实体间联系的数据模型称为__________模型,数据之间的联系通常通过__________实现。

3)数据模型中的__________是对数据系统的静态特征描述,包括数据结构和数据间联系的描述,__________是对数据库系统的动态特征描述,是一组定义在数据上的操作,包括操作的涵义、操作符、运算规则及其语言等。

4)数据模型的三要素是指__________,__________,__________。

5)根据模型应用的不同目的,可以将这些模型划分为两类,它们分别属于两个不同的层次。第一类是__________,第二类是__________。

3

《数据库原理与应用》实验报告

实验四 简单查询

一、实验目的

1.掌握Management Studio的使用。 2.掌握SQL中Select命令的使用。

3. 熟悉基本的SELECT查询语句及其相关子句。

二、实验内容及要求

注意:在完成这些查询语句之前请大家先熟悉实验所使用的数据库。把school数据库所提供的每个表仔细查看下。用SQL语句完成下列查询。使用数据库为SCHOOL数据库。 1. 统计各门课程所选修的人数,并把结果存储在一7.在学生基本信息表Student中检索学生的姓名和张新表中。(提示:用Select??Into??,group by) 出生年份,输出的列名为STUDENT_NAME和select Course_id 课程号,count(*) 选课人数into BIRTH_YEAR。

aa

from StudentGrade group by Course_id

select Stu_name

STUDENT_NAME,year(Birthday) BIRTH_YEAR from Student

2.查询男生的资料。

select * from Student where Stu_sex='男'

8.在StudnetGrade中,求选修课程0511且分数排

名为前10%学生的学号和得分。

select top 10 percent Stu_id,Grade from StudentGrade where Course_id='0511' Order by Grade desc

3.查询所有计算机系的班级信息。

select * from Class where Depar_id=( select Depar_id from Deparment

where Depar_name='计算机系')

9.查询选修课程号为0109或0111的学生学号。

select Stu_id from StudentGrade

where Course_id in('0109','0111' ) 或者

select distinct Stu_id from StudentGrade where

Course_id

='0109'

or

Course_id='0111'

4.查询艾老师所教的课程号。

select Course_id from CourseTeacher where Teac_id in( select Teac_id from Teacher

where Teac_name like '艾%')

10.查询课程“0101”的成绩在80与90之间的同学的学号。

select Stu_id from StudentGrade

where Course_id ='0101' and Grade between 80 and 90

5.查询年龄小于30岁的女同学的学号和姓名。

select Stu_id,Stu_name from Student

where Stu_sex='女' and

year(getdate())-year(Birthday)<30

11.查询平均成绩都在80分以上的学生学号及平均成绩。

select Stu_id,avg(Grade) from StudentGrade group by Stu_id having avg(Grade)>=80

6.查询所有被选修的课程号。

select distinct Course_id from StudentGrade

4

《数据库原理与应用》实验报告

三、实验小结

1.此次实验中得到的哪些经验教训、疑难问题?有什么心得或总结?。

四、作业

1、设有一个SPJ数据库,包含S、P、J、SPJ4个关系模式:

S(SNO,SNAME,STATUS.CITY)、P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY)、SPJ(SNO,PNO,JNO,QTY)

供应商S由供应商代码SNO、供应商姓名SNAME、供应商状态STATUS、供应商所在城市CITY组成; 零件表P由零件代码PNO、零件名PNAME、零件颜色COLOR零件重量WEIGHT组成; 工程项目表J由工程项目代码JNO、工程项目名JNAME、工程项目坐在城市CITY组成;

SPJ表由供应商代码SNO、零件号代码PNO、工程号代码JNO、供应数量QTY组成,表示某供应商供应某种零件给某工程项目的数量为QTY.。具体表内容如教材P75面所示。请用关系代数完成下列查询:

1) 求供应工程J1零件的供应商号码SNO;

2) 求供应工程J1零件P1的供应商号码SNO;

3) 求供应工程J1零件为红色的供应商号码SNO;

4) 求没有使用天井供应商生产的红色零件的工程号JNO;

5) 求至少使用了供应商S1所供应的全部零件的工程号JNO;

6) 求使用了红色零件带没有使用蓝色零件的工程号;

7) 求供应了蓝色零件工程项目在北京的供应商的姓名和所在城市。

5

《数据库原理与应用》实验报告

8) 检索至少使用了两种零件的工程号。

9) 检索J1号工程不使用的零件号。

2、试述等值连接与自然连接的区别和联系。

3、关系代数的基本运算有哪些?

4、为什么关系中的元组没有先后顺序?

5、为什么关系中不允许有重复元组?

6、选择题:

1.SQL语言是( )的语言,容易学习 。 A. 过程化 B.非过程化C.格式化D.导航式

2.SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,CREATE、DROP、ALTER语句是实现哪种功能( )。

A.数据查询B.数据操纵 C.数据定义D.数据控制 3.若要撤销数据库中已经存在的表S,可用( )。 A.DELETE TABLE S 7、填空题

B.DELETE S C.DROP TABLE S

D.DROP S

1 .关系数据模型中,二维表的列称为________,二维表的行称为________。

6

《数据库原理与应用》实验报告

2.用户选作元组标识的一个候选码为________,其属性不能取________。 3.关系数据库中基于数学上的两类运算是________和________。

4.已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主码是________,系关系的外码是________,学生关系的主码是________,学生关系的外码是________。

7

《数据库原理与应用》实验报告

实验六 带函数查询和综合查询

一、实验目的

1.掌握Management Studio的使用。 2.掌握带函数查询和综合查询的使用。

二、实验内容及要求

用SQL语句完成下列功能。使用数据库为SCHOOL数据库。

1.统计年龄大于30岁的学生的人数。

调试通过 4.找出最多人选修的三门课的课程编号,以及统 计选修人数,并按人数降序排列。

调试通过

2.统计数据结构有多少人80分或以上。

调试通过

5.统计每科目的最高分、最低分,平均分、总分, 并以中文列名显示。 调试通过

3.统计各系开设班级的数目(系名称、班级数目),

并创建结果表。

调试通过

8

《数据库原理与应用》实验报告

6.所有成绩都在70分以上的学生姓名(提示:使用子查询)

调试通过 7.“数据库”课程得最高分的学生的姓名、性别和所在系(提示:使用子查询)

调试通过

8.至少选修了两门课及以上的学生姓名和性别

调试通过

9.检索至少选修课程“数据结构”和“C语言”的学生学号 调试通过 10.列出所有班名、班主任、班长、系名。(请使用连接查询;进一步考虑使用外连接,因为很多班级可能是没有班长的,考虑需要显示所有班级的信息)

调试通过 11.查询选修了所有课程的学生的学号。

调试通过 三、实验小结

9

《数据库原理与应用》实验报告

1.试述相关子查询和不相关子查询的区别和联系。

2.此次实验中得到的哪些经验教训、疑难问题?有什么心得或总结?

四、作业

1.SQL的中文全称是___________________。

2.SQL语言除了具有数据查询和数据操纵功能之外,还具有____________和_______________的功能,它是一个综合性的功能强大的语言。

3.关系R(A,B,C)和S(A,D,E,F),R和S有相同属性A,若将关系代数表达式:πR.A,R.B,S.D,S.F(R∞ S)用SQL语言的查询语句表示,则为:

SELECT R.A,R.B,S.D,S.F FROM R,S WHERE____________________________。

4.关系数据操作语言(DML)的特点是:操作对象与结果均为关系、操作的________________、语言一体化并且是建立在数学理论基础之上。

5.设有如下关系表R、S、T: R(BH,XM,XB,DWH) S(DWH,DWM) T(BH,XM,XB,DWH) (1) 实现R∪T的SQL语句是______________________________________________________________。 (2) 实现σ DWH=’100’(S)的SQL语句是_________________________________________________。 (3) 实现πXM,XB (R)的SQL语句是_________________________________________________________。 (4) 实现πXM,DWH (σ XB=’女’(T)) 的SQL语句是_________________________________________。 (5) 实现R∞S的SQL语句是_______________________________________________________________。 (6) 实现πXM,XB,DWH (σ XB=’男’ (R∞S)) 的SQL语句是___________________________________。

10

《数据库原理与应用》实验报告

实验八 数据库视图与索引操作

一、实验目的

1.掌握Management Studio的使用。 2.掌握视图的创建、修改和删除。 3. 熟悉使用视图访问数据。 4. 掌握索引的种类与定义。

二、实验内容及要求

用SQL语句完成下列功能。使用数据库为SCHOOL数据库。 (一)视图操作

1、建立一视图View_CSTeacher,列出计算机系各个老师的资料(姓名、性别、职称、系别)。

2、建立一视图View_Class,列出每个班级的名称、系别和班级人数。

调试通过 调试通过

3、建立一视图View_Student,列出每个学生的学号、姓名、班级和课程名称为“数据结构”的课程名、授课教师名和成绩,并按成绩从大到小排列。

调试通过

11

《数据库原理与应用》实验报告

4、删除视图View_CSTeacher。

(二)、索引的创建与删除

请使用(中)学生-课程-选课数据库完成一下操作

1.分别建立以下索引(如果不能成功建立,请分析原因) (1) 在Student表的Sname列上建立普通降序索引。

(2) 在Course表的Cname列上建立唯一索引。

(3) 在SC表的Sno列上建立聚集索引。

(4) 在SC表的Sno(升序),Cno(升序)和Grade(降序)三列上建立一个普通索引。

2.删除索引

(1)将SC表的Sno列上的聚集索引删掉。

12

调试通过 调试通过 调试通过 调试通过 调试通过 调试通过 《数据库原理与应用》实验报告

三、实验小结

1.什么是基本表,什么是视图?两者的区别和联系是什么?

2、请把View_CSTeacher的系改为“信息工程系”,并刷新观察原基本表的数据是否有变化。

2.此次实验中得到的哪些经验教训、疑难问题?有什么心得或总结?

四、作业

1、试述视图的优点。

2、哪类视图是可以更新的,哪类不可以,请举例说明。

3、.在视图上不能完成的操作是( ) 。 A.更新视图 B.查询 C.在视图上定义新的表 D.在视图上定义新的视图 4、 SQL语言中,删除一个视图的命令是( )。 A.DELETE B.DROP C.CLEAR D.REMOVE 5、在SQL语言中的视图VIEW是数据库的( ) 。 A.外模式 B.模式 C.内模式 D.存储模式 6、下列的SQL语句中,( )不是数据定义语句。 A.CREATE TABLE B.DROP VIEW C.CREATE VIEW D.GRANT

7、视图是从___________中导出的表,数据库中实际存放的是视图的___________。

13

《数据库原理与应用》实验报告

实验十 数据完整性实验

一、实验目的

熟悉通过SQL对数据进行完整性控制。熟练掌握三类完整性约束(实体完整性、用户自定义完整性、参照完整性)和触发器的定义与执行。

二、实验内容及要求

用SQL语句完成下列功能。使用数据库为SCHOOL数据库。

使用SQL对数据进行完整性控制(三类完整性、CHECK短语、CONSTRAIN字句、触发器)。用实验证实,当操作违反了完整性约束条件时,系统是如何处理的。根据以下要求完成实验内容并书写实验报告,记录所有的实验用例。

1、认真学习三类完整性、CHECK短语、CONSTRAIN字句的使用,完成下列内容。 列名 Stu_id Stu_name Stu_sex Birthday Age Phone 中文解释 学号 姓名 性别 出生年月 年龄 联系电话 数据类型 Int Varchar(8) Varchar(2) Smalldatetime Varchar(15) 空值 否 否 否 否 唯一性约束 默认值为“女” 计算列,计算公式: year(getdate())-year(birthday) ‘3935’开头,共8位数字 说明 主键,标识种子(200601,1) (1)根据上表,建立Table1,把各种约束定义为列级约束。

(2)建立Table2,把各种约束定义为表级约束.(默认值约束除外)。

14

调试通过 调试通过 《数据库原理与应用》实验报告

(3)先建立只含各个基本列(列名和数据类型)的Table3,然后通过ALTER TABLE语句为其增加各个约束。

Create table table3 调试通过

ater table table3

调试通过

2、新建一个XSGL数据库, 在XSGL数据库中,创建一个名为yanshi_student的表,指定SNO为主码,且设置属性级约束、元组级约束和表级约束。

CREATE TABLE yanshi_student ( SNO char (8) ,

SNAME char (10) NOT NULL , AGE smallInt NULL,

SEX char (2) NULL DEFAULT '男' /*SEX缺省值为男 */ , DNO char (4) NOT NULL , BIRTHDAY datetime NULL ,

PRIMARY KEY (Sno) /*在表级定义主码,实现实体完整性*/,

CHECK(SEX IN ('男','女')) /*性别属性SEX只允许取'男'或'女' */ , CHECK(SNO LIKE '[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')

/*SNO只能为8位数字,且不能以0开头*/ , CHECK((SUBSTRING(SNO,5,1)='3' AND DNO='0003')

OR(SUBSTRING(SNO,5,1) ='2' AND DNO='0002') OR (SUBSTRING(SNO,5,1) = '1' AND DNO='0001'))

/*定义了元组中SNO和DNO两个属性值之间的约束条件,SNO的第5位只能为1,2,3,且当第5位为1时,DNO只能为0001,第5位为2时,DNO只能为0002,第5位为3时,DNO只能为0003*/

)

15

《数据库原理与应用》实验报告

请同学们用下列SQL语句调试,并观察其现象:

(1) INSERT yanshi_student(SNO,SNAME,DNO) values('x0001','li','0001') 结果: 原因:

(2) INSERT yanshi_student(SNO,SNAME,DNO) values('00001','li','0001') 结果: 原因:

(3) INSERT yanshi_student(SNO,SNAME,DNO) values('10001','li','0001') 结果: 原因:

(4) INSERT yanshi_student(SNO,SNAME,DNO) values('20073001','li','0001') 结果: 原因:

(5) INSERT yanshi_student(SNO,SNAME,DNO) values('20073001','li','0003') 结果: 原因:

2.在XSGL数据库中,创建一个名为yanshi_course 的表,指定CNO为主码。

CREATE TABLE yanshi_course

(

CNO char(6) ,

CNAME char(30) NOT NULL , TNAME char(10) NULL , CREDIT float NULL , ROOM char(30) NULL , PRIMARY KEY (CNO) )

请同学们用下列SQL语句调试,并观察其现象:

(1) 结果: 原因:

(2) 结果: 原因:

(3) 结果: 原因:

3.在XSGL数据库中,创建一个名为yanshi_sc的表,指定SNO、CNO为主码,并且SNO参照yanshi_student表中的SNO,CNO参照yanshi_course表中的CNO。 CREATE TABLE yanshi_sc

(

SNO char(8) ,

16

INSERT yanshi_course(CNO,CNAME) values('222201','软件技术基础')

INSERT yanshi_course(CNO,CNAME) values('c43002','可视化程序设计与用户界面')

INSERT yanshi_course(CNO,CNAME) values('133804','工程训练')

《数据库原理与应用》实验报告

CNO char(6) , GRADE float NULL, PRIMARY KEY(SNO,CNO),

FOREIGN KEY(SNO) references yanshi_student(SNO), FOREIGN KEY(CNO) references yanshi_course(CNO), CHECK (GRADE BETWEEN 0 AND 100), )

请同学们用下列SQL语句调试,并观察其现象:

(1)INSERT yanshi_sc(SNO,CNO,GRADE) VALUES('20073001','222201',81) 结果: 原因:

(2)INSERT yanshi_sc(SNO,CNO,GRADE) VALUES ('20073001','133804',67) 结果: 原因:

(3)INSERT yanshi_sc(SNO,CNO,GRADE) VALUES('20073001','222203',70) 结果: 原因:

4. 完成下列各题:

(1)创建一个表yanshi_depart,包含DNO、DNAME、DADDRESS和DEAN四个字段,DNO由4个数字字符构成,且为该表的主码,DNAME由30个字符构成,DADDRESS由5个字符构成,DEAN由10个字符构成。

并将其绑定。 (4)删除(3)所建立的规则。 调试通过 调试通过 调试通过 调试通过 (2)为实验2中的yanshi_student表建立外键“DNO”,参考表yanshi_depart的“DNO”列。

(3)为表yanshi_depart的DNAME建立一个规则:@dname IN ('机电学院','信息学院','工商学院')。17

《数据库原理与应用》实验报告

四、作业

1、 理解并给出下列术语的定义: 函数依赖:

部分函数依赖:

完全函数依赖:

传递依赖:

候选码:

主码:

外码:

全码: 1NF: 2NF: 3NF:

BCNF:

2、选择题

1.规范化理论是关系数据库进行逻辑设计的理论依据,根据这个理论,关系数据库中的关系必须满足:每 一个属性都是( )。 A.长度不变的 候选码是( )。 A.AB

B.BE

C.CD

D.DE

D.必定是BCNF D.BCNF D.BCNF D.1个或多个

3.关系模式中,满足2NF的模式( )。 A.可能是1NF A.1NF A.1NF A.多个

B.必定是1NF B.2NF B.2NF B.0个

C.必定是3NF C.3NF C.3NF C.1个

4.关系模式R中的属性全是主属性,则R的最高范式必定是( )。

5.消除了部分函数依赖的1NF的关系模式,必定是( )。 6.关系模式的候选码可以有1个或多个,而主码有( )。 7.候选码的属性可以有( )。

18

B.不可分解的 C.互相关联的 D.互不相关的

2.已知关系模式R(A,B,C,D,E)及其上的函数依赖集合F={A→D,B→C ,E→A },该关系模式 的

《数据库原理与应用》实验报告

A.多个 B.0个

C.1个

D.1个或多个 D.HAVING短语

8.下述SQL命令的短语中,定义属性上约束条件的是( )。 A.NOT NULL短语 A.提高查询速度

B.UNIQUE短语

C.CHECK短语

9.关系数据库规范化是为了解决关系数据库中( )的问题而引入的。

B.插入、删除异常和数据冗余

C.保证数据的安全性和完整性

10.学生表(id,name,sex,age,depart_id,depart_name),存在的函数依赖是id→{name,sex,age,depart_id}; dept_id→dept_name,其满足( )。 A.1NF 达到( )。 A.1NF

B.2NF

C.3NF

D.BCNF

12.设有关系模式R(A,B,C,D),其数据依赖集:F={(A,B)→C,C→D},则关系模式R的规范化程度最高达到( ) A.1NF A. X ∈Y

B.2NF

C.3NF

D.BCNF D.X∩Y≠Φ

13.X→Y,当下列哪一条成立时,称为平凡的函数依赖( )。

B.Y∈X

C.X∩Y=Φ

14.完整性检查和控制的防范对象是( ),防止它们进入数据库。安全性控制的防范对象是( ),防止他们对数据库数据的存取。 A.不合语义的数据 A.GRANT

B.非法用户 B.COMMIT B.DELETE

C.不正确的数据

D.非法操作 D.SELECT D. SELECT

15.找出下面SQL命令中的数据控制命令( )。

C.UPDATE

16.下述SQL命令中,允许用户定义新关系时,引用其他关系的主码作为外码的是( )。 A.INSERT

C.REFERENCES

B.2NF

C.3NF

D.BCNF

11.设有关系模式R(S,D,M),其函数依赖集:F={S→D,D→M},则关系模式R的规范化程度最高

3、填空题

1.在一个关系R中,若每个数据项都是不可再分割的,那么R一定属于__________ 。 2.若关系为1NF,且它的每一非主属性都__________ 候选码,则该关系为2NF。

3.如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候选码,则称R为________ 关系模式。

4.在关系模式R(A,B,C,D)中,存在函数依赖关系{A→B,A→C,A→D,(B,C)→A},则候选码是___________,关系模式R(A,B,C,D)属于____________ 。

5.在关系模式R(D,E,G)中,存在函数依赖关系{E→D,(D,G)→E},则候选码是__________,关系模式R(D,E,G)属于____________。

6.在关系模式R(A,C,D)中,存在函数依赖关系{ A→C,A→D },则候选码是___________ ,关系模式R(A,C,D)最高可以达到_____________ 。

19

《数据库原理与应用》实验报告

实验十二 Power Designer中概念模型与物理模型的设计

一、实验目的

1、掌握数据库设计方法。

2、掌握利用Power Designer进行数据库的概念模型的设计 3、利用Power Designer软件把设计好的E-R模型实例化。

二、实验内容及要求

本实验采用Power Designer 12.5为例。其他版本也可以,操作流程类型。

(1) 某学生选题数据库,需要如下信息: 学生:学号、姓名、性别、年龄、系名、年级; 课程:课程号、课程名、学分 ;

选修:学号、课程号、成绩。其中一个学生可以选多门课程,一门课程可以有多个学生来选。使用Power Designer建立概念模型,并将建好的概念模型转换为SQL Server 2005物理模型。 调试通过

(2)某医院病房计算机管理中需要如下信息: 科室:科名,科地址,科电话,医生姓名 病房:病房号,床位号,所属科室名

医生:姓名,职称,所属科室名,年龄,工作证号 病人:病历号,姓名,性别,诊断,主管医生,病房号

其中,一个科室有多个病房,多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。使用Power Designer建立概念模型,并将建好的概念模型转换为SQL Server 2005物理模型。

调试通过

(3)对于学生选题数据库,请找到生成的源代码,并拷贝,然后在SQL Server 2005的查询分析器中运行此代码,看是否能生成你所设计的数据库和相关表。

调试通过 三、实验小结

请谈谈本次实验你的收获。

20

《数据库原理与应用》实验报告

四、试题解答

数据库设计的根本目标是要解决( )

A)数据共享问题 B)数据安全问题 C)大量数据存储问题 D)简化数据维护

一般书上很少这么提,大家在答这个题的时候,可以从数据库的概念上入手,数据库设计的根本目标是要解决应该是共享问题。四个答案可以做一些比较,最好的答案应该是A答案。你可以看一下数据库的概念,一般数据库是长期存储在计算机内有组织的可共享的数据集合。还有一个线索,数据库设计的六个阶段,每一个阶段主要做什么,或者是大家看数据库的一些范式,这个范式主要解决什么问题。从这一题大家一定要注意二级考试的公共基础知识,很多地方都考最根本,最主要的地方。

数据库设计的目的即设计目标从根本上来说就是要实现数据的共享和安全存取,从细化及技术上来说,一个优秀的数据库设计必须要最终实现用户对于数据共享的具体要求,必须要在满足于用户的数据存取要求的基础上实现对于数据的关联性及优化,必须实现数据的安全性及可移植性,以保证用户数据能够简单的进行移植,必须要实现数据库的可扩容性结构以保证数据库对于用户未来数据要求的兼容性等等

五、作业

1、试述数据库概念结构设计的重要性和步骤。

2、试述数据库逻辑结构设计的重要性和步骤。

3、理论联系实际,请谈谈把e-r模型转换称关系模型的方法。

21

《数据库原理与应用》实验报告

4、选择题

1.如何构造出一个合适的数据逻辑结构是( )主要解决的问题 。 A. 物理结构设计 体DBMS的( )。 A. 数据模型

B.概念模型

C.层次模型

D.关系模型

3.数据库设计中,确定数据库存储结构,即确定关系、索引、聚簇、日志、备份等数据的存储安排和存储结构,这是数据库设计的( )。 A. 需求分析阶段

B. 逻辑设计阶段

C. 概念设计阶段

D. 物理设计阶段

5.数据库设计可划分为六个阶段,每个阶段都有自己的设计内容,“为哪些关系,在哪些属性上建什么样的索引”这一设计内容应该属于( )设计阶段。 A.概念设计

B.逻辑设计 B.概念设计阶段

C.物理设计 C.物理设计阶段

D.全局设计 D.需求分析阶段

6.在关系数据库设计中,设计关系模式是数据库设计中( )阶段的任务。 A.逻辑设计阶段 段的任务。 A.逻辑设计阶段 A.网状模型 A.实体 A.名称

B.概念设计阶段 B.关系模型 B.元组 B.属性

C.物理设计阶段 C.层次模型 C.属性 C.对象

D.需求分析阶段 D.非关系模型 D.节点 D.概念

9.对实体和实体之间的联系采用同样的数据结构表达的数据模型为( ) 。 10.在概念模型中的客观存在并可相互区别的事物称( ) 。 11.区分不同实体的依据是( ) 。

12.公司有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类形是( ) 。 A.多对多 A.公共索引 A.概要设计

B.一对一 B.公共存储 B.可行性分析 B.概念设计阶段

22

B.数据字典 C.逻辑结构设计 D.关系数据库查询

2.概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具

7.在关系数据库设计中,对关系进行规范化处理,使关系达到一定的范式,例如达到3NF,这是( )阶

C.一对多 C.公共元组 C.程序编码 C.物理设计阶段

D.公共属性 D.需求分析 D.需求分析阶段

13.关系数据库中,实现实体之间的联系是通过关系与关系之间的( ) 。 14.数据流程图是用于数据库设计中( )阶段的工具。

15.在数据库设计中,将ER图转换成关系数据模型的过程属于( )。 A.逻辑设计阶段

16.子模式DDL是用来描述( )。 A.数据库的总体逻辑结构 C.数据库的物理存储结构 A. 层次分析法和层次结构图 C. 实体联系方法 A.逻辑设计阶段

B.数据库的局部逻辑结构 D.数据库的概念结构

B. 数据流程分析法和数据流程图 D.结构分析法和模块结构图 C.物理设计阶段

D.需求分析阶段

17.数据库设计的概念设计阶段,表示概念结构的常用方法和描述工具是( )。

18.在关系数据库设计中,设计关系模式是数据库设计中( )阶段的任务 。

B.概念设计阶段

《数据库原理与应用》实验报告

19.关系数据库的规范化理论主要解决的问题是( )。 A. 如何构造合适的数据逻辑结构 C. 如何构造合适的应用程序界面

B. 如何构造合适的数据物理结构 D. 如何控制不同用户的数据操作权限

20.数据库设计可划分为六个阶段,每个阶段都有自己的设计内容,“为哪些关系在哪些属性上建什么样的索引”这一设计内容应该属于( )设计阶段。 A.概念设计

B.逻辑设计

C.物理设计

D.全局设计

22.从ER图导出关系模型时,如果实体间的联系是M:N的,下列说法中正确的是( )。 A.将N方码和联系的属性纳入M方的属性中

B.将M方码和联系的属性纳入N方的属性中

C.增加一个关系表示联系,其中纳入M方和N方的码 D.在M方属性和N方属性中均增加一个表示级别的属性

23.在ER模型中,如果有3个不同的实体型,3个M:N联系,根据ER模型转换为关系模型的规则,转换为关系的数目是( )。 A.4

B.5

C.6

D.7

5、填空题

1.数据库的生命周期可分为两个阶段:一是数据库需求分析和___________ ;二是数据库实现和___________。

2.数据库设计分为以下六个阶段__________、___________、___________、___________、___________和___________。

3.用___________ 方法来设计数据库的概念模型是数据库概念设计阶段广泛采用的方法。

4.客观存在并可相互区别的事物称为___________ ,它可以是具体的人、事、物,也可以是抽象的概念或联系。

5.如果两个实体之间具有M:N联系,则将它们转换为关系模型的结果是___________ 个关系。 6.ER模型是对现实世界的一种抽象,它的主要成分是___________ 、联系和 ___________。 7.需求调查和分析的结果最终形成___________ ,提交给应用部门,通过___________后作为以后各个设计阶段的依据。

8.______ _____ 表达了数据和处理的关系, ___________则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。

9.数据字典中应包括对以下几部分数据的描述:___________ 、___________ 、___________ 。 10.关系数据库的规范化理论是数据库___________ 的一个有力工具;ER模型是数据库的___________设计的一个有力工具。

23

《数据库原理与应用》实验报告

6、综合作业

医疗保险综合管理系统数据库设计。

? ? ? ? ? ? ? ?

医疗保险综合管理系统具体要求如下:

医保中心为参保单位/人员建档,并确定应缴费金额。 医保中心为参保人员建立个人帐户并发医保卡。

参保单位或人员定期(按月)到医保中心缴费,所缴费用按一定比例划入统筹帐户及个人帐户。 对未缴费或欠缴单位/人员,医保中心发出催缴通知。

参保人员持医保卡到指定医院门诊看病,费用由个人帐户支付,超支自理。

参保人员到指定医院住院治疗,费用按统筹基金支付,同时个人也要负担一定比例。统筹基金支付实行起付标准、分段计算、累加支付的办法。

医保中心与定点医院/药房结算费用,交换数据(如黑名单等)。

凡参加基本医疗保险,按时足额缴纳基本医疗保险费的,方可享受医疗保险待遇。

征缴业务是医保经办机构的核心业务之一,它是依据国家医疗保险征缴政策对参保单位和职工缴纳保费所开展的业务。 1.1档案管理

完成参保单位档案的新建,变更维护,注销等功能,建立参保单位档案后,根据单位提供的职工列表,完成参保个人基本档案的新建,变更维护,注销等功能。

建立个人基本档案后,办理一个医疗证卡用于标识身份,同时为每个参保职工建立一个个人帐户。 1.2征缴计划

每月生成所有参保单位应缴金额(注意职工的某些异动直接影响征缴计划)。征缴标准如下:

?

基础数据

月社会平均工资(X)(上级提供)

职工月工资(Y)(职工基本信息中含有,参保单位提供) ?

缴费基数: Y

Z= X*60% Z= X*300%

每个参保职工缴费基数(Z):

Y>X*300%

1.征缴业务

X*60%

最后参保单位缴费金额(M):全体职工Z的总和*9%

1.3 收款处理

收取现金做交费处理,打印现金收据。

检索本月未交费单位,按单位制作催缴单(每个单位一份邮递)和催缴明细表(一份含所有欠费单位,内部电话催缴用)

催缴后仍未缴费单位经领导核实后做冻结处理(对统筹基金、个人帐户同时冻结),个人将无法使用基金帐户。

1.4 划拨处理

单位缴费后,每月定期向个人帐户中的自有资金划拨一定资金,该资金是个人支配,仅用于医疗支出。根据以下标准,系统每月划拨一次。

?

个人帐户划拨比例 在职:

年令 ≤30 (2+0.7)%

31<年令≤45

(2+1)%

年令>45 (2+1.5)%

24

《数据库原理与应用》实验报告

退休:

(符合医保要求年令) 4%

?

个人帐户月划拨金额=个人月工资*个人帐户划拨比例

扣除划拨给个人账户资金之外的收入,就是由医保中心支配的统筹基金。 2.支付业务

支付业务是医保经办机构(各医院)的核心业务之一,它是依据医保基金支付政策和经办机构的管理办法对参保职工就诊所发生的费用进行偿付所开展的业务。它由门诊收费、住院收费、特殊报销及审核与结算组成。具体如下:

2.1住院收费业务流程

病人持身份证、证卡在住院处办理入院登记手续,住院期间证卡停止门诊使用;住院期间发生的费用按日期分类记录,在病人出院时按照医疗保险政策计算各项费用:总额、统筹记帐金额、个人自付金额及对病人转科业务的处理。

入院登记 住院费用录入 出院结算 入院登记 住院费用录入 出院结算 转科 住院病人查询 2.2入院登记 每位病人住院都需要登记其基本信息,作为这位病人的基本信息以供使用。 2.3 住院费用录入

录入分类费用(由费用字典提供),记录费用发生时所在科室。确认后可以计算个人自付金额,检查预交款。 2.4出院结算

根据结算政策计算各项费用,填写出院疗效:痊愈、好转、未愈、死亡,打印住院费用结算单。 结算方法如下:

1、 首先按照住院次数,计算本次住院的最低起付金额,只有超出起付金额后才会采用医疗保险政策来计算,

不足起付金额时,所有费用都由个人承担;

2、 然后按照每个项目的自负比例计算个人应付金额和进入统筹金额;

3、 对于计入统筹金额的部分,再根据统筹分段,按照比例计算出个人应付金额和统筹基金支付金额; 4、 合计个人应付金额,先从个人账户中扣除,不足时收取现金,统筹基金支付金额也记入个人账户; 5、 每人每年累计统筹基金支付金额最高不超过20000,超出后将全部自负。 2.5转科

实现科室的更改,每次费用总是记录在当前所在科室。

【实验步骤】

1、根据需求建立ER模型:

分析需求,并用Power Designer图形表示实验要求的ER模型。

25

登记入院病人基本信息 录入病人住院发生的费用 计算病人住院期间发生的费用,办理出院手续 办理病人转科手续 查询住院病人费用情况 《数据库原理与应用》实验报告

2、ER模型转换为数据库表采用Power Designer提供的工具进行转化。 ? ? ? ?

26

实体转化为表

实体的属性转化为表中的列

多对多联系也转化为表,主键确定为相联系表中主键的组合,联系本身的属性转化为表的列 一对一、一对多联系无需新建表,被决定的一方应含有决定方的主键作为外部键

《数据库原理与应用》实验报告

27

《数据库原理与应用》实验报告

4、 利用SQL SERVER建立所需要的数据库。利用Power Designer生成的代码运行产生对应的数据库结构,

并在SQL SERVER下运行产生对应数据库。请记录下数据库的结构,只用给出数据库的名称,表的名称就可以了。

28

《数据库原理与应用》实验报告

实验十四 触发器的使用

一、实验目的

1、了解触发器的定义方法,及其目的,主要是实现业务规则的约束 2、了解inserted逻辑表和deleted逻辑表的使用

二、实验内容及要求

用SQL语句完成下列功能。使用数据库为SCHOOL数据库。请参考视频或者实验指导完成下面练习。

l、为deparment表增加一列teac_num用于统计各个系教师的人数。 调试通过

2、更新teac_num列,让其正确统计当前数据库中各个系教师的人数。

调试通过

3、创建insert触发器,使得某系增加新教师时,该系对应的teac_num列自动变化。 调试通过

4、创建delete触发器,使得某系有教师离职时,该系对应的teac_num列自动变化。

调试通过

29

《数据库原理与应用》实验报告

5、把上述两个触发器合并为一个触发器。

调试通过 6、创建触发器,要求在学生表中删除一个学生时,同时从选课表中将其所有选课信息删除。

调试通过

7、创建触发器限定一个学生最多只能选择4门课。

调试通过

30

《数据库原理与应用》实验报告

8、利用触发器限定修改后的分数只能比原来高。

调试通过 三、实验小结

1.思考实验所完成的完整性约束对于数据库数据检查有何作用?

3. 此次实验中得到的哪些经验教训、疑难问题?有什么心得或总结?

31

《数据库原理与应用》实验报告

实验十六 用visual studio连接数据库

一、实验目的

学会ASP.NET和ADO.NET数据库连接、数据操程序编写,熟练使用Microsoft Visual Studio 2005开发平台开发学生学籍管理系统小型数据库应用系统。

二、实验内容及要求

1.连接SQL Server的数据访问编程实例

2.利用Microsoft Visual Studio 2005开发平台开发一个学生学籍管理系统小型数据库应用系统,对前面实验所建立的school数据库中的数据通过应用系统界面进行更新和查询等操作。

三、实验小结

请按照软件工程的设计思想来写出整个开发过程的数据库有关文档(请另外附纸张):

32

《数据库原理与应用》实验报告

第十一章 并发控制作业

1、 在数据库中为什么要并发控制?并发控制技术能保证事务的哪些特性?

2、 并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?

3、 什么是活锁?试述活锁的产生原因和解决方法。

4、 什么是死锁?请给出预防死锁的若干方法。

5、 什么样的调度是正确的调度?

6、填空题:

33

《数据库原理与应用》实验报告

1 . 并发操作带来的数据不一致性包括:________ 、________ 和 ________ 。

多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同,我们称这种调度策略为________的调度。

基本的封锁类型有两种:________ 和________ 。 ________ 被称为封锁的粒度。

在数据库并发控制中,两个或多个事务同时处在相互等待状态,称为________ 。

7、选择题

1.解决并发操作带来的数据不一致问题普遍采用( )技术。 A.封锁

B.存取控制

C.恢复

D.协商

2.下列不属于并发操作带来的问题是( )。 A.丢失修改

B.不可重复读

C.死锁

D.脏读

3.DBMS普遍采用( )方法来保证调度的正确性 。 A.索引

B.授权

C.封锁

D.日志

4.事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放,这是( ) 。 A.一级封锁协议

B.二级封锁协议

C.三级封锁协议

D.零级封锁协议

5.如果事务T获得了数据项Q上的排他锁,则T对Q( ) 。 A.只能读不能写

B.只能写不能读

C.既可读又可写

D.不能读也不能写

6.设事务T1和T2,对数据库中的数据A进行操作,可能有如下几种情况,请问哪一种不会发生冲突操作( ) 。

A.T1正在写A,T2要读A C.T1正在读A,T2要写A

B.T1正在写A,T2也要写A D.T1正在读A,T2也要读A

7.如果有两个事务,同时对数据库中同一数据进行操作,不会引起冲突的操作是( ) 。 A.一个是DELETE,一个是SELECT C.两个都是UPDATE

B.一个是SELECT,一个是DELETE

D.两个都是SELECT

34