数据库5关系数据库完整性实验.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
数据库系统原理 实验报告 实验名称:关系数据库完整性实验 任课教师:霍纬刚 学号:100341324 姓名:汪何媛 完成日期:2012.11.28 1. 实验目的 通过ORACLE的完整性,理解关系数据库的完整性 2. 实验内容与步骤 ORACLE环境中通过触发器可以定义为更复杂的完整性约束 例1:通过触发器产生主键值 create sequence ql minvalue 010341416; create table student(sno number(9) primary key ,sname varchar2(20)); create or replace trigger add_student before insert on student for each row begin select ql.nextval into :new.sno from dual; end; 验证触发器: SQL>insert into student (sname)values('刘辉'); SQL>insert into student (sname)values('刘俊波'); 例2: 【数据库5关系数据库完整性实验】 本实验主要探讨的是关系数据库中的完整性概念,通过Oracle数据库管理系统进行实践,旨在加深对数据库完整性的理解。完整性是数据库设计的核心要素之一,它确保了数据库中的数据准确、一致,避免了错误的插入、更新或删除操作。 1. **完整性类型** - **实体完整性**:确保每张表中的主键字段都有唯一且非空的值,例如在实验中的`student`表,`sno`字段作为主键,通过`create sequence`生成唯一的序列号,保证了实体完整性。 - **参照完整性**:确保引用的外键存在的同时,也遵守相应的约束,防止出现无效的引用。 - **用户定义的完整性**:根据具体业务需求定制的完整性规则,如实验中例3的教师表`Teacher`,当职称为教授时,工资不得低于1000元。 2. **触发器的应用** - **触发器是实现用户定义完整性的重要工具**。例如,在`student`表中,`add_student`触发器在插入新记录前自动获取序列`ql`的下一个值,并赋给`sno`字段,实现了自增主键的功能。 - **审计触发器**(例2)用于记录用户对表的操作,如插入、删除和更新的次数。当相应操作发生时,触发器会更新审计表`audit_student`中的统计信息。 - **条件触发器**(例3)在特定条件满足时执行,例如当教师的职称为教授时,更新或插入操作若使工资低于1000元,会自动将其设置为1000元。 3. **实验步骤与实践** - 定义表结构和触发器,如`student`、`audit_student`和`teacher`表。 - 插入、删除和更新数据,观察触发器的效果,验证完整性约束是否得到正确执行。 - 分析实验结果,理解触发器如何实现用户定义的完整性规则。 4. **实验结论** - 通过实验,我们可以看到触发器如何动态地维护数据库的完整性,无论是在主键的生成还是业务规则的强制执行上。 - 触发器使得数据库能够自动处理某些特定情况,增强了数据库的自我保护能力,提高了数据的准确性和一致性。 5. **重要性** - 数据库完整性对于任何应用系统来说都是至关重要的,因为它保证了数据的准确性,防止了由于用户错误或恶意操作导致的数据损坏。 - 学习和理解如何在Oracle等数据库管理系统中实现完整性,对于数据库管理员和开发人员来说是必备的技能。 通过这个实验,学生能够深入理解数据库完整性的重要性,掌握利用Oracle的触发器实现复杂业务规则的方法,这对于数据库设计和管理具有实际意义。同时,实验也强调了理论知识与实际操作相结合的重要性,使学习更为生动和有效。
- 粉丝: 192
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
- 1
- 2
前往页