任务1 认识数据库
【任务描述】在设计和使用MySQL数据库之前,需要了解数据库的基本概念以及关系型数据库数据的存储方式。
1.1.1 数据库的基本概念
1.数据
数据(Data)是用来记录信息的可识别符号,是信息的具体表现形式。在计算机中,数据是采用计算机能够识别、存储和处理的方式对现实世界的事物进行的描述,其具体表现形式可以是数字、文本、图像、音频、视频等。
2.数据库
数据库(Database, DB)是用来存放数据的仓库。具体地说,就是按照一定的数据结构来组织、存储和管理数据的集合,具有较小的冗余度、较高的独立性和易扩展性、可供多用户共享等特点。
3.数据库管理系统
数据库管理系统(Database Management System, DBMS)是操纵和管理数据库的软件,介于应用程序与操作系统之间,为应用程序提供访问数据库的方法,包括数据的定义、数据操纵、数据库运行管理及数据库建立与维护等功能。当前流行的数据库管理系统包括MySQL、Oracle、SQL Server、Sybase等。
4.数据库系统
数据库系统(Database System, DBS)由软件、数据库和数据库管理员组成。其软件主要包括操作系统、各种宿主语言、数据库应用程序以及数据库管理系统。数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行,数据库管理系统是数据库系统的核心。数据库管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。图1-1描述了数据库系统的结构。
图1-1 数据库系统
1.1.2 关系型数据库
1.关系型数据库
数据存储是计算机的基本功能之一。随着计算机技术的不断普及,数据存储量越来越大,数据之间的关系也变得越来越复杂,怎样有效地管理计算机中的数据,成为计算机信息管理的一个重要课题。
在数据库设计发展的历史长河中,人们使用模型来反映现实世界中数据之间的联系。1970年,IBM的研究员E.F.Codd博士发表了名为《大型共享数据银行的关系模型》的论文,首次提出了关系模型的概念,为关系型数据库的设计与应用奠定了理论基础。
在关系模型中,实体和实体间的联系均由单一的关系来表示。在关系型数据库中,关系就是表,一个关系型数据库就是若干个二维表的集合。
2.关系型数据库存储结构
关系型数据库是指按关系模型组织数据的数据库,采用二维表来实现数据存储,其中二维表中的每一行(row)在关系中称为元组(记录,record),表中的每一列(column)在关系中称为属性(字段,field),每个属性都有属性名,属性值是各元组属性的值。
图1-2描述了网上商城系统后台数据库中User表的数据。在该表中有uId、uName、uSex等字段,分别代表用户ID、用户名和性别。表中的每一条记录代表了系统中的一个具体的User对象,如用户李平、用户张诚等。
图1-2 用户数据表
3.常见的关系型数据库产品
(1)Oracle
Oracle是商用关系型数据库管理系统中的典型代表,是甲骨文公司的旗舰产品。Oracle作为一个通用的数据库管理系统,不仅具有完整的数据管理功能,还是一个分布式数据库系统,支持各种分布式功能。作为一个应用开发环境,Oracle提供了一套界面友好、功能齐全的数据库开发工具。Oracle使用PL/SQL语言执行各种操作,具有可开放性、可移植性、可伸缩性等特点。
(2)MySQL
MySQL是最流行的开放源码的数据库管理系统,它具有快速、可靠和易于使用的特点。由MySQL AB公司开发和发布,2008年被Sun公司收购。2009年Sun公司又被Oracle公司收购,因而MySQL成为了Oracle公司的又一重量级数据库产品。MySQL具有跨平台的特性,可以在Windows、UNIX、Linux和Mac OS等平台上使用。由于其开源免费,运营成本低,受到越来越多的公司青睐,如雅虎、Google、新浪、网易、百度等企业都使用MySQL作为数据库。
(3)SQL Server
SQL Server也是一种典型的关系型数据库管理系统,广泛应用于电子商务、银行、电力、教育等行业,它使用Transact-SQL语言完成数据操作。随着SQL Server版本的不断升级,使得该DBMS具有可靠性、可伸缩性、可用性、可管理性等特点,可为用户提供完整的数据库解决方案。
(4)DB2
DB2是美国IBM公司开发的一套关系型数据库管理系统,主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器操作系统平台下。DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。
本书选用的关系数据库产品为MySQL。
1.1.3 SQL语言
SQL(Structured Query Language,结构化查询语言)是关系型数据库语言的标准,最早是由IBM公司开发的,1986年由美国国家标准化组织和国际化标准组织共同发布SQL标准SQL-86。随着时间的变迁,SQL版本经历了SQL-89、SQL-92、SQL-99、SQL-2003及SQL-2006。SQL语言根据功能的不同被划分成数据定义语言、数据操纵语言和数据控制语言。
1.数据定义语言
数据定义语言(Data Definition Language, DDL)用于创建数据库和数据库对象,为数据库操作提供对象。例如,数据库、表、存储过程、视图等都是数据库中的对象,都需要通过定义才能使用。DDL中主要的SQL语句包括CREATE、ALTER、DROP,分别用来实现数据库及数据库对象的创建、更改和删除操作。
2.数据操纵语言
数据操纵语言(Data Manipulation Language, DML)主要用于操纵数据库中的数据,包括INSERT、SELECT、UPDATE、DELETE等语句。INSERT用于插入数据;UPDATE用于修改数据;DELETE用于删除数据;SELECT则可以根据用户需要从数据库中查询一条或多条数据。
3.数据控制语言
数据控制语言(Data Control Language, DCL)主要实现对象的访问权限及对数据库操作事务的控制,主要语句包括GRANT、REVOKE、COMMIT和ROLLBACK。GRANT语句用于给用户授予权限;REVOKE语句用于收回用户权限;COMMIT语句用于提交事务;ROLLBACK语句用于回滚事务。
数据库中的操作都是通过执行SQL语句来完成,它可以方便地嵌套在Java、C#、PHP等程序语言中,以实现应用程序对数据的查询、插入、修改和删除等操作。