数据库根据存储方式可以分为关系统型数据库(SQL)和非关系型数据库(NoSQL, Not Only SQL)。
1、关系型数据库
Oracle
Oracle公司开发和维护的商业关系型数据库,广泛应用于各个领域。它具有广泛的应用场景和功能,并且在集群技术、高可用性、安全性、系统管理等方面取得了较好的成绩。Oracle数据库不仅可以在主流平台上运行,还可以运行于较高稳定性的操作系统平台上,提高整个数据库系统的稳定性。Oracle Database是关系型数据库中最知名和广泛使用的品牌之一。
MySQL(MariaDB)
MySQL是一种开源的关系型数据库,被广泛应用于中小型网站。它具有体积小、速度快、总体拥有成本低的特点,特别适合管理数据内容。
MariaDB是MySQL的分支,是一个由社区支持的开源项目,提供高可用性和可扩展性。它是一个基于事务的Maria存储引擎,使用了Percona的XtraDB版本,并包括PrimeBase的XT和FederatedX存储引擎。MariaDB体积小、速度快、总体拥有成本低,是一个开源项目。
PostgreSQL
PostgreSQL是一种开源关系型数据库,以其强大的功能和可扩展性而闻名。它支持多种数据库模式,包括SQL-2、SQL-3等,并且提供了丰富的数据类型、函数、操作符、聚集函数等。PostgreSQL的自由度和灵活性使得它成为许多商业数据库的首选。
SQLite
SQLite是一款适用于移动应用程序和嵌入式设备的嵌入式关系型数据库。它基于D.RichardHipp建立的公有领域项目,并提供了嵌入式数据库的设计和开发支持。SQLite可以嵌入到常见的操作系统中,比如Windows、Linux和Unix,并且可以与很多程序语言相结合,比如Tcl、C#、PHP和Java等。它拥有较低的资源占用,并且已经广泛应用于嵌入式设备中。
DB2
IBM Db2 是IBM公司开发和维护的一种关系型数据库,用于企业级应用程序和数据分析。它支持多用户或应用程序在同一条SQL语句中查询不同database或不同DBMS中的数据。DB2有多个版本,如DB2 for Unix、DB2 for Windows、DB2 for AS/400、DB2 for OS/390等。DB2是一种基于SQL的、关系型数据库产品,广泛应用于金融、商业、医疗、教育等各个领域。
SyBase
Sybase是由SAP公司开发和维护的一种关系型数据库,被广泛应用于金融和电信领域。它提供了丰富的应用程序编程接口和库,可以与不同的数据源和服务器集成,创建多层应用。Sybase具有完备的触发器、存储过程、规则和完整性定义,以及优化的查询,被广泛应用于金融和电信领域。
SQL Server
Microsoft SQL Server是由Microsoft公司开发和维护的一种商业关系型数据库,支持Windows和Linux平台。它是大型关系型数据库系统的开发者和领导者,最初由Sybase、Ashton-Tate等公司共同开发。SQL Server在企业数据管理方面具有广泛的应用,其易用性、可靠性和可伸缩性等优点使其成为流行的关系型数据库产品之一。
2、非关系型数据库
Redis
Redis是一种非关系型数据库,它支持多种数据结构,比如list、set、hash、zset等。Redis具有持久化能力,可以支持数据的持久化,在备份恢复方面非常方便。Redis还支持简单的key-value模式,以及多种数据结构的存储,比如list、set、hash、zset等。Redis的开发工作由开源社区支持,因此可以提供更稳定、更易于扩展的解决方案。
Memcache
Memcache是一种早期出现的NoSQL数据库,数据都在内存中,不支持持久化,支持简单的key-value模式,不支持类型单一。它主要用于作为缓存数据库,辅助持久化。而Memory是一种类似桶的数据结构,可以存储和快速读写。Cache是一种快速、高效的内存缓存系统,支持动态的、高效的内存管理。
MangoDB
MongoDB是一个高性能、开源、模式自由的开发型数据库。它支持多种数据存储模式,并且内置了丰富的查询功能。MongoDB支持二进制数据和大型对象,并可以替代RDBMS成为独立的数据库。它还具有动态查询的支持,可以根据数据的特点替代RDBMS,成为独立的数据库。因此,MongoDB是一种功能强大、灵活性和可扩展性较高的非关系型数据库。
HBase
HBase是一种非关系型、分布式、面向列的NoSQL数据库,适合于大规模数据的存储和处理。
3、异同
关系型数据库支持事务的ACID原则,这4种原则保证在事务过程中数据的准确性。
Atomicty 原子性、Consistency 一致性、Isolation 隔离性、Durability 持久性。
而非关系型数据库则不需要遵循ACID原则,它不需要固定的表结构,通常使用key/value的形式存储数据