关系数据库中的约束与操作
1. 函数依赖与规范化理论
函数依赖是数据库设计中的重要概念。如果 K 是关系 R 的候选键,A 是 R 的任意属性集,那么函数依赖 K → A 必然成立。函数依赖是规范化理论的基础,直至 Boyce/Codd 范式。虽然存在更高层次的规范化,但它们涉及除函数依赖本身之外的其他依赖类型。
2. 完整性约束
完整性约束可以大致看作是一个布尔表达式,要求其计算结果为真。我们将这些约束分为数据库约束、关系变量约束、属性约束和类型约束。
2.1 类型约束
类型约束精确地定义了构成给定类型的一组值。例如:
TYPE S# POSSREP { C CHAR
CONSTRAINT SUBSTR ( C, 1, 1 ) = 'S'
AND LENGTH ( C ) >= 2
AND LENGTH ( C ) <= 5 } ;
这个类型定义限制供应商编号必须由 2 到 5 个字符组成的字符串表示,且第一个字符必须是 ‘S’。
2.2 属性约束
属性约束本质上是声明指定关系变量的指定属性为指定类型。例如, STATUS INTEGER (关系变量 S 定义的一部分)将属性 STATUS 的值约束为 INTEGER 类型。
2.3 关系变量约束
关系变量约束是对单个关系变量的约束,仅用相关关系变量来表示,不涉及其他关系变量。以下是一些示例:
- CONSTRAINT RC1 IS_EMPTY ( S
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



