数据库及分类详细介绍

目录

  • 一、数据库详细介绍
    • 1、什么是数据库
    • 2、数据库的种类
    • 3、常见的数据库
    • 4、关系型数据库
      • 4.1、关系型数据库介绍
      • 4.2、关系型数据库的优缺点
      • 4.3、关系型数据库小结
    • 5、非关系型数据库
      • 5.1、非关系数据库诞生的背景
      • 5.2、非关系型数据库的介绍
      • 5.3、非关系型数据库的优缺点
      • 5.4、非关系型数据库小结
  • 二、MySQL数据库详解
    • 1、MySQL类型
    • 2、MySQL 版本号
    • 3、什么是sql?

一、数据库详细介绍

1、什么是数据库

数据库从字面上的理解就是数据的仓库,其实我们平时说的数据库是指数据库管理系统(Database Management System),它是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。严格来说数据库是数据库管理系统的实例,一个数据库管理系统可以有多个数据库实例。
数据库种类很多,我们平时接触最多的就是Oracle数据库和MySQL数据库。两者是应用最广泛的关系型数据库。

2、数据库的种类

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

3、常见的数据库

  • 生产环境主流的关系型数据库有Oracle、Microsoft SQL Server、MySQL/MariaDB、SQLite等。
  • 生产环境主流的非关系型数据库有MongoDB Memcached Redis

4、关系型数据库

4.1、关系型数据库介绍

关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过这些关联的表格分类、合并、连接或选取等运算来实现数据的管理。
关系型数据可以很好地存储一些关系模型的数据,比如一个老师对应多个学生的数据(“一对多”),一本书对应多个作者(“一对多”),一本书对应一个出版日期(“一对一”)

关系型数据库诞生距今已有 40 多年了,从理论产生到发展到实现产品,例如:常见的 MySQL 和 Oracle 数据库,Oracle 在数据库领域里上升到了霸主地位,形成每年高达数百亿美元的庞大产业市场,而 MySQL 也是不容忽视的数据库,以至于被 Oracle 重金收购了。
数据的存储形式:关系型数据库以行和列的形式存储数据,这一系列的行和列被称为表,一组表组成了数据库

4.2、关系型数据库的优缺点

  • 优点:
    易于维护:都是使用表结构,格式一致;
    使用方便:SQL语言通用,可用于复杂查询;
    支持复杂的操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
  • 缺点:
    读写性能比较差,不能满足海量数据的高效率读写。
    不节省空间,因为建立在关系模型上,就要遵循某些规则,比如数据中某字段值即使为空仍要分配空间。
    固定的表结构,灵活度较低。

4.3、关系型数据库小结

关系型数据库在存储数据时实际就是采用的一张二维表(和 Word 和 Excell 里表格几乎一样)。
市场占有量较大的是 MySQL 和 Oracle 数据库,而互联网场景最常用的是 MySQL 数据库。

5、非关系型数据库

5.1、非关系数据库诞生的背景

随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站(特别是超大规模和高并发类型的web2.0纯动态网站)已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展;2008年左右,网站、论坛、社交网络开始高速发展,关系型数据库的地位受到了很大的挑战。

关系型数据库的以下问题逐渐凸显:

  • 难以应付每秒上万次的高并发数据写入。
  • 查询上亿量级的数据速度极其缓慢。
  • 关系型数据库分库、分表形成的子库到达一定规模后难以进一步扩展。
  • 分库、分表的规则可能会因为需求变更而发生变更。
  • 修改表结构困难。

在很多互联网应用场景下,对数据联表的查询需求不是那么强烈,也并不需要在数据写入后立刻读取,但对数据的读取和并发写入速度有非常高的要求。在这样的情况下,非关系型数据库得到高速的发展。

5.2、非关系型数据库的介绍

非关系型数据库也被称为 NoSQL 数据库,NoSQL 的本意是 “Not Only SQL”,NoSQL 的产生并不是要彻底否定关系型数据库,而是作为传统数据库的一个有效补充。
NoSQL 数据库在特定的场景下可以发挥难以想象的高效率和高性能。

5.3、非关系型数据库的优缺点

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

  • 优点:
    非关系型数据库存储数据的格式可以是 key-value 形式、文档形式、图片形式等。使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
    数据存储速度快,效率高。 NoSQL 可以使用硬盘或者内存作为载体,而关系型数据库只能使用硬盘。
    海量数据的维护和处理非常轻松。
    非关系型数据库具有扩展简单、高并发、高稳定性、成本低廉的优势。
    可以实现数据的分布式处理。
  • 缺点:
    非关系型数据库暂时不提供 SQL 支持,学习和使用成本较高。
    非关系数据库没有事务处理,没有保证数据的完整性和安全性。适合处理海量数据,但是不一定安全。
    功能没有关系型数据库完善。

5.4、非关系型数据库小结

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

二、MySQL数据库详解

数据库及分类详细介绍_第1张图片

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle旗下产品。MySQL 是最流行的关系型数据库管理系统之一,MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。
RDBMS即关系数据库管理系统(Relational Database Management System)

1、MySQL类型

MySQL Community Server是社区版本,开源免费,但不提供官方技术支持。MySQL Community Server也是我们通常用的MySQL的版本。根据不同的操作系统平台细分为多个版本。
MySQL Enterprise Edition企业版本,需付费,可以试用30天。
MySQL Cluster集群版,开源免费,可将几个MySQL Server封装成一个Server。
MySQL Cluster CGE高级集群版,需付费。

2、MySQL 版本号

以 MySQL 5.7.27 这个版本的版本号为例说明每个数字含义。
​第一个数字(5)主版本号:文件格式改动时,将作为新的版本发布;
第二个数字(7)发行版本号:新增特性或者改动不兼容时,发行版本号需要更改;
第三个数字(27)发行序列号:主要是小的改动,如bug的修复、函数添加或更改、配置参数的更改等。
MySQL的官方网址: http://www.mysql.com/
中文官网地址:https://www.mysql.com/cn/
MySQL的社区版本下载地址为: http://dev.mysql.com/downloads/mysql/

3、什么是sql?

SQL是为操作数据库而开发的一种语言,它可以对数据库里的表进行操作,比如修改数据,查找数据。
数据库里面放着数据,SQL是用来操作数据库里数据的工具。
SQL代表结构化查询语言(Structured Query Language),用于访问数据库的标准化语言。

SQL包含三个部分:

  • 数据定义语言包含定义数据库及其对象的语句,例如表,视图,触发器,存储过程等。也叫数据定义语句:DDL — 数据定义语言 (Data Definition Language)
  • 数据操作语言包含允许您更新和查询数据的语句。也叫数据操作语句:DML — 数据操作语言(Data Manipulation Language)
  • 数据控制语言允许授予用户权限访问数据库中特定数据的权限。也叫数据控制语句:DCL— 数据控制语言(Data Control Language)

总结:
DDL用来定义数据库本身及其对象(表、索引等)
DML用来修改数据,如插入、修改、删除数据
DCL用来定义数据的访问权限,决定用户对数据的访问级别

你可能感兴趣的:(MySQL数据库,数据库,运维,云计算,linux,centos)