1.1 数据库原理(一)——数据库基本概念
数据库技术研究的是如何科学正确地组织、存储数据,如何高效地获取和处理数据,是由文件管理系统发展起来的一种理想的数据管理技术。对客观世界的描述,最终都要表现为数据。数据是用于承载信息的物理符号。当用计算机处理这些数据时,需要对它们进行组织、存储、加工和维护,即进行数据管理。而当数据量特别大时,程序如何处理数据就变得相当重要。
1.1.1 数据库技术的发展
随着计算机技术的不断发展,数据管理技术经历了人工管理阶段、文件系统阶段和数据库系统阶段。
1.人工管理阶段
20世纪50年代中期以前,计算机主要用于科学计算,数据管理主要由人工完成。当时从硬件看,外存只有磁带、卡片、纸带,还没有磁盘等这些可直接存取的存储设备;从软件上看,还没有出现操作系统和管理数据的软件。所以数据由用户直接管理,因此数据依赖于特定的应用程序,缺乏独立性,且数据间也缺乏逻辑组织。
人工管理阶段程序与数据之间的关系如图1-1所示。
图1-1 人工管理阶段程序与数据之间的关系
人工管理阶段数据处理的主要特点是:
(1)数据不存储。数据无法永久存储,需要使用数据时才编写程序,将数据嵌入到程序中处理。
(2)数据无法独立于程序,它是程序的组成部分。程序员对数据的存储结构、存取方法及输入/输出的格式拥有绝对的控制权,要修改数据必须修改程序。
(3)数据是面向程序的,不同程序的数据之间是相互独立、彼此无关的,即使两个不同程序涉及相同的数据,也必须各自定义,无法互相利用、互相参照。数据无法共享而高度冗余。
2.文件系统阶段
20世纪50年代后期~60年代中期,计算机不仅应用于科学计算,还大量应用于经济管理。硬件方面,有了磁盘、磁鼓等存储设备;软件方面,操作系统中已经有了专门的数据管理软件——文件系统。此时数据可以长期保持在外围设备上,由文件系统统一管理数据的存取。
文件系统阶段程序与数据之间的关系如图1-2所示。
文件系统阶段的主要特点是:
(1)数据被组织成相对独立的数据文件,数据和程序相互独立,数据共享成为可能;数据的物理结构和逻辑结构之间有了简单的变换。
(2)文件管理系统提供了对数据文件按文件名称进行数据的存取、修改等的编辑操作方法。
(3)数据虽可以共享,但因数据还是面向某些特定的应用程序,所以数据仍存在相当程度的冗余。
3.数据库系统阶段
20世纪60年代后期,数据管理进入数据库系统阶段。此时计算机系统广泛应用于企业管理,于是为了解决多用户、多应用共享数据的需求,使数据为尽可能多的应用服务,数据库技术便应运而生。
数据库系统阶段程序与数据之间的关系如图1-3所示。
数据库系统的目标是:解决数据冗余问题,实现独立性,实现数据共享并解决由于数据共享而带来的数据完整性、安全性及并发控制等一系列问题。为实现这一目标,数据库的运行必须由一个软件系统来控制,这个系统软件称为数据库管理系统。
图1-2 文件系统阶段程序与数据之间的关系
图1-3 数据库系统阶段程序与数据之间的关系
1.1.2 数据库技术的基本概念
数据库的基本概念和术语有:数据、数据库、数据库管理系统和数据库系统。
1.数据
数据(Data)是数据库中存储的基本对象,也是最终用户操作的基本对象。数据是对现实世界中事物的一种描述,在计算机领域中数据是一个广义的概念,文字、图形、图像、声音等都属于数据范畴,它们都是经过数字化后存入计算机的。
2.数据库
数据库(Database,DB)可以简单理解为“存放数据的仓库”,这个仓库是计算机的存储设备。较为全面的定义是:所谓数据库,就是为满足某部门各种用户的多种应用需要,在计算机系统中按照一定数据模型组织、存储和使用的互相关联的数据集合。
3.数据库管理系统
数据库管理系统(Database Management System,DBMS)是位于用户与操作系统之间的一层数据管理软件。通常具有以下功能:
(1)数据定义功能
数据库管理系统给用户提供了数据描述语言(Data Description Language,DDL)。用于在数据库中创建并且管理各种数据库对象,如数据库、表、视图、索引、触发器等,主要通过对每个对象的CREATE、ALTER、DROP语句来实现。
(2)数据操纵功能
数据库管理系统给用户提供了数据操纵语言(Data Manipulation Language,DML)。用于对数据的查询、添加、修改和删除等操作,使用SELECT、INSERT、UPDATE、DELETE语句。
(3)数据控制功能
数据库管理系统给用户提供了数据控制语言(Data Control Language,DCL)。用于对用户的权限进行设控制,主要使用GRANT、GRANT、DENY、REVOKE语句。
4.数据库系统
数据库系统(Data Base System)是指采用数据库技术的计算机系统,包括数据库、数据库管理系统和构成这一计算机系统的其他部分(如计算机硬件、支撑软件、操作人员等)。