《数据库系统基础实验指导书.doc》由会员分享,可在线阅读,更多相关《数据库系统基础实验指导书.doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、北京信息科技大学计算机学院实验指导书实验名称: 数据库系统基础 实验类别: 课程上机 适用专业: 计算机科学与技术 适用专业: 计算机科学与技术、软件工程 授课教师: 殷旭 数据库系统基础实验指导书实验一创建数据库及关系表一、实验目的1.掌握SQL Server数据库管理系统的使用,能够中该环境中进行日常数据库操作;2.掌握在SQL Server中使用图形化工具创建数据库的方法;3 掌握建立关系表的语句,掌握定义主码约束及外码约束的语句;4 掌握修改表结构的语句。二、实验要求 1了解SQL Server数据库的组成,会使用图形化工具创建数据库。2编写建立表及主、外码约束的T-SQL语句,并执行
2、这些语句,在数据库中建立符合要求的关系表。3编写修改表结构的语句。三、实验内容和步骤1创建符合如下条件的数据库:数据库的名字为:Students数据文件的逻辑文件名为:Students_dat,存放在D:Test目录下(若D:盘中无此子目录,可先建立此目录,然后再创建数据库。);文件的初始大小为:5MB; 增长方式为自动增长,每次增加1MB。日志文件的逻辑文件名字为:Students_log,也存放在D:Test目录下;日志文件的初始大小为:2MB;日志文件的增长方式为自动增长,每次增加10%。2在已建立的Students数据库中,写出创建满足下述条件的四张表的SQL语句,并查看执行结果。St
3、udent表结构列名说明数据类型约束Sno学号普通编码定长字符串,长度为7主码Sname姓名普通编码定长字符串,长度为10非空Ssex性别普通编码定长字符串,长度为2Sage年龄微整型(tinyint)Sdept所在系普通编码不定长字符串,长度为20Spec专业普通编码定长字符串,长度为10Course表结构列名说明数据类型约束Cno课程号普通编码定长字符串,长度为10主码Cname课程名普通编码不定长字符串,长度为20非空Credit学时数整型Semester学分小整型SC表结构列名说明数据类型约束Sno学号普通编码定长字符串,长度为7主码,引用Student的外码Cno课程号普通编码定长字
4、符串,长度为10主码,引用Course的外码Grade成绩小整型Teacher表结构列名说明数据类型约束Tno教师号普通编码定长字符串,长度为8非空Tname教师名普通编码定长字符串,长度为10非空Dept所在部门普通编码不定长字符串,长度为20Salary工资定点小数,小数点前4位,小数点后2位Birthday出生日期小日期时间型(smallldatetime)3 写出实现如下操作的SQL语句,并查看执行结果:(1) 在SC表中添加一个新的修课类别列:列名为:XKLB,类型为char(4)。(2) 将Course表中的Credit列的类型改为:tinyint(微整型,取值范围在0255)。(
5、3) 删除Student表的spec列。(4) 为Teacher表添加主码约束,其主码列为:Tno。4 执行下列语句,能否成功?为什么?INSERT INTO SC VALUES(S001, C01, 88)四、实验成绩考核方法 要求每个学生在实验完成后,提交一份关于此实验的实验报告。实验成绩由实验报告与现场提问决定。实验二数据操作语句一、 实验目的理解数据操作语句的功能。 二、实验要求 1根据实验一建立的数据库和关系表,导入部分数据;2编写实现数据操作功能的SQL语句。三、实验内容及步骤首先在SSMS工具中,选中Students数据库,执行“数据插入语句.sql”文件,将数据插入到Stude
6、nts数据库的三张表中(用实验二建立的三张表),然后编写出实现下述操作的SQL语句,执行并观察执行的结果。1. 查询计算机系年龄最大的三个学生的姓名和年龄。2. 统计每个学生的选课门数,并按选课门数的递增顺序显示结果。3. 列出总成绩超过200分的学生,要求列出学号、总成绩。4. 查询成绩80分以上的学生的姓名、课程号和成绩,并将结果按成绩的降序排列。5. 查询学生的选课情况,要求列出每位学生的选课情况(包括未选课的学生),并列出学生的学号、姓名、课程号和考试成绩。6. 列出“VB”课程考试成绩前三名的学生的学号、姓名、所在系和考试成绩。7. 查询哪些课程没有人选,要求列出课程号和课程名。8查
7、询计算机系学生考试成绩高于全体学生的总平均成绩的学生的姓名、考试的课程名和考试成绩。9查询VB考试成绩最低的学生的姓名、所在系和VB成绩。10. 查询VB课程考试成绩高于VB平均成绩的学生 的姓名。11. 查询平均成绩大于80分的课程的名字和学分。12. 统计每门课程的选课人数,包括有人选的课程和没有人选的课程,列出课程号,选课人数及选课情况,其中选课情况为:如果此门课程的选课人数超过100人,则显示“人多”;如果此门课程的选课人数在40100,则显示“一般”;如果此门课程的选课人数在140,则显示“人少”;如果此门课程没有人选,则显示“无人选”。13查询至少选修了“”号学生选修的全部课程的学
8、生,列出学号和所选的课程号。14查询至少选修了第2学期开设的全部课程的学生的姓名和所在系。15修改“VB”课程的考试成绩,如果是计算机系的学生,则增加4分;如果是信息系的学生则增加8分,其他系的学生增加10分。16. 删除修课成绩小于50分的学生的修课记录17. 删除信息系修课成绩小于50分的学生的修课纪录,分别用子查询和多表连接形式实现。18. 将所有选修了“c01”课程的学生的成绩加10分。19. 将计算机系所有选修了计算机文化学课程的学生的成绩加10分,分别用子查询和多表连接形式实现。20删除“VB”考试成绩最低的学生的VB修课记录。21修改高等数学的考试成绩,修改规则如下:如果是计算机
9、系学生,则加10分,如果是信息系学生则加5分,如果是数学系学生则分数不变。四、实验成绩考核方法要求每个学生在实验完成后,提交一份关于此实验的实验报告。实验成绩由实验报告与现场提问决定。实验三 数据完整性约束一、 实验目的理解数据完整性约束的功能。 二、实验要求 1掌握建立声明性数据完整性约束的SQL语句;2掌握建立过程完整性约束的SQL语句。三、实验内容及步骤1在实验一建立的Students数据库中,编写建立满足完整性要求的定义表的SQL语句,执行并观察执行结果。(说明:表名、列名均用给出的中文)(1)图书表,结构如下: 书号: 统一字符编码定长类型,长度为6,主码, 书名: 统一字符编码可变
10、长类型,长度为30,非空, 第一作者:普通编码定长字符类型,长度为10,非空, 出版日期: 小日期时间型,小于等于当前系统日期, 印刷数量: 小整型,取值范围:10005000,默认为4000, 价格:定点小数,小数部分一位,整数部分3位。(2)书店表,结构如下: 书店编号: 统一字符编码定长类型,长度为6,主码, 店名:统一字符编码可变长类型,长度为30,非空, 电话: 普通编码定长字符类型,12位长,取值形式:010-8位数字 地址: 普通编码可变长字符类型,40位长。前两个字符必须是:北京。(3)图书销售表(XSB),结构如下: 书号: 统一字符编码定长类型,长度为6,非空, 书店编号:
11、 统一字符编码定长类型,长度为6,非空, 销售日期: 小日期时间型,非空,默认值为系统当前日期, 销售数量: 微整型,取值大于0, 主码(书号,书店编号,销售日期); 书号为引用“图书表”的外码;书店编号为引用“书店表”的外码。2 执行下列两条数据插入语句,是否都能执行成功?为什么?INSERT INTO 图书表 VALUES(T0001, 数据库系统基础, 张三, 2010-2-1, 3000,28.0)INSERT INTO 图书表 VALUES(T0002, 计算机网络, 张三, 2010-1-1, 500,36.0)3 执行下列两条数据插入语句,是否执行成功?为什么?INSERT IN
12、TO 书店表 VALUES(S001, 新华书店, , 北京市海淀区)4 执行下列两条数据插入语句,是否执行成功?为什么?INSERT INTO 图书销售表(书号,书店编号,销售数量) VALUES(T0001, S001,20)5 编写实现如下功能的触发器:(1) 限制考试成绩必须在0100分之间。(2) 限制不能将不及格的考试成绩改为及格。(3) 限制不能删除考试成绩不及格学生的该门课程的选课及考试记录。(4) 限制每个学生每个学期选课的门数不能超过6门。(5) 限制每个学期开设的课程总学分必须在2025之间。四、实验成绩考核方法要求每个学生在实验完成后,提交一份关于此实验的实验报告。实验
13、成绩由实验报告与现场提问决定。实验四安全管理一、实验目的1. 掌握安全管理的过程。2. 掌握在SQL Server环境中实现安全管理的操作。二、实验要求 1. 能够在SQL Server环境中建立SQL Server身份验证的登录账户。2. 能够建立数据库用户。3. 编写给用户授权的SQL语句。4. 验证安全管理的效果。三、实验内容及步骤1建立SQL Server认证的登录帐户:u1、u2、u3,并将u1、u2、u3映射为实验一建立的Students数据库的用户。2用u1建立一个新的连接,并在students数据库中执行下述语句,是否能成功?为什么?SELECT * FROM Course3用
14、系统管理员建立一个连接,并授予u1具有对course和SC的查询权限,授予u2具有对course的插入权限。4用u2建立一个新的连接,并在students数据库中执行下述语句,能否成功?为什么?INSERT INTO course VALUES(C011,数据仓库技术,2,7)再执行下述语句,能否成功?为什么?SELECT * FROM course5在u1建立的连接中,再次执行语句: SELECT * FROM course这次能否成功?但如果让u1执行下列语句:INSERT INTO course VALUES(C012,软件工程,4,6)能否成功?为什么?6用u3建立一个新的连接,并在S
15、tudents数据库中执行如下语句,能否成功? CREATE TABLE NEW_TABLE(C1 int PRIMARY KEY, C2 char(4)7在系统管理员建立的连接中,执行下述语句:GRANT CREATE TABLE TO u3GOCREATE SCHEMA u3 AUTHORIZATION u3GOALTER USER u3 WITH DEFAULT_SCHEMA = u38在u3建立的连接中,在Students数据库中执行下列语句,这次是否成功?为什么? CREATE TABLE u3.NEW_TABLE(C1 int PRIMARY KEY, C2 char(4)四、实验成绩考核方法 要求每个学生在实验完成后,提交一份关于此实验的实验报告。实验成绩由实验报告与现场提问决定。