数据库及其接口设计.ppt

上传人:小飞机 文档编号:6578469 上传时间:2023-11-14 格式:PPT 页数:105 大小:311.50KB
返回 下载 相关 举报
数据库及其接口设计.ppt_第1页
第1页 / 共105页
数据库及其接口设计.ppt_第2页
第2页 / 共105页
数据库及其接口设计.ppt_第3页
第3页 / 共105页
数据库及其接口设计.ppt_第4页
第4页 / 共105页
数据库及其接口设计.ppt_第5页
第5页 / 共105页
点击查看更多>>
资源描述

《数据库及其接口设计.ppt》由会员分享,可在线阅读,更多相关《数据库及其接口设计.ppt(105页珍藏版)》请在三一办公上搜索。

1、第15章 数据库及其接口设计,15.1 数据管理系统及其选择 15.2 数据库系统 15.3 技术整合 15.4 数据接口 15.5 对象存储方案和数据接口的 设计策略,数据管理系统,包括文件系统和数据库管理系统两大类。采用关系模型的数据库称做关系数据库(relational database)。与层次和网状的DBMS相比,RDBMS所采用的数据模型以二维表的形式而不是人为地设置指针(或导航链)来实现实体数据之间的联系,从而使用户可以直接从数据库中获取表示事物之间联系的信息,而不必借助软件专家的帮助。,15.1 数据管理系统及其选择,有效地实现数据在永久性存储空间的存储与管理需要特定的软件系统

2、支持。这些实现数据存储、检索、管理、维护的系统称做数据管理系统,包括文件系统和数据库管理系统两大类。,文件系统 文件系统(file system)通常被作为操作系统的一部分。它采用统一、标准的方法对辅助存储器上的用户文件和系统文件的数据进行管理,提供存储、检索、更新、共享和保护等功能。它有如下的局限性:,(1)各个文件中的数据是相互分离和独立的,不易直接体现数据之间的关系。(2)容易产生数据冗余,并因此给数据完整性的维护带来很大困难。(3)应用程序依赖于文件结构,当文件结构发生变化时,应用程序也必须变化.,(4)不同的编程语言(或其他软件产品)产生的文件格式互异,互不兼容。(5)难以按用户视图

3、表示数据。,数据库管理系统 数据库的建立、使用和维护必须有DBMS的支 持,DBMS提供的功能包括:(1)模式翻译(2)应用程序的编译,(3)交互式查询(4)数据的组织与存取(5)事物运行管理(6)数据库的维护,数据库管理系统克服了文件系统的许多局限性,它使数据库中的数据具有如下特点:(1)数据是集成的,数据库不但保存各种数据,也保存它们之间的关系,并由DBMS提供方便、高效的检索功能。,(2)数据冗余度较小,并由DBMS保证数据的完整性。(3)程序与数据相互独立。(4)易于按用户视图表示数据。,关系数据库和关系数据库管理系统(1)采用关系模型的数据库称做关系数据库。关系模型用二维表来表示各类

4、数据,二维表中有行,有列。,(2)基于关系模型的数据库管理系统叫做关系数据库管理系统。RDBMS所采用的数据模型以二维表的形式而不是人为地设置指针(或曰导航链)来实现实体数据之间的联系,从而使用户可以直接从数据库中获取表示事物之间联系的信息,而不必借助软件专家的帮助。,面向对象数据库和面向对象数据库管理系统(1)采用面向对象数据模型的数据库称做面向对象数据库(OODB);相应的数据库管理系统称做面向对象数据库管理系统(OODBMS),有时称做对象数据库管理系统(ODBMS)。,(2)面向对象数据管理系统应具备两方面的特征:一方面它是面向对象的,另一方面它又具有数据库管理系统应有的特点和功能。,

5、数据管理系统的选择 对许多项目而言,关系数据库管理系统和文件系统都可能成为最合适的选择。决定采用何种数据管理系统,要综合考虑技术和非技术两方面的因素:,1)非技术因素(1)数据管理系统的成熟程度和先进性。(2)价格。(3)开发队伍的技术背景。(4)与其他系统的关系。,2)技术因素(1)文件系统。(2)关系数据库管理系统。(3)面向对象数据库管理系统。,15.2 数据库系统,数据库管理在应用上扮演了集中的角色。它使大量持续性集合的数据被组织和维持,并且由以计算机为基础的数据系统来支持,数据库应用在许多不同的领域,已经被开发。,数据库系统包括软件、数据库管理系统和一个或多个数据库。数据库管理系统是

