最常用的数据模型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.2.3 最常用的数据模型
最常用的数据模型包括四种:
注1:非关系模型在20世纪70-80年代很流行,现在逐步被关系模型取代。
注2:下面讲的数据模型都是指逻辑上的数据模型,即用户眼中看到的数据范围。
一、层次模型
定义:
①有只有一个结点没有双亲结点,这个结点称为根结点;
②根以外的其他结点有且只有一个双亲结点。
代表产品:IBM公司的IMS(Information Management System)数据库管理系统。
1. 数据结构
基本结构
①用树形结构来表示各类实体以及实体间的联系。
②每个结点表示一个记录类型(实体),结点之间的连线表示记录类型间一对多的父子联系,这种联系只能是父子联系。
③每个记录类型可包含若干个字段(属性)。
图1.12 教员学生层次数据库模型
图1.13 教员学生层次数据库的一个值
多对多联系在层次模型中的表示
①必须首先将其分解成一对多联系。
②分解方法有两种:冗余结点法和虚拟结点法。
图1.14(a) 一个学生选课的多对多联系
图1.14(b) 冗余结点法将多对多联系转化为一对多联系
图1.14(c) 虚拟结点法将多对多联系转化为一对多联系
2. 数据操作与完整性约束
数据操作:查询、插入、删除和修改。
完整性约束:
①插入:如果没有相应的双亲结点值就不能插入子女结点值。如:图1.13中,若新调入一名教师,在未分配到某个教研室以前,不能将新教员插入到数据库。
②删除:如果删除双亲结点值,则相应的子女结点值也被同时删除。如:图1.9中,若删除网络教研室,需要首先删除属于网络教研室的所有教师的数据。
③修改:应修改所有相应记录,以保证数据的一致性。如:图1.14(b)中,若一个学生要改姓名,则两处学生记录值均要修改。
3. 存储结构
存储内容:数据本身;数据之间的联系。两种方法:邻接法;链接法。
图1.15(a) 数据模型
图1.15(b) 数据值
图1.15(c) 邻接法存储
图1.16(a) 图1.15(a)的数据值
图1.16(b) 链接法存储
4. 优缺点
优点
①数据模型比较简单,操作简单;
②对于实体间联系是固定的,且预先定义好的应用系统,性能较高;
③提供良好的完整性支持。
缺点
①不适合于表示非层次性的联系;
②对插入和删除操作的限制比较多;
③查询子女结点必须通过双亲结点;
④由于结构严密,层次命令趋于程序化。
二、网状模型
定义:
①允许一个以上的结点无双亲;
②一个结点可以有多于一个的双亲。
代表产品:DBTG系统模型类产品。
1. 数据结构
①用网状结构来表示各类实体以及实体间的联系,层次模型是网状模型的一个特例。
②每个结点表示一个记录类型(实体),结点之间的连线表示记录类型间的一对多的父子联系。
③每个记录类型可包含若干个字段(属性)。
图1.17(a) 学生/选课/课程网状数据库模型
图1.17(b) 学生/选课/课程网状数据库的一个值
2. 数据操作与完整性约束
数据操作:查询、插入、删除和修改。
完整性约束:
①插入:允许插入尚未确定双亲结点值的子女结点值。
②删除:允许只删除双亲结点值。
③修改:只需修改指定记录即可性。
3. 存储结构
存储内容:数据本身;数据之间的联系。
两种方法:链接法(包括:单向链接、双向链接、环状链接、向首链接等)。
图1.17(c) 学生/选课/课程网状数据库存储
4. 优缺点
优点
①能够更为直接地描述现实世界;
②具有良好的性能,存取效率较高。
缺点
①数据定义语言(DDL)极其复杂;
②数据独立性较差。由于实体间的联系本质上通过存取路径指示的,因此应用程序在访问数据时要指定存取路径。
三、关系模型
定义:其逻辑结构就是二维表格,由行列组成。
代表产品:Oracle公司的Oracle、Microsoft公司的SQL Server。
1. 数据结构
概念
①关系(Relation):一个关系就是一张表。如图1.18。
图1.18 关系模型的数据结构
②元组(Tuple):表中的一行。
③属性(Attribute):表中的一列。
④主码(Key):能够唯一确定一个元组的属性。如:学号。
⑤域(Domain):属性的取值范围。如:年龄域是1-150之间、性别域是(男、女)、系名域是一个学校所有系名的集合。
⑥分量:元组中的一个属性值,如:95004、黄大鹏、法律学。
⑦关系模式:对关系的描述,一般表示为:
关系名(属性1,属性2,…,属性n)
图1.18的学生关系可描述为:学生(学号,姓名,年龄,性别,系名,年级)
特点
①在关系模型中,实体及实体间的联系都是用关系来表示。如:学生、课
程、学生与课程多对多的联系(即学生选课)均可用关系来表示,如下:
学生(学号,姓名,年龄,性别,系名,年级)
课程(课程号,课程名,学分)
学生选课(学号,课程号,成绩)
②关系模型要求关系必须是规范的,最基本的条件是,关系的每一个分量必须是一个不可分的数据项,即不允许表中还有表。如图1.19中的表就不是一个关系。
图1.19 不符合关系模型规范的表格
2. 数据操作与完整性约束
数据操作:查询、插入、删除和修改。
完整性约束:包括三大类,即:实体完整性、参照完整性和用户定义的完整性。(在2.3节中讲解)
3. 存储结构
存储内容:由于数据本身和数据之间的联系均是表,物理存储时,表以文件的形式存储。
两种方法:一个文件一个表(如:Foxpro);多个文件一个表(如:SQL Server