第04章 数据库建模(实体-联系模型)_1-6节_第1页
第04章 数据库建模(实体-联系模型)_1-6节_第2页
第04章 数据库建模(实体-联系模型)_1-6节_第3页
第04章 数据库建模(实体-联系模型)_1-6节_第4页
第04章 数据库建模(实体-联系模型)_1-6节_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

1、1 1北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节 第第4 4章章 数据库建模数据库建模 ( (实体实体- -联系模型联系模型) ) 认识自己认识自己n 分析自己的兴趣、喜好、倾向、长处及强项:分析自己的兴趣、喜好、倾向、长处及强项:u 动力来源:动力来源:内向还是外向;内向还是外向;u 资讯处理:资讯处理:喜欢更多的数据还是凭直觉;喜欢更多的数据还是凭直觉;u 如何决策:如何决策:喜欢思考还是凭感觉;喜欢思考还是凭感觉;u 如

2、何组织:如何组织:谋定而后动还是兴之所至?谋定而后动还是兴之所至?2015/10/302015/10/302 2北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节目目 录录弱实体集弱实体集 4.4数据库设计过程数据库设计过程 4.1E-R模型基本概念及表示模型基本概念及表示4.2约束约束4.3数据库概念设计实例数据库概念设计实例大学选课系统大学选课系统4.7扩展扩展E-R特征特征4.5E-R建模问题建模问题4.6逻辑设计逻辑设计E-R

3、模型转化为关系模型模型转化为关系模型4.82015/10/302015/10/303 3北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节数据库设计过程概述数据库设计过程概述n 数据库设计数据库设计就是根据各种应用处理的要就是根据各种应用处理的要求、硬件环境及操作系统的特性等,将求、硬件环境及操作系统的特性等,将现实世界中的数据现实世界中的数据进行合理组织进行合理组织,并利,并利用已有的数据库管理系统用已有的数据库管理系统(DBMS)

4、来建立来建立数据库系统数据库系统的过程。的过程。n 具体地说,对于一个给定的应用环境,具体地说,对于一个给定的应用环境,构造出最优的构造出最优的数据库逻辑模式数据库逻辑模式和和物理模物理模式式,并建立,并建立数据库及其应用系统数据库及其应用系统,使之,使之能够有效地存储和管理数据,满足用户能够有效地存储和管理数据,满足用户的的信息要求信息要求和和处理要求处理要求。 需求分析需求分析物理设计物理设计 概念设计概念设计 逻辑设计逻辑设计 模式求精模式求精 应用与安全设计应用与安全设计 2015/10/302015/10/304 4北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据

5、库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节需求分析需求分析 n 整个数据库设计过程的基础,也是最困难和耗时的一步。整个数据库设计过程的基础,也是最困难和耗时的一步。n 目标:了解和分析系统将要提供的目标:了解和分析系统将要提供的功能功能及未来数据库用户及未来数据库用户的的数据需求数据需求,包括:,包括:l功能需求功能需求l存储的数据存储的数据l数据使用业务规则数据使用业务规则l数据联系及约束数据联系及约束l性能需求性能需求ln 方法:数据库设计者同应用领域的专家和用户进行深入沟方法:数据库设计

6、者同应用领域的专家和用户进行深入沟通和交流。通和交流。n 结果:形成用户的结果:形成用户的需求规格说明书需求规格说明书。2015/10/302015/10/305 5北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节概念设计概念设计 n 概念设计是根据需求分析中得到的信息,运用适当的概念设计是根据需求分析中得到的信息,运用适当的工具工具将将这些需求转化为这些需求转化为数据库的概念模型数据库的概念模型。n E-R模型模型是是Peter

7、Chen于于1976年提出的一种年提出的一种语义模型语义模型。该模型。该模型是基于对现实世界的这样一种认识:是基于对现实世界的这样一种认识:世界由一组称作实体的世界由一组称作实体的基本对象及这些对象间的联系组成基本对象及这些对象间的联系组成。由于它能将现实世界中由于它能将现实世界中概念的含义和相互关联映射到数据库概念模型,因此许多数概念的含义和相互关联映射到数据库概念模型,因此许多数据库设计工具都利用了据库设计工具都利用了E-R模型的概念。模型的概念。n 本章本章基于基于E-R模型模型进行进行数据库概念设计数据库概念设计,其目的是通过,其目的是通过实体实体、联系联系、属性属性等概念和工具精确地

