仓储管理系统的数据库设计与实现(精华)_第1页
仓储管理系统的数据库设计与实现(精华)_第2页
仓储管理系统的数据库设计与实现(精华)_第3页
仓储管理系统的数据库设计与实现(精华)_第4页
仓储管理系统的数据库设计与实现(精华)_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、天津大学硕士学位论文仓储管理系统的数据库设计与实现姓名:刘红卫申请学位级别:硕士专业:软件工程指导教师:任长明;唐天强20070101中文摘要本论文课题是以天津开发区泰达公共保税仓为背景,根据该公司的实际工作流程、业务处理方法以及内部管理模式,并结合管理信息系统开发的概念、结构及系统开发的基本原理和方法而设计开发的一套仓储管理信息系统。仓储管理系统数据库的设计,要求能满足用户的当前要求,有较高的性能,并具有良好的可扩展性,以满足企业未来的业务发展需要。本文对目前数据库设计建模技术进行了分析,指出传统建模设计方法的局限性,在实际数据库设计过程中,以关系数据模型的规范化设计理论为依据,使用统一建模

2、语言()和面向对象技术进行了数据库的设计。本文从对象映射和关系映射两个方面,针对对象类图的不同关联模式,详细讨论了由对象类图向关系数据模型映射的方案,在实际设计中针对企业需求利用各种映射方案进行设计。本文还对数据库建模的命名方法进行了分析,建立了便于理解、维护和扩展的数据库命名规范。在设计中还充分考虑未来数据库运行的性能问题,合理使用反规范、表空间划分、索引、存储过程及触发器等设计方法来提高数据库的性能。在系统数据库实现时,采用了数据库产品,并根据实际应用情况对? 进行了优化配置,从而,仓储管理系统的整体性能得到提高了。化关键词:仓储管理,信息系统,数据库设计,数据库建模,性能优, , ,?

3、, ,:,独创性声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得鑫盗盘堂或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。学位论文作者签名:勿乏签字日期:刖年月彦日学位论文版权使用授权书本学位论文作者完全了解丕鲞盘堂有关保留、使用学位论文的规定。特授权苤鲞盘堂可以将学位论文的全部或部分内容编入有关数据库进行检索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国家有关部门或机构送交

4、论文的复印件和磁盘。(保密的学位论文在解密后适用本授权说明)学位论文作者签名:刎彳匕签字同期:力年罗月多日导师签名:丝旄饧签字嗍:秒年夕月莎日第一章绪论课题的背景第一章绪论伴随我国物流产业的不断发展壮大,仓储管理系统(简称)也逐渐成为国内各大第三方物流(简称)企业第一关注的热点,可以说已经成为事关企业生死存亡的一个最为关键的因素。目前国内外主要做的公司主要有:、博科、中软冠群等。各软体开发商的产品在功能、架构、适应性、数据库结构设计等方面都各有千秋,市场竞争十分激烈。位于天津开发区的泰达公共保税仓(简称)是从事的企业,伴随天津滨海新区的发展纳入国家发展规划的大好前景下,发展的未来前景变得非常广

5、阔。随着滨海地区国内外大型企业的不断进驻,这些企业对的服务要求更为全面和具体,而且他们对的考察成为合作与否的第一关键因素,仓储管理的目标是方便地进行高效率的货物移动和库存的控制。一项由“仓储教育和研究协会”做出的研究表明,最好的仓储运行机制可以获得的订单准确率和的准时出货率,”零误差”被认为是可以接受的目标。而通过天津开发区泰达公共保税仓运作经验表明,想达到仓储作业的高效和准确,一套优秀的仓储管理系统是非常重要的,拥有一套功能全面、性能稳定的成为公司发展的头等大事。一个运行良好的需要有运行稳定、高效并具有良好的可扩展性和维护性的系统数据库的支持,系统数据库设计的质量直接关系到未来的成败,同时,

6、一个合理的数据库结构有利于程序的实现。课题的目的和研究方法本课题研究的目标是建立具有运行稳定可靠、性能高效并具有良好的可扩展性和维护性的系统数据库,来保证系统的顺利开发和投入运行。数据库是信息管理系统的后台,存储着所有的信息,在信息管理系统中有着很重要的地位。数据库设计的好与坏,直接影响到这个系统的运行效率。良好的数据库设计,可以提高数据信息的存储效率,保证数据信息的完整性和一致性。传统的数据库设计方法存在着许多问题和局限性。仓储管理系统的设计中拟运用设计建立系统数据库模型,使系统数据库数符合规范,类之间的关第一章绪论系在系统数据库中得以反映,使系统设计和数据库设计使用相同的模式,使得面向对象

