数据源与数据库有什么区别

数据源与数据库有什么区别,第1张

数据库是一个数据的工厂,可以理解成产品的生产厂家,如果你从厂家租用东西,厂家就马上找人开工,启动设备,等生产好之后,发货给你。当然整个生产过程需要比较长的时间。数据源,是一个产品代理仓库,代理那里原来就有一些生产好的产品了,所以你从代理获取产品,可以马上就得到。当然代理的仓库也是有大小限制的。

ODS是一个面向主题的、集成的、可变的、当前的细节数据集合,用于支持企业对于即时性的、 *** 作性的、集成的全体信息的需求。常常被作为数据仓库的过渡,也是数据仓库项目的可选项之一。根据Bill.Inmon的定义,“数据仓库是面向主题的数据仓库是面向主题的数据仓库是面向主题的数据仓库是面向主题的、集成的集成的集成的集成的、稳定的稳定的稳定的稳定的、、随时间变化的随时间变化的随时间变化的随时间变化的,主要用于决策支持的数据库系统”在Kimball的的的的<<数据仓库生命周期工具集数据仓库生命周期工具集数据仓库生命周期工具集数据仓库生命周期工具集The Data WareHouse Liftcycle Toolkit,他是这样定义的:1. 是 *** 作型系统中的集成,用于当前,历史以及其它细节查询(业务系统的一部分)2. 为决策支持提供当前细节数据(数据仓库的一部分)因此 *** 作数据存储(ODS) 是用于支持企业日常的全局应用的数据集合,ODS的数据具有面向主题、集成的、可变的和数据是当前的或是接近当前的4个基本特征。同样也可以看出ODS是介于DB和DW 之间的一种数据存储技术,和原来面向应用的分散的DB相比,ODS中的数据组织方式和数据仓库(DW)一样也是面向主题的和集成的,所以对进入ODS的数 据也象进入数据仓库的数据一样进行集成处理。另外ODS只是存放当前或接近当前的数据,如果需要的话还可以对ODS中的数据进行增、删和更新等 *** 作,虽然DW中的数据也是面向主题和集成的,但这些数据一般不进行修改,所以ODS和DW的区别主要体现数据的可变性、当前性、稳定性、汇总度上。由于ODS仍然存储在普通的关系数据库中,出于性能、存储和备份恢复等数据库的角度以及对源数据库的性能影响角度,个人不建议ODS保存相当长周期的数据,同样ODS中的数据也尽量不做转换,而是原封不动地与业务数据库保持一致。即ODS只是业务数据库的一个备份或者映像,目的是为了使数据仓库的处理和决策支持要求与OLTP系统相隔离,减少决策支持要求对OLTP系统的影响。一般在带有ODS的系统体系结构中的ODS都具备如下几都具备如下几个作用:1) 在业务系统和数据仓库之间形成一个隔离层。一般的数据仓库应用系统都具有非常复杂的数据来源,这些数据存放在不同的地理位置、不同的数据库、不同的应用之中,从这些业务系统对数据进行抽取并不是一件 容易的事。因此,ODS用于存放从业务系统直接抽取出来的数据,这些数据从数据结构、数据之间的逻辑关系上都与业务系统基本保持一致,因此在抽取过程中极 大降低了数据转化的复杂性,而主要关注数据抽取的接口、数据量大小、抽取方式等方面的问题。2) 转移一部分业务系统细节查询的功能在数据仓库建立之前,大量的报表、分析是由业务系统直接支持的,在一些比较复杂的报表生成过程中,对业务系统的运行产生相当大的压力。ODS的数据从粒度、 组织方式等各个方面都保持了与业务系统的一致,那么原来由业务系统产生的报表、细节数据的查询自然能够从ODS中进行,从而降低业务系统的查询压力。3) 完成数据仓库中不能完成的一些功能。一般来说,带有ODS的数据仓库体系结构中,DW层所存储的数据都是进行汇总过的数据和运营指标,并不存储每笔交易产生的细节数据,但是在某些特殊的应用中,可能需要 对交易细节数据进行查询,这时就需要把细节数据查询的功能转移到ODS来完成,而且ODS的数据模型按照面向主题的方式进行存储,可以方便地支持多维分析 等查询功能。即数据仓库从宏观角度满足企业的决策支持要求,而ODS层则从微观角度反映细节交易数据或者低粒度的数据查询要求。在一个没有ODS层的数据仓库应用系统体系结构中,数据仓库中存储的数据粒度是根据需要而确定的,但一般来说,最为细节的业务数据也是需要保留的,实际上 也就相当于ODS,但与ODS所不同的是,这时的细节数据不是“当前、不断变化的”数据,而是“历史的,不再变化的”数据。这样的数据仓库的存储压力和性能压力都是比较大的,因此对数据仓库的物理设计和逻辑设计提出了更高的要求。