8、描述系统的数据需求、数据等概念和工具精确地描述系统的数据需求、数据联系及约束规则。联系及约束规则。 n 结果:结果:E-R图(实体、联系及属性)图(实体、联系及属性)2015/10/302015/10/306 6北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节逻辑设计逻辑设计 n 本步骤是将数据库的概念设计转化为所选择的数据本步骤是将数据库的概念设计转化为所选择的数据库管理系统支持的库管理系统支持的逻辑数据模型逻辑数据模型,即,即数

9、据库模式数据库模式。n 常见逻辑模型常见逻辑模型l层次层次l网状网状l关系数据库关系数据库(本书重点讨论)(本书重点讨论)l面向对象面向对象lXML2015/10/302015/10/307 7北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节 模式求精模式求精n 模式求精模式求精的任务是的任务是分析并发现逻辑模式存在的问题,并进行分析并发现逻辑模式存在的问题,并进行改进和优化。改进和优化。n 对于对于关系数据库关系数据库而言,模式求

10、精是以而言,模式求精是以关系数据理论关系数据理论做指导,做指导,对已得到的关系数据库模式进行分析,找出潜在的问题并加对已得到的关系数据库模式进行分析,找出潜在的问题并加以改进和优化,如以改进和优化,如减少数据冗余,消除更新、插入与删除异减少数据冗余,消除更新、插入与删除异常常等。等。n 需求分析与概念设计是根据需求分析与概念设计是根据主观认识主观认识进行的,但模式求精则进行的,但模式求精则是基于是基于关系理论关系理论对相关逻辑模式进行优化。对相关逻辑模式进行优化。 2015/10/302015/10/308 8北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据

11、库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节物理设计物理设计 n 考虑数据库要支持的负载和应用需求,为逻辑数据考虑数据库要支持的负载和应用需求,为逻辑数据库选取一个最适合现实应用的物理结构,包括库选取一个最适合现实应用的物理结构,包括:l数据库文件组织格式数据库文件组织格式l内部存储结构内部存储结构l建立索引建立索引l表的聚集表的聚集l 2015/10/302015/10/309 9北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章

12、章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节应用与安全设计应用与安全设计 n 一个数据库系统必须指出一个数据库系统必须指出l哪些用户可以访问数据库?哪些用户可以访问数据库?l他们通过哪些存储过程访问数据库?他们通过哪些存储过程访问数据库?l每个用户在每个过程中扮演什么样的角色?每个用户在每个过程中扮演什么样的角色?l对于每个角色,他们能够存取数据库的哪些部分和不能对于每个角色,他们能够存取数据库的哪些部分和不能存取哪些部分?存取哪些部分?完整的数据库设计是不可能一完整的数据库设计是不可能一蹴蹴而就的,而就的,它往往是上述它往往是上述6 6个个步骤步骤的不断

13、的不断反反复的过程复的过程! ! 2015/10/302015/10/301010北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节目目 录录弱实体集弱实体集 4.4数据库设计过程数据库设计过程 4.1E-R模型基本概念及表示模型基本概念及表示4.2约束约束4.3数据库概念设计实例数据库概念设计实例大学选课系统大学选课系统4.7扩展扩展E-R特征特征4.5E-R建模问题建模问题4.6逻辑设计逻辑设计E-R模型转化为关系模型模型转化为关

14、系模型4.82015/10/302015/10/301111北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节实体与实体集实体与实体集 n 实体实体是是客观世界中可区别于其他事物的客观世界中可区别于其他事物的“事物事物”或或“对象对象”。n 实体特征:实体特征:l 独立存在。独立存在。一个实体的存在不依赖于其它实体。例如,一名学生一个实体的存在不依赖于其它实体。例如,一名学生的存在不取决于其它学生实体是否存在。的存在不取决于其它学生实

15、体是否存在。l 可区别于其它实体。可区别于其它实体。每个实体有一组特征,存在能唯一标识每个每个实体有一组特征,存在能唯一标识每个实体的特征实体的特征(集集)。例如,。例如,学号学号“1201100258”可以唯一地标识学生可以唯一地标识学生 “李小勇李小勇”。n 实体实体可以是可以是有形的、实在的有形的、实在的事物,如一名事物,如一名教师教师、一本、一本书书等;等;n 也可以是也可以是抽象的、概念上抽象的、概念上的事物,如一门的事物,如一门课程课程、一个、一个专业专业,以,以及一次及一次订货订货、借书借书、选课选课、存款存款或或取款取款等业务产生的等业务产生的单据单据。n 但是,二者都应是组织

