• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >数据库其它 > 数据库三大范式

数据库三大范式

作者:github_40018627的博客 字体:[增加 减小] 来源:互联网 时间:2017-09-08

github_40018627的博客通过本文主要向大家介绍了数据库,三大范式,mysql等相关知识,希望本文的分享对您有所帮助

1NF: 字段是最小的的单元不可再分
2NF:满足1NF,表中的字段必须完全依赖于全部主键而非部分主键
3NF:满足2NF,非主键外的所有字段必须互不依赖

 

 

 

2NF:非主属性不部分依赖于候选码
3NF:非主属性不传递依赖于候选码
BCNF:在满足第二第三范式的情况下,主属性内部也不能部分或传递依赖。判断方法:箭头左边的必须是候选码,不是候选码的就不是BC范式。
4NF 没有多值依赖

 

 

 

 

 

 

 

1NF:字段不可分; 

2NF:有主键,非主键字段依赖主键; 
3NF:非主键字段不能相互依赖; 

 

 

解释: 
1NF:原子性 字段不可再分,否则就不是关系数据库; 
2NF:唯一性 一个表只说明一个事物; 
3NF:每列都与主键有直接关系,不存在传递依赖; 

不符合第一范式的例子(关系数据库中create不出这样的表): 

表:字段1, 字段2(字段2.1, 字段2.2), 字段3 ...... 

存在的问题: 因为设计不出这样的表, 所以没有问题; 

不符合第二范式的例子: 

表:学号, 姓名, 年龄, 课程名称, 成绩, 学分; 

这个表明显说明了两个事务:学生信息, 课程信息; 

存在问题: 

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

修正: 

学生:Student(学号, 姓名, 年龄); 

课程:Course(课程名称, 学分); 

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

满足第2范式只消除了插入异常。 


不符合第三范式的例子: 

学号, 姓名, 年龄, 所在学院, 学院联系电话,关键字为单一关键字"学号"; 

存在依赖传递: (学号) → (所在学院) → (学院地点, 学院电话) 

存在问题: 

数据冗余:有重复值; 

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

删除异常 

修正: 
学生:(学号, 姓名, 年龄, 所在学院); 
学院:(学院, 地点, 电话)

 

 

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • NoSQL 数据库你应该了解的 10 件事
  • 数据库基本概念面试必问
  • 8 种常用的 NoSQL 数据库系统对比分析
  • NoSQL开篇之为什么要使用NoSQL
  • YII2数据库查询实践
  • 数据库学习建议之提高数据库速度的十条建议
  • 在SQL SERVER中查询数据库中第几条至第几条之间的数据SQL语句写法
  • 数据库同步优化技巧分享
  • 数据库设计的完整性约束表现在哪些方面
  • 什么是数据库索引 有哪些类型和特点

相关文章

  • 2017-05-11复制数据库表中两个字段数据的SQL语句
  • 2017-05-11SQL SERVER 与ACCESS、EXCEL的数据转换
  • 2017-05-11很全的SQL中文解释代码第1/2页
  • 2017-05-11telnet连接操作memcache服务器详解
  • 2017-12-17漫谈16S的前世今生
  • 2017-05-11关于SQL注入绕过的一些知识点
  • 2017-05-11MySQL与Oracle差异比较之五存储过程&Function
  • 2017-05-11SQL 优化经验总结34条
  • 2017-05-11使用SQL Mail收发和自动处理邮件中的扩展存储过程简介
  • 2017-05-11ACCESS转化成SQL2000需要注意的几个问题小结

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • MySQL与Oracle 差异比较之四条件循环语句
    • db2数据库常用操作命令大全
    • OLEDB和ODBC的区别(优缺点)
    • 详细讲解PostgreSQL中的全文搜索的用法
    • 几种常用DB驱动和DB连接串小结
    • SQL SERVER 里的错误处理(try catch)
    • 数据库设计规范化的五个要求 推荐收藏
    • sql注入之必备的基础知识
    • 读取修复:在读取路径期间修复
    • ACCESS转SQLSERVER数据库的注意事项

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有