欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第5章 数据库设计.ppt

    • 资源ID:5651091       资源大小:686.01KB        全文页数:68页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第5章 数据库设计.ppt

    第5章数据库设计,本章主要内容:,实体联系模型的元素实体联系模型到关系模型的转换规则实体联系模型设计关系数据库模式的实例,本章学习目标,数据库设计:包括逻辑设计和物理设计。逻辑设计:概念结构设计与逻辑结构设计。概念结构设计:实体-联系模型(E-R图)。逻辑结构设计:关系数据库的模式设计。,实体-联系模型(E-R图)反映的是用户需求的一个概念模型,与具体的数据库实现无关。数据库设计首先要分析用户需求,并用实体-联系模型表示。实体-联系模型的关键元素:实体、属性、标识符和联系。,5.1 实体-联系模型的元素,5.1.1 实体(Entity)实体实例(entity instance)是现实世界中客观存在的并可相互区别的事物,实体实例可以是具体的人、事、物。例如,一个叫“张三”的学生,一门叫“”数据库基础的课程,都是一些实体实例。实体实例简称实例。实体:具有相同特征的可区分的实例的集合,如学生/职工。,实体-联系模型中,实体用矩形表示,矩形框内写明实体名。,图5-1学生实体与属性的表示,5.1.2 属性(Attribute)属性用来描述实体的特征。实体通常具有若干个特征,一个特征称为实体的一个属性,例如:学生实体具有学号、姓名、性别、年龄、系别等属性。属性有名和值,例如属性学号,可有100、200等值,一个属性名可对应多个值。E-R图中属性用椭圆表示,椭圆内写上属性的名称,并用无向边将其与相应的实体连接起来,如图5-1所示。说明:如果E-R图中实体的属性很多,可以只在ER图附近说明,而不直接画在图上。有的时候,为了专注于分析实体与联系,可暂时不画实体的属性。,实体的属性可以分为简单属性和组合属性。简单属性:不可再分的属性。如学号、年龄等。组合属性:有多个简单属性组成的属性,或者说是可以进一步划分的属性。如电话号码,由区号、本地号码组成,因此电话号码时一个组合属性。说明:一个组合属性有时也可以看作为一个简单属性,取决于实际应用的需求,由数据库设计者根据实际应用需求决定。例如,电话号码,如果对该属性包含的简单属性要进行各种处理,那么通常把电话号码属性应该看作组合属性,应该继续细分成简单属性,即区号、本地号码两属性。否则,可以考虑该属性为简单属性。,实体的属性还可以分为单值属性和多值属性。单值属性:指每一个实例在该属性上的取值是单一的。如学生的学号,年龄、性别属性。多值属性:指某些实例在该属性上的取值可能多于一个值。多值属性用双线椭圆表示,椭圆内写上多值属性名称,用无向边与相应的实体连接起来。,5.1.3 标识符(Identifier)标识符:用来识别或标识实例的那些属性或属性组。每一个实例在这些属性上具有不同的值。例如,学生实体可用学号作为标识符。因为每一个实例,即每一个学生都有不同的学号。反之,给定一个学号值也就能识别是那个学生。学生实体不能用年龄、性别这样的属性作为标识符,因为给定年龄属性的一个值,比如20,不能惟一标识是那个学生的年龄,可能有很多学生的年龄都是20。由两个或多个属性构成的标识符叫组合标识符。一个实体可能有多个标识符,我们选出其中的一个作为实体的标识符,并用下划线表示。见图5-1中的“学号”,5.1.4 联系(Relationship)联系是指实体之间的相互关联。通常表示一个活动。比如:订购、选课等。一旦联系发生,可能产生一些联系属性,例如,一旦订购活动发生,就有订购数量、日期等属性,一旦进行选课,就有选修时间、选修成绩等属性。联系用菱形表示,菱形内写明联系的名称,通常用一个动词命名,并用无向边分别与关联实体连接起来。菱形的一侧用1、m、n等符号表明联系的该侧实体最大可以产生的实例数,称为最大基数。一般ER图都只是标出最大基数,而不标出最小基数。最小基数表示菱形一侧的实体中实例的最小个数。有多种表示方法,可以用穿越联系线的小椭圆表示最小基数为0,用穿越联系线的小竖线(脉冲线)表示最小基数为1,若要表示大于1的最小基数,则在脉冲线上注明数字,如图5-3所示。,图5-3(a),图5-3(b),1.联系的两个重要概念部分参与与全部参与。参与联系的每一个实体称为这个联系的参与者。如果一个参与者的最小基数为0,即可以没有任何实例参与该联系,则称该参与者是部分的,或者说部分参与的。图5-3(a)中,学生实体与课程实体都是部分参与的。如果参与者的最小基数为1,即至少有一个实例参与该联系,则称该参与者是全部的,或者全部参与的。图5-3(b)中,学生实体与课程实体都是全部参与的。,联系的元:一个联系中参与者的数量称为联系的元。也可定义为:一个联系中涉及的实体的个数称为联系的元。如图5-3(a)、5-3(b)中的“选课”的联系,在这个联系中,有两个实体参与,一个学生实体和一个课程实体。因此“选课”联系的元为2。元为2的联系是最普遍的联系,通常被称为二元联系2二元联系 可分为:一对一联系(1:1)、一对多联系(1:n)、多对多联系(m:n)。,一对一联系(1:1)若对于实体A中的每一个实例,实体B中至多有一个实例与之联系,反之,对于实体B中的每一个实例,实体A中也至多有1个实例与之联系,则称实体A与实体B具有一对一联系,记为1:1(读作“1对1”)。在1:1联系中,一种类型实体的一个实例至多与另一种类型实体的一个实例关联。,图5-4(a),一对多联系(1:n)若对于实体A中的每一个实例,实体B中有n个实例(n0)与之联系,反之,对于对于实体B中的每一个实例,实体A中至多只有一个实例与之联系,则称实体A与实体B具有一对多联系,记为1:n(读作“1对n”或“1对多”)。如下图所示,把这个联系称为“分配”。表示一幢宿舍(实例)分配给0到多个学生(实例)居住,但一个学生最多被分配住在一幢宿舍,也必分配在某一幢宿舍居住。,图5-4(b),多对多联系(m:n)若对于实体A中的每一个实例,实体B中有n个实例(n0)与之联系,反之,对于实体B中的每一个实例,实体A中也有m个实例(m0)与之联系,则称实体A与实体B具有多对多联系,记为m:n(读作“m对n”或“多对多”)。下图显示了一个m:n联系“选修”。选修联系表明一个学生最多可以选修n门课程,每门课程最多有m个学生选修,而最少的情况是:一个学生最少可以选修0门课程,每门课程最少可以被0个学生选修。,图5-4(c),3.多元联系两个以上实体之间存在的联系称为多元联系。多元联系也有一对一、一对多和多对多的联系三种。举例如下图所示。,图5-5(a)图5-5(b),4递归联系 递归联系(Recursive Relationship)是指同一类型实体之间的联系。递归联系也有三种类型,如下例:,图5-6(a)1:1(b)1:n(c)m:n,20,概念模型的表示方法,概念模型的表示方法很多实体联系方法(E-R方法)用E-R图来描述现实世界的概念模型E-R方法也称为E-R模型,21,E-R图,实体用矩形表示,矩形框内写明实体名。,学生,教师,22,E-R图(续),属性用椭圆形表示,并用无向边将其与相应的实体连接起来,23,联系属性的表示方法,24,联系的表示方法,25,联系的表示方法(续),26,ER图的5个步骤,1.首先确定实体类型。2.确定联系类型。3.把实体类型和联系类型组合成ER图。4.确定实体类型和联系类型的属性。5.确定实体类型的键,在ER图中属于码的属性名下画一条横线。,27,关系数据模型的数据结构,在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。,28,关系模型的基本概念,关系(Relation)一个关系对应通常说的一张表。元组(Tuple)表中的一行即为一个元组。属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称即属性名。,29,关系模型的基本概念,码(Key)表中的某个属性组,它可以唯一确定一个元组。域(Domain)属性的取值范围。分量元组中的一个属性值。关系模式(relation schema)对关系的描述关系名(属性1,属性2,属性n)学生(学号,姓名,年龄,性别,系,年级),30,E-R图向关系模型的转换,转换内容E-R图由实体、实体的属性和实体之间的联系三个要素组成关系模型的逻辑结构是一组关系模式的集合将E-R图转换为关系模型:将实体、实体的属性和实体之间的联系转化为关系模式。,关系数据库设计需要设计出数据库赖以实现的实现模型,现在用的实现模型都是关系模型。关系模型的数据结构是关系,一个关系用一个关系模式表示。所有的关系模式组成数据库的模式。所以关系数据库设计就是要设计出数据库的模式,也称逻辑结构或逻辑模型。,5.2 实体-联系模型转换为关系模型,设计方法:将实体-联系模型转换为关系模型,用若干个关系模式来表示。实体-联系模型由实体、属性、标识符和实体之间的联系等要素组成的,所以将实体联系模型转换为关系模型,实际上就是要将E-R图中实体、实体的属性和实体之间的联系等转换为若干个关系模式,并确定这些关系模式的属性、关键字和约束。E-R图的转换规则。,5.2.1 实体的转换ER图中的每个实体,转换为关系模型的一个关系,关系的属性就是实体的属性,关系的主键就是实体的标识符。一个关系用一个关系模式表示,在关系模式中,用下划线来表示主键。关系名及其属性名可以用对应实体的实体名和属性名。但在实际应用中,为了便于用户理解和交流,通常在E-R图中,实体和属性都使用汉字命名方式。但在转换得到的关系模式中,关系名和属性名一般采用英文或拼音字母方式命名,目的是方便在DBMS中实施和应用程序的编写。,【例5.2.1】将下图所示的班主任管理班级的局部E-R图中两个实体转换为关系。(1)使用原来的实体名作为关系名,原来的属性名作为关系的属性名。转换得到关系模式如下:班主任(教工号,姓名,性别,职称,出生日期)班级(班级编号,系别,专业),(2)使用相应的英文或拼音字母命名代替原来的实体名和属性名,转换得到关系模式如下:Teachers(Tno,Tname,Tsex,Ttitle,Tbirthdate)Classes(ClassNo,DeptName,Major)需要说明:在把一个实体转换为一个关系时,如果实体有组合属性,则只把组合属性分成的简单属性转换为关系的属性。如果实体有多值属性,则往往把实体分解为两个关系,一个关系是实体转换得到的关系,关系的属性是除多值属性外的所有属性,另一个关系的属性是多值属性以及该多值属性相联的实体的标识符。,5.2.2 联系的转换1二元联系的转换(1)1:1联系的转换方法 通常将1:1联系与某一端实体转换得到的关系合并,在被合并的关系中增加联系本身的属性和与联系相关的另一端实体对应关系的主键,被合并关系的主键保持不变。【例5.2.2】将图5-4(a)学生和借书证的ER图转换为关系,(2)1:n联系的转换方法 通常将1:n联系与n端实体转换得到的关系合并,在n端实体对应的关系中增加联系本身的属性和一端实体对应关系的主键,新增属性后,n端实体对应关系的主键保持不变。在1:n的联系中,可以用父亲和子女这两个词语表示1对多的联系,父亲在“1”那一侧,子女在“多”的那一侧。在图5-4(b)中,宿舍是父亲实体,学生是子女实体。因此,1:n联系转换规则可以简单的定义为:将联系本身的属性和代表父实体关系的主键置于代表子实体的关系中。,【例5.2.4】将图5-4(b)中学生住宿的局部ER图转换为关系模型。1)将图中的两个实体转换为两个关系:学生和宿舍;2)将联系本身的属性和代表父实体关系的主键置于代表子实体的关系中。本例中,联系本身没有属性,代表宿舍关系的主键是宿舍编号,将其置于学生关系中,得到如下所示的关系模式。,(3)m:n联系的转换方法 一个m:n联系转换为一个关系,与该联系相连的各实体的主键以及联系本身的属性均转换为关系的属性,新关系的主键由相连的各实体的主键组成(多属性构成的组合键)。,【例5.2.5】将图5-4(c)中学生选课的局部ER图转换为关系模型。1)将图中的两个实体转换为两个关系即学生关系和课程关系。2)将图中的m:n联系“选课”转换为一个关系。三个关系对应的关系模式如下所示:学生(学号,姓名,性别,年龄,系别)课程(课程号,课程名,前修课程号,学分)选课(学号,课程号,成绩),2多元联系的转换 三个或三个以上实体间的一个多元联系转换为一个关系:关系的属性由联系本身的属性和与该多元联系相连的各实体对应关系的主键组成,关系的主键由各实体对应关系的主键组成。,【例5.2.5】将图5-5(a)、(b)的局部ER图转换为关系模型。,5-5(a)5-5(b),图5-12(a)(b),以图5-5(a)转换为关系模型为例。1)将图中的三个实体转换为三个对应的关系即:课程、教师和参考书。2)将图中的三元联系“讲授”转换为一个关系,因为该联系本身没有属性,则关系只包含课程、教师和参考书三个关系的主键。3)得到图5-12(a)所示的关系模式。,3递归联系的转换递归联系的三种类型(1:1,1:n,m:n)的转换规则与二元联系间三种类型(1:1,1:n,m:n)的转换规则相同。将下图的递归联系转换为关系模型,图5-6(a)1:1(b)1:n(c)m:n,公民(身份证号,被赞助人身份证号),分别得到下面的关系模式:,职工(职工号,领导职工号),医生(医生姓名,职称)治疗(医生姓名,病人医生姓名),5.2.3 弱实体与转换1弱实体的基本概念 弱实体:这种实体在数据库中的存在情况依赖于其他实体的存在情况。不是弱实体的实体称作强实体(简称实体)。例如,在学校人事档案ER图中,有职工和家属两个实体。假设有业务规则规定:一个具体的职工在同任何家属都无关的条件下可以存在,但一个家属,若没有同一个特定的职工有联系,则不能存在。这意味着一个家属只有同一个职工有联系的条件下,该家属的数据才能存入数据库中,同样,如果一个职工被删除了,则该职工的所有依赖的家属也要被删除。,在E-R图中,弱实体通常用双线矩形框表示。与弱实体之间的联系用双线菱形框表示。如下图所示。,2.弱实体的转换 转换为一个关系,在该关系中要加入强实体对应关系的主键。弱实体转换得到的关系的主键由强实体对应关系的主键与弱实体本身的关键属性组成。弱实体之间的联系转换与强实体之间联系的转换相同。Eg.职工(职工号,姓名)家属(职工号,家属姓名,家属关系),5.3*超类实体与子类实体(可选),5.4实体联系模型转换规则总结(1)一个实体转换为一个关系:关系的属性就是实体的属性,关系的主键就是实体的标识符。,52,(2)二元联系中1:1联系:可以与任意一端实体对应的关系合并,被合并的关系中加入另一端实体对应关系的主键和联系本身的属性。被合并的关系主键不变,新加入的另一端实体对应关系的主键作为该关系的外键。1:n联系:与n端实体对应的关系合并,n端实体对应的关系中,加入一端实体对应关系的主键和联系本身的属性,n端实体对应的关系的主键为n端实体的标识符,新加入的一端实体对应关系的主键作为该关系的外键。m:n联系:转换为一个关系,与该联系相连的各实体的主键以及联系本身的属性均转换为关系的属性,关系的主键由各实体对应关系的主键组成。,(3)递归联系的转换规则与二元联系对应的转换规则一致。(4)三个或三个以上实体间的一个多元联系转换为一个关系,关系的属性包含联系本身的属性和与该多元联系相连的各实体对应关系的主键,而该关系的主键由各实体对应关系的主键组成。(5)一个弱实体也转换为一个关系,关系的主键是相应强实体的主键与本身的关键属性组成。(6)子类实体也转换为一个关系,其主键是超类实体的标识符。,54,5.5数据库逻辑设计实例,逻辑结构设计,概念结构设计,物理设计,数据库逻辑设计实例用实体联系方法进行数据库逻辑设计的第一步就是分析系统需求,用ER图如实地反映现实世界实体、属性及实体之间的相互联系。然后利用转换规则转换成关系模型。以学生管理信息系统中的两个子系统:学生选课子系统和学生图书借阅管理子系统为例,具体说明E-R。,5.5.1 学生选课子系统1学生选课子系统的基本需求 学生选课子系统只要用于学生选课注册管理和学生成绩管理。假定某学校只有一种类型的学生,学生注册时提供包括学生的姓名、性别、籍贯、年龄、身份证号码、入学年月,家庭住址、父母姓名,联系电话等基本情况,注册成功后,每一个学生有惟一的一个学号。学校中已经开设多门课程,每门课程有惟一的课程编号,并且还有课程名称、课程程简介、学分等情况。学期初,每个学生可以选修若干门课程,每门选修课程可以有多个学生选修。为了便于学生选课注册与管理,需要开发一个学生选课子系统。,2 学生选课子系统的ER模型设计 首先,根据用户需求,分析确定潜在的实体。实体通常是文档中的名词。本例中,很显然可以先找到学生实体和课程实体。其次,根据根据用户需求,确定实体间的联系,本例中,每个学生可以选修若干门课程,每门选修课程可以有多个学生选修,可知学生实体与课程实体存在着选课联系,取名为“选修”,它是m:n.选课联系有一个属性“成绩”。,对每一个实体,分析相应的数据项或者说属性。为了简化ER图,假定学生相关的属性只有:学号、姓名、性别、年龄、系别等,课程相关的属性只有:课程号、课程名、前修课程、学分。再分析每一个实体的标识符,即值能惟一标识一个实例的属性或属性组。在学生实体中,学号是标识符,因为每一个学生有惟一的学号。在ER图中用下划线表示。在课程实体中,我们选用课程号作为标识符。修改上述ER图得到学生选课子系统完整的E-R模型,如下所示:,3 ER模型转换为关系模型 根据实体联系模型向关系模型转换的基本原则,将上述E-R模型转换为关系模型。得到:学生(学号,姓名,性别,年龄,系别)课程(课程号,课程名,前修课程号,学分)选修(学号,课程号,成绩)为了编程上的方便,关系名与属性名通常用英文命名,下面是用英文命名的关系模式:Students(Sno,Sname,Ssex,Ssge,Sdept)Courses(Cno,Cname,PreCno,Credits)Enrollemnt(Sno,Cno,Grade),5.5.2 学生图书借阅管理子系统1 学生图书借阅管理子系统的基本需求 该子系统是一个专为该学校图书馆管理而设计的系统。读者从图书馆借书,对图书馆来说,读者好像书籍一样,都是先被注册在该系统中的。图书馆需要处理新买的图书,包括添加、删除等。图书管理员是图书馆的雇员,所有图书登记、读者注册的工作由图书管理员完成,他们负责和读者交互,该系统支持他的工作。图书馆要求系统能方便地建立、更新和删除存在该系统中有关书名、读者等信息,也能方便地登记图书的借出与归还等的信息。,2 学生图书借阅管理子系统的ER模型设计 首先,根据对学生图书借阅管理系统的需求分析,我们可以先得到实体:书、读者和管理员。其次,分析它们之间的关系,管理员与书之间存在着一对多的联系,联系命名为“登记”,因为一个管理员可以负责登记多本图书;管理员与读者之间也存在一对多的联系,联系命名为“注册”,因为一个管理员可以负责注册多名读者;管理员、读者、书之间存在多对多的借阅联系,因为一名读者可以借阅多本图书,一个管理员可以办理多次借阅,一本书可以被多个读者借阅。至此,三个实体与它们之间的联系可以表示如下:,为了简化E-R图,我们假定管理员的属性只有:职工号、姓名、性别、权限级别,读者的属性只有:借书证号,姓名、性别、系别。书的属性有:书号、书名、作者、出版社、分类号。再分析每一个实体的标识符。我们假定管理员的标识符是职工号,书的标识符是书号,读者的标识符是借书证号。将上述实体、联系、属性等集成,得到学生图书借阅管理系统完整的E-R模型图如下表示:,3 ER模型转换为关系模型 根据实体转换规则,先把管理员、书、读者实体转换关系,关系模式如下:管理员(职工号,姓名,性别,权限级别)书(书号,书名,作者,出版社,分类号)读者(借书证号,姓名,性别,系别)根据1:n联系的转换规则,把联系“登记”的属性即“读者权限”和管理员关系的主键即“职工号”加入到读者关系中,得到读者改进后的关系读者(借书证号,姓名,性别,系别,读者权限,职工号)再把1:n联系“注册”的属性即“入库时间”和管理员关系的主键即“职工号”加入到书关系中,得到读者改进后的关系:书(书号,书名,作者,库存,出版社,分类号,入库时间,职工号),将一个三元关系管理员、书和读者之间的借阅联系转换为一个关系:借阅(职工号,借书证号,书号,借出日期,归还日期)所以最终得到的关系模型为:管理员(职工号,姓名,性别,权限级别)书(书号,书名,作者,出版社,分类号,入库时间,职工号)读者(借书证号,姓名,性别,系别,读者权限,职工号)借阅(职工号,借书证号,书号,借出日期,归还日期),用英文命名的关系模式为:Administrator(Ano,Aname,Asex,Aprivilege)BOOK(Bno,Bname,Bauthor,Bpublisher,BTPno,Indate,Ano)READER(Rno,Rname,Rsex,Rdept,Rprivilege,Ano)Borrow(Ano,Rno,Bno,Bdate),

    注意事项

    本文(第5章 数据库设计.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开