从各方面说明数据库,全面讲解数据库是什么以及种类

一、定义

数据库就是一个存放计算机数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来对数据进行组织和存储的, 可以通过数据库提供的多种方法来管理其中的数据。

二、种类

最常用的数据库模式主要有两种,即关系型数据库和非关系型数据库。

三、生产环境常用数据库

1.生产环境主流的关系型数据库

有Oracle、Microsoft SQL Server、MySQL/MariaDB等。

2.生产环境主流的非关系型数据库

有 MongoDB Memcached Redis

四、关系型数据库

  关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过这些关联的表格分类、合并、连接或选取等运算来实现数据的管理。
  关系型数据可以很好地存储一些关系模型的数据,比如一个老师对应多个学生的数据(“一对多”),一本书对应多个作者(“一对多”),一本书对应一个出版日期(“一对一”)。
  关系型数据库诞生距今已有 40 多年了,从理论产生到发展到实现产品,例如:常见的 MySQL 和 Oracle 数据库,Oracle 在数据库领域里上升到了霸主地位,形成每年高达数百亿美元的庞大产业市场,而 MySQL 也是不容忽视的数据库,以至于被 Oracle 重金收购了。


  • 关系型数据库在存储数据时实际就是采用的一张二维表(和 Word 和 Excell 里表格几乎一样)。
  • 市场占有量较大的是 MySQL 和 Oracle 数据库,而互联网场景最常用的是 MySQL 数据库。
  • 通过 SQL 结构化查询语言来存取、管理关系型数据库的数据。
  • 关系型数据库在保持数据安全和数据一致性方面很强,遵循ACID理论,ACID指的的事务的4大特性。

五、非关系型数据库

1.简介

  非关系型数据库也被称为 NoSQL 数据库,NoSQL 的本意是 “Not Only SQL”,指的是非关系型数据库,而不是“NO SQL”的意思,NoSQL 的产生并不是要彻底否定关系型数据库,而是作为传统数据库的一个有效补充。NoSQL 数据库在特定的场景下可以发挥难以想象的高效率 和高性能。特别是对于规模日益扩大的海量数据,超大规模和高并发的微博、微信、SNS 类型的纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如:传统的关系型数据库IO瓶颈、性能瓶颈都难以有效突破,于是开始出现了大批针对特定场景,以高性能和使用便利为目的功能特异化的数据库产品。NoSQL(非关系型)类的数据库就是这样的情景中诞生并得到了非常迅速的发展。
  NoSQL 是非关系型数据库的广义定义。它打破了长久以来关系型数据库与ACID理论大一统的局面。NoSQL数据存储不需要固定的表结构,通常也不存在连续操作。


  • NoSQL 数据库不是否定关系型数据库,而是作为关系数据库的一个重要补充。
  • NoSQL 数据库为了灵活及高性能、高并发而生,忽略影响高性能、高并发的功能。
  • 在NoSQL 数据库领域,当今的最典型产品为 Redis(持久化缓存)、MongoDB、Memcached(纯内存)等。
  • NoSQL 数据库没有标准的查询语言(SQL),通常使用数据接口或者查询API。

2.种类

1)键值(Key-Value)存储数据库
  • 键值数据库就类似传统语言中使用的哈希表。可以通过key来添加、查询或者删除数据,因为使用key主键访问,所以会获得很高的性能及扩展性。这个表中有一个特定的键和一个指针指向特定的数据。Key-Value模型对于IT系统来说的优势在于简单、易部署、高并发。
  • 典型产品:Memcached、Redis、MemcachedB
2)列存储(Column-Oriented)数据库
  • 列存储数据库将数据存储存在列族(Column Family)中,一个列族存储 经常被一起查询的相关数据。举个例子,如果有一个 Person 类,通常会一起 查询他们的姓名和年龄而不是薪资。这种情况下,姓名和年龄就会被放入一个 列族中,而薪资则在另一个列族中。这部分数据库通常用来应对分布式存储的 海量数据。键仍然存在,但是他们的特点是指向了多个列。这些列是由列家族 来安排的。
  • 典型产品:Cassandra,HBase
