关系数据库基本术语

来源

《数据库系统原理》

第二节  关系数据模型

  关系数据库系统是支持关系模型的数据库系统。作为一种数据模型,关系模型同样包含三个组成要素,分别是关系数据结构、关系操作集合和关系完整性约束。

一、关系数据结构

  关系模型的数据结构非常简单,只包含单一的数据结构。即关系。在关系模型中,现实世界的实体以及实体间的各种联系,均是使用关系来表示。在用户看来,关系模型是把数据库表示为数据的集合,且关系数据库 是以二维表格的形式组织数据,例如表2.1就是一张记录学生基本信息的二维表格,该表格为学生基本信息登记表。

表2.1  学生基本信息登记表

学号

姓名

性别

出生日期

籍贯

民族

班号

身份证号

201311111

张沙

1997/12/11

山西

AC1311

XXX1

201311112

张萌

1996/6/1

安徽

AC1311

XXX2

201311113

张伊尉

1998/1/1

安徽

AC1311

XXX3

  下面。以表2.1所示的二维表格为例,介绍关系数据库的基本术语。

  1.表(Table)

  表,也称为关系,是一个二维的数据结构,它由表名、构成表的各个列(如学号,姓名,性别,出生日期等)及若干行数据(各个学生的基本信息)组成。每个表有一个唯一的表名,表中每一行数据描述一条具体的记录值,如一个学生的基本信息。

  2.关系(Relation)

  一个关系逻辑上对应一张二维表,可以为每个关系取一个名称进行标识。例如,表2.1所示的学生基本信息登记表,也即学生基本信息登记表关系。

  关系可以有三种类型,即基本关系、查询表和视图表。其中,基本关系通常又称为基本表或基表,是实际存在的表,它是实际存储数据的逻辑表示;查询表是查询结果对应的表;视图表是由基本表或其他视图表导出的表,是虚表,部队营实际存储的数据。

  3.列(Column)

  表中的列,也称作字段(Field)或属性(Attribute)。表中每一列有一个名称,称为列名、字段名或属性名。每一列表示实体的一个属性,具有相同的数据类型。如表2.2所示,它列出了表2.1学生基本信息登记表中各个字段的字段名及其数据类型的定义。

表2.2  学生基本信息登记表的结构定义

中文字段名

数据类型

宽度

学号

字符型

10

姓名

字符型

20

性别

字符型

3

出生日期

日期型

籍贯

字符型

20

民族

字符型

30

班号

字符型

8

身份证号

字符型

18

  需要说明的是:在一个数据库中,表名必须唯一;在表中,字段名必须唯一,不同表中可以出现相同的字段名;表和字段的命名应尽量有意义,尽量简单。

  4.属性(Attribute)

  表中的一列即为一个属性,给每一个属性起一个名称极为属性名。与之同义的术语是“列”。表中属性的个数称为关系的元或度。列的值称为属性值;属性值的取值范围称为值域。例如,表2.1中学生基本信息登记表关系的属性有:学号、姓名、性别、出生日期、籍贯、民族、版号、身份证,所以元数是8,即学生基本信息登记表关系是一个8元关系或8度关系。

  5.行(Row)

  表中的行(Row),也称作元组(Tuple)或记录(Record)。表中的数据是按行存储的。表中的一行数据即为一个元组或一条记录,其每行由若干字段值组成,每个字段值描述该对象的一个属性或特征。例如,在表2.1中,第一行数据表示的是学号为201311111、姓名为张沙的学生基本信息。

  6.元组(Tuple)

  表中的一行即为一个元组。例如,在表2.1中的元组有:

201311111

张沙

1997/12/11

山西

AC1311

XXX1

201311112

张萌

1996/6/1

安徽

AC1311

XXX2

201311113

张伊尉

1998/1/1

安徽

AC1311

XXX3

等。

  7.分量(Component)

  元组中的一个属性值,称为分量。例如,在学生基本信息登记表中元组

201311112

张萌

1996/6/1

安徽

AC1311

XXX2

的每一个属性值:“201311112”、“张萌”、“女”、“1996/6/1”,“安徽”,“汉”,“AC1311”,“XXX2”都是它的分量。

  8.码或键(Key)

  如果在一个关系中,存在这样的属性(或属性组),使得在该关系的任何一个关系状态中的两个元组,在该属性(或属性组)上值的组合都不相同,即这些属性(或属性组)的值都能用来唯一标识该关系的元组,称这些属性(或属性组)为该关系的码或键。(读者译:物理数据“实际数据”值的引用)

  9.超码或超键(Super Key)

   如果在关系的一个码中移去某个属性,它仍然是这个关系的码,则称这样的码或键为该关系的超码或超键。一般的,每个关系至少有一个默认的超码或超键,即该关系的所有属性的集合,也是这个关系的最大超码或超键。例如,在表2.1中,

学号

姓名

性别

出生日期

籍贯

民族

班号