7、概念和系统数据库设计保持一致,便于开发人员之间的交流,保证了系统开发的顺利进行。在数据库性能方面提出了更深入的研究,一是硬件方面对数据库设计进行探讨;二在数据的存储方式和存储空间方面提出新的方法以优化数据库的性能;三从数据库内在结构方面研究数据库性能调整方法。课题的研究方法是根据对仓储管理系统的系统分析结果,使用数据库建模工具采用和面向对象技术对系统数据库进行分析建模,并对生成的模型进行评审并根据评审结果反复修改,并且在实际设计中充分考虑未来数据库的性能,合理使用反规范、表空间划分、索引、存储过程及触发器等方法。利用将设计转化成的实际数据库结构。通过对实际开发中反馈的数据库的设计问题以及性能问

8、题,再对进行数据库设计和数据库系统进行性能调整。设计的系统数据库最终满足的功能开发的要求,的主要功能包括:仓库与各分库的层级划分、分库内仓储区域及货位的层次关系、货位的结构设计、入库流程、上架策略、出库流程、补货、盘点、退货、保税处理、。库存转移、库存调整、费用流程、报表管理等。主要工作和章节安排本文在阅读了大量有关书籍和参考资料的情况下,结合以往项目开发经验和天津开发区泰达保税仓的业务流程和实际操作情况,根据用户的需求进行了深入的分析和研究。主要完成了以下工作:进行详细的需求分析和系统分析,以用户的需求为准则,根据泰达保税仓业务实际情况和特点,设计数据库结构。设计的数据库能满足用户的当前要求

9、,有较高的性能。并具有良好的可扩展性,能满足企业未来的业务发展需要。根据传统的数据库设计方式存在的缺点,提出采用了和面向对象的建模技术()设计数据库的方法。通过系统分析建立系统的对象模型,并将建立的对象模型按照相应的映射规则,映射为关系数据库中的关系模式,并为各关系模式建立相应的约束。在数据库设计过程中充分考虑未来系统的性能、开放性和可扩展性。仓储管理系统的数据库最终在关系型数据库系统上实现,并结合的实际特点对数据库系统的实际应用进行了优化。第一章绪论本文章节安排如下:第一章绪论第二章数据库建模意义与策略第三章仓储管理系统的分析第四章仓储管理系统数据库的设计第五章仓储管理系统数据库的实现第六章

10、总结及展望第二章数据库建模思想与策略第二章数据库建模意义与策略数据库建模的意义现代信息系统大多是以数据库为核心,利用数据库技术来帮助管理信息,实现数据的收集、整理、存储、检索、更新、加工与传递等操作。因此,对于一个软件系统的开发来说,数据库设计是否成功是一个项目成败的关键。数据库设计是指针对于一个给定的应用环境,以规范化理论为依据,实体间的关系为基础,建立实体结构及其相互关系的技术,是信息系统开发和建设中的核心技术。其目的是有效地存储数据,满足各种用户的应用要求。系统最终是否能被用户接受,数据库设计是至关重要的。如何设计一个有效的数据库是信息系统设计的一项极为重要的任务,也是一个复杂的系统过程

11、,它是指对于一个给定的应用领域(即问题域),提供一个确定最优数据模型与处理模式的逻辑设计,以及一个确定数据库存储结构与存取方法的物理设计,建立一个既能反映现实世界信息和信息联系、满足用户对数据的要求和加工的要求,又能被某个所接受,同时又能实现系统目标并有效存取数据的数据库及其应用系统。数据库设计是一个反复的过程,应用建立模型的方法进行设计,可以使这种经常性的变化更易于管理和理解,它要蟠氩岸阅妥龈亩庋涂梢?明白每次改变在实现上产生的变化,分析是否要做这种变化以及其他要做的选择。例如,一个对关系或键码列所做的改动将影响基于它的几个表。因为键码迁移和由键码迁移而引起的变化叠加,将会引起数据丢失和不完