3)面向文档(Document-Oriented)数据库
  • 面向文档数据库会将数据以文档的形式存储,数据存储的最小单位是文 档,同一个表中存储的文档属性可以是不同的,数据可以使用XML、JSON等多 种形式存储。
  • 典型产品:MongDB、CouchDB
4)图形(Graph)数据库
  • 图形数据库允许我们将数据以图的方式存储。图形结构的数据库同其他 行列以及刚性结构的 SQL 数据库不同,它是使用灵活的图形模型,并且能够 扩展到多个服务器上。
  • 典型产品:Neo4J、InfoGr id

六、常用关系型数据库管理系统

1.Oracle数据库

在这里插入图片描述

  Oracle前身叫SDL,由Larry Ellison和另两个编程人员在1977创办,他们开 发了自己的拳头产品,在市场大量销售,1979年,Oracle公司引入了第一个商 用 SQL关系数据库管理系统。Oracle公司是最早开发关系数据库的厂商之一,其产品 支持最广泛的操作系统平台。目前Oracle关系数据库产品的市场占有率数一数二。
  Oracle 公司是目前全球最大的数据库软件公司,也是近年业务增长极为迅速的 软件提供与服务商。
  主要应用范围:传统大企业,大公司,政府,金融,证券等等。
  版本升级:Oracle8i,Oracle9i,Oracle10g,Oracle11g,Oracle12c。

2.MySQL数据库

在这里插入图片描述

  MySQL 数据库是一个中小型关系型数据库管理系统,软件开发者为瑞典 MySQL AB 公司。在2008年1月16号被 Sun 公司收购,后 Sun 公司又被 Oracle 公司收购。目前MySQL 被广泛地应用在 Internet 上的大中小型网站中。由于其体 积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多大中小型网站为 了降低网站总体拥有成本而选择了 MySQL 作为网站数据库,甚至国内知名的淘宝 网也选择弃用 Oracle 而更换为更开放的 MySQL。
  MySQL 数据库主要应用范围:互联网领域,大中小型网站,游戏公司,电商 平台等等。

3.Mariadb数据库

在这里插入图片描述

  MariaDB 数据库管理系统是 MySQL 数据库的一个分支,主要由开源社区维 护。开发这个 MariaDB 数据库分支的可能原因之一是:甲骨文公司收购了MySQL 后,有将 MySQL 闭源的潜在风险,因此 MySQL 开源社区采用分支的方式来避开 这个风险。
  开发 MariaDB 数据库的目的是完全兼容 MySQL 数据库,包括 API 和命令 行,使之能轻松的成为 MySQL 的代替品。在存储引擎方面,使用 XtraDB (英语: XtraDB)来代替MySQL 的 InnoDB MariaDB 由 MySQL 的创始人 Michael Widenius (英语:Michael Widenius)主导开发,他早前曾以 10 亿美元的价格,将自己创建 的公司MySQL AB卖给了 SUN,此后,随着 SUN 被甲骨文收购,MySQL 的所有权 也落入Oracle 的手中,MariaDB 数据库的名称来自 MySQL 的创始人Michael Widenius 的女儿 Maria 的名字。

4.SQLserver数据库

在这里插入图片描述
  Microsoft SQL Server是微软公司开发的大型关系型数据库系统。1987年,微软和IBM合作开发完成 OS/2,IBM 在其销售的 OS/2 ExtendedEdition 系统中绑定了 OS/2 DatabaseManager,而微软产品线中尚缺少数据库产品。为此,微软将目光投 向 Sybase,同 Sybase 签订了合作协议,使用 Sybase 的技术开发基于 OS/2 平台的关系型数据库。1989年,微软发布了 SQLServer1.0 版。
  SQL Server 的功能比较全面,效率高,可以作为中型企业或单位的数据库平台。
  SQL Server 可以与Windows操作系统紧密集成,不论是应用程序开发速度还是系统事务处理运行速度,都能得到较大的提升。SQL Server 的缺点是只能在 Windows 系统下运行。
  主要应用范围:部分企业电商(央视购物),使用windows服务器平台的企业。

