数据库在互联网企业中应用非常普遍,数据库在企业内一般由专业的DBA来进行管理,但是在有些公司内梅有专业的DBA管理员,这时候就需要运维人员兼任DBA。传说中删库跑路就是说的此处。

MySQL数据库相当复杂,首先我们先介绍下MySQL数据库基础。

数据库基础

数据的时代

现在是大数据的时代,产生了大量的数据,近代时间所产生的数据比人类文明产生到计算机诞生所产生的数据更多,所以大数据的概念应运而生,大数据就是分析各种地方产生的数据,从中能分析出一些有价值的东西。

数据库的发展历史

产生了那么多数据,我们要使用这些数据,就需要让其找个地方保存下来。数据库发展至今都经历了以下几个阶段。

萌芽阶段:文件系统

使用磁盘文件来存储数据

早期数据是以文件的方式存放,将数据存放在一个文件内。这种数据的存放方式到目前为止依旧在使用。但是以文件的方式来存放数据,这种方式并不专业。比如说,如果把一个具体的数据存放在一个文件中,那么当你要管理磁盘上的文件是相当麻烦的,因为我们要管理这些文件需要用到对应的文件管理工具,比如我要把文件放在word内就需要用word打开,如果将数据存放在excel内就需要使用excel进行打开。

使用文件来存储还存在一个问题,那就是当有2个用户同时对一个文件进行修改时,最后生效的会是哪一个用户呢?最后存盘的那个用户生效了,这时存储数据的结果就出现了一个不可预知的结果,第一个用户以为他存盘生效了实际上他所写的内容却被后存盘的用户所覆盖。

所以使用文件来作为数据存储的方式是相当不可靠的。所以急需一中更专业的软件,这种软件专用于管理数据库。你要是想使用数据必须要使用此软件间接去访问数据库,而不能直接的去访问数据库

这种数据库的专业软件有个名称叫DBMS(Databases Managerment System),它是管理数据库的系统软件,它实现数据库系统的各种功能,是数据库系统的核心。它来和存储数据的文件进行打交道,用户访问数据库时不需要直接访问文件,所以用户无需关心文件保存的格式。DBMS自动将文件中的内容显示出来展现给用户。用户通过DBMS访问数据库时,可以不关心数据库在磁盘上的存储方式来更加方便的访问数据,访问数据时还支持并发访问数据。在并发访问时它还对文件进行加锁,避免了文件的破坏。

初级阶段:第一代数据库

第一代数据库系统是网状模型、层次模型的数据库

最早出现的是网状DBMS,1964年通用电气公司的Charles Bachman成功地开发出世界上第一个网状IDS,也是第一个数据库管理系统,IDS具有数据模型和日志的特征,只能在GE主机运行。网状模型其类似于人类的关系网,虽然网状模型符合人的逻辑思维。但是一旦数据量到了一定的程度将造成数据管理的混乱。

层次性数据库,将数据分层进行管理,以数形结构表示实体及其之间的联系,关系只支持一对多,代表数据库IBM IMS。层次性数据库容易造成数据的冗余,同一个数据被多次存放。造成数据量的增大。

中级阶段:第二代数据库

关系型数据库和结构化查询语言

目前主要数据库结构为关系型数据库,其代表类型为 MySQL、Oracle、sql_server、DB2。关系型数据库有个最大的问题,性能较差,在当今数据量如此的巨大的情况下,其数据库的性能是远远达不到要求的。于是又产生了一种非关系型数据库技术叫NOSQL。

NOSQL中No表示not only,表示除了关系型数据库还有其他的数据库,比如memcached、redis等等。

高级阶段:新一代数据库

现在关系型数据库的基础上添加了一些面向对象的思想,所以称之为"关系-对象" 型数据库

数据库管理系统的优缺点

数据库管理系统的优点

  1. 相互关联的数据的集合

  2. 较少的数据冗余

  3. 程序与数据相互独立

  4. 保证数据的安全、可靠

  5. 最大限度地保证数据的正确性

  6. 数据可以并发使用并能同时保证一致性

数据库管理系统的缺点

  1. 编写应用程序不方便

  2. 数据冗余不可避免

  3. 应用程序依赖性

  4. 不支持对文件的并发访问

  5. 数据间联系弱

  6. 难以按用户视图表示数据

  7. 无安全控制功能

数据库管理系统的基本功能

数据库管理系统所必须的基本功能有以下这些:

数据定义:在关系型数据库中需要用到数据库的定义,例如表的定义、视图、触发器、存储过程

数据处理:对数据库中的数据进行处理,比如增、删、改、查。

数据安全:对数据库设置权限等。

数据备份:对数据库进行备份和还原。

数据库的架构

数据库的架构有以下几种:

单机架构:比如说数据库安装在那台主机上,操作人员就坐在哪台主机上进行操作。典型的数据库access数据库

大型主机/终端架构:一个大型机上带多个终端,使用终端方式远程链接到服务器上。

主从式架构(C/S):目前主流,有客户端有服务器端。

分布式架构:它是建立在数据库技术与网络技术发展的基础之上的。它是将分散存储在计算机网络中的多个节点上的数据库在逻辑上统一管理,可供地理位置分散的用户共享彼此的数据资源。