资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,Tsinghua,University,应用软件系统,分析与设计,柴跃廷,清华大学自动化系,1,第三章 信息模型与数据库设计,深入分析各类应用软件可知:各种应用软件都是围绕数据展开的,数据的规划与管理是系统的核心。同时,对于特定的应用领域,由数据反映出来的各类信息及其相互关系是相对稳定的,而解决各种问题所进行的处理是多变的,因此,信息模型与数据库设计技术,是开发大型应用软件系统,特别是各类信息系统的核心与关键,2,第三章 信息模型与数据库设计,问题的提出,信息模型的概念,建立信息模型的方法,基于信息模型的数据库的设计方法,3,背景,:某企业的客户订货系统,涉及的主要信息有:,客户信息:编号(,CNO,)、,名称(,CNAME,)、,地址(,CADDR,);,产品信息:编号(,PNO,) 、,名称(,PNAME,) 、,单价(,PCOST,),订单信息:编号(,ONO,) 、,客户编号(,CNO,) 、,订购数量(,OQTY,),。,该系统的目的是能够方便地对客户、订单及产品信息进行增、删、查、改等管理。,信息模型与数据库设计:,问题的提出,问题,:如何设计系统的数据库?,4,信息模型与数据库设计:,问题的提出,方案一,:设计一张表记录客户、订单及产品信息:,CNO、CNAME、CADDR、 ONO、 PNO、 PNAME、 PCOST 、OQTY,C1 CN1 CADR1 O1 P1 PN1,PC1 OQ1,C1 CN1 CADR1 O1 P2 PN2 PC2 OQ2,C1 CN1 CADR1 O2 P3 PN3,PC3 OQ3,C2 CN2 CADR2 O3 P1 PN1 PC1 OQ4,5,信息模型与数据库设计:,问题的提出,方案一,:设计一张表记录客户、订单及产品信息:,CNO、CNAME、CADDR、 ONO、 PNO、 PNAME、 PCOST 、OQTY,C1 CN1 CADR1 O1 P1 PN1,PC1 OQ1,C1 CN1 CADR1 O1 P2 PN2 PC2 OQ2,C1 CN1 CADR1 O2 P3 PN3,PC3 OQ3,C2 CN2 CADR2 O3 P1 PN1 PC1 OQ4,存在问题,:,(1)如果删除订单信息,则产品信息也将删除,称为删除异常;,(2)如果没有订单,则无法增加产品信息,称为插入异常;,(3)客户、订单、产品信息冗余,会引起数据不一致,6,信息模型与数据库设计:,问题的提出,方案一,:设计一张表记录客户、订单及产品信息:,ONO、 PNO、 CNO、CNAME、CADDR、 PNAME、 PCOST 、OQTY,O1 P1,C1 CN1 CADR1 PN1 PC1 OQ1,O2 P2 C1 CN1 CADR1,PN2 PC2 OQ2,O3 P3,C1 CN1 CADR1,PN3,PC3 OQ3,O4 P1,C2 CN2 CADR2,PN1 PC1 OQ4,存在问题的原因,:,区别每一条记录的关键字是(,ONO、PNO),,而产品信息(,PNAME、 PCOST),本来可以由,PNO,唯一确定,也就是说,产品信息并不完全依赖于订单编号,这是引起插入及删除异常的原因。,7,信息模型与数据库设计:,问题的提出,方案一,:设计一张表记录客户、订单及产品信息:,ONO、 PNO、 CNO、CNAME、CADDR、 PNAME、 PCOST 、OQTY,O1 P1,C1 CN1 CADR1 PN1 PC1 OQ1,O2 P2 C1 CN1 CADR1,PN2 PC2 OQ2,O3 P3,C1 CN1 CADR1,PN3,PC3 OQ3,O4 P1,C2 CN2 CADR2,PN1 PC1 OQ4,方案一的改进措施,:,将原来的一张表分解为三张表,分别为订单信息、产品信息、订单细节(用于联系产品与订单。,8,信息模型与数据库设计:,问题的提出,方案二,:,用订单信息、产品信息及订单细节三张表存储客户订货系统信息:,订单信息,CADR,ONO,CNO,CNAME,PCOST,产品信息,PNO,PNAME,订单细节,PNO,ONO,OQTY,9,信息模型与数据库设计:,问题的提出,方案二,:,用订单信息、产品信息及订单细节三张表存储客户订货系统信息:,订单信息,CADR,ONO,CNO,CNAME,PCOST,产品信息,PNO,PNAME,订单细节,PNO,ONO,OQTY,存在问题,:,(1)如果删除订单信息,则客户信息也将删除,称为删除异常;,(2)如果没有订单,则无法增加客户信息,称为插入异常;,(3)客户信息冗余,会引起数据不一致,10,信息模型与数据库设计:,问题的提出,方案二,:,用订单信息、产品信息及订单细节三张表存储客户订货系统信息:,订单信息,CADR,ONO,CNO,CNAME,PCOST,产品信息,PNO,PNAME,订单细节,PNO,ONO,OQTY,存在问题原因,:,区别每一条订单记录的关键字是,ONO,,而客户信息(,CNAME、CNAME),本来可以由,CNO,唯一确定,也就是说,客户信息并不完全依赖于订单编号,这是引起插入及删除异常的原因。,11,信息模型与数据库设计:,问题的提出,方案二,:,用订单信息、产品信息及订单细节三张表存储客户订货系统信息:,订单信息,CADR,ONO,CNO,CNAME,PCOST,产品信息,PNO,PNAME,订单细节,PNO,ONO,OQTY,方案二改进措施,:,将原来的订单信息表分解为订单信息和客户信息表。,12,信息模型与数据库设计:,问题的提出,方案三,:,用订单信息、产品信息、客户信息及订单细节四张表存储客户订货系统信息:,PCOST,产品信息,PNO,PNAME,订单细节,PNO,ONO,OQTY,订单信息,ONO,CNO,CADR,CNO,CNAME,客户信息,13,信息模型与数据库设计:,问题的提出,方案三解决问题的原因,:,(1)在订单信息、产品信息、客户信息及订单细节四张表中,其中的订单信息、产品信息、客户信息分别反映了客观存在的实体,而订单细节反映了订单与产品之间的联系(实体之间的联系),(2)描述现实世界中实体及其关联是建立信息模型的核心思想,14,信息模型与数据库设计:,信息模型的概念,数据与信息,信息的三模式,信息模型,15,信息模型的概念:,数据与信息,例如,北京市的区号为“010”,字符串“010”只有赋予“区号”这个含义时才称其为是一种数据,数据可以有多种类型,例如数字、符号、文本、图像、声音等。数字又可以是整数、实数等,任何有含义的或可以赋予含义的表达形式都可称其为数据。数据是指事实、概念或指令的某种规格化方式的表示,适于人或自动装置进行通信、解释或处理,16,信息模型的概念:,数据与信息,信息是对数据进行加工处理而得到的知识。,例如,如果“010”表示区号,我们会从“010”这个数据中得知,北京市的区号为“010”这个知识,。,17,信息模型的概念:,数据和信息的区别与联系,不同的信息可能产生于同一数据,(,集,),,不同的数据可能会产生某个有用的信息。,例如,在某企业中,如果描述职工的属性有:编号、姓名、工资、所在部门;描述部门的属性有:编号、名称;描述项目的属性有:项目号、名称、开工日期、完工日期、部门号。那么“该企业每月工资总额”这个信息来源于每个职工“工资”这个数据集的总和。“该企业中月工资高于1000元的人数”这个信息同样来源于“工资”这个数据集。而“某个人所承担的所有项目中完工日期最早的项目”这个信息则来源于与职工、项目有关的不同数据的综合。,18,信息模型的概念:,数据和信息的区别与联系,数据所表示的含义可以被理解为是最原始的信息,由多种数据或数据集及其相互关系反映出来的知识可以认为是复合信息。,由此可见,信息是一种知识的表示与体现,或者说是现实世界中事物、概念的一种语义上或逻辑上的表达。它是具体数据的一种概括与抽象,与具体的数据值或量及其类型无关。,19,信息模型的概念:,信息的三模式,在应用软件的开发实践中,通常从两种不同的角度或采用两种不同的观点来规划系统内部的数据,这就是用户观点(用户模式)和计算机观点(内部模式)。,20,信息的三模式,:,用户模式,基于用户观点来规划系统内部数据时,往往针对用户所要解决的问题,以其希望的输入/输出信息(例如,各种屏幕和报表的内容与格式)对数据资源进行定义,通常称其为用户模式或外部模式。,21,信息的三模式,:,用户模式的特点,(1)可以准确地解决用户所关心的问题;,(2)数据规划就事论事,没有完整、全面地描述问题空间中实体的属性及实体之间的相互关系;,(3)很难或不可能在原来的基础上进行扩充或适应需求的变化。如果扩充或适应需求的变化,需要设计专门的数据结构,可能会造成系统内部的数据冗余、不一致,以致于混乱。,22,信息的三模式,:,内部模式,基于计算机观点来规划系统内部数据时,通常在特定的计算机环境下(例如,特定的数据库管理系统和编程环境)对数据资源进行定义,这时主要考虑的是数据的存贮与检索的方便、迅速,以及外存空间的分配与使用的效益,通常称之为数据模型或内部模式,23,信息的三模式,:,内部模式的特点,(1)内部模式是问题空间中的事物、概念的抽象化表示,不一定具有一一对应的关系,它通常是以计算机语言描述的,不利于与用户进行充分的交流;,(2)当特定的计算机环境发生变化时,相应的数据结构及其组织方式必须随着进行变化;,(3)当需求变化时,会产生与基于用户观点规划系统内部数据时类似问题,即不利于系统需求的变化,24,信息的三模式,:,概念模式,既然用户模式和内部模式都不能很好地解决应用系统数据规划的问题,那么就必须寻找一种新的解决方案,既能够充分反映问题空间中的各种事物、概念,满足所要解决的问题,被用户充分地理解与接受,又能比较方便地转化为特定计算机环境下的数据模型。同时又能灵活地适应需求的变化,便于系统的扩充和解决新的问题。这就是所谓的概念模式,也是建立信息模型的需求所在。,25,信息模型与数据库设计,:,信息模型,信息模型是问题空间中相关事物、概念及其相互联系的抽象实体及其相互关系的一种规范化描述,反映系统中各类信息及其相互关系。,26,信息模型与数据库设计,:,信息模型,信息模型要解决的主要问题是:,表达问题空间中各种相关事物、概念及其相互关系,易于为用户所理解与接受;,易于转化为特定计算机环境下系统所需的数据模型;,能够充分反映问题空间中各类信息及其相互关系。,27,信息模型与数据库设计,:,信息模型,信息模型的显著特点在于:,(1)提供信息及其相互关系的一致定义,从而用来集成、共享、管理问题空间中的数据,保持系统数据的完整性和一致性;,(2)可以方便地转化成用户模型和数据模型。,(3)易于扩充与修改。,28,信息模型与数据库设计,:,信息模型,由信息模型的概念可知,信息模型位于现实世界(问题空间)与数据世界之间,起着承上启下的作用。我们将表征信息及其相互关系的思维空间称为信息世界。,现实世界、信息世界、数据世界表达了应用软件开发过程中的不同的思维空间和抽象层次。体现了自然语言向计算机语言的转化过程。各自都有不同的内涵与作用。三者之间又相互关联、相互转化,互为一体。,29,信息模型与数据库设计,:,信息模型,客观事物,问题域,概念域,现实世界,文 件,数据项,记 录,数据世界,实 体,关 系,属 性,信息世界,应用系统,用户模型,数据模型,信息模型,30,信息模型与数据库设计,:,建立信息模型的方法,ER,方法,IDEF,1X,方法,31,建立信息模型的方法:,ER,方法,ER,方法的概念,ER,方法的基本要素,ER,方法的建模过程,32,ER,方法,:,概念,ER(Entity Relationship),方法就是实体联系方法,用于描述和定义系统中的信息及其内在联系,建立系统的信息模型,ER,方法使用,ER,图描述信息模型,该方法简便、有效,是目前进行数据库设计的普遍方法,33,ER,方法,:,基本要素,实体,属性,联系,34,ER,方法的基本要素,:,实体,实体是现实世界中具有相同属性和特征的事物或概念的集合,集合中的每个元素称为该实体的一个实例。,例如,用户、车辆、货物等均可视为是实体。其中,某个用户“,A”,是用户实体的一个实例。,35,ER,方法的基本要素,:,实体,实体用长方形表示,并在框内注明实体名称。,用 户,36,ER,方法的基本要素,:,属性,属性用来描述实体的某种性质和特征。属性与具体的实体相联系。,例如,“用户”实体具有属性“编号”和“名称”等。,37,ER,方法的基本要素,:,属性,属性用椭圆形表示,并标出实体与属性之间的联系。,用 户,编 号,名 称,38,ER,方法的基本要素,:,联系,实体之间的联系可以是:,一对一(1:1),一对多(1:,m),多对多(,m:n),用菱形表示实体间的联系,在菱形框内注明联系名,并用无向边将菱形分别与有关的实体相联系,39,实体之间的联系,:,1:1,1:1的联系存在于两个实体,A、B,之间,实体,A,中的一个实例与实体,B,中的一个实例相对应,实体,B,中的一个实例与实体,A,中的一个实例相对应,例如,司机与车辆之间的联系,司 机,车 辆,驾驶,1,1,40,实体之间的联系,:,1:,M,1:,M,的联系存在于两个实体,A、B,之间,实体,A,中的一个实例与实体,B,中的,M,个实例相对应,实体,B,中的一个实例与实体,A,中的一个实例相对应,例如,用户与存/提货订单之间的联系,用 户,存/提货订单,签定,1,M,41,实体之间的联系,:,M:N,M:N,的联系存在于两个实体,A、B,之间,实体,A,中的一个实例与实体,B,中的,N,个实例相对应,实体,B,中的一个实例与实体,A,中的,M,个实例相对应,例如,货物与货位之间的联系,货 物,货 位,存放在/存放,M,N,42,实体之间的联系,:,联系的属性,实体之间的联系可以有属性,例如,货物与货位之间的联系,可以有属性“存放数量”,货 物,货 位,存放在/存放,M,N,存放数量,43,ER,方法,:,建模过程,(1)准备阶段,(2)设计初步,ER,图,(3)设计基本,ER,图,44,ER,方法的建模过程,:,准备阶段,(1)确定建模目标,(2)确定建模范围和上下文,(3)制定源材料收集计划并着手收集原材料,45,ER,方法建模过程的准备阶段:,确定目标,无论是什么样的应用系统,建立信息模型的主要目标是用规范化的方法,从系统的角度出发,抽取和规划应用领域中相对稳定的数据资源,使其独立于特定的数据管理系统环境和应用领域的事务处理环境,作为建立应用系统的基础和依据,46,ER,方法建模过程的准备阶段:,确定范围,建立系统信息模型时,一般以系统功能模型或确定的问题研究范围作为建模的上下文和范围,47,ER,方法建模过程的准备阶段:,收集源材料,一般情况下,源材料可以呈现各种形式,并广泛地分布在应用领域中。主要有:,调研的结果,观察的结果,应用领域的业务过程,原系统的主要输出(例如主要报表、表格、文件等),原系统的主要输入(例如口头传述内容、记录等),48,ER,方法的建模过程,:,设计初步,ER,图,主要问题,基本步骤,设计举例,初步,ER,图的特点,49,设计初步,ER,图,:,主要问题,设计初步,ER,图的关键是识别实体及其联系。涉及的主要问题是如何对所收集到的有关信息划分实体和属性。实体和属性在形式上没有明显的界限,它随应用环境的不同而不同。区分实体和属性一般可依据两个原则:,属性与其所描述的实体之间只能是,m:1,的关系,属性本身不能再被描述,不能与其它实体有联系,50,设计初步,ER,图,:,基本步骤,设计各个局部的,ER,图,综合各部分,ER,图,形成初步,ER,图,51,设计初步,ER,图,:,设计举例,用 户,签定,1,M,存/提货订单,货 物,拥有,1,M,编 号,名 称,地 址,订单编号,签定日期,货物总数,订单数 量,型号规格,名 称,货物编号,局部,ER,图(1),52,设计初步,ER,图,:,设计举例,货 物,用 户,拥有,1,M,N,货 位,货位编号,仓库编号,存放总数,地址,编 号,名 称,货物编号,名 称,订单数量,型号规格,存放在,M,存放数量,局部,ER,图(2),53,设计初步,ER,图,:,设计举例,初步,ER,图,用 户,签定,1,M,存/提货订单,货 物,拥有,1,M,编 号,名 称,地 址,订单编号,签定日期,货物总数,订单数 量,型号规格,名 称,货物编号,N,货 位,货位编号,仓库编号,存放总数,存放在,M,存放数量,拥有,1,M,54,设计初步,ER,图,:,初步,ER,图的特点,在初步,ER,图中,可能存在冗余的属性和联系,须进行进一步细化与完善 基本,ER,图,55,ER,方法的建模过程,:,设计基本,ER,图,属性综合,联系综合,发现和解决不一致,56,设计基本,ER,图,:,属性综合,考察每一个实体,综合各局部,ER,图中的属性,消除冗余属性,例如,“存放数量”和“存放总数”、“订单数量”和“货物总数”,57,设计基本,ER,图,:,联系综合,综合各局部,ER,图中的联系,考察每一个联系,消除冗余联系,例如,“用户”与“货物”的联系,58,设计基本,ER,图,:,发现和解决不一致,综合各局部,ER,图中的属性和联系,考察每一个属性和联系,,是否存在同名异义;同义异名;实体和联系的定义在不同的局部有否冲突;,例如,用户“名称”和货物“名称”,59,初步,ER,图,用 户,签定,1,M,存/提货订单,货 物,拥有,1,M,编 号,名 称,地 址,订单编号,签定日期,货物总数,订单数 量,型号规格,名 称,货物编号,N,货 位,货位编号,仓库编号,存放总数,存放在,M,存放数量,拥有,1,M,设计基本,ER,图,:,设计例子,60,设计基本,ER,图,:,设计例子,基本,ER,图,用 户,签定,1,M,存/提货订单,货 物,拥有,1,M,用户编号,用户名 称,用户地 址,订单编号,签定日期,订单数 量,型号规格,货物名称,货物编号,N,货 位,货位编号,仓库编号,存放在,M,存放数量,61,基于,ER,模型的数据库设计:,基本步骤,(1)将实体及其属性转化为关系及其属性,(2)将不同实体之间的联系转化为关系,(3)检查并去掉多余的关系,、,合并可归并的关系,(4)规范化关系模式,(5),确定并设计导出表,(6),根据系统的体系结构和数据分布原则,,进行数据分布设计,62,基于,ER,模型的数据库设计:,将实体转化为关系,将基本,ER,图中的每个实体都转化为一个关系,实体名作为关系名,实体的属性转化为关系的属性,用 户,用户地址,用户名 称,用户编号,USER (,USER_NO,USER_NAME,USER_ADDR ),63,基于,ER,模型的数据库设计:,将实体转化为关系,ORDER (,ORDER_NO,ORDER_DATE,),存/提货订单,签定日期,订单编号,64,基于,ER,模型的数据库设计:,将实体转化为关系,ITEM (,ITEM_NO,ITEM_NAME,ITEM_TYPE,ORDER_QTY),货 物,货物名称,货物编号,型号规格,订单数量,65,基于,ER,模型的数据库设计:,将实体转化为关系,货 位,仓库编号,货位编号,STORELOC (,STORELOC_NO,STORE_NO,),66,基于,ER,模型的数据库设计:,将联系转化为关系,(1)对于1:1的联系,可以根据具体情况,将一个实体的主关键字迁移到另一个实体对应的关系中,67,基于,ER,模型的数据库设计:,将联系转化为关系,(2)对于,m:1,的联系,可以将对应于1的实体的主关键字迁移到对应于,m,的实体对应的关系中,可以与该实体的主关键字联合成为该实体对应关系的主关键字,68,基于,ER,模型的数据库设计:,将联系转化为关系,用 户,签定,1,M,存/提货订单,用户编号,用户名 称,用户地 址,订单编号,签定日期,ORDER (,ORDER_NO,USER_NO,,ORDER_DATE,),69,基于,ER,模型的数据库设计:,将联系转化为关系,拥有,1,M,存/提货订单,订单编号,签定日期,货 物,订单数 量,型号规格,货物名称,货物编号,ITEM (,ITEM_NO,ORDER_NO,ITEM_NAME,ITEM_TYPE,ORDER_QTY),70,基于,ER,模型的数据库设计:,将联系转化为关系,(3)对于,m:n,的联系,可以将该联系转化为一个关系,其中,联系名作为关系名,联系的属性和各有关实体的主关键字作为关系的属性。,71,基于,ER,模型的数据库设计:,将联系转化为关系,货 物,订单数 量,型号规格,货物名称,货物编号,N,货 位,货位编号,仓库编号,存放在,M,存放数量,LOCITEM (,ITEM_NO,STORELOC_NO,STORE_NO,ORDER_NO,LOC_QTY),72,基于,ER,模型的数据库设计:,消除冗余,在基本,ER,图中若存在冗余关系,则应予以消除,73,基于,ER,模型的数据库设计:,规范化关系模式,为什么要规范化?,数据依赖的概念,规范化方法,74,规范化关系模式:,原因,消除数据冗余,消除数据的插入、删除、更新异常,保证数据的完整性与一致性,75,规范化关系模式:,数据依赖,所谓数据依赖是指数据间值的相等与否体现出来的数据间的相互关系,是现实世界属性间相互关系的抽象,是数据内在的性质,数据依赖中最重要的是函数依赖,76,规范化关系模式:,函数依赖,设有一关系模式,R(A,1,,A,2,,A,n,),X,和,Y,均为(,A,1,,A,2,,A,n,),的子集,当任意两个元组,u,v,中对应于,X,的那些属性分量的值均相等时,则,u,v,中对应于,Y,的那些属性分量的值也相等,称,X,函数决定,Y,,或称,Y,函数依赖于,X,,记为,XY。,77,规范化关系模式:,函数依赖,例如,学生(学号,S#、,姓名,SN、,系名,SD),存在的函数依赖:,S#SN,S#SD,78,规范化关系模式:,函数依赖,完全函数依赖,部分函数依赖,传递函数依赖,79,规范化关系模式:,完全函数依赖,设有关系,R,,如果,XY,,对于,X,任意一个真子集,X,,都有,X,不能决定,Y,,则称,Y,对,X,完全函数依赖,记为,X Y,例如,若学生与课程的关系:,SC=(,学号,S# ,,课程,CN,,成绩,SG),(S# ,CN) SG,X,的真子集,S#,或,CN,,都不能决定,SG,,只有(,S# ,CN),才能决定,SG,SG,完全函数依赖于(,S# ,CN),80,规范化关系模式:,部分函数依赖,对于关系,R,,若,X Y,,但,Y,不完全函数依赖于,X,,则称,Y,对,X,部分函数依赖,记为,X Y,例如,学生(学号,S# 、,课程,CN,,系名,SD,,系地址,SL,,成绩,SG),存在依赖:,(,S# ,CN) SG,SD, SL,S# SD,S# SL,81,规范化关系模式:,传递函数依赖,对于关系,R,,当且仅当,X Y,Y Z,时,称,Z,对,X,传递函数依赖,例如,学生(学号,S# 、,班级,SB、,辅导员,TN),,一个班有若干个学生,一个学生只属于一个班,一个班只有一名辅导员,但一个辅导员负责几个班。由此可得到一组函数依赖:,S# SB,SB TN,辅导员,TN,传递函数依赖于学号,S#,82,规范化关系模式:,规范化方法,消去部分函数依赖,消去传递函数依赖,非规范化关系,第一范式(1,NF),消去重复组,第二范式(2,NF),第三范式(3,NF),83,举例,:某企业的客户订货系统,涉及的主要信息有:,客户信息:编号(,CNO)、,名称(,CNAME)、,地址(,CADDR);,产品信息:编号(,PNO) 、,名称(,PNAME) 、,单价(,PCOST),订单信息:编号(,ONO) 、,客户编号(,CNO) 、,订购数量(,OQTY),规范化关系模式:,规范化方法,84,设计方案一,:设计一张表记录客户、订单及产品信息:,CNO、CNAME、CADDR、 ONO、 PNO、 PNAME、 PCOST 、OQTY,C1 CN1 CADR1 O1 P1 PN1,PC1 OQ1,P2 PN2 PC2 OQ2,P3 PN3,PC3 OQ3,C2 CN2 CADR2 O2 P1 PN1 PC1 OQ4,存在问题,:,出现重复组,使订单信息难于管理,属于非规范化关系。,解决方案,:,消除重复组,使关系规范化,规范化关系模式:,规范化方法,85,解决方案二,:第一范式没有重复组,CNO、CNAME、CADDR、 ONO、 PNO、 PNAME、 PCOST 、OQTY,C1 CN1 CADR1 O1 P1 PN1,PC1 OQ1,C1 CN1 CADR1 O1 P2 PN2 PC2 OQ2,C1 CN1 CADR1 O2 P3 PN3,PC3 OQ3,C2 CN2 CADR2 O3 P1 PN1 PC1 OQ4,存在问题,:,(1)如果删除订单信息,则产品信息也将删除,称为删除异常;,(2)如果没有订单,则无法增加产品信息,称为插入异常;,(3)客户、订单、产品信息冗余,会引起数据不一致,规范化关系模式:,规范化方法,86,解决方案二,:第一范式没有重复组,ONO、 PNO、 CNO、CNAME、CADDR、 PNAME、 PCOST 、OQTY,O1 P1,C1 CN1 CADR1 PN1 PC1 OQ1,O2 P2 C1 CN1 CADR1,PN2 PC2 OQ2,O3 P3,C1 CN1 CADR1,PN3,PC3 OQ3,O4 P1,C2 CN2 CADR2,PN1 PC1 OQ4,存在问题的原因,:,存在部分函数依赖,PNO,PNAME、 PCOST,规范化关系模式:,规范化方法,87,解决方案二,:第一范式没有重复组,ONO、 PNO、 CNO、CNAME、CADDR、 PNAME、 PCOST 、OQTY,O1 P1,C1 CN1 CADR1 PN1 PC1 OQ1,O2 P2 C1 CN1 CADR1,PN2 PC2 OQ2,O3 P3,C1 CN1 CADR1,PN3,PC3 OQ3,O4 P1,C2 CN2 CADR2,PN1 PC1 OQ4,方案二的改进措施,:,将原来的一张表分解为三张表,分别为订单信息、产品信息、订单细节(用于联系产品与订单),消除部分函数依赖,规范化关系模式:,规范化方法,88,订单信息,CADR,ONO,CNO,CNAME,PCOST,产品信息,PNO,PNAME,订单细节,PNO,ONO,OQTY,存在问题,:,(1)如果删除订单信息,则客户信息也将删除,称为删除异常;,(2)如果没有订单,则无法增加客户信息,称为插入异常;,(3)客户信息冗余,会引起数据不一致,解决方案三,:,第二范式每个非键属性完全函数依赖主关键字,规范化关系模式:,规范化方法,89,订单信息,CADR,ONO,CNO,CNAME,PCOST,产品信息,PNO,PNAME,订单细节,PNO,ONO,OQTY,存在问题原因,:存在传递函数依赖,ONO,CNO,CNO,CNAME、CNAME,解决方案三,:,第二范式每个非键属性完全函数依赖主关键字,规范化关系模式:,规范化方法,90,订单信息,CADR,ONO,CNO,CNAME,PCOST,产品信息,PNO,PNAME,订单细节,PNO,ONO,OQTY,方案三改进措施,:,将订单信息表分解为订单信息和客户信息表。消除传递函数依赖,解决方案三,:,第二范式每个非键属性完全函数依赖主关键字,规范化关系模式:,规范化方法,91,解决方案四,:第三范式,PCOST,产品信息,PNO,PNAME,订单细节,PNO,ONO,OQTY,订单信息,ONO,CNO,CADR,CNO,CNAME,客户信息,规范化关系模式:,规范化方法,92,基于,ER,模型的数据库设计:,设计导出表,如果为了满足快速查询或统计的需求,可设计必要的导出表,93,基于,ER,模型的数据库设计:,数据分布设计,如果需要将数据进行分布式管理时,可,根据系统的体系结构和数据分布原则,将密切相关的关系表构成一个数据库,并将各数据库分布在整个系统的有关节点上,94,基于,ER,模型的数据库设计:,设计结果,LOCITEM (,ITEM_NO,ITEM_NO,STORE_NO,ORDER_NO,LOC_QTY),ORDER (,ORDER_NO,USER_NO,,ORDER_DATE,),ITEM (,ITEM_NO,ORDER_NO,ITEM_NAME,ITEM_TYPE,ORDER_QTY,),USER (,USER_NO,USER_NAME,USER_ADDR ),STORELOC (,STORELOC_NO,STORE_NO,),95,建立信息模型的方法:,IDEF,1X,方法,IDEF,1X,方法的概念,IDEF,1X,方法的基本要素,IDEF,1X,方法的建模过程,96,IDEF,1X,方法:,概念,IDEF,1X,方法是,IDEF,方法的组成部分之一,由美国空军一体化信息支持系统,(,Integrated Information Support System IISS),项目研究组于1985年正式推出,它是一种语义数据模型化技术,用来支持信息模型的开发,用,IDEF,1X,方法建立的信息模型可以作为数据库设计的主要依据,97,IDEF,1X,方法:,基本要素及其语法定义,实体,实体的属性,实体间的联系,实体的关键字,98,IDEF,1X,方法中的实体:,定义,实体是客观世界中具有相同属性和特征的客体或抽象事物的集合。集合中的一个元素是该实体的一个“实例”,例如“职工”是一个实体,“张三”是“职工”实体的一个实例。,99,IDEF,1X,方法中的实体:,分类,实体分为“独立实体”和“从属实体”,独立实体,如果一个实体的每个实例都能被唯一地标识而不决定于它与其它实体的联系,那么该实体被称为独立实体;,从属实体,如果实体的一个实例的唯一标识依赖于该实体与其它实体的联系,那么该实体被称为“从属实体”,100,IDEF,1X,方法中的实体:,描述,实体用矩形框来表示。其中,方角矩形框表示独立实体,圆角矩形框表示从属实体,每一个实体必须有一个名字和编号,名字和号码之间用斜杠()隔开,标注在矩形框的上方,实体的名字必须是一个名词短语,可以用缩写词。实体名必须是有意义的且在整个模型中保持一致。,101,IDEF,1X,方法中的实体:,描述,实体名/实体号,实体名/实体号,独立实体,从属实体,职工/32,项目/32,例如:,例如:,102,IDEF,1X,方法中的实体:,使用规则,(1),每一个实体必须使用唯一的实体名和单一的含义,相同的含义必须用于同一实体名而不能用于不同的实体名,别名除外,(2)一个实体可以有一个或多个属性,这些属性可以是自身拥有的,也可以是通过联系而继承得到的,103,货物/12,货物编号,货物名称,.,IDEF,1X,方法中的实体:,使用规则,用户/11,用户编号,用户名称,.,货物/12,货物编号,货物名称,用户编号,.,继承属性,104,IDEF,1X,方法中的实体:,使用规则,(3)一个实体应有一个或多个能唯一标识实体中每个实例的属性,(该属性或属性组合称为该实体的主关键字)。,(4)任何实体都可以与模型中的其它实体有任意联系,105,IDEF,1X,方法中的属性:,定义,属性是用来描述实体的某种性质和特征的。属性与具体的实体相联系,实体的每个属性都必须具有一个单一且确定的值,例如,“职工”实体具有属性“职工姓名”和“职工生日”,而 “张三”和 “”是职工实体的一个实例。,106,IDEF,1X,方法中的属性:,描述,实体的属性被列在表示实体的矩形框内,每行列一个属性,主关键字列在最上面,并且用水平线将其与其它属性隔开,每个属性均用一个名字唯一地标记。该名字可以用名词短语,也可以用缩写词,属性名在整个模型中必须有意义而且是一致的,107,IDEF,1X,方法中的属性:,描述,属性名,属性名,属性名,属性名,实体名/实体号,职工号,职工姓名,生日,性别,主关键字,例如:,职工/32,108,IDEF,1X,方法中的属性:,使用规则,(1)每一个属性必须具有一个唯一的名称,且相同的名称描述相同的含义 (除别名外),(2)每个实体可以具有任意多个属性,一个属性只能归属于一个实体,该规则称为“单主规则”,(3)一个实体可以有任意多个继承属性,而每个继承属性都必须是某个相关实体主关键字的一部分或全部,109,IDEF,1X,方法中的属性:,使用规则,(4)实体的每一个实例,其每一个属性都必须具有一个值,该规则称“非空规则”,(5)对于同某个实体相关的属性而言,不能具有一个以上的值,该规则称为“非重复规则”,110,IDEF,1X,方法中的联系:,分类,连接联系,分类联系,非确定性联系,111,IDEF,1X,方法中的连接联系:,定义,连接联系存在于两个实体之间,一个称为父实体,另一个称为子实体。父实体中的每一个实例与子实体的0个、1个或多个实例相联系,子实体中的每一个实例必须同父实体的1个实例相系。即,只有与之相联系的父实体的实例存在时,子实体的这个实例才存在。,例如,“用户”和“存/提货订单”之间的联系,,,112,IDEF,1X,方法中的连接联系:,分类,连接联系分为标定型联系和非标定型联系,标定型联系,联系中的父、子实体之间,子实体的每个实例都是由与它相联系的父实体的某个实例确定的,非标定型联系,联系中的父、子实体之间,子实体的每个实例都能唯一地被确认而无须了解与之相联系的父实体的实例,113,IDEF,1X,方法中的连接联系:,描述,在,IDEF,1X,中,用父子实体之间的连线表示连接关系,并在子实体一端加注小园点。其中,用实线表示标定型联系,用虚线表示非标定联系。一个联系应用动词短语来命名,并标注在联系连线的旁边。命名的方向是从父实体到子实体,0,1,,N,1,,N,0,1,确定基数,标定型联系,p,z,n,非标定型联系,0,1,,N,1,,N,0,1,确定基数,p,z,n,114,IDEF,1X,方法中的连接联系:,描述,一个联系应用动词短语来命名,并标注在联系连线的旁边。命名的方向是从父实体到子实体,实体,A/1,属性1,属性1(外来),属性2,实体,B/2,A,到,B,的联系名,标定型联系,实体,C/3,属性3,实体,D/4,C,到,D,的联系名,非标定型联系,属性4,115,IDEF,1X,方法中的连接联系:,使用规则,(1)一个连接联系总是存在于两个实体之间,一个作为父实体,另一个作为子实体,(2)父实体的一个实例可与子实体的0个、1个或多个实例相联系,具体情况由特定的基数而定,(3)子实体的一个实例必须且总是与父实体的一个实例相联系,116,IDEF,1X,方法中的连接联系:,使用规则,(4)在标定型联系中,子实体总是从属实体 ,(5)一个实体可以与任意多个其它实体相联系,可以在不同的联系中充当不同的角色。例如,在一些联系中当父实体,而在另一些联系中当子实体,117,IDEF,1X,方法中的分类联系:,定义,在现实世界中,某些实体可能是另一些实体的分类中的子类实体,称这种联系为分类联系。其中的一个实体称为一般实体,另一个或几个实体称子类实体,一般实体所拥有的各分类子实体通常是互不包含的,即,一般实体的每一个实例只与其中的一个分类子实体的一个实例相对应,118,IDEF,1X,方法中的分类联系:,定义,一般实体拥有一种属性,可以根据该属性的值来判别一般实体的实例与哪一个分类实体的实例相对应,这个属性被称为分类的“鉴别器”,例如, 实体“职工”、“行政类职工”、“业务类职工”。,119,IDEF,1X,方法中的分类联系:,分类,完全分类联系,一般实体的每一个实例都恰好与一个且仅与一个分类实体的一个实例相联系,例如:“职工”、“男职工”、“女职工”,不完全分类联系,一般实体的一个实例可能不与任何分类实体的任一实例相联系,例如: “职工”、“青年职工”、“中年职工”、“老年职工”,分类联系进一步分为完全分类联系和不完全分类联系,120,IDEF,1X,方法中的分类联系:,描述,鉴别器,完全分类联系,鉴别器,不完全分类联系,121,IDEF,1X,方法中的分类联系:,使用规则,(1)一个分类实体只能有一个与之对应的一般实体,(2)一个分类实体可以是另外一个分类联系中的一般实体,(3)一个分类实体不能是标定型连接联系中的子实体,(4)一个实体可具有任意个分类联系,在这些分类联系中,这个实体作为一般实体,122,IDEF,1X,方法中的分类联系:,使用规则,(5)分类实体的主关键字属性必须和一般实体的主关键字属性相同,(6)一个分类实体的全部实例都具有相同的鉴别器值,并且不同分类实体的所有实例都具有不同的鉴别器值,123,IDEF,1X,方法中的非确定型联系:,定义,对于两个实体而言,如果任一实体的一个实例都与另一个实体的0个,1个或多个实例相联系,那么,这种联系称为非确定型联系,在完善的,IDEF,1X,模型中,实体间的所有联系都必须用确定型联系来描述。因此,在对模型不断完善的过程中,应将非确定型联系转化成确定型联系,,例如,实体“职工”与“项目”,124,IDEF,1X,方法中的非确定型联系:,描述,非确定型联系用一个两端带园点的连线来描述,在园点旁可标记联系的基数,非确定型联系采用动词短语双向命名,联系名用斜杠(/)分开,标记在连线的旁边。联系名的次序由实体之间的相对位置确定,125,IDEF,1X,方法中的非确定型联系:,描述,实体,C/3,实体,D/4,联系名/联系名,D,到,C,的联系,C,到,D,的联系,实体,B/2,实体,A/1,A,到,B,的联系,联系名/联系名,B,到,A,的联系,126,IDEF,1X,方法中的非确定型联系:,使用规则,(1)一个非确定型联系总是存在于两个实体之间,而不是三个或更多个实体之间,(2)两个实体中,任意一个实体的实例可以与另一个实体的0个,1个或多个实例相关联,具体情况要视联系的基数而定,127,IDEF,1X,方法中的关键字:,定义,在实体的属性中,用来唯一地标识实体的每个实例的一个或多个属性的组合称为该实体的关键字。,实体可以有一个或多个关键字。如果实体存在多个关键字,那么必须指定其中一个为“主关键字”,而其它关键字被称为“次关键字”。,如果两个实体之间存在连接联系或分类联系,那么构成父实体或一般实体主关键字的属性将被继承为子实体或分类实体的属性,这些继承属性被称为“外来关键字”,128,IDEF,1X,方法中的主、次关键字:,描述,主关键字属性标记在表示实体矩形框内的顶部并用水平线同其它属性分开。,每一个次关键字被分配一个唯一的整数号,并放在字母“,AK,”(,Alternate Key,),后面,然后用圆括号括起来放在次关键字属性的后面,129,IDEF,1X,方法中的主、次关键字:,描述,职工号,身份证号(,AK,1,),姓名(,AK,2,),生日(,AK,2,),主关键字,1,#,次关键字,2,#,次关键字,130,IDEF,1X,方法中的主、次关键字:,使用规则,(1)一个实体必须有一个主关键字,(2)一个实体可以有任意个次关键字,(3)主、次关键字可以由单个或多个属性组成,(4)个别属性可以是多个关键字的一部分,(5)构成主或次关键字的属性可以是实体自身所具有的或由某些联系继承得到的属性,131,IDEF,1X,方法中的主、次关键字:,使用规则,(6)主、次关键字必须只包含有助于唯一标识实体的实例的那些属性,即,如果主、次关键字中去掉任一部分属性,那么就无法唯一确定实体的实例。这一规则称为“最小关键字规则”,(7),如果主关键字由多个属性组成,那么每个非键属性的值必须完全函数依赖于主关键字。也就是说,如果主关键字的一部分属性被确定了,那么非键属性的值无法唯一确定。这一规则称为“完全函数依赖规则”,132,IDEF,1X,方法中的主、次关键字:,使用规则,(8)每个非键属性必须是仅仅函数依赖于主、次关键字。也就是说,没有一个非键属性的值能够由其它非键属性值确定。这一规则被称为“非传递依赖规则”,133,IDEF,1X,方法中的外来关键字:,描述,外来关键字可以作为一个实体的部分或全部主关键字,次关键字或非键属性,例如,在分类联系中,所有分类实体的主关键字都是从一般实体的主关键字继承得到的,134,IDEF,1X,方法中的外来关键字:,使用规则,(1)在连接联系或分类联系中的子实体或分类实体中,必须包含一个外来关键字,(2)一般实体的主关键字必须遗传为每个分类实体的主关键字,(3)父实体或一般实体的每一个主关键字属性都必须是相关子实体或分类实体中的继承属性,135,IDEF,1X,方法:,建模过程,准备阶段,定义实体,定义联系,定义键,定义属性,136,IDEF,1X,方法的建模过程:,准备阶段,同,ER,方法建模过程的准备阶段,137,IDEF,1X,方法的建模过程:,定义实体,由于实体是现实世界中某种具体事物或概念的一种抽象,因此,一个物体、一个事件、一种状态、一种行为、一种思想均可作为实体,识别实体时,应对候选实体尽量考虑以下几个问题:,138,IDEF,1X,方法的建模过程:,定义实体,(1)它能被描述吗?或它有哪些性质或属性?,(2)存在多个该类事物吗 ?,(3)每一个该类事物能被区分或标识吗 ?,(4)它是否属于或描述某事物?如果是,则是属性,而不是实体,139,IDEF,1X,方法的建模过程:,定义实体,经过上述考虑后,可以得到初步的实体,并给每一实体编号和命名。以实体表的形式记录下来,例如:在,XMIS,中,XMIS,中的初步实体表,实体编号 实体名称,1 用户,2 存/提货订单,3 货物,4 货位,5 仓库,6 运输计划,7,运输计划项目,8 运输任务,9,运输任务项目,10 司机,11 车辆,140,IDEF,1X,方法的建模过程:,定义联系,定义联系是指识别实体之间可
展开阅读全文