数据库概论 --- 完整性约束

一、数据库的完整性约束  ---  数据的正确性和相容性

注:数据的完整性和安全性是两个不同的概念。数据库的完整性是为了防止数据库中含有不符合语义的的数据,也就是防止数据库中含有不正确的数据。数据库中的安全性是为了保护数据库防止恶意的破坏和非法的存取。

二、为维护数据库的完整性,DBMX必须能够

1、提供定义完整性约束条件的机制

完整性约束条件也称为完整性规则。sql使用了一系列概念来描述完整性,包括关系模型的实体完整性、参照完整性和用户定义完整性。这些完整性一般有sql的ddl语句来实现。他们作为数据库模式的一部分存入数据字典。

2、提供完整性检查的方法

DBMS 中检查数据是否满足完整性约束条件的机制称为完整性检查。一般在insert,update,delete语句执行后开始检查,也可以在事务提交后检查。检查这些操作后数据库中的数据是否违背了完整性约束。

3、违约处理

DBMS若发现用户的操作违背了完整性约束条件,就会采取一定的动作,如拒绝(no action)执行该操作,或级联(cascade)执行其他操作,进行违约处理以保证数据的完整性。

三、实体完整性 --- 在create table 中用primary key定义。对单属性构成的码有两种说明方法,一种是定义为列级约束条件,另一种是定义为表级约束条件。对多个属性构成的码只有一种说法,即定义为表级约束条件。

1、若属性(一个或一组属性)A是基本关系R的主属性,则A不能取空值; 所谓空值 就是 不知道或不存在的值

2、对于实体完整性规则说明如下:

①实体完整性规则是针对基本关系而言的,一个基本表通常对应现实世界的一个实体集,如学生关系对应学生的集合

②现实中的实体是可区分的,即他们具有唯一标识;

③相应的,关系模型中以主码作为唯一标识,

④主码中的属性即主属性不能取空值,

四、参照完整性  --- 关系模型中的实体之间的联系用关系来表示

eg1:学生实体和专业实体可以用下面的关系来表示

学生(学号,姓名,年龄,性别,专业号);

专业(专业号,专业名称

 这两种关系存在属性的引用,学生关系中的“专业号”引用专业关系中的主码“专业号”。被参照的属性必须是确实存在的。即专业关系中又该专业的记录。

eg2:学生、课程、学生与课程之间的多对多联系

学生(学号,姓名,性别,专业号,年龄)

课程(课程号,课程名,学分)

选修(学号,课程号,成绩) 

注:不仅两个和两个以上的关系间可以存在引用关系,同以关系内部属性间也可能存在引用关系。

eg:在学生(学号,姓名,性别,专业号,年龄,班长)关系中,班长参照主码学号

1、参照完整性规则 --- 若属性(或属性组)F是基本关系R的外码,它与基本关系s的主码K相对应(基本关系R和S不一定是不同的关系),则对于R中的每个元组在F上的值必须:

或者取空值(F的每一个属性值为空)

或者等于S中某个元组的主码值

五、用户定义的完整性  ---  针对某一具体应用的数据必须满足的语已要求

注:任何关系数据库系统都应该支持实体完整性和参照完整性

1、属性上的约束条件定义

列值非空(not null)

列值唯一(unique短语)

检查列值是否满足一个布尔表达式(check 短语)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值