合肥师范学院数据库实验三.doc
文本预览下载声明
合肥师范学院实验报告
姓名: 课程名称:数据库原理 院(系):计算机学院 专业/年级: 2014计算机科学与技术(嵌入式班)
实验三——数据库完整性与安全性(4课时)
实验目的
理解实体完整性、参照完整性、用户自定义完整性的概念,学习三类完整性的实现,了解违反完整性的结果;
掌握MS SQL SERVER中的有关用户登录认证及管理方法,熟练使用自主存取控制进行权限管理;
实验预习内容
在认真阅读教材及实验指导书【2.1 实体完整性】、【2.2 参照完整性】、【2.3 用户自定义完整性】、【2.4 触发器】、【2.5 综合案例】和【3.1 用户标识与鉴别】、【3.2 自主存取控制】、【3.3 视图机制在自主存取控制上的应用】、【3.4 Public角色在安全性中的应用】、【3.8 综合案例】的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。
使用SCHOOL数据库
创建一张新表CLASS,包括Class_id(varchar(4)),Name(varchar(10)),Department(varchar(20))三个属性列,其中Class_id为主码:
Create table CLASS (Class_id varchar(4) primary key,
name varchar(10),
department varchar(20)
);
执行两次相同的插入操作(’0001’,’01csc’,’cs’),结果如何;
insert into class
values(’0001’,’01csc’,’cs’);
使用SQL命令创建一张学生互助表,要求:包括学生编号、学生姓名、学生帮助对象的编号,每个学生有且仅有一个帮助对象,帮助的对象必须是已存在的学生。
create table studenthelp(sid char(10),
sname char(30),
shid char(10) unique,
foreign key(sid) references students(sid)
);
使用STC数据库,修改设置,完成以下2种不同的要求,请写出对应的语句或简述操作过程:
当更新、删除STU表中记录时,若SC表中有此学生的记录,则拒绝;
alter table sc
drop FK_SC_STU;
alter table sc
add constraint fk_sno foreign key (sno) references stu (sno)
on delete no action
on update no action;
当更新、删除STU表中记录时,若SC表中有此学生的记录,则自动更新或删除;
alter table sc
drop fk_sno;
alter table sc
add constraint fk_sno foreign key (sno) references stu (sno)
on delete cascade
on update cascade;
使用SQL命令完成以下任务:
创建Worker表(表结构见指导书P73)
create table worker(number char(5),
name char(8),
sex char(1),
sage int,
deparment char(20)
);
定义约束U1、U2,其中U1规定Name字段取值唯一,U2规定sage字段上限是28;
use school
create table worker(
number char(5),
name char(8) constraint u1 unique,
sex char(1),
sage int constraint u2 check(sage=28),
deparment char(20),
constraint pk_worker primary key(number))
插入一条合法记录;
insert into worker
values(20161,王丽,n,23,科技部);
插入一条违反U2约束的记录,简述观察到的结果如何?并分析原因;
insert into worker
values(20162,李民,n,30,办公部);
alter table worker
drop u1;
修改约束U2,令sage的值大于等于0;
alter table worker
drop u2;
alter table worker
add c
显示全部