数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 1页第 3章 数据库建模 —— IDEF1x图本章概述本章的学习目标主要内容数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 2页本章概述
继续讲述数据库建模。这一章我们将学习建立数据库模型的另外一种方法,IDEF1x图。这是 IDEF方法族中的一个用于描述系统信息及其联系的方法。
IDEF1x图与前面介绍的 ER图非常类似,都可以用来建立系统的信息模型。但是,两者又有很大的差别:
从产生时间来看,ER图产生于 1976年,而 IDEF1x图于 1981年才建立。
从功能方面讲,与 ER图相比,IDEF1x图具有更加完善的语法、
增强的图形表达能力、规范的开发过程、标准的文件格式、大量的软件建模工具支持,因此 IDEF1x图的应用越来越广泛。
本章将要全面介绍 IDEF1x图,使读者尽快地掌握使用
IDEF1x图分析系统、建立系统信息模型的技术。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 3页本章的学习目标
了解 IDEF方法族的发展和组成;
掌握使用 IDEF1x图建立数据库模型的基本原理;
认识和掌握 IDEF1x的基本元素;
掌握 IDEF1x图的语义、语法和规则;
掌握使用 IDEF1x图建立数据库模型的步骤;
了解 IDEF1x的标准文件格式和确认过程。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 4页主要内容
3.1 概述
3.2 IDEF1x图的语法和语义
3.3 使用 IDEF1x图建立数据库模型的过程
3.4 本章小结数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 5页
3.1 概述
DEF的基本概念是在 20世纪 70年代提出的结构化系统分析与设计技术 (Structured Systems Analysis and
Design Technology,SSADT)基础上发展起来的。
SSADT是一种优秀的系统管理思想和方法,在许多应用领域中起到了很好的作用
1981年,美国空军在公布的集成计算机辅助制造
(Integrated Computer Aided Manufacturing,ICAM)
工程中正式使用了名称为 IDEF的方法。在公布的文件中,
IDEF是 ICAM DEFinition method的缩写。
后来,随着使用越来越广泛,为了方便起见,把 IDEF方法看成是 Integration DEFinition method的缩写。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 6页
IDEF系列方法
最初阶段,IDEF系列方法只包括了三种不同的可视化的建模方法,即 IDEF0,IDEF1和 IDEF2。
IDEF0是一种功能建模方式,它结构化地描述了所研究系统的活动和处理进程。
IDEF1是一种信息或数据建模方式,它描述了系统信息及其联系,
其建立的信息模型是数据库设计的基础。
IDEF2方法可以用来开发系统的动态仿真模型,它描述了环境或系统随时间变化的行为特征。
IDEF方法族已在国内外得到了广泛的应用,正在逐渐地形成一整套从各个方面分析和设计复杂系统的系列方法。
已有的 IDEF方法及功能如表 3-1所示。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 7页
IDEF1x图的概念和特点
语义数据模型是一种抽象化的定义,它定义了所存储的符号如何与现实世界相互关联,用来真实地反映客观现实。
IDEF1x是一种语义数据模型技术,具有的主要特征包括:
支持概念模式的开发。
IDEF1x是一种相关语言。
IDEF1x是便于讲授的。
IDEF1x已在应用中得到了很好的检验和证明。
IDEF1x是可以自动化的。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 8页主要内容
3.1 概述
3.2 IDEF1x图的语法和语义
3.3 使用 IDEF1x图建立数据库模型的过程
3.4 本章小结数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 9页
3.2 IDEF1x图的语法和语义
IDEF1x的基本要素包括实体、联系以及属性和键码,联系又可以分为连接联系、分类联系和非确定联系。
在 IDEF1x中,虽然某些概念与 ER图中的概念非常类似,例如实体,但是由于 IDEF1x图中的概念有更严谨的语法和更加精确的语义,所以两种方法中的许多概念在内涵、外延和表示形式方面还存在着差别。
下面详细介绍 IDEF1x基本要素的语法和语义。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 10页实体的语义
实体 (entity)表示具有相同属性或特征的客观现实和抽象事物的集合。
该集合中的一个元组就是该实体的一个实例
(instance)。
如果一个实体的每一个实例都能被唯一地标识,
而不是取决于与其它实体的联系,那么该实体就是独立标识符实体 (identifier-independent
entity),简称独立实体。
如果实体中的一个实例的唯一标识,取决于该实体与其它实体之间的联系,那么该实体就是从属标识符实体 (identifier entity),简称从属实体。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 11页实体的语法数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 12页实体的规则
每一个实体必须使用唯一的实体名,相同含义的名称必须用于同一个实体,不能用于不同的实体。
一个实体可以有一个或多个属性,这些属性可以是自身具有的,也可以是通过一个联系继承到的。
一个实体应该有一个或多个能够唯一标识每一个实例的属性,即具有主键码或次键码。
IDEF1x中的任意实体都可以与模型中的其他实体有联系。
如果一个完全外来键码是一个实体主键码的全部或部分,
那么该实体就是从属实体。相反,如果根本没有外来键码属性作为一个实体的主键码,那么该实体就是独立实体。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 13页连接联系语义
确定连接联系 (specific connection
relationship),简称连接联系,是实体之间的一种连接。
连接联系又可以称为父子联系 (parent-child
relationship)或依赖联系 (existence-
dependency relationship)。在这种连接联系中,
父实体中的每一个实例与子实体的 0个,1个或多个实例相连接,子实体的每一个实例精确地与父实体的一个实例相连接。也就是说,只有与其相连接的父实体的实例存在,子实体的这个实例才可以存在。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 14页连接联系的语法
一个确定的连接联系用父子实体之间的一条连线来表示,连线的子实体端带有一个小圆点。在此小圆点旁边,使用字母 P表示基数为 1或大于 1的正整数,使用 Z表示基数为 0或 1,使用正整数可以表示一个确定值,
默认情况下表示基数为 0,1或大于 1的正整数。这些含义如表 3-2所示。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 15页连接联系的规则
一个确定性联系总是存在两个实体之间。在这两个实体中,
一个是父实体,一个是子实体。
子实体的一个实例必须恰好与父实体的一个实例相联系。
父实体的一个实例可以与子实体的 0个,1个或多个实例相联系,具体情况由指定的基数确定。
在标定联系中的子实体总是一个从属标识符实体。
一个实体可以与其它任意多个实体相联系,可以在不同的联系中充当不同的角色。例如,可以在一个联系中充当父实体,而在另一个联系中充当子实体。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 16页分类联系的语义
分类联系可以分为完全分类联系和不完全分类联系两种形式。
完全分类联系 (complete categorization relationship)是两个或多个实体之间的联系,且在这些实体中,存在一个一般实体 (generic entity),它的每一个实例都恰好与一个且仅一个分类实体 (category entity)的一个实例相联系。
在 IDEF1x中,还允许分类的不完全集合的情况出现,例如,一般实体的一个实例不与任何分类实体的任意一个实例相关联,那么这个联系就被定义为不完全分类联系
(incomplete categorization relationship)。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 17页分类联系的语法数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 18页分类联系的规则
一个分类实体只能有一个对应的一般实体。也就是说,对于一个分类联系而言,它只能是一个分类集的一个成员。
一个分类联系中的一个分类实体可以是一个其它分类联系中的一般实体。
一个实体可以有任意个分类联系,在这些分类联系中,这个实体作为一般实体。例如,可以对 author实体进行性别分类,分为描述女作家的 femaleAuthor实体和描述男作家的 maleAuthor实体两类。
一个分类实体不能是可标定连接联系中的一个子实体。
分类联系的主键码属性必须和一般实体的主键码属性相同。
一个分类实体的全部实例都具有相同的鉴别器值 (discriminator
value),并且不同分类实体的所有实例都具有不同的鉴别器值。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 19页非确定联系的语义
父子联系和分类联系都可以被认为是确定联系 (specific
relationship),因为这些联系都确切地定义了一个实体的实例如何与其他实体的实例相关联。
在一个完善的 IDEF1x图中,实体之间的所有联系都必须用确定联系来描述。但是,在建模的初始阶段,标识一些两个实体之间的非确定联系 (nonspecific relationship)常常对开发过程是有帮助的。
这些非确定联系,在进一步的建模阶段中会不断地得到细化。
一个非确定联系又可以称为多对多联系 (many to many
relationship)。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 20页非确定联系的语法数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 21页属性
属性表示一类客观现实或抽象事物的一种特征或性质,一个属性实例就是这类事物一个个体成员的具体特性。属性实例由特征和值来定义,该值也称为属性值。
在一个 IDEF1x模型中,属性是与具体的实体相联系的。实体的每一个相关属性都必须有一个单一而确定的值。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 22页属性的语法数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 23页属性规则
每一个属性都必须有一个唯一的名称,且相同的名字总是描述相同的含义。因此,相同含义的属性不可能对应于不同的名字。
每一个实体可以有任意多个属性,一个属性只能归属于一个实体,该规则称为单主规则 (single owner rule)。
一个实体可以有任意多个继承属性,而每一个继承属性都必须是某个相关的父实体或一般实体主键码的一部分。
实体的每一个实例,对每一个属性都必须有一个值,该规则称为非空规则 (not null rule)。
对于同某个实体相关的属性而言,该实体没有一个实例可能具有一个以上的值。该规则则称为非重复规则 (no
repeat rule)。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 24页主键码和次键码
一个实体的候选键码 (candidate key)可以由一个或多个属性组成,它唯一地确定实体的每一个实例。
如果在一个实体中,存在多个候选键码,
那么必须指定其中一个为主键码,而其他候选键码为次键码 (alternate key)。
如果只有一个候选键码,那么它自然就是主键码。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 25页主键码和次键码语法数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 26页主键码和次键码的规则
每一个实体必须有一个主键码。
每一个实体可以有任意多个次键码。
主键码或次键码都可以由单个或多个属性组成。
个别属性可以是多个键码 (主键码或次键码 )的一部分。
构成主键码或次键码的属性可以是实体自身所具有的,或是通过某些联系继承得到的属性。
主键码和次键码必须仅仅包含有助于唯一标识实体的那些属性。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 27页外键码
如果在两个实体之间存在确定连接和分类联系,那么构成父实体和一般实体主键码的属性将被继承为子实体或分类实体的属性。这些继承属性被称为外键码 (foreign
key)。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 28页主要内容
3.1 概述
3.2 IDEF1x图的语法和语义
3.3 使用 IDEF1x图建立数据库模型的过程
3.4 本章小结数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 29页
3.3 使用 IDEF1x图建立数据库模型的过程数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 30页准备阶段
准备阶段就是为正式建立 IDEF1x模型做好必要的组织、计划、资源等工作。
在准备阶段,建模者要做的主要工作包括:
确定建模目标;
开发建模计划;
组织建模队伍;
收集源材料;
采用作者约定。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 31页定义实体阶段
定义实体阶段就是根据收集到的源材料和绘制的系统功能模型,识别系统中的实体,
对实体进行命名,并且使用简单的形式记录下来。
定义实体阶段需要做的工作包括:
标识实体
编号和命名实体
该阶段的主要结果是得到实体表。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 32页定义联系阶段
定义联系是指识别实体之间的联系,并对识别出来的联系命名,最后以实体级图的形式表示出来。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 33页定义键码阶段
定义键码是一个比较复杂的工作,因为这是由实体级图向完整的 IDEF1x图过渡的重要一步。在定义键码阶段,需要做的工作包括:
将不确定联系转化为确定型联系;
识别和定义每个实体的主键码和次键码;
根据规则和联系的类型进行键码的迁移;
根据规则确认键码和联系;
使用键级图表达实体、主键码、外键码和实体之间的相互联系。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 34页定义属性阶段
定义属性是建立 IDEF1x模型的最后阶段。
在该阶段,要对模型中的每一个实体确定其全部的非键码属性,对所识别的属性进行定义,根据规则检验属性的合理性,并且根据所定义的属性,进一步完善信息模型,最后形成信息模型的全部、完整的描述文档。
这些文档包括键级图、实体表和实体属性表等。
数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 35页文件编制阶段数据库系统原理与应用教程 (第二版 ) 第 3章 数据库建模 —— IDEF1x图 第 36页主要内容
3.1 概述
3.2 IDEF1x图的语法和语义
3.3 使用 IDEF1x图建立数据库模型的过程
3.4 本章小结