ScholarGate
助手

模式优化与分解

模式优化是将关系分解为更小的关系的过程,以达到所需的范式,同时要求分解是无损的,并且理想情况下能保留原始依赖。

用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
下载幻灯片
Learn & explore
视频即将推出

Definition

分解用一组模式替换关系模式R,这些模式的属性共同覆盖R,使得原始关系可以通过连接各部分来恢复(无损连接),并且在可能的情况下,每个原始函数依赖都可以在各部分上强制执行(依赖保留)。

Scope

本主题涵盖了关系模式分解的算法和标准:无损连接属性及其测试方法,依赖保留及其与更高范式之间的权衡,以及从一组函数依赖生成3NF(保留依赖且无损)或BCNF(无损)设计的标准合成和分解算法。它不包括范式本身的定义以及驱动分解的依赖的定义。

Core questions

  • 什么使分解无损,以及如何测试该属性?
  • 分解保留依赖意味着什么?
  • 为什么BCNF分解可能无法保留依赖,而3NF合成却可以?
  • 标准BCNF分解和3NF合成算法如何工作?
  • 在实践中如何选择BCNF和3NF?

Key concepts

  • 模式分解
  • 无损连接属性
  • 依赖保留
  • 虚假元组
  • BCNF分解算法
  • 3NF合成算法
  • 最小覆盖
  • BCNF和3NF之间的权衡

Key theories

无损连接分解
如果二元分解的两个部分的共同属性构成其中至少一个的主键,则该分解是无损的;无损性保证连接这些部分可以精确地重建原始关系,而不会产生虚假元组。
依赖保留
如果各个部分上可强制执行的依赖的并集蕴含所有原始依赖,则分解保留依赖,这样可以在不重新计算连接的情况下检查一致性。
BCNF分解与3NF合成
BCNF分解算法保证无损性,但可能牺牲依赖保留,而从最小覆盖进行的3NF合成算法则保证无损连接和依赖保留,代价是可能停留在3NF。

Clinical relevance

分解算法是规范化理论如何成为可操作设计过程的关键:应用这些算法可以生成避免冗余但仍能有效重建和验证的模式,这直接影响生产数据库的正确性和可维护性。

History

无损连接和依赖保留分解的理论在20世纪70年代发展起来,当时研究人员正式确定了何时拆分关系是安全的。生成保留依赖的3NF设计的合成算法,以及BCNF可能与依赖保留冲突的认识,成为数据库教材的标准内容,并仍然是模式设计的核心。

Key figures

  • Edgar F. Codd
  • Jeffrey D. Ullman
  • Philip Bernstein

Related topics

Seminal works

  • silberschatz2019
  • ramakrishnan2003
  • garciamolina2008

Frequently asked questions

什么是虚假元组,为什么它很重要?
虚假元组是在连接选择不当的分解部分时出现的行,但它不对应于原始关系的任何真实元组。无损连接分解正是不会产生虚假元组的分解,这就是为什么无损性是一个不可协商的要求。
为什么我可能选择3NF而不是BCNF?
分解为BCNF总是保留无损连接属性,但可能会破坏依赖保留,这意味着某些约束只能通过连接表来检查。3NF合成算法保证无损性和依赖保留,因此当不存在保留依赖的BCNF设计时,设计者会接受3NF。

Methods for this concept

Related concepts