MySQL、PostgreSQL属于关系型数据库
分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。
比较火的分布式数据库有tidb和sequoiadb
传统关系数据库可能永远不会消失——至少不会很快,但其辉煌的日子已经远去
许多新兴的NoSQL数据库的普及,例如MongnDB和Cassandra
这很好的弥补了传统数据库系统的局限性
相对于NoSQL蓬勃发展的情况基于SQL的关系数据库系统确实显得有些死气沉沉
但这是数据库厂商的错,而不是SQL的错
关系数据库长期以来一直作为企业部署的关键组成部分,但现在出现了更好的选择,以适应新的数据结构和现代化硬件系统
如IBM、微软和甲骨文等厂商都将继续使用关系数据库主导其金融交易的核心功能
但是NoSQL数据库似乎更适应当今的海量数据时代
如ApacheHadoop和MapRece技术
Bloor集团的首席分析师RobinBloor表示传统的关系数据库已经过时了,其架构需要更新
Bloor的理由是随着多CPU计算机和固态硬盘技术的不断成熟,访问磁盘的数据已经不再重要
固态硬盘的速度更快,所以在磁盘和内存之间读取速率将会加强
明尼苏达州明尼阿波利斯的一位元数据策略顾问DanMcCreary指出SQL数据库的也有自己的问题,例如其不具备很好的伸缩性
当数据增长超过一台服务器所能承受的极限时,就必须分享或分割数据到多台服务器上,跨越多台服务器是一个复杂的过程
此外如外部链接带来的问题
例如多个表中数据的融合,跨越服务器执行一些 *** 作可能会产生一些问题
NoSQL的崛起和“NewSQL”的出现NoSQL将改变数据的定义范围
它不再是原始的数据类型,如整数、浮点
数据可能是整个文件
NoSQL可能会吓到DBA,因为他们担心失去他们自己的领域
NoSQL数据库是非关系的、水平可扩展、分布式并且是开源的
MongoDB的创始人DwightMerriman表示NoSQL可作为一个Web应用服务器、内容管理器、结构化的事件日志、移动应用程序的服务器端和文件存储的后背存储
分布式数据库公司VoltDB的首席技术官MichaelStonebraker表示NoSQL数据库可提供良好的扩展性和灵活性,但他们也有自己的不足
由于不使用SQL,NoSQL数据库系统不具备高度结构化查询等特性
NoSQL其他的问题还包括不能提供ACID(原子性、一致性、隔离性和耐久性)的 *** 作
另外不同的NoSQL数据库都有自己的查询语言,这使得很难规范应用程序接口
Stonebraker表示数据库系统的滞后通常可归结于多项因素
诸如以恢复日志为目的的数据库系统维持的缓冲区池,以及管理锁定和锁定的数据字段
在VoltDB的测试中发现以上这些行为消耗系统96%的资源
RDBMSes处理的数据大约只有16%“虽然关系数据库感觉到了新技术到来的压力,但RDBMS仍然在企业计算中占有一些之地
目前RDBMS的市场约350亿美元
其中包括账户的软件许可、服务、技术支持以及维护”,Forrester的分析师NoelYuhanna说道
Forrester预计,在企业中的业务数据将有25%是结构化数据,其中至少有65%在使用RDBMS或其他传统关系数据库,而RDBMS在交易数据中,RDBMSes至少有16%的份额
企业将有75%的业务数据与半结构化文件(如XML、电子邮件和EDI)和非结构化数据(如文档、、音频和视频)相结合
Yuhanna表示,大约有5%的数据驻留在关系数据库之中,其他的都分布在非关系数据库和文件格式之中
此外,列式数据恐怕将成为数据库领域发生变化的过度候选产品,他们或将使关系数据库产品更简单
传统的关系型数据厂商比如IBM、微软和Oracle在其RDBMS领域肯定是有新的计划的,他们也不会选择公开自己的计划
Bloor表示,没有人会注意到RDBMS可能会死去
基础软件创业其实我觉得是个好生意,尤其是数据库,但是前提是确实在技术上有所创新,这么一来技术壁垒就巨高,这就是护城河。如果只是去模仿Oracle,是没有太大前途的(当然靠关系那种就另说了,反正我本人不认为这样是正确的价值观),想想人家O记在这个领域做了30年,你走人家的老路凭什么干得动人家?目前来说我觉得之所以国内还没有太大成功的公司涌现说到底还是因为技术不行或者路子不对或者客户的历史包袱太重,拿个Hadoop改改就是大数据了吗?真正的OLTP业务敢碰吗?所以就造成了做项目挣快钱攒方案搞数据分析的公司扎堆,真正在OLTP端的创新没人敢碰。另外一个重要的问题就是,国内几乎没人懂开源。最近几年重要的基础软件创新都在开源社区,比如Docker/Kubenetes(Mesos)/Spark凭一个公司的力量是很难跟上社区的发展速度的。国内的大多数开源项目不管是代码质量,用心程度,设计的视野上都太弱了,连最基本的英文交流都很少有开源项目注意,更不用说生态了。不过,还是有希望的,至少学术界最近几年的进展,让我们看到了在分布式OLTP系统(NewSQL)上的一些希望,而且这块在全球范围内都是一个蓝海。基于这个背景,我们创立了PingCAP,从零开始抛开一切历史包袱去实现一个全新的数据库TiDB,TiDB的目标就是瞄准世界顶级的通用分布式数据库开源项目和未来的行业标准去的。虽然这个东西确实很难,但我也不觉得我们会比硅谷的顶级基础软件公司差:),不客气的讲,我们在这个领域也远远走到了各个友商的前面,另外一方面如果不难也没有做它的价值,如果未来的数据库还是需要像现在分库分表中间件Oracle,我觉得就太无趣了。就说一个Cloud-Native,目前来说基本没有OLTP的数据库能搞定。
常用数据库有:
1、关系型数据库
关系型数据库是由IBM的EF Codd于1970年发明的,它是一个表格数据库,其中定义了数据,因此可以以多种不同的方式对其进行重组和访问。关系数据库由一组表组成,其中的数据属于预定义的类别。每个表在一个列中至少有一个数据类别,并且每一行对于列中定义的类别都有一个特定的数据实例。
2、分布式数据库
分布式数据库是一种数据库,数据库存储在多个物理位置,处理在网络中的不同点之间分散或复制。分布式数据库可以是同构的,也可以是异构的。同构分布式数据库系统中的所有物理位置都具有相同的底层硬件,并运行相同的 *** 作系统和数据库应用程序。异构分布式数据库中的硬件、 *** 作系统或数据库应用程序在每个位置上可能是不同的。
3、云数据库
云数据库是针对虚拟化环境优化或构建的数据库。云数据库提供了一些好处,比如可以按每次使用支付存储容量和带宽的费用,还可以根据需要提供可伸缩性和高可用性。云数据库还为企业提供了在软件即服务部署中支持业务应用程序的机会。
4、NoSQL数据库
NoSQL数据库对于大型分布式数据集非常有用。NoSQL数据库对于关系数据库无法解决的大数据性能问题非常有效。当组织必须分析大量非结构化数据或存储在云中多个虚拟服务器上的数据时,它们是最有效的。
5、面向对象的数据库
使用面向对象编程语言创建的项通常存储在关系数据库中,但是面向对象数据库非常适合于这些项。面向对象的数据库是围绕对象(而不是 *** 作)和数据(而不是逻辑)组织的。例如,关系数据库中的多媒体记录可以是可定义的数据对象,而不是字母数字值。
6、图形数据库
面向图形的数据库是一种NoSQL数据库,它使用图形理论存储、映射和查询关系。图数据库基本上是节点和边的集合,其中每个节点表示一个实体,每个边表示节点之间的连接。
分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获取更大的存储容量和更高的并发访问量。近年来,随着数据量的高速增长,分布式数据库技术也得到了快速的发展,传统的关系型数据库开始从集中式模型向分布式架构发展,基于关系型的分布式数据库在保留了传统数据库的数据模型和基本特征下,从集中式存储走向分布式存储,从集中式计算走向分布式计算。
另一方面,随着数据量越来越大,关系型数据库开始暴露出一些难以克服的缺点,以NoSQL 为代表的非关系型数据库,其高可扩展性、高并发性等优势出现了快速发展,一时间市场上出现了大量的key-value 存储系统、文档型数据库等NoSQL 数据库产品。NoSQL 类型数据库正日渐成为大数据时代下分布式数据库领域的主力。
这种组织数据库的方法克服了物理中心数据库组织的弱点。 首先,降低了数据传送代价,因为大多数的对数据库的访问 *** 作都是针对局部数据库的,而不是对其他位置的数据库访问; 其次,系统的可靠性提高了很多,因为当网络出现故障时,仍然允许对局部数据库的 *** 作,而且一个位置的故障不影响其他位置的处理工作,只有当访问出现故障位置的数据时,在某种程度上才受影响; 第三,便于系统的扩充,增加一个新的局部数据库,或在某个位置扩充一台适当的小型计算机,都很容易实现。然而有些功能要付出更高的代价。例如,为了调配在几个位置上的活动,事务管理的性能比在中心数据库时花费更高,而且甚至抵消许多其他的优点。 分布式软件系统(Distributed Software Systems)是支持分布式处理的软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。它包括分布式 *** 作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等。
分布式 *** 作系统负责管理分布式处理系统资源和控制分布式程序运行。它和集中式 *** 作系统的区别在于资源管理、进程通信和系统结构等方面。 分布式程序设计语言用于编写运行于分布式计算机系统上的分布式程序。一个分布式程序由若干个可以独立执行的程序模块组成,它们分布于一个分布式处理系统的多台计算机上被同时执行。它与集中式的程序设计语言相比有三个特点:分布性、通信性和稳健性。 分布式文件系统具有执行远程文件存取的能力,并以透明方式对分布在网络上的文件进行管理和存取。 分布式数据库系统由分布于多个计算机结点上的若干个数据库系统组成,它提供有效的存取手段来 *** 纵这些结点上的子数据库。分布式数据库在使用上可视为一个完整的数据库,而实际上它是分布在地理分散的各个结点上。当然,分布在各个结点上的子数据库在逻辑上是相关的。
Hadoop的分布式文件系统HDFS,作为开源的分布式平台,为目前流行的很多分布式数据库提供了支持,譬如HBase等。Yonghong的分布式文件系统ZFS,为分布式数据集市Z-DataMart提供了底层平台。
一个分布式数据库在用户面前为单个逻辑数据库,但实际上是由存储在多台计算机上的一组数据库组成
在几台计算机上的数据库通过网络可同时修改和存取,每一数据库受它的局部的DBMS控制
分布式数据库中每一个数据库服务器合作地维护全局数据库的一致性
在系统中的每一台计算机称为结点
如果一结点具有管理数据库软件,该结点称为数据库服务器
如果一个结点为请求服务器的信息的一应用,该结点称为客户
在ORACLE客户,执行数据库应用,可存取数据信息和与用户交互
在服务器,执行ORACLE软件,处理对ORACLE数据库并发、共享数据存取
ORACLE允许上述两部分在同一台计算机上,但当客户部分和服务器部分是由网连接的不同计算机上时,更有效
分布处理是由多台处理机分担单个任务的处理
在ORACLE数据库系统中分布处理的例子如:客户和服务器是位于网络连接的不同计算机上
单台计算机上有多个处理器,不同处理器分别执行客户应用
SQLNET是ORACLE网络接口,允许运行在网络工作站的ORACLE工具和服务器上,可存取、修改、共享和存储在其它服务器上的数据
SAQLNET可被认为是网络通信的程序接口
SQLNET利用通信协议和应用程序接口(API)为OARCLE提供一个分布式数据库和分布处理
SQLNET驱动器为在数据库服务器上运行的ORACLE进程与ORACLE工具的用户进程之间提供一个接口
参与分布式数据库的每一服务器是分别地独立地管理数据库,好像每一数据库不是网络化的数据库
每一个数据库独立地被管理,称为场地自治性
场地自治性有下列好处:◆系统的结点可反映公司的逻辑组织
◆由局部数据库管理员控制局部数据,这样每一个数据库管理员责任域要小一些,可更好管理
◆只要一个数据库和网络是可用,那么全局数据库可部分可用
不会因一个数据库的故障而停止全部 *** 作或引起性能瓶颈
◆故障恢复通常在单个结点上进行
◆每个局部数据库存在一个数据字典
◆结点可独立地升级软件
可从分布式数据库的所有结点存取模式对象,因此正像非分布的局部的DBMS,必须提供一种机制,可在局部数据库中引用一个对象
分布式DBMS必须提供一种命名模式,以致分布式数据库中一个对象可在应用中唯一标识和引用
一般彩在层次结构的每一层实施唯一性
分布式DVMS简单地扩充层次命名模型,实施在网络上唯一数据库命名
因此一个对象的全局对象名保证在分布式数据库内是唯一
ORACLE允许在SQL语句中使用佤对象名引用分布式数据库中的模式对象(表、视图和过程)
在ORACLE中,一个模式对象的全局名由三部分组成:包含对象的模式名、对象名、数据库名、其形式如:SCOTT
EMP@SALES
DIVISION3
ACME
COM其中SCOTT为模式名,EMP为表名,@符号之后为数据库名
一个远程查询为一查询,是从一个或多个远程表中选择信息,这些表驻留在同一个远程结点
一个分布式查询可从两个或多个结点检索数据
一个分布式更新可修改两个或两个以上结点的数据
一个远程事务为一个事务,包含一人或多个远程语句,它所引用的全部是在同一个远程结点上
一个分布式事务中一个事务,包含一个或多个语句修改分布式数据库的两个或多个不同结点的数据
在分布式数据库中,事务控制必须在网络上直辖市,保证数据一致性
两阶段提交机制保证参与分布式事务的全部数据库服务器是全部提交或全部回滚事务中的语句
ORACLE分布式数据库系统结构可由ORACLE数据库管理员为终端用户和应用提供位置透明性,利用视图、同义词、过程可提供ORACLE分布式数据库系统中的位置透明性
ORACLE允许在SELECT(查询)、INSERT、UPDATE、DELETE、SELECTFORUPDATE和LOCKTABLE语句中引用远程数据
对于查询,包含有连接、聚合、子查询和SELECTFORUPDATE,可引用本地的、远程的表和视图
对于UPDATE、INSERT、DELETE和LOCKTABLE语句可引用本地的和远程的表
注意在引用LONG和LONGRAW列、序列、修改表和封锁表时,必须位于同一个结点
ORACLE不允许作远程DDL语句
在单场地或分布式数据库中,所有事务都是用COMMIT或ROLLBACK语句中止
ORACLE提供两种机制实现分布式数据库中表重复的透明性:表快照提供异步的表重复;触发器实现同步的表的重复
在两种情况下,都实现了对表重复的透明性
分布式数据库系统(DDBS)包含分布式数据库管理系统(DDBMS)和分布式数据库(DDB)。在分布式数据库系统中,一个应用程序可以对数据库进行透明 *** 作,数据库中的数据分别在不同的局部数据库中存储、由不同的DBMS进行管理、在不同的机器上运行、由不同的 *** 作系统支持、被不同的通信网络连接在一起。
一个分布式数据库在逻辑上是一个统一的整体,在物理上则是分别存储在不同的物理节点上。一个应用程序通过网络的连接可以访问分布在不同地理位置的数据库。它的分布性表现在数据库中的数据不是存储在同一场地。更确切地讲,不存储在同一计算机的存储设备上。这就是与集中式数据库的区别。从用户的角度看,一个分布式数据库系统在逻辑上和集中式数据库系统一样,用户可以在任何一个场地执行全局应用。就好像那些数据是存储在同一台计算机上,有单个数据库管理系统(DBMS)管理一样,用户并没有什么感觉不一样。
分布式数据库系统是在集中式数据库系统的基础上发展起来的,是计算机技术和网络技术结合的产物。分布式数据库系统适合于单位分散的部门,允许各个部门将其常用的数据存储在本地,实施就地存放本地使用,从而提高响应速度,降低通信费用。分布式数据库系统与集中式数据库系统相比具有可扩展性,通过增加适当的数据冗余,提高系统的可靠性。在集中式数据库中,尽量减少冗余度是系统目标之一.其原因是,冗余数据浪费存储空间,而且容易造成各副本之间的不一致性.而为了保证数据的一致性,系统要付出一定的维护代价.减少冗余度的目标是用数据共享来达到的。而在分布式数据库中却希望增加冗余数据,在不同的场地存储同一数据的多个副本,其原因是:①.提高系统的可靠性、可用性当某一场地出现故障时,系统可以对另一场地上的相同副本进行 *** 作,不会因一处故障而造成整个系统的瘫痪。②.提高系统性能系统可以根据距离选择离用户最近的数据副本进行 *** 作,减少通信代价,改善整个系统的性能。
以上就是关于分布式数据库是做什么的(分布式数据库是什么意思)全部的内容,包括:分布式数据库是做什么的(分布式数据库是什么意思)、NewSQL为何使传统关系数据库黯然失色(试述newsql数据库与传统的关系数据库的区别)、国内做分布式数据库开发的现状如何(分布式数据库适用于大数据分析吗)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)