【数据库】数据库系统概论(二)— 关系

关系数据库

关系数据库是支持关系模型的数据库系统。

关系模型的数据结构:关系;逻辑结构:扁平的二维表

是一组具有相同数据类型的值的集合。

例如:{a,b,c}、{0,1,2,3}等等

笛卡尔积

定义

笛卡尔积是域上的一种集合运算。

计算公式

给定一组域为:D1,D2,D3,…,Dn 【允许有重复的域】

笛卡尔积的计算公式为:

D 1 × D 2 × D 3 × … × D n = { ( d 1 , d 2 , d 3 , … , d n ) ∣ d i ∈ D i , i = 1 , 2 , … , n } D1×D2×D3×…×Dn = {\{(d1,d2,d3,…,dn) | di ∈Di, i = 1,2,…,n\}} D1×D2×D3××Dn={(d1,d2,d3,,dn)diDi,i=1,2,,n}

名词解释

  1. (d1,d2,d3,…,dn)叫做一个n元组(简称元组)

  2. di叫做分量。

基数

一个域允许的不同取值个数称为这个域的基数。

对于一个有限集Di,基数为mi,那么笛卡尔积D1×D2×D3×…×Dn的基数M就是:

M = Π n i = 1 m i \Pi{n \atop i=1}m_i Πi=1nmi

【数据库】数据库系统概论(二)— 关系_第1张图片
例1

关系

定义

D1×D2×…×Dn的有限子集叫做在域D1、D2、…,Dn上的关系,表示为R(D1,D2,D3,…,Dn)

R表示关系的名字,n是关系的目或者度

关系是一张二维表,表中每行对应一个元组,表中每列对应一个域。

由于域可以相同,所以每列要有一个名字,这个名字称为属性

n目关系必有n个属性

名词解释:

  1. 关系中的每个元素是关系中的元组,通常用t表示
    • n = 1时,关系为单元关系
    • n = 2时,关系为二元关系
  2. 候选码:关系中某一属性组的值能够唯一的标识一个元组,而其子集不能,则该属性组称为候选码。
  3. 主码:一个关系有多个候选码,要选中其中一个为主码
  4. 主属性:候选码的诸属性称为主属性
  5. 非主属性:不包含在任何候选码中的属性称为非主属性(或者非码属性)
  6. 全码:关系模式的所有属性是这个关系模式的候选码,这个候选码称为全码

关系的三种类型

  1. 基本关系(基本表/基表)

    是实际存在的表,是实际存储数据的逻辑展示

  2. 查询表

    是查询结果对应的表

  3. 视图表

    是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据

基本关系的性质

  1. 列是同质的(每一列中的分量是同一类型的数据,来自同一个域)
  2. 不同的列可以出自同一个域,称其中每一列为一个属性。不同的属性要给予不同的属性名
    1. 例如例1,我们也可以分为两个域,person{张清玫、刘逸、李勇、刘晨、王敏}specialty{计算机专业、信息专业}。person这个域又分为两种属性,研究生和导师
  3. 列的顺序是无所谓的,即列的顺序可以随意交换
  4. 行的顺序是无所谓的,即行的顺序可以随意交换
  5. 任意两个元组的候选码不能去同样的值
  6. ⭐分量必须取原子值,即每一个分量都是一个不可分的数据项

这种规范化的关系,简称为范式。

关系模式

关系的描述称为关系模式。

R ( U , D , D O M , F ) R(U,D,DOM,F) R(U,D,DOM,F)

  • R:关系名
  • U:组成该关系的属性名集合
  • D:U中所有属性来自的域
  • DOM:属性像域的映像集合
  • F:属性间数据的依赖关系集合

通常也可以简写为 R ( U ) R(U) R(U)

关系操作

基本关系操作

包括:查询和插入修改删除这两类。

查询操作

  1. SELECT 选择
  2. PROJECT 投影
  3. JOIN 连接
  4. DIVIDE 除
  5. UNION 并
  6. EXCEPT 差
  7. INTERSECTION 交
  8. 笛卡尔积

关系语言

【数据库】数据库系统概论(二)— 关系_第2张图片

SQL语言是高度的非过程化的语言。也就是说,如果要查询某个指标,关系数据库会为其选择最优的查询路径,用以提高查询效率

完整性

实体完整性

规则:

若属性(一个或一组)A是基本关系R的主属性,则A不能取空值。

参照完整性

外码概念

设F是基本关系R的一个或者一组属性,但不是关系R的码,Ks是基本关系S的主码。如果F与Ks相对应,则称F是R的外码。并称基本关系R为参照关系,S为被参照关系(目标关系)。

【数据库】数据库系统概论(二)— 关系_第3张图片

规则

若属性F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中的每一个元组在F上的值为:

  1. 空值(F中每个属性值均为空值)
  2. S中某个元组的主码值

用户定义完整性

某一具体应用所涉及的数据必须满足语义要求

关系代数

运算符 含义
集合运算符
交集
并集
- 差集
× 笛卡尔积
关系运算符
σ 选择
Π 投影
连接
÷

集合运算符

下面以 集合R和集合S为例

并 ∪

R ∪ S = { t ∣ t ∈ R ∪ t ∈ S } R∪S=\{t|t∈R∪t∈S\} RS={ttRtS}

差 -

R − S = { t ∣ t ∈ R ∩ t ∉ S } R - S = \{t|t∈R∩t∉S\} RS={ttRt/S}

交 ∩

R ∩ S = { t ∣ t ∈ R ∩ t ∈ S } R∩S=\{t|t∈R∩t∈S\} RS={ttRtS}

笛卡尔积

R × S = { t r t s ∣ t r ∈ R ∩ t s ∈ S } R×S = \{t_rt_s|t_r∈R∩t_s∈S\} R×S={trtstrRtsS}

图示传统集合运算

【数据库】数据库系统概论(二)— 关系_第4张图片

你可能感兴趣的:(SQL,数据库)