第三章(3) 范式及无损分解
(完整版)数据库重要术语(中英文)

单词汇总(数据库专业一点的词汇其实主要就是每章后面review items的内容,在这里简单列一下,如果你实在没时间看书,至少这些单词要认识。
):1.数据库系统:database system(DS),database management system(DBMS)2.数据库系统(DS),数据库管理系统(DBMS)3.关系和关系数据库table= relation,column = attribute属性,domain, atomic domain, row= tuple,relational database, relation schema, relation instance, database schema, database instance;4.表=关系,列=属性属性,域,原子域,排=元组,关系型数据库,关系模式,关系实例,数据库模式,数据库实例;1.key们: super key, candidate key, primary key, foreign key, referencing relation, referencedrelation;2.超码,候选码,主码,外码,参照关系,被参照关系5.关系代数(relational algebra):selection, project, natural join, Cartesian product, set operations,union, intersect, set difference ( except\minus), Rename, assignment, outer join, grouping, tuple relation calculus6.(关系代数):选择,项目,自然连接,笛卡尔积,集合运算,集,交集,集合差(除\负),重命名,分配,外连接,分组,元组关系演算7. sql组成:DDL:数据库模式定义语言,关键字:createDML:数据操纵语言,关键字:Insert、delete、updateDCL:数据库控制语言,关键字:grant、removeDQL:数据库查询语言,关键字:select8.3.SQL语言:DDL,DML,DCL,QL,sql query structure, aggregate functions, nested subqueries,exists(as an operator), unique(as an operator), scalar subquery, assertion, index(indices), catalogs, authorization, all privileges, granting, revoking, grant option, trigger, stored procedure, stored function4.SQL语言:DDL,DML,DCL,QL,SQL查询结构,聚合函数,嵌套子查询,存在(如运营商),独特的(如运营商),标量子查询,断言指数(指数),目录,授权,所有权限,授予,撤销,GRANT OPTION,触发器,存储过程,存储函数9.表结构相关:Integrity constraints, domain constraints, referential integrity constraints10.完整性约束,域名约束,参照完整性约束5.数据库设计(ER 模型):Entity-Relationship data model, ER diagram, composite attribute,single-valued and multivalued attribute, derived attribute,binary relationship set, degree of relationship set, mapping cardinality,1-1, 1-m, m-n relationship set (one to one, one to many, many to many), participation, partial or total participation, weak entity sets, discriminator attributes, specialization and generalization6.实体关系数据模型,ER图,复合属性,单值和多值属性,派生属性,二元关系集,关系集,映射基数的程度,1-1,1-米,MN关系集合(一对一,一对多,多对多),参与部分或全部参与,弱实体集,分辨符属性,特化和概化11.函数依赖理论:functional dependence, normalization, lossless join (or lossless) decomposition,First Normal Form (1NF), the third normal form (3NF), Boyce-codd normal form (BCNF), R satisfies F, F holds on R, Dependency preservation保持依赖, Trivial, closure of a set of functional dependencies函数依赖集的闭包, closure of a set of attributes属性集闭包,Armstrong’s axioms Armstrong公理, reflexivity rule自反律, augmentation rule,增广率, transitivity传递律, restriction of F to R i ,F在Ri上的限定,canonical cover正则覆盖,extraneous attributes无关属性, decomposition algorithm分解算法.7.函数依赖,规范化,无损连接(或无损)分解,第一范式(1NF),第三范式(3NF)BC范式(BCNF),R满足F,F持有R,依赖保存,平凡,一组函数依赖封闭,一组属性,8.事务:transition, ACID properties ACID特性,并发控制系统concurrency control system,故障恢复系统recovery system,事务状态transition state, 活动的active, 部分提交的partially committed, 失败的failed, 中止的aborted, 提交的committed,已结束的terminated, 调度schedule,操作冲突conflict of operations, 冲突等价conflict equivalence,冲突可串行化conflict serializablity,可串行化顺序serializablity order,联级回滚cascading rollback,封锁协议locking protocol,共享(S)锁shared-mode lock (S-lock),排他(X)锁exclusive-mode lock (X-lock), 相容性compatibility, 两阶段封锁协议2-phase locking protocol, 意向锁intention lock, 时间戳timestamp, 恢复机制recovery scheme,日志log, 基于日志的恢复log-based recovery, 延迟的修改deferred modification, 立即的修改immediate modification, 检查点checkpoint.数据库系统DBS Database System数据库系统应用Database –system applications文件处理系统file-processing system数据不一致性data inconsistency一致性约束consistency constraint数据抽象Data Abstraction实例instance模式schema物理模式physical schema逻辑模式logical schema物理数据独立性physical data independence数据模型data model实体-联系模型entity-relationship model(E-R)关系数据模型relational data model基于对象的数据模型object-based data model半结构化数据模型semistructured data model数据库语言database language数据定义语言data-definition language数据操纵语言data-manipulation language查询语言query language元数据metadata应用程序application program规范化normalization数据字典data dictionary存储管理器storage manager查询管理器query processor事务transaction原子性atomicity故障恢复failure recovery并发控制concurrency-control两层和三层数据库体系结构two-tier/three-tier 数据挖掘data mining数据库管理员DBA database administrator表table关系relation元组tuple空值null value数据库模式database schema数据库实例database instance关系模式relation schema关系实例relation instance码keys超码super key候选码candidate key主码primary key外码foreign key参照关系referencing relation被参照关系referenced relation属性attribute域domain原子域atomic domain参照完整性约束referential integrity constraint 模式图schema diagram查询语言query language过程化语言procedural language非过程化语言nonprocedural language关系运算operations on relations选择元组selection of tuples选择属性selection of attributes自然连接natural join笛卡尔积Cartesian product集合运算set operations关系代数relational algebraSQL查询语言SQL query structureSelect 字句select clauseFrom 字句from clauseWhere 字句where clause自然连接运算natural join operationAs字句as clauseOrder by 字句order by clause相关名称(相关变量,元组变量) correlation name (correlation variable,tuple variable)集合运算set operationsUnionInterestExcept空值null values真值“unknown”truth “unknown”聚集函数aggregate functionsavg,min,max,sum,countgroup byhaving嵌套子查询nested subqueries集合比较set comparisons{《,《=,》,》=}{some,all}existsuniquelateral字句lateral clausewith字句with clause标量子查询scalar subquery数据库修改database modification删除deletion插入insertion更新updating参照完整性referential integrity参照完整性约束referential –integrity constraint 或子集依赖subset dependency可延迟的deferrable断言assertion连接类型join types内连接和外连接inner and outer join左外连接、右外连接和全外连接left 、right and full outer joinNatural 连接条件、using连接条件和on连接条件natural using and so on视图定义view definition物化视图materialized views视图更新view update事务transactions提交commit work回滚roll back work原子事务atomic transaction完整性约束integrity constraints域约束domain constraints唯一性约束unique constraintCheck 字句check clause参照完整性referential integrity级联删除cascading delete级联更新cascading updates断言assertions日期和时间类型date and time types默认值default values索引index大对象large object用户定义类型user-defined types域domains目录catalogs模式schemas授权authorization权限privileges选择select插入insert更新update所有权限all privileges授予权限granting of privileges收回权限revoking of privileges授予权限的权限privileges to privileges Grant option角色roles视图授权authorization on views执行授权execute authorization调用者权限invoker privileges行级授权row-level authorizationJDBCODBC预备语句prepared statements访问元数据accessing metadataSQL注入SQL injection嵌入式SQL embedded SQL游标cursors可更新的游标updatable cursors动态SQL dynamic SQLSQL函数SQL functions存储过程stored procedures过程化结构procedural constructs外部语言例程external language routines触发器triggerBefore 和after 触发器before and after triggers过渡变量和过渡表transition variables and tables递归查询recursive queries单调查询monotonic queries排名函数ranking functionsRankDense rankPartition by分窗windowing联机分析处理(OLAP)online analytical processing多维数据multidimensional data度量属性measure attributes维属性dimension attributes转轴pivoting数据立方体data cube切片和切块slicing and dicing上卷和下钻rollup and drill down交叉表cross-tabulation第七章实体-联系数据模型Entity-relationship data model实体和实体集entity and entity set属性attribute域domain简单和复合属性simple and composite attributes单值和多值属性single-valued and multivalued attributes空值null value派生属性derived attribute超码、候选码以及主码super key ,candidate key, and primary key 联系和联系集relationship and relationship set二元联系集binary relationship set联系集的度degree of relationship set描述性属性descriptive attributes超码、候选码以及主码super key ,candidate key, and primary key 角色role自环联系集recursive relationship setE-R图E-R diagram映射基数mapping cardinality一对一联系one-to-one relationship一对多联系one-to-many relationship多对一联系many-to-one relationship多对多联系many-to-many relationship参与participation全部参与total participation部分参与partial participation弱实体集和强实体集weak entity sets and strong entity sets分辨符属性discriminator attributes标识联系identifying relationship特化和概化specialization and generalization超类和子类superclass and subclass属性继承a ttribute inheritance单和多继承single and multiple inheritance条件定义的和用户定义的成员资格condition-defined and userdefined membership 不相交概化和重叠概化disjoint and overlapping generalization全部概化和部分概化total and partial generalization聚集aggregationUMLUML类图UML class diagram第八章E-R模型和规范化E-R model and normalization分解decomposition函数依赖functional dependencies无损分解lossless decomposition原子域atomic domains第一范式(1NF)first normal form(1NF)合法关系legal relations超码super keyR满足F R satisfies FF在R上成立F holds on RBoyce-Codd范式BCNF Boyce-Codd normal form(BCNF)保持依赖dependency preservation第三范式(3NF)third normal form(3NF)平凡的函数依赖thivial functional dependencies函数依赖集的闭包closure of a set of functional dependenciesArmstrong公理Armstrong ‘s axioms属性集闭包closure of attribute setsF在Ri上的限定restriction of F to Ri正则覆盖canonical cover无关属性extraneous attributesBCNF分解算法BCNF decomposition algorithm3NF分解算法3NF decomposition algorithm多值依赖multivalued dependencies第四范式(4NF)fourth normal form(4NF)多值依赖的限定restriction of a multivalued independency投影-连接范式(PJNF)project-join normal form(PJNF)域-码范式(DKNF)domain-key normal form(DKNF)泛关系universal relation唯一角色假设unique-role assumption 去规范化denormalization。
规范化无损分解及保持函数依赖

