1.1关系数据库的结构
关系型数据库由表的集合组成,每个表有唯一的名字。
一般来说,表中一行代表了一组值之间的一种联系,由于一个表就是这种联系的一个集合,表这个概念和数学上的关系这个概念是密切相关的,这也正是关系数据库模型名称的由来。n元组就是一个有n格值得元组,它对应表中得一行
- 这样,在关系模型中,关系用来指代表,而元组用来指代行,属性指代表中得列
- 属性得域:对于关系得每个属性,都存在一个允许取值得集合,称为该属性得域
1.2数据库模式
关于数据库模式和数据库实例,前者是数据库得逻辑设计,后者是给定时刻数据库中数据的一个快照
关系的概念对应于程序设计语言中变量的概念,而关系模式的概念对应于程序设计语言中类型定义的概念
1.3码
我们必须有一种能区分给定关系(指表)中的不同元组(指行)的方法,这用它们的属性来表名,也就是说,一个元组的属性值必须是能够唯一区分元组的
- 超码是一个或多个属性的集合,这些属性的组合可以使我们在一个关系中唯一标识一个元组
- 候选码:其本身是一个超码,但是它的任何子集都不是超码
- 主码:被数据库设计者选中的,用来在同一实体集中区分不同实体的候选码
1.4关系查询语言
查询语言是用户用来从数据库中请求获取信息的语言,查询语言可以分为过程化和非过程化:
- 过程化语言:用户指导系统对数据库执行一系列操作以计算出所需结果(需要教数据库)
- 非过程化语言:用户只需描述信息,而不用给出获取该信息的具体过程(不需要教数据库)
1.5关系运算
所有的过程化关系查询语言都提供了一组运算,这些运算要么施加于一对关系上,要么施加在单个关系上,关系运算一个重要的性质是:运算结果总是单个的关系,又因为关系查询的结果本身也是关系,所以关系运算可施加到查询结果上,正如施加到给定关系集上一样