关系模型

关系模型三要素

  • 数据结构
  • 基本操作
    • 基于集合的运算
    • 基于逻辑的运算
  • 完整性约束

关系数据库:支持关系模型的数据库系统

关系模型相关概念

数据库中关系定义为“表”,表的列表示为“域”,表的行表示为“元组”

Domain : 一组具有相同数据类型的值的集合

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

EG:

\[D_{1}= \{"男", "女"\} \]

笛卡尔积

  • 分量(Component)
    • 笛卡尔积元素(\(d_{1},d_{2},...,d_{n}\)) 中的每个值\(d_i\) 叫做一个分量
  • 基数(Cardinal number)

给定一组域 \(D_{1}\), \(D_2\) , \(...\) \(D_n\) , 他们的笛卡尔积为集合:

\[D_{1}\times D_{2}\times D_{3}\times ... \times D_{n} = \{(d_{1},d_{2},...d_{n}) |d_{i} \in D_{i},i=1,...n\} \]

元组:

  • 笛卡尔积的每个元素\((d_1,d_2,...,d_n)\) 称作一个n-元组

笛卡尔积的表示形式

  • 笛卡尔积可表示为一个二维表
  • 表中的每一行对应一个元组,每列对应一个域

关系

  • 一组域的笛卡尔积的子集(某些具有意义的一些元组)
  • 表示为:

\[R(D_{1},D_2,D_3,...D_N) \]

其中R是关系名, N 是关系的度(Degree)

  • 笛卡尔积不满足交换律
  • 关系满足交换律
    • 解决: 关系的列附加一个属性名以取消元组分量的有序性

属性(Attribute)

  1. 每个属性都有一个名字
  2. 属性的取值范围, 就是域,是属性所有可能的取值的集合
  3. 属性值通常要求是原子的

关系模式(Schema)

  • 定义了属性后,关系可用\(R(A_1 :D_1 , A_2 :D_2 , …, A_n :D_n )\) 表示
  • 可简记为\(R(A1 , A2 , …, An )\),称为关系模式

关系模式与关系

  • 同一关系模式下,可有很多的关系
  • 关系模式是关系的结构,关系是关系模式某一时刻的数据
  • 关系模式是稳定的;而关系是某一时刻的值,可能变化
  • \(r(R)\) 表示基于关系模式R的关系r

码(Key)

  • 超码(Super key)

    • 若关系中的某一属性组的值能唯一地标识一个元组,则 称该属性组为超码
    • 如果一个属性组是超码,那么它的任意超集也是超码
      EG:

      \[\]

      \[\]

  • 候选码(Candidate key)

    • 最小超码称为候选码,即它的任意真子集都不是超码
    • 在最简单的情况下,候选码只包含一个属性。
    • 在最极端的情况下,关系模式的所有属性是这个关系模 式的候选码,称为全码(All-key)
    • eg
      \(学生(S\#, Name, Age, Class, Mobile)\)
      其中属性S#是候选码,属性Mobile也是候选码
      \(学生选课(S\#, C\#)\)
      属性组\((S\#, C\#)\)是全码
  • 主码(Primary key)

    • 若一个关系有多个候选码,则选定其中一个为主码 (Primary key)
    • 主码的诸属性称为主属性(Prime attribute)。
    • 不包含在任何侯选码中的属性称为非码属性(Non-key attribute)
      eg属性S#是主属性,属性Mobile也是主属性
      属性Name, Age, Class都是非码属性

关系的特性

  • 列同质(Homogeneous)
    • 每一列中的分量是同一类型的数据,来自同一个域
    • 不同的列可出自同一个域
      • 其中的每一列称为一个属性
      • 不同的属性要给予不同的属性名
  • 关系是无序的(Unordered)
  • 属性不可再分
  • 常用的关系操作
    • 查询
      • 选择、投影、连接、除、并、交、差
    • 数据更新
      • 插入、删除、修改
  • 关系操作的特点
    • 集合操作方式,即操作的对象和结果都是集合。

关系模型的完整性约束

空值(NULL)

  • 不知道或无意义的值;

实体完整性(Entity Integrity)

  • 关系的主码中的属性值不能为空值;
  • –意义:关系中的元组对应到现实世界相互之间可区分的个 个体,这些个体是通过主码来唯一标识的;若主码为空, 则出现不可标识的个体,这是不容许的

外码(Foreign Key)

  • 设F是关系R的一个或一组属性,但不是关系R的码。如果F 与关系S的主码相对应,则称F是关系R的外码
  • 关系R称为参照/引用关系(Referencing Relation)
  • 关系S称为被参照/引用关系(Referenced Relation)

如下图左表专业号为外码 , 右表专业号为主码

pic

参照完整性规则

  • 若属性(或属性组)F是关系R参照关系S主码的外码,则R中 每个元组在F上的值必须为
    • NULL(F的每个属性值均为NULL)
    • 或者等于S中某个元组的主码值。

模式图(Schema Diagram)

pic

用户定义的完整性(User Defined Integrity)

  • 用户针对具体的应用环境定义的完整性约束条件
    • 如:学号要求是10位整数,其中前4位为年度,接着2 位表示学院编号,1位专业号,2位专业内编号....
posted @ 2023-10-19 16:06  Mars-Luke  阅读(56)  评论(0)    收藏  举报