




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库原理及应用 数据库原理及应用 An Introduction to Database System 数据库原理及应用 数据库系统概论 An Introduction to Database System 第2章关系数据库理论 数据库原理及应用 教学目标: 理解关系数模型的理论知识 理解关系数据模型的组成要素 掌握关系规范化的理论知识、实现步骤和 使用方法 数据库原理及应用 第2章关系数据库理论 2.1关系模型的基本概念 2.2关系规范化 2.3规范化小结 数据库原理及应用 第2章关系数据库理论 关系数据库是建立在集合代数基础上,应用数学 方法来处理数据库中的数据。现实世界中的各种 实体以及实体之间的各种联系均用关系模型来表 示。换句话说,关系数据库是建立在关系模型基 础上的数据库。 数据库原理及应用 2.1关系模型的基本概念 关系模型由关系数据结构、关系操作集合 、关系完整性约束三部分组成。 数据库原理及应用 2.1关系模型的基本概念 关系数据结构 SnoSnameSdeptSex 2008150001赵刚管理学院男 2008140001李梦经济学院女 2008010005刘丽媛电气学院女 二维表 属性 数据库原理及应用 2.1关系模型的基本概念 关系数据结构 SnoSnameSdeptSex 2008150001赵刚管理学院男 2008140001李梦经济学院女 2008010005刘丽媛电气学院女 二维表 元组 数据库原理及应用 2.1关系模型的基本概念 关系数据结构 SnoSnameSdeptSex 2008150001赵刚管理学院男 2008140001李梦经济学院女 2008010005刘丽媛电气学院女 二维表 男或女为SEX的域 数据库原理及应用 2.1关系模型的基本概念 严格地说,关系是一种规范化的二维表格 具有如下性质: 属性值具有原子性,不可分解。 没有重复的元组。 理论上没有行序,但是有时使用时可以有 行序。 数据库原理及应用 2.1关系模型的基本概念 在关系数据库中,码(简称码)是关系模 型的一个重要概念 。 候选码:如果一个属性集能唯一标识元组 ,且又不含有多余的属性,那么这个属性 集称为关系的候选码。 主码:如果一个关系中有多个候选码,则 选择其中的一个码为关系的主码。 数据库原理及应用 2.1关系模型的基本概念 图书编号书名出版日期出版社编号单价状态 90002910381数据库2007-10015026.00借出 84153324748数学2000-90041031.00在馆 54562285265物理2005-30016025.00借出 主码是? 数据库原理及应用 2.1关系模型的基本概念 外码:如果一个关系R中包含另一个关系S 的主码所对应的属性组F,则称此属性组F 为关系R的外码,并称关系S为参照关系, 关系R是依赖关系。 为了表示关联,可以将一个关系的主码作 为属性放入另外一个关系中,第二个关系 中的那些属性就称为外码。(生成的方法 ) 数据库原理及应用 2.1关系模型的基本概念 出版社编号出版社名电话地址 00150清华大学出版京市 00410电子工业出版京市 00160高等教育出版京市 图书编号书名出版日期出版社编号单价状态 90002910381数据库2007-10015026.00借出 84153324748数学2000-90041031.00在馆 54562285265物理2005-30016025.00借出 数据库原理及应用 2.1关系模型的基本概念 关系操作集合:主要包括查询、插入、删 除和更新数据 。 演示VF中的操作。 关系模型把存取路径向用户隐蔽起来,用 户只要指出“干什么”,不必详细说明“怎么 干”。 数据库原理及应用 2.1关系模型的基本概念 关系数据模型的完整性主要包括 域完整性 实体完整性 参照完整性 数据库原理及应用 2.1关系模型的基本概念 域完整性是对数据表中字段属性的约束, 它包括字段的值域、字段的类型及字段的 有效规则等约束,它是由确定关系结构时 所定义的字段的属性决定的。 例如:学生的性别只能取男或女,职工的 工作年限不能为负值。 请自己举例3个 数据库原理及应用 2.1关系模型的基本概念 实体完整性是对关系中的记录唯一性,也 就是主键的约束。准确地说,实体完整性 是指关系中的主属性值不能为Null且不能有 相同值。 例如:公民的身份证号不能为空或重复。 请自己举例3个 数据库原理及应用 2.1关系模型的基本概念 参照完整性是对关系数据库中建立关联关 系的数据表间数据参照引用的约束,也就 是对外键的约束。准确地说,参照完整性 是指关系中的外码必须是另一个关系的主 码有效值,或者是NULL。 例如:在图书表中的出版社编号可以取空 值或出版社表中已有的出版社编号。 请自己举例3个 数据库原理及应用 2.2关系规范化 2.2.1问题提出 2.2.2函数依赖概念 2.2.3规范化 2.2.4 案例研究 数据库原理及应用 2.2.1 问题提出 现在我们要建立一个数据库来描述学生的一些情况。 学生(用学号SNO描述),系(用系名SDEPT描述), 系负责人(用其姓名MN描述), 课程(用课程名CNAME描述) ,成绩(G). 现实世界的已知事实告诉我们 1)一个系有若干学生,但一个学生只属于一个系; 2)一个系只有一名(正职)负责人; 3)一个学生可以选修多门课程,每门课程有若干学生选修 ; 4)每个学生学习每一门课程有一个成绩。 数据库原理及应用 2.2.1问题提出 S (SNO,SDEPT,MN,CNAME,G) 问题1:如果一个系刚成立尚无学生,或者虽然有了学生但尚未安排课 程。这个系及其负责人的信息如何存入数据库? SNOSDEPT MNCNAMEG AAIS张database70 BBIS张database70 CCIS张MA60 DDIS张MA90 数据库原理及应用 2.2.1问题提出 S (SNO,SDEPT,MN,CNAME,G) 问题2:反过来,如果某个系的学生全部毕业了,我们在删除该系学生选 修课程的同时,这个系及其负责人的信息也要删除吗? SNOSDEPT MNCNAMEG AAIS张database70 BBIS张database70 CCIS张MA60 DDIS张MA90 数据库原理及应用 2.2.1问题提出 S (SNO,SDEPT,MN,CNAME,G) 问题3:每一个系负责人的姓名要与该系每一个学生的每一门功课的成 绩出现的次数一样多 ?是否浪费存储空间? SNOSDEPT MNCNAMEG AAIS张database70 BBIS张database70 CCIS张MA60 DDIS张MA90 数据库原理及应用 2.2.1问题提出 S (SNO,SDEPT,MN,CNAME,G) 问题4:某系负责人更换后,就必须逐一修改有关的每一个元组,操作 太麻烦了! SNOSDEPT MNCNAMEG AAIS张database70 BBIS张database70 CCIS张MA60 DDIS张MA90 数据库原理及应用 2.2.1问题提出 插入异常 删除异常 修改异常 冗余太大 假如我们把这个单一的模式改造一下,分成三个关 系模式,那些问题还存在吗? S(SNO,SDEPT, SNOSDEPT); SG(SNO,CNAME,G, (SNO,CNAME)G); DEPT(SDEPT,MN, SDEPTMN); 数据库原理及应用 2.2.1问题提出 插入异常 删除异常 修改异常 冗余太大 找一找问题 数据库原理及应用 2.2.2函数依赖概念 解决这些问题也要有“规矩” 数据依赖是通过一个关系中数据间值的相等与 否体现出来的数据间的相互关系,是现实世界 属性间相互关系的抽象,是数据内在的性质 数据库原理及应用 2.2.2函数依赖概念 函数依赖 定义:设有一关系模式R(A1,A2,An),X和Y 均为(A1,A2,An)的子集,对于R的值r来说 ,当其中任意两个元组u,v中对应于X的那些属 性分量的值均相等时,则有u,v中对应于Y的那 些属性分量的值也相等,称X函数决定Y,或Y 依赖于X,记为X-Y。 数据库原理及应用 2.2.2函数依赖概念 例1:有关系,学生(学号S#,姓名SN,系名 SD),子集X(学号S#),子集Y(系名SD )。 每个学生有唯一的一个学号,学生中可以有重 名的姓名,每个学生只能属于一个系,每个系 有唯一的系代号。有此,可以找出学生关系模 式中存在下列函数依赖: S#-SN;S#-SD 数据库原理及应用 2.2.2函数依赖概念 例2:有关系,学校简况(学号S#,系名SD, 系主任MN,课程CN,成绩G)。可写出函数依 赖: S#-SD;SD-MN;S#,CN-G 数据库原理及应用 2.2.2函数依赖概念 函数依赖也有类型 完全 部分 传递 数据库原理及应用 2.2.2函数依赖概念 完全函数依赖 定义:在R(U)中,如果X-Y,对于X的任意一 个真子集X,都有X不能决定Y,则称Y对X完全 函数依赖,记为XY 。 例3:对于例2中有(S#,CN)G 数据库原理及应用 2.2.2函数依赖概念 部分函数依赖 定义:在R(U)中,如果X- Y,但Y不完全函 数依赖于X,则称Y对X部分函数依赖,记为 XY 。 例4:对于例2中(S#,CN)G,但(S#,CN) SD 数据库原理及应用 2.2.2函数依赖概念 传递函数依赖 定义:在R(U)中,当且仅当X- Y,Y-Z时,称Z对X 传递函数依赖。 例5:描述学生(S#)、班级(SB)、辅导员(TN) 的关系U(S#,SB,TN)。一个班有若干学生,一个学生 只属于一个班,一个班只有一个辅导员,但一个辅导 员负责几个班。根据现实世界可得到一组函数依赖: F=S#-SB,SB-TN 学生学号决定了所在班级,所在班级决定了辅导员, 所以辅导员TN传递函数依赖于学生学号S#。 数据库原理及应用 2.2.2函数依赖概念 关键字(码) 定义:设K为R(U)中的属性或属性组合,若KU ,则称K为R的(侯选)关键字,也称为码。 若(候选)关键字多于一个,则选定其中的一 个作为主关键字。 数据库原理及应用 2.2.3规范化 为了使数据库设计的方法走向完备,人们研究了 规范化理论,指导我们设计规范的数据库模式 。按属性间依赖情况来区分,关系规范化的程 度为第一范式,第二范式,第三范式和第四范式 等。在这些定义中,高级范式根据定义属于所 有低级的范式。第三范式中的关系属于第二范 式,第二范式中的关系属于第一范式。 数据库原理及应用 2.2.3规范化 第一范式 如果关系模式R中的所有属性值都是不可再分 解的原子值,那么就称此关系R是第一范式( First Normal Form,简称1NF)的关系模式。 数据库原理及应用 2.2.3规范化 第一范式包括下列指导原则 : 数据组的每个属性只可以包含一个值 关系中的每个数组必须包含相同数量的值 关系中的每个数组一定不能相同 数据库原理及应用 2.2.3规范化 而这样的数据库表是不符合第一范式的 字段1 字段2 字段3 字段4 字段3.1字段3.2 数据库原理及应用 2.2.3规范化 第二范式 :数据库表中不存在非关键字段对任 意候选关键字段的部分函数依赖(部分函数依 赖指的是存在组合关键字中的某些字段决定非 关键字段的情况),也即所有非关键字段都完 全依赖于任意一组候选关键字。 数据库原理及应用 2.2.3规范化 假定选课关系表为SelectCourse(学号, 姓名, 年龄, 课程名称, 成绩, 学分),关键字为组合关 键字(学号, 课程名称) (学号, 课程名称) (姓名, 年龄, 成绩, 学分) 这个数据库中的表不满足第二范式,因为存在 如下决定关系: (课程名称) (学分) (学号) (姓名, 年龄) 即存在组合关键字中的字段决定非关键字的情况 。 数据库原理及应用 2.2.3规范化 讨论由于不符合2NF,这个选课关系表会存在什么问 题:? (1) 数据冗余:同一门课程由n个学生选修,“学分”就重复 n-1次;同一个学生选修了m门课程,姓名和年龄就重 复了m-1次。 (2) 更新异常:若调整了某门课程的学分,数据表中所有 行的“学分”值都要更新,否则会出现同一门课程学分不 同的情况。 (3) 插入异常:假设要开设一门新的课程,暂时还没有人 选修。这样,由于还没有“学号”关键字,课程名称和学 分也无法记录入数据库。 (4) 删除异常:假设一批学生已经完成课程的选修,这些 选修记录就应该从数据库表中删除。 数据库原理及应用 2.2.3规范化 解决方法: 分解: 学生:Student(学号, 姓名, 年龄); 课程:Course(课程名称, 学分); 选课关系:SelectCourse(学号, 课程名称, 成 绩)。 数据库原理及应用 2.2.3规范化 第三范式 :在第二范式的基础上,数据表中如 果不存在非关键字段对任意候选关键字段的传 递函数依赖则符合第三范式。 数据库原理及应用 2.2.3规范化 假定学生关系表为Student(学号, 姓名, 年龄, 所在学院, 学院地点, 学院电话),关键字为单 一关键字“学号“,因为存在如下决定关系: (学号) (姓名, 年龄, 所在学院, 学院地点, 学 院电话) 这个数据库是符合2NF的,但是不符合3NF, 因为存在如下决定关系: (学号) (所在学院) (学院地点, 学院电话) 数据库原理及应用 2.2.3规范化 它也会存在数据冗余、更新异常、插入异常和 删除异常的情况,请大家分析。 解决方法:把学生关系表分为如下两个表: 学生:(学号, 姓名, 年龄, 所在学院); 学院:(学院, 地点, 电话)。 数据库原理及应用 2.2.3规范化 鲍依斯-科得范式(BCNF) :在第三范式的 基础上,数据库表中如果不存在任何字段对任 一候选关键字段的传递函数依赖则符合第三范 式。 数据库原理及应用 2.2.3规范化 由BCNF的定义可以得到以下推论: 如果 RBCNF,则: R中所有非主属性对每一个码都是完全函数依 赖; R中所有主属性对每一个不包含它的码,都是完 全函数依赖; R中没有任何属性完全函数依赖于非码的任何 一组属性。 数据库原理及应用 2.2.3规范化 例:假设仓库管理关系表为StorehouseManage(仓库ID, 存储物品ID, 管理员ID, 数量),且有一个管理员只在一 个仓库工作;一个仓库可以存储多种物品。这个数据 库表中存在如下决定关系: (仓库ID, 存储物品ID) (管理员ID, 数量) (管理员ID, 存储物品ID) (仓库ID, 数量) 存在如下决定关系: (仓库ID) (管理员ID) (管理员ID) (仓库 ID) 即存在关键字段决定关键字段的情况,所以其不符合 BCNF范式 数据库原理及应用 2.2.3规范化 它会出现如下异常情况 :请大家分析 (1)删除异常:当仓库被清空后,所有“存储 物品ID“和“数量“信息被删除的同时,“仓库ID“ 和“管理员ID“信息也被删除了。 (2) 插入异常:当仓库没有存储任何物品时 ,无法给仓库分配管理员。 (3) 更新异常:如果仓库换了管理员,则表 中所有行的管理员ID都要修改。 数据库原理及应用 2.2.3规范化 把仓库管理关系表分解为二个关系表: 仓库管理:StorehouseManage(仓库ID, 管理 员ID); 仓库:Storehouse(仓库ID, 存储物品ID, 数量) 。 数据库原理及应用 2.2.4 案例研究 例:将表2-4所表示的关系模式规范化:表中 的列从左到右表示项目编号、项目名称、员工 编号、员工姓名、工资级别、工资数额。 project number Project name Employee number Employee name Salary catagory Salary package 100001TPMS20001JohonsA2000 100001TPMS20002ChristinB3000 100001TPMS20003KevonC4000 100002TCT20001JohonsA2000 100002TCT20004appleB3000 100003HDF20004appleB3000 数据库原理及应用 2.2.4 案例研究 第一步:是1NF吗? 这张表已经满足了第一范式的要求。 因为这张表中字段都是单一属性的,不可再分 ; 而且每一行的记录都是没有重复的; 存在主属性,而且所有的属性都是依赖于主属 性; 所有的主属性都已经定义 数据库原理及应用 2.2.4 案例研究 第2步:是2NF吗,如果不是请分解另其符合 考察表2-4, 非主属性部分依赖于主键中的 ; 非主属性,和都部分依赖于 主键中的; 数据库原理及应用 2.2.4 案例研究 存在着以下潜在问题: 数据冗余:每一个字段都有值重复; 更新异常:比如字段的值,比如对值 “TPMS“了修改,那么就要一次更新该字段的多个值; 插入异常:如果新建了一个Project,名字为TPT, 但是 还没有Employee加入,那么将 会空缺,而该字段是主键的一部分,因此将无法插入 记录; 删除异常:如果一个员工 200003, Kevin 离职了,要 将该员工的记录从表中删除,而此时相关的Salary信 息 C 也将丢失, 因为再没有别的行纪录下 Salary C的 信息。 数据库原理及应用 2.2.4 案例研究 分解 project number Project name Employee number Employee name Salary catagory Salary package 100001TPMS20001JohonsA2000 100001TPMS20002ChristinB3000 100001TPMS20003KevonC4000 100002TCT20001JohonsA2000 100002TCT20004appleB3000 100003HDF20004appleB3000 数据库原理及应用 2.2.4 案例研究 project number Project name 100001TPMS 100001TPMS 100001TPMS 100002TCT 100002TCT 100003HDF Employee number Employe e name Salary catagory Salary package 20001JohonsA2000 20002ChristinB3000 20003KevonC4000 20001JohonsA2000 20004appleB3000 20004appleB3000 这样就完成了吗? 数据库原理及应用 2.2.4 案例研究 project number Project name 100001TPMS 100001TPMS 100001TPMS 100002TCT 100002TCT 100003HDF Employee number Employee name Salary catagory Salary package 20001JohonsA2000 20002ChristinB3000 20003KevonC4000 20001JohonsA2000 20004appleB3000 20004appleB3000 Project numberEmployee number 10000120001 10000220001 10000320004 数据库原理及应用 2.2.4 案例研究 第
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年智能VOCs排放监测设备租赁及运维服务合同
- 2025年度茶楼服务员劳动合同范本(含试用期及服务品质考核标准)
- 2025年员工委派与项目成果转化合作协议范本
- 2025年西班牙语DELEC7级写作冲刺试卷:高级语法与词汇提升
- 教育技术与可持续发展目标的关联性研究
- 教育App的隐私政策国际比较研究
- 团队协作中教育心理学的应用与影响
- 2024年北京市自然资源部所属单位招聘真题
- 教育行业知识产权保护的综合策略分析
- 健康教育与教师心理调适策略
- 2025年水手理论考试题库
- 2025至2030年中国广州酒店行业市场全景调研及投资规划建议报告
- 第9课 让我们的学校更美好 第1课时(课件)2025-2026学年道德与法治三年级上册统编版
- 公路工程常规试验项目标准及检测频率取样方法全新盘点
- 稳定基金管理办法
- 2025年徐州市(中小学、幼儿园)教师招聘考试题库及答案
- 《中华医学会麻醉学分会.麻醉后监测治疗专家共识(2021版)》
- 数据安全管理员职业技能鉴定经典试题含答案
- 微多普勒技术用于低空公共安全治理的应用研究
- 打扫老人活动方案
- 船舶代理单证管理制度
评论
0/150
提交评论