数据库系统——002. 关系模型介绍

002. 关系模型介绍

2.1 关系数据库的结构

关系数据库由表的集合构成,每个表有唯一的名字。表中的一行代表了一组值之间的一种联系。一个表就是这种联系的一个集合。表这个概念和数学中的关系概念密切相关。在数学中,元组(tuple)是一组值的序列或列表。n个值之间的联系可用这些值的一个n元组(n-tuple)来表示,n元组对应表中的一行。

在关系模型中,关系指代表,元组指代行,属性指代列。用关系实例表示一个关系的特定实例,也就是所包含的一组特定的行。由于关系是元组集合,所以元组在关系中出现的顺序是无关紧要的。对于关系的每个属性,都存在一个允许取值的集合,成为该属性的域(domain)。

2.2 数据库模式

数据库模式是数据库的逻辑设计,数据库实例是给定时刻数据库中数据的一个快照。

关系的概念对应于程序设计语言中变量的概念,关系模式的概念对应于程序设计语言中类型定义的概念。关系模式由属性序列及各属性对应域组成。

2.3 码

区分给定关系中不同元组的方法,用其属性值表示。一个元组的属性值必须是能够唯一区分元组的。

超码(superkey)是一个或多个属性的集合,这些属性的组合可以在一个关系中唯一地表示一个元组。

形式化地描述,设R表示关系r模式中的属性集合。若R的一个子集K是r的一个超码,则限制了关系r中任意两个不同元组不会在K的所有属性上取值完全相等,即若 t1 ≠ t2,则t1 * K ≠ t2 * K。

若K是一个超码,则K的任意超集也是超码。任意真子集都不为超码的超码为候选码(candidate key)。

用主码(primary key)代表用于在一个关系中区分不同元组的候选码。码是整个关系的一种性质,而非单个元组的性质。关系中的任意两个不同的元组不能同时在码属性上具有相同的值。码的制定代表了被建模的事物在现实世界中的约束。

一个关系r1可能在它的属性中包括另一个关系模式r2的主码。这个属性在r1上称作参照r2的外码。关系r1称为外码依赖的参照关系,r2叫做外码的被参照关系。

2.4 模式图

一个含有主码和外码依赖的数据库模式可以用模式图来表示。

2.5 关系查询语言

查询语言是用户用来从数据库中请求获取信息的语言。查询语言分为过程化的和非过程化的。过程化语言中,用户指导系统对数据库执行一系列操作以计算出所需结果。在非过程化语言中,用户只需描述所需语言,而不用给出获取该信息的具体过程。

2.6 关系运算

所有的过程化查询语言都提供了一组用于单个关系或一对关系上的运算,这些运算的结果总是单个的关系。

常用关系运算:

  • 从单个关系中选出满足一些特定谓词的特殊元组,其结果是原始关系的一个子集。
  • 从一个关系中选出特定的属性(列),其结果是一个只包含那些被选择属性的新关系。
  • 连接运算,把分别来自两个关系的元祖对合并成单个元组。
  • 笛卡儿积运算,从两个关系中合并元组,其结果包含来自两个关系元祖的所有对,无论其属性值是否匹配。
  • 标准的集合运算,如:选择、投影、自然连接、笛卡尔积、并

你可能感兴趣的:(数据库系统——002. 关系模型介绍)