每当为数据库绘制专用 ER图并将其映射到关系模式时,我被告知它保证了3NF。
这个说法是真的吗?
如果没有,有人能给我举个反例吗?
此外,请告诉我,当关系模式从一个完美的ER图映射时,是否可以声称任何正常形式都是严格遵循的?
发布于 2015-06-24 12:49:09
简短的回答是否定的。根据分析和设计方法,可以有ER模型的示例,它们在ER术语中看起来非常合理,但不一定转换为3NF中的关系模式。ER建模和表示法不足以保证所有函数依赖关系在数据库设计中得到正确的执行。经验丰富的数据库设计人员意识到这一点,并应用其他技术来提出“适当的”设计。
Terry设计了一种用于数据库设计的形式化方法,该方法保证关系模式满足第五种范式(参见orm.net)。他使用的是对象角色建模方法,而不是ER模型。
发布于 2015-06-24 11:35:26
图中只显示了您拥有的实体和属性以及实体之间的关系。您的属性可能会违反常规形式。ER图只是一个表示,它不强制执行任何规则。
在ER图中表示模型并不意味着对3NF.的满意。
错误声明背后的思想可能基于这样一种想法:例如,当您将重复组从列转换为子表中的行时,或者将部分依赖列移到另一个表时,您正在增加关系的正常形式。然而,图解惯例并没有以任何方式强制执行。
发布于 2015-06-24 09:57:49
让我们看一个示例(在oracle中):
CREATE TABLE STUDENT (
ID INTEGER PRIMARY KEY,
NAME VARCHAR2(64) NOT NULL,
RESIDENCE_STREET VARCHAR2(64),
RESIDENCE_CITY VARCHAR2(64),
RESIDENCE_PROVINCE VARCHAR2(64),
RESIDENCE_POSTALCODE NUMBER(8)
);在一些国家,邮政编码使用前缀来标识区域或省份,因此RESIDENCE_PROVINCE具有来自RESIDENCE_POSTALCODE的功能依赖。但是RESIDENCE_POSTALCODE是一个非素数属性.那么这个简单而常见的例子就是“合法”,而不是3NF。
https://stackoverflow.com/questions/31023058
复制相似问题