数据概念模型及关系模型设计.ppt

上传人:小飞机 文档编号:6050228 上传时间:2023-09-18 格式:PPT 页数:63 大小:994KB
返回 下载 相关 举报
数据概念模型及关系模型设计.ppt_第1页
第1页 / 共63页
数据概念模型及关系模型设计.ppt_第2页
第2页 / 共63页
数据概念模型及关系模型设计.ppt_第3页
第3页 / 共63页
数据概念模型及关系模型设计.ppt_第4页
第4页 / 共63页
数据概念模型及关系模型设计.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《数据概念模型及关系模型设计.ppt》由会员分享,可在线阅读,更多相关《数据概念模型及关系模型设计.ppt(63页珍藏版)》请在三一办公上搜索。

1、第4章 数据概念模型及关系模型设计,【知识框架】本章知识内容为数据库应用系统开发流程中需求分析、概念模型设计和逻辑模型设计,学习内容知识框架如图4-1所示。,第4章 数据概念模型及关系模型设计,总项目:学生选课管理系统数据模型设计总项目概述:学生学籍管理系统包括班级、学生、课程、教师等实体,含有学生选课管理子模块、学生档案管理子模块、学生成绩管理子模块、课程管理子模块、教师授课管理子模块、教师档案管理子模块等,其中学生选课子模块中包含“学生”和“课程”两个实体,在“学生”和“课程”之间,学生通过“选课”与“课程”发生联系,因此把“选修”确定为联系类型,并且“学生”和“课程”之间是m:n联系。,

2、任务1 概念模型设计,1.1任务情境 为“学生选课管理系统”设计一个ER模型12.任务实现(1)首先确定实体,本题有两个实体类型:学生s,课程c。(2)确定联系。实体s与实体c之间有联系,且为m:n联系(多对多联系),命名为sc。(3)确定实体和联系的属性。实体学生s的属性有:学号sno,班级class,姓名sname,性别ssex,出生日期birthday,地址address,电话tel,邮箱email,其中实体标识符为sno(实体的主码);实体课程c的属性有:课程编号cno,课程名称cname,学分credit,其中实体标识符为cno(实体的主码);联系选课sc的属性是某学生选修某课程的成

3、绩score。利用E-R方法画出“学生选课管理系统”ER图,如图4-2所示。,4,图4-2“学生选课管理系统”ER图,任务1 概念模型设计,5,数据库设计的任务是针对特定的应用需求和环境,创建一个性能良好的数据库模式,建立数据库,并基于数据库开发及其应用软件系统,使系统能有效地收集、存贮和管理数据,并对数据进行处理和加工。一、数据库设计概述数据库设计步骤分为6个阶段:,4.1 数据库设计的要求和步骤,1.需求分析阶段进行数据库设计首先必须准确地了解与分析用户需求(包括数据和处理),需求分析是整个设计过程的基础,是最困难、最耗时间的一步。需求分析做得不好,甚至会导致整个数据库设计返工重做。,6,

4、2.概念结构设计阶段概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型(实体模型也叫概念模型)。4.逻辑结构设计阶段逻辑结构设计是将概念模型转换为某个DBMS所支持的数据模型(关系模型),并对其进行优化。4.数据库物理设计阶段数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存贮结构和存贮方法)。,4.1 数据库设计的要求和步骤,7,5.数据库实施阶段运用DBMS提供的数据语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。6.数据库运行和维护阶段数据库应用系统经过试运行之后

5、,即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整和修改。设计一个完善的数据库应用系统是不可能一蹴而就的,它往往是上述6个阶段的不断反复的过程。,4.1 数据库设计的要求和步骤,8,4.2 概念模型与数据模型,现实世界是存在于人脑之外的客观世界,如何使用数据来解释和认识现实世界,则需要相应手段进行描述。模型是对现实世界的模拟和抽象。船模、航模等都是对现实世界事物的一种模拟。数据模型也是一种模型,它是对现实世界问题的数据特征的描述。,一、三个世界,9,1.现实世界泛指存在于人们头脑之外的客观世界,其中存在着各种事物,事物间又具有不同的联系。为了用数据库系统来解决现实世界中的问

