数据的存储方式
-
人工管理阶段
-
文件系统阶段
-
数据库系统管理阶段
-
大数据 BIG DATA
数据库技术构成
-
数据库系统 DBS A.数据库管理系统(DataBase Management System, DBMS): SQL(RDS): ORACLE、Oracle MySQL、MariaDB、Percona server、DB2 NoSQL: Redis、MongoDB、Memcache B.DBA
-
SQL语言(结构化查询语言) A. DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程、函数, CREATE DROP ALTER //开发人员 B. DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE //开发人员 C. DQL语句 数据库查询语言: 查询数据 SELECT D. DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
-
数据访问技术 A. ODBC PHP <.php> B. JDBC JAVA <.jsp>
API接口 应用程序接口
MySQL介绍
去IOE运动
oracle
mariadb
MySQL的早期创始人之一MontyWidenius是公开反对Sun与甲骨文合并的著名人士之一。他2009年离开Sun后创办了Monty ProgramAB公司,并开发出了MariaDB—这是一种新版本的MySQL,这家公司的产品立足于MariaDB开源数据库
NoSQL能替代MySQL吗? 市场上有许多小的"MySQL",这些开源的、比较简单、快速的数据库统一称为“NoSQL”。这些产品与早期的MySQL一样,很有特点,但难免稚嫩。
当然,Oracle很聪明,认识到自己的要求得有个“度”,不然用户会开始改写代码。比如说,Twitter已宣布大范围尝试改用Cassandra来开发基础架构。Cassandra是另一种开源项目,采用更加开放的Apache许可证。
Twitter的举措也许纯粹出于技术上的考虑:Cassandra是一种非常简单、快速的数据库,没有很多比较复杂的保护措施,比如事务处理。Twitter这一举措的意义在于,它可能为不想陷入许可困境的MySQL用户指明一条更省事的道路。实际上,还有众多像Cassandra这样的项目,它们都常常用“NoSQL”这个流行词来定义。不过,采用NoSQL是要付出代价的。
NoSQL显然有一席之地,但它不适合普通的开发人员,因为NoSQL在某些方面为你提升性能的同时,却在其他很多方面降低了灵活性和兼容性。Widenius说,“它让我想起了MySQL问世之前存在的众多数据库。MySQL开始流行后,这些数据库先后退出了市场,原因是MySQL很容易使用,极容易与其他应用软件进行连接,这归功于SQL接口。”
的确,今天的NoSQL数据库让人联想到了MySQL昔日的境况。与Cassandra一样,MySQL数据库也是从一个很小的项目做起来的,它摈弃了最传统的数据库拥有的一些保护措施,因而提供了非常快的存储性能。之后,MySQL逐渐添加了很多其他方面的功能,成为了一款成功的数据库产品,能够处理一些比较高端的事务,所有这些工作原本都需要更多的工程师和更多的预算。
实际上,Widenius以及高度依赖MySQL的企业现在处境很微妙。如果MariaDB因潜在客户想规避许可问题而失败,留给他的将是一家倒闭公司,不过那可以证明他预测Oracle与Sun合并案会带来不利影响是正确的;如果MariaDB生意兴隆,他可能会享受这种成功带来的喜悦,但他的预测肯定会受到更多人的怀疑。在一条道路上,他成为击败巨人歌利亚(Oracle)的大卫;而在另一条道路上,他将被视做预言家卡珊德拉(希腊神话中的预言家,预言很准,但没人信她)。不管怎样,Widenius肯定会既是正确的也是错误的。
人们对MySQL的未来担心主要有两个:一个是Oracle未来可能不给MySQL继续投入,让其自生自灭;另一个是Oracle可能会改变MySQL的销售策略。如果出现这两种结果中的任何一种,最终都会导致数据库市场竞争的减少,使得用户利益受损。现在看来,短期内MySQL不太可能落到这样的命运。其中很重要的一个原因是MySQL的销售将采用GPL授权。
在不久前举办的O'Reilly MySQL大会上,MySQL社区副总裁Kaj Arno公开表示,MySQL将继续采用GPL授权。如果MySQL采用GPL,对MySQL会起到一定保护作用。
首先,众所周知,GPL授权的核心是如果某产品是基于GPL授权的开源产品开发,那么该产品也必须公开源码,并采用GPL授权。由于GPL的这一规定,Oracle不能将MySQL变为闭源产品销售。
其次,如果Oracle停止对MySQL投入,只要市场存在对这类开源数据库的需求,现在已经存在的MySQL的衍生版,如Drizzle、MariaDB可能很快会顶替MySQL的位置,其他组织也可以根据GPL授权推出新类型的MySQL版本(如NoSQL)。这种局面肯定不会是Oracle愿意看到的,对于Oracle来说,与其培育一个新的竞争对手,显然不如把这个竞争对手拉入自己的阵营。更何况短期内放弃MySQL对Oracle而言还面临着巨大的公关压力。
之前的MySQL公司一直坚持自己拥有完整的版权,其办法是要求所有开发人员签署将版权授予该公司的协议。这种权利意味着只有MySQL才能销售商用软件证,而不用GPL。用户采用GPL许可的麻烦在于,GPL是一种让人迷惑的许可方式,其细节非常复杂。有些人认为该许可证更适用于设备驱动程序以及用来定义连接的协议。
MySQL从开发人员手中的“玩具”变为如今的“世界上最流行的开源数据库”,其中的过程伴随着产品版本升级,以及一些新功能(特别是企业数据库功能)的增加。现在,随着MySQL 5.0被完美地开发出来,已经很少有人将MySQL称为“玩具数据库”了。MySQL的丰富功能满足了许多用户的需求,Oracle最近的动作表明了他们对待MySQL非常重视——Oracle曾几次三番的表示有意收购MySQL。
MySQL的产品路线图 让我们先从MySQL的较有影响的版本产品开始,看一下MySQL的更新换代。
MySQL 4.0 MySQL 4.0是在2003年3月发布的,该版本使新的基于MySQL的应用程序获得了更广泛的应用。但是在4.0版中,MySQL不支持存储过程、触发程序、服务器端指针或视图。MySQL 4.0是从3.23发展而来,较之3.23版本有了很大的提高,主要适用于Web站点,这时候的MySQL还不是一个企业级数据库。
MySQL 5.0 2005年年初 支持存储过程。存储过程是一个开发人员在其他数据库环境最常用的ANSI SQL标准,对于MySQL来说,这已经姗姗来迟了。MySQL 5.0所支持的存储过程的语法类似于Oracle PL/SQL和T-SQL。 触发程序(发生某个事件时所称的存储过程) 支持指针 真正支持VARCHAR数据类型,解决了一个长期存在的MySQL VARCHAR bug。 在MyISAM表中对RTREE索引的支持,将使访问地理数据变得很容易。
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。对于Mysql的前途,没有任何人抱乐观的态度。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
MySQL最初的开发者的意图是用mSQL和他们自己的快速低级例程(ISAM)去连接表格。不管怎样,在经过一些测试后,开发者得出结论:mSQL并没有他们需要的那么快和灵活。这导致了一个使用几乎和mSQL一样的API接口的用于他们的数据库的新的SQL接口的产生,这样,这个API被设计成允许为用于mSQL而写的第三方代码更容易移植到MySQL。
MySQL这个名字是怎么来的已经不清楚了。基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQL AB创始人之一的 MySQL AB创始人之一Monty Widenius的女儿也叫My。这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。 MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。
MySQL是一种数据库管理系统 数据库是数据的结构化集合。它可以是任何东西,从简单的购物清单到画展,或企业网络中的海量信息。要想将数据添加到数据库,或访问、处理计算机数据库中保存的数据,需要使用数据库管理系统,如MySQL服务器。计算机是处理大量数据的理想工具,因此,数据库管理系统在计算方面扮演着关键的中心角色,或是作为独立的实用工具,或是作为其他应用程序的组成部分。
MySQL是一种关联数据库管理系统 关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL指得是“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言,它是由ANSI/ISO SQL标准定义的。SQL标准自1986年以来不断演化发展,有数种版本。在本手册中,“SQL-92”指得是1992年发布的标准,“SQL:1999”指得是1999年发布的标准,“SQL:2003”指得是标准的当前版本。我们采用术语“SQL标准”标示SQL标准的当前版本。
MySQL软件是一种开放源码软件 “开放源码”意味着任何人都能使用和改变软件。任何人都能从Internet下载MySQL软件,而无需支付任何费用。如果愿意,你可以研究源码并进行恰当的更改,以满足你自己的需求。MySQL软件采用了GPL(GNU通用公共许可证),定义了在不同情况下可以用软件作的事和不可作的事。数据库服务器具有快速、可靠和易于使用。MySQL服务器还有一套实用的特性集合,在基准测试主页上,给出了MySQL服务器和其他数据库管理器的比较结果。
SQL语言介绍
SQL(Structured Query Language 即结构化查询语言) SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。 DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE DQL语句 数据库查询语言: 查询数据SELECT