数据库系统概念(第二周 第二堂)(关系模型)

简介: 数据库系统概念(第二周 第二堂)(关系模型)



回顾

前一堂最后在研究数据库系统结构,这也是引言最后部分。数据库系统结构包括数据库本身、数据库使用人员、编译器等。在引言整个部分,我们对数据库大体结构上有了大致的了解(模糊、大范围的了解)。

数据库这门课重点聚焦于数据库本身,并不是很关心数据库使用人员、数据库背后的编译处理器等。所以从本篇开始我们便关心数据库本身的知识(数据库设计、数据库使用等)。

对于设计一个数据库来说选择一个数据库模型是最重要的。而现阶段数据库模型中最流行的就是关系模型,所以我们先来研究关系模型

关系模型

历史与现状

组成成分

研究任何数据库模型都考虑三个方面:数据结构、操作方式、完整性约束

数据结构——关系

单一的数据结构——关系:从数学角度,现实世界的实体以及实体间的各种联系均可用关系来表示

数据结构的逻辑结构——二维表:从用户角度,关系可视化体现出来就是一张张二维表格

关系定义

定义:

笛卡尔积 的子集叫做在域(相同数据结构的数据的集合) 上的关系

理解

一、关系是笛卡尔积中有意义的子集(无限关系在数据库中没有意义)

二、关系在逻辑结构上可以表示为二维表

三、关系的表示:关系名+属性名(属性名的添加消除了笛卡尔积下关系的有序性)

四、关系由许多元组组成

五、域本身没有意义,也不存在关系,因为笛卡尔积才产生关系

六、关系的本质就是一种抽象归纳化的概念,就是让域之间产生联系,从而抽象为某种关系

关系性质

注意:在数据库中实际使用时,考虑到效率问题,会允许重复元组的存在

关系和关系模式

关系:是某一关系模式下,随时间变化的一个值(像面向对象编程中的对象)

关系模式:是关系的描述,包括关系名、关系属性、关系映像等(像面向对象编程中的类)

难点概念理解

1、任何实体都可以有一系列属性(元组)来代替。任何世界上的事物本质都是一堆数据的集合。

2、实体间的产生联系都可以通过属性的交融(由旧元组通过笛卡尔积形成新元组)来实现。

3、实体间的联系也可以认为是关系与关系间的引用,用外码来体现

举个栗子:

学生+课程=学生选课关系

老师+课程=教师授课关系

学生+老师+课程=学生课程信息查询关系/教师授课信息查询关系

综上:实体和实体的联系都可以用关系来表示

关系属性的分类

每张表都有不同的属性,但是这些属性在表格中的地位不同。同时通过笛卡尔积形成的新表格之间的联系也体现在属性之间的交融,所以更加深入地研究关系模型表格中的属性是非常有必要的。

一、超码(superkey)

是一个或多个属性的集合,这些属性能够唯一确定一个元组

二、候选码(candidate key)

是一个或多个属性的集合,这些属性都是超码,但是其任意真子集都不是超码

三、主码(primary key)

候选码中可以选择一个作为主码,用来当作表中元组的唯一标识

四、外码(Foreign key)

