




已阅读5页,还剩69页未读, 继续免费阅读
(电路与系统专业论文)eda中的专用数据库及后端数据处理技术.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着电子电路网络化协同设计发展的要求,不标准的设计、不兼容的 数据给设计工程的快速实施带来了极大障碍。要采用自动化设计验证来保 证设计的正确性,要实现各种e d a 软件之间的优势互补,必须丌发相直 的系统并提供数据支持和资源共享。本文巾主要探讨设计验证自动化技术 及资源共享实现方法。针对电路级自动验证提出全新的专用客户端服务器 数据库和文件簇相结合的结构。客户端采用a c c e s s 服务器采用s q l s e r v e r ,实现了快速网络查询、文件压缩和传输并提出了一种全新的数 据库版本管理方案和高效异构数据库的同步更新技术。探索性研究微机 e d a1 二具p r o t e l 与工作站e d a1 2 具m e n t o r 进行板缎数掘交换的方法,实 现了微机与工作站快速高效的数据交换双向接口。本文通过在不同设计层 次实现e d a 数据的管理和处理,为e d a 通用数据库的建立和数据融合技 术奠定了理论和实践基础。 关键词: 资源共享客户n 务器数据库 数据交换 a b s i t r a c t w i t ht h ed e v e l o p m e n to fe l e c t r o n i c d e s i g n ,n o n s t a n d a r dd e s i g no r n o n c o m p a t i b l e d a t a b r i n g o b s t a c l ef o r t h e s p e e d i n e s so fd e s i g n i n g e n g i n e e r i n g as y s t e mo fd a t as u p p o r t i n ga n ds o u r c es h a r i n gm u s td e v e l o p e d t o g u a r a n t e e sa c c u r a c ) 1o ft h ed e s i g nb ya d o p t i n gc e r t i f i c a t i o no fa u t o m a t i c d e s i g n t h ep a p e rd e a l sw i t ha u t o m a t i ct e c h n o l o g yo fd e s i g nc e r t i f i c a t i o na n d t h em e t h o do fs o u r c es h a r i n g an e ws p e c i a lc l i e n t s e r xe rs t r u c t u r ew h i c h c e r t i f i c a t i o nc o m b i n e sd a t a b a s ea n df i l ev o l u m eo fa t o m i z a t i o nd e s i g ni sg i b e i nt h ep a p e r a c c e s sd a t a b a s eo fc l i e n te n da n dm ss q ls e r v e ra p p l i e dt ot h e s e r v e ri nt h e s y s t e m s p e e d i n e s sq u e r ) 7 ,c o m p r e s s i n ga n dt r a n s f e r r i n gf i l e s t h r o u g hn e ta r er e a l i z e di nt h es y s t e m b r a n dn e wd a t a b a s ev e r s i o n m a n a g e m e n t a n das y n c h r o n i z i n gi n n o v a t i o nt e c h n o l o g y b e t e e nd i f f e r e n t d a t a b a s e sa r ep r e s e n t e di nt h i sp a p e r t h em e t h o d o fp c bd a t ae x c h a n g e b e t w e e np e r s o n a lc o m p u t e re d at o o l sp r o t e la n dw o r k s t a t i o nt o o lsm e n t o ri s d i s c u s s e di nt h ep a p e r ,t h es p e e d i n e s sa n de f f i c i e n c yo fd a t ae x c h a n g ea r e r e a l i z e d t h em a n a g e m e n ta n dd a t ap r o c e s s i n gr e a l i z e di nd i f f e r e n ta s p e c t sl a y as o l i df o u n d a t i o no f t h e o r ya n dp r a c t i c ef o r t h ee s t a b l is h m e n to fd a t a b a s ea n d d a t as h a r i n g k e y w o r d :s o u r c es h a r i n g c l i e n t s e r v e rd a t a b a s ed a t ae x c h a n g e 独创性( 或创新性) 声明 本文声明所呈交的论文是我个人在导师的指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别j j u 以标注和致谢中所罗列的内容以外,论文中 小包含其他人已经发表或撰写过的研究成果:也不包含为获得西安电子科技大学 或其他敦育机构的学位或证书而使用过的材荆。与我同工作的同志对本研究所 作的f r 何贡献均已在论文中做了明确的说明并表示了谢意。 本人签名 殛:聋固 l 期:迎2 - ! :鲨 关于论文使用授权的说明 术人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:学 校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布沦文的全部 或部分内容,丁以允许采用影印、缩印或其他复制手段保存论文( 保密的论文在 解密后遵守此规定) 。 本人签名 导帅签名 血触n h 期 p 叩矿 h 期:逻兰z :圭兰1 绪论 绪论 随着电子设计自动化的快速发展,电子c a d ( c o m p u t e r a i d e dd e s i g n , 计算机辅助设计) 系统为设计师提供极大灵活方便性的同时,也造成了 设计的多样性和不一致性。非标准的电路设计可能会给整个工程带来不 必要的损失。即使是同一个设计,通过不同的e d a ( e l e c t r o n i cd e s i g n a u t o m a t i o n ,电子设计自动化) 工具设计生成的数据信息和数据格式也 相差甚远,不利于异地异构协同设计。以往要查找出电路图设计与标准 不相符之处,只能人为分析,要将设计的p c b ( p r i n t e dc i r c u i t b o a r d ,印 制电路板) 拿到更高级的e d a 工具下进行修改,也只能人工将其重画。 如何高效、优质地设计生产新的产品已经成为电子设计科研单位和 企业追求的目标。由此,我们提出e d a 设计验证中电路级自动验证方案 及后端数据交换实现方法,自动化地进行前端设计验证和后端数据交换, 把设计验证工程师从繁重的体力劳动中解脱出来,而且e d a 设计的质量 也会大大提高。 论文中针对电子电路设计中信息繁杂,信息量大的特点,提出全新 的专用客户端服务器数据库结构。该数据库系统目前主要用于前端电路 级设计审查验证工作,为设计验证的自动化提供了必要的保障。对于e d a 后端的数据处理论文中着重探讨p c 机p r o t e l 与工作站e d a 工具m e n t o r 进行板级数据交换快速高效的实现方法。该数据交换的实现建立了微机 与工作站e d a 设计数据融合的桥梁,使得设计师可以利用微机和工作站 上这两个强有力的设计工具更加得心应手地进行设计。 在此基础之上还有待于提出板级设计验证中的数据库技术以及通过 数据库和数据交换实现电子设计自动化领域数据集成的方法。 论文共分四章: 第一章:简明分析e d a 设计中的数据特性,简要说明e d a 数据库 结构和后端数据处理技术。 第二章:研究e d a 设计验证中的专用数据库的设计框架和保证异构 客户服务器数据库一致性和安全性的解决方案。 第三章:研究e d a 设计中后端数据处理技术,重点探讨p r o t e l 与 m e n t o r 之间板级数据交换的实现方法。 第四章:根据现有的数据库和数据交换技术,提出进一步的扩展方 案和电子产品数据管理系统的构想。 2e d a 中的专用数据库及后端数据处理技术 第一章e d a 数据分析和处理 电子c a d 和机械c a d 的相似之处在于都有大量繁杂的数据信息,相 比之下,前者数据更为千变万化,而且种类多,共性少,通用性差。通过 e d a 工具进行电子电路设计时,从前端原理图绘制到电路仿真,从网表生 成到后端p c b 设计都需要和产生大量的数据和文件。不同软件功能和性能 差别较大的同时,数据更是迥然不同。各种e d a 工具数据的差异造成异 构环境下设计资源无法共享,更不能利用不同的工具进行优势互补,这成 为电子电路协同设计、验证和制造中最大的屏障。 在数据分析和数据挖掘的基础之上,如何有效组织数据、重构和共享 数据,是电子c a d 系统网络化发展的需要,更是c i m s ( c o m p u t e r i n t e g r a t e d m a n u f a c t u r i n gs y s t e m ,计算机集成制造系统) 的基础和关键技术。迄今为 止,国内外在此方面的研究开展较少,数据处理的应用软件更是寥寥无几。 少有的软件主要针对某个e d a 工具而言,价格不菲,而且可移植性差, 更不适合中国电子设计业的需要。所以,我们针对e d a 的数据进行研究, 在充分利用其原有信息的基础之上,加以扩充,探索适合电子c a d 系统 的专用数据库结构和数据处理技术,为网络设计制造系统奠定坚实的基 础。数据库和数据处理是建立在数据分析基础之上,所以电子c a d 系统 数据的基本特性是研究的起始点。 1 1e d a 数据特性 e d a 设计主要分为三个层次:系统级、电路级和物理实现级设计。e d a 工具或多或少的支持不同层次的设计,其丰富多彩的功能主要是针对电路 级和物理实现级的设计。随着e d a 工具日新月异,电子产品层出不穷, e d a 的数据也愈加复杂,数据更新快、信息量大。万变不离其中,通过对 多种电子c a d 系统数据进行分析后,可以总结出它们之间的一些共性。 1 1 1 电路级数据信息 对于电路级设计,电子c a d 的主流设计方式仍是原理图输入方式: 即通过e d a 工具绘制电路原理图。不同的e d a 工具以各异的方式组织信 息,为用户提供设计模型符号库,将用户设计产生的图形信息合理地保存 第一章e d a 数据分析和处理 3 起来。 原理图设计分为单页式、拼接式和多层式三种。无论一张原理图采用 何种设计方式或设计软件,都包含了两部分主要信息:元器件和网络连接 关系。我们可以采用组织结构图更清晰地描述原理图中的数据信息。如图 1 1 所示:对于一个元器件,包括器件符号、名称、功能、封装等多种属 性,由多个管脚组成;对于一个网络,有网络名称等属性,一个网络中可 能包含多个不同元器件的不同管脚。一个管脚必定只属于某一个元器件, 而且可能属于一个或者多个网络。元器件符号库中的每一个元器件,其实 就相当于是没有网络的,内部图形位置信息不是绝对值而是相对值的一张 原理图。可以说器件和网络之间通过管脚相互关系起来,形成了一张囊括 原理图完整信息的网。按照图论的方法,把每个元器件视为图中的一个节 点,网络里一条p i n t o p i n 连接( 器件管脚之间连接) 视为边从图中的 任一个节点出发,可以遍历整个图,从任一条边出发,也可以便利整个图。 遍历的过程就是处理数据的过程。 圈j 1 原理图数据组织结构 不同的e d a 工具原理图信息集合方式各异,所以即使是完全相同的 原理图在不同的e d a 软件下产生的数据也相差甚远。例如:v i e w d r a w 下 一张原理图生成两个+ 1 文件,一个在工程的s c h 目录下,包含主要的元器 件图形信息,一个在工程的w i r 目录下,包含连接关系等信息。而p r o t e l 则不同,它生成的原理图的所有信息都保存在一个独立的文件+ s c h 中。 原理图仿真时主要涉及仿真模型库的数据信息和原理图的连接关系。 仿真模型库中对于元器件的功能和逻辑信息的完整描述是功能仿真的基 础,这些并不是所有的e d a 软件能够提供的。目前仿真信息的描述主要 采用s p i c e 语言和v i e l o g h d l 语言,这里不再详述。 e d a 中的专用数据库及后端数据处理技术 1 1 2 物理实现级数据信息 物理实现级的设计主要包括两个方向:p c b 版图设计和i c 版图设计。 这一层次的设计中图形信息是至关重要的,和实际生产中的数据也要完全 一致,与电路级相比,含有大比重的几何数据,这一层次的数据量更大。 由于物理实现级的设计又属于生产制造的前端,一般e d a 工具不仅能够 生成本身设计文件,而且可以生成面向生产用的数据和文件。 p c b 版图信息主要有焊盘、连线、过孔、板层等,对于小小的过孔来 | 兑,又包含钻孔尺寸、信号层尺寸、阻焊层尺寸等几何信息,以及过孔类 型、连接层次等,每一个数据都是下一步生产中必不可少的。琐碎的版图 信息也同样分为器件和连线两大模块。器件是相对于原理图元器件的封装 模型,连线只是原理图网络连接中一部分或全部的物理实现。e d a 软件对 于p c b 信息的存储也是千差万别:例如p r o t e l 只生成一个文件,m e n t o r 则是根据板层来生成不同层次的一组文件。虽然大多数软件都支持输出 g e r b e r 格式光绘文件,但是很少有软件支持g e r b e r 格式的反相读入。 i c 版图设计中的图形和图层信息对于微电子设计来晓是关键部分,稍 有不同可能电路实现的功能就完全相反。目前i c 版图输出主要支持三种 格式:c i f 格式( 加州理工中介格式) ,g d si i 格式( 由电路描述语言c a l m a 写成) 和p g 带格式。 同一种e d a 工具处理和生成的数据具有信息量大、相关性强的特性, 而不同e d a 软件生成数据有明显的不一致性。随着电子电路协同设计发 展的需要,必须逐一分析各种e d a 工具数据的不同点,转化为共同可以 接受的数据结构,爿能有效管理数据,实现数据融合。 1 2e d a 专用数据库模型 数据融合,资源共享的有效管理途径是数据库。必须根据e d a 数据 特性规划适合的数据库模型。 所有的数据信息因为它们之间的相关性,完全是可以在通用的关系型 数据库管理系统( r d b m s ,r e l a t i o n a ld a t a b a s em a n a g e m e n ts y s t e m ) 基础 之上构建专用的电子c a d 系统工程数据库。但是,这样必定要将所有数 据细化为多种关系,以表格数据体现。用户关心的并不是琐碎的数据,而 是漫计的整体,所以面向用户还需要提供可供各种e d a 工具接受的数据 文件。关系越复杂,数据库的维护也愈加困难,特别是e d a 数据量大, 数据膨胀足以威胁r d b m s 的容量,而且查询速度随之大大降低。如果要 第一章e d a 数据分析和处理 5 提供网络化的数据库服务,这样的结构必定增加服务器和网络的负担。 如果将各种e d a 设计的源文件保留下来,虽然可以使数据直观性增 强但是与e d a 软件关系密切,平台独立性差。由于电路级和板级主要 信息都可以按照图的形式组织起来,通过遍历整个图将数据串行化处理, 可以实现数据重组。再提供各种e d a 数据的重组接口,就可以方便扩充 数掘库可以容纳的数据类型。重组后的结果保存到文件中,独立存放于数 据库之外的v o l u m e ( 分区) ,数据库中存放简要检索信息,保证对数据 和文件的统一管理。采用这种独特的数据库和文件簇结合方式可以不必 担心数据膨胀带来的容量限制问题,也可以提高数据检索效率。 电子c a d 的数据库主要是为了提供一种设计资源。这种资源在设计 验证的过程中更为有效。例如,将设计的电路中某一部分与相关的标准电 路进行比较,可以有效的辅助纠错和更正。所以,我们首先尝试通过建立 设计规则电路数据库来辅助自动化设计验证。设计验证数据库系统采用以 上设计思想构建,为进一步建立统一的电子c a d 系统专用数据库作出了 大胆的尝试。 设计验证数据库采用两级的c l i e n t s e r v e r 模式,如图1 2 所示,数据 库中包含标准和经验设计的必要信息,但是设计的源文件和重组信息文件 存放在对应的文件分区内。目前保存源文件是为了在没有完全提供信息重 组的双向接口情况下,可以直接利用相应的e d a 工具来修改数据库中的 标准和经验设计。应用程序位于客户端,可以访问本机的设计验证数据库 和远端服务器的设计验证数据库,同时管理文件簇。 数据库与文件管理 ,一、 陲= = = = 二= 二爿 f ! ! 墼墨筻堡一: q 厂l _ j 远端 o f 设计文件一 迅= o p e n ( b s t r _ t ( ms t r s q l ) 9 1 1 1 19 b t t t a d m o d e u n k n o w n ) ; c a t c h ( _ c o m _ e r r o re 1 捕捉异常 c s t r i n ge r r o r m e s s a g e ; e r r o r m e s s a g e f o r m a t ( ”连接服务器数据库失败! t ) ; a f x m e s s a g e b o x ( e r r o r m e s s a g e ) ; 显示错误信息 r e t u r nf a l s e ; r e t u r nt r u e : 客户端与服务器数据库建立连接后,服务器数据库会响应客户端发 出的s q l 命令,执行相应的操作。 f t p 程序也需要首先设置服务器的地址和用户,直接采用m f c 的 f t p 连接类g e t f t p c o n n e c t i o n ( ) 函数连接到一个f t p 服务器创建并返回 指向c f t p c o n n e c t i o n 对象的指针通过函数实现与f t p 服务器传送文件 的功能。 2 4 2 2 添加新规则 2 6 e d a 中的专用数据库及后端数据处理技术 所有添加到服务器上的规则电路都是经过审核以后的,提供所有用 户设计验证过程中使用的标准电路或经验电路。任何个规则电路最初 的设计都是在客户端完成,首先存储在a c c e s s 数据库中,上载到服务器 的过程就是向服务器添加新的规则电路的过程。为了避免异构数据库之 间数据转换的问题,可以从电录文件+ r e c 中得到数据库内的记录信息, 写入到服务器的s q ls e r v e r 数据库中。添加规则设计也必须将规则压缩 文件和二进制文件上传到服务器上。所以只要有规则压缩文件,我们就 可以同时得到数据和文件信息。服务器的规则压缩文件和二进制文件存 放在f t p 目录下,文件不能重名,为了名称的唯一,先要将规则添加到 数据库中,得到改记录的新的全局唯一标识的i d 号,将文件上载到服务 器的过程中用i d 号重新命名文件名,这样可以保证文件和数据库记录的 严格对应,不会有重名的现象。添加新的规则电路到服务器的过程如图 2 1 0 所示。添加完成后,将解压的文件删除,确保不占用客户端的硬盘 空j 创。 i 阻a v r i d s t d 服务器 r 一 t n 口 “ + 一堡羔_ 1 服务器数据库新记录i 竺:三- ; 史名l 载l 广一 更名上载 j i 斋一j 规则压缩文 :l :a v r 设计二进制文件 木s t d 客户端 幽2 1 0向服务器添加新规则模式图 2 4 2 3 删除规则 删除服务器规则必须同时删除数据库记录和f t p 目录下的规则文 件。与添加规则过程相反,先从数据库中读取规则文件的存放路径,采 用f t p 程序删除远端的规则文件,然后再从数据库中删除该记录。一个 规则对应tr u l e s 中的一条记录和tk e y c o m p s 中的多条记录。为保证 删除时数据的完整性,在tr u l e s 表创建触发器,当执行删除tr u l e s 的一条记录时,同时删除tk e y c o m p s 中的相关记录。触发器d e l e t ed s n 的s q l 脚本如下: c r e a t et r i g g e rd e l e t e d s no nd b o t r u l e s f o rd e l e t e 第二章电路级专用数据库设计2 7 a 5 + d e l l di su s e dt o s t o r et h ei n s e r tr u l ei d + d e c l a r e d e l l du n i q u e i d e n t i f i e r ,+ f i n dt h ed e l e t er e c o r di d + d e c l a r ed e l e t e c u r s o rc u r s o r f o rs e l e c tf l n g r u l e l df r o md e l e t e dd o p e nd e l e t e c u r s o r 卜g e tt h ed e l l d | f e t c hn e x tf r o md e l e t e c u r s o ri n t o d e l l d w h i l e ( f e t c h s t a t u s2o ) b e g i n pd e l e t et h ek e y c o m pi n f o r m a t i o nf r o mt k e y c o m p f d e l e t ef r o mt k e y c o m pw h e r ef l n g r u l e l d2 d e l l d | 4 m o v ec u r s o rt on e x te l i e n t4i f e t c hn e x tf r o md e l e t e c u r s o ri n t o d e l l d e 1 1 d c l o s ed e l e t e c u r s o r d e a l l o c a t ed e l e t e c u r s o r 2 4 2 4 其他数据操作 对于服务器的规则的浏览功能仅限于用户可以查看规则设置的基本 信息,但是无法看到规则电路对应的原理图。用户要修改一条规则,必 须将规则首先下载到本机,即取到本机来操作。服务器上已经存放有规 则压缩文件,包含了完整规则信息,只要找到相应的文件,通过f t p 程 序将文件下载到本机,用户可以随意保存和修改。 2 4 3 客户机数据管理 客户机的规则数据库包括和服务器同步的规则库以及用户自己的规 则库。这罩所指的客户机数据管理主要是用户规则库和规则文件的管理。 同服务器的规则库管理界面类似,用户对于本机的规则数据管理也包括: 添加、删除、浏览操作,同时用户可以更改、导入、导出自己的规则。 客户机中规则的添加是真正建立一个新的规则电路的开始。绘制好 的规则电路图是信息的基础。用户按照原理图内的基本信息,通过向导 选择核心器件和特征器件,程序自动生成规则二进制文件结构,再将规 则电路的信息写入到用户的规则库中。添加规则的模式如图2 1 1 所示。 2 8e d a 中的专用数据库及后端数据处理技术 添加规则的向导界面的每一页与浏览界面相同,通过图2 1 2 的浏览界面 可以查询规则电路的设置信息。 面i i i 面夏一弋 叮一_ p 二彳; 嚣_ 一一j l、 1 则文件骂害兰j 1 | _ 一 、 2 |、 信息u 补、 指定规罂詈路特征:二二二亡二二二二二二二二二型i 客户机规则删除是对于本机的a c c es s 数据库和设计文件操作的。 t r u l e s 表发出命令即可,而要同时操作t k e y c o m p s 的相关记录。可 能一个设计源文件中的不同原理图对应不同的规则电路,删除设计源文 件会造成多个规则电路设计源信息丢失,所以对于设计文件的删除也需 要和用户交换完成,提供用户选择删除文件的自由。客户机规则不仅可 以通过提供用户界面来浏览修改,而且用户可以通过e d a 软件浏览或绘 客户机规则库管理提供必要的导出功能,完成生成规则的压缩文件 的过程;导入功能则将压缩的规则文件解压后导入到用户的规则库中。 导入和导出使用户问、用户和服务器之间的规则电路交流成为可能。这 样,我们才能将规则电路下载到本机、浏览和修改。由于w i n z i p 等不支 持免费的接口,我们选择采用源自d o s 的压缩程序a r j 来实现。a r j 的高 版本支持w i n g x 和w i nn t 、2 0 0 0 下的长文件名,满足系统的需求。用 v c 程序实现对a r j 的调用,对于文件进行压缩和解压缩如下方式: b o o lc p a c k a g e :p a c k f i l e ( c s t r i n gs t r p a c k f i l e ,c s t r i n gs t r a r j f i l e ) 第二章电路级专用数据库设计 2 9 图2 i2规划浏览羿面 e x e c u t et h ep a c k a g ec o m m a n d ; i f ( w i n e x e c ( s t r c m d g e t b u f f e r ( m a x b u f f l e n ) ,s w h i d e ) 3 2 ) r e t u r nf a l s e ; d el a y3s e c d e l a y ( 3 ) ; r e t u r nt r u e : ) b o o lc p a c k a g e :u n p a c k ( c s t r i n gs t r a r jf i l e c s t r i n gs t r d i r ) f o r m a tt h ec o m m a n d ; c s t r i n gs t r c m d ; s t r c m d f o r m a t ( ”ar - fx _ h $ s s - y ”,s t r a r j f i l e ,s t r d i r ) ; e x c u t et h eu n p a c k a g ec o m m a n d ; i f ( w i n e x e c ( s t r c m d g e t b u f f e r ( m a x b u f f l e n ) s w h i d e ) 3 2 ) r e t u r nf a l s e ; d e l a y5s e c 3 0 e d a 中的专用数据库及后端数据处理技术 d e l a y ( 5 ) ; r e t u r nt r u e : ) 由于程序发出执行a r j 的命令的命令后,无论压缩或解压的工作完成 了没有,进程将继续进行下一个操作,可能造成压缩解压不完整。特别 是在导入规则时,可能文件还没有完全解压,程序就去读取记录文件中 的信息,造成读取失败。即使将压缩和解压命令作为批处理命令来执行, 陔情况还可能出现。不得不通过延时来保证压缩、解压的完整性。通过 程序自动获知a r j 压缩文件和解压文件成功的时间对于系统的开销较大。 一般规则设计文件大小多为几十k 几百k ,添加固定延时能够满足要 求,自定义的延时函数如下: t h ef u n c t i o nt od e l a y v o i dd e l a y ( d w o r dd w t i m e ) m s gm s g ; d w o r dd w e n d = g e t t i c k c o u n t ( ) + d w t i m e + l0 0 0 ;i i 计时结束时间 d w o r dd w n o w = 0 ;1 1 当前时间从0 开始 w h i l e ( d w n o w d w e n d ) i f ( p e e k m e s s a g e ( & m s g ,n u l l ,0 ,0 ,p m r e m o v e ) ) f t r a n s l a t e m e s s a g e ( & m s g ) ; d i s p a t c h m e s s a g e ( & m s g ) ; ) d w n o w = g e t t i c k c o u n t ( ) ; 实际运行中效果良好。 客户机的同步规则库需要和服务器的规则库保持较强的一致性,但 是不需要用户参与管理。关于客户机和服务器规则库的同步是设计验证 数据库系统中独特的部分,将在接下来的节中研究。 2 5异构数据库的同步 设计验证专用数据库系统为了提供客户机的设计验证工作快速高效 第二章电路级专用数据库设计 3 l 地进行,同时减少网络的流量和减小服务器的负荷,采用在客户端建立 与服务器同步的规则数据库。实现客户端的同步规则库和服务器的规则 库松耦合同步是设计验证工作正确进行的关键。 2 5 1 同步更新解决方案 在设计验证数据库系统中,客户机与服务器数据库同步更新时间决 定了同步更新的方式,所以更新时间问题是解决方案的首要环节。如果 客户机实时访问服务器去探测服务器规则数据库的变化,必定影响客户 机程序的执行速度,同时增加网络负担。如果在服务器的规则数据库发 生变化时自动向客户端发出更新命令,由于客户机的数目不固定,客户 机的变更性大,实现起来也更为复杂而且可靠性低。设计验证数据库一 旦建成数据更新的速度并不是很快,可以操作服务器的规则库的用户也 有一定的权限限制,多数用户都是访问者。基于以上因素考虑,对于客 户机的定时更新基本上可以满足需求。但是,定时更新可能会影响到客 户机的其他操作。用户每回进行设计验证工作时需先登录进行身份认证, 如果在用户登录时提示用户进行数据库同步更新工作,则更有利于实现 及时和可靠的数据库同步更新。客户端规则库同步更新的频率随用户的 工作性质的不同而不同( 一天更新数次或数天更新一次) 。 对于同步更新,完全采取“全盘复制”的方法,不仅浪费时间,而 且多用户同时更新时会造成通信瓶颈,甚至无法实现。设想,对于各个 客户端采用“增量更新”的方法:即对服务器数据库做过增加、删除、 更改等操作的数据分别进行标记,仅需要将标记过的数据进行更新,从 时问和网络要求上都是可行的。 在设计验证数据库系统中,需要同步更新所有关系。不失一般性, 假定它们之间只有一个关系要同步更新,这个关系模式为r ( a l ,a 2 ,a 。) a l ,a 2 ,a 。表示这个关系的属性。我们将关系模式r ( a 】,a2 ,a 。) 加上一个候选码( c a n d i d a t ek e y ) 属性r o w l d ( 表示行 的唯一标识) ,变为关系模式r ( a l ,a 2 ,a 。,r o w l d ) ,由服务器自动 添加,保证不重复。为服务器添加新的关系记录服务器的数据库版本信 息: d b v e r s i o n ( v e r i s o n ,d a t e ,n e w f l a g ) ; d b c h a n g c ( r o w i d ,t a b l e n a m e ,c h a n g e t y p e ,v e r s i o n ) ; 假设数据库中已记载旧的版本信息v i ,v 2 ,v 。,d b v e r s i o n 在数据 库发生变化后添加新的数据版本号v 。+ i ,该版本的n e w f l a g 标记为1 , 3 2 e d a 中的专用数据库及后端数据处理技术 其他版本的n e w f l a g 标记为0 。对于已经存在的旧的数据库版本v i ( 1 s 逛n + 1 ) ,如果它要更新为版本v 。+ i ,需要更改别的关系中对应的记 录行,更改的信息记录在d b c h a n g e 关系中。更改记录就是对于保持旧 的版本v ( 1 三i s n + 1 ) 的数据库,要更新为最新的版本v + i ,它的某个 关系( t a b l e n a m e ) 中的某个记录行( r o w i d ) 作什么变化( c h a n g e t y p e ) , 变化类型包括插入、删除和更改,分别对应标记“i ”、“d ”,“m ”。所以 对于一个旧版本要更新到最新版本,需要按照关系d b c h a n g e 中对应的 多个元组进行更改。 由于数据库不断更改,记录过多的版本会占用不必要的空间。所以 考虑采用保留一定数量的版本记录。如果某个客户机上旧的数据库版本 在服务器的版本关系d b v e r s i o n 中不存在,说明版本过老,可以采用“全 盘复制”。保留版本记录的数量可以根据数据库的使用频率,数据库的规 模而定。 在客户机端的同步数据库中添加关系d b v e r s i o n ( v e r i s o n ,d a t e ) ,内 部保证只有一个元组,记录当前客户机同步数据库的版本号。这个版本 号是服务器给定的。假定客户机l 的同步数据库当前版本为v 。 ( 1 s 逛n 十1 ) ,而服务器数据库版本为v 。+ l ,这样在同步客户机与服务器 时,只要根据服务器的关系d b c h a n g e 中的记录对客户端数据库进行修 改即可。更新完成,将客户机的d b v e r s i o n 内的唯一记录删除,添加新 的记录版本为v 。+ l 。 在设计验证数据库系统中,服务器上s q ls e r v e r 数据库中主要关系 s t a n d s c h ( s c h n a m e ,s c h d s r l ,s c h b i n ,c o r ec o m p n a m e ,c o r ec o m p a t t r , c o r ep i n n u m ) 与k e y c o m p ( c o m p n a m e ,c o m p a t t r ,p i n n u m ,s t a n d s c h ) 之间在生成逻辑关系的时候已经增加了新的属性f l n g r u l e i d ( 全局唯一 的标识号g u i d ) ,f l n g r u l e l d 完全可以作为关系s t a n d s e h 的r o w l d ( 行 的唯一标识) 。对于关系k e y c o m p ,它通过f l n g r u l e i d 和s t a n d s c h 关系 起束,只要s t a n d s c h 发生变化,它也随之而变。这样数据库中数据发生 变化时,我们只要记录下关系s t a n d s c h ( 即表t r u l e s ) 所作的变化即 可。这用同步更新的方法,即使在数据库结构变化,增加新的关系后, 依然适用。 2 5 2 服务器端的变更记录 服务器采用s q ls e r v e r 。主要记录规则的变更,即t r u l e s 表的变 化。无论规则通过客户端应用程序变更,或是直接操作s q ls e r v e r 变更, 第二章电路级专用数据库设计 都应该记录下来。因此我们采用s q ls e r v e r 的触发器,当tr u l e s 表发 生变化时,自动添加数据库新的版本号和变更记录。变更记录分为添加、 删除、更改三种,所以tr u l e s 的触发器也相应为三种。触发器脚本程 | 芋复杂,具体脚本内容见附录a 。 2 5 2 1 数据库版本的记录 由于数据库版本有n 个,则在d b c h a n g e 中要添加n l ( 1 茎m n + 1 ) 行,这样d b c h a n g e 的规模是d b v e r s i o n 规模的o ( n ! ) 。所以必须限制数 掘库版本记录的规模。 我们在d b v e r s i o n 表添加触发器,当版本记录数超过n 个时,删除 晟老的版本。同时删除关系d b c h a n g e 中最老版本对应的行。数量n 可 以根据数据库的使用频率,数据库的规模而定。 2 5 2 2 插入规则的标记处理 设所插入的规则元组为t - ( + ,r i d ) ,生成服务器数据库新的版 本vn + l 。服务器d b v e r s i o n 中已经记录的版本v l ,v 2 ,v 。,将n 条元 组( r u l e l d ,t r u l e s ,”i ”,v i ) ( i = 1 2 ,n ) 插入到d b c h a n g e 中。 2 5 2 3 删除规则的标记处理 设所删除的规则元组为t = ( + ,+ + ,r i d ) ,然后进行以下操作: 查找d b c h a n g e 中有相同r i d 并标记为“i ”( 插入) 的行: r o w l d 2 r i da n dc h a n g e t y p e 2 ”i ”a n dv e r i s o n 2 v j 若找到,说明对于版本v 更新为v 。时要添加r u l e i d 为r i d 的记录, 但是v 版本又将该记录删除了,所以如果客户机数据库的版本时v , 它更新为最新的v 。版本时就没有必要先添加r u l e l d 为r i d 的记录再删 除该记录了。应该将d b c h a n g e 中有相同r i d 并标记为l ( 插入) 的行删 掉。同理,对于标记为“m ”( 更改) 的行,应该设置为删除标记“d ”。 若没有找到r o w l d = r l da n dv e r is o n = v 的行,说明v 1 版本的数据库 中有r u l e l d 为r i d 的记录,要更新为v 。+ 1 版本时,必须删除该记录。所 以应该向关系d b c h a n g e 中添加元组( r u l e i d ,tr u l e s d ,v i ) 。 252 4 更改规则的标记处理 设所更改的规则元组为t = ( + + ,+ ,r i d ) ,然后进行以下操作: 查找d b c h a n g e 中有相同r i d 并标记为“i ”( 插入) 或“m ”( 更改) 的行: r o w i d 2 r i da n dv e r is o n 2 v ja n dc h a n g e t y p e 。”i ”o rc h a n g e t y p e = ”m ” 若找到,说明版本v 更新为v 。已经要插入或更改r u l e i d 为r i d 的 记录,版本v 。+ 1 继续对该记录修改,所以对于v 更新为更新为最新的 v 版本时只要插入或更新一次r u l e l d 为r i d 的记录即可。 3 4 e d a 中的专用数据库及后端数据处理技术 中。 如果没有找到,则应该添加行 r o w l d 3 r i da n dv e r i s o n = v ja n dc h a n g e t y p e 2 ”m ”到关系d b c h a n g e 2 5 3 同步更新的实现 同步更新是在用户从客户端登录服务器时实现的。如果客户机同步 数据库和服务器当前版本不一致,允许用户选择立即更新或稍后更新。 更新的过程中,如果客户机同步数据库版本过老,在服务器上找不到该 版本的记录,则采用“全盘复制”;如果找到该版本记录,就采用“增量 更新”,按照d b c h a n g e 中对应的更改记录向客户机同步数据库添加、删 除或修改对应的元组。同步更新的流程图如图2 13 所示。 第二章电路级专用数据库设计3 5 、登录 j 、- 1 一 f 查询a c c e s s 数据库中 版本信息 读墩版本号为v 1 ! ! i 一 询服务器s q ls e r v e r 数据 库当前最新版本为v n 台询服务器对应表 格q ,记录信息 ! 将该记录添加到客 户机数据库 是_ h 一1 ! i 2一 读取服务器d b c h a n g e 衷中 条v i 的记录
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论