湖南大学数据库实验四完整性约束视图存储过程和数据安全.doc
-
资源ID:19007
资源大小:214KB
全文页数:8页
- 资源格式: DOC
下载积分:10金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
湖南大学数据库实验四完整性约束视图存储过程和数据安全.doc
1 / 8实验四实验四 完整性约束、视图、存储过程和数据安全完整性约束、视图、存储过程和数据安全实验目的:实验目的:1、掌握创建各种实体完整性约束的方法。2、掌握创建和使用视图、存储过程和索引的方法。3、掌握视图实现数据安全的基本方法。4、掌握数据库的基本备份和恢复技术。实验内容:实验内容:本实验在 ORACLE 数据库平台上进行操作,ORACLE 数据库的基本操作请参考实验二,本实验中的各种数据都来自于实验三中的各个表。实验主要内容如下:1、学习创建四类完整性约束的方法。2、学习创建视图、存储过程和索引的方法。3、学习利用用户管理,角色管理,以及利用视图实现数据安全。4、学习 ORACLE 数据库的基本备份和恢复技术。实验过程:实验过程: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.参照完整性约束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 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.视图的创建和查询 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 myproc(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; dbms_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 AuthorizationIdList | 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; -取消角色权限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