静态列级约束数据的完整性——数据的正确性、有效性和相容性
即将数据控制在有效的范围内,或要求数据之间满足一定的关系
(课本P7)例如:学生的年龄必须是整数,取值范围为14~29;学生的性别只能是男或女;学生的学号是唯一的等等
这些都是指数据的完整性
数据是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据库的完整性是非常重要的
数据库的完整性数据库的完整性与安全性完整性安全性目的防止合法用户使用数据库时向数据库中加入不合语义的数据防止用户非法使用数据库,包括恶意破坏数据和越权存取数据防范对象不合语义的数据非法用户和非法操作完整性控制机制完整性约束条件定义机制完整性约束条件——加在数据库数据之上的语义约束条件
完整性检查机制检查数据是否满足完整性条件的机制,也就是检查用户发出的操作请求是否违背了完整性约束条件
违约反应如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性
完整性约束条件完整性约束条件是完整性控制机制的核心
完整性约束条件作用的对象:a
列:对属性的取值类型、范围、精度、排序等的约束条件;b
元组:对元组中各个属性间的联系的约束;c
关系:对若干元组间、关系集合上以及关系之间的联系的约束
对于这三类对象,其状态既可以是静态的也可以是动态的
静态:对静态对象的约束是反映数据库状态合理性的约束,静态约束是最重要的一类完整性约束
动态:对动态对象的约束是反映数据库状态变迁的约束
六类完整性约束条件
静态列级约束静态元组约束静态关系约束动态列级约束动态元组约束动态关系约束对象状态动态列级约束动态元组约束动态关系约束动态④⑤⑥静态列级约束静态元组约束静态关系约束静态①②③对象粒度列元组关系静态列级约束静态列级约束:对一个列的取值域的说明;最常见、最容易实现的一类完整性约束五类静态列级约束1)数据类型