2.3将E-R图转换成关系模型 课件(共45张PPT)-《数据库应用技术-SQL Server》同步教学(人民邮电版)

资源下载
  1. 二一教育资源

2.3将E-R图转换成关系模型 课件(共45张PPT)-《数据库应用技术-SQL Server》同步教学(人民邮电版)

资源简介

(共45张PPT)
项目2 设计数据库
【能力目标】学会将现实世界的事物和特性抽象为信息世界的实体与关系。学会使用实体-联系(Entity Relationship,E-R)图描述实体、属性和实体间的关系。学会将E-R图转换为关系模型。能根据开发需求,将关系模型规范化到一定程度。对数据完整性有清晰的认识。【思政目标】坚定文化自信。深刻认识国产数据库跨越式发展的新机遇。软件国产化成为保护国家信息安全的重要手段,而数据库作为基础软件理应首当其冲成为国产化推进的主要领域之一。项目2 设计数据库【项目描述】设计学生信息管理系统的数据库,绘制E-R图,将E-R图转换成关系模型,指出各表的关键字。【项目分析】设计数据库是一个把现实世界抽象化,把信息世界数据化的过程。本项目以学生信息管理系统的xs数据库设计过程为例,介绍必要的数据库基础知识和数据库应用开发技术,使读者能够设计开发数据库应用系统。xs数据库贯穿全书,要求读者熟悉数据库中的3个表(XSDA、XSCJ、KCXX)以及它们之间的关系,初步了解数据库。项目2 设计数据库【思政导入】欲善其事,先利其器
现实世界中存在的客观事物数据化后才能在计算机中处理,不同状态的数据发挥的作用不同。在职场中我们做好自己的角色很重要,将自己的工作做到极致,才能体现出自身的价值来。
项目2 设计数据库
【任务设置】任务1附加与分离数据库认知数据库结构任务2现实世界数据化任务3转换成关系模型任务4认知关键字和数据完整性项目2 设计数据库【任务目标】学会将E-R图转换成关系模型。能根据开发需求,将关系模型规范化到一定程度。【任务分析】关系模型是目前数据库系统普遍采用的数据模型,也是应用最广泛的数据类型。关系模型通过二维表来表示实体以及实体之间的联系。本任务详细介绍关系模型和二维表。任务3 将E-R图转换成关系模型项目2 设计数据库逻辑数据模型是指数据库中数据的组织形式和联系方式,简称数据模型。数据库中的数据是按照一定的逻辑结构存储的,这种结构用数据模型来表示。现有的数据库管理系统都基于某种数据模型。按照数据库中数据采取的不同联系方式,数据模型可分为3种:层次模型、网状模型和关系模型。1.层次模型层次模型的优点是结构简单、层次清晰、易于实现,适合描述类似家族关系、行政编制及目录结构等信息载体的数据结构。任务3-1 逻辑数据模型项目2 设计数据库其基本结构有两个限制。(1)此模型中有且仅有一个节点没有双亲节点,该节点称为根节点,其层次最高。(2)根节点以外的其他节点有且仅有一个双亲节点。所以,使用层次模型可以非常直接、方便地表示1∶1和1∶n联系,但不能直接表示m∶n联系,难以实现对复杂数据关系的描述。一个层次模型的简单例子PS数据库层次模型如图2-18所示。任务3-1 逻辑数据模型项目2 设计数据库任务3-1 逻辑数据模型项目2 设计数据库图2-18PS数据库层次模型2.网状模型网状模型是一种比层次模型更具普遍性的结构,它去掉了层次模型的两个限制,允许多个节点没有双亲节点,允许节点有多个双亲节点,此外它还允许两个节点之间有多种联系。因此,网状模型可以更直接地描述现实世界。层次模型实际上是网状模型的一个特例。网状模型的主要优点是在表示数据之间的m∶n联系时具有很大的灵活性,但是这种灵活性是以数据结构的复杂化为代价的。任务3-1 逻辑数据模型项目2 设计数据库任务3-1 逻辑数据模型项目2 设计数据库图2-19 网状模型图2-20 关系模型示例3.关系模型关系模型与层次模型、网状模型的理论和风格截然不同,如果说层次模型和网状模型是用“图”表示实体及其联系,那么关系模型用“二维表”来表示。从现实世界中抽象出的实体及其联系基本使用二维表表示。而关系模型就是用若干个二维表来表示实体及其联系的,这是关系模型的本质。关系模型示例如图2-20所示。任务3-1 逻辑数据模型项目2 设计数据库二维表并不一定是关系模型,只有具有下面特点的二维表才是关系模型。(1)表格中的每一列都是不可再分的数据单元。(2)每列的名称不同,数据类型相同或者兼容。(3)行的顺序无关紧要。(4)列的顺序无关紧要。(5)不存在完全相同的两行。通常将关系模型称为关系或者表,将关系中的行称为元组或记录,将关系中的列称为属性或字段。任务3-2 认知关系模型的基本概念项目2 设计数据库1.关系术语关系数据库有几个常见的关系术语。(1)关系关系就是一个二维表格,每个关系都有一个关系名。在SQL Server 2019中,一个关系称为一个表(Table)。(2)记录(元组)在一个具体的关系中,每一行称为一个记录,又称元组。(3)字段(属性)在一个具体的关系中,每一列称为一个字段,又称属性。任务3-2 认知关系模型的基本概念项目2 设计数据库(4)域域就是属性的取值范围,即不同记录对同一个属性的取值予以限定的范围。例如,“成绩”属性的域是0~100,“性别”属性的域为“男”“女”。(5)关键字在一个关系中有一个或几个这样的字段(属性),其值可以唯一地标识一个记录,该字段称为关键字。例如,学生表中的“学号”字段就可以作为一个关键字,而“姓名”字段因其值不唯一而不能作为关键字。任务3-2 认知关系模型的基本概念项目2 设计数据库(6)关系模式对关系的描述称为关系模式。一个关系模式对应一个关系,是命名的属性集合。其格式为:关系名(属性名1,属性名2,…,属性名n)例如:学生(学号,姓名,年龄,性别)课程(课程号,课程名,学分,学时)选修(学号,课程号,成绩)一个具体的关系模型则是若干个相联系的关系模式的集合。以上3个关系模式就可组成关系模型。任务3-2 认知关系模型的基本概念项目2 设计数据库2.关系的二维表的约束关系表现为二维表,但不是所有的二维表都是关系。成为关系的二维表有如下约束。(1)不允许“表中套表”,即表中每个属性必须是不可分割的数据单元;或者说每个字段不能再分为若干个字段,即表中不能再包含表。(2)在同一个关系中不能出现相同的属性名。(3)列的次序可以任意交换,不改变关系的实际意义。(4)表中的行又称为元组,代表一个实体,因此表中不允许出现相同的两行。(5)行的次序可以任意交换,不会改变关系的实际意义。任务3-2 认知关系模型的基本概念项目2 设计数据库关系模型的逻辑结构是一组关系模式的集合,而E-R图则是由实体、实体的属性和实体之间的联系3个要素组成的,所以将E-R图转换为关系模型实际上就是将实体、实体的属性和实体之间的联系转换为关系模式。这种转换一般遵循如下原则。(1)一个实体转换为一个关系模式,实体的属性即关系的属性,实体的关键字就是关系的关键字。(2)如果是一个1:1联系,可在联系两端的实体关系中的任意一个关系的属性中加入另一个关系的关键字。(3)如果是一个1:n联系,可在n端实体转换成的关系中加入一端实体关系中的关键字。任务3-3 将学生选修E-R图转换为关系模型项目2 设计数据库(4)如果是一个n:m联系,可转换为一个关系。联系两端各实体关系的关键字组合构成该关系的关键字,组成关系的属性中除关键字外,还有联系自有的属性。(5)3个或3个以上实体间的一个多元联系转换为一个关系模式。(6)实体集的实体间的联系,即自联系,也可按上述1:1、1:n、m:n这3种情况分别处理。(7)具有相同关键字的关系可以合并。任务3-3 将学生选修E-R图转换为关系模型项目2 设计数据库按照上述转换原则,将图2-17所示的学生信息管理系统全局E-R图转换为如下关系模型。学生档案(学号,姓名,性别,系名,出生日期,民族,总学分,备注)课程信息(课程编号,课程名称,开课学期,学时,学分)学生成绩(学号,课程编号,成绩)用户信息(用户名,密码)【例2-5】 分析表2-1是否是关系模型。表2-1不是关系模型,因为授课情况还可以细分为开课学期、学时、学分3列。任务3-3 将学生选修E-R图转换为关系模型项目2 设计数据库表2-1 课程一览表任务3-3 将学生选修E-R图转换为关系模型项目2 设计数据库课程编号课程名称授课情况开课学期学时学分104计算机文化基础1603108C语言程序设计2965202数据结构3724【例2-6】将表2-1规范为关系模型。将表2-1的授课情况细分为开课学期、学时、学分3列,如表2-2所示,得到关系模型。课程编号课程名称开课学期学时学分104计算机文化基础1603108C语言程序设计2965202数据结构3724关系规范化的目的是消除存储异常、减少数据冗余(重复),以保证数据完整性(即数据的正确性、一致性)和存储效率,一般将关系规范到Ⅲ范式即可。表2-2~表2-4都满足关系模型的5个特点,它们都是关系,但存在以下几个问题。任务3-4 关系规范化项目2 设计数据库学号姓名性别系编号系名出生日期民族总学分备注201901王红女01信息1996-02-14汉60NULL201902刘林男01信息1996-05-20汉54NULL201903曹红雷男01信息1995-09-24汉50NULL学号姓名性别系编号系名出生日期民族总学分备注201901王红女01信息1996-02-14汉60NULL201902刘林男01信息1996-05-20汉54NULL201903曹红雷男01信息1995-09-24汉50NULL表2-3 学生档案表表2-4 学生成绩表(1)(1)数据冗余姓名在两个表中重复出现。(2)数据可能不一致课程名称、姓名重复出现,容易出现数据不一致的情况,如输入的课程名称不规范,有时候输入全称,有时候输入简称;另外,在修改数据时,可能会出现遗漏的情况,造成数据不一致。(3)数据维护困难任务3-4 关系规范化项目2 设计数据库数据在多个表中重复出现使数据库的维护变得困难。例如,某个学生更改姓名,则需要在学生档案表和学生成绩表这两个表中更改,才能保证数据的一致性,数据量大时维护工作量会很大。关系数据库中的关系要满足一定的规范化要求,对于不同的规范化程度,可以使用“范式”进行衡量,记作NF。满足最低要求的为Ⅰ范式,简称1NF。在Ⅰ范式的基础上,进一步满足一些要求的为Ⅱ范式,简称2NF。同理,还可以进一步规范为Ⅲ范式。任务3-4 关系规范化项目2 设计数据库1.Ⅰ范式如果一个关系的每个属性都是不可再分的数据单元,则该关系是Ⅰ范式。【例2-7】 分析表2-2、表2-3是否是Ⅰ范式。因为表2-2、表2-3均满足Ⅰ范式的条件,所以它们是Ⅰ范式。Ⅰ范式是关系必须达到的最低要求,不满足该条件的关系称为非规范化关系。因为Ⅰ范式存在数据冗余、数据不一致和维护困难等缺点,所以要对Ⅰ范式进一步规范。任务3-4 关系规范化项目2 设计数据库2.Ⅱ范式如果一个关系是Ⅰ范式,并且关系中的每一个非主属性完全函数都依赖于主关键字(Primary Key,或称主键、主码),则该关系是Ⅱ范式。单个属性作为主键的情况比较简单,因为主键的作用就是能唯一标识表中的每一行,关系中的非主属性完全函数都能依赖于主键,所以这样的关系是Ⅱ范式。对于组合属性作为主键的那些关系,通常要判断每一个非主属性是完全函数依赖还是部分函数依赖于主键。任务3-4 关系规范化项目2 设计数据库【例2-8】 分析表2-3、表2-4是否是Ⅱ范式。因为表2-3的主键是学号,该表的其他非主属性都完全函数依赖于主键课程编号属性,所以表2-3是Ⅱ范式。因为表2-4的主键为(学号,课程编号),在该表中成绩属性完全函数依赖于主键,姓名只依赖于主键中的学号属性,它与主键中的课程编号属性无关,即姓名属性部分函数依赖于主键,所以表2-4不是Ⅱ范式。将非Ⅱ范式规范为Ⅱ范式的方法是,将部分函数依赖关系中的主属性(决定方)和非主属性从关系中提取出来,单独构成一个关系;将关系中余下的其他属性加上主键,构成关系。任务3-4 关系规范化项目2 设计数据库【例2-9】 将表2-4规范为Ⅱ范式。表2-4中的姓名属性只与主键(学号,课程编号)中的学号有关,规范时只需要将学号属性、姓名属性分离出来组成一个关系。由于分离出来的学号、姓名属性在表2-3中已存在,因此可以由分离的属性组成一个关系。剩余的其他属性,即成绩加上主键(学号,课程编号),构成关系,如表2-5所示。它符合Ⅱ范式的条件,所以是Ⅱ范式。任务3-4 关系规范化项目2 设计数据库Ⅱ范式依然存在数据冗余、数据不一致的问题,可以进一步将其规范为Ⅲ范式。3.Ⅲ范式如果一个关系是Ⅱ范式,且关系中的每一个非主属性都不完全函数传递依赖于主键,则此关系是Ⅲ范式。任务3-4 关系规范化项目2 设计数据库学号课程编号成绩201901104812019021087720190320289表2-5 学生成绩表(2)【例2-10】 分析表2-2、表2-3是否是Ⅲ范式。因为表2-2满足Ⅱ范式,并且任何一个非主属性都不完全函数传递依赖于主键,所以它是Ⅲ范式。表2-3是Ⅱ范式,但不是Ⅲ范式。它的主键为学号,系编号和系名之间存在通过系编号进行函数依赖传递的关系。要清除这种函数传递依赖关系,可将系编号属性、系名属性分离出来组成一个关系。删除重复行后构成表2-6所示的系部表,该表主键为系编号,它是Ⅲ范式。在表2-3中删除系名属性后,剩余属性组成表2-7所示的学生表,它是Ⅲ范式。任务3-4 关系规范化项目2 设计数据库任务3-4 关系规范化项目2 设计数据库学号课程编号成绩201901104812019021087720190320289表2-8 学生信息表系编号系名01信息02计算机03人文表2-6 系部表学号姓名性别系编号出生日期民族总学分备注202101王红女012003-02-14汉60NULL202102刘林男012003-05-20汉54NULL202103曹红雷男012003-09-24汉50NULL表2-7 学生表(1)对于某些比较简单的数据库,也可以删除其系编号属性,从而满足Ⅲ范式的条件,如表2-8所示。Ⅲ范式的表数据基本独立,表和表之间通过公共关键字(Common Key)进行联系(例如,表2-6和表2-7的公共关键字为系编号),它从根本上消除了数据冗余、数据不一致的问题。任务3-4 关系规范化项目2 设计数据库数学中的算术运算是大家熟悉的,例如,2+3是一个算术运算,该运算的运算对象是数值2和3,运算法则是加法,运算结果是数值5。与此类似,关系运算的运算对象是关系(二维表),关系运算的法则包括选择、投影、连接,关系运算结果也是关系(二维表)。下面分别介绍这3种关系运算法则。1.选择选择(Selection)是在一个关系中找出满足给定条件的记录。选择是从行的角度对二维表的内容进行筛选,形成新的关系。例如,学生表如表2-9所示。任务3-5 关系运算项目2 设计数据库任务3-4 关系规范化项目2 设计数据库表2-7 学生表(2)学号姓名性别系名出生日期民族总学分备注202101王红女信息2003-02-14汉60无202102刘林男信息2003-05-20汉54无202103曹红雷男信息2003-09-24汉50无202104方平女信息2003-08-11回52三好学生202105李伟强男信息2003-11-14汉60一门课不及格【例2-11】从表2-9中选择男同学,选择运算结果如表2-10所示,SQL语句如下:SELECT*FROM 学生WHERE性别='男'任务3-4 关系规范化项目2 设计数据库表2-10 选择运算结果通俗地说,选择运算是将满足条件的元组提取出来,组成一个新的关系。2.投影投影(Projection)是从一个关系中找出符合条件的属性列组成新的关系。投影是从列的角度对二维表的内容进行筛选或重组,形成新的关系。学号姓名性别系名出生日期民族总学分备注202102刘林男信息2003-05-20汉54无202103曹红雷男信息2003-09-24汉50无202105李伟强男信息2003-11-14汉60一门课不及格任务3-4 关系规范化项目2 设计数据库表2-11 投影运算结果(1)【例2-12】 从表2-9所示的学生表中筛选姓名和出生日期列,投影运算结果如表2-11所示,SQL语句如下:SELECT姓名,出生日期FROM 学生从【例2-11】和【例2-12】中得知:选择是从行的角度进行运算的,投影则是从列的角度进行运算的。姓名出生日期王红2003-02-14刘林2003-05-20曹红雷2003-09-24方平2003-08-11李伟强2003-11-14任务3-4 关系规范化项目2 设计数据库表2-12 投影运算结果(2)【例2-13】 从表2-9中筛选性别列,投影运算结果如表2-12所示,SQL语句如下:SELECT性别FROM 学生性别女男任务3-4 关系规范化项目2 设计数据库表2-13 关系R3.连接连接(Join)是从两个关系的笛卡儿积中选取属性之间满足一定条件的元组形成新的关系。在此不给出笛卡儿积的定义,仅通过一个例子让读者初步了解笛卡儿积。对于笛卡儿积的定义,请大家参考离散数学中的相关内容。设关系R和关系S分别如表2-13和表2-14所示。ABCa1b1c1a2b2c2a3b3c3任务3-4 关系规范化项目2 设计数据库表2-14 关系S对关系R和关系S进行笛卡儿积运算的结果如表2-15所示。ADa1c4a3c5表2-15 对关系R和关系S进行笛卡儿积运算的结果R.ABCS.ADa1b1c1a1c4a1b1c1a3c5a2b2c2a1c4a2b2c2a3c5a3b3c3a1c4a3b3c3a3c5任务3-4 关系规范化项目2 设计数据库连接运算中有两种常用的连接:等值连接(Equijoin)和自然连接(Natural Join)。等值连接是选取R与S的笛卡儿积的属性值相等的那些元组。自然连接要求两个关系中进行比较的分量必须是相同属性组,且要在结果中把重复的属性去掉。【例2-14】 关系R与关系S按照属性A的值进行等值连接的结果如表2-16所示。任务3-4 关系规范化项目2 设计数据库表2-16 关系R与关系S按照属性A的值进行等值连接的结果自然连接R∞S的结果如表2-17所示。。表2-17 自然连接R∞S的结果R.ABCS.ADa1b1c1a1c4a3b3c3a3c5R.ABCDa1b1c1c4a3b3c3c5任务3-5关系数据库项目2 设计数据库基于关系模型建立的数据库称为关系数据库,它具有通用的数据管理功能,数据表示能力较强,易于理解,使用方便。20世纪80年代以来,关系数据库的理论日益完善,关系数据库在数据库系统中得到了广泛的应用,是各类数据库中最为重要、使用最为广泛、最为流行的数据库。关系数据库是一些相关的表和其他数据库对象的集合。这里有3层含义。(1)在关系数据库中,数据存储在二维表结构的数据表中,一个表是一个关系,又称为实体集。① 一个表包含若干行,每一行称为一条记录,表示一个实体。任务3-5关系数据库项目2 设计数据库② 每一行数据由多列组成,每一列称为一个字段,反映了该实体某一方面的属性。③ 在实体的属性中,能唯一标识实体集中每个实体的某个或某几个属性称为实体的关键字。在关系数据库中,关键字被称为主键。(2)数据库包含的表之间是有联系的,联系由表的主键和外关键字(Foreign Key,或称外键、外码)所体现的参照关系实现。① 关系表现为表。关系数据库一般由多个关系(表)组成。② 表之间由某些字段的相关性而产生联系。在关系数据库中,表既能反映实体,又能表示实体之间的联系。③ 用表的主键和外键反映实体间的联系。在关系数据库中,外键是指表中含有的与另一个表的主键相对应的字段,它用来与其他表建立联系。任务3-5关系数据库项目2 设计数据库(3)数据库不仅包含表,还包含其他的数据库对象,如视图、存储过程和索引等。数据库是存储数据的容器,数据主要保存在数据库的表中,所以,数据表是数据库的基本对象。除此之外,在数据库中还有其他对象,常用的如下。① 视图:一个虚拟表,可用于从实际表中检索数据,并按指定的结构形式浏览。② 存储过程:一个预编译的语句和指令的集合,可执行查询或者数据维护工作。任务3-5关系数据库项目2 设计数据库④ 索引:用于快速检索访问数据表中的数据,以及增强数据完整性。⑤ 规则:通过绑定操作,可用于限定数据表中数据的有效值或数据类型。目前使用的数据库系统大都是关系数据库。现在关系数据库以其完备的理论基础、简单的模型和使用的便捷性等优点获得了广泛的应用。本书中的数据库模型都是关系模型。

展开更多......

收起↑

资源预览