12、整。在模型驱动开发中,在数据库中被实现之前,所有的变化都先在模型中改变。通过使用模型驱动开发,可以消除大多数意外,可以在将变化直接实施于数据库之前看到变化的结果嗍。,关系数据库模型是一种非常精巧、清晰的模型,关系理论中的概念经受了长期的考验己经使关系数据库成为行业标准,并提供了一个简单的应用开发接口。随着信息结构与系统的应用环境不断趋于复杂化,软件工程人员愈加认识到数据库模型与建模方法选择的重要性。使用何种建模方法对应用数据库系统进行有效的建模是我们应该考虑的问题。仓储管理系统的设计中运用设计建立系统数据库模型,使系统数据库模型数符合规范,类之间的关系在系统数据库中得以反映,使系统设计和数据第

13、二章数据库建模思想与策略库设计使用相同的模式,使得面向对象概念和系统数据库设计保持一致,便于开发人员之间的交流,保证了系统开发的顺利进行。传统的数据库设计方法存在的局限性由于数据库设计是一个复杂的系统过程,人们一直希望有一套科学而又实用的设计方法,长期以来人们利用软件工程学的观点提出了许多数据库设计方法,主要有结构化设计方法、基于的数据库设计方法、多级法和方法等,这些方法的出现大大方便了数据库的设计,对数据库设计走向规范化、标准化起到了巨大的推动作用。传统的数据库设计方法主要是基于模型的设计,通常是在一个通用支持下,对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够

14、有效地存储数据,以满足各种用户的应用要求(信息需求、处理要求等)。这种方法虽然方便了数据库模型的设计,推动数据库设计的规范化和标准化,但当数据库越来越庞大、应用越来越复杂、用户要求越来越高时,则逐渐暴露出一些问题聆。这些局限性主要表现在以下几个方面脚: 不利于准确地映射问题域和准确地反映系统责任。数据库设计就是要求建立一个既能反映现实世界信息和信息联系,又能满足用户的数据要求和加工要求的数据库。不能适应企业管理信息系统业务的发展,变化和重组。随着社会的发展,企业本身在不断地发展,企业的规模,企业的业务、业务量以及需求都在不断地发生变化之中,设计的数据库必须要能够适应这种动态的变化,只有这样才能

15、提高软件的生存周期。分析过程各个阶段独立性较强,环节多,各阶段之间转换的质量难以保证,如果某一阶段发生变化或者修改,将牵涉到前一阶段的内容,并影,响到后续阶段发生变化和修改,增加了数据库设计的工作量。各开发人员之间的交流与通信存在一定障碍。由于需求分析人员、数据库设计人员、编程人员以及用户等,他们没有使用一致的问题表示方法,这就使得彼此交流存在了困难。软件的可复用性差,软件开发效率和质量不尽如人意。由于上述问题和其它问题的存在,人们开始研究新纳杓品椒孀琶嫦蚨?象技术的发展,我们很自然地想到使用面向对象的方法进行数据库的设计,并使用眦来描述整个系统。这样就使得数据库的设计从需求分析、模型的建立、

16、到第二章数据库建模思想与策略系统设计和实现有了一个统一的开发标准,从而为系统的维护和当需求发生改变时,重新调整系统带来了很大的方便。鉴于此,面向对象的统一建模方法目前已逐步取代了传统的方法,成为计算机软件工程学中的主流方法。该方法一方面可以分析、设计出完善的软件系统,另一方面又可以完成数据库的设计,把这两个过程统一在整个软件分析设计全过程中,相对传统的基于模型的方法来说,更有助于提高开发的效率。 数据库建模概述 数据库建模机制由公司的专家,和联合完成的统一建模语言(眦),是当前主流的面向对象的软件开发建模语言,也是最有前途的建模语言哺。的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的

17、应用领域,主要用于建立软件系统的模型。帆语言中视图非常丰富,主要可分为用例图、静态图、行为图、交互图和实现图五类,通过这几类视图可以全面的描述一个数据库应用系统。用例在工程开始就创建,以便于理解构建数据库系统的需求,这个过程可以不断反复进行,为建造数据库的表、列等提供一个好的开端。要理解数据库会有哪些访问者及他们需要什么类型的信息,用例也可以提供一个好的开端。理解众多用户或系统参与者及他们所要求的信息类型,可以使设计者一开始就对数据库将如何增长、增长多快有个了解。活动图是用来描绘用户在系统中活动的过程,及他们是如何与数据库交互的。从活动图中可以得到许多标记值,它们有助于设计者了解使用数据库的频

