查看: 303|回復: 7

[每日一題] PL/SQL Challenge 每日一題:2020-6-17 第二范式

[復制鏈接]
論壇徽章:
527
奧運會紀念徽章:壘球
日期:2008-09-15 01:28:12生肖徽章2007版:雞
日期:2008-11-17 23:40:58生肖徽章2007版:馬
日期:2008-11-18 05:09:48數據庫板塊每日發貼之星
日期:2008-11-29 01:01:02數據庫板塊每日發貼之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春紀念徽章
日期:2009-01-04 14:52:28數據庫板塊每日發貼之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食紀念
日期:2009-07-22 09:30:00
跳轉到指定樓層
1#
發表于 2020-7-7 22:28 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

最先答對且答案未經編輯的puber將獲得紀念章一枚(答案不可編輯但可發新貼補充或糾正),其他會員如果提供有價值的分析、討論也可獲得紀念章一枚。

每兩周的優勝者可獲得itpub獎勵的技術圖書一本。

以往舊題索引:
http://www.3490925.live/forum.php?m ... eid&typeid=1808

原始出處:
http://www.plsqlchallenge.com/

作者:Chris Saxon

運行環境:SQLPLUS, SERVEROUTPUT已打開, 最低版本要求:11.2
注:本題給出答案時候要求給予簡要說明才能得到獎品

你老板要求你將這張表進行規范化:

https://devgym.oracle.com/pls/ap ... E:::AI_FILE_ID:1545

*RANK 列存儲的是花色和點數的相對位置,所以有如下的功能依賴關系:

CARD_VALUE -> CARD_RANK
SUIT_VALUE -> SUIT_RANK

哪些選項修改了這張表,使得這個模式是2NF(第二范式)?

(A)
https://devgym.oracle.com/pls/ap ... E:::AI_FILE_ID:1602


(B)
https://devgym.oracle.com/pls/ap ... E:::AI_FILE_ID:1542

(C)
https://devgym.oracle.com/pls/ap ... E:::AI_FILE_ID:1543

(D)
https://devgym.oracle.com/pls/ap ... E:::AI_FILE_ID:1544

論壇徽章:
403
紫蛋頭
日期:2012-05-21 10:19:41迷宮蛋
日期:2012-06-06 16:02:49奧運會紀念徽章:足球
日期:2012-06-29 15:30:06奧運會紀念徽章:排球
日期:2012-07-10 21:24:24鮮花蛋
日期:2012-07-16 15:24:59奧運會紀念徽章:拳擊
日期:2012-08-07 10:54:50奧運會紀念徽章:羽毛球
日期:2012-08-21 15:55:33奧運會紀念徽章:蹦床
日期:2012-08-21 21:09:51奧運會紀念徽章:籃球
日期:2012-08-24 10:29:11奧運會紀念徽章:體操
日期:2012-09-07 16:40:00
2#
發表于 2020-7-7 23:49 | 只看該作者
函數依賴的列不能一起出現,
CARD_RANK
SUIT_VALUE
這兩列原始表都沒有啊

使用道具 舉報

回復
論壇徽章:
535
生肖徽章2007版:猴
日期:2008-05-16 11:28:59生肖徽章2007版:馬
日期:2008-10-08 17:01:01SQL大賽參與紀念
日期:2011-04-13 12:08:17授權會員
日期:2011-06-17 16:14:53ITPUB元老
日期:2011-06-21 11:47:01ITPUB官方微博粉絲徽章
日期:2011-07-01 09:45:27ITPUB十周年紀念徽章
日期:2011-09-27 16:30:472012新春紀念徽章
日期:2012-01-04 11:51:22海藍寶石
日期:2012-02-20 19:24:27鐵扇公主
日期:2012-02-21 15:03:13
3#
發表于 2020-7-8 10:17 | 只看該作者
答案:B

先把簡單的概念說一下,
1NF 屬性是單值不可再分
2NF 不存在傳遞依賴
3NF 關系中的每個依賴都是包含最小關鍵字的依賴

A: 業務主鍵之外再定義一個邏輯主鍵PLAYING_CARD_ID, 在這里顯得多余
   CARD_VALUE -> CARD_RANK
   SUIT_VALUE -> SUIT_RANK
   傳遞依賴并沒有分離出去,依然存在
B: 正解,這都滿足 3NF了
C: 以QZ_SUITS為例,在加了邏輯主鍵后,suit_id -> card_suit -> suit_rank
   這樣傳遞依賴還是存在   
D: QZ_PLAYING_CARDS中傳遞依賴沒有消除

使用道具 舉報

回復
論壇徽章:
527
奧運會紀念徽章:壘球
日期:2008-09-15 01:28:12生肖徽章2007版:雞
日期:2008-11-17 23:40:58生肖徽章2007版:馬
日期:2008-11-18 05:09:48數據庫板塊每日發貼之星
日期:2008-11-29 01:01:02數據庫板塊每日發貼之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春紀念徽章
日期:2009-01-04 14:52:28數據庫板塊每日發貼之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食紀念
日期:2009-07-22 09:30:00
4#
 樓主| 發表于 2020-7-8 22:09 | 只看該作者
〇〇 發表于 2020-7-7 23:49
函數依賴的列不能一起出現,CARD_RANKSUIT_VALUE 這兩列原始表都沒有啊

