复习六——数据库完整性

数据库完整性概念

数据库完整性是指保护数据库中数据的

  • 正确性:数据的合法性
  • 有效性:数据是否在有效范围内
  • 相容性:指表示同一个事实的两个数据应该一致

完整性规则定义

  • D(Data):约束作用的数据对象
  • O(Operation):触发完整性检查的数据库操作,立即检查还是延迟检查。
  • A(Assertion):数据对象要满足的断言或语义规则
  • C(Condition):受A作用的数据对象值的谓词
  • P(Procedure):违反完整性规则时触发的过程

完整性约束按约束作用类型分类

域完整性

域是一组具有相同类型的值的集合。SQL支持域的概念。通过以下语句创建域,并对其中的限制命名。

create Domain GenderDomain char(2)
    constraint chkGD check (value in (‘男‘,‘女‘));

# 使用域,sex的取值来自GenderDomain
create Table student
(
    Sno char(10),
    sex GenderDomain,
    Sname char(20)
)

实体完整性

关系模式R的主码不可为空

参照完整性

参照关系R的任一个外码值必须等于被参照关系S中所参照的候选码的某个值,或者为空

完整性的实施途径

约束(Constraint)

  • 主键约束(Primary Key)
  • 唯一键约束(Unique)
  • 外键约束(Foreign Key)
  • 检查约束(Check)
  • 默认值约束(Default)

触发器(Trigger)

与特定表关联的存储过程。当在该表上执行DML操作时,可以自动触发该存储过程执行相应的操作

规则(Rule)

创建规则

create rule rule_name as condition_expression
# rule_name:是新规则的名称。
# condition_expression:是定义规则的条件。规则可以是where子句中任何有效的表达式

绑定规则

sp_bindrule ‘rule_name‘,‘object_name‘;

举例

create rule r1_email
as
@val like ‘%@%‘

sp_bindrule ‘r1_email‘,‘student.Email‘

个人感觉这样的规则跟域的作用差不多

断言(Assertion)

