购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

任务1.1 认识数据库

数据库技术产生于20世纪60年代后期,是一项计算机数据管理技术,也是现代计算机信息系统和计算机应用系统的基础和核心。它的出现使计算机能够应用到人类社会的众多领域。目前,数据库的建设规模和性能、数据库信息量的大小和使用频率已成为衡量一个国家信息化程度的重要指标,数据库技术也已成为计算机科学与技术学科的一个重要分支。

任务1.1.1 了解数据库的发展阶段

微课1-1

了解数据库的发展阶段

最早的计算机主要应用于军事和科学研究领域,随着计算机理论研究的深入和计算机技术的发展,从20世纪50年代开始,计算机的主要应用逐渐变为一般的数据及事务处理。伴随着这种转变的逐渐深入,以数据处理为核心的数据库技术随之发展并成熟起来,成为计算机科学技术中应用最为广泛和最为重要的技术之一。

所谓数据处理,就是从已有数据出发,经过适当加工、处理得到新的所需数据的过程。数据处理一般分为数据计算和数据管理两部分。数据计算相对简单,数据管理却比较复杂,是数据处理过程的主要内容与核心部分。一般认为,数据管理主要是指数据的收集、整理、组织、存储、维护、检索和传送等操作。从数据管理的角度来看,计算机数据处理技术经历了以下3个阶段:人工管理阶段、文件系统阶段、数据库系统阶段。

1.人工管理阶段

20世纪50年代中期以前为人工管理阶段,是计算机数据管理的初级阶段。

在这一阶段,计算机被当成一种计算工具,主要用于科学计算。硬件中的外存只有卡片、纸带、磁带,没有磁盘等直接存储设备;软件只有汇编语言,没有操作系统,更无统一的管理数据的软件;数据的管理完全在程序中进行,数据处理的方式基本上是批处理。人工管理阶段的特征如下。

(1)数据不保存

由于主要用于科学计算,所以一般不需要将数据长期保存。计算某一课题时将数据输入,计算完毕就将数据撤走,用户提供的数据是如此处理的,系统软件运行过程中产生的数据也是这样处理的。

(2)应用程序管理数据

由于没有相应软件系统完成数据的管理工作,所以应用程序不仅要规定好数据的逻辑结构,还要规定数据的存储结构、存取方法、输入方式、地址分配等。

(3)数据无共享

数据是面向程序的,数据由应用程序自行携带,一组数据只能对应一个应用程序,很难实现多个应用程序共享数据资源,这就使应用程序严重依赖数据。一个应用程序携带的数据,在应用程序运行结束后就连同该应用程序一起退出计算机系统。如果别的应用程序想使用该应用程序的数据,则只能重新组织携带,因此应用程序之间有大量的冗余数据。

(4)数据不独立

由于应用程序只负责管理数据,所以数据与应用程序不具有独立性。如果数据的类型、格式、存取方法或输入/输出方式等逻辑结构或物理结构发生变化,就必须对应用程序做出相应的修改,程序员负担相当重。

人工管理阶段应用程序与数据集之间的对应关系如图1-2所示。

图1-2 人工管理阶段应用程序与数据集之间的对应关系

2.文件系统阶段

20世纪50年代后期至20世纪60年代中期,随着计算机软硬件的发展,出现了文件系统,其负责对数据进行管理。

在这一阶段,计算机已大量用于信息管理。硬件有了磁盘、磁鼓等直接存储设备。在软件方面,出现了高级语言和操作系统。操作系统中有了专门管理数据的软件,称为文件系统。用户可以把相关数据组织成一个文件存放在计算机中,由文件系统对数据的存取进行管理,处理方式有批处理和联机处理。

(1)文件系统阶段的特点

① 数据可以长期保存。

数据以文件的形式存储在计算机的直接存储设备中,可长期保存并反复使用。用户可随时对文件进行查询、修改、插入和删除等操作。

② 由文件系统管理数据。

由专门的软件(即文件系统)进行数据管理,文件系统把数据组织成相互独立的数据文件,利用“按文件名访问,按记录进行存取”的管理技术,提供了对文件进行打开与关闭、对记录进行读取和写入的操作。程序员只需与文件名打交道,不必明确数据的物理存储,大大减轻了程序员的负担。

(2)文件系统阶段存在的问题

