现有数据库简介2019年
SQL 数据库分类
Relational DBMS | Multi-model | Relational DBMS | Multi-model |
---|---|---|---|
Oracle | Document store, Graph DBMS, RDF store | MySQL | Document store |
Microsoft SQL Server | Document store, Graph DBMS | PostgreSQL | Document store |
IBM DB2 | Document store, RDF store | Microsoft Access | - |
SQLite | - | MariaDB | Document store, Graph DBMS |
Hive | - | Teradata | Document store, Graph DBMS, Time Series DBMS |
FileMaker | - | SAP Adaptive Server | - |
SAP HANA | Document store, Graph DBMS | Microsoft Azure SQL Database | Document store, Graph DBMS |
Informix | Document store, Time Series DBMS | Google BigQuery | - |
Vertica | Document store | Firebird | - |
Amazon Redshift | - | Netezza | - |
Spark SQL | - | Impala | Document store |
dBASE | - | Greenplum | Document store |
Oracle Essbase | - | Microsoft Azure SQL Data Warehouse | - |
MySQL/MariaDB
2008 年美国 Sun 公司花费 10 亿美元收购 MySQL,一年后 Oracle 公司又花费 60 亿美元收购了 Sun 公司,从此 Sun 公司的服务器、操作系统、MySQL 等产品线全部归属 Oracle 公司。拉力·艾立森奉行的经营哲学是“竞争不过它,我就买了它”。竞争不过,说明竞争对手的产品更具优势,所以收购它,从而变成自己的优势。几十年来,Oracle 从一家小型数据库公司变成今天覆盖硬件、平台软件、数据库、中间件、应用软件各个层次产品线的 IT 巨无霸,靠的就是美国的良好环境和总裁奉行的收购策略。
MySQL 数据库占据中小型数据库应用市场的半壁江山,在这块市场,Oracle 数据库明显占下风,巅峰时世界上超过 70% 的网站后台都采用 MySQL 数据库。但是自从被 Oracle 公司收购后,MySQL 发展明显趋缓,是继续开源还是闭源,Oracle 公司一直没下定论。于是 MySQL 的原班人马陆续离开 Oracle 公司,另立炉灶,推出了 MariaDB 开源数据库。
MariaDB 继承了 MySQL 小巧精悍、简洁高效、稳定可靠的特征,并与 MySQL 保持兼容。时至今日,已有 Google、Facebook 等知名企业把应用从 MySQL 切换到了 MariaDB 上,各种 Linux 发行版的操作系统默认数据库都开始采用 MariaDB;而 Apple 公司反应更快,当 Oracle 公司收购 Sun 公司时,就切换到了 PostgreSQL 数据库。
截至 2014 年年末的数据库综合排名,MySQL 继续位居第二名,但是其表现出来的颓势较明显,而 MariaDB 却具备强劲的生命力。MariaDB 是一个开源的免费的关系数据库,截至发稿前的最新版本是 10.0.15,安装包可从 https://downloads.mariadb.org 网站下载。整个安装包大约 200MB,几乎能在所有的操作系统上安装和运行,与 Oracle 数据库、SQL Server、DB2 等商业数据库动辄好几张光盘相比,算是短小精悍了。另外,也可以从这个网站下载数据库的源代码。对于非数据库型的 SaaS 云提供商来说,云端采用 MariaDB 是最好的选择,而且可以轻松搭建数据库集群。
PostgreSQL
PostgreSQL 能被苹果公司大量使用并替换早期的 MySQL 数据库,说明其一定有不俗的表现。在 2014 年年末的数据库排行榜上,PostgreSQL 位居第四位,号称世界上最先进的、最安全的开源数据库,也是面向对象的关系数据库。华为内部局域网接入控制系统 SPES 也采用 PostgreSQL 数据库,在 Linux 操作系统上运行,极少出问题。经过十多年的磨砺,如今 PostgreSQL 数据库具备如下特点:
面向对象,安全性极高,能运行在全部主流的操作系统上,完全 ACID 兼容。支持外键、连接、视图、触发器和存储过程(多语言)。支持最新的 SQL 2008 标准的数据类型,包括整型、数字型、字符型、布尔型、可变字符型、日期型、时间戳、自增长型以及各种二进制对象(如图片、声音和视频等)。提供了各种流行语言的编程接口,如 C/C++、Java、.NET、Perl、Python、Ruby、Tcl、ODBC 等。PostgreSQL 数据库同时具备很多众多令人振奋的优点,比如在线备份、数据域、表分区、表空间、嵌套事务、时刻点恢复、两段式提交、多版本并发控制、子查询等。在 PostgreSQL 中,数据库大小没有限制,表大小上限为 32TB,一条记录的大小上限为 1.6TB,字段大小上限是 1GB,一个表包含的记录数没有限制,一条记录的字段数上限为 1600 个,一个表上创建的索引数目没有限制。
NoSQL 数据库分类
类型 | 部分代表 | 特点 |
---|---|---|
列存储 | Hbase, Cassandra, Hypertable, Accumulo | 顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。 |
文档存储 | MongoDB, CouchDB, Couchbase, Amazon DynamoDB, MarkLogic | 文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有机会对某些字段建立索引,实现关系数据库的某些功能。 |
key-value存储 | Tokyo Cabinet/Tyrant, Berkeley DB, MemcacheDB, Redis, RiakKV, Hazelcast, Ehcache | 可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能) |
图存储 | Neo4J, FlockDB, OrientDB, Titan, Virtuoso, ArangoDB | 图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。 |
对象存储 | db4o, Caché, Versant Object Database, ObjcctStore, Matisse | 通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。 |
xml数据库 | Berkeley DB XML, BaseX | 高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。 |
搜索引擎 | Elasticsearch, Solr, Splunk, MarkLogic, Sphinx | 存储的目的是为了搜索,主要功能是搜索。 |
时序数据库 | InfluxDB, RRDtool, Graphite, OpcnTSDB, Kdb+ | 存储时间序列数据,每条记录都带有时间戳。如存储从感应器采集到的数据。 |
矩阵存储数据库 | TileDB |
Cassandra
Cassandra 是在 Google 的 Bigtable 基础上发展起来的 NoSQL 数据库,由脸谱于 2008 年用 Java 语言开发,目前被贡献给 Apache 基金会。Cassandra 被称为“列数据库”,这里的“列”不是指关系数据库中一个表中的列,而是由“键—值”对组成的列表(语法与 Python 语言中的列表相同)。Cassandra 中一行数据语法是“一行的键={列,列,…}”,一行可包含上百万列,Cassandra 中的列族(ColumnFamily)格式是“列族名={若干行}”,一个列族可包含几十亿行。一个 Cassandra 运行实例管理很多键空间(Keyspace),Keyspace 相当于关系数据库管理系统中的数据库,一个键空间包含很多列族。键空间、列族、行、列的关系如图所示。
InfluxDB
InfluxDB 是一个开源的时间序列数据库,能应付极高的写和查询并发数,主要用于存储大规模的时间戳数据(每条记录自动附加时间戳),如 DevOps 监控数据、应用系统运行指标数据、物联网感应器采集的数据及实时分析的结果数据等。InfluxDB 具备如下特征:全部用 Go 语言编写,并被编译成单一运行程序,无须第三方依赖。简洁、高效地写和查询 HTTP(S)编程接口(API)。通过插件能与其他的数据采集工具集成,如 Graphite、collectd、OpenTSDB。可以搭建高可用性的 InfluxDB 环境。量身定制化的类-SQL 语言。允许给序列数据附加标签来创建索引,以便快速高效查询。通过定义策略轻松实现自动失效过时的数据。基于 Web 的管理界面。
对于一个具体的时间序列应用来说,除存储外,还需要集成数据采集、可视化和告警功能。为此,InfluxData 社区相应提供了 Telegraf(数据采集)、Chronograf(数据可视化)、Kapacitor(告警)三个开源项目,再加上 InfluxDB,能部署成一个完整的时间序列应用系统(简称为 TICK)。这四者的关系如图 1 所示。
Redis
Redis 是遵循 BSD 开源协议的存储系统,数据存储在内存中,因此具备极高的性能,可用作数据库、缓存和消息中间件。Redis 支持多种类型的数据结构,如字符串、哈希、列表、集合、带范围查询的有序集合、位图、hyperloglogs 和带半径查询的地理空间索引。Redis 内置了复制、脚本语言编程、最近最少使用(LRU)淘汰、事务以及不同级别的磁盘持久化等功能,通过 Redis Sentinel 和集群自动分区机制实现高可用性。Redis 采用 C 语言编写,能运行在 Windows、MacOS X、Linux、Solaris 等操作系统上,不过 Linux 是其最佳的运行平台,无须第三方依赖,它提供了最广泛的编程语言接口。
MongoDB
MongoDB 是排名第一的文档数据库,属于 NoSQL 大类,诞生于 2009 年,正好是云计算兴起的前夜。MongoDB 采用 C++ 语言开发,能运行在 Windows、MacOS X、Linux、Solaris 操作系统上,提供了绝大部分计算机语言的编程接口。保存在 MongoDB 中的一条记录称为一个文档,类似 JSON 语法。MongoDB 的主要优势包括:高性能、富查询语言(支持 CRUD、数据聚合、文本搜索和地理空间查询)、高可靠性、自动伸缩架构、支持多存储引擎。MongoDB 适合文档存储、检索和加工的应用场合,如大数据分析。
Neo4j
Neo4j 是一个用 Java 语言开发的图数据库,它将结构化数据存储在由“点—边”组成的网络(数学术语叫“图”)上而不是表中。与关系数据库相比,图数据库擅长处理大量复杂、互连接、低结构化的数据。这些数据变化迅速,需要频繁查询,如果使用关系数据库,那么这些查询会导致大量的表连接,因此会产生性能上的问题。
Neo4j 重点解决了拥有大量连接的传统关系数据库在查询时出现的性能衰退问题。Neo4j 还提供了非常快的图算法、推荐系统和 OLAP 风格的分析,而这一切在目前的关系数据库系统中都无法实现。Neo4j 提供了广泛使用的 REST 接口,能够方便地集成到基于 Java、PHP、.NET 和 JavaScript 的环境里。Neo4j 使用 Cypher 语言进行增删改操作。
Elasticsearch
Elasticsearch 是一个高度可扩展的开源全文搜索和分析引擎,用于存储、搜索和近乎实时地分析大规模数据。Elasticsearch 常被人们用于构建具备复杂搜索功能的应用系统,比如维基百科和优步的搜索,再比如网店中搜索商品、商业智能、日志收集与分析、价格告警等。利用 Elasticsearch 实现的数据采集、存储和可视化套件 ELK(Elasticsearch、Logstash、Kibana)在日志分析领域应用最为广泛。
Caché
大概 20 年前,人们提出了后关系型数据库的概念,目前已有不少产品,其中由 InterSystems 公司开发的 Caché 是后关系型数据库中的领头羊,它提供 3 种方式访问数据:对象访问、SQL 访问、直接对多维数据数组访问,而且 3 种访问方式能够并发访问同一数据。多维数据结构和多种数据库访问方式构成了后关系型数据库的基础。Caché 数据库具备如下一些特点:Caché 数据库在同等条件下查询相同数据,比 Oracle 等普通数据库要快 7~20 倍。存储空间可能节省 2/3,而基于 Caché 的应用程序,比原来基于关系型数据库的应用程序运行有可能快 20 倍。Caché 数据库支持标准 SQL 语句,因此不太熟悉 M 语言的用户依然可以轻松对数据库中的数据进行操作。Caché 数据库支持 ODBC 标准接口,因此在与其他系统进行数据交换时非常容易,同时 Caché 亦可以将数据输出为文本文件格式,以供其他系统访问调用。Caché 数据库能够在真正意义上实现 3 层结构,实现真正的分布式服务,便于做横向扩张。Caché 数据库是真正的对象型数据库,开发时用户可直接用数据库定义自己想要的对象,然后再在其他开发工具中调用该对象的方法和属性即可完成开发工作,非常方便。Caché 数据库提供自带的 Web 开发工具,使用、维护非常方便,符合当今软件业发展的趋势。Caché 数据库的价格比 Oracle 数据库要便宜很多。Caché 数据库在欧美的医疗系统使用最为普遍,被医疗界公认为首选的数据库,国内中山大学第三附属医院、深圳南山医院、北京安贞医院等也采用 Caché 数据库。
更多数据库请关注:
数据库排名
卡内基梅隆 数据库导论 (CMU 15-445/645, Intro to Database Systems, Fall 2018)【英】
卡内基梅隆 高级数据库 (CMU 15-721 Advanced Database Systems, Spring 2018)【英】
卡内基梅隆 高级数据库 2019 (CMU 15-721 Advanced Database Systems, Spring 2019)【英】
卡内基梅隆 七周七数据库 (CMU, Seven Databases in Seven Weeks)
卡内基梅隆 数据库学 (CMU, The Databaseology)
卡内基梅隆 时间序列数据库 (CMU, Time Series Database)
现有数据库简介2019年相关推荐
- 【GaussDB数据库简介】
简介 2019年5月15日华为发布了全球首款AI-Native的分布式的数据库,底层是基于Postgresql开发的MPP架构的数据库,支持行存和列存,同时具备PB级数据量的处理能力. 思考:Gaus ...
- NCBI中SRA数据库简介
NCBI中SRA数据库简介 SRA数据库简介 SRA 数据库, 为Sequence Read Archive 的缩写.主要存储高通量测序的数据,来自四个测序平台,分别为: Roche_LS454,Il ...
- 使用PowerDesigner 15对现有数据库进行反向工程(图解教程) by Yulh
原文 使用PowerDesigner 15对现有数据库进行反向工程(图解教程一) by Yulh 由于早期的一个项目在数据库设计建立时没有输出为E-R图,偶在对此项目进行二次改造升级时则使用了PD对原 ...
- php mysql数据库简介,mysql数据库
数据库简介 什么是数据库 保存和管理数据的仓库,数据库 什么是数据 文件,图片,视频,订单,用户名,密码等等.这些数据都需要有专门的地方来保存和管理 数据库的分类 关系型:mysql ... 非关系型 ...
- 【Redis6快速深入学习01】NoSQL数据库简介
文章目录 1 NoSQL数据库简介 1.1 技术发展 1.2 NoSQL数据库 1.3 行式存储数据库(大数据时代) 1.4 图关系型数据库 1 NoSQL数据库简介 1.1 技术发展 技术的分类 解 ...
- [Redis6]NoSQL数据库简介_特点
NoSQL数据库简介 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",泛指非关系型的数据库. NoSQL 不依赖业务逻辑方式存储,而以简单的key ...
- 1、oracle数据库简介
1.ORACLE数据库简介 数据库指的是存储和管理数据的仓库,是一种文件集合(包括数据文件.临时文件.日志文件和控制文件),我们一般所说的数据库指的是数据库管理系统,一种用于操作数据库的软件,简称DB ...
- idea数据库反向生成实体类_asp.net core 系列 21 EF现有数据库进行反向工程
一.概述 在上篇中使用EF基于数据模型创建数据库, 本篇继续使用 EF 基于数据库创建数据模型. 实现对已有数据库进行反向工程,来构建数据访问的 ASP.NET Core MVC 应用程序.已有数据库 ...
- mysql数据库基础简介_MySql数据库基础之数据库简介及安装
MySql数据库简介: 众所周知,MySql数据库是一款开源的关系型数据库,在Web应用方面,MySql是最好的.最流行的RDBMS(Relational Database Management Sy ...
最新文章
- 《番茄工作法图解》作者中国行
- VTK:定向字形用法实战
- 【Linux】一步一步学Linux——umask命令(111)
- 使用Git版本控制查看文件的更改历史记录
- 微信多人共享Excel表格
- 您的账号与服务器断开连接,节奏大师您解决服务器断开连接的方法(帐号与服务器断开连接怎么办)...
- 微信小程序 弹窗(模态框)遮罩层 弹窗右上角按钮关闭
- android标题栏跑马灯,Android跑马灯效果
- 泰拉瑞亚服务器config修改,《泰拉瑞亚》游戏配置怎么修改 游戏配置修改办法推荐...
- 勇者斗恶龙 java实现
- Git使用的奇技淫巧,看这篇就够了!
- 拓宽你的认知,优秀的人都掌握的40个经典思维模型「附全部模型PPT」
- mysql 清除bin文件内容_mysql 日志文件mysql-bin文件清除方法
- PTA 4 回溯法解整数拆分
- 如何将图片压缩到15k以下?教你一键压缩图片的大小
- 【人工智能】基于百度AI+Python编程的简单应用:关于人像照片动漫化的分析实现(可进行批量化处理)——教你看到二次元中的自己
- Java 计算一段代码运行的时间
- centos i219 v linux,CentOS7安装i7 6600网卡驱动I219M
- 【体验】室内设计 Web 编辑器
- 澳洲硕士转专业学计算机,关于澳洲硕士转专业,这六大点你必须要了解!