首页 > 数据库 >NoSQL数据库的四大分类的分析

NoSQL数据库的四大分类的分析

时间:2023-06-05 10:05:49浏览次数:67  
标签:NoSQL 数据库 特性 四大 应用 一致性 数据

1NoSQL数据库的四大分类

NoSQL数据库的四大分类的分析_数据

2共同特征

对于NoSQL并没有一个明确的范围和定义,但是他们都普遍存在下面一些共同特征:

不需要预定义模式:不需要事先定义数据模式,预定义表结构。数据中的每条记录都可能有不同的属性和格式。当插入数据时,并不需要预先定义它们的模式。

无共享架构:相对于将所有数据存储的存储区域网络中的全共享架构。NoSQL往往将数据划分后存储在各个本地服务器上。因为从本地磁盘读取数据的性能往往好于通过网络传输读取数据的性能,从而提高了系统的性能。

弹性可扩展:可以在系统运行的时候,动态增加或者删除结点。不需要停机维护,数据可以自动迁移。

分区:相对于将数据存放于同一个节点,NoSQL数据库需要将数据进行分区,将记录分散在多个节点上面。并且通常分区的同时还要做复制。这样既提高了并行性能,又能保证没有单点失效的问题。

异步复制:和RAID存储系统不同的是,NoSQL中的复制,往往是基于日志的异步复制。这样,数据就可以尽快地写入一个节点,而不会被网络传输引起迟延。缺点是并不总是能保证一致性,这样的方式在出现故障的时候,可能会丢失少量的数据。

BASE:相对于事务严格的ACID特性,NoSQL数据库保证的是BASE特性。BASE是最终一致性和软事务。

NoSQL数据库并没有一个统一的架构,两种NoSQL数据库之间的不同,甚至远远超过两种关系型数据库的不同。可以说,NoSQL各有所长,成功的NoSQL必然特别适用于某些场合或者某些应用,在这些场合中会远远胜过关系型数据库和其他的NoSQL。

3适用场景

NoSQL数据库在以下的这几种情况下比较适用:

1、数据模型比较简单;

2、需要灵活性更强的IT系统;

3、对数据库性能要求较高;

4、不需要高度的数据一致性;

5、对于给定key,比较容易映射复杂值的环境。

 

4发展现状

计算机体系结构在数据存储方面要求具备庞大的水平扩展性,而NoSQL致力于改变这一现状。Google的 BigTable 和Amazon 的Dynamo使用的就是NoSQL型数据库。

NoSQL项目的名字上看不出什么相同之处,但是,它们通常在某些方面相同:它们可以处理超大量的数据。

这场革命仍然需要等待。的确,NoSQL对大型企业来说还不是主流,但是,一两年之后很可能就会变个样子。在NoSQL运动的最新一次聚会中,来自世界各地的150人挤满了CBS Interactive的一间会议室。分享他们如何推翻缓慢而昂贵的关系数据库的暴政的经验,怎样使用更有效和更便宜的方法来管理数据。

“关系型数据库给你强加了太多东西。它们要你强行修改对象数据,以满足RDBMS (relational database management system,关系型数据库管理系统)的需要,”在NoSQL拥护者们看来,基于NoSQL的替代方案“只是给你所需要的”。

水平扩展性(horizontal scalability)指能够连接多个软硬件的特性,这样可以将多个服务器从逻辑上看成一个实体。

5挑战

尽管大多数NoSQL数据存储系统都已被部署于实际应用中,但归纳其研究现状,还有许多挑战性问题。

已有key-value数据库产品大多是面向特定应用自治构建的,缺乏通用性;

已有产品支持的功能有限(不支持事务特性),导致其应用具有一定的局限性;

已有一些研究成果和改进的NoSQL数据存储系统,但它们都是针对不同应用需求而提出的相应解决方案,如支持组内事务特性、弹性事务等,很少从全局考虑系统的通用性,也没有形成系列化的研究成果;

缺乏类似关系数据库所具有的强有力的理论(如armstrong公理系统)、技术(如成熟的基于启发式的优化策略、两段封锁协议等)、标准规范(如SQL语言)的支持。

目前,HBase数据库是安全特性最完善的NoSQL数据库产品之一,而其他的NoSQL数据库多数没有提供内建的安全机制,但随着NoSQL的发展,越来越多的人开始意识到安全的重要,部分NoSQL产品逐渐开始提供一些安全方面的支持。