文件系统阶段对数据的管理有了巨大进步,但一些根本问题仍没有彻底解决,具体如下。

① 数据共享性差,冗余度大。

在文件系统中,一个(或一组)文件基本上对应一个应用程序,即文件仍然是面向应用程序的。当不同的应用程序具有部分相同的数据时,也必须建立各自的文件,而不能共享相同的数据,因此数据冗余度大,浪费存储空间。

② 数据独立性差。

文件系统中的文件是为某一特定的应用程序服务的,文件的逻辑结构是针对具体的应用程序来设计和优化的,因此文件中的数据要再被一些新的应用程序使用会很困难。

③ 数据一致性差。

由于相同数据的重复存储、各自管理,在进行更新操作时,容易造成数据的不一致,给数据的修改和维护带来困难。

文件系统阶段应用程序与文件之间的对应关系如图1-3所示。

3.数据库系统阶段

自20世纪60年代后期以来,计算机管理的对象规模越来越大,应用范围越来越广泛,数据量急剧增加,同时,多种应用、多种语言互相覆盖的共享集合的需求越来越强烈。

图1-3 文件系统阶段应用程序与文件之间的对应关系

在这种背景下,将文件系统作为数据管理手段已经不能满足需求,为了解决多用户、多应用程序共享数据的要求,出现了统一管理数据的专门软件系统—数据库管理系统(Database Management System, DBMS)。

数据库是长期存储在计算机内、有组织、可共享的大量数据的集合。它可以供不同用户共享,具有最小冗余度和较高的数据独立性。DBMS在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的安全性和完整性,并且在多用户同时使用数据库时可以进行并发控制,以及在发生故障后对数据库进行恢复。

(1)数据库管理技术的突破

数据库管理技术进入新时代离不开里程碑式的技术突破,以下3件大事为数据库技术的突破奠定了基础。

① 1968年,美国IBM公司推出了世界上第一个基于层次模型的大型商用DBMS——信息管理系统(Information Management System,IMS)。

② 1969年,美国数据系统语言协会(Conference on Data System Language, CODASYL)下属的数据库任务组(Database Task Group, DBTG)提出了基于网状模型的数据库任务组系统。

③ 1970年,美国IBM公司的高级研究员科德(E.F.Codd)发表论文提出关系模型,此模型奠定了关系数据库的理论基础。

(2)数据库系统阶段的特点

与人工管理阶段和文件系统阶段相比,数据库系统阶段主要有如下特点。

① 数据高度结构化。

数据结构化是数据库系统与文件管理系统的根本区别。数据库系统不仅会考虑数据项之间的联系,还会考虑数据类型之间的联系。在数据库系统中,不仅数据内部具有结构化特征,数据整体也是结构化的,即数据之间是有联系的。例如,某学校的信息管理系统除了会考虑教务处的学生成绩管理、选课管理,还会考虑学籍管理处的学生基本信息管理,人事处的教职工基本信息管理、薪酬管理等。因此,该学校的信息管理系统中的数据就要面向学校所有部门的应用,而不仅是教务处的学生选课应用。

② 数据的共享性高、冗余度小,易于扩充。

数据库中的数据是高度共享的,数据不再只是面向某个单独的应用,是面向整个系统。也就是说,同一个用户可以因不同的应用目的访问同一数据;不同用户可以同时访问同一数据,即“并发访问”。

③ 数据独立性高。

用户只需关注数据库名、数据文件名和文件中的属性名等逻辑概念,不用过多考虑数据的实际物理存储,也就是不需要关心实际数据究竟存储在磁盘的什么位置。更准确地说,数据库系统同时具有物理独立性与逻辑独立性。

物理独立性是指改变数据库物理结构时不必修改现有的应用程序。数据在磁盘上的存储方式由DBMS管理,应用程序无须了解,即当数据的物理存储方式改变时,应用程序不用改变。

逻辑独立性是指逻辑数据独立性,是指改变数据库逻辑结构时不用改变应用程序。用户的应用程序与数据库的逻辑结构是相互独立的,即当数据的逻辑结构改变时,应用程序可以不变。

DBMS提供的二级映像功能保证了数据独立性,相关内容将在后面的项目中进行讨论。

④ 数据安全性和正确性高。

