关系数据库完整性.doc_第1页
关系数据库完整性.doc_第2页
关系数据库完整性.doc_第3页
关系数据库完整性.doc_第4页
关系数据库完整性.doc_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库系统原理实验报告 实验名称:关系数据库完整性实验 学号: 姓名: 任课教师: 实验日期: 2012.11.27 完成日期: 2012.11.28 一、 实验目的通过ORACLE的完整性,理解关系数据库的完整性二、 实验内容与步骤ORACLE环境中通过触发器可以定义为更复杂的完整性约束例1:通过触发器产生主键值create sequence ql minvalue 010341416;create table student(sno number(9) primary key ,sname varchar2(20);create or replace trigger add_studentbefore insert on student for each rowbegin select ql.nextval into :new.sno from dual;end;验证触发器:SQLinsert into student (sname)values(刘辉);SQLinsert into student (sname)values(刘俊波);实验结果:图1 定义触发器1图2 验证触发器1例2:创建一个行级触发器,记录下给个用户对数据库的表进行数据操纵的次数create or replace trigger audit_studentafter delete or insert or update on student for each row begin if deleting then update audit_student set del =del+1where user_name=user and table_name=student;end if;if inserting then update audit_student set ins=ins+1where user_name=user and table_name=student;end if;if updating thenupdate audit_student set upd=upd+1;where user_name =user and table_name=student;end if ;end;要求:1)定义基本表:Audit_student(user_name,table_name,del,ins,upt) 2)输入元组,例“SCOTT”,“student”,0,0,0 3)以SCOTT身份登录,对student表进行增加删除和修改操作,之后查看audit_student表的内容变化。实验结果:图3 定义触发器2图4 定义基本表audit_student图5 在表中输入元祖图6 显示基本表audit_student图7 对student表进行增加操作,显示表图8 对student表进行删除操作,显示表图9 对student表进行修改操作,显示表分析:从运行结果中可看出,当对student表进行增加、删除和修改操作的时候,在audit_student中会显示操作的相应次数,这是触发器产生的效果。例3、为教师表Teacher定义完整性规则:“职称(pos)为教授时其工资(sal)不得低于1000元,如果低于1000元,自动改为1000元”。create or replace trigger update_salbefore insert or update of sal,pos on teacher for each row when(new.pos=教授)begin if :new.sal1000 then :new.sal :=1000;end if;end;要求1)建立教师表Teacher。提示:必须包含pos,sal等属性; 2)输入必要的数据; 3 )定义上述触发器 4)更新职称为教授的元组的工资,按照大于1000和小于1000分别进行操作。 5)插入职称为教授的数据行,按照大于1000和小于1000分别进行操作。 6)理解并解释触发器定义的完整性约束。实验结果:图10 建立教师表图11 在教师表输入数据并显示图12 定义触发器3图13 更新职称为教授元组的工资(大于1000)图14 更新职称为教授元组的工资(小于1000)图15 输入职称为教授的数据行(两种情况)分析:(4)(5)小题都是按照大于1000和小于1000分别进行操作,可以看出,当操作过程中薪水小于1000的时候会自动改为1000,说明操作过程中触发触发器,对表执行触发器中的操作。三、过程分析和建议数据库完整性是指数据库中数据的正确性和相容性。数据库完整性由各种各样的完整性约束来保证。触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,但是用户不能直接调用他们。 触发器的作用: 触发器经常用于加强数据的完整性约

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论