• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

从ODBC到LINQ:看数据访问技术的发展

发布: 2008-2-22 12:27 | 作者: 唐俊 | 来源: 希赛网 | 查看: 93次 | 进入软件测试论坛讨论

领测软件测试网

 

最著名最典型的层次数据库系统是IBM公司的IMS(Information Management System),这是IBM公司研制的最早的大型数据库系统程序产品。从60年代末产生起,如今已经发展到IMSV6,提供群集、N路数据共享、消息队列共享等先进特性的支持。这个具有30年历史的数据库产品在如今的WWW应用连接、商务智能应用中扮演着新的角色。

    关系数据库模型

    无论是CODASYL的网络数据模型,还是IBM的IMS,都是显著的进步因为它们标志着范型改变,那就是将数据从应用程序代码中分离出来,同时它们也布置了一个数据库应该具有的框架。但是,它们都具有令人讨厌的缺陷:需要程序员搜索数据集以寻找他们想要的数据,因此,有时也称它们为导航数据库。

    1970年,IBM的英国计算机科学家Edgar Codd发布了一篇重要的论文,题目叫做“大型共享数据仓库中数据的关系模型”,文中作者介绍了关系模型。在这个模型中,Codd强调了将原始的、一般的数据与机器特有的数据类型分离的重要性,并披露了一种简单的高层次查询语言用于访问该数据。这种思想上的转变使得开发人员可以对整个数据集进行同时操作,而不再是一次一行地进行操作。

    在此后的几十年里,数据库继续演化着。现代数据库比如Oracle、Microsoft SQL server、MySQL以及LDAP都受到早期那几个数据库很大的影响。随着时间的推移,它们的性能都有很大改进,可以处理很大的事务量,可以处理大量的数据,可提供高度的可伸缩性和可靠性

    通用数据访问模型

    ODBC

    ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。

    一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access , MYSQL还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。

    ODBC是一个巨大的飞跃,它帮助极大地简化了数据库驱动的应用程序的开发。但是它仍然有一些不足。首先,它只能够支持关系型数据。如果你需要访问层次数据源,比如LDAP,或者半结构化数据,ODBC就无能为力了。其次,它只能处理SQL语句,而且结果只能用行和列的形式来描述。总体而言,考虑到之前的境况,ODBC是一个巨大的成功。

    OLEDB

    对象链接和嵌入数据库OLE-DB是数据提供程序的又一大进步,而且今天还在广泛使用这种技术。对于OLE-DB,Microsoft应用了开发ODBC过程中学到的知识来提供一个更好的数据访问模型。OLE-DB标志了Microsoft向基于COM的API的转移这种转移,使得它很容易被大多数编程语言使用,同时也标志了向32位操作系统的迁移,Windows 95的发布标志着这一事实。

    正如其他代码一样,经过几次的修订,ODBC变得臃肿不堪。OLE-DB的API则灵巧得多,它提供了比ODBC更高效的数据访问。很奇怪的是,唯一以其最初发布形式出现的就是ODBC数据提供程序。它只是ODBC提供程序的包装器,没有提供任何性能改进。关键在于要使得开发人员适应新的API,同时不影响他们访问现存的通过ODBC来访问的数据库系统。之后,可以编写更高效的数据访问程序来直接访问数据库,比如MS SQL,而不再需要通过ODBC。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

42/4<1234>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网