数据库的共享会为数据库带来安全隐患,并且数据库的共享具有并发的特征,即多个用户能够同时对数据库中的数据进行存取,甚至可以同时存取数据库中的同一个数据,这可能会存在用户操作相互干扰的隐患。因此,需要一组软件提供相应的工具对数据进行管理和控制,使用 DBMS 可以达到保证数据的安全性和正确性的基本要求。

● 保证数据的安全性。

保证数据的安全性是指对数据进行保护,以防止不正当使用造成的数据泄露及破坏。用户只能用合法的方式对数据进行使用和处理。

● 数据的完整性检查。

数据的完整性是指数据的正确性、有效性和相容性。完整性检查将数据控制在有效的范围内,并保证数据间所具有的关系完整。

● 并发控制。

当多个用户并发操作,同时存取或修改数据时,其相互间可能会产生干扰,从而得到错误的结果,或破坏数据库的完整性,因此多用户的并发进程必须受到DBMS的控制和协调。

● 数据库恢复。

在日常的数据库管理中可能会遇到机器损坏或者人为失误的问题。例如,计算机系统的软硬件故障、数据库管理员的失误甚至故意破坏,这些都会破坏数据库中数据的正确性,甚至造成数据库中部分甚至全部数据丢失。因此,DBMS需具备使数据库从错误状态恢复到某一已知的正确状态(也可称为一致状态)的功能,即数据库恢复功能。

数据库系统阶段应用程序与数据库之间的对应关系如图1-4所示。

图1-4 数据库系统阶段应用程序与数据库之间的对应关系

任务1.1.2 熟悉数据库的体系结构

微课1-2

熟悉数据库的体系结构、了解数据库设计的方法及步骤

数据库的体系结构可以从不同的角度以及层次进行理解。从DBMS的角度来看,数据库采用的通常是三级模式结构,这是数据库系统内部的体系结构;从数据库最终用户的角度看,数据库系统的结构通常有3种——集中式结构、分布式结构和客户/服务器结构,这是数据库系统外部的体系结构。此处主要学习数据库系统内部的体系结构。

1.数据库的三级模式结构

数据库的三级模式结构是数据库领域公认的标准数据库体系结构,它包括模式、外模式和内模式。三级模式结构可以有效地组织和管理数据,并使数据库的逻辑独立性和物理独立性得到提高。数据库的三级模式结构如图1-5所示。

图1-5 数据库的三级模式结构

(1)模式

模式又称逻辑模式、概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它在数据库三级模式结构中处于中间层,既与数据的物理存储具体位置和硬件环境无关,也不涉及具体的应用程序、所使用的应用开发工具,以及高级程序设计语言。

模式实际上是数据库数据在概念级上的视图。每个数据库都只存在一个模式,数据库模式会将某一种数据模型作为基础,考虑所有用户的需求,然后将这些需求有机地结合成一个逻辑整体。定义模式时,不仅要定义数据的逻辑结构(如数据记录中的数据项构成,数据项的名称、类型、取值范围等),还要定义与数据有关的安全性、完整性要求,以及数据之间的联系。

描述、定义模式的语言是数据定义语言(Data Definition Language,DDL)。

(2)外模式

外模式又称子模式或用户模式,它是模式的一个子集,这个子集是被某些特定用户所使用的。从这个角度看,外模式是面向用户的。本质上,外模式描述了应用程序所使用的局部数据的逻辑结构和特征,是数据库用户(包括应用程序员和最终用户)所看到的数据视图。

外模式也是用户与数据库的接口,描述了被用户所用到的那部分数据。因为不同的用户在应用需求、看待数据的方式、对数据保密性的要求等方面都具有差异,其对应的外模式描述也有所不同。即使同一数据处于同一模式中,它们在外模式中的结构、类型、长度、保密级别等方面也可能有差别。因此,一个数据库可能具有多个外模式。有了外模式后,程序员只需关注与外模式所发生的联系,而无须再关心模式,并且只需按外模式的结构存储数据和对数据进行操作。另外,某一用户的多个应用系统也可以使用同一个外模式,但一个外模式只能为一个应用程序所使用。

在保证数据库的安全性方面,外模式是强有力的措施。有了外模式后,每个用户只能访问其所对应的外模式中的数据,而不可访问数据库中的其余数据。

(3)内模式

