湖南大学数据库实验四完整性约束视图存储过程和数据安全.doc

上传人:李司机 文档编号:1143885 上传时间:2022-07-04 格式:DOC 页数:8 大小:214KB
返回 下载 相关 举报
湖南大学数据库实验四完整性约束视图存储过程和数据安全.doc_第1页
第1页 / 共8页
湖南大学数据库实验四完整性约束视图存储过程和数据安全.doc_第2页
第2页 / 共8页
湖南大学数据库实验四完整性约束视图存储过程和数据安全.doc_第3页
第3页 / 共8页
湖南大学数据库实验四完整性约束视图存储过程和数据安全.doc_第4页
第4页 / 共8页
湖南大学数据库实验四完整性约束视图存储过程和数据安全.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《湖南大学数据库实验四完整性约束视图存储过程和数据安全.doc》由会员分享,可在线阅读,更多相关《湖南大学数据库实验四完整性约束视图存储过程和数据安全.doc(8页珍藏版)》请在三一办公上搜索。

1、 1 / 8实验四实验四 完整性约束、视图、存储过程和数据安全完整性约束、视图、存储过程和数据安全实验目的:实验目的:1、掌握创建各种实体完整性约束的方法。2、掌握创建和使用视图、存储过程和索引的方法。3、掌握视图实现数据安全的基本方法。4、掌握数据库的基本备份和恢复技术。实验内容:实验内容:本实验在 ORACLE 数据库平台上进行操作,ORACLE 数据库的基本操作请参考实验二,本实验中的各种数据都来自于实验三中的各个表。实验主要内容如下:1、学习创建四类完整性约束的方法。2、学习创建视图、存储过程和索引的方法。3、学习利用用户管理,角色管理,以及利用视图实现数据安全。4、学习 ORACLE

2、 数据库的基本备份和恢复技术。实验过程:实验过程:1.实体完整性约束方法一:create table course (o varchar(10) not null,dno char(8) not null,ame varchar(20) not null,hours number not null,term number not null,credit number not null,constraint pk_course primary key (o);方法二: 2 / 8altertablecourseaddconstraintpk_courseprimary key(o) ;2.参照完

3、整性约束alter table COURSE add constraint FK_COURSE_DEPARTMEN_DEPARTME foreign key (dno)references department (dno);3.域约束前面建表时用的数据类型,NOT NULL 等都属于域约束;alter table student add constraint chk_sex check (sex in (男,女);alter table student modify sex default 男;alter table student_course_teacher add constraint

4、chk_score check (score=0 AND score=100);4.业务规则约束用触发器实现一下:create or replace trigger tri_del_teacherafter delete on teacherfor each rowdeclare- local variables herebegindelete from teacher_coursewhere tno=:old.tno;delete from student_course_teacherwhere tno=:old.tno;end tri_del_teacher;/备注:最后面的斜杠“/”不能

5、少。5.视图的创建和查询 3 / 8createview myview_course asselect s.sno 学号, sname 某, classno 班级from student s, teacher t, course c, student_course_teacher sctwhere t.tname =杨金民and c.ame =数据库系统and sct.semester = 2010/01and s.sno = sct.snoand t.tno = sct.tnoand c.o = sct.o;6.存储过程创建存储过程:createorreplaceprocedure mypr

6、oc(ame1 varchar2,semester1 varchar2) asclassno1 student.classno%type;avg1 integer;beginselect classno, avg(score) 4 / 8into classno1,avg1from student s, course c, student_course_teacher sctwhere c.ame = ame1and sct.semester =semester1 and s.sno = sct.snoand c.o = sct.oandrownum=1groupby classno; dbm

7、s_output.put_line(班级编号:|classno1| |平均分:|avg1);end;/创建成功以后,使用存储过程:CALL myproc(数据库系统,2010/01);7.索引create index my_student_idx on student(sex); -对表中的 SEX 建立索引8.用户管理create user test identified by tiger; -创建grant connect to test; -连接 5 / 8GRANT privilegeList | ALL PRIVILEGES-授权ON ObjectNameTO Authorizati

8、onIdList | PUBLICWITH GRANT OPTION9.角色管理create role myrole; -创建grant select on maqiang.teacher_course to myrole; -授权grant select on maqiang.student to myrole;grant myrole to test; -使用户具有 mvrole的权限select * from maqiang.teacher_course; -验证是否具有该权限select * from maqiang.student;revoke myrole from test; -

9、取消角色权限10.视图create view myview_student as select sno,sname from maqiang.student; -创建grant select on myview_student to test; -授权 6 / 811.数据备份将 student_course_teacher 表进行备份和恢复。缓冲区大小:可以更改,这里就用的默认值;导出文件:输入导出路径,文件名后缀.dmp;用户,表:这里可以选择是导出用户下所有的,还是选定的表,如果具有管理员权限,则可多一个选项,导出整个数据库。导出表数据:选择 yes 的话就会把表的数据也导出,no 的话就只导出表结构,不导出数据;压缩区: 选择 yes 会进行压缩。要导出的表或分区: 这里填写要导出的表名,本例中就是student_course_teacher,可以看到,成功导出,如果还要导出别的表,接着输入表名,没了的话就直接回车结束。12.数据恢复首先:删除表, drop table student_course_teacher; 7 / 8然后,利用上面的备份文件恢复表student_course_teacher小结:小结:通过本次试验,掌握了四类完整性约束的写法,学会创建和使用视图,进一步了解数据安全和数据库的基本备份和恢复技术。 8 / 8

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号