Re: [考題] 資料庫 VIEW 的限制 [100公務]

看板Examination (國家考試)作者 (開弓)時間13年前 (2013/07/05 06:58), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《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, B->C, AB->E, AB->G}中的相依關係完全可以從F裡面推導出來 假設F+是{H->A, A->B, B->C, AB->E, AB->G, AB->C} 則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]<<<後面這個用正規表示法表示應該看得懂吧?F1 or F2 在此狀況下,其交集結果可以決定其中一個關聯的所有相依關係 因此可以成為被決定關聯的參考性限制 於是你join的時候就不會有值組奇蹟或者值組黑洞... : 另外問個小問題: : 若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)

07/05 08:12, , 1F
AB->C 與B->C重複 , 然後M+這兩個都消失了? XD
07/05 08:12, 1F
少打了 瞎爆...XD 我重新補回去了,這樣還有錯嗎@@? ※ 編輯: ARCHERDEVIL 來自: 175.111.51.2 (07/05 08:25) ※ 編輯: ARCHERDEVIL 來自: 175.111.51.2 (07/05 08:27)

07/05 10:03, , 2F
天啊!你真強!! 好精闢的解答>"<  太感謝了~~~
07/05 10:03, 2F
版上高手今天都去普考熱身了,只剩下我這個廖化XD 這些題目其實說起來都是概念題目,應該要把定義背好 資料庫定義不多,加油: ) ※ 編輯: ARCHERDEVIL 來自: 175.111.51.2 (07/05 22:10)
文章代碼(AID): #1HrVuFeo (Examination)
文章代碼(AID): #1HrVuFeo (Examination)