lecture3信息模型与数据库设计公开课一等奖省优质课大赛获奖课件_第1页
lecture3信息模型与数据库设计公开课一等奖省优质课大赛获奖课件_第2页
lecture3信息模型与数据库设计公开课一等奖省优质课大赛获奖课件_第3页
lecture3信息模型与数据库设计公开课一等奖省优质课大赛获奖课件_第4页
lecture3信息模型与数据库设计公开课一等奖省优质课大赛获奖课件_第5页
已阅读5页,还剩157页未读 继续免费阅读

下载本文档

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

文档简介

TsinghuaUniversity应用软件系统分析与设计柴跃廷清华大学自动化系1第三章信息模型与数据库设计深入分析各类应用软件可知:各种应用软件都是围绕数据展开,数据规划与管理是系统关键。同时,对于特定应用领域,由数据反应出来各类信息及其相互关系是相对稳定,而处理各种问题所进行处理是多变,所以,信息模型与数据库设计技术,是开发大型应用软件系统,尤其是各类信息系统关键与关键2第三章信息模型与数据库设计问题提出信息模型概念建立信息模型方法基于信息模型数据库设计方法3背景:某企业客户订货系统,包括主要信息有:客户信息:编号(CNO)、名称(CNAME)、地址(CADDR);产品信息:编号(PNO)、名称(PNAME)、单价(PCOST)订单信息:编号(ONO)、客户编号(CNO)、订购数量(OQTY)。该系统目标是能够方便地对客户、订单及产品信息进行增、删、查、改等管理。信息模型与数据库设计:问题提出问题:怎样设计系统数据库?4信息模型与数据库设计:问题提出方案一:设计一张表统计客户、订单及产品信息:CNO、CNAME、CADDR、ONO、PNO、PNAME、PCOST、OQTY

C1CN1CADR1O1P1PN1PC1OQ1

C1CN1CADR1O1P2PN2PC2OQ2

C1CN1CADR1O2P3PN3PC3OQ3

C2CN2CADR2O3P1PN1PC1OQ45信息模型与数据库设计:问题提出方案一:设计一张表统计客户、订单及产品信息:CNO、CNAME、CADDR、ONO、PNO、PNAME、PCOST、OQTY

C1CN1CADR1O1P1PN1PC1OQ1

C1CN1CADR1O1P2PN2PC2OQ2

C1CN1CADR1O2P3PN3PC3OQ3

C2CN2CADR2O3P1PN1PC1OQ4存在问题:(1)假如删除订单信息,则产品信息也将删除,称为删除异常;(2)假如没有订单,则无法增加产品信息,称为插入异常;(3)客户、订单、产品信息冗余,会引发数据不一致6信息模型与数据库设计:问题提出方案一:设计一张表统计客户、订单及产品信息:ONO、PNO、CNO、CNAME、CADDR、PNAME、PCOST、OQTYO1P1C1CN1CADR1PN1PC1OQ1

O2P2C1CN1CADR1PN2PC2OQ2O3P3C1CN1CADR1PN3PC3OQ3O4P1C2CN2CADR2PN1PC1OQ4存在问题原因:区分每一条统计关键字是(ONO、PNO),而产品信息(PNAME、PCOST)原来能够由PNO唯一确定,也就是说,产品信息并不完全依赖于订单编号,这是引发插入及删除异常原因。7信息模型与数据库设计:问题提出方案一:设计一张表统计客户、订单及产品信息:ONO、PNO、CNO、CNAME、CADDR、PNAME、PCOST、OQTYO1P1C1CN1CADR1PN1PC1OQ1

