Database 板


LINE

我来回覆一下, 仅供参考. 这要run过实际的case比较清楚, 完全照教科书讲的做很多地方会觉得 怪怪的. 不过我离开书本已久, 很多东西都是以实务上能run为主, 有没有完全 符合书中的要求就不敢确定了. ※ 引述《Hotpenis5566 (痂骑破麻)》之铭言: : 附上ERD http://yfrog.com/5dermodel2j : 字很多....小弟是刚学资料库的 很想把它学好(组员也摆烂=..=) : 只能靠自己囧 : 很多问题应该都算观念 有请乡民替我解惑 : 我想知道自己哪里对哪里错........感恩..... : 帮我看我解释的 怕我有观念上的错误 (感恩~^^") : 其实看书有点不是很懂 : 我试着用自己的想法写出来 : (以下开始): : 1.在资料库里一开始先画出大概的主架构(ER MODEL)→不明确也没关系 : 2.接着将ERD转换成关联纲目(也就是很多个Table) : 3.将很多个个关联纲目做第1.2.3正规化 : 正规化完再去修正ERD 使之更明确 →是这样吗= =? 以上同意. 资料关联架构会改的原因除了可能需求分析阶段时有疏漏以外, 还有就是应实际需求而改变, 资料库的设计是为了配合实务需要的. : 问题: : 1.a.像关联纲目的定义每一个属性为简单且单值 : 岂不是我们要第一正规化这个步骤是多余的吗= =? 第一正规化除了要去除掉单一属性多值的状况外, 还要去除重复的整笔记录. 例如, 学生资料表当中出现以下状况: 王小明,A111222,男,180cm,72kgw 王小明,A111222,男,180cm,72kgw 以上整笔记录重复两次, 这明显不符合第一正规化, 但是在ERD设计时你无法 预测. 在转为资料表後, 加上条件限制才将这种状况排除掉. : b.为什麽Relationship不能加主键? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 印象中没听说过这回事. 这是指什麽情况? 是指在画ERD时, 只有Entity才能 设主键的意思? : 2.a.正规化是只正规实体而已吗? 为什麽不用正规relationship呢? 同样没听说过这回事. relationship转成资料表後, 同样要接受正规化的检验. : 是不是因为relationship是正规实体的产物呢? 我比较偏向将relationship视为是更高一阶的实体, 用来描述既存实体之间的 关联. : 譬如:顾客购买商品这一个关联纲目 : 属性有 CustomerID CustomerName TradeID TradeProduct : 因为CID和TID是关联键 : {CID,TID}→{CNAME} : 所以拆成两个满足2NF : +------------+ +------------+ : |Customer |------Relationship---- | Trade | : +------------+ / \ +------------+ : / \ CID TId / \ : CID CNAME TID TProduct 另外, 以上这张图我不这麽画, 我会画成: [Customer]-(1,n)-< Trade >---(m,1)---[Product] / \ / \ / \ \ CID CNAME CID PID PID Name Price Quantity, Amount, Date Trade是Customer与Product这两个Entity之间的一种relationship, 不过更进一步地把它视为是建构在Customer与Product上的更高一阶的 Entity会更容易引导思考. : b 如果一个关联纲目只有一个关联键它一定满足2NF吗? : (如果不是可以帮我举一个例子吗?) : 换句话说2NF的定义是不是一个关联纲目里有两个以上关联键 : 并且找到一个非关联键与关联键有意义上的关系(譬如商品编号 和商品名称) : 此时就把这整个关联纲目拆成两个对吗? : 因为2NF比较不好理解 : 我再打一个定义上的观念请教一下.. : A,B,C是关联键 找到一个D与ABC是部分函数相依 : 因为C→D (譬如学生学号 对应学生姓名) : 所以要拆成两个表格{A,B,......}和{C,D......} : 再去检查{A,B...}这个关联网目里有没有满足2NF这样 : 有点像递回这样= =? 可能名词定义上有点混淆, 你说的"关联键", 意思应该是要说"被选为做主键的 属性组"吧? 当{A,B,C}这组属性被选做当主键时, 其它的属性都必须"完全依附" 於{A,B,C}才行, 这才满足2NF. 如果找到某个属性D, D是依附於C的话, 那麽D对 {A,B,C}就称为"部份依附", 只要发现有"部份依附"的状况, 就不符合2NF. 所以 才需要拆表. 注: 我觉得"相依"翻得不好, 好像是彼此互相依附的意思, 容易引起误会. 所以 我用"依附"代替"相依". : 3. 第三正规化 : 譬如 : 学生学号 学生姓名 学生系所 学生年级 学生住址 学生的房东 房东电话 : 一个学号对应一个学生住址 : 一个学生住址对应一个房东 所以不满足3NF : 故需拆成(学号.....住址) 和(住址....电话) : 这样= ="? 不知道有没有讲错 3NF要排除掉"递移依附"的状况. 以"学生学号"为主键来说, 透过学生学号可以 查到以上任何一个属性. 但是"房东电话"应该也能够透过"学生的房东"查到才对. 意即: 学生学号 -查-> 学生房东 -查-> 房东电话 | ^ +--------------查------------+ 这就出现"递移依附"的状况了. 意即"房东电话"依附在"学生房东"上, 而 "学生房东"又依附在"学生学号"上. 最後补充一点: 如果"学生房东"是"候选键"的话, 那麽这样并不违反3NF, 但在这里"学生房东"显然不能当成"候选键"来用, 因此这个例子确实违反3NF. : 4.(最後一个了) : 如果一开始的ERD画的够详尽明确 是不是就省下正规化的时间 : 我看我的TABLE实在想不出来可以哪里可以再改进了= =? : 请好心大大帮我看一下 Orzzzzzzzzzzzzz 嗯..感觉有些是多余的. 我在之前的回文曾经画了一个资料关联图. 或许可以参 考看看. 不过若硬要我划"正统的ERD", 那我大概也画不好. XD : +-------------------------+ : |学生 | : +-------------------------+ : | 学号 {主键} | 49635001 张小明 资管 3 091234567 : | 姓名 | : | 系 所 | : | 年级 | : | 电话 | : +-------------------------+ : +----------------------------+ : | 预定 | : +----------------------------+ : |学生学号 (外部键) | : |预定流水号 (外部键) | : | | : | | : | | : | | : +----------------------------+ : +-------------------------+ : |预定单 | : +-------------------------+ : | 预定流水号 (主键} | 1 49635001 A101 20090516 08:00 Null : | | 20090517 10:00 20090517 12:00 预约中 Null : | | : | 申请日期 | 2 49635001 A102 20090516 08:05 Null : | 取消日期 | 20090518 19:00 20090518 21:00 200 : | 使用开始时间 | : | 使用结束时间 | : | 使用状态(预约中,取消) | : | 晚间开灯费用 | : | | : | | : +-------------------------+ : ~ : +----------------------------+ : |纪录 | : +----------------------------+ : |预定单流水号 (外部键) | : |场地编号 (外部键) | : | | : | | : | | : | | : +----------------------------+ : +-------------------------+ : |场地 | : +-------------------------+ : |编号 {主键} | A101篮球场A : |名称 | A102排球场A : | | : | | : +-------------------------+ : ~ : +-------------------------+ : |优先预定 | : +-------------------------+ : | 场地编号 (外部键) | A101 00153 20090517 08:00 20090517 10:00 : | 课程编号 (外部键) | : | 课程开始时间 | //这在学期初就汇入资料库 : | 课程结束时间 | 如果要设定时是不是在程式端设定第一天上课後 : | | 每加七天同一时段不能外借给学生= =? : +-------------------------+ : ~ : +-------------------------+ : |体育课程 | : +-------------------------+ : |课程编号 {主键} | 00153 : |课称名称 | 篮球3 : |老师姓名 | 王大同 : | | : +-------------------------+ : ~ : +-------------------------+ : |设备租借 | : +-------------------------+ : | | 001 49635001 A1 50 未还 : |学生学号 (外部键) | : |设备ID (外部键) | : |借用数量 | : |借用状态 | : | | : +-------------------------+ : +-------------------------+ : |设备 | : +-------------------------+ : |设备ID {主键} | A1 篮球 150 : |设备名称 | : |库存数量 | : | | : +-------------------------+ : ~~ --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.104.190.247
1F:推 linmic:推认真 05/20 21:53







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP