有些基础概念是苦涩难懂的,但是你要尽量耐下心来过一遍,了解其中的含义,再结合相关练习题进行理解。
第一范式
数据依赖
- 函数依赖
- 平凡/非平凡函数依赖
- 完全/部分函数依赖
- 传递函数依赖
- 多值依赖
- 连接依赖
在学生表(学号,姓名,年级)中,(学号,姓名)可以推出学号和姓名其中的任何一个,这就是平凡函数依赖。直白点说,就是只要Y是X的子集,Y就依赖于X。
在学生表(学号,姓名,年级)中,通过(学号,姓名)可以推出这个学生所在的年级,但年级不是(学号,姓名)的子集,这是非平凡函数依赖.((学号,姓名)就是一个x,学号或者姓名就是一个x’)。
候选键
主键
外键
范式
⭐⭐⭐
因为本例{S#,C#}中的S#也可以决定SD,Sloc,Sloc,故{SD,Sloc}是部分依赖于{S#,C#}
第一范式的关系应满足的基本条件是元组中的每一个分量都必须是不可分割的数据项。
第二范式,指的是这种关系不仅满足第一范式,而且所有非主属性完全依赖于其主码。
第三范式,指的是这种关系不仅满足第二范式,而且它的任何一个非主属性都不传递依赖于任何主关键字。
- 指出该关系模式的码、主属性、非主属性。
- 该关系模式属于几范式?
- 将该关系模式规范化为BCNF范式。
- 主码:BC
主属性:B,C
非主属性:D,A- 二范式【在该题中存在函数的传递依赖,故不可能属于第三范式,第二范式:每一个非主属性都完全函数依赖于R的码】
- R1(
B
,C
,D)
R2(D
,A)
(1)关系R的侯选码是什么?R属于第几范式?并说明理由。
(2)如果关系R不属于BCNF,请将关系R逐步分解为BCNF。
A
,B
,C
) (A,B,C)为候选码,R1中不存在非平凡的函数依赖B
,C
,D,E),(B,C)为候选码,R2的函数依赖集为:F2={(B,C)→D,D→E}B
,C
,D) ,(B,C)为候选码,R21的函数依赖集为:F21 = { (B,C)→D }D
,E) ,D为候选码,R22的函数依赖集为:F22 = { D→E }关系规范化中的删除异常是指(不该删除的数据被删除)
在关系A(S,SN,D)和B(D,CN,NM)中,A的主码是S,B的主码是D,则D在A中称为 外码
数据库系统中最重要的软件是 数据库管理系统(或DBMS) ,最重要的用户是 数据库管理员(或DBA)
数据库设计分为以下六个设计阶段:需求分析阶段、 概念结构设计阶段 、逻辑结构设计阶段、 物理结构设计阶段 、数据库实施阶段、数据库运行和维护阶段。
已知关系R(A,B,C,D)和R上的函数依赖集F={A→CD,C→B},则
R∈ 2 NF。
设有关系STUDENT(S#,SNAME,SDEPT,MNAME,CNAME,GRADE),(S#,CNAME)为候选码,设关系中有如下函数依赖:
(S#,CNAME)→SNAME,SDEPT,MNAME
S#→SNAME,SDEPT,MNAME
(S#,CNAME)→GRADE
SDEPT→MNAME
试求下列问题:
(1) 关系STUDENT属于第几范式?并说明理由。
(2) 如果关系STUDENT不属于BCNF,请将关系STUDENT逐步分解为BCNF。
S#
,SNAME,SDEPT,MNAME),S#为候选码S#
,CNAME,GRADE),S#为候选码,S#
,SNAME,SDEPT) ,S#为候选码,SDEPT
,MNAME) ,SDEPT为候选码,S#
,SNAME,SDEPT)SDEPT
,MNAME)S#
,CNAME,GRADE)在关系A(S,SN,D)和B(D,CN,NM)中,A的主码是S,B的主码是D,则D在S中称为 外码 。
已知关系R(A,B,C,D)和R上的函数依赖集F={A→CD,C→B},R属于第 2 范式。
设有关系R和函数依赖F: R(W,X,Y,Z),F = { X→Z,WX→Y }。试求下列问题:
(1)关系R属于第几范式?
(2)如果关系R不属于BCNF,请将关系R逐步分解为BCNF。
W
,X
,Y),F1 = { WX→Y }X
,Z),F2 = { X→Z }