版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学习情景2 数据库的设计ER图的组成元素图的组成元素 ER模型是一种用图形表示数据及其联系的方法,ER模型通过ER图来表示。ER图包括三个组成元素,分别是实体、联系和属性。ER图绘制简单,图符较少,简单易懂,可以快速建立待开发系统的概念模型。ER图的组成元素图的组成元素 实体 实体(Entity)是现实世界中客观存在的,而且可以相互区别的事物或活动的抽象。例如,一个公司, 一门课程,一名学生、一次比赛 。在ER图中,实体用矩形框表示,矩形框内写明实体的名称。 ER图的组成元素图的组成元素 属性 属性(Attribute)是描述实体或联系中的一种特征。一个实体或联系通常具有多个特征,需要多个相应
2、属性来描述。 码(Key)或键是属性的一种,它是实体间相互区别的一种惟一标识。 在ER图中,属性用椭圆形表示,椭圆形内写明属性的名称,用无向边将其与相应的实体连接起来,一般用下划线标注作为主键的属性。 ER图的组成元素图的组成元素 联系 实体内部的联系(Relationship)通常指组成实体的各个属性之间的关系,实体外部的联系通常指不同实体间的关系。在ER图中联系用菱形表示,菱形内写明联系的名称,用无向边分别与实体连接起来,在无向边上注明联系的类型(1:1,1:n,m:n)如果联系有属性,则这些属性同样用椭圆表示,用无向边与联系连接起来。 ER图的组成元素图的组成元素 联系 一对一联系(On
3、e-to-One) 如果一个实体A至多与一个实体B发生关系,反之亦然,则A与B两个实体之间具有一对一联系,简单记为1:1。 ER图的组成元素图的组成元素 联系 一对多联系(One-to-Many) 如果一个实体A可以与多个(包含0个)实体B发生关系,而一个实体B至多与一个实体A发生关系,则A与B两个实体之间具有一对多联系,简单记为1:n。 ER图的组成元素图的组成元素 联系 多对多的联系(Many-to-Many) 如果一个实体A可以与多个(包含0个)实体B发生关系,而一个实体B也可以与多个(包含0个)实体A发生关系,则A与B两个实体之间具有多对多的联系,简单记为m:n。 课程ER图的组成元素
4、图的组成元素 联系 除了实体之间存在联系外,有时实体内部也可能存在联系。 ER图的组成元素图的组成元素 联系 在某些情况下,还可能出现多个实体(大于两个实体)之间存在联系,这种联系称为多元联系,这与两个实体之间的二元联系相对应。 ER图的组成元素图的组成元素 ER图实例 课程编号课程ER图的组成元素图的组成元素思考思考1. 请用ER图表示下列关系,并在实体图上标明属性。购买(顾客编号,商品编号,购买数量,购买时间)顾客(顾客编号,顾客姓名,电话,地址)商品(商品编号,商品名称,价格)2. 一个教室可以容纳多个班级上课,但是一个班级只能在一个教室上课。识别其中的实体及联系,并绘制相应的ER图。
5、实体联系模型的创建实体联系模型的创建 实体联系模型的创建过程分为两个步骤 局部ER图设计 全局ER图设计及优化实体联系模型的创建实体联系模型的创建 局部ER图设计 实体联系模型的创建实体联系模型的创建 确定范围在设计局部时首先要确定局部ER图设计的范围,规模较大的软件系统包括多个子系统。为了降低数据库设计的难度,可以先设计每个子系统的数据库,绘制局部的ER图,一个范围即对应一个相对独立的子系统 。实体联系模型的创建实体联系模型的创建 识别实体 在确定的范围内,寻找和识别实体,确定实体的键。在需求文档中根据人员、组织、物品、事件等名词来寻找实体;实体找到后,给实体取一个合适的名称,给实体正确命名
6、时,可以发现实体之间的差别;根据实体的特点,标识实体的主键。 实体在哪里?实体在哪里?实体联系模型的创建实体联系模型的创建 确定联系 对于识别出的实体,进行两两组合,判断实体之间是否存在联系,联系的类型是1:1,1:n,m:n,如果是m:n的实体,考虑是否可以分解,增加关联实体,使之成为1:n的联系。 实体联系模型的创建实体联系模型的创建 定义属性 属性是描述实体的特征和组成相同实体的属性应该具有相同的数量、名称和数据类型在实体的属性中,去掉软件系统不需要的属性必要时,需要人为地增加属性例如:当实体缺少明确的主键,需要人为地设置主键如果实体和属性之间没有明显的区别,能作为属性对待的,尽量作为属
7、性对待定义属性的基本原则是:属性是不可再分的数据项属性不能与其它实体产生联系实体联系模型的创建实体联系模型的创建 全局ER图设计及优化 局部ER图设计好后,需要将所有的局部ER图集成起来,形成一个全局ER图。实体联系模型的创建实体联系模型的创建 全局ER图设计及优化合 并 不同的局部ER图面向不同的应用,可能由不同的人进行设计或同一个人不同时间进行设计各个局部ER图可能存在许多不一致的地方,称之为冲突合并局部ER图的主要目的是消除冲突实体联系模型的创建实体联系模型的创建 全局ER图设计及优化什么是冲突?属性冲突:相同的属性在不同的ER图中属性值的类型、取值范围或单位不同。 命名冲突:相同的实体
8、或属性在不同的局部ER图中有不同的名字,不同的实体或属性有相同的名字。结构冲突:同一事物在不同的局部ER图中,有的作为实体,有的作为属性;相同的实体在不同的局部ER图中属性的个数不一致;同一实体的在局部ER图中键不同;实体间的联系在不同的局部ER图中联系的类型不同。 实体联系模型的创建实体联系模型的创建思思 考考在某数据库的设计过程中,商品价格在有些地方使用“元”为单位,有些地方使用“万元”为单位,这种不一致现象称为A. 属性冲突B. 命名冲突C. 结构冲突D. 实体冲突 实体联系模型的创建实体联系模型的创建 全局ER图设计及优化 重 构 重构的目的是消除不必要的冗余冗余属性是指可以用其他属性
9、导出的属性。冗余联系是指可以通过其他实体之间的联系导出的联系。冗余属性和冗余联系容易破坏数据库的完整性,给数据库的维护增加困难,应该予以消除。 以刚才学生信息和选课为例以刚才学生信息和选课为例: :大学生李四,是一名男生,大学生李四,是一名男生,1989.71989.7出生,就读于计算机出生,就读于计算机071071他选过计算机技术基础和程序设计基础两门课程他选过计算机技术基础和程序设计基础两门课程, ,成绩为成绩为7070和和8080E-RE-R图实例课堂实践图实例课堂实践步骤一步骤一: :确定实体确定实体(Entity)(Entity)学学 生生课课 程程E-RE-R图实例课堂实践图实例课
10、堂实践(Cont)(Cont)步骤二步骤二: :确定实体的属性和码确定实体的属性和码学学 生生课课 程程学号姓名出生年月专业班级性别课程编号课程名称课程性质学分E-RE-R图实例课堂实践图实例课堂实践(Cont)(Cont)步骤三步骤三: :确定实体之间的关系与属性确定实体之间的关系与属性学学 生生课课 程程学号姓名出生年月专业班级性别课程编号课程名称课程性质学分选课成绩mnE-RE-R图实例课堂实践图实例课堂实践(Cont)(Cont)步骤四步骤四: :将多对多转化成多个一对多将多对多转化成多个一对多学学 生生课课 程程学号姓名出生年月专业班级性别课程编号课程名称课程性质学分成绩m1选课学号
11、课程编号选择1拥有n一个实例用E-R图表示某个工厂物资管理的概念模型实体仓库:仓库: 仓库号、面积、电话号码仓库号、面积、电话号码零件零件 :零件号、名称、规格、单价、描述:零件号、名称、规格、单价、描述供应商:供应商号、姓名、地址、电话号码、帐号供应商:供应商号、姓名、地址、电话号码、帐号项目:项目号、预算、开工日期项目:项目号、预算、开工日期职工:职工号、姓名、年龄、职称职工:职工号、姓名、年龄、职称 实体之间的联系如下: (1)一个仓库可以存放多种零件,一种零件可以存放在多个仓一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。仓库和零件具有多对多的联系。用库存量来表示某库中。仓库和
12、零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。种零件在某个仓库中的数量。(2)一个仓库有多个职工当仓库保管员,一个职工只能在一个一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,仓库和职工之间是一对多的联系。职工实体型仓库工作,仓库和职工之间是一对多的联系。职工实体型中具有一对多的联系中具有一对多的联系 (3)职工之间具有领导职工之间具有领导-被领导关系。即仓库主任领导若干保管被领导关系。即仓库主任领导若干保管员。员。(4)供应商、项目和零件三者之间具有多对多的联系供应商、项目和零件三者之间具有多对多的联系ER模型与关系模型的映射模型与关系模型的映射ER模型与关系模
13、型的映射模型与关系模型的映射 概念模型(ER模型)向关系模型的转化就是将用ER图表示的实体、实体属性和实体联系映射为关系模式,具体而言就是映射为关系型数据库系统(RDBMS)所支持的数据库对象,构造系统的逻辑数据模型。ER模型与关系模型映射的目的是根据ER模型生成关系(表),并确定关系的属性(列)。ER模型与关系模型的映射模型与关系模型的映射 映射原则 实体映射 每个独立实体映射为一个关系,即二维表,关系的键即为实体的键。 学生(学号,姓名,性别,年龄,学分)学生(学号,姓名,性别,年龄,学分)学号学号姓名姓名性别性别年龄年龄学分学分 S001白玉芬女19123 S002唐嘉芝女1867 S0
14、03刘健鹏男21120 S004田 洋男1997 S005申一雅男1862 ER模型与关系模型的映射模型与关系模型的映射 映射原则 联系映射 一对一联系:在一对一联系中,两个实体转换为关系,在两实体对应的任一关系中多设一个属性作为外键(此外键是与之关联的实体的主键)。ER模型与关系模型的映射模型与关系模型的映射 映射原则 联系映射 一对一联系系主任编系主任编号号姓名姓名性别性别年龄年龄职称职称DD001李强生男46教授DD002赵德胜男42教授DD003王海洋男38高级工程师DD004刘玉明女45教授系编号系编号系名系名联系电话联系电话地址地址系主任编系主任编号号D001外语系87323123
15、BigCollege大道123号DD001D002工商系87323234BigCollege大道234号DD002D003计算机系87323688BigCollege大道688号DD003D004建筑系87323666BigCollege大道666号DD004ER模型与关系模型的映射模型与关系模型的映射 映射原则 联系映射 一对多联系:在一对多联系中,两个实体转换为关系,把“一”方实体的主键加入“多”方实体对应的关系中作为外键,若联系包含属性,则将联系的属性也加入“多”方实体对应的关系中。ER模型与关系模型的映射模型与关系模型的映射 映射原则 联系映射 一对多联系专业编号专业编号专业名专业名专
16、业带头人姓名专业带头人姓名M001日语王金宝M002英语陈龙M003阿拉伯语何炅新M004工商管理任德华学号学号姓名姓名性别性别年龄年龄专业编号专业编号S001白玉芬女19M001S002唐嘉芝女18M001S003刘健鹏男21M001S004田 洋男19M002S005申一雅男18M002S006范 力男19M003S007高 红女20M004实体联系模型的创建实体联系模型的创建思考为什么不将学生表中的学号移至专业表? ER模型与关系模型的映射模型与关系模型的映射 映射原则 联系映射 多对多联系:在多对多联系中,两个实体转换为关系,再为联系单独建立一个关系,联系的属性即为对应的关系的属性,该
17、关系中包含联系双方实体的主键,关系的主键为各实体主键的组合。ER模型与关系模型的映射模型与关系模型的映射 映射原则 联系映射 多对多联系学号学号姓名姓名性别性别年龄年龄已获学分已获学分S001白玉芬女19123S002唐嘉芝女1867S003刘健鹏男21120S004田 洋男1997课程编号课程编号课程名称课程名称开课时间开课时间学分学分C001微观经济学2009-3-12C002大学英语2009-3-14C003建筑艺术2009-3-163C004计算机网络2009-3-252学号学号课程编号课程编号考试成绩考试成绩S001C00190S001C00254S002C00367S002C001
18、67S003C00266S004C00498课程编号课程ER模型与关系模型的映射模型与关系模型的映射 映射原则 联系映射 多元联系:如果存在多元联系,则联系单独转换成一个关系,且该关系中包含各个关联实体的主键和联系的属性,关系的主键为各关联实体主键的组合。 ER模型与关系模型的映射模型与关系模型的映射 映射原则 关系合并 如果存在主键相同的关系,为了减少系统中关系表的个数,可以合并这些关系。 关系规范化范式关系规范化的目的和意义一个好的数据库设计所遵循的标准: 每个表应提供一个惟一的标识符,用来区分不同的行 每个表应当存储单个实体类型的数据 每个表不应该出现值全部相同的行(或列) 尽量避免接受
19、NULL值(空值)的列 尽量避免值重复关系规范化过程用形式更为简洁、结构更加规范的关系模式取代原有关系模式的过程关系规范化的目的和意义实例分析 将专业和系两个实体存放在一个表内majorNomajorNamemajorLeaderdepNamedepDeanNameM001日语王金宝外语系李强生M002英语陈龙外语系李强生M003阿拉伯语何炅新外语系李强生M004工商管理任德华工商系赵德胜M005金融张学斌工商系赵德胜M006国际贸易李东生工商系赵德胜M007经济学钱海波工商系赵德胜M008软件工程朱晓明计算机系王海洋M009计算机网络刘少云计算机系王海洋M010建筑学白意愿建筑系刘玉明关系规
20、范化的目的和意义实例分析数据冗余 :数据在数据库中的重复存放称为数据冗余数据冗余导致的问题:浪费存储空间可能造成数据的不一致性,产生插入、删除和更新异常增加了插入、删除和更新数据的时间majorNomajorNamemajorLeaderdepNamedepDeanNameM001日语王金宝外语系李强生M002英语陈龙外语系李强生M003阿拉伯语何炅新外语系李强生数据重复数据重复关系规范化的目的和意义实例分析插入异常 :在不规范的数据表中插入数据时,由于实体完整性约束要求主键非空的限制,将会出现一些有用数据无法插入的情况majorNomajorNamemajorLeaderdepNamedep
21、DeanNameM001日语王金宝外语系李强生M002英语陈龙外语系李强生历史系历史系张大同张大同主键不能为空,主键不能为空,插入失败插入失败关系规范化的目的和意义实例分析删除异常在不规范的数据表中,删除某条记录会将其中一部分有用数据一起删除有用数据被删除有用数据被删除majorNomajorNamemajorLeaderdepNamedepDeanNameM009计算机网络刘少云计算机系王海洋M010建筑学白意愿建筑系建筑系刘玉明刘玉明关系规范化的目的和意义实例分析更新异常在不规范的数据表中修改某条记录的特定分量,而其它记录中的等值分量不能同步更新,则会导致数据不一致majorNomajor
22、NamemajorLeaderdepNamedepDeanNameM001日语王金宝外语系李强生M002英语陈龙外语系李强生M003阿拉伯语何炅新外语系刘强生刘强生数据不一致数据不一致关系规范化的目的和意义设计数据库的方法:凭借经验和常识可以进行数据库初步设计使用一些系统方法(如:规范化理论)来降低冗余,从而使数据库设计更为合理关系规范化是数据库逻辑设计的指南,它是基于函数依赖和范式的函数依赖 数据依赖属性之间相互依赖、相互制约的关系被称为数据依赖 关系模式中的最常见的数据依赖为:函数依赖函数依赖(Functional Dependencies)学生关系(学号,姓名,性别,年龄,专业编号,已取
23、得总学分) 学号姓名学号性别 学号年龄 学号专业编号 学号已取得总学分函数依赖 函数依赖的定义已知:X和Y是关系R中两个属性(或属性组)若对于X的任何一个值,只有一个Y的值与之对应,则称Y函数依赖于X,记为:XY,X被称为决定因子 任何属性都函数依赖于候选键,所有候选键都是决定因子例 子:定义1 设RR(A1,A2,An)是一个关系模式 ( A 1 , A 2 , , A n 是 R 的 属 性 ) ,X A1,A2,An ,Y A1,A2,An ,即X和Y是R的属性子集,T1、T2是R的两个任意元组,即T1T1(A1,A2,An),T2T2(A1,A2,An),如果当T1(X)T2(X)成立
24、时,总有T1(Y)T2(Y),则称X决定Y,或称Y函数依赖于X。记为:XY。函数依赖的基本概念定义2 R,X,Y如定义1所设,如果XY成立,但对X的任意真子集X1,都有X1Y不成立,称Y完全函数依赖于X,否则,称Y部分函数依赖于X。定义3 设X,Y,Z是关系模式R的不同属性集,若XY(并且YX不成立),YZ,称X传递决定Z,或称Z传递函数依赖于X。范式 范式的定义范式(Normal Formula:NF)是表结构在优化时必须满足的一些规则最重要的范式包括:第一范式(1NF)第二范式(2NF)第三范式(3NF)Boyce-Code范式(BCNF)范式范式的特征E.F.Codd把关系模式应满足的规
25、则划分成几级,每一级称为一个范式范式的等级越高,应满足的条件也越严规范化一个低级范式的关系模式,通过分解(投影)方法可以转换成若干高一级范式的关系模式,这个过程称为规范化1NF 2NF 3NF BCNF 非规范化关系1NF2NF3NFBCNF第一范式 第一范式定义 若关系R中的每个属性(列)都是不可再分的,并且每个属性都是单值的,则称关系R满足第一范式,记为:R1NF属性不可再分:1NF中不能出现子属性属性值为单值:每个单元格中不允许出现一个以上的数据1NF是对关系的最低要求,不满足1NF的关系是非规范化的关系第一范式 实例分析 提出 / 分析问题 teacherNoteacherNamete
26、acherTitleteacherTelofficeTelhomeTelT001夏玉明讲 师8123498181231231T002李 娟教 授8123498688712136T003王筱琳讲 师8123498188245178T004刘明辉刘明浩副教授8123498186570081T005唐 勇副教授8123498283226315T006黄 洁讲 师8123498282225743T007曾 惠副教授8123498288710038T008赵文波教 授8123498688461136非规范化非规范化第一范式 实例分析 问题求解 teacherNoteacherNameteacherTit
27、leofficeTelhomeTelT001夏玉明讲 师8123498181231231T002李 娟教 授8123498688712136T003王筱琳讲 师8123498188245178T004刘明辉刘明辉副教授8123498186570081T005唐 勇副教授8123498283226315T006黄 洁讲 师8123498282225743T007曾 惠副教授8123498288710038T008赵文波教 授8123498688461136T009刘明浩刘明浩副教授8123498186570081第二范式 第二范式定义 若关系R1NF,并且每个非主属性都函数依赖于整个候选键,而不
28、是依赖于部分候选键,则称关系R满足第二范式,记为:R2NF1NF转化为2NF:优先判断主键的规范性将依赖部分键的非主属性和所依赖部分键组成一个关系将依赖整个键的非主属性和整个键组成另一个关系第二范式 实例分析 提出问题:满足1NF,不满足2NF stuNostuNamestuSexstuAgeclassNoclassCourseNameclassStartTimescoreS001白玉芬女19C001微观经济学2008-3-178S001白玉芬女19C002大学英语2008-3-167S001白玉芬女19C005操作系统2009-4-6S002唐嘉芝女18C001微观经济学2008-3-192
29、S003刘健鹏男21C006数据库原理2009-4-897S004田 洋男19C001微观经济学2008-3-166S004田 洋男19C002大学英语2008-3-165S004田 洋男19C003建筑艺术2008-3-1663S004田 洋男19C004计算机网络2008-3-2571S005申一雅男18C004计算机网络2008-3-2559S005申一雅男18C005操作系统2009-4-6S006范 力男19C005操作系统2009-4-6S007高 红女20C005操作系统2009-4-6S008张埔涛男18C005操作系统2009-4-6S009蒲惠妃女19C005操作系统200
30、9-4-6第二范式 实例分析 分析问题:插入异常:在一个学生未选择任何课程时,该学生信息不能被插入 更新异常:对于给定的学生,学号、性别、姓名和年龄重复多次;对于给定的班级,课程名称、开课时间重复多次 删除异常:当需要删除某个学生的信息时,与该学生相关的班级信息将被删除;删除班级信息时,选该班级课程的学生信息也将被删除,这种删除将造成一些信息的丢失第二范式 实例分析 问题求解stuNostuNamestuSexstuAgeS001白玉芬女19S002唐嘉芝女18S003刘健鹏男21S004田 洋男19S005申一雅男18S006范 力男19S007高 红女20S008张埔涛男18S009蒲惠妃
31、女19classNoclassCourseNameclassStartTimeC001微观经济学2008-3-1C002大学英语2008-3-1C003建筑艺术2008-3-16C004计算机网络2008-3-25C005操作系统2009-4-6C006数据库原理2009-4-8stuNoclassNoscoreS001C00178S001C00267S001C005S002C00192S003C00697S004C00166S004C00265S004C00363S004C00471S005C00459S005C005S006C005S007C005S008C005S009C005满足满足2
32、NF第二范式 思思 考考在按照2NF要求分解之后的关系模式中,确定学生表、班级表和选课表的主键和外键。 第三范式 第三范式定义 若关系R2NF,并且它的非主属性只函数依赖于候选键,而不依赖于其它非主属性,则称R满足第三范式,记为:R3NF2NF转化为3NF:将不只依赖于键的非主属性和所依赖的非主属性组成一个关系原有关系中去掉那些不只依赖于键的非主属性,剩余部分组成一个关系第三范式实例分析 提出问题:满足2NF,不满足3NFstuNostuNamestuSexstuAgemajorNomajorNamemajorLeaderS001白玉芬女19M001日语王金宝S002唐嘉芝女18M001日语王
33、金宝S003刘健鹏男21M001日语王金宝S004田 洋男19M001日语王金宝S005申一雅男18M001日语王金宝S006范 力男19M002英语陈龙S007高 红女20M002英语陈龙S008张埔涛男18M002英语陈龙S009蒲惠妃女19M003阿拉伯语何炅新第三范式实例分析 分析问题 插入异常:如果一个专业没有学生时不能插入该专业的信息更新异常:对于给定的专业,专业名称和专业带头人姓名重复多次出现,产生了数据冗余,如果一个专业的专业带头人姓名发生变更,则与该专业相关的所有记录都要更新,否则将造成同一专业其带头人不一致,引发更新异常。删除异常:当一个专业只有一个学生时,在删除该学生信息
34、的时候会将该专业的信息全部删除,造成有效数据的丢失,引发删除异常。第三范式 实例分析 问题求解stuNostuNamestuSexstuAgemajorNoS001白玉芬女19M001S002唐嘉芝女18M001S003刘健鹏男21M001S004田 洋男19M001S005申一雅男18M001S006范 力男19M002S007高 红女20M002S008张埔涛男18M002S009蒲惠妃女19M003满足满足3NFmajorNomajorNamemajorLeaderM001日语王金宝M002英语陈龙M003阿拉伯语何炅新第三范式思思 考考在按照3NF要求分解之后的关系模式中,确定学生表和
35、专业表的主键和外键。 BC范式 BC范式定义若关系R1NF,并且它的决定因子都是候选键,则称R满足BC范式,记为:RBCNFBC范式 实例分析 提出问题:满足3NF,不满足BCNFdepNodepNameproductNoaccountD001外语系P001100D001外语系P002120D001外语系P0032D001外语系P0046D002工商系P00180D002工商系P002100D003计算机系P00178D003计算机系P002160D004建筑系P00162BC范式实例分析 分析问题 该关系中存在如下函数依赖:(depNo, productNo) account(depName
36、, productNo ) accountdepNodepNamedepNamedepNo候选键包括:(depNo, productNo)和(depName,productNo)主属性包括:depNo、depName和productNo非主属性包括:accountBC范式 实例分析 分析问题 BCNF转换方法将产生函数依赖关系的主属性组成一个新关系组合剩余的属性,合并相同的元组BC范式 实例分析 问题求解depNoproductNoaccountD001P001100D001P002120D001P0032D001P0046D002P00180D002P002100D003P00178D003
37、P002160D004P00162满足满足BCNFdepNodepNameD001外语系D002工商系D003计算机系D004建筑系逆规范化 通过规范化可以分解得到一些结构简单的表,但是在查询时可能需要连接多个表,这造成了大量的数据库逻辑运算,从而降低了查询效率为了提高查询效率,可以在特定的表中引入一些额外的属性数据库设计允许存在合理的冗余逆规范化逆规范化的定义 将两个或多个满足高范式的关系模式通过自然连接,重新合并成一个满足较低范式的关系模式的过程称为逆规范化规范化和逆规范化是相互矛盾的,何时进行规范化、何时进行逆规范化、进行到什么程度,在具体的应用环境中,需要数据库设计者仔细分析和平衡逆规
38、范化需要设计者在关系中有意地引入一些冗余以改进系统的查询性能逆规范化实例分析 提出问题 stuNostuNamestuSexstuAgeS001白玉芬女19S002唐嘉芝女18stuNoCourseNoscoreS001C00178S001C00267S001C00356S002C00192CourseNoCourseNameCourseStartTimeCourseCreditC001微观经济学2008-3-12C002大学英语2008-3-14C003建筑艺术2008-3-162 计算计算stuNo= S001学生的已获学学生的已获学分,需要对三个表进行连接分,需要对三个表进行连接逆规范化
39、实例分析 分析问题 查询和计算过程在经过数据库编译后,将会变成一个比较繁琐的程序在后台运行,尤其在数据库记录非常多、用户访问量很大的情况下将会造成用户难以忍受的延迟。在表中适当增加一定冗余,可以减少数据库服务器的负荷,提高查询速度,如果需要经常查询和统计学生已获得学分,可以在原来的学生表中增加一个新的字段stuTotalCredi来表示已取得的总学分,虽然这样设计在一定程度上会导致数据的冗余,但是可以极大提高查询速度。逆规范化实例分析 问题求解stuNostuNamestuSexstuAgestuTotalCreditS001白玉芬女196S002唐嘉芝女182增加一个新列来存储学生已获总学分
40、增加一个新列来存储学生已获总学分小结设计不合理的数据库存在数据冗余、插入异常、删除异常和更新异常等一系列问题。 一个关系数据库中的关系都应满足一定的规范,才能构造出好的关系数据模式,关系规范化的目的就是实现关系数据库设计的优化。函数依赖涉及到平凡函数依赖、非平凡函数依赖、完全函数依赖、部分函数依赖、传递函数依赖等概念。 根据一个关系模式的语义,可以求出其最小函数依赖集,确定各属性之间的函数依赖关系,并求出关系的候选键。 关系模式应满足的规范化程度分为几级,每一级称为一个范式。第一范式是一个关系的最低规范化级别,第一范式要求属性不能再分,即所有的属性都是单值属性。 小结第二范式要求消除所有非主属
41、性对主属性的部分函数依赖。如果满足第一范式的关系中所有候选键都是单属性,则满足第二范式。 第三范式要求消除非主属性对主属性的传递函数依赖。在关系规范化过程中,通常是先消除传递函数依赖,再消除部分函数依赖。 BC范式要求消除关系中所有属性对候选键的部分函数依赖和传递函数依赖。如果一个关系满足第三范式,且它只有单个候选键,或者它的每个候选键都是单属性,则该关系自然达到了BC范式。 将两个或多个满足高范式的关系模式通过自然连接,重新合并成一个满足较低范式的关系模式的过程称为逆规范化。逆规范化的目的是提高查询效率,但势必会增加关系表的个数,因此需要对规范化和逆规范化进行折衷考虑,做到数据库系统整体性能
42、的最佳。 关系数据库关系数据库关系模型的基本概念 关系(Relation) 元组(Tuple) 属性(Attribute) 关键字(Key) 域(Domain) 分量 关系模式关系名(属性1,属性2,属性n)。关系数据库实现数据模型关系数据库实现数据模型什么是关系模型什么是关系模型? ?关系模型的几大基本元素和数据结构关系模型的几大基本元素和数据结构? ?用二维表格结构来表示实体及实体间联系的模型用二维表格结构来表示实体及实体间联系的模型行行元组元组学号学号姓名姓名性别性别专业班级专业班级出生年月出生年月0001张三男计算机0711987.20002李楠女计算机0731988.3(主)关键字(
43、主)关键字(主)码(主)码属性属性值域值域属性值属性值列列实体实体关系(表)关系(表)学学生生表表关系数据结构 关系(Relation)就是二维表 每个单元格中只有一个值stuNostuNamestuSexstuAgeS001白玉芬女19S002唐嘉芝女18S003刘健鹏男21S004田 洋男19S005申一雅男18关系数据结构 属性属性(Attribute) 关系中的列称为属性 stuNostuNamestuSexstuAgeS001白玉芬女19S002唐嘉芝女18S003刘健鹏男21S004田 洋男19S005申一雅男18关系数据结构 元数元数(Arity) 关系中属性的个数称为元数(列数
44、)stuNostuNamestuSexstuAgeS001白玉芬女19S002唐嘉芝女18S003刘健鹏男21S004田 洋男19S005申一雅男18元数元数=4关系数据结构 元组元组(Tuple) 关系中每一行称作一个元组,也称为记录stuNostuNamestuSexstuAgeS001白玉芬女19S002唐嘉芝女18S003刘健鹏男21S004田 洋男19S005申一雅男18关系数据结构 分量分量(Component) 元组中每一个属性值称为元组的一个分量(单元格),一个元组是由n个元组分量组成stuNostuNamestuSexstuAgeS001白玉芬女19S002唐嘉芝女18S00
45、3刘健鹏男21S004田 洋男19S005申一雅男18关系数据结构 基数基数(Cordinality) 关系中元组的个数称为基数(行数)stuNostuNamestuSexstuAgeS001白玉芬女19S002唐嘉芝女18S003刘健鹏男21S004田 洋男19S005申一雅男18基数基数=5关系数据结构 域域(Domain) 属性的取值范围和取值类型称为域性别=男,女学生年龄=10,11,12,13,14,15,28,29,30 关系数据结构 键键(Key) 键又称为码,由一个或多个属性组成候选键(Candidate Key) 在关系中能唯一标识元组的最小属性(或属性组)一个关系可能有多个
46、候选键主键(Primary Key)从候选键中任选一个来惟一标识元组一个关系只能有一个主键用户可以根据需要在候选键中选择合适的作为主键关系数据结构 思 考 指出下面关系的候选键和主键stuNostuIdentity(身份证号码)(身份证号码)stuNamestuSexstuAgeS001342245198906054522白玉芬女19S002165834199012054058唐嘉芝女18S003455245198808046027刘健鹏男21S004246248199006164311田 洋男19S005172565198911055021申一雅男18关系数据结构 键键(Key) 备用键(A
47、lternate Key) 除了主键外的其它候选键一个关系可以没有备用键,也可以有一个或多个备用键外键(Foreign Key)如果关系R1中的一个属性(或属性组),其值均取自于另一个关系R2的主键值,则称该属性(或属性组)为R1的外键关系数据结构外键外键majorNomajorNamemajorLeadermajorDepNoM001日语王金宝D001M002英语陈龙D001M003阿拉伯语何炅新D001M004工商管理任德华D002M005金融张学斌D002M006国际贸易李东生D002depNodepNamedepDeanNameD001外语系李强生D002工商系赵德胜D003计算机系王
48、海洋外键外键主键主键关系数据结构 关系模式关系模式(Relational Schema) 关系模式(表头)是对关系的描述,表示一个关系的具体结构,又称关系结构(表结构)关系模式表示方式为:关系名(属性1,属性2,属性3)例如:学生(学号,姓名,性别,年龄)关系数据结构 主属性和非主属性主属性和非主属性 包含在任何候选键中的属性都称为该关系的主属性除主属性外其他属性都是非主属性,或称为非主属性例如:学生(学号,姓名,性别,年龄)主属性主属性非主属性非主属性关系数据结构 n元关系元关系 如果关系表有n列(即n个属性),该关系是n元关系stuNostuNamestuSexstuAgeS001白玉芬女
49、19S002唐嘉芝女18S003刘健鹏男21S004田 洋男19S005申一雅男18四元关系四元关系关系数据结构 思思 考考已知教室关系表(ClassRoom)如下,确定其元数、基数、候选键、主属性和非主属性。crNocrBuildingNamecrRoomNocrNumberOfSeatCR001科教楼10160CR002科教楼10245CR003科教楼10345CR004科教楼201120CR005科教楼301160CR006科教楼30240CR007科教楼30380CR008电教楼10160CR009电教楼102100CR010电教楼10380关系模型的性质(1)关系中不允许出现相同的元
50、组。(2)关系中元组的顺序(即行序)是无关紧要的,在一个关系中可以任意交换两行的次序。(3)关系中属性的顺序是无关紧要的,即列的顺序可以任意交换。(4)同一属性名下的各个属性值必须来自同一个域,是同一类型的数据。(5)关系中各个属性必须有不同的名字,不同的属性可来自同一个域,即它们的分量可以取自同一个域。(6)关系中每一分量必须是不可分的数据项,或者说所有属性值都是原子的,是一个确定的值,而不是值的集合,也就是不允许在二维表中出现表中套表的现象。 。 关系模型的码概念候选码:关系中能够唯一地标识一个元组的属性或属性组。候选码也称为候选键,或候选关键字。一个关系上可以有多个候选码,如学号、姓名+
51、性别主码:若一个关系中有多个候选码,可选择其中一个作为主码。主码也称主键,或者关键字。一个关系有且只有一个主码,如学号。主属性:包含在主码中的各属性,如学号。非主属性:不包含在任何候选码中的属性。外码:如果一个属性或属性组不是所在关系的主码,但它与另一关系的主码对应,则称这一属性或属性组为所在关系的外码。外码也称为外键,或外关键字。例如,学生关系中的班级。关系完整性 关系完整性关系完整性 关系的完整性又称为完整性约束(Integrity Constraint, IC),是指关系模型中数据的正确性、一致性和有效性。 关系完整性 域完整性域完整性通常定义属性取值的约束。要求关系中的属性值必须具有正
52、确的数据类型、格式以及有效的范围,保证输入值的有效性。例如性别属性值只能是“男”或“女”,成绩不能为负数等。 stuNostuNamestuSexstuAgeS001白玉芬女19S002唐嘉芝女18S003刘健鹏男21S004田 洋他19S005申一雅无-20只能为正整只能为正整数数只能为只能为男男或或女女关系完整性 实体完整性实体完整性(Entity Integrity) 实体完整性又称为主键约束,实体完整性规则要求关系中的主键不能取空值。 stuNostuNamestuSexstuAgeS001白玉芬女19唐嘉芝女18S003刘健鹏男21S003田 洋男19S005申一雅男18不能为空不能
53、为空不能重复不能重复关系完整性 参照完整性参照完整性(Reference Integrity) 参照完整性约束又称为外键约束外键值可以为空外键值若不为空,则必取自于它所依赖的主键值stuNostuNamestuSexstuAgeclasssNoS001白玉芬女19C001S002唐嘉芝女18C002S003刘健鹏男21C001S004田 洋男19C003S005申一雅男18classNoclassCourseNameC001微观经济学C002大学英语C003在依赖主在依赖主键中不存在键中不存在关系完整性 用户自定义完整性用户自定义完整性(User-Defined Integrity) 用户定义
54、完整性规则是根据应用环境的要求和实际需要,针对具体的应用提出的约束条件。这些约束不是关系模型自身所要求的,而是具体应用所要求的。这样的完整性约束需要用户自己定义,故称为用户定义完整性。 关系完整性 思思 考考已知班级表和教室表如下,班级表的主键为班级编号,教室表的主键为教室编号,判断它们是否违反实体完整性约束和参照完整性约束,说明理由。班级编号班级编号课程名称课程名称开课时间开课时间教室编号教室编号C001微观经济学2009-3-1CR001C002大学英语2009-3-1CR001C003建筑艺术C004计算机网络2009-3-1CR002C004操作系统CR004C005数据库原理2009
55、-3-16CR005教室编号教室编号教学楼名称教学楼名称房间编号房间编号座位数量座位数量CR001科教楼10160CR002科教楼10245科教楼10345CR004科教楼201120关系模型的数据完整性关系模型的数据完整性问题一:问题一:如果在学生表中输入一个性别是“没没”的值,是否需要提示不能输入?问题二:问题二:对于选课表中的学号我们能够输入一个“009009”根本不存在的学号吗?数据完整性约数据完整性约束束1.1.实体完整性实体完整性2.2.域完整性域完整性3.3.参照完整性参照完整性4.4.用户定义的完整性用户定义的完整性关系数据库实现数据模型关系数据库实现数据模型(Cont)学学
56、生生课课 程程学号姓名出生年月专业班级性别课程编号课程名称课程性质学分成绩m1选课学号课程编号选择1拥有n选课课课 程程选择拥有关系模型建立课堂实践关系模型建立课堂实践课程表的关系结构组成课程表的关系结构组成选课表的关系结构组成选课表的关系结构组成思考:选课表中的学号列的值域有何要求?思考:选课表中的学号列的值域有何要求?数据的完整性编号编号姓名姓名年龄年龄民族民族部门部门1王涛33汉族人事管理部2李梅27汉族人事管理部1127李梅21133王涛1部门编码部门编码民族编码民族编码年龄年龄姓名姓名编号编号回族2汉族1民族民族民族编码民族编码市场营销部2人事管理部1部门部门部门编码部门编码存在冗余存在冗余为减少数据查找的麻烦,允许数据有一定的冗余为减少数据查找的麻烦,允许数据有一定的冗余数据的完整性存在不正确、不准确的数据,数据库存在不正确、不准确的数据,数据库“失去了完整性失去了完整性”编码编码姓名姓名地址地址销售代码销售代码11阿兰海淀黄庄菜园子AC09112东方求败海淀龙王庙鬼楼AC04315张无忌中关村大街3-201AC01113菜鸟特注海淀龙王庙树林AC04114赵可海淀龙王庙树林AC01215张无忌中关村大街2-101AC011姓名姓名不同的地址不同的地址! !数据的完整性数据完整性数据完整性 准确性准确性可靠性可靠性再
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理案例分析每日一题
- 2026虚拟现实内容开发生态构建与商业化前景分析报告
- 2026中国预制菜行业标准体系构建与冷链配送优化报告
- 2026全国房地产估价师考试(房地产估价基础与实务)历年参考题库含答案详解
- 2026全国同等学力申硕考试(政治学)历年参考题库含答案详解
- 2026保险公估从业人员资格考试历年参考题库含答案详解
- 2026住院医师规培-青海-青海住院医师规培(耳鼻咽喉科)历年参考题库含答案详解
- 2026住院医师规培-贵州-贵州住院医师规培(超声医学科)历年参考题库含答案详解
- 2026住院医师规培-湖北-湖北住院医师规培(口腔颌面外科)历年参考题库含答案详解
- 2026住院医师规培-河南-河南住院医师规培(中医儿科)历年参考题库含答案详解
- 2025贵州贵阳贵安面向退役军人选拔培养中小学“兵教师”40人笔试参考题库附答案解析
- JIS C5402-1992 电子设备用连接器的试验方法
- 人工智能通识- 课件 第四章 AI赋能工作
- 2025 小儿内分泌科肥胖症医学查房课件
- 鉴别茅台培训课件图片
- 广州市下沙村地块土壤污染状况初步调查报告地块五
- 换药术课件完整版本
- 3欢欢喜喜庆国庆 (说课稿)-部编版道德与法治二年级上册
- 冬季病虫害防治方案
- 茶文化(讲课)-课件
- 曲阜2日三孔基地尼山研学方案范文
评论
0/150
提交评论