数据库 三范式最简单最易记的解释,整理一下方便大家记忆。
书上讲了好多, 归结起来3句话:
1NF:字段不可分;
2NF:有主键,非主键字段依赖主键;
3NF:非主键字段不能相互依赖;
解释:
1NF:原子性 字段不可再分,否则就不是关系数据库;
2NF:唯一性 一个表只说明一个事物;
3NF:每列都与主键有直接关系,不存在传递依赖;
不符合第一范式的例子(关系数据库中create不出这样的表):
表:字段1, 字段2(字段2.1, 字段2.2), 字段3 ......
存在的问题: 因为设计不出这样的表, 所以没有问题;
不符合第二范式的例子:
表:学号, 姓名, 年龄, 课程名称, 成绩, 学分;
这个表明显说明了两个事务:学生信息, 课程信息;
存在问题:
数据冗余,每条记录都含有相同信息;
删除异常:删除所有学生成绩,就把课程信息全删除了;
插入异常:学生未选课,无法记录进数据库;
更新异常:调整课程学分,所有行都调整。
修正:
学生:Student(学号, 姓名, 年龄);
课程:Course(课程名称, 学分);
选课关系:SelectCourse(学号, 课程名称, 成绩)。
满足第2范式只消除了插入异常。
不符合第三范式的例子:
学号, 姓名, 年龄, 所在学院, 学院联系电话,关键字为单一关键字"学号";
存在依赖传递: (学号) → (所在学院) → (学院地点, 学院电话)
存在问题:
数据冗余:有重复值;
更新异常:有重复的冗余信息,修改时需要同时修改多条记录,否则会出现数据不一致的情况
删除异常
修正:
学生:(学号, 姓名, 年龄, 所在学院);
学院:(学院, 地点, 电话)。
书上讲了好多, 归结起来3句话:
1NF:字段不可分;
2NF:有主键,非主键字段依赖主键;
3NF:非主键字段不能相互依赖;
解释:
1NF:原子性 字段不可再分,否则就不是关系数据库;
2NF:唯一性 一个表只说明一个事物;
3NF:每列都与主键有直接关系,不存在传递依赖;
不符合第一范式的例子(关系数据库中create不出这样的表):
表:字段1, 字段2(字段2.1, 字段2.2), 字段3 ......
存在的问题: 因为设计不出这样的表, 所以没有问题;
不符合第二范式的例子:
表:学号, 姓名, 年龄, 课程名称, 成绩, 学分;
这个表明显说明了两个事务:学生信息, 课程信息;
存在问题:
数据冗余,每条记录都含有相同信息;
删除异常:删除所有学生成绩,就把课程信息全删除了;
插入异常:学生未选课,无法记录进数据库;
更新异常:调整课程学分,所有行都调整。
修正:
学生:Student(学号, 姓名, 年龄);
课程:Course(课程名称, 学分);
选课关系:SelectCourse(学号, 课程名称, 成绩)。
满足第2范式只消除了插入异常。
不符合第三范式的例子:
学号, 姓名, 年龄, 所在学院, 学院联系电话,关键字为单一关键字"学号";
存在依赖传递: (学号) → (所在学院) → (学院地点, 学院电话)
存在问题:
数据冗余:有重复值;
更新异常:有重复的冗余信息,修改时需要同时修改多条记录,否则会出现数据不一致的情况
删除异常
修正:
学生:(学号, 姓名, 年龄, 所在学院);
学院:(学院, 地点, 电话)。
发表评论
-
oracle10g完全缷载略记
2016-07-09 15:14 851软件环境: 1、Windows7 + Oracle 10g ... -
MySQL zip版的简单安装方式
2016-06-25 17:56 814Windows下MySQL zip版的简单安装 1、下载My ... -
java验证字符串中是否包含数字,对数字的操作
2016-03-15 11:01 9542在javascript中有一个方法 ... -
jdk7 Collections.sort()方法报非法参数异常
2016-03-03 18:57 12111JDK7的Comparison method violates ... -
Maven 中央仓库地址和lastUpdate文件删除
2016-03-01 13:46 8091Maven 中央仓库地址: 1. http://mvnrep ... -
log4j.properties配置详解
2016-01-18 16:50 1329Log4J的配置文件(Configuration File)就 ... -
Java 日期时间 Date类型,long类型,String类型表现形式的转换
2015-12-24 17:35 3317Java 日期时间 Date类型,long类型,String类 ... -
Java读写文件中文乱码问题
2015-07-20 17:49 3006问题:在用Java程序进行读写含中文的txt文件时,经常会出现 ... -
json数据后台处理
2015-03-30 16:05 837JAVA解析JSON问题,怎么解析,急!! String j ... -
oracle中的视图详解及实例
2015-03-26 16:42 17311.创建用户并授权: cre ... -
plsql快捷键设置
2015-01-19 14:15 24541.使用PL/SQL中经常性需要输入select * fro ... -
database link问题解决
2015-01-15 15:00 6676Oracle数据库中关于databas ... -
Oracle10g创建Database link
2015-01-14 10:53 982Oracle10g创建Database link ... -
java中int 转String位数不够前面补零
2015-01-08 21:53 20044java 中int 转String位数不够前面补零 Stri ... -
java 中int 转String位数不够前面补零
2015-01-08 21:52 1772java 中int 转String位数不够前面补零 Stri ... -
union和union all的区别
2014-12-29 16:20 1333Union因为要进行重复值扫描,所以效率低。如果合并没有刻意要 ... -
oracle数据库导入导出
2014-11-04 11:33 832oracle数据库导入导出(导出为dmp格式) 一、数据导出: ... -
Oracle中decode函数用法
2014-10-24 10:40 1228含义解释: decode(条件,值1,返回值1,值2 ... -
db语句优划与用法相关
2014-09-19 17:01 6891. oracle 中的not in() 与not exist ... -
oracle 临时表空间 和数据表空间
2014-08-25 13:28 935Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临 ...
相关推荐
关系型数据库设计范式是数据库设计的核心原则,用于确保数据的一致性、减少冗余和避免数据异常。在设计数据库时,遵循这些范式能够提高数据的组织效率和查询性能,降低维护成本。以下是四种主要的范式以及它们的解释...
25.关系型数据库的三范式?.avi
### 关系型数据库范式详解 #### 范式的概念与意义 关系型数据库的设计遵循一系列规范化原则,称为“范式”。范式是确保数据库结构合理、数据冗余最小化和数据完整性的一种方法论。通过规范化,数据库可以避免数据...
关系型数据库原理是数据库管理领域的基础,它基于数学上的关系理论,为数据的存储、查询和管理提供了标准化的方法。本教程旨在深入解析这一概念,帮助学习者理解和掌握关系型数据库的核心概念、设计原则以及操作技巧...
Java面试题25.关系型数据库的三范式.mp4
关系型数据库和非关系型数据库是两种不同的数据存储方式,它们各自具有特定的优势和适用场景。 关系型数据库(Relational Database)源于1970年代埃德加·科德提出的关系模型,它以表格的形式存储数据,并强调数据...
在数据库设计领域中,遵循一系列规范来构建高效、合理的关系型数据库至关重要。这些规范称为“范式”,旨在减少数据冗余并提高数据完整性。范式按照递进的方式进行规范,越高级别的范式对数据库的要求越高,相应的...
关系型数据库设计与范式教程.docx
数据库三范式经典实例解析 数据库设计范式是数据库...通过对数据库三范式的解释,我们可以看到数据库设计范式的重要性,它可以使数据库结构更加简洁、明晰,避免数据冗余、更新异常、插入异常和删除异常等问题的发生。
【关系型数据库基础教程】 关系型数据库是现代信息系统中存储和管理数据的主要方式之一,它基于关系数据模型,提供了一种高效、结构化的数据组织形式。本教程将深入讲解关系数据模型及其运算。 首先,我们要理解...
关系型数据库设计主要包括三种类型的关系: 1. 一对一(One-to-One, 1:1):在一个关系中,每个记录在主表和相关表中都有且仅有一个对应的记录。这种关系通常出现在商业规则要求的情况下,但如果没有特殊需求,两个...
关系型数据库---第一范式 关系型数据库的理论是基于范式的概念,范式是指数据库设计中的一种规则,用于确保数据库的规范化和数据的一致性。第一范式(1NF)是关系型数据库设计理论中的一种规则,要求每个字段都是...
关系型数据库的范式是指数据库中数据组织和存储的方式,它直接影响着数据库的性能、可维护性和可扩展性。了解关系型数据库的各种范式是非常重要的,它可以帮助我们设计和优化数据库结构。本文将详细介绍关系型数据库...
在关系型数据库中,范式主要包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)和第四范式(4NF)。每种范式都有其特定的要求,例如1NF要求每个字段不可再分,2NF则进一步要求非主键...
### 关系型数据库及其设计方法 #### 一、理解关系型数据库 数据库是长期存储数据信息的集合,其核心在于数据库管理系统(DBMS),用于管理数据的存储与访问。一个有效的DBMS需具备以下功能: 1. **数据定义**:...
在实际应用中,设计良好的关系型数据库需要遵循范式理论,如第一范式(1NF)、第二范式(2NF)和第三范式(3NF),以减少数据冗余并提高数据一致性。此外,索引的使用可以显著提升查询速度,但也会增加写入操作的...
本文将对数据库设计三范式进行通俗的解释,并以实例来讲解怎样将这些范式应用于实际工程。数据库设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入、删除和更新...
为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。