1.1 数据库基本概念
1.1.1 数据与数据处理
在实际的工作和学习中,每个人都有很多亲戚和朋友,为了保持与他们的联系,我们常常通过一定的方法将他们的姓名、地址、电话等信息都记录在通讯录中(存于一个笔记本中,或存于手机中),这样在查找时就很方便了。这个“通讯录”就是一个最简单的“数据库”,而每个人的姓名、地址、电话等信息就是这个数据库中的“数据”。我们可以根据需要随时在这个“数据库”中添加新朋友的个人信息,也可以修改某个人的电话号码“数据”。
1.数据
数据是事物特性的反映和描述,是符号的集合。数据不仅包括狭义的数值数据,而且包括文字、声音、图形、图像等一切能被计算机接收并处理的符号。数据在空间上的传递称为通信(以信号方式传输),数据在时间上传递称为存储(以文件形式存取)。信息是和数据关系密切的另外一个概念,数据是信息的符号表示(或称为载体),信息则是数据的内涵,是对数据语义的解释。
2.数据处理
数据处理可定义为对数据的收集、存储、加工、分类、检索、传播等一系列活动。这些活动是数据处理业务的基本环节,是任何数据处理业务中必不可少的共有部分。对于数据处理而言,其基本目的是从大量的、杂乱无章的、难以理解的数据中抽取并推导出对某些特定用户有价值、有意义的数据。数据管理和数据处理有一定的联系,数据管理技术的优劣,将直接影响数据处理的效率。
1.1.2 数据库
1.数据库的概念
数据库是存放数据的仓库,是对现实世界有用信息的抽取、加工和处理,并按一定格式长期存储在计算机内的、有组织的、可共享的数据集合。数据库的概念包括两层意思:
(1)数据库是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念相结合构成数据库;
(2)数据库包含数据管理的新方法和新技术,通过数据库可以方便地组织数据、维护数据、控制数据和利用数据。
2.数据库的特点
相对于传统的人工管理和文件技术,数据库具有如下特点。
(1)数据结构化
数据库中的数据是从全局观点出发建立的,按一定的数据模型进行组织、描述和存储。其结构基于数据间的自然联系,数据面向全组织,不针对特定应用,具有整体的结构化特征。
(2)数据独立性
数据独立性是指数据的逻辑组织方式和物理存储方式与用户的应用程序相对独立。数据库的数据独立性包括物理独立性和逻辑独立性两个方面。
数据的物理独立性是指当数据的物理存储改变时,应用程序不用改变。换言之,用户的应用程序与数据库中的数据是相互独立的。数据在数据库中的存储形式是由DBMS管理的,应用程序要处理的只是数据的逻辑结构。
数据的逻辑独立性是指当数据的逻辑结构改变时,用户应用程序不用改变。也就是说,用户的应用程序与数据库的逻辑结构是相互独立的。
通过数据独立性可以将数据的定义和描述从应用程序中分离出来。数据的存取由DBMS管理,用户不必考虑存取路径等细节,从而简化了应用程序的编制,大大减少了应用程序的维护和修改工作量。
(3)数据冗余低
数据的冗余度是指数据重复的程度。数据库系统从整体角度描述数据,数据可以被多个应用共享。这样可以节约存储空间、减少存取时间,而且可以避免数据之间的不相容和不一致。但还需要必要的冗余,必要的冗余可保持数据间的联系。
(4)统一的数据管理和控制
数据库对系统中的用户来说是共享资源。计算机的共享一般是并发的,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中同一个数据。因此,数据库管理系统必须提供以下几方面的数据控制保护功能。
① 数据的安全性保护
数据的安全性保护可以防止不合法的使用所造成的数据泄密和破坏,使每个用户只能按规定对某种数据以某些方式进行使用和处理。例如,可以使用身份鉴别、检查口令或其他手段来检查用户的合法性,只有合法用户才能进入数据库系统。
② 数据的完整性控制
数据的完整性指数据的正确性、有效性和相容性。完整性检查可以保证数据库中的数据在输入和修改过程中始终符合原来的定义和规定,在有效的范围内保证数据之间满足一定的关系。例如,月份是1~12之间的正整数,性别是“男”或“女”,成绩是大于等于0且小于等于100的整数,学生的学号是唯一的。
③ 数据库恢复
计算机系统的硬件故障、软件故障、操作员的失误以及人为的攻击和破坏,都会影响数据库中数据的正确性,甚至会造成数据库部分或全部数据丢失。数据库恢复机制能够及时发现和修复故障,从而防止数据被破坏。
④ 并发控制
当多个用户的并发进程同时存取、修改数据库时,可能会发生由于相互干扰而导致结果错误的情况,并使数据库完整性遭到破坏。因此,必须对多用户的并发操作加以控制和协调。
3.数据的组织级别
数据库中数据的组织一般可以分为四级:数据项、记录、文件和数据库,它们之间的关系如图1.1所示。
图1.1 数据组织级别
(1)数据项
数据项是定义数据的最小单位,也叫元素、基本项、字段等。数据项与现实世界实体的属性相对应,每个数据项都有一个名称,称为数据项名。数据项的值可以是数值、字母、字母数字、汉字等形式。数据项的取值有一定的范围,称为域,域以外的任何值对该数据项都是无意义的。
(2)记录
记录由若干相关联的数据项组成,是处理和存储信息的基本单位,是关于一个实体的数据总和。构成记录的数据项表示实体的若干属性。记录有“型”和“值”的区别,“型”是同类记录的框架,它定义记录的组成;而“值”是记录反映的实体的内容。为了唯一标识每个记录,就必须有记录标识符(也叫关键字)。能唯一标识记录的关键字称为主关键字,其他标识记录的关键字称为辅关键字。
(3)文件
文件是一给定类型的记录的全部具体值的集合,文件用文件名称标识。由于数据库文件可以看成是具有相同性质的记录的集合,因而数据库文件具有以下特性:
① 文件的记录格式相同,长度相等;
② 不同的行是不同的记录,因而具有不同的内容;
③ 不同的列表示不同的字段,同一列中的数据的性质(属性)相同;
④ 每一行各列的内容是不能分割的,但行的顺序和列的顺序不影响文件内容的表达。
(4)数据库
数据库是比文件更大的数据组织形式,数据库是具有特定联系的数据的集合,也可以看成是具有特定联系的多种类型的记录的集合。数据库的内部构造是文件的集合,这些文件之间存在某种联系,不能孤立存在。
1.1.3 数据库管理系统
数据库管理系统(Database Management System,DBMS)是位于用户与操作系统(OS)之间的一层数据管理软件,是数据库系统的核心。它为用户或应用程序提供访问数据库的方法,包括数据库的建立、查询、更新以及各种数据控制。DBMS总是基于某种数据模型(层次型、网状型、关系型和面向对象型等)。DBMS具有以下基本功能。
1.对象定义功能
DBMS通过提供数据定义语言(Data Definition Language,DDL)实现对数据库中数据对象的定义,如对外模式、模式和内模式加以描述和定义;数据库完整性的定义;安全保密的定义,如用户口令、级别、存取权限;存取路径的定义,如索引的定义。
2.数据操纵功能
DBMS提供数据操纵语言(Data Manipulation Language,DML)实现对数据库中数据的一些基本操作,如检索、插入、修改、删除和排序等。DML一般有两类:一类是嵌入主语言的DML,如嵌入到C++或PowerBuilder等高级语言(称为宿主语言)中;另一类是非嵌入式语言(包括交互式命令语言和结构化语言),它的语法简单,可以独立使用,由单独的解释或编译系统来执行,所以一般称为自主型或自含型的DML。
3.数据库控制功能
DBMS提供的数据控制语言(Data Control Language,DCL)保证数据库操作都在统一的管理下协同工作以确保事务处理的正常运行,同时保证数据库的正确性、安全性、有效性和多用户对数据的并发使用以及发生故障后的系统恢复等。数据库控制功能包括并发控制和存取控制,如安全性检查、完整性约束条件检查、数据库内部(如索引)和数据字典的自动维护、缓冲区大小的设置等。
4.数据组织、存储和管理
数据组织和存储的基本目标是提高存储空间利用率和方便存取,提供多种存取方法(如索引查找、Hash查找、顺序查找等)提高存取效率。DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等。要确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。
1.1.4 数据库系统的构成
数据库系统DBS(Database System)主要由硬件、数据库、软件和用户4部分构成,其基本结构如图1.2所示。
1.硬件
硬件是数据库依存的物理设备,运行数据库系统的计算机硬件需要足够大的内存以存放系统软件,需要足够多的联机直接存取设备(如大容量磁盘)存储庞大的数据,需要足够多的脱机存储介质(如磁盘、光盘、磁带等)以存放备份数据,需要较高的通道能力,以提高数据传送速率,并且要求系统互联,以实现数据共享。
图1.2 DBS的基本构成
2.数据库
数据库是数据库系统的核心和管理对象,是存储在一起相互有联系的数据集合。数据库中的数据是集成的、共享的、最小冗余的,能为多种应用服务。数据按照数据模型所提供的形式框架存放在数据库中。
3.软件
数据库软件主要是指数据库管理系统DBMS,DBMS是为数据库存取、维护和管理而配置的软件,它是数据库系统的核心组成部分,DBMS在操作系统支持下工作。数据库软件除了DBMS之外,还要有数据库应用系统,数据库应用系统是为特定应用而开发的数据库应用软件。数据库管理系统为数据的定义、存储、查询和修改提供支持,而数据库应用系统是对数据库中的数据进行处理和加工的软件,它面向特定应用。如管理信息系统、决策支持系统和办公自动化等都属于数据库应用系统。
4.用户
数据库系统中存在一组参与分析、设计、管理、维护和使用数据库的人员,他们在数据库系统的开发、维护和应用中起着重要的作用。分析、设计、管理和使用数据库系统的人员主要是:数据库管理员、系统分析员、应用程序员和最终用户。
(1)数据库管理员
数据库管理员负责全面管理和控制数据库系统,主要职责包括:设计与定义数据库系统,帮助最终用户使用数据库系统,监督与控制数据库系统的使用和运行,改进和重组数据库系统,调整数据库系统的性能,转储与恢复数据库,重构数据库。
(2)系统分析员
系统分析员是数据库系统建设期的主要参与人员,负责应用系统的需求分析和规范说明,确定系统的基本功能和数据库结构,设计应用程序和硬软件配置并组织整个系统的开发。
(3)应用程序员
应用程序员根据系统的功能需求负责设计和编写应用系统的程序模块,并参与对程序模块的测试。
(4)最终用户
数据库系统的最终用户是有不同层次的,不同层次的用户其需求的信息以及获得信息的方式也是不同的。一般可将最终用户分为操作层、管理层和决策层。他们通过应用系统的用户接口使用数据库。