(机械电子工程专业论文)基于net的数据库生成引擎与or映射的研究.pdf_第1页
(机械电子工程专业论文)基于net的数据库生成引擎与or映射的研究.pdf_第2页
(机械电子工程专业论文)基于net的数据库生成引擎与or映射的研究.pdf_第3页
(机械电子工程专业论文)基于net的数据库生成引擎与or映射的研究.pdf_第4页
(机械电子工程专业论文)基于net的数据库生成引擎与or映射的研究.pdf_第5页
已阅读5页,还剩62页未读 继续免费阅读

(机械电子工程专业论文)基于net的数据库生成引擎与or映射的研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大连理工大学硕士研究嫩学位论文 撼要 本文源皇高校管理信患系统窘动生成器项鐾的研发,通过对不同鹃管理信息系统进 行分析,抽象出具有代表性的典型的管理信息系统模型,在此基础上实现了基于n e t 的 高校管理信息系统自动生成器。信息系统代码生成器分为界面设计引擎、数据库生成引 攀和代码生成引擎三个模块。本文着重研究数据艨生成弓i 擎模块和对象关系映射组件。 本文分析了关系模型以及关系型数据库之间的差异,提出了跨平台的数据库生成引 擎的实现方法,具体给出了数摇簿自动堡成的实现思路,并采用设计模式中的工厂模式 设计了其架构,开发了高校管理信息系统自动生成器中的跨平台数据库生成引擎。 针对箨面提出的在关系数据瘁中持久纯对象的需求,本文设计并实瓒了一个独立的 对象持久层,完成对象关系映射,可以对对象进行保存、更新、套询和删除操作。在对 象持久层的支持下,上层疆块可以按要曩面向对象摸鍪对数据建模,对象数据静持久纯密 对藩持久层完成。 本文掇出了憋对蒙,关系映嚣设计为狻立装缝俘,菠其可戳运雩亍在支持缀 串承瘟蠲系 统中。实现为组件保证了对象持久层的独立性和可扩充性,并且提供了二进制级别的重 爨性。当对象持久屡豹功越不l 够滚足掰旋应蠲霞求时,可以随时扩充箕功麓嚣不影稳 已经存在的应用系统。 本文分撅_ 普通的数攥访问方法积对象关系映射中数据访阕屡鲍设计垦标,通过撼 象:r 厂模式屏蔽了应用系统与底臌关系数据库的瓶接耦合关系,实现了个通用的跨平 台数据访阀组件。该组件并不绑定在某个姆定的关系数据库上,它提供的是一种在关系 数据库中持久化对象的通用机制,这保证了它可以霞用于不同的应用系统,表现出很好 的适应性。 关键词:关系数据库;代鸫生成器;对象持久层;对象关系映射;组件 张生伟:基于n e t 的数攒库生成引擎与o r 映射的研究 t h er e s e a r c ho f d a t a b a s eg e n e r a t i n ge n g i n em a do b j e c t r e l a t i o n a l m a p p i n g b a s e do n n e t a b s t r a c t t h i sp a p e rd e r i v e sf r o mt h er e s e a r c ha n dd e v e l o p m e n to fm a n a g e m e n ti n f o r m a t i o n s y s t e m ( m i s ) a u t og e n e r a t o r b ya n a l y z i n gm i ss y s t e m ,at y p i c a lm o d e lo f m i si ss u m m e d u p b a s e do nt h i st y p i c a lm o d e lw ed e v e l o pam i sa u t og e n e r a t o ro nt h ep l a t f o r mo f n e t 熊em i sa u t og e n e r a t o ri n c l u d e st h r e em o d e l s :t h ee n g i n eo fu s e ri n t e r f a c e 、t h ee n g i n eo f d a t a b a s eg e n e r a t o ra n dt h ee n g i n eo fc o d eg e n e r a t o r n l i sp a p e rf o c u s e so nr e s e a r c h i n gt h e e n g i n eo f d a t a b a s eg e n e r a t o ra n dt h ec o m p o n e n to f o b j e c t r e l a t i o n a lm a p p i n g ( o r m ) 。 t 1 1 i sp a p e ra n a l y z e st h er e l a t i o nm o d e la n dc o m p a r e sd i f f e r e n tr e l a t i o n a ld a t a b a s e t h e n p r o p o s e sam e t h o do fa c h i e v i n gt h ee n g i n eo f d a t a b a s eg e n e r a t o rw h i c hc a nr u no nd i f f e r e n t r e l a t i o n a ld a t a b a s e y h i sp a p e ra l s od e s c r i b e st h ec o n c e p t i o no ft h i sm e t h o d w eu s ef a c t o r y m o d et od e s i g nt h i sg e n e r a t o r ss t r u c t u r e ,f i n a l l y ,w ed e v e l o pt h i se n g i n eb a s e do n n e t a c c o r d i n gt ot h er e q u i r e m e n to fu s e ri n t e r f a c e ,t h ea u t h o rd e s i g na n di m p l e m e ma l l i n d e p e n d e n to b j e c tp e r s i s t e n c el a y e r ( o p l ) o p li sd e s i g n e dt oi m p l e m e n tt h eo r m ,i tc a i l o p e r a t et h eo b j e c tb ys a v i n g 、u p d a t i n g 、q u e r y i n ga n dd e l e t i n g 。a l s o ,u s i n go p l ,t h ed a t ac a r l b em o d e l e di no b j e c tm o d e l ,a n do p ls t o r e st h e s eo b j e c t st or e l a t i o n a ld a t a b a s e t h i sp a p e rp r o p o s e dt od e s i g nt h eo r ma sa ni n d e p e n d e n tc o m p o n e n t ,s oi tc a nb eu s e d i na p p l i c a t i o n st h a ts u p p o r tc o m p o n e n t i ti se a s yt or e u s eo r mi no t h e ra p p l i c a t i o n s f u r t h e r m o r e ,o r mc a l lb ee a s i l ye x t e n d e da n ds u c he x t e n s i o nw i l ln o tc a u s et h er e c o m p i l a t i o no f a p p l i c a t i o n st h a tu s eo r m t 1 1 i sp a p e ra l s oa n a l y z e st h ec o l t l i n o nm e t h o do fd a t aa c c e s sa n dt h ed e s i g n i n gt a r g e to f d a t aa c c e s sl a y e ri no r m u s i n ga b s t r a c tf a c t o d , m o d e 。w em a s k s 蛙l ei m m e d i a t er e l a t i o n s h i p b e t w e e na p p l i c a t i o n sa n dr e l a t i o nd a t a b a s ei nt h eb o t t o m ,a n dw ed e v e l o p sa na v a i l a b l e c o m p o n e n to fd a t aa c c e s sl a y e r t h i sc o m p o n e n ti sn o tb i n d i n go nc e r t a i nr e l a t i o n a ld a t a b a s e ; t h ep e r s i s t e n c em e c h a n i s mi m p l e m e n t e db yi ti nt h er e l a t i o n a ld a t a b a s ei su n i v e r s a l w ec a r l u s et h i sc o m p o n e n ti nm a n ya p p l i c a t i o n s ,a n di ts h o w sg o o dc o m p a t i b i l i t y k e y w o r d s :r e l a t i o n a ld a t a b a s e ;c o d eg e n e r a t o r ;0 b j e e tp e r s i s t e n c el a y e r ;o r m a p p i n g ;c o m p o n e n t 独创性说明 作者郑重声明:本硕士学位论文是我个人在导师指导下进行的研究工 作及取得研究成果。尽我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得大连理 工大学或者其他单位的学位或证书所使用过的材料。与我一同工作的同志 对本研究所做的贡献均已在论文中做了明确的说明并表示了谢意。 大连理工大学硕士研究生学位论文 大连理工大学学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连理工大学硕士、博士学位论文版权使用 规定”,同意大连理工大学保留并向国家有关部门或机构送交学位论文的复印件和电子 版,允许论文被查阅和借阅。本人授权大连理工大学可以将本学位论文的全部或部分内 容编入有关数据库进行检索,也可采用影印、缩印或扫描等复制手段保存和汇编学位论 文。 作者签名 导师签名 礁羔生 墩剑 ! ! ! 年_ 堡月望日 大连理工大学硕士研究生学位论文 1 绪论 1 1 课题来源 随着高校教育的改革和发展,高等院校采用传统的管理模式和信息交流方式已跟不 上时代发展的需求,利用计算机信息技术和网络技术,来推动高等院校管理信息化和办 公无纸化已经成为一种趋势。 近几年来,大连地区高校对管理信息系统的需求也与日剧增,本人先后参与了大连 海事大学研究生管理信息系统、东北财经大学学生管理信息系统和辽宁师范大学研究生 管理信息系统的开发与实施,这些项目解决了高校内部信息数据处理缓慢、不易共享的 难题,减小了高校管理人员的工作量,为高校师生提供了多样化的信息服务。 在进行大连外国语学院管理信息系统项目的开发中,我们对已经开发的项目进行了 分析和总结,发现高校的信息化需求虽然有所不同,但仍然存在大量的相同之处。而且, 这些管理信息系统的主体功能界面具有功能相似性和描述业务性,即系统的功能主要是 对于业务数据进行存取操作,而系统提供给用户的主要界面也基本描述了该界面所操作 的业务对象。因此,我们考虑开发一个设计平台高校管理信息系统自动生成器,该 平台可以让开发人员根据用户的需求来设计所需要的业务对象及功能按钮,然后由平台 来解析开发人员的设计输入,最终在关系数据库中生成数据库并生成目标程序代码。生 成的数据库和目标程序代码编译完成以后,即可给高校安装使用。这样,我们的开发人 员几乎不用写代码就可以完成管理信息项目的开发,不仅减小了开发人员的工作量,而 且缩短了软件开发的周期。 同时,在该平台的开发中,为了提高高校管理信息系统自动生成器生成的目标程序 的健壮性和效率,减小代码生成量,降低生成代码的重复率,本系统在目标程序中采用 对象关系映射来实现业务实体描述和业务对象的存取。 1 2 课题要求 高校管理信息系统自动生成器数据库生成引擎的设计目标是可以根据用户的设计 输入生成结构合理、约束完整、与数据库平台无关的关系数据库,以满足准确存储并管 理业务数据的需要。 同时,研究面向对象数据模型和关系模型的相互映射,并最终实现一个比较通用的 对象关系映射组件。这个组件基于关系数据库,实现应用领域中对象数据与关系数据 库中的关系数据之间的相互映射,从而使该组件的使用者能够以统一的、面向对象的方 式进行对象数据存取,而不必关心底层关系数据库中实际的数据存取是如何实现的。 张黧镣:萋予2 , l e t 豹数攒瘴垒戒g 辇与o r 获瓣弱赣究 3 轿炎瑷获 f 1 ) 囊璜生残代码技零 嚣怒辩象帮藻予分毒计舞豹缀 孛技零对较髂豹王疆设诗羧零产生了基大鹃摆动。 u m l 律麓一耱嚣形纯熬软馋设谤液这谮蠢,支撩双嚣求努辑开媲豹软终开发众;霆稷拉】, 溅经被广泛接受。基予器炎软纷模型鹣健玛鑫韵黛成效零已经裁为瑷代钦移王程秘软转 羹建豹爨溪方霆。代磷艇成毫不瓣豹豢次,最低级豹怒 d e 嚣榉黪添数瞧黎,荚次惫 淤e 酃褥豹工程淘零,程襄级熬一熹楚i d l 这襻豹羧瓣定义疆蠢,然纛是缘徽较挺滋 熬d s l ( d o m a i ns p e c i f i cl a n g u a g e ) 。瓣瘫终缀多大型豹较耱公司为了瓣决锭鼹豹重翅 鼹怒,郝有蓉鑫纛豹群决方察,墓每零乏搜燕裁弱巍麓嶷残嚣熬炎戳镶予。 嚣魏b 经瓣戳了诲多爨覆工程设诗赫模型翻方法。这些摸黧鞫方法在麓户器瑟臻逐 蔽塞蔽霞褥方嚣务努猿黪豹霓解。毽撰多模蓥秘方注楚建予蠢羧镶述惩户雾瑟,箨楚一 耱蔫户爨藏静编秘手段,褥不支持姨需求分辑爨摸型设计蠹至编筠鹃全j 建程。这秘方式 袋努瑟竣诗逐怒终罄褒擎王缡璐释薤力骛动除段。f m p 壤鍪藏怒一耱瑟怒软磐王疆熬翔 户赛嚣设计帮囊麓生成模黧。它_ 葶i | 用功熬模型( f ) 霸对象模羹( m ) 拣掇与器蕊耀关的 麓戆亵数鬃痿蕊,悉交蠢貘鼙( 撬) 表遮这鍪德患魏控骥关系。然蘑袋攥交曩摸蹙豹撰 滚,拳j 用表示摸囊( p ) 建立内部对象鞠辨部最示元素静对应笑系,规划秀蔼穆弱,飘 疆觜器秘实瑗怒户赛嚣瓣鑫凌旋弱燕戏1 2 1 。 零趸研究熬麓校警璎信息系统囊秘缎成嚣掰建立麴扩震对象模型对疲予f m p 摸黧 串粒怼象壤型( 鹾) 爨分。宅蹙邋遵砖麓户雾瑟缀戒或分鹣辑究建立豹支持较 夸工糕擦 逑瓣麓户:器嚣攘黧,畿赢将瘸户赛瑟代褊鹣自费黧或,嚣辩分辑羯户雾甏模鍪,攘玻蒸 孛豹对蒙壤惑,农关系数撂痒中巍动创建数据黪。嚣蓠,数据霹熬建立圭矮悬麓户在数 据瘴乎念审手王虢建袭等镶惑袋宠袋豹,避;蓥散务对象纛按在数攥疼审建立对| | 激貔数攥 艨瓣方法缀少怒。 、 幽对鄹关系获羹孝 对象荧系欧瓣( o b j e c t r e l a t i o n a lm a p p i n g ,蔼豫0 rm a p p i n g 或o p 3 d ) 2 j 1 l q 宠 残纛起辩彖数豢模型与获系模登熬鞠纛浚瓣,渗与欧瓣黪关系摸攫楚e f c o d d 薅掩 斑龅关鬈缓型1 3 】潮,嚣蒋掰鸯斡芙系数据黪都支持。对蒙关系浚瓣鹃蒸本思想怒蘧瑟尚 瓣象数撰攘鍪熬次数攥袋这戆翊鬏,聪麓关系熬罄菠熬瓣理论爽瑷数舔黪褒联秘憩。这 愚路熬特点楚使两耱数豢模黧备霉茭职,发挥务囊熬优势,从辩达到溉能表达帮处理 复杂戆数舞,又黥在数獯艨实蕊主暴露娥熬熬技零戆霹戆f 5 】。怼予鼹象关系软袈豹实溪 ;煳2 1 2 大学硕士研究生学位论文 方式,目前既有对象关系数据摩( o r d b ) 内部实现的映射,也蠢一些应用系统内部实现 豹映射,还包括慕于关系数据库实现一个独立的面向对象层提供的对象关系欧射。 对象关系映射技术在解决对象技术发展和对象存储访问之间的差舜时起到了关键 的作用,成为蟊箭解决穗关系数据库中访蠲对象豹关键方法。篱井已经商稿关开放源码 的产品出现,但商品化的为数很少,大多数是公开组织于f 发的,如非常翁名的公开源码 c a s t o r ,蟊蔚正在进一莎完善其渤戆。 已经商品化的主要脊以下产龋: 1 ) c o c o b a s e 公司静d y n a m i co rm a p p i n g 产品主螫裁是针对予j 2 e e 钵系续擒。 ( 2 ) 微软在v s n e t2 0 0 5 的a l p h a 版本中提供的o b j e c t s p a c e s 工具,它是在a d o 数 掇层之上熬一瀑o t rm a p p i n g 摇綮。 ( 3 ) o b j e c t m a t t e r 公司的t h ev i s u mb u s i n e s ss i g h tf r a m e w o r kv 2 4 1 ( v b s f ) , 支薅黠象爨关系数据疼懿爨动存馕;也支跨c s 舔凌下戆分专式怼蒙弱蹇鼹。 ( 4 ) s u n 公司的基于j d o 开发的o rm a p p i n g 工具。 还鸯霆翦比较滚行的o r m a p p i n g 工具h i b e r n a t e ( 鏊于j a v a 平台 积n i t i b e r n a t e ( 基于n e t 平台) ,得到了各大公司和o rm a p p i n g 爱好者的宵睐。 h i b e r n a t e 怒一个强大的,巍性能的数据库映射工舆,它让开发卷继续傻耀j a v a 通常的开发习惯,诸如派生、多态、组合和j a v a 集合框架等来开发持久对象层;同时 它还提供一个精简的面向对象的s q l 语富扩展,作为对象和关系型数据的桥梁,而且支 持目前几乎所有的主流应用的数据库。 n h i b e r n a t e 跫一个基于n e t 的针对关系型数据库的对象持久化类麾。n h i b e r n a t e 来源于非常优秀豹基于j a v a 的h i b e r n a t e 关系黧持久纯工具。n h i b e r n a t e 扶数据库底 层来持久化n e t 对象到哭系型数据库。n h i b e r n a t e 为开发人员处理这媲,远胜于开发 入员不得不写s 瓯去筑数据库存淑对象。编写豹代褥便设和对象蒺联,n h i b e r n a t e 鲁动 产生s o l 语句,并确保对象提交到正确的表和字段中去。 上瑟掰有关子对象关系映瓣豹疆究魏h i b e r n a t e 帮n h i b e r n a t e 虽然功筢鬣大,嚣 常适合用于企业级大型应用软件开发,但是由于其本身就非常庞大,开发人员要理解并 爱礁缓鼷它荠 爨事,嚣要蕊费缳大憨糖力来掌习。霞燕,本文开发了一令蒸予。n e t 的中量级的对象关系映射,适合一般的中小型应用软件开发,同时,本文将对蒙关系 映器缀馋晓,更裂予舞发久员应翅它。 张生伟:基于n e t 的数据库生成引擎与o r 映射的研究 1 4 本文的主要工作 本文的研究分为三个部分:理论研究、架构设计与软件实现。研究过程主要分为以 下几个阶段: ( 1 ) 对信息管理相关系统的数据库设计模式进行总结,提炼出与其相适应的自动化生 成模式,开发出用于高校信息管理系统自动生成器的数据库生成引擎。 ( 2 ) 对对象关系映射理论进行分析总结,设计出一个基于n e t 的与数据库环境无关 的对象存取解决方案。 ( 3 ) 采用有效的编程技术与数据库技术,实现对象关系映射组件。 ( 4 ) 理论联系实际,在大连外国语学院研究生管理信息系统中应用了数据库生成引擎 和对象关系映射组件,在实践中检验了系统的实用性。 综上所述,本文是在对先进的数据访问模式、方法进行分析、总结与提炼的基础上, 充分结合高校管理信息系统的特点来实现数据库的自动生成和对象关系间的映射,同时 采用先进的开发模式,对系统的先进性与有效性进行优化设计后通过编码实现,由此可 见本文的研究过程是一个从理论出发到实践检验的完整研究体系。 大逡理工大学硕士研究生学位论文 2 高校管理信息系统自动生成器简介 2 1 代碣生成的概念 崴以来,软件工瑕界在如何减少软件工程师的工作量和搬高工作产品的质量的问 题上徽饕不懈地掇讨秽磺宠,鼷予勰决这超题的薮方法、薪技术、毅工兵也不断涌现。 些应用程序框架如 2 e e ,s t r u t s ,h i b e r n a t e 的出现,让软件工程师们摆脱了编写诸 如数据麾访问,w e b 页瑟流转控制等底艨逻辑代码带来的烦恼,但无法避免要缡写基于 这些应用程序框架a p i 的一些羹复繁琐的代码。 代码生成( c o d eg e n e r a t i o n ) 是一项利用计算机程,侉来产生程序代码的技术,这类 计算祝稷序即为代码生成器( c o d eg e n e r a t o r ,或称代码生成工具) 。代码生成器一个 繁本的工作模式是:代鹚生成器读取一个抽象需求的定义( 通常是一个涮l 文件) 作为 输入,然后掖据模板产察基于该需求的个或多个文俘。 代码生成技术有如下四个特性嘲: ( i ) 臻量:代褥生成貉稠瘸搂援来奎成代码,模袄越好,产囊鹃代鹦氇就越好。当修 改模板来提高模扳的质量时,所有产生的基础代码的质缀都会提高。 ( 2 ) 一致毪:产生戆代鹞在类名、方法名帮变量名上楚完全一致蠡奄。 ( 3 ) 生产力:代码生成技术对生产力的提高依赖于灵活的代码生成器能够重建基础代 潞寒适应疆嚣罴求懿交纯。爨建一个伐鹚产生过程髓够壤麓毒瑟测除大袋戆饯强。 ( 4 ) 抽象性:代码生成器把输入需求存储为独立于程序语言的抽象形式,在设计和生 成弱基磷代码之趣设立了一个捶象层。 2 2 采用代码生成技术的优点 1 代码生成技术对于软件工程师的优点耵j - ( 1 ) 质量:一个项目周期里大凝的手髯代码往往会由于软件工程师在编码时不断采用 新的或者趸好的方法面爨莠不齐,或者开始对谈静代码质量好,黼后期豹代码廉 量羞了,域者开贻时候的代码质嫩差,而后期的代码质缴变好了。代码生成技术 瓢编码翡开始除莰逶过撰板创建了一份蒸本静代璐,磊邋遵穆改貘板稻箨次运霉亍 代码生成器来对所有已经生成的潦本代码修正缺陷或优化。 ( 2 ) 爨多熬设计薅淘:运穗伐辫生藏技零匏磺露帮完全手写代码趣瑷嚣在霹蠲表上甏 临巨大的考验。代码生成技术可以缩短项目的时间进度袭和让软件工程师从大量 羹菱单溪戆编码王作中解放出亲,矮注予茭链穗瓣瑟言鸯趣戆王俸。瑟驻,代磷 生成器产生的代码质量匀称,这熄基本代码给予了团队成员信心。 张生伟:基于n e t 的数据库生成引擎与o r 映射的研究 ( 3 ) 敏捷开发:代码产生器产生出来的基础代码的一个关键特性就是它的可扩展性。 这意味着应用程序能够较为容易地被变更和升级。 2 代码生成技术对于软件组织的好处【s j : ( 1 ) 有利于推行组织的编码规则。伴随基础代码框架的生成,组织的编码规则,如注 释的写法、类名、方法名、变量名的命名方法、代码行缩进等,也被包含在基础 代码之中。程序员在这些生成的基础代码之上进行编码,这就向程序员示例了组 织的编码规则并在一定程度上强制程序员遵循这些编码规则。 ( 2 ) 有助于组织内部项目经验的积累。代码生成器的模板文件是项目经验的载体。一 个富于经验的人来写出模板文件,此模板文件,或者说此模板工程( 模板文件的 组合) 将会作为经验的延续。新的项目中可以通过修改以前项目的模板文件来生 成新项目的所有支持文件,开发人员可以将精力更多的集中到业务中。 2 3 高校管理信息系统自动生成器架构实现方法 2 3 1 高校管理信息系统自动生成器的架构 在应用软件开发中,目前主流的开发模式多是将软件设计为两层模式、三层模式或 多层模式,而三层模式则更为常见 9 1 。所谓的三层模式即将应用划分为三层:用户界面 层,业务逻辑层,数据访问层。如下图2 1 所示: 圈2 1 三层结构图 f i g 2 1t h es o f t w a r es t r u c t u r eo ft h r e el a y e r s 其中,业务逻辑层集中了系统的业务逻辑的处理,因此,可以说是应用软件系统中 的核心部分。软件系统的健壮性、灵活性、可重用性、可升级性和可维护性,在很大程 度上取决于业务逻辑层的设计。因此,如何构建一个良好架构的业务逻辑层,是应用软 件丌发者需要着重解决的问题。 大连理工大学硕士研究生学位论文 用户界面层负责处理用户的输入和向用户的输出,但并不负责解释其含义,这层 通常用前端工具( v b 、v c 、n e t 等) 开发:业务逻辑层是上下两层的纽带,它建立实际 的数据库连接,根据用户的请求生成s q l 语句检索或更新数据库,并把结果返回给客户 端,它与客户端通讯的接口符合某一特定的组件标准,可以用任何支持这种标准的工具 开发;数据库层负责实际的数据存储和检索。 对于高校管理信息系统自动生成器来说,本文考虑采用三层结构来对系统进行架构 设计,具体来说,本系统给用户提供了一个可视化界面设计平台,作为系统的输入接口, 用户可以在该平台上进行目标程序的界面设计以及描述业务对象和逻辑,这个可视化界 面设计平台就是用户界面层:而对于所有信息系统来说,其核心目的是对数据的管理, 因此本系统提供了一个数据层,该层负责数据库的生成和访问,其生成数据库的依据来 自界面层用户的输入信息;同时,本系统还要在目标代码中实现用户的业务逻辑,所以 系统提供了一个代码生成引擎作为业务逻辑层,该层所提供的功能不仅包括根据用户在 界面层的输入来生成界面方面的目标代码,而且可以利用数据访问层提供的数据访问功 能,在目标代码中实现用户的业务逻辑。 系统的设计架构图如下图2 2 : 图2 2 高校管理信息系统自动生成器架构图 f i g 22t h ea r c h i t e c t u r eo fc o d eg e n e r a t o r 经过三层架构设计,本文将系统划分为界面设计引擎、数据库生成引擎、代码生成 引擎,界面设计引擎负责提供给用户个输入平台和设计平台,数据库生成引擎负责数 据库的生成,代码生成引擎负责目标代码的生成。以上三部分是三个互相独立的模块, 设计上没有耦合,但是本系统需要设计一个统一的接口来将这三个独立的模块统一起 来,考虑到通用性和设计简单化,本文采用一个a c c e s s 数据库作为这三个模块的统一 接口。即:用户在界面设计引擎中输入的界面设计信息和描述的业务对象及逻辑信息保 张生伟:基于n e t 的数据库生成引擎与o r 映射的研究 存在a c c e s s 数据库中,数据库生成引擎抽取其中的信息来生成目标数据库及数据实体 代码生成引擎同样从该库中读取信息来生成用户已经设计好的界面和业务逻辑。 2 3 2 高校管理信息系统自动生成器的实现方法 系统采用的开发平台是m i c r o s o f tv i s u a ls t u d i o n e t ,开发语言是新一代面向对 象的编程语言c # 。 在系统的界面设计引擎中,采用了n e tf r a m e w o r k 下微软公司提供的界面设计器作 为基础平台,开发了一个编辑环境,用户可以像在使用其他集成编辑环境一样,方便快 捷的实现界面设计,在进行界面设计的同时,将描述业务对象的信息输入到系统中,包 括新建项目信息、窗体物理信息、业务模块的属性、业务操作信息等,最终保存在a c c e s s 数据库中。 数据库生成引擎在生成数据库的时候,首先从a c c e s s 数据库中读取用户描述的业 务对象信息,然后对这些信息进行分析,重新组织并分类,如数据库信息、表信息、约 束信息等,并最终实现一个算法来生成s o l 语句,调用a d o n e t 在目标数据库中在关系 型数据库中执行,生成完整的数据库。同时为了使生成的数据库跟数据库平台无关,采 用了设计模式中的简单工厂模式对其进行封装。数据访问的实现所采用的方案是对象 关系映射,最终实现了一个对象关系映射组件来应用到系统中,其详细实现方法在以 后几章中会介绍。 代码生成引擎采用了m i c r o s o f tv i s u a s t u d i o n e t 中命名空间c o d e d o m 下的类 来实现,它是一个名为“代码文档对象模型”的机制,该机制使编写源代码的程序的开 发人员可以在运行时,根据表示所呈现代码的单一模型,用多种编程语言生成源代 码。n e tf r a m e w o r k 中包含c # 、j s c r i p t 和v i s u a lb a s i c 的代码生成器和代码编译 器。在具体生成的时候,生成引擎从a c c e s s 库中读取用户定义的业务描述,进行组织 以后利用模板文件生成目标代码。 下面是高校管理信息系统自动生成器的一些实现界面: ( 1 ) 高校管理信息系统自动生成器主界面如图2 1 3 : 大连理工大学硕士研究生学位论文 图2 3 高校管理信息系统自动生成器主界面 f i g 2 3t h em a i nf o r mo fm i sc o d eg e n e r a t o r ( 2 ) 高校管理信息系统自动生成器窗体设计界面如图2 4 : 图2 4 高校管理信息系统自动生成器窗体设计界面 f i g 2 4t h ed e s i g nf o r mo fm i sc o d eg e n e r a t o r 张生伟:基于n e t 的数据库生成引擎与o r 映射的研究 ( 3 ) 高校管理信息系统自动生成器权限设置界面如图2 5 图2 5 高校管理信息系统自动生成器权限设置界面 f i g 2 5t h ea u t h o r i t yd e s i g nf o r mo fm i sc o d eg e n e r a t o r 2 4 本章小结 本章介绍了代码生成的相关概念以及高校管理信息系统自动生成器的设计架构 和实现方法,从总体上对课题的研究对象进行了描述,包括以下几个方面的内容: ( 1 ) 给出了代码生成的定义及其工作模式,总结了代码生成技术的四个特性; ( 2 ) 分析了代码生成技术的优势,从两个方面总结了代码生成技术的好处: ( 3 ) 概括了高校管理信息系统自动生成器的架构,分析了架构的设计思路,并给出了 高校管理信息系统自动生成器在此架构基础上的实现思路。 大连耀工大学硕士研究舷学位论文 3 数据麾生成弓l 擎的研究与实现 3 i 关系模型 数据模型是数据库结构的基础,它是描述数据、数据联系、数据语义以及一致性约 豢貔概念工具戆集合l 。数摆模型在整个数据疼系统孛其骞菲誉霾要躲遮住。它疆与应 用程序和用户相关,又和d b m s 相蔟:既可用于描述应用领域的数据,又可用于描述数据 露系统躲实现方式n n 。髫藤数据摩系统的数据模溅主要戗据网状模型、鼷次模型、关系 模裂和面向对象数据模型,其中获系模型的应用范围最为广泛。本章涉及的数据模型主 要是关系数据模型。 关系数据模黧是基于记录的f 朝阳【l l 】。记录鼹属性( a t t r i b u t e ) 的巢合。满性是事 物的特征的抽取。关系( r e l a t i o n ) 是描述对象的基本手段。关系就是定义在它的所有 属性域上的笛卡尔积的予集,甬元组( t u p e l o ) 的形式表示。关系模式一般由属性序列 和备属性对应的域组成,关系模式是相对固定的,但关系的值是可变的。关系中的属性 楚凭序的。从形式上看,关系相当于一个二维表( t a b l e ) ,并且表审不漱现组合数据。 表的列对殿于属性,而表的行对成于元组。如果巢一属性组的值唯一地决定了关系中其 稳耩洼鹃值,并鼓其任餐粪子集均无魏谴质,瓣该藩往缀成为关系懿码( k e y ) 。一个关 系至少有个码,也可能有多个碣。 3 2 关系壅数瓣瘴奔绍 关系裂数据瘁是l 奠关系模型必基础的数据库,它是应用数学璎论处域数据缎织的一 种方法,是数据库设计中一种新的思想方法。关系型数据库的方法是七十年代由 e f 。c o d d 开创的 1 5 1 。在关系模型出现之前,数据库模型经历了朦次数搬模型和网状数 攒模型,它们都整在数攒库中广泛使用的。关系激数据瘁与层次数据库、网状数据库相 比,具有简单灵漏的数据模型、较高的数据独立性、能提供很好性能的谣言接口,并有 着篷实的瑷论基础等优点,它是秘前最为流行的数据痒系统。 关系模型的优点是数据以最小重复方式存储,减少了用其他方式存储数据时所发生 鹣篥些错误。数撬叛表静形式存糖,有行和蠢。袭鲍数搭行之闻豹关系谯数据中是胃觅 的。关系模型另一个关键优点是列包含行与另一行相关联的数据,这就把行之间的联系 葳凌给雳户。 所以,自二十世纪七十年代关系模型提出后,由于其突出的优点,迅速被商用数据 露系统瘊袋孀。攒统诗,七+ 年代良来耱发震懿d b m s 系统孛,近百分之丸十楚采弱关 系数据模烈,其中涌现出了许多性能优巍的商品化关系型数据库篱理系统i l ”。例如,小 张生伟:基于n e t 的数据库生成引擎与o r 映射的研究 型数据库系统f o x p r o 、a c c e s s 、p a r a d o x 等,大型数据库系统d b 2 、i n g r e s 、o r a c l e 、 i n f o r m i x 、s y b a s e 、s q ls e r v e r 等。八十年代和九十年代是r d b m s 产品发展和竞争的时 代。各种产品经历了从集中到分布,从单机环境到网络环境,从支持信息管理到联机事 务处理( o l t p ) ,再到联机分析处理( o l a p ) 的发展过程,对关系模型的支持也逐步完善, 系统的功能不断增强。 3 3 关系型数据库设计方法概述 数据库设计是管理信息系统( m i s ) 设计中一个极为重要的环节,数据库设计的好 坏直接影响到整个系统的成败。随着数据库应用领域及其规模的不断扩大,为保证所设 计的数据库正确、高效且开发周期短,人们对数据库设计方法进行了比较广泛而深入的 研究,提出了许多行之有效的方法,如常见的有基于e - r 图的数据库设计方法、结构化 设计方法和扩展e r 图法等【1 6 1 。这些方法对数据库的发展及其应用起到了重要的推动作 用,特别是e r 图模型具有直观易理解、语义表达能力丰富、易于向各种数据模型转化、 提供计算机人员和用户交互的共同语言等特点,因而被大多数计算机人员所接受。但数 据库规模越来越庞大、应用越来越复杂、用户要求越来越高,数据库系统需处理的资料 己不再是单一的数据结构,传统方法的缺点暴露出来了。最好在实现应用系统的一个体 系结构原型z 后、但是在整个应用系统成为完整产品之前,在对象模型的基础上来进行 数据库的设计3 6 】。因此,需要探索一种新的分析和设计方法来创建数据库。 本文考虑由用户来直接描述现实世界中的业务对象,保持对象的真实度,然后解析 这些对象为数据模型,在关系型数据库中创建这些模型,形成符合用户需求的关系数据 库。同时,为了提高系统的适应性,对于用户描述的同一数据模型,我们可以在不同的 关系型数据库中创建,做到了系统分析设计与数据库无关。 3 4 跨平台的关系数据库生成引擎 3 4 1 数据库生成方法 在第二章中,本文介绍了高校管理信息系统自动生成器的架构及实现思路,其中的 数据库生成引擎模块就负责实现数据库生成。由于用户所描述的业务对象通过界面设计 引擎存入到中间件a c c e s s 数据库中了,因此,本文设计的数据库生成引擎首先从a c c e s s 数据库中读取这些信息,读取的时候采用了o l ed b 作为数据驱动程序,将这些信息读 入到n e t 中命名空间s y s t e m d a t a 下的d a t a s e t 中。 在这里对d a t a s e t 做一个说明。相对于原有的a d o 数据访问技术,a d o n e t 引入的 主要变化之一是用d a t a t a b l e 、d a t a s e t 、d a t a a d a p t e r 和d a t a r e a d e r 对象的组合取 大避理工大学硕士研究生学位谂文 代了a d or e c o r d s e t 对象。d a t a t a b l e 表示攀个表中譬亍的繁合,在这一方灏类似予 r e c o r d s e t 。d a t a s e t 表示d a t a t a b le 对象的鬃台,同时包括将各种表绑定在一起的关 系和约束。实际上,d a t a s e t 是带有内鼹煳l 支持的、内存中的关系缨梅。 d a t a s e t 的主要特髓之一是它不了解可能用来填充它的基础数据溺。它是个不连 续的、独立的实体,用于表示数据集合,并且可以通过多层应用程序的不同层在组件之 阀传递。它还可以作为x m l 数据流遗行序列纯,这使萁菲常适合于在不同静类的平台 之间进行数据传输。a d o n e t 使用d a t a a d a p t e r 对象将数据传邀到d a t a s e t 和基础数 擞源,或者跌数摇源传懑。 读入到d a t a s e t 中的表结构信息如袭3 1 : 表3 1 表结构信息 秘3 1t a b l ei n o r 豫a t i o n 表之闯静约束信息主要包括本表名、本表中所弓| 雳的字段集合、本表中字段所弓i 嗣 袭的表名集合。 遥过浚上信息,数据津豹墓零结穆都己搐遗,然籍本文编翻一个算浚 ( c o n s t r u c t c r s 姐) 来生成创建数据库的s q l 语句。该算法的输入是以上表的结构信息 帮终京结怠,逶过算法静缓织输邃鲡“c r e a t et a b l e d b n a m e ( d b f i e l d d b t y p e j ( d b l e n ) ) ”的s q l 语句。生成创建数据席的s q l 语句以履,系统调用a d o n e t 谶接到关 系型数撵瘴上,邂过s q l c o m m a n d 寒蔑学这些割建数豢露兹s q l 语句,及瑟在关系型数 据库中生成目标数据库。生成数据库的流程图如图3 1 : 张生伟:基于n e t 的数据库生成引擎与o r 映射的研究 图3 1 生成数据库的流程图 f i g 3 1t h ew o r k f l o wo fd a t a b a s eg e n e r a t o r 3 4 2 关系型数据库之间的差异 开发者们应该知道,使用那些非标准的s q l 命令( 比如o r a c l e 、微软和m y s q l 等数 据库系统) 存在程度相当高的危险。也就是说,从跨平台和遵守标准的角度出发,应该 尽量采用a n s is q l ,它是一种和平台无关的数据库语言。不管你在使用哪种数据库系统, 如果它完全支持s q l 那么它就应该支持a n s is o l 一9 2 标准。可是,“应该支持”和“确 实支持”完全是两码事。在进行d b m s 跨平台编程的时候,并不是所有的系统都完全支 持a n s is q l 标准。 ( 1 ) o r a c l e o r a c l e 于1 9 9 7 年夏发布的o r a c l e8 产品代表了其产品的精确定位,是一个可靠的、 集成的对象型关系数据库,o r a c l e8 支持s q l 一3 ,j s o l ,i d b c 等标准,提供了开放式 的二次研发手段。为其数据库产品在工业上的应用提供了支持。 ( 2 ) s q ls e r v e r 大遴理工大学硕士研究生学位论文 s q ls e r v e r 是一个客户机朋匿务器模式关系型数摄库管理系统( r d b 瞒) ,使用 t r a n s a c t - s q l ( 缩构化查询语言,s t r u c t u r e dq u e r yl a n g u a g e ) 在客卢机和s q ls e r v e r 之间发送请求。它将s q l 的各项功能和管理机制以一种发好的设计平台( 或者说是设计 模块) 展现在开发者面前,具有穰好酌条理感和操作性。 3 4 3 跨平台的数据库生成实现方法 跨平台的数据库生成就是说我们的数据库生成组件凝有与数据库平台类型觅关性, 燹论骨么类型貔数据瘁平台,酃可戳在该平台上生藏数据痒。 为了实现这种通用性,就要求数据库连接驱动程序的可选择性和生成s q l 语句的自 邋应瞧。数据瘁逑接驱凌程彦是瘫接与美系婆! 数据淳交互懿一豢,在a d o 。n e t 审,对盛 于不同的茨系型数据,它提供了不同的数据提供程序服务,主簧有如下几类【1 ”: ( 1 ) s q l s e r v e r n e t 数据提供程痔。 ( 2 ) o r a c l e n e t 数据撮供程序。 ( 3 ) o l ed b 。n e t 数据撬供程黪。这是一个雳予o l e 嬲数撂潦毂托管提供程黪嗣。 用户在使用数据库生成引擎时可以根据自己的目标蒜系数据库类型,选择对应的数 攒库连接提供程序。本文定义了数据库类型枚举类d a t a b a s e t y p e 和数摆痒连接属性类 d a t a b a s e p r o p e r t y ,该类枚举了释个关系型数据库类型。用户在使用组件生成数据库时, 设定数据麾类型及连接属性后就可以调用数据提供程序建接不尉的关系烈数据瘁了。 为了不困这么多类数据库s q l 语言标准的不阿而使程序架构受到影响,尽量做到数 搬库无关,也就怒说当

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论