6、题,就必须先深入实际,把要解决的问题调查清楚,分析与问题有关的事物及其联系。关键词:事物联系2.信息世界是现实世界在人们头脑中的反映。客观事物在观念世界中称为实体,反映事物联系的是实体模型(概念模型)。关键词:实体联系概念模型4.数据世界信息世界中的信息经数字化处理形成计算机能够处理的数据,就进入了数据世界。现实世界中的实体及其相互联系被转换成数据世界中的数据及其联系,这种联系是用数据模型描述的。关键词:数据联系数据模型,4.2 概念模型与数据模型,10,因此,客观事物系信息之源,是设计数据库的出发点,也是使用数据库的最终归宿。实体模型(概念模型)与数据模型是对客观事物及其联系的两种抽象描述。

7、数据库的核心问题是数据模型,为了得到正确的模型,首先要充分了解客观事物。4.现实世界、信息世界、数据世界的关系,4.2 概念模型与数据模型,11,二、概念模型,4.2 概念模型与数据模型,现实世界中的事物在人们头脑中反映的信息世界是用文字和符号记载下来的,描述事物的术语有以下几种:1.实体(Entity)客观世界中存在的并可以相互区分的事物或概念,称为实体。实体可以是具体的,如一个学生、一本书;也可以是抽象的事件,如一场足球比赛。实体的表征:实体用型(Type)和值(Value)来表征。例如:一个学生是一个实体,学生的“学号,姓名,年龄,系别”是实体的型描述,而具体的学生:“021031001

8、,王明,20,计信系”是实体值。2.属性(Attribute)实体所具有的某一特性在信息世界中称为属性。一个实体可以由若干个属性来刻画。例:一个学生有姓名、性别、年龄等属性。属性的域:属性的取值范围称为该属性的域。每个属性都有一个值域(Domain),例:性别“男”、”女”,年龄2035;值域有类型,可以是整数,实数或字符型等。例姓名的类型为字符型,年龄的类型为整型。属性的表征:属性用型(Type)和值(Value)表征,例:学号、姓名、性别、年龄、是属性的型,而具体的021031001、王明、男、20则是属性值。,12,4.2 概念模型与数据模型,4.实体型(Entity Type)或实体的

9、描述具有相同属性的实体必然具有共同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。如,学生实体,其型的描述为:学生(学号,姓名,性别,年龄)是一个实体型。4.实体值是实体的具体实例,是属性值的集合。如,学生王明的实体值是:(021031001,王明,男,18)。属于同一实体集的实体的实体型是相同的,但实体值是不同的。5.实体集(Entity set)性质相同的同类实体的集合称为实体集。或同型实体的集合称为实体集。如,一班学生,一批书籍。6.码(键Key)能惟一标识实体集中每个实体的属性或属性组称为实体集的码(键Key)。当一个实体集中包括多个码时,通常要选定其中一个码为主

10、码,其他是候选码,实体集中不能惟一标识实体属性的叫次码。,13,4.2 概念模型与数据模型,7.实体集联系建立实体模型的一个重要任务就是要找出实体集之间的联系。常见的实体集联系有以下3种:(设A和B为两个实体集,用 矩形表示实体集,菱形表示联系)。一对一联系(1:1)如果A 中的任一实体至多对应B 中的一个实体;且B中的任一实体至多对应A中的一个实体,则称A 与B是一对一联系。例:电影院观众与座位实体集之间、乘车旅客与车票之间、病人与病床之间等都是一对一联系。,叫E 图,也称为E 模型,14,4.2 概念模型与数据模型,一对多联系(1:N)如果A 中至少有一个实体对应B中一个以上实体,且B中任

