已阅读5页,还剩63页未读, 继续免费阅读
(信息与通信工程专业论文)gkdbase完整性约束的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国防科学技术人学研究生院工学硕士学位论文 摘要 随着计算机的广泛应用,信息化时代的来临,数据库管理系统受到越来越广 泛的关注和重视,国内一些研究机构也开发出了自己的数据库管理系统,比如 g k d b a s e 。但是由于起步比较晚,这些国产数据库管理系统与国际上主流的数据 库管理系统还有很大的差距,很多功能无法实现,这给这些数据库的全面推广带 来了很大的影响。因此,迫切需要对国产数据库管理系统进行功能扩展和升级。 该课题“安全数据库管理系统g k d b a s e 功能扩展”就是在这种背景下诞生的,目 的在于解决g k d b a s e 功能扩展所需的关键技术。 本文对实现完整性约束的各个关键技术进行了研究和探讨,首先从介绍 g k d b a s e 内核的体系结构开始,重点讨论了g k d b a s e 的客户端和服务器端的组成, 接着研究了与实现完整性约束有关的内核中的关键技术。 在此基础上,本文讨论了完整性约束的编译,并给出了完整性约束的数据字 典的没计,功能的实现。接着讨论了c h e c k 约束的实现,c h e c k 约束包括了p r i 】8 r y k e y ,n o tn u l1 ,u n i q u e 和c h e c k 约束,重点介绍了c h e c k 约束,给出了c h e c k 约 束条件表达式的编译和执行的实现,然后给出了系统运行实验。 在论文的最后讨论了参照完整性约束的设计与实现,首先讨论了实现参照完 整性约束的关键技术:内存管理,索引扫描和全表扫描,接着在此基础上给出了 i n s e r t ,u p d a t e ,d e l e t e 语句的参照完整性约束的实现,并讨论了变异表,参照 完整性和触发器的兼容性的实现。最后给出了系统运行实验。 论文中所讨论的技术已经在g k d b a s e 内核中得到实现,该系统目前已能稳定 运行,并与o r a c l e 的完整性约束进行了大量的对比测试,结果正确,能保证与 0 r a c l e 基本兼容。 关键字:g k d b a s e 内核,完整性约束编译,c h e c k 约束,参照完整性约束 第1 页 国防科学技术大学研究生院工学硕士学位论文 a b s t r a c t w i t ht 1 ew i d ea p p l i c a t i o no fc o m p u t e r i n f o m l a t i o ne p o c hi sc o m i n g ,d a 诅b a s e m a f l a g e m e n ts y s t e m ( d b m s ) h a sr e c e i v e dm o r ea f l dm o r ea t t e m i o n 。s o m en a t i o n a l a c a d e m e sb a v em a d et h e j ro w nd b m s ,s u c ha sg k d b a s e l b e c a u s eo fi a t es 诅r t 协g , c o m p a r e d 州t hc o m m e r c i a ld b m s ,t h e yh a v em a n yl i m i t a t i o n sf o rl a c ko fs o m e i m p o n a n tf h n c t i o n s ,t h e s el i m i t a t i o n sb r i n gm u c hi m p a c tt ow i d e l yg e n e r a l i z et h e s e n a t i v ed b m s s o ,i ti s i m p e r i o u st oi m p r o v et h ee x i s t i n gn a t i v ed b m s f o rt h i s b a c k g r o u n d ,t h i sp r o j e c ti sb r o u g h t o u tt og c tm o r ea b i l i t yb ya d d i n gs o m ef u n c t i o n t h i sp a p e rr e s e a r c h sa 1 1 dd i s c u s s e ss e v e r a ik e yt e c l l i l i q u e so fr e a l i z i n gi r l t c g r i t y c o n s t r a i n t s s t a r t i n gf r o mi 1 1 t r o d u c 衄gt h es y s t e m 行锄e w o r ko ft h eg k d b a s ek e m e l , t h i sp a p e re m p h a s i z e sd i s c u s s i o no ft h ec o m p o s i n go fg k d - b a s e sc l i e n ta n ds e r v i c e , m e nr e s e a r c h i n gs e v e r a lk e yt e c h n i q u e so fg k d - b a s ek e m e lr e l a t et or e a l i z i n gi m e g r i 够 c o n s t r a i n t s o nt h eb a s i so fi n t r o d u c t i n gt h es y s t e mf 锄e w o r ko ft h eg k d - b a s ek e n l e l ,m i s p a p e rd i s c u s s e st h ec o m p i l eo fc h e c kc o n s t r a i n t ,a n dp r e s e m s 也ed e s i g na i l d i m p l e m e mo fi n t c g r i t yc o n s 廿a i n t sd a t ad i c t i o n 撕e s t h e nm i sp 印e rp r e s e n t st 1 1 e i m p l e m e mo fc h e c kc o n s t r a i n t c h e c kc o n s 扛a i n ti n v o i v e sp r i m a r yk ey ,n o tn u i l , l u l i q u ea n dc h e c k ,a m o n gt h e m ,c h e c ki sm ee m p h a s e s ,t h i sp a p e rp r e s e n t si m p l e m e 王l t o fc o m p i i ea n de x e c u t i o na b o u tm ec h e c kc o n s 删me x p r e s s i o n ,t h e ng i v e so u tt h e s y s t e me x p e r i m e n tr e s u i t s i nt h ee n do fm i sp a p e r t h ed i s c u s s i o n sa r er e f e r c n c ei n t c g r i t yc o l l s n i a i n t sd e s i g 工1 a n di m p i e m e n t ,f i r s t ,t h ek e yt e c 王1 1 1 i q u e sa r ed i s c u s s e d :m e m o i ym a f l a g m e n t ,i n d e xs a c n , w h 0 1 et a b l es c a l l ,a n dt h e nt h i sp a p e rp r e s 。n t st h er e f e r e n c ec o n s t r a i mi m p l e m e n t so f i n s e r c ,u p d a t ea n dd e l e t e ,也ei m p l e m e n to ft h ec o m p a t i b i l i 哆o fr e f e r e n c ei n t e g r i 妙 c o n s t r a i n ta n dt r i g g e r ,a tl a s t ,t h es y s t e me x p e r i m e n tr e s u l t sa r ep r e s e m e d a l lt b et e c h n o l o g i e sd i s c u s s e dj nt h i sp 印e rh a 、,eb e e nr e l i z e di 1 1g k d b a s ek e m e l n o w t h ee n g i n ec a nm ns t a b l yw eh a v ec o m p a r e di t 、 ,i mt h ei n t e g r i t yc o n s t r a i mo f 0 r a c l e i tc a nb ec o n c l u d e dt h a tt h eg k d b a s e si n t e g r 时c o n s t r a i n ti sc o m p a t i b l ew i m t h a to fo r a c 】e k e y w o r d s :g k d - b a s ek e r n e l ,i n t e g r i t yc o n s t r a i n tc o m p i i e ,c h e c kc o n s t m i n t , r e f b r e e ei n t e g r i t ) rc o n s t r a i n t 第1 i 页 国防科学技术大学研究生院工学硕士学位论文 表2 1 表3 1 表3 2 表4 1 表5 1 表5 2 表5 3 表5 4 表5 5 表5 6 表5 7 表5 8 表目录 索引压缩1 3 约束定义数据字典s y s c o n s - d e f 2 0 约束列信息数据字典:s y s ,c o n s c o l 、2 l 数据字典s y s c o n s 2 6 s t u d e n t s 表4 4 t e s t 表4 5 t e s t l 表4 5 s t u d e n t s 表4 7 c r e d i t 表4 7 s t u d e n t s 表5 3 c r e d i t 表5 3 t e s t 表的数据格式5 6 第i i i 页 国防科学技术大学研究生院工学硕士学位论文 图目录 图2 1 客户服务器结构图- 7 图2 2 文件存储结构9 图2 3e m p 表的存储1 0 图2 4b + 树索引,1 2 图3 1 插入数据字典时i n s e r t 语句在g k d b a s e 内核中的执行流程2 3 图3 2 查询数据字典时s e l e c t 语句在g k d b a s e 内核中的执行流程2 3 图4 1 编译c h e c k 表达式的调用关系2 8 图4 2 编译e x p 的调用关系2 9 图4 3 表达式执行的调用关系3 0 图4 4p r i a r yk e y 实验结果一3 1 图4 5c h e c k 实验结果3 2 图5 1 根节点索引逻辑块内存结构3 6 图5 2b + 树( 未包括叶节点) 3 7 图5 3 叶节点索引逻辑块内存结构3 7 图5 4 索引逻辑块搜索算法3 9 图5 5 数据逻辑块的内存结构4 0 图5 6 堆栈和链表结构一4 3 图5 7t e s t 2 处理完后的堆栈和链表结构4 3 图5 8 完成第一次递归级联删除后的堆栈和链表结构4 3 图5 9 级联删除的流程图,4 9 图5 1 0 索引查找流程图5 0 图5 1 1i n s e r t 语句实验结果5 4 图5 1 2u p d a t e 语句实验结果5 5 图5 1 3d e l e t e 语句实验结果,5 6 图5 1 4d e l e t e 语句大数据量实验结果。5 7 第i v 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已 经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它教育机构的学 位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意。 学位论文题目:q k q = 坠! ! 塞整性约宝啦鲤密量塞堑 学位论文作者签名:塞e 烈日期:如f 年j 1 月jj 日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权国 防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子文档,允 许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据库进行检索, 可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书) 学位论文题目:! ! 堡墼! ! 塞蕉丝数塞盟盟窥生塞趁 学位论文作者签名 作者指导教师签名 塑丝 鸥奄墅 日期:? f 年f 1 月,f 日 b 凝:) n 圭 | tr | | b 国防科学技术火学研究生院工学硕士学位论文 第一章绪论 1 1 课题的背景和来源 当今时代已经进入了信息时代,信息和数据处理在人类的各种活动中处于越 来越重要的地位,而大量的各种各样的信息也成为人们越来越繁重的工作负担。 与此同时,计算机科学技术的研究取得了空前的发展。由于具备快速处理大量数 据的能力,计算机被普遍用于处理各种信息和数据。其中,数据库技术成为信息 和数据处理的崭新的有效工具,极大的减轻了人们的工作负担。数据库技术经历 了3 0 多年的发展演变,已经取得了辉煌的成就,发展成了一门内容丰富的学科, 几乎蕴涵了所有的计算机软件科学领域。数据库技术的发展经历了层次模型数据 库系统、网状模型数据库系统、关系模型数据库系统、面向对象数据库系统和对 象一一关系数据库系统等几个阶段,数据库系统的应用从传统的业务数据处理扩 展到c a d c a m ( 计算机辅助设计制造) 、c a s e ( 计算机辅助软件工程) 、图像处理、 g i s ( 地理信息系统) 、o i s ( 办公信息系统) 、w e b 信息管理、数据挖掘,以及电子 商务、数字化出版和协同设计等等。目前,国外商业数据库管理系统以关系型数 据库为主导产品,技术比较成熟,占有主导地位的关系型数据库管理系统有 o r a c l e 、s q ls e r v e r 、d b 2 、s y b a s e 等。除此之外,开源数据库管理系统p o s t g r e s q l 作为一个相当稳定可靠的数据库管理系统也受到越来越多的重视。这些数据库管 理系统紧跟技术前进的步伐,能够针对各个应用领域提供完善产品技术支持和系 统的解决方案,占据了国内外数据库管理系统市场的绝大部分江山。 在军事领域,最突出的进展是发展出崭新的信息战理论,这是信息化对国防 现代化具有时代特征的影响。以信息技术为核心的现代化科技把先进的技术与完 善的军事学说及与之相适应的军事组织结合起来,形成了使武器发挥最大作用的 真正的军事技术革命。信息化进程大大增强了收集、处理和近于实时传送信号的 能力;信息技术与常规精确打击能力相结合,将深刻影响到进攻和防铘军事行动 实施:在军事演习方面,信息技术拓展了高级模拟的范围,提高了演习、训练系 统的设计、测试及战术发展能力。可以毫不夸张地说,信息技术为武器装备的新 发展提供了空前的机遇,引发了一场涉及整个军事领域的军事技术革命。而数据 库在军事领域中越来越广泛的应用,数据库管理系统是信息系统的核心,承担着 信息的存储和管理使命,它在信息化作战中所充当的角色是其它任何软件所不能 替代的。为了适应现代战争的信息处理要求,保证军事要害部门中的信息安全, 第l 页 国防科学技术人学研究生院工学硕士学位论文 作为负责存储和管理大量数据并为许多用户所共享的军用数据库管理系统,其安 全性就显得尤为重要。目前,我军还没有得到广泛应用的成熟的数据库管理系统 产品,尤其是没有一套完善的、应用于高安全性军事应用的安全数据库管理系统 软件,这与我军在未来军事斗争中的需求是极其不相称的。目前,基于国外、商 用的数据库管理系统( 如0 r a c l e 、d b 2 等) 产品的信息系统和作战指挥系统正在 相当多的部队甚至机要部门运行,这些应用给我军的信息安全带来了不同程度的 威胁。经验表明,通过封堵国外软件的“后门”以保证信息系统安全的道路是行 不通的,我们必须拥有一套具有自主知识产权、安全可靠、界面友好、可以取代 进口产品的安全数据库管理系统。 在这种情况下,国内一些研究机构在国家支持下开发了达梦、金仓、o s c a r 、 g k d b a s e 、o p e n b a s e 等国产数据库管理系统。g k d b a s e 是我国具有自主知识产权 的一个安全数据库管理系统。经过十数年的发展和试点应用,该系统已经被证明 是一套稳定和安全可靠的数据库管理系统。但是,随着应用需求和数据库技术向 深度和广度的发展,g k d b a s e 数据库管理系统在很多方面都暴露出了不足,如不 支持存储过程和包、没有主键外键约束、缺少触发器功能以及对一些新应用( 如 多媒体、数字地图等空间数据、时态数据等) 的支持能力等,都为g k d b a s e 数据 库管理系统的推广应用带来了不小的障碍。g k d b a s e 数据库管理系统迫切需要进 行功能扩展以满足更复杂和新型应用的需求。该项目所进行的研究工作将结合我 们目前承担的“安全数据库管理系统功能扩展”课题开展,目的在于解决g k d b a s e 功能扩展所需的关键技术。 1 2 国内外研究现状 自从上世纪六十年代诞生了数据库管理系统以来,对完整性约束的研究就一 直十分活跃,因为拥有一个先进实用的完整性约束内核,不仅可以大幅度降低数 据库系统自身维护的开销,减小系统规模,而且可以减轻程序设计人员的工作量, 吸引更多的刀:发机构采用该种数据库系统。 现在国内外对完整性约束实现的研究已经很成熟“”,而且实用化、商品化程度 高,新的研究理论都能很快应用到新的数据库管理系统中。在理论研究上,e f c o d d 在1 9 7 0 年创立关系数据库理论时,就明确指出了维护完整性是关系数据库的 重要组成部分,并将它列为关系数据库1 2 条准则中的第1 0 条。1 。】9 7 3 年数据系统语 言委员会( c o d a s y l ) 在定义网状数据模型d b t g 系统时,将完整性约束作为实现数据 库的必备条件之一”1 。此后对完整性的研究主要围绕关系数据库展开,并取得许多 第2 页 国防科学技术大学研究生院工学硕士学位论文 令人瞩目的成果。最早的这方面的工作是f l o r e n t i n 在1 9 7 4 年在他的论文“1 中阐述 了数据库中数据的一致性,g s ch l a g e t e r 和s t u c k y 在1 9 7 7 年首次采用集合理论, 用一个四元组i = ( o ,p ,a ,r ) 描述了完整性的概念,并使用谓词逻辑推导出数据 对象应满足的触发检查条件”1 ,除采用谓词描述约束关系外,有的研究人员还采用 了函数和公理化的方法,这些描述方法同时也是建立数据完整性约束数学模型的 主要技术手段。在这里需要特别提到的是1 9 7 4 年由b o y c e 和c h a m b e r l i n 创建的 s o l ”,即结构化查询语言,它含有数量很少的命令语句如s e l e c t 、i n s e r t 、u p d a t e 、 g r a n t 等;其实,每个命令语句都可能包含上百行某种过程语言的代码。用户通过 简单的语句就可阻完成复杂的查询,这是基于s q l 的关系数据库得以流行的一个主 要因素,它对推进数据完整性的研究与应用,乃至整个数据库系统的发展都起 到了重要的作用。j mc a d i o u 则从函数上说明了完整性约束的实现方法”3 。1 9 7 5 年,i b m 公司圣约瑟研究实验室在i b ms y s t e mr 关系数据库中,成功实现了完整性 约束控制技术中重要技术之一的存储过程”3 。 进入上世纪八十年代以来,数据库技术日新月异,微机性能不断提高,对局 域网环境下的数据库性能有了更高的要求。许多对完整性约束的理论研究都进入 了商品化阶段,如当时红极一时的d b a s e ,f o x b a s e ,p a r a d o x 等微机数据库系统, 都能较好地实现实体完整性和域值完整性。进入九十年代后,微软公司的w i n d o w s 操作系统迅速得到普及,完整性约束的研究与应用也随之迈上了新的台阶,用户 可以在全图形化的界面下,借助鼠标完成约束条件的定义并通过窗口观察运行的 实际效果。一些大型数据库系统则在广度和深度上增强了完整性约束的功能,如 将完整性约束和网络安全、并发程序控制相结合。 我国国内在完整性约束上的研究也一直十分活跃,在许多大学和软件研究机 构都有开展有关完整性理论的探讨和实用技术的研究,目前各大学开设的数据库 课程,都有专门的章节讲授完整性的原理和实现技术,并伴有课程设计。国内某 些计算机领域的核心刊物,也都常设有完整性研究的专栏。萨师煊、王珊在其系 列经典教材数据库系统概论第版。6 1 ( 1 9 8 3 ) 中,将数据库的安全性、完整性 和并发控制合并作为一章讲解,其中关于完整性的内容不足5 页:到该书再版时, 已经将完整性控制独立成章讲解,至2 0 0 0 年第三版时。1 ,该章厚度己达2 8 页之多。 石树刚、郑振媚在1 9 9 1 年设计了关系数据库中完整性约束的5 个计算推导公式“7 。 周龙镶设计了时间戳方法,在完整性约束的事务技术中得到应用“。施伯乐、丁 宝康采用标准的s q l 语法,讲解了实现完整性约束设计的方法“。崔靖等人则结合 两层c l i e n t s e r v e r 应用环境下,说明了应用完整性约束的必要性,并给出了一种 易于实现的基本程序设计方法”“。周青利用数理逻辑方法,在逻辑程序设计中实 现了对完整性中的无矛盾性理论的证明”。 第3 页 国防科学技术大学研究生院工学硕士学位论文 纵观上述的研究发现状,完整性约束的研究己引起了各方面的重视,并取得 了较丰硕的成果,目前仍处于深入研究发展阶段。 完整性约束一般分为静态完整性约束。和动念完整性约束。2 。动态完整住约 束允许数据与2 个或2 个以上的数据库的状态有关。动态约束由于实现复杂,s q l _ 9 2 没有相应的语法支持,而且动态完整性现在国内外都只是做了实现方法上的探讨 “”“”,在主流的数据库产品中不支持动态完整性约束,动态完整性约束的实现一 般都是通过触发器柬实现相应的功能。对于静态完整性约束,针对不同类型的数 据库( 关系型数据库,演绎型数据库,面向对象数据库等) 实现的方法是不同的“, 在这曩g k d b a s e 是关系型数据库。所以我们是在关系型数据库中实现完整型约束。 一般实现起来有两种思路: 触发器实现方式,它是数据库内核在对d d ls q l 语句进行编译阶段,根据 维护完整性约束的要求自动产生一系列触发器规则,在执行d 忆s q l 语句 时,触发这些规则来维护完整性约束。 内核实现方式,它也是数据库内核在对d d ls q l 语句进行编译阶段进行一 定的处理,只是它把维护完整性约束的信息存入数据字典,在执行d m ls q l 语句时再从数据字典中取出完整性约束的有关信息,根据这些信息来维护 完整性约束。 这两种思路最关键的区别是前者是通过一系列的触发器来维护完整性约束, 它的代价很大,因为在维护完整性约束时,触发器的执行是在内核中递归执行s q l 语句,而后者,除了必要的数据字典的查找外无需再递归的执行s q l 语句,这样 就比通过触发器实现的方式大大提高维护完整性约束的效率。 l ,3 课题的主要研究内容 本文所进行的研究工作以我们目前承担的“安全数据库管理系统g k d b a s e 功 能扩展”课题为基础。该课题的目的在于解决g k d b a s e 功能扩展所需的关键技术, 以0 r a c l e 为原型,实现g k d b a s e 的过程式s q l 、存储过程、包机芾j 、游标机制、 触发器机制,完整性约束以及对应的异常处理等功能。本文首先对g k d b a s e 内核 的体系结构和与实现完整性约束有关的内核部分进行了分析研究,在此基础上我 们参考了o r a c l e 对完整性约束的支持来设计和实现“,针对g k d b a s e 内核的特点 设计了完整性约束的实现的机制,实现了完整性约束的功能。 1 g k d - b a s e 内核的体系结构与关键技术 g k d b a s e 采用客户服务器结构,以多线稷机制支持客户访问,登录到数据库 第4 页 国防科学技术大学研究生院工学硕士学位论文 的用户实际上是运行数据库管理系统映像的一个线程。与实现完整性约束有关的 关键技术包括g k d b a s e 内核的数据的存储,索引,内存管理等。 2 s q l 语句中与完整性约束有关的编译 要实现完整性约束,首先要解决的问题就是与完整性约束有关的语句的编译, 这里并没有采用自动化的编译器生成工具,而是采用的人工编写的编译程序来完 成。 3 c h e c k 约束的实现 按照s q l 9 2 的标准,c h e c k 约束包括p r i m a r yk e y ,u n i q u ek e y s ,n o tn u l l , c h e c k ,这罩的关键问题是c h e c k 约束的实现,它涉及到复杂的表达式的编译和表 达式的执行。 4 参照完整性约束 参照完整性约束是指表与表之间的关联关系,它是关系数据库管理系统的一 个重要功能。在现代数据库系统中,参照完整性约束是所有完整性约束的核心, 也是最难于实现的约束条件。 本文在研究了多种完整性约束的实现的前提下,根据g k d b a s e 内核的特点设 计了完整性约束的实现方案,基本上在g k d b a s e 内核中完成了完整性约束的功能, 极大的增强了g k d b a s e 维护数据完整性的能力。 1 4 论文组织结构 全文共分为五章。 第一章为绪论。介绍了当前信息化建设和数据库管理系统的大量应用对当今 军事领域的影响以及所起的重要:同时介绍了当前国内外完整性约束的发展现状; 最后介绍了论文的研究内容以及取得的成果。 第二章为g k d b a s e 内核的体系结构与关键技术。首先给出了g k d b a s e 的客 户服务器结构图,再对客户服务器结构图的各个部分进行了说明,最后介绍了与 实现完整性约束有关的内核中的关键技术。 第三章为完整性约束的编译。在这一章给出s q l 语言中与完整性约束有关的 编译,重点介绍了数据字典的设计和数掇字典的操作。数据字典的设计完全兼容 o r a c l e ,而数掘字典的操作则分为s q l 语句的编译和执行两个阶段,采用x p i 函 数在g k db a s e 内核中递归的执行对数据字典进行操作的s q l 语句。 第四章为c h e c k 约束的研究与实现。在这一章给出了p r i m a r yk e y ,u n i q u e , tn u l l ,c h e c k 约束的实现,重点介绍了c h e c k 约束的实现,包括c h e c k 表达式 第5 页 国防科学技术人学研究生院r 学硕士学位论文 的编译和执行。由于c h e c k 表达式非常复杂,c h e c k 表达式的编译和执行是采用的 一组递归的程序来实现。 第五章为参照完整性约束的研究与实现。在这一章介绍了i n s e r t ,u p d a t e 和 d e l e t e 语句实现参照完整性约束的方法,重点介绍了级联删除所采用的索引扫描 和全表扫描的算法,以及为了级联删除所采用的内存管理。 第六章为总结。对论文完成的工作进行总结,并对未来的研究工作进行了展 望。 第6 页 国防科学技术大学研究生院工学硕士学位论文 第二章g k d b a s e 的体系结构与关键技术 g k 0 一b a s e 是我国具有自主知识产权的一个安全数据库管理系统,g k d b a s e 在 安全数据库管理方面已经取得接入认证、角色定义、数据存储加密、数据传输加 密等成果,达到b 2 级安全水平,正逐步推广应用于军队、政府的一些机要部门 本章首先给出了g k d b a s e 的体系结构,对其组成客户端和服务器端进行了介 绍,在此基础上讨论了与实现完整性约束有关的g k d b a s e 内核的关键技术,包括 数据的存储,索引的结构,以及内存的管理。 2 1g k d b a s e 的体系结构 g k d b a s e 采用客户服务器结构,以多线程机制支持客户访问,登录到数据库 的用户实际上是运行数据库管理系统映像的一个线程,因而,用于每个用户的系 统资源开销很小,这是g k d b a s e 支持大量用户访问的主要原因。g k d b a s e 支持 t c p i p 协议和n a e dp i p e 协议、客户可以在任何t c p i p 网络上和服务器建立连 接访问数据库,系统结构如下图所示。 t c p i p 监听 t c p 仃p 协议驱动接口 na t r i ep i p e 揽听 n 丑r | l ep i p e 协议驱动接口 数 据 库 管 理 系 统 预读线程 缓冲交换线程 垃圾收集线程 文件写入线程 图2 1 客户服务器结构图 1 客户端g k d b a s e 构成 ( 1 )g k d b a s ea p i 用户程序、应用开发工具、数据库系统的实用程序,都是通过g k d b a s ea p i 第7 页 国防科学技术大学研究生院工学硕士学位论文 与g k d b a s e 服务器建立连接的。 ( 2 )g k d b a s en e td r i v e r 此驱动程序提供了g k d b a s ea p i 到网络传输的驱动模块,将用户数据库 访问的请求及服务器的返回信息转换为g k d b a s e 的传输协议( g k d b a s e t r a n s p o r tp r o t o c 0 1 ) ,使g k d b a s e 客户和g k d b a s e 服务器之间建立一种统 一的、与网络协议无关的传输机制。 ( 3 ) g k d b a s e 协议接口模块 对应于各种网络协议,g k d b a s e 提供了相应的网络协议接口模块,使得 g k d b a s e 客户与服务器可在各种网络环境中建立连接,s q l t c p 是用于t c p i p 协议接口的,s q l ( n m p ) 是用于n a m e dp i p e 协议接口的。 2 服务器端g k d b a s e 的构成 ( 1 ) g k d b a s er d b m s 数据库管理系统 g k d b a s er d b m s 是g k d b a s e 的核心,负责数据库对象管理,响应用户对 数据库访问的请求。在w i n d o w sn t 上,g k d b a s er d b m s 是一个服务( s e r v i c e ) 进程,每当一个数据库用户连入数据库时,g k d b a s er d b m s 将开设一个线程 为数据库用户提供服务。 ( 2 ) g k d b a s et c p i pl i s t e n e r _ t c p i p t c p i p 监听器是g k d b a s e 在数据库服务器方的产品之一,负责t c p i p 协议连接数据库的请求监听,在w i n d o w sn t 上,g k d b a s et c p i pl i s t e n e r 是一个服务( s e r v i c e ) 进程。每当有用户通过t c p i p 协议向g k d b a s er d b m s 发出连接请求时,g k d b a s et c p i pl is t e n e r 在g k d b a s er d b m s 中建立服务 线程,为用户提供服务。 ( 3 ) g k d b a s en a m e dp i p el i s t e n e r 命名管道监听器 命名管道监听器是g k d b a s e 在数据库服务器方的产品之一,负责n a m e d p i p e 协议连接数据库的请求监听。在w i n d o w sn t 上,g k d b a s en a m e dp i p e l i s t e n e r 是一个服务( s e r v i c e ) 进程,每当有用户通过n a m e dp i p e 协议向 g k d b a s er d b m s 发出连接请求时,g k d b a s en a m e dp i p el i s t e n e r 在g k d b a s e r d b m s 中建立服务线程,为用户提供服务。 ( 4 ) 预读线程 预读线程是g k d b a s e 的背景线程之一,用于在大量连续数据调入的情况 下,将数据库数据从文件预先读到缓冲区中,从而加快调入数据的速度,在 多处理器系统中非常有效。 ( 5 ) 缓冲区交换线程 缓冲区交换线程是g k d b a s e 的背景线程之,用于g k d b a s e 缓冲区管 第8 页 国防科学技术大学研究生院工学硕士学位论文 理,在g k d b a s er d b m s 连续运转服务时,保持缓冲区的最优化使用,使缓冲 区最大限度地保持连续,减少内存碎片。 ( 6 ) 垃圾收集线程 垃圾收集线程是g k d b a s e 背景线程之一,负责清除系统中的垃圾,包括 发现异常退出的客户,回收其占用的内存、锁资源等。同时也负责死锁检测 和解锁等工作。 ( 7 ) 文件写入线程 文件写入线程是g k d b a s e 的背景线程之一,负责数据库文件、r e d o 、u n d 等日志文件的写入,这种异步写入机制有助于提高系统的晌应性镗。 2 2g k d b a s e 内核数据的存储 1 内核的分区和文件 每个数据库中至少包含个分区。在剐别安装的数据库中只有个s y s t e m 分 区,为了控制数据的跨磁盘安排并且随后对它们进行存取,可在任何时刻增加附 加的分区。 分区是逻辑单位,其本身并不能存储数据,每个分区必须对应于至少个物 理文件。下图中的数据库包括三个逻辑分区和六个物理文件, d a t a b a s e 臣至蛋臣圣习臣壶习 童 臣主 e 主习 图2 z 文件存储结构 每个分区至少有个文件,根据需要可在一个分区中增加文件。每个数据库 中含有最大文件个数因操作系统而异, g k d b a s ef d rw i n d o w sn t 最多支持6 4 个 数据库文件。其中物理文件可处于该操作系统的任何位置。 在一个分区中可包含多个数据库表。一个表可以分跨在同一分区中的多个文 件中但不可以跨分区存放。如果打算把一个表放在与s y s t e m 分区不同的另一个 分区中。那么必须在建表时就以明显方式指明分区,索引与表将存放在同分区 中。 第9 页 国防科学技术大学研究生院工学硕士学位论文 每个g k d b a s e 系统必须有一个s y s t e m 分区。s y s t e m 分区通常包含: 数据字典表 临时表 该分区中通常只有这一个文件,但d b a 可随时对s y s t e m 分区增加文件,分区 由逻辑块组成,每个逻辑块为4 k ,分为数据逻辑块和索引逻辑块,数据逻辑块存 放表的元组数据,索引逻辑块存放表上建立的索引的数据。每个逻辑块都有一个 在本分区中的唯一标识,标识由4 个1 6 进制的数组成,例如6 e 4 b 。 2 表的存储 g k d - b a s e 数据库中存储数据的基本单元是表。每个表的定义( c r e a t e ) 包含 一个表名和组表列。对每一个列给出其名称、数据类型及宽度,在定义一个表 之后,则可往该表中插入数据行。 在表建立之后,g k d b a s e 自动为该表的数据和索引保留空间。这两个“空间” 分别称之为数据段( s e g m e n t ) 和索引段。这两个段的初始尺寸以及以后的增量尺 寸都可以在建表时用指明空间的定义的方式来控制它。 数据段及索引段都是由多个数据块区间构成。下图为e m p 表的空间分配。 数据段 索引段 图2 3e m p 表的存储 在g k d b a s e 内核中每个表都有个唯一的标识: s t r u c tt i d u n s i g n e dl o n g r b a : 表的第一个数据逻辑块所在的逻辑 第1 0 页 国防科学技术大学研究生院工学硕士学位论文 块号 u n s i g n e d s h o r t p i d : 表的分区标识,比如s y s t e m 分区为 l u n s i g n e d c h a r t b l : 分区中的文件号 ) : 3 g k d b a s e 所需要的开销 对于每个表、行、列,g k d b a s e 都需要一定的开销。每个表需要2 个数据逻 辑块开销及一个索引逻辑块开销。第一个数据逻辑块是“e x t e n tb l o c k ”( 区间块) 其中包括当前为该表占用的每个区间的起始地址、最后块号、该区间中的块数、 与该表数据的t a b $ r b a 相重合的第一个数据逻辑块的起始地址。( 它会出现在几个 数据字典表中) 第二个数据逻辑块中含有的一些信息是重复数据字典中的某些信息( 比如表 定义) ,其作用在于可以避免因作内部检查而不断地访问数据字典,以及随之产生 的因频繁检查而要封锁数据字典。数据字典块为保持它的信息,偶尔地要用到一 个以上的块,即扩展区。 索引段需要一个逻辑块的开销,它是个与数据段中第一个开销相容的“区间 块”,其中包含该表的所有索引当前正使用的区间的有关信息。 每个记录行要有4 或5 个字节的开销。存放行的字节长度用2 个字节,存放 行序号( 按该行插入的次序排序) 占用2 个字节。行序号是针对特定的逻辑块而 言的,每个逻辑块中都有个序号为l 的行( 除非第一个插入到该块中的那行已被 删除) 。在同一块中不会出现相同的行序号。一旦一个行序号已分派给某个行,即 使该行已被删除,这个行序号也不会重新被使用。而且,一旦某个行已被分派有 某个序号,该序号也绝不会改变。 不要把行序号与r o w i d 搞混。行序号是真实地储存着的,它是r o w i d 的一个 组成部分。而r o w i d 并未实际储存而且可能会改变。可利用s q l 语言方便地取出 r o w i d 。另外,也不要把行序号与r o w n u m ( 它是s q l 中采用的保留字) 弄混。 每一列需要两字节开销。一个字节储存列标识序号,另一个字节储存列数据 的字节数。n u l l 列无需这种开销,因为n u l l 列不存在要储存的空间。 2 3g k d - b a s e 内核的索引结构 g k d b a s e 索引有两个主要目的: ( 1 ) 加快执行速度:g k d b a s e 里的索引,为g k d b a s er d b m s 提供了一种快速定 位用户所需数据的手段。索引是减少磁盘i 0 的主要方法。在连接多个表 第1 1 页 国防科学技术大学研究生院工学硕士学位论文 时,建议你使用索引以改善性能。 ( 2 ) 保证唯一性:索引能保证表中每一个记录里的一个字段或字段组合的值是 唯一的。例如,索引可以保证每一个社会安全号是唯一的;也可以保证地 区号和电话号码的组合是唯一的。 g k d b a s e 存取数据库表里的数据,主要有两个方法:全表扫描,索引查找。 几乎在任何情况
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第3章 生物群落的演替 A卷 基础夯实-高中生物苏教版必修3
- 2026年国家能源局煤矿安全监察专家面试煤矿安全
- 2026年村社简约婚礼倡议知识题库
- 2026年红色资源保护与利用知识测试题
- 2026年乡镇干部农机安全协管员职责题库
- 检察院2026年面试公益诉讼调查核实题
- 2026年危险货物道路运输安全管理办法知识试题
- 2026年文艺采风活动组织策划方案考题
- 2026年野生动物损害预警及主动防护设施建设标准试题
- 2026年IT技术发展与创新前沿动态解析集
- 【生物】激素调节课件 2023-2024学年人教版生物七年级下册
- 工程数学基础课件
- 抗肿瘤药物临床合理应用(临床)
- 工业γ射线探伤装置安全使用和辐射防护
- 年产30万吨合成氨脱碳工段工艺设计
- 优选文档压裂压力诊断PPT
- SB/T 10784-2012洗染服务合约技术规范
- GB/T 6003.2-2012试验筛技术要求和检验第2部分:金属穿孔板试验筛
- GB/T 21372-2008硅酸盐水泥熟料
- GB/T 11363-2008钎焊接头强度试验方法
- Unit 3 Developing ideas Running into a better life 课件-外研版(2019)高中英语必修第二册
评论
0/150
提交评论