《数据库系统概论》
实
验
指
导
书
实验个数:
适用对象:
《数据库原理》实验指导书
实验一 认识DBMS 1
实验二 数据描述、定义实验. 1
实验三 数据更新实验. 3
实验四 数据查询实验. 6
实验五 视图的定义、使用实验. 8
实验六 数据控制实验(安全性部分). 9
实验七 数据控制实验(完整性部分). 10
实验八 据库设计工具的使用. 10
实验九 数据库设计. 11
实验一 认识DBMS
一、学时
2学时
二、实验类型
演示
三、实验目的
通过对某个商用数据库管理系统的安装使用,初步了解DBMS的工作环境和系统构架;
熟悉对DBMS的安装;
搭建今后实验的平台。
四、需用仪器、设备
486及以上微机;
Windows95/97/98及以上操作系统;
DBMS安装盘
六、实验内容及要求
1. 根据安装文件的说明安装数据库管理系统。在安装过程中记录安装的选择,并且对所作的选择进行思考为何要进行这样的配置,对今后运行数据库管理系统有什么影响;
2. 学会启动和停止数据库服务;
3. 初步了解RDBMS的安全性,这里主要是用户的登录和服务器预定义角色。可以建立一个新的新的用户,赋予其数据库管理员的角色,今后的实验可以用该用户来创建数据库应用;
4. 了解RDBMS的系统构架;
5. 了解RDBMS的管理和使用。
实验二 数据描述、定义实验
一、学时
4学时
二、实验类型
演示、设计
三、实验目的
熟悉和掌握数据库的创建和连接方法;
熟悉和掌握数据表的建立、修改和删除;
加深对表的实体完整性、参照完整性和用户自定义完整性的理解。
四、需用仪器、设备
486及以上微机;
Windows95/97/98操作系统;
安装了SQL SERVER
五、实验准备
1. 熟悉SQL SERVER 工作环境;
2. 复习有关表的建立、修改和删除的SQL语言命令;
六、实验方法及步骤
1. 介绍有关SQL SERVER的图形界面工作环境;
2. 创建数据库或连接已建立的数据库
3. 在当前数据库上建立新表
4. 定义表的结构
A:用SQL命令形式
B:用SQL SERVER提供的企业管理器以交互方式进行
5. 进一步定义表的主码,外码及在表上建立索引。
6. 将以上表的定义以 .SQL文件的形式保存在磁盘上。
7. 修改表的结构
8. 删除表的定义
七、实验内容
背景材料:在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。
1. 创建学生-课程数据库
2. 创建学生关系表S :
学号 |
姓名 |
性别 |
年龄 |
所在系 |
Sno |
Sname |
Ssex |
Sage |
sdept |
3. 创建课程关系表C :
课程号 |
课程名 |
先行课 |
学分 |
Cno |
Cname |
Cpno |
ccredit |
4. 创建课程关系表SC :
学号 |
课程号 |
成绩 |
Sno |
Cno |
grade |
5. 将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。
6. 在表S上增加“出生日期”属性列。
7. 删除表S的“年龄” 属性列。
8. 在表S上,按“Sno” 属性列的唯一值方式建立索引。
9. 在表SC上,按“grade” 属性列的多值方式建立索引。
10. 删除表SC,利用磁盘上保存的.SQL文件重新创建表SC。
11. 选做:创建教材P74-75--习题5、SPJ数据库中的四个关系S,P,J,SPJ。
八、实验思考
1、 定义表结构是对数据模型的那个要素进行描述,对主属性有什么要求?
2、 修改表结构时,能否修改已定义属性的参数?新增加的属性列能否定义为非空?为什么?
3、 分别在表S、SC上按“sno”列的唯一值方式建立索引,可能出现问题吗?情况有什么区别?
4、 能否在非主属性列上建立索引?其恰当的方式是什么?
九、问题
1、 在表的定义中,如何确定属性是 NOT NULL / NULL? ( 主码 ,关键字,主属性/主属性)
2、 能否将S,C,SC表单独以一个数据文件的形式保存在磁盘上?
3、 在表S的“SNO”,“SNAME”属性上分别按唯一值方式建立索引和在S的“SNO”,“SNAME”上唯一值方式建立联合索引有无区别?
4、 要修改主属性的定义,正确的方式是什么?
实验三 数据更新实验
一、学时
2学时
二、实验类型
综合、设计
三、实验目的
熟悉和掌握数据表中数据的插入、修改、删除操作和命令的使用;
加深理解表的定义对数据更新的作用
四、需用仪器、设备
486及以上微机;
Windows95/97/98操作系统;
安装了SQL SERVER
五、实验准备
1.熟悉SQL SERVER 工作环境;
2. 连接到学生-课程数据库
3. 复习对表中数据的插入、修改和删除的SQL语言命令;
六、实验方法及步骤
1. 将数据插入当前数据库的表S、C、SC中;
A:用SQL命令形式
B:用SQL SERVER提供的企业管理器以交互方式进行
2. 将以上插入的数据分别以.SQL文件和.txt文件的形式保存在磁盘上;
3. 修改表S、C、SC中的数据;
A:用SQL命令形式
B:用SQL SERVER提供的企业管理器以交互方式进行
4. 删除表S、C、SC中的数据。
A:用SQL命令形式
B:用SQL SERVER提供的企业管理器以交互方式进行
七、实验内容
1. 将数据分别插入表S、C、SC;
2. 将表S、C、SC中的数据分别以.SQL文件和.txt文件的形式保存在磁盘上。
3. 在表S、C、SC上练习数据的插入、修改、删除操作。(比较在表上定义/未定义主码(Primary Key)或外码(Foreign Key)时的情况)
4. 将表S、C、SC中的数据全部删除,再利用磁盘上备份的数据来恢复数据。
5. 如果要在表SC中插入某个学生的选课信息(如:学号为“200215121”,课程号为“c123”,成绩待定),应如何进行?
6. 求各系学生的平均成绩,并把结果存入数据库;
7. 将“CS”系全体学生的成绩置零;
8. 删除“CS”系全体学生的选课记录;
9. 删除学号为“S1”的相关信息;
10. 将学号为“S1”的学生的学号修改为“S001”;
11. 把平均成绩大于80分的男同学的学号和平均成绩存入另一个表S——GRADE(SNO,AVG——GRADE);
12. 把选修了课程名为“数据结构”的学生的成绩提高10%;
13. 把选修了“C2”号课程,且成绩低于该门课程的平均成绩的学生的成绩提高5%;
14. 把选修了“C2”号课程,且成绩低于该门课程的平均成绩的学生成绩删除掉;
15. 选做:将数据插入SPJ数据库中的四个表S,P,J,SPJ中,并以.SQL文件和.txt文件的形式保存在磁盘上。
八、实验思考
1.使用SQL的更新语句时,一次可以对几个表进行更新。
2.在进行数据更新时,可能产生破坏数据完整性的情况,因此,在数据更新(尤其是多表更新)时,应注意什么问题。
3.比较表中定义/未定义主码(Primary Key)时,对表S的更新操作有何异同。
4.比较在表之间定义/未定义外码(Foreign Key)时,对表S的更新操作有何异同。
5.若要修改已定义表的属性或删除已定义表的某一属性列,应如何进行?
九、问题
1.在表上未定义主码时,数据更新的情况?
2.如果在表S 和SC 表上建立了外码联系时,要删除学号为‘S2’的学生记录,应如何进行?如果在表S 和SC 表上未建立外码联系,情况会是怎样的?
DELETE FROM "s"
WHERE "s"."sno" = 's2' ;
DELETE FROM "sc"
WHERE "sc"."sno" = 's2' ;
DELETE FROM "sc"
WHERE "sc"."sno" = 's2' ;
DELETE FROM "s"
WHERE "s"."sno" = 's2' ;
实验四 数据查询实验
一、学时
6学时
二、实验类型
综合
三、实验目的
熟悉和掌握对数据表中数据的查询操作和SQL命令的使用,学会灵活熟练的使用SQL 语句的各种形式;
加深理解关系运算的各种操作(尤其的关系的选择,投影,连接和除运算)
四、需用仪器、设备
486及以上微机;
Windows95/97/98操作系统;
安装了SQL SERVER。
五、实验准备
1.熟悉SQL SERVER 工作环境;
2.连接到学生-课程数据库
3.复习对表中数据查询的SQL语言命令;
六、实验方法及步骤
1.在表S、C、SC上进行简单查询;
2.在表S、C、SC上进行连接查询;
3.在表S、C、SC上进行嵌套查询;
4.使用聚合函数的查询;
5.对数据的分组查询;
6.对数据的排序查询。
七、实验内容
在表S,C,SC上完成以下查询:
1. 查询学生的基本信息;
2. 查询“CS”系学生的基本信息;
3. 查询“CS”系学生年龄不在19到21之间的学生的学号、姓名;
4. 找出最大年龄;
5. 找出“CS”系年龄最大的学生,显示其学号、姓名;
6. 找出各系年龄最大的学生,显示其学号、姓名;
7. 统计“CS”系学生的人数;
8. 统计各系学生的人数,结果按升序排列;
9. 按系统计各系学生的平均年龄,结果按降序排列;
10. 查询每门课程的课程名;
11. 查询无先修课的课程的课程名和学时数;
12. 统计无先修课的课程的学时总数;
13. 统计每位学生选修课程的门数、学分及其平均成绩;
14. 统计选修每门课程的学生人数及各门课程的平均成绩;
15. 找出平均成绩在85分以上的学生,结果按系分组,并按平均成绩的升序排列;
16. 查询选修了“1”或“2”号课程的学生学号和姓名;
17. 查询选修了“1”和“2”号课程的学生学号和姓名;
18. 查询选修了课程名为“数据库系统”且成绩在60分以下的学生的学号、姓名和成绩;
19. 查询每位学生选修了课程的学生信息(显示:学号,姓名,课程号,课程名,成绩);
20. 查询没有选修课程的学生的基本信息;
21. 查询选修了3门以上课程的学生学号;
22. 查询选修课程成绩至少有一门在80分以上的学生学号;
23. 查询选修课程成绩均在80分以上的学生学号;
24. 查询选修课程平均成绩在80分以上的学生学号;
25. 选做:针对SPJ数据库中的四个表S,P,J,SPJ,完成教材P74-75--习题5中的查询及教材P127--习题5中的查询。
实验五 视图的定义、使用实验
一、学时
2学时
二、实验类型
综合、设计
三、实验目的
熟悉和掌握对数据表中视图的定义操作和SQL命令的使用;
熟悉和掌握对数据表中视图的查询操作和SQL命令的使用;
熟悉和掌握对数据表中视图的更新操作和SQL命令的使用,并注意视图更新与基本表更新的区别与联系;
学习灵活熟练的进行视图的操作,认识视图的作用;
四、需用仪器、设备
486及以上微机;
Windows95/97/98操作系统;
安装了SQL SERVER。
五、实验准备
1.熟悉SQL SERVER 工作环境;
2.连接到学生-课程数据库
3.复习有关视图操作的SQL语言命令;
六、实验方法及步骤
1. 视图的定义
2. 视图的查询
3. 视图的修改
七、实验内容
以S , C , SC表为基础完成以下视图定义及使用
1. 定义“IS”系学生基本情况视图V_IS 并查询结果;
2. 将S,C,SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G并查询结果;
3. 将各系学生人数,平均年龄定义为视图V_NUM_AVG并查询结果;
4. 定义一个反映学生出生年份的视图V_YEAR并查询结果;
5. 将各位学生选修课程的门数及平均成绩定义为视图V_AVG_S_G并查询结果;
6. 将各门课程的选修人数及平均成绩定义为视图V_AVG_C_G并查询结果;
7. 查询平均成绩为90分以上的学生学号、姓名和成绩;
8. 查询各课成绩均大于平均成绩的学生学号、姓名、课程和成绩;
9. 按系统计各系平均成绩在80分以上的人数,结果按降序排列;
10. 通过视图V_IS,分别将学号为“S1”和“S4”的学生姓名更改为“S1_MMM”,”S4_MMM” 并查询结果;
11. 通过视图V_IS,新增加一个学生记录 ('S12','YAN XI',19,'IS'),并查询结果;
12. 通过视图V_IS,新增加一个学生记录 ('S13','YAN XI',19,'MA'),并查询结果;
13. 通过视图V_IS,删除学号为“S12”和“S3”的学生信息,并查询结果;
14. 要通过视图V_S_C_G,将学号为“S12”的姓名改为“S12_MMM”,是否可以实现?
15. 要通过视图V_AVG_S_G,将学号为“S1”的平均成绩改为90分,是否可以实现?
八、实验思考
1.在定义视图的子查询中,是否可以使用SQL查询语句的任意子句及短语?需要注意什么?
2.视图一经定义后,就可以象基本表一样用于查询,但DBMS执行对视图的查询过程与执行基本表的查询过程有什么区别?
3.通过视图是否能更新数据?通常那些视图可以进行更新?
4.使用视图有什么好处?
5.SQL 语言提供了那些方式可以实现对数据的安全保护功能?
实验六 数据控制实验(安全性部分)
一、学时
4学时
二、实验类型
综合、设计
三、实验目的
熟悉通过SQL对数据进行安全性控制。完成作业的上机练习。
四、实验平台
实验一中安装的RDBMS及其交互查询工具。
五、实验内容和要求
使用SQL对数据进行安全性控制包括:授权与权力回收。操作完成后看看已授权的用户是否真正具有授予的数据操作的权力了;权力收回操作之后的用户是否确实丧失了收回的数据的权力。认真填写实验报告,记录所有的实验用例。
实验七 数据控制实验(完整性部分)
一、学时
4学时
二、实验类型
综合、设计
三、实验目的
熟悉通过SQL对数据进行完整性控制。完成作业的上机练习。
四、实验平台
实验一中安装的RDBMS及其交互查询工具。
五、实验内容和要求
使用SQL对数据进行完整性控制(三类完整性、CHECK短语、CONSTRAINT子句、触发器)。用实验证实,当操作违反了完整性约束条件时,系统是如何处理的。认真填写实验报告,记录所有的实验用例。
实验八 据库设计工具的使用
一、学时
4学时数
二、实验类型
综合、设计
三、实验目的
初步学习使用Power_ Designer (S_ Designer)数据库设计工具。
四、需用仪器、设备
486及以上微机;
Windows95/97/98操作系统;
安装了Power_ Designer (S_ Designer)。
五、实验准备
1.熟悉Power_Designer (S_ Designer)设计环境;
2.复习SQL语言命令;
3.复习E-R图的绘制;
4.复习数据库设计的方法、步骤
六、实验方法及步骤
1. 对一小型数据库应用系统进行需求分析;
2. 用Power_Designer (S_ Designer)建立CDM
3. 将CDM转换为PDM;
4. 用PDM,创建数据库,定义基本表
实验九 数据库设计
一、学时
4学时
二、实验类型
综合、设计
三、实验目的
学习使用Power_ Designer (S_ Designer),进行数据库的设计,并熟悉数据库的设计的基本方法和步骤,搞清数据库设计各阶段的任务
四、需用仪器、设备
486及以上微机;
Windows95/97/98操作系统;
安装了Power_ Designer (S_ Designer)。
五、实验准备
1.熟悉Power_Designer (S_ Designer)设计环境;
2.复习SQL语言命令;
3.复习E-R图的绘制;
4.复习数据库设计的方法、步骤
六、实验方法及步骤
5. 对一小型数据库应用系统进行需求分析;
6. 绘制E-R图;
7. 将E-R模型向数据模型转换;
8. 创建数据库,定义基本表
七、实验内容
学生成绩管理系统数据库的设计;
以下为选做:
1. 课程管理子系统;
2. 图书管理子系统;
3. 通讯录子系统;
4. 教室管理子系统;
5. 宿舍管理子系统;
6. 个人小帐务管理子系统;
7. 个人事务管理子系统;
8. 食堂管理子系统;
9. 卫生科医疗管理子系统;
10. 游戏管理子系统;
11. 库房入库出库管理子系统;
12. 小商店销售管理子系统;
13. 其它管理子系统(自己选题需经指导教师认可)。