18、率。一个活动中事件发生的时间可以通过这些标记值而得到,它们有助于再次弄清数据库的使用频率。活动图不是具体到那些将要被访问的特定数据上,而是为考察一些问题哪些数据将被获取及频度怎样,哪些活动会引起数据库的访问一提供一个高层次的视角。顺序图通过发现应用软件和数据库中的对象,并把它们变为类和表,以建造数据库和开发应用软件的结构。顺序图中对象的相互作用反映了对象之间怎样通信和通信所用的方法。通过弄清对象的通信方式和获取信息的频率,数据库设计者可以知道如何获取数据,怎样设计索引。至于数据库的分布,数据库设计者使用顺序图了解数据增加的频率,以估算数据库的大小和增长速度。了解对象之间的相互作用,数据库设计者

19、不仅能将对象间的作用可视化,而且为数据库访问频第二章数据库建模思想与策略度建模。通过捕捉能描述数据库的结构实体、属性和关联,类图帮助数据库设计者建造一个逻辑设计模型,而且还可以提供如何划分数据的知识。持久稳定的实体通常会转变成数据库中的表,但它们也可能合并成别的表或划分成多个表。通过回顾逻辑模型,理解系统的初始意图,不用使用非规范的数据库设计方法,数据库设计者就可以知道应用元素或类如何互相通信,以及哪些数据有可能被哪些类访问。理解了逻辑设计之后,数据库设计者可以按照用户的意图建立表空间,根据用户可能的访问情况存储数据,而不是仅仅从表的建立过程中得到的摘要来完成这些工作。在表内创建分区,提供了在

20、不同驱动器上存储表格各部分数据的能力。另外,通过了解系统意图一为什么创建数据库和哪些数据会存储到数据库中一数据库设计者可以做出有根据的决定,而不仅是猜测口,。 建模过程统一建模方法由用例()驱动整个开发过程,分为捕获需求、分析、设计、实现和测试等阶段,每个阶段都是在前一阶段的基础上的进一步细化,呈增量迭代式发展。具体的方法步骤如下:捕获需求阶段:先由用户、分析人员和开发者积极交流,分析、提炼用户对系统的需求,并描述出来。然后在此基础上建立业务用例模型、业务对象模型,用模型来完整地表达和细化用户需求。分析阶段:在前一阶段基础上进行功能抽象和数据抽象,功能抽象得到系统分析包,数据抽象得到分析类及其

21、相互之间的关系。设计阶段:对分析阶段的成果进一步细化,细化分析类的方法和相互问关系,细化各个子系统的接口和相互问交互,得到实现时可以使用的设计模型。实现阶段:编码实现设计,并进行单元测试、集成测试【】。统一建模方法的分析设计成果通过建模工具的一系列视图表示,包括用例图、类图、对象图、活动图、顺序图等等,易于开发人员与用户交流和开发人员之间的交流、改进。第二章数据库建模思想与策略回图统一建模方法各种图的应用阶段从图可以看出,最初通过用例图获取用户需求,然后对获取的每个用例用活动图或时序图描述其内部的逻辑流程,在形成时序图的过程中可以实现对类的提取以及对类所应具有的操作的提取。而组件图则是对用例图

22、的进一步细化以及对类和代码更大力度的封装口。尽管可以应用于任何开发方法中对任何系统建立模型,但它特别适合采用面向对象的思维方式对软件建模。现代软件项目的规模越来越大,越来越复杂,建立简明准确的模型是把握系统的关键。总之,地是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和薪技术。 建模和传统方法的比较传统的数据库开发都是要求设计者构造两个数据模型。一个用来支持用户需求的逻辑模型,它不涉及物理实现:另一个是物理数据模型,此时逻辑数据模型被转换成物理数据模型并被实施。从传统上说,逻辑和物理数据模型是大不相同的,逻辑设计完成后进行实际的数据库设计。构造一个

