《数据库技术及应用》实验
班级___________ 学号___________ 姓名_____________
一、实验目的
1. 熟练掌握使用SQL Server或MY SQL完成数据库的创建、删除;数据表的建立、删除;表结构的修改;数据的插入、删除、修改与查询;视图的建立和查询。
2. 加深对表的实体完整性、参照完整性和用户自定义完整性的理解。
二、实验环境
微机;Windows操作系统;SQL SERVER或MY SQL
三、考核标准
实验环节按照以下标准进行考核:
1)是否按时完成实验作业;
2)完成实验作业的质量;
3)实验报告的撰写质量。
四、实验内容
实验一:数据库的完整性约束
[实验目的]
通过对完整性定义不当实例的执行,加深对数据完整性的理解。
熟练掌握SQL命令行方式定义实体完整性、参照完整性和用户自定义完整性的方法。
[实验内容]
1)依次执行如下SQL命令,分析执行结果并回答以下问题:
分析实体完整性约束在数据处理中的作用;
比较not null约束和primary key约束的区别。
create table test1
(id int not null,
lname varchar(20),
fname varchar(20),
constraint uk_test1_1 unique(lname,fname));
insert into test1(lname,fname) values(‘kong’, ‘sales’);
insert into test1 values(1,‘kong’, ‘sales’);
insert into test1 values(1,‘kong’, ‘sales’);
select * from test1;
alter table test1 add constraint pk_test1 primary key(id);
insert into test1 values(1,’zhang’,’sales’)
实验过程及结果
2) 依次执行如下SQL命令,并分析命令执行失败的原因。
create table test2
(rid int,
name varchar(20),
constraint fk_test2_1 foreign key(rid) references test1(id),
constraint fk_test2_2 check name like ‘k%’);
insert into test2 values(2, ‘kong’);
insert into test2 values (1, ‘kong’);
select * from test1;
delete test1;
实验过程及结果
实验二:数据库的创建与修改
[实验目的]
1)创建、修改数据库。
2)查看和修改数据库属性。
[实验内容]
1)创建名为“学生管理数据库”的数据库;它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。
2)将数据库的名称由“学生管理数据库”更名为“学生管理”。
实验过程及结果
实验三:基本表的创建与修改
[实验目的]
1)熟练掌握创建、修改基本表。
2)熟练掌握对基本表中的数据进行插入、修改和删除等更新操作。
[实验内容]
1)在“学生管理”数据库中创建学生关系表S、课程关系表C以及成绩表SC(先阅读试验三和实验四,合理设置字段的变量类型和长度);
创建学生关系表S:
学号
姓名
性别
年龄
所在系
Sno
Sname
Ssex
Sage
Sdept
创建课程关系表C:
课程号
课程名
先行课
学分
Cno
Cname
Cpno
Ccredit
创建学生-课程表SC:
学号
课程号
成绩
Sno
Cno
Grade
2) 将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。在表中加入至少4个元组,第一个为本人信息(插入的数据要能够满足实验三和实验四的查询要求);
3) 在表S上增加“出生日期”属性列;
4) 删除表S的“年龄” 属性列;
实验过程及结果
实验四:创建和管理索引
[实验目的]
1)掌握创建、删除索引的方法。
[实验内容]
1)在SC表的学号上创建聚簇索引;
2)在SC表的成绩属性上建立非聚簇索引;
3)删除C表课程号属性上的聚簇索引。
实验过程及结果
实验五:数据库的备份与恢复
[实验目的]
1)掌握备份数据库的方法。
2)掌握如何从备份中恢复数据的方法。
[实验内容]
1) 创建备份设备;
2)对“学生管理”数据库进行备份;
3)对“学生管理”数据库进行恢复;
实验过程及结果
实验六:查询
[实验目的]
1) 熟练掌握SQL的SELECT简单查询语句的使用。
2)熟练使用SQL语句进行多表连接查询、嵌套查询、集合查询等复杂查询。
[实验内容]
1) 查询课程号为“C01”,且该门课程成绩在85分以上的学生姓名;
2)查询课程“数据库技术及应用”的成绩在85分以上的所有学生的姓名;
3)使用嵌套查询获得 “管理信息系统”课程最高分的学生学号。
4)查询上了“张伟”同学所修全部课程的学生姓名。
实验过程及结果
实验七:视图定义与管理
[实验目的]
1)能够创建与修改视图。
2)掌握对视图的查询操作。
[实验内容]
创建一个名为stud_view1视图,从“学生管理”数据库中查询出学生的学号、姓名、选修的课程名称以及课程成绩。
使用stud_view1视图,查询“数据库技术及应用”课程的平均成绩。
实验过程及结果
实验八:数据表和数据库的删除
[实验目的]
1)掌握删除数据表、视图和数据库的SQL语句。
[实验内容]
1)删除“stud_view1”视图;
2)删除“课程”数据表;
3)删除“学生管理”数据库。
实验过程及结果
实验九:
数据库的并发控制
[实验目的]
掌握事务并发和并发控制(MY SQL和SQL SERVER二选一)。
[MY SQL实验内容]
自己设计实验内容,使用未提交读(Read Uncommitted, RU)隔离级别,避免并发中的丢失修改问题。
自己设计实验内容,使用提交读(Read Committed, RC)隔离级别,避免读脏数据问题。
自己设计实验内容,使用可重复读(Repeatable Read, RR)隔离级别,避免不可重复读问题。
4)自己设计实验内容,使用串行读(Serializable)隔离级别,避免数据不一致问题。
[SQL SERVER实验内容]
自己设计实验内容,使用一级封锁协议,避免并发中的丢失修改问题。
自己设计实验内容,使用二级封锁协议,避免读脏数据问题。
自己设计实验内容,使用三级封锁协议,避免不可重复读问题。
实验过程及结果
课程学习自我评价及心得体会: