|
|
发表于 2022-9-21 11:02:38
|
显示全部楼层
一、数据库的种类
早期较为时兴的数据库种类有三种,分别是层次式数据库、网络式数据库和关系型数据库。
而在如今的互联网中,最常见的数据库种类主要有2种,即关系型数据库和非关系型数据库。
1.1 关系型数据库
简单来说,关系模式就是二维表格模型。关系型数据库也选用由列和行构成的二维表来管理数据,简单易懂。
代表:SQL Server,Oracle, Mysql, PostgreSQL
1.2 非关系型数据库
NoSQL非关系型数据库,主要指那些非关系型的、分布式的,且一般不保证ACID的数据存储系统。
代表:MongoDB,Redis、CouchDB、Tokyo Cabint
二、关系型数据库和非关系型数据库的比较
2.1 关系型数据库
优点:
(1).容易理解,二维表的结构非常贴近现实世界,二维表格,容易理解。
(2)使用方便,通用的sql语句使得操作关系型数据库非常方便。
(3)易于维护,数据库的ACID属性,大大降低了数据冗余和数据不一致的概率。
瓶颈:
(1 )海量数据的读写效率。
对于网站的并发量高,往往达到每秒上万次的请求,对于传统关系型数据库来说,硬盘I/o是一个很大的挑战。
(2) 高扩展性和可用性。
在基于web的结构中,数据库是最难以横向拓展的,当一个应用系统的用户量和访问量与日俱增的时候,数据库没有办法像web Server那样简单的通过添加更多的硬件和服务节点来拓展性能和负载能力。
2.2 非关系型数据库
优点:
NoSQL提出了另一种理念,以键值来存储,且结构不稳定,每一个元组都可以有不一样的字段,这种就不会局限于固定的结构,可以减少一些时间和空间的开销。使用这种方式,为了获取用户的不同信息,不需要像关系型数据库中,需要进行多表查询。仅仅需要根据key来取出对应的value值即可。
非关系数据库大部分是开源的,实现比较简单,大都是针对一些特性的应用需求出现的。根据结构化方法和应用场景的不同,分为以下几类。
(1)面向高性能并发读写的key-value数据库。主要特点是具有极高的并发读写性能,例如Redis、Tokyo Cabint等。
(2)面向海量数据访问的面向文档数据库。特点是,可以在海量的数据库快速的查询数据。例如MongoDB以及CouchDB.
(3)面向可拓展的分布式数据库。解决的主要问题是传统数据库的扩展性上的缺陷。
缺点:
但是由于Nosql约束少,所以也不能够像sql那样提供where字段属性的查询。因此适合存储较为简单的数据。有一些不能够持久化数据,所以需要和关系型数据库结合。 |
|