




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、123例如:产品报价数据库例如:产品报价数据库41.5 关系的完整性规则关系的完整性规则关系数据库规范化理论关系数据库规范化理论 n一个数据库应用系统往往涉及到多方面的复杂的数据信息。n例如,在学生管理信息系统中,要涉及到学生、院系、宿舍、课程、成绩等数据。n例如,在产品销售数据库中设计到产品、类别、仓库、销售单、销售明细单等数据。n如何将所涉及到的数据组织存入到数据库中?是放在一个表中存放还是分放在几个表中存放?每个表应由哪些属性组成?怎样设计才是科学合理的呢?n解决之法是用rdb设计理论:规范化理论5关系数据库规范化理论关系数据库规范化理论 建立一个关系数据库系统,首先要考虑怎样建立数据模
2、式,即应该构造几个关系模式,每个关系模式中需要包含哪些属性等,这是数据库设计的问题。关系规范化主要讨论的就是建立关系模式的指导原则,所以有人把关系数据库规范化理论称为设计关系数据库的规范化理论。1.5 关系的完整性规则关系的完整性规则61.5.1 1.5.1 关系模型的完整性规则关系模型的完整性规则定义:是对关系的某种约束条件,通过三类完整性 约束条件描述。 (1)实体完整性: 关系中的主关键字不能为空。如学生关系中的“学号”属性值不能为空。(一个关系对应现实世界的一个实体集,关系中每个元组对应一个实体。实体都具有唯一性标识。)1.5 关系的完整性规则关系的完整性规则71.1.关系模型的完整性
3、规则关系模型的完整性规则(2)参照完整性:关系中外关键字的取值,只能是空值或外 键对应关系的主键值。外键:a是关系r中一属性,同时又是关系s主键,则a为r外键 例:学生(学号,姓名,年龄,性别,专业号) 专业(专业号,专业名称)“学号”是关系“学生”中的主关键字,输入时值不能为空。 “专业号”是关系“专业”的外键:空值:表示尚未给该学生分配专业非空值:必须是目标关系“专业”关系中某个元组的“专业号”值(1)(1)实体完整性实体完整性:1.5 关系的完整性规则关系的完整性规则8参照完整性例参照完整性例学号学号姓名姓名所在系所在系9901990299039904张三李四王五赵六计算机计算机计算机计
4、算机课程号课程号课程名课程名学时数学时数c01c02c03c04高等数学数据结构操作系统数据库100708060学号学号课程号课程号成绩成绩99019901990299049904c01c02c04c04c039080908570学生关系学生关系课程关系课程关系学习成绩关系学习成绩关系外键外键主键主键9职工号职工号 部门编号部门编号 姓名姓名9801980298039804980501010203张三张三李四李四王五王五赵六赵六钱七钱七部门编号部门编号部门名称部门名称01020304经理办公经理办公室室人事部人事部公关部公关部技术部技术部职工表职工表(r2)部门表部门表(r1)主键主键外键外键
5、参照完整性例参照完整性例外键外键的取值,可以是的取值,可以是空值空值或外键对应关系的或外键对应关系的主键值主键值。10111.1.关系模型的完整性规则关系模型的完整性规则(2)参照完整性:(1)实体完整性:(3)用户定义完整性: 通常定义除主关键字与外关键字之外的其他属性取值的约束。 前两种是任何关系数据库系统应满足的数据约束条件。用户定义完整性是用户定义具体数据库时,由具体应用环境来决定应满足的约束条件。 例: 性别(男,女) 成绩(0100)或(0-150) 课程学分(13)1.5 关系的完整性规则关系的完整性规则12【任务描述】【任务描述】将将e-r图转换为关系模式后,需对每个关系模图转
6、换为关系模式后,需对每个关系模式检查,判断是否最优,其方法是检查关系模式是否符合式检查,判断是否最优,其方法是检查关系模式是否符合第几范式。第几范式。【任务分析】【任务分析】要对每个关系模式用范式的标准进行检查,要对每个关系模式用范式的标准进行检查,从一范式,到二范式,直到满足三范式的要求,若不满足从一范式,到二范式,直到满足三范式的要求,若不满足三范式的要求,对不满足三范式的关系模式进行分解,直三范式的要求,对不满足三范式的关系模式进行分解,直到满足为止。到满足为止。【任务实现】【任务实现】项目一、学生成绩的数据库设计项目一、学生成绩的数据库设计13关系数据库规范化理论关系数据库规范化理论1
7、4关系数据库规范化理论关系数据库规范化理论15关系数据库规范化理论关系数据库规范化理论课号课号课名课名学分学分学时学时课程课程学生学生选修选修nm学号学号姓名姓名性别性别年龄年龄成绩课程课程(课号课号,课名,学分,学时,课名,学分,学时)学生学生(学号学号,姓名,性别,年龄,姓名,性别,年龄)选修选修(学号,课号学号,课号,成绩成绩)选修选修(学号,课号学号,课号,姓名,性别,课名姓名,性别,课名,成绩成绩)有人希望用一个关系替代其它两个关系有人希望用一个关系替代其它两个关系主键是:学号,课号学号,课号16关系数据库规范化理论关系数据库规范化理论这个关系存在的问题是:这个关系存在的问题是:(1
8、)数据冗余)数据冗余 当一个学生选修多门课程就会出现数据冗余。当一个学生选修多门课程就会出现数据冗余。17关系数据库规范化理论关系数据库规范化理论这个关系存在的问题是:这个关系存在的问题是:(2)更新异常)更新异常 由于数据冗余,当更新某些数据项时,就有可能一部分字段由于数据冗余,当更新某些数据项时,就有可能一部分字段修改了而另一部分字段未修改。造成数据的不一致。修改了而另一部分字段未修改。造成数据的不一致。18关系数据库规范化理论关系数据库规范化理论这个关系存在的问题是:这个关系存在的问题是:(3)插入异常)插入异常 如果某个学生未选修课程,则其学号,姓名,性别属性值无如果某个学生未选修课程
9、,则其学号,姓名,性别属性值无法插入,因为其课号为空。法插入,因为其课号为空。(主键不能为空或部分为空)(主键不能为空或部分为空)19关系数据库规范化理论关系数据库规范化理论这个关系存在的问题是:这个关系存在的问题是:(4)删除异常)删除异常 当删除所有学生成绩时,所有当删除所有学生成绩时,所有学号,姓名,性别学号,姓名,性别属性值也被属性值也被删除。删除。删除课程数据时,学生信息也被删除删除课程数据时,学生信息也被删除20 在在选修选修关系模式中,由于存在:关系模式中,由于存在:数据冗余、更新数据冗余、更新异常、插入异常、删除异常异常、插入异常、删除异常问题,我们说,问题,我们说,选修选修关
10、系关系模式不是一个好的关系模式。模式不是一个好的关系模式。 产生上述问题的原因产生上述问题的原因? 问题分析问题分析是因为关系中是因为关系中“包罗万象包罗万象”,内容太复杂了内容太复杂了。 怎样才能得到一个好的关系模式呢?解怎样才能得到一个好的关系模式呢?解决这些问题的办法就是重新设计数据库。决这些问题的办法就是重新设计数据库。21方法方法:将:将选修选修关系模式关系模式分解分解为如下的为如下的3个关个关系系课程课程(课号课号,课名,课名)学生学生(学号学号,姓名,性别,姓名,性别)选修选修(学号,课号学号,课号,成绩成绩)学生表课程表选课表经分解后,上述异常都得到了解决。经分解后,上述异常都
11、得到了解决。分解的思想:一事一地分解的思想:一事一地22经分解后,上述异常都得到了解决。经分解后,上述异常都得到了解决。23从而得出结论,一个好的关系模式应该具从而得出结论,一个好的关系模式应该具备以下四个条件:备以下四个条件:1. 尽可能少的数据冗余。尽可能少的数据冗余。2. 没有插入异常。没有插入异常。3. 没有删除异常。没有删除异常。4. 没有更新异常没有更新异常。24 为什么将为什么将选课选课关系分解为三个关系后,所有异常问关系分解为三个关系后,所有异常问题就解决了呢?题就解决了呢?这是由于关系模式中某些属性之间存在这是由于关系模式中某些属性之间存在数据依赖数据依赖。我们采。我们采用的
12、用的”分解分解”的方法,就能很好的消除关系模式中不合适的的方法,就能很好的消除关系模式中不合适的数据依赖。数据依赖。 规范化理论正是用来改造关系模式,通过分解关系模规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。异常、更新异常和数据冗余问题。 25二、函数依赖(二、函数依赖(数据依赖数据依赖)n是指关系中各属性或属性组之间的相互依赖关系是指关系中各属性或属性组之间的相互依赖关系( (决定决定关系关系) )。它是关系规范化的理论基础。它是关系规范化的理论基础。设有关系:
13、设有关系:学生(学号,姓名,性别,出生日期,系名)学生(学号,姓名,性别,出生日期,系名)在这个关生系中,显然有:在这个关生系中,显然有:学生学号确定时,该学生的姓名将唯一确定(学生学号确定时,该学生的姓名将唯一确定(学号学号姓名姓名)学生学号确定时,该学生的系名将唯一确定(学生学号确定时,该学生的系名将唯一确定(学号学号系名系名)26二、函数依赖(二、函数依赖(数据依赖数据依赖)n给定一个关系模式给定一个关系模式r r(x x,y y),),x x和和y y都是都是r r的属性或属性组,的属性或属性组,对于对于x x的每个确定值在任何时刻的每个确定值在任何时刻y y只有一个确定的值与之对应只
14、有一个确定的值与之对应,则称,则称“x x函数决定函数决定y y”,或称为,或称为“y y函数依赖于函数依赖于x x”,x x称为决定称为决定因素,记为:因素,记为:x xy y。n完全函数依赖完全函数依赖n部分函数依赖部分函数依赖n传递函数依赖传递函数依赖27二、函数依赖二、函数依赖n如果属性如果属性y y函数依赖于函数依赖于复合属性复合属性x x,且不与,且不与x x的任的任何子集函数相依赖,则称何子集函数相依赖,则称“y y完全函数依赖于完全函数依赖于x x”。 n选修(选修(学号,课号学号,课号,成绩),成绩)“学号,课号学号,课号” “成绩成绩”,是完全函数依赖,是完全函数依赖。成绩
15、完全函数依赖于完全函数依赖于学号学号+课号课号28二、函数依赖二、函数依赖n对于一个函数依赖:对于一个函数依赖:xyxy,如果存在,如果存在zxzx(z z属于属于x x),且有),且有zyzy成立,则称成立,则称“y y部分函数依赖于部分函数依赖于x x”。 nsdc(sdc(学号学号,姓名,姓名,课程号课程号,成绩,系名,系主任,成绩,系名,系主任) )n主码为复合码:学号主码为复合码:学号+ +课程号课程号n“”与主码是部分函数依赖与主码是部分函数依赖“学号,课号学号,课号” “成绩成绩”学号学号姓名姓名学号学号系名系名学号学号系主任系主任xyz29二、函数依赖二、函数依赖30三、关系的
16、规范化三、关系的规范化关系数据库的规范化过程中为不同程关系数据库的规范化过程中为不同程度的规范化要求设立的不同标准。度的规范化要求设立的不同标准。范式范式(normal form)31三、关系的规范化三、关系的规范化低 高u每种范式都规定了一每种范式都规定了一些限制约束条件。些限制约束条件。 32三、关系的规范化三、关系的规范化3334三、关系的规范化三、关系的规范化35三、关系的规范化三、关系的规范化n如果关系模式如果关系模式r r为第一范式,且为第一范式,且r r中中每个每个非主属性非主属性完全完全函数依赖函数依赖于于r r的主码的主码( (复合码复合码) ),则称,则称r r为为2nf2
17、nf模式。模式。解决方法:消除部分函数依赖。解决方法:消除部分函数依赖。分解分解n下列关系模式是下列关系模式是1nf1nf,是否是,是否是2nf2nf?为什么?为什么?scdscd(学号学号,姓名,姓名,课程号课程号,成绩,系名,系主任),成绩,系名,系主任)n主码为复合码:学号主码为复合码:学号+ +课程号课程号36三、关系的规范化三、关系的规范化n把关系模式中对主码完全函数依赖的非主属性与决定它们的主码把关系模式中对主码完全函数依赖的非主属性与决定它们的主码放在一个关系模式中。放在一个关系模式中。n把对主码部分函数依赖的非主属性和决定它们的主属性放在一个把对主码部分函数依赖的非主属性和决定
18、它们的主属性放在一个关系模式中。关系模式中。n检查分解后的新模式,如果仍不是检查分解后的新模式,如果仍不是2nf2nf,则继续按照前面的方法,则继续按照前面的方法进行分解,直到达到要求。进行分解,直到达到要求。nscsc(学号学号,课程号课程号,成绩成绩)nsdsd(学号学号,姓名,系名,系主任),姓名,系名,系主任)scd(学号学号,姓名姓名,课程号课程号,成绩,成绩,系名,系主任系名,系主任)37三、关系的规范化三、关系的规范化4. 第三范式第三范式(3nf)38三、关系的规范化三、关系的规范化n把直接对主码函数依赖的非主属性与决定它们的主码放在一个把直接对主码函数依赖的非主属性与决定它们
19、的主码放在一个关系模式中。关系模式中。n把造成传递函数依赖的决定因素连同被它们决定的属性放在一把造成传递函数依赖的决定因素连同被它们决定的属性放在一个关系模式中。个关系模式中。n检查分解后的新模式,如果不是检查分解后的新模式,如果不是3nf3nf,则继续按照前面的方法进,则继续按照前面的方法进行分解,直到达到要求。行分解,直到达到要求。nsdsd(学号学号,姓名,系名),姓名,系名)nsdsd(系名系名,系主任),系主任)sd(学号学号,姓名,系名,系主任),姓名,系名,系主任)4.第三范式第三范式(3nf)39三、关系的规范化三、关系的规范化非结构化关系非结构化关系1nf2nf3nf消除多属性值消除多属性值消除非主属性对码的消除非主属性对码的部分函数依赖部分函数依赖消除非主属性对码的消除非主属性对码的传递函数依赖传递函数依赖 在实际应用中,最有价值的是3nf,在进行关系模式的设计时,通常分解到3nf就足够了4041实例实例1 1:判断以下的关系是否满足:判断以下的关系是否满足1nf1nf的要求的要求联系电话是否可再分?联系电话是否可再分?学生情况关系学生情况关系学生情况关系学生情况关系提示:提示:关键是判断,关系模式中的所有属性都是不可再分的。关键是判断,关系模式中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重庆市人民医院病理科室管理考核
- 中国液体石蜡项目创业投资方案
- 2025年中国钼肥项目创业投资方案
- 2025年数码多联空调机组融资投资立项项目可行性研究报告(咨询)
- 中国口气清新剂项目创业计划书
- 2025年铝单板幕墙项目可行性研究报告模板范文
- 中国塔吊标准节行业市场前景预测及投资价值评估分析报告
- 黄磷生产安全管理培训课件
- 复合海绵布项目可行性研究报告立项申请报告模板
- 大单元背景下的历史跨学科教学整合研究-以统编版历史八年上册第16
- 地球科学概论-专业课笔记
- 贝克-常伟汽车后视镜电加热薄膜技术
- 建设项目环境影响评价收费标准
- 大学生素质教育主题班会课件
- 四年级劳动教育-学做水果拼盘(课件)
- 1二年级上册小学生经典诵读校本课程教材
- 2021年吉县社区工作者招聘笔试题及答案解析
- 城市轨道交通乘客服务课件(完整版)
- 2022年公务员申论答题标准格子纸Word版A4打印版
- 农产品食品检验员理论知识竞赛题库
- 新高考英语读后续写——故事编写思路
评论
0/150
提交评论