首页 > 其他分享 >精读7.35读书笔记

精读7.35读书笔记

时间:2023-05-31 15:03:13浏览次数:49  
标签:精读 联系 7.35 实体 读书笔记 订单 冲突 冗余 属性

概念结构设计

概念结构设计的第一步就是对需求分析阶段收集到的数据进行分类、组织,确定实体、实体的属性、实体之间的联系类型,形成E-R图。首先,如何确定实体和属性这个看似简单的问题常常会困扰设计人员,因为实体与属性之间并没有形式上可以截然划分的界限。

  1. 实体与属性的划分原则
    在整体中遵循的一条原则是:为了简化E-R图的处置,现实世界的事物能作为属性对待的尽量作为属性对待。

(1) 作为属性,不能再具有需要描述的性质,即属性必须是不可分的数据项,不能包含其他属性。
(2) 属性不能与其他实体具有联系,即E-R图中所表示的联系是实体之间的联系。

  • 例1:职工是一个实体,职工号、姓名、年龄是职工的属性,职称如果没有与工资、岗位津贴、福利挂钩,换句话说,没有需要进一步描述的特性,则根据准则(1)可以作为职工实体的属性;但如果不同的职称有不同的工资、岗位津贴和不同的附加福利,则职称作为一个实体看待就更恰当,如图7.19所示。

image

  • 例2:销售管理子系统E-R图
    某工厂开发管理信息系统,经过可行性分析,详细调查确定了该系统由物资管理、销售管理、劳动人事管理等子系统组成。为每个子系统组成了开发小组。
    销售管理子系统开发小组的成员经过调查研究、信息流程分析和数据收集,明确了该子系统的主要功能是:处理顾客和销售员送来的订单;工厂是根据订货安排生产的;交出货物同时开出发票;收到顾客付款后,根据发票存根和信贷情况进行应收款处理。通过需求分析,知道整个系统功能围绕“订单”和“应收账款”的处理来实现。数据结构中订单、顾客、顾客应收账目用得最多,是许多子功能、数据流共享的数据,因此先设计该E-R图的草图。image

    然后参照需求分析和数据字典中的详尽描述,遵循前面给出的两个准则,进行了如下一些调整:
    (1)每张订单由订单号、若干头信息和订单细节组成。订单细节又有订货的零件号、数量等来描述。按照第二条准则,订单细节就不能作为订单的属性处理而应该上升为实体。张订单可以订若干产品,所以订单与订单细节两个实体之间是1:n的联系。
    (2)原订单和产品的联系实际上是订单细节和产品的联系。每条订货细节对应一个产品描述,订单处理时从中获得当前单价、产品重量等信息。
    (3)工厂对大宗订货给予优惠。每种产品都规定了不同订货数量的折扣,应增加一个“折扣规则”实体存放这些信息,而不应把它们放在产品实体中。
    最后得到销售管理子系统E-R图如图7.23所示。
    对每个实体定义的属性如下所示。
    image

  1. E-R图的集成

在开发一个大型信息系统时,最经常采用的策略是自顶向下地进行需求分析,然后再自底向上地设计概念结构。即首先设计各子系统的分E-R图,然后将它们集成起来,得到全局E-R图。E-R图的集成一般需要分两步走,如图7.24所示。
image

(1)合并E-R图,生成初步E-R图
①属性冲突
属性冲突主要包含以下两类冲突:
·属性域冲突,即属性值的类型、取值范围或取值集合不同。例如零件号,有的部门把它定义为整数,有的部门把它定义为字符型,不同部门对零件号的编码也不同。又如年龄,某些部门以出生日期形式表示职工的年龄,而另一些部门用整数表示职工的年龄。
。属性取值单位冲突。例如,零件的重量有的以公斤为单位,有的以斤为单位,有的以克为单位。
属性冲突理论上好解决,但实际上需要各部门讨论协商,解决起来并非易事。②命名冲突
命名冲突主要包含以下两类冲突:
。同名异义,即不同意义的对象在不同的局部应用中具有相同的名字。风·异名同义(一义多名),即同一意义的对象在不同的局部应用中具有不同的名字。如对科研项目,财务科称为项目,科研处称为课题,生产管理处称为工程。
命名冲突可能发生在实体、联系一级上,也可能发生在属性一级上。其中属性的命名冲突更为常见。处理命名冲突通常也像处理属性冲突一样,通过讨论、协商等行政手段加以解决。
③结构冲突
结构冲突主要包含以下三类冲突:
。同一对象在不同应用中具有不同的抽象。例如,职工在某一局部应用中被当作实体,而在另一局部应用中则被当作属性。解决方法通常是把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象。但变换时仍要遵循7.3.5小节中讲述的两个准则。
。同一实体在不同子系统的E-R图中所包含的属性个数和属性排列次序不完全相同。这是很常见的一类冲突,原因是不同的局部应用关心的是该实体的不同侧面。解决方法是使该实体的属性取各子系统的E-R图中属性的并集,再适当调整属性的次序。
。实体间的联系在不同的E-R图中为不同的类型。如实体E1与E2在一个E-R图中是多对多联系,在另一个E-R图中是一对多联系;又如在一个E-R图中El与E2发生联系,而在另一个E-R图中E1、E2、E3三者之间有联系。解决方法是根据应用的语义对实体联系的类型进行综合或调整。
例如,图7.25(a)中零件与产品之间存在多对多的联系“构成”,图 7.25(b)中产品、零件与供应商三者之间还存在多对多的联系“供应”,这两个联系互相不能包含,则在合并两个E-R图时就应把它们综合起来(图7.25(c))。