11、一实体至多对应A中一个实体,则称A对B是一对多联系。例:学校对系、班级对学生等都是一对多联系。,15,4.2 概念模型与数据模型,多对多联系(M:N)如果A中至少有一个实体对应B中一个以上实体,且B中也至少有一个实体对应A中一个以上实体,则称A与B是多对多联系。例如:学生与课程、工厂与产品、商品与顾客等都是多对多联系。,16,4.2 概念模型与数据模型,8.E-R模型E-R模型是一种语义模型,又叫E-R图、实体联系模型(EntityRelationship Approach)E-R模型的构成成分是实体集、属性和联系集(一对一、一对多、多对多)。构成方法如下:实体集用矩形框表示,框内写上实体集名

12、。实体的属性用圆或椭圆表示,其内写上属性名,并用无向边与其实体集相连。,17,4.2 概念模型与数据模型,实体集间的联系用菱形框表示,联系以适当含义命名,名字写在菱形框内,用无向连线将参加相应联系的实体矩形框分别与菱形相连,并在连线上标明联系的类型。,注意:1和M要写在对应实体矩形那边的连线上,不可写反。,18,4.2 概念模型与数据模型,19,4.2 概念模型与数据模型,例:班级、学生实体集及其联系。,实体集:学生:学号、姓名、性别、年龄;班级:班级号、班级名、人数;属性:“学号”、“班级号”分别是学生实体集和班级实体集的码或键,故其属性名有下划线。“人数”属性是派生属性(其值可以从其他相关

13、实体或属性中派生出来),其值可以通过计算该班级学生实体的数目而获得,故用虚椭圆形框表示。联系:“属于”是1对多,由于参与者“学生”在“属于”联系中是全部的,所以用双线将其与“属于”联系相连。,20,4.2 概念模型与数据模型,例:“课程”实体集、“教师”实体集及相互间的联系。,21,其中:“E-mail地址”属性是一个多值属性,故用双椭圆形框表示;“家庭地址”属性是一个复合属性,在其下面还有4个属性与其相连。“教师号”下有一下划线,表示此属性是“教师”实体的码(键)。总之:E-R模型是数据库设计人员与用户进行交互的最有效工具,用E-R模型来描述概念模非常接近人的思维,易被人理解,而且E-R模型

14、与具体的计算机系统无关,易被不具备计算机知识的最终用户接受。,4.2 概念模型与数据模型,22,人们常常首先将现实世界抽象为信息世界,然后将信息世界转换为机器世界。也就是说,首先把现实世界中的客观对象抽象为某一种信息结构,这种信息结构并不依赖于具体的计算机系统,不是某一个DBMS支持的数据模型,而是概念级的模型;然后再把概念模型转换为计算机上某一DBMS支持的数据模型。,4.2 概念模型与数据模型,概念模型小结,23,4.2 概念模型与数据模型,定义:反映实体集之间联系的模型称为模念模型,又称为实体模型。它独立于计算机系统,它是按用户的观点来描述某个业务所关心的信息结构,是对现实世界的第一层抽

15、象。数据库设计的重要任务就是建立概念(实体)模型,它是概念数据库的具体描述。在建立实体模型中,实体要逐一命名以示区别,并描述其间的各种联系。概念模型的表示:用E-R图(E-R模型、实体-联系模型)。,任务2 关系模型设计,2.1 任务情境将任务1的“学生选课管理系统”的ER模型转换为关系模型2.2 任务实现首先转换两个实体为关系。学生关系模式s(sno,class,sname,ssex,birthday,address,tel,email)课程关系模式c(cno,cname,credit)再转换一个联系为关系。选课关系模式sc(sno,cno,score)最后将具有相同码的关系合并,得出新的关

16、系模型如下表4-2所示。,25,在描述现实世界的过程中,通常将模型分为两个层次:第1是概念模型(也称信息模型、实体模型),它是对现实世界的第一层抽象,是根据用户的观点对信息建模,与计算机系统无关;第2是数据模型,是对现实世界的第二层抽象,直接与DBMS有关,这类模型有严格的形式化定义,以便于在计算机系统中实现。它通常有一组严格定义的无二义性语法和语义的数据库语言,人们可以用这种语言来定义、操作数据库中的数据。定义:一般地讲,数据模型是严格定义的概念的集合,这些概念精确地描述了系统的静态特征、动态特征和完整性约束。因此,数据模型通常由数据结构、数据操作和完整性约束三部分组成,又称为数据模型的三要

