第五章数据库完整性

5.1_数据库完整性概述

1.数据库的完整性
数据的正确性和相容性


2.数据的完整性和安全性的区别
数据的完整性:防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据
数据的安全性:保护数据库防止恶意的破坏和非法的存取


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

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

5.2_实体完整性

实体完整性就是主键的primary key定义

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

  • 列级约束:create table table_name(id int primary key)–在当前列直接定义primary
  • 表级约束:create table table_name(id int,primary key(id))–在当前表中单独定义primary

2.提供完整性检查的方法和违约处理

  • 检查主码值是否唯一,如果不唯一则拒绝插入或修改
  • 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改

5.2_参照完整性

实体完整性就是外键的foreign key的定义

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

  • 表级约束:create table table_name(id int,foreign key(id) references table_name(id))–只有表级约束

2.提供完整性检查的方法和违约处理
在这里插入图片描述

5.3_用户定义的完整性

用户定义的完整性就是针对某一具体属性值必须满足的语义要求

1.提供定义完整性约束条件的机制:(CREATE TABLE时定义)

  • 列值非空(NOT NULL)
  • 列值唯一(UNIQUE)
  • 检查列值是否满足一个布尔表达式(CHECK)
    例:CREATE TABLE SC
    (Sno int UNIQUE,
    age int NOT NULL,
    sex char(2),
    check(sex in (‘男’,‘女’) and age > 18)- -性别只能是男或女,年龄大于18
    )

2.提供完整性检查的方法和违约处理

猜你喜欢

转载自blog.csdn.net/qq_43907296/article/details/110798663