Assignment_5.pdf

‫ﻣﺠﻤﻮﻋﻪ ﺗﻤﺮﻳﻦ ﻫﺎي ﺳﺮي ﭘﻨﺠﻢ درس ﭘﺎﻳﮕﺎه داده ﻫﺎ )‪(1‬‬
‫ﻣﻬﻠﺖ ﺗﺤﻮﻳﻞ‪1386/9/21 :‬‬
‫ﻧﺤﻮه ﺗﺤﻮﻳﻞ‪db.course@gmail.com :‬‬
‫‪ .I‬ﺗﻤﺮﻳﻦ ﻫﺎي اﺻﻠﻲ‪:‬‬
‫‪-1‬‬
‫‪-2‬‬
‫‪-3‬‬
‫‪-4‬‬
‫‪-5‬‬
‫ﻛﺪاﻣﻴﻚ از ﺗﺒﺪﻳﻞﻫﺎي ‪ C/I ، E/C ، E/E‬در ﭼﻪ وﺿﻌﻲ ﻻزم ﻧﻴﺴﺖ اﻧﺠﺎم ﺷﻮد؟‬
‫ﻣﺰاﻳﺎ و ﻣﻌﺎﻳﺐ ﻣﻔﻬﻮم دﻳﺪ ﭼﻴﺴﺖ؟‬
‫در ﻋﻤﻞ ﻛﻲ از ﻣﻔﻬﻮم دﻳﺪ ﺧﺎرﺟﻲ اﺳﺘﻔﺎده ﻧﻤﻲ ﻛﻨﻴﻢ؟‬
‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺟﺪول ﻫﺎي ﭘﺎﻳﮕﺎه داده ﻫﺎي ﻣﺤﻴﻂ آﻣﻮزﺷﻲ‪ ،‬دﻳﺪﻫﺎي ﻻزم ﺑﺮاي ﺗﻮﻟﻴﺪ ﻛﺎرﻧﺎﻣﻪ ﺗﺮﻣﻲ و ﺧﻼﺻﻪ ﻛﺎرﻧﺎﻣﻪ ﻛﻞ دوره را ﺗﻌﺮﻳﻒ ﻛﺮده‪,‬‬
‫دﺳﺘﻮرﻫﺎي ﻻزم ﺑﺮاي اﻳﻦ ﻛﺎر را در ‪ SQL‬ﺑﻨﻮﻳﺴﻴﺪ‪.‬‬
‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﻌﺮﻳﻒ دﻳﺪﻫﺎي داده ﺷﺪه‪ ،‬در ﻫﺮ ﻣﻮرد ﭘﺬﻳﺮا ﻳﺎ ﻧﺎﭘﺬﻳﺮا ﺑﻮدن دﻳﺪ را ﺑﺎ ﻗﻴﺪ ﻣﺜﺎل ﻣﺸﺨﺺ ﻛﻨﻴﺪ‪.‬‬
‫‪V1=S JOIN SP‬‬
‫‪V2=S JOIN P‬‬
‫‪V3=SELECT S# FROM S‬‬
‫‪EXCEPT | UNION | INTERSECT‬‬
‫‪SELECT DISTINCT S# FROM SP‬‬
‫‪V4=SELECT COTITLE , COCRED FROM COT.‬‬
‫‪ -6‬ﺑﺎ اﺳﺘﻔﺎده از ﻣﻔﻬﻮم دﻳﺪ‪ ،‬ﮔﺰارﺷﺎت زﻳﺮ را ﺗﻮﻟﻴﺪ ﻛﻨﻴﺪ‪:‬‬
‫‪ -1‬ﻋﻨﻮان ﻫﺮ درس و ﻣﻴﺎﻧﮕﻴﻦ ﻧﻤﺮات آن در ﻫﺮ ﺗﺮم – ﺳﺎل‬
‫‪ -2‬ﻛﻞ واﺣﺪﻫﺎي اﻧﺘﺨﺎﺑﻲ ﻫﺮ داﻧﺸﺠﻮ درﻫﺮ درس‬
‫‪ -3‬ﻋﻨﻮان ﻫﺮ درس و ﺗﻌﺪاد داﻧﺸﺠﻮﻳﺎن ﻣﺮدود در آن در ﻫﺮ ﺗﺮم – ﺳﺎل‬
‫‪ -4‬ﺑﺎ ﻓﺮض وﺟﻮد ﺟﺪول )ﻫﺎي( ﻣﺒﻨﺎي ﻻزم ﻧﻤﺎﻳﺸﮕﺮ ارﺗﺒﺎط درس – اﺳﺘﺎد – ﮔﺮوه درﺳﻲ ‪) ...‬ﻛﻪ ﺑﺎﻳﺪ ﻣﺘﻨﺎﺳﺒﺎً ﻃﺮاﺣﻲ ﺷﻮد )ﻧﺪ((‪ ،‬ﺑﻪ‬
‫ﻧﻴﺎزﻫﺎي زﻳﺮ ÷اﺳﺦ دﻫﻴﺪ‪:‬‬
‫‪ : 1-4‬ﮔﺰارش ﺣﺎوي ﻧﺎم و ﻧﺎم ﺧﺎﻧﻮادﮔﻲ اﺳﺘﺎد و ﻣﺘﻮﺳﻂ ﺗﻌﺪاد واﺣﺪﻫﺎي ﺗﺪرﻳﺲ او در ﻫﺮ ﺗﺮم‬
‫‪ : 2-4‬ﻣﻴﺎﻧﮕﻴﻦ ﺗﻌﺪاد واﺣﺪﻫﺎي ﺗﺪرﻳﺲ اﺳﺘﺎدان در ﻫﺮ ﺗﺮم‬
‫‪ : 3-4‬ﻧﺎم و ﻧﺎم ﺧﺎﻧﻮادﮔﻲ اﺳﺘﺎد و ﺗﻌﺪاد درﺳﻬﺎي ﺗﺪرﻳﺲ ﺷﺪه در ﻫﺮ ﺗﺮم‬
‫‪ -7‬دﻳﺪ ﺳﺎﺧﺘﻪ ﺷﺪه )ذﺧﻴﺮه ﺷﺪه( ﭼﻴﺴﺖ؟ ﻛﺎرﺑﺮد‪ ،‬ﻣﺰاﻳﺎ و ﻣﻌﺎﻳﺐ آن را ﺑﻴﺎن ﻛﻨﻴﺪ‪.‬‬
‫‪ -8‬آﻳﺎ دﻳﺪﻫﺎي ‪ V2 , V1‬ﺑﺎ ﺗﻌﺮﻳﻒ ﻫﺎي داده ﺷﺪه از ﻧﻈﺮ ﻣﻌﻨﺎﻳﻲ ﻳﻜﺴﺎن ﻫﺴﺘﻨﺪ؟ آﻳﺎ ﭘﺬﻳﺮا ﻫﺴﺘﻨﺪ ﻳﺎ ﻧﺎ ﭘﺬﻳﺮا؟‬
‫* ‪V1=SELECT‬‬
‫‪FROM STT‬‬
‫;'‪WHERE STL='bs' OR STJ='conq‬‬
‫* ‪V2=SELECT‬‬
‫'‪FROM STT WHERE STL='bs‬‬
‫‪UNION‬‬
‫* ‪SELECT‬‬
‫;'‪FROM STT WHERE STJ='conq‬‬
‫‪ -9‬ﻣﺤﺪودﻳﺖﻫﺎي ‪ SQL‬اﺳﺘﺎﻧﺪارد در ﻋﻤﻠﻴﺎت ذﺧﻴﺮهﺳﺎزي از دﻳﺪﻫﺎ را ﺑﺮرﺳﻲ ﻛﻨﻴﺪ‪.‬‬
‫‪ -10‬اﻣﻜﺎﻧﺎت و ﻣﺤﺪودﻳﺖﻫﺎي ﻳﻚ ‪ DBMS‬راﺑﻄﻪاي )ﺟﺪوﻟﻲ( را در ﻋﻤﻠﻴﺎت ذﺧﻴﺮهﺳﺎزي از دﻳﺪﻫﺎ ﺑﺮرﺳﻲ ﻛﻨﻴﺪ )ﺑﺎ ﻣﺜﺎلﻫﺎي ﻣﻨﺎﺳﺐ ﺷﺒﻴﻪ‬
‫ﻣﺜﺎلﻫﺎي ﻣﻄﺮح ﺷﺪه در ﻛﻼس(‬
‫ ﺟﺪول زﻳﺮ ﻣﻔﺮوض اﺳﺖ‬-11
‫ﻛﺎرﻣﻨﺪ‬
‫ﻧﺎم‬
‫ﻧﺎم‬
‫ﺧﺎﻧﻮادﮔﻲ‬
‫ﻛﺪ ﻣﻠﻲ‬
‫ﺗﺎرﻳﺦ ﺗﻮﻟﻴﺪ‬
‫آدرس‬
‫ﺣﻘﻮق‬
‫ﺷﻤﺎره‬
‫ﻛﺎرﮔﺰﻳﻨﻲ‬
‫ﺷﻤﺎره اداره‬
EMPL
FN
LN
NC
BD
ADR
SAL
EN
DN
‫ ﺗﻌﺮﻳﻒ ﻛﻨﻴﺪ‬SQL ‫اوﻻً اﻳﻦ ﺟﺪول را در‬
:‫ را ﺑﻪ ﺻﻮرت زﻳﺮ ﺗﻌﺮﻳﻒ ﻣﻲ ﻛﻨﻴﻢ‬DSAL ‫ﺛﺎﻧﻴﺎً دﻳﺪ‬
CREATE DSAL (D,C,SSAL,AVSAL)
AS
SELECT DN,COUNT(*),SUM(SAL),AVG(SAL)
FROM EMPL
GROUP BY DN;
‫ ﻧﺘﻴﺠﻪ را ﺑﺎ دادهﻫﺎي ﻓﺮﺿﻲ ﻧﺸﺎن‬،‫ ﺗﺒﺪﻳﻞ را اﻧﺠﺎم داده‬،‫ اﻣﻜﺎنﭘﺬﻳﺮ اﺳﺖ )ﻫﻢ ﺗﺌﻮري و ﻫﻢ در ﻋﻤﻞ( و اﮔﺮ ﺑﻠﻪ‬E/C ‫در ﻫﺮ ﻣﻮرد ﺑﻴﺎن ﻛﻨﻴﺪ آﻳﺎ ﺗﺒﺪﻳﻞ‬
:‫دﻫﻴﺪ‬
a)
b)
c)
d)
e)
f)
SELECT *
FROM DSAL;
SELECT D,C
FROM DSAL
WHERE SSAL>100000;
SELECT D,AVSAL
FROM DSAL
WHERE C>(SELECT C FROM DSAL WHERE D='D111');
UPDATE DSAL
SET D='D333'
WHERE D='D444';
DELETE FROM DSAL
WHERE C>10;
INSERT INTO DSAL
VALUES ('D555','20',200000,40000);