还剩25页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
•空值,表示尚未给该学生分配专业;•非空值,这时该值必须是“专业〃关系中某个元组的专业号值,表示该学生不可能分配到一个不存在的专业中即被参照关系“专业〃中一定存在一个元组,它的主码值等于该参照关系“学生〃中的外码值对于例2,按照参照完整性规则,学号和课程号属性也可以取两类值空值或目标关系中已经存在的值但由于学号和课程号是“选修〃关系中的主属性,按照实体完整性规则,它们均不能取空值所以“选修〃关系中的学号和课程号属性实际上只能取相应被参照关系中已经存在的主码值参照完整性规则中,R与S可以是同一个关系例如,对于例3,按照参照完整性规则,班长属性值可以取两类值•空值,表示该学生所在班级尚未选出班长;•非空值,这时该值必须是本关系中某个元组的学号值
③用户定义的完整性(user-defined integrity)实体完整性和参照完整性适用于任何关系数据库系统用户定义的完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求关系模型应提供定义和检验这类完整性的用L制,以便用统一的系统方法来处理它们而不是由应用程序承当这一功能
2.结构化查询语言(SQL)结构化查询语言(structured querylanguage,简称SQL)的理论是1974年由Boyce和Chamberlin提出的,并于1975年至1979年在IBM公司的System R上实现由于它具有功能丰富、使用方式灵活、语言简洁易学等优点,在计算机工业界和用户中倍受青睐,很快被广泛推广后来,美国国家标准局(ANSI)和国际标准化组织(ISO)先后批准SQL作为关系数据库语言的美国及国际标准至此,SQL就成为关系数据库的标准语言,关系数据库系统一般都支持标准SQL语句所以,尽管当今不同品牌的关系数据库有这样或那样的差异,但是人们却都可以通过标准SQL语句对数据库进行操作,因此,大大减轻了用户的负担⑴SQL语言的特点SQL语言之所以能够被用户和业界所接受并成为国际标准,是因为它是一个综合的、通用的、功能极强同时又简洁易学的语言SQL语言充分表达了关系数据语言的特点和优点其重要特点包括;
①SQL是一种一体化的语言,它包括了数据定义、数据查询、数据操纵和数据控制等功能,可以完成数据库活动中的全部工作以前的非关系模型(层次模型、网状模型)的数据语言一般都分为存储模式描述语言、概念模式描述语言、外部模式描述语言和数据操纵语言等,这种模型的数据语言,一是内容多;二是掌握和使用起来都不像SQL那样简单和实用另外,在关系模型中,实体和实体间的联系均用关系来表示,这种数据结构的单一性带来了数据操作符的统一性,查找、插入、删除、更新等每一种操作都只需一种操作方式,从而防止了非关系系统由于信息表示方式的多样性带来的操作复杂性
②SQL语言是一种高度非过程化的语言,用户只需提出“做什么〃,而不必指明“怎么做〃,SQL语言就可以将要求交给系统,由系统自动完成全部工作
③SQL语言用一种语法结构提供两种使用方式直接以命令方式交互使用,也可以嵌入到程序设计语言中(例如C、Cobol、Fortran.PL/SQL)以程序方式使用这一种做法为用户提供了极大的灵活性与方便性现在有很多数据库应用开发工具都将SQL语言直接溶到自身的语言中,如Delphi、Powerbuilder等这种使用方式为用户提供了更多的选择余地
④SQL语言的命令简洁,易学易用虽然SQL语言功能极强,但由于设计巧妙,所以只用了为数不多的几条命令就完成了所有的核心功能另外,它的语法也很简单,很接近自然语言(英语),因此,容易学习和掌握
⑤SQL语言支持数据库的三层模式结构;与概念模式的概念文件对应的是根本表(Table),与存储模式对应的是存储文件以及与外部模式对应的是视图和局部根本表用户看到的可以是根本表或视图,根本表和视图都是关系,用户可以在其上进行查询操作而存储文件对用户来说是透明的
(2)SQL语言的功能SQL语言是结构化的查询语言是一种综合的、通用的、功能极强的关系数据库语言它的功能包括创立数据库对象、操纵对象、往数据库表中填充数据、在数据表中更新已存在的数据、删除数据、执行数据库查询、控制数据库访问权限和数据库总体管理主要分以下几类
①数据定义语言——DDL数据定义语言(DDL)是SQL的一局部,是SQL中用来生成、修改、删除关系数据库的表、窗口、模式、目录等根本要素的语言成分它允许数据库用户创立或重新构造数据库对象,如创立或删除一个数据库表DDL所包含的要点是•标识所有的表•定义每一个表中所含的列•给每一个表一个保证唯一的主关键字•确认在数据库每一个表中至少有一个列是与其他表中的列相同这些共享的列提供了逻辑上的连接,允许一个表中的信息与另一表中的相应信息相关联•将每一个表都用第三范式(3NF)或更好的方法来检验,以确保防止插入、删除、更新非法数据定义语言的功能包括数据库的定义、根本表的定义、视图的定义、存储过程的定义、规则的定义和索引的定义等局部,这些命令包括•CREATE DATABASE——定义数据库•ALTER DATABASE——修改数据库•DROP DATABASE——删除数据库•CREATE TABALE——定义根本表•ALTER TABAL——修改根本表•DROP TABAL——删除根本表•CREATE VIEW——定义视图•DROP VIEW——删除视图•CREATE INDEX——定义存储模式中的索引•DROP INDEX——删除存储模式中的索引•CREATE PROCEDURE——定义存储过程•DROP PROCEDURE——删除存储过程•CREATE RULE——定义数据库用户角色•DROP RULE——删除数据库用户角色
②数据操纵语言一一DML数据操纵语言(DML)是SQL的一局部,在SQL中用来生成、修改、删除关系数据库结构,但它并不涉及数据DML用于在关系型数据库对象中操纵数据,主要包括数据的插入、更新和删除三方面的内容主要的DML命令包括•INSERT——数据的插入•UPDATE——数据的更新•DELETE——数据的删除
③数据查询语言一一DQL查询是对数据库中的信息的寻找和定位数据查询语言(DQL)尽管值包含了一条命令,但它是数据库的核心操作,是关系型数据库用户使用SQL的焦点SQL语言提供了SELECT语句进行数据库的查询,它包含有许多项选择项合子句,具有灵活的使用方法和丰富的功能不管是简单的还是复杂的查询,也不管是模糊的还是精确的查询,都是很容易创立的
④事务控制命令事务控制命令允许用户管理数据库的事务以防止数据库的表或元素不被破坏主要的命令包括•COMMIT——保存数据库中由事务引起的改变;•ROLLBACK——撤销没保存到数据库中的事务的事务控制命令;•GRANT——授权•REVOKE——收回授权•SAVEPOINT——创立彝族事务中的撤销点;•SET TRANSACTION——给事务命名
3.关系数据的标准化理论为了使数据库设计的方法走向完备,人们提出了标准化理论标准化可以使关系的结构简化,更加有规律,存储尽量减少冗余,使数据库设计得更为合理标准化的目的可以概括为以下几点•保证库中每一个分量都不可再分;•消除冗余存储,简化检索操作;•消除插入异常和删除异常
(1)数据依赖标准化问题考虑的根本出发点在于一个关系的数据项之间存在数据依赖问题它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的表达关系中数据项之间存在两种依赖关系函数依赖和多值依赖函数依赖设R(U)是属性集U上的关系模式X,Y是U的子集若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记为1f兀函数依赖普遍存在于现实生活中,如对一个学生的描述,描述的属性有学号、姓名等,在给定学号的情况下,就可以唯一地确定其姓名,不能出现一个学号对应两个以上姓名的情况,就称“姓名〃函数依赖“学号〃函数依赖描述的是属性之间的单值对应关系,即给定一个关键字,就能确定关系模式中的所有属性,且属性值是唯一的在关系模式中函数依赖可以描述一对一和多对一的关系,但无法描述一对多和多对多的关系多值依赖若结定X,有一组属性值呜之对应,则称移值决定域移值依赖于X记为乃一一兀如学生选课,一个学生可以选多门课程,则给定一个学号,就可以找出多门课程与之对应,就称“课程〃多值依赖于“学号〃在设计数据库时,首先应该根据一个关系所具有的属性间依赖情况来判定它是否具有某些不适宜的性质然后将具有不适宜性质的关系转换为更适宜的形式⑵范式范式是衡量数据库标准的层次或深度,数据库标准化层次由范式来决定根据关系模式满足的不同性质和标准化的程度,把关系模式分为第一范式、第二范式、第三范式、BC范式和第四范式等
①第一范式(1NF)如果关系R的所有属性都是不可再分的数据项,则称该关系属于第一范式,记作ReiNF在任何一个关系数据库系统中,第一范式是对关系模式的一个起码的要求不满足第一范式的数据库模式不能成为关系数据库
②第二范式(2NF)若关系RW1NF,且它的每一非主属性都完全依赖于主键,则称R属于第二范式,记作Re2NF
③第三范式(3NF)若关系R2NF,且它的每一非主属性都不传递依赖于任何一个键,则称R属于第三范式,记作Re3NF
④BC范式(BCNF)通常认为BCNF是修正的第三范式,它比3NF又进了一步在关系R中,若每一个决定因素都包含键,则称R属于BC范式,记作R eBCNF
⑤第四范式(1NF)若关系R61NF,如果不是才的子集)是非平凡的多值依赖,且才含有键,则称R属于第四范式,记作Re4NF范式之间的关系如图7—8所示:
7.
2.3面向对象数据库面向对象技术经过20几年的开展,现己为众多的软件开发者和用户所接受,许多软件都使用了面向对象的技术,其中包括程序设计语言、用户界面、数据库和操作系统面向对象数据库就是面向对象思想和数据库技术相结合的产物在面向对象技术和数据库技术相结合的过程中,根本上是沿着两种途径开展的
①建立在纯粹的面向对象数据库管理系统OODBMS上这种途径往往是以一种面向对象语言为基础来增加数据库的功能,主要是支持持久对象和实现数据共享它利用类来描述复杂对象,利用类中封装的方法来模拟对象的复杂行为,利用继承性来实现对象的结构和方法的重用面向对象数据库系统在处理多媒体等数据类型时可以做到游刃有余,对一些特定应用领域例如CAD等,也能较好地满足应用需求,而且在应用系统开发速度和维护等方面也有着极大的优越性但是,这种纯粹的面向对象数据库并不支持SQL语言,在通用性方面失去了优势,因而其应用领域受到了很大的局限
②对传统的关系数据库加以扩展在传统的关系数据库中增加面向对象的特性,把面向对象技术与关系数据库结合建立的对象关系数据库管理系统ORDBMS这种系统即支持已经被广泛使用的SQL,具有良好的通用性,又具有面向对象的特性,支持复杂对象和复杂对象的复杂行为,是对象技术和传统关系数据库技术的最正确融合对象技术和关系技术的优点,促使全球数据库厂商竞相研究开发宛心5如何在现有的关系型数据库产品中参加对象技术,即开发面向对象的关系型数据库成为数据库软件厂商竞争的焦点
1.面向对象的技术基础面向对象方法的思想源于面向对象的程序设计面向对象的分析方法是从现实世界中抽象出对象及其发生在对象上的事件,从而建立起数据对象和处理操作之间的联系⑴面向对象技术的根本概念
①对象是一个封闭体,它是由一组数据和施加于这些数据上的一组操作构成,表示如下•标识即对象的名称,用来在问题域中区分其他对象•数据;用来描述对象属性的存储或数据结构,它说明了对象的一个状态•操作即对象的行为,分为两类一类是对象自身承受的操作,即操作结果修改了自身原有属性状态;另一类是施加于其他对象的操作,即将产生他输出结果作为消息发送的操作•接口主要指对外借口,是指对象受理外部消息所指定的操作的名称集合对象的特征如下•自主性是指对象具有处理能力给定一个输入,经过消息接收、操作处理、交换对象状态,最后产生输出,是对象完成消息所指定任务的处理过程对象自身状态的变化取决于自身的操作,不同的对象对于同样的消息可以做出不同的处理;因而对象是自主的•封闭性是指对象具有信息隐蔽能力即外界不能直接修改对象的状态,只能通过向它发送消息对它产生影响对象隐蔽了其数据及操作的具体实现,对外可见的只是对象提供的消息接口•交互性;是指对象之间具有通信的能力对象既可以接受来自外部的消息并加以处理,也可以向其他对象发送消息请其处理相应工作对象间的交互推动了对象的状态转换,最终使对象构成的系统不断演化和前进•被动性是指对象的处理工作都是由外部对象发送消息来启动的一般情况下,对象不能自发启动操作•动态性对象的动态性有两个含义,一是对象可以动态创立和取消,对象并非一开始就存在的,程序员可以在描述系统运行过程中创立对象;二是对象的状态是不断变化的,随着系统的运行和开展,许多对象的状态与初始状态都具有很大变化
②类和实例具有相同结构和相同行为的对象被组合在同一类中,这是一种抽象类型的表示,称为类,它将该组对象所具有的共同特性集中起来,用于说明该组对象的能力和性质任何单个对象都是某个类的实例,这些实例具有由它们的类所定义的共同特征一个类的所有实例能够响应的消息模式相同,并且采用同样的方法完成消息所要求的操作一个类的所有实例都具有相同的数据结构,井采用相同的名字来引用它
③消息面向对象的世界事通过对象与对象键彼此的相互合作来推动的,即对象的存取或使用都是通过发送消息来实现的向某个对象发送消息,就是要求其执行它的一个操作一个消息只说明消息接受者应该执行哪个操作,而不说明怎样去执行这个操作,操作的具体执行由消息接受者确定发送消息是建立在“抽象类型〃概念的基础上的这些对象类型的实现对用户程序是隐蔽的发送消息时只需确切指明接受方(对象),而并不关注它的类型同一个消息可能被不同类型的接受方(对象)做出不同的解释消息可按功能和使用权限两种标准进行分类a.按消息的功能分类•询问对象的状态在程序中可以是取某个对象中某一私有单元的值等•请求改变对象的状态在程序中可以发送消息让一个数组对象设置其中一个单元的值等•请求改变系统的状态;程序中,某些消息可以改变系统中的全局对象(数据)等询问对象状态的消息一般不带参数,但要求有明确的答复,即返回对象请求改变对象或系统状态的消息请求对象接受有关的参数,但它除了给出一般的成功与否的标志外,通常不产生任何数据作为答复b.按消息的使用权限分类•私有消息仅由它自己本身发送;•公有消息可由其他对象向它发送
④继承继承可以用来定义(在数据和程序上)彼此十分相似的那些对象的类继承应当被表示为一个集合和子集和间的包容关系子类对象可以拥有超类对象的数据和操作,从而形成一种代码共享的手段继承可能是简单的或多重的,称为单重继承和多重继承在多重继承的情况下,子类继承了若干个类,这样,多个子类就包括了所有这些超类变量和方法的集合继承的内容可以是局部的,也可以是全部的,因此可以按继承的内容将继承分为全部继承和局部继承⑵面向对象技术的特征从本质上讲,“面向对象〃是一种认识客观世界的认知方法学,这种认知方法将客观世界看成是由许许多多不同对象构成的,每一个对象都有自己的运动规律和内部状态,不同对象间的相互作用和通讯构成了完整的客观世界,因而,从人们思维模型和认识事物的角度,面向对象很自然地与客观世界的固有特征相对应面向对家亦是一种解决问题的思维方法,它将观察焦点放在构成客观世界的成分一一对象上,将对象作为需求分析和软件设计的核心或主体,把问题域中有意义的实体作为对象,将对象间有意义的相互作用作为通讯,即把整个问题域抽象成为相互通讯着的一组对象集合在此基础上引用科学方法论中的分类思想,将相似或相近的一组对象聚合为类,采用各种手段将相似的类组织起来,实现问题空间到解空间的映射由于这种方法描述的现实世界模型更符合人们认识世界的思维方法,因此用它开发出的软件更易于理解,易于维护面向对象的方法有以下优点
①模块性对象是一个功能和数据独立的单元,相互之间只能通过对象认可的途径进行通信互相没有预料不到的影响,也可以较为自由地为各个不同的软件系统所重用;
②封装功能;为信息隐蔽提供了具体的实现手段,用户不必清楚对象的内部细节,只要了解其功能描述就可以使用;
③代码共享继承性提供了一种代码共享的手段,可以防止重复的代码设计,使得面向对象的方法确实有效;
④灵活性;对象的功能执行是在接收到消息时确定的,使得对象可以根据自身的特点进行功能实现,从而提高了程序设计的灵活性;
⑤易维护性;对象实现了抽象和封装,使其中可能出现的错误限制在身,不会向外传播,易于检错和修改;
⑥增量型设计面向对象系统可以通过继承机制不断扩充功能,而不影响原有软件的运行;
⑦局部存储与分布处理;每个对象都通过数据抽象和数据隐蔽将其内和状态置于自身独立的存储结构中对象的处理也是自治的,由对象构成的整个系统的运行和处理是分布式的
2.面向对象数据库特征面向对象技术在数据库中的应用表达在数据库管理系统和应用开发工具两个方面,即面向对象数据库和面向对象的数据库应用开发工具前者是使数据库管理系统能之迟面向对象的数据模型,而英勇的需求推动了面向对象数据库的开展面向对象数据库目前还没有权威性的统一标准20世纪80年代末,由Atkinson等人根据自身的研究经验,发表了面向对象数据库系统的宣言,全面、系统地对面向对象数据库系统中的各种概念、特征进行了讨论,该宣言描述了作为一个合格的面向对象数据库系统所应具有的主要性质和特征这些特征可以分成以下三类⑴必备特性是面向对象数据库系统所必须满足的特征,它们是复杂对象、对象表示、封装性、类型或类、继承性及迟后绑定重载、可扩充性、计算完备性、持久性、辅存管理、并发性、恢复和即席查询功能一个面向对象的数据库系统,首先它必须是一个数据库管理系统,同时还必须是一个面向对象的系统,在一个可能的范围内,要与当前流行的面向对象的程序设计语言一致⑵可选特性实质为了使系统更加完善可以添加的功能它们是多重继承性、类型检查和推理、分布、设计事务处理和版本⑶开放的可选特性是设计人员可以选择的特性它们是程序设计范型、表示系统、类型系统及单一性
3.0DMG建立面向对象数据库标准极为重要,因为没有标准将会制约0DBMS的广泛应用由Rick CattlelKTom Atwood等13人组成的对象数据管理组0DMG起草了“The ObjectDatabase StandardODMG—93〃其根本立场和观点是它不是单纯提供一种用于数据操纵的高层语言如SQL,而是要透明地把数据库功能集成到应用程序语言中,这种透明性使得用户无需去掌握另一种DML数据操纵语言,无需在数据库和编程语言两种表示之间显式地拷贝和转换数据,可通过应用中数据的缓冲获得更好的性能ODBMS还包括了关系系统中的查询语言能力0DMG—93标准主要包括对象模型、对象定义语言、查询语言、C++、SMALLTALK绑定等内容⑴对象模型对象模型的根本元素是对象,对象能被划分成型Type,一个型的所有对象表现出公共的行为和共同的状态范围对象的行为由一组操作来定义,这些操作能在相应对象上执行,对象的状态由一组性质所取的值来定义,这些性质可以是对象本身的属性,也可以是该对象和其他一个或多个对象之间的关系⑵OQL对象数据库标准0DMG—93还定义了对象查询语言OQL,它支持前面介绍的0DMG的数据模型,其对于对象数据库的重要性就相当于关系数据库中的SQL,对象数据库厂商都声称以后的版本将支持此标准OQL和SQL风格一样,结构简单,利用它可以方便地访问对象但与SQL也有不同之处,首先,它要能处理复杂对象,另外,在设计时,它没有过分地偏重SET结构和SELECT—FROM—WHRE形式OQL的设计具有以下根本特点
①OQL是一种对对象数据库进行说明性访问的查询语言,不是一种计算完备型语言
②OQL是建立在ODMG的对象模型上,其形式语义易于定义
③可用于交互式即席查询由于OQL是说明性的,所以不需要用户去进行完整编程、程序编译、连接及调试,其语法简单,易于学习、使用和掌握
④可以通过嵌入使用OQL来简化编程OQL语句提供高层操作符,如对象排序、分组、聚集,或进行统计,而不必编写大量的C++代码如果把OQL嵌入到C++语言中,由于其表达能力强,所以一句OQL可以表达一段C++程序,而且OQL是基于ODMG对象模型,使得C++和数据库间的“阻抗失配〃问题得到较好解决
⑤OQL不提供显示的对象修改操作符,但可用定义在对象上的操作来实现该功能
⑥OQL是说明性的查询语言,系统可以自动优化处理;系统决定查询策略,所以改变物理的数据结构、索引和聚簇策略时,可以不影响查询语句本身,使系统到达某种程度的逻辑和物理独立性作为一种独立的语言,OQL允许用户通过命名对象即如数据库,并且由于对象模型中允许对象引用和对象嵌套,所以,用户可以从命名对象更具对象引用和嵌套关系导航到所需对象,进入对象内部对象名可以使任何一个CDMG模型中的对象,如原子、结构、聚合或文字等返回结果可以是文字(包括结构的和简单的),也可以作为对象处理
4..对象关系数据库对象关系数据库系统兼有关系数据库和面向对象的数据库两方面的特征即它除了具有原来关系数据库的种种特点外,还应该满足以下特征⑴允许用户扩充根本数据类型,即允许用户根据应用需求自己定义数据类型、函数和操作符,而且一经定义,这些新的数据类型、函数和操作符将存放在数据库管理系统核心中,可供所有用户公用⑵能够在SQL中支持复杂对象,即由多种根本类型或用户定义的类型构成的对象⑶能够支持子类对超类的各种特性的继承,支持数据继承和函数继承,支持多重继承,支持函数重载
(4)能够提供功能强大的通用规则系统,而且规则系统与其他的对象-关系能力是集成为一体的,例如,规则中的事件和动作可以是任意的SQL语句,可以使用用户自定义的函数,规则能够被继承等据有关资料显示,当前全球关系数据库的市场规模大约是每年80亿美元,而纯粹的面向对象数据库的市场只有它的百分之一,将来的市场份额也不容乐观现在尽管对象关系数据库产品的市场份额不大,但已呈现出强劲的增长趋势据预测,10年以后,对象关系型数据库市场规模可能是关系数据库的L5倍,数据库市场将由关系型系统转向对象关系系统现在几乎所有的关系型数据库厂商都已意识到了这一点目前许多著名的关系数据库系统的最新版本都是对象关系型数据库系统如IBM公司的DB2,Informix UniversalServer产品、Oracle公司的Oracle8产品等
7.
2.4数据库系统的建设数据库系统是企业整个管理信息系统的核心和基础,它的任务就是把系统中大量的数据按一定的模型组织起来,以便及时、准确地提供给用户一个管理信息系统的各局部是否能紧密地结合在一起以及如何结合,关键在数据库因此只有对数据库进行合理的逻辑设计和有效的物理设计才能开发出完善而高效的管理信息系统数据库系统是整个管理信息系统建设中重要的组成局部目前设计数据库系统主要采用的是以逻辑数据库设计和物理数据库设计为核心的标准设计方法其中逻辑数据库设计是根据用户要求和特定数据库管理系统的具体特点,以数据库设计理论为依据,设计数据库的全局逻辑结构和每个用户的局部逻辑结构物理数据库设计是在逻辑结构确定之后,设计数据库的存储结构及其他实现细节数据库设计的过程如图7—9所示
1.需求分析获得用户对所要建立数据库的信息要求和处理要求的描述
2.・概念设计通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型
3.逻辑设计将概念结构转换为某DBMS所支持的数据模型并对其进行优化
4.物理设计为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)
5.数据库实施和运行建立实际数据库结构,装入数据,完成编码,进行测试,之后就可投入运行
6.数据库的使用和维护不断完善系统性能和改良系统功能,进行数据库的再组织和重构造数据仓库
7.3随着市场竞争的加剧和信息社会需求的开展,从大量数据中提取(检索、查询等)制定市场策略的信息就显得越来越重要了这种需求既要求联机效劳,又涉及大量用于决策的数据,而传统的数据库系统已无法满足这种需求其具体表达在三个方面⑴历史数据量很大⑵辅助决策信息涉及许多部门的数据,而不同系统的数据难以集成⑶由于访问数据的能力缺乏,所以它对海量数据的访问性能明显下降随着C/S技术的成熟和并行数据库的开展,信息处理技术的开展趋势是从大量的事务型数据库中抽取数据,并将其清理、转换为新的存储格式,即为决策目标,而把数据聚合在一种特殊的格式中随着此过程的开展和完善,这种支持决策的、特殊的数据存储即被称为数据仓库(Data Warehouse,DW)o
7.
3.1数据仓库的概念数据仓库并不是一个新的平台,它仍然建立在数据库管理系统基础上,只是一个新的概念从用户的角度来看,数据仓库是一些数据、过程、工具和设施,它能够管理完备的、及时的、准确的和可理解的业务信息,并把这种信息提交给授权的个人,使他们有效地做出决定
1.数据仓库的定义数据仓库之父W.H.Inmon给数据仓库下的定义是数据仓库是支持管理决策过程的、面向主题的、集成的、随时间变化的、但信息本身相对稳定的数据集合其中,”主题〃是指用户使用数据仓库辅助决策时所关心的重点问题,每一个主题对应一个客观分析领域,如销售、本钱、利润的情况等那么,所谓“面向主题〃就是指数据仓库中的信息是按主题组织的,按主题来提供信息“集成的〃是指数据仓库中的数据不是业务处理系统数据的简单拼凑与汇总,而是经过系统地加工整理,是相互一致的、具有代表性的数据所谓“随时间变化〃,是指数据仓库中存储的是一个时间段的数据,而不仅仅是某一个时的数据,所以主要用于进行时间趋势分析一般数据仓库内的数据时限为5年至10年,数据量也比较大,一般为10GB左右“信息本身相对稳定〃,是指数据一旦进入数据仓库,一般情况下将被长期保存,变更很少从数据仓库的数据来源及实施环境来看,它离不开数据库,数据仓库技术与数据库技术有紧密联系,二者能相互连通,相互支持,但又有着重要差异主要是数据仓库侧重于决策分析,而数据库则侧重于操作和管理数据仓库作为决策支持系统DSS的一种有效、可行和体系化解决方案,包括了以下三个方面的内容⑴数据仓库技术用于数据的存储和组织2联机分析技术On-Line AnalyticalProcessing,OLAP集中于数据的分析;⑶数据挖掘技术Data Mining,DM致力于知识的自动发现
2.数据仓库的结构⑴数据仓库的逻辑结构和物理结构数据仓库是存储数据的一种组织形式,它从传统数据库中获得原始数据,先按辅助决策的主题要求形成当前根本数据层,再按综合决策的要求形成综合数据层又可分为轻度综合层和高度综合层随着时间的推移,由时间控制机制将当前根本数据层转为历史数据层可见数据仓库中的逻辑结构数据由3层到4层数据组成,它们均由元数据MetaData组织而成数据仓库中数据的物理存储形式有多维数据库组织形式空间超立方体形式和基于关系数据库组织形式由关系型事实表和维表组成⑵数据仓库系统数据仓库系统DWS由数据仓库、仓库管理和分析工具三局部组成
①源数据数据仓库的数据来源于多个数据源,包括企业内部数据、市场调查报告及各种文档之类的外部数据
②仓库管理在确定数据仓库信息需求后,首先进行数据建模,然后确定从源数据到数据仓库的数据抽取、清理和转换过程,最后划分维数及确定数据仓库的物理存储结构元数据是数据仓库的核心,它用于存储数据模型和定义数据结构、转换规划、仓库结构、控制信息等仓库管理包括对数据的平安、归档、备份、维护、恢复等工作,这些工作需要利用数据库管理系统DBMS的功能
③分析工具用于完成实际决策问题所需的各种查询检索工具、多维数据的OLAP分析工具、数据开采的DM工具等,以实现决策支持系统的各种要求⑶数据仓库应用的C/S结构形式数据仓库应用是一个典型的C/S结构其客户端的工作包括客户交互、格式化查询及结果和报表生成等效劳器端完成各种辅助决策的SQL查询、复杂的计算和各类综合功能等现在,一种越来越普遍的形式是三层结构,即在客户与效劳器之间增加一个多维数据分析效劳器OLAP效劳器能加强和标准决策支持的效劳工作,集中和简化原客户端和DW效劳器的局部工作,降低系统数据传输量,因此工作效率更高
7.
3.2数据仓库的关键技术
1.数据的抽取数据的抽取是数据进入数据仓库的人口由于数据仓库是一个独立的数据环境,所以它需要通过抽取过程将数据从联机事务处理系统、外部数据源、脱机的数据存储介质中导人数据仓库数据抽取在技术上主要涉及互连、复制、转换、调度和监控等几个方面数据仓库的数据并不要求与联机事务处理系统保持实时的同步,因此数据抽取可以定时进行,但多个抽取操作的时间、相互的顺序、成败对数据仓库中信息的有效性却是至关重要的在技术开展上,数据抽取所涉及的单个技术环节都已相对成熟,其中有些是躲不开编程的,但整体的集成度还很不够目前市面上所提供的大多是数据抽取工具这些工具通过用户选定源数据和目标数据的对应关系,会自动生成数据抽取的代码但抽取工具支持的数据种类是有限的;同时数据抽取过程涉及到数据的转换,它是一个与实际应用密切相关的局部,其复杂性使得不可嵌入用户编程的抽取工具往往不能满足要求因此,在实际的数据仓库实施过程中往往不一定要使用抽取工具整个抽取过程能否因工具的使用而纳入有效的管理、调度和维护则更为重要
2.数据存储和管理数据仓库的真正关键是数据的存储和管理数据仓库的组织管理方式决定了它有别于传统数据库的特性,同时也决定了其对外部数据的表现形式要决定采用什么产品和技术来建立数据仓库核心,则需要从以下几个方面进行分析⑴对大量数据的存储和管理数据仓库中所涉及的数据量比传统事务处理大得多,且随时间的推移而累积从现有技术和产品来看,只有关系数据库系统能够担当此任关系数据库经过近30年的开展,在数据存储和管理方面已经非常成熟,非其他数据管理系统可比目前不少关系数据库系统已支持数据分散技术,即能够将一个大的数据库表分散在多个物理存储设备中,进一步增强了系统管理大数据量的扩展能力采用关系数据库管理数百个GB甚至到TB的数据已是一件平常的事情一些厂商还专门考虑大数据量的系统备份问题,好在数据仓库对联机备份的要求并不高⑵并行处理在传统联机事务处理应用中,用户访问系统的特点是短小而密集;对于一个多处理机系统来说,能够将用户的请求进行均衡分担是关键,这便是并发操作而在数据仓库系统中,用户访问系统的特点是庞大而稀疏,每一个查询和统计都很复杂,但访问的频率并不是很高此时系统需要有能力将所有的处理机调动起来为这一个复杂的查询请求效劳,将该请求并行处理因此,并行处理技术在数据仓库中比以往更加重要目前,关系数据库系统在并行处理方面已能做到对查询语句的分解并行、基于数据分散的并行以及支持跨平台多处理机的群集环境和MPP环境,能够支持多达上百个处理机的硬件系统并保持性能的扩展能力⑶决策支持查询的优化这个问题主要是针对关系数据库而言,因为其他数据管理环境连根本的通用查询能力还不完善在技术上,针对决策支持的优化涉及数据库系统的索引机制、查询优化器、连接策略、数据排序和采样等诸多局部普通关系数据库采用B树类的索引,对干性别、年龄、地区等具有大量重复值的字段几乎没有效果而扩充的关系数据库则引入了位图索引的机制,以二进制位表示字段的状态,将查询过程变为筛选过程,单个计算机的根本操作便可筛选多条记录由于数据仓库中各数据表的数据量往往极不均匀,普通查询优化器所得出的最正确查询路径可能不是最优的,因此,面向决策支持的关系数据库在查询优化器上也做了改良,同时根据索引的使用特性增加了多重索引扫描的能力以关系数据库建立的数据仓库在应用时会遇到大量的表间连接操作,而连接操作对于关系数据库来说是一件耗时的事情扩充的关系库中对连接操作可以做预先的定义,我们称之为连接索引,使得数据库在执行查询时可直接获取数据而不必实施具体的连接操作数据仓库的查询常常只需要数据库中的局部记录,如最大的前50家客户等等普遍关系数据库没有提供这样的查询能力,因此只好将整个表的记录进行排序,从而消耗了大量的时间决策支持的关系数据库在此做了改良,提供了这一功能此外,数据仓库的查询并不需要像事务处理系统那样精确,但在大容量数据环境中需要有足够短的系统响应时间因此,一些数据库系统增加了采样数据的查询能力,在精确度允许的范围内,可大幅度提高系统的查询效率总之,将普通关系数据库改造成适合担当数据仓库的效劳器有许多工作可以做,它已成为关系数据库技术的一个重要研究课题和开展方向可见,对于决策支持的扩充是传统关系数据库进入数据仓库市场的重要技术措施
(4)支持多维分析的查询模式用户在使用数据仓库时的访问方式与传统关系数据库有很大的不同对于数据仓库的访问往往不是简单的表和记录的查询,而是基于用户业务的分析模式,即联机分析它的特点是将数据想象成多维的立方体,用户的查询便相当于在其中的局部维(棱)上施加条件,对立方体进行切片、分割,得到的结果则是数值的矩阵或向量,并将其制成图表或输入数据统计的算法关系数据库本身没有提供这种多维分析的查询功能,而且在数据仓库开展的早期,人们发现采用关系数据库去实现这种多维查询模式非常低效、查询处理的过程也难以自动化为此,人们提出了多维数据库的概念多维数据库是一种以多维数据存储形式来组织数据的数据管理系统,它不是关系型数据库,在使用时需要将数据从关系数据库中转载到多维数据库中方可访问采用多维数据库实现的联机分析应用我们称之为M0LAP多维数据库在针对小型的多维分析应用有较好的效果,但它缺少关系数据库所拥有的并行处理及大规模数据管理扩展性,因此难以承当大型数据仓库应用而关系数据库若采用“星型模式〃来组织数据就能很好地解决多维分析的问题“星型模式〃不过是数据库设计中数据表之间的一种关联形式,它的巧妙之处在于能够找到一个固定的算法,将用户的多维查询请求转换成针对该数据模式的标准SQL语句,而且该语句是最优化的采用关系数据库实现的联机分析应用称为R0LAP目前,大多数厂商提供的数据仓库解决方案都采用R0LAP
3.数据的表现数据表现是数据仓库的门面它们主要集中在联机分析处理和数据挖掘方面⑴联机分析处理技术联机分析处理是针对特定问题的联机数据访问和分析,通过对信息进行快速、稳定、一致和交互式的存取,对数据进行多层次、多阶段的分析处理,以获得高度归纳的分析结果联机分析处理是一种自上而下、不断深文件方式管理数据是数据管理的一大进步,即使是数据库方式也是在文件系统基础上开展起来的这一阶段的特点如下⑴数据可长期保存在磁盘上⑵数据的物理结构与逻辑结构有了区别,两者之间由文件管理系统进行转换,因而程序与数据之间有物理上的独立性,即数据在存储上的改变不一定会影响到程序,这可使程序员不必过多地考虑数据存放地址,而把精力放在算法上⑶文件系统提供了数据存取方法,但当数据的物理结构改变时,仍需修改程序
(4)数据不再属于某个特定程序,在一定程度上可以共享上述特点可用图7—1表示然而,文件方式管理数据还是有很多缺陷的,主要表现在以下几个方面
1.文件是面向特定用途设计的这意味着有一个应用,就有一个文件相对应而程序是基于文件编制的,导致程序仍然与文件相互依存因为文件有所变动,程序就得相应修改,而文件离开了使用它的程序便全部失去存在的价值
2.数据冗余大因为文件之间缺乏联系,有可能造成同样数据在不同文件中重复存储
3.数据可能发生矛盾因为同一数据出现在不同文件中,稍有不慎就可能造成同一数据在不同文件中不一样,这将导致数据的冗余
4.数据联系弱不同文件缺乏联系就不能反映现实世界中事物之间的自然联系,这是文件方式最大的弊端
7.
1.3数据库系统阶段到了20世纪60年代后期,计算机被越来越多地应用于管理领域,而且规模也越来越大,因此数据量也急剧增长同时,人们对数据共享的要求也越来越强烈在这种情况下,”数据库〃的概念应运而生了用数据库管理数据有如下的特点
1.数据结构化数据库是存储在磁盘等外部直接存取存储设备上的数据集合,是按一定的数据结构组织起来的与文件系统相比,文件系统中的文件之间不存在联系,因而从总体上看数据是没有结构的;而数据库中的文件是相互联系着的,并在总体上遵从一定的结构形式这是文件系统与数据库系统的最大区别数据库正是通过文件之间的联系反映现实世界事物间的自然联系
2.数据共享数据库中的数据是考虑所有用户的数据需求、面向整个系统组织的因此数据库中包含了所有用户的数据成分,但每个用户通常只用到其中一局部数据不同用户所使用的数据可以重叠,同一局部数据也可为多用户共享,如图7—2所示入的分析工具,在用户提出问题或假设之后,它负责提取出关于此问题的详细信息,并以一种比较直观的方式呈现给用户联机分析处理要求按多维方式组织企业的数据,传统的关系数据库难以胜任为此,人们提出了多维数据库的概念正是这一技术的开展使决策分析中的数据结构和分析方法相别离,才有可能研制出通用而灵活的分析工具,并使分析工具产品化维是人们观察现实世界的角度,决策分析需要从不同的角度观察分析数据,以多维数据为核心的多维数据分析是决策的主要内容多维数据库是以多维方式组织数据的目前,联机分析处理的工具可分为两大类,一类是基于多维数据库的,另一类是基于关系数据库的两者的相同点是根本数据源仍是数据库和数据仓库,都是基于关系数据模型的,都向用户显示多维数据视图;不同点在于,前者是把分析所需的数据从数据仓库中抽取出来,物理地组织成多维数据库,而后者则是利用关系表来模拟多维数据,并不是物理地生成多维数据库⑵数据挖掘技术数据挖掘的根本思想是从数据中抽取有价值的信息,其目的是帮助决策者寻找数据间潜在的关联,发现被忽略的要素,而这些信息对预测趋势和决策行为也许是十分有用的从数据库的角度看,数据挖掘就是这样一个过程,它从数据库的数据中识别出有效的、新颖的、具有潜在效用的并最终可理解的信息(如规则、约束等)的非平凡过程非平但凡一个数学概念,即数据挖掘既不是把数据全部抽取,也不是一点儿也不抽取,而是抽取出隐含的、未知的和可能有用的信息从决策支持的角度看,数据挖掘是一种决策支持的过程,主要基于人工智能、机器学习、统计学和数据库技术等多种技术,能高度自动地分析企业原有的数据,进行归纳推理,从中挖掘出潜在的模式,预测客户的行为,帮助企业的决策者调整市场策略,从而减少风险,辅助做出正确的决策它是提高商业和科学决策过程中的质量和效率的一种新方法数据挖掘和联机分析处理都可以在数据仓库的基础上对数据进行分析,以辅助决策,那么它们之间是否有差异呢?答案是肯定的从某种意义上来说,联机分析处理还是一种传统的决策支持方法即在某个假设的前提下通过数据查询和分析来验证或否认这个假设,所以联机分析处理是一种验证型的分析一般来说验证型的分析有如下局限性
①常常需要以假设为基础用户的假设能力有限,往往只能局限于对几种变量进行假设
②联机分析处理需要对用户的需求有全面而深入的了解,然而实际上有些时候用户的需求并不是确定的
③抽取信息的质量依赖于用户对结果的解释,容易导致错误可以看出,联机分析处理是由用户驱动的,很大程度上受到用户水平的限制与联机分析处理不同,数据挖掘是数据驱动的,是一种真正的知识发现方法使用数据挖掘工具,用户不必提出确切的要求,系统能够根据数据本身的规律性,自动地挖掘数据潜在的模式,或通过联想,建立新的业务模型,帮助决策者调整市场策略,并找到正确的决策这显然利于发现未知的事实从数据分析深度的角度来看,联机分析处理位于较浅的层次,而数据挖掘则处于较深的层次所以,联机分析处理和数据挖掘的主要差异就在于是否能自动地进行数据分析
4.数据仓库设计的技术咨询在数据仓库的实施过程中,有一些更为根本的问题需要解答它们包括数据仓库提供给哪些部门使用?不同的部门怎样发挥数据仓库的决策效益?数药仓库需要存放哪些数据?这些数据以什么样的结构存放?数据从哪里装载?装载的频率多少为适宜?需要购置哪些数据管理的产品和工具来建立数据仓库等等这些问题依赖于特定的数据仓库系统,属于技术咨询的范畴
7.
3.3数据仓库的开发
1.数据仓库的处理过程人们总喜欢问数据仓库与数据库有什么不同?事实上,数据库是一种通用的平台,用来管理企业的数据;而数据仓库则主要是一种概念,在此概念下进行的构造过程称为数据仓库处理因此,数据仓库系统是一种解决问题的过程,而不是一个可以买到的现成产品数据仓库处理主要包括3个方面的内容,即数据准备、数据展现和过程管理数据准备包括充分了解决策需求、按数据仓库方法设计数据库结构、业务统计数据向数据仓库结构中转移(包括复制、抽取和清洗等),以及数据仓库数据向小规模数据集市数据复制为了适应不同层次的用户对数据仓库的使用风格,需要提供不同的前端表现工具例如主管信息系统提供界面丰富、定制简单的决策分析,它主要适用于企业的中层领导和业务分析人员;即席查询工具提供多角度的灵活查询功能,主要适用于业务分析人员;报表生成工具提供灵活的报表设计、展现和输出功能,它主要适用于报表制作人员数据仓库的建立需要很好的过程管理和方法我们把数据仓库的建立作为过程来看待,而不是作为工程工程来看待一是为了适应业务的开展,二是为了适应技术的开展,最正确方式就是采用面向过程的方法,即自上而下的总体设计和自下而上的实施另外,数据仓库需要独立的环境,把事务处理和决策支持分开因为现有软、硬件性能的局限性使得一个环境难以同时支持日常业务处理和决策支持目标其破,数据仓库常用于分析长期趋势,而传统数据库中的数据类型、数士和质量通常无法满足决策支持的要求;传统数据库只包含日常业务所需的数据,而数据仓库则包含大量的历史数据;当一个查询需要联接现有业务数据、外部数据和个人数据时,传统数据库根本上无能为力传统数据库与数据仓库访问的数据对象也不同对于传统的OLTP数据库,用户根据自己的需要,只是访问单个事务中的一行或多行记录在数据仓库中,为了响应一个简单的查询就可能要检索成千上万条记录,因此数据的移动量也很大
2.开发数据仓库的流程⑴启开工程,建立开发数据仓库工程的目标及制定工程方案方案包括数据范围、提供者、技术设备、资源、技能、组员培训、责任、方式方法、工程跟踪及详细工程调度等⑵建立技术环境,选择实现数据仓库的软硬件资源,包括开发平台、DBMS,网络通信、开发工具、终端访问工具及建立效劳水平目标(关于可用性、装载、维护及查询性能)等⑶确定主题进行数据建模,根据决策需求确定主题,选择数据源,对数据仓库的数据组织进行逻辑结构设计
(4)设计数据仓库中的数据库,基于用户的需求,着重于某个主题,开发数据仓库中数据的物理存储结构,即设计多维数据结构的事实表和维表⑸用数据转换程序实现从源系统中抽取数据、清理数据、一致性格式化数据、综合数据、装载数据等过程的设计和编码
(6)管理元数据和定义元数据,即表示、定义数据的意义及系统各组成部件之间的关系元数据包括关键字、属性、数据描述、物理数据结构、源数据结构、映射及转换规则、综合算法、代码、缺省值、平安要求、变化及数据时限等⑺用开发用户决策的数据分析工具建立结构化的决策支持查询,实现和使用数据仓库的数据分析工具,包括优化查询工具、统计分析工具、CIS工具、OLMI具及数据开采工具等,通过分析工具实现决策支持需求
(8)管理数据仓库环境数据仓库必须像其他系统一样进行管理,包括质量监测、管理决策支持工具即应用程序,并定期进行数据更新,使数据仓库正常运行数据库技术与电子商务
7.4数据库是企业管理信息系统中用来管理信息的工具,所以数据库技术是渗透在其中,无处不在的,也就是说数据库技术对电子商务的支持是全方位的,从底层的数据基础到上层的应用都涉及到数据库技术电子商务中所涉及的数据库技术如图7—10所示从图中可以看出,数据库技术对于电子商务的支持可以概括为数据的收集、存储和组织、决策支持、对EDI的支持及Web数据库
7.
4.1数据的收集、存储和组织数据库技术是数据管理技术其主要目标是解决数据管理中数据的存储、访问、处理等问题因此DBMS主要用于信息管理应用领域,如基层部门的事务处理,企业的管理信息系统这也是传统的数据库的主要功能,对于参与电子商务的企业而言,数据的来源不仅仅是企业内部管理信息系统,还包括大量的外部数据数据是企业重要资源,是决策的依据,是进行各类生产经营活动的基础及结果必须使用科学的方法,对数据进行全面、及时的收集,合理、正确的存储和有效的组织、管理,目的就是为了充分利用这一重要资源
7.
4.2决策支持在传统的决策支持系统中,数据库、模型库和知识库往往被独立地设计和实现,因而缺乏内在的统一性而以数据仓库为中心、事务处理和数据挖掘为手段的方案则很好地解决了这一问题,如图7—11所示⑴数据仓库解决了数据不统一的问题数据仓库自底层数据库收集大量事务级数据的同时,对数据进行集成、转换和综合,形成面向全局的数据视图,形成整个系统的数据基础⑵联机分析处理从数据仓库中的集成数据出发,构建面向分析的多维数据模型,利用这个带有普遍性的数据分析模型,用户可以使用不同的方法,从不同的角度对数据进行分析,实现了分析方法和数据结构的别离⑶数据挖掘以数据仓库和多维数据库中的大量数据为基础,自动地发现数据中的潜在模式,并以这些模式为基础自动做出预测数据挖掘反过来又可以为联机分析处理提供分析的模式正是由于数据仓库、联机分析处理和数据挖掘三项技术的联系和互补性,使它们从不同角度为决策支持效劳这种新型的决策支持解决方案必将受到越来越多企业的欢送虽然对企业而言决策支持系统也可以采取其他的方式,但是数据库中存储的数据却是决策的依据决策是关系到企业未来成败的关键对于参与电子商务的企业而言,由于他们的信息更灵通、过程更标准,这就为决策支持打下了良好的基础由于电子商务是利用网络来做生意,网络将时空距离对商务的影响降到最低,所以参与电子商务的企业所面对的市场是一个全球化的市场这一点给企业带来了机遇,同时也带来了挑战一方面,由于电子商务的介入,企业可以得到更多的经济信息,有利于企业的经营例如,企业可以在全球范围内采购原材料,货比三家,选择性能价格比最正确的另一方面,由于电子商务交易的全球化,某地区或厂商的价格变动了就会影响到其他地区,迟早会涉及到全球市场,从而使得电子商务市场变化频繁这样就加大了企业预测市场动向和规划经营管理策略的难度在这样的环境中,电子商务决策就变得更加重要了企业应该充分利用电子商务的海量数据进行分析,并依据分析结果做出正确的决策,随时调整经营策略,以适应市场的需求电子商务系统如果缺少好的决策支持功能,一方面是对电子商务海量数据资源的一种浪费,另一方面也是对从事电子商务的企业的一大损失
7.
4.3对EDI的支持EDI是电子商务重要的组成局部,要想成功地实现EDI,企业的基础设施建设是关键,而数据库系统的建设是其中重要的一环数据库管理系统对企业从事电子交易起到很大的支持作用EDI的一大特点(同时也是优点)是把各种贸易单证的电子化和标准化,而数据库系统也是把数据管理标准化和标准化了因此,就可以比较容易地实现数据库系统的业务数据与EDI的单证之间的自动转换一个企业如果有良好的数据库系统的支持,就可以实现应用到应用的EDI过程,即企业内部的管理信息系统依据业务情况自动产生EDI单证,并传输给贸易伙伴;而对方传来的EDI单证也可以由系统自动解释,并存入相应的数据库,整个过程无需人工干预因此,业务数据库和EDI系统之间的接口就变得非常重要该接口的功能可以为
(1)提供标准的信息格式定义
(2)与数据库管理系统的无关性
(3)自动抽取数据库中的相关数据转化为EDI单证格式
(4)自动抽取EDI单证的关键数据存储到数据库中在这一过程中,可以设立一个EDI数据库专门用于有关EDI数据的处理这样的管理方式简单明了,但如果数据库之间的沟通不顺畅,就可能产生数据不一致的现象
7.
4.4Web数据库随着WWW的不断扩展,越来越多的企业参加到Web中来,WWW上可用的数据元的数量在迅速增长人们正视图将WWW上的数据元集成为一个完整的Web数据库,时期数据资源得到充分的利用当前许多企业纷纷在web上开发自己的主页(home page)来介绍自己的产品和效劳有的网页不仅有琳琅满目的产品信息和优惠的价格,还配有详细的专家评论,牢牢抓住了网上用户的心理企业不仅可以通过Web发布自己的信息,同时也可以收集顾客的需求信息这样给双方都带来了好处对于企业而言,它不仅可以用相对低的本钱介绍和展示其产品和效劳,也可以获得准确的客户需求信息对于顾客而言,浏览网页省时省力,而且可以及时把要求反映给厂家,定制出自己喜欢的产品而且,访问Web都是通过浏览器,这样就统一了界面,有利于行业标准化Web数据库是一个新兴事物它是Web与数据库技术相结合的产物,二者的结合主要是源于两者各自的优势和缺陷
(1)Web上数据的特点Web上数据量大、类型多、缺乏组织和管理目前Web中字节量正以高于每月15%(或每年
5.2倍)的速度增长因为Web是Internet上的非官方链接的资源的集合,所以Web的数据缺乏结构和标准目前Web上的数据主要由静态HTML表达,其优点是表现能力强,链点跳转灵活,与平台无关但由于Web页面结构自由性大,致使Web上的信息又多又混乱就管理角度而言,Web的数据管理只相当于20世纪70年代的文件管理水平而且HTML文件动态更新特性差,用户很难得到最新的消息反应
(2)数据库技术的特点当前的数据库管理系统已开展到相当成熟的阶段,能高效、高质、平安地管理数据数据库可以通过数据提炼和重组,进一步家工程数据仓库与Web的优点相比,数据库管理系统显得严谨有余而灵活缺乏经二次开发而产生的应用系统,总是针对某个具体使用者,而它与Web的数据交换是依赖于附加软件,而不是依赖于数据库管理系统的内核功能Web与数据库结合,可以集Web和数据库的优点于一身前端有界面友好的Web浏览器,后台则有成熟的数据库技术作支撑这样无疑会带给企业一个良好的应用环境电子商务作为新型的企业经营管理模式,当然也离不开数据库技术的支持如今,数据库技术正在为推进电子商务应用发挥巨大的作用,将来随着数据库技术飞速地开展,它一定会为优化企业管理模式做出更大的奉献关系数据库产品简介
7.520世纪70年代,关系模型提出后,由于其突出的优点,迅速被商用数据库系统所采用据统计,70年代末以来新开展的DBMS产品中,近百分之九十是采用关系数据模型,其中涌现出了许多性能良好的商品化关系数据库管理系统RDBMS,例如,小型数据库系统FoxPro、ACCESS、PARADOX等,大型数据库系统ORACLE、INFORMIX.SYBASE.DB
2、INGRES等RDBMS产品经历了从集中到分布,从单机环境到网络,从支持信息管理到联机事务处理OLTP,再到联机分析处理OLAP的开展过程;对关系模型的支持也逐步完善;系统的功能不断增强
7.
5.1Oracle
1.Oracle公司简介Oracle公司成立干1977年,是一家著名的专门从事研究、生产关系数据库管理系统的专业厂家1979年推出的Oracle第一版是世界上首批商用的关系数据库管理系统之一Oracle当时就采用SQL语言作为数据库语言自创立以来的20年中,不断推出新的版本1986年推出的ORACLE RDBMSS.1版是一个具有分布处理功能的关系数据库系统1988年推出的Oracle第6版加强了事务处理功能对多用户配置的多个联机事务的处理应用,吞吐量大大提高,并对Oracle的内核作了修改1992年推出的Oracle第7版对体系结构做了较大调整,并对核心做了进一步修改1997年推出的Oracle第8版则主要增强了对象技术,成为对象一一关系数据库系统目前Oracle产品覆盖了大、中、小型机几十种机型,成为世界上使用非常广泛的、著名的关系数据库管理系统
2.Oracle关系数据库产品的特性1兼容性compatibility兼容性涉及数据库语言的标准化与对其他DBMS的数据访问能力Oracle产品采用标准的SQL,并且经过美国国家标准技术所NIST测试与IBM SQL/DS,DB2,INGRES.IDMS/R等DBMS兼容所以用户开发的应用软件可以在其他基于SQL的数据库上运行⑵可移植性PortabilityOracle RDBMS具有很宽范围的硬件与操作系统平台它可以安装在70种以上不同机型的大、中、小型机、工作站与微机上,可在VMS,DOS,UNIX,Windows等多种操作系统上运行为了使产品有可移植性,对于大局部独立于OS的软件采用ANSIC语言书写而对于与0S相关的局部,充分利用不同OS的特点,例如,内存管理、进程管理、资源管理磁盘输入/输出等用户在某一环境下开发的应用无需作变化就可运行到相应的硬件平台与操作系统上⑶可联结性connectabilityOracle由于在各种机型上使用相同的软件,使得联网更加容易能与多种通信网络接口,支持各种标准网络协议TCP/IP,DECnet,LU
6.2,X.25等提供在多种应用软件和数据库中进行分布处理的能力;能与非Oracle DBMS接口,它能够使在某些Oracle工具上建立的Oracle应用连接到非Oracle DBMS上4高生产率high productivity为了便于应用的开发和最终用户的使用,Oracle除了为程序员提供两种类型的编程接口预编译程序接口PRO*C和子程序调用接口0CI外,还为应用开发人员提供了应用生成、菜单管理、报表生成、电子表格接□等一批第四代开发工具,如Oracle Forms,Orac1e Reports,Oracle Menus,Oracle Graphics,Easy*SQL等整个Oracle产品为应用软件提供了一个公共运行环境,因而大大提高软件的开发质量和效率⑸开放性Oracle良好的兼容性、可移植性、可联接性和高生产率使Oracle RDBMS具有好的开放性
3.Oracle数据库效劳器产品Oracle7数据库效劳器包括标准效劳器和许多可选的效劳器选件,选件用于扩展标准效劳器的功能,以适应特殊的应用需求⑴标准效劳器的特色
①多进程多线索的体系结构Oracle第6版以前是一用户一一进程的体系结构,系统资源占用多,进程切换开销大,影响了系统整体性能Oracle7对进程结构作了改良,采用了多进程多线索体系结构Oracle7包括一个到多个线索进程、多个效劳器进程和多个后台进程线索进程负责监听用户请求,将用户请求链入内存中的请求队列中,并将应答队列中的执行结果返回给相应用户效劳器进程负责处理请求队列中的用户请求,并把处理结果键人应答队列线索进程和效劳器进程的数目都是可以根据当前工作负荷动态调整的Oracle7的进程结构能充分利用并行机上多处理器的能力,但由于其线索是用进程模拟的,由操作系统负责调度,这在一定程度上削弱了线索开销低的优越性
②为提高性能改良核心技术Oracle7进一步改良了其核心技术,例如,并发控制机制更加精致,包括了无限制行级封锁、无竞争查询、多线索的顺序号产生机制又如在共享内存缓冲区中增加了共享的SQL Cache,存放编译后的SQL语句,使用户可共享执行内存中同一SQL的拷贝,以提高效率
③高可用性Oracle7提供了联机备份、联机恢复、镜象等多种机制保障系统具有高可用性和容错功能
④SQL的实现Oracle7的SQL符合ANSI/ISO SQL89标准完整性约束符合ANSI/ISO标准的申明实体完整性和参照完整性约束提供基于角色的平安性角色是一组权限的集合有了角色的概念,平安管理机制可以把表或其他数据库对象上的一些权限进行组合,将它们赋给一个角色需要时只需将该角色授予一个用户或一组用户,这样可以降低平安性机制的负担和本钱⑵并行效劳器选件paralle serveroption和并行查询选件paralie queryoption针对机群和MPP并行计算机平台,Oracle7提供了并行效劳器选件实现磁盘共享同时Oracle7还为SMP、机群和MPP平台提供了并行查询选件,以实现并行查询、并行数据装载等操作⑶分布式选件distributed optionOracle7通过分布式选件提供分布式数据库功能Oracle7分布式选件提供了多场地的分布式查询功能和多场地更新功能,具有位置透明性和场地自治性,提供全局数据库名,支持远地过程调用4过程化选件procedural option利用Oracle7提供的过程化选件,用户可以根据自己的应用需求定义存储过程、函数、过程包和数据库触发器存储过程、函数、过程包或数据库触发器一经定义,将存放在数据库效劳器端,与数据库内部对象一样,可供所有被授权的用户使用
7.
5.2InformixInformix公司是世界上著名的数据库管理系统开发商之一其销售份额占世界领先地位它推出的数据库软件种类繁多,不同种类的版本也各有特点这里仅对国内用户选用的数据库产品及功能特性作一简要介绍
1.数据库引擎数据库引擎Database Engine是数据库管理系统的核心,负责诸如数据封锁、权限检验、资源控制、数据访问等操作也就是说,对数据库指定的任何SQL指令都必须交给父数据库引擎运行就关系数据库而言,Informix产品主要提供了两种数据库引擎Informix—SE和Informix—Online用户可依据本身系统需要来选择适合的引擎下面简述这两种引擎的功能特性
(1)Informix—SEInformix StandardEngine是标准数据库引擎,它适合中小规模的应用系统使用;无需数据库管理人员DBA;使用OS文件系统;支持多种数据类型,包括字符CHAR、整数INTEGER、短整数SMALLINT>浮点数FLOAT、十进制数DECIMAL日期DATE、货币MONEY、时间DATETIME、时间段INTERVAL;采用基于代价的优化器加快查找速度、以CISAM结构存储数据;在数据完整性方面具有数据库、表、字段等三个层次的数据平安定义;具备数据库、表、字段等三个层次的数据封锁功能,具有可设定排他exclusive锁或共享share锁等功能;同时可利用操作系统工具来执行数据库备份与恢复操作、并提供监测与恢复数据库的实用程序的功能
(2)Informix—Online这是Informix专为联机事务处理(OLTP)应用所涉及的数据库,它比Informix—SE使用了更多的先进技术,仅以Informix—0nline
7.1为例简单介绍其主要特性Informix—Online适用于常年使用的大规模多媒体应用系统;需要专门的数据库管理元(DBA)管理系统;在存储方式上使用操作系统的文件系统或原始设备;支持多种数据类型,除包括Informix—SE中的所有数据类型外,还支持变长字符(VARCHAR)、文字(TEXT)和二进制数据(BYTE),其中TEXT和BYTE称为BLOB(Binary LargeObject,二进制大对象),用来记录诸如文件、图像、语音等多媒体数据,可与其他类型数据合并存储或单独存放在不同的存储设备上(如光盘);以RSAM结构存储数据、采用共享内存技术、使用基于代价的优化其加快查找速度;在数据完整性方面具有定义语义、实体完整性及约束检查功能、具备数据库、表、页、记录等不同粒度的读数据封锁功能,可在不同粒度上设定排他(exclusive)锁或共享(share)锁等;在Informix—Online DynamicServer中支持并发操作;提供数据库备份与恢复功能,即可对整个数据库、更新过的局部数据库和事务日志文件进行备份、数据库的备份不影响用户操作和数据库的完整性、在发生非正常听及时,可在系统恢复正常后自动恢复已完成的事务、提供镜像数据库功能、提供监测与恢复数据库的实用程序;可监控数据库的执行状况、可启动并进入维护状态或关闭数据库管理系统、可调整数据库共享内存的大小等
2.分布式数据库的连接产品客户/效劳器主从式结构与分布或数据库结构是目前最流行的数据库应用系统环境,为了适应这种环境要求,需要配置适当的网络数据库连接产品,用于负责客户端与效劳器及网络上不同数据库间的通信协调操作⑴在客户/效劳器主从式网络数据库结构中,此产品是安装在PC端的Informix网络连接工具,它利用PC作为用户终端,运好Informix所支持的开发工具,同时可访问UNIX主机效劳器端的数据库内容⑵Informix一NETInformix—NET是安装在UNIX主机效劳器(或客户端)上的Informix网络连接产品,它配合Informix—SE使用,其功能特性如下•同一时刻只能使用一个效劳器上的数据库;•位置通用性一一不必因数据库位置变动而修改应用程序;•通信协议包括TCP/IP、SLIP、X.25和NFS等⑶Informix—STAR它是安装在UNIX主机效劳器上的Informix网络连接产品,需配合Informix Online使用,其功能特性如下•允许同时使用几个效劳器的数据库;•位置通用性一一不必因数据库位置变动而修改应用程序;•高可靠性一一真正的分布式结构,不因某一效劳器异常而影响其他效劳器正常工作;•使用基于代价的优化器来自动选择在哪个效劳器上运行连接的效劳器,以减少网络通信量,提高整个系统效率;•通信协议包括TCP/IP、SLIP、X.25和NFS等
3.开发工具开发工具是数据库管理系统(即引擎)与用户之间的桥梁,开发工具利用SQL以指令作为数据库与引擎之间的接口整个应用环境的关系结构如下用户或程序开发者一开发工具一引擎一数据库用户必须通过开发工具才能驱动引擎运行SQL指令下面简要介绍Informix所提供的几种开发工具
(1)Informix-SQL适用于用户与程序开发人员使用,适用的操作为•界面生成器一一创立数据库表,提供添加、删除、修改、查询等功能;•报表生成器一一建立数据库表和统计分析报表;•交互式SQL编辑器一一输入并以解释方式运行任何SQL指令;•功能选择编辑器;•数据结构编辑器一一提供全屏幕编辑方式,以便创立、修改数据库表结构
(2)Informix-4GL它是最完整的第4代语言4GL应用系统开发工具,无须借助任何第3代语言的指令它有以下两种版本
①Infonnix-4GL编译版适用于程序开发人员使用,其编译方式为4GL源码一C代码一目标码一机器码
②Informix/RDS RapidDevelopment System解释版适用于程序开发人员使用,其编译方式为4GL源码一伪码
(3)Inf ormi x-ESQL此类产品允许在第3代语言中嵌入SQL指令,以运行数据库访问操作其产品包括Informix—ESQL/C、Informix-ESQL/ADA和Informix-ESQL/FORTRAN等下面以Informix—ESQL/C为例进行说明,其余原理相同适用于程序开发人员使用,编译方式为ESQL/C源码一C代码预编译一目标码一机器码4Informix-NewEra它是一个开放的可视化面向对象开发环境,其特点主要源于类库机制Informix标准类库包括数据操作类库DCL、文件存取类库FCL连接类库CCL、可视类库VCL、应用效劳器类库、应用框架及业务图形类库等等
7.
5.3SQL ServerSQL Server是以Sybase结构为基础开发的,所以会使用Sybase数据库的管理人员可以很快地进入到SQL Server的领域,然后进入到SQL ServerV
4.
2、SQL ServerV
6.
0、SQL ServerV
6.5,并随着进入到Windows NT Server从而在市场上占有一席之地;SQL Server是适用于大、中型系统的数据库软件
1.SQL Server简介⑴是关系数据库RDBMSSQL Sever它不像Dbase、FoxPro等小型关系数据库系统,是依靠SET RELATIONTO命令来实现两个数据库以上的关系,SQL Server是以SELECT命令查询两个表格以上的数据,靠约束Constraint或击发Trigger再配合SQL命令语法,来实现它的关系的整体性Referential Integrityo⑵是单一处理、多线程的数据库SQL Server的处理架构如图7—12所示,它是个单一处理Single Process、多线程数据库Multi-Thread,比多重处理、单一线程数据库有以下优点
①耗用较少的硬件资源,如存储器、CPU处理时间等
②SQL Server是由执行核心来分配多个用户对数据库的存取,减少了多个处理对数据库存取的沟通、协调时间,进而提高了执行效率而多重处理数据库,则是在每一个用户所翻开的处理上皆需有一个协调机构,用于和其他处理上的协调机构作沟通,协调多个用户对资源的存取
(3).以Clint/Server为设计结构SQL Sever是按Clint/Server结构进行设计的,共享数据被存放在效劳器端,客户端可分别处理数据但若要读取共享数据,则必须依据网络管道向效劳器端发存取请求效劳器端按客户端的要求对数据进行处理,而仅将需要结果传送给客户端,降低了在网络上大量数据的来回传送客户端可分担效劳器端的工作,从而人大提高了系统的执行效率
(4)SQL Sever的特点
①是一个可缩放、高性能的关系型数据库管理系统(RDBMS),其设计是为了满足分布式客户/效劳器计算的需要
②与Microsoft Windows NT的线程和调度效劳、性能监视器和事件浏览器集成在一起通过一个单一的WindowsNT登录到网络SQL Server上,同而简化了用户账号的管理
③在整个企业范围内信息可靠传播的内部复制机制减小了发生故障的风险,并将即时的精确信息传递给需要数据的用户
④并行结构通过并行内部数据库功能,大大提高了系统性能和可缩放性
⑤利用综合的分布式框架集中管理整个企业范围的效劳器基于Windows的管理界面提供了在多个效劳器上的远程数据复制管理、效劳器管理、诊断和调整的可视化拖放控制
⑥充分利用并行结构的优点提供了对超大型数据库的更好支持为很多开发和维护任务减少了输入/输出(I/O)O
⑦在分布式管理框架中能得到OLE分布式管理对象库
2.SQL Sever的系统结构SQL Server是基于SQL的客户/效劳器数据库,它采用了ANSI的结构化查询语言,是许多不同组件的集合,其中包括SQL Server本身,SQL ServerAgent(SQL效劳器代理),SQL Mail(SQL邮件系统)和Distributed TransactionCoordinator(分布式事务协调器,DTC)此外,缺省SQL Server安装还建立了四个数据库,称为系统数据库,它o们分别是⑴Master数据库一一用于记录在SQL Server最根本操作中使用的信息它包用户账号和系统配置信息及其他信息,告诉SQL Server到哪里找其他用户生成的数据库⑵Model数据库——是唯一有时能经常要修改的系统数据库建立新数据库时,SQL Server首先复制Model数据库如果效劳器上的所有数据库都要有某些对象,例如对业务很重要的自定义数据类型,则可以将其加到Model数据库中,这样自定义数据类型就能和新数据库一起自动建立⑶Tempdb数据库——是SQL Sever的临时库用于存放所有的临时工作表格和将临时存储过程tmpdb数据库在每次启动SQL Sever是自动重载,而无须用户费心
(4)Msdb——存储处理作业和警告所需的信息用户不能直接修改Msdb数据库,而只能通过用户接口生成、修改和删除SQL ServerAgent对象
3.SQLServer的特性⑴可安装在多种操作平台上,如Windows NTWindowsNTWorkstation、Windows95/98等,可同NTServerNTWorkstation安装在不同处理器的计算机上如Intel、Rise、Alpha Apple的Power PC等⑵用SQL命令来驱动和操作数据,如用SELECT命令查询数据、用UPDATE命令修改数据、用DELETE命令删除数据、用INSERT命令新增数据等⑶支持客户端以Net—Library或ODBC方式来存取效劳器端,即允许用这两种方式做客户端和效劳器端的连接管道
(4)支持分布式数据库结构习题
73.1试述数据模型的概念、作用和组成局部
3.2举出一个层次模型的实例,画出它的层次结构,给出它的一个数据库记录
3.3举出一个网状模型的实例
3.4举出一个关系模型的实例
3.5试比较层次模型、网状模型和关系模型的优点与缺点
3.6试述数据库设计的根本步骤
3.7SQL语言有什么特点?
3.8数据依赖对关系模式会产生什么影响?
7.10数据库标准化的目的是什么?简述关系模式标准化的根本步骤
7.11面向对象的方法有哪些优点?
7.12面向对象数据库有哪些特征?
7.13什么是对象关系数据库?它的主要特点是什么?常用的实现方法有哪些
1.214什么是数据仓库?简述它的特点及结构
1.15简述数据仓库的关键技术
1.16简述开发数据仓库的流程
1.17试述数据库如何对电子商务提供技术支持
1.18关系数据库的主流产品有哪些?各自的特点是什么?图7—2数据共享示意图
3.减少了数据冗余在数据库方式下,用户不是自建文件,而是取自数据库中的某个子集,它并非独立存在,而是靠数据库管理系统从数据库中映射出来的,所以叫做逻辑文件如图7—3所示,用户使用的是逻辑文件,因此尽管一个数据可能出现在不同的逻辑文件中,但实际上的物理存储只可能出现一次,这就减少了数据冗余
4.有较高的数据独立性数据独立是数据库技术努力追求的目标,其好处是数据存储方式的改变不会影响到应用程序数据独立又有两个含义,即物理数据独立性和逻辑数据独立性所谓物理数据独立性是指数据库物理结构(包括数据的组织和存储、存取方法沙十部存储设备等)发生改变时,不会影响到逻辑结构,而用户使用的是逻辑数据,所以不必改动程序;所谓逻辑数据独立性是指数据库全局逻辑发生改变时,用户也不需改动程序,就像数据库并没发生变化一样这是因为用户仅使用数据库的一个子集,全局变化与否与具体用户无关,只要能从数据库中导出他所用到的数据就行
5.用户接口在数据库系统中,数据库管理系统作为用户与数据库的接口,提供了数据库定义、数据库运行数据库维护和数据平安性、完整性等控制功能;此外还支持某种程序设计语言,并设有专门的数据操作语言,为用户编程提供了方便数据库系统的出现,使信息系统的研制从围绕加工数据的程序为中心转变到围绕共享的数据库来进行这既便于数据的集中管理,也有利于应用程序的研制和维护,提高了数据的利用率和相容性,从而提高了做出决策的可靠性因此大型复杂的信息系统大多以数据库为核心数据库是一个通用化的综合性数据集合它可以供各种用户共享且具有最小的冗余度和较高的数据与程序的独立性由于多种程序并发地使用数据库,为了能有效、及时地处理数据,并提供平安性和完整性,就需要一个软件系统一一数据库管理系统(DBMS),在建立、运用和维护时对数据库进行统一控制在这个阶段,企业的管理一般采用管理信息系统(MIS)管理信息系统可以有效地管理企业内部的信息和信息流,是企业向管理现代化迈出的第一步而企业管理信息系统可以说是数据库管理系统在功能上的一种扩展,因为数据管理仍是它的核心内容电子数据交换(EDI)也渐渐开展起来数据库管理系统对企业从事电子交易起到很大的支持作用我们都知道EDI的一大特点(同时也是优点)就是把各种贸易单证的电子化和标准化而数据库系统也是把数据管理标准化和标准化了因此,就可以比较容易地实现数据库系统的业务数据与EDI的单证之间的自动转换与手工制作电子单证相比,提高了效率、减少了错误、降低了本钱更高层次的、帮助企业决策的决策支持系统(DSS)也慢慢开展起来但直到20世纪80年代末,决策支持系统的应用还不是很广泛原因在于那时的决策支持系统在理论和方法上过于复杂,过于偏重高级而抽象的理论,而且过于偏重结论,在一定程度上无视了对业务数据的分析,而且,本钱高昂,因此实际产生的应用效果远远比不上管理信息系统在人们眼里,决策支持系统是一个高高在上的东西事实上,企业对于决策支持并不要求大而全,也并不要求一套系统代替决策者去思考,他们所需要的往往是对简单却十分重要的业务数据的反复挖掘,为决策提供一定的依据科学的决策必须以大量可靠的数据为基础,这些数据应包括企业的内部数据、与企业的经营和生产相关的外部数据,还应包括综合数据和历史数据否则,决策就没有根据,就会成为主观的猜测当时,数据库技术虽然已经成熟,但应用还不广泛,所以普遍存在一个数据量缺乏的问题止匕外,分析工具的缺乏也是一大问题没有充足的数据,分析工具也不得力,分析的结果当然不能切中要害由此可以看出,在这个阶段,用于决策支持的技术还不完备,时机也还不成熟,决策支持系统的失败也是可以理解的
7.
1.4数据仓库阶段进入20世纪90年代,计算机得到空前广泛的应用,使得企业的生产效率进一步提高,商业竞争也越来越剧烈了一个企业要想在市场上生存下去,不仅要建立完善的计算机管理信息系统来提高效率,而且要先于对手获得至关重要的决策信息这样,企业才能在未来的竞争中适应潮流、把握正确的开展方向企业对迅速而准确地获得决策信息的需求比以前大大增强了对企业来说,决策支持系统已不是可有可无的东西,企业需要实用而且本钱低廉的决策支持系统系统开发人员由于企业的需求,也渐渐认识到了决策支持系统开发的方向决策支持系统的建设更应该把注意力放在对数据的挖掘上,放在满足业务主管们各种各样的查询要求上,由他们自己做决定,系统只是提供一些用来辅助决策的参考意见,应该帮助而不是代替高级业务人员的思考在这一时期,计算机及其网络技术的应用更为广泛,企业管理信息系统逐渐由以内部管理为主转变为对整个供给链的管理企业之间的商务活动也从以前简单的电子数据传输转变为全方位的合作,电子商务蓬勃兴起企业之间的相互合作不仅可以提高企业的生产效率、降低生产本钱,也为企业获取大量的外部数据带来了方便这就为决策支持分析奠定了基础另外,由于数据库技术的开展和日益成熟,决策支持分析工具也渐渐丰富起来企业的需求和技术的成熟最终导致了数据仓库的产生数据仓库作为决策支持系统的一种有效、可行的体系化解决方案,包括三个方面的内容数据仓库技术(DW)、联机分析处理技术(0LAP)和数据挖掘技术(DM)o数据库技术的开展为解决决策支持问题提供了可能,而剧烈的市场竞争产生了对决策支持的巨大需求,由此人们找到了以数据仓库为基础、以OLAP和DMI具为手段的一整套可操作、可实施的解决方案数据库技术的根本理论
7.2电子商务是指利用电子网络进行的商务活动,这里的电子网络主要是指Internet和基于Internet技术的Intranet(企业内部网)及Extranet(企业外部网)其进行的商务活动不仅包含电子数据交换所涉及的电子交易,还包括电子邮件交流、网上站点宣传和利用Internet技术改造的其他传统应用但电子商务应用的前提是企业管理信息系统的广泛应用数据库技术是企业管理信息系统的核心技术之一,所以,想深入地理解电子商务就应该先了解数据库的一些根本理论
7.
2.1数据模型
1.数据模型的要素数据库是某个企业、组织或部门所涉及的数据的一个综合,它不仅要反映数据本身的内容,而且还要反映数据之间的联系由于计算机不可能直接处理现实世界中的具体事物,所以人们必须事先把具体事物转换成计算机能够处理的数据在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息通俗地讲数据模型就是现实世界的模拟数据模型应满足三方面要求;一是能比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机上实现一种数据模型要很好地满足这三方面的要求,在目前尚很困难在数据库系统中针对不同的使用对象和应用目的,采用不同的数据模型不同的数据模型实际上是提供给我们模型化数据和信息的不同工具根据模型应用的不同目的,可以将这些模型划分为两类,它们分属于两个不同的层次第一类模型是概念模型,也称信息模型,它是按用户的观点对数据和信息建模另一类模型是数据模型,主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模一般地讲,任何一种数据模型都是严格定义的概念的集合这些概念必须能够精确地描述系统的静态特性、动态特性和完整性约束条件因此数据模型通常都是由数据结构、数据操作和完整性约束三个要素组成⑴数据结构数据结构用于描述系统的静态特性,它包括数据对象及其相互联系,即数据结构是所研究的对象类型object type的集合这些对象是数据库的组成成分,它们包括两类,一类是与数据类型、内容、性质有关的对象,例如网状模型中的数据项、记录,关系模型中的域、属性、关系等;一类是与数据之间联系有关的对象,例如网状模型中的系型settypeo数据结构是刻画一个数据模型性质最重要的方面因此在数据库系统中,人们通常按照其数据结构的类型来命名数据模型例如,层次结构、网状结构和关系结构的数据模型分别命名为层次模型、网状模型和关系模型⑵数据操作数据操作用于描述系统的动态特性,主要是对数据的检索和更新,即数据操作是指对数据库中各种对象型的实例值允许执行的操作的集合,包括操作及有关的操作规则数据库主要有检索和更新包括插入、删除、修改两大类操作数据模型必须定义这些操作确实切含义、操作符号、操作规则如优先级以及实现操作的语言⑶数据的约束条件数据的约束条件是一组完整性规则的集合完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容数据模型应该反映和规定本数据模型必须遵守的根本的通用的完整性约束条件例如,在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件止匕外,数据模型还应该提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件例如,在学校的数据库中规定大学生年龄不得超过29岁,硕士研究生不得超过38岁,学生累计成绩不得有3门以上不及格等
2.数据模型的种类不同的数据模型具有不同的数据结构形式目前最常用的数据模型有层次模型hierar—chical model.网状模型network model和关系模型relational model其中层次模型和网状模型统称为非关系模型非关系模型的数据o库系统在20世纪70年代与80年代初非常流行,在数据库系统产品中占据了主导地位,现在已逐渐被关系模型的数据库系统取代,但在美国等一些国家里,由于历史遗留下来的原因,目前网状数据库系统的用户数仍很多20世纪80年代以来,面向对象的方法和技术在计算机各个领域,包括程序设计语言、软件工程、信息系统设计、计算机硬件设计等各方面都产生了深远的影响,也促进了数据库中面向对象数据模型的研究和开展⑴层次模型层次模型是数据库系统中最早出现的数据模型,它用树形结构表示各类实体以及实体问的联系现实世界中许多实体之间的联系本来就呈现出一种很自然的层次关系,如行政机构、家族关系等层次模型数据库系统的典型代表是IBM公司的IMS InformationManagement Systems数据库管理系统,这是一个曾经广泛使用的数据库管理系统
①层次模型的数据结构层次模型用树结构表示数据之间的层次关系按照树的定义,在层次模型中,数据之间的关系满足;•有且仅有一个结点无双亲,这个结点称为根结点•其他结点有且仅有一个双亲结点因此,层次模型职能描述数据之间一对一或多对多的关系层次模型就像一棵倒立的树,如图7—4所不在层次模型的数据库中查找某一结点,必须指定存取路径所谓存取路径是指从根结点开始沿途所经过的路径以图7—4为例存取不同结点的存取路径如表7—1所示可见,网状模型没有层次模型那样严格的完整性约束条件,但具体的网状数据库系统(如DBTG)对数据操纵还是加了一些限制,提供了一定的完整性约束
③网状模型的优缺点网状模型的优点主要有•能够更为直接地描述现实世界,如一个结点可以有多个双亲、允许结点之间为多对多的联系等•具有良好的性能,存取效率较高网状模型的缺点主要有•其DDL语言极其复杂•数据独立性较差由于实体间的联系本质上是通过存取路径指示的,因此应用程序在访问数据时要指定存取路径
(3)关系模型关系模型是目前最重要的一种模型美国IBM公司的研究员E.F.Codd于1970年发表题为“大型共享系统的关系数据库的关系模型〃的论文,文中首次提出了数据库系统的关系模型20世纪80年代以来,计算机厂商新推出的数据库管理系统(DBMS)几乎都支持关系模型,非关系系统的产品也大都加上了关系接口数据库领域当前的研究工作都是以关系方法为基础
①关系模型的数据结构关系模型在三种模型中是最重要的虽然它的数据关系是儿种模型中最简单的,但其定义却比较复杂可以把关系模型理解为一张二维表,表格中的每一行代表一个实体,称为记录;每一列代表实体的一个属性,称为数据项记录的集合称为关系关系具有如下性质•数据项不可再分(即不可表中套表)•关系中的列是同性质的,称为属性属性之间不能重名•关系中不能出现相同的记录,记录的顺序免所谓•每个关系都有一个主键,它能唯一地标识关系中的一个记录•关系中列的顺序不重要学号姓名性别出生曰期入学总分专业号9901张三男82/10/02625J001图7-6关系模型
②关系模型的操纵与完整性约束关系数据模型的操纵主要包括查询、插入、删除和更新数据这些操作必须满足关系的完整性约束条件关系的完整性约束条件包括三大类实体完整性、参照完整性和用户定义的完整性关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合,而不像非关系模型中那样是单记录的操作方式另一方面,关系模型把存取路径向用户隐蔽起来,用户只需指出“干什么〃或“找什么〃,不必详细说明“怎么干〃或“怎么找〃,从而大大地提高了数据的独立性,提高了用户的生产率
③关系模型的优缺点关系模型具有以下优点•关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的•关系模型的概念单一无论实体还是实体之间的联系都用关系来表示对数据的检索结果也是关系(即表)所以其数据结构简单、清晰,用户易懂易用•关系模型的存取路径对用户透明,从而具有更高的数据独立性,更好的平安保密性,也简化了程序员的工作和数据库开发建立的工作〃所以关系数据模型诞生以后开展迅速,深受用户的喜爱关系模型的缺点主要是由于存取路径对用户透明,查询效率不如非关系模型因此,必须对用户的查询请求进行优化,增加了开发数据库管理系统的负担
7.
2.2关系数据库关系数据库是以关系模型为基础的数据库,它利用关系来描述现实世界,应用数学方法来处理数据库中的数据关系数据库目前是各类数据库中最重要、最流行的数据库
1.概述关系数据库系统是支持关系模型的数据库系统关系模型由关系数据结构、关系操作集合和完整性约束三局部组成⑴关系数据结构关系模型的数据结构非常单一,在用户看来,关系模型中数据的逻辑结构是一张扁平的二维表但关系模型的这种简单的数据结构能够表达丰富的语义,描述出现实世界的实体以及实体间的各种联系⑵关系操作关系操作采用集合操作方式,即操作的对象和结果都是集合关系模型中常用的关系操作包括选择、投影、连接、除、并、交、差等查询操作和增、册h改操作两大局部查询的表达能力是其中最主要的局部关系模型中的关系操作能力早期通常是用代数方式或逻辑方式来表示,分别称为关系代数和关系演算关系代数是用对关系的运算来表达查询要求的方式关系演算是用谓词来表达查询要求的方式关系演算又可按谓词变元的根本对象是元组变量还是域变量分为元组关系演算和域关系演算关系代数、元组关系演算和域关系演算三种语言在表达能力上是完全等价的关系代数、元组关系演算和城关系演算均是抽象的查询语言,这些抽象的语言与具体的数据库管理系统(DBMS)中实现的实际语言并不完全一样但它们能用作评估实际系统中查询语言能力的标准或基础实际的查询语言除了提供关系代数或关系演算的功能外,还提供了许多附加功能,例如集函数、关系赋值、算术运算等关系语言是一种高度非过程化的语言,用户不必请求数据库管理员(DBA)为他建立特殊的存取路径,存取路径的选择由数据库管理系统(DBMS)的优化机制来完成,另外,用户不必求助于循环结构就可以完成数据操作对于关系数据库而言,有一种介于关系代数和关系演算之间的语言SQL(structured querylanguage,结构化查询语言),它不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是集查询、数据定义语言(DDL)、数据操纵语言(DML)和数据控制语言(DCL)于一体的关系数据语言,它充分表达了关系数据语言的特点和优点,是关系数据库的标准语言因此,关系数据语言可分成以下三类
①关系代数语言,如ISBL;
②关系演算语言,其中包括•元组关系演算语言,如APLHAQUEL;•域关系演算语言,如QBE;
③具有关系代数和关系演算双重特点的语言,例如SQLo这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用⑶完整性约束在关系型数据库中,完整性约束用于确保数据的准确性和一致性关系模型提供了丰富的完整性控制机制,允许定义三类完整性实体完整性、参照完整性和用户定义完整性其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系系统自动支持
①实体完整性(entity integrty)一个根本关系通常对应现实世界的一个实体集例如,“学生〃关系对应于学生的集合现实世界中的实体是可区分的,即它们具有某种唯一性标识相应地,关系模型中以主码作为唯一性标识主码中的属性即主属性不能取空值所谓空值就是“不知道〃或“无意义〃的值如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与现实世界的应用环境相矛盾,因此这个实体一定不是一个完整的实体实体完整性规则若属性A是根本关系R的主属性,则属性A不能取空值例如,在关系学生(学号,姓名,性别,出生日期,入学总分,专业号)中,学生的学号属性为主码,则学生的学号不能取空值实体完整性规则规定根本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值例如,学生选课关系“选修(学号,课程号,成绩)〃中,(学号,课程号)为主码,则学号和课程号两属性都不能取空值
②参照完整性(referential integrity)现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的这样就自然存在着关系与关系间的引用先看下面的3个例子例L学生实体和专业实体可以用下面的关系表示,其中主码用下划线标识学生(学号,姓名,性别,出生日期,入学总分,专业号,)专业(专业号,专业名)这两个关系之间存在着属性的引用,即“学生〃关系引用了“专业〃关系的主码“专业号〃显然,“学生〃关系中的专业号值必须是确实存在的专业的专业号,即“专业〃关系中有该专业的记录这也就是说,“学生〃关系中的某个属性的取值需要参照“专业〃关系的属性取值例2学生、课程、学生与课程之间的多对多联系可以用以下三个关系来表示学生(望号,姓名,性别,出生日期,入学总分,专业号)课程(课程号,课程名,学分)选修(堂号,课程号,成绩)这三个关系之间也存在着属性的引用,即“选修〃关系引用了“学生〃关系的主码“学号〃和“课程〃关系的主码“课程号〃同样,“选修〃关系中的学号值必须是确实存在的学生的学号,即“学生〃关系中一定有该学生的记录;“选修〃关系中的课程号值也必须是确实存在的课程的课程号,即“课程〃关系中一定有该课程的记录换句话说“选修〃关系中某些属性的取值需要参照其他关系的属性取值不仅两个或两个以上的关系间可以存在引用关系,同一关系内部属性间也可能存在引用关系例3关系学生1如下所示学生1(学号,姓名,性别,出生日期,专业号,班长)其中,“学号〃属性是主码,“班长〃属性表示该学生所在班级的班长的学号,它引用了本关系中的“学号属性,即“班长〃必须是确实存在的学生的学号定义设A是根本关系R的一个或一组属性,但不是关系R的主码,如果A与根本关系S的主码Ks相对应,则称A是根本关系R的外码(foreign key),并称根本关系R为参照关系(referencing relation),根本关系S为被参照关系(referenced relation)或目标关系(target relation)关系R和S不一定是不同的关系o显然,目标关系S的主码Ks和参照关系的外码A必须定义在同一个(或一组)域上在例1中,“学生〃关系的“专业号〃属性与“专业〃关系的主码“专业号〃相对应,因此“专业号〃属性是“学生〃关系的外码这里“专业〃关系为被参照关系,“学生〃关系为参照关系如图7—7(a)所示在例2中,“选修〃关系的“学号〃属性与“学生〃关系的主码“学号〃相对应,“课程号〃属性与“课程〃关系的主码“课程号〃相对应,因此“学号〃和“课程号〃属性是“选修〃关系的外码这里“学生〃关系和“课程〃关系均为被参照关系,“选修〃关系为参照关系如图7—7(b)所示在例3中,“班长〃属性与本关系主码“学号〃属性相对应,因此“班长〃是外码这里“学生1〃关系既是参照关系也是被参照关系需要指出的是,外码并不一定要与相应的主码同名(如例3)不过,在实际应用当中,为了便于识别,当外码与相应的主码属于不同关系时,往往给它们取相同的名字参照完整性规则就是定义外码与主码之间的引用规则参照完整性规则若属性(或属性组)A是根本关系R的外码,它与根本关系S的主码Ks相对应(根本关系R和S不一定是不同的关系),则对于R中每个元组在A上的值必须为
①或者取空值(A的每个属性值均为空值);
②或者等于S中某个元组的主码值例如,对于例1,“学生〃关系中每个元组的专业号属性只能取下面两类值;。
个人认证
优秀文档
获得点赞 0