一,数据库的种类
最常见的数据库类型分为两种,关系型数据库和非关系型数据库。
二,关系型数据库介绍
生产环境主流的关系型数据库有 Oracle、SQL Server、MySQL/MariaDB等。
- 关系型数据库在存储数据时实际就是采用的一张二维表(和 Word 和 Excell 里表格几乎一样)。
- 市场占有量较大的是 MySQL 和 Oracle 数据库,而互联网场景最常用的是 MySQL 数据库。
- 通过 SQL 结构化查询语言来存取、管理关系型数据库的数据。
- 关系型数据库在保持数据安全和数据一致性方面很强,遵循 ACID 理论
非关系型数据库介绍
生产环境主流的非关系型数据库有 MongoDB、Memcached、Redis 。
非关系型数据库也叫NoSQL数据库
NoSQL:"的本意是 "Not Only SQL",指的是非关系型数据库,主要是对于规模很大的海量数据,和高并发SNS(Social Networking Services,即社交网络服务。"
- NoSQL 格式灵活:存储数据的格式可以是key-value形式、文档形式、图片形式等等使用灵活,应用场景广泛。
- NoSQL 数据库为了灵活及高性能、高并发、速度快而产生。
- NoSQL 数据库领域,当今的最典型产品为 Redis(持久化缓存)、MongoDB、Memcached(纯内存)等。
- NoSQL 数据库没有标准的查询语言(SQL)。
- NoSQL 成本低:nosql数据库部署简单,基本都是开源软件。
常见的关系型数据库管理系统
1、Oracle 数据库
-
Oracle 公司是目前全球最大的数据库软件公司。
-
主要应用范围:传统大企业,大公司,政府,金融,证券等等。
2,MySQL数据库
- MySQL 数据库主要应用范围:互联网领域,大中小型网站,游戏公司,电商平台等等。
3,MariaDB数据库
-
MariaDB 数据库管理系统是 MySQL 数据库的一个分支,主要由开源社区维护。
-
开发 MariaDB 数据库的目的是完全兼容 MySQL 数据库,包括 API 和命令行,使之能轻松的成为 MySQL 的代替品。
4,SQL Server 数据库
-
Microsoft SQL Server是微软公司开发的大型关系型数据库系统。1989年,微软发布了 SQLServer1.0 版。
-
SQL Server 可以与 Windows 操作系统紧密集成。SQL Server 的缺点是只能在 Windows 系统下运行。
-
主要应用范围:部分企业电商,使用windows服务器平台的企业
非关系型数据库管理系统
1,Memcached(Key-Value)
-
Memcached 是一个开源的、高性能的、具有分布式内存对象的缓存系统。通过它可以减轻数据库负载,加速动态的 Web 应用,注意:Memcache 是这个项目的名称,而Memcached 是服务器端的主程序文件名。
-
缓存一般用来保存一些经常被存取的对象或数据(例如,浏览器会把经常访问的网页缓存起来一样),通过缓存来存取对象或数据要比在磁盘上存取快很多,Memcached 是一种纯内存缓存系统,把经常存取的对象或数据缓存在 Memcached 的内存中,数据以 Key-Value 的方式存储。Memcached 通过缓存经常被存取的对象或数据,从而减轻频繁读取数据库的压力,提高网站的响应速度.官方:http://Memcached.org/
-
由于Memcached 为纯内存缓存软件,一旦重启所有数据都会丢失。所以最近几年逐渐被其他的持久化产品替代例如Redis。
2,Redis(Key-Value)
- Redis 是一个Key-Value 型存储系统。但Redis支持的存储value 类型相对更多,包括 string(字符串)、list(链表)等。Redis 的数据都是缓存在内存中,区别是 Redis 会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了 Master-Slave(主从)同步。
- Redis 是一个高性能的 Key-Value 数据库。它提供了 Python,Ruby,Erlang,PHP 客户端,使用很方便。
- 官方:http://www.Redis.io/documentation
- Redis 特点:
- 支持内存缓存,同时也支持持久化存储。
- 数据类型更丰富。比其他 Key-Value 库功能更强。
- 支持主从同步、cluster分布式集群。
- 应用:缓存从存取 Memcached 更改存取 Redis。
3,MongoDB(Document-Web)
-
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。MongoDB 最大的特点是他支持查询语言非常强大,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能、易部署、易使用,存储数据非常方便。
-
MongoDB 服务端可运行在 Linux、Windows 或 OS X 平台,支持32位和64位应用,默认端口为 27017。推荐运行在64位平台。
-
McmgoDB 把数据存储在文件中(默认路径为:/data/db)。
关系型数据和非关系型数据库的区别
1.关系型数据库:
优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
1、固定的表结构,灵活度稍欠;
2、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
2.非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。
优点:
1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,使用灵活,应用场景广泛。
2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
3、高扩展性;
4、成本低:nosql数据库部署简单,基本都是开源软件。
缺点:
不提供sql支持;
什么是sql
SQL代表结构化查询语言(Structured Query Language)。SQL是用于访问数据库的标准化语言。
SQL包含三个部分:
- 数据定义语言包含定义数据库及其对象的语句,例如表,视图,触发器,存储过程等。
- 数据操作语言包含允许您更新和查询数据的语句。
- 数据控制语言允许授予用户权限访问数据库中特定数据的权限。