范式做题方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、做题需要明确知道的概念:
(注:由于整理时我没带课本,所以针对一些概念的真伪无法查证,望海涵)
码:可以唯一区别一个元组(即表中的一行数据)的属性或属性的集合。
候选码:可以唯一区别一个元组(即表中的一行数据)的最少的属性或属性的集合。
码和候选码的区别:比如学生表student(id,name,age,sex,deptno),其中的id是可以唯一标识一个元组的,所以id是可以作为候选码的,既然id都可以做候选码了,那么id和name 这两个属性的组合可不可以唯一区别一个元组呢?显然是可以的,此时的id可以成为码,id 和name的组合也可以称为码,但是id和name的组合不能称之为候选码。
因为即使去掉name属性,剩下的id属性也完全可以唯一标识一个元组,就是说,候选码中的所有属性都是必须的,缺少了任何一个属性,就不能唯一标识一个元组了。
主码:一个表的候选码可能有多个,从这些个候选码中选择一个做为主码。
主属性:因为一个表可以有多个候选码,所以如果有一个属性在所有的候选码中都出现,它就称为主属性。
非主属性:不包含在任何一个候选码中的属性称为非主属性。
完全函数依赖:
如果码是:{学号,课号}
已知存在依赖:{学号,课号}-->成绩
因为:学号+课号可以决定成绩,但只有学号or只有课号无法决定成绩
所以称:成绩完全函数依赖于码。
部分函数依赖:
如果码是:{学号,课号}
已知存在依赖:{学号,课号}-->姓名
因为:只有学号就能决定姓名 (课号是冗余的)
所以称:成绩部分函数依赖于码。
传递函数依赖:
如果码是:{学号,课号}
已知存在依赖:学号→班级班级→班主任
因为:班主任传递函数依赖于学号,学号又包含在码中
所以称:班主任传递函数依赖于码
第一范式(1NF):一个关系模式R的所有属性都是不可分的基本数据项。
第二范式(2NF):关系模式R属于第一范式,且每个非主属性都完全函数依赖于码。
第三范式(3NF):关系模式R属于第二范式,且每个非主属性都不传递依赖于码。
BC范式(BCNF):关系模式R属于第三范式,且每个属性都不传递依赖于码。
2、判断范式的方法:
a. 首先先判断是不是满足第一范式,每一个属性都不可再分。
b. 然后判断其他范式的时候先根据它的题目把函数依赖写出来,
c. 接下来把它的候选码找出来,
d. 然后把所有的属性分成主属性和非主属性,
e. 最后来判断它满足第几范式.
1.如果是消除了非主属性对码的部分函数依赖,它就满足第二范式。
2.如果接下来消除了非主属性对码的传递函数依赖,它就满足第三范式。
3.然后看它的决定因素,每一个决定因素是不是都含有码,如果都含有码,那它就
满足BC范式。