89652511 2016-10-26
广义完整性:语义完整性,并发控制,安全控制,故障恢复
狭义完整性:专指语义完整性
完整性涉及实体完整性,参照完整性,用户自定义完整性
由数据库管理员来定义完整性规则,当用户进行数据库操作时。先由完整性控制程序根据完整性规则来检查请求是否合法,如果合法则交给DBMS执行更新操作。
按约束对象分类
[blockquote]
施加于某一列上的约束,比如姓名只能是男或者女
[/blockquote]
[blockquote]
涉及到多列,比如城市的取值必须依赖于省份
[/blockquote]
按约束来源分类
[blockquote]
函数依赖约束,主键约束,外键约束
[/blockquote]
[blockquote]
来自用户的约束,取值范围等等
[/blockquote]
按约束状态分类
[blockquote]
在任意时刻均满足的约束:例如人的年龄应该大于0而小于150(假定人最多活150)
[/blockquote]
[blockquote]
要求属性值从一种状态到另一种状态的约束,例如:人的年龄只能增加,不能减少
[/blockquote]
当我们在创建表的时候可以添加列完整性约束和表完整性约束。下面是列约束的基本格式
示例
我们创建了一个student表,在表中定义了下面属性
表约束格式
示例
图中的蓝色字体是表约束,定义了主键为C#,定义了一个约束为ctcc,该约束涉及到两列Chours和Credit。
为表定义外键,当然上面的表约束也可以直接变为列约束
check中也可以直接写查询语句
修改约束