数据库建模(E-R模型).ppt_第1页
数据库建模(E-R模型).ppt_第2页
数据库建模(E-R模型).ppt_第3页
数据库建模(E-R模型).ppt_第4页
数据库建模(E-R模型).ppt_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

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

文档简介

第4章 数据库建模 (实体-联系模型),数据库系统原理与设计 ( 第 2 版 ),目 录,数据库设计过程概述,数据库设计即是数据建模过程。 数据模型就是对现实世界的模拟。 通过数据模型可以对现实世界的数据特征进行抽象 根据数据抽象的不同级别,将数据模型划分为3类: 概念模型:概念层次的数据模型,也称为信息模型 逻辑模型:用于描述数据库数据的整体逻辑结构 物理模型:用来描述数据的物理存储结构和存取方法,数据库设计过程概述,需求分析,整个数据库设计过程的基础,也是最困难和耗时的一步。 目标:了解和分析系统将要提供的功能及未来数据库用户的数据需求,包括: 功能需求 存储的数据 ,数据使用业务规则 数据联系及约束 性能需求 方法:数据库设计者同应用领域的专家和用户进行深入沟通和交流。 结果:形成用户的需求规格说明书。,需求分析,概念设计,概念设计是根据需求分析中得到的信息,运用适当的工具将这些需求转化为数据库的概念模型。 E-R模型是Peter Chen于1976年提出的一种语义模型。该模型是基于对现实世界的这样一种认识:世界由一组称作实体的基本对象及这些对象间的联系组成。由于它能将现实世界中概念的含义和相互关联映射到数据库概念模型,因此许多数据库设计工具都利用了E-R模型的概念。,本章基于E-R模型进行数据库概念设计,其目的是通过实体、联系、属性等概念和工具精确地描述系统的数据需求、数据联系及约束规则。 结果:E-R图(实体、联系及属性),概念设计,逻辑设计,本步骤是将数据库的概念设计转化为所选择的数据库管理系统支持的逻辑数据模型,即数据库模式。 常见逻辑模型 层次,网状,关系数据库(本书重点讨论) 面向对象 XML,物理设计,考虑数据库要支持的负载和应用需求,为逻辑数据库选取一个最适合现实应用的物理结构,包括: 数据库文件组织格式 内部存储结构 建立索引 表的聚集 ,模式求精,模式求精的任务是分析并发现逻辑模式存在的问题,并进行改进和优化。 需求分析与概念设计是根据主观认识进行的,但模式求精则是基于关系理论对相关逻辑模式进行优化。,应用与安全设计,一个数据库系统必须指出 哪些用户可以访问数据库? 他们通过哪些存储过程访问数据库? 每个用户在每个过程中扮演什么样的角色? 对于每个角色,他们能够存取数据库的哪些部分和不能存取哪些部分?,完整的数据库设计是不可能一蹴而就的, 它往往是上述6个步骤的不断反复的过程!,第五章,第七章,第九章,目 录,实体与实体集,实体是客观世界中可区别于其他事物的“事物”或“对象”。 实体特征: 独立存在。 可区别于其它实体。 实体可以是有形的、实在的事物,如一名教师、一本书等; 也可以是抽象的、概念上的事物,如一门课程、一个专业,以及一次订货、借书、选课、存款或取款等业务产生的单据。 但是,二者都应是组织或机构“感兴趣”的事物。 实体集是具有相同类型及相同性质(或属性)的实体组成的集合,属 性,属性是实体集中每个实体都具有的特征描述。 一实体集中所有实体都具有相同的属性。 例如,学生实体集中的每个实体都具有: 学号、姓名、性别、出生日期、年龄、所学专业、电话号码、家庭住址、所在班级等属性。 对每个属性来说,一个实体都拥有自己的属性值。 每个属性所允许的取值范围或集合称为该属性的域。,图4-1 学生实体集的属性域及学生李小勇的属性值,属性分类,简单属性和复合属性 简单属性是指不能再分为更小部分的属性。 复合属性是指可以进一步划分为更小部分的属性。 学生实体集的家庭住址可以进一步设计成包括省份、城市、街道等成分的属性。,属性分类,单值属性和多值属性 如果某属性对一个特定实体任何时候都只能有单独的一个值,则称该属性为单值属性,否则为多值属性。 学号为单值属性。 由于一个学生可能有0个、1个或多个电话号码(如实验室电话、宿舍电话、移动电话等),因此学生实体集的电话号码为多值属性。,属性分类,派生属性 派生属性的值可以从其它相关属性或实体(集)派生出来。 一个学生的年龄属性的值,可以由该学生的出生日期属性的值和当前日期计算得到。 学生实体集的已修学分(表示该学生所选修课程的学分合计)属性的值,它可以通过统计该学生所选修所有课程实体的学分之和来获得。,属性分类,空值(NULL) 当实体在某个属性上没有值时可使用NULL值,表示属性的值是未知的或不存在。 不知道某学生的专业(所学专业的值未知)或该学生还没有分配专业(所学专业的值不存在),则该学生所学专业的值为NULL。 某学生的出生日期为NULL,则认为该值是缺失的(即值未知)。,实体集及属性的E-R图表示,在E-R图中,实体集和属性分别表示如下: 实体集矩阵 属性椭圆 多值属性双椭圆 派生属性虚线椭圆 属性与实体之间连线,图4-2 学生实体集 E-R图表示,图4-3 课程实体集 E-R图表示,多值属性的变换,将多值属性转换为多个单值属性进行建模。例如,可将多值属性电话号码建模为移动电话、宿舍电话、实验室电话、家庭电话4个单值属性,如图4-4所示。,联系与联系集,联系(relationship)是指多个实体间的相互关联,例如学生李小勇选修了数据库系统原理课程。 联系集是同类联系的集合。 形式化地说,联系集是n (n2)个实体集上的数学关系。 E-R图用菱形表示联系(集)。联系可具有自身的描述属性。,多联系与联系中的实体角色,多联系:在相同的实体集上可能存在多个不同的联系集。如教师与学生实体集之间同时存在授课、指导联系集。 角色:实体在联系中的作用。如课程实体集中的2门课程实体C1、C2之间存在先修要求联系,其中C1、C2扮演不同的角色,C1代表主课程,C2代表先修课程,分别表示实体所扮演的角色。,目 录,约 束,E-R模型的约束主要有: 映射约束 码约束 依赖约束(不作要求) 参与约束 (不作要求),映射约束(实体联系),映射基数 实体集中的一个实体通过一个联系集能同时与另一个实体集相联系的实体数目。 在二元联系中,共有4种映射基数: 1:1(一对一) 1:m(一对多) m:1(多对一) m:n(多对多),一对一联系(1:1),实体集A中的每一个实体,若实体集B中至多只有一个实体与之联系,反之亦然,则称实体集A与B是一对一的联系,记作1:1。,一对多联系(1:n),实体集A中一个实体可以同B中任意数目(可以为0)的实体相联系,而B中一个实体至多(允许不)同A中一个实体相联系。,多对多联系(m:n),实体集A中的每一个实体,若实体集B中有n(n=0)个实体与之联系,反之,实体集B中的每一个实体,实体集A中有m(m=0)个实体与之联系,则称实体集A与B是多对多联系,记作n:m。,例如:篮球比赛中,球队与场上队长之间具有一对一的联系; 队长与队员之间具有一对多的联系; 队员与裁判之间为多对多的联系。,在E-R图中,为了反映联系集的映射基数,采用“”表示指向参与联系集中的“一”方实体集,线段“”表示参与联系集中的“多”方实体集。,映射基数的表示,码约束与联系集的属性安置,实体集的码 超码(super key) 若一超码的任意真子集都不能成为超码,则称该最小超码为候选码(candidate key)。 给定一组属性集,可能存在多个候选码。 假设学生实体集中不存在同名的学生,则学号和姓名都可以用来唯一区分学生 ,因此它们都可以作为学生实体集的候选码。 学号和姓名的组合是候选码吗?,码约束与联系集的属性安置,候选码和超码是实体集客观存在的特性,它们表示实体集中任意两个实体不允许在码属性上有相同的值。 主码是被数据库设计者主观选中、用来区分同一实体集中不同实体的候选码。,码约束与联系集的属性安置,当一实体集存在多个候选码时,主码选择原则: 选择属性长度最短的候选码; 选择包含单个属性的码,而不是复合候选码; 选择在数据库系统生命周期内属性值最少变化的候选码; 选择在数据库系统生命周期内更可能包含唯一值的候选码。,码约束与联系集的属性安置,每一个联系集,也要求必须存在候选码,并选择其中的一个候选码作为主码,用于唯一标识该联系集中的一个联系。 联系集的码 假设R是一个涉及实体集E1,E2, ,En的联系集,PK(Ei)代表构成实体集Ei的主码属性的集合,而(e1, e2, e3, , en)是R的一个联系,那么PK(E1) PK(E2) PK(En)构成联系集的一个超码。,码约束与联系集的属性安置,二元联系集的主码选择,依赖于联系集的映射基数 一对一:主码可以使用参与联系集中的任何一方实体集的主码; 一对多(多对一):主码由“多”的一方实体集的主码组成; 多对多:主码由参与联系集中所有实体集的主码组成。,码约束与联系集的属性安置,联系集的属性安置 一对一联系集的属性:可安置于任一边的实体集上; 一对多联系集的属性:可安置于联系集上,也可安置在多的那一边的实体集上; 多对多联系集的属性:它是描述相关联实体集间的交互性语义,因此,联系属性只能安置于联系集上,不能放到相关联的实体集上去。,目 录,E-R建模的基本原则,忠实性 设计应忠实于应用需求,这是首要的也是最重要的原则。即实体集、属性、联系集都应当反映现实世界及根据所了解的现实世界去建模。 例如,教师与开课班之间的联系集任教,是一对多还是多对多的联系集?如果规定一个开课班可能安排多名教师共同任教,则任教就是多对多联系集,联系属性为任教角色 (如“主讲”、“指导实验”、“辅导”等)。,E-R建模的基本原则,忠实性 设计应忠实于应用需求,这是首要的也是最重要的原则。即实体集、属性、联系集都应当反映现实世界及根据所了解的现实世界去建模。 简单性 除非有绝对需要,否则不要在设计中增加更多成分; 只需要对数据库使用者所关心、感兴趣的属性建模 。 避免冗余 原则:一个对象只存放在一个地方,选择实体集还是属性,通常满足下述两条规则,均可作为属性对待: 作为属性,不能再具有要描述的性质; 属性不能和其它实体相联系。 如,开课班弱实体集中的上课地点,如果除了教室编号之外,还需要描述更多信息,如所在教学楼、电话号码、教室类型、教室容量等,则需将属性上课地点转化为实体集教室,以实现教室管理功能。,选择实体集还是属性,选择实体集还是属性常犯两个错误: 将一实体集的主码作为另一实体集的属性,而不是使用联系; 将相关实体集的主码属性作为联系集的属性。因为联系集已隐含了实体集的主码属性。,选择实体集还是联系集,一事物是描述为实体集还是联系集并没有一个绝对的标准。 通常原则: 实体对应于现实世界中实际存在的事物,是名词。 如学生、教师和课程是名词,可作为实体集建模。 联系对应的概念一般为一种动作,即描述实体间的一种行为。 如选课、授课是动词,因此作为联系集建模。,E-R模型总结,数据库设计过程 E-R模型 实体、属性与实体集(复合、多值属性) 联系、联系属性与联系集、主码 映射基数(1:1、1:n、m:1、m:n联系) E-R模型设计原则 忠实性、简单性、避免冗余 选择实体集还是属性? 选择实体集还是联系集?,目 录,概念设计任务,概念设计(即E-R模型设计)主要是根据需求分析规格说明书完成如下任务: 定义实体集及属性,实体集的主码,用E-R图及数据字典描述被建模的实体集; 定义联系集及属性,联系集的主码,联系的映射基数及参与约束,实体的角色,并用E-R图描述被建模的联系集;,概念设计任务,E-R图三要素:实体集、属性和联系集。 用长方形表示实体 椭圆形表示属性,并用无向边把实体与其属性连接起来 菱形表示实体间的联系 联系的种类: 1:1、1:n、n:1或m:n “”表示指向参与联系集中的“一”方实体集,线段“”表示参与联系集中的“多”方实体集。,大学选课管理系统需求分析,系统需求分析 系统目标及边界 功能需求分析 数据需求及业务规则分析 数据约束分析,大学选课管理系统的目标及边界,本系统面向全体师生,对排课(每门课程开几个教学班?谁来任教?上课时间与教室安排)、选修及成绩进行集中管理,以实现排课、选课及成绩管理的科学化、系统化和自动化,最大限度地为老师和学生提供方便和提高管理效率。,大学选课管理系统的功能需求分析,学院基本信息管理:学院基本信息录入、维护与查询 班级基本信息管理:班级基本信息录入、维护与查询 学生基本信息管理:学生基本信息录入、维护与查询 教师基本信息管理:教师基本信息录入、维护与查询 课程基本信息管理:课程基本信息录入、维护与查询 教室基本信息管理:教室基本信息录入、维护与查询,大学选课管理系统的功能需求分析,排课管理:根据开课计划实现自动或半自动的排课 学生选课:提供选课、退选和改选功能 课表查询:提供不同人员以不同方式查询选课信息 成绩管理:学生考试成绩录入、修改及查询,数据需求及业务规则分析,学院(学院编号、学院名称、学院地址) 教师(教师编号、教师姓名、职称、学位) 班级(班级编号、班级名称、年级、班级人数) 班级人数为派生属性,它的值可通过统计学生实体集中属于该班学生的人数而得到 学生(学号、姓名、性别、出生日期、家庭住址、电话号码) 电话号码可能有多个,如宿舍电话、实验室电话、移动电话等多值属性;,数据需求及业务规则分析,家庭住址由省份、城市、街道组成复合属性; 年龄可由生日推算出来派生属性,不作为存储属性 学生可进一步分本科生和研究生两类,本科生需记录个人兴趣,研究生需记录研究方向 一个班级有多名学生,但一个学生只能属于某一个班级 一个教师可以指导多名研究生,但一个研究生只能安排一名指导教师,数据需求及业务规则分析,课程(课程号、课程名称、课时、学分) 一个学院可管理多门课程,但一门课程只能归属一个学院 课程之间需设置先修要求,一门主课程至多可以指定一门先修课程,但一门先修课程可对应于多门主课程,数据需求及业务规则分析,开课班(开课班号、年份、学期) 一个开课班可安排多名教师任教,需明确教师任教开课班的任教角色;一名教师也可同时任教多个开课班 一个开课班被多名学生选修,每个学生可选修多个开课班 一个学生同一学期不能选修同一门课程的同一个开课班多次;也不能选修同一门课程的多个不同开课班,数据需求及业务规则分析,教室(教室编号、所在教学楼、电话号码、教室类型、教室容量) 一个教室可安排多个开课班,一个开课班可安排多个时间和教室上课,且每次上课可能安排在相同或不同的教室 一个教室在同一时间段不允许安排多个开课班上课 (同一任课教师的同一门课程的多个开课班除外:合班),数据需求及业务规则分析,一个学生在同一时间段不允许选修多个开课班 (重修课程是否除外?) 同一名教师不允许在同一时间段安排多个不同课程的开课班或非合班上课的相同课程的开课班 教师在所任教的开课班考试结束后,需在规定的时间内将所任教学生的成绩录入系统,并要求记录登分日期,主要业务的局部建模,主要实体集有:学院、班级、学生、教师、课程、教室 观察 学生选修某学期的某门课程,只能从该学期该课程实际开设的若干个开课班中进行选修; 教师安排教学任务,也是针对需开设的开课班进行分配; 学生通过选修某个开课班来明确是哪位(些)教师给其授课; 一个学生可能会出现多次选修同一门课程的情况(如重修)。即学生与课程之间的选课联系是多值联系。,多对多的三元联系集,学生、课程、教师之间的建模 引入开课班弱实体集,它依赖于课程实体集 学生选修课程是指选择为其所开设的某个开课班 某个开课班需要安排任课教师。因此,学生与教师之间的授课联系就转化为通过开课班与教师之间的任教联系来间接关联,选课,教师,主要业务的局部建模,上课时间、上课地点的建模 假设一个开课班可能安排多个时间上课,且不同时间可能安排在相同的或不同的教室上课,则排时间教室联系集可能是多值联系。,主要业务的局部建模,学生实体集的类层次及研究生指导的建模,主要业务的局部建模,“录入成绩”联系集的聚合建模,主要业务的局部建模,定义实体集及属性,学院:学院编号、学院名称、学院地址 班级:班级编号、班级名称、年级、班级人数。 班级人数为派生属性 教师:教师编号、教师姓名、职称、学位 学生:学号、姓名、性别、出生日期、家庭住址、电话号码 复合属性:家庭住址省份、城市、街道 多值属性:电话号码 本科生、研究生,它们具有学生的所有属性,此外 本科生:个人兴趣 研究生:研究方向,定义实体集及属性,教室:教室编号、所在教学楼、电话号码、教室类型、教室容量 课程:课程编号、课程名称、学分、课时数 开课班:开课班号、年份、学期、教室容量、选课人数 开课班号为部分码,能够区分同一门课程在不同学期及同一学期所开设的不同开课班 教室容量、选课人数是派生属性 时间安排:上课时间 上课时间为部分码,能够区分同一个开课班的不同上课时间,定义联系集及属性,设置联系集:实体集学院与班级之间的一对多联系集 表明一个学院可设置多个班级,但一个班级只属于一个学院 归属联系集:实体集课程与学院之间的多对一联系集 表明一门课程只归属于一个学院,但一个学院可管理多门课程 聘用联系集:实体集学院与教师之间的一对多联系集 表明一个学院可聘用多名教师,但一名教师只能受聘于一个学院 联系属性为聘用日期 包含联系集:实体集班级与学生之间的一对多联系集 表明一个班级可包含多名学生,但一名学生只属于一个班级,定义联系集及属性,排课标识联系集:课程与开课班弱实体集之间的一对多联系集 表明一门课程可安排多个开课班,开课班号为部分码 选课联系集:学生与开课班之间的多对多联系集 表明一个学生可选修多个开课班,且一个开课班可包括多名学生 联系属性为成绩 任教联系集:教师与开课班之间的多对多联系集 表明一教师可任教多个开课班,且一开课班可安排多名教师任教 联系属性为任教角色 排时间标识联系集:开课班与时间安排弱实体集之间的一对多联系集 表明一个开课班可安排多个上课时间,上课时间为部分码,定义联系集及属性,排教室联系集:弱实体集时间安排与教室之间的多对一联系集 表明多个上课时间可安排在同一个教室上课,但一个教室在一个上课时间只能安排一个开课班上课 指导联系集:实体集教师与研究生之间的一对多联系集 表明一教师可指导多名研究生,但一名研究生只能安排一名指导教师 先修要求联系集:由具有先修课程角色和具有主课程角色的课程实体之间的一对多联系集 表明一门主课程至多指定一门先修课程,但一门先修课程可对应于多门主课程 录入成绩联系集:实体集教师与联系集选课之间的一对多联系集 联系属性为录入日期,图4-38 简化的大学选课系统E-R图,定义数据字典,学院(Institute)实体集的数据字典如图4-39所示,图4-39 学院(Institute)实体集的数据字典,定义数据字典,学生(Student)实体集的数据字典如图4-41所示,图4-41 学生(Student)实体集的数据字典,定义数据字典,选课(Enroll)联系集的数据字典如图4-47所示,图4-47 选课(Enroll)联系集的数据字典,目 录,图4-38 简化的大学选课系统E-R图,E-R模型转化方法,E-R模型(概念建模)和关系模型(逻辑建模)都是对现实世界的抽象。而E-R模型只是描述数据库的概念模型,若要被关系数据库所接受,必须进行信息转化,即将E-R模型转化为关系数据库所支持的逻辑模型关系模式。,E-R模型转化方法,实体集转化方法 将实体集映射成关系模式很直接,只需将实体集的每个属性对应为关系模式的属性,实体集的码作为关系模式的码。 设强实体集E具有a1, a2, , an属性,其转化的关系模式定义如下: 关系模式名:E; 属性集:a1, a2, , an; 主码:实体集E的主码; 外码:无。,E-R模型转化方法,例如,由实体集课程Course转化的关系模式为(加下划线的属性表示它是主码成员): Course (courseNo, courseName, creditHour, courseHour),E-R模型转化方法,联系集一般转化方法 设R是一联系集,其描述性属性集为a1, a2, , am;参与R的所有实体集ES的主码的并集形成属性集合b1, b2, , bn,例如:,由联系集转化而来的关系模式 选课(含录入成绩): Enroll (studentNo, courseNo, cClassNo, score, TeacherNo, recordDate) 任教: Teach (courseNo, cClassNo, teacherNo, teachRole),E-R模型转化方法,一对多或一对一联系集的转化 可不转化为单独的关系模式,而采用下列方法转化: 若A到B联系集为一对多联系,则在由B转化的关系模式中增加A的主码属性(这些属性即为参照A主码的外码)。,班级:Class

温馨提示

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

评论

0/150

提交评论