当前课程知识点:数据库系统原理与开发 >  第2章 数据库关系模型 >  2.2 关系模型原理 >  2.2.2关系模型原理-2

返回《数据库系统原理与开发》慕课在线视频课程列表

2.2.2关系模型原理-2在线视频

下一节:2.3 PostgreSQL数据库关系操作实践

返回《数据库系统原理与开发》慕课在线视频列表

2.2.2关系模型原理-2课程教案、知识点、字幕

同学们,大家好!

我是主讲教师陆鑫

下面我们继续学习数据库课程的

第2.2小节 “关系模型原理”的完整性约束

本节学习目标如下:

1)理解关系模型完整性约束

2)理解实体完整性

3)理解参照完整性

4)理解用户自定义完整性

在学习关系模型的操作原理之后

开始学习关系模型另一主题——完整性约束

一、关系模型完整性

为什么需要定义关系模型完整性呢?

因为系统数据之间存在一定的联系和约束

关系模型完整性可以将这些数据关系或约束进行描述

关系模型完整性是指在关系数据模型中

对关系实施的完整性约束

完整性约束作用如下:

消除关系表的元组重复存储

保持关联表的数据一致性

实现业务数据规则

关系模型完整性约束组成如下:

实体完整性约束

参照完整性约束

用户自定义完整性约束

二、实体完整性

实体完整性是指在关系表中实施的主键取值约束

以保证关系表的每个元组可以被唯一标识

实体完整性约束规则如下:

每个关系表中的主键属性列都不允许为空值(NULL)

否则就不可能标识实体

现实世界中的实体是靠主键来标识

主键取值应该唯一

并区分关系表中的每个元组

下面以一个实例来说明关系表的实体完整性定义

例 选课注册关系表(Register)的实体完整性定义

在选课注册关系表(Register)中

为了确保表中不重复存放选课记录数据

需要将RegID列定义了为主键

其值不允许为空

且取值唯一

因此,该关系表的实体完整性就是对RegID列进行约束

下面进行实体完整性练习

在表2-7、表2-8、表2-9所示的GRADE成绩关系表中

请判断哪些表符合实体完整性约束

哪些表不符合实体完整性约束?

GRADE关系表1不满足实体完整性约束

其理由是复合主键的部分列有空值

GRADE关系表2也不符合实体完整性约束

其理由是第1元组与第3个元组的复合主键值相同,即不唯一

GRADE关系表3满足实体完整性约束

其理由是符合实体完整性约束规则

三、参照完整性

参照完整性是指关系表之间需要遵守的数据约束

以保证关系之间关联列的数据一致性

参照完整性约束规则

若关系R中的外键F与关系S中的主键K相关联

则R中外键F值必须与S中主键K值一致

与参照完整性相关的一个重要概念就是外键

外键(Foreign key)是在关联的两个表中

它们具有一个或多个相同属性

若关联列在第一个关系中作为主键

则在第二个关系中作为外键

下面以模型图来表示关系表之间的参照完整性约束关系

例 在下面的出版社、书名关系表中

它们都有相同的“出版社编号”属性列

在出版社关系表中

“出版社编号”作为主键

而在书名关系表中

相同列名“出版社编号”作为外键

这两个表的参照完整性约束是指“书名”关系表的“出版社编号”列

必须与“出版社”关系表中的“出版社编号”列的值匹配

即需要维持它们之间的数据一致性

在关系模型中

还可以用户自定义完整性约束

其目的是为了实现一些业务数据规则

四、用户自定义完整性

用户自定义完整性是指用户根据具体业务

对数据处理规则要求所定义的数据约束

用户可以定义如下类型的完整性约束:

定义列的数据类型与取值范围

定义列的缺省值

定义列是否允许取空值

定义列取值是否唯一性

定义列之间的数据依赖性

在关系模型中

实施用户自定义完整性约束

其目的是为了实现一些业务规则

例如 在下面表2-10所示的成绩关系表中

业务要求分数字段Score的取值范围为0-100或为空值

在设计GRADE关系表结构时

需要对分数Score列的取值范围进行约束

限定该列值域范围为0-100

该列也允许空值

本节学习结束!

数据库系统原理与开发课程列表:

第1章 数据库系统概论

-1.1 数据库及其系统概念

--1.1 数据库及其系统概念

-1.2 数据库技术发展

--1.2 数据库技术发展

-1.3 数据库应用系统

--1.3 数据库应用系统

-1.4 典型数据库管理系统

--1.4 典型数据库管理系统