6、在计算机主存储器中执行,并且由个别的操作所控制的程序系统。数据库是一群数据的集合,它是有关真实世界应用的代表信息。,数据库与数据库管理系统之间的区别是两种对数据库系统的观点与方式:(1)由用户的观点(2)由开发者的观点,对概观数据库的一般性描述,有四个主要的领域:(1)数据模型(2)数据库语言(3)交易与并行控制(4)数据结构,以下针对各数据库结构简要地说明其特点:(1)文件管理系统。一般而言,文件管理系统的程序结构在处理导向的模型上,并依分类顺序或是以逻辑上的关键值来作索引。文件管理系统的缺点主要包括有数据重复、矛盾、缺乏弹性、不易分享、没有标准、程序产量低,以及需要大量的程序维护工作等。,

7、(2)层次式数据库管理系统。由于“单一双亲法则”的特性,使得该数据模型会产生重复且过量的数据和结构。因此,浪费保存空间是其最大的缺点。但在薪资系统上仍适合使用。,(3)网络式数据库管理系统。虽然网状式数据库结构可将相邻或共同的要素加以结合,以节省保存空间,但因其采用“环式指示码结构”来表示复杂现象的拓扑结构,所以当有数据需编辑或更新时,则必须改变原有相连的数据结构,此为其最大缺点。,(4)关系型数据库管理系统。关系型数据模型在某方面有其使用限制,这是为了使数据模型简单化所加的限制。虽然如此,但与其前身比较,该数据模型则具备了一些非常重要的特点。例如,数据独立、声明式处理、去除重复、简单及以表单

8、作为表达形式,以上优点不仅使程序开发更为快速,也使得程序的维护更加容易。,(5)面向对象数据库管理系统。面向对象数据库将数据与操作方法集合成为对象的概念,并且也支持复合对象及一般化关系的直接表示,这是传统数据库所不能达到的。面向对象数据库在传统数据库中加入了抽象,扩充类型定义、用户定义操作与数据类型、继承机制、数据定义语言与数据操作语言的集成,以及支持版本与模型演变等概念与功能,消除了传统数据对数据定义的一致性限制。,15.2.1 面向对象技术,面向对象技术的特点:(1)面向对象的思考方式比结构化分析及设计的技术,对人类更自然。(2)系统通常由已存在的对象所构成。(3)对象的复杂度可以一直成长

9、,因为对象是由别的对象所组成,以此类推。,(4)计算机辅助软件工程(CASE)保存库应该包含有持续成长的对象类别链接库,某些是购买的,某些是建立的。(5)用面向对象技术来生成功能良好的系统比较容易,原因是由于类又包含着类。(6)面向对象技术与CASE工具很自然地结合。,面向对象分析与设计。面向对象分析是利用系统结构及操作概念,以对象来反映系统连续的处理过程,其主要特点归纳如下:(1)面向对象模型与真实世界的差距很小。(2)以对象为基础,可做局部的修改。(3)有助于理解问题空间。,(4)改进分析人员与用户间的交互方式。(5)增加分析结果内部的一致性。(6)共同性质明显表示。(7)分析结果可重复使

10、用。,面向对象设计是将分析模型所得转换成解答模型的过程,其主要特性有:(1)模块化(2)信息隐藏(3)弱耦合力,(4)强内聚力(5)抽象(6)可扩充性(7)整合性,面向对象分析与设计的主要目标如下;(1)确定企业运作过程中的各项重要角色,然后确定各角色的责任。(2)定义软件对象来表达各项角色。(3)进行面向对象分解,即将对象分类或分解更小的对象。,15.2.2 面向对象数据库的应用,面向对象技术被视为能够带来更可靠和较高品质的软件,因为它能够借助使用定义好的接口与隐藏实现细节,建立更模块化的软件。,对象数据库技术在其他工业部门也变得很受欢迎,对象数据库技术已明显地移向非工业方面的应用。,由于面

