规范化数据字典

时间:2013-06-03 19:05:08

标签: database ms-access database-design normalization

我正在为一个组织创建一个数据字典,它将许多不同来源中的字段组合在一起并定义它们。我在另一个Access数据库中拥有所有数据,但这是一个关系混乱。我是Access的新手,我正在尝试规范化数据库并将数据迁移过来。

来源目前是摘录和报告。更多消息来源即将推出。提取物(旧的和新的)有2个细分,每个细分都有多个子细分。报告有6个细分,没有进一步的子细分。字段显示在1和所有报表和摘录之间的任何位置。无论字段出现在何处,数据定义大多相同,但有时不同。数据定义在Extract细分中是一致的,但在Extracts和Reports之间以及Reports中可以有所不同。对于不同报告中的相同字段名称,数据类型通常不同。

我在规范化数据库中的表(到目前为止)是:字段信息,来源和定义。各自的结构如下,

Tbl_[Field Info]    
Field Name (PK)         Full Name
---------------         ---------------------------
TSN                     Transaction Sequence Number

我认为这是正确的,因为全名不会因字段名称而异。

Tbl_[Sources]
Sources (PK)
-------------
New Extracts
Old Extracts

这是我开始认为事情是错误的。当然,除了消息来源本身之外,消息来源应该在表格中有其他东西吗?

Tbl_[Definitions]
ID (PK)             Field Name (FK)             Source              Definition
-------             ----------------            -----------         ---------------
1                   TSN                         Old Extracts        blahblah
2                   TSN                         New Extracts        blahblah
3                   ABC                         New Extracts        asdfghjkl

这是我觉得我一定出错的地方。我在Definitions表中经常重复相同的定义。

到目前为止,我的组织系统是否有意义?我希望在以后添加更多详细说明数据类型的字段以及该字段是否为数字。

2 个答案:

答案 0 :(得分:0)

有一个基本的例子,旧的和新的提取物中的'TSN'将具有相同的定义和所有其他属性。

在创建数据地图时,根据您的条件,我尝试将旧的和新的一行加入左侧的新内容,这样就可以了解

Tbl_[Definitions]
ID (PK)             Field Name (FK)             Source              Definition          Field Name (Old)             Source (old)             Definition (old)

-------             ----------------            -----------         ---------------      -------             ----------------            -----------         ---------------

1                   TSN                         Old Extracts        blahblah                   TSN                         New Extracts        blahblah

2                   ABC                         New Extracts        asdfghjkl

答案 1 :(得分:0)

为数据字典构建一个体面的关系模型是一个已经开展了三十多年的问题。这不是一个简单的问题。关于这个主题的文献很多,其中一些是有用的。还有很多产品可以解决管理数据字典的问题,但从这些产品中学习数据模型可能非常困难。

你说你是Access的新手,但你没有说你是否对其他一些关系数据库系统有过丰富的经验,比如SQLServer或Oracle等。如果你是关系建模的初学者,我建议你有一个很长的学习曲线,然后才能为数据字典提出一个合适的模型。