数据库关系模式有哪些类型?


数据库关系模式有哪些类型?

文章插图
在关系数据库中有型和值两种类型结构 。关系模式是型,关系是值,关系模式是对关系的描述 。
描述一个关系需要从以下两个方面来定义:第一方面,关系实质上是一个二维表,表的每一行为一个元组,每一列为一个属性 。一个元组就是该关系所涉及的属性集的笛卡儿积的一个元素 。关系是元组的集合,因此关系模式必须指出这个元组集合的结构,即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映象关系 。
第二方面,一个关系通常是由赋予它的元组语义来确定的 。元组语义实质上是一个n目谓词(n是属性集中属性的个数) 。凡使该n目谓词为真的笛卡儿积中的元素(或者说凡符合元组语义的那部分元素)的全体就构成了该关系模式的关系 。
1.3.1关系数据库基本概念关系数据中,关系模式涉及众多概念、术语,初学者对这方面不容易把握与理解,以下用通俗易懂的语言来对这些概念及术语作简单的介绍 。
1.关系关系(Relation)是指数据库中实体的信息,也就是数据库中二维表的数据 。一个关系就是一个数据库表的值,表中的内容是对应关系模式在某个时刻的值,称为一个关系 。例如,关系A表示数据库有一张名字为A的数据表所记录的所有数据 。关系数据库中每一个关系都具有以下六方面的性质:((1)列是同质的 。即每一列中的分量为同一类型的数据,来自同一个域 。
(2)不同的列可出自同一个域,称其中的每列为一个属性,不同的属性要给予不同的属性名 。
(3)列的顺序无所谓 。即列的次序可以任意交换 。
(4)任意两个元组不能完全相同 。
(5)行的顺序无所谓 。即行的次序可以任意交换 。
(6)分量必须取原子值 。即每一个分量都必须是不可分的数据库属性 。
2.模式模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,也称逻辑模式 。有以下几方面性质:((1)一个数据库只有一个模式 。
(2)模式是数据在逻辑级上的视图 。
(3)以某一种数据模型为基础 。
定义模式时不仅要定义数据的逻辑结构,包括数据项的构成、名字、类型、取值范围等,而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系 。
3.关系模式关系模式(RelationSchema)描述的是与关系相对应的二维表的表结构,即关系中包含哪些属性,属性来自哪些域,以及与域之间的映象关系 。
关系模式与关系的区别:((1)关系模式描述了关系数据结构和语义,是关系的型 。而关系是一个数据集合,是关系模式的值,是关系模式的一个实例 。
(2)关系实际上就是关系模式在某一时刻的状态或内容 。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为数据库操作会不断地更新数据库中的数据 。
4.元组元组(Tuple)是关系数据库中的基本概念,一个关系表中的每行就是一个元组 。也就是说数据库表中的每条记录都是一个元组,表结构的每列就是一个属性,在二维表里,元组也称为记录 。元组可表示一个关系或关系之间的联系 。
一般情况下,一个关系数据表中的每条记录均有一个唯一的编号(记录号),这个编号也叫元组号 。
5.码码(Key)是关系数据库系统中的基本概念 。所谓码,就是能唯一标识实体的属性集,是整个属性集,而不是单个属性 。在关系数据库中,码包括多种类型,如超码、候选码和主码 。
((1)超码(SuperKey) 。超码是一个或多个属性的集合,这些属性可以在一个实体集中唯一地标识一个实体 。如果K是一个超码,那么K的任意超集也是超码,也就是说如果K是超码,那么所有包含K的集合也是超码 。例如,学生是一个实体,则学生的集合是一个实体集,而超码用来在学生的集合中区分不同的学生 。假设学生(实体)具有多个属性:学号,身份证号,姓名,性别 。因为通过学号可以找到唯一一个学生,所以{学号}是一个超码,同理{学号,身份证号}、{学号,身份证号,姓名}、{学号,身份证号,姓名,性别}、{身份证号}、{身份证号,姓名}、{身份证号,姓名,性别}也是超码 。在这里,因为不同的学生可能拥有相同的姓名,所以姓名不可以区别一个学生,即{姓名}不是一个超码,{性别}、{姓名,性别}也不是 。
(2)候选码(CandidateKey) 。候选码是可以唯一标识一个元组的最少的属性集合 。候选码是从超码中选出的,因此候选码也是一个或多个属性的集合 。因为超码的范围太广,很多是无用的,所以候选码是最小超码,它们的任意真子集都不能成为超码 。例如,如果K是超码,那么所有包含K的集合都不能是候选码;如果K,J都不是超码,那么K和J组成的集合{K,J}有可能是候选码 。

推荐阅读