数据库管理系统的应用层|数据库管理系统:中国还在寻找“正确打开方式” |

2019-01-28 17:21:10 其他数据库 217 views 其他数据库
[导读]:本文(《数据库管理系统:中国还在寻找“正确打开方式” |》)由来自安国的客户投稿,并经由本站(数据库吧)结合主题:数据库管理系统的应用层,收集整理了众多资料而成。主要记述了数据库管理系统,大数据,数据库,应用层等方面的信息。相信从本文您一定可以获得自己所需要的!

科技日报记者  高 博

有一天你去银行取钱,惊喜地发现:由于系统故障,你的账户显示着马云的数据……

这种事不可能发生,因为数据库管理系统非常可靠。网上买火车票,或者将照片上传云端,你都离不开它。

而商用数据库管理系统的丰厚利润,一直被甲骨文为首的几家美国公司瓜分,中国产品望洋兴叹。

速度和可靠,兼顾是难题

查询银行账户时,我们不知道数字来自哪台计算机,哪块硬盘。有数据库管理系统(DBMS)替我们干活。

图片

DBMS就像图书管理员:找到书架,存书,取书……说起来容易,但当图书馆特别大,而且书会拆开来放入相隔遥远的架子时,管理起来就很麻烦了。

在数据库开发与实施方面有丰富经验的IBM分析领域架构师罗曦光举了一个例子——用户修改数据时,相关存储区域会被锁住,其他用户只能排队等,如果DBMS存储位置不合理,就会耽误许多时间。数据操作的理想状况,如同几十只手弹奏一架钢琴,各弹各的,互不影响。

“数据库管理系统,尤其是关系型数据库管理系统(RDBMS)的方法论,教科书上写得很明白;其功能和常见的图书管理系统没什么差别。但当数据量非常大,到了TB和PB级别,DBMS性能不下降就是一大挑战。”罗曦光说。

比如一个普通的大型网站,每秒钟要处理十万个查询请求,数据库得同时执行几十个查询任务,而且响应时间极短。

“网络用户发送请求,期望一眨眼就得到结果。如果DBMS做得不好,响应时间长到10秒或20秒,用户会丧失耐心,数据库还可能经常挂掉。”罗曦光说,要永远不出故障,达到高可用性,需要很多专门技术。

目前全世界最流行的两种DBMS是Oracle和MySQL,都是甲骨文公司旗下的产品。竞争者还有IBM公司的DB2、Informix,微软公司的SQLserver以及开源的MariaDB等等。甲骨文、IBM、微软和Teradata几家美国公司,占了大部分市场份额。

国产替代难,输在稳定性

DBMS国货也有市场份额,但只是个零头。银行、电信、电力等要求极端稳妥的企业,不会考虑国货。20年前就有人呼吁国货替代,但一线技术人员并不情愿。

“先发优势、完善的售后技术支持和高额的迁移成本,是企业难以迁移到新系统的原因。”罗曦光说,国内一家电商平台为了从Oracle迁徙到别的系统,最多曾用上百人的团队花了十几个月,成本不菲。

图片

罗曦光认为,如今的开源DBMS做得很好而且免费,但银行和传统龙头企业出于谨慎,对于将核心系统迁移到开源系统仍会持谨慎态度。

稳定压倒一切。DBMS行业观察家晓军在《国产数据库发展现状分析》一文中指出,国内DBMS企业大多源自1990年代的高校,期望实现国产替代。但多年来,“产品的稳定性一直上不去,也不敢做有挑战性的性能测试。所以,稳定性、性能都无法让市场信服。结果就是:稍微重要一点的系统根本没人敢用。”

另外,晓军说,当年国货往往模仿Oracle,追求大而全,而技术创新不足、没有特点。相比之下,1990年代的美国小厂商极富创新力,开辟了一些全新的技术方向,在与甲骨文等巨头的竞争中成功活了下来。

“这个年代,开源DBMS的源代码可以随便下载,国内应该不会有新的入场者再去做传统的DBMS了。”罗曦光说。

浩瀚代码的背后,是浩瀚人才

