数据库系统概论:参照完整性和关系模型
需积分: 35 158 浏览量
更新于2024-08-15
收藏 5.59MB PPT 举报
"ORACLE中的参照完整性续-数据库系统概论 第四版 王珊等的课件答案等 完全版收藏版"
在Oracle数据库中,参照完整性是确保数据一致性和完整性的关键机制之一。它规定了在一个表中的外键字段必须引用另一个表中存在的主键值,从而保持两个表之间的关联。在提供的描述中,创建了一个名为EMP的表,该表具有一个外键约束FK_DEPTNO,这个约束引用了DEPT表的主键(Deptno)。
首先,我们来看创建EMP表的SQL语句:
```sql
CREATE TABLE EMP
(Empno NUMBER(4),
Ename VARCHAR(10),
Job VARCHAR2(9),
Mgr NUMBER(4),
Sal NUMBER(7,2),
Deptno NUMBER(2),
CONSTRAINT FK_DEPTNO
FOREIGN KEY (Deptno)
REFERENCES DEPT(Deptno));
```
在这个例子中,`Empno`、`Ename`、`Job`、`Mgr`、`Sal` 和 `Deptno` 是EMP表的列,`Empno`很可能是主键。`Deptno`是外键,它引用了名为DEPT的表的`Deptno`列。`CONSTRAINT FK_DEPTNO`定义了一个名为FK_DEPTNO的外键约束,它确保`EMP`表中的`Deptno`值必须存在于`DEPT`表的`Deptno`列中。
参照完整性的实现有以下几个方面:
1. **插入规则**:当尝试在EMP表中插入一条记录时,如果`Deptno`的值不在DEPT表的`Deptno`列中,那么插入操作将被拒绝,除非启用了级联插入或默认值处理。
2. **更新规则**:如果试图更新EMP表中已存在的记录,改变`Deptno`的值,那么新值必须在DEPT表的`Deptno`列中存在。否则,更新操作会被阻止。
3. **删除规则**:当试图从DEPT表中删除一个`Deptno`值,如果该值在EMP表中有引用,那么删除操作会根据外键约束的设置来处理。默认情况下,Oracle不允许这样的删除,除非设置了级联删除,这会同时删除所有引用该值的记录。
此外,`VARCHAR2`是Oracle中的一个数据类型,类似于其他数据库系统的`VARCHAR`,但更精确,用来存储可变长度的字符串。`NUMBER(p,s)`用于存储数值,其中`p`是总位数,`s`是小数位数。
在《数据库系统概论》课程中,除了参照完整性,还涵盖了多个主题,如:
- **关系数据库**:介绍了关系模型的基本概念,如关系、元组、属性和域,以及关系操作如选择、投影、并、差、笛卡尔积等。
- **SQL**:标准的关系数据库查询语言,用于创建、查询、更新和删除数据库中的数据,以及定义数据库结构。
- **关系数据理论**:包括关系代数、关系演算、规范化理论,如第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和BCNF。
- **数据库设计**:涵盖概念设计、逻辑设计和物理设计,以及E-R模型、关系设计和数据库的反范式化。
- **数据库恢复技术**:讨论事务、故障类型和恢复策略,如日志记录和检查点。
- **并发控制**:处理多用户同时访问数据库时可能出现的问题,如死锁和活锁,以及解决这些问题的算法,如两阶段锁定协议。
- **数据库安全性**:涉及用户权限、角色、审计和访问控制,以保护数据库免受未授权访问。
- **数据库完整性**:除了参照完整性,还包括实体完整性、用户定义的完整性,以及如何通过约束来维护这些完整性。
整个课程的学习方法包括听课、阅读教材、个人研究报告和集体项目,旨在培养对数据库理论和实践的全面理解。个人研究报告需要深入研究一个数据库相关的技术,从问题背景、历史、核心原理到未来发展进行探讨。集体项目则涉及到实际的数据库应用开发,利用编程语言与数据库系统进行交互。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2008-10-14 上传
2021-10-03 上传
2012-07-16 上传
633 浏览量
240 浏览量
冀北老许
- 粉丝: 19
- 资源: 2万+