17、素。,4.3 数据模型,26,4.3 数据模型,数据模型三要素1.数据结构数据结构是所研究的对象类型的集合。它规定了如何把基本的数据项组织成较大的数据单位,以描述数据的类型、内容、性质和数据之间的相互关系。它是数据模型最基本的组成部分,规定了数据模型的静态特性。在数据库系统中通常按照数据结构的类型来命名数据模型。例如,采用层次型数据结构、网状型数据结构和关系型数据结构的数据模型分别称为层次模型、网状模型和关系模型。,27,4.3 数据模型,2.数据操作数据操作是对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及操作规则。数据库操作主要包括查询和更新(包括扦入、删除、修改)两类

18、操作。数据模型要给出这些操作确切的含义,操作规则和实现操作的语言。因此,数据操作规定了数据模型的动态特性。4.数据约束数据约束是指一组完整性规则的集合。完整性规则是对给定的数据模型中的数据及其联系所制定的约束和依存规则,用以限定符合数据模型的数据库状态以及可容许的状态改变,以保证数据库中的数据的正确性、有效性和相容性。,28,4.3 数据模型,完整性约束的定义对数据模型的动态特性做了进一步的描述与限定。因为在某些情况下,若只限定使用的数据结构及可在该结构上执行的操作,仍然不能确保数据的正确性、有效性和相容性。为此,每种数据模型都规定有通用和特殊的完整性约束条件:通用的完整性约束条件:通常把具有

19、普遍性的问题归纳成一组通用的约束规则,只有在满足给定约束规则的条件下才允许对数据库进行更新操作。例如,关系模型中通用的约束规则是实体完整性和参照完整性。特殊的完整性约束条件。把能够反映某一应用所涉及的数据所必须遵守的特定的语义约束条件定义成特殊的完整性条件。例如,关系模型中特殊的约束规则是用户定义的完整性。又例如,在实行学分制的条件下,一个学籍管理数据库中学生的修业年限限定在6年之内。,29,4.3 数据模型,常见的三种数据模型数据库系统中最常使用的数据模型是:层次模型(hierarchical model)网状模型(network model)关系模型(relational)不同的数据模型具

20、有不同的数据结构形式、操作特点。层次模型:是数据库中使用得较早的一种数据模型,30,4.3 数据模型,2.网状模型在现实世界中事物之间的联系更多的是非层次关系,用层次模型表示非树形结构是很不直接的,网状模型则可以克服这一弊病。结构是结点的连通图:,31,4.关系模型关系模型是目前最重要的、应用最广泛的一种数据模型。原因:首先,关系模型是建立在严格的数学概念基础上的,有其坚实的数学基础。其次这种数据模型被实践证明是正确有效的数据模型。数据结构在用户看来,一个关系模型的逻辑结构是一张二维表,它由行和列组成。亦即,在关系数据模型中,把二维表格称为关系(Relation)。,4.3 数据模型,32,术

21、语:字段(Field)信息世界中的“属性”一词,在数据世界中使用“数据项”一词进行描述;从数据库的角度讲,数据项就是字段;从表格的角度讲,数据项称为列,通常使用字段这一名词比较通俗。例如:学生的学号、姓名、年龄、性别就是字段的字段名,字段和属性一样,也用“型”和“值”表征。由此可见,字段、属性、数据项、列这些术语,所描述的对象是相同的,只是在不同角度,叫法不同而已。记录(Record)字段的有序集合称为记录,在关系模型中,记录称为元组;在表中,记录称为一行;在概念模型中称为实体。即实体、记录、元组和行是从不同的角度描述同一个对象。记录也由“型”和“值”来描述:记录型是字段型的集合,记录值是字段

