【数据库原理与应用 - 第二章】关系数据库基础

目录

一、关系的概念

1、域

2、笛卡尔积

3、关系

4、相关术语

(1)候选码与主码

(2)主属性与非主属性

二、关系数据模型

1、关系模型的数据结构

2、关系操作与完整性约束

扫描二维码关注公众号,回复: 14695521 查看本文章

(1)关系操作语言

(2)完整性约束

3、关系的性质

4、关系的类型

三、关系代数

1、集合运算

广义笛卡尔积

2、关系运算

(1)选择

 (2)投影

 (3)连接

(4)除法

3、关系代数运算实例

四、关系演算

1、元组关系演算实例

2、域关系实例


一、关系的概念

1、域

  • 域是一组具有相同数据类型的值的集合
  • eg:D1={王萍,李敏,刘洋}
  • 域中不同数据的个数称为域的基数
  • eg:D1的基数为3

2、笛卡尔积

设一组域D1,D2……Dn,这些域中允许有相同元素,D1,D2……Dn的笛卡尔积为:

            D1×D2×……×Dn={ (d1,d2,d3……) | di∈Di,i=1,2,3…… }

其中每个(d1,d2……dn)称为一个元组,每个di称为一个分量

域的笛卡尔积的基数=参与运算的所有域的基数之积

253a7d61fd184f5094117aee6e956a81.jpg

3、关系

笛卡尔积的子集称为域上的一个n元关系,表示为:

           R(D1,D2,D3……Dn)

其中R表示关系名称,n表示关系的目或度

  • 当n=1时,称该关系为单元关系
  • 当n=2时,称该关系为二元关系
  • 关系是笛卡尔积中所取的任意子集

4、相关术语

(1)候选码与主码

  • 在关系中可以唯一标识一个元组的属性或属性组称为候选码
  • 如果一个关系中有多个候选码,则选其中最小的属性组为主码
  1. 如果关系的候选码只有一个属性,称为单属性码
  2. 如果关系中候选码有多个属性,称为多属性码
  3. 如果关系中只有一个候选码,且包含所有属性,称为全码

(2)主属性与非主属性

  • 出现在候选码中的属性为主属性
  • 不包含在任何候选码中的属性为非主属性

二、关系数据模型

1、关系模型的数据结构

关系模式R(U,D,dom,F),关系模式通常简记作R(U)

  • R为关系名
  • U为关系的属性集
  • D为属性组中的属性所来自的域
  • dom为属性向域的映像集合
  • F为属性间的数据依赖关系

eg.高校图书管理系统

U={姓名,性别,年龄}

D1={李四,徐心怡,杨倩}

D2={男,女,女}

D3={24,19,20}

dom={姓名→D1,性别→D2,年龄→D3}

F={姓名→年龄,姓名→性别}

2、关系操作与完整性约束

(1)关系操作语言

  • 关系代数语言ISBL
  • 关系演算语言
  • 关系数据库标准语言SQL

(2)完整性约束

  • 域完整性:域完整性是指关系中每一个元组的分量必须取自相应域中的值,如读者关系中的性别只能来自于域{男,女}
  • 实体完整性:要求关系中不能出现相同的元组,主属性的值不能为空值
  • 参照完整性:如果属性X不是关系R2的主码,而是另一关系R1的主码,则称该属性X为关系R2的外码,称R2为参照关系,R1为被参照关系,外码用波浪线表示
  • 外码只能取下列两类值:
  1. 空值
  2. 非空值,该值必须与被参照关系中主码的某取值一致

cae96afaf1374550bf11746a1b1776e5.jpg

  • 用户定义完整性:用户根据某一具体关系的约束条件,比如图书关系中价格不能为负数

3、关系的性质

(1)关系中所有属性值都是原子的。每个属性均是不可分的数据项

71df0bb4b612402e9afbdcb9ef7abcbb.jpg

(2)每一列为一个属性。不同属性可来自同一个域

(3)每一列的分量均是同一类型的数据

(4)关系中不允许有相同的元组

(5)在一个关系中元组和属性的次序无关紧要

4、关系的类型

  • 基本表:像高校图书管理系统,这种实际存储数据的表
  • 查询表:查询结果对应的表,或查询中生成的临时表
  • 视图表:虚表,不对应实际存储数据

三、关系代数

1、集合运算

广义笛卡尔积

  • 设关系R的属性个数为m,有k1个元组
  • 关系S的属性个数为n,有k2个元组
  • 则R×S属性个数为m+n,有k1×k2个元组
关系R
A B C

 a_{1}

  b_{1} 

 c_{1}

 a_{1}

  b_{2}

  c_{2}

  a_{2}

  b_{2}

  c_{1} 

 
关系T
F B
f_{1} b_{2}
f_{2} b_{2}
R×T结果
A R.B C F T.B
a_{1} b_{1} c_{1} f_{1} b_{2}
a_{1} b_{2} c_{2}

 f_{1}

 b_{2}

a_{2} b_{2}

 c_{1}

 f_{1}

 b_{2}

a_{1}

 b_{1}

 c_{1}

f_{2}

 b_{2}

a_{1} b_{2} c_{2} f_{2}

 b_{2}

a_{2} b_{2}

 c_{1}

f_{2}

 b_{2}

2、关系运算

(1)选择

  • 选择是在关系R中选择满足给定条件的元组
  • 是在关系的水平方向上选取符合给定条件F的元组

460fae365232402389d52452711d2472.jpg

 (2)投影

  • 投影是在关系R上选取若干属性列A,并删除重复行,组成新的关系
  • 从列的角度进行运算

1aaed0703d5845d19b8e74c538f859ae.jpg

 (3)连接

af48427c13764856be80b39ee5d01edf.jpg

       在R×S中,选取属性间符合一定条件下的元组,即在关系R中A属性组上的值与关系S中B属性组上的值满足比较操作θ的元组

644539ca63b843a19924a03e1bfa5830.jpg

051ec25531af4af992c4a49b449f9acd.jpg

  • 等值连接:关系R中的属性M与关系S中属性N相等
  • 自然连接:在R×S中,选取公共属性上具有相同值的元组,去掉重复列组成新的关系

(4)除法

设关系R的目(属性个数)为m,关系S的目为n,且m>n,且S≠空集

R÷S={t|<t,ts>∈R∧ts∈S}

R能被S除的充要条件:R中的属性包含S中的所有属性,R中有一些属性不在S中

3、关系代数运算实例

以高校图书管理系统数据库为例,下列四个关系如下所示:

  • 读者类别(类别编号,类别名称,可借阅天数,可借阅数量,超期罚款额)
  • 读者(读者卡号,姓名,性别,单位,电话,办卡日期,卡状态,类别编号)
  • 图书(图书编号,书名,类别,作者,出版社,出版日期,单价,库存数量)
  • 借阅(读者卡号,图书编号,借书日期,还书日期)

 

 

 

四、关系演算

1、元组关系演算实例

 

2、域关系实例

猜你喜欢

转载自blog.csdn.net/weixin_61639349/article/details/129516859
今日推荐