有许多类型的数据库。本文对常用的关系数据库(如Oracol、SQLSer、mysql等)的优缺点进行了详细的分类和分析。)和非关系数据库(如MongoDB、Cassandra、Hadoop HBase等。).
目录
关系数据库:Oracle SQL server sybaseinformax Access DB 2 mysqlvpingers FoxPro非关系数据库:mongodbcassandrachdbypertablerediriakneo 4j Hadoop hbacebasememched brevendbvoldemort关系数据库与非关系数据库的比较
关系型数据库:
关系数据库的优势:
维护数据一致性(交易处理)
由于标准化的前提,数据更新的成本很小(同一领域基本只有一个位置)。
您可以执行复杂的查询,如连接。
缺点:
高并发读写需求:网站的用户并发量非常高,往往达到每秒上万次读写请求。对于传统的关系数据库,硬盘I/O是一个很大的瓶颈。
海量数据的高效读写:对于数据庞大的网站,关系数据库的查询效率很低。
概念:是基于关系模型的数据库,数据库中的数据是用集合代数等数学概念和方法处理的。
常见的关系型数据库
Oracle
Oracle,也称为Oracle RDBMS,简称Oracle。它是甲骨文公司的一个关系数据库管理系统。
SQLServer
美国微软公司推出的一种关系数据库系统。SQL Server是为分布式客户/服务器计算设计的可扩展、高性能的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。
Sybase
基于客户/服务器结构的数据库。一般的关系数据库是基于主/从模型的。在主/从结构中,所有的应用程序都在一台机器上运行。用户只通过终端发送命令或简单地检查应用程序运行的结果。在客户机/服务器结构中,应用程序分布在多台机器上。一台机器是另一个系统的客户或其他机器的服务器。这些机器通过局域网或广域网连接。
Informix
Informix是IBM生产的一系列关系数据库管理系统(RDBMS)。
Access
Microsoft Office Access是微软发布的关系数据库管理系统。它结合了MicrosoftJet数据库引擎和图形用户界面的特点,是Microsoft Office的系统程序之一。
DB2
DB2是IBM的分布式数据库解决方案。它是由IBM开发的大型关系数据库平台。它支持多个用户或应用程序在同一个SQL语句中查询不同数据库甚至不同DBMS中的数据。
mysql
MySQL是一个开源的关系数据库管理系统(RDBMS),使用最常用的数据库管理语言——结构化查询语言(SQL)进行数据库管理。
vfp
Visual FoxPro是微软公司从Fox公司的FoxBase数据库软件经过多次改进,移植到Windows后得到的应用开发软件。主要用于开发数据管理和操作软件。VFP是微软公司最新推出的可视化数据库管理系统平台,是一个特别强大的32位数据库管理系统。它提供了功能齐全、用户界面极其友好、数据访问方式简单、独特的跨平台技术、兼容性好、真正可编译、安全性强的工具。它是目前最快最实用的数据库管理系统软件之一。
Ingers
Ingres是早期的数据库系统,始于加州大学伯克利分校的一个研究项目,该项目始于70年代初,止于80年代初。和伯克利大学的其他研究项目一样,它的代码使用BSD许可证。从20世纪80年代中期开始,在Ingres的基础上出现了许多商业数据库软件,包括Sybase、Microsoft SQL Server、NonStop SQL、Informix等许多系统。1980年代中期开始的后继项目Postgres产生了PostgreSQL和Illustra。在任何意义上,Ingres都是历史上最有影响力的计算机研究项目之一。
FoxPro
FoxPro是一个功能强大的数据库,是当今最流行的数据库管理软件之一。与FoxBASE相比,FoxPro在功能和性能上都有很大的提升,主要是通过引入窗口、按钮、列表框、文本框等控件,进一步提高了系统的开发能力。
非关系型数据库:
分类:
优势:
成本:NoSql数据库简单且易于部署。基本上就是开源软件。不需要和oracle一样的购买和使用成本,比关系型数据库便宜。
查询速度:NoSql数据库将数据存储在缓存中,而关系型数据库将数据存储在硬盘中,自然查询速度远不及NoSql数据库。
存储格式:NoSql数据库的存储格式是键、值、文档、图片等。所以可以存储基本类型和对象或集合等各种格式,而数据库只支持基本类型。
扩展性:关系数据库有join这样的多表查询机制的限制,很难扩展。
缺点:
维护工具和材料有限,因为NoSql是新技术,跟关系数据库10多年的技术没法比。
不支持Sql,如果不支持Sql等行业标准,会造成用户学习和使用的一定成本。
它不提供关系数据库来处理事情。
常见的非关系型数据库
MongoDB
面向文档的数据库
MongoDB是一个面向文档的数据库,使用JSON风格的数据格式。非常适合网站的数据存储、内容管理和缓存应用,可以通过配置实现复制和高可用功能。
MongoDB具有很强的可扩展性和优秀的性能。它是用C写的,基于文档存储。此外,MongoDB还支持全文搜索、跨广域网和局域网的高可用性、易于实现的复制、横向扩展、丰富的基于文档的查询,以及在数据处理和聚合方面的强大灵活性。
Cassandra
面向列的数据库
这是Apache软件基金会的一个项目。Cassandra是一个分布式数据库,支持分布式数据存储,可以实现容错和无单点故障。换句话说,“Cassandra非常适合那些不能忍受数据丢失的应用”。
CouchDB
面向文档的数据库
这也是Apache软件基金会的一个项目。CouchDB是另一个面向文档的数据库,以JSON格式存储数据。它与酸相容。和MongoDB一样,CouchDB也可以用来存储网站的数据和内容,并提供缓存。可以通过JavaScript在CouchDB上运行MapReduce查询。此外,CouchDB还提供了一个非常方便的基于Web的管理控制台。非常适合Web应用。
Hypertable
Hypertable模仿Google的BigTable数据库系统。Hypertable的创建者以“成为高可用、PB级数据库的开源标准”为目标。换句话说,Hypertable被设计为在多个廉价的服务器上可靠地存储大量数据。
Redis
键值存储
这是一个开源的高级键值存储。因为在键中使用了hash、set、string、sorted set和list,所以Redis也被称为数据结构服务器。该系统可以帮助您执行原子操作,如在哈希中添加值、集合的交集、字符串拼接、差集和并集等。Redis通过内存中的数据集实现高性能。此外,该数据库与大多数编程语言兼容。
Riak
Riak是最强大的分布式数据库之一,它为用户提供了简单和可预测的可伸缩性、快速测试、原型和应用程序部署能力,从而简化了应用程序开发过程。
Neo4j
Secondary是一个性能非常高的NoSQL图形数据库。它具有健壮和成熟系统的所有特性,为程序员提供了灵活的面向对象的网络结构,并允许开发人员充分享受具有完整事务特性的数据库的所有好处。与RDBMS相比,Secondary还为一些应用程序提供了许多性能改进。
Hadoop HBase
HBase是一个可扩展的分布式大数据存储。它可以用于数据的实时和随机访问场景。HBase具有模块化和线性伸缩性,可以保证读写的严格一致性。HBase提供了一个Java API,可以实现客户端轻松访问;提供可配置的自动表分区功能;还有Bloom filter、block cache等功能。
Couchbase
虽然Couchbase是CouchDB的衍生产品,但它已经成为一个功能齐全的数据库产品。它向文档数据库转移的趋势会给MongoDB带来压力。它在每个节点上都是多线程的,这是一个非常重要的可伸缩性优势,尤其是当它托管在定制或裸机硬件上时。凭借一些优秀的集成特性,比如与Hadoop的集成,Couchbase是数据存储的一个非常好的选择。
MemcacheDB
临时性键值存储
这是一个分布式键值存储系统,我们不应该将它与缓存解决方案相混淆。相反,它是一个持久存储引擎,用于以非常快速和可靠的方式存储数据和检索数据。它遵循memcache协议。它的存储后端在Berkeley DB中使用,支持复制、事务等特性。
REVENDB
RAVENDB是第二代开源数据库,面向文档存储,没有模式,所以很容易在其中存储对象。它提供了非常灵活和快速的查询。通过提供对复制、多租户和碎片化的开箱即用支持,我们可以轻松实现扩展功能。它为ACID事务提供了完整的支持,同时也能保证数据的安全性。除了高性能之外,它还通过bundle提供了简单的可伸缩性。
Voldemort
这是一个自我复制的分布式存储系统。它提供自动数据分区、透明的服务器故障处理、可插拔序列化、独立节点、数据版本控制和跨各种数据中心的数据分发。
关系型数据库与非关系型数据库的对比
有很多数据库,其中一些提供类似的功能。本文仅列举12个有代表性的。你用过吗?它们的哪些特点打动了你,让你决定使用它们?欢迎和我们分享你的经验和观点。希望大家以后多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。