Oracle之非关系数据库
什么是非关系型数据库?
非关系型数据库它的全称是Not Only SQL(简称 NoSQL数据库)是用于存储和检索数据的非关系数据库系统。在当今世界,我们不应该只以没有预定义固定模式的表格式存储所有数据(固定没有列)。像用户生成的数据、地理位置数据、物联网生成的数据一样,社交图是真实世界数据呈指数级增长的例子。这些庞大的数据也需要大量的处理。这时NoSQL数据库就出现了。使用NoSQL数据库,我们可以存储和退休的文件,键值,图形为基础的数据容易和更快。我们可以很容易地避免复杂的SQL连接操作。易于使用NoSQL DBs对实际问题(web和企业业务应用程序)进行水平伸缩。Carlo Strozzi是在1998年引入NoSQL术语的。使用NoSQL的动机——设计的简单性、对机器集群的水平扩展。
NoSQL数据库类型:
(1)文档数据库——这些数据库通常将每个键与称为文档的复杂数据结构配对。文档可以包含键数组对、键值对甚至嵌套文档。
优点:能够进行数据的快速查询。
缺点:需要存储数据之间的关系。
示例:MongoDB、CouchDB、Terrastore、CloudKit、RavenDB
(2)键值存储——每个单独的项都存储为键值对。键值存储是所有NoSQL数据库中最简单的数据库。
优点:对数据能快速查询,数据存储的扩展性强。
缺点:数据库的功能有局限性。
示例:Redis、Riak、SimpleDB、Chordless、Scalaris
(3)宽列存储——这些类型的数据库针对大型数据集上的查询进行了优化,它们将数据列存储在一起,而不是行。
优点:对数据结构要求不特别的严格。
缺点:查询性的性能不好,同时缺少一种统一查询语言。
示例:HBase、BigTable、PNUTS、HadoopDB、Cassandra
(4)图形存储——这些存储关于图形、网络的信息,例如社会关系、路线图、交通链接。
优点:可以方便的利用图结构相关算法进行计算。
缺点:要想得到结果必须进行整个图的计算,而且遇到不适合的数据模型时,图形数据库很难使用。
示例:Neo4J、GraphDB、OrientDB、InfoGrid、Infinite Graph
常见的NoSQL数据库:
MongoDB:是一个面向文档的开源NoSQL数据库。MongoDB使用JSON之类的文档来存储任何数据。它是用c++写的。
Cassandra:是Facebook为收件箱搜索开发的。Cassandra是一个用于处理大量结构化数据的分布式数据存储系统。
Redis:是最著名的键值存储。Redis是用C语言编写的。它是根据BSD授权的。
HBase:是谷歌为BigTable数据库设计的分布式非关系数据库。
Neo4j:称为原生图数据库,因为它有效地实现了属性图模型,一直到存储层。
Oracle NoSQL:实现了从用户定义的键到不透明数据项的映射。
Amazon DynamoDB:使用了一个NoSQL数据库模型,它是非关系型的,允许文档、图形和列在它的数据模型之间。
Couchbase:是一个用于交互式web应用程序的NoSQL文档数据库。它具有灵活的数据模型,易于扩展,提供一致的高性能。
Memcached:是一个开源、高性能、分布式内存缓存系统,旨在通过减少数据库负载来加速动态web应用程序。
CouchDB:是一个开源的NoSQL数据库,使用JSON存储信息,JavaScript作为查询语言。
非关系型数据库的特点:
效率高(因为存储在内存中)、但不安全(断电丢失数据,但其中redis可以同步数据到磁盘中),现在很多非关系型数据库都开始支持转存到磁盘中。
常见的NoSQL数据库的优缺点:
1、MongoDB
MongoDB是最著名的NoSQL数据库。它是一个面向文档的开源数据库。MongoDB是一个可伸缩和可访问的数据库。它在c++中。MongoDB同样可以用作文件系统。在MongoDB中,JavaScript可以作为查询语言使用。通过使用sharding MongoDB水平伸缩。它在流行的JavaScript框架中非常有用。人们真的很享受分片、高级文本搜索、gridFS和map-reduce功能。惊人的性能和新特性使这个NoSQL数据库在我们的列表中名列第一。
特点:提供高性能;自动分片;运行在多个服务器上;支持主从复制;数据以JSON样式文档的形式存储;索引文档中的任何字段;由于数据被放置在碎片中,所以它具有自动负载平衡配置;支持正则表达式搜索;在失败的情况下易于管理。
优点:易于安装MongoDB;MongoDB Inc.为客户提供专业支持;支持临时查询;高速数据库;无模式数据库;横向扩展数据库;性能非常高。
缺点:不支持连接;数据量大;嵌套文档是有限的;增加不必要的内存使用。
2、Cassandra
Cassandra是Facebook为收件箱搜索开发的。Cassandra是一个用于处理大量结构化数据的分布式数据存储系统。通常,这些数据分布在许多普通服务器上。您还可以添加数据存储容量,使您的服务保持在线,您可以轻松地完成这项任务。由于集群中的所有节点都是相同的,因此不需要处理复杂的配置。Cassandra是用Java编写的。Cassandra查询语言(CQL)是查询Cassandra数据库的一种类似sql的语言。因此,Cassandra在最佳开源数据库中排名第二。Facebook、Twitter、思科(Cisco)、Rackspace、eBay、Twitter、Netflix等一些最大的公司都在使用Cassandra。
特点:线性可伸缩;;保持快速响应时间;支持原子性、一致性、隔离性和耐久性(ACID)等属性;使用Apache Hadoop支持MapReduce;分配数据的最大灵活性;高度可伸缩;点对点架构。
优点:高度可伸缩;无单点故障;Multi-DC复制;与其他基于JVM的应用程序紧密集成;更适合多数据中心部署、冗余、故障转移和灾难恢复。
缺点:对聚合的有限支持;不可预知的性能;不支持特别查询。
3、Redis
Redis是一个键值存储。此外,它是最著名的键值存储。Redis支持一些c++、PHP、Ruby、Python、Perl、Scala等等。Redis是用C语言编写的。此外,它是根据BSD授权的。
特点:自动故障转移;将其数据库完全保存在内存中;事务;Lua脚本;将数据复制到任意数量的从属服务器;钥匙的寿命有限;LRU驱逐钥匙;支持发布/订阅。
优点:支持多种数据类型;很容易安装;非常快(每秒执行约11万组,每秒执行约81000次);操作都是原子的;多用途工具(在许多用例中使用)。
缺点:不支持连接;存储过程所需的Lua知识;数据集必须很好地适应内存。
4、HBase
HBase是谷歌为BigTable数据库设计的分布式非关系数据库。HBase的主要目标之一是托管数十亿行X数百万列。您可以随时添加服务器来增加容量。多个主节点将确保数据的高可用性。HBase是用Java 8编写的。它是在Apache下授权的。Hbase还简单地利用Java API进行客户访问。
特点:支持自动故障;线性可伸缩;提供了数据复制;与Hadoop集成,作为源和目标。
优点:为较大的表提供快速查找;提供对来自数十亿条记录的单行的低延迟访问;简单的Java API为客户端;自动分片;License-free;处理HDFS文件存储之上的大型数据集;灵活的模式设计;高速。
缺点:不支持事务;没有权限或内置身份验证;仅按键索引和排序;单点故障(当只使用一个HMaster时);不支持SQL结构;集群上的内存问题。
5、Neo4j
Neo4j被称为原生图数据库,因为它有效地实现了属性图模型,一直到存储层。这意味着数据完全按照白板的方式存储,数据库使用指针导航和遍历图。Neo4j有数据库的社区版和企业版。企业版包括Community Edition必须提供的所有功能,以及额外的企业需求,如备份、集群和故障转移功能。
特点:它支持唯一的约束;Neo4j支持完整的ACID(原子性、一致性、隔离性和持久性)规则;Java API: Cypher API和本机Java API;使用Apache Lucence索引;简单查询语言Neo4j CQL;包含用于执行CQL命令的UI: Neo4j Data Browser。
优点:容易检索其相邻节点或关系细节,无需连接或索引;易于学习Neo4j CQL查询语言命令;不需要复杂的连接来检索数据;非常容易地表示半结构化数据;大型企业实时应用程序的高可用性;简化的调优。
缺点:不支持分片。
6、Oracle NoSQL
Oracle刚刚用Oracle NoSQL启动了NoSQL数据库。它在2018年变得流行起来。与MongoDB和Casandra数据库相比,它不那么流行。Oracle NoSQL数据库实现了从用户定义的键到不透明数据项的映射。尽管它记录了键/值对的内部版本号,但是它只维护存储中的最新版本。Oracle的12c版本是为云而设计的,可以托管在一台服务器或多台服务器上,并支持管理包含数十亿条记录的数据库。Oracle最新版本的一些特性包括网格框架以及物理和逻辑结构的使用。Oracle Database 18c现在为客户提供了一个高性能、可靠和安全的平台,使他们的事务和分析工作负载(无论是在云环境中,还是在本地环境中,或者在混合云配置中)更容易、更经济地实现现代化。
特点:Oracle NoSQL数据库处理大数据;支持SQL,可以从Oracle关系数据库访问它;Oracle NoSQL数据库使用Java/C API读写数据;分布式数据库;通过节点为请求的密钥提供对数据的访问。
优点:基于PL/SQL编程结构;对等社区有助于解决所有问题;Oracle数据库是安全的,并确保不会通过提示更新篡改用户数据。
缺点:小型组织的高成本;安装需要大量的资源;甚至可能需要硬件升级才能实现Oracle;占用了很多空间。
7、Amazon DynamoDB
DynamoDB使用了一个NoSQL数据库模型,它是非关系型的,允许文档、图形和列在它的数据模型之间。每个DynamoDB查询由用户标识的主键执行,主键唯一标识每个项。它还减轻了客户操作和扩展分布式数据库的负担。因此,硬件供应、设置、配置、复制、软件补丁、集群扩展等都由Amazon管理。
特点:高可伸缩性;用于索引值范围的散列范围;将数据存储在分区中;使用JSON作为传输协议,而不是存储格式。
优点:易于设置;提供底层AWS DynamoDB API;自动伸缩;降低管理高可用性和高峰使用时间伸缩的复杂性;静止加密;DynamoDB的安全性由AWS标识控制。
缺点:不免费备份您的表;大小限制。
8、Couchbase
重点是易用性,包括web。它是一个NoSQL文档存储数据库。Couchbase Server是一个用于交互式web应用程序的NoSQL文档数据库。它具有灵活的数据模型,易于扩展,提供一致的高性能。Couchbase Server、JSON文档用于表示应用程序对象和对象之间的关系。
特点:与Kubernetes一起大规模自动故障转移部署和管理Couchbase;索引分区;通过N1QL查询本地支持JSON数据;数据压缩;事件服务。
优点:综合优化;降低网络、内存和存储的成本;极棒的管理面板,提供了大量关于您的集群如何执行的见解。
缺点:Couchbase不是开源的。
9、Memcached
Memcached是一个开源、高性能的分布式内存缓存系统,旨在通过减少数据库负载来加速动态web应用程序。它是存储在内存中的字符串、对象等的键值字典,由数据库调用、API调用或页面呈现生成。它现在被Netlog、Facebook、Flickr、Wikipedia、Twitter和YouTube等网站使用。
特点:通过TCP或UDP的客户机-服务器应用程序;减少数据库负载;Memcached服务器是一个大哈希表;高效的网站与高数据库负荷;根据Berkeley Software Distribution license进行分发;将内存缓存合并到逻辑池中。
优点:安装快;广泛记录在一个巨大的社区中。
缺点:只支持Linux操作系统和类似于BSD的系统;不支持数据冗余;不支持锁、通读、CAS。
10、CouchDB
CouchDB是一个开源的NoSQL数据库,它使用JSON存储信息,JavaScript作为查询语言。它采用了一种多版本控制系统,避免了DB文件在写入过程中被阻塞。Erlang。它是在Apache下授权的。它在2016年最受欢迎的NoSQL数据库中排名第一。
特点:Map/Reduce列表和显示;提供数据库级安全;身份验证像web应用程序一样通过会话cookie打开;JSONP是免费的;按照文档存储;支持ACID属性;提供最简单的复制形式;基于浏览器的GUI来处理数据、权限和配置。
优点:Map/Reduce,查询数据在某种程度上与数据本身是分离的;存储任何JSON数据。
缺点:任意查询都很昂贵;使用CouchDB需要额外的空间;不支持XML。
Oracle之非关系数据库的更多相关文章
- 前端开发必学技能之一———非关系数据库又像关系数据库的MongoDB快速入门第一步下载与安装
数据库总的来说,分为两个方向:关系数据库和非关系数据库.我们常见的MySQL.Oracle.SQLSerever以及IBMDB2都是属于关系数据库,这里的关系值得是二维表的结构,但是由于随着web的应 ...
- MongoDB是一个介于关系数据库和非关系数据库之间的产品
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型.M ...
- NoSQL数据库探讨之一 - 为什么要用非关系数据库?
随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速.而传统的关系数据库在应付 web2.0网站,特别是超大规模和高并发的SNS类型的web2 ...
- Oracle官方非托管Odac驱动与Oracle官方托管odac驱动
方便自己,方便他人,记一次连接oracle的经历,使用 [Oracle官方非托管Odac驱动,Oracle.DataAccess.Client]连接数据库的时候程序会报错,找了很久都不知道是什么原因, ...
- 非关系数据库一Memcached
第三十四课 非关系数据库一Memcached 目录 一.nosql介绍 二.memrcached介绍 三.安装memcached 四.查看memcachedq状态 五.memcached命令行 六.m ...
- oracle删除非空的表空间
oracle删除非空的表空间: drop tablespace tablespaceName including contents;
- 【Oracle】非RMAN恢复数据文件、控制文件
实验环境:OEL 5.6 oracle 11g(11.2.0.4.0) 注意: system表空间数据文件不能在线recover,需要启动到mount状态再recover: undo表空间数据文件可以 ...
- 非关系数据库与redis安装
1.什么是 NoSQL? NoSQL(NoSQL = Not Only SQL ),意为反 SQL 运动,是一项全新的数据库革命性运动,2000 年 前就有人提出,发展至 2009 年趋势越发高涨.它 ...
- oracle 归档/非归档
1.查看oralce是归档模式还是非归档模式 SQL> select name,log_mode from v$database; NAME LOG_MODE------------------ ...
随机推荐
- cp 不提示按y
yes|cp index.html.j2 yml -rf \cp index.html.j2 yml/ 两个效果是一样的
- yum搭建私有仓库远程版
目录 一:yum安装 1.简介 1.安装 2.卸载 3.更新 4.yum安装的生命周期 二:yum搭建私有仓库(本地版) 1.下载必须的软件包(准备配置) 2.创建软件仓库 3.下载对应的软件 4.初 ...
- ApacheCN NodeJS 译文集 20211204 更新
Node API 开发入门指南 零.前言 一.Node.js 简介 二.构建 API--第 1 部分 三.构建 API--第 2 部分 React TypeScript Node 全栈开发 零.序言 ...
- 计算机电子书 2020 CDNDrive 备份(预览版)
下载方式 pip install CDNDrive # 或 # pip install git+https://github.com/apachecn/CDNDrive cdrive download ...
- Net6 DI源码分析Part2 Engine,ServiceProvider
ServiceProvider ServiceProvider是对IServiceProvider实现,它有一个internal的访问修饰符描述的构造,并需要两个参数IServiceCollectio ...
- 为什么要配置path环境变量
因为在jdk下bin文件夹中有很多我们在开发中要使用的工具,如java.exe,javac.exe,jar.ex等,那么我们在使用时,想要在电脑的任意位置下使用这些java开发工具,那么我们就需有把这 ...
- HOOK API(二) —— HOOK自己程序的 MessageBox
转载来源:https://www.cnblogs.com/hookjc/ 0x00 前言 以下将给出一个简单的例子,作为HOOK API的入门.这里是HOOK 自己程序的MessageBox,即将自己 ...
- 基于Itextpdf合成PDF
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/12023314.html 开发过程中有用到PDF合成, 记录一下合成的方法和代码. 使用工具 : ...
- Java中线程的状态及其转化
线程状态转化图: 说明: 线程总共包括以下5种状态. 1.新状态New:该状态也叫新建状态,当线程对象被创建后,线程就进入了新建状态.例如:Thread thread = new Thread();. ...
- k8s之list-watch机制、节点调度以及亲和性
k8s之list-watch机制.节点调度以及亲和性 目录 k8s之list-watch机制.节点调度以及亲和性 一.list-watch机制 1. list-watch介绍 2. list-watc ...