浅析数据库设计三范式
在学习数据设计的时候,N种专业术语,看的头疼。但又不能不学,所以只好把它们整理整理出来,好让自己对它们有一个更深的理解。特别是对三范式(Normal Formal)的理解。 三范式指的是第一(1NF)、第二(2NF)和第三范式(3NF),其作用: 解决数据冗余,为数据有效性检查,提高存储效率考虑。 在了解三范式之前,我们先来弄清楚这几个概念(键、函数依赖以及其类型): 一、关键码(键): 由一个或多个属性组成,在实际使用中,有下列几种: 超键:在关系中能唯一标识元组的属性集称为关系模式的超键。 注意 : (属性集,说明可以是多个) 候选键:不含有多余属性的超键 主键:用户选作记录标识的候选键 这三个的关系,用数学关系可以做如下表示: 举例:一张学生信息表 问:超键是? 答曰:学号唯一,是超键;姓名唯一,是超键;(学号,年龄)唯一,是超键;(学号、姓名、年龄)唯一,也是超键。 —— 从这里我们就可以看出,超键的组合是唯一的,但不可能是最小唯一的。 问:候选键是? 答曰: 学号,唯一且没有多余的属性;姓名,唯一且没有多余的属性。 问:主键是? 答曰:既可以选择学号,也可以选择姓名(前提是规定没有重名的)作为主键,所以主键是选中的一个候选键。 数据库设计的目的主要是为了解决数据冗余,对数据进行有效的管理。那么引起数据冗余的主要原因是什么呢? 答曰:数据依赖。 什么是数据依赖