身份证号

  都是超码或超键。

  10.候选码或候选键(Candidate Key)

  如果在关系的一个码或键中,不能从中移去任何一个属性,否则它就不是这个关系的码或键,则称这样的为该关系的候选码或候选键。可见,一个关系的候选码是这个关系的最小超码或超键。例如,表2.1最中学号和身份证号都是候选建,因为若给定学号或身份证号,都可以确定一个学生的全部基本信息。

  有些情况下,需要几个属性(即属性组或属性集合)才能唯一确定一条记录。例如,对于表2.3所示的学生成绩表的结构定义,仅仅确定学号或课程号,都不能唯一确定某个学生具体一门课程的成绩。所以,学生成绩表的主键是由学号和课程号两个属性组成的属性集合,即(学号,课程号)。

表2.3  学生成绩表的结构定义

中文字段名

数据类型

宽度

学号

字符型

10

课程号

字符型

6

开课学期

字符型

5

成绩

数值型

  11.主码或主键(Primary Key)

  在一个关系的若干候选码或候选键中指定一个用来唯一标识关系的元组,则称这个被指定的候选码或候选键为该关系的主码或主键。

  12.全码或全键(All-Key)

  一个关系模式的所有属性集合是这个关系的主码或主键,责成这样的主码或主键为全码或全键。

  13.主属性(Primary Attribute)和非主属性(Nonprimary Attribute)

  关系中包含在任何一个候选码中的属性称为主属性或码属性,不包含在任何一个候选码中的属性称为非主属性或非码属性。例如,在表2.1在学生基本信息登记表中,学号和身份证号是主属性,其他属性是非主属性。

  14.外码或外键(Foreign Key)

  当关系中的某个属性(或属性组)不是这个关系的主码或候选码,而是另一关系的主码时,称该属性(或属性组)为这个关系的外码或外键。例如,在表2.4中班号是班级表的主键,而该属性又是表2.1学生基本信息登记表的一个属性,则成属性班号为学生基本信息表的外键。

中文字段名

数据类型

宽度

班号

字符型

8

班级名称

字符型

20

所属院系

字符型

30

入学时间

日期型

班级最大人数

数值型

  15.参照关系(Referencing Relation)和被参照关系(Referened Relation)

  参照关系也称为从关系,被参照关系也称为主关系,它们是指以外键相关联的两个关系。以为外键为主码的关系称为被参照关系;外键所在的关系称为参照关系。被参照关系与参照关系是通过外键相联系的,这种联系通常是一对多联系。例如,表2.4所定义的班级表是被参照关系,而表2.1所示的学生基本信息登记表是参照关系,它们通过外键“班号”相联系。

  16.域(Domain)

  域表示属性的取值范围。

  17.数据类型(Date Type)

  表中每个列都有对应的数据类型,它用于限制(或容许)该列中存储的数据。每个字段表示同一类信息,具有相同的数据类型。

  18.关系模式(Relation Schema)

  同数据模型一样,数据库也有“型”(Type)和“值”(Value)之分。在关系数据库中,关系模式是型,关系是值,即关系模式是对关系的描述,例如表2.2就是对对关系的结构定义,关系则是元组的集合,是关系模式在某一时刻的状态或内容。

  关系模式是静态的、稳定的,而关系是动态的、随时间变化的。这是因为关系操作在不断的更新着数据库中的数据,例如,(读者译:别例如了,这东西自己想象,哦描述了数据模式,用概念来创造一个概念模型,这个模型在开发中,是不能更改的,除非用户需求更改)。

  在实际工作中,人们常常会把关系模式和关系都笼统地称为关系,(读者译:甚至表>__<),当然这不难从上下文中加以区别。

  19.关系数据库(Relation DateBase)

  关系数据库是以关系模型作为数据的逻辑模型,并采用关系作为组织方式的一类数据库,其数据库操作建立在关系代数的基础上。在一个给定的应用领域中,所有关系的集合构成一个关系数据库。

  

 

  此外,尽管关系模型的数据结构表示为二维表,但不是任意的一个二维表都可以作为一个关系。关系数据库对关系是有限定的,具体要求如下。

  i)每一个属性都是不可分解的。这是关系数据库对关系的最基本的一个限定,要求关系的每一个分量必须是一个不可分的数据项。

  ii)每一个关系仅仅有一种关系模式,即每一个关系模式中的属性的数据类型以及属性的个数是相对固定的。

  iii)每一个关系模式中的属性必须命名,在同一个关系模式中属性名必须是不同的。

  iv)同一个关系中不允许出现候选码或候选键完全相同的元组。

  v)在关系中元组顺序(即行序)是无关紧要的,任意交换。

  vi)在关系中属性的顺序(即列序)是无关紧要的。任意交换。

 

人已赞赏
站长资讯

神经网络入门——神经元算法

2020-11-9 3:42:02

站长资讯

Laravel 和 Spring Boot 两个框架比较创业篇(二:人工成本)

2020-11-9 3:42:04

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索