`
df20070608
  • 浏览: 30195 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

数据库的三种常用范式

阅读更多

范式可以看做为我们数据库中的关系(表)定义的一种标准,为了达到不同的标准需要满足不同程度的范式,我们最常用的范式有三种:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。

 

第一范式:若关系模式满足:每一属性应具有原子性,既不可再分性,则称该关系模式是第一范式的关系模式。

比如:我们想创建一个人的关系模式,我们将该关系定义为(姓名、性别、身材)。显然,该关系中“身材”属性可以继续分解为“体重”、“身高”,所以该关系不满足1NF,为了使其满足1NF,我们将可继续分解的属性分解为不可再分的属性后再写入表中,则人的关系模式修改后为(姓名、性别、体重、身高)。

 

第二范式:若关系模式满足第一范式,而且它的所有非主属性完全函数依赖于主属性,既不存在非主属性部分依赖于主属性,则称该关系模式是第二范式的关系模式。

比如:对于一个选课关系(学号,学生姓名,课程号,课程名,学分)来说,它的候选键为(学号,课程号),所以主属性为{学号,课程号},非主属性为{学生姓名,课程名,学分},其中“学生姓名”依赖“学号”,“课程名”与“学分”依赖于“课程号”,既该关系存在非主属性部分依赖主属性,所以该关系不满足第二范式。为使其满足第二范式,我们可将该关系拆分为三个关系:(学号,课程号)、(学号,学生姓名)、(课程号,课程名,学分)。

 

第三范式:若关系模式满足第二范式,且它的非主属性都不传递依赖于任何主属性,则称该关系模式是第三范式的关系模式。

比如:对于一个公司的员工表(员工号,部门,部门经理),其中员工号为主键,部门依赖员工号,员工号不依赖部门,部门经理依赖部门,所以部门经理传递依赖于员工号,则该关系不满足第三范式。为使其满足第三范式,我们可将原关系拆分为(员工,部门),(部门,部门经理)。

 

不满足范式要求可能会给我们数据库带来插入异常、删除异常、更新异常、数据冗余等诸多问题,但从上述几个例子中不难发现,为了解决不满足范式的问题,我们增加了关系的属性,或则增加了关系,因此在实际运用中,我们要根据实际情况来使自己的数据库满足某一范式。

 

附上一些名词解释供大家参考:

以关系模式(身份证号码(ID),指纹(fingerprint),姓名(name),性别(sex))为例:

超键:能唯一标识元组的属性集称为超键,如(IDname)、(IDsex)、(namefingerprint)等均为上述关系超键子集。

候选键:能唯一标识远组且不含多余属性的属性集称为候选键。ID fingerprint为上述关系的候选键。

候选键与超键均能唯一标识元组,其唯一区别在于超键可以包含多余属性而候选键不可以。

主键:从众多候选键中选取出的一个。

主属性:候选键中的所有属性。

非主属性:不在候选键中的属性。

ABC是关系模式R的属性集,

函数依赖:如果不存在两个元组在A上的属性相等而在B上的不等,也就是说如果有两个元组在B上不等,那么在A上也一定不等,就称为A函数确定BB函数依赖A

完全函数依赖:如果B函数依赖于A,并且不存在A的一个真子集a,使得B函数依赖于a,那么就成B完全函数依赖A

部分函数依赖:如果B函数依赖于A,且B不完全函数依赖A,就成B部分函数依赖A

传递函数依赖:如果B依赖AA不依赖BC依赖B,则称C传递函数依赖A

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    第二章 数据库系统设计及范式分析--班级管理系统需求说明书

    更高范式如第二范式(2NF)和第三范式(3NF)则要求消除部分依赖和传递依赖,进一步减少冗余。在某些情况下,为了优化查询性能,可能需要进行反规范化,但这需要权衡可能带来的数据冗余问题。 总结起来,设计一个...

    数据库设计模式范式简介

    除了上述三个最常用的范式,还有第四范式(4NF)和第五范式(5NF),它们分别对应多值依赖和投影依赖,主要应用于更复杂的数据结构和更高的数据规范化需求。在实际应用中,大多数数据库设计只需要满足3NF即可保证...

    数据库三级试题+视频

    重点理解实体-关系模型(ER模型),以及如何将ER图转化为关系模式,还需要了解规范化理论,如第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和BCNF(巴斯-科德范式)。 5. **数据库安全性与完整性**:学习如何...

    计算机三级数据库常用名词解释

    总的来说,"计算机三级数据库常用名词解释"涵盖了数据库系统的基本概念、数据模型、数据库结构、数据操作、数据独立性、事务处理、数据完整性、并发控制、备份恢复、安全性、查询优化和数据库设计等多个方面,这些都...

    数据库笔记与常用笔记

    本资源“数据库笔记与常用笔记”提供了一个学习数据库的良好起点,包含了实用的代码示例和详细的笔记内容。 首先,我们来看“数据库笔记.txt”。这份笔记可能涵盖了数据库的基础知识,如关系型数据库的基本原理,...

    数据库设计反范式.pdf

    在数据库设计中,范式是一种规范化理论,旨在减少数据冗余和提高数据一致性。范式分为不同级别,如1NF(第一范式)、2NF(第二范式)和3NF(第三范式)。1NF要求数据具有原子性,确保每个字段只包含单一值;2NF强调...

    MySQL进阶面试题,数据库三范式、数据库优化、索引有哪些种类、索引的工作机制、MySQL 的基础操作

    1.数据库三范式是什么?2.有哪些数据库优化方面的经验?3.请简述常用的索引有哪些种类?4.以及在 mysql 数据库中索引的工作机制是什么?5.MySQL 的基础操作命令:6.mysql 的复制原理以及流程。7.mysql 支持的复制类型?8....

    数据库三范式 & 事务

    数据库三范式是数据库设计中常用的一套规范,旨在确保数据库结构的最优化,从而避免数据异常和更新异常。 1. 第一范式(1st NF - 列都是不可再分) 第一范式要求数据库表的每一列都必须是不可分割的基本数据项,也...

    数据库设计ER图(第三范式规范).doc

    数据库设计ER图(第三范式规范) 数据库设计是软件开发中...第三范式规范是数据库设计中的一种重要规范,能够确保数据库的数据一致性和完整性。在本文档中,我们讨论了ER图在数据库设计中的应用,特别是第三范式规范。

    详谈数据库泛型:第一、二、三、四和BCN范式

    目录 1 什么是数据库泛型? 2 第一范式:无重复的列 ...目前,关系型数据库最常用的四种范式分别是第一范式、第二范式、第三范式和BCN范式。 应用数据库范式可以带来许多好处,但是最重要的好处归结为三点: 1)减少

    浙江省计算机三级数据库技术复习资料历年真题

    关系模型是现代数据库系统中最常用的数据模型,由若干个二维表组成。关系代数是一种形式化的查询语言,用于描述对数据库的操作。范式理论则用于指导数据库的设计,确保数据的一致性和完整性,常见的有第一范式(1NF...

    数据库范式介绍

    目前最常用的是前三范式和BC范式。 **第一范式(1NF)**: - 定义: 表中的每个列都必须是不可分割的基本数据项,即属性不可再分。 - 目标: 确保每一列都是单一的数据元素。 **第二范式(2NF)**: - 前提: 必须满足...

    数据库面试知识点汇总

    常见的数据库范式有六层,其中前三层是最常用的,即第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。 1NF:列不可分,要求每个字段的数据具有原子性,不可再分。 2NF:无部分依赖,要求每个非主键列完全依赖...

    初学数据库的一些常用数据

    这个压缩包“初学数据库的一些常用数据”显然是为了帮助新手快速上手数据库的学习,免去手动输入数据的繁琐过程。它包含了"学生管理系统的数据",这意味着我们可以从中学习到如何构建和操作一个简单的数据库系统,...

    数据库常用面试题目_基础题

    - 请解释范式理论,第一范式到第三范式是如何降低数据冗余的? 3. **SQL查询** - 描述SELECT语句的基本结构,并给出一个包含WHERE子句和JOIN操作的例子。 - 如何使用SQL创建视图,以及视图的作用是什么? 4. **...

    sql 常用语句 数据库原理 及常用 构件

    三、常用数据库构件 1. 主键:唯一标识表中每一行的字段,确保数据的唯一性,通常用于关联其他表。 2. 外键:一个表中引用另一个表主键的字段,用于建立表与表之间的联系,实现参照完整性。 3. 联合键:由两个或更...

    数据库常用单词总结.doc

    MySQL数据库常用单词总结 本资源摘要信息将涵盖MySQL数据库的基础知识、约束、单表、多表、事务管理和权限控制等方面的重要概念和操作命令。 一、数据库定义语言(DDL) * `IF NOT EXISTS`:用于创建数据库或表,...

    上海市计算机三级数据库考

    掌握范式理论,如第一范式(1NF)、第二范式(2NF)、第三范式(3NF)及BCNF(巴斯-科德范式)。 4. **数据库管理**:学习如何创建、修改和删除数据库对象,如表、索引、视图等。理解备份与恢复策略,以及事务管理,确保...

    浙江省数据库三级真题05-08附答案

    在这个真题集中,可能会涉及数据库设计的基本原则,包括ER(实体-关系)模型,以及范式理论,如第一范式(1NF)、第二范式(2NF)和第三范式(3NF),这些都可能出现在理论题目中。 其次,考生需要熟悉SQL语言。SQL...

Global site tag (gtag.js) - Google Analytics