美文网首页
数据库关系规范化

数据库关系规范化

作者: 祭祀WO菛僾_3930 | 来源:发表于2018-06-23 14:56 被阅读0次

关系规范化中的4个问题

  • 1:数据冗余:比如,每一个系的系主任姓名重复出现,重复次数与该系所有学生的所有课程成绩出现次数相同。这将浪费很大的存储空间。

  • 2:更新异常:由于数据冗余,当更新数据库中的数据时,系统要付出很大的代价来维护数据库的完整性,否则会面临数据不一致的危险。比如,某系更换系主任后,必须修改与该系学生有关的每一个元组。

  • 3 : 插入异常:如果一个系刚成立,尚无学生,则无法把这个系及其系主任的信息存入数据库。
    所以插入操作异常是指应该插入的数据未被插入。

  • 4 : 删除异常:如果某个系的学生全部毕业了,则在删除该系学生信息的同时,这个系及其系主任的信息也丢掉了 。

范式

1NF: 属性不可分
第二范式(2NF):符合1NF,并且非主属性完全依赖于码。(更通俗说有主键ID))
第三范式(3NF):符合2NF,并且,消除传递依赖。(3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余)

四种范式之间关系

部分函数依赖(partial functional dependency)和完全函数依赖(full functional dependency)

部分函数依赖是指如果X→Y,并且存在X的一个真子集X0,使得X0→Y,则称Y对X部分函数依赖

部分函数依赖

完全函数依赖是指指如果X→Y,并且不存在任何一个X的一个真子集X0,使得X0→Y,则称Y对X完全函数依赖。

如果非主属性B函数依赖于主属性A,而且A的任何一个真子集不能->B,则称B完全函数依赖于A;反之,若A的存在一个真子集能->B,则称B完全函数依赖于A。

例:成绩表(学号,课程号,成绩)关系中,
完全函数依赖:(学号,课程号)→ 成绩,学号 -\→ 成绩,课程号 -\→ 成绩,所以(学号,课程号)→ 成绩 是完全函数依赖

传递函数依赖(Transitive functional dependency)

In Database Management System, a transitive dependency is a functional dependency which holds by virtue of transitivity. A transitive dependency can occur only in a relation that has three or more attributes. Let A, B, and C designate three distinct attributes (or distinct collections of attributes) in the relation. Suppose all three of the following conditions hold:

  1. A → B
  2. It is not the case that B → A
  3. B → C

Then the functional dependency A → C (which follows from 1 and 3 by the [axiom of transitivity]) is a transitive dependency.

In database normalization, one of the important features of third normal form is that it excludes certain types of transitive dependencies. E.F. Codd, the inventor of the relational model, introduced the concepts of transitive dependence and third normal form in 1971.

Example

A transitive dependency occurs in the following relation:

The functional dependency {Book} → {Author Nationality} applies; that is, if we know the book, we know the author's nationality. Furthermore:

  • {Book} → {Author}
  • {Author} does not → {Book}
  • {Author} → {Author Nationality}
    Therefore {Book} → {Author Nationality} is a transitive dependency.

Transitive dependency occurred because a non-key attribute (Author) was determining another non-key attribute (Author Nationality).

相关文章

  • 数据库相关操作

    数据库 数据库规范 规范化是数据库设计的核心思想,规范化涉及在数据库的表格中建立关系,对有关系但是存在于不同表中的...

  • 关系数据库规范化(范式)

    layout: post title: 关系数据库规范化(范式) categories: JAVA descrip...

  • 关系型数据库与非关系型数据库NoSql

    关系型数据库和非关系型区别 1. SQL VS NoSQLSQL 关系型数据库是规范化语言,它有固定的表结构,不容...

  • 浅谈数据库三范式

    范式: 范式是符合某一种级别的关系模式的集合,关系数据库的规范化理论认为:关系数据库的每一个关系都要满足...

  • 关系型数据库几大范式的理解总结

    范式的定义 关系型数据库中的关系是需要满足一定条件的,满足这些不同程度的规范化就叫做范式。范式按照规范化程度从低到...

  • 数据库范式

    范式是关系数据库关系模式规范化的标准,从规范化的宽松到严格,分为不同的范式,通常使用的有第一、第二、第三范式及BC...

  • 2019-04-03 数据库技术基础

    本章考点:数据库模型、数据模型、ER 图、规范化、数据库的集合运算和关系运算、数据库语言 SQL,了解数据库管理系...

  • 数据库范式 1NF, 2NF, 3NF的问题与细解

    一. 关于数据冗余与异常 数据库的规范化数据库规范化是一种在数据库中组织数据的技术。 规范化是消除冗余(重复)和不...

  • 数据库关系规范化

    关系规范化中的4个问题 1:数据冗余:比如,每一个系的系主任姓名重复出现,重复次数与该系所有学生的所有课程成绩出现...

  • 【软件设计师】笔记二:数据库系统

    Ps:重要程度 五颗星 数据库模式 ER模型 关系代数与元组演算 规范化理论 并发控制 数据库完整性约束 分布式数...

网友评论

      本文标题:数据库关系规范化

      本文链接:https://www.haomeiwen.com/subject/aqoryftx.html