数据库规范化

前端之家收集整理的这篇文章主要介绍了数据库规范化前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是新进的数据库设计,我已经读了很多关于规范化.如果我有三张桌子:住宿,火车站和机场.我将在每个表中的地址列或其他表引用的地址表中有地址列?有没有过分规范化的东西?

谢谢

解决方法

数据库规范化是关于构建维护某些功能的关系(表)
关系(表)内的事实(列)和各种关系(表)之间的依赖关系
构成模式(数据库).嘴巴满满的,但这就是它的全部.

A Simple Guide to Five Normal Forms in Relational Database Theory
是正常形式的经典参考.本文简单的定义了每个正常形式的本质
及其对数据库表设计的意义.这是一个非常好的“触摸石”参考.

要正确回答您的具体问题,需要额外的信息.你要问的一些关键问题
是:

是地址一个简单的事实(例如文本块)或复合事实(例如).
由多个属性组成:地址行,城市名,邮政编码等)
>与“住宿”有关的其他“事实”是什么,
“机场”和“火车站”?
>什么是“事实”,唯一地和最小限度地标识“机场”,“住宿”
和“火车站”(这些事实通常称为密钥或候选密钥)?
>地址事实与事实之间存在哪些功能依赖关系
组合每个关键字?

所有这一切,你的问题的答案不像人们希望的那么直接!

有没有像“超标准化”这样的事情?也许.这取决于是否
您已经识别和用于构建表的功能依赖关系
对您的应用程序域有意义.

例如,假设确定了一个地址由多个属性组成;其中一个是邮政编码.技术上是邮政代码也是一个复合项目(至少加拿大邮政编码).进一步规范你的识别这些事实的数据库可能是过度规范化.这是因为邮政编码的组成部分与您的应用程序无关,因此与分拣相关他们进入数据库设计将是一个过度规范化.

猜你在找的MsSQL相关文章