MySQL数据库基础实例教程
上QQ阅读APP看书,第一时间看更新

1.2.2 常见的数据模型

目前成熟应用在数据库系统中的数据模型有层次模型、网状模型和关系模型,它们之间的根本区别在于数据之间联系的表示方式不同,层次模型用“树结构”表示数据之间的联系,网状模型用“图结构”表示数据之间的联系,关系模型用“二维表”(或称为关系)表示数据之间的联系。

1. 层次模型

这种模型描述事物及其联系的数据组织形式像一棵倒置的树,它由节点和连线组成,其中节点表示实体。树有根、枝、叶,在这里都称为节点,根节点只有一个,向下分支,它是一对多的关系,如国家的行政机构、一个家族的族谱的组织形式都可以看作是层次模型。图1-2所示为一个学院教务管理的层次模型,灰色字体框所示的是实体之间的联系,其后所列是按层次模型组织的数据示例。

图1-2 按层次模型组织的数据示例

此种类型数据库的优点是数据结构层次分明,不同层次间的数据关联直接、简单;缺点是数据将不得不以纵向向外扩展,节点之间很难建立横向的关联,因此不利于数据库系统的管理和维护。

2. 网状模型

这种模型描述事物及其联系的数据组织形式像一张网,它也由节点和连线组成,其中节点表示数据元素,节点间的连线表示数据间的联系。该模型节点之间是平等的,无上下层关系。图1-3所示为按网状模型组织的数据示例。

图1-3 按网状模型组织的数据示例

此种类型数据库的优点是它能很容易地反映实体之间的关联,同时它还避免了数据的重复性;缺点是这种类型的数据模型关联错综复杂,而且数据库很难对结构中的所谓关联性进行维护。

3. 关系模型

关系模型使用的存储结构是多个二维表格,即反映事物及其联系的数据描述是以平面表格形式体现的。图1-4所示为简单的关系模型,图左边所示为两个关系模型,图右边所示为这两个关系模型各自的关系,关系名称分别为教师关系和课程关系。

图1-4 按关系模型组织的数据示例

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

(1)数据表通常是一个由行和列组成的二维表,它说明数据库中某一特定的方面或部分的对象及其属性。

(2)数据表中的行通常叫作记录或元组,它代表众多具有相同属性的对象中的一个。

(3)数据表中的列通常叫作字段或属性,它代表相应数据库中存储对象共有的属性。

(4)主键和外键。数据表之间的关联实际上是通过键(Key)实现的。所谓的“键”,是指数据表的一个字段。键分为主键(Primary Key)和外键(Foreign Key)两种,它们都在数据表连接的过程中起着重要的作用。

① 主键是数据表中具有唯一性的字段,也就是说,数据表中任意两条记录都不可能拥有相同的主键字段。

② 外键将被其所在的数据表使用以连接到其他数据表,但该外键字段在其他数据表中将作为主键字段出现。

(5)一个关系表必须符合如下某些特定条件,才能成为关系模型的一部分。

① 存储在单元中的数据必须是原始的,每个单元只能存储一条数据。

② 存储在列下的数据必须具有相同的数据类型;列没有顺序,但有一个唯一性的名称。

③ 每行数据是唯一的;行没有顺序。

④ 实体完整性原则(主键保证),不能为空。

⑤ 引用完整性原则(外键保证),不能为空。