数据库基础概念与主流产品一览

发表时间: 2024-01-03 10:34

数据库相关概念介绍

什么是数据库?

数据库是保存有组织的数据的容器(通常是一个文件或一组文件)。

理解数据库的一种最简单的办法是将其想象为一个文件柜。此文件柜是一个存放数据的物理位置,不管数据是什么以及如何组织的。

什么是DBMS?(数据库管理系统

DBMS:database management system。说白了,就是数据库软件

ps:易混淆点

人们通常用数据库这个术语来代表他们使用的数据库软件。这是不正确的,它是引起混淆的根源。确切地说,数据库软件应称为DBMS(数据库管理系统)。数据库是通过DBMS创建和操纵的容器。数据库可以是保存在硬设备上的文件,但也可以不是。在很大程度上说,数据库究竟是文件还是别的什么东西并不重要,因为你并不直接访问数据库;你使用的是DBMS,它替你访问数据库。


常见数据库管理系统

  • 关系型数据库(RDBMS)
  • 以多张二维表的方式来存储,又给多张表建立了一定的关系(关系型数据库)。

  • 非关系型数据库(NoSQL:Not only SQL)
  • 什么是NoSQL?
  • 比如redis,查数据不是用sql语句。性能一般高于关系型数据库。很多NoSQL是以json格式进行存储数据的(如mongodb),但不是所有的非关系型数据库里面都是json格式。
  • json:很有用,开发语言直接数据交流需要通过json,所有语言都支持json形式。这个叫序列化。
  • 下图:左边是RDBMS,右边是NoSQL

  • NoSQL的发展历史
  • web1.0时代:企业提供内容,用户浏览,所以关系型数据库够用,并发并不高,所以不需要NoSQL。
  • web2.0时代:核心是企业提供平台,用户参与提供内容,这个时代关系型数据库无法满足需求了。后来到2009年左右NoSQL开始发生。
  • NoSQL的分类、特点、典型产品
  • 1、键值(Key-Value)存储
  • 特点:键值数据库就像传统语言中使用的哈希表。通过 Key 添加、查询或者删除数据。
  • 优点:查询速度快。
  • 缺点:数据无结构化,通常只被当作字符串或者二进制数据存储。
  • 应用场景:内容缓存、用户信息比如会话、配置信息、购物车等,主要用于处理大量数据的高访问负载。
  • NoSQL 代表:Redis、Memcached
  • 2、文档(Document-Oriented)存储
  • 特点:文档数据库将数据以文档的形式储存,类似 JSON,是一系列数据项的集合。每个数据项都有一个名称与对应的值,值既可以是简单的数据类型,如字符串、数字和日期等;也可以是复杂的类型,如有序列表和关联对象。
  • 优点:数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构。
  • 缺点:查询性能不高,缺乏统一的查询语法。
  • 应用场景:日志、 Web 应用等。
  • NoSQL 代表:MongoDB、CouchDB
  • 3、列(Wide Column Store/Column-Family)存储
  • 特点:列存储数据库将数据储存在列族(Column Family)中,将多个列聚合成一个列族,键仍然存在,但是它们的特点是指向了多个列。举个例子,如果我们有一个 Person 类,我们通常会一起查询他们的姓名和年龄而不是薪资。这种情况下,姓名和年龄就会被放入一个列族中,而薪资则在另一个列族中。
  • 优点:列存储查找速度快,可扩展性强,更容易进行分布式扩展,适用于分布式的文件系统,应对分布式存储的海量数据。
  • 缺点:查询性能不高,缺乏统一的查询语法。
  • 应用场景:日志、 分布式的文件系统(对象存储)、推荐画像、时空数据、消息/订单等。
  • NoSQL 代表:Cassandra、HBase...
  • 4、图形(Graph-Oriented)存储
  • 特点:图形数据库允许我们将数据以图的方式储存。
  • 优点:图形相关算法。比如最短路径寻址,N 度关系查找等。
  • 缺点:很多时候需要对整个图做计算才能得出需要的信息,分布式的集群方案不好做,处理超级节点乏力,没有分片存储机制,国内社区不活跃。
  • 应用场景:社交网络,推荐系统等。专注于构建关系图谱。
  • NoSQL 代表:Neo4j、Infinite Graph...
  • RDBMS vs. NoSQL
  • 1、功能、性能对比

  • 2、特点对比
  • 关系型特点:
  • 1.二维表
    2.传统企业一般用Oracle,收费方便技术支持。MySQL是开源的,很多互联网企业用,已被Oracle收购
    3.数据存取是通过SQL(Structured Query Language结构化查询语言)
    4.最大特点数据安全性方面强(ACID)
  • 非关系型:
  • 做为关系型数据库的补充。
  • 总结:
  • 1、关系型数据库采用的是结构化方式存储数据,NoSQL采用的是键值对的方式存储数据。2、一个支持SQL语句,一个不支持。3、在考虑数据库的成熟度、管理及专业性等问题时,应优先考虑关系型数据库。在处理非结构化/半结构化的大数据时;在水平方向上进行扩展时;随时应对动态增加的数据项时可以优先考虑使用NoSQL数据库。

数据库产品介绍

数据库排名网站:
https://db-engines.com/en/ranking

Oracle

主要版本

市场应用

1、市场份额第一,趋势递减

2、市场空间:主要是传统企业

MySQL

主要版本

1.0 - 5.1 - 5.5 - 5.6 - 5.7 - 8.0

市场应用

1、中、大型互联网公司

2、市场空间:互联网领域第一

3、增长趋势明显

4、同源产品:MariaDB、PerconaDB

其他产品介绍

微软:SQLserver

微软和sysbase合作开发的产品,后来自己开发,windows平台。主要三、四线小公司,传统行业在用

IBM:DB2

市场占有量小。目前只有:国有银行(人行,中国银行,工商银行等)、中国移动应用

PostgreSQL

MongoDB

Redis

MySQL发展史

a. 1979年,报表工具Unireg出现。

b. 1985年,以瑞典David Axmark为首,成立了一家公司(AB前身),ISAM引擎出现。

c. 1990年,提供SQL支持。

d. 1999年-2000年,MySQL AB公司成立,并公布源码,开源化。

e. 2000年4月BDB引擎出现,支持事物。

f. 2008年1月16日 MySQL被Sun公司收购。

g. 2009年4月20日Oracle收购Sun公司,MySQL转入Oracle门下。