.外键(Foreign key)强制引用完整性。
.主键(Primary key)可增强实体的完整性。
.候选键(Candidate keys)与主键唯一地标识关係(表)中的元组(记录),但未选择它作为主键。
.视图(View)是一个虚拟表,担任该连接的一个或多个感兴趣的表和选择字段的访问控制机制。
数据库完整性(Database Integrity)
通过以物理方式实现可靠的存储,操作性地控制并发性以及通过声明性地指定完整性约束并以程序方式将触发器和工作单元定义为事务来通过语义方式应用控件,可以实现数据库的完整性。
为了使信息具有完整性,其“健全性”必须高于质疑。信息应该是完整的(应该是全部事实)和有效的(只有全部是事实)。雷曼(Leyman)和罗勒(Roller)识别三种类型的完整性:
• **物理完整性(Physical integrity)**可防止由于介质故障和电磁干扰等问题而导致数据丢失;
• **操作完整性(Operational integrity)**与并发访问数据的同步有关;
• **语义完整性(Semantic integrity )**可确保数据保留其含义,即数据正确反映了其建模的真实世界。
资料来源:Reinhardt A. Botha
语义完整性(Semantic Integrity)
语义完整性有三种常见的类型:
. **实体完整性(Entity integrity )**要求每个实体都有唯一的密钥。(IBM)
. **引用完整性(Operational integrity )**是所有外键的所有值均有效的状态。(IBM)
. **域完整性(Domain integrity)**指定必须在定义的域上声明关係数据库中的所有列。(维基百科)
诚信约束(Integrity Constraints)
根据Can Turker和Michael Gertz的说法,SQL-99提供了以下关键字来以声明方式指定完整性约束:
.PRIMARY KEY 指定表的主键
.FOREIGN KEY(REFERENCES)对一个外键进行罚款,该外键的值必须与唯一/主键的值匹配
.NOT NULL防止列採用空值
.DEFAULT 设置列的默认值
.UNIQUE 一列或一组列在表中必须具有唯一值
.CHECK 定义了一个通用完整性约束,该约束必须对于表的每一行都适用,
.DOMAIN 创建一个(受限制的)列域,并且
.ASSERTION 定义了一个命名的通用完整性约束,该约束可以引用多个表。
-RDBMS(表)
-RDBMS(关係)
参考
.在关係数据库中实现语义完整性
.SQL-99和商业(对象)关係数据库管理系统中的语义完整性支持
.实体完整性,参照完整性和参照约束
资料来源: Wentz Wu QOTD-20210207