22、值的集合。,4.3 数据模型,33,例,组成一个学生行的字段如:“学号,姓名,年龄,性别”是记录的型,而“021031002,王小艳,18,女”就是一条记录的值。表 即关系记录是字段的集合,表是记录的集合。记录的型和值构成了关系数据库的基本单位即表。显然,表也分为型和值,表的型也称为关系模式,或称为表结构,显然是由一条列属性(字段)型组成的。关系模式一般的表示是:关系名(属性1,属性2,属性n)。例:学生(学号,姓名,性别,年龄,所在系)。表的值由记录的值组成。关键字(码,键)表中能唯一确定一条记录的字段或字段组。其余为次码。主码:一个表中包括有多个码时,通常选定其中一个码为主码(Primar

23、y Key),其他的码为侯选码。,4.3 数据模型,34,域:字段的取值范围 关系数据库所谓关系数据库就是由若干个表组成的集合。亦即,关系数据库至少有一个表,才能称之为关系数据库。在关系模型中,实体集以及之间的联系都是用关系(表)来表示。即用二维表表示实体集及其属性,用二维表描述实体集间的联系。例如:关系模型中,学生、课程、学生与课程之间的联系表示为三个关系:学生(学号,姓名,性别,年龄,所在系);课程(课程号,课程名,先行课);选修(学号,课程号,成绩),4.3 数据模型,35,关系组成与性质一个关系实际上就是一个表,表是由不同的列组合而成的。例:“学生”关系由型和值组成一个表。型部分由5个

24、字段组成,每个字段有:字段名、字段类型、字段宽度。如学号字段:名“学号”,类型C(字符型),宽度8,表示最大取值范围。值部分由一条一条记录值组成。即这个表是由5个 字段和5条记录组成。字段的型、值,域都被一一描述在表中。,4.3 数据模型,36,从这个关系中可以得出一些重要的结论:表中每一列元素是类型相同的数据;列不能重名,列的顺序可以任意放置;行的顺序也可以任意,表中任意两行不能完全相同(即没有重行);表中元素是不可再分的最小数据项(描述对象属性的数据)。E模型的转换模型原主要用于数据库逻辑设计。数据库逻辑设计是由客观世界到具体DBMS所支持的数据模式的转换过程。ER模型就是插在客观世界与具

25、体DBMS所支持的模型之间的一个层次,独立于具体的DBMS。因此在实际的数据库设计过程中必须将E模型转换为具体DBMS所支持的数据模型。,4.3 数据模型,37,将ER模型转换为等效的关系数据模型的基本转换规则如下:1.把ER图中所有实体集及其属性用关系模式来表示;2.把实体集间的联系及与被联系的两实体集中的有关信息也用一个关系模式表示。具体如下:若两实体集间为多对多联系,则两实体集关系的主关键字(主码)均放入联系中作为其主关键字(主码)(当然联系关系中还可包括其它一些有用的附加信息);若是一对多联系,则可把表示“一”关系的主关键字放入表示“多”关系中作为其外来关键字(外码、外键),而无需再建

26、立联系关系。,4.3 数据模型,38,例:ER图:,4.3 数据模型,39,按规则转换为如下4个关系:课程(课程号,课程名,学分,周学时)学生(学号,姓名,年龄,性别,教师号)教师(教师号,姓名,性别,职称,课程号)选课(学号,课程号,成绩)这样就得到一个关系数据模型。关系模型要求关系必须是规范化的,即要求关系模式必须满足一定的规范条件,这些规范条件中最基本的一条就是:关系的每一个分量(字段)必须是一个不可分的数据项,也就是说,不允许表中还有表。下面表不符合要求:,4.3 数据模型,40,数据操作关系模型中常用的数据操作包括两大部分:查询操作(主要部分):选择,投影,连接,除,并,交,差等;更

