关系模型之基本概念

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Co_zy/article/details/86716261

1.什么是关系模型

1.1关系模型研究什么

一个关系(relation)就是一个Table
关系模型就是处理Table的,它由三个部分组成:

  • 描述DB各种数据的基本结构形式(Table/Relation)
  • 描述Table与Table之间所有可能发生的各种操作(关系运算)
  • 描述这些操作所应遵循的约束条件(完整性约束)

1.2 关系模型的三个要素

基本结构: Relation/Table
基本操作: 并、差、广义积、选择、投影、交、连接、除
(其中并、差、广义积、选择、投影为基本运算,交、连接、除为扩展运算)
完整性约束: 实体完整性、参照完整性、用户自定义的完整性

1.3 表的严格定义

在这里插入图片描述

域(Domain) : 是一组值的集合,这组值具有相同的数据类型,如整数的集合、字符串的集合、全体学生的集合,再比如,由8位数字组成的集合

域的基数(Cardinality) : 集合中元素的个数称为域的基数

笛卡尔积: 一组域D1,D2,…Dn的笛卡尔积为D1 * D2 * … * Dn = {(d1,d2,…dn) | di<Di,i=1,…n}
笛卡尔积的每个元素(d1,d2,…,dn)称作一个n-元组(n-tuple)
若Di的基数为mi,则笛卡尔积的基数,即元组的个数为m1 * m2… * mn

在这里插入图片描述
简单点说: 就是从第一列取出一个,然后从第二列取一个,再从第三列取一个,所有的组合就是笛卡尔积

2. 关系

一组域D1 * D2 * … * Dn的笛卡尔积的子集
也就是从笛卡尔积中选出的具有一定意义的组合,这种意义可以用关系(表)的名字表达
在这里插入图片描述

2.1 关系模式

关系可用R(A1:D1,A2:D2, … An:Dn)表示,可简记为R(A1,A2,…An),这种描述又被称为关系模式(Schema)或标题(head) ,R是关系的名字,Ai是属性,Di是属性多对应的域,n是关系的度或目(degree).关系中元组的数目称为关系的基数.
举例如下
家庭(丈夫:男人,妻子:女人,子女:儿童)或家庭(丈夫,妻子,子女)
关系模式R(A1:D1,A2:D2, … An:Dn)中红色部分在DBMS中一般直接说明为类型,长度等
例如 Student(Sname char(10),Ssex char(2))

2.2 关系模式与关系

关系模式是 关系的结构,关系是 关系模式在某一时刻的数据
关系模式是稳定的,而关系是某一时刻的值,是随时间可能变化的
在这里插入图片描述

3. 关系特性

(1) 列是同质:每一列中的分量来自同一域,是同一类型的数据
在这里插入图片描述
不同的列可来自同一个域(域可以定的大一些,比如Person域)
(2) 列位置互换性:区分哪一列是靠列名,而不是所在位置
行位置互换性:区分哪一行是靠某一或某几列的值
关系是以内容(名字或值)来区分的,而不是属性在关系的位置来区分
(3) 关系的任意两个元组不能完全相同,表可能并不完全遵守此特性
(4) 关系需要满足第一范式:即属性不可再分特性.举例如下:
在这里插入图片描述
在这里插入图片描述

4. 候选码与外码

候选码(Candidate Key): 关系中的一个属性组,其值能唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码.
(1)例如:学生(id,Sname,Sage,Sclass),id就是一个候选码.
(2)有时,关系中有很多组候选码,例如:学生(id,Sname,Sage,Sclass,Saddress),其中属性组(Sname,Saddress)也是候选码(同名同地址的两个学生是不存在的)

主码
当有多个候选码时,可以选定一个座位主码,DBMS以主码为主要线索管理关系中的各个元组.在上面(1)(2)例子中,选哪个作为主码都可以.

主属性: 包含在任何一个候选码中的属性被称作主属性,而其他属性被称作非主属性.上面例子(1)中,id就是 主属性,其他都是非主属性.

  • 最简单的,候选码只包含一个属性
  • 最极端的,所有属性构成这个关系的候选码,称为全码(All-Key)

外码(Foreign Key)/外键

  • 关系R中的一个属性组,它不是R的候选码,但它与另一个关系S的候选码相对应,则称这个属性组为R的外码外键.
  • 例如,"合同"关系中的客户号不是候选码,但却是外码.因它与客户关系中的候选码"客户号"相对应.
  • 两个关系通常是靠外码连接起来的
    在这里插入图片描述

上述概念结构图

在这里插入图片描述

5. 完整性

  • 实体完整性
    关系的主码中的属性值不能为空值
  • 参照完整性
    如果关系R1的外码Fk与关系R2的主码Pk相对应,则R1中的每一个元组的Fk值或者等于R2中某个元组的Pk值或者为空值
  • 用户自定义完整性
    用户针对具体的应用环境定义的完整性约束条件
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Co_zy/article/details/86716261