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

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

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
组织层次结构在关系型数据库中的实现方法 作者:湖南粮食技工学校信息机电教研室——张响 〖摘要〗    在B/S和C/S结构应用系统的数据库模型设计过程中,经常遇到分级分层的组织结构数据库设计的问题,它们以树状结构存在,上级有若干个下级、下级又分若干个下级,这样一级一级的出现层次的问题,如:公司的商品与类别关系,商品与品牌关系,人事部门的组织架构用户与部门关系等,这些关系中:商品的类别——商品、品牌——商品、部门——用户之间存在实体间的一对多关系,类别、品牌、部门内部之间又存在隶属(层次)关系,怎样在数据库设计中设计出这种关系,同时有效快速检索不同层次查询信息?是数据库设计者要考虑的问题。这些关系在关系型数据库中表示时,有它特别的方法,有些人把它们分别建立在不同的表中,建立相应的关系,这虽然是一种解决办法,但如果在应用中,它给软件带诸多不便,特别是程序健壮性方法,如果此时需要多加一个职位,这种解决办法就需要多加一张表,那此时对应用程序的改动将可想而知。 〖关键字〗 关系型数据库: 用二维表结构来表示实体以及实体之间联系的模型。 递归:某一事物直接地或间接地由自己组成。 递归调用:一个函数直接或间接地调用自身,便构成了函数的递归调用。前者称直接递归调用,后者称间接递归调用。 检索:根据给定的任何条件,快速的查询出各条件相关的数据库查询信息。 〖正文〗 实现方法一: 层次模型在关系数据库本身是个问题,根本问题在于关系模型的第一范式:要求属性分为不可再分,对于组织结构这种关系,方法是:在设计中做一个指向本身主键的属性,也就是这个属性的外键就是本表的主键,它们之间建立自连接,可以实际层次查询的需求。 如:假设一个雇员关系: 雇员(雇员号,雇员姓名,经理) 基中雇员号和经理两个属性出自同一个值域,同一元组的这两个属性值是“上、下级”关系。雇员号为主键,在目录层次结构中,雇员号为子结点,经理为父结点。 1:N 雇员号 雇员姓名 经理 雇员号 雇员姓名 经理 E3 P1 E4 P2 E3 E6 P3 E3 E8 P4 E6 图 雇员关系 例: 根据雇员关系列出上一级经理及其所领导的职员清单。 SELECT S.雇员姓名,’’领导”,E.雇员姓名 FROM 雇员 S,雇员 E WHERE; S.雇员号=E.经理 说明:定义经理关系 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与父类别ID 存在父与子之间的层次关系。父类别为0,表示根结点。 类别层次结构如下: 第一层 第二层 第三层 第四层 类别名称 (类别编号) 食品 (01) 休闲类 (24) 米果(241) …… 海苔(242) 果冻类(243) 果仁(244) 坚果仁(24401) 瓜仁类(24402) 豆类、花生(24403) 其他类(24404) 休闲小食(245) …… …… 粮油(21) 南北干货 (22) 烹调食品 (23) …… 类别表如下: 类别id 类别编号 类别名称 父类别id 1227 1 食品 0 1100 24 休闲食品 1227 1196 244 果仁 1100 1395 24401 坚果仁 1196 …… …… …… …… ―――定义商品表 CREATE TABLE dbo.[BASPLU] ( [PLUID] 商品ID int

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档