11、向对象技术在观察、分析问题时更接近人类的思维方式,所以模型中的对象与真实世界的实体或概念有自然的对应,并可随环境的变动,修正系统中的对象属性或方法,以适应复杂多变的产品开发类型。,15.2.3 应用程序设计程序,越来越强调流程的整合是迫使采用面向对象数据库的原由。面向对象数据库的应用领域非常广泛,而它的特质就是具有非常复杂而有效的信息,面向对象能以更自然及更易了解的方法来呈现问题的解决。,面向对象数据库引入面向对象的新概念于数据库中,同样使用面向对象的方法仿真传统数据库的功能。因此,其优点为比传统数据库多了“面向对象”的功能。面向对象的功能是在对象与对象之间拥有多样化的关系。,通常面向对象数据

12、库下列的优点胜过关系型数据库:(1)一个更真实,更有力的数据模型。(2)处理更复杂的对象。(3)在实体之间的继承关联。,(4)在模式层之内结合对象的行为与对象的定义。(5)在集合继承之间的内隐连接以对象识别码为基础。(6)版本的机制。,(7)较好的交易与并行管理。(8)表达更佳的查询语言。(9)对合作的工作有较好的支持。,15.2.4 面向对象数据库的最佳化,面向对象数据库管理系统将保证大部分的最佳化责任,允许用户规范高层以外的陈述,指引什么样的最佳化需被执行。面向对象数据库的演进,如图15-1所示。,图15-1,15.3 技术整合,在整合面向对象和数据库的技术时,首先要考虑的问题是:对象在什

13、么时候该被保存起来,未来将如何取用这些对象。,解决了保存对象的问题之后,接下来要处理的是对象共享时所产生的管理问题。在一般的数据文件中,并无法做到对象保密及安全性的控制,数据文件中的对象可随意让人使用。,通过数据库管理系统的使用,程序设计者可以将应用程序产生的数据放到数据库里,而不需要操心如何将这些数据存放在存储器中。当需要任何数据时,只要跟数据库系统说明,系统便能快速地把你所需要的数据取出来。,面向对象数据库管理系统,最大的特点之一就是:能直接记录复杂的数据结构,而不需将之拆成一个个的片段。使用面向对象数据库系统,可以让应用程序直接、紧密地与数据库结合,使得应用程序无需花太多额外的力气在数据

14、库系统的沟通及数据转换的工作上。,基于以上的因素,一个要求具备下列条件的数据库便应运而生:(1)能提供丰富的数据类型。(2)能直接处理复杂对象而没有数据格式转换的问题。(3)能提供与传统数据库相同的管理及服务。(4)能兼顾系统的弹性。,15.4 数据接口,数据接口部分是OOD模型中负责与具体的数据管理系统衔接的外围组成部分,它为系统中需要长久存储的对象提供了在选定的数据管理系统中进行数据存储与恢复的功能。,OOD模型中的数据接口部分就是这样一个组成部分:它负责将应用系统中的对象在选定的数据管理系统中进行存储,并将存储结果恢复到应用系统。它所要解决的问题,可以通过以下的讨论而明确范围。,(1)对

15、象在内存空间的存储是由编程语言自动解决的,不需要设计者做什么事。(2)只需考虑对象属性值的存储。(3)并非所有的对象都需要长期保存。(4)如果使用的面向对象编程语言能够支持永久对象的表示和存储管理,不需要设计者做更多的工作。,数据接口部分的设计所瞄准的问题可以归结为:在选用的编程语言和数据管理系统不能直接支持对象永久存储的情况下,通过一个专门设计的模型组成部分,实现应用系统与数据管理系统的接口,以解决应用系统中需要长期保存的对象的属性值在外存空间的保存问题。,15.5 对象存储方案和数据接口的设计策略,本节针对文件系统、RDBMS和OODBMS三种不同的数据管理系统,分别讨论相应的对象存储方案

16、和数据接口部分的设计策略。,15.5.1 针对文件系统的设计,对象在内存空间和文件空间的映像。由于应用系统的具体要求和实现策略不同,对象实例在内存空间和文件空间的存储映像也有不同的映射方式:,(1)每个需要永久存储的对象,都在内存空间建立一个对象实例,同时又在文件中保存一个记录。(2)一个类的每个对象都在文件中对应着一个记录,但是在内存空间却只根据算法的需要创建一个或少量几个对象实例。,对象存放策略。用文件系统存放对象的基本策略是:把由每个类直接定义,并需要永久存储的全部对象实例,存放在一个文件中;其中每个对象实例的全部属性作为一个存储单元,占用该文件的一个记录。,为了在文件中高效地存储和检索

