数据库完整性与安全性实验(10页).doc
《数据库完整性与安全性实验(10页).doc》由会员分享,可在线阅读,更多相关《数据库完整性与安全性实验(10页).doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-1. 实验五 数据库完整性与安全性实验1.1 实验目的1. 通过对完整性规则的定义实现,熟悉了解Mysql中完整性保证的规则和实现方法,加深对数据完整性的理解。2. 通过对安全性相关内容的定义,熟悉了解Mysql中安全性的内容和实现方法,加深对数据库安全性的理解1.2 实验内容1.2.1 完整性实验(1) 分别定义学生数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束;(2) 分别向学生表、课程表插入具有相同学号和相同课程编号的学生数据和课程数据,验证其实体完整性约束;(3) 向学生选课表中插入一条数据,课程编号是课程表中没有的,验证参照完整性约束;(4) 删除学生表中的所有数据
2、,验证参照完整性约束;(5) 定义存储过程,完成查询某个学生的选课情况,并执行。(6) 定义触发器,当向学生表插入新的一条记录时,将所有学生出生日期加1;并对其进行测试。(7) 用sql完成以上操作。1.2.2 安全性实验(1) 定义一新的登陆帐号、数据库用户,并授予其访问学生数据库的读权限;(2) 分别用sa用户和新定义的用户访问学生数据库,并对其中的学生表数据进行修改;(3) 再次用此用户访问学生数据库,并对其中的学生表数据进行修改。(4) 用SQL语句分别完成以上内容。1.3 实验环境Window8操作系统Mysql 8.0版本数据库Mysql workbench 8.0可视化工具Mys
3、ql命令行编辑器1.4 实验步骤及结果分析1.4.1 完整性1.4.1.1 分别定义学生数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束1. 首先因为在之前创建表的时候定义了主键,因此,我们需要先将所有表的主键撤销掉,然后重新创建主键。Mysql语句(删除主键):alter table student drop primary key;alter table course drop primary key;alter table sc drop primary key;2. 重新创建主键Mysql语句(创建主键):alter table student add primary k
4、ey(sno);alter table course add primary key(cno);alter table sc add primary key(sno,cno);3. 到此,我们已经重新添加了各表的主键,接下来我们为SC表添加外键。Mysql语句(创建外键):alter table sc add constraint foreign key(sno) references student(sno);alter table sc add constraint foreign key(cno) references course(cno);4. 主键和外键都添加完毕,我们观察一下目前
5、各表的结构。Mysql语句(查看表定义):show create table student;show create table course;show create table sc;由上面结果可知:我们成功创建了各表的主键,并成功为SC表创建了sno,cno两个外键。1.4.1.2 分别向学生表、课程表插入具有相同学号和相同课程编号的学生数据和课程数据,验证其实体完整性约束1. 首先查找一下student表中的学生信息,以便下面添加重复学号的学生Mysql语言: select * from student;2. 向student表中插入一个重复学号的学生,验证完整性约束。我选择了30203
6、学号,由上面的结果可知,该学号已经存在。Mysql语句(添加一个新的学号为30203的学生):insert into student value(30203,茹兴康,男,1997-07-07 00:00:00,计算机,3174);上面结果显示:添加失败,因为sno为student表的主键,不能重复,验证了其完整性约束。3. 同上,我们向course表中添加一个具有相同cno的课程。Mysql语句:select *from course;insert into course value(C01,数据库,50,1,春);上面结果显示:成功验证了完成性约束。1.4.1.3 向学生选课表中插入一条数据
7、,课程编号是课程表中没有的,验证参照完整性约束向学生表中添加一条数据,其中课程编号在course中不存在,我选择了C06号。Mysql语句(向学号为30203的学生选课中添加C06选课):insert into sc values(30203,C06,100);由结果来看:插入失败,因为course的cno是SC的外码,C06在course中不存在,由于参照完整性约束,所以添加失败,验证成功。1.4.1.4 删除学生表中的所有数据,验证参照完整性约束删除学生表,验证参照完整性约束。Mysql语句:drop table student;由结果来看:由于student中的sno是sc的一个外码,所
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 完整性 安全性 实验 10
限制150内