它仍然是规范化的数据库架构吗?数据库

时间:2010-09-22 18:07:37

标签: database rdbms normalization 3nf

我有以下db-schema。

文件 GROUP BLOCK 表示XML文件的对象结构。 FILE 是根。 GROUP 的FK为 FILE BLOCK 有一个FK到 GROUP ,另一个FK到 UNIT

UNIT FILE 的上下文中将来自不同 GROUPs 的“类似” BLOCK 分组。

数据库目前为3NF。但我想知道哪些 UNIT 属于 FILE .id = 1。要做到这一点,我必须创建一个连接所有4个表的查询。为了优化此架构,我可以创建新关系 UNIT n - FK - > 1 FILE 。然而,我的查询只在优化的db-schema上加入了两个表。 这里有一个问题:这个DB(有了这个新的FK)还在3 NF吗?理论说什么?

BLOCK  n--FK-->1  GROUP  n--FK-->1  FILE
 n 
 |
 FK    
 |    
 1  
Unit

            +--------+
      +-----|  File  |.....+
      |     +--------+     .
      |                    .
     /|\                  /.\
 +--------+           +--------+
 | Group  |--+     +--|  Unit  |
 +--------+  |     |  +--------+
             |     |
            /|\   /|\
           +---------+
           |  Block  |
           +---------+

3 个答案:

答案 0 :(得分:1)

从提供的信息来看,这似乎是一个真正的并行层次结构。在此基础上,我认为拟议修正的模式仍将标准化为3NF。

答案 1 :(得分:0)

在进行更改之前,尚不清楚UNIT表如何适应模式。

显然,在进行更改之后,您只需要知道哪些单元属于某个文件即可加入FILE和UNIT表。

由于表是在3NF中,当所有功能依赖关系由键,整个键,以及除键之外的任何东西(所以帮助我Codd)确定时,你必须从那个角度看你的架构。

鉴于可获得的信息,很可能这些表都是3NF(BCNF,4NF和5NF的AFAICT)。

答案 2 :(得分:0)