内模式又称存储模式,对应于物理级。它是全体数据在数据库内部的表示方式,是数据库最底层的逻辑描述。它记录了数据在存储介质上的存储方式(如顺序存储、按照B树结构存储或按哈希方法存储)、索引的组织方式、数据是否压缩存储、数据是否加密、数据存储记录结构的规定等,对应着实际存储在外存储介质上的数据库。

一个数据库系统中只有唯一的数据库,因此作为定义、描述数据库存储结构的内模式也是唯一的。

2.数据库的二级映像与数据库独立性

数据库的三级模式是对数据的3个级别抽象。它把数据的具体组织(即物理模式)留给DBMS管理,使用户无须关心数据在计算机内部的存储方式。同时,为了建立3个抽象级的联系与转换,使模式与外模式虽然并不存在于计算机的外存中,但也能通过转换获得其存在的实体,DBMS在这3个模式之间建立了二级映像:外模式/模式映像和模式/内模式映像。

这种二级映像保证了数据库系统中的数据具有较高的物理独立性及逻辑独立性,即在内模式或模式发生改变的情况下,可以通过调整映射方式,使用户的外模式不必发生改变。

(1)外模式/模式映像

模式描述了数据的全局逻辑结构,外模式描述了数据的局部逻辑结构。同一个模式可以存在任意多个外模式。每一个外模式都对应一个外模式/模式映像,它定义了该外模式与模式之间的对应关系,外模式的描述中通常包含了这些映像的定义。

当模式发生改变(如在原有记录类型之间增加新的联系、在某些记录中增加新的数据项等)时,数据库管理员可以通过改变有关的外模式/模式映像,使外模式保持不变。应用程序是根据数据的外模式编写的,因此应用程序也无须发生改变,从而保证了数据与应用程序的逻辑独立性,称为数据的逻辑独立性。

(2)模式/内模式映像

数据库中只有一个模式,也只有一个内模式,所以一个数据库只有唯一的模式/内模式映像。它通常包含在模式的描述中,定义了数据的全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构发生改变时,数据库管理员通过对模式/内模式映像进行修改,可以使模式保持不变,从而使应用程序也不用改变。这保证了数据与应用程序的物理独立性,称为数据的物理独立性。

数据库的二级映像通过保证数据的物理独立性和逻辑独立性,确保了数据库外模式的稳定性,也从底层确保了应用程序的稳定性。除非应用需求本身发生变化,否则无须对应用程序进行修改。

数据库的三级模式与二级映像实现了数据与应用程序之间的独立,使数据的定义和描述可以从应用程序中分离出来。另外,由于数据的存取由 DBMS 进行管理,因此用户无须考虑存取路径、方式等细节,从而使应用程序的编写得到简化,大大减轻了应用程序维护人员的负担。

任务1.1.3 了解数据库设计的方法及步骤

数据库设计是建立数据库及其应用系统的技术,在信息系统开发和建设中处于核心地位。具体来讲,数据库设计是指对于一个已知的应用环境,构造一个最优的数据库逻辑模式及物理结构,并在此基础上建立数据库及其应用系统,使其可以有效地存储数据,满足不同用户的各种应用需求。

数据库设计是一个庞大的工程,整个过程需要分阶段进行,无法一气呵成,往往需要试探性地反复修改,设计结果也不是唯一的。在设计的过程中,往往会遇到各种各样的要求,需要克服各种制约因素,它们之间可能存在矛盾,数据库设计的过程便是解决这些矛盾的过程。

1.数据库设计方法

现实世界的复杂性导致了数据库设计的复杂性。只有以科学的数据库设计理论为基础,在具体的设计原则指导下,才能保证数据库的设计质量,减小后期维护的代价。在早期,数据库设计基本都是采用手工试凑法,它既缺乏科学理论依据,又缺少工程方法的支持,设计人员的经验和水平在很大程度上决定了数据库的质量,因此项目质量难以得到保障,系统维护的成本也较高。设计人员经过十余年的努力探索,提出了各种数据库设计方法。这些方法运用软件工程的思想总结出了各种设计准则和规程,这些都属于规范设计方法。目前常用的数据库设计方法都属于规范设计方法,即都是运用软件工程的思想,根据数据库设计的特点提出的。这种工程化的规范设计方法也是在目前技术条件下设计数据库最实用的方法。