16、或机构但是,二者都应是组织或机构“感兴趣感兴趣”的事物。的事物。 n 实体集实体集是是具有相同类型及相同性质具有相同类型及相同性质(或属性或属性)的实体组成的集合的实体组成的集合2015/10/302015/10/301212北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节 属属 性性 n 属性属性是是实体集中每个实体都具有的特征描述实体集中每个实体都具有的特征描述。n 一实体集中所有实体都具有相同的属性。一实体集中所有实体都具有相

17、同的属性。l例如,例如,学生学生实体集中的每个实体都具有:实体集中的每个实体都具有: 学号、姓名、学号、姓名、性别、出生日期、年龄、所学专业、电话号码、家庭住性别、出生日期、年龄、所学专业、电话号码、家庭住址、所在班级址、所在班级等属性。等属性。 n 对每个属性来说,一个实体都拥有自己的对每个属性来说,一个实体都拥有自己的属性值属性值。 n 每个属性所允许的取值范围或集合称为该每个属性所允许的取值范围或集合称为该属性的域属性的域。2015/10/302015/10/301313北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 0

18、4 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节图图4-1 学生学生实体集的属性域及学生李小勇的属性值实体集的属性域及学生李小勇的属性值 属性名属性名属性类别属性类别域及约束域及约束实例实例 学号学号主码主码char(10),10位数字组成位数字组成,其中第其中第1位数字代表学位数字代表学生类别,如:生类别,如:1-本科生,本科生,2-硕士研究生,硕士研究生,3-博士研究博士研究生,生,4-独立学院本科生,独立学院本科生,5-专科生;接下来专科生;接下来4位数字代位数字代表入学年份;最后表入学年份;最后5位数字为序号。不允许取空值位数字为序号。不允

19、许取空值 1201100258 姓名姓名 varchar(20),不允许取空值,不允许取空值 李小勇李小勇 性别性别 char(2),取值范围:,取值范围:男男, 女女 男男 出生日期出生日期 datetime,取值范围:,取值范围:1900-01-01当前当前 1992-09-09 年龄年龄 派生属性派生属性 smallint,取值范围:,取值范围:1080 19 所学专业所学专业 varchar(30) 计算机科学与技术计算机科学与技术 电话号码电话号码 多值属性多值属性 varchar(13),每个电话号码由数字字符加,每个电话号码由数字字符加连字符连字符-组成组成 027-870099

20、99 家庭地址家庭地址 复合属性复合属性 varchar(60) 湖北省武汉市中山湖北省武汉市中山路路56号号 所在班级所在班级 char(8),前,前4位数字代表年级位数字代表年级 201108031414北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节属性分类属性分类n 简单属性和复合属性简单属性和复合属性 l简单属性简单属性是指不能再分为更小部分的属性。是指不能再分为更小部分的属性。l复合属性复合属性是指可以进一步划分为更小部

21、分的属性。是指可以进一步划分为更小部分的属性。学生学生实体集的实体集的家庭住址家庭住址可以进一步设计成包括可以进一步设计成包括省份、城市、省份、城市、街道街道等成分的属性。等成分的属性。 n 单值属性和多值属性单值属性和多值属性 l如果某属性对一个特定实体任何时候都只能有单独的一个如果某属性对一个特定实体任何时候都只能有单独的一个值,则称该属性为值,则称该属性为单值属性单值属性,否则为,否则为多值属性多值属性。 一个学生的一个学生的学号学号只有一个值,只有一个值, 则则学号学号为为单值属性单值属性。由于一个学生可能有由于一个学生可能有0个、个、1个或多个电话号码个或多个电话号码(如如实验室电实

22、验室电话、宿舍电话、移动电话话、宿舍电话、移动电话等等),因此,因此学生学生实体集的实体集的电话号码电话号码为为多值属性。多值属性。2015/10/302015/10/301515北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节属性分类属性分类n 派生属性派生属性 l派生属性派生属性的值可以从其它相关的值可以从其它相关属性属性或或实体实体(集集)派生出来。派生出来。一个一个学生学生的的年龄年龄属性的值,可以由该学生的属性的值,可以由

