数据库原理 03关系模型的基本概念 您所在的位置:网站首页 数据库原理基本概念图表 数据库原理 03关系模型的基本概念

数据库原理 03关系模型的基本概念

2024-07-06 08:48| 来源: 网络整理| 查看: 265

关系模型概述什么是关系关系模型的完整性约束

重点与难点

一组概念的区分:

围绕关系的相关概念:域、笛卡儿积、关系、关系模式、关键字/键/码、外码/外键、主码/主键、主属性/非主属性。

三个完整性:实体完整性、参照完整性、用户定义完整性

概述

形象的说:一个关系(relation)就是一个table。

关系模型就是处理table的,他由三部分组成:包括描述数据库各种关系的基本结构形式(table)、关系运算(table和table之间可能发生的各种运算)、完整性约束(这些操作应该遵循的约束条件)。

关系运算:关系代数和关系演算 。

关系演算:元组演算和域演算。

关系代数的示例:基于集合的运算(数学语言)

也就是说操作的对象和结果都是集合,是一次一集合的操作(Set-at-a time)。

而非关系型数据的操作通常是一次次记录(Record-at-a time)。

以下是基于关系代数设计的数据库语言:ISBL(计算机语言)

ISBL是用计算机可以识别的符号表征关系代数的运算符号。

元组演算是基于逻辑的演算(数学语言)。

基于元组演算设计了数据库语言:Ingress系统的QUEL(计算机语言)

域演算和元组演算类似但是域演算是基于示例的运算(以示例为单位)。

基于域演算设计的数据库语言示例:QBE: Query By Example(计算机语言)

综述:关系运算

什么是关系?

表的基本构成要素

其中列的取值范围叫:

域(Domain)

一组值的集合这组值具有相同的数据类型。集合中元素的个数称为域的基数。

元组

笛卡儿积的每个元素(d1,d2,d3,,,,,,dn)成为一个n元组。

 

元组(d1,d2,d3,,,,,,dn)中每一个值di称作一个分量笛卡儿积是n个域形成的所有所有可能的n元组的集合。如果域Di的基数是mi 那么笛卡儿积的基数=元组的个数是m1*m2*m3****mn

由于笛卡儿积中并不是所有的元组都是有意义的,由此我们从中抽取一些有意义的作为关系。

关系(Relation)

由于关系的不同列可能来自同一个域,那么作为区分需要为每一列起一个名字叫:属性名

属性名和域名是不一样的,域名是域的名字,但是属性名是关系里面的。

关系可以如下描述:

其中A是关系的属性名,而D是属性来源的域名。这种用属性名来表示关系的描述方式称为关系模式或者表标题。

例如下图的关系为一三目关系,描述为 家庭(丈夫:男人,妻子:女人,子女:儿童) 或者 家庭(丈夫,妻子,女人) 

关系模式R(A1:D1 , A2:D2 , … , An:Dn )中属性指向域的映像在很多DBMS中通常直接说明属性的类型长度。例如:

 

关系模式与关系:

同一关系模式可以有很多关系。关系模式是关系的结构,关系是关系模式在某一时刻的数据。关系模式是稳定的,而关系是某一时刻的值,是随时间可能变化的。

思维回顾

关系有哪些特性

列是同质:即每一列中的分量来自同一域,是同一类型的数据不同的列可来自同一个域,称其中的每一列为一个属性,不同的属性要给予 不同的属性名。

例如:

列位置互换性:区分哪一列是靠列名

行位置互换性:区分哪一行是靠某一或某几列的值(关键字/键字/码字)

关系是以内容(名字或值)来区分的,而不是属性在关系的位置来区分,如下面两个关系是完全相同的关系

理论上,关系是由集合来定义的,这就要求关系的任意两个元组不能完全相同。(满足集合的特性:集合内不能有两个完全相同的元素),现实应用中表可能并不完全遵守此特性。【元组相同是指两个元组的每个分量都相同】

属性不可再分特性:又被称为关系第一范式

关系上一些重要概念 候选键/候选码

依靠候选码我们可以把关系里面每一个元组都区分开,候选码可以唯一标识一个元组。

以上选课关系模型里面学生编号和课程代码就是一个候选码,但有时候候选码不止一个,可能有很多组。

主键/主码

当有多个 候选码/候选键 的时候,可以选用一个作为 主码/主键。

DBMS以主键作为主要线索管理关系中的各个元组。

主属性和非主属性

包含在任何一个候选码中的属性我们称之为主属性,而其他的就是非主属性。

最简单的候选码只有一个主属性。

最极端的所有属性构成这个关系的候选码称之为全码(AII-Key)。

外码(Foreign Key)/外键

关系R中的一个属性组,他不是R的候选码,但是他和另一个关系S的候选码相对应,那么就称这个属性是关系R外键/外码。

两个关系通常是用 外键/外码 连接起来的。

小结

关系模型的完整性

实体完整性:(针对主码而言)

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

空值是不能参与算术比较,或者逻辑运算的。

参照完整性:(针对外码而言)

如果关系R1的外码Fk与关系R2的主 码Pk相对应,则R1中的每一个元组的 Fk值或者等于R2 中某个元组的Pk 值, 或者为空值。

                  

参照完整性为了保证两个关系之间联系的正确性。

用户自定义完整性:(用户自定义的限制条件要满足)

用户针对具体的应用环境定义的完整性约束条件。

由于我们用的字符类型定义的范围还是太大,有时候我们需要进一步用户自定义属性条件。

DBMS系统提供了一套定义机制,让用户对某些属性定义相关的完整性约束。

当有更新操作发生的时候DBMS将自动按照完整性约束条件来检验更新操作的正确性,即是否符合用户自定义的完整性。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有