101調查局-三等資訊-資料庫-第一大題 - 考試
By Lucy
at 2013-05-21T18:03
at 2013-05-21T18:03
Table of Contents
※ 引述《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語法,本身遇到了一些問題:
建立Course、CQ和CS_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大大的回覆!
--
: 上次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語法,本身遇到了一些問題:
建立Course、CQ和CS_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大大的回覆!
--
Tags:
考試
All Comments
By Lauren
at 2013-05-22T17:41
at 2013-05-22T17:41
Related Posts
企管 產品生命週期理論
By Zora
at 2013-05-21T17:51
at 2013-05-21T17:51
稅法-備抵呆帳
By Joe
at 2013-05-21T16:44
at 2013-05-21T16:44
三元 唐志立 國文
By Megan
at 2013-05-21T16:20
at 2013-05-21T16:20
三元 沈浩 生物全套
By Madame
at 2013-05-21T16:03
at 2013-05-21T16:03
小弟的免費線上測驗網站passpass.cc
By Anthony
at 2013-05-21T15:37
at 2013-05-21T15:37