27、新操作:有插入、删除和修改。操作特点:关系模型中的数据操作特点是“集合操作”方式。即操作的对象和结果都是集合(即又一个关系)。这种操作方式也称为一次一集合的方式。相应地,非关系数据模型的数据操作方式则为一次一记录的方式。完整性约束:关系模型中关系的数据操作必须满足关系的完整性约束条件。关系的完整性约束条件包括三大类:实体完整性:参照完整性:用户定义的完整性:是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。,4.3 数据模型,41,4.3 数据模型,1.实体完整性(entity integrity)规则1:实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。例:学生关系中

28、,“学号”属性是主属性,则“学号”值不能为空。学生关系的其他属性不是主属性,可以是空值。实体完整性规则是基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。例:学生选课关系“选修(学号,课程号,成绩)”中,(学号,课程号)为主码,则学号和课程号两属性都不能取空值。,42,2.参照完整性(referential integrity)现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的。这样就自然存在着关系与关系间的引用。定义:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码(Foreign

29、 key),并称基本关系R为参照关系(referencing relation),基本关系S为被参照关系(referenced relation),4.3 数据模型,43,4.3 数据模型,例1:专业实体集和学生实体集可以用下面的关系表示,其中主码用下划线标识,外码用下划线标识:专业(专业号,专业名)学生(学号,姓名,性别,年龄,专业号)这两个关系之间存在着属性的引用,即学生关系引用了专业关系的主码“专业号”。显然,学生关系中专业号值必须是确实存在的“专业”的专业号,即专业关系中有该专业的记录。这也就是说,学生关系中的某个属性的取值需要参照专业关系的属性取值。学生关系的“专业号”属性与专业关系

30、的主码“专业号”相对应,因此“专业号”属性是学生关系的外码。专业关系为被参照关系,学生关系为参照关系。,44,4.3 数据模型,例2:学生、课程、学生与课程之间的多对多联系的3个关系:学生(学号,姓名,性别,专业号,年龄);课程(课程号,课程名,学分);选修(学号,课程号,成绩)选修关系引用了学生的主码“学号”和课程关系的主码“课程号”。同样,选修关系中的学号值必须是确实存在的学生的学号,选修关系中课程号值也必须是确实存在的课程的课程号,换句话说,选修关系中某些属性的取值需要参照其他关系的属性取值。,45,参照完整性规则就是定义外码与主码之间的引用规则。参照完整性规则:若属性(或属性组)F是基

31、本关系R的外码,它与基本关系S的主码KS相对应,则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。例如:对于例1,学生关系中每个元组的专业号属性只能取下面两类值:.空值:表示尚未给该学生分配专业;.非空值:这时该值必须是专业关系中某个元组的专业号值,表示该学生不可能分配到一个不存在的专业中,即被参照关系“专业”中一定存在一个元组,它的主码值等于该参照关系“学生”中的外码值。对于例2,按照参照完整性规则,学号和课程号属性也可以取两类值:空值或目标关系中已经存在的值。但由于学号和课程号是选修关系中的主属性,按照实体完整性规则,他们均不能取空值,

32、所以选修关系中的学号和课程号属性实际上只能取相应被参照关系中已经存在的主码值。,4.3 数据模型,任务3 数据库规范化设计(略),4.1 任务情境 对于关系模型R(sno,cno,score,tno,ttel)的属性分别表示学生学号,选修课程的编号,成绩,任课教师编号和教师电话,约定“一门课程只能由一个教师带”,试判断R是否属于2NF范式。如果不是,请将该关系规范化至3NF范式。4.2 任务实现由“一门课程只能由一个教师带”可知,候选码为(sno,cno),即为关系的主属性对非主属性tno,ttel有cno(tno,ttel),则(sno,cno)(tno,ttel)为局部依赖(非主属性tno

33、,ttel局部依赖于主属性(sno,cno)),因此,关系R不属于2NF。消除有关系R中的局部依赖,所以,将关系R分解为:R1(sno,cno,score)和R2(cno,tno,ttel),消除了局部依赖(sno,cno)(tno,ttel),且R1和R2都属于2NF。消除R2中的传递依赖,tno依赖于cno,而ttel依赖于tno,所以,ttel传递依赖于cno,于是将R2分解为R21(cno,tno),R22(tno,ttel),且R21,R22都属于3NF。最终,将非2NF范式的R(sno,cno,score,tno,ttel)分解为3NF范式:R1(sno,cno,score)R21

