1.1 数据库概述
数据库是按照数据结构来组织、存储和管理数据的仓库。在日常工作中,常常需要把某些相关的数据放进仓库,并根据管理的需要进行相应的处理。
1.1.1 数据库基本概念
数据库是数据管理的新手段和技术,是计算机学科的重要分支。数据库具有数据结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,目前应用非常广泛。
1.数据与信息
信息是客观事物属性的反映,是经过加工处理并对人类客观行为产生影响的数据表现形式。
数据是反映客观事物属性的记录,是信息的具体表现形式。数据包括文字、声音、图形等一切能被计算机接收且能被处理的符号。数据是事物特性的反映和描述,是符号的集合,是各种抽象信息的具体化。
下面我们以“学生信息表”为例,通过学号、姓名、性别、年龄、系别、专业和年级,来描述学生在校的特征:
(0411002 郑晓明 女 25 历史系 文学历史 04专升本)
这里的学生记录就是信息。在数据库中,记录与事物的属性是对应的关系,其表现如下图所示。
2.数据库(Database,DB)
从上述内容中,可以将数据库理解为存储在一起的相互有联系的数据集合。
严格地说,数据库应具备以下特点。
❏存储在一起的相关数据的集合。
❏这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务。
❏数据的存储独立于使用它的程序。
❏对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。
当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”。这是J.Martin给数据库下的一个比较完整的定义。
因此,在Access数据库中,可以将这个“数据仓库”以表的形式表现出来。其中,每条记录中存储的内容即所指的信息。例如,在“图书信息表”中,“借阅记录”数据表存储了图书情况的数据内容。
3.数据库管理系统(Database Management System,DBMS)
数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。它提供多种功能,可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。DBMS主要包括以下4方面的功能。
❏数据定义功能
DBMS提供数据定义语言(Data Definition Language,DDL),用户通过它可以方便地对数据库中的数据对象进行定义。例如,在Access数据表中,可以定义数据的类型、以及数据的属性(如字段大小、格式)等。
❏数据操纵功能
DBMS还提供数据操纵语言(Data Manipulation Language,DML),用户可以使用DML操纵数据实现对数据库的基本操作,如查询、插入、删除和修改等。
例如,在“图书信息表”中,可以右击记录,执行【删除记录】命令,即可删除数据内容。
❏数据库的运行管理
数据库在建立、运用和维护时,由数据库管理系统统一管理、统一控制,以保证数据的安全性和完整性。
❏数据库的建立和维护功能
它包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的管理重组织功能和性能监视、分析功能等。这些功能通常是由一些实用程序完成的。例如,执行【数据库工具】|【分析】|【分析性能】命令,即可弹出【性能分析器】对话框,分析数据库系统中各对象的性能。
4.数据库系统(DataBase System,DBS)
数据库系统是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。它通常由软件、数据库和数据管理员组成。
其中,软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。数据管理员(DataBase Administrator,DBA)负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。数据库管理员一般是由业务水平较高、资历较深的人员担任。
1.1.2 数据管理技术的发展
数据库技术是应数据管理任务的需要而生的。数据的处理是指对各种数据进行收集、存储、加工和传播的一系列活动的总和。
数据管理则是指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。
随着计算机技术的发展,数据库与计算机相结合。数据管理技术的发展经历了三个阶段。
1.人工管理阶段
在20世纪50年代中期前,计算机主要用于科学计算。当时的硬件中外存储器没有磁盘这类可以随机访问、直接存取的设备,软件上没有专门的管理数据的软件,数据由计算或处理数据的程序自行携带,所以数据管理任务由人工完成。
这样数据与程序不具有独立性,一组数据对应一组程序。数据不能进行长期保存,一个程序中的数据无法被其他程序利用,程序与程序间存在大量的重复数据,称为数据冗余。在人工管理阶段,程序与数据之间的对应关系如下图所示。
2.文件系统阶段
在20世纪50年代后期至20世纪60年代中后期,大量的数据存储、检索和维护成为当时紧迫的需求,可直接存取的磁盘成为联机的主要外存,软件上也出现了高级语言和操作系统。
操作系统中的文件系统是专门管理外存储器的数据管理软件。在文件系统阶段,程序与数据有了一定的独立性,程序和数据分开,有了程序文件和数据文件的区别。
但是这一时期的文件系统的数据文件,主要是服务于某一特定的应用程序,数据和程序相互依赖,而且同一数据项可能重复出现在多个文件中,数据冗余量大,浪费空间,增加更新开销。由于冗余多,不能统一修改数据,造成数据的不一致性。在文件系统阶段,程序与数据之间的关系如下图所示。
3.数据库系统阶段
到20世纪60年代后期,计算机用于管理的规模越来越大,应用也越来越广泛。同时多种应用、多种语言互相覆盖地共享数据集合的要求越来越强烈。在处理方式上,联机实时处理要求更多,并开始提出和考虑分布处理。
在这种背景下,以文件系统作为数据管理手段已经不能满足应用的需求,于是为解决多用户、多应用共享数据的需求,使数据为尽可能多的应用服务,数据库技术便应运而生,出现了统一管理数据的专门软件系统——数据库管理系统。
用数据库系统来管理数据比文件系统具有明显的优点,从文件系统到数据库系统,标志着数据管理技术的飞跃。
1.1.3 数据库系统的特点
与人工管理和文件系统相比,数据库系统的特点主要有以下几个方面。
1.数据结构化
数据结构化是数据库与文件系统的根本区别。在文件系统中,相互独立的文件的记录内部是有结构的。传统文件的最简单形式是等长同格式的记录集合。例如一个学生人事记录文件,每个记录都有记录格式。
其中,前几项数据是学生具有的共同信息。如果采用等长记录形式存储学生数据,为了建立完整的学生档案文件,每个学生记录的长度必须等于信息量最多的记录的长度,导致浪费大量的存储空间。
因此,可以将较长记录格式,再进行拆分操作,以结合的形式建立新文件。
这样可以节省许多存储空间,灵活性也相对提高。但这样建立的文件还有局限性,因为这种结构上的灵活性只是针对一个应用而言的。
而数据结构化的目的在于数据不再针对某一应用,而是面向全组织,具有整体的结构化。不仅数据是结构化的,而且存取数据的方式也很灵活,可以存取数据库中的某一个数据项、一组数据项、一个记录或一组记录。而在文件系统中,数据的最小存取单位是记录。
因此,将学生不同的信息,按照表格的属性输入相关的内容。例如,在“学生信息”表中,输入学号、姓名、性别、出生日期、住址等内容。
2.数据的共享性高,冗余度低,易扩充
数据可以被多个用户、多个应用共享使用。数据共享可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性。
原来采用人工管理或文件系统管理时,由于数据被重复存储,当不同的应用使用和修改不同的复制时,极易造成同一数据复制的值不一样。所以,在数据库中数据共享,减少了由于数据冗余造成的不一致现象。
由于数据面向整个系统,具有结构化的数据,不仅可以被多个应用共同使用,而且容易增加新的应用。这样数据库系统就具有较大的弹性,也易于扩充,并且可以适应不同用户的要求。
3.数据独立性高
数据独立性是指建立在数据的逻辑结构和物理结构分离的基础上,用户以简单的逻辑结构操作数据而无须考虑数据的物理结构,转换工作由数据库管理系统实现。数据独立性分为数据的物理独立和数据的逻辑独立。
❏数据的物理独立
物理独立是指数据存取与程序的分离。也就是说,数据在磁盘上的数据库中怎样存储是由DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。
❏数据的逻辑独立
数据的使用与数据的逻辑结构相分离。也就是说,数据的逻辑结构改变了,用户程序也可以不变。
4.数据由DBMS统一管理和控制
数据库是长期存储在计算机内,并且有结构的共享式数据集合。它可以供多个用户使用,并且具有较小的冗余度和较高的数据独立性。
而DBMS在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性和安全性。另外,在多用户同时使用数据库时,进行并发控制,发生故障后也可以对系统进行恢复。
所以,在DBMS中,提供了以下4方面的数据控制功能。
❏数据的安全性(Security)保护
数据的安全性是指保护数据以防止不合法的使用造成的数据泄露和破坏。每个用户只能按规定,对某些数据以某些方式进行使用和处理。
❏数据的完整性(Integrity)检查
数据的完整性指数据的正确性、有效性和相容性。完整性检查将数据控制在有效的范围内,或保证数据之间满足一定的关系。
❏并发(Concurrency)控制
当多个用户的并发进程同时存取、修改数据库时,可能会造成数据之间相互冲撞,而得到错误的结果或使得数据库的完整性遭到破坏。因此,必须对多用户的并发操作加以控制和协调。
❏数据库恢复(Recovery)
计算机系统的硬件故障、软件故障、操作员的失误操作,都会影响到数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失。
因此,DBMS必须具有将数据库从错误状态恢复到正确状态的功能。而数据库管理阶段应用程序与数据之间的对应关系如下图所示。