第一章 引 论
1、 数据库技术产生于20世纪60年代,是信息系统的核心技术和重要基础;
2、 计算机科学与技术学科划分为四个专业方向:计算机科学(CS);计算机工程(CE);软件工程(SE);信息技术(IT)。 1.1 基本概念 1.1.1 信息与数据
1、 信息、物质、能量是组成客观世界并促进社会发展的三大基本要素; 2、 信息(Information)--是客观世界事物的存在方式和运动状态的反映,是对事物之间相互联系、相互作用的描述。信息具有可感知、可存储、可加工、可传递和可再生的自然属性。 3、 数据(Data)--是描述现实世界事物的符号记录,是用物理符号记录下来的可以识别的信息。不同的物理符号体现出数据的不同表现形式。
4、 信息与数据间存在固有联系,数据是信息的符号表示,或称为载体。信息则是数据的语义解释,是数据的内涵,信息以数据的形式表现出来,并为人们理解和接受。 5、 数据处理(Data Processing)--是指对数据进行分类、收集、组织、存储,进而从已数据出发,抽取或推导出新的数据,这些数据表示了新的信息。
6、 数据管理(Data Management)--是指对数据的分类、收集、组织、编码、存储、检索和维护,是数据处理业务的重要环节。 7、 数据处理与数据管理的区别在于,数据处理除了具有数据管理功能外,还可通过数据管理得到的数据进一步深加工,从中获取新的数据和信息。 1.1.2 数据库系统
1、 数据库(DB,DataBase)--是长期存储在计算机内有组织的、大量的、共享的数据集合;
2、 数据库管理系统(DBMS,Database Management System)--是指在计算机系统中,位于用户与操作系统之间的数据管理系统软件,是数据库系统的核心。 3、 数据库系统(DBS,DataBase System)--是指在计算机系统中引入数据库后的软硬件系统构成,DBS一般分成三个层次:(1)计算机硬件平台;(2)系统软件和应用软件;(3)用户;在不引起混淆和歧义的情况下,数据库系统简称为数据库。
4、 (狭义的)数据库系统—是由数据库和数据库管理系统组成的软件系统,主要为用户提供数据存储和查询、插入、修改、删除、更新等数据管理功能。
5、 (狭义的)数据库应用系统(DBAS,DataBase Application System)—是由数据库、数据库管理系统、数据库应用程序组成的软件系统,它面向具体应用领域,提供了更为复杂的数据处理功能。
6、 数据库技术—是研究数据库的结构、存储、设计、管理和使用的一门计算机应用学科。
7、 数据库技术与其它计算机科学有密切关系:
(1) 数据库技术以文件系统为基础发展而来,DBMS需要操作系统的支持,数据库以文件形式存储在外部存储上的;
(2) 数据库与数据结构的关系很密切,数据库技术不仅用到数据结构中的链表、树、图等知识,各种数据模型本身就属于复杂数据结构;
(3) 主流的关系数据库系统,其理论基础是关系数据模型,而该模型是在离散数学集合论中“关系”这一基本概念上发展起来的;
(4) 当用户访问数据库,DBMS对用户提交的查询操作类似于,计算机编译系统对程序的编译过程;
(5) 开发一些大型的DBS或DBMS的过程,要遵循软件工程的开发模式。 1.2 数据模型
1.2.1 数据模型概念
1、数据模型(Data Model)--是数据库系统的形式框架,是用来描述数据的一组概念和定义,包括描述数据、数据联系、数据操作、数据语义以及数据一致性的概念工具; 2、数据模型应满足:(1)能够比较真实地模拟现实世界;(2)容易为人们所理解;(3)便于在计算机上实现。
3、 数据模型的组成:
(1) 数据结构:用于描述系统的静态特征,从语法角度表述了客观世界中数据对象本身的结构和数据对象之间的关联关系,是刻画一个数据模型性质最重要的方面。在数据库系统中,通常按照数据结构的类型来区分、命名各种数模,如层次、网状、关系数
模。
(2) 数据操作:用于描述系统的动态特征,是一组对数据库中各种数据对象允许执行的操作和操作规则组成的集合。数据操作可以是检索、插入等,数模必须定义这些操作的确切含义、操作符号、操作规则以及实现操作的数据库语言。
(3) 数据完整性约束:是一组完整性规则的集合,它定义了数模必须遵守的语义约束,也规定了数据库中数据内部及数据之间联系所必须满足的语义约束。它限定了数据库的状态以及状态的变化,以便维护数据的正确性、有效性。
1.2.2 数据模型分类
1、 用数据模型这一概念来描述数据库的结构和语义,通过现实世界—信息世界—机器世界的抽象转换过程构建数据库,并根据模型所定义的规范去管理和使用数据。 2、 建模过程:(1)将现实世界的数据对象抽象为信息世界中的某一信息结构;(2)再将信息结构转换为机器世界中某一具体DBMS支持的数据模型,并存储于计算机中。 3、 数据模型分类:
(1) 概念数据模型(概念模型):按用户的观点对数据和信息进行建模,是现实世界到信息世界的第一层抽象,强调其语义表达功能,易于用户理解,是用户与设计人员交流的语言,主要用于数据库设计。最常用的是实体—联系模型。
(2) 数据结构模型(表示型/实现型):是机器世界中与具体DBMS相关的数据模型,包括关系模型、网状模型和层次模型
(3) 物理数据模型:属底层数据模型,描述数据的实际存储方式。 1.3 数据视图与模式结构 1.3.1 数据视图与数据抽象
1、 数据视图:指从某个角度看到的客观世界数据对象的特征,是对数据对象某一方面特征的描述。
2、 数据抽象:是一种数据描述和数据库设计原则,是指专注于数据对象的某方面特征,而忽略其他特征。
3、 集和值:集是指对某一类数据的结构和属性的说明,值是集的一个具体赋值; 4、 数据模式:对数据库中数据某方面结构和特征的描述,它仅涉及集的描述,不涉及具体的值。
1.3.2 三级模式结构
1、 数据库三级模式结构—外部级、概念级和内部级,分别定义了外模式、模式和内模式,用于从不同角度描述数据库结构。 2、 模式:
(1) 也称逻辑模式、概念模式;
(2) 对数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图; (3) 模式不仅定义了数据的逻辑结构,还定义了数据之间的联系、与数据的关的安全性和完整性要求;
(4) 一个数据库只有一个模式,建立在某种数据结构模型基础上。 3、 外模式:
(1) 也称子模式、用户模式、用户视图; (2) 是对数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。
(3) 一个数据库可以有多个外模式,每个外模式描述了某个特定用户所使用的局部数据的逻辑结构和特征,是与某一应用有关的数据的逻辑表示。
(4) 外模式还是保证数据安全的有力措施,每个用户只能看见和访问所对应的外模式中的数据,其它数据对他是不可见的。
4、 内模式:
(1) 也称物理模式、存储模式; (2) 是对数据库中数据的物理结构和存储方式的描述,代表了数据在数据库内部的表示方式和物理组织结构;
1.3.3 二级映象与数据独立性 1、 外模式/模式映象:
(1) 定义了数据库中不同用户的外模式与数据库逻辑模式之间的对应关系;
(2) 可有多个外模式/模式映象,对于每个外模式,需要一个外模式/模式映象来定义该外模式与模式之间的对应关系;
(3) 当模式发生变化时,只需调整外模式/模式间的映象关系,而外模式无需修改,保证了数据与应用程序的逻辑独立性,称为数据的逻辑独立性。
2、 模式/内模式映象:
(1) 定义了数据库中数据全局逻辑结构,与这些数据在系统中的物理存储组织结构之间的对应关系。
(2) 模式/内模式映象是唯一的; (3) 当内模式发生变化时,只需调
整模式/内模式映象关系,而模式无需修改,保证了数据库中的数据与应用程序间的物理独立性,称为数据的物理独立性。
1.4 数据库系统体系结构
1、数据库系统体系结构:是指数据库系统的组成构件、各构件的功能及各构件间的协同工作方式;
2、分类:
(1) 集中式:全部数据和数据管理功能均集中在一台计算机上的数据库系统;包括单用户和主从式两种,单用户DBS是指系统由一个用户独占,不同机器间不能共享数据;主从式DBS是指一个主机带多个分时多用户的DBS;
(2) 分布式:数据库中的数据在逻辑上是一个整体,但在物理上却可以分布在网络中不同数据管理节点上;
(3) 客户/服务器:将DBMS和数据库应用分开,网络中某些节点上的计算机专门执行DBMS功能,负责数据管理服务,称为数据库服务器;其他节点的计算机上安装DBMS的外围应用开发工具,支持用户的应用,主要负责数据表示服务,称为客户端;
(4) 并行式:硬件平台是并行计算机系统,使用多个CPU和多个磁盘进行并行数据处理和磁盘访问操作,以提高执行速度;
(5) WEB式: 由通过互联网连接起来的客户端、WEB服务器、数据库服务器组成。
1.5 数据库管理系统
1.5.1 数据库管理系统的功能 (1) 数据定义功能:DBMS提供了数据定义语言(DDL),用户利用DDL定义数据库对象的三级模式结构,描述数据库的结构特征。
(2) 数据操纵功能:DBMS提供数据操纵语言(DML),用户利用DML对数据进行查询、插入、删除或更新;
(3) 数据库运行管理和控制功能 (4) 数据库的建立和维护功能 1.5.2 数据库系统的全局结构
1、 DBS可分为用户、人机交互界面、DBMS和磁盘四个层次;
2、 用户可分为四类:数据库管理员DBA;专业用户;应用程序员;终端用户;
3、 DBMS可分为两部份:
(1) 查询处理器:面向用户查询请
求;包括以下几个功能模块:DML编译器、嵌入式DML的预编译器、DDL编译器、查询执行引擎;
(2) 存储管理器:面向数据存储访问,包括以下几个功能模块:权限和完整性管理器、事务管理器、文件管理器、缓沖区管理器;
4、 磁盘存储的类型:
(1) 以数据库文件方式存储的应用数据;
(2) 数据字典;
(3) 为提高查询速度而设置的数据库引擎;
(4) DMS运行时的统计分析数据; (5) 日志信息。
1.6数据库技术的发展和应用
1、 第一代DBS:60年代末70年代初,层次型和网状型DBS;
2、 第二代DBS:70年代后期,关系数据库系统;
3、 新型DBS:80年代,分布式数据库系统;90年代,面向对象数据库系统、网络数据库系统
第二章 数据库应用系统生命周期 2.1数据库应用系统生命周期 2.1.1 软件工程与软件开发方法 1、 软件工程:指导计算机软件开发和维护的工程科学,它采用工程化的概念、原理、技术和方法,以及正确的项目管理技术,来开发和维护软件;它将系统化、规范化、定量化方法应用于软件的开发、操作和维护,也就是将工程化应用于软件生产;
2、 软件工程的目标:在给定成本、进度的前提下,开发出满足用户需求并具有下述特征的软件产品:可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性。
3、 软件生命周期:指软件产品从考虑其概念开始,到该产品交付使用的整个时期,包括概念阶段、需求阶段、设计阶段、实现阶段、测试阶段、安装部署及交付阶段;
4、 软件项目管理:为了能使软件开发按预定的质量、进度和成本进行,而对成本、质量、进度、人员、风险等进行分析
和有效管理的一系列活动。
5、 软件工程以关注软件质量为特征,由方法、工具和过程三部分组成;
6、 软件过程模型(软件开发模型):是对软件过程的一种抽象表示,表示了软件过程的整体框架和软件开发活动各阶段间的关系,常见的有:瀑布模型、快速原形模型、增量模型和螺旋模型。
2.1.2 DBAS软件组成
1、 数据库应用软件在内部可看作由一系列软件模块/子系统组成,这些模块/子系统可分成两类:
(1) 与数据访问有关的数据库事务模块:利用DBMS提供的数据库管理功能,以数据库事务方式直接对数据库中的各类应用数据进行操作,模块粒度较小;
(2) 与数据访问无直接关联的应用模块:在许多与数据处理有关的应用系统中,对数据库的访问只是整体中的一部分,其他功能则与数据库访问无直接关系,这部分模块粒度可以比较大。
2、 DBAS设计开发的硬件方面:主要涉及根据系统的功能、性能、存储等需求选择和配置合适的计算机硬件平台,并与开发好的DBAS软件系统进行集成,组成完整的数据库应用系统;
2.1.3 DBAS生命周期模型
1、 数据库应用系统的生命周期模型:
(1) 参照软件开发瀑布模型的原理,DBAS的生命周期由项目规划、需求分析、系统设计、实现和部署、运行管理与维护等5个基本活动组成;
(2) 将快速原形模型和增量模型的开发思路引入DBAS生命周期模型,允许渐进、迭代地开发DBAS;
(3) 根据DBAS的软件组成和各自功能,细化DBAS需求分析和设计阶段,引入了数据组织与存储设计、数据访问与处理设计、应用设计三条设计主线,分别用于设计DBAS中的数据库、数据库事务和应用程序;
(4) 将DBAS设计阶段细分为概念设计、逻辑设计、物理设计三个步骤,每一步的设计内容又涵盖了三条设计主线。
2.2 规划与分析
2.2.1 系统规划与定义
1、 定义:系统规划与分析是面向将要开发的DBAS,通过了解用户实际需求,明确该系统需要实现的目标和任务,并从数据管理和数据处理的角度,确定系统中数据库软件的功能、性能范围;
2、 系统规划与定义包括:
(1) 任务陈述:描述所要开发的DBAS的总体目标;
(2) 确定任务目标;
(3) 确定系统范围和边界; (4) 确定用户视图; 2.2.2 可行性分析
1、 可行性分析包括以下四方面: (1) 经济可行性:对项目进行成本效益分析;DBAS的成本主要包括:A、软硬件购置费用;B、系统开发费用;C、系统安装、运行、维护费用。
(2) 技术可行性:是根据用户提出的系统功能、性能及实现系统的各项约束条件,对系统软件、硬件、技术方案作出评估和选择建议;
A、 硬件可行性研究是分析DBAS的硬件平台环境和设置;
B、 软件可行性研究包括:对可用的DBMS和操作系统的选型评估,对中间件和开发环境的选型建议,对DBAS开发模式和编程语言的建议;
C、 技术方案的选择是根据系统技术需求,提出DBAS可能采用的合理技术方案和关键技术;
(3) 操作可行性:是论证是否具备DBAS开发所需的各类人员资源、软件资源、硬件资源和工作环境等,以及为支持DBAS开发如何去改进加强这几方面资源。
(4) 开发方案选择:目的是提出并评价实现系统的各种开发方案,从中选出一种适用于DBAS软件的开发方案;
2.2.3 项目规划
1、 项目规划是项目管理者对资源、成本和进度做出合理估算,并在此基础上制定切实可行的DBAS项目开发计划。
2、 项目规划包括以下内容: (1) 确定项目的目标和范围;
(2) 根据DBAS软件开发模型,分解和定义整个项目包括的工作活动和任务;
(3) 估算完成该项目的规模和所需各种资源;
(4) 制定合理的DBAS项目计划
3、项目规划的结果应形成数据库应用系统项目计划文档,即项目计划书。
2.3 需求分析
1、 数据库应用系统需求是指用户对DBAS在功能、性能、行为、设计约束等方面的期望和要求;
2、 DBAS需求分析是在已经明确的DBAS系统范围基础上,通过对应用问题的理解和分析,采用合适的工具和符号,系统地描述DBAS的功能特征、性能特征和约束,并形成需求规范说明文档;
3、 需求分析过程由需求获取、需求分析、需求描述和规范说明、需求验证等组成;
4、 DBAS的需求分析包括: (1) 数据需求分析; (2) 数据处理需求分析; (3) 业务需求分析;
(4) 分析数据库系统在性能、存储、安全、备份与恢复等方面的要求;
2.3.1 数据与数据处理需求分析
1、 数据需求分析:是从对数据组织与存储的设计角度,辨识应用领域所管理的各类数据项和数据结构,与数据处理需求分析结果一起,组成数据字典;
2、 数据处理需求分析:是从数据访问和处理的角度,明确对各类数据项所需进行的数据访问操作,分析结果可表示为数据流图或事务规范;
3、 事务规范包括:
(1)事务名称;(2)事务描述;(3)事务所访问的数据项;(4)事务用户;
2.3.2 业务规则需求分析
1、业务规则需求分析:是从DBAS高层目标和整体功能出发,分析系统或系统中一些大粒度子系统应具有的业务类型和功能,明确用户或外部系统与DBAS的交互模式;
2.3.3 性能需求分析 1、 DBAS的性能指标:
(1) 数据操作响应时间(或数据访问响应时间):从提交请求到返回结果的时间;
(2) 系统吞吐量:指系统在单位时间内所完成的事务或查询的数量,单位为TPS;
(3) 允许并发访问的最大用户数:在保证响应时间的前提下,系统最多允许多少用户同时访问数据库;
(4) 每TPS代价值,用于衡量系统性价比的指标
2、 影响DBAS性能的因素: (1) 系统硬件资源; (2) 网络通信设备性能; (3) 操作系统环境;
(4) 数据库的逻辑设计和物理设计质量,数据库配置参数;
(5) DBAS的配置和性能; (6) 数据库应用程序自身。 2.3.4 其它需求分析
1、 存储需求分析:是指估计DBAS系统需要的数据存储量,包括:(1)初始数据库大小;(2)数据库增长速度;存储总量估算可采用:根据数据字典中每个数据项的结构描述信息,估计每个数据项的容量,将所有数据项的容量累加;
2、 安全性需求分析:
(1) DBAS系统应达到的安全控制级别;
(2) 各类用户的数据视图和视图访问权限;
(3) DBAS应有的口令保护机制或其它安全认证机制,用以控制用户登录数据库系统。
3、 备份和恢复需求分析:
(1) DBAS运行过程中备份数据库的时间和备份周期;
(2) 所需备份的数据是全部数据库数据,还是一部分;
(3) 备份方式是采用完全备份还是采用差异备份。
2.4 系统设计 2.4.1 概念设计
1、 数据库概念模型设计:是根据数据需求分析阶段得到的需求结果,分析辨识需要组织存储在数据库中的各类应用领域数据对象的特征及其相互之间关联关系,并采用概念数据模型表示出来,得到独立于具体DBMS的数据库概念模型;
2、 ER方法:(1)选择局部应用;(2)分别设计各个局部ER图;(3)局部ER图合并;
3、 系统总体设计: (1) 确定DBAS体系结构;
(2) 系统硬件平台和操作系统、数