java数据库规范化,数据库关系模式规范化
在教学中,大多实例都是主键由一列构成,所以也可以简单地说主属性与主键没有什么区别。
第三范式的定义:如果关系模式R中的所有非主属性对任何候选关键字都不存在传递依赖,则称关系R是属于第三范式的。记作R 3NF。
如:学生关系模式S1(学号,姓名,系号,系名,系地址)
(学号)为关键字,因是单属性关键字,不存在部份依赖问题,应属于第二范式。但因为:学号—>系号,系号—\>学号,系号—>系地址,因此:学号—>系地址 是通过传递依赖实现的。即候选关键字“学号”不直接函数决定于非主属性“系地址”。所以此关系不属于第三范式。应将其分解为:
SC(学号,姓名,系号)
D(系号,系名,系地址)
C(课程号,课程名,学分)
S(学号,课程号,成绩)
设计原则:“一事一地”,即一个关系反映一个实体或一个联系,不应把几样东西混合放在一起。基本关系模式切忌“大而全”,在若干个基本关系模式组成的关系模型上,根据需要可以通过自然联接导出所需要的关系。
BCNF的定义:如果一个关系R中的所有属性都不传递依赖于R的任何候选关键字,或者说关系R中的每个决定因数都是候选关键字时,则称关系R属于BCNF范式,记作R BCNF。
一个满足BCNF的关系模式有
1.所有非主属性对每一个码都是完全函数依赖。
2.所有的主属性对每一个不包含它的码,也是完全函数依赖。
3.没有任何属性完全函数依赖于非码的任何一组属性。
由于RBCNF,按定义排除了任何属性对码的传递依赖与部分依赖,所以R3NF。但是若R3NF,则R未必属于BCNF。
下面用几个例子说明属于3NF的关系模式有的属于BCNF,但有的不属于BCNF。
详细信息...
例l 关系模式SJP(S,J,P)中,S是学生,J表示课程,P表示名次。每一个学生选修每门课程的成绩有一定的名次,每门课程中每一名次只有一个学生(即没有并列名次)。由语义可得到下面的函数依赖:
(S,J)→P ,(J,P)→S
所以(S,J)与(J,P)都可以作为候选码。这两个码各由两个属性组成,而且它们是相交的。这个关系模式中显然没有属性对码传递依赖或部分依赖。所以SJP3NF,而且除(S,J)与(J,P)以外没有其它决定因素,所以SJPBCNF。
例2 关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。每一教师只教一门课。每门课有若干教师,某一学生选定某门课,就对应一个固定的教师。由语义可得到如下的函数依赖。
(S,J)→T;(S,T)→J;T→J。
这里(S,J),(S,T)都是候选码。
STJ是3NF,因为没有任何非主属性对码传递依赖或部分依赖。但STJ不是BCNF关系,因为T是决定因素,而T不包含码。
3NF的“不彻底”性表现在可能存在主属性对码的部分依赖和传递依赖。非BCNF的关系模式也可以通过分解成为BCNF。例如STJ可分解为ST(S,T)与TJ(T,J),它们都是BCNF。
一个模式中的关系模式如果都属于BCNF,那么在函数依赖范畴内,它已实现了彻底的分离,已消除了插入和删除的异常。
关系模式规范化小结
目的:规范化的目的是使结构合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新。
原则:遵从概念单一化“一事一地”的原则,即一个关系模式描述一个实体或实体间的一种联系。规范的实质就是概念单一化。
方法:将关系模式投影分解成两个或两个以上的关系模式。
要求:分解后的关系模式集合应当与原关系模式“等价”,即经过自然联接可以恢复原关系而不丢失信息,并保持属性间合理的联系。
java数据库规范化,数据库关系模式规范化相关推荐
- 关系数据库理论----如何判断关系模式规范化达到第几范式
文章目录 求关系模式最高达到第几范式的步骤 通俗理解1NF,2NF,3NF. 如何求关系模式的候选码 如何求闭包 函数依赖 求关系模式最高达到第几范式的步骤 根据给定的U和F,首先求它的候选码 根据候 ...
- 【数据库理论】关系模式的规范化与查询优化
本系列为<数据库系统原理与应用(刘先锋等著)>的读书笔记. 一,问题的提出 1,关系模式 关系模式定义:一个关系模式是一个系统,它是有一个五元组R(U,D,DOM,I,F)R(U, D, ...
- 数据库原理(关系的规范化及数据库设计)
复习函数依赖,数据规范化,范式的基本概念以及各级范式的判别标准. 判断给定的表满足哪级范式的条件. 将给定的表转换成满足特定等级范式条件的表. 根据需求确定实体,属性和联系. 将实体,属性和联系转化为 ...
- 关系模式规范化(设计范式)
目录 数据库之六大范式详解 1. 第一范式 1NF 规范化: 2. 第二范式 2NF 候选码: 主属性: 函数依赖: 判断一个关系是否属于第二范式: 改进: 3. 第三范式 3NF 改进 结论 4. ...
- 关系模式规范化举例理解:第一范式、第二范式、第三范式
参考:http://wenku.baidu.com/link?url=KzN3v3voao4ovz_izsiujMN8vMZMiArzgYbrue8tVL5L_ydc1B_6_1eEy7vfoSiO2 ...
- 【数据库】 关系模式的规范化理论----一文让你轻松理解其中奥秘
文章目录 关系模式设计中存在的问题 关系的形式化定义 数据依赖的基本概念 函数依赖 非平凡函数依赖.平凡函数依赖 完全函数依赖和部分函数依赖 传递函数依赖 关键字和超关键字 数据依赖的公理系统 函数依 ...
- 数据库题目之关系数据理论
一.选择题 1.关系规范化中的删除操作异常是指① ,插入操作异常是指② . A.不该删除的数据被删除 B.不该插入的数据被插入 C.应该删除的数据未被删除 D.应该插入的数据未被插入[答案:]①A ...
- 数据库基础 数据库设计三大范式
转载自: http://www.cnblogs.com/knowledgesea/p/3667395.html 数据库设计范式 什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的 ...
- 第4章 数据库设计---数据库原理及应用
目录 一.数据库设计方案 1. 数据库应用架构设计:单用户.集中.CS.分布 2. 数据库结构设计:概念.逻辑.物理 3. 数据库应用访问方式设计:访问方式 数据库结构设计模型 概念数据模型:概念,不 ...
最新文章
- 喜欢把代码写一行的人_我最喜欢的代码行
- HTML与XML总结
- 动态代理机制之查看一个类或接口中有哪些方法
- 连你的免疫系统都拒绝996:半夜吃东西更容易拉肚子 | Cell
- #研发解决方案介绍#基于StatsD+Graphite的智能监控解决方案
- spring中的依赖注入——构造函数注入、set方法注入( 更常用的方式)、复杂类型的注入/集合类型的注入
- 自由自在休闲食品意式手工冰淇淋 百变不离健康
- SQL语言实现金额小写转大写完整案例代码
- 导轨式网管型工业交换机优势具体在哪里呢?
- Anaconda 国内镜像源整理
- 编程java 格式_Java代码的基本格式
- java8 stream流操作
- Python2.7学习笔记-定义函数、filter/map/reduce/lambda
- Word中英语音标出现乱码情况,解决办法
- win10,在proe/creo中鼠标中键不能放大缩小
- 数据分析训练营-pandas
- oracle增加分区时报ora14036,增加分区表2009年的分区报ORA-14074错误
- 软考:头脑风暴与德尔菲法的区别(转)
- 梆梆安全:做以结果为导向的安全服务商
- GitHub上的各大高校计算机学习资源