数据库系统概念第二章
关系模型介绍
关系数据库的结构
关系数据库由表(table)的集合构成,每个表有唯一的名字
一般来说,表中一行 代表一组值 之间的一种联系。由于一个表就是这种联系的一个集合,表 这个概念和数学上的关系 这个概念是密切相关的,这也正是关系数据模型名称的由来
n元组(n-tuple)就是一个有n个值的元组,它对应于表中的一行
在关系模型的术语中,关系(relation)用来指代表,而元组(tuple)用来指代行,属性(attribute)指代的是表中的列
关系实例(relation instance):一个关系的特定实例
对于关系的每个属性,都存在一个允许取值的集合,称为该属性的域(domain)
数据库模式
数据库模式(database schema)是数据库的逻辑设计
数据库实例(database instance)是给定时刻数据库中数据的一个快照
一般来说,关系模式(relation schema)由属性序列及各属性对应域组成。关系模式和关系实例的区别非常重要(常使用同一个名字instructor)
一个元组的属性值必须是能够唯一区分 元组的,也就是说,一个关系中没有两个元组在所有属性上的取值都相同
超码(superkey)是一个或多个属性的集合,这些属性的组合可以使我们在一个关系中唯一地标识一个元组,最小超码称为候选码(candidate key);主码(primary key)代表被数据库设计者选中的、主要用来在一个关系中区分不同元组的候选码;码是整个关系 的一种性质,而不是单个元组 的性质
参照完整性约束(referential integrity constraint)要求在参照关系中任意元组在特定属性上的取值必然等于被参照关系中某个元组在特定属性上的取值
模式图、关系查询语言、关系运算
一个含有主码和外码依赖的数据库模式可以用模式图(schema diagram)来表示。每一个关系用一个矩形来表示,关系的名字显示在矩形上方,矩形内列出各属性;主码属性用下划线标注;外码依赖用参照关系的外码属性到被参照关系的主码属性之间的箭头来表示
查询语言(query language)可以分为过程化语言(procedural language)和非过程化语言(nonprocedural language)
关系代数包括一个运算的集合,这些运算以一个或两个关系为输入,产生一个新的关系作为结果
关系演算有元组关系演算和域关系演算两种形式,它使用谓词逻辑来定义所需的结果,但不需给出获取结果的特定代数过程
下面是几个运算的概述: