作者Adonisy (堂本瓜一)
看板Database
标题Re: [问题]正规化的观念问题
时间Wed Mar 11 22:20:50 2009
※ 引述《bobju (宝贝猪)》之铭言:
: 第一正规化不允许'重复的'记录, 包括两种情况:
: 1. 单一属性多值.
: 2. 重复的记录.
: 为了要能够确定没有重复记录, 所以要有足以'识别'每一笔记录的设计, 也就是主键.
: 主键可以是由单一属性构成, 也可以由多个属性复合而成, 甚至把全部属性都拿来
: 复合在一起当主键亦可.
: 我找到的wiki, 缩址如下:
: http://tinyurl.com/aurwxf
基本上来说,正规化是一种 "检查",而不是设计资料库时
"以设计正规化为主"
以复合键能当成主键的角度而言,以下也可以设定复合主键当主键,但资料库设计中
若以实体关联为设计方式时(ER方法论)
以下都是 ER方法论,和正规化无关
要先在实体中找到一个属性当作主键,它就是代表实体,如果找不到,可以用代替键
所以在设计时有 "天然键" 与 "代替键" 两种主键的设定方式
主键的特性要 "短" , "易取得"
像病人实体就不会以身份证字号当主键,而会以 "病人编号" (代替键) 当主键
避免人昏迷不醒时,没有身份证字号而无法输入资料
如果用复合键当主键,并非不行,但如此一来,学生资料的设计如下:
姓名 生日 性别 地址
假设纯以正规化来看,自然 (姓名,生日,性别,地址) 四属性可以成为不重复的复合主键
你能找到一个同名同姓,同性别,又一样地址的,只有你,没有别人
但也代表你输入资料时,这四个值都要输入才能新增一笔记录
故,会有 "学号" 这个代替键代表学生实体,它不会重复
-------------------------------------------------------------
其实我的观点很简单,就是设计资料库会先找一个方法论设计,像用 ER方法论设计
设计完後,用正规化原理检查是否还要再分出实体
而非用正规化来设计资料库
换言之,我们 ER方法论一开始就开宗名义,实体属性,用属性描述实体
在实体的众多属性中,找一个属性为主键代表实体
--
Information ╳
▕
.
▕
在世界中心呼喊爱........钱 .
▕
______ .
▕
▏ 确定 ▏ .
▕
▔▔▔▔▔▔
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.250.147.242
1F:推 trueQoo:push,我在学校时也是先学 ER方法论,正规化是检查没错 03/11 22:22
2F:推 trueQoo:不想回文了,但确实用ERD设计,就不会一开始有复合主键情况 03/11 22:27
3F:推 trueQoo:我也是学方法论,一开始就设计复合键当主键说真的会被笑... 03/11 22:35