【数据库】关系模型

学习数据库系统概念(第六版)笔记,第二章关系模型

关系数据库的结构

  • 关系(relation)指代表(table)

属性(attribute)

  • A1,A2,AnA_1,A_2,\cdots A_n
  • 域(domain):每个属性允许取值的集合
    • 域如果不可再分则域是原子的(atomic)
    • 每个域都有空值(null)

关系模式(relation schema)

  • R=(A1,A2,An)R=(A_1,A_2,\cdots A_n) ,每个属性有其域

关系实例(relation instance)

  • 一行数据、一个元组

  • r(R)r(R)

  • 元组顺序无关紧要

数据库模式

  • 数据库实例:数据库中数据在某一时刻的快照(如一张表)
  • 数据库模式:数据库的逻辑结构(如RR

属性的子集

超码(superkey)

唯一标识元组的一个或多个属性的集合

候选码(candidate key)

最小超码,任意真子集都不能称为超码

主码(primary key)

数据库设计者选中主要用来区分元组的候选码,一般选基本不变化的属性

外码(foreign key)

关系模式r1r_1 包含的关系模式r2r_2 的主码{A1,A2,Am}\{A_1,A_2,\cdots A_m\}AAr1r_1 参照r2r_2 的外码,即r1r_1 是外码AA 的参照关系,r2r_2 是被参照关系,表述又称可以生命从r1r_1r2r_2 的外码约束

注意外码不能只引用主码的一部分

模式图

箭头指示外码,下划线是主码

关系查询语言

  • 从数据库中请求获取信息的语言
  • 过程化语言:给出获取信息的过程,指导系统执行操作,如关系代数
  • 非过程化语言:只描述所需信息
  • SQL既过程化也非过程化

完整性约束(SQL中还会提)

实体完整性约束

  • 关系中的每个元组都是可识别的和唯一的
  • 即关系数据库中所有的表都必须有主键,且表中的记录必须有主键值,主键值均不相同

参照完整性约束(子集依赖)

定义外键与被参照的主键之间的引用规则

用户定义完整性约束

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