23、该学生的出生日期出生日期属性的值和属性的值和当前日期当前日期计算得到。计算得到。 学生学生实体集的实体集的已修学分已修学分(表示表示该学生所选修课程的学分合计该学生所选修课程的学分合计)属性的值属性的值,它可以通过统计该学生它可以通过统计该学生所选修所选修所有所有课程课程实体的实体的学分学分之和来获得。之和来获得。 n 空值空值(NULL)l当实体在某个属性上没有值时可使用当实体在某个属性上没有值时可使用NULL值,表示属性值,表示属性的值是的值是未知的未知的或或不存在不存在。不知道某学生的专业不知道某学生的专业(所学专业所学专业的值未知的值未知)或该学生还没有分配专或该学生还没有分配专业业(

24、所学专业所学专业的值不存在的值不存在),则该学生,则该学生所学专业所学专业的值为的值为NULL。 某学生的某学生的出生日期出生日期为为NULL,则认为该值是缺失的,则认为该值是缺失的(即即值未知值未知)。2015/10/302015/10/301616北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节实体集及属性的实体集及属性的E-R图表示图表示n 在在E-R图中,实体集和属性分别表示如下:图中,实体集和属性分别表示如下:l实体集实体

25、集矩阵矩阵l属性属性椭圆椭圆l多值属性多值属性双椭圆双椭圆l派生属性派生属性虚线椭圆虚线椭圆l属性与实体之间属性与实体之间连线连线 2015/10/302015/10/301717北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节图图4-2 学生学生实体集实体集 E-R图表示图表示图图4-3 课程课程实体集实体集 E-R图表示图表示家庭住址省份城市街道学生学生电话号码学号学号姓名性别出生日期年龄所在班级所学专业课程课程课程名称课程号课

26、程号学分课时数先修课程号2015/10/302015/10/301818北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节多值属性的变换多值属性的变换n 将多值属性转换为多个单值属性进行建模。将多值属性转换为多个单值属性进行建模。例如,可将例如,可将多值属性多值属性电话号码电话号码建模为建模为移动电话、宿舍电话、实验室移动电话、宿舍电话、实验室电话、家庭电话电话、家庭电话4个单值属性,如图个单值属性,如图4-4所示。所示。 n 将多值

27、属性单独建模为一个弱实体集将多值属性单独建模为一个弱实体集,它依赖于原实体,它依赖于原实体集而存在。请参见集而存在。请参见4.4节。节。 学生学生家庭住址省份城市街道移动电话宿舍电话实验室电话家庭电话学号学号姓名性别出生日期年龄所在班级所学专业图图4-4 学生学生实体集中的实体集中的多值属性多值属性转换为多个转换为多个单值属性单值属性表示表示 2015/10/302015/10/301919北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-

28、6节节联系与联系集联系与联系集 n 联系联系(relationship)是指多个实体间的相互关联,例如学生是指多个实体间的相互关联,例如学生李李小勇小勇选修了选修了数据库系统原理数据库系统原理课程。课程。n 联系集联系集是同类联系的集合。是同类联系的集合。 n 形式化地说,形式化地说,联系集联系集是是n (n2)个实体集上的个实体集上的数学关系数学关系,这些,这些实体集不必互异。如果实体集不必互异。如果El, E2, , En为为n个实体集,那么个实体集,那么联系联系集集R是是(e1, e2, , en)e1E1, e2E2, , enEn的一个子集的一个子集,而,而(e1, e2, , en

29、)是一个是一个联系联系。n E-R图图用菱形表示联系用菱形表示联系(集集)。联系可具有自身的描述属性。联系可具有自身的描述属性。n 例如,可定义例如,可定义学生学生与与课程课程实体集之间的实体集之间的选课选课联系集联系集。联系属。联系属性性成绩成绩记录了学生选修课程的成绩。记录了学生选修课程的成绩。n 说明:说明: 图中省略了实体集的属性图中省略了实体集的属性学生学生课程课程选课选课成绩2015/10/302015/10/302020北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(

30、实体- -联系模型)联系模型)_1-6_1-6节节多联系与联系中的实体角色多联系与联系中的实体角色 n 多联系多联系:在相同的实体集上可能存在多个不同的联系集在相同的实体集上可能存在多个不同的联系集。如。如教师教师与与学生学生实体集之间同时存在实体集之间同时存在授课授课、指导指导联系集。联系集。 n 角色角色:实体在联系中的作用实体在联系中的作用。如。如课程课程实体集中的实体集中的2门课程实门课程实体体C1、C2之间存在之间存在先修要求先修要求联系,其中联系,其中C1、C2扮演不同的扮演不同的角色角色,C1代表代表主课程主课程,C2代表代表先修课程先修课程,分别表示实体所,分别表示实体所扮演的

