当前位置:文档之家› 第4讲_需求分析阶段-数据建模

第4讲_需求分析阶段-数据建模

–一个实体可能有多个键。如对实体“学生”,可以用 “学号”作为键来唯一标识某个具体的学生,也可以 使用“身份证号”作为键来唯一地标识这个学生。这 些键都被称为候选键。
ERD-属性
• 3、标识符
–虽然所有的候选键都能被用来标识实例,但人们通常 会从多个候选键中选择和使用固定的某一个键来进行 实例的标识,这个被选中的候选键被称为主键,没有 被选做主键的候选键被称为替代键。
DOB
Program
一个实体Student的属性描述
ERD-属性
• 4、属性的类型
–简单属性和组合属性
• 在通常属性是实体的简单特征,在描述实例时会取 一个简单的值,称为简单属性
• 但是也有属性是实体的复杂特征,需要使用多个数 据组合起来才能描述实例的实例,称为组合属性。
• 如,一个Student的Name属性需要使用First Name 的值和Last Name的值组合起来才能描述一个具体的 Student,所以Name属性是组合属性
分析
实现
物理数据模型
设计
规范化的逻辑数据模型
不同数据模型在软件生命周期中的应用
实体联系图-ERD
• 实体联系图起源于Peter Chen 1976年提出的实体联系建 模方法,它使用实体、属性和关系三个基本的构建单位来 描述数据模型。
– 在发展过程中,实体联系图经过了多次的扩展,发展出了很多分 支。这些分支虽然在实体联系模型的内容上大同小异,但是在图 示上却大不相同,所以它没有标准的表示法。
• 在邮局的邮件投递系统中,如果发生了一个投递行为,系统需 要知道投递行为在各个投递点时的表现,此时系统就需要将投 递行为建模为实体以了解它在不同投递点上的快照。
ERD-属性
• 1、属性的概念
–在确定了实体以后,还需要了解如何描述实体,属性 就是可以对实体进行描述的特征。
–属性以数字、代号、单词、短语、文本乃至声音和图 像的形式存在,一系列属性的存在集成起来就可以描 述一个实体的实例。
– ERD最常见的表示法是Perter Chen表示法和James Martin表示 法。
– 因为没有标准的表示法,在实践中常常会混合使用各种表示法。
各种表示法一览
ERD-实体(Entity)
• 1、实体的概念
–作为数据模型的描述手段,ERD首先要描述会在系统中 出现的事物。
–实体就是ERD用来描述事物的元素,是需要在系统中收 集和存储的现实事物的类别描述。
ERD-关系
• 3、关系的基数
– 一个实体在关系中的最大基数是指:对关系中任意的其他实例,该实 体可能参与关系的最大数量。
• 在最大基数为“1”时,实体在关系中的最大基数记为“one”。 • 在最大基数超过“1”时,实体在关系中的最大基数记为“many”。 • 只要关系是有意义的,最大基数就不可能为0.
• 概念数据模型
• 物理数据模型
• 逻辑数据模型
概述
• 概念数据模型
– 概念数据模型是以问题域的语言解释数据模型,反映 了用户对共享事物的描述和看法,由一系列应用领域 的概念组成。
– 例如,对一个共享事物“学生”,概念数据模型下的 描述可能仅仅就是简单一个概念“学生”,复杂者也 不外乎“学生(学号、姓名、出生日期、……)”的 形式。
学生
选择
课程
ERD-关系
• 2、关系的度
–关系的度是指参与关系的实体数量,是度量关系复杂 度的一个指标。
• 只有一个实体参与的关系存在于实体的不同实例之间,称为一 元关系,又称为递归关系。
• 存在于两个实体之间的关系是最常见的关系,称为二元关系。 • 存在于N(N>2)个实体之间的关系被统称为N元关系。
ERD-属性
• 4、属性的类型
–存储属性和导出属性
• 实体实例大多数属性的值都需要从现实中获取的, 但也有些属性的值可以由其他属性的值计算得出的。 前者称为存储属性,后者称为导出属性。
• 如,一个Student的年龄Age可以通过出生日期DOB 计算得出,所以Age属性是导出属性。
ERD-关系
• 1、关系的概念
概述
• 逻辑数据模型
– 因为概念数据模型和物理数据模型存在较大的差异, 所以在构建解系统时,开发人员要想将概念模型转换 成物理数据模型是存在困难的。逻辑数据模型就是为 了缓解这个困难而使用一种中立语言进行的数据模型 的描述。这种中立语言的使用更加倾向于用户的概念 和词汇,同时使用更加倾向于解系统语言的表达方式。
–实体并不是孤立存在的,它们之间互相交互,互相影 响,共同支持业务任务的完成。
–关系就是存在于一个或多个实体之间的自然业务联系。
–关系表达的不是实体物理上的联系(如车和车轮), 而是逻辑上的链接(如整体部分关系)。
–所有关系隐含的都是双向的,意味着它可以从两个方 向上解释。
–在关系的命名上,通常使用动词,表达关系中实体的 相互作用。
Product
ERD-实体(Entity)
• 2、概念实体和逻辑实体
• 逻辑实体是对概念实体的细化,拥有完整的特征描 述。在ERD建模中,实体一词所指的通常就是逻辑实 体。
Number
Number
Date
Customer Name
Order
Sell Product
Name Quantity
Price
• 事件:注册、选课、销售 • 概念:账号、课程、权限
在图形表示法中,通常 使用能够表达其含义的 名词来作为实体的名称
ERD-实体(Entity)
• 2、概念实体和逻辑实体
–ERD中的实体主要以两种形式出现:概念实体和逻辑实 体,这两种形式分别具有不同的作用。
• 概念实体是一种抽象概念,不考虑概念背后的物理 存在,所以通常不包含与之相关联的甚特征(即属 性)。
– 例如,共享事物“学生”在逻辑数据模型下的描述可 能为“学生=(学号,标识符)+(姓名,4位汉字)+ (出生日期,日期) ……}”。
概述
• 在需求工程中,数据建模建立的是概念数据模型和逻辑数 据模型,不涉及物理数据模型。
概念数据模型(仅仅是概念)
规划
演化的数据模型 维护
概念数据模型(概念+属性) 逻辑数据模型
Name:Sandra Dee ID:205-7123 DOB:Jan 17,1962
实例
Student ID Name DOB
实体
ERD-实体(Entity)
• 1、实体的概念
–实体描述的常见类别有人、地点、对象、事件、概念 等。
–例如:
• 人:客户、学生、雇员
• 地点:商店、房间、地区
• 对象:图书、机器、产品
{最小~最大}
月份的域:{1~12}
Real
实数
{最小~最大}
考试得分:{0.0~100.0}
Text
文本
Text{属性的最大长度} 电话号码:Text(20)
Date
日期
{最早~最晚}
出生日期:{1900-1-1~今天}
Time
时间
{最早~最晚}
Boolean
布尔
Enumeration 枚举
{值1、…、值n}
ERD-实体(Entity)
• 3、进程实体(容易被忽视的实体)
–在实践中,除了静态的事物和抽象的概念之外,行为 和事件也是常见的实体类型。
–数据建模中对行为和事件的建模是为了了解它们在某 些时刻的快照或者它们的运行环境信息,而不是它们 所体现出来的功能和达成的结果。
–例如
• 在普通商店的管理系统中,如果发生了一个销售行为,系统会 需要记录下时间、地点、参与人员等行为发生时的环境信息, 此时就需要将销售行为建模为实体。
–属性是实体的特征,不是数据。属性会以一定的形式 存在,这种存在才是数据,被称为属性的值
–在图形表示法中,属性通常使用名词作为自己的名称
ERD-属性
• 2、值与域
–为了正确地说明一个实体的实例,属性的值就应该是 一个合法的或者有业务含义的值。也就是说属性的取 值范围应该是受限的,这个受限制的取值范围称为域
替代键
候选键 学号
身份证号 学生
姓名
出生日期
Байду номын сангаас主键
ERD-属性
• 4、属性的类型 –根据取值情况的不同,可以将属性分为下面的几种类 型: • 单值属性和多值属性 • 简单属性和组合属性 • 存储属性和导出属性
ERD-属性
• 4、属性的类型
–单值属性和多值属性
• 在描述实体的实例时,大多数的属性都只有一个值, 称为单值属性。但也有些特殊的属性可能会取多个 值,称为多值属性。
–属性的域定义了属性的合法取值。
–在数据建模中,分析人员应该为属性指定必要的域限 制。
–在过去的实践中,人们发现了一些常见的域限制,即 常见的数据类型,可以这些数据类型的基础上更有效 的对属性进行域定义。
ERD-属性
• 2、值与域
– 基于数据类型的域定义示例
数据类型 类型说明

例子
Number
整数
以一个简单的教室为例,教室里面的墙
壁、地面、讲台、黑板、桌椅板凳都是事物。 但是人们在理解这些事物时,并不是完全的 一一列举这些事物,而是下意识地对这些事 物进行分类,并掌握类别的特征。例如,人 们会一个“桌子”的类别概念来描述教室内 的所有桌子,并且给予“桌子”概念一些具 体的特征。这里的每个桌子都被称为一个实 例,对归类后的实例集合进行的类别描述称 为实体。
雇员
管理
雇员
在…工作
时间
(a) 学生
选择 (b)
课程
项目 (c)
ERD-关系
• 3、关系的基数
–衡量关系复杂度的另一个指标是关系的基数。
相关主题