数据库学习调研报告一

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数据库调研报告(一)1数据库基础图1数据库基础1.1数据库定义1)数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。2)数据库是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据指的是以一定的数据模型组织、描述和储存在一起、具有尽可能小的冗余度、较高的数据独立性和易扩展性的特点并可在一定范围内为多个用户共享。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改、查由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。1.2数据库系统VS文件系统1)共同点:同属于系统软件或底层软件;都是用来存储和访问数据的;都有着悠久的研究开发历史;都有成熟的标准或规范。这既有利于开发可移植的程序,又不利于开发创新的系统,特别是分布式系统。实现技术上也有很多的共同点:大都采用C/C++这样更底层的语言;需要保证数据的一致性,特别的,不同程度的支持事务;都有Block或Page或Allocationunit或Extent这样的概念;都用到Buffercache、LRU、Groupcommit之类的概念和算法;都要针对各种负载做IO优化2)不同点:数据库对事务的支持要强很多,文件系统可以只保证元数据的一致性;数据库有不同级别的一致性,以隔离级别的形式体现出来;数据库可以有REDO和UNDO日志,文件系统一般只用REDO;数据库的事务可以很长,文件系统的事务很短;数据库的事务事先无法确定,是用户输入的,文件系统的事务可以事先确定,种类明确;数据库是用户态实现的,文件系统一般是内核态实现的。因此,前者更容易做到跨OS平台;数据库的访问接口通常是非过程化的SQL语言,文件系统的则是API。二者对应的主流标准分别是SQL和POSIX;数据库对死锁可以做检测,文件系统则需要避免死锁。表格1文件系统VS数据库文件系统的弊端简述数据库系统的特点功能数据的冗余和不一致数据冗余导致存储和访问开销较大减少了数据的重复数据共享数据访问困难数据检索困难避免数据的不一致控制数据冗余数据孤立数据分散在不同文件,文件可能具有不同的方式数据可以共享数据独立性完整性问题为保证一致性而定的约束,约束涉及不同的文件时问题变复杂有数据安全性和完整性保障统一数据管理原子性问题恢复起来较为麻烦多用户操作并行调度数据字典并发访问异常并发访问文件执行操作可能会相互影响易于使用故障恢复安全性问题文件访问比较简单便于扩展数据转换、通信接口3)联系点:数据库系统经常依赖于文件系统作为其最底层的存储,也可能会实现一些文件系统的功能;文件系统可以为数据库这种特殊的应用做专门的优化;文件系统可以被当做简单的数据库使用(例如VSAM),数据库也可以暴露出NFS(例如Oracle);文件系统可能会用到一些简单的数据库功能(例如把符号链接当KV,实现简单的DB功能,或直接用一个小型的DBMS)1.3数据库的体系结构数据库系统各个部分以及他们之间的联系见图1。无经验的用户(出纳员、代理商、web用户)应用程序员老练的程序员(分析员)数据库管理员应用界面应用程序查询工具管理工具编译器和链接器DML查询DML解析器应用程序目标码DML编译器和组织器查询执行引擎查询处理器使用写使用使用缓冲区管理器文件管理器授权和完整性管理器事务管理器存储管理器数据索引数据字典统计数据磁盘存储图2DBMS体系结构1.3.1集中式数据库系统1)集中式系统:运行在一台机器上,数据集中存储在一台计算机中,并且不与其他计算机系统交互的数据库系统。2)单用户系统:个人使用的桌面系统,单CPU,1至2个硬盘,OS可以只支持单用户,数据库系统不支持并发控制,故障恢复能力没有或非常有限,用户接口类似QBE。3)多用户系统服务大量用户,用户通过终端与之相连,多个磁盘,多个主存储器,多个CPU,多用户OS,具有并发控制、故障恢复等能力1.3.2C/S数据库系统1.3.2.1简介连接到集中式系统的终端被PC代替;以前由集中式系统执行的诸如用户界面功能由PC来处理;集中式系统变成服务器系统的作用,来响应客户系统产生的请求,见图3C/S数据库系统。优点:图3C/S数据库系统具有如下优点:有利于充分利用网络中的计算资源;减少网络上的传输量;高性能/价格比;可扩展性;友好的用户接口;易维护。1.3.2.2服务器分类1)事务服务器:又称查询服务器或SQL服务器,广泛用于关系数据库系统;客户向服务器发送请求,事务在服务器端执行,结果返回给客户端;可以以SQL表达请求,也可以通过应用程序接口,使用远程过程调用(RPC)机制来表达请求;ODBC(OpenDatabaseConnectivity)使用ODBC接口的任何客户程序都可以与提供ODBC接口的任何服务器连接。2)数据服务器:用于局域网中;客户与服务器之间具有高速连接;客户机与服务器的处理能力相当,并且其执行的任务主要以计算为主;数据传送到客户机器,在客户机上进行所有处理,然后再把数据传回到服务器;多用于面向对象数据库系统。1.3.3并行数据库系统1.3.3.1简介由通过高速互连网络连接在一起的多个CPU、存储器和磁盘组成;查询大数据量;处理大数量的事务;粗粒度并行机由几个能力强大的处理器组成;细粒度并行机由数千个小处理器组成。1.3.3.2应用需求和目的需求:查询非常大的数据库(1012字节以上);处理很大数量的事务(每秒数千个事务)目的:保证即使在数据库的规模和事务的数量都大大增长时,数据库系统仍能以可接受的速度运行。1.3.4分布式数据库系统1.3.4.1背景及定义1)背景分布式数据库系统的应用背景是数据库系统+计算机网络,如图4分布式系统图例为银行系统的一个简单示例,数据库系统分布与不同的地区,通过互联网实现数据的写入和读取操作。图4分布式系统图例1)描述定义D-DBS是一个数据集合,这些数据在逻辑上属于同一个系统,但在物理上分布在计算机网络的不同结点上。1)精确定义D-DBS是一个数据集合,这些数据,分布在计算机网络的不同计算机上,网络中每个结点具有独立处理的能力,可以执行局部应用,同时每个结点也能通过网络通讯支持全局应用。分布式数据库强调场地自治性(局部应用)以及自治场地之间的协作性(全局应用)。1.3.4.2体系结构1)G-外模式:全局应用的用户视图;2)G-概念模式:定义D-DBS中数据的整体逻辑结构,数据如同没有分布一样;3)分片模式:每一个关系可以分为若干互不相交的部分,每一部分称为一个片段;4)分布模式:定义片段的存放地点。图5分布式体系结构1.4数据挖掘和信息检索1.4.1基本定义1)信息检索信息检索(InformationRetrieval)是用户进行信息查询和获取的主要方式,是查找信息的方法和手段。狭义的信息检索仅指信息查询(InformationSearch)。即用户根据需要,采用一定的方法,借助检索工具,从信息集合中找出所需要信息的查找过程。广义的信息检索是信息按一定的方式进行加工、整理、组织并存储起来,再根据信息用户特定的需要将相关信息准确的查找出来的过程。又称信息的存储于检索。一般情况下,信息检索指的就是广义的信息检索。2)数据挖掘数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。1.4.2应用分类1)信息检索:个人信息检索:个人相关信息的组织、整理、搜素等。桌面搜索、个人信息管理、个人数字记忆;企业级信息检索:在企业内容文档的组织、管理、搜索等。企业级信息检索是内容管理的重要组成部分;Web信息检索:在超大规模数据集上的检索;移动搜索、产品搜索、专利搜索、广告推荐、社会网络分析、消费行为分析、网络评论分析、SEO营销。2)数据挖掘:大小公司对数据挖掘的需求有50多个方面:数据统计分析;预测预警模型;数据信息阐释;数据采集评估;数据加工仓库;品类数据分析;销售数据分析;网络数据分析;流量数据分析等等。2数据库的分类图6数据库分类2.1商用数据库VS开源数据库DB-Engines中目前有331个不同的数据库管理系统,其中开源数据库有165个,商业数据库有166个,双方可谓旗鼓相当见图7开源VS商用走势图。图7开源VS商用走势图2.2数据库切分2.2.1切分概述2.2.1.1OLTP和OLAP联机事务处理(OLTP)也称为面向交易的处理系统,其基本特征是原始数据可以立即传送到计算机中心进行处理,并在很短的时间内给出处理结果。联机分析处理(OLAP)是指通过多维的方式对数据进行分析、查询和报表,可以同数据挖掘工具、统计分析工具配合使用,增强决策分析功能。对于二者的区别见表1。表1OLAP和OLTP对比OLTPOLAP系统功能日常交易处理统计、分析、报表DB设计面向实时交易类应用面向统计分析类应用数据处理当前的、最新的细节、二维的分立的历史的、聚集的、多维的、集成的、统一的实时性实时读写要求高实时读写要求低事务强一致性弱事务分析要求低、简单高、复杂2.2.1.2关系型数据库和非关系型数据库(NoSQL)针对上面两类系统有多种技术实现方案,存储部分的数据库主要分为两大类:关系型数据库和NoSQL。关系型数据库,是建立在关系模型基础上的数据库,其借助于集合代数等数学概念和方法来处理数据库中的数据。主流的Oracle、DB2、MSSQLServer和mysql都属于这类传统的数据库。NoSQL数据库,全称为NotOnlySQL,意思就是适用关系型数据库的时候使用关系型数据库,不适用的时候也没必要非使用关系型数据库不可,可以考虑使用更加合适的数据存储。主要为临时性键值存储、永久性键值、面向文档的数据库、面向列的数据库。二者各自特点见表2关系数据库与非关系数据库对比。表2关系数据库与非关系数据库对比关系型数据库NoSQL特点数据关系模型基于关系模型,结构化存储,完整约束;基于二维表及其之间的联系,需要连接、并、非结构化的存储基于多维关系模型交、差、除等数据操作;采用结构化的查询语言做数据读写;操作需要数据的一致性,需要事务甚至是强一致性具有特有的使用场景优点保持数据的一致性(事务处理)可以进行join等复杂查询通用化,技术成熟高并发,大数据下读写能力较强;基本支持分布式,易于扩展,可伸缩;简单,弱结构化缺点数据读写必须经过SQL解析、大量数据,高并发下读写性能不足;对数据做读写,或修改数据结构需要加锁,影响并发操作;无法适应非结构化存储;扩展困难;昂贵、复杂。Join等复杂操作能力较弱;事务支持较弱;通用性差;无完整约束复杂业务场景支持较差。2.2.1.3何为数据切分简单来说,就是指通过某种特定条件,将我们存放在同一个数据库中的数据分散存放到多个数据库中,以达到分散单台设备负载的效果。数据的切分根据其切分规则的类型,可以分为两种切分模式。一种是按照不同的表来切分到不同的数据库上,这种切分可以称之为数据的垂直切分;另外一种则是根据数据的逻辑关系,将同一个表中的数据按照某种条件拆分到多台数据库上,这种切分称之为水平切分。关于数据库的垂直切分和水平切分将在第3.1.5和3.16节进行详细介绍。2.3数据库分类数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。而在当今的互联网中,最常见的数据库模型主要是两种,即关系型数据库和非关系型数据库,见图8数据库简单划分。图8数据库简单划分数据库按其数据模型详细分类、使用情况和排名情况见图9数据库分类。图9数据库分类2.3.1关系型数据库(RelationalDBMS)关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库

1 / 38
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功