Re: [考題] 資料庫 VIEW 的限制 [100公務]
Jul 5th 2013, 06:58, by ARCHERDEVIL
作者ARCHERDEVIL (開弓)
看板Examination
標題Re: [考題] 資料庫 VIEW 的限制 [100公務]
時間Fri Jul 5 06:58:20 2013
※ 引述《beatfuture (菜鳥帽客)》之銘言: : 查講義上寫到 , VIEW 的輸出要包含主鍵 : 那假如使用到兩個表格, ex. FROM 表格1,表格2 : 需要將兩個表格的主鍵都輸出嗎 ? : Q1. : Phone( model,manufacturer,type,price) 第一個是主見 : Customer(custid,email) 第一個是主見 : Purchase(model,custid,date) 前兩個是主見.......新注音選字太爛,饒了我吧... : 建立一個名為Loyal的view , 內容為(custid),(manufacturer)所構成 : 且該顧客至少購買三台以上電話 : --- 我的解法 --- : CREATE VIEW Loyal : SELECT C.custid , P.model ,Ph.custid , P.manufacturer : FROM Customer C , Phone P , Purchase Ph : GROUP BY Ph.model , Ph.date : HAVING COUNT(*)>=3 create view Loyal as ( select custid, email from (select pu.custid, c.cistid, c.email, pu.model from purchase pu, customer c where pu.custid=c.custid group by pu.custid, c.custid, c.email having count(pu.model)>3) ) 應該是這樣 寫view 不要忘記as 記得善用子查詢,雖然效能會變差不過考試沒人管效能 另外view的輸出... 基本上是你想輸出什麼就什麼啦 底層運作才不管你會輸出什麼鬼 會說要你連主鍵一起輸出,是因為希望實際上view是邏輯上的table 而且可以是另外一個view的基底table 完全可以當作table來做操作 所以假設view沒有主鍵,查詢就會很詭異... 至於是不是兩個都要輸出... 嗯... 你輸出一個無關的鍵值進去要幹嗎? 把有關系的放進去就好... group by 要看你select 取用欄位的順序,用最前面幾個,不能中間跳過吧我記得... : Q2. : 已知關聯R={A,B,C,E,G,H}為1NF, : F={A->B , B->C , AB->CEG , H->A} : (1)主鍵是------->(H) 正確 : (2)簡化集合F成為M,使M含最少數量的功能相依 且 F+ = M+ H->A, A->B, B->C, AB->CEG={AB->C, AB->E, AB->G 其中 AB->C 與B->C重複}=AB->E 與AB->G 則M+{H->A, A->B, AB->E, AB->G}中的相依關係完全可以從F裡面推導出來 假設F+是{H->A, A->B, AB->E, AB->G} 則F+∩M+ == H->A 且H->A可以推導出M+裡面的所有相依關係 這樣相依性是無損的 完成。 : (3)若將R分解成 R1(A,B,C,E,G),R2(H,A),則為無失誤合併的分解嗎? 為什麼? 這題觀念同上。 根據(1) 已經知道主鍵是H 所以並且AB->CEG是成立的 所以R1∩R2=A 並且R1中,A->B 因此A是主鍵 所以A->BCEG成立 則A->R1成立 在此狀況下,資料合併就不會有損失或者錯誤多出問題 的確是無損合併分解 : (4)將R分解為無失誤和並且保留F的3NF關聯,註明個關聯的主鍵, : 並注意控制各屬性在各關聯的重複出現。 首先依照上面來看 F={ R1(A,B,C,E,G), R2(H,A)} R2沒問題 R1還有遞移相依 所以拆成R1-1(A,B,E,G) R1-2(B,C)  ̄  ̄ : ps: 第二題看不懂什麼是F+=M+ , 還有無失誤合併是蝦米?? 忘記回答你這個 無損失合併就是當你把F拆成F1跟F2的時候 用合併方法轉回去,不產生資料值組消失或者增生的問題 證明方法是F1∩F2->[F1 | F2] : 另外問個小問題: : 若B->C,D,E, : A,B->F : 是否 A,B->C,D,E,F 成立 ?? : 謝謝大大幫忙解惑 !! 最後這個問題... 嗯... 當然是成立的,還是可以用交集推論... B->CDE 如果是FB, 假設我們把A放進去得到AB->CDE 當作是FAB FB∩FAB結果是B, B->FB內所有的相依關係,所以AB->CDE成立 然後AB->F, 所以把F放進AB->CDE得到AB->CDEF 當然也是成立的 應該是這樣吧? 希望你普考考資料處理還資料庫之前會看到這個:) 加油 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.111.51.2 ※ 編輯: ARCHERDEVIL 來自: 175.111.51.2 (07/05 07:04)This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html
|
留言列表