三种数据模型

来源:互联网 发布:时间安排软件 编辑:程序博客网 时间:2024/05/14 16:47

数据库的类型是根据数据模型来划分的,而任何一个DBMS也是根据数据模型有针对性地设计出来的,这就意味着必须把数据库组织成符合DBMS规定的数据模型。目前成熟地应用在数据库系统中的数据模型有:层次模型、网状模型和关系模型。它们之间的根本区别在于数据之间联系的表示方式不同(即记录型之间的联系方式不同)。层次模型以“树结构”表示数据之间的联系。网状模型是以“图结构”来表示数据之间的联系。关系模型是用“二维表”(或称为关系)来表示数据之间的联系的。

  1.层次模型(Hierchical)

  层次模型是数据库系统最早使用的一种模型,它的数据结构是一棵“有向树”。根结点在最上端,层次最高,子结点在下,逐层排列。层次模型的特征是:

  • 有且仅有一个结点没有父结点,它就是根结点;
  • 其他结点有且仅有一个父结点。图所示为一个系教务管理层次数据模型,图(a)所示的是实体之间的联系,图(b)所示的是实体型之间的联系。

  Image:数据模型.jpg

  最有影响的层次模型的DBS是20世纪60年代末,IBM公司推出的IMS层次模型数据库系统。

  2.网状模型(Network)

  网状模型以网状结构表示实体与实体之间的联系。网中的每一个结点代表一个记录类型,联系用链接指针来实现。网状模型可以表示多个从属关系的联系,也可以表示数据间的交叉关系,即数据间的横向关系与纵向关系,它是层次模型的扩展。网状模型可以方便地表示各种类型的联系,但结构复杂,实现的算法难以规范化。其特征是:

  • 允许结点有多于一个父结点;
  • 可以有一个以上的结点没有父结点。

  下图所示为一个系教务管理网状数据模型。

  Image:系教务管理层次数据模型.jpg

  3.关系模型(Relation)

  关系模型以二维表结构来表示实体与实体之间的联系,它是以关系数学理论为基础的。关系模型的数据结构是一个“二维表框架”组成的集合。每个二维表又可称为关系。在关系模型中,操作的对象和结果都是二维表。关系模型是目前最流行的数据库模型。支持关系模型的数据库管理系统称为关系数据库管理系统,Access就是一种关系数据库管理系统。图所示为一个简单的关系模型,其中图(a)所示为关系模式,图(b)所示为这两个关系模型的关系,关系名称分别为教师关系和课程关系,每个关系均含3个元组,其主码均为“教师编号”。

  Image:图关系模型.jpg

  • 描述的一致性,不仅用关系描述实体本身,而且也用关系描述实体之间的联系;
  • 可直接表示多对多的联系;
  • 关系必须是规范化的关系,即每个属性是不可分的数据项,不许表中有表;
  • 关系模型是建立在数学概念基础上的,有较强的理论依据。

  在关系模型中基本数据结构就是二维表,不用像层次或网状那样的链接指针。记录之间的联系是通过不同关系中同名属性来体现的。例如,要查找“刘晋”老师所上的课程,可以先在教师关系中根据姓名找到教师编号“1984030”,然后在课程关系中找到“1984030”任课教师编号对应的课程名即可。通过上述查询过程,同名属性教师编号起到了连接两个关系的纽带作用。由此可见,关系模型中的各个关系模式不应当是孤立的,也不是随意拼凑的一堆二维表,它必须满足相应的要求。

  关系是一个二维表,即元组的集合。关系框架是一个关系的属性名表。形式化表示为:

  R(A_1,A_2,\cdot,A_n)

  其中,R为关系名,Ai(i=1,2,…,n)为关系的属性名。

  关系之间通过公共属性实现联系。例如,图所示为两个关系,通过“教师编号”公共属性实现两个关系之间的联系。

  关系数据库是指对应于一个关系模型的所有关系的集合。例如,在一个教务管理关系数据库中,包含教师关系、课程关系、学生关系、任课关系、成绩关系等。

0 0