数据库系统概念笔记——第2章 关系模型介绍
第2章 关系模型介绍
关系数据库的结构
关系数据库由表(table)的集合构成,每个表有唯一的名字。一般来说,表中一行代表了一组值之间的一种联系,由于一个表就是这种联系的一种集合,表这个概念和数学上的关系这个概念密切相关的。
在数据模型的术语中,关系(relation)用来指代表,而元组(tuple)用来指点行,类似的属性(attribute)指代表中的列。
我们用关系实例(relation instance)这个术语表示一个关系的特定实例。
空(null) 值是一个特殊的值,表示值未知或者不存在。
数据库模式
谈论数据库时,必须区分数据库模式(database schema)和数据库实例(database instance),前者是数据库的逻辑设计,后者是给定时刻数据库中数据的一个快照。
关系的概念对应于程序语言中变量的概念,而关系模式(relation schema)的概念对应于程序设计中类型定义的概念。
授课情况的关系模式为:
码
超码(superkey)是一个或多个属性的集合,这些属性的组合可以使得我们在一个关系中唯一地标识一个元组。
形式化描述:设表示关系模式中的属性集合。如果我们说的一个子集是的一个超码,则限制了关系中任意两个不同元组不会再的所有属性上取值完全相等。即如果和在中且,则。
最小的超码称为候选码(candidate key)。
我们用主码(primary key)这个术语用来代表被数据设计者选中的,用来在一个关系中区分不同元组的候选码。
一个关系模式(如)可能在它属性中包含另一个关系模式(如)的主码。这个属性在上称作参照()的外码(foreign key)。关系也称为外码依赖的参照关系(referencing relation)叫做外码的被参照关系(referenced relation)。
模式图
一个含有主码和外码依赖的数据库模式可以用模式图(schema diagram)来表示。
关系查询语言
查询语言(query language) 是用户用来从数据库中请求获取信息的语言。查询语言可以分为过程化和非过程化的。在过程化语言(procedural language)中,用户知道系统对数据库执行一系列操作以计算所需要结果。在非过程化语言(nonprocedural language)中,用户只需要描述所需要的信息,而不用给出获取该信息的具体过程。
关系运算
关系运算要么施加到单个关系上,要么施加于一对关系上,这些运算具有一个很好的,并且也是所需的性质。
后面会有详细的介绍