- 1、本文档共86页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章数据模型剖析
2)更新操作 (1)数据插入(INSERT) 插入操作可先将插入数据写入系统I/O区,然后指定一个由根记录开始的插入层次路径,完成数据的插入操作。 (2)数据删除(DELETE) 删除操作是先用查询命令将待删除的记录定位为当前记录,再DELETE命令完成删除任务。当删除一个记录时,则其所从属的所有子女记录都被删除。 (3)数据修改(REPLACE) 先用查询语句将要修改的记录定位为当前记录,并将该记录读到I/O区,在I/O区对数据进行修改,然后用REPLACE命令可将修改后的记录值写回到数据库中。 2.3.3 数据约束 层次数据模型的数据约束主要是由层次结构的约束造成的。 (1)除了根结点外,任何其他结点不能离开其双亲结点而孤立存在。 这条约束表明了在插入一个子女记录时,必须与一个约束双亲记录相联系,否则不能插入;在删除一个记录时,其子女记录也将自动被删除。这一约束为数据操作造成了不便。 (2)层次数据模型所体现的记录之间的联系只限于二元1:n或1:1的联系,这一约束了用层次模型描述现实世界的能力。 对于现实世界中存在的二元m:n联系和多元m:n:p等复杂联系,就不能用层次模型直接进行表达了。通常采用下列的分解法或虚拟记录法来解决这一问题。 分解法 例如,学生记录型和课程记录型是一个m:n联系,将无法用层次模型直接表达学生与课程之间的多对多联系。 可以采用分解的方法,把一个二元m:n联系分解成两个二元1:n联系。 学生 课程 张三 网络安全 李四 数据库 王五 (a) m:n联系的型与实例 学生 课程 张三 网络安全 李四 数据库 网络安全 王五 数据库 网络安全 (b) 按学生进行分解的型与实例 (c) 按课程进行分解的型与实例 课程 学生 李四 网络安全 张三 王五 李四 数据库 王五 虚拟记录法 由上可以看出,这种分解法会导致大量的存储数据冗余。为了减少分解所带来的数据冗余,可以采用虚拟记录法(IMS系统所采用的方法)。 虚拟记录法是在数据库中,如果有一个记录x要在多处被引用,则只存储一份这样的记录,其他需要引用的地方用其指针代替。这种用指针代替的记录称为虚拟记录,记为V.x。右图表示学生和课程间的m:n联系。 学生 (课程)v 课程 (学生)v (3)由于层次结构中的全部记录都是以有序树的形式组织起来,当对某些层次结构进行修改时,不允许改变原数据库中记录类型之间的双亲子女联系,这使得数据库的适应能力受到限制。 (4)虚拟记录的指针必须指向一个实际存在的记录。有虚拟记录指向的记录不得删除。 (5)虚拟记录不能为根记录。 2.3.4 层次数据模型的优缺点 层次数据模型的优点主要有: 层次模型结构简单、层次分明,便于在计算机内实现。 在层次结构中,从根结点到树中任一结点均存在一条唯一的层次路径,这为有效地进行数据操纵提供了条件。 在层次结构中除根结点外所有结点有且只有一个双亲结点,故实体集之间的联系可用双亲结点唯一地表示,因此层次模型DBMS对层次结构的数据有较高的处理效率。 层次数据模型提供了良好的完整性支持。 层次数据模型的缺点主要有: 层次数据模型缺乏直接表达现实世界中非层次型结构的复杂联系,如多对多联系。 对插入或删除操作有较多的限制。 查询子女结点必须通过双亲结点。 计算机系 计科0201班 计科0202班 张三 李四 … 王五 李定 … 计教0201班 赵山 周英 … 硬件教研室 孙立 钱敏 … 软件教研室 胡恒 丁伟 … 2.4 网状数据模型 2.4.1 基本概念和结构 2.4.2 数据操作 2.4.3 数据约束 2.4.4 网状数据模型的优缺点 2.4.1 基本概念和结构 为了克服层次模型结构描述非层次型事物的局限,20世纪60年代末美国CODASYL委员会提出了网状数据模型。 1)记录与数据项(Data Items) 与层次数据模型类似,在网状数据模型中,也是以记录为数据的存储单位。记录包含若干数据项,数据项相当于字段。 但与层次数据模型中的字段不同,网状数据模型中的数据项不一定是简单的数据类型,也可以是多值的和复合的数据。 2)系(Set) 在网状数据模型中,数据间的联系用系表示。 系代表了两记录之间的1:n联系,系用一条弧表示,箭头指向“n”方。“1”方的记录称首记录,“n”方的记录称属记录。右图是简单网状结构的例子。 简单的网状结构 班级 学生 1 社团 n S1 1 S2 n 3)系型 (1)单属系型 由主记录型和单一的属记录组成。 例如班级记录型和学生记录型组成的班级-学生系是单属系型。 班级 学生 计科0201班 张三 李四 王杰 例如,在学校中有教师和
文档评论(0)