AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > ACCESS

数据库标准化基础

51自学网 2015-09-25 http://www.51zixue.net

其它标准化表单(范式)

    也有第四常规表单(第四范式)(也称为 Boyce Codd 常规表单(范式)(BCNF))与第五常规表单(第五范式)存在,但是在实际设计中很少考虑。忽视这些规则可能使得数据库的设计不太完美,但这不应影响功能。 

将示例表标准化

    这些步骤说明将一个虚构的学生表进行标准化的步骤。 

    非标准化的表: 

1022  Jones  412  101-07  143-01  159-02  
4123  Smith  216  201-01  211-02  214-01

第一常规表单(第一范式):无重复组 

    表应只有两维。由于一个学生有好几个类别,因此这些类别应在一个独立的表中列出。在上述记录中,Class1、Class2 和 Class3 字段是遇到设计困难时的一些提示。 

    电子表格通常使用第三维,但是表不应该使用第三维。解决该问题的另一种方法是使用一对多关系,一方和多方不应放在同一表中。反之,通过去掉重复组 (Class#) 在第一常规表单中创建另一个表,如下所示: 

1022  Jones  412  101-07  
1022  Jones  412  143-01  
1022  Jones  412  159-02  
4123  Smith  216  201-01  
4123  Smith  216  211-02  
4123  Smith  216  214-01

第二常规表单(第二范式):去掉冗余数据 

    请注意在上述表中每个 Student# 值的多个 Class# 值。Class# 实际上不取决于 Student#(主关键字),因此该关系不在第二常规表单中。 

    以下两个表说明第二常规表单(第二范式): 

Students: 

1022  Jones  412  
4123  Smith  216

Registration: 

1022  101-07  
1022  143-01  
1022  159-02  
4123  201-01  
4123  211-02  
4123  214-01

第三常规表单(第三范式):去掉不取决于关键字的数据 

    在最后一个示例中,Adv-Room(顾问办公室号码)实际上取决于 Advisor 属性。该解决方案是将该属性从 Students 表中转移到 Faculty 表中,如下所示: 

Students: 

1022  Jones  
4123  Smith

Faculty: 

Jones  412  42  
Smith  216  42

 
 

上一篇:操作系统环境 Environ 函数  下一篇:数据库规范化技巧