数据库总结(350个数据库,14个分类)

文章目录

  • 1、简述
  • 2、总览
  • 3、数据库排行
  • 4、对比
    • 4.1 关系型数据库遵循ACID规则
      • 4.1.1、A (Atomicity) 原子性
      • 4.1.2、C (Consistency) 一致性
      • 4.1.3、I (Isolation) 独立性
      • 4.1.4、D (Durability) 持久性
    • 4.2、为什么使用NoSQL ?
  • 5、关于数据库的相关文章
    • 5.1、MySQL
    • 5.2、Elasticsearch
    • 5.3、Redis
    • 5.4、MongoDB
    • 5.5、Neo4j
    • 5.6、Cassandra
  • 6、源码分享Github

1、简述

最近在总结数据库的相关知识,这篇文章参考了两个数据库排行网站,还有自己总结了一些东西,现在分享给诸位。

数据库排行网站:https://db-engines.com/en/ranking
nosql网站:http://nosql-database.org/

2、总览

综合数据库分类做了一个分类图,其中,我标识为红色的是在我过去的博客中有提及到如何安装、如何使用的,在以下的部分有所提及。
因为关系型数据库的数量是最多的,所以通常分为两类:关系型、非关系型。非关系型数据库又被叫做NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。这里所提及的个数总和肯定不是350,因为有复合型数据库(既是这个分类又是其它分类的)。
数据库总结(350个数据库,14个分类)_第1张图片

3、数据库排行

如下这个排行是2019年6月24日我从数据库排行网站上截下来的

上述图中一共350个数据库,后面的排名几乎都是338,都用的特别少,没法排了……

4、对比

4.1 关系型数据库遵循ACID规则

事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性:

4.1.1、A (Atomicity) 原子性

  • 定义:事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。

  • 例如:微信或支付宝转钱,从A转100元至B,分为两步:1、从A账户取100元;2、存入100元至B账户。
    这两步要么一起完成,要么一起不完成。如果只完成第一步,第二步失败,钱会莫名其妙少了100元,这就是原子性

4.1.2、C (Consistency) 一致性

  • 定义:数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。

  • 例如:a+b=100,如果一个事务改变了a,那么必须得改变b,使得事务结束后依然满足a+b=100,否则事务失败。

4.1.3、I (Isolation) 独立性

  • 定义:并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。

  • 例如:还说微信或支付宝转钱,从A转100元至B,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的,这就是独立性。

4.1.4、D (Durability) 持久性

  • 定义:一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失
  • 例如:还说微信或支付宝转钱,在你转钱时,服务器宕机,服务再次开启或者有其它服务提供支持时,你的钱依旧不会丢失。

4.2、为什么使用NoSQL ?

今天我们可以通过第三方平台(如:Google,Facebook等)可以很容易的访问和抓取数据。用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍的增加。我们如果要对这些用户数据进行挖掘,那SQL数据库已经不适合这些应用了, NoSQL 数据库的发展却能很好的处理这些大的数据。

5、关于数据库的相关文章

介绍的是我以前写的关于数据库的相关文章

5.1、MySQL

Linux源码安装MySQL:https://shazhenyu.blog.csdn.net/article/details/82992728
Go开发 之 Go如何读取Mysql数据:https://shazhenyu.blog.csdn.net/article/details/86004894
如何解决mysql“ERROR 1045 (28000): Access denied for user ‘abc’@’%’ (using password: YES)”:
https://shazhenyu.blog.csdn.net/article/details/83623716
Mysql修改密码的三种方法及注意事项:https://shazhenyu.blog.csdn.net/article/details/82999088

5.2、Elasticsearch

非关系型数据库 之 Elasticsearch的使用(Search engine DB):https://shazhenyu.blog.csdn.net/article/details/88672055

5.3、Redis

非关系型数据库 之 Key-Value数据库 Redis的使用(Python3):https://shazhenyu.blog.csdn.net/article/details/91875849

5.4、MongoDB

非关系型数据库 之 文档型数据库 MongoDB 的使用(Python3):https://shazhenyu.blog.csdn.net/article/details/92841495

5.5、Neo4j

非关系型数据库 之 图数据库Neo4j的使用(Python3):https://shazhenyu.blog.csdn.net/article/details/93116754

5.6、Cassandra

非关系型数据库 之 列数据库 Cassandra 的使用(Python3):https://shazhenyu.blog.csdn.net/article/details/93198926

6、源码分享Github

https://github.com/ShaShiDiZhuanLan/Demo_SQL_Python

你可能感兴趣的:(//运维,//数据库,//Demo小锦集)