数据服务与数据库技术

目录

一、数据服务

二、OLTP与OLAP

三、不同数据库技术(SQL、NoSQL、NewSQL)的对比

一、数据服务

数据服务(Data Serving)指的是面向各种操作型业务,提供数据的增加、删除、修改以及简单的查询功能。提供数据服务功能的系统就是数据服务系统,包括支撑操作型业务的关系数据库、NoSQL数据库以及NewSQL数据库等。 

二、OLTP与OLAP

OLTP

定义

On-Line Transaction Processing联机事务处理过程(OLTP),也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。

特征:

  • 支持大量并发用户定期添加和修改数据。
  • 反映随时变化的单位状态,但不保存其历史记录。
  • 包含大量数据,其中包括用于验证事务的大量数据。
  • 可以进行优化以对事务活动做出响应。
  • 提供用于支持单位日常运营的技术基础结构。
  • 个别事务能够很快地完成,并且只需访问相对较少的数据。
  • 实时性要求高。
  • 交易一般是确定的,所以OLTP是对确定性的数据进行存取。(比如存取款都有一个特定的金额)
  • 并发性要求高并且严格的要求事务的完整、安全性。(比如这种情况:有可能你和你的家人同时在不同的银行取同一个帐号的款)。

OLAP

定义:

联机分析处理OLAP是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。

特征:

它具有FASMI(Fast Analysis of Shared Multidimensional Information),即共享多维信息的快速分析的特征。其中

F是快速性(Fast),指系统能在数秒内对用户的多数分析要求做出反应;

A是可分析性(Analysis),指用户无需编程就可以定义新的专门计算,将其作为分析的一部 分,并以用户所希望的方式给出报告;

M是多维性(Multi—dimensional),指提供对数据分析的多维视图和分析;

I是信息性(Information),指能及时获得信息,并且管理大容量信息。

区别:

三、不同数据库技术(SQL、NoSQL、NewSQL)的对比

关系数据库(SQL、RMDBS)

关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式的表格作用的实质是装载着数据项的特殊收集体,这些表格中的数据能以许多不同的方式被存取或重新召集而不需要重新组织数据库表格。关系数据库的定义造成元数据的一张表格或造成表格、列、范围和约束的正式描述。每个表格(有时被称为一个关系)包含用列表示的一个或更多的数据种类。 每行包含一个唯一的数据实体,这些数据是被列定义的种类。当创造一个关系数据库的时候,你能定义数据列的可能值的范围和可能应用于那个数据值的进一步约束。而SQL语言是标准用户和应用程序到关系数据库的接口。其优势是容易扩充,且在最初的数据库创造之后,一个新的数据种类能被添加而不需要修改所有的现有应用软件。主流的关系数据库有oracle、db2、sqlserver、sybase、mysql等。

并行数据库与分布式数据库

并行数据库(parallel database):

并行数据库是新一代高性能数据库系统,是在大规模并行处理计算机和集群并行计算环境的基础上提出。

根据所在的计算机的处理器(Processor)、内存(Memory)及存储设备(Storage)的相互关系,并行数据库可以归纳为三种基本的体系结构:

共享内存(Shared-Memory,简称SM)

该结构由多个处理机,一个全局共享的主存储器,多个磁盘存储组成。各个处理器通过高速通讯网络(Interconnection Network)与共享内存连接,并均可直接访问系统中的一个、多个或全部的磁盘存储,在系统中,所有的内存和磁盘存储均由多个处理器共享。

提供数据库服务的处理器通过全局共享内存交换消息和数据,通讯效率高,查询内部和查询间并行性实现不需要额外的开销。

数据库数据存储在多个磁盘上,可被所有处理器访问

此结构硬件成本高,由于多个处理器共享内存,处理器数量增加导致内存争用,系统中处理器数量受到限制,可扩充性差。由于共享内存机制,内存错误直接影响系统。

共享磁盘(Shared-Disk,简称SD)

此结构由多个拥有独立内存的处理器和多个磁盘组成,各个处理器之间没有直接的信息和数据的交换,每个处理器都可以读写全部磁盘。处理器与磁盘由高速通信网络连接。

优点:此结构经常用于实现数据库集群,硬件成本低,可扩充性好,可用性强。

缺点:多个处理器共享磁盘存储,当处理器增加可能导致磁盘争用导致性能问题。每个处理器可访问全部磁盘存储。磁盘存储中数据被复制到处理器高速缓冲区进行处理,会出现多个处理器同时对同一磁盘位置进行访问和修改,最终导致数据的一致性无法保证。解决办法是增加一个分布式缓存管理器对各个处理器的并发访问进行全局控制与管理。不过这会带来额外的通信开销。

无资源共享(Shared-Nothing,简称SN)

这种结构由多个处理结点构成,每个处理结点有自己独立的处理器,独立的内存,独立的磁盘。多个处理结点在处理器级上由高速通信网络连接,系统中各个处理器用自己的内存处理数据。

这种结构,每个处理结点就是一个小型数据库系统,多个结点一起构成分布式的并行数据库系统。每个处理器使用自己的资源处理数据,不存在资源争用,提高整体性能。

这种结构具有优良的可扩展性——只需增加额外的处理节点,就可以以接近线性的比例增加系统的处理能力。

分布式数据库系统 (distributed database system)

定义:

分布式数据库系统中,每个应用程序可以对数据进行透明操作,数据库中的数据分别在不同的局部数据库中存储、由不同DBMS进行管理,在不同的机器上运行,由不同的操作系统支持,被不同通信网络连接在一起。

