跳至主要內容

Chapter2 Introduction to Relational Model

Chiichen原创大约 3 分钟课程笔记数据库

关系(Relation)

Example of a Relation
Example of a Relation

属性值(Attribute Types)

  • 每个属性允许的值集合称为属性的域(domain)。
  • 属性值(通常)要求是原子(atomic)的,即不可分割的。
  • 特殊值 null 是每个域的成员。
  • null 值在许多操作的定义中引起了复杂性。

关系模式和实例(Relation Schema and Instance)

  • 关系模式是关系数据库中表的结构定义,它规定了表的列名、数据类型和约束条件。它描述了表的属性以及属性之间的关系。
  • 关系实例是关系模式的具体实例化,即表中的具体数据。它是由行和列组成的二维表格,每行代表一个记录,每列代表一个属性。
  • 简而言之,关系模式定义了表的结构,而关系实例则是实际存储在表中的数据。

形式化描述

  • 例如:A1是属性名,D1A1的取值范围,a1A1中的一个元素
  • A1,A2,A3,...,An就是属性(attribute)
  • R=(A1,A2,...,An)是一个关系模式(relation schema)
    • 例如 instrutor=(ID,name,dept_name,salary)
  • 对于给定的若干个集合D1,D2,...,Dn,一个关系rD1×D2×...×Dn的子集
  • 关系是无序的

数据库

  • 一个数据库由多个关系组成。
  • 关于一个大学的信息被分解成不同的部分。
  • 不好的设计:univ(instructorIDnamedept_namesalarystudent_Id...)导致了信息的重复(例如,两个学生有相同的教师)和需要使用空值(例如,表示没有指导教师的学生)。
  • 规范化理论(第 7 章)处理如何设计“好”的关系模式。

键(Key)

  • KR,(其中 R 是一个关系模式,由多个属性组成)。

  • 如果 K 的值足以唯一标识每个可能的关系 r(R) 中的元组,则 KR超键(superkey)

    • 例如,{ID}{ID,name}都是 instructor 关系的超键。
  • 如果 K 是最小的超键,则 K候选键(candidate key)

    • 例如,{ID}Instructor 的候选键。
  • 其中一个候选键被选为主键(primary key)

    • 哪一个是主键?
  • 外键约束(Foreign key):一个关系中的值必须出现在另一个关系中。

    • 引用关系(Referencing relation):包含外键的关系。
    • 被引用关系(Referenced relation):被外键引用的关系。

关系查询语言(Relational Query Languages)

  • 过程式 vs. 非过程式,或声明式(Procedural vs.non-procedural, or declarative)
  • "纯"语言:
    • 关系代数(Relational algebra)
    • 元组关系演算(Tuple relational calculus)
    • 域关系演算(Domain relational calculus)
  • 关系操作符(Relational operators)
    Selection of tuples
     Selection of Columns (Attributes)
    Joining two relations – Cartesian Product
     Union of two relations
    Set difference of two relations
     Set Intersection of two relations

合并两个关系 - 自然连接

  • 假设 rs 是分别基于模式 RS 的关系。那么,关系 RS 的“自然连接”是基于模式 RS 的关系,其过程如下:
    • 对于 r 中的每个元组 trs 中的每个元组 ts,考虑每对元组。
    • 如果 trtsRS 中的每个属性上有相同的值,则将一个元组 t 添加到结果中。其中:
      • ttrr 上具有相同的值。
      • ttss 上具有相同的值。

简而言之,自然连接操作是基于两个关系中共同属性的值相等的元组进行并。结果是一个新的关系,包含了具有相同共同属性值的元组。

Natural Join Example
Relational algebra