《1》数据库概述
前言
为什么要使用数据库?
就需要谈到什么是持久化
。持久化
把数据保存到可掉电式存储设备中以供之后使用。持久化
的主要作用是将内存中的数据存储在关系型数据库中,持久化
的实现过程大多通过各种关系数据库来完成。当然也可以存储在磁盘文件、XML数据文件中。
一、数据库与数据库管理系统
1、概念:
DB:数据库(Database)
存储数据的“仓库”,其本质是一个文件系统。
DBMS:数据库管理系统(Database Management System)
一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制。
以mysql
为例,安装根目录下的data
目录就是数据库,而mysql
就是数据库管理系统
。
SQL:结构化查询语言(Structured Query Language)
专门用来与数据库通信的语言。
2、数据库与数据库管理系统的关系
数据库管理系统(DBMS)
可以管理多个数据库
,一般对每个应用创建一个数据库。每个数据库创建多个表,以保存程序中实体用户的数据。
关系如图所示:
3、常见的数据库管理系统排名
4、常见的数据库介绍
Oracle
1979 年,Oracle 2 诞生,它是第一个商用的 RDBMS(关系型数据库管理系统)。随着 Oracle 软件的名气
越来越大,公司也改名叫 Oracle 公司。
2007年,总计85亿美金收购BEA Systems。
2009年,总计74亿美金收购SUN。此前的2008年,SUN以10亿美金收购MySQL。意味着Oracle 同时拥有了MySQL 的管理权,至此 Oracle 在数据库领域中成为绝对的领导者。
2013年,甲骨文超越IBM,成为继Microsoft后全球第二大软件公司。
如今 Oracle 的年收入达到了 400 亿美金,足以证明商用(收费)数据库软件的价值。
SQL Server SQL Server
是微软开发的大型商业数据库,诞生于 1989 年。C#、.net等语言常使用,与WinNT完全集成,也可以很好地与Microsoft BackOffice产品集成。
DB2
IBM公司的数据库产品,收费的。常应用在银行系统中。
PostgreSQL
PostgreSQL 的稳定性极强,最符合SQL标准,开放源码,具备商业级DBMS质量。PG对数据量大的文本以及SQL处理较快。
5、关于MySQL 8.0
MySQL
从5.7版本直接跳跃发布了8.0版本 ,可见这是一个令人兴奋的里程碑版本。
MySQL 8
版本在功能上做了显著的改进与增强,开发者对MySQL
的源代码进行了重构,最突出的一点是多MySQL Optimizer
优化器进行了改进。
6、Oracle vs MySQL
Oracle
更适合大型跨国企业的使用,因为他们对费用不敏感,但是对性能要求以及安全性有更高的要求。
MySQL
由于其体积小、速度快、总体拥有成本低,可处理上千万条记录的大型数据库,尤其是开放源码这一特点,使得很多互联网公司、中小型网站选择了MySQL
作为网站数据库。
二、RDBMS 与 非RDBMS
关系型数据库
绝对是 DBMS
的主流,其中使用最多的 DBMS
分别是 Oracle
、 MySQL
和 SQL Server
。这些都是关系型数据库(RDBMS)
。
1、关系型数据库(RDBMS)
1.1、实质
是把复杂的数据结构归结为简单的二元关系
(即二维表格形式)。
以 行(row)
和 列(column)
的形式存储数据,以便于用户理解。
1.2、 优势
复杂查询
可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。
事务支持
使得对于安全性能很高的数据访问要求得以实现。
2、非关系型数据库(非RDBMS)
2.1、实质
非关系型数据库
可看成关系型数据库
的功能 阉割版本
,基于键值对存储数据,不需要经过SQL
层的解析, 性能非常高 。同时,通过减少不常用的功能,进一步提高性能。
2.2、常用的非关系型数据库
包括了榜单上的键值型数据库、文档型数据库、搜索引擎和列存储等,除此以外还包括图形数据库。
键值型数据库
通过 Key-Value
键值的方式来存储数据。Key
作为唯一的标识符,优点是查找速度快,在这方面明显优于关系型数据库,缺点是无法像关系型数据库一样使用条件过滤(比如 WHERE
),如果你不知道去哪里找数据,就要遍历所有的键,这就会消耗大量的计算。
键值型数据库典型的使用场景是作为 内存缓存
。 Redis
是最流行的键值型数据库。
搜索引擎数据库
虽然关系型数据库采用了索引提升检索效率,但是针对全文索引效率却较低。
搜索引擎数据库是应用在搜索引擎领域的数据存储形式,由于搜索引擎会爬取大量的数据,并以特定的格式进行存储,这样在检索的时候才能保证性能最优。核心原理是“倒排索引”。
典型产品:Solr
、Elasticsearch
、Splunk
等。
最后
若有帮助,请点赞+关注!