首页 百科知识 数据库模型

数据库模型

时间:2022-04-03 百科知识 版权反馈
【摘要】:2.2.1 数据库模型实体之间的联系我们知道数据是对现实事物的描述,当使用数据库来存储数据时,实体和实体的属性分别可以用记录和字段来表示。数据库模型主要有层次模型、网状模型和关系模型等类型。位于层次最高级别的数据元素或记录被称为根元素。关系模型就是用二维表来表示实体以及实体之间联系,关系就是二维表的更正式的用语。

2.2.1 数据库模型

实体之间的联系

我们知道数据是对现实事物的描述,当使用数据库来存储数据时,实体和实体的属性分别可以用记录和字段来表示。

现实事物间,也就是实体之间并不是孤立的,而是相互联系的。例如,班级和学生是两种类型的实体,一个班级实体由若干个学生实体组成。而班级和班主任这两种类型的实体之间则存在着一一对应的关系。学生和课程也存在着一种联系,学生学习课程,一个学生可能学习很多门课程,反过来,一门课程也会被多个学生学习。

实体之间的联系可以分为三种类型:一对一、一对多和多对多,如果用任意字母来表示“多”,则上述三种联系分别可以记为1∶1、1∶n、m∶n。

1∶1联系。若对于实体集A中的每个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B是一对一(1∶1)关系。例如,国家和元首的联系、班级和班主任之间的联系都是1∶1的联系。

1∶n联系。若对于实体集A中的每一个实体,实体集B中有多个实体与之联系;反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B是一对多(1∶n)联系。例如,班级和学生就是1∶n的联系。

m∶n联系。若对于实体集A中的每一个实体,实体集B中有多个实体与之联系;反之,对于实体集B中的每一个实体,实体集A中也有多个实体与之联系,则称实体集A与实体集B是多对多(m∶n)联系。例如,学生和课程的联系就是m∶n的联系。

既然实体之间存在着联系,数据库中的数据除了能反映各实体的属性之外,还必须进行合理的组织,以反映实体之间的联系。DBMS采用数据库模型来描述实体以及实体之间的联系。数据库不仅描述数据本身的特征,还描述数据之间的联系,正是这一点使得数据库与传统文件有了根本性的区别。数据库模型主要有层次模型、网状模型和关系模型等类型。

层次模型与网状模型

早期的数据库采用的是层次模型或网状模型。层次模型的特点是实体之间按层次关系来定义,实体用记录表示,实体的属性对应记录的数据项,实体之间的联系则用树状结构表示。图2-5是层次模型示例。

图2-5 层次模型示例

在层次模型中,所有记录是相互依赖的,并且被置于多个级别(层次)里,有一条根记录(图2-5中的系)和若干从属级别。因而,所有记录之间的关系为一对多关系,每个数据元素只与位于它上一层的某个数据元素相关联。位于层次最高级别的数据元素或记录被称为根元素。进行查询时,需要从根开始沿着树型分支一步步往下,直到找到要访问的记录为止。因此,每个数据元素只有一条查找路径。

另外一种数据库模型,网状模型中也采用记录来表示实体,但采用有向图来表示实体(记录)之间的联系。也就是说,由于任何数据元素或记录都可能与其他多个数据元素相关联,因此,在网状模型中,可以通过多条路径访问一个数据元素,图2-6就是一个网状模型的例子。

图2-6 网状模型示例

关系模型

上述两种模型的主要缺点是灵活性不够,数据之间的关系需要事先定义,而且一旦定义之后就很难修改。所以,除了在一些老旧系统中可能仍在使用之外,今天,我们使用的数据库主要就是基于关系模型的关系数据库,从大型的、企业级的IBM的DB2、Oracle公司的Oracle、Microsoft的SQL Server,到针对个人的Microsoft Office中的Access都是关系数据库。

关系模型就是用二维表来表示实体以及实体之间联系,关系就是二维表的更正式的用语。相应地,使用关系模型的数据库称为关系数据库。

在关系模型中,实体的表示比较简单。一个实体可以用表格中的一行,即一条记录来表示。而表格的一列,即字段,则对应着实体的属性。

在图2-7中,整张的表格就是表示一个关系。每一行都表示一条记录,对应着现实世界中的一个学生实体。比如第三列就是表示学生“丁玲”这个实体。而每一列都表示是一个字段,对应着实体的一个属性。例如,第二列的“姓名”就是学生实体的一条属性。

通过上面的例子,我们了解了关系模型是如何表示实体的。那么,在关系模型中,如何表示实体之间的联系呢?在解决这个问题之前,我们首先看一下关系模型的“表”有什么特点。

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

我要反馈