(2)消除不必要的冗余,设计基本E-R图
在初步E-R图中可能存在一些冗余的数据和实体间冗余的联系。所谓冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难,应当予以消除。消除了冗余后的初步E-R图称为基本E-R图。
消除冗余主要采用分析方法,即以数据字典和数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除冗余。如图7.26中 Q3-Q1*Q,Q4=EQs,所以Q;和Q4是冗余数据,可以消去;并且由于O,消去,产品与材料间m:n的冗余联系也应消去。
但并不是所有的冗余数据与冗余联系都必须加以消除,有时为了提高效率,不得不以冗余信息作为代价。因此在设计数据库概念结构时,哪些冗余信息必须消除,哪些冗余信息允许存在,需要根据用户的整体需求来确定。如果人为地保留了一些冗余数据,则应把数据字典中数据关联的说明作为完整性约束条件。例如,若物种部门经常要查询各种材料的库存量,如果每次都要查询每个仓库中此种材料的库存,再对它们求和,查询效率就太低了。所以应保留Oa,同时把O=EQs定义为Q的完整性约束条件。每当Os修改后,就触发该完整性检查,对O4作相应的修改。

  • 例:[例7.2] 某工厂管理信息系统的视图集成。
    图7.11、图7.23、图7.27分别为该厂物资、销售和劳动人事管理的分E-R图。图7.28为该系统的基本E-R图。这里基本E-R图中各实体的属性因篇幅有限从略。
    集成过程中,解决了以下问题:
    ·异名同义,项目和产品含义相同。某个项目实质上是指某个产品的生产,因此统一用产品做实体名。
    库存管理中,职工与仓库的工作关系已包含在劳动人事管理的部门与职工之间的联系中,所以可以取消。职工之间领导与被领导关系可由部门与职工(经理)之间的领导关系、部门与职工之间的从属关系两者导出,所以也可以取消。

image

标签:精读,联系,7.35,实体,读书笔记,订单,冲突,冗余,属性
From: https://www.cnblogs.com/charliecza/p/17446128.html

相关文章

  • 《重构》1-6章读书笔记
    《重构》1-6章读书笔记重构的定义所谓重构(refactoring)是这样一个过程:在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。重构是一种经千锤百炼形成的有条不紊的程序整理方法,可以最大限度地减小整理过程中引入错误的概率。本质上说,重构就是在代码写好之后改进它......
  • 精读 Openpose 论文
    原始题目OpenPose:RealtimeMulti-Person2DPoseEstimationusingPartAffinityFields中文名称Openpose:使用PartAffinityFields来实时多人2D姿态估计发表时间2016年11月24日平台CVPR2017来源卡内基梅隆大学机器人研究所文章链接https://a......
  • 超高效的电子读书笔记怎么做?
    周围有不少朋友和同事都很喜欢读书,但是大多数人都有这样的困惑,这就是为什么自己读了很多书,但是能记住的精华部分非常有限呢?其实想要提高阅读的质量,做好读书笔记非常重要,而随着智能手机的发展,我们现在也可以改变做读书笔记的方式了,借助手机可以做出高效、高质量的电子读书笔记。那......
  • 软件工程日报——《人间》读书笔记
    总结以下《人件》这本书中涉及到的几个概念和建议1、帕金森定律帕金森定律讲述了如下的定律:如果一个很平庸的人作了管理,那么摆在它面前的只有三条路:退位给有能力的人。使用比自己更优秀的属下。运用比自己还平庸的手下。第一条路和第二条路一般是个有欲望的人,都不会采取,......
  • 读书笔记
    读书笔记种树最好的时间是十年前,其次是现在简介:我决定从今天开始记录我读书的过程(也可能是从几天前),记录我读的书,书的相关信息,我的读书方法,一些好句,我的心得。三分读书法:这是我从up主阿鱼爱学习本人学来的技巧,我认为这是一种很好的读书笔记的形式,能让我们在阅读时保持清......
  • 五月读书笔记三《人件集》
    通过继续阅读《人件集》了解到在一般情况下,大家都认为技术决策所依据的都是技术性因素,诸如事实、可测量的数值、应用中需要考虑的事项等。但实际情况是,诸如感觉、意见、直觉、偏见等,都会对决策的制定或者问题的解决产生影响,这些都是人在做事情时所不可避免的因素。尽管有些人试......
  • 构建之法读书笔记八
    第九章项目经理9.1PM是啥软件团队里除了能写代码、测试代码和画图做设计的成员,还有一类角色,不做上面这些事情但也很重要,我们叫他们项目经理——PMPM的M就是Manager,但是P有这几种:ProductManager、ProjectManager、ProgramManager,在不同的行业和公司,他们的作用各不相同。接下......
  • 构建之法读书笔记五
    第六章敏捷流程6.1敏捷的流程①敏捷开发原则:(1)尽早并持续地交付有价值的软件以满足顾客需求(2)敏捷流程欢迎需求的变化,并利用这些变化来提高用户的竞争优势(3)经常发布可用的软件,发布间隔可以从几周到几个月,能短则短(4)业务人员和开发人员在项目开发过程中应该每天共同工作(5)以有......
  • 构建之法读书笔记六
    第七章MSF微软公司中关于软件开发的思想和宣言有一个方法论——微软解决方案框架(MicrosoftSolutionFramework,MSF),也就是微软推荐的软件开发方法7.2MSF基本原则1.推动信息共享与沟通(Fosteropencommunications)2.为共同的远景而工作(Worktowardasharedvision)“共同的......
  • 构建之法读书笔记七
    第八章需求分析8.1软件需求①获取和引导需求:软件团队需要找到软件的利益相关者,了解和挖掘他们对软件的需求,引导他们表达出对软件的需求;需求还可以来自各种管理机构;需求不仅来自外界,还可以来自软件企业本身;需求还可以来自技术团队本身;有些需求的目的是要更好地了解用户的行为和......