数据库概论---第3讲--关系模型之基本概念

关系模型概述

(1)关系模型研究什么

  1. 形象地说,一个关系就是一个Table
  2. 关系模型就是处理Table的,它由三个部分组成:
    描述DB各种数据的基本结构形式(Table和Relation)
    描述Table与Table之间所可能发生的各种操作(关系运算)
    描述这些操作所应遵循的约束条件(完整约束性)
    就是要学习:Table如何描述,有哪些操作,结果是什么,有哪些约束条件

(2)关系模型的三要素

  1. 基本结构:Relation/Table
  2. 基本操作:并,差,广义积,选择,投影,交,连接,除
  3. 完整约束性:实体完整性,参照完整性和用户自定义的完整性

(3)关系模型与关系数据库语言的关系

  1. 关系运算:关系代数和关系预演;关系演算;元组演算和域演算。
  2. 关系代数示例:基于集合运算
  3. 基于关系代数设计的数据库语言(ISBL):用计算机可识别的符号表征关系代数的运算符号

什么是关系

(1)什么是‘表’

数据库概论---第3讲--关系模型之基本概念

(2)“表”的严格定义–关系?

  1. 首先定义“列”的取值范围“域”
    域(Domain)
    (1)一组值的集合,这组值具有相同的数据类型
    (2)如整数的集合,字符串的集合,全体学生的集合
    (3)集合中元素的个数称为域的基数(Cardinality)
  2. 再定义“元组”及所有可能组合成的元组,笛卡尔积
    笛卡尔积(Cartesian Product)
    一组域D1,D2… D的笛卡尔积为:
    D1xD2x…xDn={(d1,d2,…,dn)|di∈D, i=1,…n}
    笛卡尔积的每个元素(d,,d2… dn)称作-一个n- 元组(n-tuple)
    元组(d1,d2,…,dn)的每一 个值d,叫做一个分量(component)
    元组(d1, d2, … dn)是从每一个域任取一个值所形成的一种组合, 笛卡尔积是所有这种可能组合的集合,即:笛卡尔积是由n个域形成的所有可能的n-元组的集合
    若D1的基数为m1,则笛卡尔积的基数,即元组个数为m1xm2x…xmn
  3. 由于笛卡尔积中的所有元组并不都是有意义的,因此…
    关系(Relation)
    一组域D1,D2,…, Dn的笛卡尔积的子集
    笛卡尔积中具有某一方面意义的那些元组被称作一个关系(Relation)
    由于关系的不同列可能来自同一一个域,为区分,需要为每一列起一个名字,该名字即为属性名
    数据库概论---第3讲--关系模型之基本概念
    关系可用R(A1:D1, A2:D… ,An:Dn )表示,可简记为R(A1,A2.,…An ),这种描述又被称为关系模式(Schema)或表标题(head)
    (degree),关系中元组的数目称为关系的基数(Cardinalit)
    例如3关系,描述为家庭(丈夫:男人,妻子:女人,子女:儿童)或家庭(丈夫,妻子,子女)
  4. 关系与关系模式
    同一关系模式下,可能有很多的关系
    关系模式是关系的结构,关系是关系模式在某一时刻的数据
    关系模式是稳定的;而关系是某一时刻的值,是随时间可能变化的

(3)关系的特性

  1. 列是同质:即每一列中的分量来自同一域,是同一类型的数据
  2. 不同的列可来自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名
  3. 关系模式R(A1:D1,A2:D2,…,An:Dn)中,Ai(i=1,…n)必须是不同的,而Di(i=1,…n)可以是不同的。
    数据库概论---第3讲--关系模型之基本概念
  4. 理论上,关系得到任意两个元组不能完全相同。(集合的要求:集合内不能有相同的两个元素);现实应用中,表(Table)可能并不完全遵守此特性。
    元组相同是指两个元组的每个分量都相同
  5. 属性不可再分特性:又被称为关系第一范式

(4)关系上的一些重要概念——候选码/候选键

  1. 关系中的一个属性组,其值能唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码。
  2. 例如:“学生(S#, Sname, Sage, Sclass)”,S#就是一个候选码, 在此关系中,任何两个元组的S#是一-定不同的,而这两个元组的Sname,Sage, Sclass都可能相同(同名、同龄、同班),所以S#是候选码。
  3. 再如:“选课(S#, C#, Sname, Cname, Grade)", (S#,C#)联合起来是一个候选码
  4. 有时,关系中有很多组候选码,例如:学生(S#, Sname, Sage, Sclass, Saddress)其中属性S#是候选码,属性组(Sname, Saddress)也是候选码(同名同地址的两个同学是不存在的)
  5. 再如:Employee(EmplD, EmpName, Mobile)每一一雇员有唯一-的EmplD,没有两个雇员有相同的手机号Mobile,则EmpID是候选码,Mobile 也是候选码

(5)关系上的一些重要概念——主码/主键

  1. 主码(Primary Key)/主键
    当有多个候选码时,可以选定一个作为主码。
    ODBMS以主码为主要线索管理关系中的各个元组。
    例如可选定属性S#作为“学生"表的主码,也可以选定属性组(Sname,Saddress)作为“学生"表的主码。选 定EmpID为Employee的主码。

(6)关系上的一些重要概念——主属性与非主属性

  1. 主属性非主属性
    包含在任何一个候选码中的属性被称作主属性,而其他属性被称作非主属性
    如“选课”中的S#,C#为主属性,而Sname, Cname, Grade则为非主属性;
    最简单的,候选码只包含一个属性
    最极端的,所有属性构成这个关系的候选码,称为全码(All-Key)。比如:关系“教师授课"(T#,C#)中的候选码(T#,C#)就是全码。

(7)关系上的一些重要概念——外码/外键

数据库概论---第3讲--关系模型之基本概念
数据库概论---第3讲--关系模型之基本概念

关系模型中的完整性约束

(1)实体完整性

  1. 关系的主码中的属性值不能为空值
  2. 空值:不知道或无意义的值;
  3. 意义:关系中的元组对应到现实世界相互之间可区分的一个个个体,这些个体是通过主码来唯一标识的;若主码为空,则出现不可标识的个体,这是不容许的。
    数据库概论---第3讲--关系模型之基本概念

(3)参照完整性

数据库概论---第3讲--关系模型之基本概念

(4)用户自定义完整性

数据库概论---第3讲--关系模型之基本概念

(5)DBMS对关系完整性的支持

数据库概论---第3讲--关系模型之基本概念

数据库概论---第3讲--关系模型之基本概念