31、扮演的角色角色。 教师教师学生学生授课授课指导指导课程课程先修要求先修要求主课程主课程先修课程先修课程2015/10/302015/10/302121北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节联系集的度联系集的度 n 参与联系集的实体集的数目称为参与联系集的实体集的数目称为联系集的度联系集的度l如二元联系集的度为如二元联系集的度为2 ,三元联系集的度为,三元联系集的度为3 。n 联系集联系集选课选课是二元是二元(binary)

32、联系集的例子,即涉及联系集的例子,即涉及2个实体个实体集的联系集。集的联系集。n 如果还需要知道如果还需要知道学生学生选修课程的选修课程的任课任课教师教师信息信息,可以在联,可以在联系集系集选课选课中增加中增加教师教师实体集,形成一个新的三元联系集实体集,形成一个新的三元联系集选选课课-任教任教。 学生学生课程课程选课选课- -任教任教成绩教师教师2015/10/302015/10/302222北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_

33、1-6节节目目 录录弱实体集弱实体集 4.4数据库设计过程数据库设计过程 4.1E-R模型基本概念及表示模型基本概念及表示4.2约束约束4.3数据库概念设计实例数据库概念设计实例大学选课系统大学选课系统4.7扩展扩展E-R特征特征4.5E-R建模问题建模问题4.6逻辑设计逻辑设计E-R模型转化为关系模型模型转化为关系模型4.82015/10/302015/10/302323北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节约约 束束n

34、 E-R模型的约束主要有:模型的约束主要有:l 映射约束映射约束 l 码约束码约束 l 依赖约束依赖约束 l 参与约束参与约束 n 另外,还会介绍另外,还会介绍多值联系多值联系的概念。的概念。 2015/10/302015/10/302424北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节映射约束映射约束 n 映射基数映射基数l实体集中的一个实体通过一个联系集能同时与另一个实体集中的一个实体通过一个联系集能同时与另一个实体集相实体集

35、相联系的实体数目联系的实体数目。n 在二元联系中,共有在二元联系中,共有4种映射基数:种映射基数:l1:1(一对一)(一对一)l1:m(一对多)(一对多)lm:1(多对一)(多对一)lm:n(多对多)(多对多)2015/10/302015/10/302525北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节映射约束映射约束n 一对一一对一: A中的一个实体至多中的一个实体至多(允许不允许不)同同B中的一个实体相中的一个实体相联系,联系

36、,B中的一个实体也至多中的一个实体也至多(允许不允许不)同同A中的一个实体中的一个实体相联系。相联系。 l 例如,由实体集例如,由实体集销货单销货单和和发票发票参与的联系集参与的联系集开发票开发票,假设假设一个销货单对应开一张发票,一个销货单对应开一张发票,则则开发票开发票为实体集为实体集销货单销货单和和发票发票之间的之间的一对一一对一联系集。联系集。销货单销货单XS01003XS01015XS06008XS07011XS12033XS12047销货单号销货单号F20110001F20110033F20120048F20120105发票发票发票编号发票编号u说明:说明:存在部分销货单还没有开发

37、票存在部分销货单还没有开发票,但,但每一张发票都有每一张发票都有唯一对应的销货单唯一对应的销货单。2015/10/302015/10/302626北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节映射约束映射约束n 一对多一对多:A中一个实体可以同中一个实体可以同B中任意数目中任意数目(可以为可以为0)的实体相的实体相联系,而联系,而B中一个实体至多中一个实体至多(允许不允许不)同同A中一个实体相联系。中一个实体相联系。n 多对一多对

38、一:A中一个实体至多中一个实体至多(允许不允许不)同同B中一个实体相联系,中一个实体相联系,而而B中一个实体可以同中一个实体可以同A中任意数目中任意数目(可以为可以为0)的实体相联系。的实体相联系。 l例如,由实体集例如,由实体集班级班级和和学生学生参与的联系集参与的联系集包含包含,假设一个假设一个班级可以包含多名学生,但一名学生只能归属于某一个班班级可以包含多名学生,但一名学生只能归属于某一个班级,级,则则包含包含为从实体集为从实体集班级班级到到学生学生的的一对多一对多联系集,或为联系集,或为从实体集从实体集学生学生到到班级班级的的多对一多对一联系集。联系集。 120100001212010

