当前课程知识点:数据库概论 >  第四章 数据库完整性、视图与安全性 >  4.1 数据完整性 >  4.1 数据完整性

返回《数据库概论》慕课在线视频课程列表

4.1 数据完整性在线视频

4.1 数据完整性

下一节:完整性约束

返回《数据库概论》慕课在线视频列表

4.1 数据完整性课程教案、知识点、字幕

同学们好

我是来自云南大学软件学院的包崇明

下面我为大家介绍

完整性约束 视图和安全性

本章的主要内容

是介绍数据库管理员

将数据库逻辑设计转化为

物理形式过程中的主要工作

根据逻辑设计结果

数据库管理员

选择一个具体的数据库管理系统

比如ORACLE或者SQL Server

用系统提供的Create Table语句

定义表的字段和约束

生成物理表后装入相应的数据

这个过程

称之为将数据库逻辑设计转换为物理形式

对于复杂约束或者设计时没有考虑到的约束

后期可通过

在表或视图上定义触发器等方法来完成

生成具体的物理表并装入数据后

为了简化数据访问和方便数据管理

一般还需要将数据组织成不同的表现形式

我们称之为视图

通过Create Table语句

创建的表为基础表

基础表是物理存在的

他们的数据存储在磁盘上

视图的数据没有单独存放在磁盘上

而是通过对基础表的数据进行查询得到

所以我们也称视图为虚拟表

数据库系统是面向多个用户的

每个用户只能访问获得授权的数据

所以需要对数据提供安全管理

具体来说

需要在表或者视图上

对数据库用户进行授权

保证只有获得授权用户才能访问相应数据

本章还简单介绍了系统目录

也称为系统定义表

对于用户定义的表

视图 索引等数据库对象

它们的定义信息存放在这些系统定义表中

如需获得数据库对象的定义信息

一般需要通过查询系统定义表得到

对数据库进行逻辑设计后

我们得到一组关系表

即施加于这些表上的完整性约束

完整性约束的目的

是保证表中数据的完整性

主要指数据的正确性与一致性

保证我们在逻辑设计阶段定义的数据相关性

不被错误的SQL更新语句破坏

下面我们先介绍数据完整性

数据完整性类型包括主要包括

实体完整性 参照完整性和用户定义完整性

下面我们对这三类完整性

做一个简单的介绍

首先介绍实体完整性

在数据库的逻辑设计中

我们识别出实体及其联系

实体转换为关系表

实体实例作为关系表中的行数据存储

现实世界中实体实例是可区分的

它们应具有唯一性标识

为了标识实体实例

数据库管理员

选择表中一列或者多列联合构成主键

要求关系表中

每一行在这些列上的取值应该是唯一的

用这些列的取值来标识每个实体实例

为了达到这个目的

就要求表中每一行

在这些列上都不能取空值

因为如果存在一行在这些列上取空值

即使只在其中一列上取空值

都说明这行数据

在这列或者多列上存在不确定性

从而这些列的取值

不能作为这行数据的标识

简洁来说

数据的实体完整性就是要求表中任一数据行

在构成表的主键的列上不能取空值

下面介绍参照完整性

对于实体间的联系

根据情况

我们可将联系转换为一张关系表

或者可通过在一张表中定义由一列或者多列

构成的外键来表示实体间的联系

在这种情形下

外键一般是相关的另外一张表的主键

表示表与表之间的相关性

为了维护这种相关性

对外键的取值应加以限制

我们称为参照完整性

具体来说

参照完整性一般涉及到两张表

在一张表中定义的外键

一般是另外一张表的主键

对于每一数据行

在外键上的取值应如下限制

要么在构成外键的一列或者多列上取空值

要么取另外一张表中

数据行上主键或者候选键值的值

这是因为

表中数据行外键的取值

代表的是两个实体的联系实例

我们要求这个联系实例确实存在

或者允许通过取空值来表示不确定的联系实例

第三类完整性是用户定义的完整性

这类完整性由具体的运用环境决定

主要是对表中某些列的取值有相应的限定

比如在一个学生成绩表中

成绩字段的取值

只能取0-100间的整数值

性别字段的取值限定为男或女等等

在将逻辑模型转换为物理实现过程中

保证上述数据完整性是一项重要的工作

因为我们不希望

在逻辑设计阶段定义的数据相关性

被错误的SQL更新语句破坏

具体来说

就是希望所有违背数据完整性的更新操作

如Insert Delete

Update都不能成功执行

今天的课就到这同学们再见

数据库概论课程列表:

导论

-数据库概述

--Video

-导论--数据库概述

第一章 数据库基础

-1.1 数据库基础

--Video

-第一章 数据库基础--1.1 数据库基础

第二章 关系运算

-2.1 CAP数据库

--CAP数据库

-第二章 关系运算--2.1 CAP数据库

-2.2 自然关系运算1

-- 自然关系运算1

-第二章 关系运算--2.2 自然关系运算1

-2.3 自然关系运算2

--自然关系运算2

-第二章 关系运算--2.3 自然关系运算2

第三章 结构化查询语言SQL

-3.1 SQL概述

-- SQL概述

-3.1 SQL概述--作业

-3.2 数据定义DDL

--数据定义DDL

-3.2 数据定义DDL--作业

-3.3 SQL数据更新DML

--SQL数据更新DML

-3.3 SQL数据更新DML--作业

-3.4 复杂SQL查询操作1

--复杂SQL查询操作1

-第三章 结构化查询语言SQL--3.4 复杂SQL查询操作1

-3.5 复杂SQL查询操作2

--复杂SQL查询操作2

-第三章 结构化查询语言SQL--3.5 复杂SQL查询操作2

第四章 数据库完整性、视图与安全性

-4.1 数据完整性

--4.1 数据完整性

-4.1 数据完整性--作业

-4.2 完整性约束

--完整性约束

-4.2 完整性约束--作业

-4.3 外键约束

--外键约束

-4.3 外键约束--作业

-4.4 触发器

--触发器

-4.4 触发器--作业

-4.5 视图

--视图

-4.5 视图--作业

-4.6 安全性

--安全性

-4.6 安全性--作业

第五章 索引

-5.1 索引

--Video

-5.2 B+树索引

--Video

第六章 规范化理论

-6.1 函数依赖

--Video

-6.2 Armstrong公理

--Video

-6.3 无损分解

--Video

-6.4 范式举例

--Video

-6.5 三种范式

--Video

-6.5 三种范式--作业

第七章 实体关系模型

-7.1-E-R模型概述

--E-R模型概述

-7.2 E-R模型详解

--Video

-7.3 E-R模型的拓展

--Video

-7.4 E-R模型实例分析

--Video

第八章 事务处理

-8.1 事务的ACID性质介绍

--ACID介绍

-8.1 事务的ACID性质介绍--作业

-8.2 事务经历

--事务经历

-8.2 事务经历--作业

-8.3 可串行化调度和前趋图

--可串行化调度和前趋图

-8.3 可串行化调度和前趋图--作业

-8.4 两阶段封锁

--两段锁协议

-8.4 两阶段封锁--作业

-8.5 隔离级别

--隔离级别

-8.5 隔离级别--作业

-8.6 事务恢复

--事务恢复

-8.6 事务恢复--作业

第九章 数据库应用与开发

-9.1 数据库使用介绍

--数据库使用介绍

-9.2 Java访问数据库

--Java访问数据库

-9.2 Java访问数据库--作业

第十章 其他数据库技术概述

-10.1 数据库新技术概述

--Video

4.1 数据完整性笔记与讨论

也许你还感兴趣的课程:

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