从1.1.1节的介绍可以看到,在数据库管理系统出现之前,人们对数据的操作是直接针对数据文件编写应用程序实现的,这种模式会产生很多问题。对于1.1.1小节中列举的学生基本信息管理和学生选课管理两个子系统,如果使用数据库技术来管理,其实现方式如图1-4所示。保证数据的安全是通过数据库管理系统的安全控制机制实现的,保证数据的可靠是通过数据库管理系统的备份和恢复机制实现的。......
2023-11-24
1.层次模型的定义
在数据结构中,定义满足下面两个条件的基本层次联系的集合为层次模型。
(1)有且仅有一个节点没有双亲节点,这个节点称为根节点。
(2)除根节点之外的其他节点有且只有一个双亲节点。
2.层次模型的数据表示方法
层次模型中的数据用下列方法表示。
在层次模型中:实体集使用记录表示;记录型包含若干个字段,字段用于描述实体的属性;记录值表示实体;记录之间的联系使用基本层次联系表示。层次模型中的每个记录可以定义一个排序字段,排序字段也称为码字段,其主要作用是确定记录的顺序。如果排序字段的值是唯一的,则它能唯一地标识一个记录值。
在层次模型中,使用节点表示记录。记录之间的联系用节点之间的连线表示,这种联系是父子之间的一对多的实体联系。层次模型中的同一双亲的子女节点称为兄弟节点(Twin或Sibling),没有子女节点的节点称为叶节点。图3-11给出了一个层次模型的例子。图3-11中,R1为根节点,R2和R3都是R1的子女节点,R2和R3为兄弟节点;R4和R5是R3的子女节点,R4和R5也为兄弟节点;R2、R4和R5为叶节点。
图3—11 层次模型的一个示例
3.层次模型的特点(www.chuimin.cn)
层次模型像一棵倒立的树,只有一个根节点,有若干个叶节点,节点的双亲是唯一的。图3-12是一个教学院系的数据结构,该层次数据结构中有4个记录。
图3—12 教学院系的数据模型
院系记录是根节点,它有院系编号、院系名称和办公地点3个数据项,其两个子女节点是教研室和学生记录;教研室记录是院系的子女节点,它还是教师的双亲节点,教研室记录由教研室编号、教研室名两个数据项组成;学生记录由学号、姓名、年龄3个数据项组成;教师记录由职工号、姓名和专业方向3个数据项组成。学生与教师是叶节点,它们没有子女节点。在该层次数据结构中,院系与教研室、教研室与教师、院系与学生的联系均是一对多的联系。图3-13是教学院系数据库的一个实例。
图3—13 教学院系数据库的一个实例
图中表示:根记录值为“D10,计算机系,9号楼”,它与教研室的“C01,硬件教研室”和“C02,软件教研室”有联系,同时,也与学生的“00001,王平,20”和“00002,李丽,20”有联系。这4个位于子女节点的记录值是它对应的上层节点记录值的属性记录值,而它们对应的上层记录值是首记录值。图3-13中还表示,硬件教研室有属性记录值“92001,王海,电器”和“92002,张铮,自动化”,软件教研室有“92003,许明,数据库”和“92004,陈真,人工智能”。层次结构数据的一个实例由一个根记录值和它的全部属性记录值组成,全部属性记录值包括属性记录、属性记录的属性记录、……、直到位于叶节点的属记录为止。
层次模型具有一个基本特点:对于任何一个给定的记录值,只有按其路径查看,才能显示出它的全部意义。没有一个子女记录值能够脱离双亲记录值而独立存在。例如对于图3-13中的学生记录值(00001,王平,20),如果不指出它的双亲节点,就不知道它是哪个系的学生。
虽然理论上认为一个层次模型可以包含任意多的记录和字段数据,但任何实际的数据库系统都会因为存储容量或者实现复杂度的原因,对层次模型中包含的记录个数和字段个数进行限制。
有关数据库技术与应用教程的文章
从1.1.1节的介绍可以看到,在数据库管理系统出现之前,人们对数据的操作是直接针对数据文件编写应用程序实现的,这种模式会产生很多问题。对于1.1.1小节中列举的学生基本信息管理和学生选课管理两个子系统,如果使用数据库技术来管理,其实现方式如图1-4所示。保证数据的安全是通过数据库管理系统的安全控制机制实现的,保证数据的可靠是通过数据库管理系统的备份和恢复机制实现的。......
2023-11-24
前面提到,层次模型只能表示一对多的联系,不能直接表示多对多的联系。当有多对多联系需要在层次模型中表示时,应采用分解的方法,即将多对多的联系分解成一对多的联系,使用多个一对多联系来表示一个多对多联系。图3-14是一个含有多对多联系的E-R图。冗余节点法的优点是结构清晰,允许用虚拟节点法表示多对多联系许多节点改变存储位置;缺点是占用存储空间大,有潜在的不一致性。......
2023-11-24
如果要使用缺省参数创建一个学籍管理数据库StuData,可以使用如下命令:Create Database StuData如果希望为数据库或事务日志指定一个或者多个特定文件,增加一个On Primary子句,列出一个或者多个文件,并可为分配这个文件的空间指定一个可选值,其命令形式如下:Create Database StuDataOn Primary,;如果为了提高性能和可恢复性,则可以使用Log On子句来指定数据库的SQL Server事务日志将存储在一个与数据库对象不同的设备上,示例如下:Create Database StuDataOn Primary,Log On;GO......
2023-11-24
关键字Modify File用以表示按后面的文件说明,在指定的数据库中修改相应数据库文件。下面的语句可在学籍管理数据库增加一个新数据库文件,同时要修改原数据库文件StuFile l的最大文件尺寸为2000 MB。Alter Database StuDataAdd FileModify File又如,如果要删除学籍管理数据库文件StuFile2,则可使用如下命令:Alter Database StuDataRemove File StuFile2......
2023-11-24
SQL的数据查询语句中包括SELECT,FROM,WHERE,GROUP BY和ORDER BY子句。SELECT语句具有数据查询、统计、分组和排序的功能,其语句表达能力非常强大。查询操作需要的数据源指基本表组,表间用“,”分割。当SELECT子句后的目标列中有统计函数,如果查询语句中有分组子句,则统计为分组统计,否则为对整个结果集统计。交查询操作,操作结果为取<查询1>和<查询2>共有的元组。......
2023-11-24
由于信息结构复杂,应用环境多样,在相当长的一段时期内数据库设计主要采用手工试凑法。人们经过探索提出了各种数据库设计方法,这些方法运用软件工程的思想和方法,提出了各种设计准则和规程,都属于规范设计法。工具在很大程度上依靠开发人员的经验来保证数据库模型能生成可行的设计方案和高性能的数据库。大多数的数据库设计方法都需要经历这三个步骤。根据所选择的设计方法按部就班地进行并最终获得一个实用的应用系统。......
2023-11-24
下面介绍的优化策略能提高查询的效率,但它们不一定是最优的策略,实际上“优化”一词并不是很确切,用“改进”或“改善”或许更恰当些。即使这样,使用预处理方法执行连接的时间一般仍大大减少。当查询视图时,定义视图的表达式就是公共子表达式的情况。......
2023-11-24
相关推荐