第5章 数据库技术.ppt_第1页
第5章 数据库技术.ppt_第2页
第5章 数据库技术.ppt_第3页
第5章 数据库技术.ppt_第4页
第5章 数据库技术.ppt_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机软件技术基础,第5章数据库技术,本章简介,数据库技术是计算机软件技术的重要组成部分。作为计算机软件技术的主要支柱之一的数据库技术在社会各个领域中都有着广泛和深入的应用。数据库技术可以为各种用户提供及时准确的相关信息,满足用户对信息的管理、查询、维护等需要,帮助用户提高业务信息管理效率。本章将研究数据库技术的工作原理。,本章提要,5.1数据库技术应用示例5.2数据库技术概述5.3关系型数据库技术5.4SQL语言5.5数据库技术的发展趋势,5.1数据库技术应用示例,5.1数据库技术应用示例,为了更好地理解数据库技术的特点,下面先介绍几个数据库技术应用的典型示例,以便读者对数据库技术有一个感性认识。航空售票管理信息系统超市的商品管理和销售信息系统学校教学管理信息系统,航空售票管理信息系统,航空售票管理信息系统是最早使用数据库技术的应用领域之一。在该系统中,主要通过下面一些数据项来描述业务信息:座位预定信息:座位类型、座位分配、座位确认、座位状态、餐饮选择等;(2)航班信息:航班号、飞机型号、机组号、起飞地、目的地、起飞时间、到达时间、飞行状态等;(3)机票信息:票价、折扣、有无等。对该系统的查询主要是在某一段时间内从某个指定城市到另一个指定城市的航班,是否还有可以选择的座位、是否有其他飞机型号、飞机票价以及是否有折扣等信息。对该系统的主要更新操作包括为乘客登记航班、分配座位和选择餐饮等。,超市的商品管理和销售信息系统,在超市的商品管理和销售信息系统中,用于描述业务信息的主要数据项如下:(1)销售信息:连锁商店、销售日期、销售时间、顾客、商品编码、商品名称、销售数量、总价等;(2)商品信息:商品编码、商品名称、单价、库存数量、进货数量、供应商名称、商品类型、商品货位等;(3)供应商信息:供应商名称、地址、商品、信誉等。在超市的商品管理和销售信息系统中,主要的操作是记录顾客的购买信息、查询超市现有商品的名称和数量、分析当天连锁商店的销售情况,确定进货的内容和商品的摆放位置等。,学校教学管理信息系统,学校教学管理信息系统主要是涉及学生、教师、教室、课程和排课等信息的管理。该系统包括的典型数据项如下:(1)学生信息:学号、学生姓名、性别、班级、年龄、宿舍、电话、E-mail地址等;(2)教师信息:教师编号、教师姓名、性别、年龄、学历、教研室、住址、电话、E-mail地址等;(3)教室信息:教室编号、位置、教室类型、座位编号等;(4)课程信息:课程名称、教材名称、学时、学分等;(5)排课信息:课程名称、教室编号、班级、教师名称、上课时间等。除了上面的信息以外,还包括学生选课、考试成绩等信息。典型的查询操作包括:提供教室安排、学生成绩统计清单、教师工作量统计等,典型的更新操作包括:记录学生选课、登记考试成绩、自动排课等操作。,5.2数据库技术概述,5.2数据库技术概述,本节将从5个方面对数据库技术进行概述,首先分析数据库技术的演变过程,然后讲述数据库技术的基本概念,第三,分析数据库建模和典型的数据库模型的特点,接下来研究数据库的体系架构及其特点,最后分析数据库技术的作用和影响。,5.2.1数据库技术的演变过程,从历史的发展来看,信息技术的快速发展、社会对信息需求的不断增强、信息资源的作用日益显现,是推动数据库技术发展的主要动力。从数据管理的实践来看,数据库技术的演变过程是从手工管理、面向文件的数据管理阶段逐渐向面向数据库系统的数据管理阶段发展的过程。,手工管理,在计算机技术开始出现之前,许多企业通过手工记录文件来管理各种数据。例如,会计人员手工进行成本核算、制作财务报表等。当然,手工管理数据文件的效率是非常低的。,文件管理阶段,计算机出现的初期,主要用于科学计算。从计算机的硬件技术来看,除了内存之外,出现了称为第二存储器的外存储器例如磁盘,软件领域则逐步出现了操作系统和高级程序设计语言。操作系统中的文件系统是专门管理外存储器上数据的管理软件。应用程序的开发是独立的,没有一个统一的规划,例如,企业中每个职能领域都会开发一些完全独立于其他职能领域的系统。财务、生产、营销和人事等业务部门都开发各自的应用程序,都拥有自己的数据文件。这种采用多个文件来存储和管理数据的方式称为面向文件的数据管理方式,简称为文件管理方式。从数据库技术发展的阶段来讲,该阶段是文件管理阶段。,文件管理阶段的主要问题,(1)数据冗余性(dataredundancy):是指同一个信息在多个数据文件中同时出现。当多个不同的部门独立采集同一种信息时,就发生了这种冗余性。(2)数据不一致性(datainconsistency):是指由于同一种信息数据在多处采集和维护,有可能造成同一种信息有不同的数据表示。(3)数据联系弱(datapoorrelationship):是指不同的数据文件之间相互独立,缺乏联系特性。虽然某些数据之间存在紧密的联系,但是由于实现的复杂性,很少在系统中提供数据之间的紧密联系。(4)数据安全性差(datapoorsecurity):是指对数据的管理和控制比较少。数据文件很容易被非法用户使用和操作。(5)缺乏灵活性(lackofflexibility):是指在特定领域中的应用程序编写完毕之后,如果需要增加各种特殊查询的报表,那么这些修改将非常困难,数据库管理系统阶段,传统的文件管理存在的许多问题终于在20世纪60年代末得到了解决。这时,从计算机硬件技术来看,出现了具有数百兆字节容量、价格低廉的磁盘。从软件技术来看,操作系统已经开始成熟,程序设计语言的功能也更加强大,操作和使用更加方便。这些硬件和软件技术为数据库技术的发展提供了良好的物质基础。从现实需求来看,数据量急剧增加,对数据的管理和分析需求力度加大。1970年,数据库专家E.F.Codd连续发表论文,提出了关系模型,奠定了关系型数据库管理系统的基础。这时,数据管理进入到了一个新的阶段,这种面向数据库系统的数据管理阶段称为数据库管理系统阶段。,数据库管理系统阶段特点,(1)使用复杂的数据模型表示结构。在这种系统中,数据模型不仅描述数据本身的特征,而且还要描述数据之间的联系。这样,所要管理的数据不再面向特定的某个或某些应用,而是面向整个应用系统,从而极大地降低了数据冗余性,实现了数据共享。(2)具有很高的数据独立性。用户可以使用简单的逻辑结构来操作数据,而无需考虑数据的物理结构,该操作方式依靠数据库系统的中间转换。这时,就认为数据达到了物理数据的独立性。(3)为用户提供了方便的接口。在该数据库系统中,用户可以非常方便地使用查询语言,例如SQL(structuredquerylanguage,结构化查询语言)或实用程序命令来操作数据库中的数据,也可以以编程方式(例如在高级程序设计语言中嵌入查询语言)操作数据库。(4)提供了完整的数据控制功能。这些功能包括并发性、完整性、可恢复性、安全性和审计性。(5)提高了系统的灵活性。对数据库中数据的操作既可以以记录为单位,也可以以记录中的数据项为单位。,数据库系统的发展,从数据库技术的发展过程和演变趋势来看,数据库系统本身也在不断发展从最初的层次数据库系统、网状数据库系统,在向关系型数据库系统、关系对象数据库系统、对象数据库系统等类型发展和演变。,5.2.2数据库技术的概念,在数据库技术领域,经常要用到数据库、数据库管理系统、数据库系统、数据库技术等术语,下面给出这些常用术语的解释。数据库(database)是采用计算机技术统一管理的相关数据的集合,数据库能为各种用户共享,具有最小冗余度、数据之间联系密切、有较高的数据独立性等特点。数据库管理系统(databasemanagementsystem,DBMS)是位于用户与操作系统之间的一层数据库管理软件,它为用户或应用程序提供访问数据库的方法,包括数据库的建立、查询、更新以及各种数据库控制等。数据库系统(databasesystem,DBS)是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机软件、硬件和数据资源组成的系统,是采用数据库技术的计算机系统。,数据库产品,数据库产品是由专门开发DBMS的厂商提供的。目前,数据库市场上常见的数据库产品包括甲骨文公司的Oracle系统,IBM公司的DB2系统和Informix系统,赛贝斯公司的SybaseASE系统,微软公司的MicrosoftSQLServer系统和Access系统、MySQL公司的开源数据库系统等。,5.2.3数据库模型和数据库建模,为了更好地理解数据库的结构,需要先理解数据模型、数据建模、数据库模型、数据库建模等基本概念以及他们之间的关系。,数据库模型,模型是一种描述客观现实的抽象技术。数据模型(datamodel)是描述数据如何表示、如何访问的抽象模型,常用来定义特定领域的数据元素和数据元素之间的关系。在程序设计语言中,数据模型也常常称为数据结构。在数据库领域中建立的数据模型称为数据库模型。数据库模型(databasemodel)是描述数据库结构和使用的方法和技术。针对同一种客观对象,可以根据需要采用不同的描述方式。从这种意义上来看,数据模型又可以分为概念模式、逻辑模式和物理模式3种层次。概念模式用于描述客观对象所属领域的范围和应用的语义方式;逻辑模式是基于某种数据处理技术对客观对象的语义描述,例如描述表和列的结构关系、描述对象类和类的关系、描述XML文档等;物理模式则是描述数据具体存储的物理位置和方式。,数据建模,数据建模(datamodeling)是采用特定的方法和技术创建具体的数据模型的过程,用于定义和描述数据集合。如果在数据库中建立数据模型,那么这种建模技术称为数据库建模(databasemodeling)。大多数数据库系统都是基于某种数据库模型建立起来的。常见的数据库模型包括层次模型、网状模型、关系模型、对象关系模型、对象模型、多维模型等。,层次模型,层次模型(hierarchicalmodel)是一种按照树状结构来组织数据的方式,层次模型主要用于早期大型机的数据库管理系统中和对XML文档数据的描述。,网状模型,网状模型(networkmodel)是一种按照网状结构来组织数据的方式,在此结构中,每个节点都可能与其他节点之间建立关系。网状模型适合于描述具有冗余数据的数据元素之间的关系。,关系模型,关系模型(relationalmodel)最早是由E.F.Codd于1970年基于关系代数理论提出的,目的是使得数据库管理系统独立于各种应用程序。关系模型的基本数据结构是用来描述实体的表,表是数据行的集合,表中的列描述了数据行的属性。数据库中的多个表之间往往彼此关联。,5.2.4数据库存储结构,数据存储结构是指数据库中的物理数据和逻辑数据的表示形式、物理数据和逻辑数据之间关系映射方式的描述。在数据库技术中,可以使用两种形式描述客观现实的数据:物理数据描述和逻辑数据描述。物理数据和逻辑数据之间的转换通过数据库管理系统实现。,物理数据描述,物理数据描述是指数据在存储设备上的存储方式,物理数据是实际存放在存储设备上的数据,这些数据也称为物理记录。根据物理记录存储的位置情况,又可以分为有序存储和无序存储。在物理数据描述中,使用的数据描述术语包括以下各项。,逻辑数据描述,逻辑数据描述是指用户或程序员用于操作的数据形式,逻辑数据是一种抽象的概念,是对客观现实世界的反映和记录,这些数据也可以称为逻辑记录。逻辑数据包含两个层次,一个层次是对客观现实信息世界的描述,另一个层次是对数据库管理系统中数据的描述。在对客观现实信息世界的描述中,使用的术语包括以下几项。,5.2.5数据库管理系统的组成结构,数据库管理系统的组成结构描述了数据库管理系统的主要组成部分和功能以及他们之间的关系。不同类型的数据库管理系统,其组成结构也不完全相同。例如,关系型数据库管理系统的主要组成部分包括用户接口驱动程序、SQL引擎、事务处理引擎、关系引擎、存储引擎等。对象数据库管理系统的组成包括程序设计语言驱动程序、查询引擎、事务引擎、存储引擎等。,5.2.6数据库技术的作用和影响,一般地,数据库技术主要用来管理大量业务数据、定义数据库、执行数据库操作、控制多用户访问等。随着数据库技术的广泛应用和影响,许多组织设置了数据库管理员的角色。数据库管理员主要负责信息资源的管理和数据库开发规划等工作。,5.3关系型数据库技术,5.3关系型数据库技术,目前,关系型数据库技术依然是数据库市场上的主流技术,大多数的应用程序都采用关系型数据库技术来存储和管理数据。因此,本节重点讲述与关系型数据库技术相关的内容。,5.3.1基本概念,在关系型数据库管理系统中,表(table)是关系模型中表示实体的方式,是用来组织和存储数据、具有行列结构的数据库对象。一般而言,表具有以下基本特点:代表实体、由行和列组成、行和列的顺序是不重要的等等。下面,我们就来详细讲述这些特点。,5.3.2数据库范式,数据库范式(normalform,NF)是确保数据库结构合理,满足各种查询需要、避免数据库操作异常的数据库设计方式。E.F.Codd在20世纪70年代初提出了第一范式、第二范式、第三范式,后来,一些专家又陆续提出了Boyce-Codd范式、第四范式、第五范式以及第六范式。满足范式要求的表,称为规范化表。在大多数数据库设计时,表的设计要满足前三个范式要求。下面,先介绍操作异常现象,然后讲述前三个范式的内容。,数据冗余,数据冗余的含义是表示相同信息的数据在表的多个行中重复出现。修改异常的含义是当我们修改了表中某一行的信息后,该表中另一行中相同的信息却没有被修改。插入异常的含义是当我们向表中插入一行数据时,仅仅知道该行的一部分数据,另外一部分数据则不知道,结果这些已知的数据由于那些未知的数据而很难在表中正确地插入。删除异常的含义是如果某些属性的值变为空,那么可能会丢失其他一些有用的信息。,第一范式,首先研究第一范式。第一范式是最基本的范式。如果表中的所有属性值都是不可再分解的原子值,那么称该表是满足第一范式(firstnormalform,1NF)的要求。这里提到的原子值,表示是不可再分割的值。不满足1NF的表称为非规范化表。,第二范式,在满足第一范式的基础上,所有的非主键属性值全部依赖于主键值,不存在部分依赖现象,这时的表称为满足第二范式(secondnormalform,2NF)的要求。主键是可以唯一确定表中行数据的一个或多个属性的组合。,第三范式,在满足第二范式的基础上,如果所有的非主键属性都不存在传递依赖现象,则称该表满足第三范式(thirdnormalform,3NF)的要求。,5.3.3数据库对象,数据库中有许多对象,最基本的对象就是表,除此之外,视图、索引、存储过程、触发器等都是常见的数据库对象。在关系型数据库系统中,表(table)是最基本的数据库对象,用于存储数据。视图、索引、触发器等对象都与表对象有直接的关系。除了上面列出的对象之外,数据库对象还包括用户定义的函数、游标、分区、事务日志等。,视图,视图(view)是由查询语句构成的对象,是一种查看表中数据的方式。在许多应用程序开发过程中,往往不是直接查询表中的数据,而是通过查询视图来获得表中的数据。这是因为,使用视图有很多好处,例如可以查看表中的一部分数据、可以把多个表中的数据连接在一起提供给应用程序、可以在提供数据时对数据进行预设的计算、可以隐藏表的结构等。,索引,在数据库中,索引(index)是一种可以加快检索表中数据的数据结构。在创建索引时,需要基于表中的一个或多个列进行创建。就像表耗费空间一样,索引也同样耗费空间。在一个表上,可以创建一个或多个索引对象。优化表上的索引结构,往往可以显著地提高数据库应用程序的效率。,存储过程,存储过程(storedprocedure)是一组预编译的命令或子例程,可以在数据库中执行相关的操作。存储过程的执行需要明确地调用,既可以在应用程序访问数据库系统时调用,也可以在数据库中直接执行。存储过程主要用来完成数据校验、访问控制等功能。,触发器,与存储过程非常类似的数据库对象是触发器(trigger),该对象也用来在数据库中执行特定的操作,但是触发器的执行是自动的。触发器是指当执行某种操作时自动执行的代码块。这些操作既可以是针对表的插入、更新等操作,也可以是针对视图的操作,还可以是针对数据库的操作。例如,当在财务表上执行插入操作时,该操作的基本信息可以借助于触发器的功能自动记录在审计表中。,5.3.4实体关系图,1976年,PeterChen提出了实体关系图的概念,用于解决数据库建模问题。实体关系图(entityrelationshipmodel,ERD)是一种描述数据库中数据之间逻辑关系的图形。在数据库设计过程中,经常使用ERD图。ERD图有时也称为E-R图、ER图等。ERD有3个基本元素:实体、关系和属性。实体(entity)是客观存在的、可以被唯一识别的事物。,5.3.5数据完整性,数据完整性是指确保存储在数据库中的数据的一致性和准确性的约束或规则。数据完整性有3种基本类型,即域完整性、实体完整性和参考完整性。,域完整性,域完整性,也称为列完整性,指定一个数据集对某一个列是否有效和确定是否允许空值。域完整性通常是经过使用有效性检查来实现的,并且还可以通过限制数据类型、格式或者可能的取值范围来实现。例如,在零部件分类表中的分类名称字段,限制其取值范围为“标准件”、“外协零件”、“外协部件”、“自制零件”、“自制部件”,这样该列就不会输入其他一些无效的值,例如,不会输入“机器”、“图纸”、“销售订单”等值。,实体完整性,实体完整性,也称为行完整性,要求表中的所有行都有一个唯一的标识符,这种标识符一般称为主键值。例如,在入库单表中,入库单号应该是唯一的,这样才能唯一地确定一个入库单据。在零部件基本信息表中,零部件编号是唯一地确定一个零部件的主键。,参考完整性,参考完整性保证在主键(在被参考表中)和外键之间的关系总是得到维护。如果在被参考表中的一行被一个外键参考,那么这一行既不能被删除,也不能修改主键值。例如,在仓库管理数据库中,有零部件基本信息表和入库单表。在零部件基本信息表中有一个零部件编号属性,该属性是主键。入库单表中也有一个零部件编号属性,该属性的取值依赖于零部件基本信息表中的零部件编号属性。,实现方法,在MicrosoftSQLServer系统中,包括了实现这些数据完整性的许多方法,例如约束、规则、缺省等。约束是实现数据完整性机制的最主要的方法。,5.3.6数据库的安全,安全是数据库管理员的重要任务之一。数据库的安全性是保障数据库不受非法用户访问的方法和机制,是计算机安全性的一个重要组成部分。常用的数据库的安全性包括系统认证、访问控制、监视和审计、数据加密等方法。,5.3.7数据库开发过程,数据库开发过程是指设计和实现一个可以满足用户需求和使用的数据库的过程。一般地,数据库开发过程包括4个阶段,即概念数据建模、逻辑数据库设计、物理数据库设计和数据库实现和维护,各阶段之间的关系示意图如图5-6所示。,5.4SQL语言,5.4SQL语言,SQL是结构化查询语言(StructureQueryLanguage)的简称,是当前流行的数据库语言。在数据库中,可以使用SQL语言执行对象定义、数据操纵、权限管理、流程控制等操作。本节将讲述SQL语言的主要内容。,5.4.1SQL语言的特征,二十世纪七十年代,IBM公司的SanJoseResearch实验室开发了SystemR关系型数据库系统,使用StructuredEnglishQueryLanguage(SEQUEL)语言管理数据库系统中的对象。后来,该语言的名称由SEQUEL改为SQL。1986年,SQL被美国国家标准学会(ANSI)采纳为标准,被称为SQL-86。1987年,ISO采纳该标准为国际标准。同任何程序设计语言一样,SQL语言有自己的数据类型、表达式、关键字和语句结构。当然,SQL与其他语言相比,要简单得多。SQL语言有以下4个特点:一是一体化的特点,集数据定义语言、数据操纵语言、数据控制语言和附加语言元素为一体;二是两种使用方式,交互式和嵌入到高级语言的使用方式,前者适合于非数据库专业人员使用,后者适合于数据库专业开发人员使用;三是非过程化语言,只需要提出“干什么”,不需要指出“如何干”;四是类似于人的思维习惯,容易理解和掌握。,5.4.2数据控制语句,安全性管理是分布式数据库系统的重要特征。安全性管理就是确保数据库中的数据和操作不能被未授权的用户使用和执行。数据控制语句是用来进行安全性管理的命令,它可以确定哪些用户可以查看或修改哪些数据、或执行数据库中的哪些操作等,主要包括GRANT、DENY、REVOKE等语句。,5.4.3数据定义语句,数据定义语句用于执行数据库的任务、创建数据库以及数据库中的各种对象,包括CREATE、ALTER、DROP等语句。数据库中的常见对象包括数据库、表、索引、视图、触发器、存储过程等。这些对象的创建、修改和删除等管理都可以通过CREATE、ALTER、DROP等语句来完成。,5.4.4数据操纵语句,数据操纵语句用于在数据库中操纵各种对象,检索和修改数据,包括SELECT、INSERT、UPDATE、DELETE等语句。S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论