七、常用非关系型数据库管理系统

1.Memcached(Key-Value)

在这里插入图片描述

  Memcached 是一个开源的、高性能的、具有分布式内存对象的缓存系统。通过它可以减轻数据库负载,加速动态的 Web 应用,最初版本由 LiveJoumal 的 Brad Fitzpatrick在2003年开发完成。目前全球有非常多的用户都在使用它来构建自己的 大负载网站或提高自己的高访问网站的响应速度。注意:Memcache 是这个项目的 名称,而Memcached 是服务器端的主程序文件名。
  缓存一般用来保存一些经常被存取的对象或数据(例如,浏览器会把经常访问 的网页缓存起来一样),通过缓存来存取对象或数据要比在磁盘上存取快很多,前者是内存,后 者是磁盘。Memcached 是一种纯内存缓存系统,把经常存取的对象 或数据缓存在 Memcached 的内存中,这些被缓存的数据被程序通过API的方式被 存取,Memcached里面的数据就像一张巨大的 HASH 表,数据以 Key-Value 对的 方式存在。Memcached 通过缓存经常被存取的对象或数据,从而减轻频繁读取数 据库的压力,提高网站的响应速度。
  由于Memcached 为纯内存缓存软件,一旦重启所有数据都会丢失,因此,新浪网基于 Memcached 开发了一个开源项目 MemcacheDB。通过为 Memcached 增加 Berkeley DB 的持久化存储机制和异步主辅复制机制,使 Memcached 具备了事 务恢复能力、持久化数据存储能力和分布式复制能力,但是最近几年逐渐被其他的 持久化产品替代例如Redis。

2.Redis

在这里插入图片描述
  Redis 是一个Key-Value型存储系统。但Redis支持的存储value 类型相对更多,包括 string(字符串)、list(链表)、set(集合)和 zset(有序集合)等。这些数 据类型都支持 push/pop、add/remove 及取交集、并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis 支持各种不同方式的排序。与 Memcached 一样,为了保证效率,Redis 的数据都是缓存在内存中。区别是 Redis 会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此 基础上实现了 Master-Slave(主从)同步。
  Redis 是一个高性能的 Key-Value 数据库。Redis 的出现,很大程度补偿了 Memcached 这类 Key-Value 存储的不足,在部分场合可以对关系数据库有很好的 补充作用。它提供了 Python,Ruby,Erlang,PHP 客户端,使用很方便。

Redis 特点:
1)支持内存缓存,这个功能相当于 Memcached。
2)支持持久化存储,这个功能相当于 MemcacheDB,Ttserver。
3)数据类型更丰富。比其他 Key-Value 库功能更强。
4)支持主从集群,分布式。
应用:缓存从存取 Memcached 更改存取 Redis。

3.MongoDB

在这里插入图片描述

  MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据 库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,类似 Json 的 Bjson格式,因此可以存储比较复杂的数据类型。MongoDB 最大的特点是他支持查 询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系 数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能、易部署、易使用,存储数据非常方便。
  MongoDB 服务端可运行在 Linux、Windows 或 OS X 平台,支持32位和64 位应用,默认端口为 27017。推荐运行在64位平台。
  McmgoDB 把数据存储在文件中(默认路径为:/data/db)。

八、关系型数据库与非关系型数据库的区别

1.关系型数据库

优点:

1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。

缺点:

1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

2.非关系型数据库

  非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合, 可以是文档或者键值对等。

优点:

1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等, 文档形式、图片形式等等,使用灵活,应用场景广泛。
2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使 用硬盘;
3、高扩展性;
4、成本低:nosql数据库部署简单,基本都是开源软件。

缺点:

1、不提供sql支持;
2、无事务处理;
3、数据结构相对复杂,复杂查询方面稍欠。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值