23、数据模型,即逻辑数据模型的物理实现。之后,物理数据模型被用于创建实际的数据库。这种方法的好处是分析集中在收集逻辑需求上,而不会因性能考虑搅乱思考。在分析末尾,我们,确信已经有宁一个可以支持己收集的大多数与数据有关的业务规则的模型。然后这个模型被定型,形成一个数据库。然而,分析结束并不意昧着需求不再发生变化。利用传统的方法,必须维持两种模型一逻辑和物理模型。若利用当前可用工第二章数据库建模思想与策略具,保持这两种模型的同步不容易。在面向对象方法中,面向对象不仅是程序设计的基础,而且也是数据库设计的基础。在考虑数据库建模时采用面向对象的统一建模方法,就不再把逻辑模型看作是物理模型构造单独的一步。在

24、分析过程中,创建一个与物理实现问题无关的分析模型。在分析完成和开发开始时,将这个模型进一步扩展,这样其所代表的不仅是成熟的理解,而且也包括支持实现需求所需要的修改,所以与其有一个逻辑数据模型,不如有个始于纯粹逻辑模型的数据模型,该数据模型最终就能表达所有与系统需求相关的数据,并用来产生物理数据库。这种方法产生了构造一个系统时既支持逻辑的又支持物理的单一数据模型。这种统一方法的便利之处在于只需维护一个模型。数据模型仍然应该被定期地更新版本,这样当我们准备创建一个真正的数据库时,我们就会有一个准确代表数据相关的业务规则的模型。在数据库建模应用中,模型与传统的模型进行比较,它们之间的主要差别可以从以

25、下几个方面看出:模型只实现了实体一关系建模,但不能对需求分析、系统交互、系统实现等做出建模实现,其对于实体一关系的实现也不如那样直观、规范。模型只能实现对于数据库中相关实体及其关系的设计,不能实现对于整个数据库应用系统的模型设计。而基于的面向对象数据库建模不仅能够实现对数据库系统中的实体及其关系进行设计,还能够很方便地实现整个数据库应用系统的模型设计。基于的面向对象数据库建模支持软件系统和数据库系统开发的全过程,有利于系统在需求发生变化时进行系统维护和功能扩展,并为开发人员之间或开发人员与用户之间进行技术交流或业务交流提供了方便。同时,由于基于的面向对象数据库建模使用了标准建模语言,使得即使不

26、懂数据库设计的程序设计人员也能方便地进行交流。另外,由于采用标准建模语言,可以借助流行的工具(如:、等),这样将便于开发人员维护技术文档,使系统文档便于版本更新。面向对象的统一建模方法是一个整体的方法,一方面可以分析设计出软件程序,另一方面又可以完成数据库的设计,把这两个过程统一在整个软件分析设计全过程中,相对传统图法来说可能有助于提高开发效率。第二章数据库建模思想与策略 数据库建模策略数据库建模比传统的有更为丰富和灵活的建模方式,向用户提供了一种随时可用的可视化建模语言开发和交换有意义的模型;为扩展和新概念提供了扩展和规范机制:独立于特定的编程语言和开发过程;为理解模型语言提供了正式基础:支

27、持较高层次的开发概念。札是一个面向对象的建模工具,而关系数据库是建立在关系数学模型上的概念,因此如何建立面向对象模型和关系数据库模型之间的映射关系是数据库建模的关键。对象模型和关系数据库模型的对比如表所示。表对象模型和数据库模型对比表对象模型 数据库模型 类图的映射策略类图是面向对象系统的建模中最常见的图之一。类图显示了一组类、接口、协作以及它们之间的关系,主要用于对系统静态设计视图建模口。其中,类是面向对象系统组织结构的核心,表示被建模的应用领域中的离散概念,是具有相同结构、行为和关系的一组对象的描述符号。中类图的映射主要是指对象标识、属性类型、类这三个方面的映射揖。对象标识映射为主键设计数

28、据库模型,合理选择主键是一个关键的问题。一般定义主键可以有两种方法:()为每个类增加一个对象标识符()属性,将其映射为数据库中相应类表的主键。参见图,其中()表示主键。对象标志符作为单独属性,所占空间较小而且大小相同,从而大大简化了主键选择方案,使得数据第二章数据库建模思想与策略库更新时不会产生完整性问题,同时方便了数据库操作。唯一的遗憾是对象标志符不具有实际意义,不能反映实际内涵。酬哪雠棚何瞬宪曩岛镧幻嘲叩嘴棚棚曲惮联主曩)瞳蛳细岛删麓 专鸟蛔岛由瓣图对象标识符影射为表中主键()根据客观事实,将某个属性或属性的组合作为主键。该主键具有实际意义,容易进行维护;缺点在于涉及到外键,一旦其他类发生

