CRDS。
1996年,达梦人研制了我国第一个具有自主版权的、商品化的分布式数据库管理系统DM2。1996年8月,在北京举行的DM2国家级鉴定会上,IT界四位院士张效祥、杨芙清、汪成为、李国杰及数据库权威人士高度评价:“DM2在技术上和总体上处于九十年代国际先进水平”、“DM2在混合数据模型、扩展的多媒体和GIS数据类型等技术上有所创新”、“在并发控制、共享更新、故障恢复、索引技术等方面具有特色”、“DM2经过大数据量长时间的考核运行,证明稳定性可靠性达到了相当的程度。”DM2在国家科委举行的两次全国性国产数据库管理系统的公开招标评测中都取得第一名的优异成绩,成为国家863支持的国产数据库目标产品开发单位。DM2是中国软件行业协会“99年度推荐优秀软件产品”。1999年,DM2被科技部等部门批准为“国家重点新产品”。
2000年,达梦公司推出863重大项目目标产品——达梦数据库管理系统DM3,在安全技术、跨平台分布式技术、Java和XML技术、智能报表、标准接口等诸多方面,又有重大突破。DM3在众多行业尤其是Internet领域(如网站、电子支付、电子政务)和安全应用领域迅速得到应用。2001年,DM3通过信息产业部技术鉴定。鉴定委员会一致认为“DM3设计思想新颖,功能丰富,界面友好,在数据模型、数据类型、安全技术等方面具有创新。DM3经过了严格规范的测试和多种大型应用的实际考验,已达到了较高的实用化、产品化和商品化程度。DM3是我国自主产权的安全数据库管理系统,在总体设计和技术上处于国内领先地位,达到了国际先进水平。在军用和国民经济各领域均有广泛的应用前景。”2001年3月,DM3作为唯一的国产数据库管理系统参加了863计划十五周年成就展,受到中央领导的重视。2003年DM3获湖北省科技进步一等奖。
2004年1月,达梦公司正式推出国家863数据库重大专项项目产品——大型通用数据库管理系统DM4。DM4是达梦公司的新一代高性能数据库产品,在DM3的基础上各方面又有质的突破。DM4采用新的体系结构,重新设计了数据存储、并发控制、事务处理、查询优化和执行等核心模块。和DM3相比,DM4特别加强了对SMP系统的支持,以更好地利用多CPU系统的处理能力,多用户并发处理更平稳、流畅。
达梦公司目前的主导产品是具有自主版权的“达梦数据库管理系统DM4”。与基于开源代码进行改造形成的其它同类产品明显不同的是,DM4是达梦人自力更生,经多年技术积累和创新,全部从底层做起,完全自主开发而成的国产系统级软件,达梦公司拥有全部源代码和完全自主版权。这从根本上保证了系统的安全性,并有利于与其它应用系统集成,可以根据具体需求定制和提供及时有效的服务。目前DM4已广泛应用在国民经济的各个领域。DM4除了具备一般DBMS所应具有的基本功能外,特别具有以下特性:
1. 通用性
2. 高性能
3. 高安全性
4. 高可靠性
5. 易管理性
6. 具备全文检索功能
7. 对XML的支持
8. 对多媒体、空间数据的支持
9. 对存储模块的支持
10. 对WEB应用的支持
以下对这些特性作具体介绍。
1 通用性
DM4是大型通用数据库管理系统,其通用性主要表现在三个方面:
服务器和接口的开发都依据国际通用标准进行
跨平台支持
支持对称处理机系统
1.1 服务器和接口的开发都依据国际通用标准进行
支持SQL92标准的所有数据类型;
SQL92入门级标准符合率达到100%,过渡级也达到100%;
提供了符合ODBC 3.0标准的ODBC接口驱动程序、符合JDBC 3.0标准的JDBC接口驱动程序和符合OLE DB 2.7标准的OLE DB接口驱动程序。
此外,为了提高DM4的通用性,以及便于应用系统的移植,DM4还部分支持了市场上流行的国际大型通用DBMS的一些常用数据类型、函数和语法等特性。
1.2 跨平台支持
DM4支持WINDOWS 2000、LINUX和SOLARIS等主流操作系统。DM4管理工具、应用开发工具集绝大多数由Java编写,从而可以跨平台工作。即同一程序无需重新编译,将其执行码拷贝到任一种操作系统平台上,都能直接运行。这也保证了它们在各种操作系统平台上都有统一的界面风格。
各种操作系统平台上的DM4系统具有相同的内核,功能相同。因此,任一种操作系统上的DM4客户端工具都可访问另一种操作系统上的DM4服务器,甚至可将Windows下的数据库文件拷贝到Linux下使用。
1.3 DM4支持对称处理机系统
由于DM4核心系统的多线程机制利用了操作系统的线程调度,因此系统的工作线程在单CPU和多CPU机器上,都能很好地并发或并行操作。对于多CPU的系统,只要采用的操作系统支持多CPU机制,DM4就能很好地实现多CPU协同工作。
2 高性能
DM4主要通过以下机制实现了系统的高性能:
·可配置的多工作线程处理功能
高效的并发控制机制
有效的查询优化策略
2.1 可配置的多工作线程处理功能
DM4允许用户配置工作线程的数目。工作线程是整个系统所公用的资源,不专门为某个特定的连接服务。如果某个数据库操作由于无法取得相应的资源(如锁)而不能继续,将暂停当前的数据库事务,相应的工作线程会立即执行其它的数据库请求服务。所以,连接数和任务请求数的增加对系统性能的影响是线性的。系统的工作线程在单CPU和多CPU机器上,都能很好地并发或并行操作。系统自动协调工作线程对内存、数据页等物理资源的共享。
2.2 高效的并发控制机制
DM4提供了数据库的行级和表级的资源封锁机制,大大提高了事务并发访问的数目。DM4通过以下几点确保并发控制的高效:用HASH表管理实现锁管理,能够在系统成千上万的锁中迅速地找到所需的锁。当系统检测到有锁升级的可能(数据操纵达到一定数据量),则会升级锁。升级后不再进行行级封锁,这样对于同一对象的大数据量数据操纵将大大减少系统开销,提高系统效率。利用回滚段保存记录修改前的数据,实现数据的读一致性。另外,在DM4中,当对数据页进行操作时,系统会自动对数据页采用合适的封锁机制。同时,DM4也提供了两个函数SET_TABLE_OPTION、SET_INDEX_OPTION供用户自行定义锁定类型,以增强系统并发度,提高系统效率。函数SET_TABLE_OPTION()用于禁用指定表上的页级锁、行级锁或同时禁用二者,这一设置对该表上的所有索引都生效。函数SET_INDEX_OPTION()则用于禁用某一索引上的页级锁、行级锁或同时禁用二者。
2.3 有效的查询优化策略
DM4采用有效的基于代价的查询优化策略,其查询优化子系统能计算最优的查询路径以保证查询的执行效率。查询优化主要通过以下三个步骤进行:
SQL转换:DM4首先对用户输入的查询语句进行一系列复杂的转换,其结果为一个语义上等价但处理起来更为有效的SQL语句。
统计信息与代价估计:DM4为数据库对象保存了一系列的统计信息,代价估计模块基于系统的I/O、CPU和内存等资源情况和数据库对象的统计信息估算每个计划的代价。
执行计划选择:执行计划描述了查询语句的每一个处理步骤,如以什么算法执行连接,是否使用索引等。优化器考虑可能的执行计划,并选择代价最小的交付执行。
另外,用户可通过DM4的客户端工具查看查询语句的执行计划。
3 高安全性
DM4提供了安全的应用系统开发平台,实现了B1级的安全功能,安全级别高于所有进口的同类产品。DM4关键的安全功能主要包括:
用户口令管理、基于角色的访问控制
“三权分立”的安全机制
自主存取控制与强制存取控制相结合
3.1 用户口令管理
DM4提供了系统配置项供系统管理员根据应用决定是否需要检查系统用户口令的合法性,当需要检查时,系统管理员还可配置系统的口令复杂度。系统管理员还可为每个用户的口令指定有效期限,口令过期后用户被封锁,需要管理员进行解封,否则无法登陆系统。
3.2 基于角色的访问控制
DM4实现了SQL3标准中基于角色的访问控制的要求。实现了创建与删除角色、角色与用户的关联和分离、角色的权限管理等一套功能。应用可以通过对角色的管理方便地实现用户管理。
3.3 “三权分立”的安全机制
DM4实现了“三权分立”的安全机制,把系统管理员分为数据库管理员(DBA) ,数据库安全管理员(SSO) ,数据库审计员(AUDITOR)三类。DBA负责系统维护与日常管理和自主存取控制,SSO负责强制存取控制,AUDITOR负责系统的审计。这种管理体制真正做到三权分立,各行其责,相互制约,从而更为可靠地保证数据库的安全性。
3.4 自主存取控制与强制存取控制相结合
DM4中自主存取控制是必须的,数据库主体(用户、角色)只有获得了某对象的存取权限后,才能存取该对象。强制存取控制是可选的,这是从系统的灵活性和效率方面考虑的。当选择强制存取控制时,SSO为系统的每个主体和对象定义密级,只有当主体的安全级和对象的安全级相匹配,且具有该对象的存取权限时,才能存取此对象。
4 高可靠性
DM4的高可靠性可以避免或降低系统的意外故障对用户带来的损失,主要包括两个方面的功能:故障恢复措施、双机热备份
4.1 故障恢复措施
DM4的故障恢复措施包括数据库备份和恢复。DM4提供了备份与恢复工具为DM4数据库系统管理员用来对DM4数据库进行物理备份和恢复,利用该工具系统管理员能够对DM4数据库进行完全备份和增量备份,并且能够通过备份文件对DM4数据库进行完全恢复,同时还能够恢复DM4数据库到指定的时间。DM4系统支持日志的产生和使用。当系统异常中止,如掉电后,系统能利用日志自动进行恢复,并回滚尚未提交的活动事务。DM4系统采用物理操作和逻辑操作相结合的日志记录格式,以减少日志所占的空间大小,加快系统处理速度。DM4支持循环日志、多重日志和归档日志。
4.2 双机热备份
DM4还为对系统可靠性有特别要求或系统必须不中断运行的应用提供了双机热备份解决方案。用户通过使用两台DM服务器、一个磁盘阵列和一套DM双机热备份软件组成双机热备份系统。正常情况下,两台DM服务器一台为工作机,另一台为备份机,两台服务器上都要安装DM双机热备份软件,以实现备份机与工作机之间互相监视运行情况。当工作机出现异常,不能支持信息系统运营时,备份机主动接管工作机的工作,从而保证系统能够不间断的运行。
5 易管理性
DM4的管理比较简单,因为DM4将尽可能多的配置、管理、优化工作交由系统自动完成。当然,DM4也保留了少量关键的配置项供用户调节。这种策略明显提高了DM4的易用性。用过其它DBMS的用户,更能体会到DM4易学易用易管理的特点。 DM4还提供了一系列基于Java技术的多平台风格统一的全图形化客户端工具。功能强大,能满足用户各种应用管理的需求,且界面友好、操作方便。下面介绍部分客户端工具。
5.1简便的数据库系统安装和配置
(1) 统一的界面,熟悉的环境
DM4提供一个基于JAVA的安装程序,利用Java的跨平台性,它可以在Windows、Unix、Linux、Solaris等平台上运行,且具有统一界面。这样,无论在什么平台上,它都可以为管理员提供一个简洁的安装界面,熟悉、统一的安装环境。
(2) 一气呵成
DM4的安装程序把软件安装、数据库初始化和配置结合在一起,一气呵成。
(3) 配置灵活
DM4为常见应用作了缺省优化配置,用户可以一路“确认”下来,完成安装,也可自行调整。在安装过程中,安装程序提供一个交互界面来初始化系统库,通过DM4提供的控制台工具,管理员可以方便的根据实际应用配置DM4数据库的各项参数,从而获得最大的应用性能。详尽的提示信息减少了用户在安装过程中可能出现的问题。通过降低安装的复杂性,简化配置操作,数据库管理员可提高工作效率,普通技术人员也很容易成为数据库系统管理员。
5.2 集成的系统管理工具JManager
DM4系统管理工具JManager是管理DM4数据库系统的图形化工具,类似于Oracle和MS SQL Server的Enterprise Manager。JManager可以帮助系统管理员更直观、更方便地管理和维护DM4数据库,普通用户也可以通过JMananger完成对数据库对象的操作。JManager的管理功能完备,能对DM4数据库进行较为全面的管理,在不借助其他工具的情况下,能满足系统管理员和用户的常规要求。
5.3方便实用的SQL语句调试工具
SQL是管理员与数据库管理系统进行交流的最直接、最高效的语言,它为数据库管理员提供了更专业的交流方式。DM4提供了交互式SQL工具JISQL,作为数据库管理员和开发人员与数据库沟通的桥梁。JISQL是一个用纯Java语言编写的基于JDBC的交互式SQL程序,该程序可访问DM4,也可访问Oracle、MS SQL Server等JDBC或ODBC数据源(访问其它数据源需配备相应驱动程序,其功能也有所限制),支持查询结果集的表格显示。程序可运行于各种操作系统平台(Windows、Linux、Solaris等)。通过JISQL,开发人员可以方便地执行各种SQL语句。JISQL特别提供了对SQL语句、存储过程、存储函数和触发器等进行调试的功能,能成批执行或单步执行SQL语句,能定位错误语句等等。此外,关键字彩色显示、详细准确的提示信息等都有助于使开发人员的工作效率成倍提高。通过JManager内置的JISQL面板还能实现图形化地修改数据和直接输入/输出多媒体数据,让管理员的工作更加方便轻松。
5.4 数据迁移工具JDTS
DM4数据迁移工具JDTS可跨平台实现数据库之间的数据和结构互导,例如DM与ORACLE、DB2、SQL Server之间等,也可复制从SQL查询中获得的数据,还可实现数据库与文本文件之间的数据或者结构互导。为了实现与ORACLE、DB2、SQL Server等多种主流数据库管理系统的数据交换,DM4提供跨平台的数据迁移工具JDTS(Java版数据转换服务)。它是一个用纯Java编写的基于JDBC/ODBC的数据迁移工具, 可跨平台实现数据库之间的数据和结构互导,也可复制从SQL查询中获得的数据,还可实现数据库与文本文件之间的数据或者结构互导。在迁移的过程中它最大限度地保留了源数据的原始信息(包括源数据的类型、精度、默认值、主键和外键约束等),还支持迁移过程中的数据类型自动转换,关于转换方面的细节问题可由数据迁移工具自动来为您解决,数据库管理员所要做的仅仅是指定需要进行数据迁移的两个数据库的连接参数和所迁移的数据。DM4良好的数据迁移解决方案为系统移植工作减少了很大一部分工作量,免去系统管理员和开发人员的后顾之忧,能够将更多的精力投入到应用程序的移植上面来。
5.5 性能监控工具JMonitor
DM4性能监控工具JMonitor是DM4系统管理员用来监视服务器的活动和性能情况,并对系统参数进行调整的客户端工具。它允许系统管理员在本机或远程监控服务器的运行状况,并根据系统情况对系统参数进行调整,以提高系统效率。
6 具备全文检索功能
DM4实现了真正的全文检索,根据已有词库建立全文索引,文本查询完全在索引上进行。词库(包括中英文)由单独的软件进行维护和更新。全文检索的功能主要分为四个部分:全文索引的定义和删除、全文索引的填充、全文检索、词库维护。用户可以在指定的表-文本列上建立和删除全文索引,建立全文索引后索引中并无内容。只有当用户进行全文索引的填充时,系统才将文本列的内容根据词库进行分析,并填充索引,用户必须根据文本列的更新情况定期或不定期进行全文索引的填充。用户可以在建立了全文索引的列上进行Contains谓词的全文检索。DM4的Contains谓词检索实现了以下功能:
支持精确字、词、短语及一段文字的查询,和AND | AND NOT | OR的使用。
支持对每个精确词(单字节语言中没有空格或标点符号的一个或多个字符)或短语(单字节语言中由空格和可选的标点符号分隔的一个或多个连续的词)的匹配。
对于短语或一段文字的查询,根据词库,单个查找串被分解为若干个关键词,忽略词库中没有的词和标点符号,在索引上进行(关键词AND关键词)匹配查找。因而,不一定是精确查询。
7 对XML的支持
DM4对XML的支持是通过DM4 XML-QueryService实现的,它包括两个功能: 解析功能、数据发布功能
7.1 解析功能
DM4 XML-QueryService的解析功能既可以保存纯XML文档,又可以将关系数据库中的XML文档显示出来,它的实现是以中间件的架构支撑。
在存储XML文档的时候,它使用的是基于事件的SAX(Simple API For XML)文档解析标准,它以序列的形式处理XML文档,解析所得到的数据将通过JDBC接口存入DM4数据库。它支持面向XML文档的基于路径的查询语言XPath 1.0标准,这种查询是建立在XML文档模型基础上,用XPath表达式直接对XML文档进行查询,并且查询结果也用XML文档的形式显示出来。
7.2 数据发布功能
DM4 XML-QueryService的数据发布功能主要是根据基于Web的数据查询和数据发布为目标设计实现。整个DM4XML-QueryService既可以作为Servlet单独发布,也可以集成到Web发布框架Cocoon2中。用户通过在IE浏览器中输入SQL语句或输入事先定义的查询模板名,返回结果以表格的形式显示在浏览器中。在使用数据迁移工具JDTS的时候,可以选择将关系表保存为XML格式的文档或者将XML格式的文档转换为关系表。
DM4 XML-QueryService支持最新的Web开发框架——Cocoon,提供了Web方式的数据集成和发布功能,这是由DM4 XML-QueryService中的数据发布组件集成Cocoon 2来实现。由于它们集成后是作为一个标准的Generator组件(组件流水线中的一类)发布的,因而开发者除了可利用DM4 XML-QueryService中的数据发布组件中的可重载查询的功能之外还可以利用Cocoon 2强大的数据发布能力和XSP技术,也就特别适宜于Internet上的应用。
8 对多媒体、空间数据的支持
8.1对多媒体数据的支持
DM4支持TEXT、LONGVARCHAR、IMAGE、LONGVARBINARY、BLOB和CLOB六种多媒体数据类型。用户可以使用TEXT、LONGVARCHAR和CLOB三种数据类型来存储最大长度达2G-1字节的变长字符串,其中CLOB类型还可指定长度;可以使用IMAGE、LONGBINARY和BLOB三种数据类型来存储最大长度达2G-1字节的大二进制对象(如图像、Word文档等),其中BLOB类型还可指定长度。系统对这六种数据类型的存储都支持行内存储和行外存储两种方式,提高了系统效率。
8.2对空间数据的支持
DM4为在数据库管理系统内管理空间数据提供了自己的解决方案,该方案通过对数据库管理系统的扩展和集成向用户提供访问和操纵空间数据的功能。系统采用组件化的方式进行设计,所有用户通过扩展的查询语言SQL和接口函数访问数据库;能够处理复杂的空间数据,具有可扩展性;可以与现有的DM4 进行集成,具有可集成性,利用DM4本身的特性获得对空间数据的完整性、安全性和多用户共享的特征,从而在很大程度上简化应用的开发。系统提供二次开发的功能。此外,对于第三方的GIS软件,通过DM4自身提供的标准接口,可以实现与DM4的捆绑应用而无需改变终端用户的使用方式。
9 对存储模块的支持
DM4系统允许用户使用DM4提供的DMPL/SQL过程语言创建存储过程或存储函数,这些过程或函数像普通的过程或函数一样,有输入、输出参数和返回值。它们与表和视图等数据库对象一样被存储在数据库中,供用户随时调用。存储过程和存储函数运行在服务器端,在功能上相当于客户端的一段SQL批处理程序,但是在许多方面有着后者无法比拟的优点,它为用户提供了一种高效率的编程手段,成为现代数据库系统的重要特征。通常,我们将存储过程和存储函数统称为存储模块。DM4的存储模块机制是一种技术,而不是一种独立的工具,它是和服务器紧密结合在一起的。可以认为这种技术是执行DMPL/SQL语言的一种机器,它可以接受任何有效的存储模块,按照语言本身所规定的语义执行,并将结果返回给客户。
DM4的存储模块机制具有如下优点:提供更高的生产率、便于维护、提供更好的性能
9.1 提供更高的生产率
在设计应用时,围绕存储过程/函数设计应用,可以避免重复编码,提高生产率;在自顶向下设计应用时,不必关心实现的细节;编程方便。
9.2 便于维护
用户的存储模块在数据库集中存放,用户可以随时查询、删除、修改它们,而应用程序可以不作任何修改,或只做少量调整。
9.3 提供更好的性能
存储模块在创建时被编译成伪码序列,在运行时不需要重新进行编译和优化处理,它具有更快的执行速度,可以同时被多个用户调用,并能够减少操作错误;存储模块在执行时数据对用户是不可见的,提高了数据库的安全性;
存储模块具有更高的可靠性;存储模块是一种高效访问数据库的机制,使用存储模块可减少应用对DM4的调用,降低了系统资源浪费,显著提高性能,尤其是在网络上与DM4通讯的应用更显著。
10 对Web应用的支持
DM4提供ODBC驱动程序和OLE DB Provider,支持ADO、.net应用。支持在ASP动态网页中访问DM4。DM4提供符合JDBC CompliantTM规范的第四类纯Java的JDBC驱动程序,可以在以下情形中通过JDBC访问DM4:在VJ、JBuilder等应用开发工具中;在JavaBeans组件、EJB组件中;在JSP、Applet、Servlet等基于Java的动态网页中。 以上特性使得DM4适应Web应用,用户只用浏览器,就可以访问DM4数据库。DM4支持Java 数据对象JDO(Java Data Objects ),JDO为对象持久性提供了第一个标准化的、完全面向对象的方法。JDO简化了用 Java 语言进行数据库编程的复杂性,而且对原始的 Java 源代码的打乱程度最小。
此外,DM4提供XML开发包,将Java技术、SQL数据库技术、XML技术紧密结合,为电子商务、电子政务应用提供方便。在Internet上访问DM4,可以简单到只需在Web浏览器中输入一个URL地址即可。