資料庫 VIEW 的限制 [100公務] - 考試

Eartha avatar
By Eartha
at 2013-07-05T06:58

Table of Contents

※ 引述《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 當然也是成立的

應該是這樣吧?

希望你普考考資料處理還資料庫之前會看到這個:)


加油

--

All Comments

Quintina avatar
By Quintina
at 2013-07-07T02:32
AB->C 與B->C重複 , 然後M+這兩個都消失了? XD
Freda avatar
By Freda
at 2013-07-08T17:40
天啊!你真強!! 好精闢的解答>"<  太感謝了~~~

資料庫 VIEW 的限制 [100公務]

Harry avatar
By Harry
at 2013-07-05T01:04
查講義上寫到 , VIEW 的輸出要包含主鍵 那假如使用到兩個表格, ex. FROM 表格1,表格2 需要將兩個表格的主鍵都輸出嗎 ? Q1. Phone( model,manufacturer,type,price) 第一個是主見 Customer(custid,email) 第一 ...

[建議]102警特分數及是否辭職

Frederica avatar
By Frederica
at 2013-07-05T01:02
※ 引述《jack0021822 ()》之銘言: : 表達能力的確不好,還有手機排版...回家用電腦看我也無言了。 : 抱歉,會改進。 : 第二試沒過當然就搞笑了,會努力練的。 : 就是要問如果各位大大有這種選擇題分數跟申論內容, : 再加上每天上班前有種無力感,而且想辭職。 : 會辭職嗎? (我承認我有點 ...

去看考場的趣事

Hedy avatar
By Hedy
at 2013-07-05T00:06
今天去某校看考場 跑太早 沒看到考場 又莫名其妙被警衛大罵 又因為我家離那邊很遠 懶得再看一次 想說明天直接去考了啦 回來跟家人抱怨 我媽說 他可能有更年期吧XD 越想越不爽 就打去他們學校反應這件事 之後跑去圖書館念書 念到九點 回家路 ...

方智有機上下冊

Iris avatar
By Iris
at 2013-07-04T23:56
方智有機(上.下)共600(含運) 沒有使用9成9新 如有需要請站內信 可台北火車站或忠孝新生面交 - ...

中華電信 100年計算機概論

Delia avatar
By Delia
at 2013-07-04T23:34
一記憶體位址範圍為 6000(16)~8FFF(16),每一位址可儲存 16 位元,試問該記憶體 容量為多少 KB(Kilo Bytes)? (A)12 KB (B)24KB (C)48 KB (D)96 KB 小弟這題查到的算法解到 8FFF(16)-6000(16)=2FFF(16) 到這都還OK, ...