ODBC和ADO的区别:

ODBC(Open Database Connection,开放式数据互连)是访问数据库的一个统一接口标准,它允许开发人员使用ODBC API(应用程序接口)来访问多种不同的数据源,并执行数据 *** 作。

当使用应用程序时,应用程序首先通过使用ODBC API与驱动管理器进行通信,ODBC API由一组ODBC函数调用组成,通过API调用ODBC函数提交SQL请求,然后,驱动管理器通过分析ODBC函数并判断数据源的类型,并配置正确的 驱动器,并把ODBC函数调用传递给驱动器,最后,驱动器处理ODBC函数调用,把SQL请求发送给数据源,数据源执行相应 *** 作后,驱动器返回执行结果, 管理器再把执行结果返回给应用程序。

微软公司的ADO (ActiveX Data Objects) 是一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLE DB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。访问数据库的时候,关于SQL的知识不是必要的,但是特定数据库支持的SQL命令仍可以通过ADO中的命令对象来执行。

ADO包含一些顶层的对象:

连接,代表到数据库的连接

记录集,代表数据库记录的一个集合

命令,代表一个SQL命令

记录,代表数据的一个集合

流,代表数据的顺序集合

错误,代表数据库访问中产生的意外

字段,代表一个数据库字段

参数,代表一个SQL参数

属性,保存对象的信息

ADO组件的使用需要利用支持COM的高级语言,例如ASP中的VBScript或者Visual Basic,甚至Delphi,微软的竞争对手Borland的一个产品,现在也支持使用ADO来访问数据库。

ODBC通常用来访问不具备OLE-DB特性的非Microsoft数据库中的数据;16位的ODBC驱动程序工作起来可能非常缓慢。

ODBC素以最慢的数据访问方法而著称,但是很可惜,当ADO或DAO都不支持某个数据库管理器而ODBC支持这个数据库管理器时,在这种特定的情形 下,你仍然需要使用ODBC。在大多数情况下,这意味着要从数据库厂商那里获得所需的驱动程序,虽然Visual C++确实附带了一些产品的驱动程序(如果你正在使用数据库管理器的某些神秘功能,那么就需要建立自己的接口枣这并不是一件十分困难的事)。本质上讲,你 总是要使用ODBC来访问Microsoft产品之外的其它DBMS产品所创建的数据库,这些数据库并不具备OLE-DB功能。ODBC还要求做一些额外 的工作枣为ADO调整Visual C++中的大部分向导。

高级技巧

除了使用ADO和ODBC外,你还可以使用像DAO(数据访问对象)这样的早期技术,该技术包含在像Access这样的Microsoft产品中。 DAO依赖于用Microsoft Access自动获得的Microsoft Jet数据库引擎。DAO还是较早版的Visual Basic所使用的引擎(最新版的Visual Basic和Visual C++依赖于相同的ADO/OLE-DB组合),所以如果需要支持较早的Visual Basic应用程序,那么DAO仍是一个不错的选择。

尽管Microsoft文件声明,可以用DAO访问非Microsoft产品建立的数据库,但你仍会发现,在这种情况下,使用ADO和ODBC要好得 多。这样的话,不但兼容性问题会少一些,速度也将有所提高,因为数据请求经过的接口层减少了。有一条经验要记住,DAO是设计用来处理MDB文件的。

ADO的一个问题是,它不支持远程通信。这是Microsoft提出RDO(远程数据对象)的原因之一。这种特别技术在Visual Basic应用程序中的使用,要比在Visual C++中的使用多得多,所以我猜想,你们中有很多人都在使用它。但是,记住RDO仍是一种生命力很强的技术,这一点很重要。ADO确实具有替代RDO的远 程数据服务(RDS)特征。换言之,ADO在一个软件包中提供了DAO和RDO两种功能性。

ODBC使用的是微软提供的通用数据库连接,所以效率不高,ADO就好些,主要是针对微软数据库做了优化,降低了系统资源的使用率,所以效率比ODBC要高一些,特别是并发用户多时更能体现速度上的差异。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/sjk/10874633.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-11
下一篇2023-05-11

发表评论

登录后才能评论

评论列表(0条)

    保存