“Oracle的数据库软件……代码量堪称浩瀚。”晓军说,“Oracle最有特色的地方就是功能非常繁多,语句极端丰富,即便大部分都不常用。”

晓军说,小公司在这一点上试图比肩甲骨文,犹如“乞丐与龙王爷比富”。

晓军举例说:“Informix的主要模块的源代码就有2000多万行,Informix当年在美国的核心研发队伍就有超过200人,加上测试和周边团队,不下500人。”

图片

而国内付费使用IBM公司的Informix源代码的几家企业,相关队伍都不超过40人,晓军说,要快速追赶世界先进水平,阅读代码的团队规模应该超过写代码的团队。因此国内“面对十年前的巨量代码一筹莫展,要弄通又得花很多年。”

而罗曦光认为,尽管国内公司没有可以比肩甲骨文的,但“在参与开源软件的意义上,中国不是没有入场的资格。这是一个技术充分交流与共享的时代。”

罗曦光说,目前开源的RDBMS(如MariaDB)就有国内软件开发人员大力支持,与大数据平台紧密关联的NoSQL数据库(如HBase)的开发社区里也活跃着中国开发人员的身影。以阿里云为代表的国内云服务的底层,也包含借鉴开源系统打造的数据库管理系统。

“今时今日,一个全新的公司来做项目,可能不会选择国外厂商付费的DBMS。比如互联网的初创企业,大概率会选择国内厂商的基于云服务的包含DBMS的整体方案。”罗曦光说。

相关问答

问:什么是集中安全审计?具体在主机层面,网络层面,应用层面,数据库层面应如何实现?

答:数据库的安全性是指保护数据库以防止非法使用所造成的数据泄密、更改或破坏  安全性控制的方法  安全性控制是指要尽可能地杜绝任何形式的数据库非法访问。常用的安全措施有用户标识和鉴别、用户存取权限控制、定义视图、数据加密、安全审计以及事务管理和故障恢复等几类


问:如何在应用层和数据库之间建设数据接口

答:【答案】A、B、D【答案解析】数据库管理系统具有以下特点:(1)采用复杂的数据模型表示数据结构,数据冗余小,易扩充,实现了数据共享;(2)具有较高的数据和程序独立性,数据库的独立性有物理独立性和逻辑独立性;(3)数据库系统为用户提供了方便的用户接口;(4)数据库系统提供4个方面的数据控制功能,分别是并发控制、恢复、完整性和安全性,数据库中各个应用程序所使用的数据由数据库系统统一规定,按照一定的数据模型组织和建立,由系统统一管理和集中控制;(5)增加了系统的灵活性。


问:操作系统,应用层等各用什么测试

答:测试环境(网络环境,windows环境等)
2.数据库管理
3.编程技巧(java编程设计,脚本语言,设计工具,xml编程)
4.软件测试技术(测试理论,方法,流程,文档写作,测试工具,自动测试)
5.测试技术实践
软件测试(英语:software testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。


问:非数据库应用层的复制技术为什么会面临数据一致性问题

答:要做到后者,那么需要在应用层进行cleanup,然后做快照...相关问题关于NoSQL 数据库数据一致性的问题? 1 个回答...哪些数据存在数据库里?以什么形式存储


问:我现在想用c#搭建一个三层架构,一个数据访问层:BookShop.dal,一个业务逻辑层:BookShop.bll,一个表示层:

答:应用层访问数据层,不应该直接访问数据库,不然你设个数据层就没有意义了。应该是表现层――>应用层――>数据层――>数据库的


发表评论

许月明

去csdn下载个.net的petshop看看吧。。。

2019-02-23 18:27:40
漫漫路......

多看人家写的源码就好了,只要能看懂,就会发现三层架构是最简单最好写的,像微软的petshop源码,都很好的。。

2019-01-30 08:06:35
小青椒

是将 增删改查写在DAL 中 BLL中封装业务对象和数据对象的转换、检查之类的,然后在bll里面调用dal,最后在UI层 只调用BLL的方法 不再关心数据库

2019-01-29 10:51:20

发表评论:

PHONE