34、(cno,tno)R22(tno,ttel),4.4-1 函数依赖与关系规范化,1.函数依赖函数依赖是用于说明一个关系中属性间的联系,包括完全函数依赖、部分函数依赖和传递函数依赖三种。设关系R中,X、Y是R的两个属性。若对于每个X值都有一个Y值与之相对应,则称Y函数依赖于X,也称属性X惟一确定属性Y,记作X Y,X称为决定因子。若X Y,Y X,则记作X Y,这种依赖称为函数依赖FD2.范式 2.范式来自于英文normal from 简称为NF。要想设计一个好的关系,必须使关系满足一定约束条件,此约束条件已经形成了规范,分成几个等级,一级比一级要求要严格。满足最低要求的关系称它属于第一范式的,

35、在此基础上又满足了某种条件,,达到第二范式标准,则称它属于第二范式的关系,如此等等,直到第五范式。一般情况下,1NF和2NF的关系存在许多缺点,实际的关系数据库一般使用3NF以上的关系。4.范式的判定条件与规范化第1范式:1NF,在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。如果一个关系的所有属性都是不可再分的数据项,则称该关系属于第一范式。第2范式:2NF,若某一关系属于1NF,且它的每一非主属性都完全依赖于主键,则称该关系属于第二范式关系。第3范式:3NF,若某一关系R属于2NF,且它的每一非主属性都不传递依赖于关键字,

36、则称该关系属于第三范式。解决办法:分解关系。,4.4-1 函数依赖与关系规范化,4.4-2 分解关系的基本原则,分解必须是无损的(即分解后不应丢失信息)分解后的关系要相互独立(避免对一个关系的修改波及另一个关系)其规范化过程如图4-13所示。,图4-13 规范化过程,50,例如:要求设计一个教学管理数据库,希望从该数据库中得到学生学号,姓名、年龄、性别,系别、系主任姓名、学生学习的课程和该课程的成绩信息。若将此信息要求设计为一个关系,则关系模式为:教学(学号,姓名,年龄,性别、系名,系主任,课程名,成绩)。可以推出此关系模式的主码为(学号,课程名),仅从关系模式上看,该关系已经包括了需要的信息

37、,如果按此关系模式建立关系,并对它进行深入分析,就会发现其中的问题所在。,4.4-3 关系规范化举例,51,4.4-3 关系规范化举例,不规范关系的实例教学关系,52,4.4-3 关系规范化举例,该关系存在着如下问题:1.数据冗余大每一个系名和系主任的名字存贮的次数等于该系的学生人数乘以每个学生选修的课程门数。学生的信息也重复出现课程门数次。2.插入异常一个新系没有招生时,系名和系主任名无法插入到数据库中,因为在这个关系模式中,主码是(学号,课程名),而这时因没有学生而使得学号无值,所以没有主属性值,关系数据库无法操作,因此引起插入异常。4.删除异常当一个系的学生都毕业了而又没招新生时,删除了

