mysql中三範式

转载 2018年04月15日 15:31:34
1NF:原子性,即字段不可以再分。

2NF:唯一性,不可以把多种数据保存在同一张表中,即一张表只能保存“一种”数据。

不符合第二范式的表:学号, 姓名, 年龄, 课程名称, 成绩, 学分; 

可能会存在问题:

数据冗余,每条记录都含有相同信息; 
删除异常:删除所有学生成绩,就把课程信息全删除了; 
插入异常:学生未选课,无法记录进数据库; 
更新异常:调整课程学分,所有行都调整。 

正确做法: 
学生:Student(学号, 姓名, 年龄); 
课程:Course(课程名称, 学分); 

选课关系:StudentCourse(学号, 课程名称, 成绩)。

[學生的個人信息和課程學生雖然有關系,但是細分下來,學生個人信息與學生課程成績可以劃分爲兩個表,否則會有很多冗餘部分]


3NF:直接性,每一列都和主键直接相关,而不能间接相关。(依赖不准传递)

不符合第三范式的表: 学号, 姓名, 年龄, 学院名称, 学院电话,因为存在依赖传递: (学号) → (学生)(所在学院) → (学院电话) 。

可能会存在问题:

数据冗余:有重复值; 
更新异常:有重复的冗余信息,修改时需要同时修改多条记录,否则会出现数据不一致的情况 

正确做法:

学生:(学号, 姓名, 年龄, 所在学院); 

学院:(学院, 电话)。

[這裏,學生的信息和學院的信息並沒有直接關系,所以最好不要將這兩種放在一起]

[個人理解:一種信息類型就應該用一種表存放,不要都雜七雜八放在一塊兒]

轉載自:https://blog.csdn.net/chenyyhh92/article/details/51174343




VC++多线程下内存操作的优化

作者/李红亚 许多程序员发现用VC++编写的程序在多处理器的电脑上运行会变得很慢,这种情况多是由于多个线程争用同一个资源引起的。对于用VC++编写的程序,问题出在VC++的内存管理的具体实现上。以下通...
  • zdg
  • zdg
  • 2000-12-12 13:51:00
  • 5970

《代码大全》学习笔记 第八章,防御式编程

 第八章,防御式编程前言Byzly。防御式驾驶:你永远不能确定另外一位司机将要做什么。你要承担其保护自己的责任,哪怕是其他司机犯的错误。防御式编程的主要思想:子程序应该不因传入错误数据而被破坏,哪怕是...
  • chgaowei
  • chgaowei
  • 2009-08-25 21:45:00
  • 1989

C++11新特性:范围for循环和lambda表达式

1.C++11新特性之范围for循环 语法格式: for(declaration:expression) statement 解释: declaration:变量; expression...
  • yutouqian
  • yutouqian
  • 2014-11-02 17:39:08
  • 628

C 程式檔案範例程式,可以使用dev c編譯執行

  • 2010年04月15日 11:51
  • 9KB
  • 下载

读《代码大全》--防御式编程--总结

今天在无聊中阅读了《代码大全》第八张防御式编程,从中又收获不少。不敢独享成果,特写此文章,希望能对想学习的同学有所帮助。 本章主要介绍如下8点:   1. 保护程序免遭非法输入数据的破坏:大家可能听说...
  • jweet
  • jweet
  • 2007-11-10 22:36:00
  • 2280

MySql插件式的存储引擎

1:插件式的存储引擎大概是Mysql最独特的功能了,其他品牌的数据库系统没有一个能像Mysql这样在文件访问层具有如此大的灵活性和可扩展性。  2:MyISAM        为了提高访问...
  • woshisap
  • woshisap
  • 2012-05-17 21:03:10
  • 1759

mysql 语句中的简单if判断

select *,if(sva=1,"男","女") as ssva from taname where sva
  • u012307002
  • u012307002
  • 2014-02-16 16:26:00
  • 1579

MySQL CASE表达式

MySQL CASE表达式是一个流程控制结构,用在在SELECT、WHERE等语句中根据条件动态构造内容。2种MySQL CASE格式MySQL的CASE表达式有2中形式,一种更像是编程语言当中的CA...
  • bingduanlbd
  • bingduanlbd
  • 2016-07-04 18:19:46
  • 629

解析几何:第二章 解析几何中的基本计算公式

§1 基本计算公式 序号 图形 计算公式 1 平面上两点间的距离: 2 空间中两点间的距离: 3 ...
  • GarfieldEr007
  • GarfieldEr007
  • 2016-03-04 13:00:19
  • 1170

MySQL学习笔记—插件式存储引擎

MySQL学习笔记—插件式存储引擎在MySQL 5.1中,MySQL AB引入了新的插件式存储引擎体系结构,允许将存储引擎加载到正在运行的MySQL服务器中。使用MySQL插件式存储引擎体系结构,允许...
  • u013457382
  • u013457382
  • 2016-04-19 14:48:34
  • 1310
收藏助手
不良信息举报
您举报文章:mysql中三範式
举报原因:
原因补充:

(最多只允许输入30个字)