17、数据,一个重要的问题是努力在对象实例和文件记录之间建立一种有规律的映射关系。在以下情况下,这种努力将取得明显的效果:,(1)对象名称呈线性规律的情况(2)对象关键字呈线性规律的情况(3)对象名称或关键字可以比较和排序的情况,一个类使用一个文件,一个对象对应文件中的一个记录是基本策略。进一步的决策要根据应用系统的具体特点与要求,考虑以下问题:,(1)一个类是否有大批量的对象实例需要永久存储?(2)对象名称或关键字是否呈现某种规律?(3)应用系统经常需要按照什么条件进行检索?(4)是否需要经常地插入或删除对象?,设计数据接口部分的对象类。一个最主要的对象类是为所有(需要在文件中存储数据的)其他对象

18、提供基本保存与恢复功能的对象类,可将它命名为“对象存取器”。应用系统中各个类的对象是按关键字存取,还是按对象名称存取,还是二者兼而有之,这将对“对象存取器”类的设计提出不同的要求。,图15-2中的三个特殊类照原样继承了“对象存取器”的属性,但继承来的服务是多态的,算法各不相同。,图15-2,问题域部分的修改。由于每个需要长久保存其对象实例的类都需要上述属性和服务,因此可以增加一个一般类来定义它们,作为共同协议,供所有这样的类继承。,以上策略可能使问题域部分的某些类由原先的单继承变为多继承,所以对不支持多继承的编程语言可能不适应。解决办法是:,(1)在较高的层次继承“存储协议”。(2)在出现问题

19、的类中自己定义所需的属性与服务。(3)采用化解多继承的策略。,系统至少在以下几种时刻需要保存或恢复对象:(1)系统每次启动时要恢复所有需要预先恢复的永久对象。(2)系统停止运行之前要保存在本次运行期间曾经使用而未曾保存过的永久对象。,(3)自系统启动以来首次使用一个未曾恢复过的永对象时要首先恢复。(4)在与其他应用系统共享对象数据的情况下,要根据共享机制的数据一致性保证策略所要求的时刻保存或恢复对象。,15.5.2 针对RDBMS的设计,对象及其对数据库的使用。使用RDBMS和使用文件系统相比,有以下几点不同:(1)对象可能非映射式地使用库中的数据(2)可能需要数据格式转换,对象在数据库中的存

20、放策略。用关系数据库存放对象的基本策略是:把由每个类直接定义并需要永久存储的全部对象实例存放在一个数据库表中。,1)对象数据的规范化 关系数据库要求存入其中的数据符合一定的规范,并且用范式来衡量规范化程度的高低。,(1)第一范式(1NF):关系(表)的每个属性都必须是原子的。就是说,关系的每个属性都是单值的,它不包含内部的数据结构。(2)第二范式(2NF):如果一个关系的所有非关键字属性都只能依靠整个关键字(而不是依赖关键字的一部分属性),则该关系在第二范式中。,(3)第三范式(3NF):如果一个关系在第二范式中,而且没有传递依赖,则该关系在第三范式中。(4)Boyce-Godd 范式(BCN

21、F):如果一个关系的每个决定因素都是候选关键字,则该关系在BCNF中。(5)第四范式(4NF):如果一个关系在BCNF中,而且没有多值依赖,则该关系在第四范式中。,为了表示某种事实已经不存在而删除一个元组,可能导致体现另一种事实的信息被同时删除(这是删除异常);或者,由于一种事实尚未发生,导致体现另一种事实的数据无法插入到表中(这是插入异常)。如图15-3所示的例子。,图15-3(a),图15-3(b),图15-3(a)是一个数据库表(关系)。该表符合2NF,但是它不符合3NF,因为有传递依赖,即Fee依赖Building,而Building又依赖SID。这种传递依赖所带来的更新异常问题是:当

22、一座建筑物中的最后一位房客(例如表中的150号学生)退房时,删除相应的元组将导致反映这座建筑物收费多少的信息从表中消失;反之,在一座建筑物无人入住之前,关于它收费多少的数据也无法插入到表中。,这个表进行规范化的办法是把它分解成如图15-3(b)所示的两个表,一个反映每学生住在哪座建筑物,另一个反映每座建筑物的收费标准。这样一来,以上两种信息的插入和删除不再相互制约了。,总结以上的讨论,可得到以下几点认识:(1)OOA得到的类其属性很可能是非原子的。(2)运用面向对象技术,可以在很大程度上解决2NF、3NF、BCNF以及4NF所要解决的更新异常和数据冗余问题,但是不能保证在任何情况下都能解决上述