38、全部学生记录,随之也删除了系名和系主任名,这个系依然存在,而在数据库中却无法找到该系的信息,即出现了删除异常。4.更新异常若某系更换主任,数据库中该系的学生记录应全部修改,如有不慎,某些记录漏改了,则造成数据的不一致出错,即出现了更新异常。由上述可见,教学关系尽管看起来很简单,但存在的问题比较多,它不是一个合理的关系模式。,53,4.4-3 关系规范化举例,解决方法:关系模式分解。对于有问题的关系模式,可以通过模式分解的方发法使之规范化。例如:关系模式“教学”,按“一事一地”的原则分解成:“教学系”、“学生”和“选课系”3个关系。其关系模式为:教学系(系名,系主任)学生(学号,姓名,年龄,性别

39、,系名)选课(学号,课程名,成绩)教学系关系:学生关系:,54,4.4-3 关系规范化举例,选课关系:,4.4-3 对关系规范化时应考虑的问题,确定关系的各个属性中,哪些是主属性,哪些是非主属性确定所有的候选关键字选定主键;找出属性间的函数依赖必要时,可采用图示法直接在关键模式上表示函数依赖关系;根据应用特点,确定规范化到第几范式;分解必须是无损的,不得丢失信息。,56,为计信系学生成绩管理系统设计数据库,4.4 数据库设计举例,需求分析主要任务:对数据库应用系统所要处理的对象(组织、企业、部门)进行全面了解,收集用户对数据库的信息需求,处理需求,安全性和完整性需求。并以数据流程图和数据字典等

40、书面形成确定下来。其中:信息需求,指未来系统用到的所有的信息及联系。用户希望从数据库中获取什么信息,数据库中可能要存放哪些信息等;处理需求:用户希望未来系统对数据要进行什么样的处理,各种处理有无优先次序,对处理频率和响应时间有无特殊要求及处理方式(批处理,联机处理等);安全性需求:指对数据库中存放的信息的安全保密要求。哪些信息需要保密,哪些信息不需要保密,用户对需要保密的信息的权限;完整性的要求:数据库中存放的数据应满足怎样的约束条件。,57,此系统主要管理的对象是:专业、班级、学生、课程需存贮的信息包括:系部:系部代码,系部名称专业:专业代码,专业名称班级:班级代码,班级名称学生:学号,姓名

41、,性别,级别课程:课程代码,课程名称,学期各对象间的联系:系部与专业、专业与班级、班级与学生是一对多联系专业与课程是1对多关系;学生与课程之间是多对多的联系,“学习”联系的属性是:成绩,4.4 数据库设计举例,58,概念结构设计这一阶段就是E-R模型的设计,4.4 数据库设计举例,59,逻辑结构设计主要任务:逻辑结构的设计就是指设计数据库中所应包含的各个关系模式的结构,包括各关系模式的名称、每一关系模式中各属性的名称、数据类型和取值范围内容。且关系模式的规范化。系部(系部代码,系部名称)专业(专业代码,专业名称,系部代码)班级(班级代码,班级名称,专业代码)学生(学号,姓名,性别,级别,班级代

42、码)课程(课程代码,课程名称,学期,专业代码)成绩(学号,课程代码,成绩),4.4 数据库设计举例,60,物理设计主要任务:为给定的一个逻辑数据模型选择最适合应用环境的物理结构。关系数据库的物理结构主要是指数据的存取方法和存贮结构。详细了解给定的DBMS的功能和特点,特别是该DBMS所提供的物理学环境和功能及应用环境。数据库实施主要任务:是根据数据库逻辑结构设计和物理设计的结果,在实际的计算机系统中建立数据库的结构、载入数据、测试程序、对数据库应用系统进行试运行等。数据库运行和维护阶段数据库运行和维护阶段,4.4 数据库设计举例,扩展实践,实践4-1:学校里的班主任和班级之间(约定一个教师只能

43、担任一个班级的班主任)的联系。实践4-2:学校里的班主任和学生之间的联系。实践4-3:学校里的教师和学生之间的联系。实践4-4:教学管理涉及的实体有:教师:教师工号、姓名、年龄、职称;学生:学号、姓名、年龄、性别;课程:课程号、课程名、学时数。这些实体间的联系如下:一个教师只讲授一门课程,一门课程可由多个教师讲解,一个学生学习多门课程,每门课程有多个学生学习。请画出教师、学生、课程的E-R图;实践4-5:将实践4-4的E-R图转换成关系模型。实践4-6:设有图书借阅关系BR:BR(借书证号,读者姓名,单位,电话,书名,出版社,出版社地址,借阅日期)要求:对BR进行规范化到3NF。,62,谢谢!,请下课后好好复习!,下课了!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号