层次模型中的每个记录可以定义一个排序字段,排序字段也称为码字段,其主要作用是确定记录的顺序。在该层次数据结构中,院系与教研室、教研室与教师、院系与学生的联系均是一对多的联系。例如对于图3-13中的学生记录值,如果不指出它的双亲节点,就不知道它是哪个系的学生。......
2023-11-24
前面提到,层次模型只能表示一对多(包括一对一)的联系,不能直接表示多对多的联系。当有多对多联系需要在层次模型中表示时,应采用分解的方法,即将多对多的联系分解成一对多的联系,使用多个一对多联系来表示一个多对多联系。分解方法主要有两种:冗余节点法和虚拟节点法。
图3-14是一个含有多对多联系的E-R图。图中有学生和课程两个实体集,它们间的联系为多对多类型,即一个学生可以选修多门课程,一门课程可由多个学生选修。下面用这个例子说明多对多联系的分解方法。
图3—14 一个多对多联系的例子
1.冗余节点分解法
冗余节点分解法通过增加冗余节点的方法将多对多的联系转换成一对多的联系。对于如图3-14所示的多对多联系的实例,要设计两组学生和课程记录:一组表示一个学生选择多门课程的学生与课程之间的l∶n联系;另一组表示一门课程有多个学生选择的课程与学生之间的l∶n联系,其基本层次联系如图3-15所示。显然,使用冗余节点分解法会使数据库中有冗余的学生和课程记录。
(www.chuimin.cn)
图3—15 用冗余节点法表示多对多联系
2.虚拟节点分解法
所谓虚拟节点,就是一个指引元,该指引元指向所代替的节点。虚拟节点分解法通过使用虚拟节点,将实体集间的多对多联系分解为多个层次模型,然后用多个层次模型表示一对多联系。将图3-15中的冗余节点转换为虚拟节点,可得到具有虚拟节点的基本层次联系,如图3-16所示。
图3—16 用虚拟结点法表示多对多联系
上面两种方法各有所长。冗余节点法的优点是结构清晰,允许用虚拟节点法表示多对多联系许多节点改变存储位置;缺点是占用存储空间大,有潜在的不一致性。虚拟节点法的优点是占用存储空间小,能够避免潜在的不一致性问题;缺点是节点改变存储位置时可能引起虚拟节点指针的改变。
有关数据库技术与应用教程的文章
层次模型中的每个记录可以定义一个排序字段,排序字段也称为码字段,其主要作用是确定记录的顺序。在该层次数据结构中,院系与教研室、教研室与教师、院系与学生的联系均是一对多的联系。例如对于图3-13中的学生记录值,如果不指出它的双亲节点,就不知道它是哪个系的学生。......
2023-11-24
从1.1.1节的介绍可以看到,在数据库管理系统出现之前,人们对数据的操作是直接针对数据文件编写应用程序实现的,这种模式会产生很多问题。对于1.1.1小节中列举的学生基本信息管理和学生选课管理两个子系统,如果使用数据库技术来管理,其实现方式如图1-4所示。保证数据的安全是通过数据库管理系统的安全控制机制实现的,保证数据的可靠是通过数据库管理系统的备份和恢复机制实现的。......
2023-11-24
实验证明,NBES的测量精度远高于单波束。1976年,数字化计算机处理及控制硬件应用于多波束系统,从而产生了第一台多波束扫描测深系统,简称SeaBeam。通过波束间的内插处理,还可以形成15个波束,声线弯曲改正后便可获得实测深度。表3-1多波束系统及其主要技术指标续表图3-6、图3-7为两种多波束测深系统实物图。......
2023-11-29
首先通过一个简单的例子来看一下查询优化的必要性。设每块能装10个元组,则写出这些块要用5×104s。满足条件的元组假设仅50个,均可放在内存中。因此,第1种情况下执行查询的总时间≈105+2×5×104≈105。自然连接的结果比广义笛卡儿积减少了很多,为104个,所以写出这些元组的时间为50s,仅为第1种情况的千分之一。总的存取时间将进一步减少到数秒。......
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
虽然对视图的操作最终都转换为对基本表的操作,视图看起来似乎没什么用处,但实际上,如果合理地使用视图会带来许多好处。定义视图可以将表与表之间复杂的连接操作和搜索条件对用户隐藏起来,用户只需简单地查询一个视图即可。这在多次执行相同的数据查询操作时尤为有用。......
2023-11-24
SQL的数据查询语句中包括SELECT,FROM,WHERE,GROUP BY和ORDER BY子句。SELECT语句具有数据查询、统计、分组和排序的功能,其语句表达能力非常强大。查询操作需要的数据源指基本表组,表间用“,”分割。当SELECT子句后的目标列中有统计函数,如果查询语句中有分组子句,则统计为分组统计,否则为对整个结果集统计。交查询操作,操作结果为取<查询1>和<查询2>共有的元组。......
2023-11-24
相关推荐