数据库系统原理(一)--键和范式
来源:互联网 发布:最好的加工软件 编辑:程序博客网 时间:2024/05/29 13:06
键
- 超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键
- 候选键(candidate key):不含有多余属性的超键称为候选键
- 主键(primary key):用户选作元组标识的一个候选键程序主键
- 外键(foreign key)如果关系模式R1中的某属性集不是R1的主键,而是另一个关系R2的主键则该属性集是关系模式R1的外键。
结合以下实例进行具体解释:
假设有如下两个表:
学生(学号,姓名,性别,身份证号,教师编号)
教师(教师编号,姓名,工资)
超键:
由超键的定义可知,学生表中含有学号或者身份证号的任意组合都为此表的超键。如:(学号)、(学号,姓名)、(身份证号,性别)等。
候选键:
候选键属于超键,它是最小的超键,就是说如果再去掉候选键中的任何一个属性它就不再是超键了。学生表中的候选键为:(学号)、(身份证号)。
主键:
主键就是候选键里面的一个,是人为规定的,例如学生表中,我们通常会让“学号”做主键,教师表中让“教师编号”做主键。
外键:
外键比较简单,学生表中的外键就是“教师编号”。外键主要是用来描述两个表的关系。
范式
范式:
关系模型原理的核心是“规范化”概念,规范化是把数据库组织成在保持存储数据完整型的同时又能最小化冗余的过程。规范化的数据库是符合关系模型规则的数据库,这些规则叫做范式。
第一范式(1NF):
1NF:
数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。
指导原则:
1. 数组的每个属性只能包含一个值
2. 关系中的每个数组必须包含相同数量的值
3. 关系中的每个数组一定不能相同
例子:
如图所示,此表不符合第一范式,最后一栏中姓名属性有多个属性值
修改为1NF:
第二范式(2NF):
2NF:
如果一个数据表已经满足第一范式,而且该数据表中的任何一个非主键字段的数值都依赖于该数据表的主键字段。(不含有部分依赖)
例子:
如图,除负责人部门不依赖项目编号外,其余都依赖项目编号,所以不满足第二范式
同时,如上修改,则满足第二范式。
第三范式(3NF):
3NF:
如果一个数据表已经满足第二范式,而且该数据表中的任何两个非主键字段的数据值之间不存在函数信赖关系,那么该数据表满足第三范式。(不含有非主属性对键的传递依赖)
上表存在非主属性的函数依赖,所以不符合第三范式,将奖金列去掉即可!
- 数据库系统原理(一)--键和范式
- 【自考】数据库系统原理--范式
- 数据库系统原理(一)
- 数据库范式详解(一)
- 数据库的范式和ACID原理
- 数据库原理中的范式
- 数据库原理-范式
- 数据库系统原理(一)——数据库系统基本概念
- 数据库系统范式
- 数据库设计中的三范式(一)
- 数据库原理之第一范式、第二范式、第三范式
- 闲话数据库(一)第一范式/第二范式
- 数据库原理——范式
- 关于数据库原理中的范式
- 数据库事务和范式
- 关系数据库和范式
- 数据库系统原理复习题(一)——绪论
- 数据库系统原理与设计~基本概念的接触(一)
- IDEA 安装PlantUML
- 使用Hadoop实现单词统计
- Jdk9/Java9: modular feature
- 【JavaScript】——之问题中学习
- 初识JavaScript03
- 数据库系统原理(一)--键和范式
- 决策树----ID3
- js中的prototype的作用
- CodeForces-191A Dynasty Puzzles(动态规划DP)
- 近期计划
- [BZOJ]2282: [Sdoi2011]消防 树的直径+单调队列
- java resp.sendRedirect(); 页面没有跳转的原因
- 安装oracle 11g 客户端,检查过程中报物理内存不足等错误
- js文档碎片---DocumentFragment