450 likes | 595 Views
第 3 章 数据库技术新发展. 数据库技术是一门 数据管理 的技术。 数据库技术是发展速度最快,应用最广泛的技术。 数据库技术的发展主要延着 数据模型 、 数据库应用 、 数据库管理系统开发技术 三个方面发展。 数据库技术与网络通信技术、人工智能技术、面向对象程序设计技术、并行计算技术等相互渗透,互相结合,成为当今数据库技术发展的主要特征。. 一、 DB 技术的三个发展阶段 第一代 ---- 层次、网状 DBS 代表 : IMS 、 DBTG 特点: 支持三级模式的体系结构 用路径表示数据间的联系 独立的数据定义语言 导航式数据操纵语言.
E N D
第3章 数据库技术新发展 • 数据库技术是一门数据管理的技术。 • 数据库技术是发展速度最快,应用最广泛的技术。 • 数据库技术的发展主要延着数据模型、数据库应用、数据库管理系统开发技术三个方面发展。 • 数据库技术与网络通信技术、人工智能技术、面向对象程序设计技术、并行计算技术等相互渗透,互相结合,成为当今数据库技术发展的主要特征。
一、DB技术的三个发展阶段 第一代----层次、网状DBS 代表:IMS、DBTG 特点: 支持三级模式的体系结构 用路径表示数据间的联系 独立的数据定义语言 导航式数据操纵语言 第二代----关系DBS 代表: System R、Oracle…… 特点: 统一的关系表示 形式化的理论基础 数据独立性强 非过程化的DB语言 数据库技术三个发展阶段
数据库技术三个发展阶段 • 第三代-----新型DBS 传统DBS的局限性: (1)面向机器的语法数据模型 传统数据库中的数据模型强调数据的高度结构化,是面向机器的语法数据模型,只能存储离散和有限制的数据与数据之间的关系,无法表示多媒体中大量非格式化的数据(如图形、图象、声音等)、多维的空间数据以及嵌套、递归等复杂的数据结构。传统数据模型无法揭示数据之间的深层含义和内在联系,缺乏数据抽象。
数据库技术三个发展阶段 (2)数据类型简单、固定 传统的DBMS只支持简单的数据类型。传统的RDBMS只支持某一固定的类型集,不能依据某一应用所需的特定数据类型来扩展其类型集。 (3)结构与行为分离 传统数据库主要关心数据的独立性及存取数据的效率,是语法数据库,语义表达差,难以抽象化地去模拟行为。对象与应用相关的大量语义在数据库中无法从无意义的编码中恢复。对象的行为特征在传统数据库系统中最多只能由应用程序来表示。
数据库技术三个发展阶段 (4)阻抗失配 阻抗失配—数据操纵语言(如SQL)与通用程序设计语言之间的失配称为阻抗失配。 不匹配表现在: • 编程模式不同(描述性的SQL与指令式的编程语言的不同) • 类型系统不匹配(编程语言不能直接表示关系这样的数据库结构) (5)被动响应 传统数据库管理系统只能响应和重做用户要求它们做的事情,是被动的。而在实际应用中,往往要求一个系统能够管理它本身的状态,在发现异常情况时及时通知用户;能够主动响应某些操作或外部事件;能够在一些预定的时间间隔中自动执行某些操作。
数据库技术三个发展阶段 例:假设有如下三个表: 信件(序号,收信人,作者,发信时间,内容,收信时间,收信标志) 通知(序号,发通知人,发通知时间,发通知部门,送往部门,收通知人,阅完标志,收文签字) 报告(序号,报告人,报告时间,报告部门,呈交部门,送呈领导,批阅意见,办完标志) • 能否做到:在用户登录之后,根据他所报的用户名,主动在各有关系统中搜索查找与该用户有关的内容,挖掘出有用的有关信息,然后分类按层次结构显示在桌面上,用户再按照提示一项项操作。这就是主动数据库。
数据库技术三个发展阶段 (6)存储、管理的对象有限 传统DBMS主要进行的是数据的存储、查询、排序、报表生成等简单、离散地信息处理工作。数据库中反映的是客观世界中静态、被动的事实。缺乏对知识的处理能力,不具有演绎和推理的功能,无法满足DSS、OA、AI等领域中进行高层管理和决策的要求,限制了数据库技术的高级应用。 (7)事务处理能力较差 传统DBMS对长事务的响应较慢,对长事务发生故障时恢复也比较困难。 长事务是指需要太长时间因而不允许它们保持其他事务所需要的锁的事务。
数据库新技术发展特点 二、数据库新技术 1.新技术发展特点 (1) 针对新的数据模型 • 对传统的关系模型(1NF)进行扩充,使它能表达比较复杂的数据模型,增强其结构建模能力,这样的数据模型称为复杂数据模型。 • 提出和发展相比关系模型来说全新的数据构造器和数据处理原语,以表达复杂的结构和丰富的语义。这样的数据模型称为语义数据模型。 • 将语义数据模型与面向对象程序设计方法结合起来提出了面向对象的数据模型。
数据库新技术发展特点 (2)与多学科技术结合 数据库 技 术 分布处理技术 分布式数据库系统 并行处理技术 并行数据库系统 人工智能技术 知识库系统、主动数据库系统 多媒体数据库系统 多媒体技术 模糊数据库系统 模糊技术 数据库技术与其他计算机技术的相互渗透
分布式与并行数据库系统 • 分布式数据库系统 在网络通信的飞速发展和集中式数据库系统的基础上,由于对地理分散数据共享和访问的需要,产生并发展了分布式数据库系统。它是数据库技术和网络通信技术有机结合的产物。 • 并行数据库系统 在并行机上运行的具有并行处理能力的DBS。它试图通过充分利用通用并行计算机的处理机、磁盘等硬件设备的并行数据处理能力来提高数据库系统的性能。
知识库系统 • 知识库系统 • 数据库系统:可以处理海量数据和大量商业事务,但缺乏表达和处理AI系统中的规则和知识,不具有演绎、推理能力。 • AI系统:能表达基于规则的知识、并能进行启发式搜索与推理,但缺乏高效检索知识库和管理大量数据和规则的能力。 • 数据库技术中引入人工智能技术的途径: ① 数据库的智能化 把数据库视为一个AI系统或专家系统,借鉴AI技术来提高DBMS的表达、推理和查询能力。 ② 智能化的数据库 扩大数据库的功能,使其不但具有传统数据库的现有功能,还具有一些AI功能,以提高数据库的演绎、推理功能和智能化的程度。
主动数据库 • 主动数据库系统 将事件驱动机制引入到数据库系统,就产生了主动数据库。主动数据库系统需要一种事件驱动机制,在某些事件发生时,主动执行有关应用程序,完成相应数据检索和处理功能。 ① 主动数据库系统模型 主动数据库规则的模型称为事件(Event)-条件 (Condition)-动作 (Action)模型,即ECA模型。一个主动数据库系统在某一事件发生时,引发数据库管理系统去检测数据库当前状态,若满足指定条件,则触发规定执行的动作。 • 事件:可以是数据库的更新操作、时态事件、外部事件。 • 条件:触发的事件发生时,若规则中的条件为真,则执行规则中的动作。 • 动作:通常是一个SQL语句序列,也可以是数据库事务或外部程序。
主动数据库 • 一个主动数据库系统可表示为: ADBS=DBS + EB + EM 其中DBS代表传统数据库系统,用来存储、操作、维护和管理数据;EB代表ECA规则库,用来存储ECA规则,每条规则指明在何种事件发生时,根据给定条件,应主动执行什么动作;EM代表事件监测器,一旦检测到某事件发生就主动触发系统,按照EB中指定的规则执行相应的动作。 • ECA规则的一般形式: Rule <规则名> [(<参数1>,<参数2>……)] When <事件表达式> If <条件1> Then <动作1> …… If <条件n> Then <动作n> End Rule
触发器 • 在需要主动数据库的应用中经常用到触发器。 • 触发器--是靠事件驱动的特殊过程。 • 触发器与存储过程的区别: • 存储过程通过其他程序的调用来运行,或直接启动运行,可传递参数;而触发器的启动运行必须由一个发生的事件来激发,它是自动隐式运行的,触发器不能接收参数,也不能被调用。 • 触发器的主要用途: • 维护约束。实现复杂的完整性约束。 • 业务规则。用触发器来表示企业的业务规则。 • 监控。通过触发器间接地监控复杂物理对象的状态。
触发器 • 触发器的组成: • 触发事件 • 触发条件 • 触发器动作 • 触发器的一般模型: CREATE TRIGGER <触发器名> {BEFORE|AFTER|INSTEAD OF} <触发事件> ON <表名> [REFERENCING [OLD AS <旧元组变量>] [NEW AS <新元组变量>] ] • [OLD TABLE AS <旧表名>] ] • [NEW TABLE AS <新表名>] ] [FOR EACH {ROW|STATEMENT}] [WHEN <触发条件>] <SQL语句>
触发器 • <触发事件>: INSERT|DELETE|UPDATE[OF <列名列表>] • FOR EACH {ROW|STATEMENT}:指定触发器的粒度。 • FOR EACH ROW: 为行级触发器,当该触发器监视的表中的元组发生改变时,就激活触发器,每变更一行就触发一次。 • FOR EACH STATEMENT(默认): 为语句级触发器。在被监控表上执行INSERT、DELETE或UPDATE语句,就会激活触发器,而不管该语句的执行会改变多少元组(即使没有改变发生也会激活触发器)。该触发器就在语句执行之前或之后只激发一次。 • REFERENCING: 指向更新前或更新后的内容。 • BEFORE|AFTER|INSTEAD OF:指定触发器执行的时机。
触发器 • 在行级触发器中,REFERENCING的格式: REFERENCING [OLD AS <旧行别名>] [NEW AS <新行别名>] 触发事件 旧行别名 新行别名 insert 无 指定 update 指定 指定 delete 指定 无
触发器 • BEFORE 触发器 (前触发器) 在触发事件之前执行。不允许它们修改数据库,但可以检测WHEN子句中定义的前提条件,接受或终止触发事件。BEFORE触发器的一个典型用途是保持应用指定的数据完整性。 • 例:有关系 TS(sno,cno,semester,grade) CL(cno,semester,limit) 创建一个触发器,它监控插入到TS中的元组,以限制课程注册的人数。 CREATE TRIGGER CountCheck BEFORE INSERT ON TS REFERENCING NEW AS N FOR EACH ROW WHEN ((SELECT COUNT(sno) FROM TS WHERE TS.cno=N.cno AND TS.semester=N.semester) >=(SELECT limit FROM CL WHERE CL.cno=N.cno AND CL.semester=N.semester)) ROLLBACK
触发器 • AFTER 触发器 (后触发器):在触发事件已经改变数据库之后执行。 • 例:规定修改SC表的grade值时,修改后的值不能低于修改前的值。 CREATE TRIGGER Trig_grade AFTER UPDATE OF grade ON SC REFERENCING OLD AS oldg NEW AS newg FOR EACH ROW WHEN (oldg.grade>newg.grade) UPDATE SC SET grade=oldg.grade WHERE sno=newg.sno AND cno=newg.cno
触发器 • 例:有关系 EMP(eno,ename,esex,salary,dno) 创建一个触发器,每次工资增长之后将所有雇员新的平均工资记录到LOG表中。 CREATE TRIGGER RecordNewAverage AFTER UPDATE OF salary ON EMP FOR EACH STATEMENT INSERT INTO LOG VALUES (CURRENT_DATE, (SELECT AVG(salary) FROM EMP))
触发器 • INSTEAD OF 触发器 (替换触发器) INSTEAD OF触发器最普遍的应用是对视图的维护。视图上的更新事件可以通过触发器监控,但替换更新的是视图的基础表。 • 例:有关系 EMP(eno,ename,esex,salary,dno) DEPT(dno,dname) 有下面的视图: CREATE VIEW WorksIn(eno,dname) AS SELECT (EMP.eno,DEPT.dname) FROM EMP,DEPT WHERE EMP.dno=DEPT.dno
触发器 • 假设在视图上执行下面的操作: • DELETE FROM WorksIn • WHERE eno=’11111111’ • 该操作被转换为该视图基础表EMP和DEPT上相应的操作。但是可能会有多种转换:可以删除eno为11111111的雇员所在的部门;可以删除eno为11111111的雇员;可以将雇员元组中的dno字段置为NULL。 • 无法自动决定这三种可能性中哪种是正确的。可以设计INSTEAD OF触发器来指定合适的动作。 • 如: CREATE TRIGGER WorksInTrigi • INSTEAD OF DELETE ON WorksIn • REFERENCING OLD AS O • FOR EACH ROW • UPDATE EMP • SET dno=NULL • WHERE eno=O.eno
主动数据库 ② 主动数据库系统的功能 • 主动数据库系统应该提供传统数据库系统的所有功能,且不能因为增加了主动性功能而使数据库的性能受到明显影响。 • 主动数据库系统必须给用户和应用提供关于主动特性的说明,且说明应该成为数据库的永久性部分。 • 主动数据库系统必须能有效地实现上述中所有主动特性,且能与系统的其他部分有效地集成在一起,包括查询、事务处理、并发控制和权限管理等。 • 主动数据库系统应能够提供与传统数据库系统类似的数据库设计和调试工具。
多媒体数据库 • 多媒体数据库系统 多媒体数据库实现对格式化(数字、字符等)和非格式化(图形、图象、声音、视频等)的多媒体数据的存储、管理和查询。 主要特征: ① 应能够表示多种媒体的数据。 ② 应能够协调处理各种媒体数据。 ③ 应提供比传统数据库管理系统更强的适合非格式化数据查询的搜索功能。
数据库新技术发展特点 (3)面向新的应用领域 数据库技术被应用到特定的领域,出现了数据仓库、工程数据库、统计数据库、空间数据库等多种数据库,使数据库领域的应用范围不断扩大。 特定应用领域 数据库新技术内容 数据库 技 术 数据仓库 DSS 工程数据库 CAD/CAM/CIM 计划、统计 统计数据库 空间数据库 地理信息系统 移动计算 移动数据库 特定应用领域的数据库技术
数据仓库 • 数据仓库概念的提出 • 计算机系统中的处理: • 操作型(事务)处理(OLTP) • 分析型处理(DSS—Decision Support System) • OLTP(OnLine Transaction Process): 单一的数据资源(常以原始数据的形式存储),数据的价值仅体现在完成一个事务,数据的含义并未引起人们的重视,无法支持对数据的分析处理。
数据仓库 • OLTP应用不适应DSS应用的原因: (1)事务处理和分析处理的性能特性不同 OLTP关心的是响应时间、数据的完整性和安全性等。而DSS需要访问大量历史数据,运算时间长。 (2)数据集成问题 DSS需要集成的数据,全面而正确的数据是有效地分析和决策的首要前提,相关数据收集得越完整,得到的结果越可靠。 (3)数据动态集成问题 静态集成的缺点:如果在数据集成后数据源中数据发生了变化,这些变化将不能反映给决策者,导致决策者使用的是过时的数据。事务处理系统不具备动态集成的能力。
数据仓库 (4)历史数据问题 OLTP一般只需要当前数据,在数据库中一般也是存储短期数据。对于决策分析而言,许多分析方法必须以大量的历史数据为依托,没有历史数据的详细分析,是难以把握企业的发展趋势。DSS对数据在空间和时间的广度上都有了更高的要求,而事务处理环境难以满足这些要求。 (5)数据的综合问题 在事务处理系统中积累了大量的细节数据,一般而言,DSS并不对这些细节数据进行分析。在分析前,往往需要对细节数据进行不同程度的综合,而事务处理系统不具备这种综合能力。
数据仓库 可见,要提高分析和决策的效率和有效性,分析型处理及其数据必须与操作型处理及其数据相分离,必须把分析型数据从事务处理环境中提取出来,按照DSS处理的需要进行重新组织,建立单独的分析处理环境。 数据仓库正是为了构建这种新的分析处理环境而出现的一种数据存储和组织技术。 • 数据仓库的定义 数据仓库概念的始创人W.H.Inmon对数据仓库的定义是:数据仓库是一个面向主题的、集成的、稳定的、随时间不断变化的数据集合,它用于支持管理决策。
数据仓库 • 数据仓库的特征 (1) 面向主题 传统的操作型系统主要围绕应用和针对具体业务设计解决问题的方法和途径,组织与此相关的一段时间内的业务统计、分析工作。数据仓库则以一个企业或组织中固有的业务主题为处理的主体,是从整体、全局的角度来衡量这些主题在企业中的作用。 例:对一个保险公司,按业务处理要求,应用问题包括各种各样的保险业务的处理,以及月度、季度、年度报表等,可建立起汽车保险、人寿保险、健康保险和意外保险子系统。
数据仓库 顾客 汽车 人寿 保险单 健康 保险费 意外 索赔 应用系统中的这些数据抽象程度不高,只适合日常的事务处理,不利于分析处理,要将这些数据模式改为面向主题的数据模式:顾客、保险单、保险费、索赔等。 转化 面向主题的示例
数据仓库 (2) 集成 数据仓库的数据来自不同的数据源,要按照统一的结构、一致的格式、度量及语义,将各种数据源的数据合并到数据仓库,目的就是为了给用户提供一个统一的数据视图。 当数据进入数据仓库时,要采用某种方法来消除应用数据的不一致。这种对数据的一致性预处理称为数据清理。
数据仓库 应用A m,f 键码 Char(10) Char(10) 应用A m,f 0,1 应用B Int 应用B 男,女 应用C Char(12) 应用C 转换 转换 (A) 性别的集成 (B) 键码的集成 • 数据集成要解决的主要问题: • 源数据的抽取、归并。将分散在操作型数据库的各个子系统中的适合于分析的信息抽取出来,然后归并在相应的主题下。 • 数据的转化。将源数据中的所有矛盾之处加以统一(如:字段的同名异义、异名同义、单位不统一、字长不一致等。) • 数据的更新和装载。按相对固定的时间间隔进行更新和装载,以保证数据仓库中数据的相对稳定性。 • 数据综合和计算。进行必要的综合计算,得到数据仓库中所需要的不同粒度的综合数据库。 集成问题示例
数据仓库 插入 插入 查询 数据仓库 数据库 修改 插入 查询 抽取/载入 删除 修改 (3) 稳定且不可更新 数据仓库的数据主要提供决策分析之用,所涉及的数据操作主要是数据查询。这些数据反映的是一段时间内历史数据的内容,是不同时间点的数据库快照的统计、综合等导出数据。它们是稳定的,不能被用户随意更改。在联机应用系统中,数据可以随时地被用户更新。 数据仓库的稳定性
数据仓库 (4) 随时间变化 其含义是指时间元素(年、月、日等)明确地包含在数据中,使得随时间变化的趋向可以用于分析研究。数据仓库中数据本身并不随时间变化。 ① 数据仓库随时间不断增加新的数据,不断将当前最新的操作型数据统一集成到数据仓库中。 ② 操作型环境中,数据一般保存不超过1年,而在数据仓库中,数据通常要存放5-10年甚至更长。 ③ 操作型数据库中包含有当前的数据,是准确的,可被有效地访问和更新。而数据仓库中的数据仅仅是一系列某一时刻生成的复杂“快照”,它包含了对当前和历史数据的重新组织,被加工成面向主题的不同粒度的数据。
数据仓库 • 数据仓库的应用 • 主管信息系统(EIS):以简单的图形界面来提供访问数据仓库能力,提供易于定制的决策分析环境,为不太熟悉计算机技术的企业高层决策者使用。 • 联机分析处理(OLAP):提供灵活丰富的多维分析与查询,并对未来进行预测。适合于企业的中层领导和业务分析人员使用。 • 即席查询(Ad Hoc Query):提供多个角度的灵活查询,让用户随时获得所希望的数据。适合于业务分析人员。 • 灵活报表(Reporting):提供灵活报表的设计。 • 数据挖掘(Data Mining):通过对企业大量数据进行深层次分析以揭示隐藏的、未知的规律性并将其模型化。
工程数据库 • 工程数据库 工程数据库是一种能存储和管理各种工程设计图形和工程设计文档,并能为工程设计提供服务的数据库。它要求系统能支持复杂对象的表示和处理;可扩展的数据类型;支持复杂多样的工程数据的存储和集成管理;支持变长结构数据实体的处理;支持工程长事务和嵌套事务的并发控制和恢复等。
统计数据库 • 统计数据库 是一种用来对统计数据进行存储、统计、分析的数据库系统。 统计数据库研究的问题和技术: ① 数据模型 人们已提出了概念统计模型、统计对象描述模型、统计关系表模型、代数语义模型等。 ② 查询语言和用户接口 人们研究了基于扩展关系模型的查询语言、统计报表查询语言、友善的用户接口,如基于自然语言的统计分析请求和直观清晰的统计分析结果显示。
统计数据库 ③ 统计数据的物理组织 数据压缩(统计数据的稀疏性)、多维数据的物理组织(统计数据是多维的,如经济统计信息,由统计指标名称、统计时间、统计空间范围、统计分组特性、统计度量种类等相互独立的多种因素决定)。 ④ 时序数据 统计数据是时序数据。对时序数据的许多研究结果如时序数据操作、时序数据模型等可用到统计数据库中。 ⑤ 统计数据库的安全性 要防止某些用户在统计数据库中,利用对统计数据的合法查询导出该用户无权了解的某一个体的具体数据。
统计数据库 统计数据库只允许用户查询聚集类型信息,不允许查询单个记录信息的数据库。 在统计DB中存在着特殊的安全问题:即可能有隐蔽的信息通道,使合法的查询导出不合法的信息。 例1:有下列两个合法查询: (1)本公司共有多少女高级程序员? (2)本公司女高级程序员的工资总额是多少? 例2:有下列两个合法查询: (1)用户A和其他N个程序员的工资总额是多少? (2)用户B和其他N个程序员的工资总额是多少? • 解决的方法: (1)限定查询的记录量(查询至少涉及N个以上的记录) (2)限定查询的次数(规定任意两个查询相交的数据项不能超过M个)
空间数据库 • 空间数据库 空间数据库系统是描述、存储和处理空间数据及其属性的数据库系统。它是随着地理信息系统的开发和应用发展起来的。 空间数据库的应用: • 基于web的道路地图服务。 • 交通导航系统。 • 用于公共服务设施的分布网络信息。 • 为生态学家和规划者提供的土地使用信息等。
空间数据库 空间数据库技术研究的主要内容: ① 空间数据模型 常用的空间数据结构有栅格数据结构和矢量数据结构两种。 • 栅格数据:由二维或更高维的位图或像图组成。如:云层的卫星图像的存储。维数可以包括:云层可见度、温度、时间。 • 矢量数据:由基本几何对象构成,如:点、线段、三角形和其他二维多边形,以及圆柱体、球体、立方体和其他三维多面体。地图数据常以矢量形式表示。河流和道路可以表示成多条线段的并;洲和国家可以表示成多边形等。
空间数据库 ② 空间数据查询 • 查询类型:位置查询、空间关系查询、属性查询等。如:临近查询(找出位于特定位置附近的对象)、最近邻居查询(找出离特定点最近的对象)、区域查询(寻求部分或全部指定区域内的对象)、空间与非空间请求查询(如:找出提供素食的、一顿饭收费少于60元的最近的餐馆)等。 • 查询方式:面-面查询(如查询与某一面状物相邻的多边形)、线-线查询(如查询某一河流的所有支流)、点-点查询(如查询两点之间的距离)。 • 查询语言:使用图形化的查询语言,能实现空间关系的运算。 ③ 空间数据的索引 • K-d树 • 四叉树 • R树 ④ 空间数据库管理系统 主要功能:提供对空间数据和空间关系的定义和描述;提供空间数据查询语言,实现对空间数据的高效查询和操作;提供对空间数据的存储和组织;提供对空间数据的直观显示等。
第三代数据库系统的基本特征 2. 第三代数据库系统的基本特征 (1)支持数据、对象和知识的管理 第三代数据库系统必须支持OO数据模型。 (2)继承第二代DBS的技术 保持第二代数据库系统的非过程化数据存储方式和数据独立性。 (3)是开放式系统 支持数据库语言标准;在网络上支持标准网络协议;系统具有良好的可移植性、可连接性、可扩展性和可互操作性。
数据库技术新发展 应用领域 其他计算机技术 数据模型 科学实验 - 计划统计 - GIS - Cax - 商业管理 - 分布 并行 AI OO 多媒体 网络 | | | | | | 层次、网状 关系 并行 DB 语义、复杂 分布DB OO、OR