Re: [考題] 101調查局-三等資訊-資料庫-第一大題

看板Examination (國家考試)作者 (HAHAHA~)時間13年前 (2013/05/21 18:03), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
※ 引述《jcpf126 (PPCat)》之銘言: : 上次PO文章後,就有人來發信問我這一題,在這邊把我的答案PO給大家看 : 當初遇到這題時整個傻眼,因為感覺這題有些是沒有標準答案的 : 況且各個關係也沒標示基數比,一整個申論題的Fu : 整大題是60分,我取得的分數是49分,所以以下答案僅供參考,畢竟記憶也不是很清楚 : 因為我的資料庫程度沒有很好,希望有這題拿滿分的強者來幫忙解答一下 : (感覺大家似乎不太敢公開在國考版問,是我的錯覺嗎= =??) : 題目連結:http://wwwc.moex.gov.tw/ExamQuesFiles/Question/101/101140_41050.pdf : 答案: : 一、 : (1)是,同一問題可以在不同課程使用,要是針對每一課程都設定專屬問題,問題數量 : 會過於龐大且麻煩,且問題的實體已有自己的主鍵可分辨,判斷該關係為m:n : (2)否,因為沒有一個屬性可以分辨一個問題是屬於哪份問卷,也就是假設某課程 : 有A和B問卷,對於某個問題,無法判斷問題是屬於A問卷還是B問卷,查詢會有混淆 : (3)不適合,CS和CSQ間無太大共通性,合併並無太大意義, : 且將使得實體間的關係之語意變模糊而難以理解,資料庫內容將變得更龐大 : (4)優點: : 1.資料會合併,查詢效率可提升 : 2.ERD圖變的更精簡,可減少建立一個關聯表 : 3.去除多重關係問題 : 4.資料庫的程式開發者在開發上會變更容易,需要合併查詢的次數可降低 : 缺點: : 1.問題和課程實體間的關係表達力降低,使用者在理解上可能會變困難 : 2.資料庫變得更龐大,浪費空間 : 3.合併後的表格結構複雜化,不易維護修改 : 4.出現更新混淆(Update anomalies)的可能性會提高,正規化程度可能下降 : (5)是考關聯表轉換,(6)~(9)題是SQL語法,因為比較無爭議,這應該不用寫吧..... 關於(6)SQL語法,本身遇到了一些問題: 建立CourseCQCS_CSQ關聯表 mysql> SELECT * FROM Course; +------+--------+ | Cid | Cname | +------+--------+ | 1 | 數學 | | 2 | 地理 | +------+--------+ 2 rows in set (0.00 sec) mysql> SELECT * FROM CQ; +------+------+------+ | Cid | Qid | Qseq | +------+------+------+ | 1 | 3 | 10 | | 2 | 3 | 12 | +------+------+------+ 2 rows in set (0.00 sec) mysql> SELECT * FROM CS_CSQ; +------+------+------+-------+--------+ | Cid | Sid | Qid | score | Answer | +------+------+------+-------+--------+ | 1 | 2 | 3 | 90 | 4 | | 2 | 2 | 3 | 85 | 5 | +------+------+------+-------+--------+ 2 rows in set (0.00 sec) 輸入SQL語法做搜尋 mysql> SELECT Course.Cname AS Cname, CQ.Qseq AS Qseq FROM CS_CSQ, Course, CQ WHERE CS_CSQ.Qid=CQ.Qid; +--------+------+ | Cname | Qseq | +--------+------+ | 數學 | 10 | | 數學 | 10 | | 地理 | 10 | | 地理 | 10 | | 數學 | 12 | | 數學 | 12 | | 地理 | 12 | | 地理 | 12 | +--------+------+ 8 rows in set (0.00 sec) 想請問大家: 1.關聯表的設計有問題嗎? 2.SQL搜尋的資料重覆,是因為語法錯誤嗎? 謝謝大家不吝指教~ 感謝asdd大大的回覆, 試了下面的command: mysql> SELECT DISTINCT Course.Cname AS Cname, CQ.Qseq AS Qseq FROM -> CS_CSQ, Course, CQ -> WHERE CS_CSQ.Qid=CQ.Qid; +--------+------+ | Cname | Qseq | +--------+------+ | 數學 | 10 | | 地理 | 10 | | 數學 | 12 | | 地理 | 12 | +--------+------+ 4 rows in set (0.00 sec) 我再繼續研究一下, 謝謝asdd大大的回覆! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 116.59.236.223

05/21 18:14, , 1F
Select後面加distinct試試看
05/21 18:14, 1F
※ 編輯: decken 來自: 114.42.61.50 (05/22 01:22)
文章代碼(AID): #1HcqPPDu (Examination)
文章代碼(AID): #1HcqPPDu (Examination)