O2P2C1CN1CADR1PN2PC2OQ2O3P3C1CN1CADR1PN3PC3OQ3O4P1C2CN2CADR2PN1PC1OQ4方案一改进办法:将原来一张表分解为三张表,分别为订单信息、产品信息、订单细节(用于联络产品与订单。8信息模型与数据库设计:问题提出方案二:用订单信息、产品信息及订单细节三张表存放客户订货系统信息:订单信息CADRONOCNOCNAMEPCOST产品信息PNOPNAME订单细节PNOONOOQTY9信息模型与数据库设计:问题提出方案二:用订单信息、产品信息及订单细节三张表存放客户订货系统信息:订单信息CADRONOCNOCNAMEPCOST产品信息PNOPNAME订单细节PNOONOOQTY

存在问题:(1)假如删除订单信息,则客户信息也将删除,称为删除异常;(2)假如没有订单,则无法增加客户信息,称为插入异常;(3)客户信息冗余,会引发数据不一致10信息模型与数据库设计:问题提出方案二:用订单信息、产品信息及订单细节三张表存放客户订货系统信息:订单信息CADRONOCNOCNAMEPCOST产品信息PNOPNAME订单细节PNOONOOQTY

存在问题原因:区分每一条订单统计关键字是ONO,而客户信息(CNAME、CNAME)原来能够由CNO唯一确定,也就是说,客户信息并不完全依赖于订单编号,这是引发插入及删除异常原因。11信息模型与数据库设计:问题提出方案二:用订单信息、产品信息及订单细节三张表存放客户订货系统信息:订单信息CADRONOCNOCNAMEPCOST产品信息PNOPNAME订单细节PNOONOOQTY

方案二改进办法:将原来订单信息表分解为订单信息和客户信息表。12信息模型与数据库设计:问题提出方案三:用订单信息、产品信息、客户信息及订单细节四张表存放客户订货系统信息:PCOST产品信息PNOPNAME订单细节PNOONOOQTY订单信息ONOCNOCADRCNOCNAME客户信息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方法IDEF1X方法31建立信息模型方法:ER方法ER方法概念ER方法基本要素ER方法建模过程32ER方法:概念ER(EntityRelationship)方法就是实体—联络方法,用于描述和定义系统中信息及其内在联络,建立系统信息模型ER方法使用ER图描述信息模型,该方法简便、有效,是当前进行数据库设计普遍方法33ER方法:基本要素实体属性联络34ER方法基本要素:实体

实体是现实世界中含有相同属性和特征事物或概念集合,集合中每个元素称为该实体一个实例。比如,用户、车辆、货物等均可视为是实体。其中,某个用户“A”是用户实体一个实例。35ER方法基本要素:实体实体用长方形表示,并在框内注明实体名称。用户36ER方法基本要素:属性属性用来描述实体某种性质和特征。属性与详细实体相联络。比如,“用户”实体含有属性“编号”和“名称”等。

37ER方法基本要素:属性属性用椭圆形表示,并标出实体与属性之间联络。用户编号名称38ER方法基本要素:联络实体之间联络能够是:一对一(1:1)一对多(1:m)多对多(m:n)

用菱形表示实体间联络,在菱形框内注明联络名,并用无向边将菱形分别与相关实体相联络39实体之间联络:1:11:1联络存在于两个实体A、B之间,实体A中一个实例与实体B中一个实例相对应,实体B中一个实例与实体A中一个实例相对应比如,司机与车辆之间联络司机车辆驾驶1140实体之间联络:1:M1:M联络存在于两个实体A、B之间,实体A中一个实例与实体B中M个实例相对应,实体B中一个实例与实体A中一个实例相对应比如,用户与存/提货订单之间联络用户存/提货订单签定1M41实体之间联络:M:NM:N联络存在于两个实体A、B之间,实体A中一个实例与实体B中N个实例相对应,实体B中一个实例与实体A中M个实例相对应比如,货物与货位之间联络货物货位存放在/存放MN42实体之间联络:联络属性实体之间联络能够有属性比如,货物与货位之间联络,能够有属性“存放数量”货物货位存放在/存放MN存放数量43ER方法:建模过程(1)准备阶段(2)设计初步ER图(3)设计基本ER图44ER方法建模过程:准备阶段(1)确定建模目标(2)确定建模范围和上下文(3)制订源材料搜集计划并着手搜集原材料45ER方法建模过程准备阶段:确定目标不论是什么样应用系统,建立信息模型主要目标是用规范化方法,从系统角度出发,抽取和规划应用领域中相对稳定数据资源,使其独立于特定数据管理系统环境和应用领域事务处理环境,作为建立应用系统基础和依据46ER方法建模过程准备阶段:确定范围建立系统信息模型时,普通以系统功效模型或确定问题研究范围作为建模上下文和范围47ER方法建模过程准备阶段:搜集源材料普通情况下,源材料能够展现各种形式,并广泛地分布在应用领域中。主要有:调研结果观察结果应用领域业务过程原系统主要输出(比如主要报表、表格、文件等)原系统主要输入(比如口头传述内容、统计等)48ER方法建模过程:设计初步ER图主要问题基本步骤设计举例初步ER图特点49设计初步ER图:主要问题设计初步ER图关键是识别实体及其联络。包括主要问题是怎样对所搜集到相关信息划分实体和属性。实体和属性在形式上没有显著界限,它随应用环境不一样而不一样。区分实体和属性普通可依据两个标准:属性与其所描述实体之间只能是m:1关系属性本身不能再被描述,不能与其它实体有联络50设计初步ER图:基本步骤设计各个局部ER图综合各部分ER图,形成初步ER图51设计初步ER图:设计举例用户签定1M存/提货订单货物拥有1M编号名称地址订单编号签定日期货物总数订单数量型号规格名称货物编号局部ER图(1)52设计初步ER图:设计举例货物用户拥有1MN货位货位编号仓库编号存放总数地址编号名称货物编号名称订单数量型号规格存放在M存放数量局部ER图(2)53设计初步ER图:设计举例初步ER图用户签定1M存/提货订单货物拥有1M编号名称地址订单编号签定日期货物总数订单数量型号规格名称货物编号N货位货位编号仓库编号存放总数存放在M存放数量拥有1M54设计初步ER图:初步ER图特点在初步ER图中,可能存在冗余属性和联络须进行深入细化与完善基本ER图55ER方法建模过程:设计基本ER图属性综合联络综合发觉和处理不一致56设计基本ER图:属性综合考查每一个实体,综合各局部ER图中属性,消除冗余属性比如,“存放数量”和“存放总数”、“订单数量”和“货物总数”57设计基本ER图:联络综合综合各局部ER图中联络,考查每一个联络,消除冗余联络比如,“用户”与“货物”联络58设计基本ER图:发觉和处理不一致综合各局部ER图中属性和联络,考查每一个属性和联络,是否存在同名异义;同义异名;实体和联络定义在不一样局部有否冲突;

比如,用户“名称”和货物“名称”59初步ER图用户签定1M存/提货订单货物拥有1M编号名称地址订单编号签定日期货物总数订单数量型号规格名称货物编号N货位货位编号仓库编号存放总数存放在M存放数量拥有1M设计基本ER图:设计例子60设计基本ER图:设计例子基本ER图用户签定1M存/提货订单货物拥有1M用户编号用户名称用户地址订单编号签定日期订单数量型号规格货物名称货物编号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模型数据库设计:将联络转化为关系用户签定1M存/提货订单用户编号用户名称用户地址订单编号签定日期ORDER(ORDER_NO,USER_NO,ORDER_DATE,……)69基于ER模型数据库设计:将联络转化为关系拥有1M存/提货订单订单编号签定日期货物订单数量型号规格货物名称货物编号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(A1,A2,…,An),X和Y均为(A1,A2,…,An)子集,当任意两个元组u,v中对应于X那些属性分量值均相等时,则u,v中对应于Y那些属性分量值也相等,称X函数决定Y,或称Y函数依赖于X,记为X→Y。77规范化关系模式:函数依赖比如,学生(学号S#、姓名SN、系名SD)存在函数依赖:S#→SNS#→SD78规范化关系模式:函数依赖完全函数依赖部分函数依赖传递函数依赖

79规范化关系模式:完全函数依赖设相关系R,假如X→Y,对于X任意一个真子集X’,都有X’不能决定Y,则称Y对X完全函数依赖,记为X→Y比如,若学生与课程关系:SC=(学号S#,课程CN,成绩SG)(S#,CN)→SGX真子集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,SLS#→SDS#→SL81规范化关系模式:传递函数依赖对于关系R,当且仅当X→Y,Y→Z时,称Z对X传递函数依赖比如,学生(学号S#、班级SB、辅导员TN),一个班有若干个学生,一个学生只属于一个班,一个班只有一名辅导员,但一个辅导员负责几个班。由此可得到一组函数依赖:S#→SBSB→TN辅导员TN传递函数依赖于学号S#82规范化关系模式:规范化方法消去部分函数依赖消去传递函数依赖非规范化关系第一范式(1NF)消去重复组第二范式(2NF)第三范式(3NF)83举例:某企业客户订货系统,包括主要信息有:客户信息:编号(CNO)、名称(CNAME)、地址(CADDR);产品信息:编号(PNO)、名称(PNAME)、单价(PCOST)订单信息:编号(ONO)、客户编号(CNO)、订购数量(OQTY)规范化关系模式:规范化方法84设计方案一:设计一张表统计客户、订单及产品信息:CNO、CNAME、CADDR、ONO、PNO、PNAME、PCOST、OQTY

C1CN1CADR1O1P1PN1PC1OQ1

P2PN2PC2OQ2

P3PN3PC3OQ3

C2CN2CADR2O2P1PN1PC1OQ4存在问题:

出现重复组,使订单信息难于管理,属于非规范化关系。处理方案:

消除重复组,使关系规范化规范化关系模式:规范化方法85处理方案二:第一范式——没有重复组CNO、CNAME、CADDR、ONO、PNO、PNAME、PCOST、OQTY

C1CN1CADR1O1P1PN1PC1OQ1

C1CN1CADR1O1P2PN2PC2OQ2

C1CN1CADR1O2P3PN3PC3OQ3

C2CN2CADR2O3P1PN1PC1OQ4存在问题:(1)假如删除订单信息,则产品信息也将删除,称为删除异常;(2)假如没有订单,则无法增加产品信息,称为插入异常;(3)客户、订单、产品信息冗余,会引发数据不一致规范化关系模式:规范化方法86处理方案二:第一范式——没有重复组ONO、PNO、CNO、CNAME、CADDR、PNAME、PCOST、OQTYO1P1C1CN1CADR1PN1PC1OQ1

O2P2C1CN1CADR1PN2PC2OQ2O3P3C1CN1CADR1PN3PC3OQ3O4P1C2CN2CADR2PN1PC1OQ4存在问题原因:存在部分函数依赖PNO→PNAME、PCOST规范化关系模式:规范化方法87处理方案二:第一范式——没有重复组ONO、PNO、CNO、CNAME、CADDR、PNAME、PCOST、OQTYO1P1C1CN1CADR1PN1PC1OQ1

O2P2C1CN1CADR1PN2PC2OQ2O3P3C1CN1CADR1PN3PC3OQ3O4P1C2CN2CADR2PN1PC1OQ4方案二改进办法:

将原来一张表分解为三张表,分别为订单信息、产品信息、订单细节(用于联络产品与订单),消除部分函数依赖规范化关系模式:规范化方法88订单信息CADRONOCNOCNAMEPCOST产品信息PNOPNAME订单细节PNOONOOQTY存在问题:(1)假如删除订单信息,则客户信息也将删除,称为删除异常;(2)假如没有订单,则无法增加客户信息,称为插入异常;(3)客户信息冗余,会引发数据不一致处理方案三:第二范式——每个非键属性完全函数依赖主关键字规范化关系模式:规范化方法89订单信息CADRONOCNOCNAMEPCOST产品信息PNOPNAME订单细节PNOONOOQTY存在问题原因:存在传递函数依赖

ONO→CNOCNO→CNAME、CNAME

处理方案三:第二范式——每个非键属性完全函数依赖主关键字规范化关系模式:规范化方法90订单信息CADRONOCNOCNAMEPCOST产品信息PNOPNAME订单细节PNOONOOQTY

方案三改进办法:将订单信息表分解为订单信息和客户信息表。消除传递函数依赖处理方案三:第二范式——每个非键属性完全函数依赖主关键字规范化关系模式:规范化方法91处理方案四:第三范式PCOST产品信息PNOPNAME订单细节PNOONOOQTY订单信息ONOCNOCADRCNOCNAME客户信息规范化关系模式:规范化方法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建立信息模型方法:IDEF1X方法

IDEF1X方法概念IDEF1X方法基本要素IDEF1X方法建模过程96IDEF1X方法:概念

IDEF1X方法是IDEF方法组成部分之一,由美国空军一体化信息支持系统(IntegratedInformationSupportSystem–IISS)项目研究组于1985年正式推出,它是一个语义数据模型化技术,用来支持信息模型开发,用IDEF1X方法建立信息模型能够作为数据库设计主要依据97IDEF1X方法:基本要素及其语法定义

实体实体属性实体间联络实体关键字98IDEF1X方法中实体:定义实体是客观世界中含有相同属性和特征客体或抽象事物集合。集合中一个元素是该实体一个“实例”比如“职员”是一个实体,“张三”是“职员”实体一个实例。99IDEF1X方法中实体:分类实体分为“独立实体”和“隶属实体”独立实体——假如一个实体每个实例都能被唯一地标识而不决定于它与其它实体联络,那么该实体被称为独立实体;隶属实体——假如实体一个实例唯一标识依赖于该实体与其它实体联络,那么该实体被称为“隶属实体”100IDEF1X方法中实体:描述实体用矩形框来表示。其中,方角矩形框表示独立实体,圆角矩形框表示隶属实体每一个实体必须有一个名字和编号,名字和号码之间用斜杠(/)隔开,标注在矩形框上方实体名字必须是一个名词短语,能够用缩写词。实体名必须是有意义且在整个模型中保持一致。101IDEF1X方法中实体:描述实体名/实体号实体名/实体号独立实体隶属实体职员/32项目/32比如:比如:102IDEF1X方法中实体:使用规则(1)每一个实体必须使用唯一实体名和单一含义,相同含义必须用于同一实体名而不能用于不一样实体名,别名除外(2)一个实体能够有一个或多个属性,这些属性能够是本身拥有,也能够是经过联络而继承得到103货物/12货物编号货物名称…...IDEF1X方法中实体:使用规则用户/11用户编号用户名称…...货物/12货物编号货物名称用户编号…...继承属性104IDEF1X方法中实体:使用规则(3)一个实体应有一个或多个能唯一标识实体中每个实例属性,(该属性或属性组合称为该实体主关键字)。(4)任何实体都能够与模型中其它实体有任意联络105IDEF1X方法中属性:定义属性是用来描述实体某种性质和特征。属性与详细实体相联络,实体每个属性都必须含有一个单一且确定值比如,“职员”实体含有属性“职员姓名”和“职员生日”,而“张三”和“1964/10/21”是职员实体一个实例。106IDEF1X方法中属性:描述

实体属性被列在表示实体矩形框内,每行列一个属性,主关键字列在最上面,而且用水平线将其与其它属性隔开每个属性均用一个名字唯一地标识。该名字能够用名词短语,也能够用缩写词属性名在整个模型中必须有意义而且是一致107IDEF1X方法中属性:描述属性名[属性名]…[属性名][属性名]…实体名/实体号职员号职员姓名生日性别主关键字比如:职员/32108IDEF1X方法中属性:使用规则(1)每一个属性必须含有一个唯一名称,且相同名称描述相同含义(除别名外)(2)每个实体能够含有任意多个属性,一个属性只能归属于一个实体,该规则称为“单主规则”(3)一个实体能够有任意多个继承属性,而每个继承属性都必须是某个相关实体主关键字一部分或全部109IDEF1X方法中属性:使用规则(4)实体每一个实例,其每一个属性都必须含有一个值,该规则称“非空规则”(5)对于同某个实体相关属性而言,不能含有一个以上值,该规则称为“非重复规则”110IDEF1X方法中联络:分类连接联络分类联络非确定性联络111IDEF1X方法中连接联络:定义连接联络存在于两个实体之间,一个称为父实体,另一个称为子实体。父实体中每一个实例与子实体0个、1个或多个实例相联络,子实体中每一个实例必须同父实体1个实例相系。即,只有与之相联络父实体实例存在时,子实体这个实例才存在。比如,“用户”和“存/提货订单”之间联络,112IDEF1X方法中连接联络:分类连接联络分为标定型联络和非标定型联络标定型联络——联络中父、子实体之间,子实体每个实例都是由与它相联络父实体某个实例确定非标定型联络——联络中父、子实体之间,子实体每个实例都能唯一地被确认而无须了解与之相联络父实体实例113IDEF1X方法中连接联络:描述在IDEF1X中,用父子实体之间连线表示连接关系,并在子实体一端加注小园点。其中,用实线表示标定型联络,用虚线表示非标定联络。一个联络应用动词短语来命名,并标注在联络连线旁边。命名方向是从父实体到子实体0,1,N1,N0,1确定基数标定型联络pzn非标定型联络0,1,N1,N0,1确定基数pzn114IDEF1X方法中连接联络:描述一个联络应用动词短语来命名,并标注在联络连线旁边。命名方向是从父实体到子实体实体A/1属性1属性1(外来)属性2实体B/2A到B联络名标定型联络实体C/3属性3实体D/4C到D联络名非标定型联络属性4115IDEF1X方法中连接联络:使用规则(1)一个连接联络总是存在于两个实体之间,一个作为父实体,另一个作为子实体(2)父实体一个实例可与子实体0个、1个或多个实例相联络,详细情况由特定基数而定(3)子实体一个实例必须且总是与父实体一个实例相联络116IDEF1X方法中连接联络:使用规则(4)在标定型联络中,子实体总是隶属实体(5)一个实体能够与任意多个其它实体相联络,能够在不一样联络中充当不一样角色。比如,在一些联络中当父实体,而在另一些联络中当子实体117IDEF1X方法中分类联络:定义

在现实世界中,一些实体可能是另一些实体分类中子类实体,称这种联络为分类联络。其中一个实体称为普通实体,另一个或几个实体称子类实体普通实体所拥有各分类子实体通常是互不包含,即,普通实体每一个实例只与其中一个分类子实体一个实例相对应118IDEF1X方法中分类联络:定义普通实体拥有一个属性,能够依据该属性值来判别普通实体实例与哪一个分类实体实例相对应,这个属性被称为分类“判别器”

比如,实体“职员”、“行政类职员”、“业务类职员”。119IDEF1X方法中分类联络:分类完全分类联络——普通实体每一个实例都恰好与一个且仅与一个分类实体一个实例相联络比如:“职员”、“男职员”、“女职员”不完全分类联络——普通实体一个实例可能不与任何分类实体任一实例相联络比如:“职员”、“青年职员”、“中年职员”、“老年职员”分类联络深入分为完全分类联络和不完全分类联络120IDEF1X方法中分类联络:描述判别器完全分类联络判别器不完全分类联络121IDEF1X方法中分类联络:使用规则(1)一个分类实体只能有一个与之对应普通实体(2)一个分类实体能够是另外一个分类联络中普通实体(3)一个分类实体不能是标定型连接联络中子实体(4)一个实体可含有任意个分类联络,在这些分类联络中,这个实体作为普通实体122IDEF1X方法中分类联络:使用规则(5)分类实体主关键字属性必须和普通实体主关键字属性相同(6)一个分类实体全部实例都含有相同判别器值,而且不一样分类实体全部实例都含有不一样判别器值123IDEF1X方法中非确定型联络:定义对于两个实体而言,假如任一实体一个实例都与另一个实体0个,1个或多个实例相联络,那么,这种联络称为非确定型联络在完善IDEF1X模型中,实体间全部联络都必须用确定型联络来描述。所以,在对模型不停完善过程中,应将非确定型联络转化成确定型联络,

比如,实体“职员”与“项目”124IDEF1X方法中非确定型联络:描述

非确定型联络用一个两端带园点连线来描述,在园点旁可标识联络基数非确定型联络采取动词短语双向命名,联络名用斜杠(/)分开,标识在连线旁边。联络名次序由实体之间相对位置确定125IDEF1X方法中非确定型联络:描述实体C/3实体D/4联络名/联络名D到C联络C到D联络实体B/2实体A/1A到B联络联络名/联络名B到A联络126IDEF1X方法中非确定型联络:使用规则(1)一个非确定型联络总是存在于两个实体之间,而不是三个或更多个实体之间(2)两个实体中,任意一个实体实例能够与另一个实体0个,1个或多个实例相关联,详细情况要视联络基数而定127IDEF1X方法中关键字:定义

在实体属性中,用来唯一地标识实体每个实例一个或多个属性组合称为该实体关键字。实体能够有一个或多个关键字。假如实体存在多个关键字,那么必须指定其中一个为“主关键字”,而其它关键字被称为“次关键字”。假如两个实体之间存在连接联络或分类联络,那么组成父实体或普通实体主关键字属性将被继承为子实体或分类实体属性,这些继承属性被称为“外来关键字”128IDEF1X方法中主、次关键字:描述主关键字属性标识在表示实体矩形框内顶部并用水平线同其它属性分开。每一个次关键字被分配一个唯一整数号,并放在字母“AK”(AlternateKey)后面,然后用圆括号括起来放在次关键字属性后面

129IDEF1X方法中主、次关键字:描述职员号身份证号(AK1)姓名(AK2)生日(AK2)主关键字1#次关键字2#次关键字130IDEF1X方法中主、次关键字:使用规则(1)一个实体必须有一个主关键字(2)一个实体能够有任意个次关键字(3)主、次关键字能够由单个或多个属性组成(4)个别属性能够是多个关键字一部分(5)组成主或次关键字属性能够是实体本身所含有或由一些联络继承得到属性131IDEF1X方法中主、次关键字:使用规则(6)主、次关键字必须只包含有利于唯一标识实体实例那些属性,即,假如主、次关键字中去掉任一部分属性,那么就无法唯一确定实体实例。这一规则称为“最小关键字规则”

(7)假如主关键字由多个属性组成,那么每个非键属性值必须完全函数依赖于主关键字。也就是说,假如主关键字一部分属性被确定了,那么非键属性值无法唯一确定。这一规则称为“完全函数依赖规则”132IDEF1X方法中主、次关键字:使用规则(8)每个非键属性必须是仅仅函数依赖于主、次关键字。也就是说,没有一个非键属性值能够由其它非键属性值确定。这一规则被称为“非传递依赖规则”133IDEF1X方法中外来关键字:描述外来关键字能够作为一个实体部分或全部主关键字﹑次关键字或非键属性

比如,在分类联络中,全部分类实体主关键字都是从普通实体主关键字继承得到

134IDEF1X方法中外来关键字:使用规则(1)在连接联络或分类联络中子实体或分类实体中,必须包含一个外来关键字(2)普通实体主关键字必须遗传为每个分类实体主关键字(3)父实体或普通实体每一个主关键字属性都必须是相关子实体或分类实体中继承属性

135IDEF1X方法:建模过程准备阶段

定义实体

定义联络

定义键

定义属性

136IDEF1X方法建模过程:准备阶段同ER方法建模过程准备阶段

137IDEF1X方法建模过程:定义实体因为实体是现实世界中某种详细事物或概念一个抽象,所以,一个物体、一个事件、一个状态、一个行为、一个思想均可作为实体,识别实体时,应对候选实体尽可能考虑以下几个问题:138IDEF1X方法建模过程:定义实体(1)它能被描述吗?或它有哪些性质或属性?(2)存在多个该类事物吗?(3)每一个该类事物能被区分或标识吗?(4)它是否属于或描述某事物?假如是,则是属性,而不是实体139IDEF1X方法建模过程:定义实体经过上述考虑后,能够得到初步实体,并给每一实体编号和命名。以实体表形式统计下来比如:在X——MIS中X—MIS中初步实体表实体编号实体名称1用户2存/提货订单3货物4货位5仓库6运输计划7运输计划项目8运输任务9运输任务项目10司机11车辆140IDEF1X方法建模过程:定义联络定义联络是指识别实体之间可能联络,并对识别出来联络命名,最终以实体级图形式表示出来。在该图中,允许出现非确定型联络,待以后阶段逐步消除。假如系统规模大,存在多张实体级图,则应注意各图之间一致性比如:在X——MIS中141IDEF1X方法建模过程:定义联络司机/10用户/1车辆/11仓库/5货位/4存/提货订单/2运输计划项目/7运输任务/8货物/3运输计划/6运输任务项目/9签定包含存放在/存放拥有产生包含包含生成/生成负担负担142IDEF1X方法建模过程:定义键将不确定联络转化为确定型联络识别和定义每个实体主键和次键依据规则和联络类型进行键迁移依据规则确认键和联络用功效视图(或称键级图)表示实体、主键、外来键以及实体间相互联络143IDEF1X建模中定义键:改造非确定型联络在完善IDEF1X模型中,是不允许存在非确定型联络。所以,需要将非确定型联络转化为确定型联络。转化方法是引入一个新实体(称之为相关实体),将一个非确定型联络转化成两个确定型联络比如,在X—MIS中,“货物”与“货位”之间联络,“运输计划项目”与“运输任务项目”之间联络144IDEF1X建模中定义键:改造非确定型联络货位/4货位编号仓库编号(FK)货位货物/12货物编号(FK)货位编号(FK)仓库编号(FK)存/提货订单编号(FK)货物编号存/提货订单编号(FK)货物/3

存放在/存放包含存放145IDEF1X建模中定义键:改造非确定型联络货位/4货位编号仓库编号(FK)货位货物/12货物编号(FK)货位编号(FK)仓库编号(FK)存/提货订单编号(FK)货物编号存/提货订单编号(FK)货物/3包含存放146IDEF1X建模中定义键:改造非确定型联络运输任务项目/9运输计划任务项目/13货物编号(FK)运输计划编号(FK)运输任务编号(FK)货物编号(FK)运输计划编号(FK)运输计划项目/7

生成/生成包含包含货物编号(FK)运输任务编号(FK)147IDEF1X建模中定义键:改造非确定型联络运输任务项目/9运输计划任务项目/13货物编号(FK)运输计划编号(FK)运输任务编号(FK)货物编号(FK)运输计划编号(FK)运输计划项目/7包含包含

温馨提示

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

评论

0/150

提交评论