1.2.3 逻辑模型
每个数据库管理系统都是基于某种数据模型的。不同的数据模型,对应着不同的处理方式,逻辑模型分为层次模型、网状模型、关系模型。
1.层次模型
层次模型的基本数据结构是层次结构,也称树形结构,像一棵倒置的树,按照数据的不同类型,将数据分类存储在不同的层次上。
层次模型的数据结构由结点和连线组成,每个结点表示一个实体,结点之间的连线(有向边)表示实体间的联系。
层次模型示意图如图1-11所示。
例如,高校教工学生组成可以看作是一种层次模型,如图1-12所示。它由三层四个记录型所构成,第一层由系(系编号,系名,办公室)构成,有两个子女构成第二层,子女教研室(教研室编号,教研室)与子女学生(学号,姓名,性别),教研室子女教工(教工号,姓名)构成第三层。学生和教工是叶结点,没有子女结点,从上到下构成一对多的有关系。如果以具体数据表示,则如图1-13所示。
图1-11 层次结构示意图
图1-12 教工学生数据模型
图1-13 教工学生数据模型对应值
层次结构的主要特征:
(1)有且只有一个结点无双亲结点(这个结点称为根结点)。
(2)其他结点有且仅有一个双亲结点。
层次结构的优点:
层次分明、结构清晰、不同层次间的数据关联直接简单。
层次结构的缺点:
数据纵向扩展,结点间很难建立横向的关联。对插入和删除操作限制较多,查询非直系的结点非常麻烦。
2.网状模型
网状模型的数据结构是一个网络结构。结点之间的联系不受层次限制,任意两个结点都可以发生联系。
例如,学生成绩数据库,可以使用网状数据模型表达。一般情况下,一个学生可以选修若干门课程,某一门课程可以被多个学生选修,因此学生与课程之间是多对多联系。为此引进一个学生成绩的连接记录,它由3个属性组成,即学号、课程编号和成绩,表示某个学生选修某一门课程及其成绩。
这样,学生成绩数据库中包括3个实体型,学生、课程和成绩。对于学生记录中的一个值,成绩记录中可以有多个值与之联系,而成绩记录中的一个值,只能与学生记录中的1个值联系,因此学生与成绩之间的联系是一对多的联系,课程与成绩之间也是一结多的联系。学生成绩数据库可以建立网状数据模型,如图1-14所示。
图1-14 网状数据模型
网状结构的主要特征:
(1)一个结点可以有多于一个的父结点。
(2)允许一个以上的结点无父结点。
网状模型的优点:
能很容易表示实体之间的关联,减少数据的重复性。
网状模型的缺点:
结构复杂,路径太多,当加入或删除数据时,牵动的相关数据较多,不易维护和重建。
3.关系模型
关系模型的数据结构是二维表,由行和列组成。一张二维表称为一个关系。以二维表的形式表示实体和实体之间联系的数据模型称为关系数据模型。
在关系模型中,表中每一行称为记录,描述一个对象的实体信息;每一列称为一个字段或属性,描述对象的属性信息。
在关系数据模型中,操作对象和操作结果都是二维表。关系模型是目前最重要的数据模型,几乎所有的数据库管理系统都支持关系模型。
例如,在成绩数据库构成的关系模型中,成绩关系是连接学生关系与课程关系的关系,学生关系对成绩关系,课程关系对成绩关系都是一对多,如图1-15所示。
图1-15 关系模型
关系模型的特点:
(1)在关系模型中,并不是任何属性的组合都可构成一个关系,每一个关系都必须满足一定的条件,即具备一定的特点。
(2)关系中的每一个属性必须是不可再分的数据项。
(3)在同一个关系中,不允许有完全相同的属性名,同一列中各数据项具有相同的属性。
(4)在同一个关系中,不允许有完全相同的元组。
(5)在同一个关系中,属性名和元组与次序无关,即可以任意交换,不改变关系的实际意义。