第 1 章 数据库与MySQL 数据库(Database),就是按照数据结构来组织、存储和管理数据的建立在计算机存储设 备上的仓库。我们可以把数据库看成为电子化的文件柜,也就是存储电子文件的处所,用户可 以对文件中的数据进行新增、查询、更新、删除等操作。 本章主要涉及的内容有: 认识数据库:数据库技术经历的阶段,数据库管理系统的功能。 数据库管理系统的基本组成。 认识MySQL 数据库。 通过本章的学习,我们将对MySQL 数据库系统有个初步的了解。 1.1 认识数据库 数据库能够将数据按照特定的规律组织起来,那么我们为什么要学习数据库?数据是如何 存储的?数据库要遵守什么规则?数据库技术��经历过什么阶段?数据库管理系统会提供哪 些功能?当前流行的数据库有哪些? 1.1.1 我们为什么必须学习数据库 我们为什么要学习数据库,可以从几个方面来阐述原因。 1. 数据时代背景 我们身处一个数据时代,举一些简单的例子,来说明这样一个时代大背景。 学校需要把学生的基本信息(学号、姓名、性别、年龄、年级、班级、成绩等)存放在不 同的表中,而这些表都需要存放在数据仓库中,老师可以根据学生的姓名或者学号,查阅学生 的基本信息,如果使用计算机处理这些工作,管理效率就可以得到极大的提升。 我们去商场或者超市购物结账时,收银员的电脑里有进销存软件,该软件本质上是记录和 处理消费数据,顾客每一次购买的商品种类、数量、金额、时间以及每次购买所获得的积分, 都通过该软件存储在后台数据库当中。 4 MySQL 5.7 从入门到实战(视频教学版) 我们的智能手机上的每一个应用,无时无刻不在记录和处理关于我们日常生活的数据。购 物网站会根据我们的每次一次网购,分析我们的购物喜好,从而向我们**合适的商品;健身 软件会每天记录我们的运动数据;育儿软件会记录婴儿成长相关的数据;聊天软件会记录我们 的每一条聊天记录;社交软件会根据我们分享的内容而推送相应的广告;电子钱包会记录我们 的每一笔收入和消费;连家用摄像机都会记录用户的基本信息上传到云端服务器,记录在数据 库中。这就是我们所处的互联网大数据时代,数据无处不在,我们必须要学习数据库知识,才 能更好地理解这个数据世界。 2. 软件行业工作性质 对于软件行业的同学来说: 程序 = 算法 + 数据结构 无论是传统的软件,还是互联网网站,或者移动端的应用,都要处理数据。数据库可以说 是学习软件开发的核心课程之一,几乎绝大部分软件都涉及数据库,很多数据必须存在数据库 中,也许,*初少量的信息可以存在文件中,但是,随着数据量的增大,文件已经不能很理想 地处理这些数据,所以必须使用数据库去处理数据,因为数据库速度更快、更好维护、开发效 率更高。 3. 数据库设计优劣 在数据库设计阶段,对于同一领域建模,不同的建模人员得到的结果不一样,从而转换后 的关系模式也不一样。这样就存在关系模式的优劣之分。学习数据库,就是要学习前人总结的 一些规则、常用的表示方法,从而能够设计出更合理、**的模式。 1.1.2 数据库技术经历的阶段 本小节将为读者介绍数据库技术经历的3个阶段,即层次数据库和网状数据库技术阶段、 关系数据库技术阶段和后关系数据库技术阶段。 1. 层次数据库和网状数据库技术阶段 层次数据库系统是较早研制成功的数据库系统,*典型的是1968 年由IBM 研制的IMS (Information Management System)。1966 年,美国**航空航天局(NASA) 承包商——北美 航空,希望能够开发一个计算机程序,用于追踪火箭的数百万个部件。作为对这个需求的回应, 在 1968 年,IBM 推出了全球**个商用数据库管理系统,1969 年,该系统改名为IMS(信 息管理系统)。 网状数据库是处理以记录类型为节点的网络数据模型的数据库。世界上**个网状数据库 系统是美国通用电气Bachman 等人在1964 年开发成功的IDS(IntegratedDataStore),IDS 奠 定了网状数据库的基础。 5 第1章 数据库与MySQL 2. 关系数据库技术阶段 1970 年,IBM 的研究员,有“关系数据库之父”之称的埃德加·弗兰克·科德博士** 提出了数据库的关系模型的概念,奠定了关系模型的理论基础。20 世纪70年代,IBM 公司的 San Jose 实验室研制的关系数据库问世。20 世纪80 年代以来,计算机厂商推出的数据库管理 系统几乎都支持关系模型,数据库领域当前的研究工作大都以关系模型为基础。关系数据库技 术的代表数据库管理系统为Oracle、DB2、SQLServer、MySQL、Sybase 等。 3. 后关系数据库技术阶段 后关系数据库,实质上是在关系数据库的基础上,融合了面向对象技术和Internet网络应 用开发背景而发展起来的。它结合了传统数据库如层次、网状和关系数据库的一些特点,以及 Java 等编程工具环境,适应于以Internet Web 为基础的应用,开创了关系数据库的新时代。从 后关系型数据库模型的提出,到现在已经经历了20多年,随着后关系型数据库技术的发展, 后关系型数据库产品已经不再停留在模型的基础阶段,例如美国InterSystems 公司发布的 Caché,就是一个用于高性能事务应用的后关系型数据库管理系统,该系统具有面向对象的许 多功能和一个事务型多维数据模型。 1.1.3 数据库管理系统提供的功能 数据库管理系统(Database Management System)是数据库系统的核心,是管理数据库的 软件。数据库管理系统就是实现把用户意义下抽象的逻辑数据处理,转换成为计算机中具体的 物理数据处理的软件。数据库管理系统的主要功能有: 1. 数据定义 数据库管理系统提供数据定义语言(Data Definition Language,DDL),供用户定义数据库 的三级模式结构、两级映像以及完整性约束和保密限制等约束。简单地说,DDL 用来创建数 据库中的各种对象——表、视图、索引、同义词、聚簇等,例如: CREATE TABLE/VIEW/INDEX/SYN/CLUSTER 2. 数据操作 数据库管理系统提供的数据操作语言(Data Manipulation Language,DML),供用户实现 对数据的追加(INSERT)、删除(DELETE)、更新(UPDATE)等操作。 3. 数据控制 数据库管理系统提供的数据控制语言(Data Control Language,DCL),包含数据完整性控 制、数据**性控制和数据库的恢复等,具体如授权(GRANT)、回滚(ROLLBACK)、提交 (COMMIT)等。 6 MySQL 5.7 从入门到实战(视频教学版) 1.2 当前流行的数据库 在当前主流数据库中,商业数据库以甲骨文公司的Oracle 数据库为主,另外还有IBM 公 司的DB2 数据库、微软公司的SQL Server 数据库,同时还有很多**的免费开源数据库,像 PostgreSQL、MySQL等都深受欢迎。 先来看看数据库排行榜DB-Engines Ranking(https://db-engines.com/en/ranking),如图1-1 和图1-2 所示,可以看到关系数据库中,Oracle 数据库、MySQL 数据库、SQL Server 数据库 的流行度远超于其他数据库;而非关系数据库中,比较流行的有MongoDB 和Redis 等。 图1-1 数据库流行度排名 虽然Oracle 和MySQL的排名在短期内均没有发生变化,但这两个数据库的**之争依然 扣人心弦,可以看到MySQL 数据库的人气直逼Oracle 数据库。从图1-2中可以看出,非关系 数据库的发展比较迅猛。 图1-2 数据库趋势流行度排名