第4章 数据库建模 (实体-联系模型),数据库系统原理与设计,目 录,数据库设计过程概述,数据库设计即是数据建模过程 数据模型就是对现实世界的模拟 通过数据模型可以对现实世界的数据特征进行抽象 根据数据抽象的不同级别,将数据模型划分为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 (n≥2)个实体集上的数学关系 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“”表示指向参与联系集中的“一”方实体集,线段“——”表示参与联系集中的“多”方实体集大学选课管理系统需求分析,系统需求分析 系统目标及边界 功能需求分析 数据需求及业务规则分析 数据约束分析,大学选课管理系统的目标及边界,本系统面向全体师生,对排课(每门课程开几个教学班?谁来任教?上课时间与教室安排)、选修及成绩进行集中管理,以实现排课、选课及成绩管理的科学化、系统化和自动化,最大限度地为老师和学生提供方便和提高管理效率。