AB BC CD
a1
a2
b13 a3 a3
b14 b24 a4
b 21 a 2 b31 b32
无损分解的测试方法
(2)把表格看成模式R的一个关系,反复检查F中每个FD在表格中是否成立, 若不成立,则修改表格中的值。修改方法如下: 对于F中一个FD X Y ,如果表格中有两行在X值上相等,在Y值上不相等, ai 那么把这两行在Y值上也改成相等的值。如果Y值中有一个是 ,那么另一 aj aj bij 个也改成 ;如果没有 ,那么用其中一个 替换另一个值(尽量把下标 ij改成较小的数)。一直到表格不能修改为止。 (3)若修改的最后一张表格中有一行全 是a,即 a1a 2 a n ,那么称ρ 相对于F 是无损分解,否则称有损分解。 A B C D
分解成3NF模式集既无损 又保持函数依赖的方法
① 对于关系模式R和R上成立的FD集F,先求出F的最小依赖集,然后再把最小依 赖集中那些左部相同的FD用合并性合并起来。 ② 对最小依赖集中每个FD X→Y去构成一个模式XY。 ③ 在构成的模式集中,如果每个模式都不包含R的候选键,那么把候选键作为一 个模式放入模式集中。
保持函数依赖的模式分解
设关系模式R<U,F>被分解为若干个关系模式 R1<U1,F1>,R2<U2,F2>,…,Rn<Un,Fn> (其中U=U1∪U2∪…∪Un,且不存在Ui Uj,Fi为F 在Ui上的投影),若F所逻辑蕴含的函数依赖一定
也由分解得到的某个关系模式中的函数依赖Fi所逻
辑蕴含,则称关系模式R的这个分解是保持函数依
, Rk 是R
例:设关系模式R(ABCD),R分解成 {AB, BC, CD} 。如果R上成立的函数依赖 集 F1 {B A, C D},那么ρ 相对于F 是否无损分解?如果R上成立的函数依赖集 1 F2 {A B, C D} 呢? (1)构建一张k行n列的表格,每 列对应一个属性 A j 1 j n ,每行 对应一个模式 R i 1 i K 。如 果 A j在 R i 中,那么在表格的第i行 第j列处填上符号 a j ,否则填上 bij。 A B C D
第3章 关系模式设计理论