23、问题。(3)遗留的问题可通过常规的规范化策略解决,但是未必规范程度越高越好。,2)修改类图。规范化意味着,从类图中原有的类到数据库表,数据格式发生了变化。现在的问题是如何在设计中体现这种变化。有以下两种策略:,(1)保持原先的类图不变,只是按规范化的结果定义数据库表。(2)按照规范化的要求修改类图,无论是各个类内部的属性变化,还是把一个类分解成两个类,都体现为对类图的修改。,3)确定关键字。对每个需要在数据库中存储其对象实例的类都要确定一个关键字。,4)从类图到数据库的映射。以下通过几个例图讨论几种典型情况的处理:,(1)对一般-特殊结构的处理。如图15-4所示的一般-特殊结构中,假定A是一个

24、不用于创建对象实例的类(称做抽象类),B、C和D都要创建对象实例。,图15-4,(2)对关联的处理。对关联的一般实现策略是,在连接线一端的类中定义一个(或一组)属性,它的值表明另一端类的哪个对象实例与本端的对象实例相关联。,对于一对一的关联,无论在哪一端的类(以及它所对应的表)中设置这样的属性均无不可。但是在哪一端设置更好些还值得进一步考虑。如图15-5所示的情况,设置在A端比设置在B端更便于实现。,图15-5,对于一对多的关联,没有别的选择,只能从多重性约束为“*”的一端指向多重性约束为“1”的一端。例如在图15-6中,应该在A类定义指向B类对象的属性。,图15-6,多对多的关联可化为两个一

25、对多的关联,例如图15-7(a)可以化为图15-7(b)。这种转化应该在类图中完成。,图15-7(a),图15-7(b),(3)对整体-部分结构的处理。当应用系统永远不可能把整体对象和它的部分对象分开并进行重新组合时,通常可以采用紧密、固定的实现方式。但是在实践中即使对这种情况也可以采用松散、灵活的实现方式。,数据接口部分对象类的设计和问题域部分的修改。在采用RDBMS的情况下,系统需要经常执行的操作,是把内存中的对象保存到数据库中,以及把数据库中的数据恢复成内存中的一个对象。可以把这些操作分散到各个需要长期保存的对象类中设计和实现。,这里要介绍一种集中解决方案,即把这些操作集中到一个对象类中

26、,由这个类为所有需要永久存储的对象提供相应的服务。这个类就是数据接口部分的对象类。,这个类的名称,也可以像针对文件系统的设计一样,称做“对象存取器”。它提供“对象保存”和“对象恢复”两种服务。执行这些服务需要知道被保存或被恢复的对象的下述信息:,(1)它在内存中是哪个对象。(2)它属于哪个类。(3)它的关键字。,每个要求在数据库中保存其对象的实例的类都有与其他类不同的类定义,特别是每个类的关键字所包含的属性数目、名称及数据类型都可能不同。这里首先介绍一种容易实现的设计方案。该方案是针对每个要求保存和恢复的对象类,分别设计一个“对象保存”服务和一个“对象恢复”服务,如图15-8(a)所示。,另一

27、种方案是在“对象存取器”类中只设计一个“对象保存”服务和一个“对象恢复”服务,供全系统所有要在数据库中存储其对象实例的类共同使用,如图15-8(b)所示。,图15-8,15.5.3 使用OODBMS,当选用OODBMS作为数据管理系统时,从应用系统到数据库,从内存空间到外存空间,数据模型都是一致的。因此对象的永久存储问题比选用文件系统和RDBMS都简单得多,几乎不要为此再做更多的设计工作。,类图中的类一般不需要类似于规范化的改造。也不需要专门设计一个负责其他类的对象保存与恢复的对象类。,需要考虑的主要是如何用OODBMS提供的数据定义语言(ODL)、数据操纵语言(DML)以及其他可能支持普通编程语言来实现OOD模型。,小结,本章主要介绍数据管理系统的两大类别以及如何选择,各自具有的优势和不足。根据目前市场的情况,重点介绍了关系型数据库的理论基础,数据库管理系统等内容。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号