1.2 数据库技术构成
数据库系统由硬件部分和软件部分共同构成。硬件主要用于存储数据库中的数据,包括计算机、存储设备等;软件部分则主要包括DBMS、支持DBMS运行的操作系统,以及支持多种语言进行应用开发的访问技术等。本节将介绍数据库的技术构成。
1.2.1 数据库系统
数据库系统有3个主要的组成部分。
(1)数据库(Database):提供了一个存储空间用以存储各种数据,可以将数据库视为一个存储数据的容器。一个数据库可能包含许多文件,一个数据库系统中通常包含许多数据库。
(2)数据库管理系统(Database Management System,DBMS):用户创建、管理和维护数据库时所使用的软件,位于用户与操作系统之间,对数据库进行统一管理。DBMS能定义数据存储结构,提供数据的操作机制,维护数据库的安全性、完整性和可靠性。
(3)数据库应用程序(Database Application):虽然已经有了DBMS,但是在很多情况下,DBMS无法满足对数据管理的要求。数据库应用程序的使用可以满足对数据管理的更高要求,还可以使数据管理过程更加直观和友好。数据库应用程序负责与DBMS进行通信,访问和管理DBMS中存储的数据,允许用户插入、修改、删除数据库中的数据。
数据库系统如图1-2所示。
图1-2 数据库系统
1.2.2 SQL语言
对数据库进行查询和修改操作的语言叫作SQL。SQL的中文含义是结构化查询语言(英文全称是Structured Query Language)。SQL有许多不同的类型,有3个主要的标准:①ANSI(美国国家标准机构)SQL,对ANSI SQL修改后在1992年采纳的标准,称为SQL-92或SQL2;②SQL-99标准,SQL-99标准从SQL2扩充而来并增加了对象关系特征和许多其他新功能;③各大数据库厂商提供的不同版本的SQL,这些版本的SQL不但能包括原始的ANSI标准,而且在很大程度上支持新推出的SQL-92标准。
SQL语言包含以下4个部分。
(1)数据定义语言(DDL):包括DROP、CREATE、ALTER等语句。
(2)数据操纵语言(DML):包括INSERT(插入)、UPDATE(修改)、DELETE(删除)等语句。
(3)数据查询语言(DQL):包括SELECT语句等。
(4)数据控制语言(DCL):包括GRANT、REVOKE、COMMIT、ROLLBACK等语句。
下面是SQL语句的例子,该语句声明创建一个students表:
CREATE TABLE students ( student_id INT UNSIGNED, name VARCHAR(30), sex CHAR(1), birth DATE, PRIMARY KEY (student_id) );
该表包含4个字段,分别为student_id、name、sex、birth,其中student_id定义为表的主键。
现在只是定义了一张表格,而没有任何数据,接下来用下面这条SQL声明语句,在students表中插入一条数据记录:
INSERT INTO students (student_id, name, sex, birth) VALUES (41048101, 'Lucy Green', '1', '1990-02-14');
执行完上面的SQL语句之后,students表中就会增加一行新记录,该记录中字段student_id的值为41048101,name字段的值为Lucy Green,sex字段的值为1,birth字段的值为1990-02-14。
再使用SELECT查询语句获取刚才插入的数据,结果如下:
SELECT name FROM students WHERE student_id = 41048101; +--------------+ | name | +--------------+ | Lucy Green | +--------------+
上面简单列举了常用的数据库操作语句,只是为了给读者一个直观的印象,读者可能还不能理解,接下来会在学习MySQL的过程中详细介绍这些知识。
1.2.3 数据库访问技术
不同的程序设计语言会有各自不同的数据库访问技术,程序语言通过这些技术,执行SQL语句,进行数据库管理。主要的数据库访问技术如下。
1.ODBC
ODBC(Open Database Connectivity,开放式数据库连接)技术为访问不同的SQL数据库提供了一个共同的接口。这一接口提供了最大限度的互操作性:一个应用程序可以通过共同的一组代码访问不同的SQL数据库管理系统(DBMS)。
基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是Access、MySQL还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。
2.JDBC
JDBC(Java Database Connectivity,Java数据库连接)是Java应用程序连接数据库的标准方法,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问。JDBC由一组用Java语言编写的类和接口组成。
3.ADO.NET
ADO.NET是微软在.NET框架下开发设计的一组用于和数据源进行交互的面向对象类库。ADO.NET提供了对关系数据、XML和应用程序数据的访问,允许和不同类型的数据源以及数据库进行交互。
4.PDO
PDO(PHP Data Object,PHP数据对象)为PHP访问数据库定义了一个轻量级的、一致性的接口,提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。PDO是PHP 5新加入的一个重大功能。
针对不同的程序语言,MySQL提供了不同的数据库访问连接驱动,读者可以在相关网站的下载页面(http://dev.mysql.com/downloads/)下载相关驱动。