我如何做每个标准化阶段?

时间:2013-02-02 13:32:09

标签: database database-design normalization

我有一个要创建的数据库,其中包含我需要包含在其中的字段列表。我需要做一个表格,显示从1NF到2NF到3NF的归一化过程。但是,我不理解AT ALL的标准化,我迫切需要尝试将其标准化。我使用的字段如下:

客户id

用名字

电子邮件

PHONENO

预留ID

DateRes

累计(Y / N)

PhoneID

品牌

模型

OperatingSystem的

屏幕尺寸

StorageSize

价格

描述

IMG1

IMG2

缩略图

库存

已标记(是/否)

的ContactID

主题

消息

DateContact

回复(是/否)

我不擅长数据库设计,所以任何帮助都会有用。

1 个答案:

答案 0 :(得分:1)

假设这不是作业,我想知道为什么你必须展示你达到3NF的过程。如果您的数据库在3NF,谁在乎你是如何到达那里的?再说一次,假设这不是作业,有一种简单的方法来设计一个3NF的数据库。

学习ER建模。使用ER建模来描述数据库必须满足的信息要求。仔细选择您的实体。对于每个实体,请非常仔细地选择该实体的ID。如果它不在给定的数据中,则可能必须合成id。这是数据分析,而不是数据库设计。非常,非常确定您在此阶段发现的属性是否附加到正确的实体或关系。

这取决于上下文。例如,在人事系统中,“出生日期”是雇员的属性。但是在分娩中心,“出生日期”是出生的一个属性,出生的人与出生有关系。一个人可以在一个出生时出生。

了解如何将ER模型转换为关系模型。出于这些目的,可以将SQL模型和关系模型视为等效模型。在选择主键时要非常非常小心,并要注意使用“automunber”等功能的后果。您可能需要使用此功能,但是当冗余数据输入导致两行具有不同的主键时,它们会提供应对方法,这两个主键都指向主题实体的同一实例。

如果您的属性已连接到正确的实体或关系,如果您正确转换为关系模型,并且您选择了正确的主键,则数据库将自动处于3NF。

如果这是IS作业,那么你的问题就不清楚老师的要求了。这可能就像老师试图教你什么一样容易,因为它告诉我们真正的要求是什么。