39、001481201100006120110025812011075431201200867220120002520100601201108012011080320120502班级编号班级编号学号学号学生学生班级班级u说明:说明:每一个班级都包含学生每一个班级都包含学生,但,但存在部分学生没有对应存在部分学生没有对应的班级的班级。2015/10/302015/10/302727北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节映射约束映

40、射约束n 一对多一对多:A中一个实体可以同中一个实体可以同B中任意数目中任意数目(可以为可以为0)的实体相的实体相联系,而联系,而B中一个实体至多中一个实体至多(允许不允许不)同同A中一个实体相联系。中一个实体相联系。n 多对一多对一:A中一个实体至多中一个实体至多(允许不允许不)同同B中一个实体相联系,中一个实体相联系,而而B中一个实体可以同中一个实体可以同A中任意数目中任意数目(可以为可以为0)的实体相联系。的实体相联系。 l再如,由实体集再如,由实体集课程课程和和学院学院参与的联系集参与的联系集归属归属,假设一门假设一门课程只能归属于一个学院,但一个学院可以负责多门课程课程只能归属于一个

41、学院,但一个学院可以负责多门课程,则则归属归属为从实体集为从实体集课程课程到到学院学院之间的之间的多对一多对一联系集,或联系集,或为从实体集为从实体集学院学院到到课程课程的的一对多一对多联系集。联系集。 u说明:说明:每一门课程都有归属的学院每一门课程都有归属的学院,但,但存在部分学院没有存在部分学院没有负责的课程负责的课程。课程课程学院学院AC0013AC0054CN0283CS0125CS0154CS0283ACCNCSIN课程号课程号学院编号学院编号2015/10/302015/10/302828北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与

42、设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节n 多对多多对多:A中的一个实体可以同中的一个实体可以同B中任意数目中任意数目(可以为可以为0)的实体的实体相联系,而相联系,而B中的一个实体也可以同中的一个实体也可以同A中任意数目中任意数目(可以为可以为0)的的实体相联系。实体相联系。l例如,由实体集例如,由实体集学生学生和和课程课程参与的联系集参与的联系集选课选课,假设一个假设一个学生可以选修多门课程,且一门课程允许多个学生选修,学生可以选修多门课程,且一门课程允许多个学生选修,则则选课选课为实体集为实体集学生学生与与课

43、程课程之间的之间的多对多多对多联系集。联系集。 映射约束映射约束学生学生课程课程学号学号课程号课程号AC0013AC0054CN0283CS0125CS0154CS02831201000012120100014812011000061201100258120110754312012008672201200025u说明:说明:每一个学生都选修了课程每一个学生都选修了课程,但,但有的课程没有学生有的课程没有学生选修选修。2015/10/302015/10/302929北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章

44、 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节n 在在E-R图中,为了反映联系集的映射基数,采用图中,为了反映联系集的映射基数,采用“”表表示指向参与联系集中的示指向参与联系集中的“一一”方实体集,线段方实体集,线段“”表表示参与联系集中的示参与联系集中的“多多”方实体集。方实体集。 映射基数的表示映射基数的表示销货单销货单开发票开发票发票发票(a) 一对一联系集一对一联系集开发票开发票班级班级包含包含学生学生(b) 一对多联系集一对多联系集包含包含课程课程归属归属学院学院(c) 多对一联系集多对一联系集归属归属学院学院聘用聘用教师教师聘用日期2015/10/

45、302015/10/303030北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节码约束与联系集的属性安置码约束与联系集的属性安置 n 实体集的码实体集的码 l超码超码(super key)是一个或多个属性的集合,且这些属是一个或多个属性的集合,且这些属性的集合在一实体集中能够性的集合在一实体集中能够唯一标识一个实体唯一标识一个实体。 如果如果SK是一个超码,那么是一个超码,那么SK的任意超集的任意超集(即包含超码的即包含超码的属性集

46、属性集)也是超码也是超码l若一超码的任意真子集都不能成为超码,则称该若一超码的任意真子集都不能成为超码,则称该最小最小超码超码为为候选码候选码(candidate key)。给定一组属性集,可能存在多个候选码。给定一组属性集,可能存在多个候选码。假设假设学生学生实体集中不存在同名的学生,则实体集中不存在同名的学生,则学号学号和和姓名姓名都都可以用来唯一区分学生可以用来唯一区分学生 ,因此它们都可以作为,因此它们都可以作为学生学生实实体集的候选码。体集的候选码。 学号学号和和姓名姓名的组合是候选码吗?的组合是候选码吗?2015/10/302015/10/303131北京理工大学珠海学院北京理工大