关系R中的一个属性,它和关系S的主码相对应,那么就称这个属性为R的外码(R和S可以是同一关系

图中班长属性与学号属性相对应,而学号属性又是同一张表的元组。所以也可以称班长为外码。

完整性约束

目的:

完整性约束目的是为了保护数据库本身的安全,防止用户在使用数据库时向数据库中添加了非法数据

分类:

实体完整性、参照完整性、用户完整性

实体完整性
意义

现实世界中的每一个实体都是相互可区分的(世界上没有两片完全相同的树叶),所以在数据库中每一个元组也都必须是相互可以区分的。

实现

关系的主码属性值不能为空值

空值

不知道或无意义的值。和0或空字符串不相同

课堂小练

结果为:null、null、false、true、null、null、true、false

参照完整性
意义

参照属性在另一个关系中属于主码,表示两个关系之间存在联系。如果在参照关系中其参照属性不是被参照关系中的值,那么代表参照关系参照了一个并不存在的实体,这在现实世界中是不允许的(例如一名学生选了一个并不存在的课程,这是不合理的)

实现

参照属性在另一个关系中属于主码,表示两个关系之间存在联系。所以在参照关系中,其参照的对象(被参照关系)必须是被参照关系中的值(两个元组存在关系)或者空值(该元组并未实际链接上关系)

特别注意点

一、如果外码由多个属性组成,参照时一定要一一对应,而不是分别对应(看成一个整体对应)

二、参照关系、被参照关系可以是同一个关系(外码和其对应的主码可以在同一个关系中)

用户完整性
定义

用户根据应用的实际情况对数据具体设置的限制

例子

如gender要求取值为“1”或“2”,考试成绩在0-100之间

课堂小练习

结果为:Y、N、N、Y、N、Y、N

模式图

可视化体现数据库表以及表之间关系的一种方式

特点:

一、有下划线的属性表示主码

二、箭头表示参照关系与被参照关系(箭头指向被参照关系的被参照属性)

总结

本文的所有知识点、图片均来自《数据库系统概念》(黑宝书)、山东大学李晖老师PPT。不可用于商业用途转发。

本来想讲完关系代数的,但是篇幅实在太长啦~~本篇已经码了两个多小时了

如果能帮助到大家,大家可以点点赞、收收藏呀~

相关文章
|
6月前
|
存储 缓存 NoSQL
数据库实体与关系模型
【5月更文挑战第16天】本文介绍了数据库模型和UML关系,UML包括依赖、关联(聚合、组合)、泛化和实现4类关系。UML有13种图,分为结构图、行为图和交互图。数据库的基本数据模型包括外模式(用户视图)、概念模式(全局逻辑结构)和内模式(物理存储)。数据模型三要素是数据结构、操作和约束条件。简单易用的缓存数据模型适用于需求灵活、高性能、大数据量且不要求强一致性的场景。
130 5
数据库实体与关系模型
|
3月前
|
存储 SQL 分布式数据库
OceanBase 入门:分布式数据库的基础概念
【8月更文第31天】在当今的大数据时代,随着业务规模的不断扩大,传统的单机数据库已经难以满足高并发、大数据量的应用需求。分布式数据库应运而生,成为解决这一问题的有效方案之一。本文将介绍一款由阿里巴巴集团自主研发的分布式数据库——OceanBase,并通过一些基础概念和实际代码示例来帮助读者理解其工作原理。
309 0
|
1月前
|
缓存 算法 关系型数据库
Mysql(3)—数据库相关概念及工作原理
数据库是一个以某种有组织的方式存储的数据集合。它通常包括一个或多个不同的主题领域或用途的数据表。
50 5
Mysql(3)—数据库相关概念及工作原理
|
1月前
|
关系型数据库 MySQL 数据库
MySQL数据库:基础概念、应用与最佳实践
一、引言随着互联网技术的快速发展,数据库管理系统在现代信息系统中扮演着核心角色。在众多数据库管理系统中,MySQL以其开源、稳定、可靠以及跨平台的特性受到了广泛的关注和应用。本文将详细介绍MySQL数据库的基本概念、特性、应用领域以及最佳实践,帮助读者更好地理解和应用MySQL数据库。二、MySQL
109 5
|
1月前
|
SQL 存储 安全
SQL查询数据库:基础概念与操作指南
在数字化时代,数据库已成为信息管理的重要工具之一。作为管理和操作数据库的核心语言,SQL(结构化查询语言)已成为数据管理和查询的关键技能。本文将全面介绍SQL查询数据库的基本概念、语句和操作指南,以帮助初学者快速上手,同时为进阶用户提供有价值的参考。一、数据库与SQL简介数据库是一种存储、管理和检索
40 3
|
4月前
|
存储 SQL Oracle
|
6月前
|
存储 关系型数据库 数据库
不直接使用文件存储?浅谈数据库的三级模式及重要概念
【5月更文挑战第21天】本文介绍数据库用于解决传统文件系统如Excel的数据冗余、不一致性和访问困难等问题。关系型数据库通过DBMS实现数据管理,包括外模式(用户视图)、概念模式(全局逻辑结构)和内模式(物理存储)。
134 1
不直接使用文件存储?浅谈数据库的三级模式及重要概念
|
4月前
|
druid Java 数据库连接
Java面试题:解释数据库连接池的概念及其作用,讨论常见的连接池实现。
Java面试题:解释数据库连接池的概念及其作用,讨论常见的连接池实现。
81 0
|
5月前
|
JavaScript 数据库
关系数据库:关系数据结构基础与概念解析
关系数据库:关系数据结构基础与概念解析
47 1
|
5月前
|
存储 数据库连接 数据库
逆向学习数据库篇:表设计和数据库操作的核心概念与流程
逆向学习数据库篇:表设计和数据库操作的核心概念与流程
35 0