数据库错题集及相关知识点

本文深入探讨了数据库设计的基础知识,包括第一范式、第二范式和第三范式,解释了每个范式的概念和应用。接着,介绍了数据库索引的类型和作用,如B-Tree、位图和哈希索引。文章还讨论了事务的ACID特性,强调了事务在数据一致性中的重要性。最后,提到了数据完整性和数据库安全,如MD5摘要和加密技术的应用。
摘要由CSDN通过智能技术生成

一.范式:符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度。

1.第一范式

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

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

例如,学生信息表有如下属性值:

学生标示符
201433 cht

该表不满足第一范式。因为该属性值可以再分割变为:

学号 姓名
201433 cht

简而言之,第一范式就是属性值不可分割。

2.第二范式

第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。

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

简而言之,第二范式就是非主属性非部分依赖于主关键字。

例如,选课信息表

学生 课程 教师 教材 教师职称
cht 数据库系统 fjl 《数据库管理系统原理与设计》 教授

(学生、课程)才能确定这张表的唯一行。所以它是主属性。但是教材只与课程有关。教材并不依赖选课人。所以不满足第二范式。

又例如,一个关系模式为Y(X1,X2,X3,X4),假定该关系存在着如下函数依赖:(X1,X2)→X3,X2→X4,则该关系属于( 第一范式 )。

因为(x1,X2)可以当做主属性,但是X4却不是完全依赖(X1,X2),而只是依赖一部分。所以不符合第二范式。

3.第三范式

满足第三范式(3NF)必须先满足第二范式(2NF)。3NF在2NF的基础之上,消除了非主属性对于码的传递函数依赖。也就是说,如果存在非主属性对于码的传递函数依赖,则不符合3NF的要求。

学生 课程 教师 教师职称
cht 数据库系统 fjl 教授

同样,主属性是(学生,课程),但是教师职称跟学生没关系。只和教师相关。因为(学生,课程)→教师,教师→教师职称,所以存在非主属性(教师职称)对于码的传递函数依赖,也就是非主属性(教师职称)依赖其他非主属性(教师),不满足第三范式。

某关系表有:员工(部门编号,部门名称,员工编号,姓名,性别,年龄),则其主码为(部门编号、员工编号)。

因为如果员工编号为主码,部门名称传递函数依赖于主属性,不满足第三范式。

简而言之,第三范式就是属性不依赖于其它非主属性。

4.BCNF

**BCNF范式是在 3NF 的基础上消除主属性对于码的部分与传递函数依赖。
也就是说所有属性(包括非键属性与键鼠性)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值