MySQL是一款开源的关系型数据库。这句话中包含两个重要的元素:开源,关系型数据库。
首先,在互联网的世界中无非有两种软件,开源的和闭源的。前者以Apache基金会等组织为代表,后者以Oracle等商业公司为代表。在数据库领域,闭源的代表有Oracle和SQL Server,而开源的代表有MySQL,PostgreSQL等等。
下面说说关系型数据库。关系型数据库的理论基础是40多年前IBM的研究员E.F.Codd的一篇论文《A Relational Model of Data for Large Shared Data Banks》。关系型数据库的理论基础是关系代数,事实上,任何有高中数学基础的人学起关系型数据库到一定阶段,都会发现,数据库的很多计算都是集合运算。
至于关系代数,可以参考萨师煊,王珊主编的《数据库理论基础》这本书。
有关系型数据库,就有对应的非关系型数据库,非关系型数据库的杰出代表是MongoDB,Redis等,这些数据库被称作noSQL,这不是本书的重点,在此不做赘述。
MySQL最初是Monty开发的,最开始的目的是一款面向报表的引擎,在开源社区的努力下,逐渐演变成了一款可以用于商业的关系型数据库,Monty也成立了MySQL AB公司来进行商业活动,后来MySQL AB被Sun收购,2009年,以技术著称的Sun被巨头Oracle收购。从此之后,Java和MySQL同时被Oracle收入囊中。
这里值得一提的是,现在大放光彩的InnoDB存储引擎,早于MySQL就被Oracle收购了,因此可以认为Oracle收购MySQL是一个必然的事情。
在本文档中,再无特别说明的情况下,MySQL都指官方的MySQL。