-1.5 PostgreSQL对象-关系数据库系统软件

--1.5 PostgreSQL对象-关系数据库系统软件

-第1章 数据库系统概论--本章单元测试

-第1章 数据库系统概论--本章重点问题讨论

第2章 数据库关系模型

-2.1 关系及其相关概念

--2.1.1关系及其相关概念-1

--2.1.2关系及其相关概念-2

-2.2 关系模型原理

--2.2.1关系模型原理-1

--2.2.2关系模型原理-2

-2.3 PostgreSQL数据库关系操作实践

--2.3 PostgreSQL数据库关系操作实践

-第2章 数据库关系模型--本章单元测试

-第2章 数据库关系模型--本章重点问题讨论

第3章 数据库操作SQL语言

-3.1 SQL语言概述

--3.1 SQL语言概述

-3.2 数据定义SQL语句

--3.2.1数据定义SQL语句-1

--3.2.2数据定义SQL语句-2

--3.2.3数据定义SQL语句-3

-3.3 数据操纵SQL语句

--3.3 数据操纵SQL语句

-3.4 数据查询SQL语句

--3.4.1单表数据查询

--3.4.2 内置函数与分组统计

--3.4.3 多表关联查询

-3.5 数据控制SQL语句

--3.5 数据控制SQL语句

-3.6 视图SQL语句

--3.6 视图SQL语句

-3.7 PostgreSQL数据库SQL实践

--3.7 PostgreSQL数据库SQL实践

-第3章 数据库操作SQL语言--本章单元测试

-第3章 数据库操作SQL语言--本章重点问题讨论

第4章 数据库设计与实现

-4.1 数据库设计概述

--4.1 数据库设计概述

-4.2 E-R模型方法

--4.2.1 E-R模型方法-1

--4.2.2 E-R模型方法-2

-4.3 数据库建模设计

--4.3.1 数据库建模设计-1

--4.3.2 数据库建模设计-2

-4.4 数据库规范化设计

--4.4.1 数据库规范化设计-1

--4.4.2 数据库规范化设计-2

-4.5 数据库设计模型SQL实现

--4.5 数据库设计模型SQL实现

-4.6 基于Power Designer的数据库设计建模实践

--4.6 基于Power Designer的数据库设计建模实践

-第4章 数据库设计与实现--本章单元测试

-第4章 数据库设计与实现--本章重点问题讨论

第5章 数据库管理

-5.1 数据库管理概述

--5.1 数据库管理概述

-5.2 事务管理

--5.2 事务管理

-5.3 并发控制

--5.3.1 并发控制-1

--5.3.2 并发控制-2

-5.4 安全管理

--5.4.1 安全管理-1

--5.4.2 安全管理-2

-5.5 数据库备份与恢复

--5.5 数据库备份与恢复

-5.6 PostgreSQL数据库管理项目实践

--5.6 PostgreSQL数据库管理项目实践

-第5章 数据库管理--本章单元测试

-第5章 数据库管理--本章重点问题讨论

第6章 数据库应用编程

-6.1 数据库连接技术

--6.1.1 数据库连接技术-1

--6.1.2 数据库连接技术-2

-6.2 数据库存储过程

--6.2 数据库存储过程

-6.3 数据库触发器

--6.3 数据库触发器

-6.4 数据库游标

--6.4 数据库游标

-6.5 嵌入式SQL编程

--6.5 嵌入式SQL编程

-第6章 数据库应用编程--本章单元测试

-第6章 数据库应用编程--重点问题讨论

第7章 NoSQL数据库技术

-7.1 NoSQL数据库概述

--7.1.1 NoSQL数据库概述-1

--7.1.2 NoSQL数据库概述-2

--7.1.3 NoSQL数据库概述-3

-7.2 列存储数据库

--7.2.1列存储数据库-1

--7.2.2列存储数据库-2

-7.3 键值对数据库

--7.3.1 键值对数据库-1

--7.3.2 键值对数据库-2

--7.3.3 键值对数据库-3

-7.4 文档型数据库

--7.4.1文档型数据库-1

--7.4.2文档型数据库-2

--7.4.3文档型数据库-3

-7.5 图形数据库

--7.5.1图形数据库-1

--7.5.2图形数据库-2

--7.5.3 图形数据库-3

-7.6 HBase数据库项目实践

--7.6 HBase数据库项目实践

-第7章 NoSQL数据库技术--本章单元测试

-第7章 NoSQL数据库技术--本章重点问题讨论

期末考试

-期末测试--期末测试

2.2.2关系模型原理-2笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。