逻辑数据库设计是根据用户需求和特定 DBMS 的具体特点,以数据库设计理论为依据,设计数据库的全局逻辑结构和每个用户的局部逻辑结构。物理数据库设计是在逻辑结构确定之后,设计数据库的存储结构及其他实现细节。

著名的新奥尔良方法是目前公认的比较完整和权威的一种规范设计方法。它将数据库设计分为4个阶段:需求分析(分析用户需求)、概念设计(信息分析和定义)、逻辑设计(设计实现)和物理设计(物理数据库设计)。目前主流的规范设计方法大部分起源于新奥尔良方法,并在设计的每一阶段采用了一些辅助方法来具体实现。

除了上述方法,还有一些为数据库设计不同阶段提供的具体实现技术与方法,如基于实体-联系(Entity-Relationship,E-R)模型的设计方法、基于3NF(第三范式)的设计方法和基于抽象语法规范的设计方法等。规范设计方法从本质上看仍然属于手动设计方法,其基本思想是过程迭代和逐步求精。

为了降低数据库设计的工作难度,加快数据库设计速度,提高数据库设计质量,数据库工作者也一直在研发具有辅助设计功能的设计工具。目前常用的实用化和产品化的数据库设计工具软件有Oracle公司的Design 2000和Sybase公司的PowerDesigner,这些工具软件能自动或辅助设计人员完成数据库设计过程中的很多任务,但使用起来还是有一定的难度和复杂度。

2.数据库设计步骤

按照新奥尔良方法,数据库设计的全过程主要分为需求分析、概念设计、逻辑设计和物理设计4个阶段,如图1-6所示。

图1-6 数据库设计的全过程

(1)需求分析

进行数据库设计前必须充分了解与分析用户需求(包括数据与处理)。需求分析在整个设计过程中具有奠基石的地位,是最困难和最耗时间的一步。需求分析主要包括以下2个步骤。

① 收集、整理与分析。

这一步主要是调查、收集、整理与分析用户在数据管理中的信息需求、处理需求、安全性与完整性需求,主要方法包括:调查组织机构情况、调查各部门的业务活动情况、协助用户明确对新系统的各种需求、确定新系统的边界等。

② 描述数据流图与数据字典。

完成收集并分析用户需求后,还需对需求进行进一步表达。分析和表达用户需求的常用方法为结构化分析(Structured Analysis,SA)方法。SA方法从最上层的系统组织结构入手,采用自顶向下、逐层分解的方式分析系统,并描述数据的流向和数据的处理功能。除了数据流图,还需使用数据字典(Data Dictionary,DD)来集中描述系统中的各类数据。DD 通常包括数据项名称、性质、取值范围、使用者、提供者、保密要求、数据之间联系的语义说明,以及各部门对数据本身及数据处理的需求。需求分析是数据库设计的起点,需求分析的结果是否准确反映了用户的实际需求,将直接影响到后面各个阶段的设计,并影响设计结果是否合理和实用。

(2)概念设计

概念设计是数据库设计中的关键步骤,它通过对用户需求进行综合分析、归纳与抽象,形成一个不依赖具体DBMS的概念数据模型,一般用E-R模型表示。对概念数据模型进行转换,可以形成计算机上某个DBMS支持的逻辑数据模型。概念数据模型的特点如下。

① 具有较强的语义表达能力,能够清晰表达应用所包含的各种语义知识。

② 简洁明了、易于用户理解,是数据库设计人员与用户之间沟通的桥梁。

数据库概念设计的基本方法将在任务1.3.1中重点介绍。

(3)逻辑设计

逻辑设计的任务是将E-R模型转换为某个DBMS所支持的数据模型(如关系模型,即基本表),并对其进行优化。这个阶段的模型设计需要考虑到DBMS本身的性能与特征,然后根据用户的需求及安全性方面的考虑,在基本表(Table)的基础上建立必要的视图(View),形成数据库的外模式。

数据库逻辑设计的基本方法将在任务1.3.2中重点介绍。

(4)物理设计

物理设计主要是为逻辑结构模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。物理设计因DBMS的特点和处理的需求而异,大致流程是对逻辑设计的关系模型进行物理存储安排,并设计用于实现高效数据访问的索引,形成数据库的内模式。 0fSFp1SUiXf7u5TAkHss40oTZCxKa5oPvb19+dtGME4HZVQPpjKtXJvuC0upFcOm

点击中间区域
呼出菜单
上一章
目录
下一章
×