nosql和传统的数据库有什么区别

nosql和传统的数据库有什么区别,第1张

NoSQL与关系数据设计理念比较

关系型数据库中的表都是存储一些格式化的数据结构,每个元组字段的组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接等 *** 作,但从另一个角度来说它也是关系型数据库性能瓶颈的一个因素。而非关系型数据库以键值对存储,它的结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。

特点:

它们可以处理超大量的数据。

它们运行在便宜的PC服务器集群上。

它们击碎了性能瓶颈。

没有过多的 *** 作。

Bootstrap支持

缺点:

但是一些人承认,没有正式的官方支持,万一出了差错会是可怕的,至少很多管理人员是这样看。

此外,nosql并未形成一定标准,各种产品层出不穷,内部混乱,各种项目还需时间来检验

传统关系数据库可能永远不会消失——至少不会很快,但其辉煌的日子已经远去

许多新兴的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可能会死去

2 什么是NoSQL?

21 NoSQL 概述

NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,

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

(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余 *** 作就可以横向扩展。

22 NoSQL代表

MongDB、 Redis、Memcache

3 关系型数据库与NoSQL的区别?

31 RDBMS

高度组织化结构化数据

结构化查询语言(SQL)

数据和关系都存储在单独的表中。

数据 *** 纵语言,数据定义语言

严格的一致性

基础事务

ACID

关系型数据库遵循ACID规则

事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性:

A (Atomicity) 原子性

原子性很容易理解,也就是说事务里的所有 *** 作要么全部做完,要么都不做,事务成功的条件是事务里的所有 *** 作都成功,只要有一个 *** 作失败,整个事务就失败,需要回滚。比如银行转账,从A账户转100元至B账户,分为两个步骤:1)从A账户取100元;2)存入100元至B账户。这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失败,钱会莫名其妙少了100元。

C (Consistency) 一致性

一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。

I (Isolation) 独立性

所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。比如现有有个交易是从A账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的

D (Durability) 持久性

持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。

32 NoSQL

代表着不仅仅是SQL

没有声明性查询语言

没有预定义的模式

键 - 值对存储,列存储,文档存储,图形数据库

最终一致性,而非ACID属性

非结构化和不可预知的数据

CAP定理

高性能,高可用性和可伸缩性

分布式数据库中的CAP原理(了解)

CAP定理:

Consistency(一致性), 数据一致更新,所有数据变动都是同步的

Availability(可用性), 好的响应性能

Partition tolerance(分区容错性) 可靠性

P: 系统中任意信息的丢失或失败不会影响系统的继续运作。

定理:任何分布式系统只可同时满足二点,没法三者兼顾。

CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,

因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:

CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。

CP - 满足一致性,分区容忍性的系统,通常性能不是特别高。

AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。

CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。

而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的。

所以我们只能在一致性和可用性之间进行权衡,没有NoSQL系统能同时保证这三点。

说明:C:强一致性 A:高可用性 P:分布式容忍性

举例:

CA:传统Oracle数据库

AP:大多数网站架构的选择

CP:Redis、Mongodb

注意:分布式架构的时候必须做出取舍。

一致性和可用性之间取一个平衡。多余大多数web应用,其实并不需要强一致性。

因此牺牲C换取P,这是目前分布式数据库产品的方向。

4 当下NoSQL的经典应用

当下的应用是 SQL 与 NoSQL 一起使用的。

代表项目:阿里巴巴商品信息的存放。

去 IOE 化。

ps:I 是指 IBM 的小型机,很贵的,好像好几万一台;O 是指 Oracle 数据库,也很贵的,好几万呢;M 是指 EMC 的存储设备,也很贵的。

难点:

数据类型多样性。

数据源多样性和变化重构。

数据源改造而服务平台不需要大面积重构。

以上就是关于nosql和传统的数据库有什么区别全部的内容,包括:nosql和传统的数据库有什么区别、NewSQL为何使传统关系数据库黯然失色(试述newsql数据库与传统的关系数据库的区别)、什么是NoSQL数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/10156276.html

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

发表评论

登录后才能评论

评论列表(0条)

保存