博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关系模式满足第二、三范式的求解方法!
阅读量:6677 次
发布时间:2019-06-25

本文共 834 字,大约阅读时间需要 2 分钟。

一、将非第二范式分解成第二范式

前记:非第二范式-存在非主属性对主键的部分函数依赖。
  • 分解步骤
    1、用组成主键的属性集合的每一个子集作为主键构成一个新的关系模式。
    2、将依赖于这些主键的属性放置到相应的新的关系模式中。
    3、最后去掉只由主键的子集构成的关系模式。

例如:关系(Sno, Sname, Ssex, Sdept, Sloc, Cno, Grade)

对应:(学号,姓名,性别,所在系,宿舍楼号,课程号,成绩)

分析:因为该关系模式的主键是(Sno,Cno),并且有Sno->Sname,因此Sname部分函数依赖于(Sno,Cno),所以,该关系不满足第二范式。      解:将该关系模式分解为如下三个关系模式(**部分表示主键)     (**Sno**, Sname, Ssex, Sdept, Sloc)     (**Cno**) //去掉     (**Sno, Cno**, Grade)     最后,得到了两个满足第二范式的关系。

二、将非第三范式分解成第三范式

前记:非第三范式-存在非主属性对主键的传递函数依赖。
  • 分解步骤
    1、对于不是候选键的每个决定因子(依赖关系中左边的部分),从关系模式中删去依赖于它的所有属性。
    2、新建一个关系模式,新关系模式中包含原关系模式中所有依赖于该决定因子的属性。
    3、将决定因子作为新关系模式的主键。

例如:(Sno, Sname, Ssex, Sdept, Sloc)中,Sdept不是候选键,但是Sdept->Sloc。所以,Sdept是决定因子,从关系中删去依赖它的Sloc。

新建一个关系模式(**Sdept**, Sloc)。最后关系模式(Sno, Sname, Ssex, Sdept, Sloc, Cno, Grade)被分解为三个满足第二、三范式的关系模式:(Sno, Sname, Ssex, Sdept)(**Sdept**, Sloc)(**Sno,Cno**, Grade)

转载地址:http://fmgxo.baihongyu.com/

你可能感兴趣的文章
React-Native-Android-Studio整合开发+环境配置+官方实例
查看>>
System.out.println()的含义
查看>>
模仿jquery框架源码---网络
查看>>
php异常处理类
查看>>
UNIX常见命令索引 (echo,find,xargs)
查看>>
第二周(4.23~4.29)
查看>>
spring(5)注解
查看>>
leetcode Isomorphic Strings
查看>>
thinkphp开发系列的U方法的实现-简单实现url
查看>>
ESP&EFP模式win10系统重装(实战WIN10+UEFI引导装系统(不重装不格盘100%成)
查看>>
[BZOJ 1019][SHOI2008]汉诺塔(递推)
查看>>
Codeforces Round #283 (Div. 2) ABCDE
查看>>
cacti安装spine 解决WARNING: Result from CMD not valid. Partial Result: U错误
查看>>
一步步构建大型网站架构
查看>>
(五)hadoop系列之__集群搭建SSH无密访问多台机器
查看>>
node + npm 命令
查看>>
laravel的路由设置,路由参数和路由命名(三)
查看>>
centos7下编译安装php7.3
查看>>
打造 html5 文件上传组件,实现进度显示及拖拽上传,兼容IE6+及其它标准浏览器...
查看>>
(九)Centos之搜索命令whereis、which和字符串搜索命令grep
查看>>