1、 火箭技术教研室 郭乃林23.5.42第一章 数据库系统概论 1.1 数据库技术概述 信息的处理技术和信息的利用能力成为衡量一个单位和国家社会经济发展和科学进步水平的重要标志 信息、物质、能源 人类社会的三大资源 作为信息技术主要支柱之一的数据库技术在社会各个领域中得到了广泛的应用。23.5.431.1 数据库技术概述 1.1.1数据库系统应用实例 一、航空售票系统 二、银行业务系统 三、超市销售业务系统 四、企业管理信息系统 五、教学管理系统 六、图书馆管理系统23.5.441.1 数据库技术概述 1.1.2数据库系统的作用 数据库管理系统 数据库系统1、管理大量的数据2、数据库定义功能3、
2、数据查询功能4、控制多用户的访问数据库23.5.451.1 数据库技术概述 1.1.3常见的数据库系统 Oracle数据库系统数据库系统Oracle数据库系统目前的版本是Oracle9i,它在全球和中国的销量都是第一。我国的主要用户是公安系统、金融系统和大型企业。Oracle数据库系统非常复杂,可以按照用户的要求进行组装。它支持Web功能,支持在数据库中存储大对象的数据,如图象和图形、视频和音频数据等等。23.5.461.1 数据库技术概述 Sybase公司的主打产品有两种:Sybase Adaptive Server Enterprise和Sybase Adaptive Server Any
3、where。它在中国的销量是第二,其主要用户有铁道部、金融系统和大型企业。成功的案例有98世界杯网站系统,全国铁路售票系统(与民航售票系统完全不同)。这些系统主要采用Sybase公司的数据复制技术和主键冲突解决方案。23.5.471.1 数据库技术概述 Microsoft公司的数据库产品是SQL Server,它最早是从Sybase公司买的核心技术,目前的版本是7.0。它在全球的销量处于第三位,处于第二位的是IBM的DB2,DB2主要专用于IBM的大型机,用于并行存储与计算。而Microsoft公司的SQL Server在我国的主要用户是中小型企业和教育机构。23.5.481.1 数据库技术概
4、述 Access 2000是在Windows环境下的非常流行的桌面型数据库管理系统,它无需编写任何代码,只需要通过直观的可视化操作,就可以完成大部分的数据库管理任务。Visual foxpro23.5.491.1 数据库技术概述 1.1.4 数据库应用程序的开发过程 随着信息技术的迅速发展,信息系统应用范围迅速扩大。近年来,实际运行的信息系统越来越多,对社会和经济的影响日益深入。并不为大多数人所知的另一方面:真正完成的系统比计划开发的系统少得多;实际运行的系统比开发完成的系统少得多;运行的系统中,许多系统的效益远不如当初的承诺。后果:使建设单位背上沉重包袱;人们为信息系统建设的效率和成功率担忧
5、。23.5.410信息系统建设的复杂性 原因:信息系统的多学科性、综合性信息系统的多学科性、综合性 它的发展必定有一个较长的过程,需各学科的成熟,技术人员、管理人员的知识需要拓宽,人们对信息系统建设过程的认识需要在实践中提高。信息系统建设周期长、投资大、风险大,比一般技术工程有更大的难度和复杂性的系统工程。23.5.411信息系统建设的复杂性 技术手段复杂 内容复杂,目标多样 投资密度大,效益难以计算 环境复杂多变23.5.412早期开发方法的不足 技术方面 目标含糊 通信误解 技术人员与管理人员沟通困难 开发方法 步骤混乱 管理方面 缺乏管理控制 其它 领导重视不足 业务人员支持不够 部门协
6、调困难23.5.413信息系统开发方法学 系统开发的任务、特点和方式;系统开发的认知体系;系统开发的一般规律和指导原则;系统开发的策略和资源规划;系统开发的一般理论;系统开发的方法、工具和环境;系统开发的组织;系统开发的关键因素、必要条件、组织运行机制等。23.5.414结构化方法的基本思想 结构化程序设计 基本思想是:不用或尽量少用GOTO语句,一切程序都用图示的三种结构方式来构成。动作A动作B条件动作A动作B是否条件动作A是否条件动作A是否顺序结构分支结构循环结构23.5.415结构化方法的基本思想 结构化系统设计方法的产生 把模块化思想引入到系统设计中来,将一个系统设计成层次化的程序模块
7、结构。这些模块相对独立,功能单一。结构化系统分析 在调查、分析系统逻辑功能的基础上,用数据流程图等工具把系统功能描述清楚。23.5.416结构化生命周期法23.5.417结构化方法的基本思想 结构化方法的基本原则 面向用户的观点 严格区分工作阶段,每个阶段有明确的任务和应得的成果 按照系统的观点,自顶向下地完成系统的研制工作 充分考虑变化的情况 工作成果文献化、标准化 缺点:开发周期长 结构化程度低的系统,在开发初期难于锁定功能要求23.5.418快速原型法 在投入大量的人力、物力之前,在限定的时间内,用最经济的方法开发出一个可实际运行的系统原型,以便尽早澄清不明确的系统需求。在原型系统的运行
8、中用户发现问题,提出修改意见,技术人员完善原型,使它逐步满足用户的要求。23.5.419快速原型法开发MIS的过程确定系统基本需求构造初始原型原型使用、评价满意否?可用的原型是修改原型否很不满意是否继续?是停止开发否23.5.420快速原型法的优缺点 优点:增进了用户与开发人员的沟通;用户在系统开发中起主导作用;能够辨认动态的用户需求;启迪衍生式的用户需求;缩短开发周期,降低开发风险。缺点:不够规范,难于管理;需要自动化工具的支持;评价标准不一定合理。容易偏离原型的目的。23.5.421面向对象方法的基本概念 以对象为中心和出发点,分解系统的开发方法。以对象为中心和出发点,分解系统的开发方法。
9、对象:对象:对象是一些属性和专用服务的封装体;类:类:所有对象又被分为各种对象类,类是有相似属性和服务的多个对象的集合;消息:消息:对象之间除了传递消息之外,不再存在其他联系;继承性:继承性:下层可以继承上层对象所具有的属性;封装性封装性:对象向外界提供的只有属性和操作,而把内部细节隐蔽起来。23.5.422面向对象方法的开发过程 认识客观世界中的对象及行为,分别独立设计各个对象和实体;分析各个对象之间的联系和相互之间传递的信息,形成信息系统模型;由信息系统模型转化为计算机软件模型;由软件系统模型转化为一个现实的系统。23.5.423软件开发工具 软件开发工具是指在软件开发过程中,帮助开发者提
10、高工作质量和工作效率的一类新型软件。人人需求需求设计设计结构结构算法算法文档文档第三代第三代语言语言机器机器指令指令硬件硬件23.5.4241.2数据库技术的演变数据库技术的演变1.2.1数据库技术的环境数据库技术的环境数据库系统是随着信息技术的发展而发展的;信息技术发展的基础是计算机硬件、软件技术;数据库技术是也是随着计算机技术的发展而发展的。硬件环境:存储器的类型和容量、数据处理器的速度、外围设备(如:输入输出设备、超市专用芯片的使用)、网络环境等。软件环境:运行环境、通用工具、编程语言、开发工具;数据(信息)23.5.4251.2数据库管理系统的产生数据库管理系统的产生数据管理的进展数据
11、管理的进展数据管理随着计算机软硬件的发展而不断发展,40多年来经历了以下三个阶段:1、人工管理阶段2、文件系统阶段3、数据库管理系统阶段23.5.4261.2.1数据管理的进展数据管理的进展1、人工管理阶段 主要是指50年代中期以前的这段时间,此时的计算机还很简陋,连完整的操作系统都没有。因此,数据只能放在卡片上或其他介质上,由人来手工管理。23.5.4271.2.1数据管理的进展数据管理的进展2、文件系统阶段 主要是指50年代后期到60年代中期的这段时间,此时的计算机已经有了操作系统。在操作系统基础之上建立的文件系统已经成熟并广泛应用。因此,人们自然想到用文件把大量的数据存储在磁盘这种介质上
12、,以实现对数据的永久保存和自动管理以及维护;23.5.4281.2.1数据管理的进展数据管理的进展3、数据库管理系统阶段主要是指60年代后期以后,由于数据库管理系统的诞生,通过数据库管理系统管理大量的数据,不仅解决了数据的永久保存,而且真正实现了数据的方便查询和一致性维护问题,并且能严格保证数据的安全。23.5.4291.2.2文件处理系统文件处理系统 在数据库管理系统出现以前,把需要管理的数据存放在永久性的系统文件中,同时为了能够操作这些文件里的数据,系统里还有针对这些文件编写的应用程序。在文件处理系统中存储信息的弊端主要表现在七个方面:1、数据冗余和不一致 2、数据访问困难3、数据孤立 4
13、、完整性问题 5、原子性问题 6、并发访问异常7、安全性问题23.5.4301.2.2文件处理系统文件处理系统 1、数据冗余和不一致 数据冗余是指相同的信息可能在不同的地方(文件)重复存储。如某个客户的地址和电话号码既可能在由储蓄帐户记录组成的文件里出现,也可能在由支票帐户记录组成的文件中出现;数据冗余还可能导致数据不一致,即同一数据的不同副本不一致。如某个客户地址的更改可能只是在储蓄帐户文件里得到反映而在系统的其他文件中没有得到反映。23.5.4311.2.2文件处理系统文件处理系统2、数据孤立,访问困难 由于数据分散在不同的文件中,这些文件又可能具有不同的格式,而且数据和数据之间的联系很难
14、表达。因而要编写新的且检索迅速、灵活数据的应用程序是很困难的。23.5.4321.2.2文件处理系统文件处理系统3、完整性问题 文件中所存储数据的值必须满足某种一致性约束。例如银行帐户的余额永远不会低于某个预定的值-10元。开发者通过在不同的应用程序中加入适当的代码来体现系统中的这些约束。但当新的约束加入系统时,很难通过修改程序来体现这些新的约束。尤其是当约束涉及到不同文件中的多个数据项时,问题就变得更加复杂了。因此,如何表达和实现一致性约束就成为迫在眉睫的问题。23.5.4331.2.2文件处理系统文件处理系统4、原子性问题 计算机系统也常常会发生故障,一旦故障发生并被检测到,数据就应恢复到
15、故障发生前的状态。例如,假设要从A帐户转5000元到B帐户,可是在程序的执行过程中发生了系统故障,很可能从A帐户减去的5000元钱还没来得及存入B帐户,系统就死机了。这就造成了数据的不一致。显然,为了保证数据状态的一致性,这里的借、贷两个操作要么都发生要么都不发生,也就是说,转帐这个操作必须是原子的-它要么全部发生要么根本不发生(具有不可分割性)。23.5.4341.2.2文件处理系统文件处理系统5、并发访问异常 许多系统允许多个用户同时访问数据,在这样的环境中由于并发更新操作相互影响,可能就会导致数据的不一致。假设A帐户中有500元,客户B和客户C几乎同时从A帐户中分别取款50元和100元。
16、假设每个取款操作对应的程序都是读取帐户余额,在其上减去取款的金额,然后将结果写回。如果两次取款的程序并发执行,可能它们读到的余额都是500元,并将分别写回450元和400元,到底是450元还是400元要看哪个程序后写回结果而定,而实际上这两个结果都是错误的。由于数据可能被多个不同的应用程序访问,而这些程序间事先又没有协调管理,因而可能会出现并发访问异常问题。23.5.4351.2.2文件处理系统文件处理系统6、安全性问题 并非系统的所有用户都可以访问所有的数据。例如在银行系统中,银行员工的工资发放人员只需要看到数据文件中有关银行员工的那部分信息,他们绝对不需要访问关于客户帐户的信息。由于应用程
17、序总是即兴加入到系统中来,这样的安全性约束在文件处理系统中难以实现。23.5.4361.2.3数据库管理系统数据库管理系统 数据库管理系统的目的就是为了解决上面提到的和未提到的在文件处理系统中存在的问题:数据冗余和不一致、数据访问困难、数据孤立、完整性问题、原子性问题、并发访问异常和安全性问题等等。也正是由于这些问题,导致了数据库管理系统的产生,并且提出了很多新的概念和算法,加速了数据库管理系统的发展。那么到底什么是数据库管理系统呢?23.5.4371.2.3数据库管理系统数据库管理系统 数据库管理系统数据库管理系统(Database Management System,英文缩写为,英文缩写为
18、DBMS)是由一个互相关联的数据的集合和一组用于访问这些数据的程序组成,这个数据集合通常称作数据库(Database,简称为DB)。数据库管理系统有时也通俗地称为数据库系统,因此我们通常所说的数据库系统主要是指DBMS,而不是指存放数据的具体数据库。23.5.4381.2.4数据视图数据视图数据抽象数据抽象 数据库管理系统的一个主要作用就是隐藏关于数据存储和维护的某些细节,而为用户提供数据在不同层次上的抽象视图,这就是数据抽象,即不同的使用者从不同的角度去观察数据库中的数据所得到的结果。对用户来说,了解数据库中用来表示数据的复杂的数据结构没有太大的必要。数据库管理系统通过如下三个层次的抽象来向
19、用户屏蔽复杂性,简化系统的用户界面。1、物理层抽象2、逻辑层抽象3、视图层(概念层)抽象23.5.4391.3数据库系统的架构 架构规范、形式数据库系统的架构包括:数据存储架构 数据视图架构 数据库应用架构23.5.440DBMS物理数据和逻辑数据之间的映射关系1.3数据库系统的架构 1.3.1数据存储架构 指的是数据库中物理数据和逻辑数据的表示形式、物理数据和逻辑数据之间关系的映射方式。01张三陕西02李四北京03王五上海04f23.5.4411.3数据库系统的架构 1.3.1数据存储架构 1、物理数据描述 物理数据是指实际存放在存储设备上的数据,其结构指的就是存储方式。位(bit)01 字
20、节(byte)8位=1字节 字(word)8位、16位、24位、32位 块(block)存储器上的最小单位(2565121024等)卷(volume)设备的标识23.5.4421.3数据库系统的架构 1.3.1数据存储架构 2、逻辑数据描述 逻辑数据是指用户或程序员用来操作的数据形式,它是一种抽象概念,是对客观现实世界的反映和记录。其结构指的是组织形式和结构。实体书籍实体属性实体集标识符元组数据项关系键码逻辑数据位字节字块物理数据卷23.5.4431.3数据库系统的架构 1.3.2 数据视图架构 数据库中的数据,为了满足各种用户的要求,设计了复杂的数据结构。为了给用户提供简单明了的数据界面,系
21、统必须隐藏数据在数据库内部的结构和存储细节。为此,系统提供三个层次屏蔽系统的复杂性,如图所示。外部层(视图层)概念层内部层(物理视图)23.5.4441.3数据库系统的架构 1.3.3 数据库应用架构 数据库应用架构就是指数据库应用系统中数据存储、业务处理、界面表示以及网络通信之间的布局和分布。根据目前的应用和发展情况可分为五类:一、单用户数据库应用架构23.5.4451.3数据库系统的架构 1.3.3 数据库应用架构二、集中式数据库应用架构主机数据库业务处理终端终端23.5.4461.3数据库系统的架构 1.3.3 数据库应用架构三、客户机/服务器应用架构数据库服务器客户机23.5.4471
22、.3数据库系统的架构 1.3.3 数据库应用架构四、多层数据库应用架构数据库服务器客户机数据库服务器应用服务器23.5.4481.3数据库系统的架构 1.3.3 数据库应用架构四、基于internet应用架构浏览器数据库服务器Web服务器请求HTTPinternet23.5.4491.4数据库管理系统的组成 关系型数据库管理系统组件结构示意图模式修改查询修改查询处理器预编译器编译器解释器存储管理器缓冲区管理器文件管理器数据元数据事务管理器23.5.4501.4数据库管理系统的组成 1.4.3查询处理器部件查询处理器部件 查询处理器部件主要由四部分组成,它们分别是:1、DML编译器2、嵌入式DM
23、L预编译器3、DDL解释器4、查询计算引擎23.5.4511.4数据库管理系统的组成 1.4.4 存储管理器存储管理器 存储管理器是为存储在数据库中的低层数据与应用程序及向系统提交的查询之间提供接口的程序模块。存储管理器负责与DBMS的文件管理器交互。原始数据通过文件系统存储在磁盘上,文件系统通常由操作系统提供。存储管理器将经过查询处理器编译的不同的DML语句的代码再次翻译成低层的文件系统命令。23.5.4521.4数据库管理系统的组成1.4.4 存储管理器存储管理器存储管理器部件主要由四部分组成,它们分别是 1、权限及完整性管理器 2、事务管理器 3、文件管理器 4、缓冲区管理器23.5.4
24、531.4数据库管理系统的组成 1.4.5 事务管理事务管理 问题的提出问题的提出 保证数据的正确性是数据库的生命。关于数据库的原子性问题在资金转帐例子中的应用:几个操作要么都完成,要么根本不发生。除此之外,资金转帐还必须保持数据库的一致性,也就是说转帐之后钱的总数还应该保持不变,这种对数据库值的正确性要求称作一致性。当资金转帐成功结束后,不管发生什么事情,包括系统故障,帐户A和B的钱数也应该保持不变,这种对数据库的值保持不变的要求称作持久性。23.5.4541.4数据库管理系统的组成1.4.5 事务管理事务管理事务的定义事务的定义事务管理器事务管理器 并发控制管理器并发控制管理器23.5.4
25、551.4数据库管理系统的组成 1.4.6 数据库用户数据库用户 数据库用户中有一个特殊的用户负责对DBMS进行集中的管理与控制,这个用户就是数据库管理员(Database Administrator,英文缩写为DBA)。DBA有很多作用,其中一个主要的作用就是对普通用户进行访问控制。通过授予用户不同的权限,不同的用户可以访问数据库中不同的数据。除DBA之外的其他普通用户可以通过应用程序和交互式的查询语言等手段访问数据库中的数据。23.5.4561.5数据库技术的发展趋势 1.5.1 数据库技术面临的挑战环境的变化数据类型的变化数据来源及数量的变化数据管理需求的变化23.5.4571.5数据库技术的发展趋势 1.5.2 数据库技术的未来分布式处理和分布式数据库面向对象的数据库多媒体数据库数据仓库工作流数据库管理系统