MySQL 8 DBA基础教程
上QQ阅读APP看书,第一时间看更新

1.1 认识数据库

数据库能够将数据按照特定的规律组织起来。那么,我们为什么要学习数据库?数据是如何存储的?数据库要遵守什么规则?数据库技术都经历过什么阶段?数据库管理系统会提供哪些功能?当前流行的数据库有哪些?

1.1.1 我们为什么要学习数据库

我们为什么要学习数据库,可以从以下几个方面来阐述原因。

1.数据时代背景

我们身处一个数据时代,举一些简单的例子来说明这样一个时代大背景。

学校需要把学生的基本信息(学号、姓名、性别、年龄、年级、班级、成绩等)存放在不同的表中,而这些表都需要存放在数据仓库中,老师可以根据学生的姓名或者学号查阅学生的基本信息,如果使用计算机处理这些工作,管理效率就可以得到极大的提升。

我们去商场或者超市购物结账时,收银员的计算机里有进销存软件,该软件的本质是记录和处理消费数据,顾客每次购买的商品种类、数量、金额、时间以及每次购买所获得的积分都通过该软件存储在后台数据库中。

我们的智能手机上的应用无时无刻不在记录和处理关于我们日常生活的数据。购物网站会根据我们的每次一次网购分析我们的购物喜好,从而向我们推荐合适的商品;健身软件每天会记录我们的运动数据;育儿软件会记录婴儿成长相关的数据;聊天软件会记录我们的每一条聊天内容;社交软件会根据我们分享的内容而推送相应的广告;电子钱包会记录我们的每一笔收入和消费;家用摄像机会记录用户的基本信息并上传到云端服务器,记录在数据库中。这就是我们所处的互联网大数据时代,数据无处不在,我们必须要学习数据库知识,才能更好地理解这个数据世界。

2.软件行业的工作性质

对于软件行业的同学来说:

     程序 = 算法 + 数据结构

无论是传统的软件,还是互联网网站,或者移动端的应用,都要处理数据。数据库可以说是学习软件开发的核心课程之一,几乎绝大部分软件都涉及数据库,很多数据必须保存在数据库中,也许最初少量的信息可以保存在文件中,但是随着数据量的增大,文件已经不能很理想地处理这些数据,所以必须掌握使用数据库处理数据,因为数据库速度更快,更好维护,开发效率更高。

3.数据库设计的优劣

在数据库设计阶段,对于同一领域建模,不同的建模人员得到的结果不一样,进而转换后的关系模式也不一样。这样就存在关系模式的优劣之分。学习数据库就是要学习前人总结的一些规则,以及常用的表示方法,进而设计出更合理、高效的模式。

1.1.2 数据库技术经历的阶段

本小节将为读者介绍数据库技术经历的3个阶段,即层次数据库和网状数据库技术阶段、关系数据库技术阶段和后关系数据库技术阶段。

1.层次数据库和网状数据库技术阶段

层次数据库系统是较早研制成功的数据库系统,典型的是1968年由IBM研制的信息管理系统(Information Management System,IMS)。1966年,美国国家航空航天局(NASA)承包商北美航空希望能够开发一个计算机程序,用于追踪火箭的数百万个部件,作为对这个需求的回应,IBM在1968年推出了全球第一个商用数据库管理系统,该系统在1969年改名为信息管理系统。

网状数据库是处理以记录类型为节点的网络数据模型的数据库。世界上第一个网状数据库系统是美国通用电气Bachman等人在1964年开发成功的IDS(Integrated DataStore),IDS奠定了网状数据库的基础。

2.关系数据库技术阶段

1970年,IBM的研究员,有“关系数据库之父”之称的埃德加·弗兰克·科德博士首次提出了数据库的关系模型的概念,奠定了关系模型的理论基础。20世纪70年代,IBM公司的San Jose实验室研制的关系数据库问世。20世纪80年代以来,计算机厂商推出的数据库管理系统几乎都支持关系模型,数据库领域当前的研究工作大都以关系模型为基础。关系数据库技术的代表数据库管理系统为Oracle、DB2、SQL Server、MySQL、Sybase等。

3.后关系数据库技术阶段

后关系数据库实质上是在关系数据库的基础上融合了面向对象技术和Internet网络应用开发背景而发展起来的。它结合了传统数据库(如层次、网状和关系数据库)的一些特点,以及Java等编程工具环境,适用于以Internet Web为基础的应用,开创了关系数据库的新时代。从后关系型数据库模型的提出到现在已经经历了20多年,随着后关系型数据库技术的发展,后关系型数据库产品已经不再停留在模型的基础阶段,例如美国InterSystems公司发布的Caché就是一个用于高性能事务应用的后关系型数据库管理系统,该系统具有面向对象的许多功能和一个事务型多维数据模型。

1.1.3 数据库管理系统提供的功能

数据库管理系统(Database Management System,DBMS)是数据库系统的核心,是管理数据库的软件。数据库管理系统就是实现把用户意义下抽象的逻辑数据处理转换成为计算机中具体的物理数据处理的软件。数据库管理系统的主要功能如下:

1.数据定义

数据库管理系统提供数据定义语言(Data Definition Language,DDL)供用户定义数据库的三级模式结构、两级映像以及完整性约束和保密限制等约束。简单地说,数据定义语言用来创建数据库中的各种对象—表、视图、索引、同义词、聚簇等,比如:

     CREATE TABLE/VIEW/INDEX/SYN/CLUSTER
2.数据操作

数据库管理系统提供的数据操作语言(Data Manipulation Language,DML)供用户实现对数据的追加(INSERT)、删除(DELETE)、更新(UPDATE)等操作。

3.数据控制

数据库管理系统提供的数据控制语言(Data Control Language,DCL)包含数据完整性控制、数据安全性控制和数据库的恢复等,具体如授权(GRANT)、回滚(ROLLBACK)、提交(COMMIT)等。