美文网首页
数据库系统原理之关系模型的基本概念(一)

数据库系统原理之关系模型的基本概念(一)

作者: 柏丘君 | 来源:发表于2018-09-23 12:27 被阅读0次

    关系型数据库是基于关系模型理论的,在学习关系型数据库之前,最好掌握一些关系模型的知识,方便进行类比的学习。
    首先来看一下关系模型的介绍。

    关系模型的介绍

    关系模型最早是由 E.F.Codd 在 1970 年,在集合论和逻辑学理论的基础上,通过对表(Table)和表的操作进行严格的数学定义提出的。
    也就是说,关系模型,是一个数学模型。使用数学的方法对表(Table)和表的操作进行了定义。
    著名的 SQL 语言,就是基于关系模型的数据库操作语言。很多的数据库理论,也是基于关系模型提出的。关系模型和层次模型以及网状模型(后面两个模型已经过时,不再使用了),是三大数据库模型之一。

    关系模型研究的内容

    从定义上看,我们知道关系模型就是用来处理 Table 的,包含三个方面的内容:

    1. 使用数学方法描述数据库的基本结构形式(Table/Relation)
    2. 使用数学方法描述 Table/Relation 与 Table/Relation 之间的各种操作(关系运算)
    3. 使用数学方法描述实现这些操作应该遵循的约束条件(完整性约束)

    现在我们使用的关系型 DBMS,就是对关系模型理论的一种实现,在 DBMS 中对表各种操作,都有一整套的数学理论作为支撑。

    关系运算

    关系运算就是使用数学的方法,来对 Table/Relation 和 Table/Relation 之间的操作进行描述,包括两部分内容:基于集合论的关系代数运算和基于逻辑学理论的关系演算运算。关系模型是基于集合论和逻辑学理论提出的,基于这两套数学理论进行的运算自然必不可少。
    我们在 DBMS 中做的各种操作:如数据库的定义和数据库的查询,都可以转换为关系运算这样的数学语言。事实上 DBMS 也正是这样做的:提供 SQL 语言让使用者进行数据库操作,然后底层将 SQL 语言转换为相应的数学语言进行运算,得出结果。
    因此,如果我们学会了怎样使用关系运算来定义表,怎样使用关系运算来操作表,那么再去学习 SQL 也就不在话下了。

    什么是关系

    关系(Relation)和表(Table)各自指什么呢?它们之间有什么样的区别?要弄清这个问题,首先需要知道关系的确切含义。

    域是一组具有相同数据类型的数据的集合,集合中的个数叫做域的基数。每一列中的数据,都是域中某一个值,虽然不一定知道具体是域中的哪一个值,但我们知道总共有哪些类型的取值。
    对于行也是如此,虽然我们不知道某一行(元组)具体的值是什么,但我们知道这一行(元组)有哪些可能的值。

    笛卡尔积

    所有行(元组)的集合,就是笛卡尔积。举例来说,我们有两个域:手机(小米,三星,苹果)和电脑(联想,戴尔,惠普)。这两个域构成的所有可能的元组如下:

    手机 电脑
    小米 联想
    小米 戴尔
    小米 惠普
    三星 联想
    三星 戴尔
    三星 惠普
    苹果 联想
    苹果 戴尔
    苹果 惠普

    这两个域构成了一共有 3*3 = 9 个元组的集合,这个集合就是手机和电脑域的笛卡尔积,基数为9。
    假设我们有 n 个域 D1,D2,D3...Dn,每个域的基数为 M1,M2,M3...Mn,那么它们构成的笛卡尔积的基数为 M1*M2*M3*...*Mn
    通过数学方式来描述笛卡尔积的定义如下:
    \{(d1,d2,d3...dn)|di 属于 Di,i = 1,2,3...,n\}

    关系

    多个域构成的笛卡尔积中的元组并不都是有意义的,我们把这些有意义的元组提取出来形成的新的集合,就叫做关系。关系是由一系列有意义的元组的集合,其是笛卡尔积的子集。
    他们之间也有一些区别,如笛卡尔积使用列,关系使用字段或属性,笛卡尔积使用行,关系使用元组。
    关系和笛卡尔积,都是数学上的概念。

    关系模式

    通过R(A1:D1,A2:D2,A3:D3,...,An:Dn)来表示关系的结构,可以简写为R(A1,A2,A3,...,An),这样的描述方式也叫做关系模式(Schema)。关系模式是对关系的一种结构性描述
    R 是关系名,Ai 是属性,Di 是属性所在的域,n 是关系的度或者目(属性的个数),关系中元组的数目称为关系的基数。
    在 DBMS 中,我们一般使用数据类型作为域,如 integar,char,date ···,在数据库中可以这样使用关系模式:
    学生表(姓名:Char,年龄:Integar,出生日期:Date)
    现在我们类比着看关系模型和数据库中的一些概念,,是不是觉得很相似呢?的确,数据库可不简单,其背后有一整套的数学理论进行着支撑!

    关系模式和关系

    关系模式是固定不变的,是稳定的。关系是关系模型在某一时刻的值,是可以发生变化的,关系模式是关系的结构。

    关系和表

    关系是数学上的概念,表是关系型 DBMS 对于关系的实现,二者有着基本相似的概念,也有一些区别。比如关系要求元组不能相同,而数据库表中的行是可以相同的(不考虑主键)。

    总结

    本文主要介绍了关系模型的一些基本概念,包括关系模型的介绍,研究内容,以及对笛卡尔积,关系,域,关系模式这些概念进行了介绍,关系模型和关系是数学上的概念,数据库的表则是对关系模型的一种实现。这部分概念性的东西有点多,一篇文章来写感觉太长了,剩下的一点内容,在后文进行介绍。

    完。

    相关文章

      网友评论

          本文标题:数据库系统原理之关系模型的基本概念(一)

          本文链接:https://www.haomeiwen.com/subject/eaiznftx.html