《数据建模与分析.ppt》由会员分享,可在线阅读,更多相关《数据建模与分析.ppt(33页珍藏版)》请在课桌文档上搜索。
1、系统分析与设计,本章主要内容,8.1 数据建模简介8.2 数据建模的系统概念8.3 逻辑数据建模过程8.4 如何构造数据模型8.5 分析数据模型8.6 将数据需求映射到地点,8.1数据建模简介,Data modeling 数据建模 是一种组织和记录系统的数据的技术,有时被称为数据库建模。Entity relationship diagram(ERD)实体关系图(ERD)是一种利用符号记法按照数据描述的实体和关系来刻画数据的数据模型。,8.1数据建模简介,实体关系图(ERD),8.2数据建模概念,8.2.1 实体8.2.2 属性8.2.3 关系,8.2.1 实体,实体Entity是我们需要收集数
2、据和存储数据的人、地点、对象、事件或概念的类由单数名词命名,Persons 人员:代理、承包人、客户、部门、分部、雇员、导师、学生、供应商。人实体类可以表示个人、小组或组织。Places 地点:销售地区、建筑物、房间、分支办公室、校园。Objects 对象:图书、机器、部件、产品、原材料、软件许可证、软件包、工具、汽车模型、汽车。对象实体可以表示实际的对象(例如:软件许可证)或者一类对象的说明(例如,不同的软件包的说明)Events 事件:应用、奖励、取消、分类、飞行、开发票、订单、注册、续借、获取、预订、销售、旅行。Concepts 概念:账号、时间段、债券、课程、基金、资格、股票,8.2.
3、1 实体,实体实例 Entity instance实体的具体值,Instance实例,Entity实体,Instance实例,8.2.2 属性,Attribute 属性 是实体的描述性性质或特征。同义词包括要素、性质和域。Just as a physical student can have attributes,such as hair color,height,etc.,a data entity has data attributesCompound attribute 组合属性 实际上是由其他属性构成的属性。它在不同的数据建模语言中有很多同义词:串联属性、合成属性和数据结构。,8.2.
4、2 属性,Data type 数据类型 是属性的一个参数,定义了这个属性中可以存储什么类型的数据。,8.2.2 属性,Domain 域 是属性的一个参数,定义了这个属性可以取的合法值。,8.2.2 属性,Default value 默认值 是如果用户没有指定值的话将被记录 的值。,8.2.2 属性,Key 键 是一个属性(或一组属性),它们对每个实体实例具有唯一的值。它有时也被称为标识符。Concatenated key 复合键 是唯一地标识实体的一个实例的一组属性。同义词包括组合键和合成健。Candidate key 候选键 是一组可以作为一个实体的主键的键。它有时被称为候选标识符。Prim
5、ary key 主键 是最常被用来唯一地确定一个实体实例的候选键。Alternate key 替代键 是没有被选中作为主键的任何候选键。子集准则Subsetting criteria 是一个属性(或组合属性),其有限的取值范围把所有的实体实例分成了有用的子集。这有时也称为反向条目。,8.2.3 关系,关系relationship 是存在于一个或多个实体之间的业务联系。连接线表示了一个关系,动词短语描述了这个关系。所有的关系隐含地都是双向的,意味着它们可以从两个方向上解释。数据建模方法可能在关系的命名上会有所不同有些包括两个动词,而另一些仅包括一个动词。,8.2.3 关系,Cardinality
6、 基数 定义了一个实体相对于另一个关联实体的某个具体值的最小和最大具体值数量。,bidirectional,8.2.3 关系,基数符号:,8.2.3 关系,度数Degree是参与那个关系的实体数量。关系存在于两个实体之间称为二维关系。关系也可以存在于同一实体的不同实例之间,我们称之为递归关系。关系还可以存在于两个以上不同实体之间,这种关系有时被称为N维关系。,8.2.3 关系,关系还可以存在于两个以上的不同实体之间,这种关系有时被称为N维关系。N维关系用一个新的称为关联实体的实体结构说明。关联实体是一个从多个其他实体(称为父实体)继承其主键的实体,其复合键的每个部分指向每个连接实体的一个且仅一
7、个实例。,8.2.3 关系,Associative entity 关联实体 是一个从多个其他实体继承其主键的实体。其复合键的每个部分指向每个连接实体的一个且仅一个实例。,关联实体,Foreign key 外键 是一个实体的主键,它被贡献给(复制到)另一个实体以确定一个关系实例.外键总是与另一个实体的主键匹配获得外键的实体为子实体贡献主键的实体是父实体,8.2.3 关系,主键,主键,外键Duplicated from primary key of Major entity(not unique),8.2.3 关系,Nonidentifying relationship 非确定性关系 是每个参与关
8、系的实体都有各自的独立主键的关系不共享主键属性实体被称为独立实体(强实体),8.2.3 关系,Identifying relationship 确定性关系 是父实体贡献其主键成为子实体的主键的一部分的关系子实体被称为弱实体。,8.2.3 关系,弱实体和非确定性关系的符号表示,8.2.3 关系,用一个关联实体分解非特定关系Nonspecific relationship 非特定关系 是一个实体的多个实例同另一个实体的多个实例相关联的关系,也称为多对多关系。非特定关系可以被分解为两个一对多关系。每个实体都成为一个父实体,一个新的关联实体被引入作为每个实体的子实体,8.2.3 关系,Generali
9、zation 概化 是指将几类实体公共的属性组合成独立的实体。Supertype 超类 是一个实体,其实例存储了一个或多个实体子类的公共属性。Subtype 子类 是一个实体,其实例从一个实体超类中继承了一些公共属性。,概化层次体系,8.2.3 关系,8.3 逻辑数据建模过程,系统规划期间战略数据建模许多组织根据战略信息系统规划选择应用开发项目;组织战略规划项目产生出一个信息系统战略计划。包含了信息系统的整体构想和构架定义和区分项目开发的优先次序包含了基本的企业数据模型系统分析期间逻辑数据建模单个信息系统的数据模型通常被称为应用数据模型范围定义阶段:确立简单的实体清单;问题分析阶段:建立上下文
10、数据模型,仅包括实体和关系,不包括属性;需求分析阶段:建立逻辑数据模型,形成规范化数据模型;决策分析阶段:确定实现需求的最佳方法。,上下文数据模型 基于键的数据模型具有完整属性的数据模型规范化的数据模型,逻辑模型开发步骤:,8.3 逻辑数据建模过程,8.4 如何构造数据模型,构造数据模型的主要步骤:获取实体确立项目范围,获取项目相关的基本实体通过JRP会议;现有表格、文件和报告;CASE工具等途径;构造上下文数据模型确立基本实体及其关系;构造基于键的数据模型消除非特定关系,增加关联实体建立精确的基数识别每个实体的主键和替代键键值在实体实例的生命期中不变;键值不能为空;必须进行控制确保键值的有效
11、性;,8.4 如何构造数据模型,构造数据模型的主要步骤(续):4.概化层次体系,确定超类和子类;5.建立具有完整属性的数据模型所有的描述性属性和子集准则每个属性都用数据类型、域和默认值定义在资料库中属性命名标准和认可的简写方式;所有应用系统使用一致的数据类型、域和默认值;6.数据模型的分析与规范化,8.4 如何构造数据模型,课堂练习:根据下列陈述构造数据模型。会员服务系统中,一个合同绑定一个或多个会员,而一个会员被绑定到一个合同。一个会员执行0个、1个或者多个事务,一个事务只能被一个会员执行。一个会员订单可以对应多个事务,而一个给定事务表示一个会员订单。一个促销活动重点推荐一种或者多种产品。一
12、个产品可以在多个促销活动中重点推荐。一个促销活动产生多份会员订单。一个会员订单可以有0个、1个或者多个促销活动产生。一个会员响应0个、1个或者多个会员订单,这个关系支持了促销活动产生的订单。一个会员发出0个、1个或者多个会员订单,以支持会员发出的订单。一个会员订单销售一个或者多个产品。一个产品在0个、1个或者多个会员订单中销售。,好的数据模型的标准?好的数据模型是简单的。描述任何给定实体的数据属性应该仅仅描述那个实体一个实体实例的每个属性只能有一个值好的数据模型基本上是无冗余的。每个数据属性(除了外键)最多在一个实体中描述相同的属性可能以不同的名称被多次记录好的数据模型应该是灵活的而且对未来的
13、需求具有可适应性。Normalization 规范化是一种数据分析技术,该技术组织数据属性以便它们可以组合起来形成无冗余的、稳定的、灵活的并具有适应性的实体。,8.5 分析数据模型,First normal form 第一范式(1NF)实体的所有属性值都是原子值不可再分。Second normal form第二范式(2NF)实体的所有非主键属性的值都依赖于主键。所有非主键属性的值都依赖于主键,不仅仅是部分地依赖。任何仅仅部分地依赖主键的非键属性应当移到另一个实体中。Third normal form第三范式(3NF)实体的非主键属性的值不依赖于任何其他非主键属性。去掉导出属性和传递依赖关系。,8.5 分析数据模型,8.6 数据需求映射,数据-地点-CRUD矩阵:是用来将数据需求映射到地点的矩阵。是一张表,表中行指示了实体,列指示了地点,单元格记录了访问级别。C=创建,R=读取,U=更新或修改,D=删除或解除。数据地点CRUD矩阵,