HW4 Database
HW4 Database
Homework 4
Lecture 5, 6, 7
Spring 2023
Principles of Database Design Homework 3
-2ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ ﺑﺎ اﻓﺰودن وﯾﮋﮔﯿﻬﺎي ﻣﻨﺎﺳﺐ ،ﻣﺠﻤﻮﻋﻪ ﻣﻮﺟﻮدﯾﺖ ﺿﻌﯿﻒ را ﺑﻪ ﻣﺠﻤﻮﻋﻪ ﻣﻮﺟﻮدﯾﺘﯽ ﻗﻮي ﺗﺒﺪﯾﻞ ﮐﻨﯿﻢ .ﺑﻨﺎﺑﺮاﯾﻦ ﻋﻠﺖ
وﺟﻮد ﻣﺠﻤﻮﻋﻪ ﻣﻮﺟﻮدﯾﺘﻬﺎي ﺿﻌﯿﻒ ﭼﯿﺴﺖ؟
-3اﻟﻒ( آﯾﺎ ﻣﯽ ﺗﻮان راﺑﻄﻪ ﺳﻪ ﺗﺎﯾﯽ زﯾﺮ را ﺑﻪ دوﺗﺎﯾﯽ ﺗﺒﺪﯾﻞ ﮐﺮد؟ درﺻﻮرت ﻣﺜﺒﺖ ﺑﻮدن ﺑﺎ ﻣﺜﺎﻟﯽ دو روش ﻣﺘﻔﺎوت در ﺗﺒﺪﯾﻞ راﺑﻄﻪ
ﺳﻪ ﺗﺎﯾﯽ ﺑﻪ دوﺗﺎﯾﯽ را ﻧﺸﺎن دﻫﯿﺪ .ب( راه ﺣﻠﯽ ﺑﺮاي ﺗﺒﺪﯾﻞ راﺑﻄﻪ ﭼﻬﺎرﺗﺎﯾﯽ ﺑﻪ دوﺗﺎﯾﯽ ﭘﯿﺸﻨﻬﺎد دﻫﯿﺪ .اﻣﺘﯿﺎزي( راه ﺣﻠﯽ ﺑﺮاي ﺗﺒﺪﯾﻞ
راﺑﻄﻪ nﺗﺎﯾﯽ ﺑﻪ دوﺗﺎﯾﯽ ﭘﯿﺸﻨﻬﺎد دﻫﯿﺪ.
-4ﺑﺮاي ﻧﻤﻮدار ERزﯾﺮ ﺟﺪول ﻣﻨﺎﺳﺐ ﺑﺴﺎزﯾﺪ .ﻣﺸﺨﺺ ﮐﺮدن ﮐﻠﯿﺪﻫﺎي اﺻﻠﯽ ،ﺧﺎرﺟﯽ در ﮐﻨﺎر ﺷﻤﺎي راﺑﻄﻪاي ﮐﺎﻓﯽ ﻣﯽﺑﺎﺷﺪ.
2
Principles of Database Design Homework 3
-5ﻓﺮض ﮐﻨﯿﺪ ﻃﺮاﺣﯽ ﭘﺎﯾﮕﺎه دادهي ﯾﮏ ﺷﺮﮐﺖ ﮐﻮﺗﺎهﮐﻨﻨﺪهي ﻟﯿﻨﮏ ﺑﺎ ﻧﺎم tinyURLرا ﺑﺮﻋﻬﺪه دارﯾﺪ .اﯾﻦ ﺷﺮﮐﺖ ﺑﺎ درﯾﺎﻓﺖ ﯾﮏ
URLﯾﮏ ﻟﯿﻨﮏ ﮐﻮﺗﺎه ﺷﺪه ﺑﺮاي آن ﺗﻮﻟﯿﺪ ﻣﯽﮐﻨﺪ .ﺷﺮﮐﺖ tinyURLدو ﺳﺮوﯾﺲ اراﺋﻪ ﻣﯽﮐﻨﺪ ،ﺳﺮوﯾﺲ راﯾﮕﺎن و ﺳﺮوﯾﺲ وﯾﮋه.
ﺳﺮوﯾﺲ وﯾﮋه ﻣﺨﺼﻮص ﻣﺸﺘﺮﯾﺎﻧﯽ اﺳﺖ ﮐﻪ اﻃﻼﻋﺎت ﺧﻮد را ﮐﻪ ﺷﺎﻣﻞ ﻧﺎم ،ﻧﺎم ﺧﺎﻧﻮاﻧﺪﮔﯽ و ﺷﻤﺎره ﺗﻤﺎس ﻣﯽﺑﺎﺷﺪ ﺛﺒﺖ و ﺗﺎﯾﯿﺪ ﮐﺮدهاﻧﺪ.
در ﺳﺮوﯾﺲ وﯾﮋه ،ﻣﺸﺘﺮي ﯾﮏ ﺗﻘﺎﺿﺎ ﺑﺮاي ﯾﮏ URLو ﻟﯿﻨﮏ ﮐﻮﺗﺎه ﺷﺪهي آن ﻣﯽﮔﺬارد .ﺗﻘﺎﺿﺎ وﺿﻌﯿﺖﻫﺎي زﯾﺮ را ﻃﯽ ﻣﯽﮐﻨﺪ:
در ﺣﺎل ﺑﺮرﺳﯽ :اﯾﻦ وﺿﻌﯿﺖ ﯾﮏ ﺗﻘﺎﺿﺎ ﺑﻪ ﻫﻨﮕﺎم ﺳﺎﺧﺘﻪ ﺷﺪن ﻣﯽﺑﺎﺷﺪ. •
رد :ﺗﻘﺎﺿﺎ ﻗﺎﺑﻞ اﻧﺠﺎم ﻧﺒﻮده و رد ﺷﺪه اﺳﺖ .در اﯾﻦ ﺻﻮرت ﻧﯿﺎز اﺳﺖ ﮐﻪ ﺗﻘﺎﺿﺎ ﺑﺮاي ﮐﺎرﺑﺮ وﯾﮋه در ﺣﺴﺎﺑﺶ ﻗﺎﺑﻞ ﻣﺸﺎﻫﺪه •
ﺑﺎﺷﺪ.
ﺗﺎﯾﯿﺪ :ﺗﻘﺎﺿﺎ ﺗﺎﯾﯿﺪ ﺷﺪه و ﺑﺮاي آن ﯾﮏ ﻓﺎﮐﺘﻮر وﺟﻮد دارد .ﻫﺮ ﻓﺎﮐﺘﻮر ﺑﺮاي ﯾﮏ ﺗﻘﺎﺿﺎ ﻣﺸﺨﺺ ﻣﯽﺑﺎﺷﺪ. •
ﺑﻨﺎﺑﺮاﯾﻦ ﻫﺮ ﺗﻘﺎﺿﺎ ﺷﺎﻣﻞ ﻣﺘﻘﺎﺿﯽ ،URL ،ﻟﯿﻨﮏ ﮐﻮﺗﺎه ﺷﺪه و وﺿﻌﯿﺖ ﺗﻘﺎﺿﺎ ﻣﯽﺑﺎﺷﺪ.
ﺳﺮوﯾﺲ راﯾﮕﺎن tinyURLﻓﺎﻗﺪ اﻃﻼﻋﺎت ﮐﺎرﺑﺮي ﺑﻮده و ﺗﻨﻬﺎ ﻟﯿﻨﮏ و ﻧﺴﺨﻪي ﮐﻮﺗﺎه ﺷﺪهي آن را در ﺑﺮدارد.
در ﺻﻮرﺗﯽ ﮐﻪ ﯾﮑﯽ از ﺳﺮوﯾﺲﻫﺎي وﯾﮋه ﺑﺨﻮاﻫﻨﺪ ﻟﯿﻨﮏ ﮐﻮﺗﺎه ﺷﺪهي ﺧﻮد را ﭘﺎك ﮐﻨﻨﺪ ،اﯾﻦ ﻟﯿﻨﮏ ﻧﺒﺎﯾﺪ ﭘﺎك ﺷﻮد ﺑﻠﮑﻪ ﺗﻨﻬﺎ ﻣﯽﺑﺎﯾﺴﺖ
ﺗﺤﺖ ﻋﻨﻮان ﻧﺎﻣﻌﺘﺒﺮ ﺷﻨﺎﺧﺘﻪ ﺷﻮد ﮐﻪ در آﯾﻨﺪه در اﺧﺘﯿﺎر ﺷﺮﮐﺖ دﯾﮕﺮي ﻗﺮار ﻧﮕﯿﺮد .اﯾﻦ اﻣﺮ ﺑﺮاي ﺳﺮوﯾﺲ ﻋﺎدي ﻣﻮرد ﻧﯿﺎز ﻧﺒﻮده و
ﮐﺎﻓﯽ اﺳﺖ ﮐﻪ ﻟﯿﻨﮏ ﭘﺎك ﺷﻮد .در واﻗﻊ ﻟﯿﻨﮏ ﮐﻮﺗﺎه ﺷﺪهي ﯾﮏ ﺳﺮوﯾﺲ وﯾﮋه ﻧﺒﺎﯾﺪ ﺣﺘﯽ ﭘﺲ از ﭘﺎك ﺷﺪن ﻫﻢ ﺑﺮاي ﺳﺎﯾﺮ ﺳﺮوﯾﺲﻫﺎي
وﯾﮋه ﻗﺎﺑﻞ اﺳﺘﻔﺎده ﺑﺎﺷﺪ و اﯾﻦ در ﺣﺎﻟﯽ اﺳﺖ ﮐﻪ ﻟﯿﻨﮏﻫﺎي ﮐﻮﺗﺎه ﺷﺪه ﺳﺮوﯾﺲ راﯾﮕﺎن ﺑﻌﺪ از ﭘﺎك ﺷﺪن ﻣﻤﮑﻦ اﺳﺖ دوﺑﺎره ﻣﻮرد
اﺳﺘﻔﺎده ﻗﺮار ﺑﮕﯿﺮﻧﺪ.
ﻫﺮ ﻓﺎﮐﺘﻮر در ﮐﻨﺎر ﺷﻤﺎره ﺗﻘﺎﺿﺎ و ﻣﺒﻠﻎ ،اﻃﻼﻋﺎت ﺻﺎﺣﺐ ﺗﻘﺎﺿﺎ را ﻧﯿﺰ در ﺑﺮ ﻣﯽﮔﯿﺮد .در ﻧﻬﺎﯾﺖ ﺑﻌﺪ از ﺗﺎﯾﯿﺪ ﺗﻘﺎﺿﺎ و ﭘﺮداﺧﺖ ﻓﺎﮐﺘﻮر
اﯾﻦ اﻃﻼﻋﺎت ﺑﻪ ﻫﻤﺮاه اﻃﻼﻋﺎت URLو ﻟﯿﻨﮏ ﮐﻮﺗﺎه ﺷﺪه ﻣﯽﺑﺎﯾﺴﺖ ذﺧﯿﺮه ﺷﻮﻧﺪ .اﯾﻦ اﻣﺮ ﺑﺮﺧﻼف ﻟﯿﻨﮏﻫﺎي ﺳﺮوﯾﺲ راﯾﮕﺎن ﻣﯽﺑﺎﺷﺪ
ﮐﻪ ﺗﻨﻬﺎ ﺷﺎﻣﻞ ﻟﯿﻨﮏ و ﻧﺴﺨﻪي ﮐﻮﺗﺎه ﺷﺪه ﺑﻮدﻧﺪ.
ﺑﺮاي ﺗﻤﺎﻣﯽ ﺳﺮوﯾﺲﻫﺎي وﯾﮋه و راﯾﮕﺎن ﻣﯽﺑﺎﯾﺴﺖ ﺗﻌﺪاد دﺳﺘﺮﺳﯽﻫﺎ ﺑﻪ ﻟﯿﻨﮏﻫﺎ ﺷﻤﺮده و ذﺧﯿﺮه ﺷﻮد .اﯾﻦ ﺷﻤﺎرش ﻣﯽﺑﺎﯾﺴﺖ ﺑﻪ
ﮔﻮﻧﻪاي ﺑﺎﺷﺪ ﮐﻪ در ﻣﻮرد ﻣﺤﻞ دﺳﺘﺮﺳﯽ ﻫﻢ اﻃﻼﻋﺎت ﺑﺪﻫﺪ ﯾﻌﻨﯽ ﻣﺸﺨﺺ ﮐﻨﺪ ﮐﻪ 10ﺑﺎر از ﻃﺮﯾﻖ اﯾﺮان ﯾﺎ 10ﺑﺎر ﺧﺎرج اﯾﺮان
دﺳﺘﺮﺳﯽ وﺟﻮد داﺷﺘﻪ اﺳﺖ) .ﻣﮑﺎنﻫﺎي ﺗﻌﺮﯾﻒ ﺷﺪه ﺑﺮاي ﺷﺮﮐﺖ ،tinyURLداﺧﻞ و ﺧﺎرج اﯾﺮان ﻣﯽﺑﺎﺷﺪ(
ﺑﺮاي ﻣﺸﺘﺮﯾﺎن وﯾﮋه ﯾﮏ ﻗﺴﻤﺖ ﭘﺮﺳﺶ و ﭘﺎﺳﺦ وﺟﻮد دارد ﮐﻪ ﻣﯽﺗﻮاﻧﻨﺪ ﻣﺸﮑﻼت ﺧﻮد را ﭘﯿﮕﯿﺮي ﮐﻨﻨﺪ .اﯾﻦ ﻗﺴﻤﺖ ﺷﺎﻣﻞ ﺗﻌﺪادي
ﭘﺮﺳﺶ و ﭘﺎﺳﺦ اﺳﺖ ﮐﻪ ﻣﯽﺗﻮاﻧﻨﺪ اداﻣﻪدار ﺑﺎﺷﻨﺪ .از آﻧﺠﺎﯾﯽ ﮐﻪ ﻣﻤﮑﻦ اﺳﺖ ﺑﺮاي رﺳﯿﺪﮔﯽ ﺑﻪ ﺷﮑﺎﯾﺎت ،ﺑﻪ اﻃﻼﻋﺎت اﯾﻦ ﻗﺴﻤﺖ ﻧﯿﺎز
ﺑﺎﺷﺪ ﻣﯽﺑﺎﯾﺴﺖ اﯾﻦ اﻃﻼﻋﺎت ذﺧﯿﺮه ﺷﻮﻧﺪ .ﺑﺮاي ﻫﺮ ﭘﺮﺳﺶ و ﭘﺎﺳﺦ در ﮐﻨﺎر ﻣﺘﻦ ﻧﯿﺎز اﺳﺖ ﮐﻪ ﻧﺎم ﻧﻮﯾﺴﻨﺪه را ﻧﯿﺰ ﻧﮕﻬﺪاري ﮐﺮد.
ﺑﺮاي ﺳﺮوﯾﺲ وﯾﮋه و راﯾﮕﺎن ﻧﯿﺎز اﺳﺖ ﮐﻪ زﻣﺎن ﺳﺎﺧﺖ ﻟﯿﻨﮏ ذﺧﯿﺮه ﺷﻮد .ﺑﺮاي ﺳﺮوﯾﺲ وﯾﮋه زﻣﺎﻧﯽ ﮐﻪ ﻟﯿﻨﮏ ﻏﯿﺮ ﻓﻌﺎل ﺷﺪه اﺳﺖ ﻧﯿﺰ
ﻣﯽﺑﺎﯾﺴﺖ ذﺧﯿﺮه ﺷﻮد .اﯾﻦ ﻣﻮارد ﻣﯽﺑﺎﯾﺴﺖ ﺑﻪ ﺻﻮرت ﺧﻮدﮐﺎر اﻧﺠﺎم ﺷﻮﻧﺪ.
ﻣﺸﺘﺮﯾﺎن وﯾﮋه ﻣﯽﺗﻮاﻧﻨﺪ از ﺳﺮوﯾﺲ ﻟﯿﻨﮏﻫﺎي زﻣﺎندار اﺳﺘﻔﺎده ﮐﻨﻨﺪ ،اﯾﻦ ﻟﯿﻨﮏﻫﺎ در ﯾﮏ ﺑﺎزه ﻣﺸﺨﺺ ﻓﻌﺎل ﻫﺴﺘﻨﺪ و ﺑﻌﺪ از آن
ﻏﯿﺮﻓﻌﺎل ﻣﯽﺷﻮﻧﺪ .از ﻧﻈﺮ داده ،اﯾﻦ ﻟﯿﻨﮏﻫﺎ ﮐﺎﻣﻼ ﻣﻄﺎﺑﻖ ﺑﺎ ﻟﯿﻨﮏﻫﺎي وﯾﮋه ﻋﺎدي ﻣﯽﺑﺎﺷﻨﺪ ﺑﺎ اﯾﻦ ﺗﻔﺎوت ﮐﻪ زﻣﺎن اﻧﻘﻀﺎ آنﻫﺎ ﻣﯽﺑﺎﯾﺴﺖ
ذﮐﺮ ﺷﻮد) .ﺳﻌﯽ ﮐﻨﯿﺪ ﻟﯿﻨﮏﻫﺎي زﻣﺎندار و ﻋﺎدي را ﺑﺎ ﯾﮏ ﻣﻨﻄﻖ ﻣﺸﺘﺮك ﻃﺮاﺣﯽ ﮐﻨﯿﺪ(.
ﺑﺨﺶ ﻋﻤﻠﯽ
3
Principles of Database Design Homework 3
ﺗﻮﺟﻪ :ﻣﻬﻠﺖ ارﺳﺎل ﺑﺨﺶ ﻋﻤﻠﯽ ﯾﮏ ﻫﻔﺘﻪ ﺑﯿﺸﺘﺮ از ﺑﺨﺶ ﻧﻈﺮي ﻣﯽﺑﺎﺷﺪ و ﺑﺨﺶ اﭘﻠﻮد ﺑﺨﺶ ﻋﻤﻠﯽ ﻧﯿﺰ ﻣﺘﻔﺎوت ﻣﯽﺑﺎﺷﺪ .ﺑﺨﺶ ﻋﻤﻠﯽ در
دﺳﺘﻪﺑﻨﺪي ﭘﺮوژهﻫﺎ ﻗﺮار ﻣﯽﮔﯿﺮد و ﺑﻮدﺟﻪ ﺗﺎﺧﯿﺮ در ارﺳﺎل ﻧﯿﺰ از ﺑﺨﺶ ﭘﺮوژه ﺣﺴﺎب ﻣﯽﺷﻮد.
.1ﻟﯿﺴﺖ ﺗﻤﺎم Entityﻫﺎي ﺳﯿﺴﺘﻢ را اﺳﺘﺨﺮاج و ذﮐﺮ ﻧﻤﺎﯾﯿﺪ .ﺗﻤﺎﻣﯽ Entity Weakﻫﺎ را ﺑﻪ ﻃﻮر دﻗﯿﻖ ﻣﺸﺨﺺ ﻧﻤﺎﯾﯿﺪ و ﺑﮕﻮﯾﯿﺪ
Strong Entityﻣﺮﺑﻮط ﺑﻪ ﻫﺮ ﯾﮏ از آنﻫﺎ ﮐﺪام اﺳﺖ.
.4ﺑﺮاي ﻫﺮ Entityﻟﯿﺴﺖ ﺗﻤﺎم Attributeﻫﺎ را ﺷﺎﻣﻞ ﻧﺎم ،ﻧﻮع و ﻣﻘﺎدﯾﺮ ﭘﯿﺶ ﻓﺮض و Optionﻫﺎي دﯾﮕﺮ ﻣﺸﺨﺺ ﻧﻤﺎﯾﯿﺪ .ﺗﻮﺟﻪ
ﮐﻨﯿﺪ ﺣﺘﻤﺎ Key Primaryﻫﺎ ﺑﻪ ﻃﻮر دﻗﯿﻖ ﻣﺸﺨﺺ ﺷﺪه ﺑﺎﺷﻨﺪ .در ﻣﻮرد Key Foreignﻫﺎ ﺑﮕﻮﯾﯿﺪ ارﺟﺎع آن ﻫﺎ ﺑﻪ ﮐﺪام ﻣﻮﻟﻔﻪ
از ﮐﺪام Entityﺑﺎز ﻣﯽ ﮔﺮدد.
ERD .5ﻧﻬﺎﯾﯽ را ﺑﻪ ﻃﻮر ﮐﺎﻣﻞ رﺳﻢ ﻧﻤﺎﯾﯿﺪ .رواﺑﻂ ﺗﻤﺎم Entityﻫﺎ و Cardinalityﺗﻤﺎم رواﺑﻂ ﺑﺎﯾﺪ ﺑﻪ ﻃﻮر دﻗﯿﻖ در اﯾﻦ ﻧﻤﻮدار
ﻣﺸﺨﺺ ﺷﺪه ﺑﺎﺷﺪ.
.6ﺗﻤﺎم دﺳﺘﻮرات ﻻزم ﺑﺮاي اﯾﺠﺎد ﭘﺎﯾﮕﺎه داده ﻣﻄﺎﺑﻖ ﺑﺎ ﻃﺮاﺣﯽ اﻧﺠﺎم ﺷﺪه را در ﯾﮏ ﻓﺎﯾﻞ ﻣﺘﻨﯽ ﺑﻨﻮﯾﺴﯿﺪ ﺑﻪ ﻃﻮري ﮐﻪ اﺟﺮاي ﻓﺎﯾﻞ
ﻣﺘﻨﯽ ﺑﻪ ﻃﻮر ﮐﺎﻣﻞ و ﺑﺪون اﺷﮑﺎل ،ﭘﺎﯾﮕﺎه داده ﻃﺮاﺣﯽ ﺷﺪه را اﯾﺠﺎد ﻧﻤﺎﯾﯿﺪ.
.7اﮐﺴﭙﻮرت ﭘﺎﯾﮕﺎه داده اﯾﺠﺎد ﺷﺪه را ﺿﻤﯿﻤﻪ ﻓﺎﯾﻞ ﻫﺎي ارﺳﺎﻟﯽ ﻧﻤﺎﯾﯿﺪ.
.8در ﻧﻈﺮ داﺷﺘﻪ ﺑﺎﺷﯿﺪ ﺑﺮﺧﯽ از اﯾﻦ ﻣﻮارد در ﺑﺮﻧﺎﻣﻪ ي ﮐﺎرﺑﺮدي ﭘﯿﺎده ﺳﺎزي ﻣﯽ ﮔﺮدﻧﺪ ﮐﻪ از ﺣﻮزه اﯾﻦ ﭘﺮوژه ﺧﺎرج اﺳﺖ اﻣﺎ ﻣﻮارد
ﻣﺮﺑﻮط ﺑﻪ اﻧﺠﺎم ﺧﻮدﮐﺎر ﺑﺮﺧﯽ ﮐﺎرﻫﺎ ﻣﯽ ﺑﺎﯾﺴﺖ در ﭘﺎﯾﮕﺎه داده ﺑﻪ وﺳﯿﻠﻪي Triggerو ...ﺻﻮرت ﺑﮕﯿﺮد.
4
Principles of Database Design Homework 3
ﻣﻬﻠﺖ ارﺳﺎل ﺗﻤ.-ﻦ ﺳﺎﻋﺖ ۲۳:۵۹روز ﺟﻤﻌﻪ ۵ﺧﺮداد ﻣﺎە ?@ﺎﺷﺪ. •
ﻣﻬﻠﺖ ارﺳﺎل @ﺨﺶ ﻋﻤ Fﺳﺎﻋﺖ ۲۳:۵۹روز ﺟﻤﻌﻪ ۱۲ﺧﺮداد ﻣﺎە ?@ﺎﺷﺪ. •
در ﺻﻮرت ﮐﺸﻒ ﺗﻘﻠﺐ ﻧﻤﺮە ﺗﻤ.-ﻦ ۰در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ?ﺷﻮد. •
• ﺳﻮاﻻت ﺧﻮد را ?ﺗﻮاﻧWﺪ از ﻃ.-ﻖ ﺗﻠZﺮام \ﺎ ا\ﻤWﻞ از ﺗﺪر^ﺴWﺎرﻫﺎی درس ﺑdeﺳWﺪ.
• ﻓﺎ\ﻞ fﺎﺳﺦ ﺗﻤ.-ﻦ را ﺗﻨiﺎ @ﺎ ﻗﺎﻟﺐ HW?_StudentNumber.pdfدر ﮐﻮر m
@ lﺎرﮔﺰاری ﮐﻨWﺪ.
ﻧﻤﻮﻧﻪHW1_9831072 : •
5