1 / 6
文档名称:

组织层次结构在关系型数据库中的实 现方法.doc

格式:doc   页数:6
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

组织层次结构在关系型数据库中的实 现方法.doc

上传人:企业资源 2012/1/4 文件大小:0 KB

下载得到文件列表

组织层次结构在关系型数据库中的实 现方法.doc

文档介绍

文档介绍:组织层次结构在关系型数据库中的实现方法
作者:湖南粮食技工学校信息机电教研室——张响
〖摘要〗
在B/S和C/S结构应用系统的数据库模型设计过程中,经常遇到分级分层的组织结构数据库设计的问题,它们以树状结构存在,上级有若干个下级、下级又分若干个下级,这样一级一级的出现层次的问题,如:公司的商品与类别关系,商品与品牌关系,人事部门的组织架构用户与部门关系等,这些关系中:商品的类别——商品、品牌——商品、部门——用户之间存在实体间的一对多关系,类别、品牌、部门内部之间又存在隶属(层次)关系,怎样在数据库设计中设计出这种关系,同时有效快速检索不同层次查询信息?是数据库设计者要考虑的问题。这些关系在关系型数据库中表示时,有它特别的方法,有些人把它们分别建立在不同的表中,建立相应的关系,这虽然是一种解决办法,但如果在应用中,它给软件带诸多不便,特别是程序健壮性方法,如果此时需要多加一个职位,这种解决办法就需要多加一张表,那此时对应用程序的改动将可想而知。
〖关键字〗
关系型数据库:
用二维表结构来表示实体以及实体之间联系的模型。
递归:某一事物直接地或间接地由自己组成。
递归调用:一个函数直接或间接地调用自身,便构成了函数的递归调用。前者称直接递归调用,后者称间接递归调用。
检索:根据给定的任何条件,快速的查询出各条件相关的数据库查询信息。
〖正文〗
实现方法一:
层次模型在关系数据库本身是个问题,根本问题在于关系模型的第一范式:要求属性分为不可再分,对于组织结构这种关系,方法是:在设计中做一个指向本身主键的属性,也就是这个属性的外键就是本表的主键,它们之间建立自连接,可以实际层次查询的需求。
如:假设一个雇员关系:
雇员(雇员号,雇员姓名,经理)
基中雇员号和经理两个属性出自同一个值域,同一元组的这两个属性值是“上、下级”关系。雇员号为主键,在目录层次结构中,雇员号为子结点,经理为父结点。
1:N

雇员号
雇员姓名
经理
雇员号
雇员姓名
经理
E3
P1
E4
P2
E3
E6
P3
E3
E8
P4
E6
图雇员关系
例: 根据雇员关系列出上一级经理及其所领导的职员清单。
SELECT ,’’领导”, FROM 雇员 S,雇员 E WHERE;
=
说明:定义经理关系 S 和雇员关系 E,结果在关系S和E上的联接实现了检索的要求。
在实际应用中我们往往需要检索它的相应的不同层(子结点或者父结点),同时子结点与相应表之间存在联系,这时在数据结构中采用递归的方法,根据不同结点的层次位置,递归出相应结点的内容,虽然这种结构的实现需要计算机付出时间、空间的代价,但能实现实际不同结点信息的检索需要,也是层次结构在关系数据库中的一种常用的解决方法。
例如:―――定义类别表:
CREATE TABLE dbo.[BASDEPT] (
[ID] 类别ID int NOT NULL,
[DPTNO] 类别编号 varchar(20) NOT NULL,
[DPTNAME] 类别名称 varchar(60) NOT NULL,
[PID] 父类别ID int NOT NULL,
)
其中类别ID与父