数据库原理及其应用关于极小函数依赖和第三范式问题

2021-01-13 19:36:46 字数 2566 阅读 5634

1楼:满天海晨星

极小函数依赖准则:

(1)f中任一函数依赖的右部分仅含有一个属性(单属性);

(2)f中不含有这样的函数依赖x-->a,使得f与f-{x-->a}等价;

(3)f中不含有这样的函数依赖x-->a,x有真子集z使得f-{x-->a}u{z-->a}与f等价。

最小依赖集为:

f={sno-->spept,spept-->mname,(sno,**ame)-->grade}

关系规范为3nf后:

r1(sno,spept)

r2(spept,mname)

r3(sno,**ame,grade)

应该就是这个样子了,希望对你有帮助,欢迎网友批评指正。

数据库,关系模式的极小函数依赖

2楼:匿名用户

关系模式:

学生(学号,姓名,出生年月,班号)

班级(班号,专业名,入校年份,人数)

专业(专业名,系号)

系(系名,系号,系办公室地点,人数,学生宿舍区)学会(学会名,成立年份,地点,人数)

学生学会(学号,学会名,入会年份)

模式的极小函数依赖集:

学生,不存在传递依赖和部分依赖,班号为外码;

班级,不存在传递依赖和部分依赖,专业名为外码;

专业,不存在传递依赖和部分依赖,系号为外码;

系,不存在传递依赖和部分依赖;

学会,不存在传递依赖和部分依赖;

学生学会,不存在传递依赖和部分依赖。

数据库中第一、第二、第三范式的特点是什么啊?

3楼:59分粑粑

特点分别如下:

1、第一范式

“第一范式的数据形式必须是二维数据表”。第一范式表示数据库的每一列都是不可分割的基本数据项。一个属性不能有多个值。例如,数据库的**号码属性不能具有固定**和移动**值。

注意:在任何关系数据库中,第一范式(1nf)是关系模型的基本要求。不符合第一范式(1nf)的数据库不是关系数据库。

2、第二范式

基于第一范式,即满足第二范式必须满足第一范式。第二种标准格式要求必须唯一标识数据表的每个实例或行。除了满足第一范式外,还有两个条件。

一种是表必须具有主键;另一种是表必须具有主键。

另一个是,不包含在主键中的列必须完全取决于主键,而不仅取决于主键的一部分。每一行数据只能与其中一列相关,也就是说,一行数据只能做一件事。只要重复数据出现在数据列中,就必须拆分表。

3、第三范式

如果某个范式是第二范式,并且每个非主属性没有传递依赖于该范式的候选键,则称为第三范式,即其不能存在:非主键列a取决于非主键列b,非主键列b取决于主键的大小写。

4楼:匿名用户

第一范式:第一范式要求每列必需是最小的原子单元,即不能再分。第二范式:

第二范式要求每列必需和主键相关,不相关的列放入别的表中,即要求一个表只描述一件事情。第三范式:第三范式要求表中各列必需和主键直接相关,不能间接相关,浏览每个表,都满足第三范式要求。

5楼:匿名用户

.1 第一范式(1nf)无重复的列

所谓第一范式(1nf)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1nf)中表的每一行只包含一个实例的信息。

简而言之,第一范式就是无重复的列。

说明:在任何一个关系数据库中,第一范式(1nf)是对关系模式的基本要求,不满足第一范式(1nf)的数据库就不是关系数据库。

1.2 第二范式(2nf)属性完全依赖于主键[消除部分子函数依赖]

第二范式(2nf)是在第一范式(1nf)的基础上建立起来的,即满足第二范式(2nf)必须先满足第一范式(1nf)。第二范式(2nf)要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。

例如员工信息表中加上了员工编号(emp_id)列,因为每个员工的员工编号是惟一的,因此每个员工可以被惟一区分。这个惟一属性列被称为主关键字或主键、主码。

第二范式(2nf)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。

简而言之,第二范式就是属性完全依赖于主键。

1.3 第三范式(3nf)属性不依赖于其它非主属性[消除传递依赖]

满足第三范式(3nf)必须先满足第二范式(2nf)。简而言之,第三范式(3nf)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。

那么在的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3nf)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性。