教学对象  教学时间  年 月 日  教学内容 第2章 技术基础 第2节 数据库技术  教学目的 通过本节内容的学习,掌握数据库技术设计的基本概念、了解数据处理及数据库系统的发展历史、掌握基本的关系数据库理论。  教学重点 数据模型及关系模型、SQL、关系数据库规范化设计理论。  教学难点 关系数据库规范设计理论  建议学时 1学时 教学教具 多媒体教学系统,SQL2000软件  教学方法 讲授(PPT)  演示设计 板书设计 数据库概述 数据描述 三、关系型数据库 四、设计案例   教学过程  课程导入 信息是一种重要的战略资源,充分挖掘其潜在价值,必须对数据进行科学合理的组织,即数据库。 现代管理信息系统中均采用数据库方式管理大量数据及信息,很多情况下需要具备网络应用环境,因而其两大支持系统是数据库系统和网络系统。 数据处理是管理活动的最基本内容,也是管理信息系统的基本功能。数据处理包括数据的收集、转换、组织、运算、存储、检索、输出。数据处理一般不涉及复杂的数学计算,但往往要求处理的数据量很大。     一、数据库概述 1、数据处理的发展 随着计算机硬件和软件技术的发展,大致经历下述三个阶段: 简单应用 (20世纪50年代以前)。 基本特征:无数据管理及完全分散的手工方式。 应用背景: 硬件 无外存或只有磁带外存,输入输出设备简单  软件 无操作系统,无文件管理系统,无管理数据的软件  主要特点:数据是程序的组成部分,数据不独立。修改数据必须修改程序。处理时,数据随程序一道送入内存,用完后全部撤出计算机,不能保留。数据大量重复,不能共享。 文件系统尚未出现,程序员必须自行设计数据的组织方式。 文件系统 (50年代后期到60年代中期)。 基本特征:具有面向应用的数据管理功能,工作方式是仍然是分散、非手工的。 应用背景: 硬件 外存有了很大的发展,除了磁带机,还出现了大容量的硬盘和灵活的软磁盘  软件 出现了操作系统、文件管理系统和多用户的分时系统,专用于商业事务管理的高级语言COBOL  主要特点:数据管理方面,实现了数据对程序的一定的独立性,数据不再是程序的组成部分,修改数据不必修改程序,数据有结构,被组织到文件内,存储在磁带、磁盘上,可以反复使用和保存。文件逻辑结构向存储结构的转换由软件系统自动完成,系统开发和维护工作得到减轻。 文件类型已经多样化。由于有了直接存取设备,就有了索引文件、链接文件、直接存取文件等,而且能对排序文件进行多码检索。 数据存取以记录为单位。 这一阶段数据管理的不足之处表现在: 文件基本上面向应用。 数据冗余度大。不同应用程序所需数据有部分相同时,仍需建立各自的数据文件,不能共享,数据维护困难,一致性难以保证。 数据与程序独立性仍不高。系统不易扩充。无论数据逻辑结构改变,还是应用程序的变化也将导致文件的修改。 数据库系统 (60年代后期开始)。 60年代后期,计算机在管理中的应用更加广泛,数据量急剧增大,对数据共享的要求越来越迫切;为了解决多用户、多应用共享数据的需求,便数据为尽可能多的应用程序服务,出现了数据库系统。 应用背景: 硬件 大容量磁盘已经出现、硬件价格大幅下降  软件 联机实时处理业务增多、面向组织的复杂数据结构、数据冗余度小,易于扩充、数据与程序独立、统一的数据控制功能。   主要特点: 面向全组织的复杂数据结构。数据库中的数据结构不仅描述了数据自身,而且描述了整个组织数据之间的联系,实现了整个组织数据的结构化。 数据冗余度小,易于扩充。由于数据库从组织的整体来看待数据,数据不再是面向某一特定的应用,而是面向整个系统,减少了数据冗余和数据之间不一致现象。在数据库系统下,可以根据不同的应用需求选择相应的数据加以使用,使系统易于扩充。 数据与程序独立。数据库系统提供了数据的存储结构与逻辑结构之间的映射功能及总体逻辑结构与局部逻辑结构之间的映射功能,从而使得当数据的存储结构改变时,逻辑结构保持不变,或者当总体逻辑结构改变时,局部逻辑结构可以保持不变,从而实现了数据的物理独立性和逻辑独立性,把数据的定义和描述与应用程序完全分离开。 统一的数据控制功能。数据库系统提供了数据的安全性控制 (Security)和完整性控制 (Integrity),允许多个用户同时使用数据库资源。数据库的上述特点,使得信息系统的研制从围绕加工数据的以程序为中心转移到围绕共享的数据库来进行,实现了数据的集中管理,提高了数据的利用率和一致性,从而能更好地为决策服务。因此,数据库技术在信息系统应用中正起着越来越重要的作用。 2、数据库 复习数据与信息的概念。 数据库(database)是保存在存储介质上的大量相关数据的集合。 从完整意义上,数据库是表、视图和链接等的集合。 特性(Characteristics): 3、数据库管理系统 数据库管理系统DBMS(database management system)是指用户与操作系统之的一层数据管理软件,它为用户应程序提供访问数据库的方法,包括数据库的建立、查询、更新及各种数据控制。 数据库管理系统功能: 定义数据库的功能。包括定义数据的整体逻辑功能(模式)、局部逻辑结构(外模式)、存储结构(内模式),还包括保密定义及信息格式定义等,并把数据库所描述的对象、属性及其联系的自然语言含义与计算机内描述形式的对照各种模式、外模式的宣言及说明存放在数据库内以备查阅(称为数据词典)。 管理数据库的功能。包括控制数据库系统的运行,控制用户的并改性访问(即同时有两个或多个用户访问一个对象);执行对数据库的安全性、保密性、完整性检验,实施对数据的检索、插入、删除、修改等操作。 维护数据库的功能。此功能包括初始时装入数据库、运行时记录工作日志、监视数据库性能、 在性能变坏时重新组织数据库。在用户要求或系统设备发生变化时修改和更新数据库,在系统软硬件发生变化时修改和更新数据库。在软、硬件系统出现故障时恢复数据库。 数据通信的功能。负责数据传输这一部分工作,通常与操作系统协同完成。此外,实现分时系统和远程作业输入的接口。 4、数据库系统 数据库系统DBS(database system)是实现有组织、动态在存储尤其是关联数据、方便多用户访问的计算机软件、硬件和数据资源组成的系统,即它是采用了数据库技术的计算机系统。 数据库系统构成: 硬件:带有数据库的计算机系统对其硬件的性能要求更高,要有足够在的内存以存放操作系统、数据库管理系统的例行程序、应用软件、系统缓冲区中的数据库的各种表格等内容。需要有大容量的直接存取的外存储设备,此外,还应有较强的通道能力。 软件: 操作系统:在数据库系统中,一般管理数据库的软件(DBMS)是借助于操作系统实现数据处理过程中的内外存数据交换的,所以这是的操作系统应能支持数据库管理系统的工作。 数据库管理系统(DBMS):数据库管理系统是对计算机的再一次扩充,它完成对数据的定义、管理、维护及各个层次之间的映像等。功能还将专门介绍。 应用软件包和应用程序:与一般计算机系统类似,为了适应应用的需要,可以在数据库管理系统的基础上建立应用软件包,提供给数据库的应用程序员和数据库管理人员使用。同时,用户则通过其应用程序来使用数据库,完成数据处理工作,获得所需信息。 人员:数据库系统中的人员主要有: 系统分析员。他们负责系统的需求分析、规范说明。他们必须与业务部门即各个用户和其他工作人员,特别是数据库管理人员密切配合, 以决定数据库系统的具体构成。 系统程序员。负责设计、实现和维护系统程序,特别是DBMS,实现数据组织与存取的各种功能。 应用程序员。负责编制和维护应用程序,应用程序员也是系统的用户。 数据库管理员(DBA)。负责全面的管理数据库的工作。 二、数据描述 数据描述是数据处理中的一个重要环节。 从事物的特性到计算机中的具体表示,实际上经历了三个领域:现实世界、信息世界和机器世界。 1.基本术语 信息世界的数据描述主要是将现实世界在人脑中的反映,用文字和符号表示出来,实体关系图(Relationship-Entity, E-R)图是最常用的工具:  实体(entity):是指明客观存在并相互区别的事物。 实体可以是具体对象。 举例。一本书、一个工厂、一种材料等。 实体也可以是抽象的概念和联系。 举例。学生的一次选课、一次借书等。 实体集(entity set):具有相同性质的同类实体的集合。 举例。所有教师、所有选课等。 属性(attribute):实体具有许多特性,每一个特性称为属性。每个属性有一个取值范围,即值域。 举例。学生的实体可由学号、姓名、性别、年龄、系别等属性组成。 性别的取值范围是“男”或“女”。 主键(key):惟一标识实体的属性集称为主键。 举例。学生实体的学号可作为学生实体的主键。 实体间的联系: 现实世界中,事物是相互联系的。这种联系必然在信息世界中体现出来,即实体是相互关联的。两个不同实体集的实体间的联系,它有以下三种情形: 一对一联系,记为1:1。 举例。工厂与厂长之间,科研任务与课题组长之间都是1:1联系。 一对多联系,记为1:N。 举例。一个学校有若干学生,而每个学生都在一个学校学习,学校与学生之间是一对多的联系。 多对多联系,记为M:N。 举例。课程与学生之间,一个学生可选多门课程,而每一门课程可有多个学生选修,课程与学生之间是多对多的联系。 2、数据模型 数据模型是从计算机系统的观点对数据建模,主要用于数据库管理系统的实现,它主要包括层次模型、关系模型、网状模型和面向对象模型等。DB的分类是依据数据模型进行的。 层次模型:用树型结构表示。 网状模型:用有向图结构表示。 关系模型:用二维表结构表示。 结算编码 合同号 数量 金额  J0012 HT1008 2 000 50 000  J0043 HT1109 600 13 000  J0033 GT1123 2 300 6 000   面向对象模型:用对象和类来表示实体类型和实体间联系的数据模型。 “学生”类具有属性“姓名”、“性别”和“年龄”,其中“大学生”类属性在继承“学生”类属性的基础上,还有“系别”和“专业”两个属性。“中学生”类的属性在继承“学生”类属性的基础上,还有“班级”和“特长”两个属性。 试建立“车”的对象模型。 数据模型的要素(待定) 数据模型一般由下列三要素组成: 一组对象及其结构; 一组操作; 一组(关于对象与操作的)约束。 三、关系数据库 关系数据库是以二维表作为数据模型的数据库系统。 1、关系模型组成 关系模型由三部分组成:数据结构(即关系)、关系操作、关系的完整性。 单一的数据结构——关系:在关系模型中,无论是实体还是实体之间的联系均由单一的类型结构——关系来表示。 关系操作:基本操作有并、交、差、笛卡尔乘积、限制、投影、连接、除。 关系操作可以用两种方式表示:代数方式即关系代数,逻辑方式即关系演算。 信息在机器世界中是以数据形式存储的,其数据描述需要用到以下术语: 字段(field):标记实体属性的命名单位称为字段(数据项)。它是可以命名的最小信息单位。 举例。学生、姓名、性别、年龄、系别等字段。 记录(record):字段的有序集合称为记录(数据元素)。一般用一个记录描述一个实体。 举例。一个学生记录,由有序的字段集组成:(学号、姓名、性别、年龄、系别)。 文件(file):同一类记录的汇集称为文件。文件是描述实体集的。 举例。所有学生记录组成了一个学生文件。 主键(key):能惟一标识文件中每个记录的字段集,称为文件的主键。 举例。学号可以作为学生记录的主键。 关系模型的三类完整性: 实体完整性:若属性A是基本关系R的主关键字中的属性(即主属性),则属性A不能取空值。 参照完整性:若基本关系R中含有另一个基本关系S的主关键字Ks所对应的属性组F(F称为R的外部关键字),则在关系R中的每个元组中的F上的值必须满足:a.或取空值;b.或等于S中某个元组的主关键字的值。 用户定义的完整性: 2、结构化查询语言 结构查询语言(Structured Query Language,SQL)是一个功能强大的数据库语言。SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。 标准的SQL命令主要有:"Select"、 "Insert"、 "Update"、 "Delete"、 "Create"和 "Drop"常常被用于完成绝大多数数据库的操作。 SQL功能可以分成以下几组: DML(Data Manipulation Language,数据操作语言):用于检索或者修改数据。 SELECT 用于检索数据; INSERT 用于增加数据到数据库; UPDATE 用于从数据库中修改现存的数据; DELETE 用于从数据库中删除数据。 DDL(Data Definition Language,数据定义语言):用于定义数据的结构,比如创建、修改或者删除数据库。 CREATE TABLE DROP TABLE CREATE INDEX DROP INDEX DCL(Data Control Language,数据控制语言):用于定义数据库用户的权限。 ALTER PASSWORD 3、规范化设计理论 E.F.Codd于1971年提出规范化理论。他定义了五种规范化模式(Normal Form, NF), 简称范式。 范式表示的是关系模式的规范化程序,也即满足某种约束条件的关系模式,根据满足的约束条件的不同来确定范式。如满足最低要求,则为第一范式(First Normal Form,简称1NF)。符合1NF而又进一步满足一些约束条件的成为第二范式(2NF),等等。 在五种范式中,通常只用到前三种。 范式 条件  第一范式(1NF) 元组中每一个分量都必须是不可分割的数据项  第二范式(2NF) 不仅满足第一范式,而且所有非主属性完全依赖于其主码  第三范式(3NF) 不仅满足第二范式,而且它的任可一个非主属性都不传递于任何主关键字  四、设计案例 举例:下表不符合第一范式的关系 教师代码 姓名 职称 系 电话 研究课题       研究课题号 研究课题名  1101 王一丽 教授 管理系 3324 500 管理信息  1102 刘 明 副教授 管理系 3324 800 金融工程  1254 李爱军 讲师 投资系 3341 630 电子商务   由非1NF规范化为1NF : 符合第一范式的关系 教师代码 姓名 职称 系 电话 研究课题号 研究课题名  1101 王一丽 教授 管理系 3324 500 管理信息  1102 刘 明 副教授 管理系 3324 800 金融工程  1254 李爱军 讲师 投资系 3341 630 电子商务  由1NF规范化为2NF: 上表中关系满足1NF,但不满足2NF。在表中,“教师代码”和“研究课题号”共同组成主关键字,“姓名”、“职称”和“研究课题名”是非主属性。非主属性(职称、职称、研究课题名)不完全依赖于由教师和课题代码组成的主关键字。其中,“姓名”和“职称”只依赖于主关键字的一个分量——“教师代码”,而“研究课题名”只依赖于主关键字的另一个分量——“研究课题号”。这种关系会引发下列问题: 数据冗余:当某个教师有多项研究课题时,必须有多条记录,而这多条记录中,该教师的姓名和职称数据项完全相同。 插入异常:当新调入一个教师时,只有教师代码、姓名、职称的信息,没有研究课题的信息,而研究课题号是主关键字之一,缺少时无法输入该教师信息。反之,当插入一个新的研究课题时也往往缺少相应的教师代码,以致无法插入。 删除异常:当删除某个教师的信息时,常常会丢失研究课题的信息。 解决的方法是将一个非2NF的关系模式分解为多个2NF的关系模式。在本例中,可将关分解为如下三个关系: 教师关系:教师代码、姓名、职称、教师所在系、电话; 课题关系:研究课题号、研究课题名; 教师与课题关系:教师代码、研究课题号。 这些关系与课题符合2NF要求。 上表符合第二范式,但是不符合第三范式 教师代码 姓名 职称 系 电 话         由2NF规范化为3NF: 这样的关系同样存在着高度冗余和更新异常问题。消除传递依赖关系的办法是将关系分解为如下几个3NF关系: 教师关系:教师代码、姓名、职称、电话; 课题关系:研究课题号、研究课题名; 教师与课题关系:教师代码、研究课题号。 3NF消除了插入异常、删除异常、数据冗余及修改复杂等问题,已经是比较规范的关系。    教学小结 数据库技术是管理信息系统课程的必备知识,由于数据库技术所涉及知识比较广泛,管理信息系统软件开发过程中所使用的数据库管理系统软件也种类繁多,但基本的内容相同或相近,因此,本课程只就数据库相关基本的知识作简单介绍或回顾,需要同学们认真扎实学习好数据库技术。  学习指导 了解数据库技术发展历史和在不同时期内的特点,深刻理解数据库、数据库管理系统、数据库系统之间的联系与区别,数据模型与数据库管理系统之间的联系与区别,掌握实体、实体集等基本概念,在数据库设计过程中,熟练使用实体-关系图工具和数据规范化理论。  参阅教材 教材第7章  网络资源 现代集成制造系统网络http://www.863cims.net/ 企业信息技术人员之家http://www.ithome-cn.net/  作 业 教材第7章习题第2、6、7题  教学后记