【发布时间】:2013-05-30 00:46:38
【问题描述】:
我正在为一个组织创建一个数据字典,它将在许多不同来源中找到的字段汇总在一起并对其进行定义。我有另一个 Access 数据库中的所有数据,但它是一个关系混乱。我是 Access 的新手,目前正在尝试规范化数据库并迁移数据。
来源目前是摘录和报告。更多资源即将推出。提取物有 2 个细分(旧的和新的),每个细分都有多个细分。报告有 6 个细分,没有进一步的细分。字段出现在 1 和所有报告和摘录之间的任意位置。无论字段出现在何处,数据定义大多相同,但有时会有所不同。数据定义在“提取”细分中是一致的,但在“提取”和“报告”之间以及在“报告”中可能有所不同。不同报告中相同字段名称的数据类型通常不同。
我在规范化数据库中的表(到目前为止)是:字段信息、来源和定义。每个的结构如下,
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 表中的 Source 列是否是 FK,由 Sources 表中的 PK 验证?
-
如果您确定了目前数据中的所有函数依赖关系,您的问题会更容易理解。
-
“功能依赖”你能澄清一下这是什么意思吗?对不起,这个标准化业务很新。您是对的,定义表中的源列是由源表中的 PK 验证的 FK。
-
如果 a 确定 b,则 b 在功能上依赖于 a。维基百科中的文章不适合新手。如果我找到更好的,我会告诉你的。同时,如果不学习函数依赖,就无法学习规范化。对不起,但就是这样。
标签: database ms-access database-design normalization