数据库系统实验指导书新版.docx
- 文档编号:28551693
- 上传时间:2023-07-18
- 格式:DOCX
- 页数:18
- 大小:123.93KB
数据库系统实验指导书新版.docx
《数据库系统实验指导书新版.docx》由会员分享,可在线阅读,更多相关《数据库系统实验指导书新版.docx(18页珍藏版)》请在冰豆网上搜索。
数据库系统实验指导书新版
实验一创建数据库和表
一、实验目的及要求:
1.了解SQLSERVER数据库的逻辑结构和物理结构
2.了解表的结构特点
3.了解SQLSERVER的基本数据结构
二、实验任务:
1.学会在企业管理器中创建数据库和表
2.学会在T-SQL语句创建数据库和表
三、操作要点:
1.启动企业管理器,并创建数据库和表
2.启动SQL查询分析器
3.掌握创建数据库和表分别是CREATEDATABASE和CREATETABLE
四、注意事项:
1.在MicrosoftSQLServer2000的查询分析器(QueryAnalyzer)中使用单条SQL语句,其末尾不需要分号“;”作为命令结尾标记。
2.通常,SQLServer2000对大多数末尾带有分号的SQL命令都能顺利执行,但对少数的SQL命令,末尾若带分号,则SQLServer2000会给出错误信息提示。
五、实验学时:
2学时
六、实验重点及难点:
1.列级完整性约束条件
2.空值的概念
3.CREATEDATABASE和CREATETABLE的用法
七、实验步骤:
(一)企业管理器创建数据库和表
1.启动企业管理器;
2.创建数据库Company,并创建一个主数据文件Company_Data1,一个二级数据文件Company_Data2,一个日志文件Company_Log,以及一个自定义文件组Company_Group,该组中有数据文件Company_Data3,设置各文件属性。
(二)T-SQL语句创建数据库和表
1.启动SQL查询分析器;
2.创建数据库University,并创建一个主数据文件University_Data和一个日志文件University_Log;
表5.5关系Reports
Sno
Cno
Grade
S01
S01
S02
S02
S02
S03
S03
S04
C01
C03
C01
C02
C03
C01
C02
C03
92
84
90
94
82
72
90
75
表5.4关系Courses
Cno
Cname
Pre_Cno
Credits
C01
C02
C03
C04
C05
C06
C07
英语
数据结构
数据库
DB_设计
C++
网络原理
操作系统
C05
C02
C03
C07
C05
4
2
2
3
3
3
3
表5.3关系Students
Sno
Sname
Ssex
Sage
Sdept
S01
S02
S03
S04
S05
S06
王建平
刘华
范林军
李伟
黄河
长江
男
女
女
男
男
男
21
19
18
19
18
20
自动化
自动化
计算机
数学
数学
数学
3.建立表5.3所示的学生表Students,各属性为Sno-学号、Sname-姓名、Ssex-性别、Sage-年龄、Sdept-所在系。
要求Sno和Sname不能为空值,且取值唯一,Sno为键码。
4.建立表5.4所示的课程表Courses,各属性为Cno-课程号,Cname-课程名,Pre_Cno-先修课程号,Credits-学分,要求Cno和Cname不能为空值,Cno取值唯一,且为键码。
5.建立表5.5所示的成绩表Reports。
各属性名为Sno-学号,Cno-课程号和Grade-考试成绩,要求Sno和Cno不能为空,且取值唯一,Sno+Cno为键码。
实验二SQL基本表的插入、删除与修改
一、实验目的及要求:
熟练掌握基本表的插入、删除与修改,为后继学习作准备。
二、实验任务:
1.了解并掌握SQL查询分析器及企业管理器的使用;
2.掌握基本表的插入、删除与修改。
三、操作要点:
1.启动SQL查询分析器
2.掌握进行插入、删除与修改分别是INSERT、DROP和UPDATE
四、注意事项:
1.注意每次对表的修改,命令执行完后要查看表的变动刷新表。
2.特别注意在执行插入、删除与修改等更新操作时,要保证数据的完整性。
3.SQLServer2000增加了删除属性的命令。
五、实验学时:
2学时
六、实验重点及难点
1.T-SQL语句对基本表的定义进行删除与修改,并插入基本表数据。
2.T-SQL语句对数据库操作的灵活控制功能。
七、实验步骤:
1.启动SQL查询分析器;
2.选择SQLSERVER后,按确认;
3.选择University数据库;
4.验证如下例题:
表5.4关系Courses
Cno
Cname
Pre_Cno
Credits
C01
C02
C03
C04
C05
C06
C07
英语
数据结构
数据库
DB_设计
C++
网络原理
操作系统
C05
C02
C03
C07
C05
4
2
2
3
3
3
3
表5.3关系Students
Sno
Sname
Ssex
Sage
Sdept
S01
S02
S03
S04
S05
S06
王建平
刘华
范林军
李伟
黄河
长江
男
女
女
男
男
男
21
19
18
19
18
20
自动化
自动化
计算机
数学
数学
数学
4.1修改基本表
向基本表Students中增加“入学时间”属性列,其属性名为Sentrancedate,数据类型为DATETIME型。
将Sage(年龄)的数据类型改为SMALLINT型。
删除Sname(姓名)必须取唯一值的约束。
说明:
为了保证后面例子能够顺利运行,请大家一定将属性列Sentrancedate从Students表中删除。
为了调试SQL语句方便,这里没有在表Reports中增加参照完整性约束,甚至没有定义主键。
4.2删除Students表。
说明:
此表删除后,请立即将其建立起来,以便后面的例子使用。
4.3向表中添加元组
将一个学生元组(S01,王建平,男,21,计算机)添加到基本表Students中。
请同学们用这个命令,按表5.3提供的数据,将其余5个学生的元组也添加到基本表Students中。
向Courses表插入元组(‘C01’,’英语’,’’,4)。
请同学们用这个命令,按表5.4提供的数据,将其余6门课程的信息插入Courses表中。
将学习成绩的元组(‘S01’,’C01’)添加到基本表Reports中。
实验三数据库的查询
一、实验目的及要求
1.熟练掌握SELECT查询语句的使用
2.掌握无条件、有条件查询及查询结果排序与分组
二、实验任务
1.掌握查询语句的一般格式。
2.掌握无条件、有条件查询及查询结果排序与分组
三、操作要点
1.进行查询时先进入查询分析器
2.明白了解无条件、有条件查询及查询结果排序与分组
四、注意事项
1.SELECT语句的基本语法格式
2.SELECT语句的执行方法
3.SELECT语句和ORDERBY子句的作用和用法
4.SELECT语句和GROUPBY子句的作用和用法
五、实验学时:
4学时
六、实验重点及难点
1.SELECT语句的基本语法
2.掌握数据汇总的方法
七、实验步骤
1、查询全体学生的详细记录。
2、查询全体学生的姓名(Sname)、学号(Sno)、所在系(Sdept)。
3、查询选修了课程的学生学号。
4、查询数学系全体学生的学号(Sno)和姓名(Sname)。
5、查询所有年龄在19~22岁(包括19岁和22岁)之间的学生姓名(Sname)及年龄(Sage)。
6、查询年龄不在19-22岁之间的学生姓名(Sname)及年龄(Sage)。
7、查询自动化系和计算机系学生的学号(Sno)、姓名(Sname)和性别(Ssex)。
8、查询所有姓刘的学生的姓名(Sname)、学号(Sno)和性别(Ssex)。
9、查询课程名为“DB_设计”的课程号(Cno)和学分(Credits)。
10、查询以"DB_"开头,且倒数第2个汉字字符为“设”的课程的详细情况。
11、假设某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。
试查询缺少成绩的学生的学号(Sno)和相应的课程号(Cno)。
12、查询全体学生情况,查询结果按所在系的系名(Sdpet)升序排列,同一系中的学生按年龄(Sage)降序排列。
13、求学生的总人数
14、求选修了课程的学生人数
15、求课程和选修了该课程的学生人数
16、求选修超过2门课的学生学号
17、查询计算机科学系的学生及年龄不大于19岁的学生
18、查询计算机科学系的学生与年龄不大于19岁的学生的交集
19、查询计算机科学系的学生与年龄不大于19岁的学生的差集
20、查询选修课程‘C01’的学生集合与选修课程‘C02’的学生集合的交集
21、查询选修课程‘C01’的学生集合与选修课程‘C02’的学生集合的差集
实验四连接、嵌套和集合查询
一、实验目的及要求:
1.熟练掌握连接、嵌套和集合查询的使用。
2.学习各种连接、嵌套和集合查询方法。
二、实验任务
1.掌握连接、嵌套和集合查询语句的一般格式。
2.掌握连接、嵌套和集合查询的各种使用方法。
三、操作要点
1.创建表时候,在查询分析器中输入程序,编译时查看附录的出错信息再进行修改。
2.函数除了系统函数以外也可以自定义函数。
3.为了避免程序丢失,把程序保存在到规定的目录中去。
四、注意事项
1.注意T-SQL各种运算符、控制语句的功能及使用方法。
2.注意各种系统函数的调用方法。
五、实验学时:
4学时
六、实验重点及难点
1.明白两个表之间的联系是通过公共属性实现的。
2.连接、嵌套和集合查询的各种使用方法。
3.多重嵌套的使用。
七、实验步骤
1、求学生号以及其选修课程的课程号和成绩,但查询结果中只能有一个SNO字段。
2、求选修了课程”c01”且成绩在70分以下或成绩在90分以上的学生的姓名、课程名称和成绩。
3、求选修了课程的学生的学生姓名、课程号和成绩。
4、求年龄大于’李伟’的所有学生的姓名、系和年龄。
5、求选修了课程’C02’或’C03’的学生的学号、课程号、课程名和成绩。
6、求与‘李伟’年龄相同的学生的姓名和系。
7、求选修了课程名为’数据结构’的学生的学号和姓名。
8、求比数学系中某一学生年龄大的学生的姓名和系。
9、求比数学系中全体学生年龄大的学生的姓名和系。
10、求选修了课程C04的学生的姓名和系。
11、求与‘黄河’同系且同龄的学生的姓名和系。
12、求与‘黄河’同系,且年龄大于‘黄河’的学生的信息。
13、求数学系中年龄相同的学生的姓名和年龄。
14、检索至少选修所有授课程中一门课程的男学生姓名。
15、检索选修某课程的学生人数多于2人的课程名称。
16、查询被一个以上的学生选修的课程号。
17、求未选修课程’C04’的学生的姓名。
18、求选修了全部课程的学生的姓名。
19、求成绩比所选修课程平均成绩高的学生的学号、课程号、和成绩。
20、查询所有未选课程的学生姓名和所在系。
实验五数据库系统设计
一、实验目的及要求
1、通过实验使学生加深对数据完整性的理解,学会创建和使用触发器。
2、通过实验使学生加深对数据安全性的理解,并掌握SQLServer中有关用户,角色及操作权限的管理方法。
3、通过实验使学生了解SQLServer的数据备份和恢复机制,掌握SQLServer中数据库备份和恢复的方法。
4、根据数据库系统设计的基本步骤,完成某一具体数据库系统的需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库运行维护等功能。
二、实验任务
1、使用SQL设计触发器,通过SQLServer企业管理器定义它们。
2、在SQLServer企业管理器中,设置SQLServer的安全认证模式。
通过SQLServer企业管理器,实现对SQLServer的用户和角色管理。
分别通过SQLServer企业管理器和SQL的数据控制功能,设置和管理数据操作权限。
3、用企业管理器创建一个备份设备。
利用向导为学生选课数据库生成一个完全备份。
在企业管理器中恢复学生选课数据库
4、完成某一具体系统的需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库运行维护等功能,并提交数据库。
三、实验学时:
8学时
四、实验内容及步骤
(一)创建和使用触发器
(1)实验的内容
使用SQL设计触发器,通过SQLServer企业管理器定义它们。
具体完成下面例题:
利用触发器来保证学生选课库中选课表的参照完整性,以维护其外码与参照表中的主码一致。
CREATETRIGGERSC_insertedON选课
FORINSERT
ASIF(SELECTCOUNT(*)
FROM学生,inserted,课程
WHERE学生.学号=inserted.学号ANDinserted.课程号=课程.课程号)=0
ROLLBACKTRANSACTION
(2)实验步骤
1、在企业管理器中创建触发器
1)在企业管理器中,由服务器开始逐步扩展到触发器所属表的数据库(本例为学生选课数据库),打开表文件夹,在表窗口中用鼠标右击触发器所属的表(本例为选课表)。
2)在弹出菜单上选择“所有任务”“管理触发器”项,则弹出如图所示的触发器属性对话框。
图触发器属性对话框
如果要新建触发器,在文本[T]的文本框中输入创建触发器的SQL语句(见实验内容),单击“检查语法”按钮进行语法的检查,检查无误后,单击确定按钮。
3)如果要修改触发器,则在名字弹出项中选择要修改的触发器名(本例为SC_inserted),然后在文本[T]的文本框中对已有的内容进行修改,检查无误后单击“确定”按钮。
4)如果要删除触发器,则在名字弹出项中选择要删除的触发器名(本例为SC_inserted),并检查文本[T]的文本框中的内容,看是否选得正确,最后单击“删除”按钮。
2、验证触发器
1)在企业管理器中,由服务器开始逐步扩展到触发器所属表的数据库(本例为学生选课数据库)。
此时,可在选课表中输入一条记录(学号:
’96001’,课程号:
’C8’,成绩:
88)。
显然,这条记录是不符合参照完整性的。
通过企业管理器输入时,会出现错误提示,违反了数据库的约束(如果约束C5和C6同时存在的话)。
2)如果约束C5和C6存在,则删除之
3)打开SQL查询分析器,输入语句“INSERTINTO选课VALUES(‘96001’,‘C8’,88)”,查看执行结果。
4)删除触发器(本例为SC_inserted),重复步骤3。
(二)数据安全性
1.在SQLServer企业管理器中为所属的SQL服务器设置为SQLServer和WindowsNT混合安全认证模式。
其步骤如下:
1)在企业管理器窗口中展开服务器组,用鼠标右击需要设置的SQL服务器,在弹出的菜单中选择“属性”项,则出现SQLServer属性对话框,如图1所示。
图1SQLServer属性对话框
2)在SQLServer属性对话框中选择“安全性”选项卡。
3)身份验证选择“SQLServer和Windows”单选项。
2.在SQLServer企业管理器中为自己建立一个服务器用户、数据库用户和数据库角色。
1)在企业管理器窗口中展开服务器组,展开服务器,用鼠标单击“安全性”文件夹右侧的‘+’,用鼠标右击“登录”,在弹出的菜单中选择“新建登录”项,则出现新建登录对话框,如图2所示。
图2新建登录对话框
2)在新建登录对话框中有常规,服务器角色和数据库访问三个选项卡。
在常规选项卡中,输入用户名(本例为王平),选择SQLServer安全验证,输入用户口令。
在服务器角色选项卡中,需要确定用户所属的服务器角色,在本例中采用缺省值即可。
在数据库访问选项卡中,需要指定此登录可以访问的数据库(本例选中学生选课数据库)和“学生选课”的数据库角色(在本例中采用缺省值即可)。
单击“确定”按钮,既完成了创建登录用户的工作。
3.关闭SQLServer企业管理器,打开SQL查询分析器。
选择SQLServer安全验证,用户名为王平,输入用户口令,连接到SQLServer。
在“查询”窗口中可以输入SQL语句。
如“SELECT*FROM学生”。
运行后,得到消息“拒绝了对对象‘学生’(数据库‘学生选课’,所有者‘dbo’)的SELECT权限。
”。
可见用户王平没有对学生表的SELECT权限。
4.要想将学生选课数据库的操作权限赋予数据库用户王平,有两种方法。
方法一:
通过企业管理器
1)在企业管理器窗口中展开服务器组,展开服务器,用鼠标单击“数据库”文件夹右侧的‘+’,用鼠标单击学生选课数据库文件夹右侧的‘+’,用鼠标右击“用户”。
在屏幕右侧的“用户”窗口中选择“王平”项,用鼠标右击,在弹出的菜单中选择“属性”项,则出现数据库用户属性对话框,如图3所示。
图3数据库用户属性对话框
2)单击图3中的权限按钮,则出现数据库用户权限对话框,如图4所示。
对话框的下面是有关数据库用户和角色所对应的权限表。
这些权限均以复选框的形式表示。
复选框有三种状态:
“√”为授权;“×”为废除权;空为撤权。
在表中可以对用户或角色的各种对象操作权(SELECT,INSERT,UPDATE,DELETE,EXEC和DRI)进行授予或撤消。
图4数据库用户权限对话框
3)在图4中找到学生表,授予SELECT权限,即让学生表与SELECT列交叉的复选框为“√”即可。
方法二:
通过SQL的数据控制功能
对用户王平授权,必须是数据库对象拥有者以上用户授予。
我们可以以系统管理员或sa用户登录进入查询分析器。
在查询分析器中输入授权语句“GRANTSELECTON学生TO王平;”,然后执行即可。
(三)数据库备份和恢复实验步骤
1、在企业管理器中创建一个备份设备
1)在企业管理器中扩展服务器,在管理文件夹中找到备份文件夹。
用鼠标右键单击该文件夹,在弹出的菜单中选择“新建备份设备”项,则出现“备份设备属性”对话框,如图所示。
在名称文本框中输入设备名(本例为学生选课设备1)。
单击“确定”按钮,备份设备就创建成功了。
图“备份设备属性”对话框
2)在备份文件夹的窗口中出现了新创建的设备。
选中该设备,用鼠标右键单击,在弹出的菜单中选择“属性”项,则出现“备份设备属性”对话框。
2、利用向导为学生选课数据库生成一个完全备份。
1)在企业管理器中扩展服务器,在数据库文件夹中选中要备份的数据库文件夹(学生选课数据库)。
选择菜单[工具]|[向导],则出现向导选择对话框。
在向导选择对话框中,单击管理左边的“+”号,使之展开。
选择“备份向导”项,单击“确定”按键。
2)进入创建备份向导后,首先出现的是欢迎使用创建数据库备份向导对话框,其中简单介绍了该向导的功能。
单击“下一步”后,就会出现“选择要备份数据库”对话框。
选择好要备份数据库后,单击“下一步”,就会出现“键入备份的名称和描述”对话框。
键入备份名称为“学生选课备份”,单击“下一步”,就会出现“选择备份类型”对话框。
这里我们选择“数据库备份”,单击“下一步”,就会出现“备份验证和调度”对话框。
这里我们选择默认状态,单击“下一步”,就会出现“正在完成备份数据库向导”对话框。
单击“完成”按钮,完成备份数据库向导,生成数据库备份。
3、在企业管理器中恢复学生选课数据库。
1)打开学生选课数据库,删除其中一个表(如选课表),即当前的学生选课数据库中没有选课表。
2)恢复学生选课数据库。
步骤如下:
在企业管理器中扩展服务器,在数据库文件夹中选中要备份的数据库文件夹(学生选课数据库)。
用鼠标右键单击,在弹出的菜单中选择“所有任务”项,在随之出现的级联菜单中选择“还原数据库”项,则出现还原数据库对话框。
在此例中按“确定”按钮即可完成恢复工作。
3)再打开学生选课数据库,看一看当前的学生选课数据库中有没有选课表
4)修改学生选课数据库备份计划,要求每月1号进行数据库备份,重复步骤2、3。
5)用其他方法生成备份。
(四)分组完成一具体数据库系统的需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库运行维护等,并在SQLServer环境中实现数据库及相关功能。
具体要求如下:
1)描述系统的需求,可选择数据流图和数据字典;
2)产生系统的E-R图(至少有4个以上的实体);
3)根据E-R图产生至少满足3NF数据基本表,并说明理由;
4)数据库实施(保证数据的完整性);
5)根据需要至少生成2个角色,4个用户,并对用户进行授权;
6)数据库运行和维护,包括数据库备份和还原。
每位学生需要提交备份的数据库和相关设计文档。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 实验 指导书 新版