29、变化,更改比较困难。属性类型映射为域类的属性描述了其所有对象共有的特性。属性的类型可以是基本数据类型,如整数、实数、布尔型等,也可以是用户自定义类型。属性类型对应于数据库中的域,域的使用可使数据库设计更具一致性,优化了数据库应用的移植性。一般来说,实现简单域比较方便,只须定义相应的数据类型和空间大小。对于每个属性所映射的域,必须为该域的约束条件加入一条语句,用以约束、检查域的取值。类映射为表通常,一个类映射为一张类表,类的属性映射为表的各列,类的对象则映射为表中的各个记录。值得注意的是存在以下两种特殊情况:()类的属性中某些属性只是暂时性使用,不需要在数据库中永久保存,则该类属性无须映射。()

30、类的属性如果是多值,则该属性映射为多个列。另外,由于附加对象标志符或附加关联关系等原因,需要在表中增加一些新的列。 类关系的映射策略众所周知,类图由一系列类、接口和它们之间的关系(关联、泛化、聚集和组合等)所组成明。其中泛化、聚集和组合具有单项导航性,即单一的方向性,而关联导航,既可以单向,也可以双向,见图。由于关联导航的特殊性,可能在类图中会出现冗余。在设计数据库之前,我们可以对类图进行简化,去除一些冗余的关系。第二章数据库建模思想与策略单向导航关联 双向导航关联、图导航关联关联关系的映射中的关联关系描述了系统中对象或实例之间的离散连接,是一种结构关系,规定了一种事物的对象可以与另一事物的对

31、象相关联。当类参与关联时,类在关联关系中扮演一个特定的角色。关联涉及的对象数目称为阶元,阶元的大小反映了关联的多重性,一般在关联端标出。常用的阶元标记有“、“”、“木等,分别表示个或个、个、多个对象参与该关联。根据阶元的数目可将关联划分为种嘲:一对一关联,零或一对一关联,一对多关联和多对多关联。()一对一关联:一图一对一关联关系影射图中,表示的一个对象与的一个对象关联。在这种情况下,可在两个类中任意选择一方,在其所对应的类表中添加一个外键(),指向另一方所对应类表中的主键,从而实现两张类表之间的连接,将关联关系成功映射到数据库中。需要注意的是,不要在两个表中均放置对方的主键,这样会造成冗余。(

32、)零或一对一关联:图零或一对一关联图表明的一个对象可与个或个对象发生关联,一般在类(即对象个数为零或一的那一方)所对应的表中添加一个外键,指向另一方类所对应的类表中的主键,建立两表之间的连接。此时,外键作用类似于面向对象技术中的指针,参见图。第二章数据库建模思想与策略类表 (主键) (外键)类表一 (主键)图:外键关系()一对多关联:表示的一个对象与的多个对象关联,这种关联关系可以通过在类(即具有多个对象的类)所对应的类表中增加一个外键,指向另一方类的主键,从而建立两个表之间的关联,参见图。 岛“砖弘删。 岛岛喇舶嘲豫 ?岛删瓣冬叫凼胁土白枷由臁岛蕊:钯参跬类表 (主键) 类表 (主键) (外

33、键)图一对多关联第二章数据库建模思想与策略图多对多关联实现多对多关联,通常需要建立一个关联表,映射关联对象,从而将多对多关联转化为两个一对多关联。实现时,在新建的关联表中设置一个对象标志符,同时增加两个外键,分别指向初始关联的两个类对应表的主键,参见图。麓赣翮 翻嘲隋岛“幽嗍蒯 巷粉溯煳润岛如赫喊黻獬? 岛眦钱参例粕蹴参)审类表 (主键)类表类表 (主键) (主键) (外键) (外键)图关联表的应用泛化关系的映射泛化关系是类元的一般描述和具体描述之间的关系,具体描述建立在一般描述的基础之上,并对其进行了扩展。从实现的角度来看,的泛化体现了分类与继承原则,与面向对象程序设计语言中的继承性概念相关