47、学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节n 候选码候选码和和超码超码是实体集是实体集客观存在的特性客观存在的特性,它们表示实体集,它们表示实体集中任意两个实体不允许在码属性上有相同的值。中任意两个实体不允许在码属性上有相同的值。n 可以从多个候选码中选择一个作为实体集的可以从多个候选码中选择一个作为实体集的主码主码(primary key)。主码主码是是被数据库设计者主观选中、用来区分同一实被数据库设计者主观选中、用来区分同一实体集中不同实体的候选码体集

48、中不同实体的候选码。n 当一实体集存在多个候选码时,主码选择原则:当一实体集存在多个候选码时,主码选择原则:l选择选择属性长度最短属性长度最短的候选码;的候选码;l选择选择包含单个属性包含单个属性的码,而不是复合候选码;的码,而不是复合候选码;l选择在数据库系统生命周期内选择在数据库系统生命周期内属性值最少变化属性值最少变化的候选码;的候选码;l选择在数据库系统生命周期内选择在数据库系统生命周期内更可能包含唯一值更可能包含唯一值的候选码。的候选码。码约束与联系集的属性安置码约束与联系集的属性安置 2015/10/302015/10/303232北京理工大学珠海学院北京理工大学珠海学院 计算机学

49、院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节n 每一个每一个联系集联系集,也要求必须存在,也要求必须存在候选码候选码,并选择其,并选择其中的一个候选码作为中的一个候选码作为主码主码,用于唯一标识该联系集用于唯一标识该联系集中的一个联系中的一个联系。 n 联系集的码联系集的码 l假设假设R是一个涉及实体集是一个涉及实体集E1,E2, ,En的的联系集联系集,PK(Ei)代表构成实体集代表构成实体集Ei的的主码主码属性的集合,而属性的集合,而(e1, e2, e3, , en)是是

50、R的一个的一个联系联系,那么,那么PK(E1) PK(E2) PK(En)构成构成联系集联系集的一个的一个超码超码。码约束与联系集的属性安置码约束与联系集的属性安置 2015/10/302015/10/303333北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节n 二元联系集二元联系集的的主码主码选择,依赖于选择,依赖于联系集的映射基数联系集的映射基数l一对一:一对一:主码可以使用参与联系集中的主码可以使用参与联系集中的任何一方实体

51、集的任何一方实体集的主码主码;l一对多一对多(多对一多对一):主码由主码由“多多”的一方实体集的主码的一方实体集的主码组成组成;l多对多:多对多:主码由参与联系集中主码由参与联系集中所有实体集的主码所有实体集的主码组成。组成。n 联系集的属性安置联系集的属性安置 l一对一联系集的属性:一对一联系集的属性:可安置于任一边的实体集上;可安置于任一边的实体集上; l一对多联系集的属性:一对多联系集的属性:可安置于联系集上,也可安置在多可安置于联系集上,也可安置在多的那一边的实体集上;的那一边的实体集上; l多对多联系集的属性:多对多联系集的属性:它是描述相关联实体集间的交互性它是描述相关联实体集间的

52、交互性语义,因此,联系属性只能安置于联系集上,不能放到相语义,因此,联系属性只能安置于联系集上,不能放到相关联的实体集上去。关联的实体集上去。 码约束与联系集的属性安置码约束与联系集的属性安置 2015/10/302015/10/303434北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节依赖约束依赖约束 n 依赖约束依赖约束是指联系中一种是指联系中一种实体实体的存在依赖于该联系的存在依赖于该联系集中集中联系联系或其他实体集中或其他

53、实体集中实体实体的存在。的存在。l联系中一种联系中一种实体实体的存在依赖于该联系集中的存在依赖于该联系集中联系联系的存的存在,称为在,称为实体集实体集与与联系集联系集之间的之间的依赖约束依赖约束,并将依,并将依赖于联系集而存在的实体集称为赖于联系集而存在的实体集称为依赖实体集依赖实体集;l联系中一种联系中一种实体实体的存在依赖于其他实体集中的存在依赖于其他实体集中实体实体的的存在,称为存在,称为实体集实体集之间之间的的依赖约束依赖约束,并将依赖于其,并将依赖于其他实体集而存在的实体集称为他实体集而存在的实体集称为弱实体集弱实体集(见见4.4节节)。 2015/10/302015/10/3035

