全称量词查询 数据库规范化总结

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就是限制关系模式的属性间不允许有非平凡的且非函数依赖的多值依赖
解决办法: 模式分解, 消除多值依赖

总结:关系模式中若包含多于一个概念就把他分离出去,实现概念的单一化

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值