2007-01-17
全称量词查询 数据库规范化总结
SQL无全称量词,但可以把全称量词转化为等价的存在量词形式。
例:“查询选修全部课程的学生姓名”
(∨x)P≡!(Ex(!P))
原命题等价于:“查询这样的学生a,不存在某个课程x,这名学生没有选修”
SELECT sname
FROM Student
WHERE NOT EXISTS
(SELECT *
FROM Course
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE sno=Student.sno
AND cno=Course.cno));
规范化数据库总结几点:
第一范式(1NF):没有多值属性。
解决办法:将多值属性独立为一个表。
第二范式(2NF):R属于1NF, 且每一个非主属性完全函数依赖于码
解决办法:分解为两个关系模式,以消除这些部分函数依赖。把完全函数依赖的留下,部分函数依赖的分出去。
第三范式(3NF):属于2NF,且每一个非主属性不传递依赖于码
解决:分解为两个表,把传递依赖的中间属性和后面的属性列出去成为一个表
BCNF:属于3NF,所有主属性对每个不包含它的码也是完全函数依赖,没有任何属性完全函数依赖于非码的任何一组属性
3NF的不彻底性表现在可能存在主属性对码的部分依赖和传递依赖,而BCNF在函数依赖的范畴内, 已实现了彻底的分离, 已消除了插入和删除异常
多值依赖:
设R(U)是一个属性集U上的一个关系模式,
X、 Y和Z是U的子集,并且Z=U-X-Y。
多值依赖 X→→Y成立当且仅当:
对R的任一关系(实例)r,r 在(X,Z)上的每个值对应一组Y的值,这组值仅仅决定于X值而与Z值无关
第四范式(4NF):4NF就是限制关系模式的属性间不允许有非平凡的且非函数依赖的多值依赖
解决办法: 模式分解, 消除多值依赖
总结:关系模式中若包含多于一个概念就把他分离出去,实现概念的单一化
例:“查询选修全部课程的学生姓名”
(∨x)P≡!(Ex(!P))
原命题等价于:“查询这样的学生a,不存在某个课程x,这名学生没有选修”
SELECT sname
FROM Student
WHERE NOT EXISTS
(SELECT *
FROM Course
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE sno=Student.sno
AND cno=Course.cno));
规范化数据库总结几点:
第一范式(1NF):没有多值属性。
解决办法:将多值属性独立为一个表。
第二范式(2NF):R属于1NF, 且每一个非主属性完全函数依赖于码
解决办法:分解为两个关系模式,以消除这些部分函数依赖。把完全函数依赖的留下,部分函数依赖的分出去。
第三范式(3NF):属于2NF,且每一个非主属性不传递依赖于码
解决:分解为两个表,把传递依赖的中间属性和后面的属性列出去成为一个表
BCNF:属于3NF,所有主属性对每个不包含它的码也是完全函数依赖,没有任何属性完全函数依赖于非码的任何一组属性
3NF的不彻底性表现在可能存在主属性对码的部分依赖和传递依赖,而BCNF在函数依赖的范畴内, 已实现了彻底的分离, 已消除了插入和删除异常
多值依赖:
设R(U)是一个属性集U上的一个关系模式,
X、 Y和Z是U的子集,并且Z=U-X-Y。
多值依赖 X→→Y成立当且仅当:
对R的任一关系(实例)r,r 在(X,Z)上的每个值对应一组Y的值,这组值仅仅决定于X值而与Z值无关
第四范式(4NF):4NF就是限制关系模式的属性间不允许有非平凡的且非函数依赖的多值依赖
解决办法: 模式分解, 消除多值依赖
总结:关系模式中若包含多于一个概念就把他分离出去,实现概念的单一化
发表评论
- 浏览: 16146 次
- 性别:

- 来自: 杭州

- 详细资料
搜索本博客
我的相册
svP4
共 10 张
共 10 张
最近加入圈子
最新评论
-
虎书P8问题(1)
上面的代码有缺憾,没有考虑“如果print语句中的expList里面还有prin ...
-- by pf_miles -
如果我们不上大学,那么去 ...
我的经历很有限,我很庆幸,这让我对新东西如饥似渴. 但我年年都回答"我该报考哪所 ...
-- by pf_miles -
毕业宣告
太神奇.不懂... - -#
-- by Rooock -
如果我们不上大学,那么去 ...
怎么说呢?这个说法也很不错,但只能算是你个人有限的经历范围之内产生的一种观点而已 ...
-- by liuming -
Jboss Seam, mysql中文乱 ...
引用如果seam工程里面用到了richfaces也会出现乱码,因为richfac ...
-- by pf_miles






评论排行榜