54、35北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节实体集与联系集之间的依赖约束实体集与联系集之间的依赖约束 n 伴随着伴随着商品销售业务商品销售业务的发生,会产生的发生,会产生销货单销货单(或或购货单购货单)。 n 如果将如果将销货单销货单建模为实体集,则在建模为实体集,则在销货单销货单与与商品商品实体集之实体集之间存在着多对多的间存在着多对多的商品销售商品销售联系集联系集(反映一张销货单或一种反映一张销货单或一种商品的销售明细商

55、品的销售明细),联系属性有,联系属性有销售数量、销售单价销售数量、销售单价等。等。 n 销货单销货单实体集的存在是依赖于实体集的存在是依赖于商品销售商品销售联系集的存在,也联系集的存在,也就是说,就是说,没有商品销售联系,就没有销货单实体,没有商品销售联系,就没有销货单实体,即即销货销货单单实体集与实体集与商品销售商品销售联系集之间存在联系集之间存在依赖约束依赖约束,销货单销货单是是依赖实体集依赖实体集。 销货单销货单商品商品商品销售商品销售销货单编号销货单编号销货日期商品编号商品编号商品名称销售数量销售单价u为了区分,本书约定为了区分,本书约定依赖实体集依赖实体集采用采用带填充背景的带填充背

56、景的矩形矩形表表示,它所依赖的示,它所依赖的联系集联系集用用带填充背景的带填充背景的菱形菱形表示表示(也可以不也可以不去区分依赖实体集和它所依赖的联系集去区分依赖实体集和它所依赖的联系集)。 2015/10/302015/10/303636北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节参与约束参与约束 n 如果实体集如果实体集A中的每个实体都参与到联系集中的每个实体都参与到联系集R中中至少一个联系至少一个联系中中,则称实体集,则称

57、实体集A全部参与全部参与联系集联系集R。n 如果实体集如果实体集A中只有中只有部分实体参与部分实体参与到联系集到联系集R的联系中,则称的联系中,则称实体集实体集A部分参与部分参与联系集联系集R。n 例如,对于例如,对于选课选课联系集,联系集,学生学生实体集是实体集是全部参与全部参与,而,而课程课程实实体集是体集是部分参与部分参与。学生学生课程课程学号学号课程号课程号AC0013AC0054CN0283CS0125CS0154CS028312010000121201000148120110000612011002581201107543120120086722012000252015/10/30

58、2015/10/303737北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节多值联系多值联系 n 多值联系多值联系是指在同一个给定的联系集中,相关联的相同是指在同一个给定的联系集中,相关联的相同实体之间可能实体之间可能存在多个联系存在多个联系。 n 例如,实体集例如,实体集客户客户与与银行银行之间的多对多之间的多对多贷款贷款联系集,联系集,表表示一个客户可以向多个银行贷款,同时一个银行可以向示一个客户可以向多个银行贷款,同时一个银行

59、可以向多个客户发放贷款,多个客户发放贷款,联系集的属性有:联系集的属性有:贷款编号、贷款贷款编号、贷款日期、贷款金额日期、贷款金额等。等。客户客户银行银行贷款贷款贷款编号贷款金额贷款日期n 该该E-R模型存在如下问题:模型存在如下问题:l 当一个客户向同一个银行申请多笔贷款时,则联系集当一个客户向同一个银行申请多笔贷款时,则联系集中无法唯一标识一个联系。中无法唯一标识一个联系。即即贷款贷款不仅是一个不仅是一个多对多多对多联系联系,而且是一个,而且是一个多值联系多值联系;l 如果由多个银行联合发放一笔贷款,或由多个客户共如果由多个银行联合发放一笔贷款,或由多个客户共同借一笔贷款,同借一笔贷款,则

60、会出现则会出现数据冗余问题数据冗余问题(在联系集中在联系集中反映该笔贷款的反映该笔贷款的贷款编号、贷款日期贷款编号、贷款日期等要重复多遍等要重复多遍).2015/10/302015/10/303838北京理工大学珠海学院北京理工大学珠海学院 计算机学院计算机学院 数据库原理与设计数据库原理与设计 张申勇张申勇第第 04 04 章章 数据库建模(实体数据库建模(实体- -联系模型)联系模型)_1-6_1-6节节多值联系多值联系 n 多值联系多值联系是指在同一个给定的联系集中,相关联的相同是指在同一个给定的联系集中,相关联的相同实体之间可能实体之间可能存在多个联系存在多个联系。 n 例如,实体集例

温馨提示

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

评论

0/150

提交评论