
代號:
頁次:
-
請進行 BCNF 正規化,並寫出正規化後的關連。(10 分)
下列那幾個是正確的 SQL 語法?(5分)
SELECT * FROM Paper WHERE end-start>10;
SELECT * FROM Paper WHERE end-start<0;
SELECT SUM(title) FROM Paper;
SELECT year,COUNT(*) FROM Paper GROUP BY year;
SELECT year,COUNT(*) FROM Paper ORDER BY year;
下列 SQL 語法執行後會產生幾行(tuples)的資料?(5分)
SELECT paper_ID FROM Paper WHERE year<=2022;
SELECT DISTINCT paper_ID FROM Paper WHERE
year<=2022;
SELECT AVG(year) FROM Paper GROUP BY journal;
SELECT * FROM Paper WHERE journal LIKE '%t';
SELECT title FROM Paper ORDER BY year;
二、延續第一題所給的 Paper 關連與資料表,連同新增加發表者及聯絡人兩
關連如下,
Paper(paper_ID, title, journal, vol, year, start, end, TR-ID)
Authors(au_ID, name):發表者 ID(au_ID)及發表者姓名(name)
Paper_Authors(paper_ID, au_ID):論文 ID(paper_ID)及發表者(au_ID)
每篇論文可以有多位發表者,但每位發表者都只有一個對應的發表者
ID,且可以(共同)發表多篇論文。
請寫 SQL 指令以列舉每篇論文的 ID 及名稱。(5分)
請說明以下 SQL 指令所查詢出的資料為何?(5分)
SELECT DISTINCT P.title
FROM Paper P, Authors A, Paper_Authors PA
WHERE P.paper_ID=PA.paper_ID AND A.au_ID=PA.au_ID AND
name='Johnny Goodyear';
請說明以下 SQL 指令所查詢出的資料為何?(5分)
SELECT COUNT(DISTINCT A.au_ID)
FROM Authors A, Paper_Authors PA1, Paper_Authors PA2
WHERE PA1.au_ID=A.au_ID AND A.name='Johnny Goodyear' AND
PA2.au_ID<>A.au_ID AND PA1.paper_ID=PA2.paper_ID;
請寫出對應以下關聯式代數(Relational Algebra)的 SQL 指令。(5分)
title, year (year = 2022(Paper))