预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

1.实验五数据库完整性与安全性实验 实验目的 通过对完整性规则的定义实现,熟悉了解Mysql中完整性保证的规则和实现方法,加深对数据完整性的理解。 通过对安全性相关内容的定义,熟悉了解Mysql中安全性的内容和实现方法,加深对数据库安全性的理解 实验内容 完整性实验 分别定义学生数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束; 分别向学生表、课程表插入具有相同学号和相同课程编号的学生数据和课程数据,验证其实体完整性约束; 向学生选课表中插入一条数据,课程编号是课程表中没有的,验证参照完整性约束; 删除学生表中的所有数据,验证参照完整性约束; 定义存储过程,完成查询某个学生的选课情况,并执行。 定义触发器,当向学生表插入新的一条记录时,将所有学生出生日期加1;并对其进行测试。 用sql完成以上操作。 安全性实验 定义一新的登陆帐号、数据库用户,并授予其访问学生数据库的读权限; 分别用sa用户和新定义的用户访问学生数据库,并对其中的学生表数据进行修改; 再次用此用户访问学生数据库,并对其中的学生表数据进行修改。 用SQL语句分别完成以上内容。 实验环境 Window8操作系统 Mysql8.0版本数据库 Mysqlworkbench8.0可视化工具 Mysql命令行编辑器 实验步骤及结果分析 完整性 分别定义学生数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束 首先因为在之前创建表的时候定义了主键,因此,我们需要先将所有表的主键撤销掉,然后重新创建主键。 Mysql语句(删除主键): altertablestudentdropprimarykey; altertablecoursedropprimarykey; altertablescdropprimarykey; 重新创建主键 Mysql语句(创建主键): altertablestudentaddprimarykey(sno); altertablecourseaddprimarykey(cno); altertablescaddprimarykey(sno,cno); 到此,我们已经重新添加了各表的主键,接下来我们为SC表添加外键。 Mysql语句(创建外键): altertablescaddconstraintforeignkey(sno)referencesstudent(sno); altertablescaddconstraintforeignkey(cno)referencescourse(cno); 主键和外键都添加完毕,我们观察一下目前各表的结构。 Mysql语句(查看表定义): showcreatetablestudent; showcreatetablecourse; showcreatetablesc; 由上面结果可知:我们成功创建了各表的主键,并成功为SC表创建了sno,cno两个外键。 分别向学生表、课程表插入具有相同学号和相同课程编号的学生数据和课程数据,验证其实体完整性约束 首先查找一下student表中的学生信息,以便下面添加重复学号的学生 Mysql语言:select*fromstudent; 向student表中插入一个重复学号的学生,验证完整性约束。我选择了30203学号,由上面的结果可知,该学号已经存在。 Mysql语句(添加一个新的学号为30203的学生): insertintostudentvalue(‘30203’,’茹兴康’,’男’,’1997-07-0700:00:00’,’计算机’,’3174’); 上面结果显示:添加失败,因为sno为student表的主键,不能重复,验证了其完整性约束。 同上,我们向course表中添加一个具有相同cno的课程。 Mysql语句: select*fromcourse; insertintocoursevalue(‘C01’,’数据库’,’50’,’1’,’春’); 上面结果显示:成功验证了完成性约束。 向学生选课表中插入一条数据,课程编号是课程表中没有的,验证参照完整性约束 向学生表中添加一条数据,其中课程编号在course中不存在,我选择了C06号。 Mysql语句(向学号为30203的学生选课中添加C06选课): insertintoscvalues(‘30203’,’C06’,’100’); 由结果来看:插入失败,因为course的cno是SC的外码,C06在course中不存在,由于参照完整性约束,所以添加失败,验证成功。 删除学生表中的所有数据,验证参照完整性约束 删除学生表,验证参照完整性约束。 Mysql语句:droptablestudent; 由结果来看:由于student中的sn