首页 理论教育 数据库关系模型及基础概念

数据库关系模型及基础概念

时间:2023-10-21 理论教育 版权反馈
【摘要】:在关系模型中,数据的逻辑结构是关系。在关系模型中一共包含十个术语,下面将一一介绍。(一)关系关系用英文表示为Relation。在关系模型中,关系的表示方式主要是通过表来进行的,该表被称作关系表。关系是关系模型中最基本的数据结构。关系模型的许多基础理论都是基于上面这些关系的基本性质而发展起来的,但在实际的关系数据库产品中,基本表并不完全遵循这六条基本性质。

数据库关系模型及基础概念

在关系模型中,数据的逻辑结构是关系。关系可形象地用二维表表示,因此常称为表。

在关系模型中一共包含十个术语,下面将一一介绍。

(一)关系

关系用英文表示为Relation。在关系模型中,关系的表示方式主要是通过表来进行的,该表被称作关系表。一个关系对应一个表,并且关系与关系之间的名称、关系表与关系表之间的名称都是不同的。

(二)属性

属性用英文表示为Attribute。在关系表中,一列就是一个属性,且每一个属性都有自己的名称,并显示在每一列的第一行处。需要注意的是,一个关系中不能同时出现两个名称一样的属性。

(三)域

每一个属性都有其取值范围,这个范围就称为域,域用英文表示为Domain。举个例子来说,年龄这一属性的域为两位整数,姓名这一属性的域为十个字节或字符串。

(四)元组

元组用英文表示为Tuple。一个实体的所有属性值的总称就是元组,即在关系表中,一行数据的总称,它包含了某一个实体的所有属性。需要注意的是,在一个关系中不能有两个完全相同的元组出现。

(五)分量

分量用英文表示为Component,通常指的是一个元组在某一个属性上的分量,在这一属性上的值就是它实际的分量。

(六)候选码

候选码用英文表示为Candidate Key,有时人们将其简称为码,用英文表示为Key。候选码通常指的是关系中的属性或属性组,其具体的值主要用于标识关系中的每个元组,并且是唯一能够标识的不含有多余属性的候选码。

(七)主码

主码用英文表示为Primary Key。当某一个关系中存在许多候选码,则会在这候选码中选出一个当作主码。需要注意的是,在每一个关系中都存在主码,且主码只有一个。

(八)主属性

主属性用英文表示为Main,具体指的是每一个候选码中都存在的属性。若有属性不存在于任意一个候选码中,则称该属性为非主属性,有时也称作非码属性。(www.xing528.com)

(九)外部码

外部码用英文表示为Foreign Key。在基本关系R中存在一种属性或属性组A,在R1中A不属于其中的码,但是在R2中存在一个码K,与A相对应,则R1的外码就是A。R1与R2这两条基本关系可以是不同的,也可以是相同的。需要注意的是,A与K一定在同一个组域上。

(十)关系模式

一个关系的关系名及其全部属性名的集合简称为该关系的关系模式,一般表示为关系名(属性名1,属性名2,…,属性名n)。

以职工关系为例,其关系模式表示为职工(姓名、性别、职工号、年龄、职称、部门)。

关系模式实际上是一种型,主要用于描述关系结构;关系实际上是一个值,主要用于表示在某一时刻关系模式所处的状态以及蕴含的内容,是该时刻中关系的元组集合。

由此可见,关系模式具有稳定与静态的特点,因为关系会跟随时间发生变化,所以关系具有动态的特点。有时候人们会将这两个内容都称作关系,但前提是这种称呼不会引起混淆。

关系是关系模型中最基本的数据结构。关系用来表示实体集(如上面的职工表、项目表),也用来表示实体间的联系集(如上面的参加表)。当然,联系本质上也是实体集,只不过它是实体集的另一种表示形式(其实属性也是实体)。

关系具有以下六个基本性质:

1.关系中的每个分量值都是原子的,是不可分的基本数据项

空值(Null)在关系中是很重要的一个概念,用来表示暂时不知道或者无意义的属性值。例如在项目表中,由于项目编号为201001和201002的两个项目还没有最后验收,因此系统暂时不知道它们的验收日期,故只能用空值代替。

2.属性列是同质的,即同一列的分量值应该来自相同的域。在具体的数据库产品或者编程语言中,域常被称为类型(Type)。数据类描述了各列中可以出现的值的类型,它是定义域的最简单的方法,如INTEGER、REAL、CHARACTER等。

3.不同的列可以出自同一个域。例如,在职工的工资关系中,基本工资、津贴、公积金等不同的列取值范围都是一样的,都是数型数据,即它们的域相同。

4.列的次序可以相互交换。

5.行的顺序也可以相互交换。

6.一个关系中的任意两个元组不能相同。

关系模型的许多基础理论都是基于上面这些关系的基本性质而发展起来的,但在实际的关系数据库产品中,基本表(Table)并不完全遵循这六条基本性质。例如,有些产品区分了元组或者属性的次序,有些基本表中允许存在完全相同的元组,但这在系统开发中会给开发人员造成意想不到的麻烦。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