create assertion asser1 check(60>=all
(select count(*) from sc group by c#));

对断言涉及的数据进行操作后会触发断言;断言为假,操作将会被拒绝。

原文地址:https://www.cnblogs.com/terieqin/p/9215824.html

时间: 2024-11-11 13:18:14

复习六——数据库完整性的相关文章

数据库复习3——数据库完整性

数据库复习 CH5 完整性 5.1 完整性约束 数据库完整性是指数据库中数据在逻辑上的一致性.正确性.有效性和相容性,那么完整性约束就是指用户插入.修改和删除操作时,DBMS为了保证数据库逻辑上的一致性.正确性.有效性和相容性所必需要检查的约束条件 C.J.Date在<An Introduction to Database Systems>一书中描述了四种完整性约束: 类型约束 属性约束 关系变量约束 数据库约束 C.J.Date提出的理论多半是建立在他自创的Tutorial D这个概念型数据

Hibernate复习(六)检索策略

1.立即检索策略 默认的检索策略. 缺点: select语句的数目太多,需要频繁的访问数据库,会影响检索性能.如果需要查询n个Customer对象,那么必须执行n+1次select查询语句. 这种检索策略没有利用SQL的连接查询功能.利用left join 只需一条sql语句既可以实现N+1次查询的结果.并且可能造成内存空间的浪费. 2.延迟策略 在一对多关联级别中对于<set>元素,应该优先考虑使用延迟检索策略. ? 优点 – 由应用程序决定需要加载哪些对象,可以避免执行多余的select语

数据库 chapter 5 数据库完整性

第五章 数据库完整性 数据库的完整性是指数据库的正确性和相容性. 例如,学生学号必须唯一,性别只能是男或女等等: 和数据安全性的区别: 数据的完整性是为了防止数据库中存在不正确的数据,数据库的安全性是保护数据库防止恶意的破坏和非法的存取.因此,完整性检查和控制的防范对象是不合语义的,不正确的数据,防止它们进入数据库.安全性控制的防范对象是非法用户和非法操作,防止他们对数据库数据的非法存取. 为维护数据库的完整性,DBMS必须能够: 提供定义完整性约束条件的机制: 提供完整性检查的方法: 违约处理

数据库复习1——数据库体系结构和关系系统

数据库复习 CH2 数据库体系结构 2.1 数据库体系结构层次 数据库体系结构可以分成3个层次: 外部层次 概念层次 内部层次 外部层次是指每个用户用不同的高级语言来访问数据库所面对的接口,概念层次数据库信息的表示以及模的式定义(包括安全性和完整性约束等等),而内部层次就是的存储表示(非物理记录也非机器相关),数据库的设计需要保证这三个层次之间的独立性: 概念层和内部层之间物理数据的独立性 外部层和概念层之间逻辑数据的独立性 2.2 DBA和DBMS DBA(数据库管理员)必须很好的了解企业的数

SQL 数据库完整性

作者 : Dolphin 原文地址:http://blog.csdn.net/qingdujun/article/details/27109035 一.实体完整性定义 [例1]将Student表中的Sno属性定义为码. CREATE TABLE Student ( Sno CHAR(10) PRIMARY KEY, /*在列定义主码*/ Sname CHAR(20) NOT NULL, Sage SMALLINT ); 或者: CREATE TABLE Student ( Sno CHAR(10

第12讲:数据库完整性

大纲: 数据库完整性的概念及分类 SQL语言实现静态(列/关系)完整性 SQL语言实现动态完整性 一.前言 1. 数据库完整性是数据库的一种特性(在任何情况下的正确性.有效性和一致性),其由DBMS保证实现 ①广义完整性:语义完整性.并发控制.安全控制.故障恢复 ②狭义完整性:特指语义完整性,DBMS通常有专门的完整性管理机制与程序来处理语义完整性问题 2. 回顾关系模型中的三个完整性:实体完整性.参照完整性.用户自定义完整性 用户自定义完整性即是上述语义完整性,而这也是我们这讲的主题. 3.

数据库完整性和约束

数据库的完整性 数据库约束是保证数据库完整性的方法 ,数据库完整性分为实体完整性.域完整性和参照完整性 实体完整性 实体完整性要求表中的主键字段不能为空且不能重复: 域完整性 域完整性要求表中数据都在有效范围内: 参照完整性 参照完整性保证了相关联的表的数据一致性: 约束的使用 约束是保证表中数据完整性和一致性的手段,分为主键约束.外键约束.检查约束.唯一约束.非空约束五种: 主键约束 主键约束在每个数据表中只有一个,但主键约束可以有多个列组成: -- 添加主键约束 alter table ta

MySql学习(六) —— 数据库优化理论(二) —— 查询优化技术

逻辑查询优化包括的技术 1)子查询优化  2)视图重写  3)等价谓词重写  4)条件简化  5)外连接消除  6)嵌套连接消除  7)连接消除  8)语义优化 9)非SPJ优化 一.子查询优化 1. 什么是子查询:当一个查询是另一个查询的子部分时,称之为子查询. 2. 查询的子部分,包含的情况: a) 目标列位置:子查询如果位于目标列,则只能是标量子查询,否则数据库可能返回类似“错误:子查询只能返回一个字段 ( [Err] 1242 - Subquery returns more than 1

《数据库系统概论》 -- 5 数据库完整性

概念 数据库的完整性是指数据的正确性与相容性 正确性:数据是满足现实世界语义,反映当前状况 相容性:同一数据库对象在不同关系表中的数据是符合逻辑的 作用 防止数据库中存在不符合语义的不正确数据,防范对象对象是不合语义.不正确的数据 实体完整性--列级/表级约束条件 使用         关系模型实体完整性用PRIMARY KEY表示 说明         单码为主码,则该实体完整性约束可作为表级约束条件或列级约束条件 多码为主码,该实体完整性约束只可作为表级约束条件 检查         对基本