分布式数据库在逻辑上是个统一的整体,但物理上则分别存储在不同物理结点上。分布性表现在数据库中的数据不是存储在同一计算机的存储设备上。

分布式系统希望增加数据冗余,在不同场地存储同一数据的多个副本,其原因是:

(1)提高系统可靠性、可用性:当系统某一场地出现故障,系统可对另一场地的相同副本进行操作。不会因一处故障导致系统瘫痪。

(2)提高系统性能:可以根据距离选择离用户最近的副本,减少网络通信代价,改善性能。

主要特点:

独立透明性:用户不必关心数据的逻辑分区,不必关系数据物理分区细节。用户应用程序书写和数据没有进行分布存储一样。数据分布的信息由系统存储在数据字典中,用户对非本地数据的访问请求由系统根据数据字典进行解释、转换、传送。

集中结点结合:数据库是用户共享的资源,在分布式数据库中,数据的共享有两个层次:一是局部共享,局部数据库存储局部场地各用户的共享数据(本地用户常用)。二是全局共享,即分布式数据库的各个场地存储可供其他场地用户共享的数据,支持系统全局应用。因此有俩相应控制结构:集中和自制。各局部DBMS独立管理局部数据库;同时系统设置集中控制机制,协调局部DMS工作。

复制透明性:用户不关心网络中各结点的复制情况,由系统自动完成。

易于扩展性:可增加多个服务器进一步分布数据和分担处理任务

优点:

(1)灵活的体系结构

(2)系统可靠性高,可用性好

(3)局部应用响应速度快

(4)可扩展性好

缺点:

(1)系统开销大,主要是通信

(2)复杂存取结构

(3)数据的安全性和保密性难处理

分布式数据库与并行数据库的区别:

结点地位不同:

DDB的结构与PDB的SN结构看似相似,却又很大不同:

逻辑上PDB系统中N个结点并不平等。其中只有一个节点与用户接口,负责接受用户请求,输出处理结果,确定执行方案,而其余节点只具有执行操作和彼此通信能力。PDB在逻辑上是一个 具有一个前台处理机和多个后天处理机结点模型的系统。结点在数据处理中只发挥协同作用。

DDB中各结点从逻辑上完全平等,没有主次之分。DDB中各结点除了能通过网络协同完成全局事务外,还具有场地自治性。

应用目标不同:

PDB目标是发挥并行计算机的优势,利用各处理器结点并行完成数据库任务。

DDB目标在于实现场地自治和数据的全局透明共享,不要求利用网络中各结点提供处理性能

实现方式不同:

PDB为了充分利用各结点处理能力,采用高速网络连接。传输代价相对较低。某些结点空闲,可将负载大的结点的任务通过高速网传给空闲结点处理。

DDB为了满足分布特点,各结点采用局域网或广域网相连,网络带宽较低,结点间通信开销大,因此查询处理时尽量较少结点间的数据传输量。

NoSQL数据库

NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。

不同分类特点对比

分类
Examples举例
典型应用场景
数据模型
优点
缺点
键值(key-value)
Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB
内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。
Key 指向 Value 的键值对,通常用hash table来实现
查找速度快
数据无结构化,通常只被当作字符串或者二进制数据
列存储数据库
Cassandra, HBase, Riak
分布式的文件系统
以列簇式存储,将同一列数据存在一起
查找速度快,可扩展性强,更容易进行分布式扩展
功能相对局限
文档型数据库
CouchDB, MongoDb
Web应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容)
Key-Value对应的键值对,Value为结构化数据
数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构
查询性能不高,而且缺乏统一的查询语法。
图形(Graph)数据库
Neo4J, InfoGrid, Infinite Graph
社交网络,推荐系统等。专注于构建关系图谱
图结构
利用图结构相关算法。比如最短路径寻址,N度关系查找等
很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。

NewSQL数据库

NewSQL 是对各种新的可扩展/高性能数据库的简称,这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL等特性。 NewSQL是指这样一类新式的关系型数据库管理系统,针对OLTP(读-写)工作负载,追求提供和NoSQL系统相同的扩展性能,且仍然保持ACID和SQL等特性(scalable and ACID and (relational and/or sql -access))。

分类

NewSQL系统虽然在的内部结构变化很大,但是它们有两个显着的共同特点:(1)它们都支持关系数据模型,(2) 它们都使用SQL作为其主要的接口。已知的第一个NewSQL系统叫做H-Store,它是一个分布式并行内存数据库系统。目前NewSQL系统大致分三类: 新架构 第一类型的NewSQL系统是全新的数据库平台,它们均采取了不同的设计方法。它们大概分两类:

(1) 这类数据库工作在一个分布式集群的节点上,其中每个节点拥有一个数据子集。 SQL查询被分成查询片段发送给自己所在的数据的节点上执行。这些数据库可以通过添加额外的节点来线性扩展。现有的这类数据库有: Google Spanner, VoltDB, Clustrix, NuoDB.

(2) 这些数据库系统通常有一个单一的主节点的数据源。它们有一组节点用来做事务处理,这些节点接到特定的SQL查询后,会把它所需的所有数据从主节点上取回来后执行SQL查询,再返回结果。 SQL引擎 第二类是高度优化的SQL存储引擎。这些系统提供了MySQL相同的编程接口,但扩展性比内置的引擎InnoDB更好。这类数据库系统有:TokuDB, MemSQL。 透明分片 这类系统提供了分片的中间件层,数据库自动分割在多个节点运行。这类数据库包扩:ScaleBase,dbShards, Scalearc。

数据科学交流群,群号:189158789 ,欢迎各位对数据科学感兴趣的小伙伴的加入!

原文地址:https://www.cnblogs.com/purstar/p/14161211.html