34、。一个子类继承超类的全部属性和方法,一个子类本身又可以有自己的子类,从而构成复杂的一般特殊结构。在关系数据库模型中没有直接的方法实现泛化,这里可以通过种方法实现第二章数据库建模思想与策略其映射。()类层次映射为单个表。通过这种方法,将泛化关系中所有类都映射在单个表中,所有类的属性都保存在该表中:同时在表中增加一个对象标志符,以及一个对象类型,用以标识角色类型,如图所示,这种映射方法支持多态,不足之处是当泛化关系中任一类发生变化时都会影响该表,导致耦合性的增加,同时占据了较大的存储空间。单张类表 (主键)图类层次映射为单个表()将超类属性分别复制到各个子类中,这样每个子类既包含自身属性,又包含超

35、类属性,同时在各个子类中增设各自的对象标志符,从而实现映射。在这个过程中,超类不需要参与映射,如图所示。类表图每个子类映射为单张表由于每张表包含单一类的所有信息,故这种方法对于执行报表、专门报告比较方便。缺点是当修改超类时,须对所有子类都进行操作,同时当对象类型发生变化时,需要进行复制处理,比较繁琐。()每个类映射为单张表。为每个类都建一张表,但每张表中的对象标志符都设为超类的类表中的。在子类的类表中,既是主键又是外键,各第二章数据库建模思想与策略自属性不变,如图所示。这种方法支持多态,较好地适应面向对象的要求,易于修改;但由于表数目较多,会造成访问数据库时间比较长。另外,每张表反映的不是单一

36、类的信息,所以不宜进行报表等工作。类表 (主键)类表 (主键)(外键)类表 (主键)(外键)图每个类映射为单张表聚集关系的映射聚集关系是一种特殊的关联关系,表示事物的整体部分关系较弱的情况,代表“(拥有)关系。在这种情况下,“部分”能够为多个“整体”所共享,并且“部分独立于“整体”而存在。将这种关系映射到关系数据库中,可分为两种情况:一种是聚集关系较为紧密的情况下,可将其映射在一张表中;另一种是聚集关系较为松散的情况下,可以用一对多关联的映射方法实现,须在子类的类表中增设一个外键指向超类的类表的主键。例如类和类之间存在着聚集关系,将该关系映射到关系数据库中,方法如图所示。类表 类表(主键) (

37、主键) (外键)图聚集关系的映射第二章数据库建模意义与策略组合关系的映射地中组合关系是一种特殊的聚集关系,表示事物的整体部分关系较强的情况,称为“联系。此时,“部分不能为多个“整体所共享,只依附于一个“整体而存在。例如,圆由点组成,圆和点之间就构成了组合关系。具体的映射策略与聚集类似,由于组合关系中整体和部分间存在很强的所有关系和一致的生命周期,所以子类所对应的子表中的外键不能为空。采用面向对象技术的统一建模过程在提高效率方面的优势是很明显的,其主要应用是将札分析与数据库设计相结合们¨。数据库建模工具建模工具作为信息系统逻辑设计的辅助手段越来越被广大系统开发人员所接受。建模工具的使用

38、有利于数据模型的规范化和模型结构的正确性,主要体现在以下方面:()开发资料规范化:在开发工具中使用了一套标准数据模型定义格式,能够生成符合语法标准的开发文档,能够统一每个程序设计人员的开发风格同时整个开发过程可以通过文字的形式保存下来,便于系统的调试和撰写各类开发文档。()便于了解数据库的特点:使用开发工具能够自动生成目标数据库语法逻辑分析人员或用户单位使用人员如果对目标数据库平台的语法规则不是很熟悉,可以借用开发工具了解数据库基本的语法定义便于尽快熟悉系统环境。()减少模型的错误:开发工具具有一定的检查功能,能够迅速地发现模型建立过程中的语法错误,保证实体、关系和属性间的正确性和合理性朝。是目前最为流行的数据库分析设计建模工具之一,它融入了软件工程技术、面向对象技术、数据库应用技术的最新研究成果,实现了业务流程模型(),统一建模语言(地)和实体联系()模型的无缝集成。其主要特点是:()将业务流程设计、对象设计、数据库设计和关系数据库无缝的集成到一起,一个集成工作环境中能完成面向对象的分析设计和数据库建模工作。()提供了完整的

温馨提示

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

评论

0/150

提交评论