1. 数据库介绍
数据库(Database)就是一个存放计算机数据的仓库,该仓库按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)对数据进行组织和存储,我们可以通过数据库提供的多种方法来管理其中的数据。
2. 数据库的种类
数据库模型分为三种,分别为层次数据库、网状数据库和关系型数据库。
在当今的互联网企业中,最常用的数据库模型主要分为两种,即关系型数据库和非关系型数据库NoSQL。
- 关系型数据库
1、关系型数据库在存储数据时实际上采用的就是二维表格形式(和Word、Excel里的表格几乎一样)
2、市场上占有量较大的是MySQL和Oracle数据库,而互联网场景最常用的是MySQL数据库
3、通过SQL(结构化查询语言)来存取、管理关系型数据库的数据
4、关系型数据库在保持数据安全和数据一致性方面功能很强,遵循ACID理论 - 非关系型数据库(也称为NoSQL数据库Not Only SQL)
1、NoSQL数据库不是否定关系型数据库,而是作为关系型数据库的一个重要补充
2、NoSQL数据库为了适应灵活及高性能、高并发需求而生,忽略影响高性能、高并发的功能
3、在NoSQL数据库领域,当今的最典型产品为redis(持久化缓存)、MongoDB、Memcached(纯内存)等
4、NoSQL数据库没有标准的查询语言(SQL),通常使用REST式的数据接口或者查询API
非关系型数据库的种类
1、键值存储数据库(Memcached、redis)
2、列存储数据库(Cassandra、HBase,非常大型的企业如新浪、京东、360等才会用到)
3、面向文档的数据库(MongoDB)
4、图形数据库(了解即可)
3. 常用关系型数据库产品介绍
- Oracle数据库
主要的应用企业包括传统大企业、大公司、政府、金融、证券等 - MySQL数据库
MySQL被广泛地应用于各大中小型网站中,具有体积小、速度快、总体拥有成本低,且开放源码等特点。MySQL数据库的应用范围主要包括互联网领域、大中小型网站、游戏公司、电商平台等,因用户广泛,其产生了很多高并发的成熟解决方案,因此传统企业的用户也在逐渐增多。 - MariaDB数据库
MariaDB数据库管理系统是MySQL数据库的一个分支,主要由开源社区维护,采用GPL授权许可。开发这个MariaDB数据库分支的可能原因之一是:Oracle公司收购了MySQL之后,有将MySQL闭源的潜在风险,因此MySQL开源社区采用分支的方式来避开这个风险。在存储引擎方面,它使用XtraDB来代替MySQL的InnoDB。 - SQL Server数据库
Microsoft SQL Server是微软公司开发的大型关系型数据库系统。SQL Server的功能比较全面、效率高,可以作为中型企业或单位的数据库平台。缺点是只能在Windows系统下运行。 - Access数据库
- PostgreSQL数据库
4. 常用非关系型数据库产品介绍
- Memcached(key-value)
Memcached是一个开源的、支持高性能、高并发的分布式内存缓存系统,由C语言编写。由于Memcached为纯内存缓存软件,一旦重启,所有的数据都会丢失,因此,新浪网基于Memcached开发了一个开源项目Memcachedb。通过为Memcached增加Berkeley DB的持久化存储机制和异步主辅复制机制,使Memcached具备了事务恢复能力、持久化数据存储能力和分布式复制能力,Memcachedb非常适合需要超高性能读写速度、持久化保存的应用场景,但是最近几年其逐渐被其他的持久化产品所替代,例如redis。 - redis(key-value)
redis是一个高性能的key-value数据库
1、支持内存缓存
2、支持持久化存储
3、数据类型更丰富,比其他key-value库功能更强
4、支持主从、分布式等集群模式
5、支持队列等特殊功能 - MongoDB(document-oriented)
MongoDB是一个介于关系型数据库和非关系型数据库之间的产品,是非关系型数据库当中功能最丰富,最像关系型数据库的一种产品。MongoDB最大的特点是其所支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系型数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能、已部署、易使用,存储数据非常方便。
其主要功能特性具体如下:
1、面向集合存储,易存储对象类型的数据
2、模式自由,这意味着对于存储在MongoDB数据库中的文件,我们不需要知道它的任何结构定义
3、支持动态查询
4、支持完全索引,包含内部对象
5、支持查询
6、支持复制和故障恢复
7、使用高效的二进制数据存储,包括大型对象(如视频等)
8、自动处理碎片,以支持云计算层次的扩展性
9、支持Ruby、Python、Java、C++、PHP等多种语言
10、文件存储格式为BSON(JSON的一种扩展)。BSON存储形式是指:存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型 - Cassandra(column-oriented)
Apache Cassandra是一套开源分布式key-value存储系统。它最初由Facebook开发,用于储存特别大的数据。Facebook目前使用的正是此系统。
Cassandra的主要特性如下:
1、分布式
2、基于列的结构化
3、高伸展性
2019年初数据库软件企业应用排名
上述内容源自https://db-engines.com/en/ranking。
5. 试题
1)什么是关系型数据库,其有什么特点?
关系型数据库模型可将复杂的数据结构归结为简单的二元关系(即二维表格形式)。
特点:
1、关系型数据库在存储数据时实际上采用的就是二维表格形式(和Word、Excel里的表格几乎一样)
2、通过SQL(结构化查询语言)来存取、管理关系型数据库的数据
3、在保持数据安全和数据一致性方面功能很强,遵循ACID理论
2)关系型数据库的典型产品有哪些,各自对应什么应用场景?
典型产品:Oracle、MySQL、MariaDB、SQL Server、Access、PostgreSQL
应用场景:
Oracle:主要的应用企业包括传统大企业、大公司、政府、金融、证券等
MySQL:互联网领域、大中小型网站、游戏公司、电商平台等
MariaDB:和MySQL一样
SQL Server:使用Windows服务器平台的企业
Access:留言板、校友录、BBS等
PostgreSQL:私用、商用、学术研究使用等
3)什么是非关系型数据库,其有什么特点?
非关系型数据库也称为NoSQL数据库,NoSQL的本意是"Not Only SQL",指的是非关系型数据库,而不是"No SQL"(没有SQL)的意思。
特点:
1、NoSQL数据库为了适应灵活及高性能、高并发需求而生,忽略影响高性能、高并发的功能
2、NoSQL数据库没有标准的查询语言(SQL),通常使用REST式的数据接口或者查询API
4)非关系型数据库的常见种类及相应的典型产品有哪些?
键值存储数据库(Memcached、redis)
列存储数据库(Cassandra、HBase)
面向文档的数据库(MongoDB)
图形数据库(Neo4J、InfoGrid)
5)请分别说出5个最流行的关系型和非关系型数据库产品名称。
Oracle、MySQL、MongoDB、Redis、Memcached