原始表就是第一張圖,里面有這兩個列。

使用道具 舉報

回復
論壇徽章:
527
奧運會紀念徽章:壘球
日期:2008-09-15 01:28:12生肖徽章2007版:雞
日期:2008-11-17 23:40:58生肖徽章2007版:馬
日期:2008-11-18 05:09:48數據庫板塊每日發貼之星
日期:2008-11-29 01:01:02數據庫板塊每日發貼之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春紀念徽章
日期:2009-01-04 14:52:28數據庫板塊每日發貼之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食紀念
日期:2009-07-22 09:30:00
5#
 樓主| 發表于 2020-7-8 22:10 | 只看該作者
答案BC,本期無人得獎。注意3NF(答案C)也是滿足2NF的。

A:
這將在表中添加一個代理主鍵。這對2NF的違規完全沒有影響! 要解決這些問題,你需要把VALUE_RANK和SUIT_RANK移到單獨的表中。

B:
這選項把VALUE_RANK和SUIT_RANK移到單獨的表中,這兩個表的主鍵分別是CARD_VALUE和CARD_SUIT。

所有的非鍵列都依賴于每個表的整個鍵。所以這個模式是在2NF(以及3NF)之內。

C:
這與前面的方案類似,但在新表上增加了一個代理主鍵。所有的非鍵列都依賴于每個表的整個鍵。所以這個模式是在2NF(以及3NF)之內。

D:
這將為VALUE_RANK和SUIT_RANK值增加一個查詢表。這樣就約束了它們的允許值。但對表的規范化程度沒有影響!

使用道具 舉報

回復
論壇徽章:
403
紫蛋頭
日期:2012-05-21 10:19:41迷宮蛋
日期:2012-06-06 16:02:49奧運會紀念徽章:足球
日期:2012-06-29 15:30:06奧運會紀念徽章:排球
日期:2012-07-10 21:24:24鮮花蛋
日期:2012-07-16 15:24:59奧運會紀念徽章:拳擊
日期:2012-08-07 10:54:50奧運會紀念徽章:羽毛球
日期:2012-08-21 15:55:33奧運會紀念徽章:蹦床
日期:2012-08-21 21:09:51奧運會紀念徽章:籃球
日期:2012-08-24 10:29:11奧運會紀念徽章:體操
日期:2012-09-07 16:40:00
6#
發表于 2020-7-8 22:38 | 只看該作者
newkid 發表于 2020-7-8 22:09
原始表就是第一張圖,里面有這兩個列。

沒看到

使用道具 舉報

回復
論壇徽章:
527
奧運會紀念徽章:壘球
日期:2008-09-15 01:28:12生肖徽章2007版:雞
日期:2008-11-17 23:40:58生肖徽章2007版:馬
日期:2008-11-18 05:09:48數據庫板塊每日發貼之星
日期:2008-11-29 01:01:02數據庫板塊每日發貼之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春紀念徽章
日期:2009-01-04 14:52:28數據庫板塊每日發貼之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食紀念
日期:2009-07-22 09:30:00
7#
 樓主| 發表于 2020-7-8 23:00 | 只看該作者
作者筆誤了,VALUE_RANK和CARD_SUIT才對。

使用道具 舉報

回復
論壇徽章:
403
紫蛋頭
日期:2012-05-21 10:19:41迷宮蛋
日期:2012-06-06 16:02:49奧運會紀念徽章:足球
日期:2012-06-29 15:30:06奧運會紀念徽章:排球
日期:2012-07-10 21:24:24鮮花蛋
日期:2012-07-16 15:24:59奧運會紀念徽章:拳擊
日期:2012-08-07 10:54:50奧運會紀念徽章:羽毛球
日期:2012-08-21 15:55:33奧運會紀念徽章:蹦床
日期:2012-08-21 21:09:51奧運會紀念徽章:籃球
日期:2012-08-24 10:29:11奧運會紀念徽章:體操
日期:2012-09-07 16:40:00
8#
發表于 2020-7-9 00:33 來自手機 | 只看該作者
題目出錯,無論答案是啥都自動得分吧

使用道具 舉報

回復

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則 發表回復

TOP技術積分榜 社區積分榜 徽章 團隊 統計 知識索引樹 積分競拍 文本模式 幫助
  ITPUB首頁 | ITPUB論壇 | 數據庫技術 | 企業信息化 | 開發技術 | 微軟技術 | 軟件工程與項目管理 | IBM技術園地 | 行業縱向討論 | IT招聘 | IT文檔
  ChinaUnix | ChinaUnix博客 | ChinaUnix論壇
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓優訊信息技術有限公司版權所有 聯系我們 
京ICP備09055130號-4  北京市公安局海淀分局網監中心備案編號:11010802021510 廣播電視節目制作經營許可證:編號(京)字第1149號
  
快速回復 返回頂部 返回列表
30岁的男人干啥赚钱快赚钱多 快乐十分钟开奖走势陕西省 江苏快三推荐号码一定牛 10倍杠杆配资 终于破了11选5出号规律 内蒙古11选5怎么玩 七乐彩中奖图表 青海省11选5最新开奖体彩 浙江十一选五技巧选号 大家千万别赌幸运飞艇 内蒙古11选5分布图