随着云计算、互联网等技术的发展,大数据广泛存在,同时也呈现出了许多云环境下的新型应用,如社交网络网、移动服务、协作编辑等。这些新型应用对海量数据管理或称云数据管理系统也提出了新的需求,如事务的支持、系统的弹性等。同时云计算时代海量数据管理系统的设计目标为可扩展性、弹性、容错性、自管理性和“强一致性”。目前,已有系统通过支持可随意增减节点来满足可扩展性;通过副本策略保证系统的容错性;基于监测的状态消息协调实现系统的自管理性。“弹性”的目标是满足Pay-per-use 模型,以提高系统资源的利用率。该特性是已有典型NoSQL数据库系统所不完善的,但却是云系统应具有的典型特点;“强一致性”主要是新应用的需求。

标签:NoSQL,数据库,特性,四大,应用,一致性,数据
From: https://blog.51cto.com/u_15130867/6413197

相关文章

  • 【获奖案例巡展】信创先锋之星——江西金发基于分布式数据库的互联网金融业务系统
    为表彰使用大数据、人工智能等基础软件为企业、行业或世界做出杰出贡献和巨大创新的标杆项目,星环科技自2021年推出了“新科技星力量”星环科技科技实践案例评选活动,旨在为各行业提供更多的优秀产品案例,彰显技术改变世界的力量,目前已成功举办两届,收到了来自各界的积极参与。 第二......
  • 部署postgresql数据库
    当使用Docker部署PostgreSQL时,可以按照以下步骤进行操作:首先,确保已经安装了Docker并启动了Docker服务。打开终端或命令行界面,运行以下命令以拉取最新的PostgreSQLDocker镜像:dockerpullpostgres容器的启动命令将需要指定一些参数,如容器名称、端口映射、密码等。以下是一个示例命......
  • jsp调用数据库
    deviceInfos.jsp<%@pageimport="java.io.BufferedReader"%><%@pageimport="java.io.FileReader"%><%@pageimport="java.io.*"%><%@pageimport="java.sql.*"%><%@pagelanguage="java&qu......
  • 【Windows】TreeSoft数据库管理系统 TreeDMS 和 TreeNMS
    官方地址:http://www.treesoft.cn/dms.html#learningTreeSoft数据库管理系统TreeDMS支持MySQL,MariaDB,Oracle,PostgreSQL,SQLServer,DB2,MongoDB,Hive,SAPHANA,Sybase,Caché,Informix,Impala,ElasticSearch,clickHouse,cassandra,AmazonRedshift,达梦DM,金仓Kin......
  • Ofbiz安装, 调试 和 迁移数据库
    如何将OFBIZ(opentaps)默认数据库迁移至mysql[url]http://blog.sina.com.cn/s/blog_4a4820f9010008oo.html[/url]OFBiz12.4数据库转变成Mysql[url]http://wxynxyo.iteye.com/blog/1955648[/url]Ofbiz的安装[url]http://tomhat.iteye.com/blog/1330491[......
  • 数据库管理工具远程连接MySQL实例服务失败Host ... is not allowed to connect to thi
    MySQL社区版数据库8.0版本添加账号、分配权限、删除账号MySQL安全连接失败问题排查......
  • oracle一个不可不懂的数据库,来一波视频
    Spring常用注解redis视频集合,看完这些别说不会redis第0讲.开山.wmv第1讲.oracle基础介绍.wmv第2讲.oralce安装.wmv第3讲.oracle的基本使用.wmv第4讲.oracle用户管理(1).wmv第5讲.oracle用户管理(2).wmv第6讲.oracle表的管理(1).wmv第7讲.oracle表的管理(2).wmv第8讲.oracle表查询(1......
  • 虚谷数据库语法问题
    使用V11版本1、插入多条数据问题需要把插入数据的中间逗号去掉你图上的这个用法我们在v12的发行版上已经支持了,你那边报错是因为你现在使用的是v11吧INSERTINTOCLASS(CLASSID,CLASSNAME)VALUES(333,'666')(777,'888');2、连接字符串concat函数CONCAT(S1,s2)concat的参数......
  • 4、数据库:MySQL部署 - 系统部署系列文章
          MySQL数据库在其它博文中有介绍,包括学习规划系列。今天就讲讲MySQL的部署事情。一、先下载MySQL数据库;到下面这个网址去下载数据库,这里下载的社区版:https://dev.mysql.com/downloads/installer/二、安装数据库;打开EXE文件;       ......
  • Django迁移数据库编码错误
    mysql编码错误问题出现在用django的admin组件向数据库添加数据时发生的编码错误(1366,"Incorrectstringvalue:'\\xE5\\x8D\\x83\\xE7\\x89\\x9B...'forcolumn'title'atrow1")以为django可以进行数据库的迁移,但是你还是要去手动在mysql中创建一个数据库名,所以在创建的......