本节主要介绍数据库涉及到的技术,包括数据库系统、SQL 语言和数据库访问技术。
数据库系统
数据库管理系统(Database Management System,DBMS)是位于操作系统与用户之间的一种操纵和管理数据库的软件,按照一定的数据模型科学地组织和存储数据,同时可以提供数据高效地获取和维护。
DBMS的主要功能包括以下几个方面。
1) 数据定义功能
DBMS 提供数据定义语言(Data Definition Language,DDL),用户通过它可以方便地对数据库中的数据对象进行定义。
2) 数据操纵功能
DBMS 还提供数据操纵语言(Data Manipulation Language,DML),用户可以使用 DML 操作数据,实现对数据库的基本操作,如查询、插入、删除和修改等。
3) 数据库的运行管理
数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。例如:
- 数据的完整性检查功能保证用户输入的数据应满足相应的约束条件;
- 数据库的安全保护功能保证只有赋予权限的用户才能访问数据库中的数据;
- 数据库的并发控制功能使多个用户可以在同一时刻并发地访问数据库的数据;
- 数据库系统的故障恢复功能使数据库运行出现故障时可以进行数据库恢复,以保证数据库可靠地运行。
4) 提供方便、有效地存取数据库信息的接口和工具
编程人员可通过编程语言与数据库之间的接口进行数据库应用程序的开发。数据库管理员(Database Administrator,DBA)可通过提供的工具对数据库进行管理。
数据库管理员是维护和管理数据库的专门人员。
5) 数据库的建立和维护功能
数据库功能包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监控、分析功能等。这些功能通常由一些使用程序来完成。
数据库系统是指在计算机系统中引入数据库后的系统。一个完整的数据库系统(Database System,DBS)一般由数据库、数据库管理系统、应用开发工具、应用系统、数据库管理员和用户组成。完整的数据库系统结构关系如图所示:
了解SQL语言
MySQL 服务器正确安装以后,就已经完成了一个完整的 DBMS 的搭建,可以通过命令行管理工具或者图形化的管理工具对 MySQL 数据库进行操作。这种操作实质上是通过结构化查询语言(Structured Query Language,SQL)来实现的,SQL 语言是各种数据库交互方式的基础。
SQL 是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。与其他程序设计语言(如C、Java等)不同的是,SQL 由很少的关键字组成,每个 SQL 语句通过一个或多个关键字构成。
SQL具有如下优点。
- 一体化:SQL集数据定义、数据操作和数据控制于一体,可以完成数据库中的全部工作。
- 使用方式灵活:SQL具有两种使用方式,可以直接以命令方式交互使用;也可以嵌入使用,嵌入C、C 、Fortran、COBOL、Java等语言中使用。
- 非过程化:只提操作要求,不必描述操作步骤,也不需要导航。使用时只需要告诉计算机“做什么”,而不需要告诉它“怎么做”。
- 语言简洁、语法简单、好学好用:在ANSI标准中,只包含94个英文单词,核心功能只用6个动词,语法接近英语口语。
注意:SQL 语句不区分大小写,许多 SQL 开发人员习惯对 SQL 本身的关键字进行大写,而对表或者列的名称使用小写,这样可以提高代码的可阅读性和可维护性。本教程也按照这种方式组织 SQL 语句。大多数数据库都支持通用的 SQL 语句,同时不同的数据库具有各自特有的 SQL 语言特性。
数据库访问技术
数据库访问技术包括 ODBC、DAO、OLE DB 和 ADO。
ODBC
ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(Windows Open Services Architecture,WOSA)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准 API(应用程序编程接口)。这些 API 利用 SQL 来完成其大部分任务。
ODBC 本身也提供了对 SQL 语言的支持,用户可以直接将 SQL 语句送给 ODBC。
DAO
DAO(Data Access Object,数据访问对象集)是 Microsoft 提供的基于一个数据库对象集合的访问技术,可以独立于 DBMS 进行数据库的访问。
OLE DB
OLE DB(Object Linking and Embedding Database,对象连接与嵌入)是微软战略性的通向不同数据源的低级应用程序接口。OLE DB 不仅包括微软资助的标准数据接口,开放数据库连通性(ODBC)的结构化查询语言(SQL)能力,还具有面向其他非 SQL 数据类型的通路。
作为微软的组件对象模型(COM)的一种设计,OLE DB 是一组读写数据的方法(在过去可能称为渠道)。OLD DB 中的对象主要包括数据源对象、阶段对象、命令对象和行组对象。
ADO
ADO(ActiveX Data Objects)是一个用于存取数据源的 COM 组件,提供了编程语言和统一数据访问方式 OLE DB 的一个中间层,允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,只用关心到数据库的连接。
访问数据库的时候,关于 SQL 的知识不是必要的,但是特定数据库支持的 SQL 命令仍可以通过 ADO 中的命令对象来执行。