“21天好习惯”第一期-19

数据库完整性

数据库的完整性
数据的 正确性 相容性
数据的完整性和安全性是两个不同概念
数据的完整性
防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据
防范对象:不合语义的、不正确的数据
数据的安全性
保护数据库防止恶意的破坏和非法的存取

防范对象:非法用户和非法操作

为维护数据库的完整性,DBMS必须:

1. 提供定义完整性约束条件的机制
2. 提供完整性检查的方法
3. 违约处理

 

实体完整性

定义

关系模型的实体完整性
CREATE  TABLE 中用 PRIMARY KEY 定义
单属性构成的码有两种说明方法
定义为列级约束条件
定义为表级约束条件
对多个属性构成的码只有一种说明方法
定义为表级约束条件

例如

Student表中的Sno属性定义为码

         (1)在列级定义主码

CREATE TABLE Student
                (Sno  CHAR(9)  PRIMARY KEY,
                 Sname  CHAR(20) NOT NULL,     
                 Ssex  CHAR(2) ,
                 Sage  SMALLINT,
                 Sdept  CHAR(20));

(2)在表级定义主码

CREATE TABLE Student
        (Sno  CHAR(9),  
         Sname  CHAR(20) NOT NULL,
         Ssex  CHAR(2) ,
         Sage  SMALLINT,
         Sdept  CHAR(20),
         PRIMARY KEY (Sno)
      ); 

例如

SC表中的SnoCno属性组定义为码

      CREATE TABLE SC
           (Sno   CHAR(9)  NOT NULL, 
            Cno  CHAR(4)  NOT NULL,  
            Grade    SMALLINT,
            PRIMARY KEY (Sno,Cno)     /*只能在表级定义主码*/
          ); 

检查与违约处理

 

插入或对主码列进行更新操作时, RDBMS 按照实体完整性规则自动进行检查。包括:
1. 检查主码值是否唯一,如果不唯一则拒绝插入或修改
2. 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改

 

检查记录中主码值是否唯一的一种方法是进行全表扫描 

 

索引

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值