• 4.模式分解的缺点
• (1)分解后,检索操作需要做笛卡尔积或连接操作,将付出时间 代价。 • (2)有泛关系假设时,连接可能产生寄生元组,即损失了信息; 在无泛关系假设时,可能存在悬挂元组,有可能不存在泛关系。
3.3 关系模式的分解特性
• 4.无损分解的测试方法
• 算法3:有关系模式R=A1…An,F是R上成立的函数依赖集,ρ ={R1,…,Rk}是R的一个分解。判断其是否为无损分解。
数据库系统原理
第3章 关系模式设计理论
第3章 关系模式设计理论
• 3.1 关系模式的设计准则
• 3.2 函数依赖 • 3.3 关系模式的分解特性
• 3.4 范式
•Байду номын сангаас3.5 多值依赖和第四范式
3.1 关系模式的设计准则
• 关系数据库的规范化理论最早是由关系数据库的创始人 E.F.Codd提出的,后经许多专家学者进一步深入的研究 和发现,形成了一整套有关关系数据库设计的理论。 • 在该理论出现以前,层次和网状数据库设计知识遵循其模 型本身固有的原则,而无具体的理论依据,带有一定盲目 性,可能在以后的运行和使用中发生许多与想不到的问题。
3.1 关系模式的设计准则
• 2.关系模式的非形式化设计准则
• 1.关系模式的设计应尽可能只包含有直接联系的属性,不要包含有 间接联系的属性。 • 2.关系模式的设计应尽可能使得相应关系不出现插入、删除和修改 等操作异常现象。 • 3.关系模式的设计应尽可能使得相应关系中避免放置经常为空值的 属性。 • 4.关系模式的设计应尽可能使得关系的等值连接在主键和外键的属 性上进行,并且保证连接以后不会生成额外的元组。
• (1)G中每个FD的右边都是单属性; • (2)G中没有冗余的FD,即G中不存在这样的函数依赖XY,使得G{XY}与G等价; • (3)G中每个FD的左边没有冗余的属性,即G中不存在这样的函数依 赖XY,X有真子集W使得G-{XY}∪{WY}与G等价。
无损分解的测试算法_数据库原理及应用教程(第4版)(微课版)_[共2页]
![无损分解的测试算法_数据库原理及应用教程(第4版)(微课版)_[共2页]](https://img.taocdn.com/s3/m/117a822ac8d376eeafaa3123.png)
r A BC 1 11 1 21
(a)
r1
A
B
1
1
1
2
(b) 图 4-5 未丢失信息的分解
r2
A
C
1
1
(c)
(2)设 F={B→C}是 R 上的函数依赖集。图 4-6(a)所示是 R 上的一个关系 r,图 4-6(b)和图 4-6(c)所示为 r 在 AB 和 AC 上的投影 r1 和 r2,图 4-6(d)所示为 r1 >< r2。显然,此时 r1 >< r2≠r, r 在投影、连接以后比原来的元组还要多(增加了噪声),把原来的信息丢失了。这种分解不是我们 所期望的。这种分解称为“损失连接分解”。
r ABC 11 4 12 3
r1 A B 11 12
r2 A C 14 13
(a)
(b)
(c)
图 4-6 丢失信息的分解
r1,r2
ABC
自
114
然
113
连
124
接
123
(d)
从本例可以看出,分解是否具有无损性与函数依赖有直接关系。 定理 4.6 设 ρ={R1,R2,…,Rk}是关系模式 R 的一个分解,r 是 R 的任一关系,ri = ∏Ri (r) (1
≤i≤k),那么有下列性质: (1)r ⊆ mρ(r); (2)若 s=mρ(r),则ΠRi(s)=ri; (3)mρ(mρ(r))=mρ(r),这个性质称为幂等性(Idempotent)。
4.3.3 无损分解的测试算法
在把关系模式 R 分解成 ρ 以后,如何测试分解ρ是否是无损分解呢?下面给出相应的算法。 算法 4.4(无损分解的测试算法)测试一个分解 ρ 是否为无损连接分解。 输入:关系模式 R(A1,A2,…,An),F 是 R 上成立的函数依赖集,R 的一个分解 ρ={R1, R2,…,Rk}。 输出:判断 ρ 相对于 F 是否为无损连接分解。 步骤如下。 (1)构造一个 k 行 n 列的表格 Rρ,表中每一列对应一个属性 Aj(1≤j≤n),每一行对应一个模 式 Rቤተ መጻሕፍቲ ባይዱ(1≤i≤k)。如果 Aj 在 Ri 中,则在表中的第 i 行第 j 列处填上符号 aj,否则填上 bij。 (2)把表格看成模式 R 的一个关系,根据 F 中的每个函数依赖,修改表中元素的符号,其方法 如下。
数据库什么是无损分解ppt课件

缺点:(1)分解后,检索数据需要进行笛卡儿积操作,时 间复杂度较高;
(2)容易产生寄生元组; 问题:有判断无损分解的简单办法吗?
2
A BC
r
r1
r2
1 14
A BC
AB
AC
≠ ∞ 1 1 4
11
14
1 13 1 24
1 23
12
1 3 1 2 31
无损分解的定义和优缺点
定义(无损分解) : 设F是关系模式R的FD集。R分解成 ρ={R1, …, Rk}。如果对R的每一个满足F的关系r,都有:
r = PR1(r) ∞PR2(r)∞…∞PRk(r) 则称ρ相对于F是“无损分解” ,否则称ρ为“损失分解” 。
什么是无损分解
例: 将关系模式R(ABC) 分解成ρ ={AB,AC}
R上的一个关系r被ρ分解成r1和r2。
r
r1
r2
A BC
= 1 1 1
1 21
AB
11 ∞
12
AC 11
若在投影、连接后仍能恢复成原来的关系,即
未丢失信息,则称为“无损分解”。
若在投影、连接后不等于原来的关
r1 ∞ r2
系,则称为“损失分解”。
第4章 模式设计理论习题

第4章模式设计理论4.1 基本知识点4.1.1 本章重要概念(1)关系模式的冗余和异常问题。
(2)FD的定义、逻辑蕴涵、闭包、推理规则、与关键码的联系;平凡的FD;属性集的闭包;推理规则的正确性和完备性;FD集的等价;最小依赖集。
(3)无损分解的定义、性质、测试;保持依赖集的分解。
(4)关系模式的范式:1NF,2NF,3NF,BCNF。
分解成2NF、3NF模式集的算法。
(5)MVD、4NF、JD和5NF的定义。
4.1.2 本章的重点篇幅(1)教材中P148的例4.13。
(无损联接和保持FD的例子)(2)教材中P149的例4.14和P150的例4.15。
(分解成2NF和3NF的例子)4.2 教材中习题4的解答4.1 名词解释数据冗余:指同一个数据在系统中多次重复出现。
函数依赖(FD):在关系模式R(U)中,FD是形为X→Y的一个命题,只要r是R的当前关系,对r中任意两个元组t和s,都有t[X]=s[X]蕴涵t[Y]=s[Y],那么称FD X→Y在关系模式R(U)中成立。
平凡的FD:如果X→Y,且Y?X,则称X→Y是一个“平凡的FD”。
FD集F的闭包F+:被F逻辑蕴涵的函数依赖全体构成的集合,称为F的闭包,记为F+,即F+={ X →Y | F?X→Y}。
属性集X的闭包X+:从已知的FD集F使用FD推理规则推出的所有满足X→A的属性A的集合,称为X的闭包,记为X+,即X+={属性A | X→A在F+中}。
FD的逻辑蕴涵:如果从已知的FD集F能推导出X→Y成立,那么称F逻辑蕴涵X→Y,记为F ?X→Y。
FD集的等价:对于两个FD集F和G,有F+=G+,则称F和G是等价的依赖集。
最小依赖集:设F是属性集U上的FD集,Fmin是F的最小依赖集,那么Fmin应满足下列四个条件:Fmin+=F+;每个FD的右边都是单属性;Fmin中没有冗余的FD;每个FD的左边没有冗余的属性。
无损分解:设关系模式R,F是R上的FD集,ρ={R1,…,Rk }是R的一个分解。
无损分解与函数依赖的判断

一:大部分是对一个关系模式分解成两个模式的考察,分解为三个以上模式时无损分解和保持依赖的判断比较复杂,考的可能性不大,因此我们只对“一个关系模式分解成两个模式”这种类型的题的相关判断做一个总结。
以下的论述都基于这样一个前提:R是具有函数依赖集F的关系模式,(R1 ,R2)是R的一个分解。
首先我们给出一个看似无关却非常重要的概念:属性集的闭包。
令α为一属性集。
我们称在函数依赖集F下由α函数确定的所有属性的集合为F下α的闭包,记为α+ 。
下面给出一个计算α+的算法,该算法的输入是函数依赖集F和属性集α,输出存储在变量result中。
算法一:result:=α;while(result发生变化)dofor each 函数依赖β→γ in F dobeginif β∈result then result:=result∪γ;end属性集闭包的计算有以下两个常用用途:·判断α是否为超码,通过计算α+(α在F下的闭包),看α+ 是否包含了R中的所有属性。
若是,则α为R的超码。
·通过检验是否β∈α+,来验证函数依赖是否成立。
也就是说,用属性闭包计算α+,看它是否包含β。
(请原谅我用∈符号来表示两个集合之间的包含关系,那个表示包含的符号我找不到,大家知道是什么意思就行了。
)看一个例子吧,2005年11月系分上午37题:● 给定关系R(A1,A2,A3,A4)上的函数依赖集F={A1→A2,A3→A2,A2→A3,A2→A4},R的候选关键字为________。
(37)A. A1 B. A1A3 C. A1A3A4 D. A1A2A3首先我们按照上面的算法计算A1+ 。
result=A1,由于A1→A2,A1∈result,所以resul t=result∪A2=A1A2由于A2→A3,A2∈result,所以result=result∪A3=A1A2A3由于A2→A4,A2∈result,所以result=result∪A3=A1A2A3A4由于A3→A2,A3∈result,所以result=result∪A2=A1A2A3A4通过计算我们看到,A1+ =result={A1A2A3A4},所以A1是R的超码,理所当然是R的候选关键字。
3范式的解题过程

数据库规范化理论中的3范式分解方法
3范式是数据库规范化理论中的一种,它要求每个关系模式都必须满足以下条件:
1.每个属性都是不可分解的;
2.每个非主属性都完全依赖于主键,而不是部分依赖;
3.主键不依赖于其他非主属性。
4.解题过程如下:
5.确定关系模式中的主键;
6.找出所有非主属性对主键的依赖关系;
7.将非主属性分解为不可再分的子属性;
8.创建新的关系模式,将原关系模式中的非主属性作为新关系模式中的主键
的一部分,并保持原关系模式中的其他属性不变;
9.重复以上步骤,直到无法再分解为止。
10.例如,对于一个关系模式“学生-课程-成绩”,可以按照以下步骤将其转
换为3范式:
11.确定主键:学生ID和课程ID;
12.非主属性有:姓名、年龄、性别、学号、课程名称、学分、成绩;
13.将非主属性分解为不可再分的子属性:姓名、年龄、性别是不可再分的;
14.创建新的关系模式:“学生-姓名-年龄-性别”和“课程-课程名称-学分”;
15.重复以上步骤,直到无法再分解为止。
最终得到的关系模式为:“学生-姓
名-年龄-性别”和“课程-课程名称-学分”以及“学生-课程-成绩”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
× × × ×
结论:2NF可以消除一些1NF中存在的更新异常, 但不能彻底消除更新异常
9
范式:2NF、3NF和BCNF
5.
第三范式(3NF)
第三范式(Third Normal Form,简称3NF) —— 若 R∈2NF ,且每一个非主属性不传递函数依赖 于键,则R∈3NF。
S-C
G
S# C#
S-L
因此,S-L-C分解成了三个BCNF:S-C(S#,C#,G), S-D(S#,SD),D-L(SD,SL)。
15
范式:2NF、3NF和BCNF
如果一个模式属 于BCNF,在函数 依赖的范畴内, 彻底消除了更新 异常吗? 如果一个模式属 于BCNF,在数据 依赖的范畴内, 彻底消除了更新 异常吗?
20
4
范式:2NF、3NF和BCNF
2.
实例
例,有一个关系模式S-L-C(S#,SD,SL,C#,G), 其中S#为学生的学号,SD为学生所在系,SL为学生的 住处,并且每个系的学生住在同一个地方,C#为课程 号,G为成绩。这里键为(S#,C#)。 函数依赖有:
F (S#,C#)→ G S# → SD,
8
范式:2NF、3NF和BCNF
4. 第二范式(2NF)
在S-L(S#,SD,SL)和S-C(S#,C#,G)中
☆ 一个学生修很多课程
☆ 一个学生转系 ☆ 插入一个尚未选课的学 生信息 ☆ 一个学生只选修了一门 课,但现在决定不选了
√ √ √ √
☆ 一个系有很多学生,且 同系学生住在一个地方 ☆ 一个学生转系 ☆ 一个新系创建但新生尚 未注册 ☆ 一个系所有学生毕业了
7
范式:2NF、3NF和BCNF
4.
第二范式(2NF)
S-L
S#
G C# SL
S-C
S#
SD
分析: S-C的键为(S#,C#), S-L的键为S#,不存 在非主属性对键的部分函数依赖。 结果: S-C ∈ 2NF ; S-L ∈ 2NF
问题:
S-C和S-L中消除了1NF 中的某些更新异常,但 仍然存在更新异常
S#
SD SL
分析: S-C的键为(S#,C#),不存在非主属性对键的传递函数 依赖。S-L的键为S#,存在非主属性对键的传递函数依赖S#→SL。 结果: S-C 3NF ; S-L 3NF 分解:将S-L分解为:S-D(S#,SD)和 D-L(SD,SL)
10
范式:2NF、3NF和BCNF
第3章(4) 范式及无损分解
1
一.范式:2NF、3NF和BCNF
二. 其它设计考虑
2
范式:2NF、
3NF和BCNF
3
范式:2NF、3NF和BCNF
1.
范式(Normal Forms)
范式的定义: 关系数据库中符合某一级别的 关系模式的集合。所谓“第几范式”,是表 示关系的某一种级别,R为第几范式就可以写 成 R ∈ xNF 各范式之间的联系有 5NF 4NF BCNF 3NF 2NF 1NF 并不总是需要达到最高范式
5. 第三范式(3NF)
S-D
S#
D-L
SD SD SL
分析: S-D 的键为 S# , D-L 的键为 SD ,不存在非 主属性对键的传递函数依赖。 结果: S-D∈3NF ; D-L∈3NF 问题: 3NF存在更 S-D和D-L中消 除了前面的更 新异常吗? 新异常了吗?
11
范式:2NF、3NF和BCNF
6.
Boyce-Codd范式(BCNF)
Boyce-Codd 范 式 (Boyce-Codd Normal Form , 简 称 BCNF ) ——— R∈INF ,且每一个决定因素都包含键, 则R∈BCNF。 在S-D(S#,SD)和 D-L(SD,SL)中:
S-D ∈ BCNF, D-L ∈ BCNF
Yes
No
其它的数据 依赖也会产 生更新异常
16
其它设计考虑
17
其 它 设 计 考 虑
反规范化设计是为了提高查询 效率 进行反规范化设计后,需要采 取措施,处理可能出现的更新异 常
18
Questions?
19
问
1.
题
讨
论
实际上,进行规范化的目的是为了避免更新 异常和提高更新代价;而有时规范化产生的 高范式会降低有些查询的代价。这种说法对 吗?你在设计数据库模式时,会采取什么方 法?
所有的3NF 都是BCNF?
13
范式:2NF、3NF和BCNF
6.
Boyce-Codd范式(BCNF)
例 关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表 示课程。每一教师只教一门课。每门课有若干教师,某一学生 选定某门课,就对应一个固定的教师。 由语义可以得到函数依赖 T →J ; (S,J) →T ;(S,T) →J 键为(S,J),(S,T) 分析: (1)没有非主属性,所以,不存在非主属性对键的部分与传 递依赖,因此,STJ3NF (2)在T →J中,决定因素 T 不包含键,因此,STJBCNF
S# → SL, P (S#,C#)→ SD SD → SL,
P (S#,C#)→ SL
图示
G
S#
SD
C#
SL
5
范式:2NF、3NF和BCNF
3.
第一范式(INF)
第一范式(First Normal Form,简写为1NF) —— 如果一张表不含有多值属性(有时称为 重复字段)和内部结构(比如记录类型)的 列, 则称该表为第一范式 关系模式S-L-C(S#,SD,SL,C#,G)∈1NF 关系模式S-L-C存在更新异常、插入异常和删 除异常
6
范式:2NF、3NF和BCNF
4.
第二范式(2NF)
第二范式(Second Normal Form,简称2NF) —— 若R∈ INF,且每一个非主属性完全函数依赖于 键,则R ∈2NF。
S-L-C:
S# G C#
SD SL
分析:存在非主属性对键的部分函数依赖 结果:S-L-C∈1NF,但S-L-C ∉ 2NF 分解:将S-L-C分解为:S-L(S#,SD,SL),和S-C(S#,C#,G)
5.
第三范式(3NF)
在S-D(S#,SD)和 D-L(SD,SL)中:
☆ 一个系有很多学生,且 同系学生住在一个地方
☆ 一个学生转系 ☆ 一个新系创建但新生尚 未注册 ☆ 一个系所有学生毕业了
√
√
√ √
3NF不能 彻底消 除更新 异常
结论:NF可以消除一些2NF中存在的更新异常,
12
范式:2NF、3NF和BCNF
结论:并非所有的3NF都是BCNF
14
范式:2NF、3NF和BCNF
小结:
S-L-C
S# SD G C#
S-C
S# C#
S-D
S# SD
D-L
SD SL
G
SL
分析:S-C的键为(S#,C#),决定因素包含键; S-D的键为S#,决定因素包含键; D-L的键为SD,决定因素包含键。 结果:S-C ∈ BCNF, S-D ∈ BCNF, D-L ∈ BCNF