Professional Documents
Culture Documents
com
ﭘﺎﻳﮕﺎه دادهﻫﺎ
ﻣﻮﻟﻔﻴﻦ
ﻣﻬﻨﺪس ﺳﻴﺪ ﻧﺎﺻﺮ آﻳﺖ دﻛﺘﺮ اﺣﻤﺪ ﻓﺮاﻫﻲ
www.PDFgozar.com
ﻓﻬﺮﺳﺖ
ﻓﺼﻞ - 1ﻣﻔﺎﻫﻴﻢ اوﻟﻴﻪ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده 1 .............. ................................
ﻫﺪف ﻛﻠﻲ 1 ............ ................................ ................................
ﻫﺪف رﻓﺘﺎري 1 ......... ................................ ................................
-1ﺗﺎرﻳﺨﭽﻪ 2 ........... ................................ ................................
1 -1ذﺧﻴﺮه و ﺑﺎزﻳﺎﺑﻲ اﻃﻼﻋﺎت 4 .................. ................................
2 -1داده 4 .......... ................................ ................................
3 -1ﺗﻌﺮﻳﻒ داده از دﻳﺪﮔﺎه 4 .............. ................................ ANSI
4 -1اﻃﻼع 5 ........ ................................ ................................
5 -1ﺗﻌﺮﻳﻒ اﻃﻼع از دﻳﺪﮔﺎه 5 ............ ................................ ANSI
6 -1داﻧﺶ 5 ......... ................................ ................................
-2ﺗﻌﺮﻳﻒ ﭘﺎﻳﮕﺎه داده 6 . ................................ ................................
1 -2ﺗﻔﺎوت ﻫﺎي ﺑﻴﻦ روش ﻓﺎﻳﻠﻴﻨﮓ و روش ﭘﺎﻳﮕﺎه داده ﻫﺎ 7 .....................
1 -1 -2ﻣﺮاﺣﻞ ﻛﺎر در روش ﻓﺎﻳﻠﻴﻨﮓ 7 ........... ................................
2 -1 -2ﻣﺮاﺣﻞ ﻛﺎر در روش ﭘﺎﻳﮕﺎﻫﻲ 8 ........... ................................
2 -2اﺟﺰاء ﭘﺎﻳﮕﺎه داده 10 ........................... ................................
1 -2 -2داده ﻫﺎ 11 .... ................................ ................................
2 -2 -2ﺳﺨﺖ اﻓﺰار 12 .............................. ................................
-1ﺳﺨﺖ اﻓﺰار ذﺧﻴﺮه ﺳﺎزي داده ﻫﺎ 12 ............. ................................
-2ﺳﺨﺖ اﻓﺰار ﭘﺮدازﺷﮕﺮ 12 ........................ ................................
-3ﺳﺨﺖ اﻓﺰار ﺑﺮﻗﺮار ﻛﻨﻨﺪه ارﺗﺒﺎط 12 ............. ................................
3 -2 -2ﻧﺮم اﻓﺰار 13 . ................................ ................................
-1ﻧﺮم اﻓﺰار ﻛﺎرﺑﺮدي 14 ............................. ................................
-2ﻧﺮم اﻓﺰار ﺳﻴﺴﺘﻤﻲ 14 ............................. ................................
4 -2 -2ﻛﺎرﺑﺮ 14 ..... ................................ ................................
-1ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﺎن ﻛﺎرﺑﺮدي 15 ..................... ................................
-2ﻛﺎرﺑﺮان واﻗﻌﻲ ﻳﺎ ﻧﻬﺎﻳﻲ 15 ..................... ................................
-3ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎه داده 15 .............................. ................................
www.PDFgozar.com
ﭘﻴﺸﮕﻔﺘﺎﺭ
اﻳﻦ ﻛﺘﺎب ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺳﺮ ﻓﺼﻞ ﺗﻌﻴﻴﻦ ﺷﺪه ﺑﺮاي داﻧﺸﺠﻮﻳﺎن داﻧﺸﮕﺎه ﭘﻴﺎمﻧﻮر در
رﺷﺘﻪ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺗﻬﻴﻪ و ﺗﻨﻈﻴﻢ ﺷﺪه اﺳﺖ .در ﺗﻬﻴﻪ اﻳﻦ ﻛﺘﺎب ﺳﻌﻲ ﺑﺮ آن ﺷﺪه اﺳﺖ ﺗﺎ
ﻣﺒﺎﺣﺜﻲ ﻛﻪ ﺑﺮاي ﺗﺪرﻳﺲ درس ﭘﺎﻳﮕﺎه داده ﻫﺎ ﻻزم ﺑﻪ ﺗﺪرﻳﺲ اﺳﺖ ،ﻣﻄﺮح ﮔﺮدﻧﺪ.
اﻳﻦ ﻛﺘﺎب ﻣﺸﺘﻤﻞ ﺑﺮ ده ﻓﺼﻞ ﻣﻲ ﺑﺎﺷﺪ.
در اﺑﺘﺪاي ﻛﺘﺎب ﻟﻴﺴﺖ ﺳﺮ ﻓﺼﻞ ﻣﻄﺎﻟﺐ ﻗﻴﺪ ﺷﺪه اﺳﺖ .در اﻧﺘﻬﺎي ﻛﺘﺎب
ﻣﺠﻤﻮﻋﻪاي از ﺳﺆاﻻت ﺗﺴﺘﻲ ﺑﻪ ﻫﻤﺮاه ﭘﺎﺳﺦ ﻧﺎﻣﻪ اراﺋﻪ ﺷﺪه اﺳﺖ .ﻫﻤﭽﻨﻴﻦ ﺑﻪ ﻣﻨﻈﻮر
،در ﺿﻤﻴﻤﻪ 2ﻛﺘﺎب ﻣﺘﻦ ﻛﺎﻣﻞ SQL آﺷﻨﺎﻳﻲ ﺑﻴﺸﺘﺮ ﻋﻼﻗﻤﻨﺪان ﺑﻪ ﺳﺎﺧﺘﺎر ﭘﺎﻳﻪاي زﺑﺎن
SQL BNFاراﺋﻪ ﺷﺪه اﺳﺖ.
ﻧﻈﺮ ﺑﻪ ﻟﺰوم ﺟﺎﮔﺬاري ﻣﻌﺎدل ﻓﺎرﺳﻲ ﻛﻠﻤﺎت ﺗﺨﺼﺼﻲ ﺑﺮاي راﺣﺘﻲ ﻓﻬﻢ
داﻧﺸﺠﻮﻳﺎن دو واژهﻧﺎﻣﻪ ﺑﻪﺻﻮرت اﻧﮕﻠﻴﺴﻲ ﺑﻪ ﻓﺎرﺳﻲ و ﻓﺎرﺳﻲ ﺑﻪ اﻧﮕﻠﻴﺴﻲ در اﻧﺘﻬﺎي
ﻛﺘﺎب آﻣﺪه اﺳﺖ .در ﺻﻔﺤﻪ ﭘﺎﻳﺎﻧﻲ ﻛﺘﺎب ﻟﻴﺴﺖ ﻣﻨﺎﺑﻊ و ﻣﺎﺧﺬ ﻧﻴﺰ ﺑﺮاي آﮔﺎﻫﻲ
داﻧﺸﺠﻮﻳﺎن اراﺋﻪ ﺷﺪه اﺳﺖ.
اﻳﻦ اﺛﺮ ﺑﺎ دﻗﺖ ﻧﻈﺮ ﻓﺮاوان ﻛﺎرﺷﻨﺎﺳﺎن ﻣﺪﻳﺮﻳﺖ ﺗﻮﻟﻴﺪ ﻣﻮاد و ﺗﺠﻬﻴﺰات آﻣﻮزﺷﻲ
ﻣﻮرد ارزﻳﺎﺑﻲ ﻗﺮار ﮔﺮﻓﺖ ﻛﻪ ﺑﺪﻳﻨﻮﺳﻴﻠﻪ از ﺟﻨﺎب آﻗﺎي اﻛﺒﺮي ﺑﻪ ﻧﻤﺎﻳﻨﺪﮔﻲ از آن ﻋﺰﻳﺰان
ﻗﺪرداﻧﻲ ﻣﻲﻧﻤﺎﻳﻴﻢ.
ﻛﺘﺎب ﺣﺎﺿﺮ ﺑﻌﻨﻮان ﻣﻨﺒﻊ درﺳﻲ در داﻧﺸﮕﺎه ﭘﻴﺎمﻧﻮر اﻋﻼم ﺷﺪه ﻛﻪ ﺑﻌﻠﺖ ﻛﻮﺗﺎه
ﺑﻮدن زﻣﺎن اﻣﻜﺎن رﻓﻊ ﻛﻠﻴﻪ اﻳﺮادات ﺗﺎﻳﭙﻲ و ﻧﮕﺎرﺷﻲ ﻣﻴﺴﺮ ﻧﺸﺪ .ﻟﺬا از ﻛﻠﻴﻪ
ﺻﺎﺣﺐﻧﻈﺮان ،اﺳﺎﺗﻴﺪ و داﻧﺸﺠﻮﻳﺎن ﻣﺤﺘﺮم ﺗﻘﺎﺿﺎ دارد ﻧﻈﺮات ﭘﻴﺸﻨﻬﺎدي ﺧﻮد را در
ﺟﻬﺖ اﺻﻼح اﻳﺮادات اﻳﻦ اﺛﺮ ،ﺑﻪ آدرس ﭘﺴﺖ اﻟﻜﺘﺮوﻧﻴﻜﻲ ﻣﻮﻟﻔﻴﻦ ارﺳﺎل ﻓﺮﻣﺎﻳﻨﺪ.
در ﭘﺎﻳﺎن از آﻗﺎي ﻣﻬﻨﺪس ﻛﺎﻣﻴﺎر آﻫﻨﻜﻮب ﻛﻪ در ﺗﻨﻈﻴﻢ و ﺗﺪوﻳﻦ ﻛﺘﺎب ﻫﻤﻜﺎري
ﺷﺎﻳﺎﻧﻲ داﺷﺘﻪاﻧﺪ ﺳﭙﺎﺳﮕﺰاري ﻣﻲﻛﻨﻴﻢ.
اﺣﻤﺪ ﻓﺮاﻫﻲ ﻧﺎﺻﺮ آﻳﺖ
afaraahi@pnu.ac.ir ayat@pnu.ac.ir
ﺗﺎﺑﺴﺘﺎن 1386
www.PDFgozar.com
www.PDFgozar.com
ﻓﺼﻞ ۱
ﻫﺪف ﻛﻠﻲ
در اﻳﻦ ﻓﺼﻞ اﺑﺘﺪا ﺗﺎرﻳﺨﭽﻪ اي در راﺑﻄﻪ ﺑﺎ ﺑﺤﺚ ﭘﺎﻳﮕﺎه دادهﻫﺎ و ذﺧﻴﺮه ﺳﺎزي داده ﻫﺎ
ﻣﻄﺮح و ﺳﭙﺲ اﻧﻮاع ﺳﻴﺴﺘﻢﻫﺎي ﭘﺎﻳﮕﺎه داده ﻧﺎم ﺑﺮده ﻣﻲﺷﻮﻧﺪ .در اداﻣﻪ ﺑﻌﻀﻲ از
ﻣﻔﺎﻫﻴﻢ ﻛﻠﻴﺪي در ﭘﺎﻳﮕﺎه دادهﻫﺎ ﺷﺮح داده ﺧﻮاﻫﻨﺪ ﺷﺪ .ﺳﭙﺲ ﻣﻔﻬﻮم ﭘﺎﻳﮕﺎهداده
ﺑﺼﻮرﺗﻲ دﻗﻴﻖ ﺗﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﺪ ﮔﺮﻓﺖ .ﺑﺎ ﺗﻌﺮﻳﻒ ﭘﺎﻳﮕﺎه دادهﻫﺎ
ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع ،ﻣﺮاﺣﻞ ﻛﺎر در ﻣﺸﻲ ﻓﺎﻳﻠﻴﻨﮓ و ﭘﺎﻳﮕﺎه داده ﻣﻮرد ﺑﺤﺚ و
ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻨﺪ ﮔﺮﻓﺖ و در ﭘﺎﻳﺎن اﺟﺰاء ﭘﺎﻳﮕﺎه داده ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار
ﮔﺮﻓﺘﻪ و ﺟﺎﻳﮕﺎه ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎه داده ﺑﺮرﺳﻲ ﺧﻮاﻫﺪ ﺷﺪ.
ﻫﺪف رﻓﺘﺎري
در اﻳﻦ ﻓﺼﻞ ﻋﻨﺎوﻳﻦ زﻳﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ:
اﻧﻮاع ﺳﻴﺴﺘﻢﻫﺎي ﭘﺎﻳﮕﺎهداده •
1
ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهداده •
اﺻﻄﻼح ذﺧﻴﺮه و ﺑﺎزﻳﺎﺑﻲ اﻃﻼﻋﺎت )ﺷﺎﻣﻞ داده ،اﻃﻼع ،داﻧﺶ و(... •
ﺗﻌﺮﻳﻒ ﭘﺎﻳﮕﺎهداده •
ﻣﺮاﺣﻞ ﻛﺎر در روش ﻓﺎﻳﻠﻴﻨﮓ •
ﻣﺮاﺣﻞ ﻛﺎر در روش ﭘﺎﻳﮕﺎﻫﻲ •
)1. D at a b a s e M a n a ge me n t Sy s t e m ( D B M S
www.PDFgozar.com
-1ﺗﺎرﻳﺨﭽﻪ
ﻳﻜﻲ از ﻣﺘﺪاول ﺗﺮﻳﻦ و اﺻﻠﻲ ﺗﺮﻳﻦ اﺻﻄﻼﺣﺎت در ﻣﻘﻮﻟﻪ اﻧﻔﻮرﻣﺎﺗﻴﻚ اﺻﻄﻼح
ﭘﺎﻳﮕﺎه داده ﻫﺎ ﻣﻲ ﺑﺎﺷﺪ .اﺻﻄﻼح ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه دادهﻫﺎ در ﻣﻌﻨﺎي ﻋﺎم ،ﻳﻜﻲ از
ﺳﻴﺴﺘﻢ ﻫﺎي ذﺧﻴﺮه و ﺑﺎزﻳﺎﺑﻲ اﻃﻼﻋﺎت اﺳﺖ .ﭘﺲ از ﻃﺮاﺣﻲ ﻧﺴﻞ اوﻟﻴﻪ ﺳﻴﺴﺘﻢ ﻫﺎي
ذﺧﻴﺮه و ﺑﺎزﻳﺎﺑﻲ اﻃﻼﻋﺎت ،ﺑﺮاي ﺗﻘﻮﻳﺖ ﻣﻜﺎﻧﻴﺰم ﻫﺎ و اﻟﮕﻮرﻳﺘﻢ ﻫﺎي ﻣﺮﺗﺒﻂ ﺑﺎ ذﺧﻴﺮه،
ﺑﺎزﻳﺎﺑﻲ و ﭘﺮدازش داده ﻫﺎ و ﻫﻤﭽﻨﻴﻦ ﺑﻪ ﻣﻨﻈﻮر ﺗﺴﻬﻴﻞ در اﻧﺠﺎم اﻣﻮر ﻓﻮق،
ﺳﻴﺴﺘﻢ ﻫﺎي ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺷﻜﻞ ﮔﺮﻓﺘﻨﺪ.
ﺗﻜﻨﻮﻟﻮژي ﭘﺎﻳﮕﺎهدادهﻫﺎ از اواﺳﻂ دﻫﻪ ﺷﺼﺖ ﻣﻴﻼدي و ﺑﻪ ﻣﻨﻈﻮر ﺗﻮﺳﻌﻪ
ﺳﻴﺴﺘﻢﻫﺎي ﻓﺎﻳﻠﻴﻨﮓاﻳﺠﺎد ﺷﺪﻧﺪ .ﻃﻮل دﻫﻪ ﻫﻔﺘﺎد ﻣﺪﻟﻬﺎي ﭘﺎﻳﮕﺎهﻫﺎي داده ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ و
ﺷﺒﻜﻪاي ﺗﻮﺳﻌﻪ ﻳﺎﻓﺘﻪ و ﻣﻮرد اﺳﺘﻔﺎده زﻳﺎدي ﻗﺮار ﮔﺮﻓﺘﻨﺪ .در اواﻳﻞ دﻫﻪ ﻫﺸﺘﺎد ،ﺷﺎﺧﻪاي
از آن ﺗﻜﻨﻮﻟﻮژي ﺑﻪ ﻧﺎم ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎي راﺑﻄﻪاي ﻣﻮرد ﺗﻮﺟﻪ ﺑﻴﺸﺘﺮي
ﻗﺮار ﮔﺮﻓﺖ و ﺑﻪ ﻋﻨﻮان ﺗﻜﻨﻮﻟﻮژي ﺑﺮﺗﺮ ﺷﻨﺎﺧﺘﻪ ﺷﺪ و ﻫﻢ اﻛﻨﻮن ﻫﻢ ﺑﺴﻴﺎر ﻣﻮرد اﺳﺘﻔﺎده
ﻗﺮار ﻣﻲﮔﻴﺮد .ﻣﻬﻤﺘﺮﻳﺖ ﺧﺼﻴﺼﻪ ﺳﻴﺴﺘﻢﻫﺎي ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ ،ﻣﺴﺘﻘﻞ ﺷﺪن
ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي از ﺟﻨﺒﻪﻫﺎ و ﺧﺼﻮﺻﻴﺎت ﻣﺤﻴﻂ ﻓﻴﺰﻳﻜﻲ ذﺧﻴﺮه ﺳﺎزي اﺳﺖ.
از اواﺳﻂ دﻫﻪ ﻫﺸﺘﺎد ﺗﺎﻛﻨﻮن ،ﺳﻴﺴﺘﻢ ﻫﺎي دﻳﮕﺮي ﻫﻢ اﻳﺠﺎد و ﻋﺮﺿﻪ ﺷﺪ از ﺟﻤﻠﻪ:
ﺳﻴﺴﺘﻢ ﻓﺎﻳﻠﻴﻨﮓ ﻣﻌﻤﻮﻟﻲ دادهﻫﺎ •
ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ دادهﻫﺎ و ﺟﺴﺘﺠﻮﻫﺎ •
1
ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ •
ﺑﻪ ﻣﺮور زﻣﺎن ﺑﻮاﺳﻄﻪ اﻓﺰاﻳﺶ ﺣﺠﻢ و ﻧﻮع اﻃﻼﻋﺎت ﻧﻴﺎزﻫﺎي ﺟﺪﻳﺪﺗﺮي ﻣﻄﺮح و
)1. R el a t i o n a l D a t a ba s e M an a ge me n t S y s t e m ( R D B M S
www.PDFgozar.com
ﭘﺎﻳﮕﺎه ﻫﺎي داده ﻣﺘﻨﺎﺳﺐ ﺑﺎ آﻧﻬﺎ ﻧﻴﺰ اراﺋﻪ ﮔﺮدﻳﺪ ﻛﻪ ﻧﻤﻮﻧﻪﻫﺎي آن در ذﻳﻞ آﻣﺪه اﺳﺖ:
1
ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داﻧﺶ •
2
ﺳﻴﺴﺘﻢ ﻣﻌﻨﺎﻳﻲ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ •
3
ﺳﻴﺴﺘﻢ ﻫﻮﺷﻤﻨﺪ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ •
4
ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎي ﺷﻴﻲ ﮔﺮا •
5
ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎي زﻣﺎﻧﻤﻨﺪ •
6
ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهداده ﺑﻼدرﻧﮓ •
7
ﺳﻴﺴﺘﻢ داده ﻛﺎوي •
8
ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭼﻨﺪ ﭘﺎﻳﮕﺎﻫﻲ •
اﻣﺎ ﺑﺎﻳﺪ ﺑﻪ اﻳﻦ ﻧﻜﺘﻪ اﺷﺎره ﻛﺮد ﻛﻪ ﺑﻴﺸﺘﺮ اﻳﻦ ﺳﻴﺴﺘﻢﻫﺎ در ﻛﺎرﺑﺮدﻫﺎي ﺧﺎﺻﻲ اﺳﺘﻔﺎده
ﻣﻲ ﺷﻮﻧﺪ .اﻣﺮوزه ﻧﻮع ﺟﺪﻳﺪي از ﺳﻴﺴﺘﻢ ﻫﺎي ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺑﻨﺎم ﺳﻴﺴﺘﻢ
ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده اﺳﺘﻨﺘﺎﺟﻲ ﺑﺼﻮرت آﻛﺎدﻣﻴﻚ در ﺣﺎل ﻃﺮاﺣﻲ ﻣﻲ ﺑﺎﺷﺪ ﻛﻪ اﻟﺒﺘﻪ
ﻫﻨﻮز در ﻣﺤﻴﻂ ﻫﺎي ﺗﺠﺎري و ﺻﻨﻌﺘﻲ ﻧﻤﻮدي ﭘﻴﺪا ﻧﻜﺮده اﺳﺖ .
ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ آﻧﭽﻪ ﮔﻔﺘﻪ ﺷﺪ ﺷﺎﻳﺪ ﺑﺘﻮان ﺳﻴﺴﺘﻢﻫﺎي ﭘﺎﻳﮕﺎﻫﻲ را ﺑﻪ ﺳﻪ ﻧﺴﻞ زﻳﺮ
ﺗﻘﺴﻴﻢ ﻛﺮد:
9
ﺳﻴﺴﺘﻢﻫﺎي ﭘﻴﺶ راﺑﻄﻪاي •
10
ﺳﻴﺴﺘﻢﻫﺎي راﺑﻄﻪاي •
11
ﺳﻴﺴﺘﻢﻫﺎي ﭘﺲ راﺑﻄﻪاي •
)1. K n ow l e d ge B a s e M a n a ge me n t Sy s t e m ( K B M S
2. Se ma n t i c Sy s t e m
3. In t e l l i ge n t Sy s t e m
4. O b je c t O r i e n t e d D a t a ba s e M an a ge m e n t Sy s t e m
5. T e mp o r a l D a t a b a s e M a n a ge me n t Sy s t e m
6. R ea l - T i me D a t a b a se M a na ge me n t S y s t e m
7. D at a M i ni n g Sy s t e m
8. M u lt i D at a b a s e M a n a ge me n t Sy s t e m
9. P re R e la t i o n a l Sy s t e ms
10. R el a t i o n a l Sy s t e ms
11. P o st R e la t i o n a l Sy s t e ms
www.PDFgozar.com
ﺷﺎﻳﺪ ﺑﺘﻮان ﮔﻔﺖ ﻋﻠﺖ اﺻﻠﻲ ﺗﻔﺎوت ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ ﺑﺎ ﺑﻘﻴﻪ ﺳﻴﺴﺘﻤﻬﺎ
در وﺟﻮد ﺳﻴﺴﺘﻢ ﺣﺼﺎري ﻧﻔﻮذ ﻧﺎﭘﺬﻳﺮي ﺑﻪ ﻧﺎم ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهداده اﺳﺖ ﻛﻪ ﻫﺮ
ﮔﻮﻧﻪ دﺳﺘﻴﺎﺑﻲ ﺑﻪ دادهﻫﺎ ﺑﺎﻳﺪ از ﻃﺮﻳﻖ اﻳﻦ ﺳﻴﺴﺘﻢ اﻧﺠﺎم ﺷﻮد .ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهداده
در واﻗﻊ اﻧﻘﻼﺑﻲ در ﺑﺎﻧﻜﻬﺎي اﻃﻼﻋﺎﺗﻲ ﺑﻪ ﺷﻤﺎر ﻣﻲآﻳﺪ .در ﻫﻤﻴﻦ اواﺧﺮ دو ﺗﺤﻮل دﻳﮕﺮ
آﻣﺪ: ﻫﻢ در ﺗﻜﻨﻮﻟﻮژي ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﭘﺪﻳﺪ
1
ﻃﺮاﺣﻲ واﻳﺠﺎد ﭘﺎﻳﮕﺎهﻫﺎي داده ﺗﻮزﻳﻊ ﺷﺪه ﺗﺤﺖ ﺷﺒﻜﻪﻫﺎي ﻣﺨﺘﻠﻒ •
ﻃﺮاﺣﻲ واﻳﺠﺎد ﺳﻴﺴﺘﻢﻫﺎي ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهداده ﺑﺮاي ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎي ﺷﺨﺼﻲ •
ﺑﺮاي آﺷﻨﺎ ﺷﺪن ذﻫﻦ ﺧﻮاﻧﻨﺪه ﺗﻌﺮﻳﻒ ﭼﻨﺪ اﺻﻄﻼح ﭘﺎﻳﻪ اي در ﺳﻴﺴﺘﻢ ﻫﺎي ﭘﺎﻳﮕﺎه داده
در ذﻳﻞ اراﺋﻪ ﻣﻲ ﮔﺮدد .ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ ﺗﻌﺎرﻳﻒ ﻣﺮﺑﻮط ﺑﻪ اﺻﻄﻼﺣﺎت ذﻛﺮ ﺷﺪه،
ﺑﻌﻀﺎ در ﻛﺘﺎبﻫﺎي ﻣﺨﺘﻠﻒ ﺑﺎ ﻛﻤﻲ ﺗﻐﻴﻴﺮ ﻧﻮﺷﺘﻪ ﺷﺪه اﻧﺪ .وﻟﻲ ﻣﻔﻬﻮم اﺻﻠﻲ آﻧﻬﺎ ﺑﺴﻴﺎر
ﻧﺰدﻳﻚ ﺑﻬﻢ ﻫﺴﺘﻨﺪ .
2-1داده
اﺻﻄﻼح داده در ﻣﻔﻬﻮم ﻛﻠﻲ ﻋﺒﺎرت اﺳﺖ از ﻧﻤﺎﻳﺶ ذﺧﻴﺮه ﺷﺪه ﻛﻠﻴﻪ ﻣﻮﺟﻮدﻳﺘﻬﺎ،
واﻗﻌﻴﺎت و رﺧﺪادﻫﺎ ﻛﻪ در ﺗﺼﻤﻴﻢ ﮔﻴﺮي ﺑﻜﺎر ﻣﻲ آﻳﻨﺪ.
1. D i st r i b u t e d D a t a B a s e
www.PDFgozar.com
ﻫﺮ ﻧﻤﺎﻳﺸﻲ ﻛﻪ ﺗﻮﺳﻂ اﻧﺴﺎن ﻳﺎ ﻳﻚ ﺳﻴﺴﺘﻢ ﻣﻜﺎﻧﻴﻜﻲ ﺧﻮدﻛﺎر ﻣﻌﻨﺎﻳﻲ ﺑﻪ آن ﻗﺎﺑﻞ •
اﻧﺘﺴﺎب ﺑﺎﺷﺪ.
ﻧﻤﺎﻳﺶ واﻗﻌﻴﺎت ،ﭘﺪﻳﺪهﻫﺎ ،ﻣﻔﺎﻫﻴﻢ ﻳﺎ ﺷﻨﺎﺧﺘﻪﻫﺎ ﺑﻪ ﻃﺮزي ﺻﻮري و ﻣﻨﺎﺳﺐ ﺑﺮاي •
ﺑﺮﻗﺮاري ارﺗﺒﺎط ،ﺗﻔﺴﻴﺮ ﻳﺎ ﭘﺮدازش ﺗﻮﺳﻂ اﻧﺴﺎن ﻳﺎ ﻫﺮ دﺳﺘﮕﺎه ﺧﻮدﻛﺎر.
ﺑﻪ ﻃﻮر ﻛﻠﻲ ﻣﻲﺗﻮان ﮔﻔﺖ ﻛﻪ داده ارزﺷﻬﺎي واﻗﻌﻲ ﻫﺴﺘﻨﺪ ﻛﻪ از ﻃﺮﻳﻖ ﻣﺸﺎﻫﺪه •
و ﺗﺤﻘﻴﻖ ﺑﺪﺳﺖ ﻣﻲ آﻳﻨﺪ.
4-1اﻃﻼع
ﻫﺮ ﻧﻮع داده ﭘﺮدازش ﺷﺪه )ﺳﺎﺧﺖ ﻳﺎﻓﺘﻪ( را اﻃﻼع ﻣﻲ ﻧﺎﻣﻨﺪ .اﻳﻦ ﺗﻌﺮﻳﻒ ﻳﻚ ﺗﻌﺮﻳﻒ
ﺑﺴﻴﺎر ﺳﺎده اﺳﺖ ﻛﻪ ﺑﻴﺎﻧﮕﺮ ﺗﻔﺎوت ﺑﻴﻦ دو اﺻﻄﻼح داده و اﻃﻼع اﺳﺖ .وﻟﻲ ﺑﻄﻮر
ﻛﻠﻲ ﻣﻲ ﺗﻮان ﮔﻔﺖ اﻃﻼع ﻣﺠﻤﻮﻋﻪ داده ﻫﺎﻳﻲ اﺳﺖ ﻛﻪ در ﺗﺼﻤﻴﻢ ﮔﻴﺮي ﺑﻜﺎر ﻣﻲ روﻧﺪ
و اﺳﺎﺳﺎً ﻛﻤﻴﺘﻲ اﺳﺖ ﻧﺴﺒﻲ و واﺑﺴﺘﻪ ﺑﻪ وﺿﻌﻴﺖ ﻣﺸﺨﺺ ،زﻣﺎن ﻣﺸﺨﺺ و ﻧﻴﺰ ﺧﻮد
ﺷﺨﺺ )ﻳﺎ ﺳﻴﺴﺘﻢ( ﺗﺼﻤﻴﻢ ﮔﻴﺮﻧﺪه .در واﻗﻊ ،ﺷﺨﺺ ﺗﺼﻤﻴﻢ ﮔﻴﺮﻧﺪه ﺑﺎ ﺗﻔﺴﻴﺮ داده ﻫﺎ
در ﻳﻚ وﺿﻌﻴﺖ ﻣﺸﺨﺺ اﻃﻼﻋﺎت ﻻزم ﺑﺮاي ﺗﺼﻤﻴﻢ ﮔﻴﺮي را ﺑﻪ دﺳﺖ ﻣﻲ آورد.
6-1داﻧﺶ
اﺻﻄﻼح داﻧﺶ ﻋﺒﺎرت اﺳﺖ از ﻧﻤﺎﻳﺶ ﻧﻤﺎدﻳﻦ ﺑﺨﺶ ﻫﺎﻳﻲ از دﻧﻴﺎي واﻗﻌﻲ .ﺑﻪ ﺑﻴﺎﻧﻲ
دﻳﮕﺮ ،داﻧﺶ ﻧﻮﻋﻲ ﺷﻨﺎﺧﺖ اﺳﺖ ﻛﻪ از ﻳﻚ ﻣﺠﻤﻮﻋﻪ از اﻃﻼﻋﺎت ،ﺑﺮاﺳﺎس ﻳﻚ
ﻣﺠﻤﻮﻋﻪ از ﻗﻮاﻋﺪ ﻣﺸﺨﺺ ﺑﺪﺳﺖ ﻣﻲ آﻳﺪ.
ﻧﻜﺘﻪ :1ﺑﻌﻀﻲ از ﺗﺌﻮرﻳﺴﻴﻦ ﻫﺎ داده را ﻫﻤﺎن ﻣﻘﺪار واﻗﻌﺎ ذﺧﻴﺮه ﺷﺪه و اﻃﻼع را ﻣﻌﻨﺎي
آن ﻣﻲ داﻧﻨﺪ ،ﺑﻨﺎﺑﺮاﻳﻦ اﻃﻼع و داده ﺑﺎ ﻫﻢ ﻓﺮق دارﻧﺪ ،اﻃﻼع داراي ﺧﺎﺻﻴﺖ ارﺗﺒﺎط
دﻫﻨﺪﮔﻲ و اﻧﺘﻘﺎل دﻫﻨﺪﮔﻲ اﺳﺖ درﺣﺎﻟﻴﻜﻪ داده ﻣﺠﺮد اﻳﻦ ﺧﺎﺻﻴﺖ را ﻧﺪارد.
www.PDFgozar.com
ﻧﻜﺘﻪ :2دادهﻫﺎ ﺣﺎﻟﺖ ﻣﻨﻔﺮد و ﻣﺠﺰا دارﻧﺪ و ﻟﺰوﻣﺎ اﻃﻼﻋﻲ از آﻧﻬﺎ ﺑﺪﺳﺖ ﻧﻤﻲ آﻳﺪ ﻣﮕﺮ
اﻳﻨﻜﻪ ﺑﻪ ﻧﺤﻮي ﺑﻬﻢ ﻣﺮﺗﺒﻂ ﺷﻮﻧﺪ و ﻣﻌﻨﺎﻳﻲ ﺑﻪ آﻧﻬﺎ ﻣﻨﺘﺴﺐ ﺷﻮد و ﺑﺎﻳﺪ داﻧﺶ را ﻧﻮﻋﻲ
اﻃﻼع ﺳﻄﺢ ﺑﺎﻻﺗﺮ داﻧﺴﺖ در واﻗﻊ ﻫﻢ اﻃﻼع و ﻫﻢ داﻧﺶ ﺣﺎﺻﻞ ﻋﻤﻠﻴﺎﺗﻲ روي داده
ﻫﺴﺘﻨﺪ ،وﻟﻲ ﻧﻮع ﻋﻤﻠﻴﺎت ﻻزم ﺑﺮاي ﺣﺼﻮل آﻧﻬﺎ ﻣﺘﻔﺎوت اﺳﺖ .ﺑﺎ اﻳﻦ اوﺻﺎف راﺑﻄﻪ
ﺑﻴﻦ ﺳﻪ ﻣﻔﻬﻮم داده ،اﻃﻼع و داﻧﺶ ﺑﺼﻮرت زﻳﺮ ﻗﺎﺑﻞ ﻧﻤﺎﻳﺶ ﻣﻲ ﺑﺎﺷﺪ:
ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﻮﺿﻴﺤﺎﺗﻲ ﻛﻪ در ﺑﺎﻻ اراﺋﻪ ﺷﺪ ،اﻛﻨﻮن ﺗﻮﺿﻴﺤﻲ دﻗﻴﻘﺘﺮ از ﻣﻔﻬﻮم
ﭘﺎﻳﮕﺎهداده را اراﺋﻪ ﻣﻲدﻫﻴﻢ.
-2ﺗﻌﺮﻳﻒ ﭘﺎﻳﮕﺎهداده
ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺑﺎ ﺗﻮﺻﻴﻔﻲ ﺟﺎﻣﻊ ﺗﺮ ،ﻣﺠﻤﻮﻋﻪ اي اﺳﺖ از داده ﻫﺎ ﻛﻪ ﺑﺼﻮرت ﻣﺠﺘﻤﻊ و ﺗﺎ
ﺣﺪ ﻣﻤﻜﻦ ﺑﺼﻮرت ﻣﺮﺗﺒﻂ ﺑﻬﻢ و ﺑﺎ ﻛﻤﺘﺮﻳﻦ اﻓﺰوﻧﮕﻲ ذﺧﻴﺮه ﺷﺪه اﻧﺪ ﻛﻪ اﻳﻦ ﻣﺠﻤﻮﻋﻪ
ﺗﺤﺖ ﻣﺪﻳﺮﻳﺖ ﻳﻚ ﺳﻴﺴﺘﻢ ﻛﻨﺘﺮل ﻣﺘﻤﺮﻛﺰ ﺑﺮاي اﺳﺘﻔﺎده ﻳﻚ ﻳﺎ ﭼﻨﺪ ﻛﺎرﺑﺮ ﻗﺮار
ﮔﺮﻓﺘﻪ اﻧﺪ.
ﺷﺎﻳﺪ در ﻧﮕﺎه اول ﺗﻌﺮﻳﻒ اراﺋﻪ ﺷﺪه در ﻣﻮرد ﭘﺎﻳﮕﺎهدادهﻫﺎ ﻛﻤﻲﻣﺒﻬﻢ ﺑﻪ ﻧﻈﺮ ﺑﺮﺳﺪ.
در ﺗﺸﺮﻳﺢ ﻛﻠﻲ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎهدادهﻫﺎ ﻣﻲﺗﻮان ﮔﻔﺖ ﻛﻪ ﻳﻚ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎهداده ﻣﺠﻤﻮﻋﻪاي
از دادهﻫﺎي ﺑﻬﻢ واﺑﺴﺘﻪ اﺳﺖ ﻛﻪ از اﻓﺰوﻧﮕﻲ ﺑﻲﺣﺎﺻﻞ و ﻣﻀﺮ ﻣﺒﺮا اﺳﺖ و ﺑﺮاي
ﻛﺎرﺑﺮدﻫﺎي ﮔﻮﻧﺎﮔﻮن اﺳﺘﻔﺎده ﻣﻲﺷﻮد .دادهﻫﺎ ﺑﻪ ﮔﻮﻧﻪاي ذﺧﻴﺮه ﺷﺪهاﻧﺪ ﻛﻪ از ﺑﺮﻧﺎﻣﻪﻫﺎﻳﻲ
ﻛﻪ آﻧﻬﺎ را ﺑﻪ ﻓﺮﻣﺖ ﻣﻲﮔﻴﺮﻧﺪ ﻣﺴﺘﻘﻞ ﻫﺴﺘﻨﺪ و راه ﻳﺎﻓﺖ ﻣﺸﺘﺮك ﻛﻨﺘﺮل ﺷﺪه ﺑﺮاي درج،
ﺣﺬف ،ﺗﻐﻴﻴﺮ و ﺑﺎزﻳﺎﺑﻲ دادهﻫﺎي ﻣﻮﺟﻮد اﺳﺘﻔﺎده ﻣﻲﺷﻮد و دادهﻫﺎ ﺑﻪﮔﻮﻧﻪاي ﺳﺎﺧﺖ ﻳﺎﻓﺘﻪ
اﺳﺖ ﻛﻪ ﭘﺎﻳﻪاي ﺑﺮاي ﺗﻮﺳﻌﻪ ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي آﻳﻨﺪه ﻓﺮاﻫﻢ ﻣﻲﺳﺎزد .اﻳﻦ دادهﻫﺎ ﺗﻮﺳﻂ
ﻳﻚ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ ﻣﺪﻳﺮﻳﺖ ﻣﻲﺷﻮد .ﺑﺎ اﻳﻦ وﺻﻒ ﻣﻲﺗﻮان درﻳﺎﻓﺖ ﻛﻪ ﻫﺮ
www.PDFgozar.com
ﺗﻌﺪادي ﻓﺎﻳﻞ اﻃﻼﻋﺎﺗﻲ ﺑﺮاي ذﺧﻴﺮه ﺳﺎزي ﻓﺎﻳﻠﻬﺎ ﻃﺮاﺣﻲ ﻣﻲﮔﺮدد .اﻳﻦ ﻓﺎﻳﻠﻬﺎ •
ﻣﻌﻤﻮﻻً ﺑﻪ ﺻﻮرت ﻣﻨﻔﺮد در ﺳﻄﺢ ﺳﻴﺴﺘﻢ ﻃﺮاﺣﻲ ﻣﻲﮔﺮدﻧﺪ.
ﺑﺮﻧﺎﻣﻪ ﻣﻮرد درﺧﻮاﺳﺖ ﺑﺎ اﺳﺘﻔﺎده از ﻳﻚ زﺑﺎن ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺗﻬﻴﻪ ﻣﻲﮔﺮدد. •
ﺑﺮﻧﺎﻣﻪ ﻣﻮرد ﻧﻈﺮ ﺑﻪ ﻫﻤﺮاه ﺑﺮﻧﺎﻣﻪﻫﺎي ﻣﺮﺗﺒﻂ ﺑﺎ ﻓﺎﻳﻞﻫﺎ اﻃﻼﻋﺎﺗﻲ ،ﻣﺠﻤﻮﻋﻪ
ﻧﺮماﻓﺰاري ﺳﻴﺴﺘﻢ را ﭘﻮﺷﺶ ﻣﻲدﻫﻨﺪ.
ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﻛﺎﻣﻞ ﺷﺎﻣﻞ ﻧﺮماﻓﺰار و ﺳﺨﺖاﻓﺰار و اﺣﺘﻤﺎﻻ ﻣﻜﺎﻧﻴﺰﻣﻲﺟﻬﺖ •
ﺑﺮﻗﺮاري ارﺗﺒﺎط ﺑﻴﻦ ﭼﻨﺪ ﺳﺨﺖاﻓﺰار ﻓﺮاﻫﻢ ﻣﻲﮔﺮدد.
ﻣﺠﻤﻮﻋﻪاي از ﺗﺴﺖﻫﺎ ﺟﻬﺖ ﺑﺮرﺳﻲ ﻫﺮ زﻳﺮ ﺳﻴﺴﺘﻢ و در ﻧﻬﺎﻳﺖ ﺑﺮرﺳﻲ ﻛﻞ •
ﺳﻴﺴﺘﻢ اﻋﻤﺎل ﻣﻲﮔﺮدد.
ﺑﺎ اﻳﻦ وﺻﻒ ﺑﻪ راﺣﺘﻲ ﻣﻲ ﺗﻮان درﻳﺎﻓﺖ ﻛﻪ در روش ﻓﺎﻳﻠﻴﻨﮓ ،داده ﻫﺎ در واﻗﻊ ﭼﻨﺪ
ﻣﺠﻤﻮﻋﻪ ﻣﺠﺰا و ﻧﺎﻣﺠﺘﻤﻊ )از ﻟﺤﺎظ ﻣﻨﻄﻘﻲ و ﻓﻴﺰﻳﻜﻲ( و ﺗﺎ ﺣﺪود زﻳﺎدي ﻧﺎﻣﺮﺗﺒﻂ ﺑﺎ
ﻫﻢ و ﺑﺪون ﻣﺪﻳﺮﻳﺖ ﻣﺘﻤﺮﻛﺰ ﺧﻮاﻫﻨﺪ ﺑﻮد .ﻧﻤﺎﻳﻲ از روش ﻓﺎﻳﻠﻴﻨﮓ در ﺷﻜﻞ 2 -1
آﻣﺪه اﺳﺖ.
ﺑﺎ اﻳﻦ وﺻﻒ ﻣﻲ ﺗﻮان ﻣﺸﺎﻫﺪه ﻛﺮد ﻛﻪ اﺳﺎس روش ﻓﺎﻳﻠﻴﻨﮓ ﺑﺮ ﻣﺒﻨﺎي ﺳﺎﺧﺘﺎر
اﻃﻼﻋﺎﺗﻲ ﻳﻜﭙﺎرﭼﻪ ﻃﺮاﺣﻲ ﺷﺪه اﺳﺖ و ﻣﺒﻨﺎي ﻛﺎر ﻣﺪﻳﺮﻳﺖ ﻳﻚ ﭘﺎرﭼﻪ و ﻣﺘﻤﺮﻛﺰ
داده ﻫﺎ ﻣﻲ ﺑﺎﺷﺪ .ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع ﺷﻤﺎﻳﻲ از روش ﭘﺎﻳﮕﺎﻫﻲ در ﺷﻜﻞ 3-1
آﻣﺪه اﺳﺖ.
www.PDFgozar.com
2-2اﺟﺰاء ﭘﺎﻳﮕﺎهداده
ﻫﻤﺎﻧﮕﻮﻧﻪ ﻛﻪ در ﺷﻜﻞ زﻳﺮ ﻣﺸﺎﻫﺪه ﻣﻲ ﺷﻮد ﻫﺮ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده از ﭼﻬﺎر ﺟﺰء
اﺳﺎﺳﻲ ﺗﺸﻜﻴﻞ ﻣﻲ ﺷﻮد:
دادهﻫﺎ •
ﺳﺨﺖاﻓﺰار •
www.PDFgozar.com
ﻧﺮماﻓﺰار •
ﻛﺎرﺑﺮ •
ﺳﺨﺖ اﻓﺰار
ارﺗﺒﺎﻃﻲ
ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ
ﻛﺎرﺑﺮ 1
D
B دادهﻫﺎي
M
ﻛﺎرﺑﺮ 2 ذﺧﻴﺮه ﺷﺪه در
S
ﺳﺨﺖ اﻓﺰار
.
ﻛﺎرﺑﺮn
ﺳﺨﺖ اﻓﺰار ذﺧﻴﺮه ﺳﺎزي و ﭘﺮدازش
ﺷﻜﻞ 4-1ﻳﻚ ﻧﻤﺎي ﻛﻠﻲ از اﺟﺰاء ﻣﻌﺮﻓﻲ ﺷﺪه ﺑﻪ ﻫﻤﺮاه ﻧﺤﻮه ارﺗﺒﺎط ﺑﻴﻦ آﻧﻬﺎ را
ﻧﺸﺎن ﻣﻲ دﻫﺪ .در اداﻣﻪ ﻫﺮ ﻳﻚ از اﺟﺰاء ﻣﺬﻛﻮر ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻨﺪ
ﮔﺮﻓﺖ.
1-2-2دادهﻫﺎ
1
ﻳﻚ ﭘﺎﻳﮕﺎه داده ﮔﻨﺠﻴﻨﻪ اي از داده ﻫﺎ اﺳﺖ ﻛﻪ در ﻛﻞ ﻣﺠﺘﻤﻊ ﺷﺪه و ﺑﻪ اﺷﺘﺮاك
2
اﺳﺖ .ﻣﻨﻈﻮر از ﻣﺠﺘﻤﻊ ﺷﺪﮔﻲ ،اﺗﺤﺎد ﭼﻨﺪﻳﻦ ﻓﺎﻳﻞ داده ﺑﻪ ﺻﻮرت ﮔﺬاﺷﺘﻪ ﺷﺪه
ﻣﺠﻤﻮﻋﻪ اي اﺳﺖ ﻛﻪ آن را ﺑﻪ ﻧﺎم ﭘﺎﻳﮕﺎه داده ﻣﻲ ﺷﻨﺎﺳﻴﻢ و ﺑﻪ ﻫﻤﻴﻦ ﻋﻠﺖ اﺳﺖ ﻛﻪ
ﺗﻤﺎم آن اﻓﺰوﻧﮕﻲ ﻫﺎ ﻛﻪ در ﺳﻴﺴﺘﻢ ﭘﺮدازش ﻓﺎﻳﻠﻬﺎ وﺟﻮد داﺷﺖ از ﻣﻴﺎن ﻣﻲرود .ﻣﻨﻈﻮر
از ﻣﺸﺘﺮك ﺑﻮدن ﭘﺎﻳﮕﺎه دادهﻫﺎ اﻳﻦ اﺳﺖ ﻛﻪ اﻃﻼﻋﺎت ﻣﻮﺟﻮد در ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺑﻴﻦ
1. In t e gr a t e d
2. Sh a r e d
www.PDFgozar.com
اﺳﺘﻔﺎده ﻛﻨﻨﺪﮔﺎن ﻣﺨﺘﻠﻒ ﺑﻪ اﺷﺘﺮاك ﮔﺬاﺷﺘﻪ ﻣﻲ ﺷﻮد .دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه در ﻳﻚ
از: ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﻋﺒﺎرﺗﻨﺪ
دادهﻫﺎي ﻛﺎرﺑﺮان •
دادهﻫﺎي ﺳﻴﺴﺘﻤﻲ •
2-2-2ﺳﺨﺖاﻓﺰار
ﻳﻚ ﭘﺎﻳﮕﺎه داده ﺟﻬﺖ اﺳﺘﻘﺮار ﺑﻪ ﻣﺠﻤﻮﻋﻪ ﻣﻨﺎﺳﺒﻲ از ﺗﺠﻬﻴﺰات ﺳﺨﺖ اﻓﺰاري ﻧﻴﺎز
دارد .ﺳﺨﺖ اﻓﺰار ﻫﺎ ﺑﻪ ﺳﻪ دﺳﺘﻪ ﺗﻘﺴﻴﻢ ﻣﻲ ﮔﺮدﻧﺪ:
ﺳﺨﺖاﻓﺰار ذﺧﻴﺮه ﺳﺎزي دادهﻫﺎ •
ﺳﺨﺖاﻓﺰار ﭘﺮدازﺷﮕﺮ •
ﺳﺨﺖاﻓﺰار ﺑﺮﻗﺮار ﻛﻨﻨﺪه ارﺗﺒﺎط •
در اداﻣﻪ ﺑﻪ ﺷﺮح ﻫﺮ ﻳﻚ از اﻧﻮاع ﺳﺨﺖ اﻓﺰارﻫﺎ در ﻣﺤﻴﻂ ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺧﻮاﻫﻴﻢ
ﭘﺮداﺧﺖ:
-2ﺳﺨﺖاﻓﺰار ﭘﺮدازﺷﮕﺮ
ﻣﻨﻈﻮر ﺧﻮد ﻛﺎﻣﭙﻴﻮﺗﺮ اﺳﺖ .ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ ﺑﺮاي ﭘﺎﻳﮕﺎهﻫﺎي داده ﺑﺎ ﻣﻌﻤﺎري
ﺧﺎص و ﻳﺎ ﺑﺴﻴﺎر ﺣﺠﻴﻢ ،از اﻧﻮاع ﺧﺎﺻﻲ از ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎ ﺑﺎ ﺳﺨﺖ اﻓﺰارﻫﺎي ﺧﺎص و
ﻧﻮع ﭘﺮدازش ﺧﺎص اﺳﺘﻔﺎده ﻣﻲ ﮔﺮدد.
ﻣﻨﻈﻮر از ﺳﺨﺖ اﻓﺰار ﺑﺮﻗﺮار ﻛﻨﻨﺪه ارﺗﺒﺎط ،ﺳﺨﺖ اﻓﺰار ارﺗﺒﺎﻃﻲ ﺑﻴﻦ ﻛﺎﻣﭙﻴﻮﺗﺮ و
دﺳﺘﮕﺎه ﻫﺎي ﺟﻨﺒﻲ و ﻧﻴﺰ ﺑﻴﻦ ﻛﺎﻣﭙﻴﻮﺗﺮ ﻫﺎﺳﺖ .اﻳﻦ اﻣﻜﺎﻧﺎت ﺑﻪ دو دﺳﺘﻪ ﺗﻘﺴﻴﻢ
ﻣﻲ ﺷﻮﻧﺪ:
اﻣﻜﺎﻧﺎت ﻣﺤﻠﻲ :ﺑﺮاي اﻳﺠﺎد ارﺗﺒﺎط ﺑﻴﻦ ﻛﺎﻣﭙﻴﻮﺗﺮ و دﺳﺘﮕﺎهﻫﺎي ﺟﻨﺒﻲ آن در ﻳﻚ •
ﺳﺎﻳﺖ ﺑﻪ ﻛﺎر ﻣﻲرود.
اﻣﻜﺎﻧﺎت ﺷﺒﻜﻪاي :دراﻳﺠﺎد ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎهدادهﻫﺎي ﺑﺎ ﻣﻌﻤﺎري ﻧﺎ ﻣﺘﻤﺮﻛﺰ ﺑﻪ ﻛﺎر •
ﻣﻲرود.
ﭼﻨﺎﻧﭽﻪ ﺑﺨﻮاﻫﻴﻢ ﭘﺎﻳﮕﺎه ﻫﺎي داده را ﺑﺮ اﺳﺎس ﻧﮕﺎه ارﺗﺒﺎﻃﻲ دﺳﺘﻪ ﺑﻨﺪي ﻛﻨﻴﻢ ،اﻧﻮاع
ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎه دادهﻫﺎ ﺑﻪ ﺷﺮح زﻳﺮ ﺧﻮاﻫﺪ ﺑﻮد:
1
ﻣﻌﻤﺎري ﻣﺸﺘﺮي -ﺧﺪﻣﺖ ﮔﺰار •
2
ﻣﻌﻤﺎري ﻣﺘﻤﺮﻛﺰ •
3
ﻣﻌﻤﺎري ﺗﻮزﻳﻊ ﺷﺪه •
4
ﻣﻌﻤﺎري ﺑﺎ ﭘﺮدازش ﻣﻮازي •
5
ﻣﻌﻤﺎري ﭼﻨﺪ ﭘﺎﻳﮕﺎﻫﻲ •
6
ﻣﻌﻤﺎري ﻣﻮﺑﺎﻳﻞ •
3-2-2ﻧﺮماﻓﺰار
ﺑﻴﻦ دادهﻫﺎﻳﻲ ﻛﻪ ﺑﻪ ﺻﻮرت ﻓﻴﺰﻳﻜﻲ روي دﺳﺘﮕﺎه ﻫﺎي ذﺧﻴﺮه ﺳﺎزي ﻣﻨﺎﺳﺐ اﺳﺘﻘﺮار
ﻣﻲ ﻳﺎﺑﺪ و ﭘﺎﻳﮕﺎه دادهﻫﺎ را ﺑﻪ وﺟﻮد ﻣﻲ آورﻧﺪ و اﺳﺘﻔﺎده ﻛﻨﻨﺪﮔﺎن ﻳﻚ ﻻﻳﻪ ﻧﺮم اﻓﺰاري
ﻗﺮار ﻣﻲ ﮔﻴﺮد ﻛﻪ آن را ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ) (DBMSﻣﻲ ﻧﺎﻣﻨﺪ .ﺗﻤﺎم ﺗﻘﺎﺿﺎ
ﺑﺮاي اﺳﺘﻔﺎده از اﻃﻼﻋﺎت ﭘﺎﻳﮕﺎه داده از ﻃﺮﻳﻖ اﻳﻦ ﺳﻴﺴﺘﻢ ﺳﻴﺮ ﻣﻲ ﺷﻮد و ﺑﺎزﻳﺎﺑﻲ
داده ﻫﺎ روي ﺳﺨﺖ اﻓﺰارﻫﺎﻳﻲ ﺻﻮرت ﻣﻲ ﮔﻴﺮد .ﻧﺮم اﻓﺰارﻫﺎ ﺧﻮد ﺑﻪ دو دﺳﺘﻪ ﺗﻘﺴﻴﻢ
1. C li e n t - Se r ve r Ar c h i t e c t u r e
2. C e nt r a l i z e d Ar c h i t e c t u r e
3. D i st r i b u t e d Ar c h i t e c t u r e
4. P ar a l l e l P r o c e s si n g Ar c h i t e c t u r e
5. M u lt i D at a b a s e Ar c h i t e c t u r e
6. M o bi l e Ar c h i t e c t ur e
www.PDFgozar.com
ﻣﻲ ﺷﻮﻧﺪ:
ﻧﺮماﻓﺰار ﻛﺎرﺑﺮدي •
• ﻧﺮماﻓﺰار ﺳﻴﺴﺘﻤﻲ
-1ﻧﺮماﻓﺰار ﻛﺎرﺑﺮدي
ﻧﺮم اﻓﺰاري اﺳﺖ ﻛﻪ ﻛﺎرﺑﺮ ﺑﺎﻳﺪ ﺑﺮاي ﺗﻤﺎس ﺑﺎ ﺳﻴﺴﺘﻢ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ آﻣﺎده ﻛﻨﺪ .اﻳﻦ
1
ﻧﺮم اﻓﺰار ﺑﻪ ﻛﻤﻚ ﻳﻚ زﺑﺎن ﺳﻄﺢ ﺑﺎﻻ و ﻳﻚ زﺑﺎن دادهﻳﻲ و ﺑﺮﺧﻲ ﺗﺴﻬﻴﻼت
ﻧﺮم اﻓﺰاري ﺑﺮاي ﺗﻤﺎس ﺑﺎ ﺑﺎﻧﻚ ﺳﺎﺧﺘﻪ ﻣﻲ ﺷﻮد .
-2ﻧﺮماﻓﺰار ﺳﻴﺴﺘﻤﻲ
اﻳﻦ ﻧﻮع ﻧﺮم اﻓﺰار از دو ﻗﺴﻤﺖ ﻧﺮم اﻓﺰار ﺳﻴﺴﺘﻤﻲ ﺧﺎص ﺑﺎﻧﻚ ﻛﻪ در اﻳﻨﺠﺎ ﺑﻪ آن
ﻣﻲ ﮔﻮﻳﻴﻢ و ﻧﺮم اﻓﺰار ﺳﻴﺴﺘﻤﻲﻋﻤﻮﻣﻲ )ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ( ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ. DBMS
) (DBMSدر ﻳﻚ ﺗﻌﺮﻳﻒ ﺳﺎده ،ﺳﻴﺴﺘﻤﻲ اﺳﺖ ﻛﻪ ﺑﻪ ﻛﺎرﺑﺮان اﻣﻜﺎن ﻣﻲ دﻫﺪ ﻋﻤﻠﻴﺎت
ﻣﻮرد ﻧﻈﺮﺷﺎن را )ﻣﺎﻧﻨﺪ ﺗﻌﺮﻳﻒ دادهﻫﺎ ،ﺑﺎزﻳﺎﺑﻲ دادهﻫﺎ ،ذﺧﻴﺮه ﺳﺎزي دادهﻫﺎ( اﻧﺠﺎم
ﻛﻪ ﻧﺮم اﻓﺰاري ﭘﻴﭽﻴﺪه اﺳﺖ ﻣﻴﻬﻤﺎن ﻳﻚ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ اﺳﺖ و از DBMS دﻫﻨﺪ.
اﻣﻜﺎﻧﺎت ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ در اﻧﺠﺎم وﻇﺎﻳﻔﺶ اﺳﺘﻔﺎده ﻣﻲ ﻛﻨﺪ .
4-2-2ﻛﺎرﺑﺮ
ﻫﺮ اﺳﺘﻔﺎده ﻛﻨﻨﺪه از ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده ﻫﺎ را ﻛﺎرﺑﺮ ﻣﻲ ﮔﻮﻳﻨﺪ .ﻛﺎرﺑﺮان ﭘﺎﻳﮕﺎه داده را
ﻣﻲ ﺗﻮان ﺑﻪ ﺳﻪ ﮔﺮوه اﺳﺎﺳﻲ و ﻣﺘﻔﺎوت ﺗﻘﺴﻴﻢ ﻧﻤﻮد:
ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﺎن ﻛﺎرﺑﺮدي •
ﻛﺎرﺑﺮان واﻗﻌﻲ ﻳﺎ ﻧﻬﺎﻳﻲ •
ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎهدادهﻫﺎ •
1. D at a La n gu a ge
www.PDFgozar.com
1
-1ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﺎن ﻛﺎرﺑﺮدي
اﻓﺮادي ﻫﺴﺘﻨﺪ ﻛﻪ ﺑﺎ اﻃﻼﻋﺎﺗﻲ ﻛﻪ در ﻣﻮرد ﭘﺎﻳﮕﺎه داده ﭘﻴﺪا ﻣﻲ ﻛﻨﻨﺪ ﻣﻲ ﺗﻮاﻧﻨﺪ
ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﻣﻨﺎﺳﺒﻲ ﺟﻬﺖ ﺑﺮوز ﻛﺮدن اﻃﻼﻋﺎت و ﻳﺎ اﺳﺘﻔﺎده از اﻃﻼﻋﺎت ﻣﻮﺟﻮد در
ﭘﺎﻳﮕﺎه داده ﺗﻬﻴﻪ ﻧﻤﺎﻳﻨﺪ .
2
-2ﻛﺎرﺑﺮان واﻗﻌﻲ ﻳﺎ ﻧﻬﺎﻳﻲ
اﻓﺮادي ﻫﺴﺘﻨﺪ ﻛﻪ ﺑﺎ اﺳﺘﻔﺎده از اﻣﻜﺎﻧﺎﺗﻲ ﻛﻪ ﭘﺎﻳﮕﺎه داده در اﺧﺘﻴﺎر آﻧﻬﺎ ﻗﺮار ﻣﻲ دﻫﺪ
ﻣﻲ ﺗﻮاﻧﻨﺪ اﻣﻮر ﻣﺮﺑﻮط ﺑﻪ ﺧﻮد و ﻣﻮﺳﺴﻪ و ﺳﺎزﻣﺎن را اﻧﺠﺎم دﻫﻨﺪ .
3
-3ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎهداده
ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎه داده ﻣﺴﺌﻮﻟﻴﺖ ﻛﻨﺘﺮل ﻣﺘﻤﺮﻛﺰ ﺳﺎزﻣﺎن ﺑﺮ داده ﻫﺎي ﻋﻤﻠﻴﺎﺗﻲ را ﺑﺮ ﻋﻬﺪه
دارد .اﮔﺮ ﺑﺨﻮاﻫﻴﻢ وﻇﺎﻳﻒ DBAرا ﺑﻪ ﻃﻮر ﺟﺰﺋﻲ ﻃﺮاﺣﻲ ﻛﻨﻴﻢ ﻋﺒﺎرﺗﻨﺪ از:
ﺗﺼﻤﻴﻢ ﮔﻴﺮي در ﻣﻮرد دادهﻫﺎﻳﻲ ﻛﻪ در ﭘﺎﻳﮕﺎهداده ﻧﮕﻬﺪاري ﻣﻲﺷﻮﻧﺪ. •
ﺗﺼﻤﻴﻢ ﮔﻴﺮي در ﻣﻮرد ذﺧﻴﺮه ﺳﺎزي و روش دﺳﺘﻴﺎﺑﻲ اﺳﺖ. •
ارﺗﺒﺎط ﺑﺎ ﻛﺎرﺑﺮان ﺑﺮاي ﺣﺼﻮل اﻃﻤﻴﻨﺎن از ﺑﺮآورده ﺷﺪن ﻧﻴﺎزﻫﺎي آﻧﺎن. •
5 4
ﺗﻌﺮﻳﻒ ﺑﺮرﺳﻲﻫﺎي ﻣﺮﺑﻮط ﺑﻪ اﻣﻨﻴﺖ وﺟﺎﻣﻌﻴﺖ )ﺻﺤﺖ ﻋﻤﻠﻴﺎت دادهﻫﺎ(. •
6
ﺗﻌﺮﻳﻒ اﺳﺘﺮاﺗﮋي اﺧﺬ ﻧﺴﺨﻪ ﭘﺸﺘﻴﺒﺎﻧﻲ و ﺗﺮﻣﻴﻢ . •
ﻧﻈﺎرت ﺑﺮ ﻋﻤﻠﻜﺮد ﺳﻴﺴﺘﻢ و ﭘﺎﺳﺨﮕﻮﻳﻲ ﺑﻪ ﻧﻴﺎزﻫﺎي در ﺣﺎل ﺗﻐﻴﻴﺮ. •
ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ اﻣﺮوزه ﺑﺎ ﭘﻴﭽﻴﺪه ﺗﺮ ﺷﺪن ﭘﺎﻳﮕﺎه ﻫﺎي داده و ﺣﺠﻴﻢ ﺗﺮ ﺷﺪن
ﺗﺤﺖ ﻧﻈﺮ ﻳﻚ ﻣﺪﻳﺮ اﺻﻠﻲ )(Junior DBA داده ﻫﺎ ،ﻣﻌﻤﻮﻻً ﭼﻨﺪ ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎه داده
ﻗﺮار ﮔﺮﻓﺘﻪ و ﻫﺮ ﻳﻚ ﻣﺴﺌﻮﻟﻴﺖ ﻳﻚ ﻗﺴﻤﺖ را ﺑﺮ ﻋﻬﺪه )(Senior DBA ﭘﺎﻳﮕﺎه داده ﻫﺎ
دارﻧﺪ.
ﺗﻤﺮﻳﻨﺎت
ﻓﺼﻞ ۲
ﻫﺪف ﻛﻠﻲ
در اﻳﻦ ﻓﺼﻞ ﺑﺎ ﻣﻔﻬﻮم ﻣﺪل ﺳﺎزي ﻣﻌﻨﺎﻳﻲ دادهﻫﺎ آﺷﻨﺎ ﺧﻮاﻫﻴﻢ ﺷﺪ و دو روش ﻣﺪل
2 1
را ﻣﻮرد )(ERR و ﻣﻮﺟﻮدﻳﺖ -ارﺗﺒﺎط ﺗﻮﺳﻌﻪ ﻳﺎﻓﺘﻪ )(ER ﺳﺎزي ﻣﻮﺟﻮدﻳﺖ -ارﺗﺒﺎط
ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻴﻢ داد .در ﺑﺤﺚ ﻣﺪل ﺳﺎزي ﺑﻪ روش ،ERﺑﺎ ﻣﻔﺎﻫﻴﻢ
ﻣﻮﺟﻮدﻳﺖ ،ﺻﻔﺎت و ارﺗﺒﺎط آﺷﻨﺎ ﺷﺪه و ﺳﭙﺲ ﻧﺤﻮه رﺳﻢ ﻧﻤﻮدار را در اﻳﻦ روش
را ﺷﺮح ﺧﻮاﻫﻴﻢ داد. ER ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻴﻢ داد و ﭘﺲ از آن ﻣﺸﻜﻼت روش
را ﺗﻮﺿﻴﺢ داده و ﻣﻄﺎﻟﺒﻲ در ﺧﺼﻮص ﻧﺤﻮه ERR در اداﻣﻪ ﻣﺪل ﺳﺎزي ﺑﻪ روش
ﭘﻮﺷﺶ ﻣﺒﺎﺣﺚ ﺷﻲ ﮔﺮاﻳﻲ در اﻳﻦ روش را ﺑﺮﺧﻮاﻫﻴﻢ ﺷﻤﺮد.
ﻫﺪف رﻓﺘﺎري
در اﻳﻦ ﻓﺼﻞ ﻋﻨﺎوﻳﻦ زﻳﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ:
ﻣﺪل ﺳﺎزي ﻣﻌﻨﺎﻳﻲ دادهﻫﺎ •
ER ﻣﺪل ﺳﺎزي ﺑﻪ روش •
ﻧﻮع ﻣﻮﺟﻮدﻳﺖ •
ﻧﻤﻮﻧﻪ ﻣﻮﺟﻮدﻳﺖ •
ﺣﺎﻻت ﻳﻚ ﻣﻮﺟﻮدﻳﺖ •
)1. E nt i t y Re l a t i o n s hi p ( E R
)2. E xt e n d e d ( E n h a n c ed ) E nt i t y R e l a t i on s h i p ( E E R
www.PDFgozar.com
1
-1ﻣﺪﻟﺴﺎزي ﻣﻌﻨﺎﻳﻲ دادهﻫﺎ
ﻛﺎرﺑﺮان ﭘﺎﻳﮕﺎه داده ﺑﻪ ﻃﻮر ﻣﻌﻤﻮل ﺑﺎ داده ﻫﺎي ذﺧﻴﺮه ﺷﺪه در ﭘﺎﻳﮕﺎه داده ﺳﺮ و ﻛﺎر
دارﻧﺪ ﻛﻪ اﺻﻄﻼﺣﺎ ﺑﻪ آﻧﻬﺎ داده ﻫﺎي ﻋﻤﻠﻴﺎﺗﻲ ﻣﻲ ﮔﻮﻳﻨﺪ .ﻳﻜﻲ از ﻧﻜﺎت ﻣﻬﻢ در ذﺧﻴﺮه
ﺳﺎزي داده ﻫﺎ ﻣﺪل ﺳﺎزي ﻣﻌﻨﺎﻳﻲ آﻧﻬﺎ ﻣﻲ ﺑﺎﺷﺪ .ﻳﻌﻨﻲ داده ﻫﺎي ذﺧﻴﺮه ﺷﺪﻧﻲ در
ﭘﺎﻳﮕﺎه داده ﻫﺎ اﺑﺘﺪا ﺑﺎﻳﺪ در ﺑﺎﻻﺗﺮﻳﻦ ﺳﻄﺢ اﻧﺘﺰاع ﻣﺪل ﺳﺎزي ﻣﻌﻨﺎﻳﻲ ﺷﻮﻧﺪ .ﺣﺎل ﻣﻤﻜﻦ
اﺳﺖ اﻳﻦ ﺳﺌﻮال ﺑﻪ ذﻫﻦ ﺑﺮﺳﺪ ﻛﻪ ﻣﺪل ﺳﺎزي ﻣﻌﻨﺎﻳﻲ ﺑﻪ ﭼﻪ ﻣﻌﻨﻲ اﺳﺖ.
2
ﻣﺪل ﺳﺎزي ﻣﻌﻨﺎﻳﻲ دادهﻫﺎ ﻋﺒﺎرت اﺳﺖ از اراﺋﻪ ﻣﺪﻟﻲ از ﻣﺤﻴﻂ ﻋﻤﻠﻴﺎﺗﻲ ﺑﻪ ﻛﻤﻚ
ﻣﻔﺎﻫﻴﻤﻲﻣﺴﺘﻘﻞ از ﻣﻮﺿﻮﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ﻧﻤﺎﻳﺶ ﻣﻨﻄﻘﻲ و ﻓﻴﺰﻳﻜﻲ دادهﻫﺎ .ﻣﺪل ﺳﺎزي
3
ﻣﻌﻨﺎﻳﻲ را در ﺑﻌﻀﻲ از ﻛﺘﺐ ﻃﺮاﺣﻲ ادراﻛﻲ ﻧﻴﺰ ﻣﻲﻧﺎﻣﻨﺪ .ﺑﺮاي ﻣﺪل ﺳﺎزي ﻣﻌﻨﺎﻳﻲ
روشﻫﺎي ﻣﺨﺘﻠﻒ وﺟﻮد دارد .روشﻫﺎي ﻛﻼﺳﻴﻚ راﻳﺞ ﻋﺒﺎرﺗﻨﺪ از:
1. Se ma n t i c D a t a M o d e l i n g
2 . O pe r a t i o n a l E n vi r o n me n t
3. C o nc e p t u a l D e s i gn
www.PDFgozar.com
در اﻳﻦ ﺑﻴﻦ روش ﻣﻮﺟﻮدﻳﺖ -ارﺗﺒﺎط ) (ERﻛﻪ از اﺑﺘﺪا ﺑﻪ ﻋﻨﻮان روش ﻣﺪل ﺳﺎزي
ﻣﻌﻨﺎﻳﻲ در ﭘﺎﻳﮕﺎه ﻫﺎي داده راﺑﻄﻪ اي ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﮔﺮﻓﺘﻪ اﺳﺖ ﺑﻴﺸﺘﺮ ﻣﻮرد ﺑﺮرﺳﻲ
ﻗﺮار ﺧﻮاﻫﺪ ﮔﺮﻓﺖ.
در اداﻣﻪ ﻫﺮ ﻳﻚ از ﻣﻔﺎﻫﻴﻢ ﻣﺬﻛﻮر را ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻴﻢ داد.
1-2ﻧﻮع ﻣﻮﺟﻮدﻳﺖ
ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻋﺒﺎرت اﺳﺖ از ﻣﻔﻬﻮم ﻛﻠﻲ ﻫﺮ آﻧﭽﻪ ﻛﻪ ﻣﻲ ﺧﻮاﻫﻴﻢ در ﻣﻮرد آن
اﻃﻼﻋﻲ ﺟﻤﻊ آوري ﻛﻨﻴﻢ و داﻧﺶ ﺧﻮد را در ﻣﻮردش اﻓﺰاﻳﺶ دﻫﻴﻢ .ﮔﺎه ﺑﻪ ﻧﻮع
ﻣﻮﺟﻮدﻳﺖ ،ﻧﻮع ﺷﻴﻲ ﻫﻢ ﻣﻲﮔﻮﻳﻴﻢ .ﻻزم ﺑﺬﻛﺮ اﺳﺖ ﻛﻪ ﺗﺸﺨﻴﺺ اﻧﻮاع ﻣﻮﺟﻮدﻳﺖ ﻫﺎ
1. E nt i t y
2. At t r i b u t e
3. R el a t i o n
4. Se ma n t i c C o n c e p t
5. E nt i t y T y p e
6. At t r i b u t e
7. R el a t i o n s h i p T y p e
www.PDFgozar.com
در ﻳﻚ ﻣﺤﻴﻂ ﻛﺎري دﺷﻮار ﻣﻲ ﺑﺎﺷﺪ .ﺑﻪ ﻃﻮر ﻛﻠﻲ ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ داراي
ﺧﺼﻮﺻﻴﺎت زﻳﺮ ﻣﻲ ﺑﺎﺷﺪ ﻳﺎ ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ ﻻزم اﺳﺖ اﻃﻼﻋﺎت زﻳﺮ در ﻣﻮرد ﻫﺮ ﻧﻮع
ﻣﻮﺟﻮدﻳﺘﻲ ﺑﺪﺳﺖ آﻳﺪ:
ﻧﺎم ﻣﻮﺟﻮدﻳﺖ )ﻳﺎ ﭘﺪﻳﺪه( •
ﻣﻌﻨﺎي ﻣﺸﺨﺺ •
ﻣﺠﻤﻮﻋﻪاي از ﺻﻔﺎت •
ﻣﺠﻤﻮﻋﻪاي از ﻧﻤﻮﻧﻪﻫﺎ •
ﺣﺎﻟﺖ ﻛﻨﺶ ﮔﺮي ﻳﺎ ﻛﻨﺶ ﭘﺬﻳﺮي •
ﻋﺪم واﺑﺴﺘﮕﻲ و ﻳﺎ واﺑﺴﺘﮕﻲ ﺑﻪ ﻳﻚ ﻧﻮع دﻳﮕﺮ •
1
1-1-2ﻧﻤﻮﻧﻪ ﻣﻮﺟﻮدﻳﺖ
ﺗﻤﺎم ﻧﻤﻮﻧﻪﻫﺎي ﻣﺸﺨﺺ )در ﻣﻮاردي ﻣﺘﻤﺎﻳﺰ( ﻫﺮ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ از ﻳﻚ ﻣﺤﻴﻂ
2
ﻣﺸﺨﺺ ،ﻣﺠﻤﻮﻋﻪ اي ﺑﻪ ﻧﺎم ﻣﺠﻤﻮﻋﻪ ﻧﻤﻮﻧﻪ ﻫﺎي آن ﻣﻮﺟﻮدﻳﺖ را ﺗﺸﻜﻴﻞ ﻣﻲ دﻫﻨﺪ
ﻫﺮ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺧﻮد ﻣﻲﺗﻮاﻧﺪ داراي ﻧﻤﻮﻧﻪ ﻫﺎي ﻣﺨﺘﻠﻔﻲ ﺑﺎﺷﺪ ﻛﻪ اﻳﻦ ﻧﻤﻮﻧﻪ ﻫﺎ از
ﻣﺸﺨﺼﺎت ﻧﻮع ﺧﻮد ﺗﺒﻌﻴﺖ ﻣﻲ ﻛﻨﻨﺪ .ﺑﺮاي ﻣﺜﺎل ﻣﻮﺟﻮدﻳﺖ اﺗﻮﻣﺒﻴﻞ ﻣﻲ ﺗﻮاﻧﺪ داراي
ﻧﻤﻮﻧﻪ ﻫﺎﻳﻲ ﻣﺎﻧﻨﺪ ﭘﻴﻜﺎن ،ﭘﮋو ،ﺳﻤﻨﺪ ،ﺑﻨﺰ و ...ﺑﺎﺷﺪ ﻛﻪ ﻫﺮ ﻛﺪام از اﻳﻨﻬﺎ در واﻗﻊ ﻳﻚ
ﻧﻤﻮﻧﻪ از ﻣﻮﺟﻮدﻳﺖ اﺗﻮﻣﺒﻴﻞ ﻫﺴﺘﻨﺪ.
2-1-2ﺣﺎﻻت ﻳﻚ ﻣﻮﺟﻮدﻳﺖ
ﻳﻜﻲ از ﻧﻜﺎت ﺑﺴﻴﺎر ﻣﻬﻢ در ﺗﻌﻴﻴﻦ ﻣﻮﺟﻮدﻳﺖﻫﺎ ﺗﻌﻴﻴﻦ ﻣﺴﺘﻘﻞ ﻳﺎ واﺑﺴﺘﻪ ﺑﻮدن
ﻣﻮﺟﻮدﻳﺖ ﻫﺎ ﻣﻲ ﺑﺎﺷﺪ .ﻳﻚ ﻣﻮﺟﻮدﻳﺖ ﻣﻤﻜﻦ اﺳﺖ ﺑﻪ دو ﺻﻮرت ﻗﻮي )ﻣﺴﺘﻘﻞ( ﻳﺎ
1. E nt i t y In s t a n c e
2. In s t a n c e s Se t
www.PDFgozar.com
ﺿﻌﻴﻒ )واﺑﺴﺘﻪ( ﺑﺎﺷﺪ .در اداﻣﻪ ﺑﻪ ﺷﺮح ﺣﺎﻻت ﻣﺬﻛﻮر ﺧﻮاﻫﻴﻢ ﭘﺮداﺧﺖ:
1
ﻣﻮﺟﻮدﻳﺖ ﻗﻮي ﻳﺎ ﻣﺴﺘﻘﻞ
ﻣﻮﺟﻮدﻳﺘﻲ اﺳﺖ ﻛﻪ ﻣﺴﺘﻘﻞ از ﻫﺮ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ دﻳﮕﺮ و ﺑﻪ ﺧﻮدي ﺧﻮد در ﻳﻚ
ﻣﺤﻴﻂ ﻣﺸﺨﺺ ﻣﻄﺮح ﺑﺎﺷﺪ .اﻳﻦ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ واﺑﺴﺘﮕﻲ ﺧﺎﺻﻲ ﺑﻪ ﺳﺎﻳﺮ
ﻣﻮﺟﻮدﻳﺖ ﻫﺎي ﻣﺤﻴﻂ ﻋﻤﻠﻴﺎﺗﻲ ﻧﺪارد.
2
ﻣﻮﺟﻮدﻳﺖ ﺿﻌﻴﻒ ﻳﺎ واﺑﺴﺘﻪ
ﻣﻮﺟﻮدﻳﺖ ﺿﻌﻴﻒ ﻣﻮﺟﻮدﻳﺘﻲ اﺳﺖ ﻛﻪ وﺟﻮدش واﺑﺴﺘﻪ ﺑﻪ ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ دﻳﮕﺮ
)ﻣﻮﺟﻮدﻳﺖ ﻗﻮي( اﺳﺖ .ﻻزم ﺑﺬﻛﺮ اﺳﺖ ﻛﻪ اﮔﺮ ﻣﻮﺟﻮدﻳﺖ ﻗﻮي از ﻣﺪل ﻣﻌﻨﺎﻳﻲ
ﺣﺬف ﮔﺮدد ،وﺟﻮد ﻣﻮﺟﻮدﻳﺖ ﺿﻌﻴﻒ ﺑﻲ ﻣﻌﻨﺎ ﺑﻮده و ﻣﻮﺟﻮدﻳﺖ ﺿﻌﻴﻒ ﻧﻴﺰ ﺣﺬف
ﻣﻲ ﮔﺮدد.
ﻧﻜﺘﻪ :ﻣﺴﺘﻘﻞ ﺑﻮدن ﻳﺎ واﺑﺴﺘﻪ ﺑﻮدن ﻣﻮﺟﻮدﻳﺖﻫﺎ در ﻣﺤﻴﻂ ﻋﻤﻠﻴﺎﺗﻲ ﻛﻪ ﻣﻲ ﺧﻮاﻫﻴﻢ
ﺑﺮاي آن ﭘﺎﻳﮕﺎه داده اي ﻃﺮاﺣﻲ ﻛﻨﻴﻢ ،ﺗﻌﻴﻴﻦ ﻣﻲ ﮔﺮدد و اﻳﻦ ﻣﻮﺿﻮع ارﺗﺒﺎﻃﻲ ﺑﻪ
واﺑﺴﺘﮕﻲ و ﻳﺎ اﺳﺘﻘﻼل ﻣﻮﺟﻮدﻳﺖ در دﻧﻴﺎي واﻗﻌﻲ ﻧﺪارد.
2-2ﺻﻔﺖ
ﻫﺮ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺷﺎﻣﻞ ﻣﺠﻤﻮﻋﻪ اي از ﺻﻔﺎت )ﻣﺸﺨﺼﺎت( ﻣﺮﺑﻮط ﺑﻪ آن ﻣﻮﺟﻮدﻳﺖ
اﺳﺖ ﻛﻪ ﺣﺎﻟﺖ ﻳﺎ وﺿﻊ آن ﻣﻮﺟﻮدﻳﺖ را ﺗﻮﺻﻴﻒ ﻣﻲ ﻛﻨﺪ .اﻳﻦ ﺻﻔﺎت ﺧﻮد داراي
رده ﺑﻨﺪي ﻫﺎي ﻣﺨﺘﻠﻔﻲ ﻫﺴﺘﻨﺪ ﻛﻪ در ذﻳﻞ آﻣﺪه اﺳﺖ:
1. St r o n g
2. W ea k
3. Si n gl e
4. C o mp o s i t e
www.PDFgozar.com
در اداﻣﻪ ﻫﺮ ﻳﻚ از رده ﺑﻨﺪي ﺻﻔﺎت )ﺑﺮ اﺳﺎس آﻧﭽﻪ ﻛﻪ در ﺑﺎﻻ آﻣﺪه اﺳﺖ( ﻣﻮرد
ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ.
ﺻﻔﺖ ﻣﺮﻛﺐ
ﺻﻔﺘﻲ ﻛﻪ از ﭼﻨﺪ ﺻﻔﺖ ﺳﺎده ﺗﺸﻜﻴﻞ ﺷﺪه و ﺗﺠﺰﻳﻪ ﺷﺪﻧﻲ ﻣﻲ ﺑﺎﺷﺪ .ﻣﺎﻧﻨﺪ ﺻﻔﺖ
آدرس ﻛﻪ ﻣﻲ ﺗﻮاﻧﺪ ﺷﺎﻣﻞ ﻧﺎم ﻛﺸﻮر ،اﺳﺘﺎن ،ﺷﻬﺮ ،ﻣﻨﻄﻘﻪ و ...ﺑﺎﺷﺪ .ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ
ﻛﻪ ﻣﻲﺗﻮان ﺑﺮ ﺣﺴﺐ ﻧﻮع ﻧﻴﺎز ﺑﺠﺎي اﺳﺘﻔﺎده از ﻳﻚ ﺻﻔﺖ ﻣﺮﻛﺐ ،ﺻﻔﺖ ﻣﺬﻛﻮر را
ﺑﻪ ﭼﻨﺪﻳﻦ ﺻﻔﺖ ﺳﺎده ﺷﻜﺴﺖ.
1. Si n gl e V a l u e d
2. M u lt i V al u e d
3. N u ll V al u e
4. R ea l
5. D er i ve d
www.PDFgozar.com
ﺻﻔﺖ
ﺳﺎده ﻣﺮﻛﺐ
3-2-2ﺷﻨﺎﺳﻪ
ﺻﻔﺖ ﺷﻨﺎﺳﻪ ﻣﻮﺟﻮدﻳﺖ ،ﺻﻔﺘﻲ اﺳﺖ ﻛﻪ ﺑﺎﻳﺪ ﻳﻜﺘﺎﻳﻲ ﻣﻘﺪار داﺷﺘﻪ ﺑﺎﺷﺪ و ﺣﺘﻲ
اﻻﻣﻜﺎن ﻃﻮل ﻣﻘﺎدﻳﺮش ﻛﻮﺗﺎه ﺑﺎﺷﺪ.
ﺻﻔﺖ ﻣﺸﺘﻖ
ﺻﻔﺘﻲ اﺳﺖ ﻛﻪ ﻣﻘﺎدﻳﺮش در ﭘﺎﻳﮕﺎه داده ﻫﺎ ذﺧﻴﺮه ﺷﺪه ﻧﺒﺎﺷﺪ .اﻳﻦ ﺻﻔﺖ وﺟﻮد
ﺧﺎرﺟﻲ ﻧﺪارد .وﻟﻲ از روي دﻳﮕﺮ ﺻﻔﺎت ﻗﺎﺑﻞ ﻣﺤﺎﺳﺒﻪ اﺳﺖ .ﻣﺎﻧﻨﺪ ﺳﻦ اﻓﺮاد ﻛﻪ از
روي ﺗﺎرﻳﺦ ﺗﻮﻟﺪ ﻗﺎﺑﻞ ﻣﺤﺎﺳﺒﻪ اﺳﺖ .ﻫﺮ ﺻﻔﺖ ﺟﻨﺒﻪ ﻫﺎي زﻳﺮ را دارد:
ﻧﺎم •
ﻣﻌﻨﺎ •
ﻣﻴﺪان )داﻣﻨﻪ( ﻣﻘﺎدﻳﺮ •
ﻧﻮع ﻣﻘﺪار •
ﻃﻮل ﻣﻘﺪار )ﺻﺮﻳﺢ ﻳﺎ ﺻﻔﺘﻲ( •
ﻳﻚ ﻳﺎ ﭼﻨﺪ ﻣﺤﺪودﻳﺖ ﻧﺎﻇﺮ ﺑﻪ ﺻﻔﺖ •
1
3-2ارﺗﺒﺎط
ﻳﻜﻲ از ﻣﻔﺎﻫﻴﻢ ﺑﺴﻴﺎر ﻣﻬﻢ در ﻣﺪل ﺳﺎزي ﻣﻌﻨﺎﻳﻲ داده ﻫﺎ ﻣﻔﻬﻮم ارﺗﺒﺎط ﻳﺎ ﺑﺴﺘﮕﻲ
اﺳﺖ ،ﺑﻪ ﻫﻤﻴﻦ ﻣﻨﻈﻮر ﺑﻪ ﺗﻌﺮﻳﻒ ﻧﻮع ارﺗﺒﺎط ﻣﻲ ﭘﺮدازﻳﻢ:
ﻧﻮع ارﺗﺒﺎط
ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ) (n≥1و ﻣﺎﻫﻴﺘﺎ ﻧﻮﻋﻲ n ﺋﻮع ارﺗﺒﺎط ﻋﺒﺎرت اﺳﺖ از ﺗﻌﺎﻣﻞ 2ﺑﻴﻦ
ﺑﺴﺘﮕﻲ ﺑﻴﻦ اﻧﻮاع ﻣﻮﺟﻮدﻳﺖﻫﺎﺳﺖ .ﺑﻪ ﺗﻌﺒﻴﺮي دﻳﮕﺮ ﻋﻤﻠﻲ اﺳﺖ ﻛﻪ ﺑﻴﻦ اﻧﻮاع
ﻣﻮﺟﻮدﻳﺖ ﻫﺎ ﺟﺎري ﺑﻮده ،ﻫﺴﺖ ﻳﺎ ﺧﻮاﻫﺪ ﺑﻮد .ﻫﺮ ﻧﻮع ارﺗﺒﺎط ﻳﻚ ﻣﻌﻨﺎي ﻣﺸﺨﺺ
داﺷﺘﻪ و ﺑﺎ ﻳﻚ ﻧﺎم ﺑﻴﺎن ﻣﻲ ﺷﻮد.
1. As s o c i a t i o n
2. In t e r a c t i o n
www.PDFgozar.com
ER -3ﻧﻤﻮدار
ﻳﻌﻨﻲ ER در واﻗﻊ ﻧﻤﻮداري اﺳﺖ ﻛﻪ در آن ﺳﻪ ﻣﻔﻬﻮم اﺳﺎﺳﻲ ﻣﺪل ER ﻧﻤﻮدار
اوﻟﻴﻦ ER ﻣﻮﺟﻮدﻳﺖ ،ﺻﻔﺖ و ﻧﻮع ارﺗﺒﺎط ﻧﻤﺎﻳﺶ داده ﻣﻲ ﺷﻮﻧﺪ .در واﻗﻊ ﻧﻤﻮدار
ﻃﺮح ﭘﺎﻳﮕﺎه داده ﻫﺎ و ﻣﺪل ﻛﻠﻲ آن در ﺑﺎﻻﺗﺮﻳﻦ ﺳﻄﺢ اﻧﺘﺰاع ﻣﻲ ﺑﺎﺷﺪ.
ﻣﺸﺎرﻛﺖ اﻟﺰاﻣﻲ
ﺻﻔﺖ ﻣﺮﻛﺐ
ﺻﻔﺖ ﻣﺸﺘﻖ
)ﻣﺠﺎزي ﻳﺎ ﻣﺤﺎﺳﺒﻪ ﺷﺪﻧﻲ(
1 N
1 1 ﭼﻨﺪي ارﺗﺒﺎط
E1 R E2
N M
ﭘﺎﺳﺨﮕﻮي ﻣﺠﻤﻮﻋﻪ ﻣﺸﺨﺼﻲ از ﻧﻴﺎزﻫﺎي ﻛﺎرﺑﺮان اﺳﺖ و ﺑﺪﻳﻬﻲ ER ﻫﺮ ﻧﻤﻮدار
اﺳﺖ ﻛﻪ اﻳﻦ ﻧﻤﻮدار ﺑﺎ ﺗﻐﻴﻴﺮ و رﺷﺪ ﻧﻴﺎزﻫﺎي ﻛﺎرﺑﺮان ﺗﻐﻴﻴﺮ ﻳﺎﻓﺘﻪ و ﺗﻮﺳﻌﻪ داده ﻣﻲﺷﻮد.
ﺑﺮاي رﺳﻢ اﻳﻦ ﻧﻮع ﻧﻤﻮدار ﻧﻴﺎز ﺑﻪ ﻧﻤﺎدﻫﺎﻳﻲ اﺳﺖ ﻛﻪ اﻳﻦ ﻧﻤﺎدﻫﺎ در ﺟﺪول ذﻳﻞ آﻣﺪه
اﺳﺖ .ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ ﺗﻤﺎﻣﻲﻧﻤﺎدﻫﺎي ﻣﻮرد اﺳﺘﻔﺎده ﺑﺮاي رﺳﻢ ﻧﻤﻮدار ERدر رﺳﻢ
ﻧﻤﻮدار EERﻧﻴﺰ ﻣﻌﺘﺒﺮ ﺑﻮده و ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﻲﮔﻴﺮﻧﺪ .ﺑﺮاي درك ﺑﻬﺘﺮ ﻧﺤﻮه اﺳﺘﻔﺎده
از ﻧﻤﺎدﻫﺎ در رﺳﻢ ﻧﻤﻮدار ،ERﺑﻪ ﻧﻤﻮدار زﻳﺮ ﻛﻪ ﺑﻴﺎﻧﮕﺮ وﺿﻌﻴﺖ ﻳﻚ ﺳﻴﺴﺘﻢ داﻧﺸﺠﻮﻳﻲ
اﺳﺖ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ:
www.PDFgozar.com
رﺷﺘﻪ ﺗﺤﺼﻴﻠﻲ
ﻳﻜﻲ از ﻧﻜﺎت ﻣﻬﻢ در رﺳﻢ ﻧﻤﻮدار ،ERﻣﻌﻨﺎي ارﺗﺒﺎط ﺑﻴﻦ ﻋﻨﺎﺻﺮ اﺳﺖ .ﺑﺪﻳﻦ
ﺻﻮرت ﻛﻪ ﻣﻌﻨﺎي ارﺗﺒﺎط ))اﻧﺘﺨﺎب(( ﺑﺎ ﻣﻌﻨﺎي ارﺗﺒﺎط ))ﺣﺬف(( ﻓﺮق دارد .در اداﻣﻪ
ﻧﻤﻮﻧﻪ ا ي از ﻣﻌﻨﺎي ارﺗﺒﺎط ﺑﻴﻦ ﻣﻮﺟﻮدﻳﺖ ﻫﺎ ﺗﺮﺳﻴﻢ ﺷﺪه اﺳﺖ.
ﺳﺎل آﻣﻮزﺷﻲ
ﻧﻤﺮه ﺗﺮم
ﺳﺎل آﻣﻮزﺷﻲ
در اداﻣﻪ ﻫﺮ ﻳﻚ از درﺟﺎت ﻧﻮع ارﺗﺒﺎط ﺑﺼﻮرت ﺷﻤﺎﺗﻴﻚ رﺳﻢ ﺷﺪه و ﺗﻮﺿﻴﺢ داده
ﻣﻲ ﺷﻮﻧﺪ:
:1
ﻳﮕﺎﻧﻲ زﻣﺎﻧﻲ ﻛﻪ ﻳﻚ ﻧﻮع ارﺗﺒﺎط ﺑﻴﻦ ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ و ﺧﻮدش ﺑﺮﻗﺮار ﺑﺎﺷﺪ.
درس
ه ز
:2
دوﮔﺎﻧﻲ ارﺗﺒﺎط ﺑﻴﻦ دو ﻣﻮﺟﻮدﻳﺖ
1. U n ar y
2. B i na r y
www.PDFgozar.com
درس
ر
در
اد
ﺗﻮﺟﻪ :ﭼﻮن ﻣﻌﻤﻮﻻً ﻣﺎدر و ﭘﺪر و ﺧﻮاﻫﺮ و ﺑﺮادر ﻳﻚ ﻋﻀﻮ ﻣﺤﺴﻮب ﻣﻲ ﺷﻮﻧﺪ ،اﻳﻦ
ﻧﻮع ارﺗﺒﺎط ﻣﻨﻄﻘﺎً درﺳﺖ ﻧﻴﺴﺖ .ﺷﻜﻞ ﻣﺬﻛﻮر ﻓﻘﻂ ﺑﻌﻨﻮان ﻧﻤﻮﻧﻪ اﺳﺖ.
1. T er n a r y
2. O n e T o O n e
www.PDFgozar.com
B ﻳﻚ ﺑﻪ ﭼﻨﺪ :1ﻳﻚ ﻧﻤﻮﻧﻪ از Aﺑﺎ nﻧﻤﻮﻧﻪ از Bارﺗﺒﺎط دارد وﻟﻲ ﻳﻚ ﻧﻤﻮﻧﻪ از •
N 1
ﻋﻀﻮﻳﺖ
1 1
اﺳﺘﺎد ﮔﺮوه آﻣﻮزﺷﻲ
ﻣﺪﻳﺮﻳﺖ
N M
ﺗﺪرﻳﺲ
3
3-3ﺣﺪ ﻛﺎردﻳﻨﺎﻟﻴﺘﻲ
ﺣﺪ ﻛﺎردﻳﻨﺎﻟﻴﺘﻲ ،ﺣﺪاﻗﻞ و ﺣﺪاﻛﺜﺮ ارﺗﺒﺎط ﺑﻴﻦ دو ﻣﻮﺟﻮدﻳﺖ را ﻣﻲ رﺳﺎﻧﺪ .ﺑﺮاي درك
ﺑﻬﺘﺮ اﻳﻦ ﻣﻔﻬﻮم ﻣﺜﺎل زﻳﺮ اراﺋﻪ ﻣﻲ ﮔﺮدد:
1 M
اﺳﺘﺎد راﻫﻨﻤﺎﻳﻲ داﻧﺸﺠﻮ
)(0 , 10 )(0 , 1
1. O n e T o M a n y
2. M a ny T o M a n y
3. C ar d i n a l i t y
www.PDFgozar.com
ﻋﺒﺎرات ذﻛﺮ ﺷﺪه در ﺑﺎﻻ و ﭘﺎﻳﻴﻦ ارﺗﺒﺎط ﺑﻴﻦ ﻋﻨﺎﺻﺮ ،ﻫﺮ ﻳﻚ داراي ﻣﻔﺎﻫﻴﻤﻲ ﻫﺴﺘﻨﺪ.
در اداﻣﻪ دو ﻋﺒﺎرت ) (0 , 10و ) (0 , 1ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﮔﺮﻓﺘﻪ اﻧﺪ:
)10و (0ﺑﺪﻳﻦ ﻣﻌﻨﻲ اﺳﺖ ﻛﻪ ﻳﻚ اﺳﺘﺎد ﻣﻤﻜﻦ اﺳﺖ ﺣﺪاﻛﺜﺮ 10داﻧﺸﺠﻮ را •
راﻫﻨﻤﺎﻳﻲ ﻛﻨﺪ و ﻳﺎ ﻫﻴﭻ داﻧﺸﺠﻮﻳﻲ ﺑﺮاي راﻫﻨﻤﺎﻳﻲ ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ )اﻳﻦ اﺳﺘﺎد
ﭘﺮوژه اراﺋﻪ ﻧﻜﺮده اﺳﺖ(.
)1و (0ﺑﺪﻳﻦ ﻣﻌﻨﻲ اﺳﺖ ﻛﻪ ﻳﻚ داﻧﺸﺠﻮ ﺣﺪاﻛﺜﺮ ﻣﻲﺗﻮاﻧﺪ ﻳﻚ اﺳﺘﺎد راﻫﻨﻤﺎ •
داﺷﺘﻪ ﺑﺎﺷﺪ و اﮔﺮ ﭘﺮوژه اﺧﺬ ﻧﻜﺮده ﺑﺎﺷﺪ ﻫﻴﭻ اﺳﺘﺎد راﻫﻨﻤﺎﻳﻲ ﻧﺪارد.
در اداﻣﻪ ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻔﻬﻮم دام ﻫﺎ ،ﻫﺮ ﻳﻚ از اﻧﻮاع دام ﻫﺎ در روش ERﺑﺎ ذﻛﺮ ﻣﺜﺎل
ﺷﺮح داده ﺧﻮاﻫﻨﺪ ﺷﺪ.
1-4دام ﺣﻠﻘﻪاي
اﻳﻦ دام وﻗﺘﻲ اﻳﺠﺎد ﻣﻲ ﺷﻮد ﻛﻪ ﺑﺎ داﺷﺘﻦ ﻣﺜﻼ ﺳﻪ ارﺗﺒﺎط دو ﻣﻮﺟﻮدﻳﺘﻲ ،وﺟﻮد ﻳﻚ
ارﺗﺒﺎط ﺳﻪ ﻣﻮﺟﻮدﻳﺘﻲ را ﻧﺘﻴﺠﻪ ﮔﻴﺮي ﻛﻨﻴﻢ ،وﻟﻲ اﻳﻦ اﺳﺘﻨﺘﺎج درﺳﺖ ﻧﺒﺎﺷﺪ.
1. C o nn e c t i o n T r a p s
2. Lo o p T ra p
3. F a n T r ap
4. C h as m T r a p
www.PDFgozar.com
N M
اﻧﺘﺨﺎب
داﻧﺸﺠﻮ درس
N
M
ﺗﻌﻠﻴﻢ اراﺋﻪ
اﺳﺘﺎد
N M
داﻧﺸﻜﺪه
1 1
دارد دارد
N N
3-4دام ﮔﺴﻞ
و 1: N ﻳﻚ ارﺗﺒﺎط F و E اﻳﻦ ﻧﻮع دام وﻗﺘﻲ اﻳﺠﺎد ﻣﻲ ﺷﻮد ﻛﻪ ﺑﻴﻦ دو ﻧﻮع ﻣﻮﺟﻮدﻳﺖ
ﻣﺸﺎرﻛﺖ اﻟﺰاﻣﻲ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ،وﻟﻲ Fﺑﺎ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ Gارﺗﺒﺎط 1:Nﺑﺎ ﻣﺸﺎرﻛﺖ
www.PDFgozar.com
E ﻏﻴﺮ اﻟﺰاﻣﻲ داﺷﺘﻪ ﺑﺎﺷﺪ .در اﻳﻦ ﺷﺮاﻳﻂ ﻧﻤﻲ ﺗﻮان ﺗﻤﺎم اﻃﻼعﻫﺎي دو ﻣﻮﺟﻮدﻳﺘﻲ ﺑﻴﻦ
و Gرا ﺑﺪﺳﺖ آورد .اﮔﺮ ﭼﻨﻴﻦ ﻓﺮﺿﻲ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﻮد ،دﭼﺎر دام ﮔﺴﻞ ﺷﺪه اﻳﻢ.
اﺳﺘﺎد
N 1
ﻋﻀﻮﻳﺖ ﺗﺪرﻳﺲ
1 N
2
1-5ﺗﺠﺰﻳﻪ 1و ﺗﺮﻛﻴﺐ
ﻓﺮاﻳﻨﺪ ﺗﻘﺴﻴﻢ ﻳﻚ ﺷﻲء ﻛﻞ ﺑﻪ اﺟﺰاء ﺗﺸﻜﻴﻞ دﻫﻨﺪه آن را ﺗﺠﺰﻳﻪ ﮔﻮﻳﻨﺪ .ﺑﺪﻳﻬﻲ اﺳﺖ
ﻛﻪ در ﻓﺮاﻳﻨﺪ ﺗﺠﺰﻳﻪ ،ﺷﻲء ﻛﻞ و اﺟﺰاء آن ﻫﺮ ﻳﻚ داراي ﺻﻔﺎت ،ﺳﺎﺧﺘﺎر و رﻓﺘﺎر
ﺧﺎص ﺧﻮد ﻣﻲ ﺑﺎﺷﻨﺪ.
ﺗﺮﻛﻴﺐ ،ﻋﻜﺲ ﻋﻤﻞ ﺗﺠﺰﻳﻪ اﺳﺖ ﻛﻪ در آن ﺑﺎ داﺷﺘﻦ ﺗﻌﺪادي ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ،ﻳﻚ
ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺟﺪﻳﺪ را اﻳﺠﺎد ﻣﻲ ﻛﻨﻴﻢ.
1. D ec o mp o s i t i o n
2. C o mp o s i t i o n
www.PDFgozar.com
ارﺗﺒﺎط ﺑﻴﻦ ﺷﻲء ﻛﻞ و اﺷﻴﺎء ﺟﺰء را ارﺗﺒﺎط " ﺟﺰﺋﻲ اﺳﺖ از" ... ERR در روش
ﮔﻮﻳﻨﺪ .ﻧﻤﺎد ﻣﻮرد اﺳﺘﻔﺎده ﺑﺮاي ﻧﻤﺎﻳﺶ ارﺗﺒﺎط ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻛﻞ و ﻧﻮع ﻣﻮﺟﻮدﻳﺖ
ﺟﺰء ﺑﻪ ﺷﻜﻞ زﻳﺮ ﻣﻲ ﺑﺎﺷﺪ:
2
2-5ﺗﺨﺼﻴﺺ 1و ﺗﻌﻤﻴﻢ
ﺗﺨﺼﻴﺺ ﻓﺮاﻳﻨﺪي اﺳﺖ ﻛﻪ ﻃﻲ آن ﻧﻤﻮﻧﻪﻫﺎي ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺑﺮﺗﺮ ) 3زﺑﺮ ﻧﻮع(
را ﺑﺮ اﺳﺎس ﻳﻚ ﻳﺎ ﭼﻨﺪ ﺻﻔﺖ ﺧﺎﺻﻪ آن ﻣﻮﺟﻮدﻳﺖ ﺑﺮﺗﺮ ﺗﺸﺨﻴﺺ ﻣﻲ دﻫﻴﻢ .ﻻزم ﺑﻪ
4
ذﻛﺮ اﺳﺖ ﻛﻪ ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻣﻲ ﺗﻮاﻧﺪ داراي ﻳﻚ ﻳﺎ ﭼﻨﺪ زﻳﺮ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ
ﻧﻴﺰ ﺑﺎﺷﺪ .ارﺗﺒﺎط ﺑﻴﻦ ﻣﻮﺟﻮدﻳﺖ ﺑﺮﺗﺮ و زﻳﺮ ﻧﻮع ﻫﺎي آن را ارﺗﺒﺎط " ﮔﻮﻧﻪ اي اﺳﺖ
از " ...ﻣﻲ ﻧﺎﻣﻴﻢ .ﻧﻤﺎد ﻣﻮرد اﺳﺘﻔﺎده ﺑﺮاي ﻧﻤﺎﻳﺶ اﻳﻦ ﻧﻮع ارﺗﺒﺎط در ﺷﻜﻞ زﻳﺮ آﻣﺪه
اﺳﺖ.
ﺗﻌﻤﻴﻢ ﻋﻜﺲ ﻋﻤﻞ ﺗﺨﺼﻴﺺ اﺳﺖ ﻛﻪ در آن ﺑﺎ داﺷﺘﻦ زﻳﺮ ﻧﻮع ﻫﺎي ﻳﻚ ﻧﻮع
ﻣﻮﺟﻮدﻳﺖ و ﺗﻌﻴﻴﻦ ﺻﻔﺎت ﻣﺸﺘﺮك ﺑﻴﻦ آﻧﻬﺎ ،ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﺻﻔﺎت را ﺑﺮاي ﻧﻮع
ﻣﻮﺟﻮدﻳﺖ ﺑﺮﺗﺮ در ﻧﻈﺮ ﻣﻲ ﮔﻴﺮﻳﻢ.
1. Sp e c i a l i z a ti o n
2. G e ne r a l i z a ti o n
3. Su p e r E nt i t y T y p e
4. Su b E n t it y T yp e
www.PDFgozar.com
2
3-5زﻳﺮ ﻧﻮعﻫﺎي ﻫﻤﭙﻮﺷﺎ 1و ﻣﺠﺰا
ﻧﻤﻮﻧﻪ ﻫﺎي ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺑﺮﺗﺮ ﺑﺮ اﺳﺎس ﺻﻔﺎت ﺧﺎﺻﻪ ﻣﺸﺘﺮك و ﻣﺠﺰا در
دﺳﺘﻪ ﻫﺎي ﺧﺎص ﺧﻮد دﺳﺘﻪ ﺑﻨﺪي ﻣﻲ ﺷﻮﻧﺪ .ﺣﺎل ﻣﻤﻜﻦ اﺳﺖ ﻳﻚ ﻧﻤﻮﻧﻪ ﻣﻮﺟﻮدﻳﺖ
در دو دﺳﺘﻪ ﻗﺎﺑﻞ دﺳﺘﻪ ﺑﻨﺪي ﺑﺎﺷﺪ در ﭼﻨﻴﻦ ﺷﺮاﻳﻄﻲ ﺑﻪ اﻳﻦ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻫﺎ،
ﻣﻮﺟﻮدﻳﺖ ﻫﺎي ﻫﻤﭙﻮﺷﺎ )ﻣﺸﺘﺮك( ﮔﻮﻳﻨﺪ.
1. O ve r l a p
2. D i sj o i n t
www.PDFgozar.com
ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺲ
ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺲ ﻧﺮم اﻓﺰار ﺳﻴﺘﻤﻲ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺲ ﻧﺮم اﻓﺰار ﻛﺎرﺑﺮدي
در ﻋﻴﻦ ﺣﺎل ﻣﻤﻜﻦ اﺳﺖ ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻓﻘﻂ در ﻳﻚ دﺳﺘﻪ ﺑﻨﺪي از زﻳﺮ ﻧﻮع
ﻣﻮﺟﻮدﻳﺖ ﻫﺎ ﻗﺎﺑﻞ دﺳﺘﻪ ﺑﻨﺪي ﺑﺎﺷﺪ .ﺑﻪ اﻳﻦ زﻳﺮ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻫﺎ ،ﻣﻮﺟﻮدﻳﺖ ﻫﺎي
ﻣﺠﺰا ﻣﻲ ﮔﻮﻳﻨﺪ.
ﭘﺮﺳﻨﻞ ﺷﺮﻛﺖ
U
2
4-5دﺳﺘﻪ ﺑﻨﺪي 1و وراﺛﺖ
ﻳﻚ زﻳﺮ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻣﻲ ﺗﻮاﻧﺪ زﻳﺮ ﻧﻮع ﺑﻴﺶ از ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺑﺮﺗﺮ ﺑﺎﺷﺪ .ﻛﻪ
در اﻳﻦ ﺷﺮاﻳﻂ ﺑﻌﻀﻲ از ﺧﻮاص ﺧﻮد را از ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺑﺮﺗﺮ و ﺑﻌﻀﻲ دﻳﮕﺮ
1. C at e go r i z a t i o n
2. In h e r i t a n c e
www.PDFgozar.com
از ﺻﻔﺎت ﺧﺎﺻﻪ ﺧﻮد را از ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺑﺮﺗﺮ دﻳﮕﺮ ﺑﻪ ارث ﻣﻲ ﺑﺮد .اﻳﻦ
ﻣﻮﺟﻮدﻳﺖ ﻫﺎي ﺑﺮﺗﺮ ﻣﻲ ﺗﻮاﻧﻨﺪ از ﻳﻚ ﻧﻮع ﺑﺎﺷﻨﺪ ﻛﻪ در اﻳﻦ ﺷﺮاﻳﻂ داراي ﺷﻨﺎﺳﻪ ﻫﺎي
ﻳﻜﺴﺎن ﻫﺴﺘﻨﺪ .وﻟﻲ در ﺷﺮاﻳﻄﻲ ﻛﻪ ﻣﻮﺟﻮدﻳﺖ ﻫﺎي ﺑﺮﺗﺮ از ﻳﻚ ﻧﻮع ﻧﺒﺎﺷﻨﺪ ،در واﻗﻊ
رخ داده اﺳﺖ .ﺑﻪ اﻳﻦ زﻳﺮ ﻧﻮعﻫﺎ در اﺻﻄﻼح دﺳﺘﻪ) 2ﻃﺒﻘﻪ( 1
وراﺛﺖ ﭼﻨﺪﮔﺎﻧﻪ
3
ﻣﻲ ﮔﻮﻳﻨﺪ و در ﺑﻌﻀﻲ از ﻛﺘﺎب ﻫﺎ ﺑﻪ اﻳﻦ زﻳﺮ ﻧﻮع اﺻﻄﻼﺣﺎ ﻧﻮع اﺟﺘﻤﺎع ﻣﻲ ﮔﻮﻳﻨﺪ.
ﺷﻜﻞ زﻳﺮ ﻧﺤﻮه ﻧﻤﺎﻳﺶ وراﺛﺖ ﭼﻨﺪ ﮔﺎﻧﻪ را ﻧﺸﺎن ﻣﻲ دﻫﺪ:
E2ﻣﻮﺟﻮدﻳﺖ E3ﻣﻮﺟﻮدﻳﺖ
U
E1ﻣﻮﺟﻮدﻳﺖ
4
5-5ﺗﺠﻤﻊ
ﺗﺠﻤﻊ ﺑﺪﻳﻦ ﻣﻌﻨﺎ اﺳﺖ ﻛﻪ ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺟﺪﻳﺪ را ﺑﺮ اﺳﺎس دو ﻳﺎ ﭼﻨﺪ
ﻣﻮﺟﻮدﻳﺖ ﻣﺮﺗﺒﻂ ﺑﺎ ﻳﻜﺪﻳﮕﺮ ،ﺑﻪ ﺻﻮرت ﻳﻜﭙﺎرﭼﻪ در ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ واﺣﺪ اراﺋﻪ
ﻧﻤﺎﻳﻴﻢ .ﺑﺪﻳﻬﻲ اﺳﺖ ﻛﻪ اﻳﻦ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ واﺣﺪ ﺧﻮد ﻣﻲ ﺗﻮاﻧﺪ ﺑﺎ ﻧﻮع
ﻣﻮﺟﻮدﻳﺖ ﻫﺎي دﻳﮕﺮ ﻧﻴﺰ در ارﺗﺒﺎط ﺑﺎﺷﺪ .ﺷﻜﻞ زﻳﺮ ﻧﺤﻮه ﻧﻤﺎﻳﺶ ﺗﺠﻤﻊ را ﻧﺸﺎن
ﻣﻲ دﻫﺪ:
1. M u lt i p l e In h e r i t a n c e
2. C at e go r y
3. U n io n T yp e
4. Ag gr e ga t i o n
www.PDFgozar.com
R2
E3ﻣﻮﺟﻮدﻳﺖ
1
UML -6روش ﻣﺪل ﺳﺎزي ﺷﻲء
ﺑﺎ ﻣﻄﺮح ﺷﺪن اﻟﮕﻮﻫﺎي ﺷﻲء ﮔﺮاﻳﻲ ﻛﻪ ﻫﺮ ﻣﻮﺟﻮدﻳﺖ در ﺟﻬﺎن واﻗﻊ را ﺷﺎﻣﻞ
داده ﻫﺎي آن ﻣﻮﺟﻮدﻳﺖ و ﻋﻤﻠﻜﺮدﻫﺎي ﻣﺮﺗﺒﻂ ﺑﺎ آن ﺗﻮﺻﻴﻒ ﻣﻲ ﻛﺮد ،ﻃﺮاﺣﺎن ﺳﻴﺴﺘﻢ
را ﻧﺎﻛﺎرآﻣﺪ ﺗﺸﺨﻴﺺ داده و در ﺟﺴﺘﺠﻮي ﺗﻌﺮﻳﻒ ﻳﻚ EER و ER روش ﻫﺎي
ﻣﺘﻮدوﻟﻮژي ﺟﺪﻳﺪ ﺑﻮدﻧﺪ ﺗﺎ ﺑﺘﻮاﻧﻨﺪ ﻋﻤﻠﻜﺮد ﻫﺮ ﻣﻮﺟﻮدﻳﺖ را ﻧﻴﺰ ﺑﻪ ﻧﻤﺎﻳﺶ در آورﻧﺪ.
2
را ﺑﺮاي اﻳﺠﺎد ﺳﻴﺴﺘﻢ ﻫﺎي ﻛﺎرﺑﺮدي UML روﺷﻲ اﺳﺘﺎﻧﺪارد ﺑﻨﺎم OMG از اﻳﻨﺮو ﮔﺮوه
ﻣﻌﺮﻓﻲ ﻛﺮدﻧﺪ و اﻳﻦ روش را در اﻳﺠﺎد ﺳﻴﺴﺘﻢ ﻫﺎي ﻛﺎرﺑﺮدي ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار دادﻧﺪ.
ﻣﻬﻤﺘﺮﻳﻦ ﺧﺼﻮﺻﻴﺖ اﻳﻦ روش ،اﻳﺠﺎد اﻣﻜﺎﻧﻲ ﺑﺮاي اﻳﺠﺎد و ﻧﻤﺎﻳﺶ اﺷﻴﺎء ﺟﻬﺎن واﻗﻊ
ﺑﺼﻮرت ﺗﺼﻮﻳﺮي اﺳﺖ .ﻳﻜﻲ از ﻧﻜﺎت ﺑﺴﻴﺎر ﻣﻬﻢ در اﺳﺘﻔﺎده ﻣﻮﺛﺮ از روش ،UML
وﺟﻮد داﻧﺶ ﻛﺎﻓﻲ در ﻣﻔﺎﻫﻴﻢ ﺷﻲء ﮔﺮاﻳﻲ اﺳﺖ .ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ ﺑﺪون داﻧﺴﺘﻦ ﻣﻔﺎﻫﻴﻢ
ﺷﻲء ﮔﺮاﻳﻲ ،اﻣﻜﺎن اﺳﺘﻔﺎده ﻣﻮﺛﺮ و ﺑﺠﺎ از روش UMLﻣﻴﺴﺮ ﻧﺨﻮاﻫﺪ ﺷﺪ.
1-6ﻣﻔﺎﻫﻴﻢ اﺻﻠﻲ
ﺑﺮ ﻣﺒﻨﺎي ﻧﻤﻮدار )دﻳﺎﮔﺮام( ﻣﻲ ﺑﺎﺷﺪ .اﻳﻦ روش از ﻧﻤﻮدارﻫﺎي UML اﺳﺎس روش
1. O b je c t Mo d e l i n g
2. O b je c t Ma n a ge me n t G r o u p
www.PDFgozar.com
ﺑﺮاي ﻧﻤﺎﻳﺶ ﻣﺪل ﺳﺎزي و ﻃﺮاﺣﻲ ﻧﺮم اﻓﺰار اﺳﺘﻔﺎده ﻣﻲ ﻛﻨﺪ .ﭼﻨﺪ ﻧﻤﻮﻧﻪ از ﻣﻬﻤﺘﺮﻳﻦ
ﻧﻤﻮدارﻫﺎ در اﻳﻦ روش ﺑﻪ ﺷﺮح زﻳﺮ ﻣﻲ ﺑﺎﺷﻨﺪ:
1
ﻧﻤﻮدار ﻛﻼس •
2
ﻧﻤﻮدار ﭼﺮﺧﻪ ﺣﻴﺎت ﻣﻮﺟﻮدﻳﺖ •
3
ﻧﻤﻮدار ﻣﻮرد اﺳﺘﻔﺎده •
4
ﻧﻤﻮدار ﻓﻌﺎﻟﻴﺖ •
5
ﻧﻤﻮدار ﭘﻴﺎده ﺳﺎزي •
ﻣﻬﻤﺘﺮﻳﻦ ﻧﻤﻮدار در اﻳﻦ روش ﻧﻤﻮدار ﻛﻼس ﻣﻲ ﺑﺎﺷﺪ .اﻳﻦ ﻧﻤﻮدار ﻣﺠﻤﻮﻋﻪ اي از
ﻣﻮﺟﻮدﻳﺖ ﻫﺎ و ﻋﻤﻠﻴﺎت )ﭘﺮدازش( ﻣﺮﺗﺒﻂ ﺑﺎ ﻣﻮﺟﻮدﻳﺖ ﻫﺎ را ﻣﺪل ﺳﺎزي ﻣﻲ ﻛﻨﺪ.
ﻋﻤﻠﻴﺎت در واﻗﻊ رﻓﺘﺎر ﺷﻲء 6را ﻧﺸﺎن ﻣﻲ دﻫﺪ و ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ روﻳﺪاد7ﻫﺎي ﻣﺮﺗﺒﻂ
ﺑﺎ ﺷﻲء را ﺑﻪ ﻧﻤﺎﻳﺶ در ﻣﻲآورد .ﻣﻔﺎﻫﻴﻢ اﺻﻠﻲ در ﻣﺪﻟﺴﺎزي ﺑﺎ اﻳﻦ روش ﻋﺒﺎرﺗﻨﺪ از:
ﻛﻼس •
ﺻﻔﺖ •
8
ﺑﺴﺘﮕﻲ •
درروش UMLدوﮔﻮﻧﻪ ارﺗﺒﺎط ﺑﻴﻦ رده ﻫﺎ وﺟﻮد دارد ﻛﻪ اﻳﻦ دوﻧﻮع ارﺗﺒﺎط ﻋﺒﺎرﺗﻨﺪ از
ﺑﺴﺘﮕﻲ •
ﺗﺠﻤﻴﻊ •
ﻛﻪ در اﻳﻦ ﺑﻴﻦ ﻣﻔﻬﻮم ﺑﺴﺘﮕﻲ ﻫﻤﺎن ارﺗﺒﺎط ﺑﻴﻦ ﻛﻼس ﻫﺎ اﺳﺖ .ﺗﺠﻤﻴﻊ ﻧﻴﺰ ﻋﺒﺎرت
اﺳﺖ از ارﺗﺒﺎط ﺑﻴﻦ ﻳﻚ ﺷﻲء ﻛﻞ و ﺷﻲءﻫﺎي ﺟﺰء ﺗﺸﻜﻴﻞ دﻫﻨﺪه آن .در اداﻣﻪ ﺑﺮاي
درك ﺑﻬﺘﺮ ﺗﻨﺎﻇﺮ ﺑﻴﻦ ﻣﻔﺎﻫﻴﻢ در دو روش UMLو EERﺟﺪول زﻳﺮ ازاﺋﻪ ﻣﻲ ﮔﺮدد:
1. C la s s D ia gr a m
2. E nt i t y Li f e C y c l e D i a gr a m
3. U se C a s e D i a gr a m
4. Ac t i vi t y D i a gr a m
5. Imp l e me n t a t i o n D i a gr a m
6. O b je c t B e h a vi o r
7. E ve n t
8. As s o c i a t i o n
www.PDFgozar.com
ﻧﺎم ﻛﻼس
ﻧﺎم ﺻﻔﺎت ﻛﻼس
ﻧﺎم ﭘﺮدازﺷﻬﺎي ﻛﻼس
ﺑﺴﺘﮕﻲ :ﺑﺴﺘﮕﻲ ﺑﻴﻦ دو ﻛﻼس ﺑﺼﻮرت ﻳﻚ ﺧﻂ ﻣﺘﺼﻞ ﻛﻨﻨﺪه دو ﻛﻼس ﻧﻤﺎﻳﺶ داده
ﻣﻲ ﺷﻮدو ﻧﺎم ارﺗﺒﺎط روي ﺧﻂ ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮد.
1. Li n k
2. R ef l e x i ve As s o c i a t i o n
3. Q u al i f i e d As s o c i a t i o n
4. St r u c t u r a l D o ma i n
5. M u lt i As s o c i a t i o n
www.PDFgozar.com
ﺻﻔﺖ ﭘﻴﻮﻧﺪ :ﺻﻔﺖ ﭘﻴﻮﻧﺪ در ﻳﻚ ﻣﺮﺑﻊ ﻳﺎ ﻣﺴﺘﻄﻴﻞ ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮد و ﺑﺎ ﺧﻂ ﭼﻴﻦ ﺑﻪ
ﺧﻂ ﻧﺸﺎن دﻫﻨﺪه ﺑﺴﺘﮕﻲ ﻣﺘﺼﻞ ﻣﻲ ﺷﻮد .ﻧﺎم ﭘﻴﻮﻧﺪ و ﻧﺎم ﺻﻔﺎت ﭘﻴﻮﻧﺪ در دو ﻗﺴﻤﺖ
اﻳﻦ ﻣﺮﺑﻊ ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮﻧﺪ .ﺷﻜﻞ زﻳﺮ ﻧﺤﻮه ﻧﻤﺎﻳﺶ ﺻﻔﺖ ﭘﻴﻮﻧﺪ را ﻧﺸﺎن ﻣﻲ دﻫﺪ
ﻧﺎم ﺑﺴﺘﮕﻲ
ﻧﺎم ﺻﻔﺎت
اﻳﺠﺎز •
ﮔﺴﺘﺮش ﭘﺬﻳﺮي •
ﺻﻮري ﺑﻮدن •
ﻗﺎﺑﻠﻴﺖ ﻧﻤﺎﻳﺶ ﻧﻤﻮداري •
ﺟﺎﻣﻊ ﺑﻮدن ﻣﻔﺎﻫﻴﻢ •
ﻗﺎﺑﻠﻴﺖ ﻧﻤﺎﻳﺶ ﺳﺎﺧﺘﺎر ﺣﺎﻟﺖ و رﻓﺘﺎر ﻧﻮع ﻣﻮﺟﻮدﻳﺖ •
ﺑﺎﻳﺪ ﺑﻪ اﻳﻦ ﻧﻜﺘﻪ ﺗﻮﺟﻪ داﺷﺖ ﻛﻪ ﺑﻌﻀﻲ از ﺧﺼﻮﺻﻴﺎت ذﻛﺮ ﺷﺪه ﻣﺎﻧﻨﺪ ﺗﺠﻤﻴﻊ و
اﻳﺠﺎز ﻣﻤﻜﻦ اﺳﺖ ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﻣﻐﺎﻳﺮت داﺷﺘﻪ ﺑﺎﺷﻨﺪ .در اﻳﻦ ﺻﻮرت وﺟﻮد ﻳﻜﻲ از
اﻳﻦ ﺧﺼﻮﺻﻴﺎت ﻛﺎﻓﻲ اﺳﺖ.
www.PDFgozar.com
ﺗﻤﺮﻳﻨﺎت
ﻓﺼﻞ ۳
ﻣﻌﻤﺎﺭﻱ ﭘﺎﻳﮕﺎﻩﺩﺍﺩﻩ
ﻫﺪف ﻛﻠﻲ
در اﻳﻦ ﻓﺼﻞ ﻣﻌﻤﺎري ﺳﻪ ﺳﻄﺤﻲ ﭘﺎﻳﮕﺎهداده ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﺪ
ﮔﺮﻓﺖ .در اﻳﻦ راﺳﺘﺎ ﺳﻄﻮح ﺧﺎرﺟﻲ ،ادراﻛﻲ و داﺧﻠﻲ ﺑﺼﻮرﺗﻲ دﻗﻴﻖ ﺗﺮ ﻣﻮرد ارزﻳﺎﺑﻲ
ﻗﺮار ﺧﻮاﻫﻨﺪ ﮔﺮﻓﺖ .در اداﻣﻪ ﺑﺎ ﺳﺎﻳﺮ اﺟﺰاء ﭘﺎﻳﮕﺎه داده آﺷﻨﺎ ﺧﻮاﻫﻴﻢ ﺷﺪ و زﺑﺎن ﻫﺎي
ﻣﺨﺘﻠﻒ ﻣﻮرد اﺳﺘﻔﺎده درون ﭘﺎﻳﮕﺎه داده ﻧﻴﺰ ﺑﺮرﺳﻲ ﺧﻮاﻫﻨﺪ ﺷﺪ.
ﻫﺪف رﻓﺘﺎري
در اﻳﻦ ﻓﺼﻞ ﻋﻨﺎوﻳﻦ زﻳﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ:
ﻣﻌﻤﺎري ﺳﻪ ﺳﻄﺤﻲ ﭘﺎﻳﮕﺎهداده •
دﻳﺪ )ﻧﻤﺎي( ادراﻛﻲ )ﻣﻔﻬﻮﻣﻲ( •
دﻳﺪ )ﻧﻤﺎي( ﺧﺎرﺟﻲ •
دﻳﺪ )ﻧﻤﺎي( داﺧﻠﻲ •
ﻛﺎرﺑﺮ •
زﺑﺎن ﻣﻴﺰﺑﺎن •
زﺑﺎن دادهاي ﻓﺮﻋﻲ •
اﻧﻮاع زﺑﺎن دادهاي •
www.PDFgozar.com
------------------------
ﺳﻄﺢ داﺧﻠﻲ
واﺿﺢ اﺳﺖ ﻛﻪ ﺳﻄﺢ ﻓﻴﺰﻳﻜﻲ ﻳﻚ ﻻﻳﻪ ﭘﺎﻳﻴﻦ ﺗﺮ از ﺳﻄﺢ داﺧﻠﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮد .در
ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎه ﻫﺎي داده ،ﺳﻄﺢ ﻓﻴﺰﻳﻜﻲ ﻧﻴﺰ ﺟﺰﺋﻲ از ﻣﻌﻤﺎري ﻣﺤﺴﻮب ﻣﻲ ﮔﺮدد.
ﺑﺮاي ﭘﺎﻳﮕﺎه داده در ﺷﻜﻞ 2-3ﻧﺸﺎن داده ANSI ﻧﻤﺎي ﻛﺎﻣﻠﺘﺮ ﻣﻌﻤﺎري ﭘﻴﺸﻨﻬﺎدي
ﻣﻲ ﺷﻮد.
www.PDFgozar.com
ﺳﻄﺢ ﺧﺎرﺟﻲ
د #ر"! ١ د #ر"! ٢ د #ر"! j D
B
M
ﺳﻄﻮح S
D
B
A
اﻧﺘﺰاﻋﻲ
OS
د #ادراآ! ))(!(
ﺳﻄﺢ ادراﻛﻲ
ﺳﻄﺢ ﻓﻴﺰﻳﻜﻲ
١-#. ٢-#. ...... -#.k
ﻓﺎﻳﻠﻴﻨﮓ ﻓﻴﺰﻳﻜﻲ
در اﻳﻦ ﻣﻌﻤﺎري ﻋﻼوه ﺑﺮ ﺳﻪ ﺳﻄﺢ ،اﺟﺰاي دﻳﮕﺮي ﻫﻢ دﻳﺪه ﻣﻲ ﺷﻮد ﻛﻪ در واﻗﻊ ﺟﺰء
"ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده ﻫﺎ" ﻫﺴﺘﻨﺪ .در اﻳﻨﺠﺎ ﺳﻪ ﺳﻄﺢ و ﻧﻴﺰ اﺟﺰاء دﻳﮕﺮ را ﻧﺎم ﻣﻲ ﺑﺮﻳﻢ:
ﻛﺎرﺑﺮ •
زﺑﺎن ﻣﻴﺰﺑﺎن •
www.PDFgozar.com
در اداﻣﻪ ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع ،ﺳﻄﻮح ﺳﻪ ﮔﺎﻧﻪ ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ:
اﻳﻦ دﻳﺪ ﺑﺎﻳﺪ )ﭘﺲ از ﻃﺮاﺣﻲ ﻃﺒﻌﺎ( ﺗﻮﺻﻴﻒ ﺷﻮد .ﺑﻪ وﺻﻒ ﻳﺎ ﺷﺮح دﻳﺪ •
ادراﻛﻲ ،ﺷﻤﺎي ادراﻛﻲ ﻣﻲﮔﻮﻳﻴﻢ .ﺷﻤﺎي ادراﻛﻲ ﻧﻮﻋﻲ "ﺑﺮﻧﺎﻣﻪ" اﺳﺖ ﺣﺎوي
دﺳﺘﻮرات "ﺗﻌﺮﻳﻒ دادهﻫﺎ" و "ﻛﻨﺘﺮل دادهﻫﺎ" )و ﻧﻪ دﺳﺘﻮرات ﻋﻤﻠﻴﺎت در
دادهﻫﺎ( .ﺳﻄﺢ ادراﻛﻲ در واﻗﻊ ﻫﻤﻴﻦ ﺷﻤﺎي ادراﻛﻲ اﺳﺖ.
ﺷﻤﺎي ادراﻛﻲ ﺑﻪ ﺳﻴﺴﺘﻢ داده ﻣﻲﺷﻮد و در ﻛﺎﺗﺎﻟﻮگ ﺳﻴﺴﺘﻢ ﻧﮕﻬﺪاري ﻣﻲﺷﻮد. •
ﺑﻪ ﺑﻴﺎﻧﻲ ﺳﺎده ،دﻳﺪ ادراﻛﻲ ﻫﻤﺎن ﺗﻌﺮﻳﻒ ﺟﺪول ﻣﻲ ﺑﺎﺷﺪ .ﺑﺮاي ﻣﺜﺎل ﻓﺮض ﻛﻨﻴﺪ
ﻣﻲ ﺧﻮاﻫﻴﺪ ﻳﻚ ﻣﻮﺟﻮدﻳﺖ ﻣﺜﻞ داﻧﺸﺠﻮ را ﺗﻌﺮﻳﻒ ﻛﻨﻴﺪ .ﺗﻌﺮﻳﻒ ﺟﺪول ﻣﺮﺑﻮﻃﻪ ﺑﻪ
ﻫﻤﺮاه ﻓﻴﻠﺪﻫﺎ )ﺻﻔﺎت ﺧﺎﺻﻪ( آن ﻣﻮﺟﻮدﻳﺖ در ﻳﻚ ﭘﺎﻳﮕﺎه داده ،در ﺑﺤﺚ دﻳﺪ ادراﻛﻲ
دﺳﺘﻪ ﺑﻨﺪي ﻣﻲ ﺷﻮد.
ﻧﻜﺘﻪ :ﺣﺪاﻗﻞ از ﻟﺤﺎظ ﻧﻈﺮي ﻣﻲ ﺗﻮان ﮔﻔﺖ ﻛﻪ ﺳﺎﺧﺘﺎر )ﻣﺪل( داده اي در دو ﺳﻄﺢ
اﻧﺘﺰاﻋﻲ ﻳﻌﻨﻲ ﺳﻄﺢ ﺧﺎرﺟﻲ و ﺳﻄﺢ ادراﻛﻲ ﻣﻲ ﺗﻮاﻧﺪ ﻳﻜﺴﺎن ﻧﺒﺎﺷﺪ .ﺑﺎ اﻳﻦ وﺻﻒ،
ﺑﺪﻳﻬﻲ اﺳﺖ ﻛﻪ ﻳﻚ ﻧﺮم اﻓﺰار واﺳﻂ ﺑﺮاي ﺗﺒﺪﻳﻞ دو ﺳﺎﺧﺘﺎر ﺑﻪ ﻳﻜﺪﻳﮕﺮ ﻻزم اﺳﺖ.
ﺷﻜﻞ زﻳﺮ ﺗﻔﺎوت ﺑﻴﻦ ﺳﺎﺧﺘﺎرﻫﺎي داده اي دو دﻳﺪ را ﻣﺸﺨﺺ ﻣﻲ ﻛﻨﺪ .ﻋﻨﺎوﻳﻦ ذﻛﺮ
ﺷﺪه در ﺳﻄﺢ ادراﻛﻲ ،در ﻣﻮرد ﺳﺎﺧﺘﺎرﻫﺎي داده اي اﺳﺖ ﻛﻪ در ﻓﺼﻞ ﺑﻌﺪ ﻣﻮرد
ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻨﺪ ﮔﺮﻓﺖ.
ﻣﻨﻄﻘﻲ ﻋﻤﻞ ﻣﻲ ﻛﻨﺪ ،ﻛﻢ و ﺑﻴﺶ ﺷﺒﻴﻪ ﺑﺮﻧﺎﻣﻪ ﻓﺎﻳﻞ ﭘﺮداز ﻛﻪ در ﺳﻄﺢ ﻣﻨﻄﻘﻲ و ﻧﻪ
ﻓﻴﺰﻳﻜﻲ ،ﻛﺎر ﻣﻲ ﻛﻨﺪ.
اﻳﻦ دﻳﺪ ﻣﺒﺘﻨﻲ اﺳﺖ ﺑﺮﻳﻚ )و ﮔﺎه ﺑﻴﺶ از ﻳﻚ( ﺳﺎﺧﺘﺎر ﻓﺎﻳﻞ ﻛﻪ ﻣﻌﻤﻮﻻً ﺑﺎ ﻧﻈﺮ •
و دﺧﺎﻟﺖ ﻃﺮاح ﭘﺎﻳﮕﺎهدادهﻫﺎ ﻃﺮاﺣﻲ ﻣﻲﺷﻮد .اﻳﻦ ﻃﺮاﺣﻲ ،اﺻﻄﻼﺣﺎ ﺑﻪ ﻃﺮاﺣﻲ
ﻓﻴﺰﻳﻜﻲ ﻣﻮﺳﻮم اﺳﺖ.
ﺳﻄﺢ داﺧﻠﻲ ﭘﺎﻳﮕﺎهدادهﻫﺎ ،در واﻗﻊ ﺳﻄﺤﻲ اﺳﺖ ﻛﻪ در آن ﻓﺎﻳﻠﻬﺎي ﻣﻨﻄﻘﻲ •
ﭘﺎﻳﮕﺎهدادهﻫﺎ ﺗﻌﺮﻳﻒ ﻣﻲﺷﻮد.
ﺑﻪ ﺷﺮح ﻳﺎ ﺗﻌﺮﻳﻒ دﻳﺪ داﺧﻠﻲ ،ﺷﻤﺎي داﺧﻠﻲ ﮔﻔﺘﻪ ﻣﻲﺷﻮد :ﻧﻮﻋﻲ "ﺑﺮﻧﺎﻣﻪ" ﻛﻪ •
ﺗﻮﺳﻂ ﺧﻮد ) DBMSو ﺗﺎ ﺣﺪي ﺑﺎ دﺧﺎﻟﺖ ﻃﺮاح ﭘﺎﻳﮕﺎهدادهﻫﺎ( ﺗﻮﻟﻴﺪ ﻣﻲﺷﻮد و
ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﮔﻔﺘﻴﻢ ﺷﺮح ﻳﺎ ﺗﻮﺻﻴﻒ ﻓﺎﻳﻠﻴﻨﮓ ﻣﻨﻄﻘﻲ ﭘﺎﻳﮕﺎه اﺳﺖ ﻛﻪ در واﻗﻊ
ﻫﻤﺎن ﺳﻄﺢ داﺧﻠﻲ اﺳﺖ.
ﻛﻞ ﻓﻀﺎي ﭘﺎﻳﮕﺎه دادهﻫﺎ را ﺑﻪ DBMS ﻧﻜﺘﻪ :در ﺑﻌﻀﻲ از ﺳﻴﺴﺘﻢ ﻫﺎي ﭘﺎﻳﮕﺎﻫﻲ،
ﺻﻮرت ﻣﺠﻤﻮﻋﻪ اي از ﻣﺠﻤﻮﻋﻪ ﺻﻔﺤﺎت ﻣﻲ ﺑﻴﻨﺪ ،ﻳﻌﻨﻲ ﻧﻮﻋﻲ ﻧﻤﺎي ﻣﺠﺎزي از
داده ﻫﺎي ذﺧﻴﺮه ﺷﺪه در ﭘﺎﻳﮕﺎه دارد .اﻳﻦ ﻧﻤﺎي ﻣﺠﺎزي ﺑﺎﻻﺗﺮ از ﺳﻄﺢ ﻓﺎﻳﻠﻴﻨﮓ ﻣﻨﻄﻘﻲ
ﻗﺮار ﻣﻲ ﮔﻴﺮد .در واﻗﻊ ﺑﻴﻦ ﺳﻄﺢ ﻧﻤﺎي ﻣﺠﺎزي و ﺳﻄﺢ ﻓﺎﻳﻠﻴﻨﮓ ﻓﻴﺰﻳﻜﻲ ،ﻳﻚ ﺳﻄﺢ
ﻓﺎﻳﻠﻴﻨﮓ ﻣﻨﻄﻘﻲ واﺳﻂ اﺳﺖ .اﻳﻦ ﺳﻪ ﺳﻄﺢ در ﺷﻜﻞ 4-3ﻧﻤﺎﻳﺶ داده ﺷﺪه اﺳﺖ.
ﻧﻜﺘﻪ :ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ دﻳﺪﻫﺎي ﺳﻪ ﮔﺎﻧﻪ اراﺋﻪ ﺷﺪه در ﭘﺎﻳﮕﺎه داده ،اﻛﻨﻮن ﺗﻔﺎوت ﺳﻄﻮح
ﻣﻌﻤﺎري ﺑﻴﻦ ﻣﺤﺒﻂ ﭘﺎﻳﮕﺎﻫﻲ و ﻧﺎﭘﺎﻳﮕﺎﻫﻲ ﺑﻬﺘﺮ ﻧﻤﺎﻳﺎن ﻣﻲ ﮔﺮدد .ﺷﻜﻞ زﻳﺮ اﻳﻦ ﺗﻔﺎوت
را ﻧﻤﺎﻳﺎن ﻣﻲ ﻛﻨﺪ.
1-3ﻛﺎرﺑﺮ
در ﻣﻌﻨﺎي ﻋﺎم ،ﻫﺮ اﺳﺘﻔﺎده ﻛﻨﻨﺪه از ﭘﺎﻳﮕﺎه داده ﻫﺎ را ﻛﺎرﺑﺮ ﮔﻮﻳﻴﻢ .ﻻزم ﺑﺬﻛﺮ اﺳﺖ ﻛﻪ
در ﺑﻌﻀﻲ از ﻛﺘﺐ ﻛﺎرﺑﺮان ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺑﺮ ﺣﺴﺐ ﻧﻮع ﻛﺎر دﺳﺘﻪ ﺑﻨﺪي ﻣﻲ ﮔﺮدﻧﺪ ،در
اﻳﻨﺠﺎ ﻛﻠﻤﻪ ﻛﺎرﺑﺮ ﺑﺼﻮرت ﻋﺎم اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ و از ذﻛﺮ اﻧﻮاع ﻛﺎرﺑﺮ ﺧﻮدداري
ﺷﺪه اﺳﺖ.
2-3زﺑﺎن ﻣﻴﺰﺑﺎن
ﻳﻜﻲ از زﺑﺎﻧﻬﺎي ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﻣﻲ ﺑﺎﺷﺪ ﻛﻪ ﻗﺎدر ﺑﻪ ﺑﺮﻗﺮاري ارﺗﺒﺎط و اﻧﺘﻘﺎل دﺳﺘﻮرات
ﺑﻴﻦ ﺧﻮد و ﭘﺎﻳﮕﺎه داده ﺑﺎﺷﺪ .واﺿﺢ اﺳﺖ ﻛﻪ ﻫﺮﭼﻪ ﺗﻌﺪاد زﺑﺎﻧﻬﺎي ﻣﻴﺰﺑﺎن ﻣﻮرد
ﭘﺬﻳﺮش DBMSﺑﻴﺸﺘﺮ ﺑﺎﺷﺪ ،ﻣﻮارد ذﻳﻞ ﺗﺎﻣﻴﻦ ﻣﻲ ﮔﺮدد:
www.PDFgozar.com
ﻛﺎرﺑﺮ
ﻛﺎرﺑﺮ ﻧﻬﺎﻳﻲ
اﻳﻦ ﻧﻮع دﺳﺘﻮرﻫﺎ ﺑﺎﻳﺪ ﺑﺮاي ﻫﺮ ﻳﻚ از ﺳﻄﻮح ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎه داده وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﻨﺪ.
اﻳﻦ ﻣﻮﺿﻮع در ﺷﻜﻞ 7-3ﻧﺸﺎن داده ﺷﺪه اﺳﺖ.زﺑﺎن داده اي ﻓﺮﻋﻲ از ﻧﻈﺮ ﻧﻴﺎز ﺑﻪ
)1. D at a D ef i n i t i o n La n gu a ge ( D D L
) 2. D at a M a ni p u l a t i o n La n gu a ge ( D M L
)3. D at a C o nt r o l La n gu a ge ( D C L
www.PDFgozar.com
زﺑﺎن ﻣﺴﺘﻘﻞ
زﺑﺎﻧﻲ اﺳﺖ ﻛﻪ ﻧﻴﺎز ﺑﻪ زﺑﺎن ﻣﻴﺰﺑﺎن ﻧﺪارد و ﺧﻮد ﺑﻪ ﺻﻮرت ﺗﻌﺎﻣﻠﻲ )اﻧﺪر ﻛﻨﺸﻲ(
ﮔﻮﻳﻴﻢ. I.DSL اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد و آن را
ﺗﻤﺮﻳﻨﺎت
ﻓﺼﻞ ۴
ﻫﺪف ﻛﻠﻲ
در اﻳﻦ ﻓﺼﻞ اﺑﺘﺪا ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺗﻌﺮﻳﻒ و ﺳﻪ ﺑﺨﺶ اﺻﻠﻲ آن ﻣﻮرد
ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻨﺪ ﮔﺮﻓﺖ .ﺳﭙﺲ ﺳﻴﺴﺘﻢ ﻫﺎي ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎ از ﺟﻬﺎت
ﻣﺨﺘﻠﻒ ﻣﻮرد دﺳﺘﻪ ﺑﻨﺪي ﻗﺮار ﺧﻮاﻫﻨﺪ ﮔﺮﻓﺖ .در اداﻣﻪ اﺟﺰاء ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ
ﭘﺎﻳﮕﺎه داده ﻣﻌﺮﻓﻲ ﺷﺪه و ﻛﺎﺗﺎﻟﻮگ ﻳﺎ دﻳﻜﺸﻨﺮي ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺗﻮﺿﻴﺢ داده ﺧﻮاﻫﺪ ﺷﺪ.
ﻣﻄﺮح ﺷﺪه و ﻣﺤﻮر ﻫﺎي DBMS ﺳﭙﺲ ﭘﺎراﻣﺘﺮﻫﺎي ﻣﺨﺘﻠﻒ ﻣﻮرد ﻧﻴﺎز ﺟﻬﺖ ﺷﻨﺎﺧﺖ
ﺷﺮح داده ﺧﻮاﻫﻨﺪ ﺷﺪ .در ﭘﺎﻳﺎن ﻧﻴﺰ ﺟﺎﻳﮕﺎه ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎه داده DBMS اﺻﻠﻲ ﻣﻘﺎﻳﺴﻪ
ﺗﺸﺮﻳﺢ ﺷﺪه و ﺗﻴﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﺷﺮح داده ﺧﻮاﻫﺪ ﺷﺪ.
ﻫﺪف رﻓﺘﺎري
در اﻳﻦ ﻓﺼﻞ ﻋﻨﺎوﻳﻦ زﻳﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ:
ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ •
ﺑﺨﺶ ﺳﺎﺧﺘﺎري •
ﺑﺨﺶ ﻋﻤﻠﻴﺎﺗﻲ •
ﺑﺨﺶ ﺟﺎﻣﻌﻴﺘﻲ •
رده ﺑﻨﺪي ﺳﻴﺴﺘﻢﻫﺎي ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ •
اﺟﺰاء ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ •
ﻧﻤﺎي ﺑﻴﺮوﻧﻲ ﭘﺎﻳﮕﺎهدادهﻫﺎ •
www.PDFgozar.com
-1ﺗﻌﺮﻳﻒ
ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎ ﻳﻜﻲ از اﻧﻮاع ﻧﺮم اﻓﺰارﻫﺎي واﺳﻄﻪ ﺑﻴﻦ ﻣﺤﻴﻂ ﻓﻴﺰﻳﻜﻲ
ذﺧﻴﺮه و ﺑﺎزﻳﺎﺑﻲ اﻃﻼﻋﺎت و ﻣﺤﻴﻂ ﻣﻨﻄﻘﻲ ﺑﺮﻧﺎﻣﻪ ﺳﺎزي اﺳﺖ اﻳﻦ ﻧﺮم اﻓﺰار ﺑﻪ ﻛﺎرﺑﺮ
ﺑﺮﻧﺎﻣﻪ ﺳﺎز اﻣﻜﺎن ﻣﻲ دﻫﺪ ﺗﺎ:
ﭘﺎﻳﮕﺎهدادهﻫﺎي ﺧﻮد را ﺗﻌﺮﻳﻒ واﻳﺠﺎد ﻛﻨﺪ. •
در ﭘﺎﻳﮕﺎهدادهﻫﺎي ﺧﻮد ﻋﻤﻠﻴﺎت اﻧﺠﺎم دﻫﺪ. •
روي ﭘﺎﻳﮕﺎهدادهﻫﺎي ﺧﻮد ﺗﺎ ﺣﺪي ﻛﻨﺘﺮل داﺷﺘﻪ ﺑﺎﺷﺪ. •
ﺑﺪﻳﻬﻲ اﺳﺖ ﻛﻪ ﻳﻚ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎ در ﻣﺤﻴﻂ ﻳﻚ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ ﻋﻤﻞ
ﻣﻲ ﻛﻨﺪ .ﺷﻤﺎي ﺳﺎده اي از ﺟﺎﻳﮕﺎه اﻳﻦ ﻧﺮم اﻓﺰار در ﻳﻚ ﺳﻴﺴﺘﻢ ﻛﺎﻣﭙﻮﺗﺮي در ﺷﻜﻞ
زﻳﺮ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ:
www.PDFgozar.com
ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ ﻳﻚ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده واﻗﻌﻲ ﺑﺎﻳﺪ اﻣﻜﺎن اﻧﺠﺎم اﻳﻦ ﺳﻪ
ﻓﻌﺎﻟﻴﺖ اﺳﺎﺳﻲ را ﻗﺒﻞ از ﻫﺮ ﭼﻴﺰ در ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ ﺑﻪ ﻛﺎرﺑﺮ ﺑﺪﻫﺪ .ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ
ﻣﻲ ﺗﻮان ﮔﻔﺖ ﻛﻪ ﭘﺎﻳﮕﺎه داده از ﺳﻪ ﺑﺨﺶ اﺻﻠﻲ ﺑﻪ ﺷﺮح ذﻳﻞ ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ:
ﺑﺨﺶ ﺳﺎﺧﺘﺎري •
ﺑﺨﺶ ﻋﻤﻠﻴﺎﺗﻲ •
ﺑﺨﺶ ﺟﺎﻣﻌﻴﺘﻲ •
ﺑﺨﺶ ﺳﺎﺧﺘﺎري
ﺷﺎﻣﻞ ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﺎري ﻣﺪل اﺳﺖ ﻛﻪ ﻫﻤﺎن ﺳﺎﺧﺘﺎر داده اي اﺻﻠﻲ و ﻣﻔﺎﻫﻴﻢ ﻣﺮﺗﺒﻂ ﺑﺎ
آن اﺳﺖ.
ﺑﺨﺶ ﻋﻤﻠﻴﺎﺗﻲ
ﻣﺠﻤﻮﻋﻪ اﻣﻜﺎﻧﺎﺗﻲ اﺳﺖ ﻛﻪ ﺑﻪ وﺳﻴﻠﻪ آﻧﻬﺎ ﻋﻤﻠﻴﺎت ﻣﻮرد ﻧﻈﺮ ﻛﺎرﺑﺮ ،از ﺟﻤﻠﻪ ﺑﺎزﻳﺎﺑﻲ
و ذﺧﻴﺮه ﺳﺎزي ،در ﻛﺎدر ﺳﺎﺧﺘﺎر داده اي و ﻣﺒﺘﻨﻲ ﺑﺮ ﻋﻨﺼﺮ ﺳﺎﺧﺘﺎر اﺳﺎﺳﻲ آن اﻧﺠﺎم
ﻣﻲ ﺷﻮد.
ﺑﺨﺶ ﺟﺎﻣﻌﻴﺘﻲ
از ﻣﺠﻤﻮﻋﻪ اي از ﻗﻮاﻋﺪ ﺟﺎﻣﻌﻴﺘﻲ ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ ﻛﻪ ﺑﺎ اﺳﺘﻔﺎده از آن ﺳﻴﺴﺘﻢ
ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻣﻲ ﺗﻮاﻧﺪ ﺻﺤﺖ ،دﻗﺖ و ﺳﺎزﮔﺎري دادهﻫﺎ را در ﻫﺮ ﻟﺤﻈﻪ از
ﺣﻴﺎت ﭘﺎﻳﮕﺎه داده ﻫﺎ ،ﻛﻨﺘﺮل و ﺗﻈﻤﻴﻦ ﻛﻨﺪ.
www.PDFgozar.com
1. M a in f r a me
2. Su p e r C o mp u t e r
www.PDFgozar.com
1
از ﻧﻈﺮ ﻣﻌﻤﺎري ﻣﺸﺘﺮي -ﺧﺪﻣﺘﮕﺰار
ﺗﻮاﻧﺎﻳﻲ در اراﺋﻪ ﻣﻌﻤﺎري ﻳﻚ ﺧﺪﻣﺘﮕﺰار -ﭼﻨﺪ ﻣﺸﺘﺮي •
ﺗﻮاﻧﺎﻳﻲ در اراﺋﻪ ﻣﻌﻤﺎري ﭼﻨﺪ ﺧﺪﻣﺘﮕﺰار -ﭼﻨﺪ ﻣﺸﺘﺮي •
1. C li e n t - Se r ve r Ar c h i t e c t u r e
www.PDFgozar.com
و اراﺋﻪ ﺧﺪﻣﺎت ﺑﻪ ﻛﺎرﺑﺮان دارد .در اداﻣﻪ واﺣﺪﻫﺎي اﺻﻠﻲ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ
ﭘﺎﻳﮕﺎه داده ﻫﺎ ﻣﻌﺮﻓﻲ ﺧﻮاﻫﻴﻢ ﻛﺮد.
1-3ﻧﻤﺎي ﺑﻴﺮوﻧﻲ
ﻧﻤﺎي ﺑﻴﺮوﻧﻲ ،از واﺣﺪﻫﺎي اﺻﻠﻲ زﻳﺮ ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ:
واﺣﺪ ﭘﺮدازﺷﮕﺮ "ﭘﺮﺳﺶﻫﺎ" •
واﺣﺪ ﭘﺮدازﺷﮕﺮ "ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي" •
واﺣﺪاﻳﺠﺎد و ﻣﺪﻳﺮﻳﺖ دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه. •
در اﻳﻨﺠﺎ ﻻزم اﺳﺖ ﺑﻪ اﻳﻦ ﻧﻜﺘﻪ ﺗﻮﺟﻪ ﺷﻮد ﻛﻪ ﭘﺮﺳﺸﻬﺎ ﻧﻴﺰ در واﻗﻊ ﻧﻮﻋﻲ از ﺑﺮﻧﺎﻣﻪ
ﻛﺎرﺑﺮدي و ﻳﺎ در ﻣﻮاردي ﻗﺴﻤﺘﻲ از ﺑﺮﻧﺎﻣﻪ ﻛﺎرﺑﺮدي ﻫﺴﺘﻨﺪ .ﺗﻔﺎوت ﺑﻴﻦ اﻳﻦ دو در
اﻳﻦ ﻧﻜﺘﻪ اﺳﺖ ﻛﻪ ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﻛﺎرﺑﺮدي ﺑﺎ ﻳﻚ زﺑﺎن ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺗﻬﻴﻪ ﻣﻲ ﺷﻮﻧﺪ ﻛﻪ ﺑﻪ
ﻃﺮﻳﻘﻲ ﺑﺎ ﭘﺎﻳﮕﺎه داده ارﺗﺒﺎط ﺑﺮﻗﺮار ﻣﻲ ﻛﻨﺪ و دﺳﺘﻮرات ﻣﻮرد ﻧﻴﺎز ﺑﺮاي ﻛﺎر ﺑﺎ
ﭘﺎﻳﮕﺎه داده درون زﺑﺎن اﻧﺘﺨﺎب ﺷﺪه ﻣﻲ ﺑﺎﺷﺪ ﻛﻪ ﺗﻮﺳﻂ ﻛﺎﻣﭙﺎﻳﻠﺮ زﺑﺎن ﺑﺮاي ﭘﺎﻳﮕﺎه داده
ﻗﺎﺑﻞ ﻓﻬﻢ ﻣﻲ ﺷﻮد .وﻟﻲ ﭘﺮﺳﺸﻬﺎ ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮراﺗﻲ ﻛﻪ ﺑﺮاي ﭘﺎﻳﮕﺎه داده ﻗﺎﺑﻞ ﻓﻬﻢ
ﻣﻲ ﺑﺎﺷﺪ ،ﺗﻬﻴﻪ ﻣﻲ ﺷﻮﻧﺪ و در واﻗﻊ ﺑﻪ ﻧﻮﻋﻲ واﺑﺴﺘﮕﻲ ﻛﺎﻣﻞ ﺑﻪ ﭘﺎﻳﮕﺎه داده ﻣﻮرد اﺳﺘﻔﺎده
دارد .ﺷﻜﻞ 2-4ﻧﻤﺎي ﺑﻴﺮوﻧﻲ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده را ﺑﺼﻮرﺗﻲ ﺳﺎده ﺑﻴﺎن
ﻣﻲ ﻛﻨﺪ.
2-3ﻧﻤﺎي دروﻧﻲ
اﻳﻦ ﻧﺮم اﻓﺰار )ﻧﻤﺎي دروﻧﻲ( از ﺳﻪ ﻻﻳﻪ ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ ﻛﻪ ﻫﺮ ﻻﻳﻪ وﻇﺎﻳﻒ ﺧﺎص
ﺧﻮد را ﺑﺮ ﻋﻬﺪه دارد .ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ در ﻛﺘﺎﺑﻬﺎي ﻣﺨﺘﻠﻒ ﻣﻤﻜﻦ اﺳﺖ وﻇﺎﻳﻒ
ﻫﺮ ﻳﻚ از اﻳﻦ ﻻﻳﻪ ﻫﺎ ﻣﺘﻔﺎوت ﺑﺎﺷﺪ .در اداﻣﻪ ﻻﻳﻪ ﻫﺎي اﻳﻦ ﻗﺴﻤﺖ ﺑﻪ ﻫﻤﺮاه وﻇﺎﻳﻒ
ﻫﺮ ﻳﻚ ﺷﺮح داده ﺷﺪه اﺳﺖ:
1
ﻻﻳﻪ ﻣﺪﻳﺮﻳﺖ ﻣﺤﻴﻂ ﭘﺎﻳﮕﺎهدادهﻫﺎ •
ﻻﻳﻪ ﻫﺴﺘﻪ ) 2ﺳﻴﺴﺘﻢ ﻛﻨﺘﺮل ﻳﺎ ﻣﻮﺗﻮر ﭘﺎﻳﮕﺎهدادهﻫﺎ( •
ﻻﻳﻪ ﺗﺴﻬﻴﻼت ﻧﺮماﻓﺰاري) 3اﺑﺰارﻫﺎ( •
ﻻﻳﻪ ﻣﺮﺑﻮط ﺑﻪ ﺗﺴﻬﻴﻼت ﻧﺮماﻓﺰاري ﻣﻌﻤﻮﻻً در ﺳﻴﺴﺘﻢ ﻫﺎي ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎ
ﻣﺘﻔﺎوت ﻣﻲ ﺑﺎﺷﺪ و ﺗﻮاﻧﺎﻳﻲ ﻫﺎ و ﺧﺪﻣﺎت ﻗﺎﺑﻞ اراﺋﻪ در اﻳﻦ ﻻﻳﻪ ﺑﻌﻀﺎ ﺑﺴﻴﺎر ﻣﺘﻨﻮع و ﻳﺎ
ﺑﺴﻴﺎر ﺳﺎده اﺳﺖ .ﻟﺬا از ﺑﺤﺚ ﭘﻴﺮاﻣﻮن اﻳﻦ ﻻﻳﻪ اﺟﺘﻨﺎب ﻣﻲﮔﺮدد.
1. D at a b a s e E n vi r o n me n t M a n a ge me n t La y e r
2. E n gi n e La y e r
3. So f t w a r e F a c i l i ti e s
www.PDFgozar.com
1. In t e gr a t i o n C o n t ro l
2. R e pa i r C o n t r o l
3. D at a b a s e P r o t e c ti o n
4. B ac ku p G e n e r a t i o n
5. T ra n s a c t i o n R e c o rd
www.PDFgozar.com
دادهﻫﺎي ﺣﺎوي اﻃﻼﻋﺎت در ﻣﻮرد دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه در ﭘﺎﻳﮕﺎهداده ،ﺑﻪ ﻣﺘﺎ •
دادهﻫﺎ ﻣﻮﺳﻮﻣﻨﺪ.
در ﺑﻌﻀﻲ از ﻛﺘﺎبﻫﺎ ﺑﻪ ﻛﺎﺗﺎﻟﻮگ ﺳﻴﺴﺘﻢ ﮔﺎه دﻳﻜﺸﻨﺮي دادهﻫﺎ ﻫﻢ ﮔﻔﺘﻪ ﻣﻲﺷﻮد، •
اﻣﺎ در واﻗﻊ دﻳﻜﺸﻨﺮي دادهﻫﺎ ﺣﺎوي اﻃﻼﻋﺎت ﺑﻴﺸﺘﺮي اﺳﺖ.
ﻣﺘﺎ دادهﻫﺎ ﻣﻌﻤﻮﻻً از دﻳﺪ ﻛﺎرﺑﺮ ﺳﻄﺢ ﺧﺎرﺟﻲ ﻧﻬﺎناﻧﺪ ،اﻣﺎ ﻣﺪﻳﺮ ﺳﻴﺴﺘﻢ و ﻳﺎ •
ﻛﺎرﺑﺮ ﻣﺠﺎز ،ﻣﻲﺗﻮاﻧﺪ ﺗﺎ ﺣﺪي از ﻣﺤﺘﻮاي ﻛﺎﺗﺎﻟﻮگ آﮔﺎه ﺷﻮد.
ﺳﺎﺧﺘﺎر و ﻣﺤﺘﻮاي ﻛﺎﺗﺎﻟﻮگ و دﻳﮕﺸﻨﺮي دادهﻫﺎ در ﺳﻴﺴﺘﻢﻫﺎي ﻣﺨﺘﻠﻒ ﻳﻜﺴﺎن •
ﻧﻴﺴﺖ .اﻣﺎ ﺑﻪ ﻃﻮر ﻛﻠﻲ ،اﻃﻼﻋﺎت زﻳﺮ در آﻧﻬﺎ ذﺧﻴﺮه ﻣﻲﺷﻮد:
دﻳﻜﺸﻨﺮي داده ﻫﺎ ﻣﻌﻤﻮﻻً ﺟﺰﻳﻲ از ﺧﻮد ﺳﻴﺴﺘﻢ اﺳﺖ و اﻃﻼﻋﺎت زﻳﺮ در آﻧﻬﺎ
ﻧﮕﻬﺪاري ﻣﻲ ﺷﻮد:
ﺷﻤﺎﻫﺎي ﺧﺎرﺟﻲ •
ﺷﻤﺎي ادراﻛﻲ •
ﺷﻤﺎي داﺧﻠﻲ •
روﻳﻪﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﺗﺒﺪﻳﻼت ﺑﻴﻦ ﺳﻪ ﺳﻄﺢ ﻣﻌﻤﺎري •
ﺷﺮح ﺳﺎﺧﺘﺎر ﻓﻴﺰﻳﻜﻲ دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه •
ﻣﺸﺨﺼﺎت ﻛﺎرﺑﺮان و ﺣﻘﻮق دﺳﺘﻴﺎﺑﻲ آﻧﻬﺎ ﺑﻪ دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه •
ﻣﺸﺨﺼﺎت ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي ﺗﻮﻟﻴﺪ ﺷﺪه و ارﺗﺒﺎط آﻧﻬﺎ ﺑﺎ درﺧﻮاﺳﺖ ﻛﺎرﺑﺮان •
ﻣﺸﺨﺼﺎت ﭘﺎﻳﺎﻧﻪﻫﺎي ﻣﺘﺼﻞ ﺑﻪ ﺳﻴﺴﺘﻢ و ﻳﺎ ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎي ﻣﺸﺘﺮي و اﻳﺴﺘﮕﺎﻫﻬﺎي •
ﻛﺎري
ارﺗﺒﺎط ﺑﻴﻦ ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي و دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه •
ﻗﻮاﻋﺪ ﻣﺮﺑﻮط ﺑﻪ ﻛﻨﺘﺮل ﺻﺤﺖ و دﻗﺖ دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه در ﭘﺎﻳﮕﺎهدادهﻫﺎ •
ﺿﻮاﺑﻂ ﻛﻨﺘﺮلاﻳﻤﻨﻲ دادهﻫﺎ •
ﻣﺸﺨﺼﺎت ﭘﻴﻜﺮ ﺑﻨﺪي ﺳﺨﺖاﻓﺰاري ﺳﻴﺴﺘﻢ و رﺳﺎﻧﻪﻫﺎي ذﺧﻴﺮه ﺳﺎزي •
اﻃﻼﻋﺎت ﻣﺘﻨﻮع آﻣﺎري در ﻣﻮرد ﭘﺎﻳﮕﺎهدادهﻫﺎ ،ﻋﻤﻠﻴﺎت ﻛﺎرﺑﺮان ،ﻓﺮﻛﺎﻧﺲ اﺟﺮاي •
ﺗﺮاﻛﻨﺸﻬﺎ و ﺗﻌﺪاد دﺳﺘﻴﺎﺑﻲ ﺑﻪ اﺷﻴﺎء ذﺧﻴﺮه ﺷﺪه
ﺗﻮاﺑﻊ ﺗﻌﺮﻳﻒ ﺷﺪه ﺗﻮﺳﻂ ﻛﺎرﺑﺮان •
www.PDFgozar.com
ﻣﺼﺮف ﻋﺮﺿﻪ ﻣﻲﺷﻮﻧﺪ ،ﺑﺎﻻﺧﺺ ﺑﺮاي ﻣﺤﻴﻂﻫﺎي ﻋﻤﻠﻴﺎﺗﻲ ﺑﺰرگ ،ﺑﺴﻴﺎر اﺳﺘﺮاﺗﮋﻳﻚ
ﻣﻲﻧﻤﺎﻳﺪ .ﺳﺎزﻣﺎﻧﻬﺎﻳﻲ ﻛﻪ ﺑﺎ ﻣﺸﻜﻞ ﺑﺮﻧﺎﻣﻪ رﻳﺰي ﻣﻴﺎن ﻣﺪت و دراز ﻣﺪت ﻣﻮاﺟﻪاﻧﺪ ،اﮔﺮ در
ﺗﺼﻤﻴﻢ ﮔﻴﺮي ﺑﺮاي اﻧﺘﺨﺎب اﻳﻦ ﺗﻜﻨﻮﻟﻮژي ﺑﺎ ﺗﺨﺼﺺ واﻓﻲ و ﻣﻄﺎﻟﻌﻪ ﻫﻤﻪ ﺟﺎﻧﺒﻪ و ﻧﻬﺎﻳﺘﺎ
ﺑﺎ ﺷﻨﺎﺧﺖ ﻛﺎﻓﻲ اﻗﺪام ﻧﻜﻨﻨﺪ ،ﻧﻪ ﺗﻨﻬﺎ ﺑﻪ اﻫﺪاف ﺗﻌﺮﻳﻒ ﺷﺪه در ﺑﺮﻧﺎﻣﻪ رﻳﺰي ﻧﺎﻳﻞ ﻧﺨﻮاﻫﺪ
ﺷﺪ ﺑﻠﻜﻪ ﭼﻪ ﺑﺴﺎ راه ﺑﻪ ﺑﻴﺮاﻫﻪ ﺧﻮاﻫﺪ ﺑﺮد و ﺑﺎ ﻣﺸﻜﻼت ﻋﺪﻳﺪهاي ﻣﻮاﺟﻪ ﺧﻮاﻫﻨﺪ ﺷﺪ ﻛﻪ
رﻓﻊ آﻧﻬﺎ ﺑﻪ آﺳﺎﻧﻲ اﻣﻜﺎن ﭘﺬﻳﺮ ﻧﺨﻮاﻫﺪ ﺷﺪ.
ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺣﻞ ﺑﺴﻴﺎري از ﻣﺸﻜﻼت ﺗﻜﻨﻴﻜﻲ در اﻳﺠﺎد ﺳﻴﺴﺘﻢﻫﺎي ﺗﻮزﻳﻊ ﺷﺪه
و ﻳﺎ ﻓﻘﻂ ﻳﻚ ﭘﻴﻜﺮ ﺑﻨﺪي DBMS ﻧﺎﻫﻤﮕﻦ ،اﻳﻨﻚ دﻳﮕﺮ ﻣﺴﺌﻠﻪ اﻧﺘﺨﺎب ﻓﻘﻂ ﻳﻚ
ﻧﺮماﻓﺰاري-ﺳﺨﺖاﻓﺰاري ﻣﻲﺗﻮاﻧﺪ ﭼﻨﺪان ﻣﻄﺮح ﻧﺒﺎﺷﺪ .ﺑﺎ اﻳﻦﻫﻤﻪ اﻧﺘﺨﺎب اﺟﺰاء ﺗﺸﻜﻴﻞ
دﻫﻨﺪه ﭘﻴﻜﺮ ﺑﻨﺪي ﻳﻚ ﺳﻴﺴﺘﻢ ﻧﺎﻫﻤﮕﻦ ﺑﻪ ﻫﺮ ﺣﺎل ﻣﻄﺮح اﺳﺖ ﺗﺎ ﻳﻚ ﭘﻴﻜﺮ ﺑﻨﺪي ﺑﺎ
ﺑﻴﺸﺘﺮﻳﻦ ﻛﺎراﺋﻲ ،ﻃﺮاﺣﻲ و ﺗﺎﻣﻴﻦ ﺷﻮد.
ﺑﻪ ﻣﻨﻈﻮر ﻛﺴﺐ ﺷﻨﺎﺧﺖ ﺗﺨﺼﺼﻲ ﺑﺎﻳﺪ ﭘﺎراﻣﺘﺮﻫﺎي زﻳﺎدي را در ﻧﻈﺮ ﮔﺮﻓﺖ ﻛﻪ
اﻳﻦ ﭘﺎراﻣﺘﺮﻫﺎ را ﺑﺼﻮرت ﻛﻠﻲ در ﭘﻨﺞ رده ﺑﻪ ﺷﺮح زﻳﺮ دﺳﺘﻪ ﺑﻨﺪي ﻣﻲﻛﻨﻴﻢ:
ﭘﺎراﻣﺘﺮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﺗﻮاﻧﺎﻳﻲﻫﺎ و ﻛﺎراﻳﻲ ﺳﻴﺴﺘﻢ •
ﺗﺴﻬﻴﻼت و ﺟﻨﺒﻪﻫﺎي دﻳﮕﺮ •
ﻣﺸﺨﺼﺎت ﻛﻠﻲ ﺳﻴﺴﺘﻢ •
ﭘﺎراﻣﺘﺮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎهدادهﻫﺎ •
ﭘﺎراﻣﺘﺮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ زﺑﺎن دادهاي ﻓﺮﻋﻲ )واﺳﻂ ﻛﺎر ﺑﺮﻧﺎﻣﻪ ﺳﺎز(. •
در اداﻣﻪ ﻫﺮ ﻳﻚ از دﺳﺘﻪ ﻫﺎي اﺻﻠﻲ را ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻴﻢ داد:
ﻗﺎﺑﻠﻴﺖ ﺗﻌﺎﻣﻞ ﺳﻴﺴﺘﻢ ﺑﺎ ﮔﻮﻧﻪﻫﺎي ﻏﻴﺮ ﻣﺘﻌﺎرف ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ و •
ﻣﻜﺎﻧﻴﺴﻢ و ﻣﻠﺰوﻣﺎت ﻫﻤﺎﻳﻨﺪي ﺑﺎ ﺳﻴﺴﺘﻢﻫﺎ.
ﻗﺎﺑﻠﻴﺖ ﺗﻌﺎﻣﻞ ﺳﻴﺴﺘﻢ ﺑﺎ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داﻧﺶ و ﻣﻜﺎﻧﻴﺴﻢ ﻫﻤﺎﻳﻨﺪي. •
ﻗﺎﺑﻠﻴﺖ ﺗﻌﺎﻣﻞ ﺳﻴﺴﺘﻢ ﺑﺎ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎي ﺷﻴﺊﮔﺮا و ﻣﻜﺎﻧﻴﺴﻢ •
ﻫﻤﺎﻳﻨﺪي.
ﻣﻴﺰان ﺗﻐﻴﻴﺮ ﻛﺎرآﻳﻲ ﺳﻴﺴﺘﻢ از ﻣﺎﺷﻴﻦ ﻛﻼﺳﻴﻚ ﺗﺎ ﻣﺎﺷﻴﻦ ﺧﺎص ﭘﺎﻳﮕﺎهدادهﻫﺎ. •
اﻣﻜﺎﻧﺎت ﺳﻴﺴﺘﻢ ﺑﺮاي اﻳﺠﺎد ﭘﺎﻳﮕﺎهدادهﻫﺎي زﻣﺎﻧﺒﻨﺪ. •
زﺑﺎﻧﻲ ﻛﻪ ﺳﻴﺴﺘﻢ ﺑﺎ آن ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ. •
ﻣﻴﺰان رﻋﺎﻳﺖ اﺻﻮل ﻧﻮﻳﻦ ﻣﻬﻨﺪﺳﻲ ﻧﺮماﻓﺰار در ﻃﺮاﺣﻲ و ﺗﻮﻟﻴﺪ ﺳﻴﺴﺘﻢ. •
ﻣﻴﺰان رﻋﺎﻳﺖ اﺻﻮل ﺷﻴﺊ ﮔﺮاﻳﻲ در ﻃﺮاﺣﻲ و ﭘﻴﺎده ﺳﺎزي ﺳﻴﺴﺘﻢ. •
ﺗﻮاﻧﺎﻳﻲ ﺳﻴﺴﺘﻢ در اﻳﺠﺎد و ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهﻫﺎي ﺑﺰرگ و ﺧﻴﻠﻲ ﺑﺰرگ )از ﻧﻈﺮ •
ﺣﺠﻢ دادهﻫﺎ و ﺗﻌﺪاد ﺗﺮاﻛﻨﺸﻬﺎ(.
ﻗﺎﺑﻠﻴﺖ ﺳﻴﺴﺘﻢ در ﻧﻬﺎن ﻧﮕﺎري دادهﻫﺎ •
ﻗﺎﺑﻠﻴﺖ ﺳﻴﺴﺘﻢ در ﭘﺸﺘﻴﺒﺎﻧﻲ اﻧﻮاع ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎهدادهﻫﺎ. •
ﻗﺎﺑﻠﻴﺖ ﺳﻴﺴﺘﻢ در ﻛﻨﺘﺮل اﺷﺘﺒﺎﻫﺎت ﺑﺮﻧﺎﻣﻪ ﺳﺎزي. •
" وب" ﻗﺎﺑﻠﻴﺖ ﺳﻴﺴﺘﻢ در ﻋﻤﻠﻴﺎت در ﻣﺤﻴﻂ ﭘﺎﻳﮕﺎهدادهﻫﺎي وب و ﻳﺎ ادﻏﺎم در •
ﻗﺎﺑﻠﻴﺖ ﺳﻴﺴﺘﻢ در ﻋﻤﻠﻴﺎت در ﻣﺤﻴﻂ ﭘﺎﻳﮕﺎهدادهﻫﺎي ﻣﻮﺑﺎﻳﻞ •
ﻗﺎﺑﻠﻴﺖ ﺟﺎﺑﺠﺎﻳﻲ ﭘﺬﻳﺮي ﺳﻴﺴﺘﻢ •
ﻣﺘﻮﺳﻂ زﻣﺎن ﺑﻴﻦ دو ﺧﺮاﺑﻲ ﭘﻲ در ﭘﻲ ﺳﻴﺴﺘﻢ •
ﻣﻴﺰان ﻛﺎر ﻻزم ﺑﺮاي ﭘﻴﺎده ﺳﺎزي ﺳﻴﺴﺘﻢ •
اﺳﺘﺎﻧﺪاردﻫﺎي ﺑﻜﺎر رﻓﺘﻪ در ﺳﻴﺴﺘﻢ •
ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ ﻣﻮرد ﻧﻴﺎز •
ﻗﺎﺑﻠﻴﺖ ﺳﻴﺴﺘﻢ در ﭘﺮدازش ﭘﻴﺎمﻫﺎ. •
ﺗﺠﻬﻴﺰات ﻻزم ﺑﺮاي ﺳﻴﺴﺘﻢ از ﺟﻤﻠﻪ: •
ﻧﻮع ﺳﺨﺖاﻓﺰار •
ﺣﺪاﻗﻞ ﺣﺎﻓﻈﻪ ﻻزم •
ﺣﺪاﻗﻞ ﻓﻀﺎي دﻳﺴﻚ •
www.PDFgozar.com
آﻧﭽﻪ ﺑﺮ ﺷﻤﺮده ﺷﺪ ،ﻓﻬﺮﺳﺘﻲ اﺳﺖ از ﺗﺴﻬﻴﻼت و ﺟﻨﺒﻪ ﻫﺎ ،و ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﭘﻴﺸﺮﻓﺖ
ﻣﻬﻨﺪﺳﻲ ﻧﺮم اﻓﺰار ،اﻣﻜﺎﻧﺎت دﻳﮕﺮي ﻧﻴﺰ ﻣﻲ ﺗﻮاﻧﻨﺪ ﻣﻄﺮح ﺑﺎﺷﻨﺪ .ﺑﻪ وﻳﮋه ﻛﻪ ﻫﺮ روز
اﻧﻮاع ﮔﻮﻧﺎﮔﻮﻧﻲ از اﻳﻦ ﻗﺒﻴﻞ اﺑﺰارﻫﺎ و ﺗﺴﻬﻴﻼت ﺗﻮﻟﻴﺪ و ﺑﻪ ﺑﺎزار ﻣﺼﺮف ﻋﺮﺿﻪ
ﻣﻲ ﺷﻮﻧﺪ .ﺳﻴﺴﺘﻢ ﻧﻪ ﺗﻨﻬﺎ ﺑﺎﻳﺪ ﺑﺘﻮاﻧﺪ ﺑﺎ اﻳﻦ اﻣﻜﺎﻧﺎت ﺗﻤﺎس ﺑﺮﻗﺮار ﻛﻨﺪ ﺑﻠﻜﻪ ﺑﺎﻳﺪ ﺑﻪ
www.PDFgozar.com
ﻣﻴﺰان دﺧﺎﻟﺖ ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎهدادهﻫﺎ دراﻳﺠﺎد ﺳﻄﺢ داﺧﻠﻲ-ﻓﻴﺰﻳﻜﻲ و ﻛﻨﺘﺮل آن •
2-4-5ﺳﻄﺢ ادراﻛﻲ
وﺟﻮد ﺳﻄﺢ ادراﻛﻲ •
درﺟﻪ اﻧﺘﺰاع ﺳﻄﺢ ادراﻛﻲ )ﻛﻪ ﻣﺴﺘﻘﻴﻤﺎ ﺑﻪ ﻣﺪل دادهاي ﺑﺴﺘﮕﻲ دارد( •
وﺟﻮد زﺑﺎن دادهاي ﻓﺮﻋﻲ در ﺳﻄﺢ ادراﻛﻲ و اﻣﻜﺎﻧﺎت آن •
اﻣﻜﺎﻧﺎت ﺗﻌﺮﻳﻒ ﻗﻮاﻋﺪ )ﻣﺤﺪودﻳﺘﻬﺎي( ﺟﺎﻣﻌﻴﺖ )ﺑﻪ ﻋﻨﻮان ﺑﺨﺸﻲ از ﻣﺪل •
دادهاي(در ﺑﻴﺮون از ﺑﺮﻧﺎﻣﻪﻫﺎي ﻋﻤﻠﻴﺎﺗﻲ )ﺑﺎ اﺣﻜﺎم ﺗﻌﺮﻳﻒ دادهﻫﺎ(
اﻣﻜﺎﻧﺎت ﺗﻌﺮﻳﻒ اﻧﻮاع ﻛﻠﻴﺪ )ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ،ﻛﻠﻴﺪ اﺻﻠﻲ ،ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ،ﻛﻠﻴﺪ •
دﻳﮕﺮو(...
ﻣﻴﺰان ﺗﺎﻣﻴﻦ اﺳﺘﻘﻼل دادهاي ﻓﻴﺰﻳﻜﻲ •
ﻣﻴﺰان دﻳﻨﺎﻣﻴﺴﻢ رﺷﺪ ﭘﺎﻳﮕﺎه در ﺳﻄﺢ ادراﻛﻲ •
اﻣﻜﺎﻧﺎت ﺳﺎزﻣﺎﻧﺪﻫﻲ ﻣﺠﺪد ﭘﺎﻳﮕﺎه در ﺳﻄﺢ ادراﻛﻲ )ﺗﻐﻴﻴﺮ در ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ و •
در ﭘﻲ آن ﺗﻐﻴﻴﺮ ﺷﻤﺎ(
ﭼﮕﻮﻧﮕﻲ ﻣﻜﺎﻧﻴﺴﻢ ﻧﮕﺎﺷﺖ ﺳﻄﺢ ادراﻛﻲ ﺑﻪ داﺧﻠﻲ و ﺟﻨﺒﻪﻫﺎي ﻧﮕﺎﺷﺖ )ﻧﺎم •
داده ،ﻧﻮع داده ،ﻃﻮل داده ،ﻛﺪ ﻧﻤﺎﻳﺶ داده ،واﺣﺪ داده و(...
ﭘﻴﺎﻣﺪﻫﺎي ﺳﺎزﻣﺎﻧﺪﻫﻲ ﻣﺠﺪد ﺳﻄﺢ ادراﻛﻲ در ﺳﻄﺢ داﺧﻠﻲ-ﻓﻴﺰﻳﻜﻲ •
ﻣﻴﺰان اﻓﺰوﻧﮕﻲ در ﺳﻄﺢ ادراﻛﻲ و ﻣﻜﺎﻧﻴﺴﻢ ﻛﻨﺘﺮل آن و ﻣﻴﺰان اﻧﻌﻜﺎس آن در •
ﺳﻄﺢ داﺧﻠﻲ -ﻓﻴﺰﻳﻜﻲ
وﺟﻮد ﻣﻔﻬﻮم ﻣﻴﺪان و اﻣﻜﺎﻧﺎت ﻻزم ﺑﺮاي آن در ﺳﻄﺢ ادراﻛﻲ •
ﻧﺤﻮه ﺑﺮﺧﻮرد ﺑﺎ " ﻫﻴﭽﻤﻘﺪار " در ﺳﻄﺢ ادراﻛﻲ •
اﻣﻜﺎﻧﺎت ﺳﻴﺴﺘﻢ در ﻣﺠﺎزﺷﻤﺎري ﺑﻪ وﻳﮋه در اﻳﻦ ﺳﻄﺢ •
3-4-5ﺳﻄﺢ ﺧﺎرﺟﻲ
وﺟﻮد ﻣﻔﻬﻮم ﻫﻤﮕﺎﻧﻲ دﻳﺪ ﺧﺎرﺟﻲ •
ﺣﺪاﻛﺜﺮ ﺗﻌﺪاد دﻳﺪﻫﺎي ﻫﺮ ﻛﺎرﺑﺮ و در ﻣﺠﻤﻮع ،ﺗﻨﻮع دﻳﺪﻫﺎ از ﻧﻈﺮ ﻣﻜﺎﻧﻴﺴﻢ •
ﺗﻌﺮﻳﻒ آﻧﻬﺎ
www.PDFgozar.com
وﺟﻮد زﺑﺎن دادهاي ﻓﺮﻋﻲ ﺧﺎرﺟﻲ و اﻣﻜﺎﻧﺎت آن )ﺑﺮاي ﺑﺎزﻳﺎﺑﻲ ،ذﺧﻴﺮه ﺳﺎزﻳﻲ و •
ﻛﻨﺘﺮل(
درﺟﻪ اﻧﺘﺰاع ﺗﺎﻣﻴﻦ ﺷﺪه در اﻳﻦ ﺳﻄﺢ و ارﺗﻔﺎع اﻳﻦ اﻧﺘﺰاع •
ﻣﻴﺰان ﺗﺎﻣﻴﻦ اﺳﺘﻘﻼل دادهاي ﻣﻨﻄﻘﻲ •
ﭼﮕﻮﻧﮕﻲ ﻧﮕﺎﺷﺖ ﺳﻄﺢ ﺧﺎرﺟﻲ ﺑﻪ ادراﻛﻲ و ﻣﺤﻮرﻫﺎي اﻳﻦ ﻧﮕﺎﺷﺖ )ﺣﺪود •
آزادي ﻋﻤﻞ ﻛﺎرﺑﺮان در ﺗﻌﻴﻴﻦ ﺟﻨﺒﻪﻫﺎي داده(
ﻗﺪرت ﺳﻴﺴﺘﻢ در اﻧﺠﺎم ﻋﻤﻠﻴﺎت ﺑﻬﻨﮕﺎم ﺳﺎزي دﻳﺪﻫﺎ )ﺑﻬﻨﮕﺎم ﺳﺎزي ﺑﻪ ﻣﻌﻨﺎي •
ﻋﺎم ﻳﻌﻨﻲ درج ،ﺣﺬف و ﺗﻐﻴﻴﺮ( و ﺗﻨﻮع دﻳﺪﻫﺎي ﭘﺬﻳﺮاي اﻳﻦ ﻋﻤﻠﻴﺎت
وﺟﻮد ﻛﻠﻴﺪ اﺻﻠﻲ در اﻳﻦ ﺳﻄﺢ )ﺑﺮاي ﺑﻌﺾ دﻳﺪﻫﺎ ﺑﻪ ﺗﺸﺨﻴﺺ ﻣﺪﻳﺮ •
ﭘﺎﻳﮕﺎهدادهﻫﺎ(
رﻋﺎﻳﺖ اﺻﻞ وﺣﺪت اﺣﻜﺎم ﺑﺮاي ﻋﻤﻞ واﺣﺪ در دو ﺳﻄﺢ اﻧﺘﺰاﻋﻲ و ﻧﻴﺰ در ﻳﻚ •
ﺳﻄﺢ ﻣﺸﺨﺺ
وﺟﻮد اﻣﻜﺎن ﻛﻨﺘﺮل رﻛﻮردﻫﺎي ﺗﻜﺮاري ﺑﺮاي ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎهدادهﻫﺎ •
ﻗﺪرت در ﺑﺮﻧﺎﻣﻪ ﺳﺎزي اﻟﮕﻮرﻳﺘﻢﻫﺎي ﺑﻬﻴﻨﻪ ﺑﺮاي اﻧﺠﺎم ﭼﻬﺎر ﻋﻤﻞ اﺻﻠﻲ •
)ﺑﺎزﻳﺎﺑﻲ ،ﺣﺬف ،درج و ﺑﻬﻨﮕﺎم ﺳﺎزي(
ﺳﻬﻮﻟﺖ ﻧﻮﺷﺘﻦ ﺑﺮﻧﺎﻣﻪﻫﺎي ﻻزم ﺑﺮاي اﻧﺠﺎم ﭼﻬﺎر ﻋﻤﻞ اﺻﻠﻲ )ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ •
ﻣﻔﺎﻫﻴﻢ ﺳﺎﺧﺘﺎر دادهاي(
ﺳﻬﻮﻟﺖ ﻳﺎدﮔﻴﺮي و ﻧﺰدﻳﻜﻲ ﺑﻪ زﺑﺎن ﻃﺒﻴﻌﻲ •
وﺟﻮد اﻣﻜﺎن ﻣﻌﺮﻓﻲ ﻣﻴﺪان و ﻋﻤﻠﻴﺎت روي ﻣﻴﺪانﻫﺎ •
وﺟﻮد اﺣﻜﺎم ﻻزم ﺑﺮاي اﻋﻤﺎل ﻗﻮاﻋﺪ ﺟﺎﻣﻌﻴﺘﻲ •
وﺟﻮد اﺣﻜﺎم ﻻزم ﺑﺮاياﻳﻤﻨﻲ و ﺣﻔﺎﻇﺖ دادهﻫﺎ •
وﺟﻮد اﺣﻜﺎم ﻻزم ﺑﺮاي اﻋﻤﺎل ﺿﻮاﺑﻂ ﻣﺠﺎزﺷﻤﺎري •
وﺟﻮد اﺣﻜﺎم ﻻزم ﺑﺮاي ﺗﻌﻴﻴﻦ ﺣﺪود ﺗﺮاﻛﻨﺶﻫﺎ و ﻛﻨﺘﺮل ﻫﻤﺰﻣﺎﻧﻲ آﻧﻬﺎ •
وﺟﻮد اﻣﻜﺎن ﻧﻮﺷﺘﻦ اﻟﮕﻮرﻳﺘﻢﻫﺎي ﻣﻮازي ﭘﺮﺳﺶ •
ﻣﻴﺰان ﺷﻴﺊ ﮔﺮا ﺑﻮدن •
اﻣﻜﺎﻧﺎت ﻻزم ﺑﺮاي دادهﻫﺎي زﻣﺎﻧﺒﻨﺪ •
ﻃﺮز ﺗﺸﺨﻴﺺ ﻋﻴﺒﻬﺎي ﺳﺨﺖاﻓﺰاري و ﻧﺮماﻓﺰاري و ﭼﮕﻮﻧﮕﻲ رﻓﻊ آﻧﻬﺎ و ﺗﺮﻣﻴﻢ •
ﭘﺎﻳﮕﺎهدادهﻫﺎ
ﺗﻐﻴﻴﺮ ﺳﺎﺧﺘﺎر ﭘﺎﻳﮕﺎهدادهﻫﺎ )ﺳﺎزﻣﺎﻧﺪﻫﻲ ﻣﺠﺪد( •
ﺗﻨﻈﻴﻢ ﺳﻴﺴﺘﻢ •
ﺑﻬﺒﻮد ﺑﺨﺸﻴﺪن ﻛﺎراﻳﻲ ﭘﺎﻳﮕﺎهدادهﻫﺎ •
ﺗﻮﻟﻴﺪ ﻧﺴﺨﻪﻫﺎي ﭘﺸﺘﻴﺒﺎن •
-9ﻫﺰﻳﻨﻪﻫﺎ
اﺳﺘﻔﺎده از ﺗﻜﻨﻮﻟﻮژي ﭘﺎﻳﮕﺎه دادهﻫﺎ ﻫﺰﻳﻨﻪ ﻫﺎﻳﻲ دارد .ﺑﺮﺧﻲ از اﻗﻼم ﻣﻬﻤﺘﺮ ﻫﺰﻳﻨﻪ
ﻋﺒﺎرﺗﻨﺪاز:
ﻫﺰﻳﻨﻪ ﺧﺮﻳﺪ ﻧﺮماﻓﺰار اﺻﻠﻲ)(DBMS •
ﻫﺰﻳﻨﻪ آﻣﻮزش ﻧﺮماﻓﺰار اﺻﻠﻲ •
ﻫﺰﻳﻨﻪ ﻧﮕﻬﺪاري و ﺑﻬﺮه ﺑﺮداري از آن •
ﻫﺰﻳﻨﻪ ﺗﺒﺪﻳﻞ ﺳﻴﺴﺘﻢ ﻧﺎﭘﺎﻳﮕﺎﻫﻲ ﺑﻪ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ •
ﻫﺰﻳﻨﻪ ﺗﻬﻴﻪ اﺑﺰارﻫﺎي ﻧﺮماﻓﺰاري دﻳﮕﺮ •
ﻫﺰﻳﻨﻪ آﻣﻮزش اﻣﻜﺎﻧﺎت ﻧﺮماﻓﺰاري •
ﻫﺰﻳﻨﻪ ﺗﻬﻴﻪ ﺑﺴﺘﻪﻫﺎي ﻛﺎرﺑﺮدي •
ﻫﺰﻳﻨﻪ آﻣﻮزش ﺑﺴﺘﻪﻫﺎي ﻛﺎرﺑﺮدي •
ﻫﺰﻳﻨﻪ ﺗﻬﻴﻪ ﻣﺴﺘﻨﺪات ﺧﻮد ﺳﻴﺴﺘﻢ •
ﻫﺰﻳﻨﻪ ﺗﻬﻴﻪ ﻣﺴﺘﻨﺪات اﻣﻜﺎﻧﺎت ﻧﺮماﻓﺰاري و ﺑﺴﺘﻪﻫﺎي ﻛﺎرﺑﺮدي •
ﻫﺰﻳﻨﻪ ﺗﻨﻈﻴﻢ ﻣﺴﺘﻨﺪات ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎهدادهﻫﺎ •
ﻫﺰﻳﻨﻪ ﺗﻬﻴﻪ ﺳﺨﺖاﻓﺰار ﭘﺮدازﺷﮕﺮ )ﻛﺎﻣﭙﻴﻮﺗﺮ از ردهﻫﺎي ﻣﺨﺘﻠﻒ( •
ﻫﺰﻳﻨﻪ ﺗﻬﻴﻪ ﺳﺨﺖاﻓﺰار ذﺧﻴﺮه ﺳﺎزي •
ﻫﺰﻳﻨﻪ ﺗﺎﻣﻴﻦ ﺷﺒﻜﻪﻫﺎي ﻻزم )در ﺻﻮرت ﻟﺰوم( •
ﻫﺰﻳﻨﻪ ﻧﮕﻬﺪاري و ﺑﻬﺮه ﺑﺮداري از ﺳﻴﺴﺘﻢ ﻛﺎرﺑﺮدي •
ﻫﺰﻳﻨﻪ ﺑﻬﻴﻨﻪ ﺳﺎزي و ﮔﺴﺘﺮش ﺳﻴﺴﺘﻢ •
ﺣﻘﻮق و ﻣﺰاﻳﺎي اﻓﺮاد ﺗﻴﻢ ﻣﺪﻳﺮﻳﺖ و ﺗﻴﻢﻫﺎي اﺟﺮاﻳﻲ •
www.PDFgozar.com
ﺗﻴﻤﻲاﺳﺖ ﻛﻪ DBA در ﻣﻌﻨﺎي ﻣﺤﺪود :ﺑﺎ اﻳﻦ ﻣﻌﻨﺎ ،ﺗﻴﻢ DBA ﺗﻴﻢ •
2-10ﻣﺴﺌﻮﻟﻴﺖﻫﺎ
ﻣﺪﻳﺮ دادهﻫﺎ ﻓﺮدي اﺳﺖ ﺑﺎ داﻧﺶ و ﺗﺠﺮﺑﻪ در ﻣﺪﻳﺮﻳﺖ و آﺷﻨﺎ ﺑﺎ داﻧﺶ و ﺗﻜﻨﻮﻟﻮژي
ﭘﺎﻳﮕﺎه داده ﻫﺎ .ﺑﺮاي اﻃﻼع از وﻇﺎﻳﻒ ﻣﺪﻳﺮ داده ﻫﺎ ﺑﻪ ﻣﻨﺎﺑﻊ درس ﻫﺎي ''ﻣﻬﻨﺪﺳﻲ
ﻣﺪﻳﺮﻳﺖ" ﻧﺮم اﻓﺰار"" ،ﺗﺤﻠﻴﻞ و ﻃﺮاﺣﻲ ﺳﻴﺴﺘﻢﻫﺎ" و ﻧﻴﺰ درس "ﺳﻴﺴﺘﻢ اﻃﻼﻋﺎت
ﻣﺮاﺟﻌﻪ ﺷﻮد.
3-10وﻇﺎﻳﻒ
در ﻣﻌﻨﺎي ﮔﺴﺘﺮده وﻇﺎﻳﻔﻲ دارد ﻛﻪ اﻫﻢ آﻧﻬﺎ را ذﻛﺮ ﻣﻲﻛﻨﻴﻢ .ﺗﻮﺟﻪ دارﻳﻢ DBA ﺗﻴﻢ
ﻛﻪ ﺗﺮﺗﻴﺐ اﻧﺠﺎم اﻳﻦ وﻇﺎﻳﻒ ﻟﺰوﻣﺎ ﻫﻤﺎن ﻧﻴﺴﺖ ﻛﻪ در زﻳﺮ آﻣﺪه اﺳﺖ )روﺷﻦ اﺳﺖ
ﻛﻪ در اﺟﺮاي ﻫﺮ ﭘﺮوژه ،ﻧﻴﺎز ﺑﻪ ﻳﻚ ﻃﺮح زﻣﺎن ﺑﻨﺪي ﻓﻌﺎﻟﻴﺘﻬﺎﺳﺖ ﻛﻪ ﺑﺎﻳﺪ آﻣﺎده
ﺷﻮد( .ﻫﻤﭽﻨﻴﻦ ﺑﺮﺧﻲ از اﻳﻦ وﻇﺎﻳﻒ ﻣﻲ ﺗﻮاﻧﻨﺪ ﺑﻄﻮر ﻫﻤﺰﻣﺎن اﻧﺠﺎم ﺷﻮﻧﺪ.
ﻣﺸﺎرﻛﺖ در ﺗﻔﻬﻴﻢ اﻫﻤﻴﺖ و ﻧﻘﺶ داده ﺑﻪ ﻣﺪﻳﺮﻳﺖ ﺳﺎزﻣﺎن •
ﻣﺸﺎرﻛﺖ در ﺗﻔﻬﻴﻢ اﻫﻤﻴﺖ و ﻣﺰاﻳﺎي ﺗﻜﻨﻮﻟﻮژي ﭘﺎﻳﮕﺎهدادهﻫﺎ. •
ﻣﺸﺎرﻛﺖ در ﺗﺼﻤﻴﻢ ﮔﻴﺮي در ﻣﻮرد اﺳﺘﻔﺎده ﻳﺎ ﻋﺪم اﺳﺘﻔﺎده از اﻳﻦ ﺗﻜﻨﻮﻟﻮژي. •
ﻣﺸﺎرﻛﺖ در ﺗﻮﺟﻴﻪ ﻋﻠﻤﻲ-ﻓﻨﻲ ﺗﺼﻤﻴﻢ اﺳﺘﻔﺎده از اﻳﻦ ﺗﻜﻨﻮﻟﻮژي. •
ﻣﻄﺎﻟﻌﻪ دﻗﻴﻖ و ﻫﻤﻪ ﺟﺎﻧﺒﻪ ﻣﺤﻴﻂ ﻋﻤﻠﻴﺎﺗﻲ و ﺑﺮآورد ﺧﻮاﺳﺘﻪﻫﺎ و ﺑﺮ آورد •
ﻧﻴﺎزﻫﺎي ﻛﺎرﺑﺮان )اﻧﺠﺎم اﺻﻮﻟﻲ ﻣﻬﻨﺪﺳﻲ ﻧﻴﺎزﻫﺎ(.
www.PDFgozar.com
ﺑﺮرﺳﻲ روﻧﺪ دادهﻫﺎ و روﻧﺪ روﻳﺪادﻫﺎ در ﻣﺤﻴﻂ و رﺳﻢ ﻧﻤﻮدار روﻧﺪ دادهﻫﺎ و •
روﻧﺪ روﻳﺪادﻫﺎ )ﻳﻚ ﻳﺎ ﻫﺮ دو ﺑﺴﺘﻪ ﺑﻪ ﺷﻴﻮه ﻣﺪﻟﺴﺎزي ﺳﻴﺴﺘﻢ ﻣﻮرد ﻧﻈﺮ( و ﺗﻬﻴﻪ
و ﺗﻨﻈﻴﻢ ﻣﺴﺘﻨﺪات ﻻزم.
ﻣﺪﻟﺴﺎزي ﻣﻌﻨﺎﻳﻲ دادهﻫﺎ )ﺑﺎ ﻣﺮاﺣﻠﻲ ﻛﻪ دﻳﺪه ﺷﺪ از ﺟﻤﻠﻪ رﺳﻢ ﻧﻤﻮدار .(EER •
ﺗﺨﻤﻴﻦ ﺣﺠﻢ دادهﻫﺎي ذﺧﻴﺮه ﺷﺪﻧﻲ در ﭘﺎﻳﮕﺎهدادهﻫﺎ. •
ﺗﺼﻤﻴﻢ ﮔﻴﺮي دو ﻣﻮرد ﺗﻌﻴﻴﻦ ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎهدادهﻫﺎ و ﺗﻌﻴﻴﻦ ﻣﺸﺨﺼﺎت •
ﺳﻴﺴﺘﻢ )ﻫﺎي( ﻛﺎرﺑﺮدي ﻣﻮرد ﻧﻴﺎز.
ﻣﺸﺎرﻛﺖ در اﻧﺘﺨﺎب ) DBMSﻫﺎ( و ﭘﻴﻜﺮ ﺑﻨﺪي ﺳﺨﺖاﻓﺰاري و ﻧﺮماﻓﺰاري ﻻزم •
در ﺻﻮرت ﻟﺰوم )اﮔﺮ اﻧﺘﺨﺎب ﻧﺸﺪه ﺑﺎﺷﺪ(.
ﺗﺼﻤﻴﻢ ﮔﻴﺮي در اﻧﺘﺨﺎب و اﻧﺘﺴﺎب اﻋﻀﺎء ﺗﻴﻤﻬﺎي اﺟﺮاﻳﻲ. •
ﺗﺼﻤﻴﻢ ﮔﻴﺮي در اﻧﺘﺨﺎب اﺑﺰارﻫﺎي ﻧﺮماﻓﺰاري دﻳﮕﺮ ﺑﺮاي ﺗﻮﻟﻴﺪ و ﮔﺴﺘﺮش •
ﺳﻴﺴﺘﻢ ﻣﻮرد ﻧﻈﺮ.
ﺗﺼﻤﻴﻢﮔﻴﺮي درﻣﻮرد زﺑﺎن)ﻫﺎي( ﺑﺮﻧﺎﻣﻪﺳﺎزي ﻣﻮرد ﻧﻴﺎز و ﻣﺘﻨﺎﺳﺐ ﺑﺎ ﻫﺮ ﻛﺎرﺑﺮد. •
ﻃﺮاﺣﻲ ﺳﻄﺢ ادراﻛﻲ ﭘﺎﻳﮕﺎهدادهﻫﺎ )ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ(. •
ﻧﻮﺷﺘﻦ ﺷﻤﺎي ادراﻛﻲ و ﺑﺮﻧﺎﻣﻪﻫﺎي ﻻزم ﺑﺮاياﻳﺠﺎد ﭘﺎﻳﮕﺎهدادهﻫﺎ. •
ﺗﻌﻴﻴﻦ ﻣﺠﻤﻮﻋﻪ ﻗﻮاﻋﺪ )ﻣﺤﺪودﻳﺘﻬﺎي( ﺟﺎﻣﻌﻴﺖ ﻧﺎﻇﺮ ﺑﻪ ﭘﺎﻳﮕﺎهدادهﻫﺎ. •
ﻧﻈﺎرت ﺑﺮ ﺗﻌﻴﻴﻦ دﻳﺪﻫﺎي ﺧﺎرﺟﻲ و ﻧﻮﺷﺘﻦ ﺷﻤﺎﻫﺎي ﺧﺎرﺟﻲ. •
ﺗﺼﻤﻴﻢ ﮔﻴﺮي در ﻣﻮرد ﻣﺸﺨﺼﺎت ﺳﺎﺧﺘﺎر ﺳﻄﺢ داﺧﻠﻲ ﭘﺎﻳﮕﺎهدادهﻫﺎ و ﺗﻌﻴﻴﻦ •
ﺳﺎﺧﺘﺎر ﻓﺎﻳﻞﻫﺎي ﻣﻨﺎﺳﺐ ،اﺳﺘﺮاﺗﮋيﻫﺎي دﺳﺘﻴﺎﺑﻲ ﻛﺎرا و ﻧﻮﺷﺘﻦ ﺷﻤﺎي داﺧﻠﻲ.
اﻧﺠﺎم ﻃﺮاﺣﻲ ﺗﻮزﻳﻊ )در ﺻﻮرت ﻣﻌﻤﺎري ﺗﻮزﻳﻊ ﺷﺪه(. •
ﻃﺮاﺣﻲ "ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي" ،ﺗﺮاﻛﻨﺶﻫﺎي ﻻزم و روﻳﻪﻫﺎي ﻋﻤﻠﻴﺎﺗﻲ ﻻزم. •
)ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﻴﻢ ﻛﻪ ﻫﺮ ﺑﺮﻧﺎﻣﻪاي ،ﻧﻴﺎز ﺑﻪ ﻃﺮاﺣﻲ دارد و ﺗﻨﻬﺎ ﭘﺲ از ﻃﺮاﺣﻲ
اﺻﻮﻟﻲ ﺑﺮﻧﺎﻣﻪ ،ﻣﻲﺗﻮان ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﻛﺮد( ،واﻳﺠﺎد ارﺗﺒﺎط داﺋﻢ ﺑﺎ ﺗﻮﻟﻴﺪ ﻛﻨﻨﺪﮔﺎن
" ﺳﻴﺴﺘﻢ ﻛﺎرﺑﺮدي".
ﻃﺮاﺣﻲ واﺳﻄﻪﻫﺎي ﻛﺎرﺑﺮدي. •
اﻳﺠﺎد ﻧﻤﻮﻧﻪ ﻧﺨﺴﺖ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ و ﺑﺎرﮔﺬاري ﭘﺎﻳﮕﺎه ﺑﺎ دادهﻫﺎي ﺗﺴﺘﻲ. •
www.PDFgozar.com
ﻧﻮﺷﺘﻦ ﺑﺮﻧﺎﻣﻪﻫﺎي ﻻزم ﺑﺮاي ﻛﻨﺘﺮل ﭘﺎﻳﮕﺎهدادهﻫﺎ ﺑﻮﻳﮋه اﻋﻤﺎل ﻣﺤﺪودﻳﺘﻬﺎي •
ﺟﺎﻣﻌﻴﺘﻲ.
ﻧﻮﺷﺘﻦ ﺑﺮﻧﺎﻣﻪﻫﺎي ﻻزم ﺑﺮاي ﺑﻬﺮه ﺑﺮداري از ﭘﺎﻳﮕﺎهدادهﻫﺎ. •
اﻳﺠﺎد ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ واﻗﻌﻲ )و ﻣﻨﻄﺒﻖ ﺑﺎ ﻧﻴﺎزﻫﺎي ﻛﺎرﺑﺮان(. •
ﻧﻈﺎرت ﺑﺮ وارد ﻛﺮدن دادهﻫﺎ )در ﺣﺠﻢ ﻣﺤﺪود(. •
اﻧﺘﺨﺎب اﺳﺘﺮاﺗﮋيﻫﺎي ﺗﺴﺖ ﻣﻨﺎﺳﺐ و ﺗﺴﺖ ﻛﺮدن " ﺳﻴﺴﺘﻢ" ﺑﺎ دادهﻫﺎي ﺗﺴﺘﻲ •
و ﻧﻴﺰ ﺑﺎ دادهﻫﺎي واﻗﻌﻲ در ﺣﺠﻢ ﻣﺤﺪود )اﻧﺠﺎم دو ﻣﺮﺣﻠﻪ ﺗﺴﺖ(.
ﻧﻈﺎرت ﺑﺮ وارد ﻛﺮدن دادهﻫﺎي واﻗﻌﻲ ﺳﺎزﻣﺎن. •
ﺗﺴﺖ ﻛﺮدن " ﺳﻴﺴﺘﻢ" ﺑﺎ دادهﻫﺎي واﻗﻌﻲ و در ﺣﺠﻢ واﻗﻌﻲ •
ﺗﻨﻈﻴﻢ دﻗﻴﻖ ﻗﺴﻤﺘﻬﺎي ﻣﺨﺘﻠﻒ ﺳﻴﺴﺘﻢ و ﻛﻞ ﺳﻴﺴﺘﻢ ﻳﻜﭙﺎرﭼﻪ. •
ﺗﻌﻴﻴﻦ ﺿﻮاﺑﻂ دﺳﺘﻴﺎﺑﻲ ﻛﺎرﺑﺮان ﺑﻪ دادهﻫﺎ. •
ﻧﻈﺎرت در ﺗﻬﻴﻪ ﻣﺴﺘﻨﺪات ﻻزم در ﻫﻤﻪ ﻣﺮاﺣﻞ ﻛﺎر. •
وﺿﻊ اﺳﺘﺎﻧﺪاردﻫﺎي ﻻزم در ﻫﻤﻪ ﻣﺮاﺣﻞ ﻛﺎر و ﻧﻈﺎرت ﺑﺮ اﻋﻤﺎل آﻧﻬﺎ. •
ﺗﺼﻤﻴﻢ ﮔﻴﺮي در ﻣﻮرد ﭼﮕﻮﻧﮕﻲ ﺗﺮﻣﻴﻢ ﭘﺎﻳﮕﺎهدادهﻫﺎ و در ﺻﻮرت ﻟﺰوم ﺗﻬﻴﻪ ﻳﺎ •
ﺗﻮﺳﻌﻪ اﺑﺰارﻫﺎي اﻳﻦ ﻛﺎر و اﻧﺠﺎم ﺗﺮﻣﻴﻢ ﭘﺎﻳﮕﺎه.
ﻛﻨﺘﺮل ﻣﺪاوم ﻛﺎراﻳﻲ DBMSو ﺗﻼش در اﻓﺰاﻳﺶ ﻛﺎراﻳﻲ. •
ﻧﻈﺎرت و ﻛﻨﺘﺮل داﺋﻢ ﺑﺮ ﻋﻤﻠﻴﺎﺗﻲ ﻛﻪ در ﭘﺎﻳﮕﺎهدادهﻫﺎ اﻧﺠﺎم ﻣﻲﺷﻮد. •
ﻛﻨﺘﺮل ﺟﺎﻣﻌﻴﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ. •
ﺗﻀﻤﻴﻦ ﻣﺤﺮﻣﺎﻧﮕﻲ دادهﻫﺎ. •
ﺗﺼﻤﻴﻢ ﮔﻴﺮي در ﻣﻮرد ﭼﻨﺪي و ﭼﮕﻮﻧﮕﻲ رﺷﺪ )ﮔﺴﺘﺮش( ﭘﺎﻳﮕﺎهدادهﻫﺎ. •
اﺗﺨﺎذ ﺗﺪاﺑﻴﺮ ﻻزم ﺑﺮاياﻳﻤﻨﻲ و ﺣﻔﺎﻇﺖ دادهﻫﺎ و اﻋﻤﺎل اﻳﻦ ﺗﺪاﺑﻴﺮ. •
ﻣﺪﻳﺮﻳﺖ ﻛﺎرﺑﺮان ﭘﺎﻳﺎﻧﻲ )اﻳﺠﺎد و ﺗﻌﺮﻳﻒ ﻛﺎرﺑﺮان ،ﮔﺬر واژهﻫﺎ ،اﻣﺘﻴﺎزﻫﺎ و.(... •
ﺗﻤﺎس داﺋﻢ ﺑﺎ ﻛﺎرﺑﺮان و ﺷﻨﺎﺧﺖ ﻧﻴﺎزﻫﺎي ﺟﺪﻳﺪ آﻧﻬﺎ. •
ﺗﻮﻟﻴﺪ ﻧﺴﺨﻪﻫﺎي ﭘﺸﺘﻴﺒﺎن ﺑﻄﻮر ﻣﺘﻨﺎوب )ﺑﺎ ﺗﻨﺎوب ﻣﻨﺎﺳﺐ(. •
ﺗﻌﻴﻴﻦ اﻟﮕﻮﻫﺎي اﺳﺘﻔﺎده از دادهﻫﺎ و ﺑﺴﺎﻣﺪ )ﻓﺮﻛﺎﻧﺲ( اﺳﺘﻔﺎده از دادهﻫﺎ. •
ﺗﺼﻤﻴﻢ ﮔﻴﺮي در ﻣﻮرد ﭼﮕﻮﻧﮕﻲ ﺳﺎزﻣﺎﻧﺪﻫﻲ ﻣﺠﺪد ﭘﺎﻳﮕﺎهدادهﻫﺎ. •
www.PDFgozar.com
اﻧﺠﺎم ﺗﺒﺪﻳﻞ و اﻧﺘﻘﺎل دادهﻫﺎ از" ﺳﻴﺴﺘﻢﻫﺎي ﻣﻮﺟﻮد" ﺑﻪ ﭘﺎﻳﮕﺎهدادهﻫﺎي ﺟﺪﻳﺪ و •
اﻧﺠﺎم ﺗﺒﺪﻳﻞ ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي ﻣﻮﺟﻮد ﺑﻪ ﮔﻮﻧﻪاي ﻛﻪ ﻗﺎﺑﻞ اﺟﺮا در"ﺳﻴﺴﺘﻢ
ﻛﺎرﺑﺮدي" ﺟﺪﻳﺪ ﺑﺎﺷﻨﺪ.
ﺗﻼش در ﺟﻬﺖ ارﺗﻘﺎء ﺳﻄﺢ داﻧﺶ و ﻓﻦ اﻋﻀﺎء ﺗﻴﻢ و ﻛﺎرﺑﺮان )ﺑﻮﻳﮋه در زﻣﻴﻨﻪ •
ﺗﻜﻨﻮﻟﻮژي اﻃﻼﻋﺎت و ﺳﻴﺴﺘﻤﻬﺎي اﻃﻼﻋﺎﺗﻲ(.
ﺗﻼش در ﺟﻬﺖ ﺷﻨﺎﺳﺎﻳﻲ اﻣﻜﺎﻧﺎت ﺟﺪﻳﺪ ،ﮔﺴﺘﺮش ،ارﺗﻘﺎء و ﻛﺎراﺗﺮ ﻛﺮدن •
ﺳﻴﺴﺘﻢ ﺑﺎ اﺳﺘﻔﺎده از اﻳﻦ اﻣﻜﺎﻧﺎت.
ﺗﻬﻴﻪ و ﺗﻨﻈﻴﻢ اﻧﻮاع آﻣﺎرﻫﺎ و ﮔﺰارﺷﺎت ﻛﻨﺘﺮﻟﻲ و ﻣﺪﻳﺮﻳﺘﻲ در ﻣﻮرد ﺳﻴﺴﺘﻢ •
ﭘﺎﻳﮕﺎهدادهﻫﺎ و ﻛﺎرﺑﺮان.
ﺗﻀﻤﻴﻦ اﻧﺠﺎم و اﺗﻤﺎم "ﭘﺮوژه ﭘﺎﻳﮕﺎﻫﻲ" در ﻣﺪت زﻣﺎن ﭘﻴﺶ ﺑﻴﻨﻲ ﺷﺪه و ﺑﺎ •
ﺗﻮﺟﻪ ﺑﻪ ﻣﺤﺪودﻳﺖ ﺑﻮدﺟﻪ.
www.PDFgozar.com
ﺗﻤﺮﻳﻨﺎت
ﭘﺎﻳﮕﺎه دادهﻫﺎ 86
www.PDFgozar.com
ﻓﺼﻞ ۵
ﻫﺪف ﻛﻠﻲ
دراﻳﻦ ﻓﺼﻞ اﺑﺘﺪا ﺑﺎ ﻣﻔﻬﻮم ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ ﻳﻚ ﭘﺎﻳﮕﺎه داده و ﺑﺨﺶ ﻫﺎي ﻣﺨﺘﻠﻒ آن
آﺷﻨﺎ ﺧﻮاﻫﻴﻢ ﺷﺪ .در اداﻣﻪ ﺳﻪ ﺳﺎﺧﺘﺎر داده اي اﺻﻠﻲ ﭘﺎﻳﮕﺎه ﻫﺎي داده ﻛﻪ ﺷﺎﻣﻞ
ﺳﺎﺧﺘﺎر داده اي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ،ﺷﺒﻜﻪ اي و راﺑﻄﻪ اي ﻣﻲ ﺑﺎﺷﻨﺪ را ﻣﻌﺮﻓﻲ ﻛﺮده و ﻋﻨﺎﺻﺮ
اﺻﻠﻲ ،ﻋﻤﻠﻴﺎت اﺻﻠﻲ و ﻧﺤﻮه ﻧﻤﺎﻳﺶ ارﺗﺒﺎط ﻣﻮﺟﻮدﻳﺖﻫﺎ و وﻳﮋﮔﻲ ﻫﺎي ﻫﺮ ﻳﻚ از
ﺳﺎﺧﺘﺎرﻫﺎي داده اي ﺷﺮح داده ﺧﻮاﻫﻨﺪ ﺷﺪ.
ﻫﺪف رﻓﺘﺎري
دراﻳﻦ ﻓﺼﻞ ﻋﻨﺎوﻳﻦ زﻳﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ:
ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ •
ﺑﺨﺶ ﺳﺎﺧﺘﺎري ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ •
ﺑﺨﺶ ﻋﻤﻠﻴﺎﺗﻲ ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ •
ﺑﺨﺶ ﺟﺎﻣﻌﻴﺘﻲ ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ •
آﺷﻨﺎﻳﻲ ﺑﺎ ﺳﺎﺧﺘﺎر دادهاي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ •
ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﺎري •
ﻃﺮاﺣﻲ ﭘﺎﻳﮕﺎه ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ •
ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎه ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ •
ﺑﺮﺧﻲ وﻳﮋﮔﻲﻫﺎي ﺳﺎﺧﺘﺎر )و ﻣﺪل( دادهاي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ •
www.PDFgozar.com
1
-1ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ
در ﻣﻔﺎﻫﻴﻢ ﭘﺎﻳﮕﺎه داده ﻫﺎ ﻣﻨﻈﻮر از ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ ،ﻣﺤﻴﻄﻲ اﺳﺖ ﻛﻪ ﻣﺎﺑﻴﻦ ﺳﻄﺢ داﺧﻠﻲ
)ﻣﺤﻴﻂ ﻓﺎﻳﻠﻴﻨﮓ ﻓﻴﺰﻳﻜﻲ و ﻓﺎﻳﻠﻴﻨﮓ ﻣﻨﻄﻘﻲ( و ﺳﻄﺢ ادراﻛﻲ اﺳﺖ .ﻃﺒﻴﻌﺘﺎﺍﻳﻦ ﻣﺤﻴﻂ
ﺑﺎﻳﺪ از ﺳﻄﺢ ﻓﺎﻳﻠﻴﻨﮓ ﻣﺴﺘﻘﻞ ﻋﻤﻞ ﻛﻨﺪ.ﺍﻳﻦ ﻣﺤﻴﻂ ﻣﻨﻄﻘﺎً ﺧﻮد ﻣﻲ ﺗﻮاﻧﺪ داراي ﭼﻨﺪ
ﺳﻄﺢ ﺑﺎﺷﺪ .ﺷﻜﻞ 1-5ﻧﻤﺎي ﻛﻠﻲ از ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ را ﻧﺸﺎن ﻣﻲ دﻫﺪ.
ﻫﻤﺎﻧﻄﻮر ﻛﻪ در ﻣﺪل ﺳﺎزي دادهﻫﺎ ﻧﻴﺎز ﺑﻪ اﻣﻜﺎﻧﻲ ﺑﺮاي ﻧﻤﺎﻳﺶ واﻗﻌﻴﺎت دارﻳﻢ،
ﺑﺮاي ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ ﭘﺎﻳﮕﺎهدادهﻫﺎ ﻧﻴﺰ ﻧﻴﺎز ﺑﻪ ﻳﻚ ﻣﺪل دادهاي ﺷﺎﻣﻞ ﻳﻚ ﺳﺎﺧﺘﺎر دادهاي
دارﻳﻢ .ﻣﺪل دادهاي اﻣﻜﺎﻧﻲ اﺳﺖ ﺑﺮاي ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ ﭘﺎﻳﮕﺎهدادهﻫﺎ ،ﺗﻌﺮﻳﻒ و ﻛﻨﺘﺮل آن و
اﻧﺠﺎم ﻋﻤﻠﻴﺎت در آن .ﻛﺎرﺑﺮ ﺑﺎ اﺳﺘﻔﺎده از ﻣﺪل دادهاي ﻣﻲﺗﻮاﻧﺪ ﻫﺮ ﺳﻪ ﻋﻤﻞ ﻣﺬﻛﻮر را در
ﻳﻚ ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ اﻧﺠﺎم دﻫﺪ .ﺑﻨﺎﺑﺮاﻳﻦ ﻣﻲﺗﻮان ﮔﻔﺖ ﻛﻪ ﻣﺪل دادهاي ﺗﺎﻣﻴﻦ ﻛﻨﻨﺪه ﻣﺤﻴﻂ
اﻧﺘﺰاﻋﻲ ﭘﺎﻳﮕﺎهدادهﻫﺎ اﺳﺖ و از ﺳﻪ ﺑﺨﺶ اﺳﺎﺳﻲ ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ:
2
ﺑﺨﺶ ﺳﺎﺧﺘﺎري •
3
ﺑﺨﺶ ﻋﻤﻠﻴﺎﺗﻲ •
4
ﺑﺨﺶ ﺟﺎﻣﻌﻴﺘﻲ •
1. Ab s t r a c t E n vi r o n me n t
2. St r u c t u r a l
3. M a ni p u l a t i ve
4. In t e gr i t y
www.PDFgozar.com
ﺑﺨﺶ ﺳﺎﺧﺘﺎري ،ﺷﺎﻣﻞ ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﺎري ﻣﺪل اﺳﺖ ﻛﻪ ﻫﻤﺎن ﺳﺎﺧﺘﺎر داده اي اﺻﻠﻲ
و ﻣﻔﺎﻫﻴﻢ ﻣﺮﺑﻮط ﺑﻪ آن اﺳﺖ.
ﺑﺨﺶ ﻋﻤﻠﻴﺎﺗﻲ ،ﻣﺠﻤﻮﻋﻪ اﻣﻜﺎﻧﺎﺗﻲ اﺳﺖ ﻛﻪ ﺑﻪ وﺳﻴﻠﻪ آﻧﻬﺎ ﻋﻤﻠﻴﺎت ﻣﻮرد ﻧﻈﺮ ﻛﺎرﺑﺮ
در ﻣﺠﺪوده ﺳﺎﺧﺘﺎر داده اي و ﻣﺒﺘﻨﻲ ﺑﺮ ﻋﻨﺼﺮ ﺳﺎﺧﺘﺎري اﺳﺎﺳﻲ آن اﻧﺠﺎم ﻣﻲ ﺷﻮد.
ﺑﺨﺶ ﺟﺎﻣﻌﻴﺘﻲ ،از ﻣﺠﻤﻮﻋﻪاي از ﻗﻮاﻋﺪ )ﻣﺤﺪودﻳﺖ ﻫﺎي( ﺟﺎﻣﻌﻴﺘﻲ ﺗﺸﻜﻴﻞ ﺷﺪه
اﺳﺖ ﻛﻪ ﺑﺎ اﺳﺘﻔﺎده از آﻧﻬﺎ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎ ﻣﻲ ﺗﻮاﻧﺪ ﺻﺤﺖ ،دﻗﺖ و
ﺳﺎزﮔﺎري داده ﻫﺎ را در ﻫﺮ ﻟﺤﻈﻪ از ﺣﻴﺎت ﭘﺎﻳﮕﺎه داده ،ﻛﻨﺘﺮل و ﺗﻀﻤﻴﻦ ﻛﻨﺪ.
ﺑﺎ ﺍﻳﻦ ﺗﻮﺻﻴﻒ ﻫﺮ ﺳﺎﺧﺘﺎر دادهاي ﻧﻴﺰ ﻓﻘﻂ ﺑﺨﻀﻲ از ﻳﻚ ﻣﺪل دادهاي اﺳﺖ و
ﺣﺪاﻗﻞ ﻳﻚ ﻋﻨﺼﺮ ﺳﺎﺧﺘﺎر اﺳﺎﺳﻲ دارد ﻛﻪ ﺑﻪ ﻛﻤﻚ آن ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻳﺎ ﻧﻮع ارﺗﺒﺎط و ﻳﺎ
ﻫﺮ دو ﻧﻤﺎﻳﺶ داده ﻣﻲﺷﻮﻧﺪ .در اداﻣﻪ دﻻﻳﻠﻲ ﻛﻪ اﺳﺘﻔﺎده از ﺳﺎﺧﺘﺎر دادهاي را ﺑﻴﺎن ﻣﻲﻛﻨﺪ
اراﺋﻪ ﺷﺪه اﺳﺖ:
www.PDFgozar.com
ﺳﺎﺧﺘﺎر دادهاي ﺗﺎﻣﻴﻦ ﻛﻨﻨﺪه ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ ﭘﺎﻳﮕﺎهدادهﻫﺎ و ﭼﺎر ﭼﻮب ﻃﺮاﺣﻲ •
ﻣﻨﻄﻘﻲ ﭘﺎﻳﮕﺎه اﺳﺖ.
ﺳﺎﺧﺘﺎر دادهاي ﻣﺒﻨﺎ )و ﭼﺎرﭼﻮب( ﻃﺮاﺣﻲ دﺳﺘﻮرات ﺗﻌﺮﻳﻒ دادهﻫﺎ ،دﺳﺘﻮرﻫﺎي •
ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎهدادهﻫﺎ و دﺳﺘﻮرﻫﺎي ﻛﻨﺘﺮل دادهﻫﺎ اﺳﺖ.
ﺳﺎﺧﺘﺎر دادهاي ﻣﺒﻨﺎي ﻃﺮاﺣﻲ DBMSﻫﺎﺳﺖ ،ﻳﻌﻨﻲ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺳﻪ ﻧﻮع ﻣﺪل ،ﺳﻪ •
و ،NDBMSﺑﻪ ﻧﺤﻮي ﻛﻪ ازHDBMS ،RDBMS: دارﻳﻢ ﻛﻪ ﻋﺒﺎرﺗﻨﺪ DBMS رده
ﻫﻮﻳﺖ "ﻫﺮ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ" ﻫﻤﺎن ﻣﺪل دادهاي آن اﺳﺖ.
ﺳﺎﺧﺘﺎر دادهاي ﺿﺎﺑﻄﻪاي اﺳﺖ ﺑﺮاي ﻣﻘﺎﻳﺴﻪ DBMSﻫﺎ و ﻧﻴﺰ ارزﻳﺎﺑﻲ آﻧﻬﺎ. •
ﺳﺎﺧﺘﺎر دادهاي ﻣﺒﻨﺎﻳﻲ اﺳﺖ ﺑﺮاي ﺍﻳﺠﺎﺩ و ﮔﺴﺘﺮش ﺗﻜﻨﻴﻜﻬﺎي ﻃﺮاﺣﻲ •
ﭘﺎﻳﮕﺎهدادهﻫﺎ.
ﺳﺎﺧﺘﺎر دادهاي ،ﻣﺒﻨﺎي ﭘﮋوﻫﺶ در داﻧﺶ و ﺗﻜﻨﻮﻟﻮژي ﭘﺎﻳﮕﺎهدادهﻫﺎ اﺳﺖ. •
ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻨﻜﻪ ﺳﺎﺧﺘﺎرﻫﺎي داده اي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ و ﺷﺒﻜﻪاي از رده ﺧﺎرج ﺷﺪه اﻧﺪ،
ﻟﺬا ﺍﻳﻦ دو ﺳﺎﺧﺘﺎر ﺟﻬﺖ آﺷﻨﺎﻳﻲ ﺧﻮاﻧﻨﺪﮔﺎن ﻣﺤﺘﺮم ﺑﺼﻮرت ﻛﻠﻲ ﺗﻮﺿﻴﺢ داده
ﺧﻮاﻫﺪ ﺷﺪ .ﺳﺎﺧﺘﺎر داده اي راﺑﻄﻪ اي در ﻓﺼﻞﻫﺎي ﺑﻌﺪي ﺑﺼﻮرت ﻛﺎﻣﻞ ﻣﻮرد ﺑﺤﺚ
و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﺪ ﮔﺮﻓﺖ.
1. H ie r a r c h i c al D at a St r u c t u r e
2. N et w o r k D a t a St r u c t u r e
3. R el a t i o n a l D a t a St r u c t u r e
www.PDFgozar.com
1-2ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﺎري
ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ در اﺳﺎس ﻧﻮﻋﻲ درﺧﺖ اﺳﺖ ﻛﻪ ﻣﻔﻬﻮم آﺷﻨﺎﻳﻲ اﺳﺖ .در ﺳﺎﺧﺘﺎر
داده اي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ،دو ﻋﻨﺼﺮ ﺳﺎﺧﺘﺎري اﺳﺎﺳﻲ وﺟﻮد دارد:
ﻧﻮع رﻛﻮرد •
ﻧﻮع ﭘﻴﻮﻧﺪ ﭘﺪر-ﻓﺮزﻧﺪي •
ﺑﻄﻮرﻳﻜﻪ ﺧﻮاﻫﻴﻢ دﻳﺪ ،ﻧﻮع رﻛﻮرد ﺑﺮاي ﻧﻤﺎﻳﺶ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺑﻪ ﻛﺎر ﻣﻲرود .ﺑﻴﻦ
ﻫﺮ دو ﻧﻮع رﻛﻮرد ﺑﻼﻓﺼﻞ از ﻳﻚ ﻣﺴﻴﺮ ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ،ﭘﻴﻮﻧﺪ ﭘﺪر-ﻓﺮزﻧﺪي وﺟﻮد
دارد و ﺑﺎ ﺍﻳﻦ ﭘﻴﻮﻧﺪ ارﺗﺒﺎط ﺑﻴﻦ دو ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻧﻤﺎﻳﺶ داده ﻣﻲ ﺷﻮد .ﺍﻳﻦ ﻧﻮع
ﭘﻴﻮﻧﺪ ،ﻃﺒﻖ ﻣﺎﻫﻴﺖ ﻣﻔﻬﻮم ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ،ارﺗﺒﺎط ﻳﻚ ﺑﻪ ﭼﻨﺪ را ﻣﻲ ﺗﻮاﻧﺪ ﻧﻤﺎﻳﺶ دﻫﺪ.
در ﺳﻮي "ﻳﻚ" ارﺗﺒﺎط ) ،(1ﻧﻮع رﻛﻮرد ﭘﺪر و در ﺳﻮي "ﭼﻨﺪ" ) (Nآن ،ﻧﻮع رﻛﻮرد
ﻓﺮزﻧﺪ ﻗﺮار دارد.
X
.....
1: N
Y
.....
ﻓﺮزﻧﺪ و رﻛﻮرد ﻧﻮع ،Xﭘﺪر اﺳﺖ .ﻫﺮ ﻧﻮع رﻛﻮرد )از Y در ﺷﻜﻞ ،2-5رﻛﻮرد ﻧﻮع
ﻫﺮ ﺳﻄﺢ ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ( ،ﻣﻲ ﺗﻮاﻧﺪ از ﺻﻔﺮ ﺗﺎ nﻧﻮع رﻛﻮرد ﻓﺮزﻧﺪ )در ﺳﻄﺢ ﺑﻼﻓﺎﺻﻠﻪ
ﭘﺎﺋﻴﻦ ﺗﺮ و در ﻣﺴﻴﺮ ﻫﺎي ﻣﺨﺘﻠﻒ ﻃﺒﻌﺎ( داﺷﺘﻪ ﺑﺎﺷﺪ .ﭘﺲ ﻫﺮ ﻧﻮع رﻛﻮرد ﻓﺮزﻧﺪ از ﻳﻚ
ﺳﻄﺢ ،ﺧﻮد ﻣﻲ ﺗﻮاﻧﺪ ﭘﺪر اﻧﻮاﻋﻲ از رﻛﻮرد ﻫﺎ در ﺳﻄﺢ ﺑﻼﻓﺎﺻﻠﻪ ﭘﺎﺋﻴﻦ ﺗﺮ و در ﭼﻨﺪ
ﻣﺴﻴﺮ ﺑﺎﺷﺪ .ﺑﺪﻳﻨﺴﺎن ،ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ از اﻧﻮاع رﻛﻮردﻫﺎ در ﺳﻄﻮح و ﻣﺴﻴﺮﻫﺎي ﻣﺨﺘﻠﻒ
ﺍﻳﺠﺎﺩ ﻣﻲ ﺷﻮد.
رﻳﺸﻪ ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ،رﻛﻮرد ﻧﻮع ﭘﺪر در ﺑﺎﻻﺗﺮﻳﻦ ﺳﻄﺢ اﺳﺖ .ﺑﻘﻴﻪ اﻧﻮاع •
رﻛﻮردﻫﺎ ،واﺑﺴﺘﮕﺎن رﻳﺸﻪ در ﺳﻄﻮح ﻣﺨﺘﻠﻒ ،ﻫﺴﺘﻨﺪ.
رﻳﺸﻪ در ﺣﺎﻟﺖ ﺧﺎص ﻣﻤﻜﻦ اﺳﺖ اﺻﻼً ﻓﺮزﻧﺪ ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ و درﺍﻳﻦ ﺻﻮرت •
ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ را " ﻓﻘﻂ رﻳﺸﻪ" ﻣﻲﮔﻮﻳﻴﻢ.
ﺑﺮاي ﻣﺜﺎل ﻳﻚ ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ﺑﺎ ﺗﻌﺪاد 9ﻧﻮع رﻛﻮرد در ﺷﻜﻞ 3-5ﻧﺸﺎن داده
ﺷﺪه اﺳﺖ.
ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ ﺗﺮﺗﻴﺐ ﭘﺮ ﺷﺪن زﻳﺮ ﻣﺠﻤﻮﻋﻪﻫﺎ ﺑﺮ اﺳﺎس ﻧﻴﺎز اﻃﻼﻋﺎﺗﻲ ﺑﻮده
و ﻫﻴﭻ ﻧﻮع ﻧﻈﻢ ﺧﺎﺻﻲ را ﻧﺪارد .ﻫﻤﭽﻨﻴﻦ ﻻزم ﺑﺬﻛﺮ اﺳﺖ ﻛﻪ ﻫﺮ ﻧﻮع رﻛﻮرد ﻓﺮزﻧﺪ ،ﺗﻨﻬﺎ
ﻳﻚ ﻧﻮع رﻛﻮرد ﭘﺪر دارد.
ﺗﻮﺟﻪ :ﻳﻚ ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ،از ﻟﺤﺎظ ﻧﻈﺮي ﻣﻲ ﺗﻮاﻧﺪ ﻫﺮ ﺗﻌﺪاد ﻣﺴﻴﺮ داﺷﺘﻪ ﺑﺎﺷﺪ
)ﻋﺮض( و ﻋﻤﻖ ﻫﺮ ﻣﺴﻴﺮ ﻫﻢ ﻣﺤﺪودﻳﺘﻲ ﻧﺪارد .اﻣﺎ در ﺳﻴﺴﺘﻢ ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ﻋﺮض
و ﻋﻤﻖ ﻳﻚ ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ﻣﻌﻤﻮﻻً ﻳﻚ ﺳﻘﻒ ﺣﺪاﻛﺜﺮ )ﻣﺜﻼ 16ﺳﻄﺢ( دارد.
DEPT
DID .....
STUDENT
واﺑﺴﺘﻪ STUD رﻳﺸﻪ -ﭘﺪر و رﻛﻮرد ﻧﻮع DEPT در ﺍﻳﻦ ﻃﺮح ﺳﺎده ،رﻛﻮرد ﻧﻮع
ﺑﻼﻓﺼﻞ )ﻓﺮزﻧﺪ( اﺳﺖ .ﻓﻘﻂ ﻓﻴﻠﺪ ﺻﻔﺖ ﺷﻨﺎﺳﻪ دو ﻧﻮع ﻣﻮﺟﻮدﻳﺖ راﻧﺸﺎن دادهاﻳﻢ .ﺻﻔﺖ
ارﺗﺒﺎط ،ﻓﻴﻠﺪي از ﻧﻮع رﻛﻮرد ﻓﺮزﻧﺪ ﻣﻲﺷﻮد .ﭘﺲ ﭘﺎﻳﮕﺎهداده ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ﻣﺠﻤﻮﻋﻪاي
اﺳﺖ ﻣﻨﻄﻘﺎً ﻣﻨﻈﻢ از ﻧﻤﻮﻧﻪﻫﺎي ﻣﺘﻤﺎﻳﺰ ﻳﻚ ﻳﺎ ﺑﻴﺶ از ﻳﻚ ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ.
ﻣﺜﺎل :2در ﻣﺜﺎل ﻗﺒﻞ ،ﭼﻨﺪي ارﺗﺒﺎط "ﻳﻚ ﺑﻪ ﭼﻨﺪ" اﺳﺖ .درﺍﻳﻦ ﻣﺜﺎل ،ﻳﻚ ارﺗﺒﺎط ﺑﺎ
ﭼﻨﺪي "ﭼﻨﺪ ﺑﻪ ﭼﻨﺪ" را ﻣﻄﺮح ﻣﻲﻛﻨﻴﻢ.
ﻧﻤﻮدار "داﻧﺸﺠﻮ -درس" را در ﻧﻈﺮ ﻣﻲﮔﻴﺮﻳﻢ .ﻣﻲداﻧﻴﻢ ﻛﻪ ﭼﻨﺪي ارﺗﺒﺎط
"اﻧﺘﺨﺎب" ،ﭼﻨﺪ ﺑﻪ ﭼﻨﺪ اﺳﺖ .اﮔﺮ ارﺗﺒﺎط ﭼﻨﺪ ﺑﻪ ﭼﻨﺪ را ارﺗﺒﺎط ﻳﻚ ﺑﻪ ﭼﻨﺪ دو ﺳﻮﻳﻪ
ﺑﺪاﻧﻴﻢ ﺑﺮاي ﻧﻤﺎﻳﺶﺍﻳﻦ ارﺗﺒﺎط ﺑﺎ ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﺎر دادهاي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ،ﻣﻨﻄﻘﺎً ﺑﻪ دو ﻧﻮع
ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ﻧﻴﺎز دارﻳﻢ .دو روش ﺑﺮاي ﻃﺮاﺣﻲ وﺟﻮد دارد:
روش :1ﻃﺮاﺣﻲ دو ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ﺟﺪاﮔﺎﻧﻪ
در ﺍﻳﻦ ﻃﺮاﺣﻲ ،ﻳﻚ ﻧﻤﻮﻧﻪ رﻛﻮرد ﻓﺮزﻧﺪ ،ﻣﻲ ﺗﻮاﻧﺪ ﺗﻜﺮار ﺷﻮد :ﻣﺜﻼ در ﺳﻠﺴﻠﻪ
ﻣﺮاﺗﺐ ﻧﻮع ،STCOﻳﻚ ﻧﻤﻮﻧﻪ رﻛﻮرد ﻧﻮع درس ذﻳﻞ ﻫﺮ ﻧﻤﻮﻧﻪ رﻛﻮرد داﻧﺸﺠﻮ ﻛﻪ آن
در ﺳﻠﺴﻠﻪ STUD درس اﻧﺘﺨﺎب ﻛﺮده ﺑﺎﺷﺪ ،ﻣﻲ آﻳﺪ .ﭼﻨﻴﻦ اﺳﺖ ﺑﺮاي رﻛﻮرد ﻧﻮع
ﻣﺮاﺗﺐ ﻧﻮع .COST
www.PDFgozar.com
ﺷﻜﻞ 6-5ﻧﻤﺎﻳﺶ دو ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ﺟﺪاﮔﺎﻧﻪ ﺑﺮاي ارﺗﺒﺎط ﭼﻨﺪ ﺑﻪ ﭼﻨﺪ
ﺍﻳﻦ ﺗﻜﺮار ،در واﻗﻊ ﻫﻤﺎن ﭘﺪﻳﺪه ﻧﺎﻣﻄﻠﻮب اﻓﺰوﻧﮕﻲ اﺳﺖ.ﺍﻳﻦ اﻓﺰوﻧﮕﻲ اﻟﺒﺘﻪ ﻣﺎﻫﻴﺘﺎ
ﻣﻨﻄﻘﻲ ﻳﺎ ادراﻛﻲ اﺳﺖ .اﻣﺎ اﮔﺮ ﻣﻨﺠﺮ ﺑﻪ ﺑﺮوز اﻓﺰوﻧﮕﻲ در ﻣﺤﻴﻂ ﻓﻴﺰﻳﻜﻲ ذﺧﻴﺮه ﺳﺎزي
ﺷﻮد ﻣﻲﺗﻮاﻧﺪ:
ﺳﺒﺐ ﺑﺮوز ﻧﺎﺳﺎزﮔﺎري دادهاي ﺷﻮد )ﺑﻪ ﻳﺎد داﺷﺘﻪ ﺑﺎﺷﻴﻢ ﻛﻪ اﻓﺰوﻧﮕﻲ ﻛﻨﺘﺮل •
ﻧﺸﺪه و ﻧﺎﺳﺎزﮔﺎري دادهاي ﭘﺸﺖ و روي ﻳﻚ ﺳﻜﻪاﻧﺪ !(.
ﺳﺒﺐ ﺑﺮوز ﻓﺰوﻧﻜﺎري )ﺑﻴﺸﻜﺎري(در ﺳﻴﺴﺘﻢ در اﻧﺠﺎم ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎهدادهﻫﺎ •
ﺷﻮد.
را ﺑﺎ ﻳﻚ ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ﻫﻢ ﻃﺮاﺣﻲ ﻛﺮد، M:N ﺗﻮﺟﻪ :ﻣﻲ ﺗﻮان ارﺗﺒﺎط ﺑﺎ ﭼﻨﺪي
را داﺷﺖ .اﻣﺎ ﭼﻮن ﻣﻨﻄﻖ ﻃﺒﻴﻌﻲ در ﺳﻠﺴﻠﻪ STCO ﻣﺜﻼ ﻓﻘﻂ ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ
ﻣﺮاﺗﺐ ،ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻣﺎﻫﻴﺖ ﭘﻴﻮﻧﺪ ﭘﺪر -ﻓﺮزﻧﺪي ،ورود از رﻳﺸﻪ و ﻃﻲ ﻛﺮدن ﻣﺴﻴﺮ
ﻣﻨﺎﺳﺐ ﺑﺮاي رﺳﻴﺪن ﺑﻪ ﻧﻤﻮﻧﻪ ﻓﺮزﻧﺪ ﻣﻮرد ﻧﻈﺮ اﺳﺖ ،ﺑﺮاي ﭘﺎﺳﺨﮕﻮﻳﻲ ﺑﻪ ﭘﺮﺳﺸﻲ ﻛﻪ
در آن ﻛﻠﻴﺪ ﻧﻤﻮﻧﻪ ﻓﺮزﻧﺪ داده ﺷﺪه ﺑﺎﺷﺪ و ﻧﻤﻮﻧﻪ )ﻫﺎي( ﭘﺪر ﻣﻮرد درﺧﻮاﺳﺖ ﺑﺎﺷﺪ،
دﻳﮕﺮ ﻧﻤﻲ ﺗﻮان ﻣﻨﻄﻘﺎً ﺑﺮ اﺳﺎس روﻳﻪ ﻣﺒﺘﻨﻲ ﺑﺮ ﭘﻴﻮﻧﺪ ﭘﺪر -ﻓﺮزﻧﺪي ﻋﻤﻞ ﻛﺮد .ﺑﻌﻼوه
و )ﻋﺪم وﺟﻮد ﻧﻮع ﺳﻠﺴﻠﻪ M:N ﺑﺎ داﺷﺘﻦ ﻓﻘﻂ ﻳﻚ ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ﺑﺮاي ارﺗﺒﺎط
ﻣﺮاﺗﺐ ﻗﺮﻳﻨﻪ( ،ﻣﺸﻜﻼﺗﻲ ﻧﺎﺷﻲ از ﻣﺎﻫﻴﺖ ﭘﻴﻮﻧﺪ ﭘﺪر-ﻓﺮزﻧﺪي در ﻋﻤﻠﻴﺎت ذﺧﻴﺮه
ﺳﺎزي در ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺑﺮوز ﻣﻲ ﻛﻨﺪ )از ﺟﻤﻠﻪ ﻋﺪم اﻣﻜﺎن درج ﻧﻤﻮﻧﻪ ﻓﺮزﻧﺪ ﺑﺪون
( وﺟﻮد ﻧﻤﻮﻧﻪ ﭘﺪر و ﻳﺎ ﻟﺰوم اﻧﺠﺎم ﺑﻬﻨﮕﺎم ﺳﺎزي ﻣﻨﺘﺸﺮ ﺷﻮﻧﺪه
www.PDFgozar.com
1
VPCL روش :2ﻃﺮاﺣﻲ دو ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ﺑﻪ ﻫﻢ ﺑﺴﺘﻪ :ﺗﻜﻨﻴﻚ
درﺍﻳﻦ روش ،از ﻳﻚ ﻧﻮع رﻛﻮرد ﻣﺠﺎزي )ﺣﺎوي ﻧﺸﺎن ﻧﻤﺎ :اﺷﺎره ﮔﺮ و ﺻﻔﺎت
ارﺗﺒﺎط( اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد .ﺑﻪ اﻳﻦ ﻧﻮع رﻛﻮرد اﺻﻄﻼﺣﺎ "ﻓﺮزﻧﺪ ﻣﺠﺎزي" ﮔﻔﺘﻪ ﻣﻲ ﺷﻮد.
ﻫﺮ ﻧﻤﻮﻧﻪ از ﻓﺮزﻧﺪ ﻣﺠﺎزي ﺑﻪ ﻳﻚ ﻧﻤﻮﻧﻪ " ﭘﺪر ﻣﺠﺎزي " اﺷﺎره ﻣﻲﻛﻨﺪ .ﭼﻨﻴﻦ ﭘﻴﻮﻧﺪي
را ﭘﻴﻮﻧﺪ ﭘﺪر -ﻓﺮزﻧﺪي ﻣﺠﺎزي ﻣﻲ ﻧﺎﻣﻴﻢ .در ﺷﻜﻞ 7-5ﺍﻳﻦ روش دﻳﺪه ﻣﻲ ﺷﻮد.
در ﺍﻳﻦ ﻃﺮح ﻧﻮع رﻛﻮرد ،COPTRﻓﺮزﻧﺪ ﻣﺠﺎزي ﻧﻮع رﻛﻮرد COURSEوﺍﻳﻦ ﻧﻮع
رﻛﻮرد ،ﭘﺪر ﻣﺠﺎزي ﻧﻮع رﻛﻮرد COPTRاﺳﺖ و ﻧﻮع رﻛﻮرد ،STPTRﻓﺮزﻧﺪ ﻣﺠﺎزي ﻧﻮع
اﺳﺖ .اﻃﻼﻋﺎﺗﻲ ﻛﻪ STPTR و ﺍﻳﻦ ﻧﻮع رﻛﻮرد ،ﭘﺪر ﻣﺠﺎزي ﻧﻮع رﻛﻮرد STUD رﻛﻮرد
ﻫﻢ ﺑﻪ ﭘﺪر و ﻫﻢ ﺑﻪ ﻓﺮزﻧﺪ ﻣﺮﺑﻮط ﻣﻲﺷﻮد )ﺻﻔﺎت ارﺗﺒﺎط( ،در ﻧﻮع رﻛﻮرد اﺷﺎره ﮔﺮ
ﻣﺠﺎزي ﮔﻨﺠﺎﻧﺪه ﻣﻲﺷﻮد :درﺍﻳﻨﺠﺎ ﺻﻔﺎت YRYR ،TRو .GRADE
دﻳﮕﺮ ﺗﻜﺮار COURSE و STUD در ﺍﻳﻦ ﻃﺮاﺣﻲ ،ﻧﻤﻮﻧﻪﻫﺎي دو ﻧﻮع رﻛﻮرد
ﻧﻤﻲﺷﻮﻧﺪ .ﺍﻳﻦ ﻛﺎﻫﺶ اﻓﺰوﻧﮕﻲ ،اﻟﺒﺘﻪ ﺑﻪ ﻗﻴﻤﺖ ﭘﻴﭽﻴﺪهﺗﺮ ﺷﺪن ﻃﺮاﺣﻲ و ﭘﻴﺎده ﺳﺎزي
ﭘﺎﻳﮕﺎهدادهﻫﺎ ﺗﻤﺎم ﻣﻲﺷﻮد )ﺑﻪ وﻳﮋه اﮔﺮ ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ﻣﻮرد ﻧﻴﺎز ،ﺑﺰرگ ﺑﺎﺷﺪ )در ﻋﺮض
و ﻋﻤﻖ(( .ﺷﺎﻳﺎن ذﻛﺮ اﺳﺖ ﻛﻪ از دﻳﺪﮔﺎه ﻧﻈﺮي ،ﺍﻳﻦ ﺗﻜﻨﻴﻚ رﺑﻄﻲ ﺑﻪ ﻣﺎﻫﻴﺖ ﺳﺎﺧﺘﺎر
دادهاي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ﻧﺪارد ،ﺑﻠﻜﻪ اﻣﻜﺎﻧﻲ اﺳﺖ ﺑﺮاي ﻧﻤﺎﻳﺶ ﺑﻬﻢ ﺑﺴﺘﮕﻲ دو ﻳﺎ ﺑﻴﺶ از
دو ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ و از آﻧﺠﺎ ،اﻣﻜﺎﻧﻲ اﺳﺖ ﺑﺮاي ﻧﻤﺎﻳﺶ ارﺗﺒﺎط ﭼﻨﺪ ﺑﻪ ﭼﻨﺪ.
1. V ir t u a l P a r e n t C h i l d Li n k
www.PDFgozar.com
از ﻧﻈﺮ ﻣﻔﻬﻮﻣﻲ ،ﻳﻜﺴﺎن ﻫﺴﺘﻨﺪ ،ﺗﻔﺎوت در VPCL و PCL ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﻴﻢ ﻛﻪ
ﻃﺮز ﭘﻴﺎده ﺳﺎزي آﻧﻬﺎ اﺳﺖ PCL :ﺑﺎ اﺳﺘﻔﺎده از ﺗﻮاﻟﻲ ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ﭘﻴﺎده ﺳﺎزي ﻣﻲﺷﻮد و
VPCLﺑﺎ اﺳﺘﻔﺎده از ﻧﺸﺎﻧﻪ رو ﻓﻴﺰﻳﻜﻲ ﺣﺎوي آدرس و ﻳﺎ ﻧﺸﺎﻧﻪ رو ﻣﻨﻄﻘﻲ ﺣﺎوي ﻛﻠﻴﺪ ،از
رﻛﻮرد ﻓﺮزﻧﺪ ﻣﺠﺎزي ﺑﻪ رﻛﻮرد ﭘﺪر ﻣﺠﺎزي.ﺍﻳﻦ ﺗﻜﻨﻴﻚ ﺳﺒﺐ اﻓﺰاﻳﺶ ﻛﺎراﻳﻲ ﺳﻴﺴﺘﻢ در
ﭘﺎﺳﺦ ﮔﻮﻳﻲ ﺑﻪ ﺑﻌﺾ ﭘﺮﺳﺸﻬﺎ ﻣﻲﺷﻮد.
ﻣﺜﺎل :3درﺍﻳﻦ ﻣﺜﺎل ،ﻳﻚ ارﺗﺒﺎط ﺳﻪ ﻣﻮﺟﻮدﻳﺘﻲ را در ﻧﻈﺮ ﻣﻲ ﮔﻴﺮﻳﻢ :ارﺗﺒﺎط ﺑﻴﻦ اﻧﻮاع
ﻣﻮﺟﻮدﻳﺖ ﻫﺎي داﻧﺸﺠﻮ ،درس و اﺳﺘﺎد ﻛﻪ در ﺑﺤﺚ ﻣﺪل ﺳﺎزي ﻣﻌﻨﺎﻳﻲ داده ﻫﺎ دﻳﺪﻳﻢ.
ﻧﻤﻮدار ERﻣﺮﺑﻮﻃﻪ در ﺷﻜﻞ 8-5ﻧﺸﺎن داده ﺷﺪه اﺳﺖ:
ﺑﺮاي ﺗﺒﺪﻳﻞ ﺍﻳﻦ ﻧﻤﻮدار ﺑﻪ ﻃﺮاﺣﻲ ﭘﺎﻳﮕﺎه ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ،دو روش ﻣﻤﻜﻦ ﺑﻪ
ﺻﻮرت زﻳﺮ ﺧﻮاﻫﻨﺪ ﺑﻮد:
www.PDFgozar.com
روش اول:
روش دوم:
ﻣﻤﻜﻦ اﺳﺖ ﻳﻜﺴﺎن ﻫﻢ E1وE2 ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ درﺍﻳﻦﺟﺎ دو ﻧﻮع ﻣﻮﺟﻮدﻳﺖ
ﺑﺎﺷﻨﺪ ،ﺑﻪ ﺑﻴﺎن دﻳﮕﺮ دو ﻳﺎ ﺑﻴﺶ از دو ﻧﻮع ارﺗﺒﺎط ﺑﻴﻦ دو ﻧﻮع ﻣﻮﺟﻮدﻳﺖ وﺟﻮد داﺷﺘﻪ
ﺑﺎﺷﺪ(.
www.PDFgozar.com
100ﭘﺎﻳﮕﺎه دادهﻫﺎ
2-3ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﺎري
در ﺳﺎﺧﺘﺎر داده اي ﺷﺒﻜﻪ اي دو ﻋﻨﺼﺮ ﺳﺎﺧﺘﺎري اﺳﺎﺳﻲ وﺟﻮد دارد:
ﻧﻮع رﻛﻮرد •
ﻧﻮع ﻣﺠﻤﻮﻋﻪ •
ﻧﻮع رﻛﻮرد :ﺑﺮاي ﻧﻤﺎﻳﺶ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺑﻪ ﻛﺎر ﻣﻲ رود )ﻣﺜﻞ ﺳﺎﺧﺘﺎر ﺳﻠﺴﻠﻪ
ﻣﺮاﺗﺒﻲ( .در ﻳﻚ ﻧﻮع رﻛﻮرد ﻃﺒﻌﺎ ﺻﻔﺎﺗﻲ وﺟﻮد دارد ﻛﻪ ﻣﻲﺗﻮاﻧﻨﺪ ﺳﺎده ﺗﻜﺮار ﺷﻮﻧﺪه
)ﺑﺮدار در اﺻﻄﻼح ﺷﺒﻜﻪ اي( ﻳﺎ ﻣﺮﻛﺐ ﺗﻜﺮار ﺷﻮﻧﺪه )ﮔﺮوه ﺗﻜﺮار ﺷﻮﻧﺪه در اﺻﻄﻼح
ﺷﺒﻜﻪ اي( ﻫﻢ ﺑﺎﺷﻨﺪ.
ﻧﻮع ﻣﺠﻤﻮﻋﻪ :در اﺳﺎس ﺑﺮاي ﻧﻤﺎﻳﺶ ارﺗﺒﺎط 1:Nﺑﻴﻦ دو )ﭼﻨﺪ( ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺑﻜﺎر
ﻣﻲ رود .ﻧﻮع ﻣﺠﻤﻮﻋﻪ )ﻛﻪ ﺑﻪ آن ﻣﺠﻤﻮﻋﻪ ﻛﻮداﺳﻴﻞ ﻫﻢ ﻣﻲ ﮔﻮﻳﻨﺪ( ،از ﺳﻪ ﺟﺰء
ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ:
ﻧﺎم ﻣﺠﻤﻮﻋﻪ •
ﻳﻚ ﻧﻮع رﻛﻮرد ﻣﺎﻟﻚ •
ﻳﻚ ﻧﻮع رﻛﻮرد ﻋﻀﻮ •
ﻫﺮ ﭼﻨﺪ ﺍﻳﻦ ﻋﻨﺼﺮ ﺳﺎﺧﺘﺎري در اﺳﺎس ﺑﺮاي ﻧﻤﺎﻳﺶ ارﺗﺒﺎط "ﻳﻚ ﺑﻪ ﭼﻨﺪ" ﺑﻴﻦ دو ﻳﺎ
ﺑﻴﺶ از دو ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺑﻜﺎر ﻣﻲ رود ،اﻣﺎ ﻣﻲ ﺗﻮان ارﺗﺒﺎط "ﭼﻨﺪ ﺑﻪ ﭼﻨﺪ" را ﻫﻢ ﺑﺎ
آن ﻧﻤﺎﻳﺶ داد .در ﺍﻳﻨﺠﺎ ﻻزم اﺳﺖ ﺑﻪ ﻧﻜﺎت زﻳﺮ ﺗﻮﺟﻪ ﮔﺮدد:
www.PDFgozar.com
102ﭘﺎﻳﮕﺎه دادهﻫﺎ
ﻣﺎﻟﻚ ﻳﻚ ﻧﻮع ﻣﺠﻤﻮﻋﻪ ،ﻣﻲﺗﻮاﻧﺪ ﻣﺎﻟﻚ در ﻧﻮع ﻣﺠﻤﻮﻋﻪ دﻳﮕﺮ ﺑﺎﺷﺪ. •
ﻣﺎﻟﻚ ﻳﻚ ﻧﻮع ﻣﺠﻤﻮﻋﻪ ﻣﻲﺗﻮاﻧﺪ ﻋﻀﻮ در ﻧﻮع ﻣﺠﻤﻮﻋﻪ دﻳﮕﺮ ﺑﺎﺷﺪ. •
ﻋﻀﻮ ﻳﻚ ﻧﻮع ﻣﺠﻤﻮﻋﻪ ﻣﻲﺗﻮاﻧﺪ ﻣﺎﻟﻚ در ﻧﻮع ﻣﺠﻤﻮﻋﻪ دﻳﮕﺮ ﺑﺎﺷﺪ. •
ﻋﻀﻮ ﻳﻚ ﻧﻮع ﻣﺠﻤﻮﻋﻪ ﻣﻲﺗﻮاﻧﺪ ﻋﻀﻮ در ﻧﻮع ﻣﺠﻤﻮﻋﻪ دﻳﮕﺮ ﺑﺎﺷﺪ .ﺑﻪ اﻳﻦ •
ﻋﻀﻮ ،ﻋﻀﻮ ﻣﺸﺘﺮك ﻳﺎ ﭘﻴﻮﻧﺪ دﻫﻨﺪه ﻣﻲﮔﻮﺋﻴﻢ و در ﻧﻤﺎﻳﺶ ارﺗﺒﺎط ﺑﺎ ﭼﻨﺪي
N:Mﺑﻜﺎر ﻣﻲآﻳﺪ.
ﻳﻚ ﻧﻮع ﻣﺠﻤﻮﻋﻪ ،ﻣﻲ ﺗﻮاﻧﺪ ﻧﻤﻮﻧﻪ ﻫﺎﻳﻲ داﺷﺘﻪ ﺑﺎﺷﺪ .در ﻫﺮ ﻧﻤﻮﻧﻪ ﻣﺠﻤﻮﻋﻪ ،ﻳﻚ ﻧﻤﻮﻧﻪ
ﻧﻤﻮﻧﻪ ﻣﺘﻤﺎﻳﺰ از رﻛﻮرد ﻧﻮع ﻋﻀﻮ n≥ 0 ﻣﺸﺨﺺ و ﻣﺘﻤﺎﻳﺰ از رﻛﻮرد ﻧﻮع ﻣﺎﻟﻚ و
وﺟﻮد دارد .ﭘﺎﻳﮕﺎه داده ﻫﺎي ﺷﺒﻜﻪ اي در ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ )از دﻳﺪ ﻛﺎرﺑﺮ( ﻣﺠﻤﻮﻋﻪ اي
اﺳﺖ ﻣﻨﻄﻘﺎً "ﻣﻨﻈﻢ" از ﻧﻤﻮﻧﻪ ﻫﺎي ﻳﻚ )ﻳﺎ ﭼﻨﺪ( ﻧﻮع ﻣﺠﻤﻮﻋﻪ.
1
در ﺍﻳﻦ ﻧﻤﻮدار ﻛﻪ ﺑﻪ آن ﻧﻤﻮدار ﺑﺎﺧﻤﻦ ﻫﻢ ﻣﻲ ﮔﻮﻳﻨﺪ ،ﻧﻮع رﻛﻮرد ،DEPTﻣﺎﻟﻚ ،و
DEST ﻧﻮع رﻛﻮرد ،STUDﻋﻀﻮ اﺳﺖ.ﺍﻳﻦ ﻧﻤﻮدار ﻳﻚ ﻧﻮع ﻣﺠﻤﻮﻋﻪ ﻛﻮداﺳﻴﻞ ﺑﻪ ﻧﺎم
را ﻧﻤﺎﻳﺶ ﻣﻲ دﻫﺪ .ﻣﻲ ﺑﻴﻨﻴﻢ ﻛﻪ در ﺣﺎﻟﺖ ارﺗﺒﺎط ﻳﻚ ﺑﻪ ﭼﻨﺪ ،ﺻﻔﺖ )ﺻﻔﺎت( ارﺗﺒﺎط،
ﻓﻴﻠﺪ)ﻫﺎﻳﻲ( از ﻧﻮع رﻛﻮرد ﻋﻀﻮ ﻫﺴﺘﻨﺪ .در ﺷﻜﻞ 13-5ﻧﻤﻮﻧﻪ اي از ﻧﻮع ﻣﺠﻤﻮﻋﻪ
DESTدﻳﺪه ﻣﻲ ﺷﻮد.
ﻳﻚ ﻧﻮع ﻣﺠﻤﻮﻋﻪ ،ﻣﻲﺗﻮاﻧﺪ ﭼﻨﺪ ﻧﻮع رﻛﻮرد ﻋﻀﻮ داﺷﺘﻪ ﺑﺎﺷﺪ ﻛﻪ اﻟﺒﺘﻪ ﻳﻚ ﺣﺎﻟﺖ
ﺧﺎص اﺳﺖ و در ﺳﻴﺴﺘﻢﻫﺎي ﺷﺒﻜﻪاي ﻣﻮﺟﻮد ﭘﺬﻳﺮﻓﺘﻪ ﻧﻴﺴﺖ .رﻛﻮرد ﻧﻮع ﻣﺎﻟﻚ در ﻳﻚ
ﻧﻮع ﻣﺠﻤﻮﻋﻪ ﻣﻲﺗﻮاﻧﺪ ﻣﺎﻟﻚ در ﭼﻨﺪ ﻧﻮع ﻣﺠﻤﻮﻋﻪ ﺑﺎﺷﺪ .ﮔﻮﻧﻪ ﺧﺎﺻﻲ از ﻧﻮع ﻣﺠﻤﻮﻋﻪ
وﺟﻮد دارد ﻛﻪ رﻛﻮرد ﻧﻮع ﻣﺎﻟﻚ ﻧﺪارد و در واﻗﻊ " ﺳﻴﺴﺘﻢ " ﺧﻮد ﻣﺎﻟﻚ آن اﺳﺖ .ﺷﻜﻞ
14-5ﻧﻤﻮﻧﻪاي از رﻛﻮرد ﺗﺤﺖ ﻣﺎﻟﻜﻴﺖ ﺳﻴﺴﺘﻢ را ﻧﺸﺎن ﻣﻲدﻫﺪ.
1. B ac h ma n D i a gr a m
www.PDFgozar.com
104ﭘﺎﻳﮕﺎه دادهﻫﺎ
ارﺗﺒﺎط ﺑﺎزﮔﺸﺘﻲ
ﻧﻮع ﻣﺠﻤﻮﻋﻪ ﻣﻤﻜﻦ اﺳﺖ ﺑﺎزﮔﺸﺘﻲ ﺑﺎﺷﺪ .درﺍﻳﻦ ﮔﻮﻧﻪ ﻧﻮع ﻣﺠﻤﻮﻋﻪ ،ﻳﻚ ﻧﻮع رﻛﻮرد
ﻫﻢ ﻣﺎﻟﻚ اﺳﺖ و ﻫﻢ ﻋﻀﻮ )اﻳﻦ ﻧﻮع ﻣﺠﻤﻮﻋﻪ ﻏﺎﻟﺒﺎ در ﺳﻴﺴﺘﻤﻬﺎي ﺷﺒﻜﻪ اي ﻣﺠﺎز
ﻧﻴﺴﺖ( .ﺷﻜﻞ 15-5ارﺗﺒﺎط ﻣﻮﺟﻮدﻳﺖ Eﺑﺎ ﺧﻮدش را ﻧﺸﺎن ﻣﻲ دﻫﺪ:
ﺑﻮﻳﮋه ﮔﻮﻧﻪﻫﺎي ﻛﺎﻣﻠﺘﺮش ﻣﻲﺗﻮاﻧﺪ ﺳﺎﺧﺘﺎر ﻣﻨﺎﺳﺒﻲ ﺑﺎﺷﺪ و ﻣﻲﺗﻮان ﺍﻳﻦ ﺳﺎﺧﺘﺎر را ﺑﺎ
ﺳﺎﺧﺘﺎر ﺷﺎﺧﺺ و ﻳﺎ ﺳﺎﺧﺘﺎر ﻣﺴﺘﻘﻴﻢ از ﻃﺮﻳﻖ درﻫﻤﺴﺎزي ،ﺗﺮﻛﻴﺐ ﻛﺮد.
ﺷﻜﻞ 16-5ﻧﻤﺎﻳﺶ ارﺗﺒﺎط " ﭼﻨﺪ ﺑﻪ ﭼﻨﺪ " ﺑﻴﻦ داﻧﺸﺠﻮ و درس
106ﭘﺎﻳﮕﺎه دادهﻫﺎ
ﺗﻤﺮﻳﻨﺎت
ﭘﺎﻳﮕﺎه دادهﻫﺎ108
www.PDFgozar.com
ﻓﺼﻞ ۶
ﭘﺎﻳﮕﺎﻩﺩﺍﺩﻩ ﺭﺍﺑﻄﻪﺍﻱ
ﻫﺪف ﻛﻠﻲ
دراﻳﻦ ﻓﺼﻞ اﺑﺘﺪا ﺗﺎرﻳﺨﭽﻪ اي در ﻣﻮرد ﺑﺎﻧﻚ اﻃﻼﻋﺎت راﺑﻄﻪ اي ﺑﻴﺎن ﺷﺪه و ﺳﺎﺧﺘﺎر
داده اي راﺑﻄﻪ اي ﺑﻪ ﺗﻔﺼﻴﻞ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﺪ ﮔﺮﻓﺖ .در اﻳﻦ راﺳﺘﺎ
ﻣﻔﻬﻮم راﺑﻄﻪ ﺷﺮح داده ﺷﺪه و ﺗﻨﺎﻇﺮي ﺑﻴﻦ ﻣﻔﻬﻮم راﺑﻄﻪ و ﺟﺪول ﺑﻴﺎن ﺧﻮاﻫﺪ ﺷﺪ.
ﺳﭙﺲ وﻳﮋﮔﻲﻫﺎي راﺑﻄﻪ ﺷﺮح داده ﺷﺪه و در ﻣﻮرد ﻣﻔﺎﻫﻴﻤﻲ ﻣﺎﻧﻨﺪ ﻛﻠﻴﺪﻫﺎ ،ﻧﻮع راﺑﻄﻪ
و ﻣﻔﻬﻮم دﻳﺪ ﺻﺤﺒﺖ ﺧﻮاﻫﺪ ﺷﺪ .در اداﻣﻪ ﻣﻔﻬﻮم ﻗﻮاﻋﺪ ﺟﺎﻣﻌﻴﺖ ﻣﻄﺮح ﺷﺪه و اﻧﻮاع
ﻗﻮاﻋﺪ ﺟﺎﻣﻌﻴﺖ ﺗﻮﺿﻴﺢ داده ﺧﻮاﻫﻨﺪ ﺷﺪ.
ﻫﺪف رﻓﺘﺎري
دراﻳﻦ ﻓﺼﻞ ﻋﻨﺎوﻳﻦ زﻳﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ:
Relational DB ﺑﺎﻧﻚ اﻃﻼﻋﺎت راﺑﻄﻪاي •
ﺳﺎﺧﺘﺎر دادهاي راﺑﻄﻪاي •
ﺗﻌﺮﻳﻒ راﺑﻄﻪ •
ﺗﻨﺎﻇﺮ ﺑﻴﻦ ﻣﻔﺎﻫﻴﻢ راﺑﻄﻪاي و ﻣﻔﺎﻫﻴﻢ ﺟﺪوﻟﻲ •
ﺗﻌﺮﻳﻒ ﺻﻮري ﺟﺪول •
وﻳﮋﮔﻲﻫﺎي راﺑﻄﻪ •
اﻧﻮاع ﻛﻠﻴﺪ در ﻣﺪل راﺑﻄﻪاي •
اﻧﻮاع راﺑﻄﻪ •
www.PDFgozar.com
110ﭘﺎﻳﮕﺎه دادهﻫﺎ
1
-1ﺑﺎﻧﻚ اﻃﻼﻋﺎت راﺑﻄﻪاي
ﭘﺲ از ﭘﺎﻳﮕﺎه ﻫﺎي داده اي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ و ﺷﺒﻜﻪ اي ،ﻛﻪ ﻫﺮ ﻳﻚ داراي ﺿﻌﻒ ﻫﺎﻳﻲ
ﺑﻮدﻧﺪ ،ﻣﺘﺨﺼﺼﺎن در ﺟﺴﺘﺠﻮي ﻣﺪﻟﻲ ﺑﻮدﻧﺪ ﻛﻪ داراي ﺳﺎﺧﺘﺎر داده اي ﺑﺎ اﻧﺘﺰاع ﻗﻮي
اﺑﺪاع ﮔﺮدﻳﺪ .اﻳﻦ ﻣﺪل داراي E.F.Codd ﺑﺎﺷﺪ .ﻣﺪل راﺑﻄﻪ اي در ﺳﺎل 1970ﺗﻮﺳﻂ
ﺳﺎﺧﺘﺎر دادهاي ﺑﺎ اﻧﺘﺰاع ﻗﻮي ﺑﻮده و اﺳﺎﺳﺎً ﺳﺎﺧﺘﺎر دادهاي در آن ﺑﺮ اﺳﺎس ﻳﻚ
2
ﻣﻔﻬﻮم رﻳﺎﺿﻲ ﺑﻨﺎم راﺑﻄﻪ اﺳﺘﻮار اﺳﺖ .در اﻳﻨﺠﺎ ﻻزم اﺳﺖ ﺑﻪ اﻳﻦ ﻧﻜﺘﻪ ﺗﻮﺟﻪ ﺷﻮد
ﻛﻪ ﻣﻔﻬﻮم راﺑﻄﻪ از دﻳﺪﮔﺎه ﻛﺎد ﺑﺎ ﻣﻔﻬﻮم رﻳﺎﺿﻲ آن ﺗﺎﺣﺪودي ﻣﺘﻔﺎوت اﺳﺖ .در اﻳﻨﺠﺎ
ﺑﺮاي اراﺋﻪ ﺳﺎده ﺗﺮ ﻣﻮﺿﻮﻋﺎت ،در ﻣﺒﺎﺣﺚ اﻳﻦ ﻛﺘﺎب ﻣﻔﻬﻮم راﺑﻄﻪ را ﺑﺎ ﻣﻔﻬﻮم رﻳﺎﺿﻲ
آن ﻣﺴﺎوي در ﻧﻈﺮ ﻣﻲ ﮔﻴﺮﻳﻢ.
)1. R el a t i o n a l D a t a ba s e (D a t a B a n k
2. R el a t i o n
www.PDFgozar.com
ﺳﺘﻮن •
ﻫﺮ ﺟﺪول از ﻧﻈﺮ ﻣﺤﺘﻮاي داده اي ﻣﺠﻤﻮﻋﻪاي اﺳﺖ از ﻧﻤﻮﻧﻪﻫﺎي ﻣﺘﻤﺎﻳﺰ از اﻧﻮاع
ﺳﻄﺮﻫﺎ و ﻫﺮ ﺳﻄﺮ ﻧﻴﺰ ﻣﺠﻤﻮﻋﻪ اي از ﻣﻘﺎدﻳﺮ اﺳﺖ ﻛﻪ ﻫﺮ ﻛﺪام از ﻳﻚ ﻣﺠﻤﻮﻋﻪ
ﺑﺮﮔﺮﻓﺘﻪ ﺷﺪه اﻧﺪ .ﺑﻪ ﻫﺮ ﻳﻚ از ﻋﻨﺎﺻﺮ ﺳﻄﺮ ﻳﻚ ﺳﺘﻮن ﮔﻮﻳﻨﺪ .ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ
در ﺳﺎﺧﺘﺎر ﺟﺪوﻟﻲ ،ﺗﻨﻬﺎ ﻋﻨﺼﺮ ﺳﺎﺧﺘﺎري اﺳﺎﺳﻲ ﻫﻤﻴﻦ ﻣﻔﻬﻮم ﻧﻮع ﺟﺪول اﺳﺖ.
-3ﺗﻌﺮﻳﻒ راﺑﻄﻪ
1-3ﺗﻌﺮﻳﻒ راﺑﻄﻪ از دﻳﺪﮔﺎه ﻛﺎد
n ﺗﻌﺮﻳﻒ ﺷﺪه روي اﻳﻦ R ﻣﺠﻤﻮﻋﻪ ،Sn ،... ،S2 ،S1راﺑﻄﻪ n ﺑﺎ ﻓﺮض وﺟﻮد
1
ﺗﺎﻳﻲ ﻫﺎ )ﻛﻪ ﺑﻪ آن ﺗﺎﭘﻞ ﻣﻲ ﮔﻮﻳﻨﺪ( ﺑﻪ ﻧﺤﻮي ﻛﻪ ﺟﺰء n ﻣﺠﻤﻮﻋﻪ ،ﻣﺠﻤﻮﻋﻪاﻳﺴﺖ از
اول ﻫﺮ nﺗﺎﻳﻲ از ،S1ﺟﺰء دوم از S2و ...ﻣﻘﺪار ﺑﮕﻴﺮد.
ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ Rﻋﺒﺎرﺗﺴﺖ از زﻳﺮﻣﺠﻤﻮﻋﻪاي از ﺿﺮب ﻛﺎرﺗﺰﻳﻦ .S1*S2*…*Snو
2
ﻣﻲﮔﻮﻳﻴﻢ راﺑﻄﻪ Rاز درﺟﻪ nاﺳﺖ .ﻫﺮ ﻳﻚ از ﻣﺠﻤﻮﻋﻪﻫﺎي S2 ،S1و ...ﻣﻴﺪان ﻳﺎ داﻣﻨﻪ
ﻧﺎﻣﻴﺪه ﻣﻲﺷﻮﻧﺪ .داﻣﻨﻪ ،ﻣﺠﻤﻮﻋﻪ ﻣﻘﺎدﻳﺮي اﺳﺖ ﻛﻪ ﻳﻚ ﺻﻔﺖ از راﺑﻄﻪ ﻣﺸﺨﺺ ﻣﻲﺗﻮاﻧﻨﺪ
داﺷﺘﻪ ﺑﺎﺷﻨﺪ.
D1 D2
}D1={1,2
}D2={T,F,V 1 T
1 F
D2 *D1 = R1 1 V
2 T
2 F
2 V
1. T u pl e
2. D o ma i n
www.PDFgozar.com
112ﭘﺎﻳﮕﺎه دادهﻫﺎ
ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع ﻣﺜﺎل ﺑﺎﻻ ﻛﻪ ﻧﺸﺎن دﻫﻨﺪه دو ﻣﺠﻤﻮﻋﻪ و ﺣﺎﺻﻞ ﺿﺮب ﺑﻴﻦ
آن دو اﺳﺖ ،ﺗﻮﺟﻪ ﻛﻨﻴﺪ .ﺷﺎﻳﺪ اﻳﻦ ﻣﺜﺎل ﺗﺎ ﺣﺪودي ﺷﻔﺎﻓﻴﺖ ﻻزم را ﺑﺮاي ﺧﻮاﻧﻨﺪه
ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ .اﻛﻨﻮن ﻣﺜﺎل دﻳﮕﺮي را ﺑﺎ ﺟﺰﺋﻴﺎت ﺑﻴﺸﺘﺮ ﺑﻴﺎن ﻣﻲﻛﻨﻴﻢ .ﻓﺮض ﻛﻨﻴﺪ
ﻣﺠﻤﻮﻋﻪﻫﺎي زﻳﺮ را داﺷﺘﻪ ﺑﺎﺷﻴﻢ:
S1ﻣﺠﻤﻮﻋﻪ ﻣﻘﺎدﻳﺮ ﺷﻤﺎره داﻧﺸﺠﻮﻳﺎن •
S2ﻣﺠﻤﻮﻋﻪ اﺳﺎﻣﻲداﻧﺸﺠﻮﻳﺎن •
S3ﻣﺠﻤﻮﻋﻪ ﻣﻘﺎدﻳﺮ ﺳﻄﻮح ﺗﺤﺼﻴﻠﻲ در داﻧﺸﮕﺎه •
S4ﻣﺠﻤﻮﻋﻪ ﻣﻘﺎدﻳﺮ رﺷﺘﻪﻫﺎي ﺗﺤﺼﻴﻠﻲ •
S5ﻣﺠﻤﻮﻋﻪ ﻣﻘﺎدﻳﺮ ﺷﻤﺎره ﮔﺮوهﻫﺎي آﻣﻮزﺷﻲ •
ﺑﺎ ﭘﻨﺞ ﺻﻔﺖ ﺧﺎﺻﻪ ﻣﺮﺗﺒﻂ ﺑﺎ ﭘﻨﺞ ﻣﺠﻤﻮﻋﻪ ﺑﺎﻻ ،ﻳﻚ راﺑﻄﻪ ﺑﻮده STT در اﻳﻦ ﺻﻮرت
و ﺑﺼﻮرت زﻳﺮ ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮد:
)STT(STID,STNAME,STDEG,STMJR,STDEID
STT
STID STNAME STDEG STMGR STDEID
1 Reza Bs computer V532
2 Hamid ms math V135
… … … … …
2-3ﺗﻌﺮﻳﻒ راﺑﻄﻪ
از دو ﻗﺴﻤﺖ R )ﻧﻪ ﻟﺰوﻣﺎ ﻣﺘﻤﺎﻳﺰ( ،راﺑﻄﻪ Dn ﻣﻴﺪان ،... ،D2 ،D1 n ﺑﺎ ﻓﺮض وﺟﻮد
ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ:
-1ﻣﺠﻤﻮﻋﻪ ﻋﻨﻮان :ﻣﺠﻤﻮﻋﻪاي ﻧﺎﻣﺪار اﺳﺖ از nﺻﻔﺖ ﺑﻪ ﺻﻮرت Ai: Diﻛﻪ در آن
ﻧﺎم ﻣﻴﺪان ﺻﻔﺖ اﺳﺖ .ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ Di ﻧﺎم ﻳﻚ ﺻﻔﺖ اﺳﺖ و ﻫﺮ Ai ﻫﺮ
1
Aiﻫﺎ از ﻳﻜﺪﻳﮕﺮ ﻣﺘﻤﺎﻳﺰ ﻫﺴﺘﻨﺪ .ﺑﻪ اﻳﻦ ﻣﺠﻤﻮﻋﻪ ﺷﻤﺎي راﺑﻄﻪ ﻧﻴﺰ ﻣﻲ ﮔﻮﻳﻨﺪ ﻛﻪ ﺑﻪ
ﺻﻮرت ﺷﻤﺎﺗﻴﻚ ﭼﻨﻴﻦ اﺳﺖ:
1. R el a t i o n Sc h e ma
www.PDFgozar.com
n ﺗﺎﭘﻞ tﺑﻨﺤﻮي ﻛﻪ tﺧﻮد ﻣﺠﻤﻮﻋﻪاﻳﺴﺖ از m -2ﻣﺠﻤﻮﻋﻪ ﺑﺪﻧﻪ :ﻣﺠﻤﻮﻋﻪ اﻳﺴﺖ از
ﻋﻨﺼﺮ ﺑﺼﻮرت Ai: viﻛﻪ در آن viﻣﻘﺪاري اﺳﺖ از ﻧﻮع )ﻣﻴﺪان( .Di
1. E xt e n s i o n
2. R el a t i o n St a t e
3. D e gr e e
4. Ar i t y
5. C ar d i n a l i t y
www.PDFgozar.com
114ﭘﺎﻳﮕﺎه دادهﻫﺎ
اﺷﺘﺒﺎه ﺑﺠﺎي ﻳﻜﺪﻳﮕﺮ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ .در ﺟﺪول 3-6ﺗﻨﺎﻇﺮ ﺑﻴﻦ دو
ﻣﻔﻬﻮم راﺑﻄﻪ و ﺟﺪول ﻧﺸﺎن داده ﺷﺪه اﺳﺖ.
زﻳﺮ ﻣﺠﻤﻮﻋﻪ اي اﺳﺖ از راﺑﻄﻪ Rروي ﻣﻴﺪاﻧﻬﺎي ) Domain (A ), … , Domain (A
1 n
ﻧﻤﺎﻳﺶ ﻣﻲ دﻫﻴﻢ .ﺣﺎل ) . Tupl(Hﻣﺠﻤﻮﻋﻪ ﻫﻤﻪ اﻳﻦ ﮔﻮﻧﻪ راﺑﻄﻪ ﻫﺎ را ﺑﺎ )rel(H
ﻣﻲ ﮔﻮﻳﻴﻢ ﺟﺪول ﻋﺒﺎرﺗﺴﺖ از ﺳﻪ ﺗﺎﻳﻲ:
www.PDFgozar.com
ד) = ( T , H , ρ
-4وﻳﮋﮔﻲﻫﺎي راﺑﻄﻪ
راﺑﻄﻪ ﺑﻪ ﻋﻨﻮان ﺗﻨﻬﺎ ﻋﻨﺼﺮ ﺳﺎﺧﺘﺎري اﺻﻠﻲ در ﻣﺪل راﺑﻄﻪ اي ﺑﺮاي ﻧﻤﺎﻳﺶ اﻧﻮاع
ﻣﻮﺟﻮدﻳﺘﻬﺎ و اﻧﻮاع ارﺗﺒﺎﻃﺎت ﺑﻜﺎر ﻣﻲرود .در واﻗﻊ در ﻣﺪل راﺑﻄﻪ اي ﻫﻢ ﻧﻮع
ﻣﻮﺟﻮدﻳﺖ و ﻫﻢ ﻧﻮع ارﺗﺒﺎط ﺑﺎ ﻣﻔﻬﻮم راﺑﻄﻪ ﻧﻤﺎﻳﺶ داده ﻣﻲ ﺷﻮﻧﺪ و در ﻧﺘﻴﺠﻪ ﻫﻢ
ﻧﻤﻮﻧﻪ ﻣﻮﺟﻮدﻳﺖ و ﻫﻢ ﻧﻤﻮﻧﻪ ارﺗﺒﺎط ﺑﺎ ﻣﻔﻬﻮم ﺗﺎﭘﻞ ﻧﺸﺎن داده ﻣﻲ ﺷﻮﻧﺪ .راﺑﻄﻪ داراي
ﭼﻬﺎر وﻳﮋﮔﻲ ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲﺑﺎﺷﺪ:
راﺑﻄﻪ ﺗﺎﭘﻞ ﺗﻜﺮاري ﻧﺪارد. •
• زﻳﺮا ﺑﺪﻧﻪ راﺑﻄﻪ ﻣﺠﻤﻮﻋﻪ اﺳﺖ و ﻣﺠﻤﻮﻋﻪ ﻧﻤﻲﺗﻮاﻧﺪ ﻋﻨﺼﺮ ﺗﻜﺮاري داﺷﺘﻪ ﺑﺎﺷﺪ.
ﺗﺎﭘﻞﻫﺎ ﻧﻈﻢ ﻧﺪارﻧﺪ. •
• زﻳﺮا ﺑﺪﻧﻪ راﺑﻄﻪ ﻣﺠﻤﻮﻋﻪ اﺳﺖ و ﻣﺠﻤﻮﻋﻪ در ﺣﺎﻟﺖ ﻛﻠﻲ ﻓﺎﻗﺪ ﻧﻈﻢ اﺳﺖ.
ﺻﻔﺎت راﺑﻄﻪ ﻧﻈﻢ ﻣﻜﺎﻧﻲ )از ﭼﭗ ﺑﻪ راﺳﺖ( ﻧﺪارﻧﺪ. •
• زﻳﺮا ﺳﺮآﻳﻨﺪ راﺑﻄﻪ ﻣﺠﻤﻮﻋﻪ اﺳﺖ و ﻣﺠﻤﻮﻋﻪ در ﺣﺎﻟﺖ ﻛﻠﻲ ﻓﺎﻗﺪ ﻧﻈﻢ اﺳﺖ.
ﺗﻤﺎم ﺻﻔﺎت ﺗﻚ ﻣﻘﺪاري )ﺗﺠﺰﻳﻪ ﻧﺸﺪﻧﻲ( ﻫﺴﺘﻨﺪ. •
• زﻳﺮا در ﻧﻤﺎﻳﺶ ﺟﺪوﻟﻲ راﺑﻄﻪ ،در ﺗﻘﺎﻃﻊ ﻫﺮ ﺳﻄﺮ و ﺳﺘﻮن ،ﺑﺎﻳﺪ ﻳﻚ ﻣﻘﺪار
وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ .ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ در ﻫﺮ ﺗﺎﭘﻞ ،دﻗﻴﻘﺎ ﻳﻚ ﻣﻘﺪار ﺑﺮاي ﻫﺮ ﺻﻔﺖ
وﺟﻮد دارد.
S در اداﻣﻪ ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع ﻣﺜﺎﻟﻲ اراﺋﻪ ﺷﺪه اﺳﺖ .در اﻳﻦ ﻣﺜﺎل راﺑﻄﻪ اي ﺑﻨﺎم
ﻧﺸﺎن داده ﺷﺪه اﺳﺖ.
ﻣﺜﺎل :1راﺑﻄﻪ Sرا ﻛﻪ ﺑﻪ ﺻﻮرت ﺟﺪول 4-6اﺳﺖ در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ.
116ﭘﺎﻳﮕﺎه دادهﻫﺎ
2
2-5ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ
از K ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ اﻣﻜﺎﻧﻲ اﺳﺖ ﺑﺮاي ارﺟﺎع ﺑﻪ "ﺗﻚ ﺗﺎﭘﻞ" در راﺑﻄﻪ .ﻣﺠﻤﻌﻪ ﺻﻔﺎت
1. Su p e r ke y
2. C a nd i d a t e
www.PDFgozar.com
راﺑﻄﻪ ،Rﻳﻚ ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﻣﻲﺑﺎﺷﺪ )ﻣﺎﻧﻨﺪ S#و(SNAMEاﮔﺮ داراي ﺧﻮاص زﻳﺮ ﺑﺎﺷﻨﺪ:
ﺧﺎﺻﻴﺖ ﻣﻨﺤﺼﺮ ﺑﻔﺮد ﺑﻮدن )ﻳﻜﺘﺎﻳﻲ ﻣﻘﺪار(: •
ﻫﻴﭻ دو tupleﻣﺠﺰاﺋﻲ از راﺑﻄﻪ Rداراي ﻣﻘﺪار ﻳﻜﺴﺎﻧﻲ ﺑﺮاي Kﻧﺒﺎﺷﻨﺪ).ﺑﻪ ﻃﻮر
ﻫﻢ city ،status ﺗﻜﺮار دارد، وﻟﻲCITY ﻳﻜﻲ ﻧﻴﺴﺖ S# ﻣﺜﺎل ﻫﻴﭻ دو ﺳﻄﺮ
ﻧﻤﻲﺗﻮاﻧﻨﺪ ﺑﺎ ﻫﻢ ﺑﺎ ﺷﻨﺪ زﻳﺮا دو ﻓﺮوﺷﻨﺪه ،در ﻟﻨﺪن 20ﻫﺴﺘﻨﺪ(.
ﺧﺎﺻﻴﺖ ﻏﻴﺮ ﻛﺎﻫﺸﻲ):(minimal •
وﺟﻮد ﻧﺪارد ﻛﻪ داراي ﺧﺎﺻﻴﺖ ﻣﻨﺤﺼﺮ ﺑﻔﺮد K ﻫﻴﭻ زﻳﺮ ﻣﺠﻤﻮﻋﻪ ﻣﻨﺎﺳﺒﻲ از
ﺑﺎﺷﺪ.
ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ ﻫﺮ زﻳﺮ ﻣﺠﻤﻮﻋﻪ از ﻣﺠﻤﻮﻋﻪ ﻋﻨﻮان راﺑﻄﻪ ﻛﻪ دو ﺧﺎﺻﻴﺖ ﺑﺎﻻ را داﺷﺘﻪ
ﺑﺎﺷﺪ ،ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ راﺑﻄﻪ اﺳﺖ.
s# ﻛﻠﻴﺪ اﻧﺤﺼﺎري ﻫﺴﺘﻨﺪ .ﺧﺎﺻﻴﺖ دوم را ﻧﺪارﻧﺪ زﻳﺮا sname در ﻣﺜﺎل ﻓﻮق s#و
ﺑﻪ ﺗﻨﻬﺎﻳﻲ ﻫﻢ ﻣﻲﺗﻮاﻧﺪ s# ﺑﻪ ﺗﻨﻬﺎﻳﻲ ﻣﻨﺤﺼﺮ ﺑﻔﺮد اﺳﺖ و ﻣﻲﺗﻮان اﻳﻨﻬﺎ رو ﺷﻜﺴﺖ ﻣﺜﻼ
ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﺑﺸﻮد).ﻫﺮ ﭼﻴﺰي را ﻧﻤﻲﺗﻮان ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﺑﻪ ﺣﺴﺎب آورﻳﻢ زﻳﺮا ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ
ﻧﺒﺎﻳﺪ ﺑﺸﻜﻨﺪ(.
ﺗﻮﺟﻪ:ﻫﺮ راﺑﻄﻪ ﺣﺪاﻗﻞ داراي ﻳﻚ ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﻣﻲ ﺑﺎﺷﺪ )ﻣﻤﻜﻦ اﺳﺖ ﺗﻜﻲ ﺑﺎﺷﺪ ﻳﺎ
دو ﺻﻔﺖ و ﻳﺎ.(...
1
3-5ﻛﻠﻴﺪ اﺻﻠﻲ
ﻳﻜﻲ از ﻛﻠﻴﺪﻫﺎي ﻛﺎﻧﺪﻳﺪ راﺑﻄﻪ ﻛﻪ ﺷﺮاﻳﻂ ذﻳﻞ را داﺷﺘﻪ ﺑﺎﺷﺪ:
ﺷﻨﺎﺳﺎﻳﻲ ﻛﻨﻨﺪه ﻧﻮع ﻣﻮﺟﻮدﻳﺖ )ﺗﻚ ﺗﺎﭘﻞ( در راﺑﻄﻪ ﺑﺎﺷﺪ .ﻣﺎﻧﻨﺪ ﺷﻤﺎره •
داﻧﺸﺠﻮﻳﻲ ﺑﺮاي ﻫﺮ داﻧﺸﺠﻮ.
از ﻧﻈﺮ ﺳﺎﻳﺰ داراي ﻃﻮل ﻛﻮﺗﺎه ﺗﺮ ﺑﺎﺷﺪ .ﺑﺪﻳﻦ ﻣﻌﻨﻲ ﻛﻪ ﻣﺜﻼ ﺑﻴﻦ دو ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ •
ﻛﻪ ﻳﻜﻲ از ﻧﻮع رﺷﺘﻪ 20ﺗﺎﻳﻲ و دﻳﮕﺮي ﻳﻚ ﻋﺪد 4ﺑﺎﻳﺘﻲ اﺳﺖ ،ﻛﻠﻴﺪي ﻛﻪ
داراي ﻧﻮع ﻋﺪد 4ﺑﺎﻳﺘﻲ اﺳﺖ ،ﺑﺮاي ﻛﻠﻴﺪ اﺻﻠﻲ ﺑﻮدن ﺑﻬﺘﺮ اﺳﺖ.
1
4-5ﻛﻠﻴﺪ ﺑﺪﻳﻞ
1. P ri ma r y K e y
www.PDFgozar.com
118ﭘﺎﻳﮕﺎه دادهﻫﺎ
2
5-5ﻛﻠﻴﺪ ﺧﺎرﺟﻲ
ﻛﻪ ﻫﺮ R2 را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ .ﻫﺮ زﻳﺮ ﻣﺠﻤﻮﻋﻪ از ﺻﻔﺎت راﺑﻄﻪ R2 و R1 دو راﺑﻄﻪ
ﺑﺮاﺑﺮ ﺑﺎﺷﺪ ،ﻛﻠﻴﺪ ﺧﺎرﺟﻲ در راﺑﻄﻪ R1 ﻣﻘﺪار ﻣﻌﻠﻮﻣﺶ ﺑﺎ ﻳﻚ ﻣﻘﺪار از ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ
R2اﺳﺖ.
ﻧﻘﺶ ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ﺑﺮاي ﻧﻤﺎﻳﺶ ارﺗﺒﺎﻃﺎت ﺑﻴﻦ اﻧﻮاع ﻣﻮﺟﻮدﻳﺖ ﻫﺎ )و در ﻧﺘﻴﺠﻪ ﺑﻴﻦ
ﻧﻤﻮﻧﻪ ﻫﺎي آﻧﻬﺎ( ﺑﻜﺎر ﻣﻲرود .ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮﻋﺎت ﻛﻠﻴﺪ ﺑﻪ ﻣﺜﺎل زﻳﺮ ﺗﻮﺟﻪ
ﻓﺮﻣﺎﻳﻴﺪ:
ﻣﻲ ﺗﻮاﻧﻨﺪ ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﺑﺎﺷﻨﺪ ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪي ﻛﻪ ﻣﻲ ﺗﻮاﻧﺪ ﻛﻠﻴﺪ اﺻﻠﻲ status و C#
ﺑﺸﻮد وﻟﻲ ﺑﻪ ﺗﻨﻬﺎﻳﻲ ﻧﻤﻲ ﺗﻮاﻧﻨﺪ ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﺑﺎﺷﻨﺪ.
1. Al t e r n a t e K e y
2. F o re i gn ke y
www.PDFgozar.com
ﺟﺪول ﻛﺎﻻ
ﺟﺪول 7-6ﺟﺪول ﻛﺎﻻ
ﻧﻜﺘﻪ ،C# :ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ﺑﺮاي ارﺗﺒﺎط ﺑﻴﻦ دو ﺟﺪول ﻛﺎﻻ و ﻓﺮوﺷﻨﺪه ﻣﻲ ﺑﺎﺷﺪ.
ﻧﻜﺘﻪ ،C# :در ﺟﺪول ﻓﺮوﺷﻨﺪه ﻛﻠﻴﺪ ﺧﺎرﺟﻲ و در ﺟﺪول ﻛﺎﻻ ﻛﻠﻴﺪ اﺻﻠﻲ ﻣﻲﺑﺎﺷﺪ.
tell# ﻧﻜﺘﻪ :اﮔﺮ ﺻﻔﺘﻲ ﺑﺘﻮاﻧﺪ ﻣﻘﺪار ﺗﻬﻲ ) (nullﺑﮕﻴﺮد ،ﻧﻤﻲ ﺗﻮاﻧﺪ ﻛﻠﻴﺪ ﺑﺎﺷﺪ )ﻣﺎﻧﻨﺪ
)ﺷﻤﺎره ﺗﻠﻔﻦ((.
از وﻳﮋﮔﻲ ﻫﺎي RDBMSدر ﭘﺎﻳﮕﺎه داده راﺑﻄﻪ اي در ﻣﻮرد ﺟﺪاول اﻳﻦ اﺳﺖ ﻛﻪ:
دادهﻫﺎ ﺗﻮﺳﻂ ﻛﺎرﺑﺮ و ﺑﻪ ﺻﻮرت ﺟﺪاول درﻳﺎﻓﺖ ﻣﻲﺷﻮﻧﺪ. •
ﻋﻤﻠﻜﺮدﻫﺎﻳﻲ ﻛﻪ ﻛﺎرﺑﺮ ﻣﻲﺗﻮاﻧﺪ از آﻧﻬﺎ اﺳﺘﻔﺎده ﻧﻤﺎﻳﺪ ﻛﻪ آﻧﻬﺎ ﺑﻪ ﻛﺎرﺑﺮ اﻳﻦ اﺟﺎزه •
را ﻣﻲدﻫﻨﺪ ﺗﺎ ﺑﺘﻮاﻧﻨﺪ ﺟﺪاول ﺟﺪﻳﺪي را اﻳﺠﺎد ﻧﻤﺎﻳﻨﺪ.
EMP ﻛﺎرﻣﻨﺪ
www.PDFgozar.com
120ﭘﺎﻳﮕﺎه دادهﻫﺎ
در ﻧﺘﻴﺠﻪ ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﻋﺒﺎرت ﺑﺎﻻ ﺑﻪ ﺻﻮرت ﺟﺪول زﻳﺮ ﺧﻮاﻫﺪ ﺑﻮد.
ﻫﻤﺎﻧﮕﻮﻧﻪ ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲﺷﻮد دادهﻫﺎ ﺑﻪ ﺻﻮرت ﺟﺪول وارد ﺳﻴﺴﺘﻢ ﺷﺪهاﻧﺪ و ﮔﺰارش
ﺧﻮاﺳﺘﻪ ﺷﺪه ﻧﻴﺰ ﺑﺮ اﺳﺎس ﻳﻚ ﺳﺮي از ﻋﻤﻠﮕﺮﻫﺎي اﺳﺘﺎﻧﺪارد اراﺋﻪ ﺷﺪه و ﻧﺘﻴﺠﻪ ﺑﻪ
ﺻﻮرت ﺟﺪول )ﺑﺮ اﺳﺎس ﻧﻮع ﻋﻤﻠﮕﺮ( ﮔﺰارش ﻣﻲﮔﺮدد.
-6اﻧﻮاع راﺑﻄﻪ
اﻧﻮاع راﺑﻄﻪ ﻋﺒﺎرﺗﻨﺪ از
2
راﺑﻄﻪ ﻧﺎﻣﺪار
راﺑﻄﻪ اﻳﺴﺖ ﻛﻪ ﺑﺎ ﻳﻚ ﻧﺎم ﺑﻪ ﺳﻴﺴﺘﻢ ﻣﻌﺮﻓﻲ ﺷﺪه ﺑﺎﺷﺪ.
3
راﺑﻄﻪ ﻣﺒﻨﺎ
ﻧﻮﻋﻲ راﺑﻄﻪ ﻧﺎﻣﺪار اﺳﺖ ﻛﻪ اﺳﺘﻘﻼل وﺟﻮدي دارد و ﻣﺸﺘﻖ از راﺑﻄﻪﻫﺎي دﻳﮕﺮ ﻧﻴﺴﺖ
و داده ﻫﺎي ذﺧﻴﺮه ﺷﺪه ﻣﺘﻨﺎﻇﺮ دارد.
4
راﺑﻄﻪ ﻣﺸﺘﻖ
راﺑﻄﻪ اﻳﺴﺖ ﻛﻪ ﺑﻪ ﻛﻤﻚ ﻳﻚ ﻋﺒﺎرت راﺑﻄﻪ اي ﺑﺮ ﺣﺴﺐ راﺑﻄﻪ ﻫﺎي ﻧﺎﻣﺪار دﻳﮕﺮ و
ﻧﻬﺎﻳﺘﺎ ﺑﺮﺣﺴﺐ راﺑﻄﻪ ﻫﺎي ﻣﺒﻨﺎ ﺗﻌﺮﻳﻒ ﻣﻲﺷﻮد.
ﻣﻔﻬﻮم دﻳﺪ
5
ﻧﻮﻋﻲ راﺑﻄﻪ ﻧﺎﻣﺪار ﻛﻪ ﻣﺸﺘﻖ از راﺑﻄﻪﻫﺎي دﻳﮕﺮ اﺳﺖ و ﻣﺎﻫﻴﺘﺎ راﺑﻄﻪ اي ﻣﺠﺎزي
اﺳﺖ ،ﻳﻌﻨﻲ داده ﻫﺎي ذﺧﻴﺮه ﺷﺪه ﺧﺎص ﺧﻮد را ﻧﺪارد.
اﻧﻮاع دﻳﮕﺮي از راﺑﻄﻪﻫﺎ در ﻛﺘﺎﺑﻬﺎي دﻳﮕﺮ ﻧﺎﻣﺒﺮده ﺷﺪهاﻧﺪ ﻛﻪ در ذﻳﻞ ﺑﻪ آﻧﻬﺎ اﺷﺎره
ﻣﻲﮔﺮدد .ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ رواﺑﻂ ﻣﺬﻛﻮر ﺣﺎﻟﺘﻬﺎﻳﻲ از رواﺑﻂ ذﻛﺮ ﺷﺪه در ﺑﺎﻻ ﻫﺴﺘﻨﺪ:
6
راﺑﻄﻪ ﻟﺤﻈﻪاي •
7
راﺑﻄﻪ ﻋﺒﺎرﺗﻲ •
8
راﺑﻄﻪ ﻧﺘﻴﺠﻪ ﭘﺮﺳﺶ •
1. N e s t e d E x p r e s s i o n
2. N a me d R el a t i o n
3. B a se R el a t i o n
4. D er i ve d R e l a t i o n
5. V ir t u a l R e l a t i o n
6. Sn a p s h o t
7. E x pr e s s i o n R e l a t io n
8. Q u er y R es u l t R e l a t i o n
www.PDFgozar.com
122ﭘﺎﻳﮕﺎه دادهﻫﺎ
1
راﺑﻄﻪ ﺑﻴﻨﺎﺑﻴﻨﻲ •
2
راﺑﻄﻪ ذﺧﻴﺮه ﺷﺪه •
راﺑﻄﻪ
راﺑﻄﻪ ﻋﺒﺎرﺗﻲ
1. In t e r me d i a t e R e la t i o n
2. St o r e d Re l a t i o n
3. In t e gr i t y R u l e s
4. Se ma n t i c R u l e s
5. In t e gr i t y C o n s t r ai n t s
www.PDFgozar.com
ﺑﺮاي ﻛﻨﺘﺮل و ﺗﻀﻤﻴﻦ ﺟﺎﻣﻌﻴﺖ ،ﻗﻮاﻋﺪي ﻻزم اﺳﺖ ﺗﺎ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﺑﺘﻮاﻧﺪ ﺑﺮ
اﺳﺎس آﻧﻬﺎ ﻋﻤﻞ ﻛﺮده و ﺑﺎﻋﺚ اﻧﻄﺒﺎق ﻣﺤﺘﻮاي ﭘﺎﻳﮕﺎه داده ﺑﺎ واﻗﻌﻴﺎت ﺑﺎﺷﺪ .اﻳﻦ
ﻗﻮاﻋﺪرا ﻗﻮاﻋﺪ ﺟﺎﻣﻌﻴﺘﻲ و ﻳﺎ ﻣﺤﺪودﻳﺖﻫﺎي ﺟﺎﻣﻌﻴﺘﻲ ﮔﻮﻳﻨﺪ.
1-1-7ﻗﻮاﻋﺪ ﻛﺎرﺑﺮي
ﻗﻮاﻋﺪ ﻛﺎرﺑﺮي ﻛﻪ ﮔﺎه ﺑﻪ آﻧﻬﺎ ﻗﻮاﻋﺪ ﻣﺤﻴﻄﻲ ﻳﺎ ﻗﻮاﻋﺪ واﺑﺴﺘﻪ ﺑﻪ داده ﻧﻴﺰ ﻣﻲ ﮔﻮﻳﻨﺪ،
ﻗﻮاﻋﺪي ﻫﺴﺘﻨﺪ ﻛﻪ ﺗﻮﺳﻂ ﻛﺎرﺑﺮ ﻣﺠﺎز و ﺑﺮاي ﻳﻚ ﭘﺎﻳﮕﺎه داده ﺧﺎص ﺗﻌﺮﻳﻒ ﻣﻲﺷﻮﻧﺪ.
اﻳﻦ ﻗﻮاﻋﺪ واﺑﺴﺘﻪ ﺑﻪ واﻗﻌﻴﺎت ﻣﺤﻴﻂ ﻫﺴﺘﻨﺪ و در ﺑﻌﻀﻲ ﻛﺘﺐ ﺑﻪ آﻧﻬﺎ ﻣﺤﺪودﻳﺖﻫﺎي
1. U se r D ef i n e d R u l e s
2. M e ta R u le s
www.PDFgozar.com
124ﭘﺎﻳﮕﺎه دادهﻫﺎ
1
ﺟﺎﻣﻌﻴﺘﻲ ﻣﻌﻨﺎﻳﻲ ﻧﻴﺰ ﻣﻲ ﮔﻮﻳﻨﺪ .ﻗﻮاﻋﺪ ﻛﺎرﺑﺮي در ﻣﺪل راﺑﻄﻪ اي ﺑﻪ ﭼﻬﺎر دﺳﺘﻪ ﺑﻪ
ﺷﺮح زﻳﺮ ﺗﻘﺴﻴﻢ ﻣﻲ ﺷﻮﻧﺪ:
2
ﻣﺤﺪودﻳﺖ ﻣﻴﺪاﻧﻲ :ﻣﺤﺪودﻳﺘﻲ اﺳﺖ ﻧﺎﻇﺮ ﺑﺮ ﻣﻴﺪان ﻫﺮ ﺻﻔﺖ ﺧﺎﺻﻪ و ﻣﻘﺎدﻳﺮ •
ﻣﻲﻛﻨﺪ.
4
ﻣﺤﺪودﻳﺖ راﺑﻄﻪاي :ﻣﺤﺪودﻳﺘﻲ اﺳﺖ ﻧﺎﻇﺮ ﺑﺮ ﻳﻚ راﺑﻄﻪ و ﻣﻘﺎدﻳﺮ ﻣﺠﺎز ﻳﻚ •
2-1-7ﻣﺘﺎ ﻗﻮاﻋﺪ
ﻣﺘﺎ ﻗﻮاﻋﺪ ﻗﻮاﻋﺪي ﻫﺴﺘﻨﺪ ﻛﻪ ﺑﺎﻳﺪ ﺗﻮﺳﻂ ﻫﺮ ﺳﻴﺴﺘﻢ راﺑﻄﻪ در ﻫﺮ ﭘﺎﻳﮕﺎه داده راﺑﻄﻪ اي
اﻋﻤﺎل ﮔﺮدﻧﺪ .ﻟﺬا در ﺑﻌﻀﻲ ﻛﺘﺐ ﺑﺪاﻧﻬﺎ ﻗﻮاﻋﺪ ﻋﺎم ﻧﻴﺰ ﻣﻲ ﮔﻮﻳﻨﺪ .اﻳﻦ ﻗﻮاﻋﺪ ﺑﻪ دو
ﮔﺮوه ﻛﻠﻲ ﺑﻪ ﺷﺮح ذﻳﻞ ﺗﻘﺴﻴﻢ ﻣﻲ ﺷﻮﻧﺪ:
6
ﻗﺎﻋﺪه ﺟﺎﻣﻌﻴﺖ ﻣﻮﺟﻮدﻳﺘﻲ •
7
ﻗﺎﻋﺪه ﺟﺎﻣﻌﻴﺖ ارﺟﺎﻋﻲ •
دﻟﻴﻞ ﺗﻮﺟﻴﻪ ﻛﻨﻨﺪه اﻳﻦ ﻗﺎﻋﺪه اﻳﻦ اﺳﺖ ﻛﻪ ﻫﺮ ﻣﻘﺪار ﻳﻚ ﻛﻠﻴﺪ اﺻﻠﻲ ،در واﻗﻊ ﺷﻨﺎﺳﻪ
1. Se ma n t i c In t e gr i t y C o n s t r a i n t
2. D o ma i n C on s t r a i n t
3. At t r i b u t e C o n s t r ai n t
4. R el a t i o n C o n s t r a in t
5. D at a b a s e C o n s t r a in t
6. E nt i t y In t e gr i t y R u l e
7. R ef e r e n t i a l In t e gr i t y R u l e
www.PDFgozar.com
آن ﺗﺎﭘﻞ در راﺑﻄﻪ اﺳﺖ و ﻋﺎﻣﻞ ﺗﻤﻴﻴﺰ ﻧﻤﻮﻧﻪ ﻫﺎي ﻣﻮﺟﻮدﻳﺖ )ﺗﺎﭘﻞ ﻫﺎ( در راﺑﻄﻪ اﺳﺖ
و ﺑﺪﻳﻬﻲ اﺳﺖ ﻛﻪ ﻋﺎﻣﻞ ﺗﻤﻴﻴﺰ ﺧﻮد ﻧﻤﻲ ﺗﻮاﻧﺪ ﻣﻘﺪار ﻫﻴﭻ ﻳﺎ ﻧﺎﺷﻨﺎﺧﺘﻪ داﺷﺘﻪ ﺑﺎﺷﺪ.
دﻟﻴﻞ ﺗﻮﺟﻴﻪ اﻳﻦ ﻗﺎﻋﺪه اﻳﻦ اﺳﺖ ﻛﻪ ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ﻋﺎﻣﻞ ارﺟﺎع از ﻳﻚ ﻧﻤﻮﻧﻪ
ﻣﻮﺟﻮدﻳﺖ ﺑﻪ ﻧﻤﻮﻧﻪ ﻣﻮﺟﻮدﻳﺖ دﻳﮕﺮ اﺳﺖ و ﺑﺪﻳﻬﻲ اﺳﺖ ﻛﻪ ﻧﻤﻲ ﺗﻮان ﺑﻪ ﻧﻤﻮﻧﻪ
ﻣﻮﺟﻮدﻳﺖ ﻧﺎﻣﻮﺟﻮد ارﺟﺎع داد.
ﺗﻤﺮﻳﻨﺎت
126ﭘﺎﻳﮕﺎه دادهﻫﺎ
ﻓﺼﻞ ۷
ﻫﺪف ﻛﻠﻲ
در اﻳﻦ ﻓﺼﻞ اﺑﺘﺪا ﺗﻌﺮﻳﻔﻲ از ﭘﺎﻳﮕﺎه داده راﺑﻄﻪ اي ﺑﻴﺎن ﺷﺪه و ﺳﭙﺲ ﻣﺒﺤﺚ ﺟﺒﺮ
راﺑﻄﻪ اي ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﺪ ﮔﺮﻓﺖ .در اﻳﻦ راﺳﺘﺎ در اﺑﺘﺪا ﻋﻤﻠﮕﺮﻫﺎي
ﺟﺒﺮ راﺑﻄﻪ اي ﻣﻌﺮﻓﻲ ﺷﺪه و ﺗﻮاﻧﺎﻳﻲ اﻳﻦ ﻋﻤﻠﮕﺮﻫﺎ در اﻟﺤﺎق و ﺟﺪاﺳﺎزي اﻃﻼﻋﺎت و
ﻧﻤﺎﻳﺶ آﻧﻬﺎ ﺷﺮح داده ﺧﻮاﻫﺪ ﺷﺪ .ﺳﭙﺲ ﻋﻤﻠﮕﺮﻫﺎي ﻛﺎر ﺑﺮ روي دادهﻫﺎ ﻣﻄﺮح ﺷﺪه
و اﻧﻮاع اﻳﻦ ﻋﻤﻠﮕﺮﻫﺎ ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻨﺪ ﮔﺮﻓﺖ .در ﺧﺎﺗﻤﻪ ﻧﻴﺰ ﻣﺮوري
ﻣﺨﺘﺼﺮ ﺑﺮ روي ﻣﺒﺤﺚ ﺑﻬﻴﻨﻪ ﺳﺎزي ﻋﺒﺎرات ﺟﺴﺘﺠﻮ در ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺧﻮاﻫﻴﻢ داﺷﺖ.
ﻫﺪف رﻓﺘﺎري
در اﻳﻦ ﻓﺼﻞ ﻋﻨﺎوﻳﻦ زﻳﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ:
ﺗﻌﺮﻳﻒ ﭘﺎﻳﮕﺎهداده راﺑﻄﻪاي •
ﺟﺒﺮ راﺑﻄﻪاي •
ﻋﻤﻠﮕﺮﻫﺎي ﺟﺒﺮ راﺑﻄﻪاي •
ﻋﻤﻠﮕﺮ ﮔﺰﻳﻨﺶ •
ﻋﻤﻠﮕﺮ ﭘﺮﺗﻮ •
ﻋﻤﻠﮕﺮ ﺗﻐﻴﻴﺮ ﻧﺎم •
ﻋﻤﻠﮕﺮ ﺟﺎﻳﮕﺰﻳﻨﻲ •
ﻋﻤﻠﮕﺮﻫﺎي ﻣﺠﻤﻮﻋﻪ •
www.PDFgozar.com
128ﭘﺎﻳﮕﺎه دادهﻫﺎ
-1ﺗﻌﺮﻳﻒ
ﭘﺎﻳﮕﺎهداده راﺑﻄﻪ اي از دﻳﺪ ﻛﺎرﺑﺮ در ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ ﻣﺠﻤﻮﻋﻪ اي از راﺑﻄﻪ ﻫﺎي ﻧﺮﻣﺎل
اﺳﺖ .ﺑﺪﻳﻬﻲ اﺳﺖ ﻛﻪ ﺟﻬﺖ اﻧﺠﺎم ﻋﻤﻠﻴﺎت در اﻳﻦ ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ ﻧﻴﺎز ﺑﻪ ﻳﻚ ﻣﺪل
رﻳﺎﺿﻲ اﺳﺖ .ﭘﺲ ﻛﺎرﺑﺮ ﺗﻌﺮﻳﻒ ﺷﺪه در ﭘﺎﻳﮕﺎه داده ﻧﻴﺎز ﺑﻪ ﻳﻚ ﻣﺪل رﻳﺎﺿﻲ ،ﻛﻪ
ﻣﻲ ﺗﻮاﻧﺪ ﻣﺠﻤﻮﻋﻪ اي از ﻋﻤﻠﮕﺮﻫﺎي ﺻﻮري ﺑﺎﺷﺪ ،دارد .اﻳﻦ اﻣﻜﺎﻧﺎت در واﻗﻊ ﺑﺨﺸﻲ
از ﻣﺪل راﺑﻄﻪ اي ﺑﻮده و ﻃﺒﻌﺎ ﺑﺪون وﺟﻮد آﻧﻬﺎ ،ﻣﺪل راﺑﻄﻪ اي ﻛﺎﻣﻞ ﻧﺨﻮاﻫﺪ ﺑﻮد .ﺑﺮاي
اﻳﻦ ﻣﻨﻈﻮر اﻣﻜﺎﻧﺎت زﻳﺮ وﺟﻮد دارد:
1
ﺟﺒﺮ راﺑﻄﻪاي •
ﺣﺴﺎب راﺑﻄﻪاي •
2
ﻣﺤﺎﺳﺒﺎت راﺑﻄﻪاي داﻣﻨﻪ •
3
ﻣﺤﺎﺳﺒﺎت راﺑﻄﻪاي ﺳﻄﺮي •
ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ در ﺗﺌﻮري راﺑﻄﻪ ﻫﺎ ،ﻫﺮ ﺳﻪ ﺗﺌﻮري ﻓﻮق ارزش ﻳﻜﺴﺎﻧﻲ دارﻧﺪ.
در اداﻣﻪ ﺟﺒﺮ راﺑﻄﻪ اي ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮد.
1. R el a t i o n a l a l ge b r a
2. C al c u l a t e R e l a t i o n a l D o ma i n
3. C al c u l a t e R e l a t i o n a l T u p l e
www.PDFgozar.com
و ﺗﻌﺪادي set در ﺑﻌﻀﻲ از ﻛﺘﺐ ﺗﻌﺪادي از اﻳﻦ ﻋﻤﻠﮕﺮﻫﺎ ﺗﺤﺖ ﻋﻨﻮان ﻋﻤﻠﮕﺮ
دﻳﮕﺮ ﺗﺤﺖ ﻋﻨﻮان ﻋﻤﻠﮕﺮ joinﻣﻌﺮﻓﻲ ﺷﺪهاﻧﺪ ﻛﻪ اﻳﻦ دو ﮔﺮوه ﻧﻴﺰ ﺗﻮﺿﻴﺢ داده ﺧﻮاﻫﻨﺪ
ﺷﺪ .ﻋﻤﻠﮕﺮﻫﺎي ﺟﺒﺮ راﺑﻄﻪاي در راﺑﻄﻪ ﺑﺎﻻ ﺑﻪ ﺗﺮﺗﻴﺐ ﻋﺒﺎرﺗﻨﺪ از:
1
ﻋﻤﻠﮕﺮ ﮔﺰﻳﻨﺶ =Б •
2
∏= ﻋﻤﻠﮕﺮ ﭘﺮﺗﻮ •
3
ﻋﻤﻠﮕﺮ ﺗﻐﻴﻴﺮ ﻧﺎم = ℓ •
ﻋﻤﻠﮕﺮ ﺟﺎﻳﮕﺰﻳﻨﻲ = •
ﻋﻤﻠﮕﺮ ﻣﺠﻤﻮﻋﻪ ،اﻳﻦ ﻋﻤﻠﮕﺮﻫﺎ ﺑﺮ روي ﻣﺠﻤﻮﻋﻪاي از راﺑﻄﻪﻫﺎ ﻋﻤﻞ = Set •
ﻣﻲﻛﻨﻨﺪ و ﺷﺎﻣﻞ ﻋﻤﻠﮕﺮﻫﺎي
4
ﺿﺮب دﻛﺎرﺗﻲ ) ( X •
5
اﺟﺘﻤﺎع )( U •
6
اﺷﺘﺮاك ) ∩ ( •
7
ﺗﻔﺎﺿﻞ )(- •
ﺗﻘﺴﻴﻢ ) ÷ ( •
1. s e l e c t
2. p ro j e c t
3. r en a me
4. C ar t e s i a n p r o d u c t
5. u ni o n
6. i nt e r s e c t
7. d if f e r e n c e
www.PDFgozar.com
130ﭘﺎﻳﮕﺎه دادهﻫﺎ
ﭘﺮداﺧﺖ. در اداﻣﻪ ﺑﺎ ذﻛﺮ ﻣﺜﺎل ﻫﺎﻳﻲ ﺑﻪ ﺷﺮح ﻫﺮ ﻳﻚ از اﻳﻦ ﻋﻤﻠﮕﺮﻫﺎ ﺧﻮاﻫﻴﻢ
ﻧﺎم ﺗﻠﻔﻦ
اﻟﺤﺎق )(Join
داراي اﻧﻮاع ﻣﺨﺘﻠﻒ ﺑﻮده و راﺑﻄﻪ اي را ﺑﺮ ﻣﻲ ﮔﺮداﻧﺪ ﻛﻪ ﺷﺎﻣﻞ ﺗﻤﺎم Tupleﻫﺎي
ﺗﺮﻛﻴﺐ ﺷﺪه از دو ﺟﺪول ﻣﻲ ﺑﺎﺷﺪ .ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع در اداﻣﻪ ﻣﺜﺎﻟﻲ از
ﻋﻤﻠﮕﺮﻫﺎي اﻟﺤﺎﻗﻲ اراﺋﻪ ﺷﺪه اﺳﺖ.
1. N at u r a l J o i n
2. Se mi J o i n
www.PDFgozar.com
ﺗﻤﺮﻳﻦ:
را ﺑﺪﺳﺖ آورﻳﺪ: )R1 ÷ R2 = ? (R3 ﺑﺎ اﺳﺘﻔﺎده از ﻋﻤﻠﮕﺮ )÷( ﻧﺘﻴﺠﻪ
( ﻣﻲ ﺑﺎﺷﺪ. closure ﻧﻜﺘﻪ :ﻳﻜﻲ از ﻣﻬﻤﺘﺮﻳﻦ ﺧﻮاص ،ﺧﺎﺻﻴﺖ ﺑﺴﺘﻪ ﺑﻮدن )ﺑﺴﺘﺎر ﻳﺎ
ﺑﺪﻳﻦ ﻣﻌﻨﺎ ﻛﻪ ﺧﺮوﺟﻲ ﻫﺮ ﻋﻤﻠﮕﺮ راﺑﻄﻪ اي ﺧﻮد ﻳﻚ راﺑﻄﻪ اﺳﺖ .ﺑﻄﻮر ﻣﺜﺎل ﻣﻲ ﺗﻮان
ﮔﻔﺖ ﻛﻪ اﺟﺘﻤﺎع دو راﺑﻄﻪ )دو ﺟﺪول( ﻳﻚ راﺑﻄﻪ )ﻳﻚ ﺟﺪول( ﻣﻲ ﮔﺮدد.
اﮔﺮ ﺑﻴﺸﺘﺮ از ﻳﻚ ﺗﻐﻴﻴﺮ اﻧﺠﺎم ﮔﻴﺮد در ﭘﺮاﻧﺘﺰ ﻗﺮار ﻣﻲ دﻫﻴﻢ .ﺑﻄﻮر ﻣﺜﺎل:
ﭘﺎﻳﮕﺎه دادهﻫﺎ132
S1 Smith 20 London
S2 Jones 10 Paris
S3 Black 30 Paris
S4 Clark 20 London
S5 Adams 30 Athens
S1 Smith 20 London
S2 Jones 10 Paris
S3 Black 30 Paris
S4 Clark 20 London
S5 Adoms 30 Athens
:ﻣﺜﺎل
A
S1 Smith 20 London
S4 Clark 20 London
S1 Smith 20 London
S2 Jones 10 Paris
S1 Smith 20 London
S4 Clark 20 London
S2 Jones 10 Paris
AՈB
S1 Smith 20 London
B-A
S4 Clark 20 London
A-B
S2 Jones 10 Paris
:ﺗﻮﺟﻪ
(A Ս B) Ս C ≡ A Ս (B Ս C) = A Ս B Ս C
(A Ո B) Ո C ≡ A Ո (B Ո C) = A Ո B Ո C
(A × B) × C ≡ A × (B × C) = A × B × C
(Б) دﺳﺘﻮر
اﺳﺖ و در واﻗﻊ ﺗﻌﺪادي از ﺳﻄﺮﻫﺎ را (Select) اﻳﻦ دﺳﺘﻮر ﻫﻤﺎن ﻋﻤﻠﮕﺮ ﮔﺰﻳﻨﺶ
: ﺷﻜﻞ ﻛﻠﻲ دﺳﺘﻮر ﺑﻪ ﻳﻜﻲ از دو ﺻﻮرت ذﻳﻞ ﻣﻲ ﺑﺎﺷﺪ.اﻧﺘﺨﺎب ﻣﻲ ﻛﻨﻴﻢ
ﭘﺎﻳﮕﺎه دادهﻫﺎ134
:ﻣﺜﺎل
Б (S)
CITY = " London" AND SNAME = " smith"
S# SNAME STATUS CITY
S1 smith 20 London
(∏) دﺳﺘﻮر
( ﻣﻲ ﺑﺎﺷﺪ ﻛﻪ در واﻗﻊ ﺳﺘﻮن ﻫﺎﻳﻲ از راﺑﻄﻪ راProject) اﻳﻦ دﺳﺘﻮر ﻫﻤﺎن ﻋﻤﻠﮕﺮ ﭘﺮﺗﻮ
: ﺷﻜﻞ ﻛﻠﻲ دﺳﺘﻮر ﺑﻪ ﻳﻜﻲ از دو ﺻﻮرت ذﻳﻞ ﻣﻲ ﺑﺎﺷﺪ.در ﺑﺮ ﻣﻲ ﮔﻴﺮد
∏ ()ﻧﺎم راﺑﻄﻪ -1
ﻧﺎم ﺻﻔﺖ
] ﻧﺎم ﺻﻔﺘﻬﺎ [ ﻧﺎم راﺑﻄﻪ -2
:ﻣﺜﺎل
∏ (s ) ﻳﺎ s [city]
City
City
London
Paris
Athens
:ﻣﺜﺎل
∏ (S ) ﻳﺎ S [ S# , SNAME ]
S# و SNAME
www.PDFgozar.com
S# SNAME
S1 Smith
S2 Jones
S3 Black
S4 Clark
S5 Adams
S#
S#
(S = WHERE CITY )"" London
Name
1 . C a r t e si a n P r o d uc t
www.PDFgozar.com
136ﭘﺎﻳﮕﺎه دادهﻫﺎ
ﺣﺠﻢ ﻳﺎ ﻓﻀﺎي زﻳﺎدي اﺷﻐﺎل ﻣﻲﻛﻨﺪ )ﺣﺘﻲ اﻻﻣﻜﺎن اﻧﺠﺎم ﻧﻤﻲدﻫﻴﻢ(. •
a *b=b*a •
ﺑﺎ ﺿﺮب join ﺑﺨﺎﻃﺮ ﭘﺮ ﻫﺰﻳﻨﻪ ﺑﻮدن ﺿﺮب join ،ﻫﺎي دﻳﮕﺮ اراﺋﻪ ﮔﺮدﻳﺪﻧﺪ )اﺻﻞ
ﺷﺮوع ﻣﻲ ﺷﻮد(.
A B
a b b c a b C
2 4
1 2 1 2 4
5 10 B ∞A
2 4 6 8 = 1 2 1
4 3 =
2 1 A join B
2 4 3
در ﻣﺒﺎﺣﺚ ﭘﻴﻮﻧﺪ راﺑﻄﻪﻫﺎ ﻧﻜﺎت زﻳﺮ ﺑﺎﻳﺪ ﻣﻮرد ﺗﻮﺟﻪ ﻗﺮار ﮔﻴﺮد:
اﮔﺮ دو ﺟﺪول Aو Bداراي ﺻﻔﺎت ﻣﺸﺘﺮﻛﻲ ﻧﺒﺎﺷﻨﺪ ∞ ﺗﺒﺪﻳﻞ ﺑﻪ Xﻣﻲ ﺷﻮد.
و اﻳﻦ ﻋﺒﺎرت ﻣﻌﺎدل ﺿﺮب دﻛﺎرﺗﻲ اﺳﺖ ﻛﻪ ﺷﺮﻃﻲ ﻧﻴﺰ ﺑﻪ آن اﻓﺰوده ﺷﺪه اﺳﺖ.
(Distributedﺑﻜﺎر ﻣﻲ رود ﺗﺎ از اﻧﺘﻘﺎل )DB ﻛﺎرﺑﺮد :در ﭘﺎﻳﮕﺎهﻫﺎي داده ﺗﻮزﻳﻊ ﻳﺎﻓﺘﻪ
اﻃﻼﻋﺎت زﻳﺎدي ﺟﻠﻮﮔﻴﺮي ﻛﻨﺪ.
ﻣﺜﺎل:
B⍺A A B
www.PDFgozar.com
138ﭘﺎﻳﮕﺎه دادهﻫﺎ
1
ﻋﻤﻠﮕﺮ ﺗﻘﺴﻴﻢ
ﻓﺮض ﻛﻨﻴﺪ
A (X ) Ynو ...و Y2و Y1و Xnو ...و X2و
1
و
B (Y ) Ynو ...و Y2و
1
در ﺗﻘﺴﻴﻢ دو راﺑﻄﻪ ،ﺳﺘﻮﻧﻬﺎي ﺑﺎﻗﻲ ﻣﺎﻧﺪه و ﺳﻄﺮﻫﺎ ،ﺳﻄﺮﻫﺎﻳﻲ اﺳﺖ ﻛﻪ ﺷﺮط در ﻫﻤﻪ
آﻧﻬﺎ ﺻﺎدق اﺳﺖ.
A DIVIDE By B = A ÷B = ) Xnو ...و X2و (X1
را Yn را ﺑﻪ ﻣﺎ ﻧﻤﻲ دﻫﺪ ،اﮔﺮ X2 را ﻧﺪاﺷﺘﻪ ﺑﺎﺷﻴﻢ Y2 ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ اﮔﺮ
را ﺑﻪ ﻣﺎ ﻧﻤﻲ دﻫﺪ. ﺑﺎﺷﻴﻢXn ﻧﺪاﺷﺘﻪ
ﻣﻤﻜﻦ اﺳﺖ اﻳﻦ ﻧﻜﺘﻪ ﺑﻪ ذﻫﻦ ﺑﺮﺳﺪ ﻛﻪ اﺳﺎﺳﺎً اﻳﻦ ﻋﻤﻠﮕﺮ ﭼﻪ ﻛﺎرﺑﺮدﻫﺎﻳﻲ ﻣﻲﺗﻮاﻧﺪ
داﺷﺘﻪ ﺑﺎﺷﺪ .در ﭘﺎﺳﺦ ﺑﻪ اﻳﻦ ﭘﺮﺳﺶ ﺑﺎﻳﺪ ﮔﻔﺖ ﻛﻪ ﻳﻜﻲ از ﺳﺎده ﺗﺮﻳﻦ ﻣﻮارد اﺳﺘﻔﺎده از
اﻳﻦ ﻋﻤﻠﮕﺮ ﭘﺮس و ﺟﻮﻫﺎﻳﻲ اﺳﺖ ﻛﻪ ﺑﺎ اﺳﺘﻔﺎده از آﻧﻬﺎ دﻧﺒﺎل ﻣﻘﺎدﻳﺮي ﺑﮕﺮدﻳﻢ ﻛﻪ ﺣﺎوي
ﻳﻚ ﻛﻠﻤﻪ ﺧﺎص ﺑﺎﺷﺪ) .ﻣﺜﻼ ﺗﻤﺎم Xﻫﺎﻳﻲ را ﺑﺪه ﻛﻪ Yﻫﺎﻳﺸﺎن ﺑﺮاﺑﺮ ⃞ اﺳﺖ(.
ﻣﺜﺎل:
ﺳﺎزﻧﺪه ﻫﺎ ) CITYو STATUSو SNAMEوS ( S#
ﻣﺤﺼﻮﻻت ) CITYو WEIGHTو PNAMEو P (P#
ﺗﺮﻛﻴﺒﻲ از ﻣﺤﺼﻮﻻت و ﺳﺎزﻧﺪه ) Qtyو P#و SP (S#
ﺗﻌﺪاد
ﺳﻮال:
ﻓﺮوﺷﻨﺪﮔﺎﻧﻲ ﻛﻪ ﻫﻤﻪ )ﺗﻤﺎم( ﻗﻄﻌﺎت را ﺗﻮﻟﻴﺪ ﻣﻲ ﻛﻨﻨﺪ ﻳﺎ ﻧﺎم ﺗﻮﻟﻴﺪ ﻛﻨﻨﺪﮔﺎن ﻫﻤﻪ
1. D i vi d e - D i vi s i o n
www.PDFgozar.com
ﻗﻄﻌﺎت؟
∏ ( ∏ (SP) ÷ ∏ (P)) ∞ S
s# , P# P#
SNAME
ﺳﻮال:
ﺷﻤﺎره ﻓﺮوﺷﻨﺪﮔﺎﻧﻲ ﻛﻪ ﺣﺪاﻗﻞ ﺗﻤﺎم ﻗﻄﻌﺎت ﻋﺮﺿﻪ ﺷﺪه ﺗﻮﺳﻂ S2را ﻋﺮﺿﻪ ﻣﻲ ﻛﻨﻨﺪ؟
اﻟﻒ( ﺷﻤﺎره داﻧﺸﺠﻮﻳﻲ ،ﻧﺎم ،ﻛﺪ داﻧﺸﻜﺪه و ﻣﻌﺪل داﻧﺸﺠﻮﻳﻲ ﻛﻪ ﻣﻴﺎﻧﮕﻴﻦ ﻧﻤﺮات آﻧﻬﺎ
ﺑﺎﻻي 15ﻣﻲ ﺑﺎﺷﺪ.
ب( ﻟﻴﺴﺖ ﻧﺎم اﺳﺎﺗﻴﺪي ﻛﻪ رﺋﻴﺲ داﻧﺸﻜﺪه ﻧﻴﺴﺘﻨﺪ.
ج( ﻣﺸﺨﺼﺎت ﻛﺎﻣﻞ روﺳﺎي داﻧﺸﻜﺪهﻫﺎ.
www.PDFgozar.com
140ﭘﺎﻳﮕﺎه دادهﻫﺎ
اﻳﻦ ﻋﻤﻠﮕﺮﻫﺎ در واﻗﻊ اﻣﻜﺎﻧﺎت ﺣﺬف ،اﺿﺎﻓﻪ و اﺻﻼًح اﻃﻼﻋﺎت را ﺑﺮاي ﻛﺎرﺑﺮ ﻓﺮاﻫﻢ
ﻣﻲ آورﻧﺪ .در اداﻣﻪ ﺑﻪ ﺷﺮح ﻫﺮﻳﻚ ﺧﻮاﻫﻴﻢ ﭘﺮداﺧﺖ.
1-3ﻋﻤﻠﮕﺮ درج
اﻳﻦ ﻋﻤﻠﮕﺮ اﻣﻜﺎن اﺿﺎﻓﻪ ﻛﺮدن اﻃﻼﻋﺎت ﺑﻪ ﺟﺪاول اﻃﻼﻋﺎﺗﻲ )راﺑﻄﻪ ﻫﺎ( را ﻓﺮاﻫﻢ
ﻣﻲ آورد .اﻳﻦ ﻋﻤﻠﮕﺮ در ﺣﺎﻟﺖ ﻛﻠﻲ اﻣﻜﺎن اﻓﺰودن داده ﻫﺎ ﺑﻪ دوﺻﻮرت زﻳﺮ را دارد.
اﻓﺰودن ﻣﻘﺎدﻳﺮ ﻣﺸﺨﺺ ﺑﻌﻨﻮان ﻳﻚ ﺳﻄﺮ اﻃﻼﻋﺎﺗﻲ ﺑﻪ ﺟﺪول •
اﻓﺰودن ﺗﻌﺪادي ﺳﻄﺮ اﻃﻼﻋﺎﺗﻲ از ﺟﺪوﻟﻲ ﺑﻪ ﺟﺪول دﻳﮕﺮ •
ﺟﺪول ﻣﻘﺼﺪ
ﻣﻲ ﺗﻮاﻧﺪ ﺑﺼﻮرت ﻣﺠﻤﻮﻋﻪ اي ﻣﺸﺨﺺ Source ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲ ﮔﺮدد ﻋﺒﺎرت
از ﻣﻘﺎدﻳﺮ ﻛﻪ ﻣﻨﻄﺒﻖ ﺑﺎ ﺟﺪول ﻣﻘﺼﺪ ﻫﺴﺘﻨﺪ ،ﺑﺎﺷﺪ و ﻳﺎ اﻳﻨﻜﻪ ﺧﺮوﺟﻪ ﺣﺎﺻﻞ از ﻳﻚ
1. In s e r t
2. U p da t e
3. D el e t e
www.PDFgozar.com
اﺿﺎﻓﻪ temp اﺳﺖ را در راﺑﻄﻪ ،Sرا ﺑﻪ ﺟﺪول city آن ﺳﻄﺮﻫﺎﻳﻲ ﻛﻪ = ՙLondon՚
ﻣﻲ ﻛﻨﺪ.
ﻋﺒﺎرت ﺑﺎﻻ ﺑﺪﻳﻦ ﻣﻌﻨﻲ اﺳﺖ ﻛﻪ از راﺑﻄﻪ Pاﻧﺪﺳﺘﻪ از ﺳﻄﺮﻫﺎﻳﻲ را ﻛﻪ ﻣﻘﺪار ﺻﻔﺖ
ﺧﺎﺻﻪ رﻧﮓ در آﻧﻬﺎ ﻗﺮﻣﺰ اﺳﺖ ،ﻣﻘﺪار ﺻﻔﺖ ﺧﺎﺻﻪ ﺷﻬﺮ را ﺑﺮاﺑﺮ ﺑﺎ ﭘﺎرﻳﺲ ﻛﻨﻴﻢ .اﻳﻦ
ﻋﻤﻠﮕﺮ را ﺑﺼﻮرت ﻧﻤﺎدﻳﻦ )ﻧﻤﺎﻳﺶ( ﻣﻲ ﺗﻮان ﺑﻪ ﺻﻮرت زﻳﺮ ﻧﺸﺎن داد.
)(P
’WHERE color = ‘Red
’City = ‘Paris
ﻻزم ﺑﺬﻛﺮ اﺳﺖ ﻛﻪ ﻋﺒﺎرت ﺑﺎﻻ در ﺑﻌﻀﻲ از ﻛﺘﺐ ﺑﺼﻮرت ﻛﺎﻣﻞ ﺗﺮ ﺑﻴﺎن ﻣﻲ ﺷﻮد ﻛﻪ
در ﺑﺤﺚ ﻓﻌﻠﻲ ﻣﺪﻧﻈﺮ ﻧﻴﺴﺖ.
3-3ﻋﻤﻠﮕﺮ ﺣﺬف
اﻳﻦ ﻋﻤﻠﮕﺮ ﺟﻬﺖ ﺣﺬف ﺳﻄﺮﻫﺎﻳﻲ از اﻃﻼﻋﺎت درون ﺟﺪاول ﺑﻜﺎر ﻣﻲرود .ﺷﻜﻞ
ﻛﻠﻲ دﺳﺘﻮر ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﺪ:
DELETE target R R -E
www.PDFgozar.com
142ﭘﺎﻳﮕﺎه دادهﻫﺎ
ﻣﺜﺎل:
DELETE S WHERE STATUS < 20
آﻧﻬﺎﻳﻲ را ﻛﻪ S ﻣﻌﻨﻲ دﺳﺘﻮر ﻣﺬﻛﻮر ﺑﺪﻳﻦ ﺻﻮرت اﺳﺖ :ﺣﺬف ﻛﻦ از راﺑﻄﻪ
آن ﻛﻤﺘﺮ از 20اﺳﺖ )ﭘﺲ ﻳﻚ ﺳﻄﺮ ﺣﺬف ﻣﻲ ﮔﺮدد(. STATUS
ﺑﺎﺷﺪ )ﺗﻌﺪاد و ﻧﻮع ﺳﺘﻮن ﻫﺎﻳﺸﺎن Same arity ﺑﺎﻳﺪ داراي ﺷﺮط E و R ﺗﻮﺟﻪ :راﺑﻄﻪ
ﻳﻜﺴﺎن اﺳﺖ(.
-5ﺣﺴﺎب راﺑﻄﻪاي
ﻧﻮع دﻳﮕﺮي از اﻣﻜﺎﻧﺎت اﻧﺠﺎم ﻋﻤﻠﻴﺎت در راﺑﻄﻪ ﻫﺎ ،ﺣﺴﺎب راﺑﻄﻪ اي اﺳﺘﻜﻪ ﻣﻨﻄﻘﺎً
ﻣﻌﺎدل ﺟﺒﺮ راﺑﻄﻪ اي ﻣﻲ ﺑﺎﺷﺪ .ﻳﻌﻨﻲ ﺑﺮاي ﻫﺮ ﻋﺒﺎرت ﺟﺒﺮ راﺑﻄﻪ اي ،ﻳﻚ ﻋﺒﺎرت ﻣﻌﺎدل
در ﺣﺴﺎب راﺑﻄﻪ اي وﺟﻮد دارد و ﺑﺎﻟﻌﻜﺲ .دراﻳﻨﺠﺎ ﻻزم اﺳﺖ ﺑﻪ اﻳﻦ ﻧﻜﺘﻪ ﺗﻮﺟﻪ ﺷﻮد
ﻛﻪ ﺟﺒﺮ راﺑﻄﻪ اي ،دﺳﺘﻮري ﺑﻮده و ﺷﺒﻴﻪ ﺑﻪ زﺑﺎن ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ اﺳﺖ و ﺣﺴﺎب
راﺑﻄﻪ اي ﺑﺼﻮرت ﺗﻮﺻﻴﻔﻲ ﺑﻮده و ﺑﻪ زﺑﺎن ﻃﺒﻴﻌﻲ ﻧﺰدﻳﻚﺗﺮ اﺳﺖ .ﺣﺴﺎب راﺑﻄﻪ اي
ﺧﻮد داراي دو ﺷﺎﺧﻪ ﻣﻲ ﺑﺎﺷﺪ:
www.PDFgozar.com
1
ﺣﺴﺎب ﺗﺎﭘﻠﻲ •
2
ﺣﺴﺎب ﻣﻴﺪاﻧﻲ •
T. A1 , T. A2 , … , T. AN
1. T u pl e Or i e n t e d
2. D o ma i n Or i e n t e d
www.PDFgozar.com
144ﭘﺎﻳﮕﺎه دادهﻫﺎ
ﺳﻮر وﺟﻮدي
ﺳﻮر وﺟﻮدي را ﺑﺎ ∃ ﻧﻤﺎﻳﺶ داده و ﻋﺒﺎرت آﻧﺮا ﺑﺼﻮرت زﻳﺮ ﻣﻲ ﻧﻮﻳﺴﻴﻢ
)∃ T (f
وﺟﻮد دارد ﺑﻪ T ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﺪﻳﻦ ﻣﻌﻨﺎ اﺳﺖ ﻛﻪ ﺣﺪاﻗﻞ ﻳﻚ ﻣﻘﺪار ﺑﺮاي ﻣﺘﻐﻴﺮ
ﻧﺤﻮي ﻛﻪ fﺑﻪ ﻣﻔﻬﻮم "درﺳﺖ" ارزﻳﺎﺑﻲ ﺷﻮد.
ﺳﻮر ﻫﻤﮕﺎﻧﻲ
ﺳﻮر ﻫﻤﮕﺎﻧﻲ را ﺑﺎ ∀ ﻧﻤﺎﻳﺶ داده و ﻋﺒﺎرت آﻧﺮا ﺑﺼﻮرت زﻳﺮ ﻣﻲ ﻧﻮﻳﺴﻴﻢ
)∀ T (f
ﺑﻪ ﻣﻔﻬﻮم F ، T ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﺪﻳﻦ ﻣﻌﻨﺎ اﺳﺖ ﻛﻪ ﺑﻪ ازاء ﺗﻤﺎم ﻣﻘﺎدﻳﺮ ﻣﺘﻐﻴﺮ
"درﺳﺖ" ارزﻳﺎﺑﻲ ﻣﻲ ﺷﻮد.
3-1-5ﻋﺒﺎرت ﻣﻄﻤﺌﻦ
وﻗﺘﻲ از ﺳﻮر وﺟﻮدي ،ﺳﻮر ﻫﻤﮕﺎﻧﻲ و ﺳﻮر ﻧﻔﻲ در ﻧﻮﺷﺘﻦ ﻳﻚ ﻋﺒﺎرت ﺣﺴﺎب
1. E xi s t e n t i a l
2. U n i ve r s a l
www.PDFgozar.com
راﺑﻄﻪ اي اﺳﺘﻔﺎده ﻣﻲﻛﻨﻴﻢ ،ﺑﺎﻳﺪ اﻃﻤﻴﻨﺎن ﺣﺎﺻﻞ ﻛﻨﻴﻢ ﻛﻪ ﻋﺒﺎرت ﺣﺴﺎﺑﻲ ﻧﻮﺷﺘﻪ ﺷﺪه
1
داراي ﻣﻌﻨﺎ ﺑﺎﺷﺪ .ﻳﻚ ﻋﺒﺎرت ﺣﺴﺎﺑﻲ را ﻋﺒﺎرت ﻣﻄﻤﺌﻦ ﮔﻮﻳﻴﻢ ﻫﺮﮔﺎه ﻧﺘﻴﺠﻪ ارزﻳﺎﺑﻲ
2
آن ،ﺗﻌﺪاد ﻣﺤﺪودي از ﺗﺎﭘﻠﻬﺎ ﺑﺎﺷﺪ .در ﻏﻴﺮ اﻳﻨﺼﻮرت آن ﻋﺒﺎرت را ﻋﺒﺎرت ﻧﺎﻣﻄﻤﺌﻦ
ﻣﻲ ﮔﻮﻳﻴﻢ.
ﻳﻚ ﻣﻘﺪار از ﻣﻴﺪان و ﻳﺎ ﻳﻚ ﻟﻴﺘﺮال اﺳﺖ. vi ﻧﺎم ﺻﻔﺖ و Ai ﻧﺎم راﺑﻄﻪ ، R ﻛﻪ در آن
وﺟﻮد R اﻳﻦ ﺷﺮط ﺑﻪ ﻣﻔﻬﻮم "درﺳﺖ" ارزﻳﺎﺑﻲ ﻣﻲ ﺷﻮد اﮔﺮ و ﺗﻨﻬﺎ اﮔﺮ ﺗﺎﭘﻠﻲ در
داﺷﺘﻪ ﺑﺎﺷﺪ ﻛﻪ ﻣﻘﺎدﻳﺮ داده ﺷﺪه ﺑﺮاي ﺻﻔﺎت را داﺷﺘﻪ ﺑﺎﺷﺪ )ﺗﺎﭘﻞ ﻋﻀﻮي از ﻣﺠﻤﻮﻋﻪ
ﺑﺪﻧﻪ راﺑﻄﻪ ﺑﺎﺷﺪ( .ﺑﺮاي ﻣﺜﺎل ﺑﻪ ﻋﺒﺎرت زﻳﺮﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ:
در ﻋﺒﺎرت ﻓﻮق اﻳﻦ ﺷﺮط ﺑﻪ ﻣﻔﻬﻮم "درﺳﺖ" ارزﻳﺎﺑﻲ ﻣﻲﺷﻮد اﮔﺮ و ﻓﻘﻂ اﮔﺮ ﺗﺎﭘﻠﻲ
در STTﺑﺎ ﺷﻤﺎره داﻧﺸﺠﻮﻳﻲ ’ ‘345و رﺷﺘﻪ ﻛﺎرﺷﻨﺎﺳﻲ ’ ‘xweوﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ.
5
-6ﺑﻬﻴﻨﻪ ﺳﺎزي ﭘﺮس و ﺟﻮﻫﺎ
ﻳﻜﻲ از ﻣﺒﺎﺣﺜﻲ ﻛﻪ در ﭘﺎﻳﮕﺎه ﻫﺎي داده ﻣﻄﺮح اﺳﺖ ﺑﺤﺚ ﺑﻬﻴﻨﻪ ﺳﺎزي ﻋﺒﺎرت ﭘﺮس و
1. Sa f e e xp r e s s i o n
2. U n sa f e e x p r e s s i o n
3. D o ma i n va r i a b l e
4. M e mb e r s h i p c o n d i t io n
5. O p ti mi z a t i o n Q u e r y
www.PDFgozar.com
146ﭘﺎﻳﮕﺎه دادهﻫﺎ
ﺟﻮ ﻣﻲ ﺑﺎﺷﺪ .از آﻧﺠﺎﺋﻴﻜﻪ ﻣﺒﺤﺚ ﺑﻬﻴﻨﻪ ﺳﺎزي ﭘﺮس و ﺟﻮ ﻣﺮﺑﻮط ﺑﻪ دوره ﻛﺎرﺷﻨﺎﺳﻲ
ﻧﻴﺴﺖ ،ﻟﺬا در اﻳﻨﺠﺎ ﺻﺮﻓﺎ ﺗﻮﺿﻴﺤﺎت ﻣﺨﺘﺼﺮي در اﻳﻨﺒﺎره اراﺋﻪ ﺧﻮاﻫﻴﻢ ﻛﺮد.
ﺗﻤﺎﻣﻲ ﺗﻼش ﻃﺮاﺣﺎن ﭘﺎﻳﮕﺎه داده ﻫﺎ در ﻛﻮﺗﺎه ﻛﺮدن ﻣﺪت زﻣﺎن ارﺳﺎل ﭘﺎﺳﺦ ﺑﻪ ﻣﺘﻘﺎﺿﻲ
اﺳﺖ .در ﻋﻴﻦ ﺣﺎل ﺧﺮوﺟﻲ ﻳﻜﺴﺎن در ﻫﻤﻪ ﺣﺎل ﻣﺪ ﻧﻈﺮ ﻣﻲ ﺑﺎﺷﺪ .ﺑﻌﻨﻮان ﻣﺜﺎل دو
ﻋﺒﺎرت زﻳﺮ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ:
اﺳﺖ را ﺟﺪا ﻣﻲ ﻛﻨﺪ )ﺳﻄﺮي( ،ﺑﻌﺪ از ﻛﻞ A=B آن ﻫﺎﻳﻲ ﻛﻪ R -1اﺑﺘﺪا از راﺑﻄﻪ
آﻧﻬﺎ ﺳﺘﻮن ﻫﺎ را ﺑﻴﺮون ﻣﻲ ﻛﺸﺪ.
A= B را ﺟﺪا ﻣﻲ ﻛﻨﺪ ،ﺑﻌﺪ آﻧﻬﺎﻳﻲ را ﻛﻪ BوA دو ﺳﺘﻮن R -2اﺑﺘﺪا از راﺑﻄﻪ
اﺳﺖ را ﺟﺪا ﻣﻲﻛﻨﺪ )ﺳﻄﺮﻫﺎﻳﻲ ﻛﻪ .( A = B
در اﻳﻨﺠﺎ ﻣﻤﻜﻦ اﺳﺖ ﺳﺌﻮاﻻﺗﻲ ﺑﺮاي ﻛﺎرﺑﺮ ﻣﻄﺮح ﮔﺮدد .ﻣﺎﻧﻨﺪ:
آﻳﺎ ﻫﻤﻪ ﭘﺎﺳﺦﻫﺎ ﻣﻌﺎدل اﻧﺪ ؟ ﺑﻠﻲ •
آﻳﺎ ﻫﻤﻪ ﭘﺎﺳﺦﻫﺎ ﻫﻢ ﺳﺮﻋﺖاﻧﺪ ؟ ﺧﻴﺮ •
ﺑﻨﺎﺑﺮﻳﻦ ﺟﻬﺖ اﻓﺰاﻳﺶ ﺳﺮﻋﺖ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده ﺳﻌﻲ ﺑﺮ آن اﺳﺖ ﺑﻬﺘﺮﻳﻦ روش ﺑﻜﺎر
ﮔﺮﻓﺘﻪ ﺷﻮد و ﻳﺎ ﺑﻪ ﻋﺒﺎرت ﺑﻬﺘﺮ ﺳﻌﻲ ﻣﻲ ﻛﻨﻴﻢ ﺗﺎ آﻧﺠﺎ ﻛﻪ ﻣﻲ ﺗﻮاﻧﻴﻢ ﻫﺮ ﭼﻪ ﺳﺮﻳﻌﺘﺮ
ﺟﺪاول را ﻛﻮﭼﻚ ﻛﺮده و روي آﻧﻬﺎ ﻛﺎر ﻛﻨﻴﻢ.
ﻳﻜﻲ از ﺳﺌﻮاﻻﺗﻲ ﻛﻪ ﻣﻄﺮح ﻣﻲﮔﺮدد اﻳﻦ اﺳﺖ ﻛﻪ ﺳﺮﻋﺖ Quaryﻫﺎي ﻣﺘﻔﺎوت
ﭼﻘﺪر ﺗﻔﺎوت دارد ؟ در ﭘﺎﺳﺦ ﺑﺎﻳﺪ ﮔﻔﺖ ﻛﻪ :ﺑﺴﻴﺎر زﻳﺎد ،زﻳﺮا دادهﻫﺎ و ﺟﺪاول در ﺣﺎﻓﻈﻪ
ﺟﺎﻧﺒﻲ ﻗﺮار دارﻧﺪ .در اﻳﻦ راﺳﺘﺎ ﻣﻤﻜﻦ اﺳﺖ ﺑﮕﻮﻳﻴﻢ ﻛﻪ ﻛﺎرﺑﺮ ﺑﺎﻳﺪ آﻧﻘﺪر ﺗﺒﻬﺮ داﺷﺘﻪ ﺑﺎﺷﺪ
ﺗﺎ ﺑﺘﻮاﻧﺪ ﻋﺒﺎرت ﭘﺮﺳﻮ ﺟﻮي ﺧﻮد را ﺑﻬﻴﻨﻪ ﻧﻤﺎﻳﺪ .وﻟﻲ آﻳﺎ واﻗﻌﺎ ﭼﻨﻴﻦ ﻛﺎري ﻣﻤﻜﻦ اﺳﺖ؟
در ﭘﺎﺳﺦ ﺑﺎﻳﺪ ﮔﻔﺖ :ﺧﻴﺮ .زﻳﺮا:
ﻛﺎرﺑﺮ ﻣﺘﺨﺼﺺ ﻧﻴﺴﺖ. •
www.PDFgozar.com
را ﺑﻬﻴﻨﻪ ﺳﺎزي ﻧﻤﺎﻳﺪ. Quary ﺑﺎﻳﺪ DBMS ﭘﺲ ﺑﻬﺘﺮﻳﻦ راه ﺣﻞ اﻳﻦ اﺳﺖ ﻛﻪ ﺑﮕﻮﻳﻴﻢ
ﻃﺒﻴﻌﻲ اﺳﺖ ﻛﻪ ﺑﺎﻳﺪ ﻣﻜﺎﻧﻴﺰم ﻣﺸﺨﺼﻲ ﺑﺮاي اﻳﻨﻜﺎر وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ .ﻫﺮﭼﻨﺪ ﻛﻪ
ﺑﺤﺚ ﺑﻬﻴﻨﻪ ﺳﺎزي ﭘﺮﺳﻮ ﺟﻮ در اﻳﻦ ﻛﺘﺎب ﻧﻤﻲ ﮔﻨﺠﺪ ،وﻟﻲ ﺑﺮاي اراﺋﻪ ﻳﻚ ﺷﻤﺎي
ﺳﺎده از اﻳﻦ ﻋﻤﻞ اﻟﮕﻮرﻳﺘﻢ ذﻳﻞ را )ﻛﻪ ﺑﺴﻴﺎر ﺳﺎده و ﻣﺨﺘﺼﺮ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه
اﺳﺖ( اراﺋﻪ ﻣﻲﻧﻤﺎﻳﻴﻢ.
148ﭘﺎﻳﮕﺎه دادهﻫﺎ
در اﻳﻨﺠﺎ اﻳﻦ ﺳﺌﻮال ﻣﻄﺮح ﻣﻲ ﺷﻮد ﻛﻪ ﻛﺪام ﻳﻚ از دو ﻋﺒﺎرت زﻳﺮ ﺳﺮﻳﻌﺘﺮ ﭘﺎﺳﺦ
ﻣﻲ دﻫﻨﺪ؟
crs ∞ sec
ﻳﺎ
sec ∞ crs
اﻳﻦ دو دﺳﺘﻮر از ﻧﻈﺮ ﺳﺮﻋﺖ ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﺑﺴﻴﺎر ﻣﺘﻔﺎوﺗﻨﺪ .زﻳﺮا ﺳﺎﻳﺰ دو ﺟﺪول
)ﻓﻘﻂ ﻣﺸﺨﺼﺎت درسﻫﺎ ﻣﻲﺑﺎﺷﺪ( ﻣﻌﻤﻮﻻً ﻛﻮﭼﻚ crs ﻛﺎﻣﻼ ﻣﺘﻔﺎوت ﻣﻲﺑﺎﺷﺪ ﺟﺪول
ﺑﺴﻴﺎر ﺑﺰرﮔﺘﺮ از آن ،زﻳﺮا ﻫﻢ ﮔﺮوﻫﻬﺎي ﻣﺨﺘﻠﻒ دروس را ﺷﺎﻣﻞ sec اﺳﺖ و ﺟﺪول
ﺟﺎ ﺑﮕﻴﺮد ،در cash ﻣﻲﺷﻮد و ﻫﻢ داﻧﺸﺠﻮﻳﺎن آﻧﻬﺎ را .ﻓﺮض ﻛﻨﻴﺪ ﺟﺪول crsدر ﺣﺎﻓﻈﻪ
اﻳﻦ ﺻﻮرت اﻟﮕﻮرﻳﺘﻢﻫﺎي دو راه ﺣﻞ ﺑﺎﻻ را ﺑﺮرﺳﻲ ﻣﻲﻛﻨﻴﻢ:
crs ∞ sec
} crs اﻟﮕﻮرﻳﺘﻢ ) :(1ﺑﺮاي ﻫﺮ ﺳﻄﺮ ﺟﺪول
ﺑﺮاي ﻫﺮ ﺳﻄﺮ ﺟﺪول } sec
ﻣﻘﺎﻳﺴﻪ ﻛﻦ{
اﻧﺘﺨﺎب ﻛﻦ {
را ﺑﻪ دﻓﻌﺎت وارد ﺣﺎﻓﻈﻪ sec در اﻟﮕﻮرﻳﺘﻢ ﻳﻚ ﺑﺎﻳﺪ ﺳﻄﺮﻫﺎي ﺑﺴﻴﺎر زﻳﺎد ﺟﺪول
اﺻﻠﻲ ﻛﻨﻴﻢ و ﻣﻘﺎﻳﺴﻪ و اﻧﺘﺨﺎب را اﻧﺠﺎم دﻫﻴﻢ ﺑﻪ ﻋﺒﺎرت دﻳﮕﺮ ﺗﻌﺪاد دﺳﺘﻴﺎﺑﻲ ﺑﻪ دﻳﺴﻚ
)ﻣﻨﻈﻮر ﺣﺎﻓﻈﻪ ﺟﺎﻧﺒﻲ( ﺑﻪاﻧﺪازه ﺣﺎﺻﻠﻀﺮب ﺳﺎﻳﺰ دو ﺟﺪول اﺳﺖ.
sec ∞ crs
اﻟﮕﻮرﻳﺘﻢ ) :(2ﺑﺮاي ﻫﺮ ﺳﻄﺮ ﺟﺪول } sec
ﺑﺮاي ﻫﺮ ﺳﻄﺮ ﺟﺪول } crs
ﻣﻘﺎﻳﺴﻪ ﻛﻦ {
اﻧﺘﺨﺎب ﻛﻦ {
در اﻟﮕﻮرﻳﺘﻢ دو ،ﻫﺮ ﺳﻄﺮ secرا ﻓﻘﻂ ﻳﻜﺒﺎر ﺑﻪ ﺣﺎﻓﻈﻪ اﺻﻠﻲ ﻣﻲآورﻳﻢ زﻳﺮا ﺟﺪول
crsﺑﻪ ﻃﻮر ﻛﺎﻣﻞ در ﺣﺎﻓﻈﻪ cashﻗﺮار دارد و ﻫﻤﻪ ﻣﻘﺎﻳﺴﻪﻫﺎ ﻳﻜﺒﺎر اﻧﺠﺎم ﻣﻲﮔﻴﺮد و ﺗﻌﺪاد
را crs اﺳﺖ .ﺑﻄﻮر ﻣﺜﺎل اﮔﺮ ﺳﺎﻳﺰ ﺟﺪول sec دﺳﺘﻴﺎﺑﻲ ﺑﻪ دﻳﺴﻚ ﺑﻪاﻧﺪازه ﺳﺎﻳﺰ ﺟﺪول
www.PDFgozar.com
را 1001ﻓﺮض ﻛﻨﻴﻢ اﻟﮕﻮرﻳﺘﻢ اول 1000000ﺑﺎر ﺑﻴﺸﺘﺮ ﺑﻪ دﻳﺴﻚ sec 100و ﺟﺪول
دﺳﺘﻴﺎﺑﻲ ﭘﻴﺪا ﻣﻲﻛﻨﺪ.
ﺗﻤﺮﻳﻨﺎت
150ﭘﺎﻳﮕﺎه دادهﻫﺎ
ﻓﺼﻞ ۸
ﻫﺪف ﻛﻠﻲ
و دﻻﺋﻞ ﮔﺴﺘﺮدﮔﻲ آن اراﺋﻪ ﺧﻮاﻫﺪ ﺷﺪ. SQL در اﻳﻦ ﻓﺼﻞ اﺑﺘﺪا ﺗﺎرﻳﺨﭽﻪ اي از زﺑﺎن
ﺳﭙﺲ دﺳﺘﻮرات ﺗﻌﺮﻳﻒ داده ﻫﺎ ﻣﺎﻧﻨﺪ ﺗﻌﺮﻳﻒ ﺷﻤﺎ و ﺟﺪول و ...ﻣﻄﺮح ﺷﺪه و در
اداﻣﻪ دﺳﺘﻮرات ﻣﺮﺑﻮط ﺑﻪ ﭘﺮس وﺟﻮي دادهﻫﺎ ﺑﻴﺎن ﺧﻮاﻫﺪ ﺷﺪ .ﭘﺲ از ﺗﻮﺿﻴﺢ اﻳﻦ
ﮔﺮوه از دﺳﺘﻮرات ،دﺳﺘﻮرات ﻛﺎر ﺑﺎ داده ﻫﺎ ﺷﺮح داده ﺧﻮاﻫﻨﺪ ﺷﺪ.ﭘﺲ از آن
ﺟﺴﺘﺠﻮﻫﺎي ﭘﻴﺸﺮﻓﺘﻪ ﺗﺮ ﻣﻄﺮح و در اﻳﻦ راﺳﺘﺎ ﻋﻤﻠﮕﺮﻫﺎي ﭘﻴﻮﻧﺪ و ﺳﺎﻳﺮ ﻋﻤﻠﮕﺮﻫﺎي
ﻣﺮﺗﺒﻂ ﺑﺎ ﺟﺴﺘﺠﻮﻫﺎي ﭘﻴﺸﺮﻓﺘﻪ ﺑﻴﺎن ﺧﻮاﻫﻨﺪ ﺷﺪ .در ﭘﺎﻳﺎن ﻧﻴﺰ درﺑﺎزه دﺳﺘﻮرات ﻛﻨﺘﺮل
ﻣﺠﻮزﻫﺎي دﺳﺘﺮﺳﻲ ﺻﺤﺒﺖ ﺧﻮاﻫﺪ ﺷﺪ.
ﻫﺪف رﻓﺘﺎري
دراﻳﻦ ﻓﺼﻞ ﻋﻨﺎوﻳﻦ زﻳﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ:
SQL ﻣﻘﺪﻣﻪ اي ﺑﺮ •
SQL دﻻﺋﻞ ﮔﺴﺘﺮدﮔﻲ •
DDL دﺳﺘﻮرات ﺗﻌﺮﻳﻒ دادهﻫﺎ •
ﺗﻌﺮﻳﻒ ﭘﺎﻳﮕﺎهداده •
ﺗﻌﺮﻳﻒ ﺷﻤﺎ •
ﺗﻌﺮﻳﻒ ﺟﺪول •
دﺳﺘﻮرات ﭘﺮس و ﺟﻮ )ﻣﺸﺎﻫﺪه( دادهﻫﺎ •
www.PDFgozar.com
1. St a n d a r d Q u e r y La n gu a ge
2. St a n d a r d R e l a t i o na l La n gu a ge
3. R Sy s t e m
www.PDFgozar.com
اراﺋﻪ ﺷﺪه اﺳﺖ ﻛﻪ ﻫﻨﻮز در ﭘﺎﻳﮕﺎهﻫﺎي داده راﺑﻄﻪاي ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻧﮕﺮﻓﺘﻪ اﺳﺖ.
ﻣﻔﺎﻫﻴﻢ اﺻﻠﻲ زﺑﺎن SQLدر ﻛﻠﻴﻪ زﺑﺎنﻫﺎي ﻣﺬﻛﻮر ﻳﻜﺴﺎن ﻫﺴﺘﻨﺪ.
ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﻨﺪ ﻛﻪ ﺑﻌﻀﻲ از آﻧﻬﺎ در زﺑﺎن SQL ﺑﺮﺧﻲ اﻣﻜﺎﻧﺎت ﻣﻬﻤﺘﺮ زﺑﺎن
SQL1وﺟﻮد ﻧﺪاﺷﺘﻪ و ﺑﻪ ﻣﺮور ﺑﻪ زﺑﺎنﻫﺎي SQL2و SQL3اﻓﺰوده ﺷﺪه اﻧﺪ:
دﺳﺘﻮرات ﺗﻌﺮﻳﻒ دادهﻫﺎ •
دﺳﺘﻮرات ﭘﺮس و ﺟﻮ )ﻣﺸﺎﻫﺪه( دادهﻫﺎ •
دﺳﺘﻮرات ﻛﺎر ﺑﺮ روي دادهﻫﺎ •
1. O R AC LE
2. E mb e d d e d
www.PDFgozar.com
ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻨﻜﻪ ﭼﻬﺎر دﺳﺘﻪ اول دﺳﺘﻮرات ذﻛﺮ ﺷﺪه ﺗﻘﺮﻳﺒﺎ در ﻫﻤﻪ ﭘﺎﻳﮕﺎه ﻫﺎي داده
ﻣﻮﺟﻮد ﻣﻲ ﺑﺎﺷﺪ ﻟﺬا در اداﻣﻪ ﭼﻬﺎر ﺳﺮي دﺳﺘﻮرات اول را ﺑﻪ ﺗﻔﺼﻴﻞ ﻣﻮرد ﺑﺤﺚ و
ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻴﻢ داد .ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎه ﻫﺎي داده و ﻳﺎ زﺑﺎن ﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ )ﻛﻪ
را درون ﺧﻮد دارﻧﺪ( ،ﻣﺠﻤﻮﻋﻪ دﺳﺘﻮرات ﻧﻮﺷﺘﻦ روﻳﻪﻫﺎ و ﺗﻮاﺑﻊ ،ﻛﻨﺘﺮل SQL زﺑﺎن
ﺟﺎﻣﻌﻴﺖ و ﻛﻨﺘﺮل ﺗﺮاﻛﻨﺶ ﻫﺎ را ﻳﺎ ﻧﺪارﻧﺪ و ﻳﺎ در اﺧﺘﻴﺎر ﻛﺎرﺑﺮ ﻗﺮار ﻧﻤﻲ دﻫﻨﺪ .ﻟﺬا اﻳﻦ
ﻧﻮع دﺳﺘﻮرات در اﻳﻦ ﻛﺘﺎب ﺗﻮﺿﻴﺢ داده ﻧﻤﻲ ﺷﻮﻧﺪ.
1
DDL - 3دﺳﺘﻮرات ﺗﻌﺮﻳﻒ دادهﻫﺎ
2
اﻳﻦ دﺳﺘﻮرات در ﺣﺎﻟﺖ ﻛﻠﻲ ﺷﺎﻣﻞ ﺗﻌﺮﻳﻒ ﭘﺎﻳﮕﺎهداده ،ﺗﻌﺮﻳﻒ ﺷﻤﺎ ،ﺗﻌﺮﻳﻒ
4 3
ﻛﺎرﺑﺮ و ﺗﻌﺮﻳﻒ ﺟﺪاول اﻃﻼﻋﺎﺗﻲ و دﻳﺪهﻫﺎ ﻣﻲﺑﺎﺷﻨﺪ.
1- 3ﺗﻌﺮﻳﻒ ﭘﺎﻳﮕﺎهداده
ﺷﻜﻞ ﻛﻠﻲ دﺳﺘﻮر ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﺪ:
ﺑﺎ اﺳﺘﻔﺎده از اﻳﻦ دﺳﺘﻮر ﭘﺎﻳﮕﺎه داده ﻣﻮرد ﻧﻈﺮ را اﻳﺠﺎد ﻣﻲﻧﻤﺎﺋﻴﻢ ﻛﻪ ﺧﻮد ﭘﺎﻳﮕﺎه داده
ﻣﻲ ﺗﻮاﻧﺪ ﺷﺎﻣﻞ ﺟﺪاول ﻣﺘﻌﺪدي ﺑﺎﺷﺪ .ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ ﺗﻌﺮﻳﻒ ﭘﺎﻳﮕﺎه داده اﺳﺎﺳﺎً
داراي ﭘﺎراﻣﺘﺮﻫﺎي ﺑﺴﻴﺎري اﺳﺖ ﻛﻪ ﻣﻮﺿﻮع اﻳﻦ ﻛﺘﺎب ﻧﻴﺴﺖ.
1. D at a D ef i n i t i o n La n gu a ge
2. Sc h e ma
3. U se r D ef i n i t i o n
4. T ab l e De f i n i t i o n
www.PDFgozar.com
2- 3ﺗﻌﺮﻳﻒ ﺷﻤﺎ
اﻳﻦ ﺗﻌﺮﻳﻒ در ﺣﺎﻟﺖ ﻛﻠﻲ ﺷﺎﻣﻞ ﺗﻌﺮﻳﻒ ﻛﺎرﺑﺮ ،ﺗﻌﺮﻳﻒ ﺟﺪاول و ﺗﻌﺮﻳﻒ دﻳﺪ ﻫﺎ و
ﺑﺴﻴﺎري ﻣﻔﺎﻫﻴﻢ دﻳﮕﺮ ﻣﻲ ﺑﺎﺷﺪ و ﺳﺎﺧﺘﺎر آن ﺑﺴﺘﻪ ﺑﻪ ﭘﺎﻳﮕﺎه داده اﻧﺘﺨﺎب ﺷﺪه ﻣﺘﻔﺎوت
آﻣﺪه اﺳﺖ( ﺑﻪ View و Table ﻣﻲ ﺑﺎﺷﺪ .ﺷﻜﻞ ﻛﻠﻲ دﺳﺘﻮر )ﻛﻪ در آن ﺻﺮﻓﺎ ﺗﻌﺎرﻳﻒ
ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﺪ.
3- 3ﺟﺪول
1- 3- 3ﺗﻌﺮﻳﻒ ﺟﺪول
ﺑﺎ اﻳﻦ دﺳﺘﻮر اﻣﻜﺎن ﺗﻌﺮﻳﻒ ﺟﺪاول اﻃﻼﻋﺎﺗﻲ ﺑﺮاي ﻛﺎرﺑﺮ ﻓﺮاﻫﻢ ﻣﻲ ﺷﻮد .ﺷﻜﻞ ﻛﻠﻲ
دﺳﺘﻮر ﺑﻪ ﺻﻮرت زﻳﺮ ﻣﻲ ﺑﺎﺷﺪ:
ﺑﺮاي ﻣﺜﺎل ﻓﺮض ﻛﻨﻴﺪ ﻣﻲ ﺧﻮاﻫﻴﻢ ﻳﻚ ﺟﺪول ﺷﺎﻣﻞ ﺷﻤﺎره و ﻧﺎم ﻗﺎره ﻫﺎي ﻣﺨﺘﻠﻒ
ﺟﻬﺎن درﺳﺖ ﻛﻨﻴﻢ .ﻋﺒﺎرت اﻳﺠﺎد ﻛﻨﻨﺪه ﺟﺪول ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح زﻳﺮ ﻣﻲ ﺑﺎﺷﺪ:
ﺣﺎل ﭼﻨﺎﻧﭽﻪ ﺑﺨﻮاﻫﻴﻢ ﻋﺒﺎرت ﻣﺬﻛﻮر را ﻛﺎﻣﻞ ﺗﺮ ﻛﻨﻴﻢ ﻻزم اﺳﺖ ﻣﺤﺪودﻳﺖ ﻫﺎﻳﻲ را
ﺑﻪ آن اﺿﺎﻓﻪ ﻧﻤﺎﻳﻴﻢ.
ﻛﻠﻤﺎت ﻛﻠﻴﺪي دﻳﮕﺮي ﺑﻪ ﻋﺒﺎرت اﻳﺠﺎد ﺟﺪول SQL -2 ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ در
اﻓﺰوده ﺷﺪهاﻧﺪ ﺑﮕﻮﻧﻪاﻳﻜﻪ اﻣﻜﺎن اﻓﺰودن ﻣﻘﺪار اوﻟﻴﻪ ﺑﻪ ﻳﻚ ﺻﻔﺖ ﺧﺎﺻﻪ و ﻳﺎ اﻣﻜﺎن
اﻓﺰودن ﻣﺤﺪودﻳﺖﻫﺎ ﺑﻪ ﺟﺪول در ﻫﻨﮕﺎم اﻳﺠﺎد ﺟﺪول ﻓﺮاﻫﻢ ﺷﺪه اﺳﺖ .ﺑﺮاي ﻣﺜﺎل ﺑﺎ
اﺳﺘﻔﺎده از ﻛﻠﻤﻪ ﻛﻠﻴﺪي Defaultدر ﺟﻠﻮي ﻳﻚ ﺻﻔﺖ ﺧﺎﺻﻪ ﻣﻲﺗﻮان ﻣﻘﺪار ﭘﻴﺶ ﻓﺮض
را ﺑﺮاي آن ﺳﺘﻮن ﺗﻌﻴﻴﻦ ﻧﻤﻮد .در ﻋﺒﺎرت زﻳﺮ ﻣﻘﺪار ﭘﻴﺶ ﻓﺮض ﺳﺘﻮن ﺳﺎل ﺑﺮاﺑﺮ ﺑﺎ 1384
در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ:
ﺗﻤﺮﻳﻦ:
SQL ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده داﻧﺸﮕﺎه را ﺑﻪ ﺻﻮرت زﻳﺮ در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ ،ﻃﺮاﺣﻲ ﺑﻪ زﺑﺎن
آﻧﺮا ﻛﺎﻣﻞ ﻧﻤﺎﺋﻴﺪ:
وﺟﻮد دارد ﻛﻪ در ﻣﻮاردي ﺗﺸﺨﻴﺺ دﻫﻴﻢ ﻛﻪ ﻧﻮع داده ﻣﺮﺑﻮط ﺑﻪ ﻳﻚ ﺳﺘﻮن ﺑﺎﻳﺪ
اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد ﻛﻪ ﺳﺎﺧﺘﺎر ALTER TABLE ﺗﻐﻴﻴﺮ ﻳﺎﺑﺪ .ﺑﺮاي اﻳﻦ ﻣﻨﻈﻮر از دﺳﺘﻮر
ﻛﻠﻲ اﻳﻦ دﺳﺘﻮر در ذﻳﻞ آﻣﺪه اﺳﺖ:
ﻫﻤﺎﻧﻄﻮر ﻛﻪ در ﺑﺎﻻ ﻣﺸﺎﻫﺪه ﻣﻲ ﺷﻮد ﻟﻴﺴﺖ ﺗﻐﻴﻴﺮات ﻗﺎﺑﻞ اﻋﻤﺎل ﺑﺮ روي ﻳﻚ ﺟﺪول
ﻋﺒﺎرﺗﻨﺪ از:
اﻓﺰودن ﻳﻚ ﺳﺘﻮن ﺑﻪ ﺟﺪول •
ﺣﺬف ﻳﻚ ﺳﺘﻮن از ﺟﺪول •
اﻓﺰودن ﻳﻚ ﻣﺤﺪودﻳﺖ ﺑﻪ ﺟﺪول •
ﺣﺬف ﻳﻚ ﻣﺤﺪودﻳﺖ از ﺟﺪول •
اﻓﺰودن ﻣﻘﺪار اوﻟﻴﻪ ﺑﻪ ﻳﻚ ﺳﺘﻮن •
ﺣﺬف ﻣﻘﺪار اوﻟﻴﻪ ﻳﻚ ﺳﺘﻮن •
ﻣﻤﻜﻦ اﺳﺖ در اﻳﻨﺠﺎ اﻳﻦ ﺳﺌﻮال ﺑﻪ ذﻫﻦ ﺑﺮﺳﺪ ﻛﻪ ﭼﮕﻮﻧﻪ ﻣﻲ ﺗﻮان ﻧﻮع داده اي ﻳﻚ
ﺳﺘﻮن را ﺗﻐﻴﻴﺮ داد .در اﻳﻨﺠﺎ ﻻزم اﺳﺖ ﺑﻪ اﻳﻦ ﻧﻜﺘﻪ اﺷﺎره ﺷﻮد ﻛﻪ ﺗﻐﻴﻴﺮ ﻧﻮع داده اي
ﻳﻚ ﺳﺘﻮن اﺳﺎﺳﺎً در ﺑﺴﻴﺎري از ﭘﺎﻳﮕﺎه ﻫﺎي داده در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻧﺸﺪه اﺳﺖ و اﻳﻦ ﻣﻬﻢ
ﺑﻮاﺳﻄﻪ ﻧﻮع ﻗﺮار ﮔﺮﻓﺘﻦ ﻣﻘﺎدﻳﺮ ﻣﺮﺑﻮط ﺑﻪ ﺳﺘﻮن ﻫﺎ در ﻓﻀﺎي ﻓﻴﺰﻳﻜﻲ ﺣﺎﻓﻈﻪ ﻣﻲ ﺑﺎﺷﺪ
ﺑﮕﻮﻧﻪ اﻳﻜﻪ ﺣﺘﻲ در ﺑﻌﻀﻲ ﭘﺎﻳﮕﺎه ﻫﺎي داده اﻣﻜﺎن ﺗﻐﻴﻴﺮ ﺗﺮﺗﻴﺐ ﺳﺘﻮن ﻫﺎ در ﻳﻚ ﺟﺪول
وﺟﻮد ﻧﺪارد .اﻣﻜﺎن ﺗﻐﻴﻴﺮ ﻧﻮع داده ﻣﺮﺑﻮط ﺑﻪ ﻳﻚ ﺳﺘﻮن ﻓﻘﻂ در ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎه ﻫﺎي
داده و ﺑﺼﻮرت ﻣﻨﻄﻘﻲ ﻃﺮاﺣﻲ ﺷﺪه اﺳﺖ .ﺣﺎل در اداﻣﻪ ﺑﻪ ﻣﻨﻈﻮر آﺷﻨﺎﻳﻲ ﺑﻬﺘﺮ ﺑﺎ اﻳﻦ
ﻧﻮع دﺳﺘﻮر ﭼﻨﺪ ﻣﺜﺎل ﻣﺨﺘﻠﻒ را ﻧﻤﺎﻳﺶ ﻣﻲ دﻫﻴﻢ .ﻓﺮض ﻛﻨﻴﺪ ﻣﻲ ﺧﻮاﻫﻴﻢ ﺳﺘﻮﻧﻲ ﺑﻪ
اﺿﺎﻓﻪ ﻧﻤﺎﻳﻴﻢ .ﻋﺒﺎرت SalesPeople و از ﻧﻮع رﺷﺘﻪ اي را ﺑﻪ ﺟﺪوﻟﻲ ﺑﻪ ﻧﺎم fname ﻧﺎم
SQLﻣﺮﺑﻮﻃﻪ ﺑﻪ ﺷﺮح ذﻳﻞ ﺧﻮاﻫﺪ ﺑﻮد:
www.PDFgozar.com
ﺗﻮﺟﻪ :ﺗﻐﻴﻴﺮ ﻧﻮع داده در اﻛﺜﺮ SQLﻫﺎ ﻏﻴﺮ ﻣﺠﺎز اﺳﺖ و در ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎهﻫﺎي داده
ﻗﺒﻞ از ﺗﺎﻳﻴﺪ ﻋﻤﻞ ﻣﺬﻛﻮر اﻗﺪام ﺑﻪ ﺑﺮرﺳﻲ ﻣﺤﺘﻮاي دادهﻫﺎي ﺳﺘﻮن ﻣﻮرد ﻧﻈﺮ ﻣﻲ ﮔﺮدد
و در ﺻﻮرت ﻗﺎﺑﻞ ﻗﺒﻮل ﺑﻮدن ﻋﻤﻞ ﺗﺒﺪﻳﻞ ﻧﻮع اﻳﻦ درﺧﻮاﺳﺖ ﺗﺎﺋﻴﺪ ﻣﻲ ﮔﺮدد .ﺑﻌﻨﻮان
ﻣﺜﺎل ﺗﻐﻴﻴﺮ ﻧﻮع داده اي از ﻛﺎراﻛﺘﺮ ﺑﻪ ﻋﺪد ﻓﻘﻂ درﺻﻮرﺗﻴﻜﻪ ﺗﻤﺎﻣﻲ ﻣﻘﺎدﻳﺮ ﻳﻚ ﺳﺘﻮن از
ﻧﻮع ﻋﺪد ﺑﺎﺷﻨﺪ اﻣﻜﺎن ﭘﺬﻳﺮ اﺳﺖ و ﭼﻨﺎﻧﭽﻪ ﺣﺘﻲ ﻳﻚ ﻣﻘﺪار ﺷﺎﻣﻞ ﺣﺮوف ﺑﺎﺷﺪ،
اﻧﺠﺎم اﻳﻦ ﻛﺎر ﻏﻴﺮ ﻣﻤﻜﻦ اﺳﺖ.
4- 3- 3ﺣﺬف ﻳﻚ ﺟﺪول
در ﻣﻮاردي ﻣﻤﻜﻦ اﺳﺖ ﻻزم ﺑﺎﺷﺪ ﻳﻚ ﺟﺪول از ﭘﺎﻳﮕﺎه داده ﺣﺬف ﮔﺮدد .ﺑﺮاي اﻧﺠﺎم
www.PDFgozar.com
اﻳﻨﻜﺎر دﺳﺘﻮر زﻳﺮ ﻣﻮﺟﻮد ﻣﻲﺑﺎﺷﺪ .ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ در ﻫﻨﮕﺎم ﺣﺬف ﻳﻚ ﺟﺪول
ﺑﺎﻳﺪ ﺑﺮرﺳﻲ ﮔﺮدد ﻛﻪ ﭼﻨﺎﻧﭽﻪ ﺟﺪاول دﻳﮕﺮي ﺑﻪ اﻳﻦ ﺟﺪول ﻣﺮﺗﺒﻂ ﺑﺎﺷﻨﺪ ،ﭼﻪ ﻋﻤﻠﻲ
ﺑﺎﻳﺪ ﺑﺮروي ﺟﺪاول ﻣﺮﺗﺒﻂ اﻧﺠﺎم ﮔﻴﺮد و آﻳﺎ اﺳﺎﺳﺎً اﻣﻜﺎن ﺣﺬف ﺟﺪول وﺟﻮد دارد ﻳﺎ
ﺧﻴﺮ .ﺷﻜﻞ ﻛﻠﻲ دﺳﺘﻮر ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح زﻳﺮ ﻣﻲ ﺑﺎﺷﺪ:
]SELECT [DISTINCT
{ value expression
} … [ AS column name ] } ,
}*| { qualifier.
*|
… FROM { { table name [ AS ] [ correlation name ] } ,
] [ WHERE predicate
[ GROUP BY [ table name | correlation name ].column name
] ] [ COLLATE collation name
] [ HAVING predicate
] [ { UNION | INTERSECT | EXCEPT } [ ALL
}Select statement | { TABLE table name
] | table value constructor
; ] } … [ ORDER BY { { out put column | positive integer } [ ASC | DESC] ,
ﻫﻤﺎﻧﻄﻮر ﻛﻪ در ﻋﺒﺎرت ﺑﺎﻻ ﻣﺸﺎﻫﺪه ﻣﻲﮔﺮدد اﻳﻦ دﺳﺘﻮر ﺑﺴﻴﺎر ﭘﻴﭽﻴﺪه و ﻛﻠﻲ
ﻣﻲﺑﺎﺷﺪ و اﺳﺎﺳﺎً داراي زﻳﺮ دﺳﺘﻮراﺗﻲ ﻣﻲﺑﺎﺷﺪ ﻛﻪ در ﺑﺤﺚ اﻳﻦ ﻛﺘﺎب ﻧﻤﻲﮔﻨﺠﺪ .ﺑﺮاي
)1. D at a Q ue r y La n gu a ge ( D Q L
www.PDFgozar.com
راﺣﺘﻲ ﺑﻴﺸﺘﺮ ﺧﻮاﻧﻨﺪﮔﺎن ،ﺳﻌﻲ ﻣﻲﻛﻨﻴﻢ در اﺑﺘﺪا ﻣﺜﺎﻟﻬﺎي ﺳﺎده ﺗﺮ در ﻣﻮرد اﻳﻦ دﺳﺘﻮر را
ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار دﻫﻴﻢ و در اداﻣﻪ ﻫﻤﻴﻦ ﻓﺼﻞ در ﺧﺼﻮص ﺣﺎﻻت ﭘﻴﭽﻴﺪه ﺗﺮ اﻳﻦ
دﺳﺘﻮر و ﻃﺮﻳﻘﻪ ﺑﺎزﻳﺎﺑﻲ دادهﻫﺎ از ﭼﻨﺪﻳﻦ ﺟﺪول اﻃﻼﻋﺎﺗﻲ را ﺷﺮح ﺧﻮاﻫﻴﻢ داد .ﺣﺎﻟﺖ
ﻧﻴﺰ SFW ﺳﺎده ﺷﺪه دﺳﺘﻮر ﻣﺬﻛﻮر ﺑﺼﻮرت زﻳﺮ ﻗﺎﺑﻞ ﻧﻤﺎﻳﺶ اﺳﺖ ﻛﻪ ﺑﻪ آن اﺻﻄﻼﺣﺎ
ﻣﻲﮔﻮﻳﻨﺪ ﻛﻪ ﺣﺮوف اول ﻫﺮ ﻗﺴﻤﺖ ﻣﻲﺑﺎﺷﺪ.
ﺷﺮط ﻣﻮرد criteria ﻧﺎم ﺟﺪول و table name ﻧﺎم ﺳﺘﻮن ﻫﺎ، column name ﻛﻪ در آن
ﻧﻈﺮ ﺑﺮاي اﻧﺘﺨﺎب و ﺑﺎزﻳﺎﺑﻲ رﻛﻮردﻫﺎ ﻣﻲ ﺑﺎﺷﺪ.
در ﺣﺎﻟﺖ ﺑﺴﻴﺎر ﺳﺎده ﻣﻲﺗﻮان ﻓﺮض ﻛﺮد ﻛﻪ ﻣﻲﺧﻮاﻫﻴﻢ رﻛﻮردﻫﺎي ﻳﻚ ﺟﺪول
داراي EMP )ﻣﺜﻼ ﺟﺪول اﻃﻼﻋﺎت ﭘﺮﺳﻨﻠﻲ (EMPرا ﺑﺎزﻳﺎﺑﻲ ﻧﻤﺎﻳﻴﻢ .ﻓﺮض ﻛﻨﻴﻢ ﺟﺪول
ﻛﻪ ﻛﻠﻴﺪ اﺻﻠﻲ ﻣﻲﺑﺎﺷﺪ ﺳﺎﻳﺮ ﻣﻘﺎدﻳﺮ EMPNO ﺳﺎﺧﺘﺎر زﻳﺮ ﺑﺎﺷﺪ و ﺑﻐﻴﺮ از ﺻﻔﺖ ﺧﺎﺻﻪ
ﻣﻲﺗﻮاﻧﻨﺪ ﻣﻘﺪار NULLرا ﺑﭙﺬﻳﺮﻧﺪ:
در ﻋﺒﺎرت ذﻳﻞ ﻣﻲﺧﻮاﻫﻴﻢ ﻛﻠﻴﻪ رﻛﻮردﻫﺎي ﺟﺪول را ﺑﺎزﻳﺎﺑﻲ ﻧﻤﺎﻳﻴﻢ .ﻋﺒﺎرت ﻣﻮرد
ﻧﻈﺮ ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲﺑﺎﺷﺪ:
* Select
;From EMP
ﺑﻪ ﻣﻌﻨﺎي اﻧﺘﺨﺎﺑﻲ * ﻫﻤﺎﻧﻄﻮر ﻛﻪ در ﻋﺒﺎرت ﺑﺎﻻ ﻣﺸﺎﻫﺪه ﻣﻲ ﺷﻮد ﻋﻼﻣﺖ
ﺗﻤﺎﻣﻲ ﺳﺘﻮن ﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﺳﻄﺮﻫﺎ ﻣﻲ ﺑﺎﺷﺪ .اﻳﻦ دﺳﺘﻮر ﻣﻲ ﺗﻮاﻧﺪ ﺑﻪ ﺷﺮح ذﻳﻞ ﻧﻴﺰ
ﺑﺎﺷﺪ:
www.PDFgozar.com
*Select EMP.
; From EMP
ﻣﻲﺗﻮاﻧﺴﺘﻴﻢ ﻗﺒﻞ از اﺳﺎﻣﻲﺳﺘﻮﻧﻬﺎ ،ﻧﺎم ﺟﺪول را ﻧﻴﺰ ﺑﻜﺎر ﺑﺒﺮﻳﻢ ﻛﻪ از اﻳﻦ ﻛﺎر
اﺟﺘﻨﺎب ﻛﺮدﻳﻢ .ﺣﺎل ﻓﺮض ﻛﻨﻴﻢ ﻣﻲﺧﻮاﻫﻴﻢ ﺑﺪاﻧﻴﻢ ﻛﻪ اﮔﺮ ﺣﻘﻮق ﻫﺮ ﻳﻚ از ﭘﺮﺳﻨﻞ را
%10اﻓﺰاﻳﺶ دﻫﻴﻢ ﭼﻪ ﻣﻴﺰاﻧﻲ ﺣﻘﻮق ﺑﺮاي ﻫﺮ ﻳﻚ از ﭘﺮﺳﻨﻞ ﺧﻮاﻫﻴﻢ داﺷﺖ .ﻋﺒﺎرت
ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح زﻳﺮ ﺧﻮاﻫﺪ ﺑﻮد:
* sall ﭼﻨﺎﻧﭽﻪ ﺑﺨﻮاﻫﻴﻢ ﻋﺒﺎرت را واﺿﺢ ﺗﺮ ﺑﻴﺎن ﻛﻨﻴﻢ ﻻزم اﺳﺖ ﻛﻪ ﺑﺮاي ﻋﺒﺎرت
در ﻧﻈﺮ ﺑﮕﻴﺮﻳﻢ ﻛﻪ ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح زﻳﺮ NEWSALL ﻳﻚ ﻧﺎم ﻣﺴﺘﻌﺎر ﻣﺎﻧﻨﺪ 0.1
ﺧﻮاﻫﺪ ﺑﻮد.
Select empno,ename,sall * 0.1 as newsall
;From emp
)ﺑﻴﺎن ﻛﻨﻨﺪه ﺷﺮط( ﻣﺜﺎل دﻳﮕﺮي را WHERE ﺣﺎل ﺑﺮاي ﻣﺸﺨﺺ ﺷﺪن ﻋﺒﺎرت
ﻣﻄﺮح ﻣﻲﻛﻨﻴﻢ .ﻓﺮض ﻛﻨﻴﻢ ﻣﻲﺧﻮاﻫﻴﻢ اﻃﻼﻋﺎت ﻛﺴﺎﻧﻲ را ﻣﺸﺎﻫﺪه ﻛﻨﻴﻢ ﻛﻪ ﻣﻴﺰان ﺣﻘﻮق
آﻧﻬﺎ از 10000ﺗﻮﻣﺎن ﺑﻴﺸﺘﺮ ﺑﺎﺷﺪ .ﺑﻪ ﻋﺒﺎرت زﻳﺮ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ.
* SELECT
FROM emp
; WHERE sall > 10000
www.PDFgozar.com
ﻋﺒﺎرت ﺷﺮط ﻣﻄﺮح ﺷﺪه اﺳﺖ .ﭼﻨﺎﻧﭽﻪ WHERE در اﻳﻦ ﻋﺒﺎرت ﺟﻠﻮي ﻛﻠﻤﻪ
ﺻﺮﻓﺎ ﺑﻌﻀﻲ از ﺻﻔﺎت ﺧﺎﺻﻪ ﻣﻄﺮح ﺑﺎﺷﻨﺪ ﻣﻲﺗﻮان ﺑﺠﺎي اﺳﺘﻔﺎده از ﻋﻼﻣﺖ *،
اﺳﺎﻣﻲﺳﺘﻮﻧﻬﺎ )ﺻﻔﺎت ﺧﺎﺻﻪ( را ﻧﻮﺷﺖ.
و SELECT ﻳﻜﻲ از ﻧﻜﺎت ﺑﺴﺎﻳﺮ ﻣﻬﻢ اﻳﻦ اﺳﺖ ﻛﻪ ﻻزم اﺳﺖ ﺗﺮﺗﻴﺐ ﺳﻪ ﻛﻠﻤﻪ
رﻋﺎﻳﺖ ﺷﻮد .ﭼﻨﺎﻧﭽﻪ ﺗﺮﺗﻴﺐ ﻣﺬﻛﻮر رﻋﺎﺑﺖ ﻧﮕﺮدد ﺳﻴﺴﺘﻢ ﺑﺎ ﭘﻴﻐﺎم WHERE و FROM
ﺧﻄﺎ ﻣﻮاﺟﻬﻪ ﻣﻲﮔﺮدد .ﻫﻤﭽﻨﻴﻦ ﻣﻲﺗﻮان در ﻋﺒﺎرات ،ﻛﻠﻤﻪ WHEREرا در ﺻﻮرت ﻧﺒﻮدن
ﺷﺮط ﺑﻜﺎر ﻧﺒﺮد ،وﻟﻲ ﺣﺘﻤﺎ ﺑﺎﻳﺪ ﻛﻠﻤﺎت ﻛﻠﻴﺪي SELECTو FROMدر ﻋﺒﺎرت ﺑﺎﺷﻨﺪ.
ﺗﺬﻛﺮ :در ﺑﻌﻀﻲ ﺷﺮاﻳﻂ اﻣﻜﺎن دارد ﻛﻪ ﻛﻪ ﻛﺎرﺑﺮ ﺑﺨﻮاﻫﺪ ﻣﻘﺪاري را در ﺳﻴﺴﺘﻢ
ﻣﺤﺎﺳﺒﻪ ﻧﻤﺎﻳﺪ ﻛﻪ اﺻﻼً ارﺗﺒﺎﻃﻲ ﺑﺎ ﻫﻴﭻ ﺟﺪوﻟﻲ ﻧﺪارد .از آﻧﺠﺎﻳﻴﻜﻪ ﻻزم اﺳﺖ ﺣﺘﻤﺎ
ﻧﺎم ﺟﺪول ذﻛﺮ ﮔﺮدد ،ﻟﺬا در ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎه ﻫﺎي داده ﻳﻚ FROM ﺑﻌﺪ از ﻛﻠﻤﻪ
ﻧﺎم ﺟﺪول ﻓﺮﺿﻲ ORACLE ﺟﺪول ﻓﺮﺿﻲ ﺗﻌﺮﻳﻒ ﺷﺪه اﺳﺖ .ﻣﺜﻼ در ﭘﺎﻳﮕﺎه داده
DUALﻣﻲ ﺑﺎﺷﺪ .ﺑﻪ ﻋﺒﺎرت ذﻳﻞ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ:
SELECT 50 * 147
; FROM DUAL
ﺑﺼﻮرت ﺑﺴﻴﺎر ﺳﺎده ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﮔﺮﻓﺖ. SELECT ﺗﺎ اﻳﻦ ﻣﺮﺣﻠﻪ از دﺳﺘﻮر
ﻗﺴﻤﺖﻫﺎي ﭘﻴﺸﺮﻓﺘﻪ ﺗﺮ اﻳﻦ دﺳﺘﻮر در اداﻣﻪ ﻫﻤﻴﻦ ﻓﺼﻞ ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﺪ ﮔﺮﻓﺖ.
در اداﻣﻪ دﺳﺘﻮرات ﻛﺎر ﺑﺮ روي دادهﻫﺎ را ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻴﻢ داد.
) 1. D at a M a ni p u l a t i o n La n gu a ge ( D M L
www.PDFgozar.com
INSERT 1-5دﺳﺘﻮر
اﻳﻦ دﺳﺘﻮر ﺑﻪ ﻣﻨﻈﻮر وارد ﻛﺮدن )اﻓﺰودن( رﻛﻮرد ﻳﺎ رﻛﻮردﻫﺎﻳﻲ ﺑﻪ ﻳﻚ ﺟﺪول
ﺗﻌﺮﻳﻒ ﺷﺪه اﺳﺖ .ﺷﻜﻞ ﻛﻠﻲ دﺳﺘﻮر ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﺪ:
sub ﻫﻤﺎﻧﻄﻮر ﻛﻪ در دﺳﺘﻮر ﺑﺎﻻ ﻣﺸﺎﻫﺪه ﻣﻲﮔﺮدد ،در اﻧﺘﻬﺎي دﺳﺘﻮر از ﻋﺒﺎرت
queryاﺳﺘﻔﺎده ﺷﺪه اﺳﺖ ﻛﻪ اﻳﻦ دﺳﺘﻮر ﺑﻪ ﻣﻨﻈﻮر اﻧﺘﺨﺎب ﭼﻨﺪﻳﻦ رﻛﻮرد از ﻳﻚ ﺟﺌﻮل و
اﻓﺰودن ﻳﻜﺒﺎره آﻧﻬﺎ ﺑﻪ ﺟﺪول ﻣﺬﻛﻮر ﻣﻲﺑﺎﺷﺪ .در اﺑﺘﺪا ﺑﺮاي آﺷﻨﺎﻳﻲ ﺧﻮاﻧﻨﺪﮔﺎن ﺑﺎ اﻳﻦ
دﺳﺘﻮر ،اﻓﺰودن ﻳﻚ رﻛﻮرد ﺑﻪ ﺟﺪول را ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲدﻫﻴﻢ .در دﺳﺘﻮر ﺑﺎﻻ در
اﺑﺘﺪا ﻧﺎم ﺟﺪول را ﻛﻪ ﻣﻲﺧﻮاﻫﻴﻢ ﻣﻘﺎدﻳﺮي را ﺑﻪ آن ﺑﻴﺎﻓﺰاﻳﻴﻢ وارد ﻣﻲﻛﻨﻴﻢ و ﺳﭙﺲ
اﺳﺎﻣﻲﺳﺘﻮﻧﻬﺎﻳﻲ از رﻛﻮرد را ﻛﻪ ﻣﻲﺧﻮاﻫﻴﻢ ﻣﻘﺎدﻳﺮي را در آﻧﻬﺎ وارد ﻧﻤﺎﻳﻴﻢ را ﻧﻮﺷﺘﻪ و
ﺳﭙﺲ ﻣﻘﺎدﻳﺮ ﻣﺮﺗﺒﻂ ﺑﺎ ﻫﺮ ﺳﺘﻮن را وارد ﻣﻲﻧﻤﺎﻳﻴﻢ .ﺑﺮاي ﻣﺜﺎل ﻓﺮض ﻛﻨﻴﻢ ﻣﻲﺧﻮاﻫﻴﻢ در
ﺟﺪوﻟﻲ ﺑﻨﺎم SalesPeopleﻛﻪ داراي ﭼﻬﺎر ﺳﺘﻮن ﻣﻲﺑﺎﺷﺪ ،ﻳﻚ رﻛﻮرد ﺑﺎ ﻣﻘﺎدﻳﺮ ﻣﺸﺨﺼﻲ
ذﻳﻞ وارد ﻧﻤﺎﻳﻴﻢ .ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﻪ اﻳﻦ ﺷﺮح ﻣﻲﺑﺎﺷﺪ:
INSERT INTO Salespeople
;)VALUES (1001,'Peel','London', 12
ﺣﺎل ﻓﺮض ﻛﻨﻴﻢ ﻣﺜﻼ ﻧﻤﻲداﻧﻴﻢ ﻛﻪ ﺷﺨﺺ ﻣﺬﻛﻮر در ﺷﻬﺮ ﻟﻨﺪن اﻗﺎﻣﺖ دارد و
ﻣﻲﺧﻮاﻫﻴﻢ رﻛﻮرد ﻣﺬﻛﻮر را وارد ﻧﻤﺎﻳﻴﻢ ﺑﺪون آﻧﻜﻪ ﻛﻘﺪاري ﺑﺮاي ﺻﻔﺖ ﺧﺎﺻﻪ ﺷﻬﺮ در
ﻧﻈﺮ ﺑﮕﻴﺮﻳﻢ .ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح زﻳﺮ ﻣﻲﺑﺎﺷﺪ:
ﺗﻮﺟﻪ :ﺑﺮاي آﻧﺪﺳﺘﻪ از ﺳﺘﻮﻧﻬﺎﻳﻲ ﻛﻪ ﺑﻌﻨﻮان ﻛﻠﻴﺪ اﺻﻠﻲ ﻫﺴﺘﻨﺪ و ﻳﺎ اﻳﻨﻜﻪ ﺣﺘﻤﺎ ﺑﺎﻳﺪ
ﻣﻘﺪاري )ﻏﻴﺮ از (NULLرا داﺷﺘﻪ ﺑﺎﺷﻨﺪ ،ﻻزم اﺳﺖ ﻣﻘﺪاري در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﻮد ،در
ﻏﻴﺮ اﻳﻨﺼﻮرت اﻣﻜﺎن اﻓﺰودن رﻛﻮرد ﺟﺪﻳﺪ وﺟﻮد ﻧﺪارد.
www.PDFgozar.com
ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ ﺗﺮﺗﻴﺐ وارد ﻛﺮدن ﻣﻘﺎدﻳﺮ ﺑﻪ ﺗﺮﺗﻴﺐ ﺗﻌﺮﻳﻒ ﺳﺘﻮﻧﻬﺎ ﻓﺮض
ﺷﺪه اﺳﺖ .ﭼﻨﺎﻧﭽﻪ ﺑﺨﻮاﻫﻴﻢ ﺗﺮﺗﻴﺐ ورود ﻣﻘﺎدﻳﺮ ﺑﺮاي ﺳﺘﻮﻧﻬﺎ را ﺗﻐﻴﻴﺮ دﻫﻴﻢ و ﻳﺎ اﻳﻨﻜﻪ
ﺻﺮﻓﺎ ﺑﺨﻮاﻫﻴﻢ ﺑﺠﺎي ﻗﺮار دادن ﻣﻘﺪار NULLﺑﺮاي ﻳﻚ ﺳﺘﻮن ،اﺻﻼً ﻧﺎم آن ﺳﺘﻮن را ﺑﻜﺎر
ﻧﺒﺮﻳﻢ ،ﻻزم اﺳﺖ ﻧﺎم ﺳﺘﻮﻧﻬﺎ ﺑﻪ ﺗﺮﺗﻴﺐ ﻣﻮرد ﻧﻈﺮ در ﺟﻠﻮي ﻧﺎم ﺟﺪول وارد ﺷﺪه و ﺳﭙﺲ
ﺑﻪ ﻫﻤﺎن ﺗﺮﺗﻴﺐ ،ﻣﻘﺎدﻳﺮ ﻣﺮﺗﺒﻂ وارد ﺷﻮﻧﺪ .ﺑﺮاي ﺗﻮﺿﻴﺢ ﺑﻴﺸﺘﺮ ﻓﺮض ﻛﻨﻴﻢ ﺟﺪوﻟﻲ ﺑﻨﺎم
آن ﺟﺪول cnum و cname و city دارﻳﻢ ﻛﻪ ﻓﻘﻂ ﻣﻲﺧﻮاﻫﻴﻢ در ﺳﺘﻮنﻫﺎي Customers
ﻣﻘﺎدﻳﺮي را وارد ﻧﻤﺎﻳﻴﻢ .ﺑﻪ ﻋﺒﺎرت ذﻳﻞ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ:
ﺗﺎ اﻳﻦ ﻣﺮﺣﻠﻪ ﺻﺮﻓﺎ ﻳﻚ رﻛﻮرد ﺑﻪ ﺟﺪول وارد ﺷﺪه اﺳﺖ .ﭼﻨﺎﻧﭽﻪ ﺑﺨﻮاﻫﻴﻢ
ﺗﻌﺪادي رﻛﻮرد را از ﺟﺪول دﻳﮕﺮي اﻧﺘﺨﺎب و ﺑﻪ ﺟﺪول ﻣﺬﻛﻮر وارد ﻧﻤﺎﻳﻴﻢ ،ﺑﺠﺎي
را وارد ﻧﻤﺎﻳﻴﻢ .ﺑﺮاي روﺷﻦ Select اﺳﺘﻔﺎده از ﻛﻠﻤﻪ ،Valuesﻻزم اﺳﺖ ﺗﺎ ﻳﻚ ﻋﺒﺎرت
ﺷﺪن اﻳﻦ ﻣﻄﻠﺐ ﺑﻪ ﻋﺒﺎرت زﻳﺮ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ:
از ﺟﺪوﻟﻲ Total و FDate ﺣﺎل ﻓﺮض ﻛﻨﻴﺪ ﻣﻲﺧﻮاﻫﻴﻢ ﺻﺮﻓﺎ دو ﺳﺘﻮن ﺑﻨﺎمﻫﺎي
ﺑﻨﺎم DayTotalsرا ﺑﺎ ﻣﻘﺎدﻳﺮ اﻧﺘﺨﺎب ﺷﺪه از ﺟﺪول دﻳﮕﺮي ﭘﺮ ﻛﻨﻴﻢ .ﻣﺜﺎل زﻳﺮ ﺑﻴﺎﻧﮕﺮ اﻳﻦ
ﻣﻄﻠﺐ ﻣﻲﺑﺎﺷﺪ:
ﻧﻜﺘﻪ ﺑﺴﻴﺎر ﻣﻬﻢ در ﻧﻮﺷﺘﻦ اﻳﻦ ﻋﺒﺎرت اﻳﻦ اﺳﺖ ﻛﻪ ﺗﻌﺪاد ﺳﺘﻮﻧﻬﺎي اﻧﺘﺨﺎب ﺷﺪه در
ﻋﺒﺎرت Selectﺑﺎﻳﺪ ﺑﺮاﺑﺮ ﺑﺎ ﺗﻌﺪاد ﺳﺘﻮن ﻫﺎي ﺟﺪول اﺻﻠﻲ ﺑﺎﺷﺪ.
UPDATE 2-5دﺳﺘﻮر
www.PDFgozar.com
ﻳﻜﻲ از ﻣﻬﻤﺘﺮﻳﻦ ﻧﻴﺎز ﻫﺎي ﻛﺎرﺑﺮان ،ﺗﻮاﻧﺎﻳﻲ اﻋﻤﺎل ﺗﻐﻴﻴﺮات در داده ﻫﺎﻳﻲ اﺳﺖ ﻛﻪ ﻗﺒﻼ
در ﺳﻴﺴﺘﻢ وارد ﻛﺮده اﻧﺪ .اﻳﻦ ﻧﻴﺎز ﻧﺎﺷﻲ از ﺗﻐﻴﻴﺮ داده ﻫﺎ و ﻳﺎ وادر ﻛﺮدن ﻣﻘﺪار ﺑﺮاي
ﺳﺘﻮﻧﻬﺎﻳﻲ اﺳﺖ ﻛﻪ ﻗﺒﻼ ﻫﻴﭻ ﻣﻘﺪاري ﺑﺮاي آن در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻧﺸﺪه ﺑﻮد .دﺳﺘﻮر
ﺑﻪ ﻣﻨﻈﻮر اﻋﻤﺎل ﺗﻐﻴﻴﺮات در ﻣﻘﺎدﻳﺮ رﻛﻮردﻫﺎي ﺛﺒﺖ ﺷﺪه در ﺟﺪاول UPDATE
ﻃﺮاﺣﻲ ﺷﺪه و ﺷﻜﻞ ﻛﻠﻲ آن ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﺪ:
در اداﻣﻪ ﺑﺮاي ﺗﺸﺮﻳﺢ ﺑﻬﺘﺮ دﺳﺘﻮر ﻣﺬﻛﻮر ﻣﺜﺎﻟﻬﺎﻳﻲ آورده ﺷﺪه اﺳﺖ ﻛﻪ ﺣﺎﻻت
ﻣﺨﺘﻠﻒ اﺳﺘﻔﺎده از دﺳﺘﻮر را ﻧﺸﺎن ﻣﻲدﻫﺪ .در ﺳﺎده ﺗﺮﻳﻦ ﺣﺎﻟﺖ ﻓﺮض ﻛﻨﻴﺪ ﻣﻲﺧﻮاﻫﻴﻢ
ﻣﻘﺪار ﺻﻔﺖ ﺧﺎﺻﻪ ratingاز ﺟﺪول Customersرا ﺑﺮاﺑﺮ ﺑﺎ 200ﻛﻨﻴﻢ.
UPDATE customers
;SET rating = 200
ﻫﻤﺎﻧﻄﻮر ﻛﻪ در ﺑﺎﻻ ﻣﺸﺎﻫﺪه ﻣﻲ ﻛﻨﻴﺪ ﻫﻴﭻ ﻧﻮع ﺷﺮﻃﻲ ﺑﺮاي اﻧﺘﺨﺎب رﻛﻮردﻫﺎ در ﻧﻈﺮ
ﺑﺮاي rating ﮔﺮﻓﺘﻪ ﻧﺸﺪه اﺳﺖ .ﻟﺬا ﺑﺎ اﺟﺮا دﺳﺘﻮر ﺑﺎﻻ ﻣﻘﺪار ﺻﻔﺖ ﺧﺎﺻﻪ
ﺗﻤﺎﻣﻲ رﻛﻮردﻫﺎ ﺑﺮاﺑﺮ ﺑﺎ 200ﻣﻲ ﺷﻮد .در ﻣﺜﺎل زﻳﺮ ﻳﻚ ﺷﺮط را ﺟﻬﺖ ﺑﺮوز رﺳﺎﻧﻲ
ﺟﺪول اﺿﺎﻓﻪ ﻣﻲ ﻛﻨﻴﻢ:
UPDATE customers
SET rating = 200
;WHERE snum = 1001
ﺗﺎ اﻳﻦ ﻣﺮﺣﻠﻪ ﺻﺮﻓﺎ ﻳﻚ ﺻﻔﺖ ﺧﺎﺻﻪ از ﺟﺪول را ﺑﺮوز رﺳﺎﻧﻲ ﻛﺮدهاﻳﻢ .در اداﻣﻪ
ﻃﺮﻳﻘﻪ ﺑﺮوز رﺳﺎﻧﻲ ﭼﻨﺪ ﺻﻔﺖ ﺧﺎﺻﻪ ﺑﺼﻮرت ﻫﻤﺰﻣﺎن را ﻣﺸﺎﻫﺪه ﺧﻮاﻫﻴﻢ ﻛﺮد.
UPDATE Salespeople
SET sname = 'Gibson', city = 'Boston', comm. = 0.1
;WHERE snum = 1004
ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲﻛﻨﻴﺪ ﻫﺮ ﻳﻚ از ﺻﻔﺎت ﺧﺎﺻﻪ ﺑﺎ ﻳﻚ ﻛﺎﻣﺎ از دﻳﮕﺮي ﺟﺪا
ﺷﺪه اﺳﺖ .ﺗﺎ اﻳﻦ ﻗﺴﻤﺖ از ﻛﺎر ﻣﻌﻤﻮﻻً ﻣﻘﺪار ﻳﻚ ﺻﻔﺖ ﺧﺎﺻﻪ را ﺗﻐﻴﻴﺮ دادهاﻳﻢ .وﻟﻲ
www.PDFgozar.com
اﻳﻦ اﻣﻜﺎن ﻧﻴﺰ وﺟﻮد دارد ﻛﻪ ﻣﻘﺪار ﺟﺪﻳﺪ ،ﻋﺒﺎرﺗﻲ ﺷﺎﻣﻞ ﺻﻔﺎت ﺧﺎﺻﻪ ﻧﻴﺰ ﺑﺎﺷﺪ .ﺑﺮاي
ﻣﺜﺎل ﻣﻤﻜﻦ اﺳﺖ ﺑﺨﻮاﻫﻴﻢ ﻣﻘﺪار ﻳﻚ ﺻﻔﺖ ﺧﺎﺻﻪ را دو ﺑﺮاﺑﺮ ﻛﻨﻴﻢ.
Update salespeople
;SET comm = comm * 2
ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲﺷﻮد ﻣﻘﺪار ﺟﺪﻳﺪ در واﻗﻊ از ﭘﺮدازش ﺑﺮ روي ﻣﻘﺪار ﻗﺒﻠﻲ
ﻫﻤﺎن ﺻﻔﺖ ﺧﺎﺻﻪ ﺑﺪﺳﺖ آﻣﺪه اﺳﺖ .اﻳﻦ اﻣﻜﺎن وﺟﻮد دارد ﻛﻪ از ﻣﻘﺎدﻳﺮ ﺳﺎﻳﺮ ﺻﻔﺎت
ﺧﺎﺻﻪ ﻧﻴﺰ اﺳﺘﻔﺎده ﺷﻮد .ﺣﺎل ﻓﺮض ﻛﻨﻴﺪ ﻣﻲﺧﻮاﻫﻴﻢ ﻣﻘﺪار ﻳﻚ ﺻﻔﺖ ﺧﺎﺻﻪ را ﺗﺒﺪﻳﻞ
ﺑﻪ ) NULLﻣﻘﺪار ﻫﻴﭻ( ﻧﻤﺎﻳﻴﻢ .ﻋﺒﺎرت زﻳﺮ ﻃﺮﻳﻘﻪ اﻧﺠﺎم اﻳﻦ ﻛﺎر را ﻧﺸﺎن ﻣﻲدﻫﺪ.
UPDATE customers
SET rating = NULL
;'WHERE city = 'London
در واﻗﻊ ﺣﺬف ﻣﻘﺪار ﻳﻚ ﺳﺘﻮن از رﻛﻮرد NULL ﻋﻤﻞ ﺗﺒﺪﻳﻞ ﻳﻚ ﻣﻘﺪار ﺑﻪ
ﻣﻲﺑﺎﺷﺪ ﻛﻪ در اﻳﻨﺠﺎ ﺑﻪ آن ﺑﺮوز رﺳﺎﻧﻲ ﻣﻲﮔﻮﻳﻴﻢ .ﻣﻔﻬﻮم ﺣﺬف ﻳﻚ ﻣﻘﺪار از ﻳﻚ ﺳﺘﻮن
ﺑﺎ ﻣﻔﻬﻮم ﺣﺬف ﻳﻚ رﻛﻮرد )ﺳﻄﺮ( ﻣﺘﻔﺎوت ﻣﻲﺑﺎﺷﺪ .در اداﻣﻪ دﺳﺘﻮر DELETEرا ﺟﻬﺖ
ﺣﺬف رﻛﻮردﻫﺎ ﺗﻮﺿﻴﺢ ﺧﻮاﻫﻴﻢ داد.
DELETE 3-5دﺳﺘﻮر
ﻣﻤﻜﻦ اﺳﺖ در ﻣﻮاﻗﻌﻲ ﻛﺎرﺑﺮان ﺑﺨﻮاﻫﻨﺪ رﻛﻮرد )ﻫﺎﻳﻲ( را از ﺟﺪول اﻃﻼﻋﺎﺗﻲ ﺣﺬف
ﻧﻤﺎﻳﻨﺪ .در واﻗﻊ ﻛﻞ اﻃﻼﻋﺎت ﻳﻚ رﻛﻮرد )و ﻧﻪ ﻓﻘﻂ ﺑﻌﻀﻲ ﺳﺘﻮن ﻫﺎ( ﺣﺬف ﺧﻮاﻫﺪ
ﻃﺮاﺣﻲ ﺷﺪه اﺳﺖ .ﺷﻤﺎي ﻛﻠﻲ اﻳﻦ دﺳﺘﻮر در DELETE ﺷﺪ .ﺑﺮاي اﻳﻦ ﻣﻨﻈﻮر دﺳﺘﻮر
زﻳﺮ آﻣﺪه اﺳﺖ:
ﺑﺮاي درك ﺑﻬﺘﺮ دﺳﺘﻮر ،ﻣﺜﺎﻟﻬﺎﻳﻲ در ذﻳﻞ آﻣﺪه اﺳﺖ .در اﺑﺘﺪا ﻻزم ﺑﺬﻛﺮ اﺳﺖ
ﭼﻨﺎﻧﭽﻪ در ﻫﻨﮕﺎم اﺳﺘﻔﺎده از دﺳﺘﻮر ،DELETEﺷﺮﻃﻲ آورده ﻧﺸﻮد ﺑﺪﻳﻦ ﻣﻌﻨﺎ اﺳﺖ ﻛﻪ
ﻛﻠﻴﻪ اﻃﻼﻋﺎت ﻣﻮﺟﻮد در آن ﺟﺪول ﺣﺬف ﺷﻮد .ﺑﺮاي ﻣﺜﺎل دﺳﺘﻮر ذﻳﻞ ﺑﻴﺎﻧﮕﺮ ﺣﺬف
ﻛﻠﻴﻪ رﻛﻮردﻫﺎي ﻣﻮﺟﻮد در ﺟﺪول Customersﻣﻲﺑﺎﺷﺪ.
www.PDFgozar.com
ﺣﺎل در ﻣﺜﺎﻟﻲ دﻳﮕﺮ ﻳﻚ ﻋﺒﺎرت ﺷﺮﻃﻲ ﺟﻬﺖ ﺗﻌﻴﻴﻦ رﻛﻮردﻫﺎي ﻣﻮرد ﻧﻈﺮ ﺟﻬﺖ
ﺣﺬف ﻧﺸﺎن داده ﺷﺪه اﺳﺖ.
DELETE FROM salespeople
;WHERE snum = 1003
1
-6ﺟﺴﺘﺠﻮﻫﺎي ﭘﻴﺸﺮﻓﺘﻪ ﺑﺎ ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ
ﺗﺎ ﺑﺤﺎل ﻛﻠﻴﻪ ﻣﺜﺎل ﻫﺎي اراﺋﻪ ﺷﺪه در اﻳﻦ ﻓﺼﻞ ﺑﺮ اﺳﺎس ﻳﻚ ﺟﺪول ﻃﺮاﺣﻲ ﺷﺪه
ﺑﻮدﻧﺪ .ﻳﻜﻲ از اﻧﺘﻈﺎرات ﺑﺴﻴﺎر ﻣﻬﻢ ﻛﺎرﺑﺮان ﻳﻚ ﭘﺎﻳﮕﺎه داده ،اﻣﻜﺎن ﺑﺎزﻳﺎﺑﻲ اﻃﻼﻋﺎت
از ﺟﺪاول ﻣﺮﺗﺒﻂ ﺑﺎ ﻫﻢ ﻣﻲ ﺑﺎﺷﺪ .ﺑﻪ اﻳﻦ ﻣﻨﻈﻮر ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ ﺑﻴﻦ ﺟﺪاول در زﺑﺎن
SELECT در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ .اﻳﻦ ﻋﻤﻠﮕﺮ در واﻗﻊ ﺟﺰﺋﻲ از دﺳﺘﻮر SQL
ﻣﻲ ﺑﺎﺷﺪ .در واﻗﻊ ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ ﺑﺎﻋﺚ اﻳﺠﺎد ارﺗﺒﺎط ﺑﻴﻦ ﺟﺪاول ﺑﺮ اﺳﺎس ﻛﻠﻴﺪ اﺻﻠﻲ
و ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ﺑﻴﻦ آﻧﻬﺎ ﻣﻲﺑﺎﺷﺪ .اﻟﺒﺘﻪ در ﻣﻮاردي ﻧﻴﺰ ﻣﻤﻜﻦ اﺳﺖ ﻛﻪ ارﺗﺒﺎط ﺑﻴﻦ
ﺟﺪاول ﺑﺮ اﺳﺎس ﻳﻚ ﻋﺒﺎرت ﺧﺎص ﻳﺎ ﻳﻚ ﺗﺮﻛﻴﺐ ﺷﺮﻃﻲ ﺑﺎﺷﺪ .در ﺣﺎﻟﺖ ﻛﻠﻲ
ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ ﺑﻪ دو ﺻﻮرت ﻣﻲ ﺗﻮاﻧﺪ ﺑﺎﺷﺪ:
2
ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ داﺧﻠﻲ •
3
ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ •
اﻳﻦ ﻋﻤﻠﮕﺮﻫﺎ ﻫﺮﻳﻚ داراي اﻧﻮاع ﻣﺨﺘﻠﻔﻲ ﻣﻲ ﺑﺎﺷﺪ ﻛﻪ در اداﻣﻪ ﺑﻪ ﺷﺮح ﻫﺮ ﻳﻚ
ﺧﻮاﻫﻴﻢ ﭘﺮداﺧﺖ:
1. J oi n
2. In n e r Jo i n
3. O u te r Jo i n
www.PDFgozar.com
ﺑﻪ اﻳﻦ ﻋﻠﺖ اﺳﺖ ﻛﻪ در ﺑﻌﻀﻲ از زﺑﺎنﻫﺎ اﻳﻦ ﻧﻮع Inner Join اﺳﺘﻔﺎده از ﻋﺒﺎرت
و )(EMP ﭘﻴﻮﻧﺪ را ﭘﻴﻮﻧﺪ داﺧﻠﻲ ﻣﻲﻧﺎﻣﻨﺪ .ﺑﺮاي درك ﺑﻬﺘﺮ دو ﺟﺪول اﻃﻼﻋﺎت ﭘﺮﺳﻨﻞ
ﺳﺎﺧﺘﺎر ﺳﺎزﻣﺎﻧﻲ ) (DEPTرا ﺑﻪ ﺻﻮرت آﻧﭽﻪ ﻛﻪ در زﻳﺮ آﻣﺪه اﺳﺖ در ﻧﻈﺮ ﻣﻲﮔﻴﺮﻳﻢ:
EMP
EMPNO ENAME SAL DEPTNO
7369 SMITH 800 20
7499 ALLEN 1600 30
7521 WARD 1250 30
7566 JONES 2975 20
7654 MARTIN 1250 30
7698 BLAKE 2850 30
7782 CLARK 2450 10
7788 SCOTT 3000 20
7839 KING 5000 10
7844 TURNER 1500 30
7876 ADAMS 1100 20
7900 JAMES 950 30
www.PDFgozar.com
DEPT
DEPTNO DNAME LOC
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
Deptno ﺣﺎل ﻓﺮض ﻛﻨﻴﻢ ﻣﻲﺧﻮاﻫﻴﻢ دو ﺟﺪول ﻣﺬﻛﻮر را ﺑﺮ اﺳﺎس ﺻﻔﺖ ﺧﺎﺻﻪ
ﺑﻪ ﻳﻜﺪﻳﮕﺮ ﭘﻴﻮﻧﺪ داده و ﺑﺒﻴﻨﻴﻢ ﻫﺮ ﻳﻚ از ﭘﺮﺳﻨﻞ در ﻛﺪام واﺣﺪ ﻣﺸﻐﻮل ﺑﻜﺎر ﻫﺴﺘﻨﺪ.
ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲﺑﺎﺷﺪ:
ﺑﺮ اﺳﺎس ﺻﻔﺖ ﺧﺎﺻﻪ Dept و Emp ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﻼﺣﻈﻪ ﻣﻲﮔﺮدد دو ﺟﺪول
ﺑﻌﻨﻮان ﻛﻠﻴﺪ ﺧﺎرﺟﻲ Emp ﺑﻌﻨﻮان ﻛﻠﻴﺪ اﺻﻠﻲ و در ﺟﺪول Dept ﻛﻪ در ﺟﺪول Deptno
ﻣﻲﺑﺎﺷﺪ ،ﺑﻪ ﻳﻜﺪﻳﮕﺮ ﭘﻴﻮﻧﺪ داده ﺷﺪهاﻧﺪ .ﺑﺎ اﻳﻦ وﺻﻒ ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﻋﺒﺎرت ﻣﺬﻛﻮر
ﺑﻪ ﺻﻮرت زﻳﺮ ﺧﻮاﻫﺪ ﺑﻮد:
ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﻴﺪ ﻛﻪ ﻣﻲﺗﻮان ﻋﺒﺎرت ﺑﺎﻻ را ﺑﺪون اﺳﺘﻔﺎده از ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ ﻧﻴﺰ
ﻧﻮﺷﺖ .ﻧﺤﻮه ﻧﻮﺷﺘﻦ ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﺪون ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲﺑﺎﺷﺪ:
Select Emp.ename, Emp.deptno, Dept.dname
From Emp , Dept
Where emp.deptno = dept.deptno
اﻳﻦ وﺿﻌﻴﺖ ﺑﻴﺸﺘﺮ زﻣﺎﻧﻲ ﻧﻤﻮد ﭘﻴﺪا ﻣﻲﻛﻨﺪ ﻛﻪ ﺑﺨﻮاﻫﻴﻢ ﭼﻨﺪ ﺟﺪول ﺑﺎ
اﺳﺎﻣﻲﻣﺨﺘﻠﻒ و ﻳﺎ ﻧﺴﺒﺘﺎ ﻃﻮﻻﻧﻲ را ﺑﻪ ﻳﻜﺪﻳﮕﺮ ﭘﻴﻮﻧﺪ ﺑﺰﻧﻴﻢ و ﻳﺎ اﻳﻨﻜﻪ در ﻣﻮاردي
ﺑﺨﻮاﻫﻴﻢ ﻳﻚ ﺟﺪول را ﺑﺎ ﺧﻮدش ﭘﻴﻮﻧﺪ ﺑﺰﻧﻴﻢ.
1
ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ ﻃﺒﻴﻌﻲ
ﺑﻨﻮﻳﺴﻴﻢ .ﻻزم ﺑﻪ Natural join ﺣﺎل ﻣﻲ ﺧﻮاﻫﻴﻢ ﻋﺒﺎرت ﻣﺬﻛﻮر را ﺑﺮ اﺳﺎس ﻋﻤﻠﮕﺮ
در ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎه ﻫﺎي داده ﻃﺮاﺣﻲ ﺷﺪه Natural Join ذﻛﺮ اﺳﺖ ﻛﻪ ﻧﻮع ﭘﻴﻮﻧﺪ
اﺳﺖ و ﻣﻤﻜﻦ اﺳﺖ در ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎه ﻫﺎي داده اﻳﻦ ﻧﻮع ﭘﻴﻮﻧﺪ ﭘﺸﺘﻴﺒﺎﻧﻲ ﻧﺸﻮد .ﻧﻮع
ﺑﺮ اﻳﻦ اﺳﺎس ﻋﻤﻞ ﻣﻲ ﻛﻨﺪ ﻛﻪ ﻛﻠﻴﺪ ارﺗﺒﺎﻃﻲ را ﺑﺼﻮرت اﺗﻮﻣﺎﺗﻴﻚ از Natural Join
دﻳﻜﺸﻨﺮي ﭘﺎﻳﮕﺎه داده ﻣﻲ ﺧﻮاﻧﺪ .ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ در اﻳﻦ ﻧﻮع از ﭘﻴﻮﻧﺪ ﻧﻴﺎزي ﺑﻪ ﺗﻌﺮﻳﻒ
ﺷﺮط ﭘﻴﻮﻧﺪ ﻧﻴﺴﺖ .ﻣﺜﺎل زﻳﺮ ﺑﻴﺎﻧﮕﺮ اﻳﻦ وﺿﻌﻴﺖ ﻣﻲ ﺑﺎﺷﺪ:
2
3- 6ﻋﻤﻠﮕﺮﻫﺎي ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ
در ﺑﺴﻴﺎري از ﻣﻮارد ﻣﻤﻜﻦ اﺳﺖ ﺑﻌﻀﻲ ﻣﻘﺎدﻳﺮ ﺳﺘﻮﻧﻬﺎﻳﻲ ﻛﻪ ﻣﻲ ﺧﻮاﻫﻴﻢ ﺑﻪ ﻳﻜﺪﻳﮕﺮ
ﺑﺎﺷﻨﺪ .در ﭼﻨﻴﻦ ﺷﺮاﻳﻄﻲ ﭼﻨﺎﻧﭽﻪ از ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ NULL ﭘﻴﻮﻧﺪ ﺑﺰﻧﻴﻢ ،داراي ﻣﻘﺪار
ﺑﺼﻮرت ﻋﺎدي اﺳﺘﻔﺎده ﻧﻤﺎﻳﻴﻢ ،ﺗﻌﺪادي از رﻛﻮردﻫﺎ را ﻧﻤﻲ ﺗﻮاﻧﻴﻢ ﺑﺎزﻳﺎﺑﻲ ﻧﻤﺎﻳﻴﻢ .ﺣﺎل
ﭼﻨﺎﻧﭽﻪ ﺑﺨﻮاﻫﻴﻢ ﺑﮕﻮﻳﻴﻢ ﻛﻪ در ﭘﻴﻮﻧﺪ ﻣﺬﻛﻮر ﺗﻤﺎﻣﻲ رﻛﻮردﻫﺎي اﻃﻼﻋﺎﺗﻲ ﻣﻮرد ﻧﻈﺮ از
ﻳﻚ ﺟﺪول ﻧﻤﺎﻳﺶ داده ﺷﻮد و از ﺟﺪول دوم اﻧﺪﺳﺘﻪ از رﻛﻮردﻫﺎﻳﻲ ﻛﻪ در ﺷﺮط ﺑﻴﻦ
دو ﺟﺪول ﺻﺪق ﻣﻲ ﻛﻨﻨﺪ ﻧﻤﺎﻳﺶ داده ﺷﻮﻧﺪ ،ﻻزم اﺳﺖ ﺗﺎ از ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ اﺳﺘﻔﺎده
ﮔﺮدد .ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ ﺑﻪ ﺻﻮرت ﻫﺎي زﻳﺮ ﻗﺎﺑﻞ ﭘﻴﺎده ﺳﺎزي ﻣﻲ ﺑﺎﺷﺪ:
3
ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ ﭼﭗ •
1
ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ راﺳﺖ •
1. N at u r a l J o i n
2. O u te r Jo i n
3. Le f t O ut e r J o i n
www.PDFgozar.com
2
ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ ﻛﺎﻣﻞ •
Update emp
set deptno = NULL
;’where ename = ‘KING
ﺑﻌﻨﻮان ﺟﺪول ﺳﻤﺖ راﺳﺖ ﭘﻴﻮﻧﺪ و DEPT ﺣﺎل ﺑﻪ ﻋﺒﺎرت زﻳﺮ ﻛﻪ در آن ﺟﺪول
ﺟﺪول EMPﺑﻌﻨﻮان ﺟﺪول ﺳﻤﺖ ﭼﭗ ﭘﻴﻮﻧﺪ ﻣﻲ ﺑﺎﺷﻨﺪ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ:
1. R i gh t O ut e r J o i n
2. F u ll O u te r Jo i n
www.PDFgozar.com
دو ﻋﺒﺎرت ﻣﺬﻛﻮر از ﻟﺤﺎظ ﻣﻌﻨﺎﻳﻲ ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﺑﺮاﺑﺮ ﻫﺴﺘﻨﺪ و ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از
ﻋﺒﺎرت ﺑﺎﻻ ﺑﻪ ﺷﺮح ﺟﺪول 4-8ﺧﻮاﻫﺪ ﺑﻮد .ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲﻛﻨﻴﺪ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ
اﻳﻨﻜﻪ ﻣﻘﺪار deptnoاز ﺟﺪول EMPﺑﺮاﺑﺮ ﺑﺎ NULLﺷﺪه اﺳﺖ ،ﻟﺬا ﻫﻴﭻ رﻛﻮرد ﻣﺘﻨﺎﻇﺮي
NULL ﺑﺎ ﺟﺪول DEPTوﺟﻮد ﻧﺪاﺷﺘﻪ و ﻣﻘﺪار ﺟﺎﻳﮕﺰﻳﻦ ﺑﺮاي ﺳﺘﻮﻧﻬﺎي ﻣﺮﺑﻮﻃﻪ ﺑﺮاﺑﺮ ﺑﺎ
ﻣﻲﺑﺎﺷﺪ.
ﻣﻤﻜﻦ اﺳﺖ اﻳﻦ ﺳﺌﻮال ﻣﻄﺮح ﮔﺮدد ﻛﻪ ﭼﺮا ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﻪ دو ﺷﻜﻞ ﻣﺨﺘﻠﻒ
ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ .در ﭘﺎﺳﺦ ﺑﻪ اﻳﻦ ﺳﺌﻮال ﺑﺎﻳﺪ ﮔﻔﺖ ﻛﻪ در زﺑﺎن SQLاراﺋﻪ ﺷﺪه از ﺳﻮي
ANSIاز ﻛﻠﻤﻪ Left Outer Joinاﺳﺘﻔﺎده ﺷﺪه اﺳﺖ .وﻟﻲ در ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎهﻫﺎي داده اﻳﻦ
ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ .ﺣﺘﻲ در ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎهﻫﺎي داده از Left Join ﻋﺒﺎرت ﺑﻪ ﺻﻮرت
ﻋﻼﻣﺖ " " +ﺑﺠﺎي اﻳﻦ ﻋﺒﺎرت اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ.
ﻫﺮ ﮔﺎه ﺑﺨﻮاﻫﻴﻢ در ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ارﺗﺒﺎط ﺑﻴﻦ دو ﺟﺪول ،ﺗﻤﺎﻣﻲ رﻛﻮردﻫﺎي ﻣﻮرد
ﻧﻈﺮ از ﺟﺪول ﺳﻤﺖ راﺳﺖ )ﺟﺪول دوم( را اﻧﺘﺨﺎب ﻛﺮده و از ﺟﺪول ﺳﻤﺖ ﭼﭗ
ﺻﺮﻓﺎ اﻧﺪﺳﺘﻪ از رﻛﻮردﻫﺎﻳﻲ ﻛﻪ ﺷﺮط ارﺗﺒﺎط ﺑﻴﻦ دو ﺟﺪول را دارﻧﺪ ﻧﻤﺎﻳﺶ ﺑﺪﻫﻴﻢ ،از
ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ راﺳﺖ اﺳﺘﻔﺎده ﻣﻲ ﻛﻨﻴﻢ .ﺑﺪﻳﻬﻲ اﺳﺖ در ﭼﻨﻴﻦ ﺷﺮاﻳﻄﻲ ﺑﺮاي ﺑﻌﻀﻲ از
رﻛﻮردﻫﺎي ﺟﺪول ﺳﻤﺖ راﺳﺖ ﭘﻴﻮﻧﺪ ،ﻫﻴﭻ ﻣﻘﺪاري از ﺟﺪول ﺳﻤﺖ ﭼﭗ ﻧﻤﻲ ﺗﻮان
ﻳﺎﻓﺖ .ﺑﺎ اﻳﻦ اوﺻﺎف ﺑﺮاي اﻧﺪﺳﺘﻪ از ﺳﺘﻮﻧﻬﺎي اﻧﺘﺨﺎب ﺷﺪه از ﺟﺪول ﺳﻤﺖ ﭼﭗ
ﭘﻴﻮﻧﺪ ﻛﻪ ﻣﻘﺪاري ﻧﺪارﻧﺪ ،ﻣﻘﺪار NULLدر ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺧﻮاﻫﺪ ﺷﺪ.
ﻛﻪ ﻛﻤﻲﻗﺒﻞ ﺗﺮ ﻣﻌﺮﻓﻲ DEPT و EMP ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع ﻫﻤﺎن دو ﺟﺪول
ﻳﻚ رﻛﻮرد DEPT ﺷﺪﻧﺪ را ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲدﻫﻴﻢ .ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﻲداﻧﻴﺪ در ﺟﺪول
وﺟﻮد ﻧﺪارد ﻛﻪ دﻣﻘﺪار EMP وﺟﻮد دارد .وﻟﻲ ﻫﻴﭻ رﻛﻮردي در ﺟﺪول deptno = 40 ﺑﺎ
در آن ﺑﺮاﺑﺮ ﺑﺎ 40ﺑﺎﺷﺪ .ﺣﺎل ﺑﻪ ﻋﺒﺎرت زﻳﺮ ﻛﻪ در آن ﺟﺪول deptno ﺻﻔﺖ ﺧﺎﺻﻪ
ﺑﻌﻨﻮان ﺟﺪول ﺳﻤﺖ راﺳﺖ EMP ﺑﻌﻨﻮان ﺟﺪول ﺳﻤﺖ ﭼﭗ ﭘﻴﻮﻧﺪ و ﺟﺪول DEPT
ﭘﻴﻮﻧﺪ ﻣﻲﺑﺎﺷﻨﺪ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ:
Select e.ename , e.deptno , d.dname
RIGHT JOIN DEPT d From EMP e
ON e.deptno = d.deptno
و ﻳﺎ
Select e.ename , e.deptno , d.dname
EMP e RIGHT OUTER JOIN DEPT d From
ON e.deptno = d.deptno
ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﻋﺒﺎرت ﺑﺎﻻ ﺑﻪ ﺷﺮح ذﻳﻞ ﺧﻮاﻫﺪ ﺑﻮد:
ﺑﻌﻨﻮان ﺟﺪول ﺳﻤﺖ راﺳﺖ ﭘﻴﻮﻧﺪ و DEPT ﺣﺎل ﺑﻪ ﻋﺒﺎرت زﻳﺮ ﻛﻪ در آن ﺟﺪول
ﺟﺪول EMPﺑﻌﻨﻮان ﺟﺪول ﺳﻤﺖ ﭼﭗ ﭘﻴﻮﻧﺪ ﻣﻲﺑﺎﺷﻨﺪ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ:
www.PDFgozar.com
1. G ro u p B y
www.PDFgozar.com
و ename را ﺑﺮ اﺳﺎس ﺻﻔﺖ ﺧﺎﺻﻪ EMP ﺑﻪ ﻋﺒﺎرت زﻳﺮ ﻛﻪ رﻛﻮردﻫﺎي ﺟﺪول
ﺑﺼﻮرت ﺻﻌﻮدي ﻣﺮﺗﺐ ﻣﻲﻛﻨﺪ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ:
* Select
From EMP
ORDER BY ename ASC
* Select
www.PDFgozar.com
From EMP
ORDER BY deptno DESC , ename ASC
3- 7ﺗﻮاﺑﻊ ﺗﺠﻤﻌﻲ
ﻳﻜﻲ از ﻧﻴﺎزﻫﺎي ﻣﻌﻤﻮل ﻛﺎرﺑﺮان اﻧﺠﺎم ﻣﺤﺎﺳﺒﺎﺗﻲ ﺑﺮ روي ﺑﻌﻀﻲ ﺳﺘﻮﻧﻬﺎ ﻣﻲ ﺑﺎﺷﺪ.
ﺑﻌﻨﻮان ﻣﺜﺎل ﻓﺮض ﻛﻨﻴﺪ ﻣﻲﺧﻮاﻫﻴﺪ ﻣﻴﺎﻧﮕﻴﻦ ﻧﻤﺮه داﻧﺶ آﻣﻮزان در ﻳﻚ ﻛﻼس ﺑﺮاي
ﻳﻚ درس را ﺑﺪﺳﺖ آورﻳﺪ .ﺑﺪﻳﻬﻲ اﺳﺖ ﻛﻪ اﻳﻦ ﻋﻤﻞ ﺑﺼﻮرت ﺳﺘﻮﻧﻲ اﻧﺠﺎم ﻣﻲ ﮔﻴﺮد
و ﺑﺎ ﺳﺎﻳﺮ دﺳﺘﻮراﺗﻲ ﻛﻪ ﺗﺎ ﺑﺤﺎل ﮔﻔﺘﻪ اﻳﻢ ﻣﺘﻔﺎوت ﻣﻲ ﺑﺎﺷﺪ .ﺗﻮاﺑﻌﻲ ﻛﻪ ﺑﺮ روي ﻣﻘﺎدﻳﺮ
ﺳﺘﻮﻧﻬﺎ ﻋﻤﻞ ﻣﻲﻛﻨﻨﺪ را ﺗﻮاﺑﻊ ﺗﺠﻤﻌﻲ ﻣﻲ ﻧﺎﻣﻴﻢ .ﻟﻴﺴﺘﻲ از ﻣﻌﺮوﻓﺘﺮﻳﻦ اﻳﻦ ﺗﻮاﺑﻊ ﺑﻪ
ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﻨﺪ:
ﻧﻜﺘﻪاي ﻛﻪ ﺑﺎﻳﺪ ﺑﺪان ﺗﻮﺟﻪ ﻛﺮد اﻳﻦ اﺳﺖ ﻛﻪ ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﺗﻮاﺑﻊ ﻣﺬﻛﻮر
ﺑﺼﻮرت ﻳﻚ ﻣﻘﺪار ﻣﻲﺑﺎﺷﻨﺪ .ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ ﻫﺮ ﭘﺎﻳﮕﺎهدادهاي ﻋﻼوه ﺑﺮ ﺗﻮاﺑﻊ
ﻣﺬﻛﻮر ،ﺗﻌﺪادي ﺗﺎﺑﻊ دﻳﮕﺮ ﻧﻴﺰ ﻃﺮاﺣﻲ ﻛﺮده اﺳﺖ .ﺑﺮاي ﻣﺜﺎل در ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎهﻫﺎي داده
ﺗﻮاﺑﻌﻲ ﺟﻬﺖ ﻣﺤﺎﺳﺒﻪ وارﻳﺎﻧﺲ و ﻳﺎ اﻧﺤﺮاف ﻣﻌﻴﺎر ﻃﺮاﺣﻲ ﺷﺪهاﻧﺪ .ﺑﺮاي درك ﺑﻬﺘﺮ
ﻣﻮﺿﻮع ،ﺟﺪول EMPرا در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ .ﻓﺮض ﻛﻨﻴﺪ ﻣﻲﺧﻮاﻫﻴﻢ ﺗﻌﺪاد ﭘﺮﺳﻨﻠﻲ ﻛﻪ ﻣﻘﺪار
ﺻﻔﺖ ﺧﺎﺻﻪ deptnoدر آﻧﻬﺎ ﺑﺮاﺑﺮ ﺑﺎ 10ﺑﺎﺷﺪ را ،ﺑﺪﺳﺖ آورﻳﻢ .ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح
ذﻳﻞ ﺧﻮاﻫﺪ ﺑﻮد:
SELECT Count (*) as Tedad
FROM EMP
; WHERE deptno = 10
www.PDFgozar.com
TEDAD
3
ﺣﺎل ﻓﺮض ﻛﻨﻴﺪ ﻣﻲﺧﻮاﻫﻴﻢ ﺑﺎﻻﺗﺮﻳﻦ و ﭘﺎﻳﻴﻦ ﺗﺮﻳﻦ ﻣﻴﺰان ﺣﻘﻮق ﭘﺮﺳﻨﻠﻲ ﻛﻪ ﻣﻘﺪار
ﺻﻔﺖ ﺧﺎﺻﻪ deptnoدر آﻧﻬﺎ ﺑﺮاﺑﺮ ﺑﺎ 10ﺑﺎﺷﺪ را ،ﺑﺪﺳﺖ آورﻳﻢ .ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح
ذﻳﻞ ﺧﻮاﻫﺪ ﺑﻮد:
SELECT Max(sal) as maxval , Min(sal) as minval
From EMP
; Where deptno =10
ﺣﺎل ﻓﺮض ﻛﻨﻴﺪ ﻣﻲﺧﻮاﻫﻴﻢ ﺣﺪاﻗﻞ ﻣﻴﺎﻧﮕﻴﻦ ﺣﻘﻮق را ﺑﺮاي ﭘﺮﺳﻨﻞ ﺗﻌﺮﻳﻒ ﺷﺪه
در ﺟﺪول EMPﺑﺮ ﺣﺴﺐ ﺻﻔﺖ ﺧﺎﺻﻪ deptnoﺑﺪﺳﺖ آورﻳﻢ .در اﻳﻦ ﺷﺮاﻳﻂ ﻻزم اﺳﺖ
ﻧﻴﺰ اﺳﺘﻔﺎده ﻧﻤﻮد .ﺑﻪ ﻋﺒﺎرت زﻳﺮ ﻛﻪ Group By ﻋﻼوه ﺑﺮ اﺳﺘﻔﺎده از ﺗﻮاﺑﻊ ﺗﺠﻤﻌﻲ از
ﺑﻴﺎﻧﮕﺮ اﻳﻦ درﺧﻮاﺳﺖ ﻣﻲﺑﺎﺷﺪ ﺗﻮﺟﻪ ﻛﻨﻴﺪ:
Select deptno , Min(sal) as MinVal
From emp
Group by deptno
DEPTNO MINVAL
10 1300
20 800
30 950
HAVING 4- 7ﻋﻤﻠﮕﺮ
www.PDFgozar.com
DEPTNO
20
30
BETWEEN 5- 7ﻋﻤﻠﮕﺮ
ﻳﻜﻲ از وﻳﮋﮔﻲ ﻫﺎي ﻣﻮرد ﻧﻴﺎز ﻛﺎرﺑﺮان ،اﻣﻜﺎن اﻧﺘﺨﺎب رﻛﻮردﻫﺎ ﺑﺮ اﺳﺎس ﻣﻘﺎدﻳﺮي
اﺳﺖ ﻛﻪ در ﻳﻚ ﺑﺎزه ﻗﺮار داﺷﺘﻪ ﺑﺎﺷﻨﺪ .ﺑﺮاي ﻣﺜﺎل ﻓﺮض ﻛﻨﻴﺪ ﻟﻴﺴﺖ ﭘﺮﺳﻨﻠﻲ را
ﺑﺎﺷﺪ .ﻋﺒﺎرت زﻳﺮ ﻧﺤﻮه اﺳﺘﻔﺎده از دﺳﺘﻮر 2000 ﺑﺨﻮاﻫﻴﻢ ﻛﻪ ﺣﻘﻮق آﻧﻬﺎ ﺑﻴﻦ 1000و
Betweenرا ﻧﺸﺎن ﻣﻲ دﻫﺪ:
Select ename ,Sal
From EMP
; Where sal Between 1000 and 2000
www.PDFgozar.com
ENAME SAL
ALLEN 1600
WARD 1250
MARTIN 1250
TURNER 1500
ADAMS 1100
MILLER 1300
LIKE 6- 7ﻋﻤﻠﮕﺮ
در ﺑﻌﻀﻲ ﻣﻮارد ﻛﺎرﺑﺮان ﻧﻴﺎز دارﻧﺪ ﺗﺎ ﻋﺒﺎرﺗﻲ را در ﺑﻴﻦ ﻣﻘﺎدﻳﺮ ﻳﻚ ﺻﻔﺖ ﺧﺎﺻﻪ
ﺟﺴﺘﺠﻮ ﻧﻤﺎﻳﻨﺪ .اﻳﻦ وﺿﻌﻴﺖ ﺑﻴﺸﺘﺮ زﻣﺎﻧﻲ رخ ﻣﻲ دﻫﺪ ﻛﻪ ﻛﺎرﺑﺮان در ﺣﺎل ﻛﺎر ﺑﺎ
ﻣﻘﺎدﻳﺮ رﺷﺘﻪ اي ﺑﺎﺷﻨﺪ .در اﻳﻦ ﺷﺮاﻳﻂ از ﻋﻤﻠﮕﺮ Likeاﺳﺘﻔﺎده ﻣﻲﻧﻤﺎﻳﻴﻢ.
ﺑﻪ دﻧﺒﺎل اﻓﺮادي ﺑﮕﺮدﻳﻢ ﻛﻪ در EMP ﺑﺮاي ﻣﺜﺎل ﻓﺮض ﻛﻨﻴﺪ ﻣﻲﺧﻮاﻫﻴﻢ در ﺟﺪول
آﻧﻬﺎ ﻛﻠﻤﻪ ’ ‘AMﺑﺎﺷﺪ .ﻋﺒﺎرت زﻳﺮ ﻧﺤﻮه ﻧﻮﺷﺘﻦ ﭼﻨﻴﻦ درﺧﻮاﺳﺘﻲ ename ﺻﻔﺖ ﺧﺎﺻﻪ
را ﻧﺸﺎن ﻣﻲدﻫﺪ:
“ “ AM ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲﻛﻨﻴﺪ ﻋﻼﻣﺖ " " %ﻧﺸﺎن ﻣﻲدﻫﺪ ﻛﻪ ﻛﻠﻤﻪ
ﻣﻲﺗﻮاﻧﺪ در ﺑﻴﻦ ﻣﻘﺎدﻳﺮ ﻣﻮﺟﻮد ﺑﺎﺷﺪ و ﻻزم ﻧﻴﺴﺖ ﺣﺘﻤﺎ در اﺑﺘﺪا ﻳﺎ اﻧﺘﻬﺎي آن ﻣﻘﺎدﻳﺮ
ﺑﺎﺷﺪ .ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﻋﺒﺎرت ﺑﺎﻻ ﺑﻪ ﺷﺮح زﻳﺮ ﺧﻮاﻫﺪ ﺑﻮد.
1
- 8اﺳﺘﻔﺎده از ﭘﺮس و ﺟﻮﻫﺎي ﺗﻮدرﺗﻮ
در ﺑﺴﻴﺎري از ﻣﻮارد ﻣﻘﺎدﻳﺮ ﻣﻮرد ﻧﻈﺮ در ﻋﺒﺎرت whereﺧﻮد ﺑﺼﻮرت ﻣﺸﺨﺺ ﻧﺒﻮده
و ﺑﺮ اﺳﺎس ﻳﻚ ﻋﺒﺎرت ﭘﺮس و ﺟﻮس دﻳﮕﺮ ﺑﺪﺳﺖ ﻣﻲ اﻳﻨﺪ .در ﭼﻨﻴﻦ ﺷﺮاﻳﻄﻲ ﻻزم
اﺳﺖ ﺗﺎ ﺑﺠﺎي اﺳﺘﻔﺎده از ﻋﺒﺎرات ﺟﺪاﮔﺎﻧﻪ ،از ﻋﺒﺎرات ﺗﻮدرﺗﻮ اﺳﺘﻔﺎده ﻛﺮد ﺗﺎ ﺧﺮوﺟﻲ
ﻫﺮ ﻳﻚ از ﻋﺒﺎرات دروﻧﻲ ﺑﻌﻨﻮان ﻣﻘﺎدﻳﺮ ﻣﻮرد اﺳﺘﻔﺎده در ﻋﺒﺎرت ﺑﻴﺮوﻧﻲ ﺗﺮ در ﻧﻈﺮ
ﮔﺮﻓﺘﻪ ﺷﻮد .در اداﻣﻪ اﻧﻮاﻋﻲ از ﻋﺒﺎرات ﺗﻮدرﺗﻮ را ﻧﺸﺎن ﺧﻮاﻫﻴﻢ داد.
Select ename,deptno,sal
From EMP
Where Sal > (Select AVG (sal) as Xval
)From EMP
1. n es t e d Q u e r i e s
2. Su b q u e ry
3. N es t e d
www.PDFgozar.com
IN 2- 8ﻋﻤﻠﮕﺮ
ﻣﻌﻤﻮﻻً در زﻳﺮ ﭘﺮﺳﺶ ﻫﺎ ﺷﺮاﻳﻂ ﺑﮕﻮﻧﻪ اﻳﺴﺖ ﻛﻪ ﻛﺎرﺑﺮ ﻣﻲ ﺧﻮاﻫﺪ ﻣﻘﺪاري را از ﺑﻴﻦ
اﺳﺘﻔﺎده ﻣﻲ ﮔﺮدد. IN ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﻣﻘﺎدﻳﺮ ﺑﺪﺳﺖ آورد .ﺑﺮاي اﻳﻦ ﻣﻨﻈﻮر از ﻋﻤﻠﮕﺮ
ﻣﻲ ﺑﺎﺷﺪ ﺑﺎ اﻳﻦ ﺗﻔﺎوت ﻛﻪ ﻣﻘﺪاري را Between اﻳﻦ ﻋﻤﻠﮕﺮ ﺗﻘﺮﻳﺒﺎ ﺷﺒﻴﻪ ﺑﻪ ﻋﻤﻠﮕﺮ
درون ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﻣﻘﺎدﻳﺮ ﻣﻮرد ﺟﺴﺘﺠﻮ ﻗﺮار ﻣﻲ دﻫﺪ .ﻣﺜﺎل زﻳﺮ ﻧﻤﻮﻧﻪ اﻳﺴﺖ از
ﻋﺒﺎراﺗﻲ ﻛﻪ ﺑﺪﻳﻦ ﺻﻮرت ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮﻧﺪ:
Select ename,sal
From emp
Where empno IN
(Select empno
From emp
)Where sal >2000
ENAME SAL
JONES 2975
BLAKE 2850
CLARK 2450
SCOTT 3000
KING 5000
FORD 3000
www.PDFgozar.com
ﻣﻤﻜﻦ اﺳﺖ اﻳﻦ ﺳﺌﻮال ﺑﻪ ذﻫﻦ ﺑﺮﺳﺪ ﻛﻪ ﻋﺒﺎرت ﻣﺬﻛﻮر را ﻣﻲﺗﻮان ﺑﺼﻮرﺗﻲ
ﻧﺒﺎﺷﺪ .در اﻳﻨﺠﺎ ﻻزم اﺳﺖ IN ﺳﺎدهﺗﺮ ﻧﻴﺰ ﻧﻮﺷﺖ ﻛﻪ در آن ﻧﻴﺎزي ﺑﻪ اﺳﺘﻔﺎده از ﻋﻤﻠﮕﺮ
ﮔﻔﺘﻪ ﺷﻮد ﻛﻪ ﻋﺒﺎرت ﻣﺬﻛﻮر ﻓﻘﻂ ﺟﻬﺖ ﻧﺸﺎن دادن ﻧﺤﻮه اﺳﺘﻔﺎده از ﻋﻤﻠﮕﺮ INﻣﻲﺑﺎﺷﺪ.
ﻳﻜﻲ از ﻧﻜﺎت ﻛﻠﻴﺪي در اﺳﺘﻔﺎده از ﻋﻤﻠﮕﺮ ﻣﺬﻛﻮر اﻳﻦ اﺳﺖ ﻛﻪ ﺑﺎﻳﺪ زﻳﺮﭘﺮﺳﺶ
ﺟﻠﻮي ﻋﻤﻠﮕﺮ INﺣﺘﻤﺎ داراي ﻳﻚ ﺳﺘﻮن ﻫﻤﻨﻮع ﺑﺎ ﺳﺘﻮن ﻣﻮرد ﭘﺮﺳﺶ ﺑﺎﺷﺪ و ﻧﻤﻲﺗﻮان
در زﻳﺮﭘﺮﺳﺶ از ﻫﺮ ﺳﺘﻮﻧﻲ ﺑﻌﻨﻮان ﺧﺮوﺟﻲ اﺳﺘﻔﺎده ﻛﺮد.
EXISTS 3- 8ﻋﻤﻠﮕﺮ
ﻳﻜﻲ دﻳﮕﺮ از ﻋﺒﺎرات ﻣﻮرد اﺳﺘﻔﺎده در ﭘﺮس و ﺟﻮﻫﺎي ﺗﻮدرﺗﻮ ،اﺳﺘﻔﺎده از ﻛﻠﻤﻪ
IN ﻣﻲ ﺑﺎﺷﺪ .اﻳﻦ دﺳﺘﻮر ﻧﻴﺰ ﺗﺎ ﺣﺪودي ﺷﺒﻴﻪ ﺑﻪ ﻛﻠﻤﻪ ﻛﻠﻴﺪي EXISTS ﻛﻠﻴﺪي
ﺑﻪ ﻧﺪرت اﺳﺘﻔﺎده ﻣﻲﺷﻮد .در ﻫﻨﮕﺎم اﺳﺘﻔﺎده از EXISTS ﻣﻲ ﺑﺎﺷﺪ .ﻣﻌﻤﻮﻻً از ﻋﻤﻠﮕﺮ
ﻋﺒﺎرت دروﻧﻲ از ﻣﻘﺎدﻳﺮ ﻋﺒﺎرت ﺑﻴﺮوﻧﻲ Where اﻳﻦ ﻋﻤﻠﮕﺮ ﻣﻲ ﺗﻮان در ﻗﺴﻤﺖ
ﺗﺎ ﺣﺪودي ﺑﺎ ﺳﺎﻳﺮ ﻋﻤﻠﮕﺮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﻋﺒﺎرات ﭘﺮس EXISTS اﺳﺘﻔﺎده ﻛﺮد .ﻋﻤﻠﮕﺮ
و ﺟﻮي ﺗﻮدرﺗﻮ ﻣﺘﻔﺎوت ﻣﻲ ﺑﺎﺷﺪ .زﻳﺮا ﺗﺮﻛﻴﺒﻲ از ﻣﻘﺎدﻳﺮ ﻣﺮﺑﻮط ﺑﻪ ﻋﺒﺎرات ﺑﻴﺮوﻧﻲ و
دروﻧﻲ درون ﺷﺮط ﻋﺒﺎرات دروﻧﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮد .ﺑﺮاي ﻣﺜﺎل ﺑﻪ ﻋﺒﺎرت زﻳﺮ ﺗﻮﺟﻪ
از راﺑﻄﻪ ﺑﻴﺮوﻧﻲ در STID ﻛﻨﻴﺪ .ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲ ﻛﻨﻴﺪ ﻣﻘﺪار ﺻﻔﺖ ﺧﺎﺻﻪ
ﻗﺴﻤﺖ WHEREﻋﺒﺎرت دروﻧﻲ ﻣﻮرد ﻣﻘﺎﻳﺴﻪ ﻗﺮار ﮔﺮﻓﺘﻪ اﺳﺖ.
SELECT STNAME
FROM STT
* WHERE EXISTS (SELECT
FROM STCOT
WHERE STCOT.STID = STT.STID
)'AND COID = '1234
ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻨﻜﻪ ﺑﺤﺚ دﺳﺘﺮﺳﻲ ﺑﻪ اﻣﻜﺎﻧﺎت ﻣﺪﻳﺮﻳﺘﻲ در اﻳﻦ ﻗﺴﻤﺖ از ﻛﺘﺎب ﻣﻄﺮح
ﻧﻴﺴﺖ ،ﻟﺬا ﺻﺮﻓﺎ ﻛﻨﺘﺮل دﺳﺘﺮﺳﻲ ﺑﻪ داده ﻫﺎ ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮد .دﺳﺘﻮرات
ﻛﻨﺘﺮل ﻛﻨﻨﺪه دﺳﺘﺮﺳﻲ ﺑﻪ دادهﻫﺎ ﺑﻪ ﺷﺮح زﻳﺮ ﻣﻲ ﺑﺎﺷﺪ:
1
دﺳﺘﻮر اﻋﻄﺎ اﺧﺘﻴﺎرات •
2
دﺳﺘﻮر ﻟﻐﻮ اﺧﺘﻴﺎرات •
INSERT
DELETE
UPDATE
SELECT
ﻳﻚ ﻛﺎرﺑﺮ اﻧﺘﺨﺎب ﺷﺪه و در Schema ﻳﻜﻲ از اﺷﻴﺎء ﻣﻮﺟﻮد در Object در ﻗﺴﻤﺖ
ﻗﺴﻤﺖ Usersﻧﺎم ﻳﻜﻲ از ﻛﺎرﺑﺮان ﭘﺎﻳﮕﺎه داده اﻧﺘﺨﺎب ﻣﻲ ﮔﺮدد.
در ﻣﻮاردي ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﻲﮔﻴﺮد ﻛﻪ WITH GRANT OPTION ﻋﺒﺎرت
ﺑﺨﻮاﻫﻴﻢ ﺟﺪا از اﻋﻄﺎ اﺧﺘﻴﺎرات ﻣﺬﻛﻮر ﺑﻪ ﻳﻚ ﻛﺎرﺑﺮ ،ﺑﻪ او اﺟﺎزه دادن ﻫﻤﺎن اﺧﺘﻴﺎرات ﺑﻪ
ﻛﺎرﺑﺮ دﻳﮕﺮي را ﻧﻴﺰ ﺑﺪﻫﻴﻢ .ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع ﺑﻪ ﻋﺒﺎرات زﻳﺮ ﺗﻮﺟﻪ ﻛﻨﻴﺪ:
Grant delete,update,insert
ON EMP
;TO ALI
Grant select
On dept
;]TO PERSON[With Grant Option
1. G ra n t
2. R e vo ke
www.PDFgozar.com
INSERT
DELETE
UPDATE
SELECT
ﻳﻚ ﻛﺎرﺑﺮ اﻧﺘﺨﺎب ﺷﺪه و در Schema ﻳﻜﻲ از اﺷﻴﺎء ﻣﻮﺟﻮد در Object در ﻗﺴﻤﺖ
ﻧﺎم ﻳﻜﻲ از ﻛﺎرﺑﺮان ﭘﺎﻳﮕﺎه داده اﻧﺘﺨﺎب ﻣﻲ ﮔﺮدد .ﺑﺮاي درك ﺑﻬﺘﺮ Users ﻗﺴﻤﺖ
ﻣﻮﺿﻮع ﺑﻪ ﻋﺒﺎرات زﻳﺮ ﺗﻮﺟﻪ ﻛﻨﻴﺪ:
Revoke select
On DEPT
;FROM ALI
SQL2 1- 10اﻣﻜﺎﻧﺎت
اﺳﺘﺎﻧﺪارد ﻣﻌﺮﻓﻲ ﮔﺮدﻳﺪ. SQL در ﺳﺎل 1992ﻣﻴﻼدي ﺑﻪ ﻋﻨﻮان SQL اﻳﻦ ﻧﺴﺨﻪ از
ﺑﻮد .در اﻳﻦ دﺳﺘﻮر SQL1 اﻳﻦ ﻧﺴﺨﻪ در واﻗﻊ ﻧﺴﺨﻪ ﺗﺼﺤﻴﺢ ﺷﺪه و ﻛﺎﻣﻠﺘﺮ ﻧﺴﺨﻪ
ﻛﺎﻣﻞ ﺗﺮ ﺷﺪﻧﺪ. SQL1 اﻓﺰوده ﺷﺪه و ﻳﺎ ﺑﻌﻀﻲ از دﺳﺘﻮرات SQL1 اﻣﻜﺎﻧﺎﺗﻲ ﺑﻪ ﻧﺴﺨﻪ
در اداﻣﻪ ﺗﻐﻴﻴﺮات اﻋﻤﺎل ﺷﺪه ﺑﻪ اﺧﺘﺼﺎر آﻣﺪه اﺳﺖ:
www.PDFgozar.com
SQL3 2-10اﻣﻜﺎﻧﺎت
1
ﺗﻮﻟﻴﺪ ﺷﺪه اﺳﺖ .در واﻗﻊ ORDBMS ﺑﺮاي ﻣﺤﻴﻂ ﻫﺎي SQL اﻳﻦ ﻧﺴﺨﻪ از
ﻫﻴﭽﻴﻚ OODBMS و RDBMS ﭘﮋوﻫﺸﮕﺮان ﺑﻪ اﻳﻦ ﻧﺘﻴﺠﻪ رﺳﻴﺪﻧﺪ ﻛﻪ ﺗﻜﻨﻮﻟﻮژي ﻫﺎي
ﺑﻪ ﺗﻨﻬﺎﻳﻲ ﻛﺎﻣﻞ ﻧﺒﻮده و ﺻﺮﻓﺎ ﺗﺮﻛﻴﺐ اﻳﻦ دو ﺗﻜﻨﻮﻟﻮژي ﭘﺎﺳﺨﮕﻮي ﻧﻴﺎزﻫﺎي آﺗﻲ
اراﺋﻪ ﮔﺮدد ﺗﺎ ﭘﺎﺳﺨﮕﻮي SQL ﺧﻮاﻫﺪ ﺑﻮد .ﻟﺬا ﺗﺼﻤﻴﻢ ﮔﺮﻓﺘﻪ ﺷﺪ ﻧﺴﺨﻪ اي از
ﻧﻴﺎزﻫﺎي آﺗﻲ ﺑﺎﺷﺪ .دراﻳﻦ ﻧﺴﺨﻪ اﻣﻜﺎﻧﺎت زﻳﺮ اﻓﺰوده ﺷﺪه اﻧﺪ.
اﻳﺠﺎد اﻣﻜﺎن ﺗﻌﺮﻳﻒ اﻧﻮاع دادهﻫﺎي ﺟﺪﻳﺪ .ﻣﺪل داده اي ﻗﻮي ﺗﺮ ﺑﺮاي ﻧﻤﺎﻳﺶ •
دادهﻫﺎﻳﻲ ﻛﻪ اﻣﻜﺎن ﻧﻤﺎﻳﺶ آﻧﻬﺎ ﺑﺎ ﺳﺎﺧﺘﺎر ﺟﺪوﻟﻲ وﺟﻮد ﻧﺪارد.
را از ﻧﻈﺮ ﺑﺮﻧﺎﻣﻪ ﺳﺎزي و ﻣﺤﺎﺳﺒﺎﺗﻲ SQL روﻳﻪ اي ﺷﺪن زﺑﺎن .ﺑﻪ ﻧﺤﻮي ﻛﻪ •
ﻛﺎﻣﻞ و اﻧﺮا ﺑﻪ ﻳﻚ زﺑﺎن ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﺗﺒﺪﻳﻞ ﻣﻲﻛﻨﺪ.
2
اﻳﺠﺎد اﻣﻜﺎن راهاﻧﺪاز .راهاﻧﺪاز ﻗﺎﻋﺪه )ﻣﺤﺪودﻳﺖ( و ﻳﺎ ﻗﻮاﻋﺪي اﺳﺖ ﻛﻪ ﻗﺒﻞ ﻳﺎ •
ﺑﻌﺪ از ﺑﺮوز ﻳﻚ روﻳﺪاد در ﭘﺎﻳﮕﺎهدادهﻫﺎ و ﻳﺎ ﺑﺠﺎي ﻳﻚ روﻳﺪاد ﺑﺎﻳﺪ اﻋﻤﺎل
ﮔﺮدد .اﻳﻦ ﻗﺎﻋﺪه ﻳﺎ ﻣﺤﺪودﻳﺖ در ﺳﻄﺢ ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ،ﺑﺼﻮرت روﻳﻪ اي از
ﭘﻴﺶ ﺗﻌﺮﻳﻒ ﺷﺪه اﺳﺖ ﻛﻪ ﺑﺼﻮرت ﺷﺮﻃﻲ ﻳﺎ ﻏﻴﺮ ﺷﺮﻃﻲ ،ﻗﺒﻞ ﻳﺎ ﺑﻌﺪ از اﻧﺠﺎم
ﻳﻚ ﻋﻤﻞ در ﭘﺎﻳﮕﺎهدادهﻫﺎ ﺑﺼﻮرت اﺗﻮﻣﺎﺗﻴﻚ اﺟﺮا ﻣﻲﺷﻮد
1. O b j e c t R e l a t i o n al D a ta b a s e M a n a ge me n t Sy s t e m
2. T ri gge r
www.PDFgozar.com
ﺗﻤﺮﻳﻨﺎت
STUDENT
SID Name Major Gradelevel Age
100 J Hestory G 21
150 P Acount S 19
200 B Math G 50
250 G Hestory S 50
300 B Acount S 41
350 RU Math J 20
400 R Acount F 18
450 J Hestory S 24
Enrollment
Student Class Polition
Num Name Num
100 BD445 1
150 BA200 1
200 BD445 2
250 CS250 1
300 CS150 1
www.PDFgozar.com
350 BA200 2
400 BF410 1
450 CS250 2
Class
Name Time Room
BA200 F9 110
BD445 F3 213
BF410 F8 213
CS150 F3 314
CS250 F12 210
SELECT Name,Major,Age
FROM Student
WHERE Major = ' Acount'
ORDER by Name
SELECT Name,Major,Age
FROM Student
WHERE Gradelevel IN ['F', 'S']
SELECT Name
FROM Student
WHERE SID IN
(SELECT Student Number
FROM Enrollment
WHERE Class Name = '445' )
:2 ﺗﻤﺮﻳﻦ
ﺑﺮ، ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻋﺮﺿﻪ ﻛﻨﻨﺪﮔﺎن ﻗﻄﻌﺎت و ﭘﺮوژهﻫﺎ ﺑﻪ ﺷﺮح زﻳﺮ ﺗﻨﻈﻴﻢ ﺷﺪه اﺳﺖ
اﺳﺎس آﻧﻬﺎ ﺑﻪ ﺳﻮاﻻت ﻣﻄﺮح ﺷﺪه ﭘﺎﺳﺦ دﻫﻴﺪ ؟
ﺷﻤﺎره ﻗﻄﻌﺎﺗﻲ را ﻣﺸﺨﺺ ﻛﻨﻴﺪ ﻛﻪ ﺑﻴﺶ از ﻳﻚ ﻋﺮﺿﻪ ﻛﻨﻨﺪه آﻧﻬﺎ را ﻋﺮﺿﻪ ﻣﻲ ﻛﻨﻨﺪ؟
را ﻋﺮﺿﻪ ﻧﻤﻲ ﻛﻨﻨﺪ ؟P2 اﺳﺎﻣﻲ ﻋﺮﺿﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ ﻛﻪ ﻗﻄﻌﻪ
www.PDFgozar.com
ﻓﺼﻞ ۹
ﻧﺮﻣﺎﻝ ﺳﺎﺯﻱ
ﻫﺪف ﻛﻠﻲ
در اﻳﻦ ﻓﺼﻞ اﺑﺘﺪا ﺗﻌﺮﻳﻔﻲ از راﺑﻄﻪ ﻧﺮﻣﺎل را اراﺋﻪ ﻛﺮده و ﻣﻌﺎﻳﺐ و ﻣﺰاﻳﺎي راﺑﻄﻪ ﻫﺎي
ﻧﺮﻣﺎل و ﻏﻴﺮﻧﺮﻣﺎل را ﺑﻴﺎن ﺧﻮاﻫﻴﻢ ﻛﺮد .ﺳﭙﺲ ﺑﺎ ﻣﻔﻬﻮم ﺗﺌﻮري واﺑﺴﺘﮕﻲ و در اداﻣﻪ
ﻣﻔﺎﻫﻴﻢ ﺗﺌﻮري واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ،واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ و ﺣﺎﻟﺘﻬﺎي واﺑﺴﺘﮕﻲ آﺷﻨﺎ ﺧﻮاﻫﻴﻢ
ﺷﺪ .در اداﻣﻪ ﻣﻔﻬﻮم ﻧﺮﻣﺎل ﺳﺎزي و اﻧﻮاع ﺻﻮرت ﻫﺎي ﻧﺮﻣﺎل راﺑﻄﻪ ﻫﺎ را ﺑﻪ ﺗﻔﺼﻴﻞ
ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻴﻢ داد.
ﻫﺪف رﻓﺘﺎري
دراﻳﻦ ﻓﺼﻞ ﻋﻨﺎوﻳﻦ زﻳﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ:
ﺗﻌﺮﻳﻒ راﺑﻄﻪ ﻧﺮﻣﺎل •
ﻣﺰاﻳﺎ و ﻣﻌﺎﻳﺐ راﺑﻄﻪﻫﺎي ﻧﺮﻣﺎل •
ﻣﺰاﻳﺎ و ﻣﻌﺎﻳﺐ راﺑﻄﻪﻫﺎي ﻏﻴﺮ ﻧﺮﻣﺎل •
ﻣﻔﺎﻫﻴﻢ ﺗﺌﻮري واﺑﺴﺘﮕﻲ و اﻧﻮاع واﺑﺴﺘﮕﻲﻫﺎ •
ﺣﺎﻟﺘﻬﺎي واﺑﺴﺘﮕﻲ •
ﻧﻤﻮدار واﺑﺴﺘﮕﻲﻫﺎي ﺗﺎﺑﻌﻲ •
ﺻﻮرتﻫﺎي ﻧﺮﻣﺎل •
ﻓﺮاﻳﻨﺪ ﻧﺮﻣﺎل ﺳﺎزي •
www.PDFgozar.com
ﺑﺎﺷﻨﺪ.
ﺗﻌﺮﻳﻒ دوم :راﺑﻄﻪ ﻧﺮﻣﺎل راﺑﻄﻪاي اﺳﺖ ﻛﻪ ﻣﻘﺎدﻳﺮ ﻫﻴﭽﻴﻚ از ﻣﻴﺪاﻧﻬﺎﻳﺶ ،ﻳﻚ •
در ﺗﻮﺻﻴﻒ ﺗﻌﺎرﻳﻒ ﺑﺎﻻ ﻣﻲ ﺗﻮان ﮔﻔﺖ ﻳﻚ ﻣﻘﺪار ﺳﺎده ﺗﺠﺰﻳﻪ ﻧﺸﺪﻧﻲ را ﻣﻲ ﺗﻮان ﻳﻚ
ﻣﻘﺪار راﺑﻄﻪ اي از درﺟﻪ ﻳﻚ و ﻛﺎردﻳﻨﺎﻟﻴﺘﻲ ﻳﻚ داﻧﺴﺖ .ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ در ﺑﺪﻧﻪ راﺑﻄﻪ
ﻧﺮﻣﺎل ،ﺻﻔﺖ ﺳﺎده ﻳﺎ ﻣﺮﻛﺐ ﭼﻨﺪ ﻣﻘﺪاري وﺟﻮد ﻧﺪارد و اﺻﻄﻼﺣﺎ ﻣﻲ ﮔﻮﻳﻴﻢ راﺑﻄﻪ
ﻣﺴﻄﺢ اﺳﺖ .ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﻌﺎرﻳﻒ ﺑﺎﻻ راﺑﻄﻪ ﻏﻴﺮ ﻧﺮﻣﺎل را ﻣﻲ ﺗﻮان ﺑﺼﻮرت زﻳﺮ
ﺗﻮﺻﻴﻒ ﻛﺮد:
راﺑﻄﻪ اي ﻛﻪ در آن ﻣﻘﺎدﻳﺮ ﺣﺪاﻗﻞ ﻳﻚ ﺻﻔﺖ ،ﺧﻮد ﻣﻘﺎدﻳﺮ راﺑﻄﻪ اي ﺑﺎﺷﻨﺪ را
راﺑﻄﻪ ﻏﻴﺮ ﻧﺮﻣﺎل ﮔﻮﻳﻴﻢ .ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ راﺑﻄﻪ اي ﻛﻪ ﺣﺪاﻗﻞ ﻳﻚ ﺻﻔﺖ ﺳﺎده
ﻳﺎ ﻣﺮﻛﺐ ﭼﻨﺪ ﻣﻘﺪاري داﺷﺘﻪ ﺑﺎﺷﺪ ،راﺑﻄﻪ ﻏﻴﺮ ﻧﺮﻣﺎل اﺳﺖ.
ﺑﺪﻳﻬﻲ اﺳﺖ ﻛﻪ در ﻛﻨﺎر اﻳﻦ ﻣﺰاﻳﺎ ،راﺑﻄﻪ ﻏﻴﺮ ﻧﺮﻣﺎل ﺧﻮد ﻧﻴﺰ داراي ﻣﻌﺎﻳﺒﻲ ﻣﻲ ﺑﺎﺷﺪ
ﻛﻪ اﻳﻦ ﻣﻌﺎﻳﺐ در ذﻳﻞ آﻣﺪه اﺳﺖ:
ﭘﻴﭽﻴﺪﮔﻲ در ﻧﻤﺎﻳﺶ دادهﻫﺎ •
ﭘﻴﭽﻴﺪﮔﻲ در ﻧﮕﺎرش دﺳﺘﻮرات •
ﭘﻴﭽﻴﺪﮔﻲ در اﺟﺮاي دﺳﺘﻮرات •
1
-2ﻣﻔﺎﻫﻴﻢ ﺗﺌﻮري واﺑﺴﺘﮕﻲ
در ﺑﺤﺚ ﻧﺮﻣﺎل ﺳﺎزي راﺑﻄﻪﻫﺎ ،ﺑﻪ ﻣﻔﺎﻫﻴﻢ ﺗﺌﻮري واﺑﺴﺘﮕﻲ ﻧﻴﺎز دارﻳﻢ .در اﻳﻦ ﻗﺴﻤﺖ
ﺑﺎ ﺑﺮﺧﻲ ﻣﻔﺎﻫﻴﻢ واﺑﺴﺘﮕﻲ آﺷﻨﺎ ﻣﻲ ﺷﻮﻳﻢ.
1. D e pe n d e n c y
www.PDFgozar.com
1-2اﻧﻮاع واﺑﺴﺘﮕﻲﻫﺎ
واﺑﺴﺘﮕﻲ داراي ﺣﺎﻻت ﻣﺨﺘﻠﻔﻲ اﺳﺖ ﻛﻪ در ذﻳﻞ آﻣﺪه اﺳﺖ:
1
واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ •
2
واﺑﺴﺘﮕﻲ ﭘﻴﻮﻧﺪي •
3 •
واﺑﺴﺘﮕﻲ ﭼﻨﺪ ﻣﻘﺪاري
1-1-2واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ
ﻣﻬﻤﺘﺮﻳﻦ ﻧﻮع واﺑﺴﺘﮕﻲ واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ اﺳﺖ .در ﺣﺎﻟﺖ ﻛﻠﻲ واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ را
ﻣﻲ ﺗﻮان اﻳﻨﮕﻮﻧﻪ ﺗﻮﺻﻴﻒ ﻛﺮد:
A → B ﺑﺎﺷﻨﺪ ،آﻧﮕﺎه واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ R دو ﺻﻔﺖ در ﺷﻤﺎي B و A اﮔﺮ
A ﺑﻪ ازاي ﻫﺮ ﻣﻘﺪار R ﺑﺮﻗﺮار اﺳﺖ ﺑﻪ ﺷﺮﻃﻲ ﻛﻪ ﺑﺮاي ﺗﻤﺎﻣﻲ راﺑﻄﻪ ﻫﺎ در
ﻓﻘﻂ ﻳﻚ ﻣﻘﺪار Bوﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ.
1. f un c t i o n a l D e p e n de n c y
2. J oi n D e pe n d e n c y
3. M u lt i V al u e De p e n d e n c y
4. F u ll F u nc t i o n a l D e p e n d en c y
www.PDFgozar.com
واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﺑﻴﻦ دو ﺻﻔﺖ ،ﻧﻤﺎﻳﺸﮕﺮ ﻳﻚ ﻗﺎﻋﺪه ﺳﻤﻨﺘﻴﻚ در ﺟﻬﺎن واﻗﻌﻲ اﺳﺖ.
ﻣﺜﻼ وﻗﺘﻲ ﻣﻲ ﮔﻮﻳﻴﻢ:
STID→STMJR
2-2ﺣﺎﻟﺘﻬﺎي واﺑﺴﺘﮕﻲ
واﺑﺴﺘﮕﻲ داراي ﺣﺎﻻت ﻣﺨﺘﻠﻔﻲ ﻣﻲ ﺑﺎﺷﺪ ﻛﻪ در ذﻳﻞ ﻧﺎم ﺑﺮده ﺷﺪه اﻧﺪ:
واﺑﺴﺘﮕﻲ ﺑﻪ ﻛﻠﻴﺪ •
واﺑﺴﺘﮕﻲ ﺑﻪ ﺑﺨﺸﻲ از ﻛﻠﻴﺪ •
واﺑﺴﺘﮕﻲ ﻏﻴﺮﻛﻠﻴﺪ ﺑﻪ ﻏﻴﺮﻛﻠﻴﺪ •
واﺑﺴﺘﮕﻲ ﻣﻌﻜﻮس •
ﻛﻠﻴﺪ ﻳﺎ ﺑﺨﺸﻲ از آن ﺑﻪ ﺻﻔﺖ ﻳﺎ ﺻﻔﺘﻬﺎي دﻳﮕﺮ واﺑﺴﺘﻪ ﺑﺎﺷﺪ •
ﭼﻮن اﻋﻤﺎل اﻳﻦ ﻗﻮاﻋﺪ ﻣﺸﻜﻞ ﻣﻲ ﺑﺎﺷﺪ ،آﻧﻬﺎ را ﺑﻪ ﺻﻮرت ﺳﺎده ﺗﺮ ﺑﻴﺎن ﻣﻲﻛﻨﻴﻢ.
www.PDFgozar.com
اﺟﺘﻤﺎع •
ﺑﺎ اﻋﻤﺎل اﻳﻦ ﻗﻮاﻋﺪ ﺳﻌﻲ ﻣﻲ ﻛﻨﻴﻢ واﺑﺴﺘﮕﻲ ﻫﺎي ﺗﻜﺮاري را ﺣﺬف ﻧﻤﻮده و ﺑﻪ
ﻣﺠﻤﻮﻋﻪ واﺑﺴﺘﮕﻲ ﻛﻤﻴﻨﻪ ﻳﺎ ﺑﻬﻴﻨﻪ ﺑﺮﺳﻴﻢ.
ﻣﺜﺎل:
} F ﹢ = { A → B , A → C , B → C , AB → C , AC → D
} min (F ﹢) = { A → B , B → C , A → D
ﻣﺜﺎل:
)R=(U ,V,W,X,Y,Z
} F={ U → XY , X → Y , XY → ZV
} F ﹢ = { U → XY , X → Y , XY → ZV , U → ZV
} F ﹢ = { U → X, U → Y , X → Y, XY → ZV , U → ZV
} F ﹢ = { U → X, U → Y , X → Y, X → ZV , U → ZV
} F ﹢ = { U → X, U → Y , X → Y, U → Z , U → V, X → Z, X → V
ﺗﻤﺮﻳﻦ:
)R = (U ,V,W,X,Y,Z,O,P,Q
} F={ U → VXQ , UVP → O , OQ → YZ, UP → XY
1
4-2ﻧﻤﻮدار واﺑﺴﺘﮕﻲﻫﺎي ﺗﺎﺑﻌﻲ
ﺟﻬﺖ درك ﺑﻬﺘﺮ از واﺑﺴﺘﮕﻲﻫﺎ ،ﻧﻤﻮدار واﺑﺴﺘﮕﻲ ﻫﺎي ﺗﺎﺑﻌﻲ را رﺳﻢ ﻣﻲﻛﻨﻴﻢ .ﻧﺤﻮه
ﺑﻪ ﻳﻜﻲ از دو ﺷﻜﻞ زﻳﺮ ﻗﺎﺑﻞ ﺗﺮﺳﻴﻢ STT ﻧﻤﺎﻳﺶ ﻧﻤﻮدار واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﺑﺮاي راﺑﻄﻪ
اﺳﺖ.
1. F u nc t i o n a l D e p e n d en c y Di a gr a m
www.PDFgozar.com
روش اول
STT STNAME
STDEG
STID
STMJR
STDEID
روش دوم
-3ﺻﻮرتﻫﺎي ﻧﺮﻣﺎل
ﻛﺎد واﺿﻊ ﻣﺪل راﺑﻄﻪ اي ،در آﻏﺎز ﺳﻪ ﺳﻄﺢ ﻧﺮﻣﺎل را ﺗﻌﺮﻳﻒ ﻛﺮد .اﻳﻦ ﺳﻪ ﺳﻄﺢ
ﻋﺒﺎرت ﻫﺴﺘﻨﺪ از:
1
ﺻﻮرت ﻧﺨﺴﺖ ﻧﺮﻣﺎل •
2
ﺻﻮرت دوم ﻧﺮﻣﺎل •
3
ﺻﻮرت ﺳﻮم ﻧﺮﻣﺎل •
ﭘﮋوﻫﺸﮕﺮان و ﻣﺘﺨﺼﺼﻴﻦ ﺑﻌﺪا ﺳﻪ ﻧﻮع دﻳﮕﺮ از ﺻﻮر ﻧﺮﻣﺎل را ﺑﻪ ﺷﺮح زﻳﺮ ﺗﻌﺮﻳﻒ
ﻛﺮدﻧﺪ:
4
ﺻﻮرت ﻧﺮﻣﺎل ﺑﻮﻳﺲ -ﻛﺎد •
5
ﺻﻮرت ﭼﻬﺎرم ﻧﺮﻣﺎل •
1. F ir s t N or ma l F o r m
2. Se c o n d No r ma l F o r m
3. T hi r d N or ma l F o r m
4. B o yc e - C o d d N o r ma l F o r m
5. F o rt h N or ma l F o r m
www.PDFgozar.com
1
ﺻﻮرت ﭘﻨﭽﻢ ﻧﺮﻣﺎل •
اﻣﺮوزه دو ﻧﻮع دﻳﮕﺮ از ﺻﻮرت ﻫﺎي ﻧﺮﻣﺎل ﺗﻌﺮﻳﻒ ﺷﺪه اﻧﺪ ﻛﻪ اﻟﺒﺘﻪ در ﺷﺮاﻳﻂ ﺑﺴﻴﺎر
ﺧﺎص رخ ﻣﻲدﻫﻨﺪ .اﻳﻦ دو ﺻﺮت ﻧﺮﻣﺎل ﻋﺒﺎرﺗﻨﺪ از:
ﺻﻮرت ﻧﺮﻣﺎل ﻣﻴﺪان -ﻛﻠﻴﺪي •
ﺻﻮرت ﻧﺮﻣﺎل ﺗﺤﺪﻳﺪ -اﺟﺘﻤﺎع •
2
-4ﻓﺮاﻳﻨﺪ ﻧﺮﻣﺎل ﺳﺎزي
ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ داده ﻫﺎي ﻋﻤﻠﻴﺎﺗﻲ و ارﺗﺒﺎط ﺑﻴﻦ ﻣﻮﺟﻮدﻳﺘﻬﺎ ،ﻻزم اﺳﺖ ﺗﺎ ﻗﺒﻞ از ﭘﻴﺎده
ﺳﺎزي ﺟﺪاول ﻃﺮاﺣﻲ ﺷﺪه ،آﻧﻬﺎ را ﻧﺮﻣﺎل ﺳﺎزي ﻧﻤﺎﻳﻴﻢ .ﻣﺮاﺣﻞ ﻧﺮﻣﺎل ﺳﺎزي راﺑﻄﻪﻫﺎ
ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﻨﺪ:
1 F i f t h No r ma l F o r m
.
2. N or ma l i z a t i o n
www.PDFgozar.com
در اداﻣﻪ راﺑﻄﻪ ﻫﺎي ﻧﺮﻣﺎل را ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻴﻢ داد:
1NF 1-4راﺑﻄﻪ
اﺳﺖ ﻛﻪ: راﺑﻄﻪ اي 1NF
ﻫﻤﻪ ﻛﻠﻴﺪﻫﺎي آن ﺗﻌﺮﻳﻒ ﺷﺪه ﺑﺎﺷﺪ •
ﻫﻤﻪ ﺻﻔﺖﻫﺎي آن ﺑﻪ ﻛﻠﻴﺪ اﺻﻠﻲ واﺑﺴﺘﻪ ﺑﺎﺷﻨﺪ •
ﺻﻔﺖﻫﺎي ﺗﺮﻛﻴﺒﻲ ﻧﺪاﺷﺘﻪ ﺑﺎﺷﻴﻢ •
اﺳﺖ اﮔﺮ و ﻓﻘﻂ اﮔﺮ ﻫﺮ ﺻﻔﺖ آن در ﻫﺮ ﺗﺎﭘﻞ ،ﺗﻚ 1NF ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ راﺑﻄﻪ اي
ﻣﻘﺪاري ﺑﺎﺷﺪ )ﺻﻔﺖ ﭼﻨﺪ ﻣﻘﺪاري ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ(.
ﺗﻮاﻣﺎ ﻛﻠﻴﺪ اﺻﻠﻲ ﻫﺴﺘﻨﺪ را در COID و STID را ﻛﻪ در آن STCOR ﻣﺜﺎل :1راﺑﻄﻪ
ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ:
)STCOR (STID, COID, STNAME, GRADE, STMJR, STDEID
STNAME
STID
STMJR
GRADE
COID
STDEID
www.PDFgozar.com
ﻣﺜﺎل :2
2NF 2-4راﺑﻄﻪ
اﺳﺖ ﻛﻪ راﺑﻄﻪ اي 2NF
1NFﺑﺎﺷﺪ •
ﺻﻔﺖﻫﺎي آن ﺑﻪ زﻳﺮ ﻣﺠﻤﻮﻋﻪﻫﺎي ﻛﻠﻴﺪ اﺻﻠﻲ واﺑﺴﺘﻪ ﻧﺒﺎﺷﺪ •
ﺑﺎﺷﺪ و ﺛﺎﻧﻴﺎ ﺗﻤﺎم ﺻﻔﺎت ﻏﻴﺮ ﻛﻠﻴﺪ ﺑﺎ 1NF اﺳﺖ ﻛﻪ اوﻻ 2NF ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ راﺑﻄﻪ اي
ﻛﻠﻴﺪ اﺻﻠﻲ واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﻛﺎﻣﻞ داﺷﺘﻪ ﺑﺎﺷﻨﺪ.
ﻣﺜﺎل :1
STID
GRADE
COID
STNAME
STID
STMJR
STDEID
www.PDFgozar.com
ﻣﺜﺎل :2
R = (Std# , cr# , st.name , g/u , place , )mintopas , grade , time
ﺑﻮدن ﻫﺮﻛﺪام از ﺟﺪاول 2NF و 1NF ﺑﻌﺪ از اﻳﻨﻜﻪ ﺟﺪاول ﺷﻜﺴﺘﻪ ﺷﺪ ،ﺑﺎﻳﺪ
2NF وﻫﻢ 1NF ﺑﺪﺳﺖ آﻣﺪه را ﺑﺮرﺳﻲ ﻛﻨﻴﺪ )ﻫﺮ ﺳﻪ ﺟﺪول ﺑﺪﺳﺖ آﻣﺪه ﻓﻮق ﻫﻢ
ﻣﻲﺑﺎﺷﺪ(.
3NF 3-4راﺑﻄﻪ
اﺳﺖ ﻛﻪ 3NF ﺟﺪوﻟﻲ
در 2NFﺑﺎﺷﺪ •
واﺑﺴﺘﮕﻲ اﻧﺘﻘﺎﻟﻲ ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ )واﺑﺴﺘﮕﻲ ﻏﻴﺮ ﻛﻠﻴﺪ ﺑﻪ ﻏﻴﺮ ﻛﻠﻴﺪ ( •
ﺑﺎﺷﺪ و ﻫﺮ ﺻﻔﺖ ﻏﻴﺮﻛﻠﻴﺪ ﺑﺎ 2NF اﺳﺖ اﮔﺮ و ﻓﻘﻂ اﮔﺮ 3NF ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ راﺑﻄﻪ اي
ﻛﻠﻴﺪ اﺻﻠﻲ ،واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﺑﻲ واﺳﻄﻪ داﺷﺘﻪ ﺑﺎﺷﺪ.
ﻣﺜﺎل :1
STID
GRADE
COID
www.PDFgozar.com
STMJR STDEID
STMJR
STID
STNAME
BCNF 4-4راﺑﻄﻪ
ﺣﺎﻟﺖ ﺧﺎﺻﻲ از راﺑﻄﻪ ﻧﺮﻣﺎل اﺳﺖ و داراي ﺗﻌﺎرﻳﻒ ﻣﺘﻌﺪدي ﻣﻲ ﺑﺎﺷﺪ BCNF راﺑﻄﻪ
ﻛﻪ در ذﻳﻞ آﻣﺪه اﺳﺖ:
ﺗﻌﺮﻳﻒ اول:ﺟﺪوﻟﻲ BCNFاﺳﺖ ﻛﻪ
در 3NFﺑﺎﺷﺪ •
واﺑﺴﺘﮕﻲ ﻣﻌﻜﻮس ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ )واﺑﺴﺘﮕﻲ ﻛﻠﻴﺪ ﺑﻪ ﻏﻴﺮ ﻛﻠﻴﺪ ( •
اﺳﺖ اﮔﺮ و ﻓﻘﻂ اﮔﺮ در آن ﻫﺮ دﺗﺮﻣﻴﻨﺎن ،ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ BCNF ﺗﻌﺮﻳﻒ دوم :راﺑﻄﻪ اي
ﺑﺎﺷﺪ.
اﺳﺖ اﮔﺮ BCNF ﺗﻌﺮﻳﻒ ﺳﻮم :راﺑﻄﻪ ) ،R(Hﺑﺎ ﻣﺠﻤﻮﻋﻪ واﺑﺴﺘﮕﻲ ﻫﺎي ﺗﺎﺑﻌﻲ ،Fدر
)B ∁ R(H و )A ∁ R(H ﻛﻪ در آن A→B ﺑﻪ ﺻﻮرت F+ ﺑﺮاي ﻫﺮ واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ
اﺳﺖ ،ﺣﺪاﻗﻞ ﻳﻜﻲ از دو ﺣﺎﻟﺖ زﻳﺮ ﺑﺮﻗﺮار ﺑﺎﺷﺪ:
B∁A A → Bﻳﻚ واﺑﺴﺘﮕﻲ ﻏﻴﺮ ﻣﻬﻢ ﺑﺎﺷﺪ ﻳﻌﻨﻲ •
Aﺳﻮﭘﺮ ﻛﻠﻴﺪ راﺑﻄﻪ Rﺑﺎﺷﺪ •
ﺗﻌﺮﻳﻒ ﭼﻬﺎرم :راﺑﻄﻪ اي BCNFاﺳﺖ اﮔﺮ و ﻓﻘﻂ اﮔﺮ ﺳﻤﺖ ﭼﭗ ﻫﺮ واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ
ﻣﻬﻢ و ﻛﺎﻫﺶ ﻧﺎﭘﺬﻳﺮ ،ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ راﺑﻄﻪ ﺑﺎﺷﺪ.
4NF 5-4راﺑﻄﻪ
راﺑﻄﻪ اي 4NFاﺳﺖ اﮔﺮ
BCNFﺑﺎﺷﺪ •
در آن واﺑﺴﺘﮕﻲ ﭼﻨﺪ ﻣﻘﺪاري ﻣﻬﻢ وﺟﻮد ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ. •
www.PDFgozar.com
ﺑﺪﻳﻦ ﺻﻮرت اﺳﺖ ﻛﻪ ﮔﺎﻫﻲ دو راﺑﻄﻪاي ﻛﻪ از 4NF ﻣﺸﻜﻞ آﻧﻮﻣﺎﻟﻲ در ﺳﻄﺢ
ﻳﻜﺪﻳﮕﺮ ﻣﺠﺰا ﻫﺴﺘﻨﺪ را ﺑﻪ اﺷﺘﺒﺎه و ﺻﺮﻓﺎ ﺑﻮاﺳﻄﻪ اﻳﻨﻜﻪ ﻓﺮض ﻛﺮدهاﻳﻢ ﻣﻲﺗﻮاﻧﻴﻢ ﺗﺤﺖ
ﻳﻚ راﺑﻄﻪ ﻗﺮار دﻫﻴﻢ ،ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﺗﺮﻛﻴﺐ ﻣﻲﻛﻨﻴﻢ و ﺗﺤﺖ ﻋﻨﻮان ﻳﻚ راﺑﻄﻪ در ﭘﺎﻳﮕﺎهداده
ﻗﺮار ﻣﻲدﻫﻴﻢ .ﭘﺲ از ورود اﻃﻼﻋﺎت در راﺑﻄﻪ ﺟﺪﻳﺪ ،اﻳﻦ راﺑﻄﻪ را ﺑﻪ دو راﺑﻄﻪ ﻗﺒﻠﻲ
ﺗﺠﺰﻳﻪ ﻣﻲﻛﻨﻴﻢ و ﻃﺒﻴﻌﺘﺎ ﻣﻘﺎدﻳﺮ راﺑﻄﻪ ﻛﻠﻲ در د راﺑﻄﻪ ﺗﻘﺴﻴﻢ ﻣﻲﺷﻮﻧﺪ .ﺣﺎل ﭼﻨﺎﻧﭽﻪ
ﺑﺨﻮاﻫﻴﻢ دو راﺑﻄﻪ را ﺑﺎ ﻫﻢ ﺗﺮﻛﻴﺐ ﻛﻨﻴﻢ ،ﺑﺎ ﺣﺬف ﺑﻌﻀﻲ از ﺗﺎﭘﻞﻫﺎ ﻣﻮاﺟﻪ ﻣﻲﺷﻮﻳﻢ .اﻟﺒﺘﻪ
اﻳﻦ ﺷﺮاﻳﻂ ﺑﺴﻴﺎر ﺧﺎص ﺑﻮده و اﻣﻜﺎن رﺧﺪاد آن ﻧﻴﺰ ﺑﺴﻴﺎر ﻛﻢ اﺳﺖ .ﺑﺮاي ﻣﺜﺎل راﺑﻄﻪ
زﻳﺮ را ﻛﻪ اﺷﺘﺒﺎﻫﺎ ﻧﺮﻣﺎل ﺷﺪه اﺳﺖ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ:
)PSR(PRID,STID,RNUM
ﺣﺎل ﭼﻨﺎﻧﭽﻪ راﺑﻄﻪ PSRرا ﻋﻤﻼ از اﺑﺘﺪا ﺑﺼﻮرت دو راﺑﻄﻪ PSو PRﻣﺎﻧﻨﺪ زﻳﺮ در
ﻧﻈﺮ ﺑﮕﻴﺮﻳﻢ دﻳﮕﺮ دﭼﺎر ﭼﻨﻴﻦ ﻣﺸﻜﻼﺗﻲ ﻧﺨﻮاﻫﻴﻢ ﺷﺪ.
)PS(PRID,STID
)PR(PRID,RNUM
5NF 6-4راﺑﻄﻪ
www.PDFgozar.com
در ﻓﺮاﻳﻨﺪﻫﺎي ﻧﺮﻣﺎل ﺳﺎزي ﺗﺎ ﺳﻄﺢ ،4NFاﻟﮕﻮرﻳﺘﻢ ﻋﻤﻮﻣﻲ درﻫﺮ ﻣﺮﺣﻠﻪ ﻋﺒﺎرت ﺑﻮد
از ﺗﺠﺰﻳﻪ راﺑﻄﻪ ﺑﻪ دو راﺑﻄﻪ ﻧﺮﻣﺎﻟﺘﺮ ﺑﻪ ﮔﻮﻧﻪ اﻳﻜﻪ ﺑﺎ ﭘﻴﻮﻧﺪ دو راﺑﻄﻪ ،ﻫﻤﺎن راﺑﻄﻪ اﺻﻠﻲ
ﺑﺪﺳﺖ ﻣﻲ آﻳﺪ .اﻣﺎﻣﻤﻜﻦ اﺳﺖ در وﺿﻊ ﺧﺎﺻﻲ راﺑﻄﻪ را ﺑﻪ دو راﺑﻄﻪ ﺗﺠﺰﻳﻪ ﻛﻨﻴﻢ وﻟﻲ
ﺑﺎ ﭘﻴﻮﻧﺪ دو راﺑﻄﻪ ،راﺑﻄﻪ اوﻟﻴﻪ ﺑﺪﺳﺖ ﻧﻴﺎﻳﺪ .ﺑﻪ ﻣﺜﺎل زﻳﺮ ﺗﻮﺟﻪ ﻛﻨﻴﺪ:
ﺣﺎل اﻳﻦ راﺑﻄﻪ را ﺑﻪ دو راﺑﻄﻪ زﻳﺮ ﺗﺠﺰﻳﻪ ﻣﻲﻛﻨﻴﻢ .ﭘﺲ راﺑﻄﻪﻫﺎي زﻳﺮ از ﺗﺠﺰﻳﻪ
راﺑﻄﻪ PRCODEﺑﺪﺳﺖ ﻣﻲآﻳﻨﺪ:
)PRCO (PRID, COID
)CODE (COID, DEID
PRCO CODE
PRID COID COID DEID
Pr11 C1 C1 D4
Pr11 C3 C3 D1
Pr22 C1 C1 D1
ﺻﺮﻓﺎ در ﺷﺮاﻳﻂ ﺧﺎص و ﺑﺮاي ﻣﺤﻴﻄﻬﺎي 5NF و 4NF ﺗﻮﺟﻪ :آﻧﻮﻣﺎﻟﻲ در ﺳﻄﻮح
ﺧﺎص رخ ﻣﻲ دﻫﺪ و در ﺣﺎﻟﺖ ﻋﺎدي اﻳﻦ ﻧﻮع آﻧﻮﻣﺎﻟﻲﻫﺎ در ﻃﺮاﺣﻲ ﺳﺎﺧﺘﺎر اﻃﻼﻋﺎﺗﻲ
ﺳﻴﺴﺘﻢ ﻫﺎ رخ ﻧﻤﻲ دﻫﺪ .ﻟﺬا ﺑﻄﻮر ﻣﻌﻤﻮل اﮔﺮ ﺑﺘﻮاﻧﻴﻢ ﺳﺎﺧﺘﺎر اﻃﻼﻋﺎﺗﻲ ﺳﻴﺴﺘﻢ ﻣﻮرد
ﻧﺮﻣﺎل ﻛﻨﻴﻢ ،اﺻﻄﻼﺣﺎ ﻣﻲ ﮔﻮﻳﻴﻢ ﻧﺮﻣﺎل BCNF و ﻳﺎ 3NF ﻧﻈﺮ را ﺣﺪاﻛﺜﺮ ﺗﺎ ﺳﻄﺢ
ﺳﺎزي ﻛﺎﻣﻞ اﻧﺠﺎم ﺷﺪه اﺳﺖ.
ﺗﻤﺮﻳﻨﺎت
www.PDFgozar.com
ﻓﺼﻞ ۱۰
ﻫﺪف ﻛﻠﻲ
در اﻳﻦ ﻓﺼﻞ ﺑﻪ ﻣﻮﺿﻮع ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎه داده ﻫﺎ ﻣﻲ ﭘﺮدازﻳﻢ .اﺑﺘﺪا ﻣﻌﻤﺎري ﻫﺎي
ﻣﺘﻤﺮﻛﺰ ﭘﺎﻳﮕﺎه داده ﻫﺎ را ﺷﺮح داده و ﺳﭙﺲ وارد ﺑﺤﺚ ﻣﻌﻤﺎري ﻫﺎي ﻏﻴﺮ ﻣﺘﻤﺮﻛﺰ
ﭘﺎﻳﮕﺎه داده ﻫﺎ ﻣﻲ ﺷﻮﻳﻢ .در ﺑﺤﺚ ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎه ﻫﺎي داده ﻧﺎﻣﺘﻤﺮﻛﺰ ،ﻣﻌﻤﺎري ﻫﺎﻳﻲ
ﻣﺎﻧﻨﺪ ﻣﻌﻤﺎري ﻣﺸﺘﺮي -ﺧﺪﻣﺘﮕﺰار ،ﻣﻌﻤﺎري ﺗﻮزﻳﻊ ﺷﺪه ،ﻣﻌﻤﺎري ﺑﺎ ﭘﺮدازش ﻣﻮازي،
ﻣﻌﻤﺎري ﭼﻨﺪ ﭘﺎﻳﮕﺎﻫﻲ و ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﻫﻤﺮاه را ﺑﺎ ذﻛﺮ ﺗﻮﺿﻴﺤﺎت در ﻣﻮرد ﻫﺮ
ﻳﻚ از اﻧﻮاع ﻣﻌﻤﺎري ﻫﺎي ﻣﺬﻛﻮر ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻴﻢ داد.
ﻫﺪف رﻓﺘﺎري
دراﻳﻦ ﻓﺼﻞ ﻋﻨﺎوﻳﻦ زﻳﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ:
ﻣﻌﻤﺎري ﻣﺘﻤﺮﻛﺰ •
ﻣﻌﻤﺎري ﻧﺎﻣﺘﻤﺮﻛﺰ •
ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﻣﺸﺘﺮي -ﺧﺪﻣﺘﮕﺰار •
ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﺗﻮزﻳﻊ ﺷﺪه •
ﻣﻌﻤﺎري ﺑﺎ ﭘﺮدازش ﻣﻮازي •
ﻣﻌﻤﺎري ﺑﺎ ﺣﺎﻓﻈﻪ ﻣﺸﺘﺮك •
ﻣﻌﻤﺎري ﺑﺎ دﻳﺴﻚﻫﺎي ﻣﺸﺘﺮك •
ﻣﻌﻤﺎري ﺑﻲ اﺟﺰا ﻣﺸﺘﺮك •
www.PDFgozar.com
210ﭘﺎﻳﮕﺎه دادهﻫﺎ
-1ﻣﻘﺪﻣﻪ
ﻳﻜﻲ از ﻣﺒﺎﺣﺚ ﻣﻬﻢ و ﻛﻠﻴﺪي در ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎه داده ،اﺟﺰاء ﺗﺸﻜﻴﻞ دﻫﻨﺪه و ﭘﻴﻜﺮ
ﺑﻨﺪي ﻳﺎ ﻃﺮز ﺗﺮﻛﻴﺐ اﺟﺰاء ﺳﻴﺴﺘﻢ و ﭼﮕﻮﻧﮕﻲ ﺗﻌﺎﻣﻞ اﺟﺰاء ﺑﺎ ﻳﻜﺪﻳﮕﺮ اﺳﺖ .در
ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺣﺪاﻗﻞ ﻳﻚ ﭘﺎﻳﮕﺎه داده ﻫﺎ ،ﻳﻚ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎ،
ﻳﻚ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ ،ﻳﻚ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺑﺎ دﺳﺘﮕﺎهﻫﺎي ﺟﺎﻧﺒﻲ و ﺗﻌﺪادي ﺑﺮﻧﺎﻣﻪ ﻛﺎرﺑﺮدي و
ﻛﺎرﺑﺮ وﺟﻮد دارﻧﺪ.
ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎهدادهﻫﺎ ﺑﺴﺘﮕﻲ ﺑﻪ دو ﻋﻨﺼﺮ اﺻﻠﻲ ﺳﻴﺴﺘﻢ ﻳﻌﻨﻲ ﺳﺨﺖاﻓﺰار و
ﻧﺮماﻓﺰار ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ دارد .اﻟﺒﺘﻪ ﻋﻮاﻣﻞ دﻳﮕﺮي ﻫﻢ در ﻃﺮاﺣﻲ اﻳﻦ ﻣﻌﻤﺎري
دﺧﺎﻟﺖ دارﻧﺪ ﻛﻪ اﻫﻢ اﻳﻦ ﻋﻮاﻣﻞ ﻋﺒﺎرﺗﻨﺪ از:
ﻣﻮﻗﻌﻴﺖ ﺟﻐﺮاﻓﻴﺎﻳﻲ ﻛﺎرﺑﺮان •
ﻧﻴﺎزﻫﺎي ﻛﺎرﺑﺮان •
ﻣﺎﻫﻴﺖ ﭘﺮدازشﻫﺎ و ﺗﺮاﻛﻨﺶﻫﺎ •
ﺗﻌﺪاد ﺗﺮاﻛﻨﺶﻫﺎ •
ﺣﺠﻢ دادهﻫﺎي ذﺧﻴﺮه ﺷﺪﻧﻲ •
ﻣﻮﻗﻌﻴﺖ ﻣﻜﺎﻧﻲ دادهﻫﺎ و ارﺗﺒﺎﻃﺎت ﺑﻴﻦ آﻧﻬﺎ •
ﻣﺎﻫﻴﺖ ﻛﺎرﺑﺮدﻫﺎي ﻣﻮرد ﻧﻈﺮ •
-2اﻧﻮاع ﻣﻌﻤﺎري
در اﺳﺎس دو ﻧﻮع ﻣﻌﻤﺎري ﺑﺮاي ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ وﺟﻮد دارد ﻛﻪ اﻳﻦ دو ﻣﻌﻤﺎري
ﻋﺒﺎرﺗﻨﺪ از:
ﻣﻌﻤﺎري ﻣﺘﻤﺮﻛﺰ •
ﻣﻌﻤﺎري ﻧﺎ ﻣﺘﻤﺮﻛﺰ •
www.PDFgozar.com
در اداﻣﻪ ﻫﺮ ﻳﻚ از اﻧﻮاع ﻣﻌﻤﺎري ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻨﺪ ﮔﺮﻓﺖ.
1-2ﻣﻌﻤﺎري ﻣﺘﻤﺮﻛﺰ
در اﻳﻦ ﻣﻌﻤﺎري ﻳﻚ ﭘﺎﻳﮕﺎه دادهﻫﺎ روي ﻳﻚ ﺳﻴﺴﺘﻢ ﻛﺎﻣﭙﻴﻮﺗﺮي و ﺑﺪون ارﺗﺒﺎط ﺑﺎ
ﺳﻴﺴﺘﻢ ﻛﺎﻣﭙﻴﻮﺗﺮي دﻳﮕﺮ ،اﻳﺠﺎد ﻣﻲ ﺷﻮد .ﺳﺨﺖ اﻓﺰار اﻳﻦ ﺳﻴﺴﺘﻢ ﻣﻲ ﺗﻮاﻧﺪ ﻛﺎﻣﭙﻴﻮﺗﺮ
ﺷﺨﺼﻲ ﻣﺘﻮﺳﻂ و ﻳﺎ ﺑﺰرگ ﺑﺎﺷﺪ و ﻃﺒﻌﺎ ﻗﺪرت ،ﺗﻮاﻧﺶ و ﻛﺎراﻳﻲ ﺳﻴﺴﺘﻢ ﻧﻴﺰ
ﻣﺘﻔﺎوت اﺳﺖ.
2-2ﻣﻌﻤﺎري ﻧﺎﻣﺘﻤﺮﻛﺰ
ﻣﻌﻤﺎري ﻧﺎ ﻣﺘﻤﺮﻛﺰ ،ﺧﻮد داراي اﻧﻮاع ﻣﺨﺘﻠﻔﻲ اﺳﺖ از ﺟﻤﻠﻪ:
ﻣﻌﻤﺎري ﻣﺸﺘﺮي -ﺧﺪﻣﺘﮕﺰار •
ﻣﻌﻤﺎري ﺗﻮزﻳﻊ ﺷﺪه •
www.PDFgozar.com
212ﭘﺎﻳﮕﺎه دادهﻫﺎ
در اداﻣﻪ ﻫﺮ ﻳﻚ از اﻧﻮاع ﻣﻌﻤﺎري ﻫﺎي ﻏﻴﺮ ﻣﺘﻤﺮﻛﺰ را ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار
ﺧﻮاﻫﻴﻢ داد.
در واﻗﻊ وﻇﺎﻳﻔﻲ ﻛﻪ ﺑﺎﻳﺪ " ﺳﻴﺴﺘﻢ" اﻧﺠﺎم دﻫﺪ ﺑﻪ دو دﺳﺘﻪ ﺗﻘﺴﻴﻢ ﻣﻲ ﺷﻮﻧﺪ:
دﺳﺘﻪاي ﻛﻪ اﻧﺠﺎم آن ﺑﺮ ﻋﻬﺪه ﺧﺪﻣﺘﮕﺰار اﺳﺖ •
دﺳﺘﻪاي ﻛﻪ ﺗﻮﺳﻂ ﻣﺸﺘﺮي اﻧﺠﺎم ﻣﻲﺷﻮد. •
ﺑﺮﻧﺎﻣﻪ ،دو زﻳﺮ ﺳﻴﺴﺘﻢ از ﻳﻚ ﺳﻴﺴﺘﻢ ﻛﺎﻣﭙﻴﻮﺗﺮي و ...ﻣﻲ ﺗﻮاﻧﻨﺪ ﺑﺎ ﻫﻢ ﺗﻘﺴﻴﻢ ﻛﺎر
داﺷﺘﻪ ﺑﺎﺷﻨﺪ ....اﻣﺎ در ﻣﺤﻴﻂ ﻫﺎي ﺟﺪﻳﺪ ،ﻣﻌﻤﻮﻻً ﺑﺎ ﺗﻌﺪادي ﻛﺎﻣﭙﻴﻮﺗﺮ ﺷﺨﺼﻲ،
اﻳﺴﺘﮕﺎه ﻛﺎر ،ﭼﺎﭘﮕﺮ ،ﺧﺪﻣﺘﮕﺰار ﻓﺎﻳﻞ و ﺗﺠﻬﻴﺰات دﻳﮕﺮ ،اﻳﺠﺎد ﻣﻲ ﺷﻮد.
ﻛﺎرﺑﺮ در ﻣﺎﺷﻴﻦ ﻣﺸﺘﺮي ﻣﻲﺗﻮاﻧﺪ از ﻃﺮﻳﻖ واﺳﻂ زﻣﺎﻧﻲ )ﻣﺜﻼ زﺑﺎن دادهاي ﻓﺮﻋﻲ(
ﻳﺎ واﺳﻂﻫﺎي دﻳﮕﺮ ﻣﺜﻞ واﺳﻂ ﮔﺮاﻓﻴﻜﻲ ،واﺳﻂ ﻓﺮﻣﻲو ...ﻋﻤﻞ ﻛﻨﺪ .در ﺷﻜﻞ ،3-10
دﻳﺪه ﻣﻲﺷﻮد .در RDBMS ﻋﻨﺎﺻﺮ ﻣﺤﻴﻂ ﻧﺮماﻓﺰاري اﻳﻦ ﻣﻌﻤﺎري ﺑﺎ ﻓﺮض وﺟﻮد ﻳﻚ
در ﻣﺎﺷﻴﻦ ﻣﺸﺘﺮي و ﺑﻘﻴﻪ واﺣﺪﻫﺎي آن در ﻣﺎﺷﻴﻦ RDBMS اﻳﻦ ﺷﻜﻞ ،واﺣﺪﻫﺎﻳﻲ از
ﺧﺪﻣﺘﮕﺰار ﻗﺮار دارﻧﺪ.
JDBC و ODBC ﺑﺮاي ﺗﺴﻬﻴﻞ ﺗﻤﺎس ﺑﻴﻦ ﻣﺸﺘﺮي و ﺧﺪﻣﺘﮕﺰار ،اﺑﺰارﻫﺎﻳﻲ ﻣﺜﻞ
و ...ﺗﻮﻟﻴﺪ ﺷﺪهاﻧﺪ .اﻳﻦ اﺑﺰارﻫﺎ در اﺳﺎس واﺳﻂ ﺑﺮﻧﺎﻣﻪ ﻛﺎرﺑﺮدي ﻫﺴﺘﻨﺪ ﻛﻪ ﺑﻪ ﻣﺸﺘﺮيﻫﺎ
ﺗﻮﻟﻴﺪ ﺷﺪه و ﺑﻪ ﻣﺎﺷﻴﻦ ﺧﺪﻣﺘﮕﺰار SQL اﻣﻜﺎن ﻣﻲدﻫﻨﺪ ﺗﺎ ﭘﺮﺳﺶﻫﺎ ﺑﻪ ﺻﻮرت اﺣﻜﺎم
ﻓﺮﺳﺘﺎده ﺷﻮﻧﺪ .ﺑﺎ اﺳﺘﻔﺎده از اﻳﻦ واﺳﻂ اﺳﺘﺎﻧﺪه ،ﻫﺮ ﻣﺎﺷﻴﻦ ﻣﺸﺘﺮي ﻣﻲﺗﻮاﻧﺪ ﺑﺎ ﻫﺮ ﻣﺎﺷﻴﻦ
ﺧﺪﻣﺘﮕﺰار ﻣﺘﺼﻞ ﺑﺎﺷﺪ و ﻧﻴﺎز ﻧﻴﺴﺖ ﻛﻪ ﻣﺤﻴﻂ ﺳﻴﺴﺘﻤﻲدو ﻣﺎﺷﻴﻦ ،ﻫﻤﮕﻦ ﺑﺎﺷﺪ .در
www.PDFgozar.com
214ﭘﺎﻳﮕﺎه دادهﻫﺎ
ﺑﻌﻀﻲ از ﻛﺎرﺑﺮدﻫﺎ ،ﻣﻤﻜﻦ اﺳﺖ واﺳﻄﻬﺎي ﺧﺎص در ﻣﺎﺷﻴﻦ ﻣﺸﺘﺮي وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ
و ﺣﺘﻲ ﺧﻮد ﻣﺎﺷﻴﻦ ﻣﺸﺘﺮي ﻫﻢ ﻣﻲﺗﻮاﻧﺪ ﻣﺎﺷﻴﻦ ﺧﺎﺻﻲ ﺑﺎﺷﺪ.
در ﺑﻌﻀﻲ از ﺳﻴﺴﺘﻢﻫﺎ ،ﺗﻤﺎس ﻣﺸﺘﺮي ﺑﺎ ﺧﺪﻣﺘﮕﺰار از ﻃﺮﻳﻖ ﻓﺮاﺧﻮان دور اﻧﺠﺎم
ﻣﻲﺷﻮد .ﺗﻤﺎم ﻓﺮاﺧﻮانﻫﺎي دور از ﺳﻮي ﻣﺎﺷﻴﻦ ﻣﺸﺘﺮي ،در ﻳﻚ )ﻳﺎ ﭼﻨﺪ( ﺗﺮﻛﻨﺶ در
ﻣﺎﺷﻴﻦ ﺧﺪﻣﺘﮕﺰار ﺟﺎي داده ﻣﻲﺷﻮﻧﺪ ﺗﺎ در اﻳﻦ ﻣﺎﺷﻴﻦ اﺟﺮا ﺷﻮﻧﺪ ،ﺑﻪ ﮔﻮﻧﻪاي ﻛﻪ اﮔﺮ
ﺗﺮاﻛﻨﺶ ﺑﻪ ﻫﺮ دﻟﻴﻠﻲ ،ﻃﺮد ﺷﻮد ،ﺧﺪﻣﺘﮕﺰار ﻣﻲﺗﻮاﻧﺪ ﺗﺎﺛﻴﺮات اﺟﺮاي ﻫﺮ ﻳﻚ از
ﻓﺮاﺧﻮانﻫﺎي دور را از ﺑﻴﻦ ﺑﺮده ،ﭘﺎﻳﮕﺎهدادهﻫﺎ را ﺑﻪ وﺿﻊ ﺻﺤﻴﺢ ﻗﺒﻞ از اﺟﺮاي
ﺗﺮاﻛﻨﺶ ﺑﺮﮔﺮداﻧﺪ.
www.PDFgozar.com
3-1-2-2ﻃﺮﺣﻬﺎي ﻣﻌﻤﺎري
1- 3-1-2-2از ﻧﻈﺮ ﺗﻌﺪاد ﻣﺸﺘﺮي و ﺧﺪﻣﺘﮕﺰار
از ﻧﻈﺮ ﺗﻌﺪاد ﻣﺸﺘﺮي و ﺧﺪﻣﺖ ﮔﺬار ﻃﺮﺣﻬﺎي زﻳﺮ وﺟﻮد دارﻧﺪ:
ﻳﻚ ﻣﺸﺘﺮي -ﻳﻚ ﺧﺪﻣﺘﮕﺰار •
ﭼﻨﺪ ﻣﺸﺘﺮي -ﻳﻚ ﺧﺪﻣﺘﮕﺰار •
ﻳﻚ ﻣﺸﺘﺮي -ﭼﻨﺪ ﺧﺪﻣﺘﮕﺰار •
ﭼﻨﺪ ﻣﺸﺘﺮي -ﭼﻨﺪ ﺧﺪﻣﺘﮕﺰار •
216ﭘﺎﻳﮕﺎه دادهﻫﺎ
218ﭘﺎﻳﮕﺎه دادهﻫﺎ
2-2-2-2ﭘﻴﻜﺮﺑﻨﺪي ﺳﺨﺖاﻓﺰاري
ﮔﻔﺘﻴﻢ ﻛﻪ اﺟﺰاء ﺗﺸﻜﻴﻞ دﻫﻨﺪه اﻳﻦ ﻣﻌﻤﺎري ﻣﻲ ﺗﻮاﻧﻨﺪ ﻫﻤﮕﻦ ﻳﺎ ﻧﺎ ﻫﻤﮕﻦ ﺑﺎﺷﻨﺪ ،ﺑﻪ
وﻳﮋه از ﻧﻈﺮ ﺳﺨﺖ اﻓﺰاري ،ﭘﻴﻜﺮﺑﻨﺪي ﻫﺎي ﮔﻮﻧﺎﮔﻮﻧﻲ ﭘﻨﺪاﺷﺘﻨﻲ اﺳﺖ .در ﻣﺜﺎل ﺷﻜﻞ
8-10دو ﭘﻴﻜﺮﺑﻨﺪي دﻳﺪه ﻣﻲﺷﻮد .در اﻳﻦ ﻣﻌﻤﺎري اﺟﺰاء زﻳﺮ ﻣﻲ ﺗﻮاﻧﻨﺪ ﻫﻤﮕﻦ ﻳﺎ ﻧﺎ
ﻫﻤﮕﻦ ﺑﺎﺷﻨﺪ:
ﺳﺨﺖاﻓﺰار ﭘﺮدازﺷﮕﺮ •
ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ •
ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهداده )ﺑﻮﻳﮋه از ﻧﻈﺮ ﻣﺪل دادهاي و زﺑﺎن ﭘﺎﻳﮕﺎﻫﻲ( •
ﭘﺮوﺗﻮﻛﻠﻬﺎي ﺷﺒﻜﻪ •
ﺳﺨﺖاﻓﺰار ارﺗﺒﺎط •
ﺳﺨﺖاﻓﺰار ذﺧﻴﺮه ﺳﺎزي •
ﺗﺴﻬﻴﻼت و اﺑﺰارﻫﺎي )ﻧﺮماﻓﺰاري( ﺟﺎﻧﺒﻲ •
220ﭘﺎﻳﮕﺎه دادهﻫﺎ
3-2-2- 2ﻗﻮاﻋﺪ
اﺻﻞ ﻣﻬﻢ در ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﺗﻮزﻳﻊ ﺷﺪه اﻳﻦ اﺳﺖ ﻛﻪ "ﺳﻴﺴﺘﻢ" ﺑﺎﻳﺪ ﺟﻨﺎن
ﻋﻤﻞ ﻛﻨﺪ ﻛﻪ ﻛﺎرﺑﺮان دﻗﻴﻘﺎ ﻣﺜﻞ ﻣﺤﻴﻂ ﭘﺎﻳﮕﺎه داده ﻫﺎي ﻣﺘﻤﺮﻛﺰ ﻣﻌﻤﻮﻟﻲ از آن اﺳﺘﻔﺎده
ﻛﻨﻨﺪ )و اﻳﻦ وﻳﮋﮔﻲ ،ﻳﻜﻲ از ﺗﻔﺎوت ﻫﺎي اﻳﻦ ﻣﻌﻤﺎري ﺑﺎ ﻣﻌﻤﺎري ﻣﺸﺘﺮي -ﺧﺪﻣﺘﮕﺰار
اﺳﺖ( .ﺑﺮاي رﻋﺎﻳﺖ اﻳﻦ اﺻﻞ ﻣﻬﻢ ،در ﻫﺮ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﺗﻮزﻳﻊ ﺷﺪه ﻗﻮاﻋﺪي ﺑﺎﻳﺪ
رﻋﺎﻳﺖ ﺷﻮﻧﺪ ﻛﻪ در واﻗﻊ اﻫﺪاف اﻳﻦ ﺳﻴﺴﺘﻢ ﻫﻢ ﻫﺴﺘﻨﺪ .ﺑﺮﺧﻲ از اﻳﻦ ﻋﻮاﻣﻞ
ﻋﺒﺎرﺗﻨﺪ از:
ﺧﻮد ﻣﺨﺘﺎري ﻣﺤﻠﻲ )داﺧﻠﻲ( •
ﺗﺪاوم ﻋﻤﻠﻴﺎت •
ﻧﺎواﺑﺴﺘﮕﻲ ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎ ﺑﻪ ﻛﺎﻣﭙﻴﻮﺗﺮ اﺻﻠﻲ •
ﻧﺎواﺑﺴﺘﮕﻲ ﺑﺮﻧﺎﻣﻪﻫﺎ ﺑﻪ ﻣﻜﺎن ذﺧﻴﺮه ﺳﺎزي دادهﻫﺎ •
ﻧﺎواﺑﺴﺘﮕﻲ ﺑﺮﻧﺎﻣﻪﻫﺎ ﺑﻪ ﻃﺮز ﺟﺎﻳﺪﻫﻲ دادهﻫﺎ در ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎ. •
ﭘﺮدازش ﭘﺮﺳﺸﻬﺎ ﺑﻪ ﮔﻮﻧﻪاي ﺗﻮزﻳﻊ ﺷﺪه •
ﻧﺎواﺑﺴﺘﮕﻲ ﺑﺮﻧﺎﻣﻪﻫﺎ ﺑﻪ ﺳﺨﺖاﻓﺰار •
ﻧﺎواﺑﺴﺘﮕﻲ ﺑﺮﻧﺎﻣﻪﻫﺎ ﺑﻪ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ •
ﻧﺎواﺑﺴﺘﮕﻲ ﺑﺮﻧﺎﻣﻪﻫﺎ ﺑﻪ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ •
ﻧﺎواﺑﺴﺘﮕﻲ ﺑﺮﻧﺎﻣﻪﻫﺎ ﺑﻪ ﺷﺒﻜﻪ •
4-2-2-2ﻣﺰاﻳﺎ
ﺑﺮﺧﻲ از ﻣﺰاﻳﺎي اﻳﻦ ﻣﻌﻤﺎري ﻋﺒﺎرﺗﺴﺖ از:
ﺳﺎزﮔﺎري و ﻫﻤﺎﻫﻨﮕﻲ ﺑﺎ ﻣﺎﻫﻴﺖ ﺳﺎزﻣﺎنﻫﺎي ﻧﻮﻳﻦ •
ﻛﺎراﻳﻲ ﺑﻴﺸﺘﺮ در ﭘﺮدازش دادهﻫﺎ ﺑﻪ وﻳﮋه در ﭘﺎﻳﮕﺎهدادهﻫﺎي ﺑﺰرگ •
دﺳﺘﻴﺎﺑﻲ ﺑﻬﺘﺮ ﺑﻪ دادهﻫﺎ •
اﺷﺘﺮاك دادهﻫﺎ •
اﻓﺰاﻳﺶ ﭘﺮدازش ﻣﻮازي •
ﻛﺎﻫﺶ ﻫﺰﻳﻨﻪ ارﺗﺒﺎﻃﺎت •
ﺗﺴﻬﻴﻞ ﮔﺴﺘﺮش ﺳﻴﺴﺘﻢ •
www.PDFgozar.com
5-2-2-2ﻣﻌﺎﻳﺐ
اﻳﻦ ﻣﻌﻤﺎري ﻣﻌﺎﻳﺒﻲ ﻫﻢ دارد از ﺟﻤﻠﻪ:
ﭘﻴﭽﻴﺪﮔﻲ ﻃﺮاﺣﻲ ﺳﻴﺴﺘﻢ •
ﭘﻴﭽﻴﺪﮔﻲ ﭘﻴﺎده ﺳﺎزي •
ﻛﺎﻫﺶ ﻛﺎراﻳﻲ در ﺑﺮﺧﻲ ﻣﻮارد •
ﻫﺰﻳﻨﻪ ﺑﻴﺸﺘﺮ •
ﻣﺼﺮف ﺣﺎﻓﻈﻪ ﺑﻴﺸﺘﺮ •
222ﭘﺎﻳﮕﺎه دادهﻫﺎ
2-3-2-2ﻃﺮحﻫﺎ
ﺑﺮاي اﻳﺠﺎد ﭘﺎﻳﮕﺎه دادهﻫﺎ ﺑﺎ ﻣﻌﻤﺎري ﭘﺮدازش ﻣﻮازي ،ﺑﻪ ﻃﻮر ﻛﻠﻲ ،ﭼﻬﺎر ﻣﺪل ﻳﺎ
ﻃﺮح وﺟﻮد دارد:
ﻣﻌﻤﺎري ﺑﺎ ﺣﺎﻓﻈﻪ ﻣﺸﺘﺮك •
ﻣﻌﻤﺎري ﺑﺎ دﻳﺴﻚ ﻣﺸﺘﺮك •
ﻣﻌﻤﺎري ﺑﻲ اﺟﺰاء ﻣﺸﺘﺮك •
ﻣﻌﻤﺎري ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ •
www.PDFgozar.com
ﻋﻴﺐ اﻳﻦ ﻣﻌﻤﺎري در اﻳﻦ اﺳﺖ ﻛﻪ ﻧﻤﻲﺗﻮان ﺑﻴﺶ از 32ﻳﺎ 64ﭘﺮدازﻧﺪه داﺷﺖ،
زﻳﺮا اﺣﺘﻤﺎل ﺑﺮوز ﺗﻨﮕﻨﺎ در ﺑﺎزﺳﺎي ﺣﺎﻓﻈﻪاي ﻳﺎ ﺷﺒﻜﻪ ارﺗﺒﺎﻃﻲ اﻓﺰاﻳﺶ ﻣﻲﻳﺎﺑﺪ .اﻟﺒﺘﻪ اﮔﺮ
www.PDFgozar.com
224ﭘﺎﻳﮕﺎه دادهﻫﺎ
در ﻫﺮ ﭘﺮدازﻧﺪه ﺣﺎﻓﻈﻪ ﻧﻬﺎن ﺑﺎاﻧﺪازه ﺑﺰرگ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ،دﻓﻌﺎت ﻣﺮاﺟﻌﻪ ﺑﻪ ﺣﺎﻓﻈﻪ
اﺻﻠﻲ ﻛﺎﻫﺶ ﻣﻲﻳﺎﺑﺪ ،ﻫﺮ ﭼﻨﺪ ﻧﻤﻲﺗﻮان ﻫﻤﻪ دادهﻫﺎ را در اﻳﻦ ﺑﺎﻓﺮﻫﺎ ﺟﺎي داد .ﻃﺮح
ﻛﻠﻲ اﻳﻦ ﻣﻌﻤﺎري در ﺷﻜﻞ 10-10ﻧﺸﺎن داده ﺷﺪه اﺳﺖ )در اﻳﻦ ﻃﺮح و ﻃﺮحﻫﺎي
ﺑﻌﺪي ﻣﻌﻤﺎري ﻣﻮازي P ،ﺑﻪ ﺟﺎي ﭘﺮدازﻧﺪه و Mﺑﻪ ﺟﺎي ﺣﺎﻓﻈﻪ اﺳﺖ(.
اﻳﻦ ﻣﻌﻤﺎري داراي ﻋﻴﻮﺑﻲ ﻧﻴﺰ اﺳﺖ ﻛﻪ ﻣﻬﻤﺘﺮﻳﻦ ﻋﻴﺐ آن دﺷﻮاري در ﮔﺴﺘﺮش
ﺳﻴﺴﺘﻢ اﺳﺖ ،زﻳﺮا ﺑﺎ اﻓﺰاﻳﺶ دﻳﺴﻚﻫﺎ و ﭘﺮدازﻧﺪهﻫﺎ ،در ارﺗﺒﺎط ﺑﻴﻦ اﺟﺰا ،ﺗﻨﮕﻨﺎ اﻳﺠﺎد
ﻣﻲﺷﻮد و ﺳﺮﻋﺖ ارﺗﻘﺎ ﺑﻴﻦ آﻧﻬﺎ ﻛﺎﻫﺶ ﻣﻲﻳﺎﺑﺪ .ﻃﺮح ﻛﻠﻲ اﻳﻦ ﺳﻴﺴﺘﻢ در ﺷﻜﻞ 11-10
ﻧﺸﺎن داده ﺷﺪه اﺳﺖ.
226ﭘﺎﻳﮕﺎه دادهﻫﺎ
ﻛﺎﻣﻞ دارد .اﻣﺎ ﺑﺮاي آﻧﻜﻪ ﻛﺎرﺑﺮان ﺑﺘﻮاﻧﻨﺪ ﻧﻴﺎزﻫﺎي اﻃﻼﻋﺎﺗﻲ ﺧﻮد را ﺗﺎﻣﻴﻦ ﻛﻨﻨﺪ
ﺑﻲ آﻧﻜﻪ ﻣﺴﺘﻘﻴﻤﺎ ﺑﺎ اﺟﺰاء ﻣﻌﻤﺎري ﻣﺮﺗﺒﻂ ﺑﺎﺷﻨﺪ و در واﻗﻊ ﺑﺘﻮاﻧﻨﺪ از ﻳﻚ ﺳﻴﺴﺘﻢ
ﭼﻨﺪ ﭘﺎﻳﮕﺎﻫﻲ ﺑﻬﺮه ﺑﺮداري ﻛﻨﻨﺪ ،ﺑﻪ ﻳﻚ ﻻﻳﻪ ﻧﺮم اﻓﺰاري ﺧﺎﺻﻲ ﻧﻴﺎز اﺳﺖ .اﻳﻦ ﻻﻳﻪ
ﻧﺮم اﻓﺰاري اﻣﻜﺎن ﻣﻲ دﻫﺪ ﺗﺎ در ﻫﺮ ﺳﻴﺴﺘﻢ ،ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎه دادهﻫﺎ روي داده ﻫﺎي ﭘﺎﻳﮕﺎه
ﺧﻮد ﻛﻨﺘﺮل ﻛﺎﻣﻞ داﺷﺘﻪ ﺑﺎﺷﺪ و ﻧﻴﺎزي ﺑﻪ ﻛﻨﺘﺮل ﻣﺘﻤﺮﻛﺰ ﻧﺒﺎﺷﺪ و در ﻋﻴﻦ ﺣﺎل
ﺧﺪﻣﺎت ﻻزم ﺑﻪ ﻛﺎرﺑﺮان داده ﺷﻮد.
اﻳﻦ ﻻﻳﻪ ﻧﺮماﻓﺰاري در ﺳﻄﺢ ﺑﺎﻻﺗﺮ از DBMSﻫﺎ و اﺣﻴﺎﻧﺎ ﺳﻴﺴﺘﻢﻫﺎي ﻓﺎﻳﻠﻴﻨﮓ
ﻣﻮﺟﻮد در ﭘﻴﻜﺮ ﺑﻨﺪي ﺳﻴﺴﺘﻢ ﭼﻨﺪ ﭘﺎﻳﮕﺎﻫﻲ ،ﻗﺮار دارد .اﻳﻦ ﻻﻳﻪ ﭼﻨﺎن ﻋﻤﻞ ﻣﻲﻛﻨﺪ ﻛﻪ
ﻛﺎرﺑﺮان ﺳﻴﺴﺘﻢﻫﺎي ﻣﺨﺘﻠﻒ ،ﻣﺠﻤﻮﻋﻪ ﭘﺎﻳﮕﺎهﻫﺎ را ﺑﻪ ﺻﻮرت ﻳﻚ ﭘﺎﻳﮕﺎه واﺣﺪ ﻣﻲﺑﻴﻨﻨﺪ.
واﺿﺢ اﺳﺖ ﻛﻪ در ﺳﻴﺴﺘﻢ ﭼﻨﺪ ﭘﺎﻳﮕﺎﻫﻲ ،ﻳﻚ ﺷﻤﺎي ادراﻛﻲ ﺟﺎﻣﻊ )ﺳﺮاﺳﺮي( و در ﻫﺮ
ﻳﻚ از DBMSﻫﺎ ،ﻳﻚ ﺷﻤﺎي ادراﻛﻲ ﻣﺤﻠﻲ وﺟﻮد دارد )و ﻧﻴﺰ ﺷﻤﺎﻫﺎي دﻳﮕﺮ ،ﻃﺒﻖ
دﻳﺪﻳﻢ .در ﭼﻨﻴﻦ ﺳﻴﺴﺘﻤﻲﻃﺒﻌﺎ ﺑﻪ ﻳﻚ ﻛﺎﺗﺎﻟﻮگ ﺟﺎﻣﻊ ﻧﻴﺎز ANSI آﻧﭽﻪ ﻛﻪ در ﻣﻌﻤﺎري
اﺳﺖ .اﻳﻦ ﻣﻌﻤﺎري ﻋﻼوه ﺑﺮ ﻣﺸﻜﻼت ﺗﻜﻨﻴﻜﻲ ﻣﻮﺟﻮد در ﻳﻚ ﺳﻴﺴﺘﻢ ﺗﻮزﻳﻊ ﺷﺪه،
ﻣﺸﻜﻼت ﺧﺎص ﺧﻮد را ﻧﻴﺰ دارد ﻛﻪ در اﻳﻨﺠﺎ از ذﻛﺮ آﻧﻬﺎ ﺧﻮدداري ﻣﻲ ﺷﻮد.
228ﭘﺎﻳﮕﺎه دادهﻫﺎ
ﺗﻤﺮﻳﻨﺎت
ﭘﺎﻳﮕﺎه دادهﻫﺎ230
www.PDFgozar.com
ﺿﻤﻴﻤﻪ ۱
ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮﺍﻻﺕ
داﻧﺶ .4
-4ﻛﺪام ﮔﺰﻳﻨﻪ در راﺑﻄﻪ ﺑﺎ ﻧﺴﻞ دوم ذﺧﻴﺮه و ﺑﺎزﻳﺎﺑﻲ اﻃﻼﻋﺎت ﻧﺎدرﺳﺖ اﺳﺖ ؟
.1اﻳﻦ ﻧﺴﻞ ﺑﻪ ﻧﺴﻞ ﺷﻴﻮهﻫﺎي دﺳﺘﻴﺎﺑﻲ ﻣﻌﺮوف اﺳﺖ.
.2ﺗﻜﺮار ذﺧﻴﺮه ﺳﺎزي دراﻳﻦ ﻧﺴﻞ ﺑﺴﻴﺎر ﻛﺎﻫﺶ ﻳﺎﻓﺘﻪ.
.3ﺗﻐﻴﻴﺮ در رﺳﺎﻧﻪﻫﺎي ذﺧﻴﺮه ﺳﺎزي ﺑﺮ روي ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي ﺗﺎﺛﻴﺮ ﭼﻨﺪاﻧﻲ
ﻧﺪارد.
.4دراﻳﻦ ﻧﺴﻞ از رﺳﺎﻧﻪﻫﺎي ﺑﺎ دﺳﺘﻴﺎﺑﻲ ﻣﺴﺘﻘﻴﻢ ﻣﺜﻞ دﻳﺴﻚ اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ.
-5ﻛﺪام ﺗﻌﺮﻳﻒ در راﺑﻄﻪ ﺑﺎ ))داده(( درﺳﺖ اﺳﺖ ؟
.1ﻧﻤﺎﻳﺶ واﻗﻌﻴﺎت ،ﭘﺪﻳﺪهﻫﺎ ،ﻣﻔﺎﻫﻴﻢ ﻳﺎ ﻣﻌﻠﻮﻣﺎت ﺑﻪ ﺻﻮرﺗﻲ ﺻﻮري و ﻣﻨﺎﺳﺐ
ﺑﺮاي ﺑﺮﻗﺮاري ارﺗﺒﺎط ،ﺗﻔﺴﻴﺮ ﻳﺎ ﭘﺮدازش ﺗﻮﺳﻂ اﻧﺴﺎن ﻳﺎ اﻣﻜﺎﻧﺎت ﺧﻮدﻛﺎر
.2از ﻧﻈﺮ ﺳﺎﺧﺘﺎري و از دﻳﺪﮔﺎه ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ،داده ﻋﺒﺎرت اﺳﺖ از ﻣﻘﺎدﻳﺮ
ﺻﻔﺎت ﺧﺎﺻﻪ اﻧﻮاع ﻣﻮﺟﻮدﻳﺘﻬﺎ
ﻫﺮ دو ﮔﺰﻳﻨﻪ 1و 2 .3
اﻃﻼﻋﺎت ﻛﺎراﻛﺘﺮي ﻛﻪ وارد ﺳﻴﺴﺘﻢ دﺳﺘﻲ ﺷﺪه و ﺑﻪ آن ﻣﻌﻨﺎﻳﻲ ﻣﻨﺘﺴﺐ .4
ﻣﻲﺷﻮد.
-6ﻛﺪام ﻋﺒﺎرت درﺳﺖ اﺳﺖ ؟
.1داده ﻫﻤﺎن اﻃﻼﻋﺎت اﺳﺖ.
.2داده اﻃﻼﻋﺎت ﭘﺮدازش ﺷﺪه اﺳﺖ.
.3اﻃﻼﻋﺎت ،داده ﭘﺮدازش ﺷﺪه اﺳﺖ.
.4اﻃﻼﻋﺎت ﻣﻘﺎدﻳﺮ ﺧﺎم اﺳﺖ.
Attribute -7ﻋﺒﺎرت اﺳﺖ از.....
.1ﻫﻤﺎن ﻣﻮﺟﻮدﻳﺖ اﺳﺖ.
.2ﺻﻔﺎت ﺧﺎﺻﻪ ﺗﻮﺿﻴﺤﻲ ﺑﺮاي ﻫﺮ ﻣﻮﺟﻮدﻳﺖ اﺳﺖ.
.3ﻫﻤﺎن رﻛﻮرد اﺳﺖ.
www.PDFgozar.com
.3ﺻﻔﺖ ﻣﺸﺘﻖ
.4ﻫﺮ ﺳﻪ را دارﻳﻢ
-5ﻛﺪام ﮔﺰﻳﻨﻪ در راﺑﻄﻪ ﺑﺎ ﻧﻤﻮدار EERزﻳﺮ ﺻﺎدق اﺳﺖ ؟
.1ﺑﻪ ﻣﺤﺾ ﺣﺬف داﻧﺸﺠﻮ از ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ،واﺑﺴﺘﮕﺎن او ﻧﻴﺰ ﺣﺬف ﺧﻮاﻫﻨﺪ
ﺷﺪ.
.2واﺑﺴﺘﮕﺎن ﻳﻚ ﻣﻮﺟﻮدﻳﺖ ﻗﻮي ﻣﻲﺑﺎﺷﻨﺪ.
.3ﻣﻮﺟﻮدﻳﺖ داﻧﺸﺠﻮ ،ﻛﻠﻴﺪ اﺻﻠﻲ ﻣﻮﺟﻮدﻳﺖ واﺑﺴﺘﮕﺎن را ﺑﻪ ارث ﻣﻲﺑﺮد.
2 .4و 1
-6ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟
.1در ﻧﻤﻮدار ERﻫﺮ ارﺗﺒﺎﻃﻲ ﺑﻴﻦ ﻣﻮﺟﻮدﻳﺘﻬﺎ داراي ﺳﻤﺎﻧﺘﻴﻚ ﺧﺎﺻﻲ اﺳﺖ.
.2ﺻﻔﺖ ﻣﺸﺘﻖ ﺻﻔﺘﻲ اﺳﺖ ﻛﻪ ﺑﻪ ﻛﻤﻚ ﺻﻔﺘﻬﺎي دﻳﮕﺮ ﻣﻲﺗﻮان آن را ﻣﺤﺎﺳﺒﻪ
ﻛﺮد.
.3ﻣﻌﻨﺎي ﻧﻤﻮدار ERزﻳﺮ آن اﺳﺖ ﻛﻪ ارﺗﺒﺎط اﺳﺘﺎد اﺧﺘﻴﺎري اﺳﺖ.
.4ﻫﻴﭽﻜﺪام
-7ﺷﻜﻞ زﻳﺮ ﻧﻤﺎﻳﺎﻧﮕﺮ ﭼﻪ ﻧﻮع ارﺗﺒﺎﻃﻲ اﺳﺖ ؟
existence dependency .1
is-a .2
cardinality .3
connectivity .4
-8ارﺗﺒﺎط ﺑﻴﻦ ﻣﻮﺟﻮدﻳﺘﻬﺎ ﻛﺪام اﺳﺖ ؟
Attribute .1
record .2
ER .3
entity .4
-9ﻣﻨﻈﻮر از Connection trapﭼﻴﺴﺖ ؟
.1اﺳﺘﻨﺘﺎج ﻧﺎدرﺳﺖ از ارﺗﺒﺎط ﺑﻴﻦ ﻣﻮﺟﻮدﻳﺘﻬﺎ
.2ارﺗﺒﺎﻃﺎت دو ﻃﺮﻓﻪ ﻧﺎدرﺳﺖ
.3ارﺗﺒﺎط ﻧﺎدرﺳﺖ ﻣﻴﺎن ﺳﻪ entity
www.PDFgozar.com
.4ﻫﺮ ﺳﻪ ﮔﺰﻳﻨﻪ
-10ﻛﺪام ﻣﻮﺟﻮدﻳﺖ از ﻧﻮع weakﻣﻲﺑﺎﺷﺪ ؟
.1اﺳﺘﺎد
.2درس
.3ﺧﺎﻧﻮاده اﺳﺘﺎد
.4داﻧﺸﺠﻮ
-11ﻛﺪام ﻣﻮرد ﺟﺰء اﻧﻮاع ﺻﻔﺎت ﺧﺎﺻﻪ ﻧﻤﻲﺑﺎﺷﺪ ؟
.1ذﺧﻴﺮه ﺷﺪه ﻳﺎ ﻣﺸﺘﻖ
.2ﺗﻚ ﻣﻘﺪاري ﻳﺎ ﭼﻨﺪ ﻣﻘﺪاري
.3ﺳﺎده ﻳﺎ ﻣﺮﻛﺐ
.4ﻣﻌﺮﻓﻪ ﻳﺎ ﻧﻜﺮه
-12ﻛﺪام ﮔﺰﻳﻨﻪ وﻳﮋﮔﻲ ﻣﻮﺟﻮدﻳﺖ ﻧﻤﻲﺑﺎﺷﺪ ؟
.1ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻣﻌﻤﻮﻻً ﺑﻴﺶ از ﻳﻚ ﺻﻔﺖ دارد.
.2ﻣﻮﺟﻮدﻳﺖ ﺗﻚ ﺻﻔﺘﻲ وﺟﻮد ﻧﺪارد.
.3ﻣﻮﺟﻮدﻳﺖ ﺗﻚ ﻧﻤﻮﻧﻪاي وﺟﻮد دارد.
.4ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻣﻌﻤﻮﻻً ﻧﻤﻮﻧﻪﻫﺎي ﻣﺘﻤﺎﻳﺰ از ﻳﻜﺪﻳﮕﺮﻧﺪ.
-13ﻛﺪام ﮔﺰﻳﻨﻪ در راﺑﻄﻪ ﺑﺎ ﻛﻠﻴﺪ )ﺻﻔﺖ ﺷﻨﺎﺳﻪ( درﺳﺖ ﻣﻲﺑﺎﺷﺪ ؟
.1ﻣﻲﺗﻮاﻧﺪ ﻳﻜﺘﺎ ﻧﺒﺎﺷﺪ.
.2ﻣﻲﺗﻮاﻧﺪ ﻫﻴﭻ ﻣﻘﺪار ) (NULLﺑﺎﺷﺪ.
.3ﻣﻲﺗﻮاﻧﺪ ﻣﺮﻛﺐ ﺑﺎﺷﺪ.
.4ﻣﻲﺗﻮاﻧﺪ ﻣﺸﺘﻖ ﺑﺎﺷﺪ.
-14در ﻣﺴﺎﺑﻘﻪ ﺑﺴﻜﺘﺒﺎل ارﺗﺒﺎط ﻣﻮﺟﻮدﻳﺘﻬﺎي ﮔﻞ و ﺑﺎزﻳﻜﻦ ﭼﮕﻮﻧﻪ اﺳﺖ ؟
.1ارﺗﺒﺎط ﺑﺎزﻳﻜﻦ ﺑﺎ ﮔﻞ ﺑﻪ ﺻﻮرت 1 :nﻣﻲﺑﺎﺷﺪ.
.2ارﺗﺒﺎط ﺑﺎزﻳﻜﻦ ﺑﺎ ﮔﻞ ﺑﻪ ﺻﻮرت n :nﻣﻲﺑﺎﺷﺪ.
www.PDFgozar.com
(2) -7ارﺗﺒﺎﻃﺎﺗﻲ ﻛﻪ از ﻧﻤﺎد ﻣﺜﻠﺚ )ﻣﻔﻬﻮم ارث ﺑﺮي( اﺳﺘﻔﺎده ﻣﻲﻛﻨﻨﺪ .ارﺗﺒﺎﻃﺎت
))ﻫﺴﺖ(( ﻳﺎ )) ((is-aﻧﺎﻣﻴﺪه ﻣﻲﺷﻮﻧﺪ.
(3) -8
(1) -9
(3) -10ﺑﺎ ﺣﺬف اﺳﺘﺎد اﻃﻼﻋﺎت ﺧﺎﻧﻮاده او ﻧﻴﺰ ﺣﺬف ﻣﻲﮔﺮدد.
(4) -11
(2) -12ﻣﻮﺟﻮدﻳﺖ ﺗﻚ ﺻﻔﺘﻲ ﻣﻲﺗﻮاﻧﺪ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﻣﺜﻼ ﺟﺪوﻟﻲ ﻛﻪ ﻓﻘﻂ
ﻳﻚ ﺳﺘﻮن دارد.
(3) -13ﻓﻴﻠﺪ ﻛﻠﻴﺪ ﻧﻤﻲﺗﻮاﻧﺪ ﻣﻘﺪار ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ ﻳﻌﻨﻲ ﻧﻤﻲﺗﻮاﻧﺪ NULLﺑﺎﺷﺪ.
(1) -14ﻳﻚ ﺑﺎزﻳﻜﻦ ﻣﻲﺗﻮاﻧﺪ ﭼﻨﺪ ﮔﻞ ﺑﺰﻧﺪ وﻟﻲ ﻫﺮ ﮔﻞ ﺗﻮﺳﻂ ﻳﻚ ﺑﺎزﻳﻜﻦ زده
ﻣﻲﺷﻮد.
www.PDFgozar.com
.1راﺑﻄﻲ اﺳﺖ ﺑﻴﻦ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ و ﻛﺎرﺑﺮ و ﻧﻴﺰ زﺑﺎﻧﻲ اﺳﺖ ﺑﺮاي ﺗﻌﺮﻳﻒ ﺑﺎﻧﻚ
اﻃﻼﻋﺎﺗﻲ
.2ﻧﺮماﻓﺰار ﻣﺪﻳﺮﻳﺖ و ﺗﻮﺻﻴﻒ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ و ﺣﻔﺎﻇﺖ و ﺑﺎزﻳﺎﺑﻲ دادهﻫﺎﺳﺖ.
.3ﻫﻤﺎن ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ اﺳﺖ.
.4ﻳﻚ ﺑﺮﻧﺎﻣﻪ ﻛﺎرﺑﺮدي اﺳﺖ ﻛﻪ در زﺑﺎن اﻃﻼﻋﺎﺗﻲ دادهﻫﺎ را ﺗﻌﺮﻳﻒ ﻣﻲﻛﻨﺪ.
-8ﻋﻨﺎﺻﺮ ﺗﺸﻜﻴﻞ دﻫﻨﺪه ﻣﺤﻴﻂ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻛﺪام اﺳﺖ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي
ﻓﻨﻲ(77-
.1ﻣﻮﺟﻮدﻳﺖ -ﺻﻔﺖ ﺧﺎﺻﻪ -داده -ﻓﺎﻳﻞ
.2ﺳﺨﺖاﻓﺰار -ﻧﺮماﻓﺰار -ﻓﺎﻳﻞ -داده
.3ﻧﺮماﻓﺰار-ﻛﺎرﺑﺮ -داده-ﻓﺎﻳﻞ
.4ﺳﺨﺖاﻓﺰار -ﻧﺮماﻓﺰار -ﻛﺎرﺑﺮ -داده
-9ﻛﺪام ﻳﻚ از وﻳﮋﮔﻴﻬﺎي ﻳﻚ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻧﻴﺴﺖ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ(
-1ﻛﻨﺘﺮل ﻣﺘﻤﺮﻛﺰ
-2ﻛﺎﻫﺶ ﻣﻴﺰان اﻓﺰوﻧﮕﻲ
-3ﭘﺪﻳﺪه ﻧﺎﺳﺎزﮔﺎري دادهﻫﺎ
-4اﺳﺘﻔﺎده اﺷﺘﺮاﻛﻲ و ﻫﻤﺰﻣﺎن دادهﻫﺎ
DML-10ﭼﻴﺴﺖ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ(77-
-1ﻳﻚ ﻧﻮع ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﺧﺎص اﺳﺖ
-2وﻇﻴﻔﻪ ﺗﻌﺮﻳﻒ ﻓﻴﻠﺪ ﻫﺎ را در ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ دارد
-3دﺳﺘﻮرﻫﺎﻳﻲ اﺳﺖ ﺑﺮاي ﺗﻌﺮﻳﻒ دادهﻫﺎ
-4ﻋﻬﺪه دار اﻋﻤﺎل ﻫﺮ ﮔﻮﻧﻪ ﺗﻐﻴﻴﺮ در ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ اﺳﺖ
-11ﻛﺪاﻣﻴﻚ از ﻣﻮارد زﻳﺮ در ﻳﻚ ﺳﻴﺴﺘﻢ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﺟﺰو اﻟﺰاﻣﺎت ﻛﺎرآﻳﻲ اﺳﺖ ؟
)ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ (77-
-1ﮔﺰارش از ﻛﺎرﻛﻨﺎن ﻳﻚ ﺑﺨﺶ ﺳﺎزﻣﺎن
www.PDFgozar.com
Internal -3
1,3 -4
-39ﻛﺪام ﮔﺰﻳﻨﻪ ﺗﻮﺳﻂ ﺳﻄﺢ ادراﻛﻲ اراﺋﻪ ﻣﻲﮔﺮدد ؟
-1ﻣﺸﺨﺺ ﺳﺎﺧﺘﻦ دادهﻫﺎ
-2ﺗﻌﺮﻳﻒ دﻳﺘﺎﺑﻴﺲ
-3ﺗﻌﺮﻳﻒ ﺳﻄﺮﻫﺎي ﺟﺪاول
-4ﻣﺸﺨﺺ ﺳﺎﺧﺘﻦ رﺳﺎﻧﻪ ذﺧﻴﺮه ﺳﺎزي
DBA -40ﻛﻴﺴﺖ ؟
-1ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺲ دﻳﺘﺎﺑﻴﺲ
-2ﭘﻴﺎده ﺳﺎزي ﺗﺼﻤﻴﻤﺎت اداره ﻛﻨﻨﺪه دادهﻫﺎ )(DA
-3اﺟﺮاء ﻛﻨﻨﺪه دﻳﺘﺎﺑﻴﺲ
-4ﻃﺮاح دﻳﺘﺎﺑﻴﺲ
-41ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟
-1در اﺳﺘﻘﻼل ﻓﻴﺰﻳﻜﻲ دادهﻫﺎ اﮔﺮ ﺗﻐﻴﻴﺮي در ذﺧﻴﺮه ﺳﺎزي دادهﻫﺎ اﻧﺠﺎم ﮔﻴﺮد،
ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي ﻫﻴﭻ ﺗﻐﻴﻴﺮي ﻧﻤﻲﻛﻨﻨﺪ.
-2در اﺳﺘﻘﻼل ﻣﻨﻄﻘﻲ دادهﻫﺎ ﺗﻐﻴﻴﺮ ﺗﺼﻮﻳﺮ ادراﻛﻲ ﺑﺎﻧﻚ از دﻳﺪ ﻛﺎرﺑﺮان و
ﺑﺮﻧﺎﻣﻪﻫﺎي آﻧﻬﺎ ﻣﺨﻔﻲ ﻣﻲﻣﺎﻧﺪ.
CASE -3ﻳﻚ اﺑﺰار ﻛﻤﻜﻲ اﺳﺖ ﻛﻪ در ﻃﺮاﺣﻲ و ﭘﻴﺎده ﺳﺎزي ﺑﺎﻧﻚ ﻣﻮرد اﺳﺘﻔﺎده
ﻗﺮار ﻣﻲﮔﻴﺮد.
-4ﻧﺎﺳﺎزﮔﺎري و ﻧﺎاﻳﻤﻦ ﺑﻮدن دادهﻫﺎ ،ﺟﺎﻣﻌﻴﺖ ﺑﺎﻧﻚ را ﺧﺪﺷﻪ دار ﻣﻲﻛﻨﺪ وﻟﻲ
ﮔﺴﺴﺖ ﭘﻴﻮﻧﺪﻫﺎي ﺳﻤﺎﻧﺘﻴﻚ ﺑﺮاي ﺟﺎﻣﻌﻴﺖ ﻣﺸﻜﻠﻲاﻳﺠﺎد ﻧﻤﻲﻛﻨﺪ.
-42در ﭘﺎﻳﮕﺎهدادهﻫﺎ ﺑﺎ ﻛﺎﻫﺶ اﻓﺰوﻧﮕﻲ ،ﻧﺘﻴﺠﻪ ﺣﺎﺻﻞ ﻛﺪام اﺳﺖ ؟
-1اﺳﺘﻘﻼل دادهﻫﺎ
security -2
-3ﻛﺎﻫﺶ Inconsistency
-4اﺷﺘﺮاك دادهﻫﺎ
www.PDFgozar.com
.4ﻫﺮ ﺳﻪ ﮔﺰﻳﻨﻪ.
-64ﻣﺸﺨﺼﺎت اﺻﻠﻲ ﻳﻚ ﺗﺮاﻛﻨﺶ ﻧﺴﺒﺖ ﺑﻪ ﻳﻚ ﺑﺮﻧﺎﻣﻪ ﻣﻌﻤﻮﻟﻲ )در ﻣﺤﻴﻂ ﻏﻴﺮ ﺑﺎﻧﻜﻲ(
ﻛﺪام اﺳﺖ ؟
.1ﺗﺮاﻛﻨﺶ ﻧﻤﻲﺗﻮاﻧﺪ ﺑﻪ ﺗﻌﻮﻳﻖ ﺑﻴﺎﻓﺘﺪ.
.2ﺗﺮاﻛﻨﺶ ﺑﻪ DBMSواﺑﺴﺘﻪ ﻧﻴﺴﺖ.
.3ﻫﺪف از ﻛﻨﺘﺮل ﺗﺮاﻛﻨﺶ ﻫﺎ ﺑﺎﻻﺑﺮدن ﺳﺮﻋﺖ اﺳﺖ.
.4ﺗﺮاﻛﻨﺶ ﺗﻮﺳﻂ DBMSﻛﻨﺘﺮل ﻣﻲﺷﻮد.
-65در ﻣﺤﻴﻂ ﭘﺎﻳﮕﺎهداده ﻛﺪام ﻧﺮماﻓﺰار وﺟﻮد ﻧﺪارد ؟
.1ﻧﺮماﻓﺰار DBMS
.2روﻳﻪﻫﺎي ذﺧﻴﺮه ﺷﺪه
.3ﻧﺮماﻓﺰار ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ
.4ﻧﺮماﻓﺰار ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي
-66درون ﻛﺎﺗﺎﻟﻮگ ﺳﻴﺴﺘﻢ ﭼﻪ اﻃﻼﻋﺎﺗﻲ ذﺧﻴﺮه ﻧﻤﻲﮔﺮدد ؟
.1ﻟﻐﺖ ﻧﺎﻣﻪ دادهﻫﺎ
.2ﻣﻘﺎدﻳﺮ دادهﻫﺎي درون ﺟﺪاول
.3ﺗﻌﺪاد ﻧﺴﺨﻪﻫﺎي ﻫﺮ ﻓﺎﻳﻞ و ﺗﺮﺗﻴﺐ زﻣﺎﻧﻲ آﻧﻬﺎ
.4ﺣﻖ دﺳﺘﻴﺎﺑﻲ اﻓﺮاد ﺑﻪ دادهﻫﺎي ﻣﺨﺘﻠﻒ
-67در راﺑﻄﻪ ﺑﺎ دﻳﺪ داﺧﻠﻲ ﻛﺪام ﮔﺰﻳﻨﻪ درﺳﺖ ﻣﻲﺑﺎﺷﺪ ؟
.1اﻳﻦ دﻳﺪ ﻣﺒﺘﻨﻲ ﺑﺮ ﻳﻚ ﻳﺎ ﺑﻴﺶ ﻟﺰ ﻳﻚ ﺳﺎﺧﺘﺎر ﻓﺎﻳﻞ اﺳﺖ.
.2اﻳﻦ دﻳﺪ در ﺳﻄﺢ ﻓﻴﺰﻳﻜﻲ ﻓﺎﻳﻠﻴﻨﮓ ﻣﻄﺮح ﻣﻲﮔﺮدد.
.3اﻳﻦ دﻳﺪ ﺑﻪ ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ ﻣﻌﺮوف اﺳﺖ.
.4ﻫﺮ ﺳﻪ ﮔﺰﻳﻨﻪ
-68ﻛﺪام ﮔﺰﻳﻨﻪ درﺳﺖ اﺳﺖ ؟
.1زﺑﺎن DSLﻣﻲﺗﻮاﻧﺪ ﻣﺴﺘﻘﻞ از HLﻧﺒﺎﺷﺪ.
www.PDFgozar.com
(2) -5در زﺑﺎﻧﻬﺎي ﻏﻴﺮ روﻳﻪاي ﻛﺎرﺑﺮ ﻓﻘﻂ ﻣﻲﮔﻮﻳﺪ ﭼﻪ ﻣﻲﺧﻮاﻫﺪ وﻟﻲ ﺷﻴﻮه و اﻟﮕﻮرﻳﺘﻢ
اﻧﺠﺎم آن ﻛﺎر را ﺑﻴﺎن ﻧﻤﻲﻛﻨﺪ .در زﺑﺎﻧﻬﺎي روﻳﻪاي ﻛﺎرﺑﺮ ﺑﺎﻳﺪ اﻟﮕﻮرﻳﺘﻢ اﻧﺠﺎم ﻛﺎرش را
ﻧﻴﺰ ﺑﻴﺎن ﻛﻨﺪ.
(4) -6اﺷﺘﺮاك ﻣﻨﺎﺑﻊ و اﻣﻨﻴﺖ دادهﻫﺎ از ﻣﺰاﻳﺎي ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻫﺴﺘﻨﺪ .ﻋﻨﺎﺻﺮ اﺻﻠﻲ
ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻋﺒﺎرﺗﻨﺪ از :ﻧﺮماﻓﺰار -ﺳﺨﺖاﻓﺰار -دادهﻫﺎ و ﻛﺎرﺑﺮ
(2) -7
(4) -8
(3) -9ﺑﺮﻋﻜﺲ در ﭘﺎﻳﮕﺎهدادهﻫﺎ ﻧﺎﺳﺎزﮔﺎري دادهﻫﺎ ﻧﺒﺎﻳﺪ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ.
DML(4) -10ﺑﺨﺸﻲ از زﺑﺎن DSLاﺳﺖ و ﺑﻪ دﺳﺘﻮرات ﻛﺎر ﺑﺎ دادهﻫﺎ
) (Data Manipulation Language = DMLﮔﻔﺘﻪ ﻣﻲﺷﻮد.
(3) -11ﺑﺮاي آﻧﻜﻪ ﻛﺎراﻳﻲ را ﺛﺎﺑﺖ ﻧﮕﻪ دارﻳﻢ ﺑﺎﻳﺪ ﺗﻌﺪاد ﻛﺎرﻣﻨﺪان را ﻣﺤﺪود ﻛﻨﻴﻢ.
(1) -12
(3) -13ﺑﻪ ﻛﺎﺗﺎﻟﻮگ ﻓﺮاداده ) (Meta dataﻳﺎ دادهﻫﺎﻳﻲ در ﻣﻮرد دادهﻫﺎ ) Data about
(dataﻧﻴﺰ ﮔﻔﺘﻪ ﻣﻲﺷﻮد.
DDL (2) -14ﺑﺨﺸﻲ از زﺑﺎن DSLاﺳﺖ و ﺑﻪ دﺳﺘﻮرات ﺗﻌﺮﻳﻒ دادهﻫﺎ
) ( Data Definition Language = DDLﮔﻔﺘﻪ ﻣﻲﺷﻮد.
(3) -15اﺟﺰاء ﻣﻌﻤﺎري ANSIﻋﺒﺎرت اﺳﺖ از :دﻳﺪ داﺧﻠﻲ -دﻳﺪ ﺧﺎرﺟﻲ -دﻳﺪ
ادراﻛﻲ-ﺗﺒﺪﻳﻼت ﺑﻴﻦ ﺳﻄﻮح -زﺑﺎن ﻓﺮﻋﻲ دادهاي ) -(DSLزﺑﺎن ﻣﻴﺰﺑﺎن ) (HLو ﺳﻴﺴﺘﻢ
ﻣﺪﻳﺮﻳﺖ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ )(DBMS
(3) -16ﺑﺎ ﻛﺎﻫﺶ اﻓﺰوﻧﮕﻲ دادهﻫﺎ ،داده ﻣﺸﺎﺑﻪ ﻛﻤﺘﺮي وﺟﻮد دارد و ﻟﺬا اﺣﺘﻤﺎل
ﻧﺎﺳﺎزﮔﺎرياﻳﻦ دادهﻫﺎ ﻛﺎﻫﺶ ﻣﻲﻳﺎﺑﺪ .ﻣﺜﻼ اﮔﺮ آدرس ﻓﺮدي ﺗﻐﻴﻴﺮ ﻛﻨﺪ ﺑﺎﻳﺪ ﺗﻤﺎﻣﻲﺟﺪاوﻟﻲ
ﻛﻪ آدرس آن ﺷﺨﺺ را دارﻧﺪ ﺗﻐﻴﻴﺮ ﻛﻨﺪ .ﺑﺪﻳﻬﻲ اﺳﺖ ﻫﺮ ﭼﻘﺪر ﺗﻌﺪاداﻳﻦ ﺟﺪاول ﺑﻴﺸﺘﺮ
ﺑﺎﺷﺪ ﺗﻐﻴﻴﺮ ﺳﺨﺖ ﺗﺮ اﻧﺠﺎم ﻣﻲﮔﻴﺮد و اﺣﺘﻤﺎلاﻳﺠﺎد ﻧﺎﺳﺎزﮔﺎري ﺑﻴﺸﺘﺮ ﻣﻲﺷﻮد.
(2) -17
www.PDFgozar.com
(1) -18ﻋﻨﺎﺻﺮ اﺻﻠﻲ ﺳﻴﺴﺘﻢ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻋﺒﺎرت اﺳﺖ از :ﺳﺨﺖاﻓﺰار -ﻧﺮماﻓﺰار-
دادهﻫﺎ و ﻛﺎرﺑﺮان
(2) -19
(1) -20
(3) -21
(2) -22
CASE (1) -23ﺑﻪ ﻣﻌﻨﺎي Computer Aided Software Engineeringﻣﻲﺑﺎﺷﺪ.
(3) -24
(4) -25
(1) -26
(1) -27
(3) -28در ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺳﺎده ﺗﺮ اﺳﺖ.
(4) -29ﻋﻤﻞ ROLLBACKﻋﺪم ﻣﻮﻓﻘﻴﺖ اﺟﺮاي ﺗﺮاﻛﻨﺶ را ﮔﺰارش ﻣﻲﻛﻨﺪ و ﺑﻪ
ﻣﺪﻳﺮ ﺗﺮاﻛﻨﺶ ﻣﻲﮔﻮﻳﺪ ﻛﻪ اﺷﻜﺎﻟﻲ ﭘﻴﺶ آﻣﺪه اﺳﺖ .ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻣﻤﻜﻦ اﺳﺖ در
ﺣﺎﻟﺖ ﻧﺎﺳﺎزﮔﺎر ﺑﺎﺷﺪ و ﺗﻤﺎم ﺑﻬﻨﮕﺎم ﺳﺎزي ﻫﺎ ﻛﻪ ﺗﻮﺳﻂ آن واﺣﺪ ﻛﺎري اﻧﺠﺎم ﺷﺪه اﺳﺖ
ﺑﺎﻳﺪ ﻟﻐﻮ ﻳﺎ رد ﺷﻮد.
(4) -30
(2) -31
(4) -32
(4) -33
(1) -34
(3) -35
(3) -36
www.PDFgozar.com
(3) -37دﻳﺪ ﻃﺮاح ﺑﺎﻧﻚ Conceptual viewﻣﻲﺑﺎﺷﺪ .دﻳﺪ ﺧﺎرﺟﻲ ﺳﻄﺢ ﻣﺸﺎﻫﺪات
ﻣﺠﺰاي اﺳﺘﻔﺎده ﻛﻨﻨﺪﮔﺎن را ﺑﻴﺎن ﻣﻲﻛﻨﺪ.
(2)-38
(1) -39
(2) -40
(4) -41ﻋﺪم وﺟﻮد ارﺗﺒﺎﻃﺎت ﺑﻴﻦ ﻣﻮﺟﻮدﻳﺘﻬﺎ )ﮔﺴﺴﺖ ﭘﻴﻮﻧﺪﻫﺎي ﺳﻤﺎﻧﺘﻴﻚ( ﻧﻴﺰ ﺑﺎﻋﺚ
ﺧﺪﺷﻪ دار ﺷﺪن ﺟﺎﻣﻌﻴﺖ ﺑﺎﻧﻚ ﻣﻲﺷﻮد.
) (3) -42ﻧﺎﺳﺎزﮔﺎري دادهﻫﺎ = (Inconsistencyﺑﺎ ﻛﺎﻫﺶ اﻓﺰوﻧﮕﻲ دادهﻫﺎ ،داده ي
ﻣﺸﺎﺑﻪ ﻛﻤﺘﺮي وﺟﻮد دارد و ﻟﺬا اﺣﺘﻤﺎل ﻧﺎﺳﺎزﮔﺎرياﻳﻦ دادهﻫﺎ ﻛﺎﻫﺶ ﻣﻲﻳﺎﺑﺪ.
(2) -43
(1) -44
(1) -45ﺑﺮﻗﺮاري اﻣﻨﻴﺖ ﺑﺮ ﻋﻬﺪه DBAﻣﻲﺑﺎﺷﺪ.
(2) -46در ﻳﻚ زﺑﺎن ﺑﻴﺎﻧﻲ ) declarativeﻳﺎ ( Non-proceduralﻛﺎرﺑﺮ ﻣﻲﮔﻮﻳﺪ ﭼﻪ
ﻣﻲﺧﻮاﻫﺪ وﻟﻲ روﻳﻪ اﻧﺠﺎم ﻛﺎر را ﺑﻴﺎن ﻧﻤﻲﻛﻨﺪ .وﻟﻲ ﻣﺜﻼ در Cو ﭘﺎﺳﻜﺎل ﻛﻪ روﻳﻪاي
) (proceduralﻫﺴﺘﻨﺪ ﻛﺎرﺑﺮ ﺑﺎﻳﺪ روﻳﻪ و اﻟﮕﻮرﻳﺘﻢ ﻛﺎر را ﻧﻴﺰ ﺑﻴﺎن ﻛﻨﺪ.
(3) -47
(2) -48
(2) -49
(3) -50
(2) -51
(1) -52
END USER (2) -53اﻓﺮادي ﻫﺴﺘﻨﺪ ﻛﻪ از دﻳﺘﺎﺑﻴﺲ اﺳﺘﻔﺎده ﻣﻲﻛﻨﻨﺪ.
(4) -54ﮔﺰﻳﻨﻪ :1ﻣﺠﺘﻤﻊ ﺑﻮدن ﻳﻌﻨﻲ وﺣﺪت ﭼﻨﺪﻳﻦ ﻓﺎﻳﻞ اﻃﻼﻋﺎﺗﻲ ﻣﺠﺰا ﺑﺎ ﻫﺮ ﮔﺮوه
ﺗﻜﺮاري
www.PDFgozar.com
ﮔﺰﻳﻨﻪ :2ﻛﻮﭼﻜﺘﺮﻳﻦ واﺣﺪ دادهﻫﺎي ﻣﻔﻬﻮﻣﻲرا ﻣﻘﺎدﻳﺮ ﻏﻴﺮ ﻗﺎﺑﻞ ﺗﺠﺰﻳﻪ ﮔﻮﻳﻨﺪ.
ﮔﺰﻳﻨﻪ :3دﻳﺘﺎﺑﻴﺲ ﻣﺠﻤﻮﻋﻪاي از ﭼﻨﺪ رﻛﻮرد اﺳﺖ.
(3) -55ﮔﺰﻳﻨﻪ DBMS :1از ﻧﻮع ﻓﻴﻠﺪﻫﺎ و ﺳﺎﺧﺘﺎر ﻓﺎﻳﻠﻬﺎ ﺧﺒﺮ دارد وﻟﻲ از ﻣﺤﻞ ﻓﻴﺰﻳﻜﻲ
رﻛﻮردﻫﺎ ﺑﺮ روي ﻫﺎرد دﻳﺴﻚ ﺧﺒﺮ ﻧﺪارد.
ﮔﺰﻳﻨﻪ Pre-compiler :2دﺳﺘﻮرﻫﺎي زﺑﺎن ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ را ﺑﻪ دﺳﺘﻮرات ﺑﺎﻧﻜﻲ ﺗﺒﺪﻳﻞ
ﻣﻲﻛﻨﺪ.
ﮔﺰﻳﻨﻪ :4ﻛﺎﺗﺎﻟﻮگ ﺳﻴﺴﺘﻢ ﺑﺎ ﺑﺮﺧﻲ اﺣﻜﺎم DMLو ﺑﺮﺧﻲ اﺣﻜﺎم DDLﻗﺎﺑﻞ ﺗﻐﻴﻴﺮ اﺳﺖ.
host language (2) -56ﻳﻚ زﺑﺎن ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ اﺳﺖ ﻛﻪ اﻣﻜﺎن اﺳﺘﻔﺎده و ارﺗﺒﺎط ﺑﺎ
ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ را ﻓﺮاﻫﻢ ﻣﻲﺳﺎزد.
(3) -57
(2) -58ﮔﺰﻳﻨﻪ 1ﺧﺎﺻﻴﺖ consistencyاﺳﺖ .ﻛﻨﺘﺮل isolationﺗﻮﺳﻂ واﺣﺪ
concurrency controlاﻧﺠﺎم ﻣﻲﮔﻴﺮد .ﺑﺮ ﻃﺒﻖ ﺧﺎﺻﻴﺖ اﻧﺰوا ﻫﻤﺮوﻧﺪي ﺗﺮاﻛﻨﺶ ﻫﺎ ﺑﺎﻳﺪ
ﻛﻨﺘﺮل ﺷﻮد ﺗﺎ اﺛﺮ ﻣﺨﺮب ﺑﺮ روي ﻫﻢ ﻧﺪاﺷﺘﻪ ﺑﺎﺷﻨﺪ.
(1) -59
(3) -60
(1) -61
(4) -62
(4) -63
(4) -64
(3) -65
(2) -66
(1) -67اﻳﻦ دﻳﺪ در ﺳﻄﺢ ﻣﻨﻄﻘﻲ ﻓﺎﻳﻠﻴﻨﮓ ﻣﻄﺮح ﺷﺪه و ﺑﻪ ﻃﺮاﺣﻲ ﻓﻴﺰﻳﻜﻲ ﻣﻌﺮوف
اﺳﺖ.
(4) -68
www.PDFgozar.com
(4) -69
(4) -70
.1راﺑﻄﻪاي
.2ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ
.3ﺷﺒﻜﻪاي
.4ﻟﻴﺴﺖ ﻣﻌﻜﻮس
-2ﻛﺪاﻣﻴﻚ از ﻣﻮارد زﻳﺮ ،ﺟﺰو وﻳﮋﮔﻴﻬﺎي ﺳﺎﺧﺘﺎر دادهاي ﻣﺪل ﺷﺒﻜﻪاي اﺳﺖ ؟
)ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ(79-
.1اﺻﻞ وﺣﺪت ﻋﻤﻠﮕﺮ ،در ﻳﻚ ﻋﻤﻞ واﺣﺪ رﻋﺎﻳﺖ ﻣﻲﺷﻮد.
.2از دﻳﺪ ﻛﺎرﺑﺮ داراي وﺿﻮح اﺳﺖ.
.3ﺑﺮاي ﻣﺤﻴﻂ ﻫﺎي داراي ارﺗﺒﺎﻃﺎت ﻳﻚ ﺑﻪ ﭼﻨﺪ دوﺳﻮﻳﻪ ،ﻣﺪل ﻣﻨﺎﺳﺒﻲ ﻧﻤﻲﺑﺎﺷﺪ.
.4در ﻋﻤﻠﻴﺎت ذﺧﻴﺮه ﺳﺎزي آﻧﻮﻣﺎﻟﻲ ﻧﺪارد.
-3ﻛﺪاﻣﻴﻚ از ﻣﻮارد زﻳﺮ ﺟﺰء ﻣﺪﻟﻬﺎي ﭘﺎﻳﮕﺎه اﻃﻼﻋﺎﺗﻲ ﻧﻴﺴﺘﻨﺪ ؟)ﻣﺴﺎﺑﻘﺎت
آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ و ﺣﺮﻓﻪاي(78 -
.1ﻣﺪل راﺑﻄﻪاي
.2ﻣﺪل ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ
.3ﻣﺪل اﻃﻼﻋﺎﺗﻲ
.4ﻣﺪل ﺷﺒﻜﻪاي
-4ﺷﻜﻞ زﻳﺮ از ﻛﺪام ﻣﺪل ﺑﺮﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ و
ﺣﺮﻓﻪاي( 77 -
-1راﺑﻄﻪاي
-2ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ
-3ﺷﺒﻜﻪاي
-4ﺑﺎﻧﻜﻲ
-5ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ(77-
www.PDFgozar.com
-1در ﻣﺪل راﺑﻄﻪاي ﺑﺎﻧﻚ دادهﻫﺎ از دﻳﺪ ﻛﺎرﺑﺮ از ﺗﻌﺪادي ﺟﺪول ﺗﺸﻜﻴﻞ ﺷﺪه
اﺳﺖ.
-2در ﻣﺪل ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ﻣﺴﻴﺮ ﻣﻨﻄﻘﻲ ﻫﻤﻴﺸﻪ از رﻳﺸﻪ و از ﺑﺎﻻ ﺑﻪ ﭘﺎﻳﻴﻦ اﺳﺖ.
-3در ﻣﺪل ﺷﺒﻜﻪاي ﻫﺮ ﮔﺮه ﻓﺮزﻧﺪ ﻣﻲﺗﻮاﻧﺪ داراي ﺑﻴﺶ از ﻳﻚ ﭘﺪر ﺑﺎﺷﺪ.
-4در ﻣﺪل ﺷﺒﻜﻪاي از ﻣﻔﺎﻫﻴﻢ رﻳﺎﺿﻲ ﻣﺠﻤﻮﻋﻪﻫﺎ ﺑﺮاي ﻧﻤﺎﻳﺶ دادهﻫﺎ و ارﺗﺒﺎط
آﻧﻬﺎ اﺳﺘﻔﺎده ﻣﻲﺷﻮد.
-6ﻛﺪاﻣﻴﻚ از ﻣﻮﺳﺴﺎت زﻳﺮ روي اﺳﺘﺎﻧﺪاردﺳﺎزي زﺑﺎﻧﻬﺎي ﭘﺎﻳﮕﺎهدادهﻫﺎ ﻛﺎر ﻧﻜﺮدهاﻧﺪ ؟
)ﻛﺎرﺷﻨﺎﺳﻲ ارﺷﺪ -آزاد (72
CODASYL DBTG -1
ISO -2
ANSI/SPARC -3
2,3 -4
-7ﻛﺪاﻣﻴﻚ از ﻣﻮارد زﻳﺮ ﺑﻴﺎﻧﮕﺮ ﻓﺮق ﺑﻴﻦ ﻳﻚ ﻣﺪل ﺷﺒﻜﻪاي داده ) (Networkو ﻳﻚ
ﻣﺪل Entity
) Relationship(ERﻣﻲﺑﺎﺷﺪ ؟ ) ﻛﺎرﺷﻨﺎﺳﻲ ارﺷﺪ -آزاد (72
-1در ﻣﺪل ﺷﺒﻜﻪاي ﻫﺮ Entityﻓﻘﻂ ﻳﻚ ﻣﻮﻟﺪ ) (parentدارد در ﻣﺪل ERﻫﺮ
Entityﻣﻲﺗﻮاﻧﺪ ﺑﻴﺸﺘﺮ از ﻳﻚ ﻣﻮﻟﺪ داﺷﺘﻪ ﺑﺎﺷﺪ.
-2در ﻣﺪل ERرواﺑﻂ M:Mﭘﺸﺘﻴﺒﺎﻧﻲ ﻣﻲﺷﻮد در ﻣﺪل ﺷﺒﻜﻪاي ﺧﻴﺮ.
-3در ﻣﺪل ERﻳﻚ Entityﻣﻲﺗﻮاﻧﺪ از ﻧﻮع ﺿﻌﻴﻒ )(weakﺑﺎﺷﺪ در راﺑﻄﻪ ﺷﺒﻜﻪ
ﻛﻠﻴﺪ Entityاز ﻧﻮع ﻗﻮي ) (strongﻣﻲﺑﺎﺷﺪ.
3 -4و2
-8ﻣﻲﺧﻮاﻫﻴﻢ ﺑﺮاي ﻳﻚ داﻧﺸﻜﺪه ﻳﻚ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ آﻣﻮزﺷﻲ ﻃﺮاﺣﻲ ﻛﻨﻴﻢ .از ﺑﻴﻦ
ﻣﻮﺟﻮدﻳﺘﻬﺎي اﺳﺎﺳﻲ ،ﻣﻮﺟﻮدﻳﺖ درس را در ﻧﻈﺮ ﻣﻲﮔﻴﺮﻳﻢ و ارﺗﺒﺎط زﻳﺮ را:
در ﻣﺪل ﺷﺒﻜﻪاي ﺑﺮاي ﻧﺸﺎن دادن ارﺗﺒﺎط ﻓﻮق در ﺳﻄﺢ ادراﻛﻲ:
-1ﺣﺪاﻗﻞ دو ﻣﺠﻤﻮﻋﻪ ﺑﻪ ﻣﻌﻨﺎﻳﻲ ﻛﻪ در CODASYLﻣﻄﺮح اﺳﺖ ،ﻻزم اﺳﺖ.
www.PDFgozar.com
-5ﻛﺪام ﮔﺰﻳﻨﻪ در ﺑﺎﻧﻚ راﺑﻄﻪاي ﺻﺤﻴﺢ ﻧﻴﺴﺖ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ 79 -و
ﻣﺸﺎﺑﻪ ﻣﺴﺎﺑﻘﺎت (80
.1ﺗﺎﭘﻠﻬﺎ ﻧﻈﻢ دارﻧﺪ.
.2ﺗﺎﭘﻞ ﺗﻜﺮاري در راﺑﻄﻪ وﺟﻮد ﻧﺪارد.
.3ﺻﻔﺎت ﺧﺎﺻﻪ ﻧﻈﻢ ﻧﺪارﻧﺪ.
.4ﻫﻤﻪ ﺻﻔﺎت ﺧﺎﺻﻪ ﺗﺠﺰﻳﻪ ﻧﺎﭘﺬﻳﺮﻧﺪ.
-6ﻛﺪام ﮔﺰﻳﻨﻪ ﺑﻪ ﻣﻔﻬﻮم )) ﻣﺠﻤﻮﻋﻪ ﻣﻘﺎدﻳﺮ ﻣﺠﺎز ﻳﻚ ﺻﻔﺖ (( ﻣﻲﺑﺎﺷﺪ ؟ )ﻣﺴﺎﺑﻘﺎت
آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ(79 -
Integrity .1
Persistent .2
Tuple .3
Domain .4
-7در راﺑﻄﻪ ﺑﺎ ﺟﺎﻣﻌﻴﺖ در ﻣﺪل راﺑﻄﻪاي ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟
.1ﺟﺎﻣﻌﻴﺖ داﻣﻨﻪاي ﻳﻌﻨﻲ ﺗﻤﺎم ﺻﻔﺎت در ﺗﻤﺎﻣﻲراﺑﻄﻪﻫﺎ از ﻧﻮع داﻣﻨﻪ ﺧﻮد ﺑﺎﺷﻨﺪ.
.2ﺟﺎﻣﻌﻴﺖ درون راﺑﻄﻪاي ﻳﻌﻨﻲ ﻫﺮ راﺑﻄﻪاي ارﺗﺒﺎﻃﺶ ﺑﺎ راﺑﻄﻪ دﻳﮕﺮ ﺻﺤﻴﺢ ﺑﺎﺷﺪ.
.3ﺟﺎﻣﻌﻴﺖ داﻣﻨﻪاي ﻳﻌﻨﻲ ﻛﻠﻴﺪﻫﺎي داراي ﻣﻘﺪار ﺗﻬﻲ ) (NULLﻳﺎ ﺗﻜﺮاري
ﻧﺒﺎﺷﻨﺪ.
.4ﺟﺎﻣﻌﻴﺖ ارﺟﺎع ﻳﻌﻨﻲ ﻛﻠﻴﺪ ﺧﺎرﺟﻲ درﺳﺖ ﺗﻌﺮﻳﻒ ﺷﺪه ﺑﺎﺷﺪ.
-8ﻛﺪام ﺗﻌﺮﻳﻒ در راﺑﻄﻪ ﺑﺎ ﻛﻠﻴﺪﻫﺎ ﻧﺎدرﺳﺖ اﺳﺖ ؟
Super key .1ﻳﻌﻨﻲ ﻫﺮ ﺗﺮﻛﻴﺒﻲ از ﺻﻔﺖ ﻫﺎ ﻛﻪ ﺧﺎﺻﻴﺖ ﻛﻠﻴﺪ داﺷﺘﻪ ﺑﺎﺷﻨﺪ
وﻟﻲاﻳﻦ ﺗﺮﻛﻴﺐ ﺑﺎﻳﺪ ﻛﻤﻴﻨﻪ ) (minimalﺑﺎﺷﺪ.
Primary key .2ﻳﻜﻲ از ﻛﻠﻴﺪ ﻫﺎي ﻛﺎﻧﺪﻳﺪ اﺳﺖ ﻛﻪ ﺗﻮﺳﻂ ﻣﺪﻳﺮ ﺑﺎﻧﻚ اﻧﺘﺨﺎب
ﻣﻲﺷﻮد.
Alternative key .3ﻛﻠﻴﺪﻫﺎي ﻛﺎﻧﺪﻳﺪ ﺑﻪ ﻏﻴﺮ از ﻛﻠﻴﺪ اﺻﻠﻲ ﻣﻲﺑﺎﺷﻨﺪ.
Foreign key .4ﺻﻔﺘﻲ اﺳﺖ در ﻳﻚ راﺑﻄﻪ ﻛﻪ در راﺑﻄﻪ دﻳﮕﺮ ﻛﻠﻴﺪ اﺻﻠﻲ ﻳﺎ
ﻓﺮﻋﻲ اﺳﺖ.
www.PDFgozar.com
-9اﻳﻦ ﺟﻤﻠﻪ ﺗﻌﺮﻳﻒ ﭼﻴﺴﺖ ؟ ))زﻳﺮ ﻣﺠﻤﻮﻋﻪاي از ﺿﺮب دﻛﺎرﺗﻲ ﭼﻨﺪ داﻣﻨﻪ ((
Domain .1
Relation .2
Tuple .3
Join .4
-10ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟
.1ﻗﺎﻋﺪه ﺟﺎﻣﻌﻴﺖ ارﺟﺎﻋﻲ در راﺑﻄﻪ ﺑﺎ ﻛﻠﻴﺪ ﺧﺎرﺟﻲ اﺳﺖ.
.2ﻗﺎﻋﺪه ﺟﺎﻣﻌﻴﺖ ﻣﻮﺟﻮدﻳﺘﻲ در راﺑﻄﻪ ﺑﺎ ﻛﻠﻴﺪ اﺻﻠﻲ اﺳﺖ.
Super key .3ﻛﻠﻴﺪ اﺻﻠﻲ اﺳﺖ ﻛﻪ ﻳﻜﺘﺎﻳﻲ و minimalityدارد.
.4ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﻏﻴﺮ از ﻛﻠﻴﺪ اﺻﻠﻲ را Alternativeﻣﻲﮔﻮﻳﻨﺪ.
-11راﺑﻄﻪ ﻋﺒﺎرت اﺳﺖ از:
.1ﭘﻞ ارﺗﺒﺎﻃﻲ ﺑﺮاي ﻓﻴﻠﺪﻫﺎ
.2ﻣﻔﻬﻮم رﻳﺎﺿﻲ ﻳﻚ ﺟﺪول
.3ﺟﻤﻊ ﺷﺪن ﭼﻨﺪﻳﻦ ﺟﺪول در ﻳﻚ ﻗﺎﻟﺐ ﺑﺰرﮔﺘﺮ
.4ﻫﻴﭽﻜﺪام
-12ﻛﺪاﻣﻴﻚ از روﺷﻬﺎي زﻳﺮ ﺑﻬﺘﺮﻳﻦ راه ﺑﺮاي ﺣﺼﻮل اﻃﻤﻴﻨﺎن از آن اﺳﺖ ﻛﻪ ﻛﻠﻴﺪﻫﺎي
اﺻﻠﻲ و ﺧﺎرﺟﻲ از ﻫﻤﺎﻫﻨﮕﻲ ﺑﺮﺧﻮردارﻧﺪ ؟ )ﻛﺎرﺷﻨﺎﺳﻲ ﻧﺎﭘﻴﻮﺳﺘﻪ -آزاد (80
.1از ﻃﺮﻳﻖ اﻋﻤﺎل ﭘﻴﺶ ﻓﺮﺿﻬﺎي )(default values
.2از ﻃﺮﻳﻖ Referential Integrity
.3از ﻃﺮﻳﻖ Entity
.4ﻫﻴﭽﻜﺪام
-13ﻛﺪام ﮔﺰﻳﻨﻪ درﺑﺎره راﺑﻄﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟
.1ﻛﺎردﻳﻨﺎﻟﻴﺘﻲ راﺑﻄﻪ ﺗﻌﺪاد ﺻﻔﺎت ﺧﺎﺻﻪ راﺑﻄﻪ در ﻳﻚ ﻟﺤﻈﻪ از ﺣﻴﺎت آن اﺳﺖ.
.2در راﺑﻄﻪ ﺗﺎﭘﻠﻬﺎ ﻧﻈﻢ ﻧﺪارﻧﺪ.
.3ﻫﻤﻪ ﻣﻘﺎدﻳﺮ ﺻﻔﺎت ﺧﺎﺻﻪ در راﺑﻄﻪ ﺗﺠﺰﻳﻪ ﻧﺎﭘﺬﻳﺮ ) ( atomicﻣﻲﺑﺎﺷﻨﺪ.
.4راﺑﻄﻪ از دو ﻣﺠﻤﻮﻋﻪ Headingو bodyﺗﺸﻜﻴﻞ ﻳﺎﻓﺘﻪ اﺳﺖ.
www.PDFgozar.com
.1ﻳﻚ راﺑﻄﻪ
.2ﻳﻚ ﻛﻠﻴﺪ اﺻﻠﻲ
.3ﻳﻚ ﺟﺪول
.4ﻳﻚ ﻓﻴﻠﺪ
-18ﺟﻬﺖ ﭘﻴﺎده ﺳﺎزي ﻳﻚ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻛﺪام ﻓﻌﺎﻟﻴﺖ در اوﻟﻮﻳﺖ ﻗﺮار دارد ؟
)ﻛﺎرﺷﻨﺎﺳﻲ ﻧﺎﭘﻴﻮﺳﺘﻪ -آزاد (80
.1ﻃﺮاﺣﻲ ﻣﺪل دادهﻫﺎ ﻣﻨﻄﻘﻲ
.2ﻃﺮاﺣﻲ ﻣﺪل دادهﻫﺎ ﻓﻴﺰﻳﻜﻲ
.3ﻃﺮاﺣﻲ ﻣﺪل دادهﻫﺎ ﺑﻪ ﺻﻮرت ﻓﻴﺰﻳﻜﻲ و ﻣﻨﻄﻘﻲ
.4ﻫﻴﭽﻜﺪام
-19ﻛﺪاﻣﻴﻚ از ﺟﻤﻼت زﻳﺮ ﻣﺰﻳﺖ و ﺑﺮﺗﺮي ﻳﻚ ﺳﺘﻮن ﻏﻴﺮ ﻗﺎﺑﻞ ﺗﺠﺰﻳﻪ در ﻳﻚ ﻃﺮاﺣﻲ
ﻧﻴﺴﺖ ؟ )ﻛﺎرﺷﻨﺎﺳﻲ ﻧﺎﭘﻴﻮﺳﺘﻪ -آزاد (80
.1ﺑﻬﺘﺮ ﻣﻲﺗﻮان راﺑﻄﻪ ﻛﻠﻴﺪﻫﺎي اﺻﻠﻲ و ﺧﺎرﺟﻲ را در آﻧﻬﺎ ﻧﮕﻬﺪاري ﻧﻤﻮد.
.2ﺑﻬﺘﺮ ﻣﻲﺗﻮان از ﻳﻚ ﺳﺘﻮن Queryﻳﺎ ﺳﻮال ﻧﻤﻮد.
.3ﺑﻬﺘﺮ ﻣﻲﺗﻮان ﺻﺤﺖ اﻃﻼﻋﺎت ) ( integrityرا ﺑﺪﺳﺖ آورد.
.4ﺑﻬﺘﺮ ﻣﻲﺗﻮان ﺳﺘﻮن ﻫﺎ را ﺑﻪ روز آورد.
-20در اﻏﻠﺐ ﻧﺮماﻓﺰارﻫﺎي ﭘﺎﻳﮕﺎهدادهﻫﺎ ﭼﻪ ﭼﻴﺰي ﺑﺮاي ذﺧﻴﺮه ﺳﺎزي اﻃﻼﻋﺎت ﻳﻚ
Entityﻳﺎ ﻣﻮﺟﻮدﻳﺖ ﺑﻪ ﻛﺎر ﻣﻲرود ؟ )ﻛﺎرﺷﻨﺎﺳﻲ ﻧﺎﭘﻴﻮﺳﺘﻪ -آزاد ( 80
.1ﻛﻠﻴﺪ اﺻﻠﻲ
.2ﻓﻴﻠﺪ
.3ﺟﺪول
.4ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ
www.PDFgozar.com
)) -29ﺗﻤﺎم اﻃﻼﻋﺎت ﻣﻮﺟﻮد در ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻓﻘﻂ ﺑﻪ ﻳﻚ روش ﻧﻤﺎﻳﺶ داده
ﻣﻲﺷﻮﻧﺪ ،ﻳﻌﻨﻲ ﺑﻪ ﺻﻮرت ﻣﻘﺎدﻳﺮي در ﻣﻮﻗﻌﻴﺘﻬﺎي ﺳﺘﻮﻧﻲ از ﺳﻄﺮﻫﺎي ﺟﺪول ((.اﻳﻦ
ﺟﻤﻠﻪ ﻛﺪام ﻗﺎﻋﺪه اﺳﺖ ؟
.1ﻗﺎﻋﺪه ﺟﺎﻣﻌﻴﺖ ارﺟﺎﻋﻲ
.2ﻗﺎﻋﺪه اﻃﻼﻋﺎت
.3ﻗﺎﻋﺪه درون راﺑﻄﻪاي
.4ﻗﺎﻋﺪه ﺑﺮون راﺑﻄﻪاي
(3) -10اﺑﺮ ﻛﻠﻴﺪ ﻳﺎ Super keyﺑﻪ ﻫﺮ ﻛﻠﻴﺪي ﮔﻔﺘﻪ ﻣﻲﺷﻮد ﻛﻪ ﺗﻨﻬﺎ وﻳﮋﮔﻲ ﻳﻜﺘﺎﻳﻲ را
داﺷﺘﻪ ﺑﺎﺷﺪ .ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﺣﺎﻟﺖ ﺧﺎﺻﻲ از اﺑﺮ ﻛﻠﻴﺪ و ﻫﻤﭽﻨﻴﻦ ﻛﻠﻴﺪ اﺻﻠﻲ ﺣﺎﻟﺖ ﺧﺎﺻﻲ
از ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ اﺳﺖ.
(2) -11
) (2) -12ﻗﺎﻋﺪه ﺟﺎﻣﻌﻴﺖ ارﺟﺎﻋﻲ = ( Referential Integrity rule
(1) -13ﺗﻌﺪاد ﺗﺎﭘﻠﻬﺎي راﺑﻄﻪ در ﻳﻚ ﻟﺤﻈﻪ از ﺣﻴﺎت آن ﻛﺎردﻳﻨﺎﻟﻴﺘﻲ راﺑﻄﻪ ﻧﺎم دارد.
(4) -14
(3) -15در راﺑﻄﻪ ﺻﻔﺎت ﺧﺎﺻﻪ ﻏﻴﺮ ﻗﺎﺑﻞ ﺗﺠﺰﻳﻪ ﻫﺴﺘﻨﺪ.
(2) -16
(4) -17ﺻﻮرت ﺗﺴﺖ در واﻗﻊ ﺗﻌﺮﻳﻒ ﻣﻮﺟﻮدﻳﺖ اﺳﺖ و ﻫﺮ ﻣﻮﺟﻮدﻳﺖ را ﻣﻲﺗﻮان ﺑﺎ
ﻳﻚ ﺟﺪول )ﻛﻪ ﻫﻤﺎن راﺑﻄﻪ اﺳﺖ (ﻧﺸﺎن داده وﻟﻲ ﭼﻮن راﺑﻄﻪ ﻫﻤﺎن ﺟﺪول اﺳﺖ ﭘﺲ
اﺣﺘﻤﺎﻻ ﻣﻨﻈﻮر ﻃﺮاح ﮔﺰﻳﻨﻪ 4ﺑﻮده اﺳﺖ.
(1) -18
(1) -19ﺑﺪﻳﻬﻲ اﺳﺖ ﻫﻨﮕﺎﻣﻲﻛﻪ ﺳﺘﻮن ﻣﺮﻛﺒﻲ داﺷﺘﻪ ﺑﺎﺷﻴﻢ .ﻣﺜﻞ ﺳﺘﻮن آدرس ﻛﻪ از
ﺳﺘﻮن ﻫﺎي ﺷﻬﺮ -ﺧﻴﺎﺑﺎن -ﻛﻮﭼﻪ و ﭘﻼك ﺗﺸﻜﻴﻞ ﺷﺪه ﺑﺎﺷﺪ ﺑﻪ روز در آوردن ﺳﺘﻮﻧﻬﺎي
آن ﻣﺸﻜﻠﺘﺮ از وﻗﺘﻲ اﺳﺖ ﻛﻪ ﺳﺘﻮﻧﻬﺎ ﺳﺎده و ﻏﻴﺮ ﻣﺮﻛﺐ ﺑﺎﺷﻨﺪ.
(3) -20ﻣﻮﺟﻮدﻳﺖ ﻓﺮد ﻳﺎ ﺷﻴﺊ ﻳﺎ ﭼﻴﺰي اﺳﺖ ﻛﻪ در ﻣﻮرد آن ﻣﻲﺧﻮاﻫﻴﻢ اﻃﻼﻋﺎﺗﻲ
داﺷﺘﻪ ﺑﺎﺷﻴﻢ ،اﻃﻼﻋﺎت ﻫﺮ ﻣﻮﺟﻮدﻳﺖ را ﻣﻲﺗﻮان در ﻳﻚ ﺟﺪول ﺧﺎﺻﻲ ذﺧﻴﺮه ﻛﺮد.
(2) -21ﻣﺜﻼ در ﺟﻤﻠﻪ )) داﻧﺸﺠﻮي ﻣﺸﺮوﻃﻲ داراي ﻣﻌﺪل ﻛﻤﺘﺮ از 12ﻣﻲﺑﺎﺷﺪ ((
داﻧﺸﺠﻮ ﻣﻮﺟﻮدﻳﺖ اﺳﺖ و ﺑﺮاي آن ﺑﺎﻳﺪ ﻳﻚ ﺟﺪول داﺷﺘﻪ ﺑﺎﺳﻴﻢ ﻛﻪ ﻣﻌﺪل ﻳﻜﻲ از
ﻓﻴﻠﺪﻫﺎي آن ﺑﺎﺷﺪ .ﻣﺸﺮوط ﺑﻮدن داﻧﺸﺠﻮ ﻧﻴﺰ ﻳﻚ ﻓﻴﻠﺪ آن ﺟﺪول اﺳﺖ.
(2) -22ﻳﻚ ﺻﻔﺖ ﻏﻴﺮ ﻛﻠﻴﺪي ﺑﺎ ﻛﻠﻴﺪ اﺻﻠﻲ ارﺗﺒﺎط دارد.
(4) -23راﺑﻄﻪ ﭘﺎﻳﻪاي ﺑﺮ ﺣﺴﺐ رواﺑﻂ ﭘﺎﻳﻪاي دﻳﮕﺮ ﻣﺤﺎﺳﺒﻪ ﻧﻤﻲﺷﻮد.
(1) -24
www.PDFgozar.com
(4) -25
(3) -26
(1) -27ﻛﻠﻴﺪ ﺑﺎﻳﺪ ﻳﻜﺘﺎ ﺑﺎﺷﺪ .زﻳﺮ ﺳﺘﻮن Bدو ﺗﺎ Kوﺟﻮد دارد .زﻳﺮ ﺳﺘﻮن Aدو ﺗﺎ t
وﺟﻮد دارد .زﻳﺮ ﺟﻔﺖ ﺳﺘﻮن )( B,Cدو ﺗﺎ ) (K,Sوﺟﻮد دارد.
(3) -28ﺑﻪ ﺑﺴﻂ ﻳﻚ ﺟﺪول در ﻫﺮ ﻟﺤﻈﻪ Extentionو ﺑﻪ ﻧﺎم و ﻣﺠﻤﻮﻋﻪ ﺻﻔﺎت
راﺑﻄﻪ ﭼﻜﻴﺪه راﺑﻄﻪ ﻳﺎ Intentionﮔﻔﺘﻪ ﻣﻲﺷﻮد ﻳﻌﻨﻲ اﺳﻢ ﺟﺪول ﺑﻪ ﻫﻤﺮاه heading
ﺑﺮاﺑﺮ intentionاﺳﺖ .در ﻃﻮل ﺣﻴﺎت ﻳﻚ ﺟﺪول Extextionﻣﺘﻐﻴﺮ وﻟﻲ
Intentionﺛﺎﺑﺖ اﺳﺖ.
(2) -29
www.PDFgozar.com
18 .1ﺳﻄﺮ و 6ﺳﺘﻮن
18 .2ﺳﻄﺮ و 9ﺳﺘﻮن
9 .3ﺳﻄﺮ و 6ﺳﺘﻮن
6 .4ﺳﻄﺮ و 5ﺳﺘﻮن
-2ﻋﺒﺎرت A JOIN Bرا در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ .اﮔﺮ ﺗﻤﺎم ﺻﻔﺎت ﺧﺎﺻﻪ Aو Bﻳﻜﺴﺎن ﺑﺎﺷﻨﺪ
ﻋﺒﺎرت ﻓﻮق ﻣﻌﺎدل ﻛﺪام ﻋﺒﺎرت زﻳﺮ اﺳﺖ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ( 79 -
A UNION B .1
A MINUS B .2
A INTERSECT B .3
A TIMES B .4
-3دو ﺟﺪول زﻳﺮ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ ﺳﭙﺲ ﺑﮕﻮﺋﻴﺪ در ﻧﺘﻴﺠﻪ اﻟﺤﺎق آﻧﻬﺎ ﺗﻮﺳﻂ دﺳﺘﻮر
داده ﺷﺪه ،ﻛﻠﻴﺪ اﺻﻠﻲ ﭼﻪ ﻣﻲﺷﻮد ؟
www.PDFgozar.com
DEPT EMP
DEPT DNAME BUDGET EMP# ENAME DEPT# SALARY
#
D1 Marketing 10M E1 Lopez D1 40K
D2 Developme 12M E2 Cheng D1 42K
nt
D3 Research 5M E3 Finzi D2 30K
E4 Saito D2 35K
Join:
DEPT and EMP over DEPT#
DEPT# .1
EMP# .2
BUDGET .3
EMP# , DEPT# .4
-4در ﺟﺪول EMPدر ﺗﺴﺖ ﻗﺒﻠﻲ ،ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ﻛﺪام اﺳﺖ ؟
EMP# .1
SALARY .2
DEPT# .3
.4ﻫﻴﭽﻜﺪام .ﭼﻮن D1و D2ﺗﻜﺮار ﺷﺪهاﻧﺪ DEPT# ،ﻧﻤﻲﺗﻮاﻧﺪ ﻛﻠﻴﺪ ﺧﺎرﺟﻲ
ﺑﺎﺷﺪ.
-5ﺗﻘﺎﺿﺎي زﻳﺮ در ﻣﻮرد ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻋﺮﺿﻪ ﻛﻨﻨﺪﮔﺎن و ﻗﻄﻌﺎت ﭼﻪ ﻛﺎري اﻧﺠﺎم
ﻣﻲدﻫﺪ؟
;}Result: = (( S join SP) where P# ' p2' ) { S# , city
.1ﺷﻬﺮ ﻋﺮﺿﻪ ﻛﻨﻨﺪهاي را ﻣﻲدﻫﺪ ﻛﻪ ﻗﻄﻌﻪ p2را ﺳﺎﺧﺘﻪ اﺳﺖ.
.2ﺷﻤﺎره ﻋﺮﺿﻪ ﻛﻨﻨﺪه و ﺷﻬﺮ ﻋﺮﺿﻪ ﻛﻨﻨﺪهاي را ﻛﻪ ﻗﻄﻌﻪ p2را ﺗﻮﻟﻴﺪ ﻣﻲﻛﻨﺪ،
ﺑﺎزﻳﺎﺑﻲ ﻣﻲﻛﻨﺪ.
.3ﺷﻤﺎره ﻋﺮﺿﻪ ﻛﻨﻨﺪهاي را ﻣﻲدﻫﺪ ﻛﻪ ﻗﻄﻌﻪ p2در ﻫﻤﺎن ﺷﻬﺮ آن ﺗﻮﻟﻴﺪ ﺷﺪه
اﺳﺖ.
.4ﻫﻴﭽﻜﺪام
www.PDFgozar.com
و ﻗﻄﻌﻪ )S (S# , Sname , City ﺗﺬﻛﺮ :ﺳﻪ ﺟﺪول ﺗﻬﻴﻪ ﻛﻨﻨﺪه
) P (P# , Pname , Color , Cityو ﻣﺤﻤﻮﻟﻪ ) SP ( S# , P# , Qtyرا در ﻧﻈﺮ ﮔﺮﻓﺘﻪ و
ﺑﻪ 4ﺳﻮال زﻳﺮ ﭘﺎﺳﺦ دﻫﻴﺪ.
-6ﻛﺪام ﮔﺰﻳﻨﻪ ﺷﻤﺎره ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎن و ﻗﻄﻌﺎت ﺗﻮﻟﻴﺪي آﻧﻬﺎ را ﭼﺎپ ﻣﻲﻛﻨﺪ ﺑﻪ ﺷﺮط آﻧﻜﻪ
ﻗﻄﻌﻪ ﺗﻮﻟﻴﺪي آﻧﻬﺎ ﺑﻴﺸﺘﺮ از 200ﻋﺪد ﺑﺎﺷﺪ ؟
))Π s#, p# ( σ Qty >200 (SP .1
))Π s#, p# ( σ Qty >200 (S∞ P .2
))σ Qty >200 (Π s#, p# (SP .3
1,3 .4
-7در راﺑﻄﻪ ﺑﺎ دو دﺳﺘﻮر زﻳﺮ ﻛﺪام ﮔﺰﻳﻨﻪ درﺳﺖ اﺳﺖ ؟
و ) ) σ p# = p1 (S∞ SPاﻟﻒ ))) Π s# , p# ( σ Qty >200 ( SPب
.1اﻳﻦ دو دﺳﺘﻮر دﻗﻴﻘﺎ ﻣﻌﺎدل ﻳﻜﺪﻳﮕﺮﻧﺪ و ﻫﻴﭻ ارﺟﺤﻴﺘﻲ ﻧﺴﺒﺖ ﺑﻪ ﻫﻢ ﻧﺪارﻧﺪ.
.2اﻳﻦ دو دﺳﺘﻮر ﻣﻌﺎدل ﻧﻴﺴﺘﻨﺪ.
.3اﻳﻦ دو دﺳﺘﻮر ﻣﻌﺎدﻟﻨﺪ وﻟﻲ ب ﻛﺎراﺗﺮ و ﺑﻬﻴﻨﻪ ﺗﺮ از اﻟﻒ اﺳﺖ.
.4اﻳﻦ دو دﺳﺘﻮر ﻣﻌﺎدﻟﻨﺪ وﻟﻲ اﻟﻒ ﻛﺎراﺗﺮ و ﺑﻬﻴﻨﻪ ﺗﺮ از ب اﺳﺖ.
-8ﻛﺪام ﮔﺰﻳﻨﻪ اﺳﺎﻣﻲﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎن ﻗﻄﻌﻪ p2را ﻣﻲدﻫﺪ ؟
))Π sname ( σp# = p2 (S∞ P .1
))Π sname ( σp# = p2 (S∞ SP .2
))σp# = p2 (Π sname (P∞ SP .3
))σp# = p2 (Π sname (P∞ S .4
-9دﺳﺘﻮر زﻳﺮ ﭼﻪ ﻣﻲﻛﻨﺪ ؟
)Π sname ( Π s# ((Π p# ( σ color = ' red' ( P )) ∞ SP ) ∞ S
.1ﺷﻤﺎره اﺳﺎﻣﻲﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﻗﻄﻌﺎت ﻗﺮﻣﺰ رﻧﮓ را ﺗﻮﻟﻴﺪ ﻛﺮدهاﻧﺪ.
.2ﺷﻤﺎره و اﺳﺎﻣﻲﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺷﻤﺎره ﻗﻄﻌﻪ آﻧﻬﺎ ﻣﻮﺟﻮد ﺑﻮده و
رﻧﮓ آﻧﻬﺎ ﻗﺮﻣﺰ ﻣﻲﺑﺎﺷﺪ.
.3اﺳﺎﻣﻲﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﻳﻚ ﻗﻄﻌﻪ ﻗﺮﻣﺰ رﻧﮓ ﺗﻬﻴﻪ ﻣﻲﻛﻨﻨﺪ.
www.PDFgozar.com
.1
R3(A , B)
a1 b1
a3 b1
.2
R3(A , B)
a2 b2
.3
R3(A , B , C)
a1 b1 c1
a3 b1 c1
a1 b1 c3
a3 b1 c3
ﻫﻴﭽﻜﺪام.4
ﺣﺎﺻﻞ ﻋﺒﺎرت زﻳﺮ ﻛﺪام ﮔﺰﻳﻨﻪ اﺳﺖ ؟-20
R1(A , B , C) DIV R2 ( B , C)
a1 b1 c1 b1 c1
a1 b2 c2 b2 c2
a1 b2 c3 b3 c3
a2 b1 c1
a2 b2 c2
.1
R3(A , B , C)
a2 b1 c1
a2 b2 c2
.2
R3 ( A)
a2
.3
R3(A)
a1
.4
www.PDFgozar.com
)R3(A , B
b1 c1
b2 c2
.3
)Π p# ( sp ∞ S
.4ﻫﺮ ﺳﻪ ﮔﺰﻳﻨﻪ
-22اﮔﺮ DIVIDEBYﻫﻤﺎن ﻋﻤﻠﮕﺮ ﻣﻌﺮﻓﻲ ﺷﺪه ﺗﻮﺳﻂ ) Coddﻳﻌﻨﻲ دو ﻋﻤﻠﻮﻧﺪي(
ﺑﺎﺷﺪ ﻛﺪام راﺑﻄﻪ ﺻﺤﻴﺢ اﺳﺖ ؟
( A TIMES B ) DIVIDEBY B=A .١
( A DIVIDEBY B ) TIMES B≤A .٢
( A TIMES B ) DIVIDEBY B≠A .٣
1 .4و2
-23ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺑﺴﻂ ﺟﺪاول داده ﺷﺪه دراﻳﻦ ﻓﺼﻞ ،ﺧﺮوﺟﻲ دﺳﺘﻮر S ∞ SP ∞ P
ﭼﻪ ﻣﻲﺷﻮد؟
1 .4و3
-29ﻛﺪام ﻓﺮﻣﻮل ﻧﺎدرﺳﺖ اﺳﺖ ؟
)A∩ B = A− ( A− B .1
A ∞ B ≠ B∞ A .2
A∞ B = σ ( A∩ b)× A .3
A ∞B = B∞ A .4
X U Y -30دو ﺟﺪول زﻳﺮ ﭼﻨﺪ ﺳﻄﺮ و ﭼﻨﺪ ﺳﺘﻮن دارد ؟
Y
ﻧﺎم ﺷﻤﺎره ﻣﻌﺪل ﺷﻬﺮ ﺗﻮﻟﺪ
ﻋﻠﻲ 123 17 ﺗﻬﺮان
ﺟﻮاد 574 15 ﺗﺒﺮﻳﺰ
X
ﻧﺎم ﺷﻤﺎره ﻣﻌﺪل ﺷﻬﺮ ﺗﻮﻟﺪ
ﻋﻠﻲ 123 17 ﺗﻬﺮان
ﻣﺠﻴﺪ 934 17 ﺗﻬﺮان
4 .1ﺳﺘﻮن و 3ﺳﻄﺮ
3 .2ﺳﺘﻮن و 4ﺳﻄﺮ
4 .3ﺳﺘﻮن و 4ﺳﻄﺮ
3 .4ﺳﺘﻮن و 3ﺳﻄﺮ
-31ﻛﺪاﻣﻴﻚ از دﺳﺘﻮرات زﻳﺮ ﻛﺎراﺗﺮ اﺳﺖ ؟
] ) ( SP ∞ S ) where p# = ' p4') [ snameاﻟﻒ
] ) (( SP where p# = ' p4') ∞ S ) [ snameب
.1اﻟﻒ
.2ب
.3ﻛﺎراﻳﻲ ﻫﺮ دو ﻳﻜﺴﺎن اﺳﺖ.
.4اﺗﻔﺎﻗﻲ اﺳﺖ و ﻧﻤﻲﺗﻮان ﮔﻔﺖ.
www.PDFgozar.com
20 .1ﺳﻄﺮ
15 .2ﺳﻄﺮ
9 .3ﺳﻄﺮ
www.PDFgozar.com
25 .4ﺳﻄﺮ
-36ﭘﻴﻮﻧﺪ ﻃﺒﻴﻌﻲ دو ﺟﺪول زﻳﺮ ﭼﻨﺪ ﺳﻄﺮ و ﺳﺘﻮن ﺧﻮاﻫﺪ داﺷﺖ ؟
M N P M Q
S# S# P# P#
S1 S1 P1 P2
S2 S1 P2 P4
S3 S1 P3
S4 S1 P4
S5 S1 P5
S1 P6
S2 P1
S2 P2
S3 P2
S4 P2
S4 P4
S4 P5
.1
S# P#
S1 P1
S2 P3
.2
P#
P1
P3
.3
S#
S1
S2
.4
S#
S1
S4
P#
ﺟﺪول ﺑﺎﺷﺪ ﺧﺮوﺟﻲ ﭼﻪ ﻣﻲﺷﻮد ؟ DOR در ﺗﺴﺖ ﻗﺒﻠﻲ اﮔﺮ-40
P1
www.PDFgozar.com
.1
S#
S1
S4
.2
S#
S1
S2
.3
P#
P1
P3
.4
S#
S1
S2
S3
S4
-41در ﺟﺒﺮ راﺑﻄﻪاي ) A−(A− Bﻣﻌﺎدل ﻛﺪام اﺳﺖ ؟
)A−(B− A .1
A∩B .2
)B−(B− A .3
3,2 .4
ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺟﺪول ﻓﻮق روﺷﻦ اﺳﺖ ﻛﻪ ﺳﺘﻮن EMP#ﻛﻠﻴﺪ اﺻﻠﻲ اﺳﺖ و ﭼﻮن دادهﻫﺎي
DEPT#ﺗﻜﺮار ﺷﺪه ﻧﻤﻲﺗﻮان ﻛﻠﻴﺪ ﺑﺎﺷﺪ.
(3) -4در ﺗﻌﺮﻳﻒ ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ﻳﻜﺘﺎﺋﻲ ﺟﺰو ﺷﺮوط آن ﻧﻴﺴﺖ .ﻓﻘﻂ ﺑﺎﻳﺪ آن ﺳﺘﻮن در
ﺟﺪول دﻳﮕﺮي ﻛﻠﻴﺪ اﺻﻠﻲ ﺑﺎﺷﺪ.
(2) -5ﻧﻤﺎد ﺑﻪ ﻛﺎر رﻓﺘﻪ ﻣﺮﺑﻮط ﺑﻪ زﺑﺎن Tutorial Dاﺳﺖ ﻛﻪ در ﻛﺘﺎب دﻳﺖ اﺳﺘﻔﺎده
ﺷﺪه اﺳﺖ .ﺳﺘﻮﻧﻬﺎي ﺧﺮوﺟﻲ در ﻋﻼﻣﺖ آﻛﻮﻻد ﻧﻮﺷﺘﻪ ﻣﻲﺷﻮﻧﺪ.
(1) -6ﺗﻮﺟﻪ ﻛﻨﻴﺪ ﻛﻪ ﮔﺰﻳﻨﻪ 3ﻧﺎدرﺳﺖ اﺳﺖ زﻳﺮا ﻫﻨﮕﺎﻣﻲﻛﻪ ﻋﻤﻠﮕﺮ Πﺳﺘﻮﻧﻬﺎي S#و
p#را اﺳﺘﺨﺮاج ﻣﻲﻛﻨﺪ دﻳﮕﺮ ﺳﺘﻮن Qtyوﺟﻮد ﻧﺪارد ﻛﻪ ﻋﻤﻠﮕﺮ σ Qty >200ﻗﺎﺑﻞ اﺟﺮا
ﺑﺎﺷﺪ.
(3) -7در دﺳﺘﻮر اﻟﻒ اﺑﺘﺪا دو ﺟﺪول sو spﭘﻴﻮﻧﺪ ﺧﻮرده ﺳﭙﺲ ﺳﻄﺮﻫﺎﻳﻲ از آن
اﻧﺘﺨﺎب ﻣﻲﺷﻮد.در دﺳﺘﻮر ب اﺑﺘﺪا ﺳﻄﺮﻫﺎﻳﻲ از ﺟﺪول spاﻧﺘﺨﺎب ﺷﺪه ﺳﭙﺲ آن ﺳﻄﺮﻫﺎ
ﺑﺎ ﺟﺪول sﭘﻴﻮﻧﺪ ﻣﻲﺧﻮرد ﺑﺪﻳﻬﻲ اﺳﺖ ﻛﻪ ﭘﻴﻮﻧﺪ دو ﺟﺪول ﻛﻮﭼﻜﺘﺮ زﻣﺎن و ﻓﻀﺎي
ﻛﻤﺘﺮي ﻣﻲﺧﻮاﻫﺪ.
(2) -8ﺑﺮاي اﺳﺎﻣﻲﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎن ﻗﻄﻌﻪ p2از ﺟﺪاول sو spﺑﺎﻳﺪ اﺳﺘﻔﺎده ﻛﻨﻴﻢ .ﻟﺬااﻳﻦ دو
ﺟﺪول ﺑﺎﻳﺪ ﺑﻪ ﻫﻤﺪﻳﮕﺮ ﭘﻴﻮﻧﺪ ﺑﺨﻮرﻧﺪ.
(4) -9از داﺧﻠﻲ ﺗﺮﻳﻦ ﭘﺮاﻧﺘﺰ دﺳﺘﻮرات را اﺟﺮاء ﻛﻨﻴﺪ.
www.PDFgozar.com
)A← Π p# ( σ color =' red' ( p ﺷﻤﺎره ﻗﻄﻌﺎت ﻗﺮﻣﺰ رﻧﮓ را ﻣﻲدﻫﺪ:
ﺷﻤﺎره ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎن را ﻣﻲدﻫﺪ ﻛﻪ ﺣﺪاﻗﻞ ﻳﻚ ﻗﻄﻌﻪ ﻗﺮﻣﺰ رﻧﮓ ﺗﻮﻟﻴﺪ ﻛﺮدهاﻧﺪ:
)A← Π S# ( A∞ SP
ﻧﺎم ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺣﺪاﻗﻞ ﻳﻚ ﻗﻄﻌﻪ ﻗﺮﻣﺰ رﻧﮓ را ﺗﻮﻟﻴﺪ ﻛﺮدهاﻧﺪ:
) Π Sname ( B ∞ S
(3) -10
(4) -11
)σ p ( a-b) = σ p ( a ) − σ p ( b
ﺿﺮب دﻛﺎرﺗﻲ در رﻳﺎﺿﻴﺎت ﺗﻮاﺑﻊ ،ﺧﺎﺻﻴﺖ ﺟﺎﺑﻪ ﺟﺎﺋﻲ ﻧﺪارد وﻟﻲ در ﻣﻮرد ﺟﺪاول از
آﻧﺠﺎ ﻛﻪ ﺟﺎﺑﻪ ﺟﺎﻳﻲ ﺳﺘﻮﻧﻬﺎ )ﻓﻴﻠﺪﻫﺎ( ﻣﺠﺎز اﺳﺖ ﻟﺬا ﺿﺮب دﻛﺎرﺗﻲ دو ﺟﺪول ﺧﺎﺻﻴﺖ
ﺟﺎﺑﻪ ﺟﺎﻳﻲ دارد.
A-B (1) -12ﻳﻌﻨﻲ ﺳﻄﺮﻫﺎﻳﻲ ﻛﻪ در Aﻫﺴﺖ وﻟﻲ در Bﻧﻴﺴﺖ.ﭘﺲ A-Bزﻳﺮ
ﻣﺠﻤﻮﻋﻪاي از Aﻣﻲﺷﻮد و ﺑﺪﻳﻬﻲ اﺳﺖ ﻛﻪ ﻛﻠﻴﺪ اﺻﻠﻲ ﺟﺪول ،Aﻛﻠﻴﺪ اﺻﻠﻲ زﻳﺮ
ﻣﺠﻤﻮﻋﻪ آن ﻧﻴﺰ ﺧﻮاﻫﺪ ﺑﻮد.
(3) -13
DUM (1) -14ﻣﺜﻞ ﺻﻔﺮ ﻧﻴﺴﺖ.
A TIMES DUM = DUM TIMES R = an empty relation with the same
heading as R
ﭘﺲ ﮔﺰﻳﻨﻪ 2اﺷﺘﺒﺎه اﺳﺖ.
(1) -15
(3) -16ﺧﺮوﺟﻲ ﺑﻪ ﺷﻜﻞ زﻳﺮ اﺳﺖ:
D# Budjet
D1 10
D2 20
D3 5
(2) -17
www.PDFgozar.com
(2) -18ﻋﻤﻮﻣﺎ وﻗﺘﻲ در ﺳﻮال ،ﻛﻠﻤﺎت ))ﻫﻤﻪ (( ﻳﺎ ))ﺗﻤﺎم (( دﻳﺪه ﻣﻲﺷﻮد ﺑﺎﻳﺪ از
ﻋﻤﻠﮕﺮ ﺗﻘﺴﻴﻢ اﺳﺘﻔﺎده ﻛﺮد.
دﺳﺘﻮر project clg [ clg# ] Giving tempاﺑﺘﺪا ﺷﻤﺎره ﻫﻤﻪ داﻧﺸﻜﺪهﻫﺎ را ﻣﻲدﻫﺪ.
ﺳﭙﺲ Crs divideby tempﺟﺪول Crsرا ﺑﺮ ﺷﻤﺎره داﻧﺸﻜﺪهﻫﺎ ﺗﻘﺴﻴﻢ ﻛﺮده و ﺑﺪﻳﻦ
ﺗﺮﺗﻴﺐ درﺳﻬﺎﻳﻲ ﻛﻪ ﺗﻮﺳﻂ ﻫﻤﻪ داﻧﺸﻜﺪهﻫﺎ اراﺋﻪ ﻣﻲﺷﻮﻧﺪ را ﻣﻲدﻫﺪ.
(1) -19
(3) -20
(2) -21
(4) -22در ﺣﺴﺎب ﻣﻌﻤﻮﻟﻲ ﺿﺮب و ﺗﻘﺴﻴﻢ ﻋﻜﺲ ﻳﻜﺪﻳﮕﺮﻧﺪ وﻟﻲ در ﺟﺒﺮ راﺑﻄﻪاي
TIMESو DIVIDEBYﻋﻜﺲ ﻳﻜﺪﻳﮕﺮ ﻧﻴﺴﺘﻨﺪ ﭼﺮا ﻛﻪ اوﻻ ﺗﻘﺴﻴﻢ ﺟﺪﻳﺪ ﺳﻪ ﻋﻤﻠﻮﻧﺪي
اﺳﺖ ،ﺛﺎﻧﻴﺎ ﺗﻘﺴﻴﻢ Aﺑﺮ Bو ﺳﭙﺲ ﺗﺸﻜﻴﻞ ﺿﺮب دﻛﺎرﺗﻲ از ﻧﺘﻴﺠﻪ ﺣﺎﺻﻞ و راﺑﻄﻪ B
ﻣﻨﺠﺮ ﺑﻪ راﺑﻄﻪاي ﻣﻲﺷﻮد ﻛﻪ ﻣﻤﻜﻦ اﺳﺖ ﻫﻤﺎﻧﻨﺪ Aﺑﺎﺷﺪ ،اﻣﺎ اﺣﺘﻤﺎﻻ زﻳﺮ ﻣﺠﻤﻮﻋﻪاي از
Aاﺳﺖ )ﻓﺮﻣﻮل ﮔﺰﻳﻨﻪ .(2ﺑﻨﺎﺑﺮﻳﻦ ﻋﻤﻠﮕﺮ DIVIDEBYدر ﮔﺰﻳﻨﻪ 2ﺧﻴﻠﻲ ﺷﺒﻴﻪ ﺗﻘﺴﻴﻢ
ﺻﺤﻴﺢ در ﺣﺴﺎب ﻣﻌﻤﻮﻟﻲ اﺳﺖ )ﻳﻌﻨﻲ از ﺑﺎﻗﻲ ﻣﺎﻧﺪه ﺻﺮﻓﻨﻈﺮ ﻣﻲﻛﻨﺪ (
(1) -23ﺗﻮﺟﻪ ﻛﻨﻴﺪ ﻛﻪ ﻫﻨﮕﺎم ﭘﻴﻮﻧﺪ S ∞ SPﺑﺎ Pﺑﺎﻳﺪ دو ﺳﺘﻮن cityو p#ﻫﺮ دو
ﻳﻜﺴﺎن ﺑﺎﺷﻨﺪ.
(3) -24اﻳﻦ ﺗﻌﺪاد 2ⁿﻣﺸﺎﺑﻪ ﺗﻌﺪاد زﻳﺮ ﻣﺠﻤﻮﻋﻪﻫﺎي ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﺑﺎ nﻋﻀﻮ اﺳﺖ و
ﺷﺎﻣﻞ ﺗﺼﻮﻳﺮ ﻫﻤﺎﻧﻲ )ﻛﻪ ﻧﺘﻴﺠﻪ آن ﻫﻤﺎﻧﻨﺪ راﺑﻄﻪ اﺻﻠﻲ Aاﺳﺖ ( و ﺗﺼﻮﻳﺮ ﺗﻬﻲ ﻧﻴﺰ
ﻣﻲﺑﺎﺷﺪ.
(1) -25
(4) -26در اﺟﺘﻤﺎع ،اﺷﺘﺮاك و ﺗﻔﺎﺿﻞ راﺑﻄﻪﻫﺎ ﺑﺎﻳﺪ ﺳﺎزﮔﺎر ﺑﺎﺷﻨﺪ ،ﻳﻌﻨﻲ از ﻧﻈﺮ ﺗﻌﺪاد
ﺻﻔﺎت ﺧﺎﺻﻪ و داﻣﻨﻪ ﺑﺎﻳﺴﺘﻲ ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﺳﺎزﮔﺎر ﺑﺎﺷﻨﺪ .اﺟﺘﻤﺎع ،اﺷﺘﺮاك و ﺗﻔﺎﺿﻞ دو
راﺑﻄﻪ Aو Bﺳﺎزﮔﺎر اﺳﺖ ﺑﺎ ﻋﻨﻮان Aو Bو ﺑﺪﻧﻪاي ﺷﺎﻣﻞ ﻣﺠﻤﻮﻋﻪ ﺗﺎﭘﻠﻬﺎي Aو .B
(4) -27
www.PDFgozar.com
(4) -28
(3) -29
(1) -30
X ∩ Yﻳﻚ ﺳﻄﺮ و 4ﺳﺘﻮن ﺧﻮاﻫﺪ داﺷﺖ.
X-Yﻧﻴﺰ ﻳﻚ ﺳﻄﺮ و 4ﺳﺘﻮن ﺧﻮاﻫﺪ داﺷﺖ.
XUY
ﻧﺎم ﺷﻤﺎره ﻣﻌﺪل ﺷﻬﺮ ﺗﻮﻟﺪ
ﻋﻠﻲ 123 17 ﺗﻬﺮان
ﻣﺠﻴﺪ 934 17 ﺗﻬﺮان
ﺟﻮاد 574 15 ﺗﺒﺮﻳﺰ
ﺗﻬﺮان ،123 ،17 ،ﻋﻠﻲ →X ∩ Y
ﺗﻬﺮان ،934 ،17 ،ﻣﺠﻴﺪ →Y-X
(2) -31ب ﻛﺎراﺗﺮ اﺳﺖ ﭼﺮا ﻛﻪ ﮔﺰﻳﻨﺶ را زودﺗﺮ از ﭘﻴﻮﻧﺪ اﻧﺠﺎم داده اﺳﺖ.
(2) -32
(1) -33ﺑﺎ دﺳﺘﻮر ) p#) divided by P( P#و SP ( S#ﺷﻤﺎره ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ ﺑﺪﺳﺖ
ﻣﻲآﻳﺪ ﻛﻪ ﺗﻤﺎم ﻗﻄﻌﺎت را ﻋﺮﺿﻪ ﻣﻲﻛﻨﻨﺪ .ﺳﭙﺲ ﻫﻨﮕﺎﻣﻲﻛﻪ ﻧﺘﻴﺠﻪاﻳﻦ دﺳﺘﻮر ﺑﺎ Sاﻟﺤﺎق
ﺷﻮد ﻣﺸﺨﺼﺎتاﻳﻦ ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎن ﺑﺪﺳﺖ ﻣﻲآﻳﺪ.
(3) -34
(1) -35ﺟﺪول Xداراي 5ﺳﻄﺮ و ﺟﺪول Yداراي 4ﺳﻄﺮ اﺳﺖ ﭘﺲ X times Y
داراي 4×5 =20ﺳﻄﺮ اﺳﺖ.
(4) -36ﻧﺘﻴﺠﻪ ﭘﻴﻮﻧﺪ ﻃﺒﻴﻌﻲ ﺑﻪ ﺷﻜﻞ زﻳﺮ اﺳﺖ:
M N P Q
a m P1 x
b n P2 y
c k P3 z
www.PDFgozar.com
(1) -37در ﺟﺒﺮ راﺑﻄﻪاي ﻋﻤﻠﮕﺮ Joinﻳﺎ ﭘﻴﻮﻧﺪ را دارﻳﻢ .ﻫﻤﭽﻨﻴﻦ ﻋﻤﻠﮕﺮ ﻫﺎي اﺷﺘﺮاك
و اﺟﺘﻤﺎع و ﺗﻔﺎﺿﻞ ) Minusﻳﺎ (Subtractرا ﻧﻴﺰ دارﻳﻢ .وﻟﻲ ﻋﻤﻠﮕﺮ Addﻳﺎ ﺟﻤﻊ را
ﻧﺪارﻳﻢ .در اﻛﺜﺮ ﻧﺮماﻓﺰارﻫﺎي ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻋﻤﻠﮕﺮ ﺗﻔﺎﺿﻞ ﭘﻴﺎده ﺳﺎزي ﻧﺸﺪه اﺳﺖ وﻟﻲ
ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ در ﺗﻤﺎﻣﻲآﻧﻬﺎ وﺟﻮد دارد.
(1) -38دﺳﺘﻮر extendﺑﺮاي اﺿﺎﻓﻪ ﻛﺮدن ﺳﺘﻮن ﺑﻪ ﻳﻚ ﺟﺪول اﺳﺘﻔﺎده ﻣﻲﺷﻮد.
(4) -39ﻳﻌﻨﻲ ﻛﺪام S#ﻫﺎ ﻫﻢ p2و ﻫﻢ p4را ﺗﻬﻴﻪ ﻛﺮدهاﻧﺪ.
(2) -40
(4) -41
-6ﻋﺒﺎرت زﻳﺮ در ﺣﺴﺎب راﺑﻄﻪاي ﺗﺎﭘﻠﻲ ﻧﺎم داﻧﺸﺠﻮﻳﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺣﺪاﻗﻞ ﻳﻚ
درس ﻋﻤﻠﻲ را اﻧﺘﺨﺎب ﻛﺮده ﺑﺎﺷﻨﺪ .ﻛﺪام ﮔﺰﻳﻨﻪ ﻓﺮم ﻣﻌﺎدل ﭘﻴﺸﻮﻧﺪي ) (Prenexآن
اﺳﺖ؟
ST.STNAME WHERE EXISTS STCO (ST.STID=STCO.STID AND
;))'EXISTS CO (CO.COID = STCO.COID AND CO.COTYPE='P
(3) -7
(4) -8
(1) -9
(4) -10
(1) -11
(4) -12ﺣﺴﺎب راﺑﻄﻪاي ﺗﻮﺻﻴﻔﻲ ﻳﺎ ﻧﺎروﻳﻪاي اﺳﺖ وﻟﻲ ﺟﺒﺮ راﺑﻄﻪاي دﺳﺘﻮري ﻳﺎ
روﻳﻪاي اﺳﺖ.
INSERT .1
DELETE .2
UPDATE .3
SELECT .4
-3در ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ))ﺗﻮﻟﻴﺪ ﻛﻨﻨﺪه -ﻗﻄﻌﻪ -ﭘﺮوژه((دﺳﺘﻮر SQLزﻳﺮ ﭼﻪ ﺧﺮوﺟﻲ
ﺗﻮﻟﻴﺪ ﻣﻲﻛﻨﺪ ؟
Select S# , P# , J#
From S , P , J
Where S.city=P.city AND P.city=J.city
.1ﺷﻤﺎره ﺗﻤﺎم ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎن -ﺷﻤﺎره ﻗﻄﻌﻪ و ﺷﻤﺎره ﭘﺮوژهﻫﺎﻳﻲ را ﻣﻲدﻫﺪ ﻛﻪ
ﺗﻬﻴﻪ ﻛﻨﻨﺪه ﻗﻄﻌﻪ و ﭘﺮوژه دو ﺑﻪ دو از ﻳﻚ ﺷﻬﺮ ﻧﻴﺴﺘﻨﺪ.
.2ﺷﻤﺎره ﺗﻤﺎم ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎن -ﺷﻤﺎره ﻗﻄﻌﻪ و ﺷﻤﺎره ﭘﺮوژهﻫﺎﻳﻲ را ﻣﻲدﻫﺪ ﻛﻪ از
ﻳﻚ ﺷﻬﺮ ﻫﺴﺘﻨﺪ.
.3ﺷﻤﺎره ﺗﻤﺎم ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎن -ﺷﻤﺎره ﻗﻄﻌﻪ و ﺷﻤﺎره ﭘﺮوژهﻫﺎﻳﻲ را ﻣﻲدﻫﺪ ﻛﻪ از
ﻳﻚ ﺷﻬﺮ ﻧﻴﺴﺘﻨﺪ.
.4ﺷﻤﺎره ﺗﻤﺎم ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎن -ﺷﻤﺎره ﻗﻄﻌﻪ و ﺷﻤﺎره ﭘﺮوژهﻫﺎﻳﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺗﻬﻴﻪ
ﻛﻨﻨﺪه ﻗﻄﻌﻪ و ﭘﺮوژه دوﺑﻪ دو از ﻳﻚ ﺷﻬﺮ ﻫﺴﺘﻨﺪ.
-4اﮔﺮ ﺟﺪول Pداراي ﻓﻴﻠﺪﻫﺎي ) ، (P# , Pname , Color , Weight , cityﺟﺪول S
داراي ﻓﻴﻠﺪﻫﺎي ) (S# , Sname , Status , Cityو ﺟﺪول SPداراي ﻓﻴﻠﺪﻫﺎي (S# , P# ,
) Cityﺑﺎﺷﻨﺪ ﺑﺎ زﺑﺎن SQLﺑﻪ ﺳﻮال زﻳﺮ ﭘﺎﺳﺦ دﻫﻴﺪ:
))ﺗﻤﺎم ﺟﻔﺖ ﺷﻬﺮﻫﺎﻳﻲ ) (Cityرا ﺑﻴﺎﻳﻴﺪ ﻛﻪ ﺗﻬﻴﻪ ﻛﻨﻨﺪه ) (Sﺳﺎﻛﻦ ﺷﻬﺮ اول ،ﻗﻄﻌﻪاي )(P
اﻧﺒﺎر ﺷﺪه و ﺷﻬﺮ دوم را ﺗﻬﻴﻪ ﻛﺮده ﺑﺎﺷﺪ(( .
.1
Salect city From S , P
Where S.city = P.city
.2
Salect S.city , P.city From S , P
Where S.city = P.city
.3
Salect distinct S. city,P.city From S,P, SP
www.PDFgozar.com
.3ﺑﻪ ﺧﺎﻃﺮ ﺑﺴﺘﻪ ﺑﻮدن SQLو ﺟﺒﺮ راﺑﻄﻪاي ﻣﻲﺗﻮان ﻣﺤﺎﺳﺒﺎت ﺗﻮدرﺗﻮ در ﻫﺮ دو
داﺷﺖ.
SQL .4ﻳﻚ زﺑﺎن proceduralﻣﻲﺑﺎﺷﺪ.
-17ﻛﺪاﻣﻴﻚ از زﺑﺎن ﻫﺎي ﻧﺴﻞ زﻳﺮ ،در ﺟﻬﺖ ﺗﻘﻠﻴﺪ زﺑﺎن ﻃﺒﻴﻌﻲ اﺳﺖ ؟
3GL .1
4GL .2
Access .3
SGL .4
-18ﺑﺮاي اﻳﺠﺎد ﺟﺪول ﭘﺎﻳﻪ از ﭼﻪ دﺳﺘﻮري در SQLاﺳﺘﻔﺎده ﻣﻲﻛﻨﻴﻢ ؟
create table .1
create dbms .2
struct table .3
struct dbms .4
-19دﺳﺘﻮر زﻳﺮ در ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎن و ﻗﻄﻌﺎت ﭼﻪ ﻣﻲﻛﻨﺪ ؟
Select S#, status from S
"Where city = "Tabriz
Order by status desc
.1ﺷﻤﺎره ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ در ﺷﻬﺮ ﺗﺒﺮﻳﺰ داراي وﺿﻌﻴﺖ ﻧﺰوﻟﻲ
ﻣﻲﺑﺎﺷﻨﺪ.
.2ﺷﻤﺎره و وﺿﻌﻴﺖ ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ در ﺷﻬﺮ ﺗﺒﺮﻳﺰ ﻫﺴﺘﻨﺪ ،ﻣﺮﺗﺐ
ﺷﺪه ﺑﺮ اﺳﺎس وﺿﻌﻴﺖ ﺑﻪ ﺻﻮرت ﻧﺰوﻟﻲ
.3ﺷﻤﺎره و وﺿﻌﻴﺖ ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ در ﺷﻬﺮ ﺗﺒﺮﻳﺰ ﻫﺴﺘﻨﺪ ،ﻣﺮﺗﺐ
ﺷﺪه ﺑﺮ اﺳﺎس وﺿﻌﻴﺖ ﺑﻪ ﺻﻮرت ﺻﻌﻮدي
.4وﺿﻌﻴﺖ و ﺷﻬﺮ ﺷﺮﻛﺘﻬﺎﺋﻲ را ﻣﻲدﻫﺪ ﻛﻪ در ﺗﺒﺮﻳﺰ وﺿﻌﻴﺖ ﻧﺰوﻟﻲ دارﻧﺪ.
-20دﺳﺘﻮر زﻳﺮ در ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎن و ﻗﻄﻌﺎت ﭼﻪ ﻣﻲﻛﻨﺪ ؟
Update S Set status=3 * status
'Where city = 'Tehran
.1ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ ﻛﻪ وﺿﻌﻴﺖ ﺳﻪ ﺑﺮاﺑﺮ ﺗﻮﻟﻴﺪ ﻛﻨﻨﺪﮔﺎن ﺗﻬﺮان دارﻧﺪ را ﺣﺬف
ﻣﻲﻛﻨﺪ.
.2وﺿﻌﻴﺖ ﺗﻮﻟﻴﺪﻛﻨﻨﺪﮔﺎن ﺳﺎﻛﻦ ﺷﻬﺮ ﺗﻬﺮان را ﺳﻪ ﺑﺮاﺑﺮ ﻣﻲﻛﻨﺪ.
www.PDFgozar.com
.1ﺗﻤﺎم زوج ﺷﻬﺮﻫﺎﻳﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺗﻬﻴﻪ ﻛﻨﻨﺪه ﺷﻬﺮ اول ،ﻗﻄﻌﻪاي را ﺗﻬﻴﻪ ﻣﻲﻛﻨﺪ
ﻛﻪ در ﺷﻬﺮ دوم اﻧﺒﺎر ﺷﺪه اﺳﺖ.
.2ﺗﻤﺎم زوج ﺷﻬﺮﻫﺎﻳﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺗﻬﻴﻪ ﻛﻨﻨﺪه و ﻣﺤﻞ اﻧﺒﺎر ﻳﻜﻲ اﺳﺖ.
.3ﺗﻤﺎم زوج ﺷﻬﺮﻫﺎﻳﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺗﻬﻴﻪ ﻛﻨﻨﺪه ﺷﻬﺮ دوم ،ﻗﻄﻌﻪاي را ﺗﻬﻴﻪ ﻣﻲﻛﻨﺪ
ﻛﻪ در ﺷﻬﺮ اول اﻧﺒﺎر ﺷﺪه اﺳﺖ.
.4ﺗﻤﺎم زوج ﺷﻬﺮﻫﺎﻳﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺗﻬﻴﻪ ﻛﻨﻨﺪه و ﻣﺤﻞ اﻧﺒﺎر ﻳﻜﻲ ﻧﺒﺎﺷﻨﺪ.
-28دﺳﺘﻮر زﻳﺮ ﭼﻪ ﻣﻲﻛﻨﺪ ؟
Select sname from S
)Where S# not in (select S# from SP
.1ﻧﺎم ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺗﻤﺎم ﻗﻄﻌﺎت را ﺗﻬﻴﻪ ﻣﻲﻛﻨﻨﺪ.
.2ﻧﺎم ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﻫﻴﭻ ﻗﻄﻌﻪاي را ﺗﻬﻴﻪ ﻧﻤﻲﻛﻨﻨﺪ.
.3اﻳﻦ دﺳﺘﻮر ﻏﻠﻂ اﺳﺖ.
www.PDFgozar.com
-34ﻛﺪام ﻧﻮع ﺟﺪول ﻫﻤﻮاره ﻗﺎﺑﻞ دﺳﺘﺮﺳﻲ اﺳﺖ وﻟﻲ ﻣﻤﻜﻦ اﺳﺖ ﺑﻬﻨﮕﺎم ﺳﺎزي در آن
اﻣﻜﺎن ﭘﺬﻳﺮ ﻧﺒﺎﺷﺪ ؟
.1ﺟﺪول اﺻﻠﻲ
.2ﺟﺪول ﻣﺠﺎزي
.3ﺟﺪول ﻣﻮﻗﺘﻲ
.4ﻫﺮﺳﻪ ﮔﺰﻳﻨﻪ
-35ﻳﻚ ﺳﻴﺴﺘﻢ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ را ﻛﺎﻣﻼ راﺑﻄﻪاي ) ( Fully relationalﮔﻮﻳﻴﻢ اﮔﺮ:
.1ﻣﺒﺘﻨﻲ ﺑﺮ ﻣﻔﺎﻫﻴﻢ و ﺳﺎﺧﺘﺎر راﺑﻄﻪاي ﺑﻮده و در DSLآن ،ﻫﻤﺎن زﺑﺎن ﺟﺒﺮ
راﺑﻄﻪاي ﺑﺎﺷﺪ.
.2ﻣﺒﺘﻨﻲ ﺑﺮ ﻣﻔﺎﻫﻴﻢ و ﺳﺎﺧﺘﺎر راﺑﻄﻪاي ﺑﻮده و در DSLآن ،ﻫﻤﺎن زﺑﺎن ﻣﺤﺎﺳﺒﺎت
راﺑﻄﻪاي ﺑﺎﺷﺪ.
.3ﻣﺒﺘﻨﻲ ﺑﺮ ﻣﻔﺎﻫﻴﻢ و ﺳﺎﺧﺘﺎر راﺑﻄﻪاي ﺑﻮده و در DSLآن ﺣﺪاﻗﻞ ﻫﻢ ﺗﻮان زﺑﺎن
ﻣﺤﺎﺳﺒﺎت راﺑﻄﻪاي ﺑﺎﺷﺪ.
.4ﻣﺒﺘﻨﻲ ﺑﺮ ﻣﻔﺎﻫﻴﻢ و ﺳﺎﺧﺘﺎر راﺑﻄﻪاي ﺑﻮده و در DSLآن ﺣﺪاﻗﻞ ﻫﻢ ﺗﻮان زﺑﺎن
ﺟﺒﺮ راﺑﻄﻪاي ﺑﺎﺷﺪ.
ﮔﺰﻳﻨﻪ :1اﻳﻨﻜﻪ در SQLﻳﻚ ﻋﻤﻞ را ﻣﻲﺗﻮان ﺑﻪ ﺻﻮرت ﻫﺎي ﻣﺨﺘﻠﻒ اﻧﺠﺎم داد ﻳﻜﻲ از
ﻣﻌﺎﻳﺐ SQLﺑﻪ ﺣﺴﺎب ﻣﻲآﻳﺪ ﭼﺮا ﻛﻪ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺲ را ﺑﺎاﻳﻦ ﻣﺴﺎﻟﻪ درﮔﻴﺮ ﻣﻲﻛﻨﺪ ﻛﻪ
ﻛﺪام راه ﺣﻞ ﻛﺎراﺗﺮ اﺳﺖ.
ﮔﺰﻳﻨﻪ :2ﭘﻴﻮﻧﺪ ﺟﺪاول ﻛﺎراﺗﺮ از selectﻣﺘﺪاﺧﻞ اﺳﺖ.
ﮔﺰﻳﻨﻪ Count (*) :3ﺑﺮاي ﺷﻤﺎرش ﺳﻄﺮﻫﺎي ﺟﺪاول اﺳﺘﻔﺎده ﻣﻲﺷﻮد دراﻳﻦ ﺗﺎﺑﻊ
ﻧﻤﻲﺗﻮان از Distinctاﺳﺘﻔﺎده ﻛﺮد و ﺳﻄﺮﻫﺎي NULLرا ﻫﻢ ﻣﻲﺷﻤﺎرد.
SQL (4) -16ﻳﻚ زﺑﺎن ﻣﺤﺎورهاي و ﻏﻴﺮ روﻳﻪاي ) (non- proceduralاﺳﺖ ﻛﻪ در آن
ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺲ ﺗﻨﻬﺎ ﻣﻲﮔﻮﻳﺪ ﭼﻪ ﻣﻲﺧﻮاﻫﺪ وﻟﻲ روش ﺑﺪﺳﺖ آوردن ﺟﻮاب را ﻣﻌﻴﻦ
ﻧﻤﻲﺳﺎزد .در راﺑﻄﻪ ﺑﺎ ﮔﺰﻳﻨﻪ ) (1ﻣﻤﻜﻦ اﺳﺖ ﺑﮕﻮﺋﻴﺪ ﺧﺮوﺟﻲ ﻣﻲﺗﻮاﻧﺪ ﻳﻚ ﻋﺪد ﺗﻨﻬﺎ
ﺑﺎﺷﺪ .وﻟﻲ ﻫﻤﻴﻦ ﻋﺪد ﺗﻨﻬﺎ ﺑﻪ ﻋﻨﻮان ﺧﺮوﺟﻲ ﻳﻚ دﺳﺘﻮر ،SQLدر واﻗﻊ راﺑﻄﻪاي اﺳﺖ
ﻛﻪ ﻳﻚ ﺳﻄﺮ و ﻳﻚ ﺳﺘﻮن دارد.
(2) -17
(1) -18
(2) -19
(2) -20
(2) -21
(2) -22
(4) -23
(3) -24
(1) -25
(3) -26اﮔﺮ در دﻳﺪ Kﺗﻐﻴﻴﺮاﺗﻲ دﻫﻴﻢ ﻛﻪ ﺳﺘﻮن Wآن )ﻛﻪ ﺟﻤﻊ ﺳﺘﻮن zﺟﺪول ﭘﺎﻳﻪاي
Rﻣﻲﺑﺎﺷﺪ(ﺗﻐﻴﻴﺮ ﻛﻨﺪ ،آﻧﮕﺎه DBMSﻧﻤﻲﺗﻮاﻧﺪ ﺗﻐﻴﻴﺮات Wرا ﺑﻪ Zاﻋﻤﺎل ﻛﻨﺪ.
(1) -27
(2) -28
www.PDFgozar.com
(4) -29
(2) -30ﺑﺎﻳﺪ ﺗﻮﺟﻪ داﺷﺖ ﻛﻪ ﮔﺰﻳﻨﻪ 1ﻧﺎدرﺳﺖ اﺳﺖ و ﺟﻮاب ﻏﻠﻄﻲ ﻣﻲدﻫﺪ .ﭼﺮا ﻛﻪ
ﺗﺎ ﻫﺮ ﺟﺎي ﺟﺪول ﻛﻪ ﭘﻴﺶ ﻣﻲرود ،ﻣﻘﺪار ﺗﺪرﻳﺠﻲ ) AVG(mﻋﺪدي ﻏﻠﻂ را ﻧﺸﺎن
ﻣﻲدﻫﺪ در ﺻﻮرﺗﻲ ﻛﻪ اﮔﺮ ﻣﺜﻼ داﻧﺸﺠﻮي ﺳﻄﺮ دﻫﻢ ﻣﻌﺪﻟﺶ ازاﻳﻦ ﻋﺪد ﺑﻴﺸﺘﺮ ﺑﺎﺷﺪ ،در
ﺧﺮوﺟﻲ ﻇﺎﻫﺮ ﻣﻲﺷﻮد .در ﮔﺰﻳﻨﻪ 2اﺑﺘﺪا selectداﺧﻠﻲ اﺟﺮاء ﺷﺪه و ﻧﺘﻴﺠﻪ آن ﻛﻪ ﻳﻚ
ﻋﺪد اﺳﺖ اﺳﺘﺨﺮاج ﻣﻲﮔﺮدد.
(3) -31ﺗﻮﺟﻪ ﻛﻨﻴﺪ ﻛﻪ دو ﻋﺒﺎرت زﻳﺮ ﻣﻌﺎدل ﻳﻜﺪﻳﮕﺮﻧﺪ:
> is not NULLﻧﺎم ﺳﺘﻮن < ) > is NULLﻧﺎم ﺳﺘﻮن < ( NOT
(2) -32
(1) -33
(2) -34
(1) -35
.3ﻫﺮ دو
.4ﻫﻴﭽﻜﺪام
-2اﮔﺮ راﺑﻄﻪ } R= {A,B,C,D,E,F,Gداراي FDﻫﺎي زﻳﺮ ﺑﺎﺷﺪ:
}F= { AF→BE , FC→DE , F→CD , D→E , C→A
ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ اﻳﻦ راﺑﻄﻪ ﻛﺪام اﺳﺖ ؟
(A,F,C,D) .1
(F,A) .2
(F,A,G) .3
(F,G) .4
-3ﻛﺪام ﻣﺠﻤﻮﻋﻪ FDﻫﺎ ﻛﺎﻫﺶ ﻧﺎﭘﺬﻳﺮﻧﺪ ؟
F = { A→BC , A→D , A→E } .1
F = {AB→C , A→B , A→D , A→E } .2
F = {A→B , A→C , A→D , A→E } .3
F = {A→A , A→B , A→C , A→D , A→E } .4
-4در راﺑﻄﻪ } R = { A,B,C,Dواﺑﺴﺘﮕﻲ ﻫﺎي زﻳﺮ وﺟﻮد دارد:
}F= {A→BE , B→C , A→B , AB→C , AC→D
ﻣﺠﻤﻮﻋﻪ ﻛﺎﻫﺶ ﻧﺎﭘﺬﻳﺮ )ﻛﻤﻴﻨﻪ( از واﺑﺴﺘﮕﻲ ﻫﺎ ﻛﺪام اﺳﺖ ؟
{ A→B , B→C , A→D } .1
{ A→B , A→C , A→D } .2
{ B→C , B→D , A→C } .3
{ A→B , B→D , D→C} .4
-5راﺑﻄﻪ } R = { A,B,C,D,E,F,Gداراي واﺑﺴﺘﮕﻲ ﻫﺎي ﺗﺎﺑﻌﻲ زﻳﺮ اﺳﺖ:
} F= {A→B , BC→DE , AEF→G
ﻛﺪام واﺑﺴﺘﮕﻲ از آن ﻗﺎﺑﻞ اﺳﺘﻨﺘﺎج اﺳﺖ ؟
ACF→DG .1
AC→DE .2
EF→G .3
1 .4و2
-6ﻛﺪام ﮔﺰﻳﻨﻪ در راﺑﻄﻪ ﺑﺎ دو ﻣﺠﻤﻮﻋﻪ از FDﻫﺎي زﻳﺮ ﺑﺮاي راﺑﻄﻪ }R={A,B,C,D,E
درﺳﺖ اﺳﺖ ؟
} F= {A→B , AB→C, D→AC , D→E
} G= {A→BC , D→AE
G .1و Fﻫﻢ ارزﻧﺪ.
www.PDFgozar.com
.4ﻫﺮﺳﻪ ﮔﺰﻳﻨﻪ
-10ﻣﺠﻤﻮﻋﻪ ﻛﺎﻫﺶ ﻧﺎﭘﺬﻳﺮ ﻣﺠﻤﻮﻋﻪ واﺑﺴﺘﮕﻲ زﻳﺮ ﻛﺪام اﺳﺖ ؟
}F={A→D , A→C , CD→B , AD→C
}{CD→B , AD→C .1
}{A→D , A→C , AD→C .2
}{A→D , CD→B , AD→C .3
} {A→D , A→C , CD→B .4
-11از ﻣﺠﻤﻮﻋﻪ FDزﻳﺮ ﻛﺪام راﺑﻄﻪ را ﻧﻤﻲﺗﻮان اﺳﺘﻨﺘﺎج ﻛﺮد ؟
}F= {A→D, CD→B , AD→C
C→B .1
A→B .2
A→C .3
A→CD .4
-12ﻛﺪام ﮔﺰﻳﻨﻪ درﺳﺖ اﺳﺖ ؟
.1ﺑﻪ ﻣﺠﻤﻮﻋﻪ ﺗﻤﺎم واﺑﺴﺘﮕﻲ ﻫﺎي اﺳﺘﻨﺘﺎج ﺷﺪه ،ﻣﺠﻤﻮﻋﻪ ﭘﻮﺷﺸﻲ ﻣﻲﮔﻮﺋﻴﻢ.
.2اﮔﺮ ﻣﺠﻤﻮﻋﻪ ﭘﻮﺷﺸﻲ دو ﻣﺠﻤﻮﻋﻪ FDﺑﺎ ﻫﻢ ﺑﺮاﺑﺮ ﺑﺎﺷﻨﺪ آﻧﮕﺎه دو ﻣﺠﻤﻮﻋﻪ
واﺑﺴﺘﮕﻲ ﺑﺎ ﻫﻢ ﻣﻌﺎدﻟﻨﺪ.
.3ﻗﻮاﻧﻴﻦ 3ﮔﺎﻧﻪ آرﻣﺴﺘﺮاﻧﮓ ﺑﺮاي ﺑﺪﺳﺖ آوردن ﻣﺠﻤﻮﻋﻪ ﭘﻮﺷﺸﻲ ﻛﺎﻓﻲ اﺳﺖ.
.4ﻫﺮ ﺳﻪ ﮔﺰﻳﻨﻪ
-13ﻧﻤﻮدار واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ:
.1ﻧﻤﻮداري اﺳﺖ ﻛﻪ ﺟﺪاول را ﺗﺠﺰﻳﻪ ﻣﻲﻛﻨﺪ.
.2ﻧﻤﻮداري اﺳﺖ ﻛﻪ ﺷﺮوع ﻛﺎر آن ﺑﺎ ﻛﻠﻴﺪﻫﺎي ﻛﺎﻧﺪﻳﺪ اﺳﺖ.
.3ﻧﻤﻮداري اﺳﺖ ﻛﻪ ﺷﺮوع ﻛﺎر آن ﺑﺎ ﻛﻠﻴﺪﻫﺎي ﺧﺎرﺟﻲ اﺳﺖ.
.4ﻧﻤﻮداري اﺳﺖ ﻛﻪ واﺑﺴﺘﮕﻲ ﺑﻪ ﻛﻠﻴﺪ ﺧﺎرﺟﻲ را ﻧﻤﺎﻳﺶ ﻣﻲدﻫﺪ.
-14واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﺑﺪﻳﻬﻲ ﻛﺪام اﺳﺖ ؟
.1اﮔﺮ ﺳﻤﺖ ﭼﭗ آن ،زﻳﺮ ﻣﺠﻤﻮﻋﻪاي از ﺳﻤﺖ راﺳﺖ ﺑﺎﺷﺪ.
.2اﮔﺮ ﺳﻤﺖ ﭼﭗ آن ﻗﺎﺑﻞ ﺗﺠﺰﻳﻪ ﺷﺪن ﻧﺒﺎﺷﺪ.
.3اﮔﺮ ﺳﻤﺖ راﺳﺖ آن ﻓﻘﻂ ﻳﻚ ﺻﻔﺖ ﺧﺎﺻﻪ ﺑﺎﺷﺪ.
.4اﮔﺮ ﺳﻤﺖ راﺳﺖ آن ،زﻳﺮ ﻣﺠﻤﻮﻋﻪاي از ﺳﻤﺖ ﭼﭗ ﺑﺎﺷﺪ.
www.PDFgozar.com
(4) -5
(1) -6
:A→B , AB→C A→Cﻣﺠﻤﻮﻋﻪ F
D→AC D→A , D→C
} F= {A→B , A→C , D→A , D→C , D→E
} Fmin = {A→B , A→C , D→A , D→E
} → Gmin= {A→B , A→C , D→A , D→Eﻣﺠﻤﻮﻋﻪ G
(2) -7
(1) -8
www.PDFgozar.com
3 .2
2 .3
4 .4
-2ﻛﺪاﻣﻴﻚ از ﮔﺰاره ﻫﺎي زﻳﺮ در راﺑﻄﻪ ﺑﺎ ))ﻋﻤﺪهﺗﺮﻳﻦ اﻫﺪاف ﻧﺮﻣﺎل ﺗﺮﺳﺎزي راﺑﻄﻪﻫﺎ((
ﻧﺎدرﺳﺖ اﺳﺖ ؟
.1ﻛﺎﻫﺶ ﺑﻌﻀﻲ اﻧﻮاع اﻓﺰوﻧﮕﻲ )(Redundency
.2ﻛﺎﻫﺶ ﺳﺮﺑﺎر ) ( Overheadﺳﻴﺴﺘﻢ در ﭘﺎﺳﺨﮕﻮﺋﻲ در ﻋﻤﻞ ﺑﺎزﻳﺎﺑﻲ
.3ﺗﺴﻬﻴﻞ در اﻋﻤﺎل ﺑﻌﻀﻲ ﻣﺤﺪودﻳﺘﻬﺎي ﺟﺎﻣﻌﻴﺘﻲ )(integrity constraints
.4اﺟﺘﻨﺎب از ﺑﻌﻀﻲ از اﻧﻮاع آﻧﻮﻣﺎﻟﻲ در ﻋﻤﻠﻴﺎت روي ﭘﺎﻳﮕﺎه
-3ﻛﺪام ﮔﺰﻳﻨﻪ از اﻫﺪاف ﻛﻠﻲ ﻓﺮاﻳﻨﺪ ﻧﺮﻣﺎل ﺳﺎزي ) ( normalizationﻧﻴﺴﺖ ؟
.1ﺗﺴﻬﻴﻞ اﻋﻤﺎل ﺑﻌﻀﻲ از ﻗﻮاﻋﺪ ﺟﺎﻣﻌﻴﺘﻲ )(integrity rules
.2ﺗﺴﻬﻴﻞ ﭘﻴﺎده ﺳﺎزي دﻳﺪ ﻛﺎرﺑﺮ )( user view
.3ﺣﺬف ﺑﻌﻀﻲ از اﻧﻮاع ﻗﻮاﻋﺪ واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ )(functional dependency
.4ﻛﺎﻫﺶ ﺑﻌﻀﻲ از اﻧﻮاع اﻓﺰوﻧﮕﻲ )(redundancy
-4ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟
.1راﺑﻄﻪ 1NFرا ﻫﻤﻮاره ﻣﻲ ﺗﻮان ﺑﻪ ﺗﻌﺪادي راﺑﻄﻪ 2NFﺗﺒﺪﻳﻞ ﻛﺮد.
.2در ﺗﺒﺪﻳﻞ راﺑﻄﻪ 1NFﺑﻪ 2NFﺑﺎﻳﺪ ﭼﻨﺎن ﻋﻤﻞ ﻛﺮد ﻛﻪ واﺑﺴﺘﮕﻲ ﻫﺎي ﺗﺎﺑﻌﻲ ﻏﻴﺮ
ﻛﺎﻣﻞ ﻣﻮﺟﻮد در راﺑﻄﻪ 1NFاز ﻣﻴﺎن ﺑﺮوﻧﺪ.
.3ﻫﻤﻴﺸﻪ ﭘﺲ از ﺗﺠﺰﻳﻪ ﻳﻚ راﺑﻄﻪ ﺑﻪ دو راﺑﻄﻪ و ﭘﻴﻮﻧﺪ ﻣﺠﺪد رواﺑﻂ ﺣﺎﺻﻠﻪ ،
ﻟﺰوﻣﺎ ﺑﻪ راﺑﻄﻪ ﻧﺨﺴﺘﻴﻦ ﻣﻲ رﺳﻴﻢ.
.4ﺑﺎ اﻧﺠﺎم ﻋﻤﻞ ﭘﻴﻮﻧﺪ ﻃﺒﻴﻌﻲ ﺑﺮ روي رواﺑﻂ 2NFﻣﻲ ﺗﻮان رواﺑﻂ 1NFرا ﺑﺪﺳﺖ
آورد.
-5ﻛﺪام ﮔﺰﻳﻨﻪ در راﺑﻄﻪ ﺑﺎ 2NFدرﺳﺖ اﺳﺖ ؟
.1ﻓﻘﻂ در درج ﻣﻤﻜﻦ اﺳﺖ آﻧﻮﻣﺎﻟﻲ داﺷﺘﻪ ﺑﺎﺷﻴﻢ.
www.PDFgozar.com
2NF .1
3NF .2
4NF .3
BCNF .4
-22در ﺗﺒﺪﻳﻞ ............ﺑﻪ .............آن را ﭼﻨﺎن ﺑﻪ ﭘﺮﺗﻮﻫﺎﻳﻲ ﺗﺠﺰﻳﻪ ﻣﻲ ﻛﻨﻴﻢ ﻛﻪ ﺗﻤﺎم
واﺑﺴﺘﮕﻲ ﻫﺎي ﭘﻴﻮﻧﺪي ﻛﻪ از ﻛﻠﻴﺪﻫﺎي ﻛﺎﻧﺪﻳﺪ ﻧﺎﺷﻲ ﻧﻤﻲ ﺷﻮد ﺣﺬف ﮔﺮدد.
3NF-2NF .1
4NF-3NF .2
BCNF-3NF .3
5NF-4NF .4
-23ﺑﺮاي اﻳﻨﻜﻪ ﻳﻚ ﭘﺎﻳﮕﺎهداده اي راﺑﻄﻪاي ﺑﺘﻮاﻧﺪ ﺑﻪ درﺳﺘﻲ در ﻧﺮماﻓﺰار ﻣﺘﺪاول ﻃﺮاﺣﻲ
ﺷﻮد ،آن ﭘﺎﻳﮕﺎهداده ﻫﺎ ﺑﺎﻳﺪ ﺣﺪاﻗﻞ ﺑﺮ اﺳﺎس ﭼﻪ ﻓﺮم ﻧﺮﻣﺎل ) (Normal Formﻗﺮار
ﮔﺮﻓﺘﻪ ﺑﺎﺷﺪ ؟
.1اول
.2دوم
.3ﺳﻮم
.4ﭼﻬﺎرم
-24اﮔﺮ ﺟﺪوﻟﻲ ﻳﻚ ﻓﻴﻠﺪ داﺷﺘﻪ ﺑﺎﺷﺪ ﻛﻪ ﺑﺴﺘﮕﻲ ﺑﻪ ﻗﺴﻤﺘﻲ از ﻛﻠﻴﺪ اﺻﻠﻲ داﺷﺘﻪ ،اﻳﻦ
ﻧﻜﺘﻪ ﻧﻘﺾ ﻛﺪاﻣﻴﻚ از ﻗﻮاﻧﻴﻦ ﻓﺮم ﻧﺮﻣﺎل اﺳﺖ ؟
.1ﻓﺮم اول ﻧﺮﻣﺎل
.2ﻓﺮم دوم ﻧﺮﻣﺎل
.3ﻓﺮم ﺳﻮم ﻧﺮﻣﺎل
.4ﻓﺮم ﭼﻬﺎرم ﻧﺮﻣﺎل
-25اﮔﺮ 2ﻓﻴﻠﺪ ﻏﻴﺮ ﻛﻠﻴﺪي ﺑﺮ ﻳﻜﺪﻳﮕﺮ ﺑﺴﺘﮕﻲ داﺷﺘﻪ ﺑﺎﺷﻨﺪ ،اﻳﻦ ﻧﻘﺾ ﻛﺪاﻣﻴﻚ از
ﻗﻮاﻧﻴﻦ ﻓﺮم ﻫﺎي ﻧﺮﻣﺎل اﺳﺖ ؟
.1اوﻟﻴﻦ ﻓﺮم ﻧﺮﻣﺎل
.2دوﻣﻴﻦ ﻓﺮم ﻧﺮﻣﺎل
.3ﺳﻮﻣﻴﻦ ﻓﺮم ﻧﺮﻣﺎل
www.PDFgozar.com
(3) -10ﻧﺮﻣﺎل ﺳﺎزي از آﻧﺠﺎ ﻛﻪ ﺑﺎﻋﺚ ﺗﺠﺰﻳﻪ ﺟﺪاول ﻣﻲ ﺷﻮد دﻳﺪ ﻛﺎرﺑﺮ را ﺑﻪ ﻋﻠﺖ
ﺗﻌﺪد ﺟﺪاول و ارﺗﺒﺎط ﺑﻴﻦ آﻧﻬﺎ ﻣﻤﻜﻦ اﺳﺖ ﻣﺸﻜﻞ ﺳﺎزد ﻫﻤﭽﻨﻴﻦ از آﻧﺠﺎ ﻛﻪ ﺑﺮاي
ﺑﺎزﻳﺎﺑﻲ ﺑﻌﻀﻲ ﭘﺮس و ﺟﻮﻫﺎ ﻧﻴﺎز ﺑﻪ ﭘﻴﻮﻧﺪ ﺟﺪوﻟﻬﺎ ﺧﻮاﻫﺪ ﺑﻮد ﻣﻤﻜﻦ اﺳﺖ ﺑﺎر ﺳﻴﺴﺘﻢ را
اﻓﺰاﻳﺶ دﻫﺪ.
(4) -11در ﮔﺰﻳﻨﻪ 1وﻗﺘﻲ ﻛﻪ راﺑﻄﻪ در 2NFﺑﺎﺷﺪ ،ﺧﻮد ﺑﻪ ﺧﻮد ﻫﺮ ﺻﻔﺖ ﺧﺎﺻﻪ ﻏﻴﺮ
ﻛﻠﻴﺪ ﺑﺎ ﻛﻠﻴﺪ اﺻﻠﻲ واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﻛﺎﻣﻞ ﺧﻮاﻫﺪ داﺷﺖ.
(1) -12
(4) -13
(4) -14ﻛﺘﺎﺑﻬﺎي ﻣﺨﺘﻠﻒ ﻋﺒﺎرات ﻣﺘﻔﺎوﺗﻲ را ﺑﺮاي ﺗﻌﺮﻳﻒ ﺣﺎﻻت ﻧﺮﻣﺎل ﺑﻪ ﻛﺎر ﻣﻲ ﺑﺮﻧﺪ
ﻛﻪ ﻫﻤﮕﻲ آﻧﻬﺎ در ﻣﻌﻨﺎي ﻧﻬﺎﻳﻲ ﻣﻌﺎدل ﻳﻜﺪﻳﮕﺮ ﻣﻲ ﺑﺎﺷﻨﺪ.
(2) -15
(3) -16
(4) -17
(3) -18
(2) -19
(4) -20
(3) -21
(4) -22
(3) -23
(2) -24
(3) -25
(1) -26ﻧﺮﻣﺎل ﺳﺎزي ﺑﺎ اﻋﻤﺎل ﻣﺤﺪودﻳﺘﻬﺎﻳﻲ ﺟﻠﻮي ﻳﻜﺴﺮي اﻓﺰوﻧﮕﻲ و ﻧﻴﺰ آﻧﻮﻣﺎﻟﻴﻬﺎ را
ﻣﻲ ﮔﻴﺮد.
(4) -27
www.PDFgozar.com
(3) -28اﻳﻦ در واﻗﻊ ﻫﻤﺎن ﺑﺤﺚ ﻧﺮﻣﺎل ﺳﺎزي اﺳﺖ ،ﻣﺎ داه ﻫﺎ را ﺑﻪ ﺟﺎي ذﺧﻴﺮه در
ﻳﻚ ﺟﺪول در ﭼﻨﺪ ﺟﺪول ذﺧﻴﺮه ﻣﻲ ﺳﺎزﻳﻢ ﺗﺎ آﻧﻮﻣﺎﻟﻴﻬﺎ و ﻣﺸﻜﻼت را ﻛﺎﻫﺶ دﻫﻴﻢ .اﻳﻦ
ﻋﻤﻞ ﺑﺮ ﻋﻜﺲ ﺳﺮﻋﺖ ﻋﻤﻠﻴﺎت را ﻛﺎﻫﺶ ﻣﻲ دﻫﺪ .ﭘﺲ ﮔﺰﻳﻨﻪ 4ﻏﻠﻂ اﺳﺖ.
(1) -29
(3) -30ﺟﺪوﻟﻲ در 3NFاﺳﺖ ﻛﻪ اﻟﻒ ( در 2NFﺑﺎﺷﺪ ب( واﺑﺴﺘﮕﻲ اﻧﺘﻘﺎﻟﻲ ﻧﺪاﺷﺘﻪ
ﺑﺎﺷﺪ .واﺑﺴﺘﮕﻲ اﻧﺘﻘﺎﻟﻲ ﻳﻌﻨﻲ واﺑﺴﺘﮕﻲ دو ﺻﻔﺖ ﻏﻴﺮ ﻛﻠﻴﺪي ﺑﻪ ﻫﻢ زﻳﺮا ﻫﺮ ﻳﻚ از آﻧﻬﺎ ﺑﻪ
ﻛﻠﻴﺪ اﺻﻠﻲ واﺑﺴﺘﻪاﻧﺪ .راﺑﻄﻪاي ﻛﻪ 4NFﺑﺎﺷﺪ ﺣﺘﻤﺎ 3NFاﺳﺘﻊ و وﻳﮋﮔﻴﻬﺎي آن را دارد.
S# (4) -31و Snameﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﻣﻲ ﺑﺎﺷﻨﺪ و S#→Stud , Sname →Studﭘﺲ
ﭼﻮن ﻫﺮ دﺗﺮﻣﻴﻨﺎن ﻓﻘﻂ ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﻣﻲ ﺑﺎﺷﺪ در ﺳﻄﺢ BCNFﻗﺮار دارد.
(1) -32در ﺑﻌﻀﻲ ﻣﻮارد ﻧﺒﺎﻳﺪ رواﺑﻂ 3NFرا ﺑﻪ BCNFﺗﺒﺪﻳﻞ ﻛﺮد ﭘﺲ ﮔﺰﻳﻨﻪ 2
ﻧﺎدرﺳﺖ اﺳﺖ .ﻫﻤﭽﻨﻴﻦ ﻣﻮاردي اﻳﺖ ﻛﻪ ﺗﺠﺰﻳﻪ رواﺑﻂ 3NFﺑﻪ رواﺑﻂ BCNFواﺑﺴﺘﮕﻲ
ﻫﺎ را از ﺑﻴﻦ ﻣﻲ ﺑﺮد ﭘﺲ ﮔﺰﻳﻨﻪ 3ﻧﻴﺰ ﻧﺎدرﺳﺖ اﺳﺖ.
(3) -33ﺟﺪول ﻣﺬﻛﻮر در ﺳﻄﺢ BCNFاﺳﺖ زﻳﺮا ﻫﻴﭽﮕﻮﻧﻪ واﺑﺴﺘﮕﻲ ﺑﻪ ﺟﺰ واﺑﺴﺘﮕﻲ
ﺑﻪ ﻛﻠﻴﺪ اﺻﻠﻲ ،ﻛﻪ ﺷﺎﻣﻞ ﺗﻤﺎم ﺳﺘﻮﻧﻬﺎ اﺳﺖ ،وﺟﻮد ﻧﺪارد .وﻟﻲ ﺟﺪول ﻓﻮق اﻓﺰوﻧﮕﻲ
دارد ،ﭼﺮا ﻛﻪ داﻧﺸﻜﺪه ﻫﺎي اﺳﺘﺎد اﻣﻴﺮي و ﻧﻴﺰ دروﺳﻲ ﻛﻪ ﺗﺪرﻳﺲ ﻛﺮده اﺳﺖ ﺗﻜﺮار
ﺷﺪه اﺳﺖ .ﺑﺮاي رﻓﻊ اﻳﻦ ﻣﺸﻜﻞ و ﺗﺒﺪﻳﻞ آن ﺑﻪ 4NFﻣﻲ ﺗﻮان آن را ﺑﻪ دو ﺟﺪول زﻳﺮ
ﺗﺠﺰﻳﻪ ﻛﺮد:
ﻧﺎم اﺳﺘﺎد ﻧﺎم داﻧﺸﻜﺪه ﺷﻬﺮ داﻧﺸﻜﺪه ﻧﺎم اﺳﺘﺎد ﻧﺎم درس ﻧﺎم ﻛﺘﺎب
اﻣﻴﺮي ﻛﺎﻣﭙﻴﻮﺗﺮ ﺗﻬﺮان اﻣﻴﺮي ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﻫﺮﺑﺮت ﺷﻴﻠﺪ
اﻣﻴﺮي ﺑﺮق اراك اﻣﻴﺮي ﺳﺎﺧﺘﻤﺎن داده ﻟﻴﭗ ﺷﻮﺗﺰ
اﻣﻴﺮي ﭘﺎﻳﮕﺎهداده دﻳﺖ
www.PDFgozar.com
www.PDFgozar.com
۲ ﺿﻤﻴﻤﻪ
SQL 99 _ BNF
BNF Grammar for ISO/IEC 9075:1999
--/h2
--p
Most of this section would normally be handled within the lexical analyzer rather than in the grammar
proper. Further, the original document does not quote the various single characters, which makes it hard
to process automatically.
--/p
<SQL terminal character>::= <SQL language character>
<SQL language character>::= <simple Latin letter> | <digit> | <SQL special character>
<simple Latin letter>::=
<simple Latin upper case letter>
| <simple Latin lower case letter>
<simple Latin upper case letter>::=
A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z
<simple Latin lower case letter>::=
a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z
<digit>::=0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<SQL special character>::=
<space>
| <double quote>
| <percent>
| <ampersand>
| <quote>
| <leftparen>
| <rightparen>
| <asterisk>
| <plus sign>
| <comma>
| <minus sign>
| <period>
| <solidus>
| <colon>
| <semicolon>
| <less than operator>
| <equals operator>
| <greater than operator>
| <question mark>
| <left bracket>
| <right bracket>
| <circumflex>
| <underscore>
| <vertical bar>
| <left brace>
| <right brace>
<space>::=!! (See the Syntax Rules)
<double quote>::="
<percent>::=%
<ampersand>::=&
<quote>::='
<leftparen>::=(
<rightparen>::=)
<asterisk>::=*
<plus sign>::=+
<comma>::=,
<minus sign>::=-
<period>::=.
<solidus>::=/
<colon>::=:
<semicolon>::=;
<less than operator>::= <
www.PDFgozar.com
<equals operator>::==
<greater than operator>::=>
<question mark>::=?
<left bracket>::=[
<right bracket>::=]
<circumflex>::=^
<underscore>::=_
<vertical bar>::=|
<left brace>::={
<right brace>::=}
--hr
--h2 Literal Numbers, Strings, Dates and Times
--/h2
--p
--small
--i <SQL-client module definition> modified per ISO 9075:1999/Cor.1:2000(E)
--/i
--/small
--/p
<SQL-client module definition>::=
<module name clause>
<language clause>
<module authorization clause>
[ <module path specification> ]
[ <module transform group specification> ]
[ <temporary table declaration>... ]
<module contents>...
<module name clause>::=
MODULE [ <SQL-client module name> ] [ <module character set specification>
]
<SQL-client module name>::= <identifier>
<identifier>::= <actual identifier>
<actual identifier>::= <regular identifier> | <delimited identifier>
<regular identifier>::= <identifier body>
--p
--small
--i <identifier body> modified per ISO 9075:1999/Cor.1:2000(E).
--/i
--/p
--p
--i <identifier body> also rationalized by removing curly brackets around <identifier part> because they
are unnecessary and inconsistent with other places where '...' modifies a single non-terminal.
--/i
--/small
--/small
--/p
<identifier body>::= <identifier start> [ <identifier part>... ]
<identifier start>::= <initial alphabetic character> | <ideographic character>
<initial alphabetic character>::=!! (See the Syntax Rules)
<ideographic character>::=!! (See the Syntax Rules)
<identifier part>::=
<alphabetic character>
| <ideographic character>
| <decimal digit character>
| <identifier combining character>
| <underscore>
| <alternate underscore>
| <extender character>
| <identifier ignorable character>
www.PDFgozar.com
| <connector character>
<alphabetic character>::=!! (See the Syntax Rules)
<decimal digit character>::=!! (See the Syntax Rules)
<identifier combining character>::=!! (See the Syntax Rules)
<alternate underscore>::=!! (See the Syntax Rules)
<extender character>::=!! (See the Syntax Rules)
<identifier ignorable character>::=!! (See the Syntax Rules)
<connector character>::=!! (See the Syntax Rules)
<delimited identifier>::= <double quote> <delimited identifier body> <double quote>
<delimited identifier body>::= <delimited identifier part>...
<delimited identifier part>::= <nondoublequote character> | <doublequote symbol>
<nondoublequote character>::=!! (See the Syntax Rules)
--p
--small
--i
Note that the two successive double quote characters must have no other character (such as a space)
between them. The lexical analyzer would normally deal with this sort of issue.
--/i
--/small
--/p
<doublequote symbol>::= <double quote> <double quote>
<module character set specification>::=NAMES ARE <character set specification>
<character set specification>::=
<standard character set name>
| <implementation-defined character set name>
| <user-defined character set name>
<standard character set name>::= <character set name>
<character set name>::=[ <schema name> <period> ] <SQL language identifier>
<schema name>::=[ <catalog name> <period> ] <unqualified schema name>
<catalog name>::= <identifier>
<unqualified schema name>::= <identifier>
<SQL language identifier>::=
<SQL language identifier start> [ { <underscore> | <SQL language identifier part> }... ]
<SQL language identifier start>::= <simple Latin letter>
<SQL language identifier part>::= <simple Latin letter> | <digit>
<implementation-defined character set name>::= <character set name>
<user-defined character set name>::= <character set name>
<language clause>::=LANGUAGE <language name>
<language name>::=ADA | C | COBOL | FORTRAN | MUMPS | PASCAL | PLI | SQL
<module authorization clause>::=
SCHEMA <schema name>
| AUTHORIZATION <module authorization identifier>
| SCHEMA <schema name> AUTHORIZATION <module authorization
identifier>
<module authorization identifier>::= <authorization identifier>
<authorization identifier>::= <role name> | <user identifier>
<role name>::= <identifier>
<user identifier>::= <identifier>
<module path specification>::= <path specification>
<path specification>::=PATH <schema name list>
<schema name list>::= <schema name> [ { <comma> <schema name> }... ]
<module transform group specification>::= <transform group specification>
<transform group specification>::=
TRANSFORM GROUP { <single group specification> | <multiple group specification> }
<single group specification>::= <group name>
<group name>::= <identifier>
<multiple group specification>::= <group specification> [ { <comma> <group specification> }... ]
<group specification>::= <group name> FOR TYPE <user-defined type>
<user-defined type>::= <user-defined type name>
www.PDFgozar.com
<field definition>::= <field name> <data type> [ <reference scope check> ] [ <collate clause> ]
<field name>::= <identifier>
<reference scope check>::=
REFERENCES ARE [ NOT ] CHECKED [ ON DELETE <reference scope check
action> ]
<reference scope check action>::= <referential action>
<referential action>::=
CASCADE
| SET NULL
| SET DEFAULT
| RESTRICT
| NO ACTION
<collate clause>::=COLLATE <collation name>
<collation name>::= <schema qualified name>
<schema qualified name>::=[ <schema name> <period> ] <qualified identifier>
<reference type>::=REF <leftparen> <referenced type> <rightparen> [ <scope clause> ]
<referenced type>::= <user-defined type>
<scope clause>::=SCOPE <table name>
<collection type>::= <data type> <array specification>
<array specification>::=
<collection type constructor> <left bracket or trigraph> <unsigned integer>
<right bracket or trigraph>
<collection type constructor>::=ARRAY
<left bracket or trigraph>::= <left bracket> | <left bracket trigraph>
--p
--small
--i
The trigraphs are strictly sequences of characters, not sequences of tokens. There may not be any spaces
between the characters. Normally, the lexical analyzer would return the trigraphs as a simple symbol.
--/i
--/small
--/p
<left bracket trigraph>::= <question mark> <question mark> <leftparen>
<right bracket or trigraph>::= <right bracket> | <right bracket trigraph>
<right bracket trigraph>::= <question mark> <question mark> <rightparen>
<domain name>::= <schema qualified name>
<default clause>::=DEFAULT <default option>
<default option>::=
<literal>
| <datetime value function>
| USER
| CURRENT_USER
| CURRENT_ROLE
| SESSION_USER
| SYSTEM_USER
| CURRENT_PATH
| <implicitly typed value specification>
--hr
--h2 Literals
--/h2
<literal>::= <signed numeric literal> | <general literal>
<signed numeric literal>::=[ <sign> ] <unsigned numeric literal>
<sign>::= <plus sign> | <minus sign>
<unsigned numeric literal>::= <exact numeric literal> | <approximate numeric literal>
<exact numeric literal>::=
<unsigned integer> [ <period> [ <unsigned integer> ] ]
| <period> <unsigned integer>
<approximate numeric literal>::= <mantissa> E <exponent>
<mantissa>::= <exact numeric literal>
www.PDFgozar.com
<hexit>::= <digit> | A | B | C | D | E | F | a | b | c | d | e | f
<binary string literal>::=
X <quote> [ { <hexit> <hexit> }... ] <quote>
[ { <separator> <quote> [ { <hexit> <hexit> }... ] <quote> }... ]
<datetime literal>::= <date literal> | <time literal> | <timestamp literal>
<date literal>::=DATE <date string>
<date string>::= <quote> <unquoted date string> <quote>
<unquoted date string>::= <date value>
<date value>::= <years value> <minus sign> <months value> <minus sign> <days value>
<years value>::= <datetime value>
<datetime value>::= <unsigned integer>
<months value>::= <datetime value>
<days value>::= <datetime value>
<time literal>::=TIME <time string>
<time string>::= <quote> <unquoted time string> <quote>
<unquoted time string>::= <time value> [ <time zone interval> ]
<time value>::= <hours value> <colon> <minutes value> <colon> <seconds value>
<hours value>::= <datetime value>
<minutes value>::= <datetime value>
<seconds value>::= <seconds integer value> [ <period> [ <seconds fraction> ] ]
<seconds integer value>::= <unsigned integer>
<seconds fraction>::= <unsigned integer>
<time zone interval>::= <sign> <hours value> <colon> <minutes value>
<timestamp literal>::=TIMESTAMP <timestamp string>
<timestamp string>::= <quote> <unquoted timestamp string> <quote>
<unquoted timestamp string>::= <unquoted date string> <space> <unquoted time string>
<interval literal>::=INTERVAL [ <sign> ] <interval string> <interval qualifier>
<interval string>::= <quote> <unquoted interval string> <quote>
<unquoted interval string>::=[ <sign> ] { <year-month literal> | <day-time literal> }
<year-month literal>::= <years value> | [ <years value> <minus sign> ] <months value>
<day-time literal>::= <day-time interval> | <time interval>
<day-time interval>::=
<days value> [ <space> <hours value> [ <colon> <minutes value> [ <colon>
<seconds value> ] ] ]
<time interval>::=
<hours value> [ <colon> <minutes value> [ <colon> <seconds value> ] ]
| <minutes value> [ <colon> <seconds value> ]
| <seconds value>
<boolean literal>::=TRUE | FALSE | UNKNOWN
<datetime value function>::=
<current date value function>
| <current time value function>
| <current timestamp value function>
| <current local time value function>
| <current local timestamp value function>
<current date value function>::=CURRENT_DATE
<current time value function>::=
CURRENT_TIME [ <leftparen> <time precision> <rightparen>]
<current timestamp value function>::=
CURRENT_TIMESTAMP [ <leftparen> <timestamp precision> <rightparen> ]
<current local time value function>::=
LOCALTIME [ <leftparen> <time precision> <rightparen> ]
<current local timestamp value function>::=
LOCALTIMESTAMP [ <leftparen> <timestamp precision> <rightparen> ]
<implicitly typed value specification>::= <null specification> | <empty specification>
<null specification>::=NULL
<empty specification>::=ARRAY <left bracket or trigraph> <right bracket or trigraph>
--hr
--h2 Constraints
www.PDFgozar.com
--/h2
<column constraint definition>::=
[ <constraint name definition> ] <column constraint> [ <constraint characteristics> ]
<constraint name definition>::=CONSTRAINT <constraint name>
<constraint name>::= <schema qualified name>
<column constraint>::=
NOT NULL
| <unique specification>
| <references specification>
| <check constraint definition>
<unique specification>::=UNIQUE | PRIMARY KEY
<references specification>::=
REFERENCES <referenced table and columns>
[ MATCH <match type> ] [ <referential triggered action> ]
<referenced table and columns>::=
<table name> [ <leftparen> <reference column list> <rightparen> ]
<reference column list>::= <column name list>
<column name list>::= <column name> [ { <comma> <column name> }... ]
<match type>::=FULL | PARTIAL | SIMPLE
<referential triggered action>::=
<update rule> [ <delete rule> ]
| <delete rule> [ <update rule> ]
<update rule>::=ON UPDATE <referential action>
<delete rule>::=ON DELETE <referential action>
<check constraint definition>::=CHECK <leftparen> <search condition> <rightparen>
--hr
--h2 Search Condition
--/h2
<search condition>::= <boolean value expression>
<boolean value expression>::=
<boolean term>
| <boolean value expression> OR <boolean term>
<boolean term>::=
<boolean factor>
| <boolean term> AND <boolean factor>
<boolean factor>::=[ NOT ] <boolean test>
<boolean test>::= <boolean primary> [ IS [ NOT ] <truth value> ]
<boolean primary>::=
<predicate>
| <parenthesized boolean value expression>
| <nonparenthesized value expression primary>
<predicate>::=
<comparison predicate>
| <between predicate>
| <in predicate>
| <like predicate>
| <null predicate>
| <quantified comparison predicate>
| <exists predicate>
| <unique predicate>
| <match predicate>
| <overlaps predicate>
| <similar predicate>
| <distinct predicate>
| <type predicate>
<comparison predicate>::= <row value expression> <comp op> <row value expression>
<row value expression>::= <row value special case> | <row value constructor>
<row value special case>::= <value specification> | <value expression>
<value specification>::= <literal> | <general value specification>
www.PDFgozar.com
| <field reference>
| <element reference>
| <method invocation>
| <static method invocation>
| <new specification>
<unsigned value specification>::= <unsigned literal> | <general value specification>
<unsigned literal>::= <unsigned numeric literal> | <general literal>
<column reference>::=
<basic identifier chain>
| MODULE <period> <qualified identifier> <period> <column name>
<set function specification>::=
COUNT <leftparen> <asterisk> <rightparen>
| <general set function>
| <grouping operation>
<general set function>::=
<set function type> <leftparen> [ <set quantifier> ] <value expression>
<rightparen>
<set function type>::= <computational operation>
<computational operation>::=AVG | MAX | MIN | SUM | EVERY | ANY | SOME | COUNT
<set quantifier>::=DISTINCT | ALL
<grouping operation>::=GROUPING <leftparen> <column reference> <rightparen>
--hr
--h2 Queries
--/h2
<scalar subquery>::= <subquery>
<subquery>::= <leftparen> <query expression> <rightparen>
<query expression>::=[ <with clause> ] <query expression body>
<with clause>::=WITH [ RECURSIVE ] <with list>
<with list>::= <with list element> [ { <comma> <with list element> }... ]
<with list element>::=
<query name>
[ <leftparen> <with column list> <rightparen> ]
AS <leftparen> <query expression> <rightparen>
[ <search or cycle clause> ]
<query name>::= <identifier>
<with column list>::= <column name list>
<search or cycle clause>::=
<search clause>
| <cycle clause>
| <search clause> <cycle clause>
<search clause>::=
SEARCH <recursive search order> SET <sequence column>
<recursive search order>::=
DEPTH FIRST BY <sort specification list>
| BREADTH FIRST BY <sort specification list>
<sort specification list>::= <sort specification> [ { <comma> <sort specification> }... ]
--p
--small
--i <sort specification> modified per ISO 9075:1999/Cor.1:2000(E)
--/i
--/small
--/p
<sort specification>::= <sort key> [ <ordering specification> ]
<sort key>::= <value expression>
<ordering specification>::=ASC | DESC
<sequence column>::= <column name>
<cycle clause>::=
CYCLE <cycle column list>
SET <cycle mark column> TO <cycle mark value>
www.PDFgozar.com
| <form-of-use conversion>
| <character translation>
| <trim function>
| <character overlay function>
| <specific type method>
<character substring function>::=
SUBSTRING <leftparen> <character value expression> FROM <start position>
[ FOR <string length> ] <rightparen>
<start position>::= <numeric value expression>
<string length>::= <numeric value expression>
--p
--small
--i <regular expression substring function> modified per ISO 9075:1999/Cor.1:2000(E)
--/i
--/small
--/p
<regular expression substring function>::=
SUBSTRING <leftparen> <character value expression> SIMILAR
<character value expression> ESCAPE <escape character> <rightparen>
<escape character>::= <character value expression>
<fold>::={ UPPER | LOWER } <leftparen> <character value expression> <rightparen>
<form-of-use conversion>::=
CONVERT <leftparen> <character value expression>
USING <form-of-use conversion name> <rightparen>
<form-of-use conversion name>::= <schema qualified name>
<character translation>::=
TRANSLATE <leftparen> <character value expression>
USING <translation name> <rightparen>
<translation name>::= <schema qualified name>
<trim function>::=TRIM <leftparen> <trim operands> <rightparen>
<trim operands>::=[ [ <trim specification> ] [ <trim character> ] FROM ] <trim source>
<trim specification>::=LEADING | TRAILING | BOTH
<trim character>::= <character value expression>
<trim source>::= <character value expression>
<character overlay function>::=
OVERLAY <leftparen> <character value expression> PLACING <character
value expression>
FROM <start position> [ FOR <string length> ] <rightparen>
<specific type method>::= <user-defined type value expression> <period> SPECIFICTYPE
<user-defined type value expression>::= <value expression primary>
<blob value function>::= <blob substring function> | <blob trim function> | <blob overlay function>
<blob substring function>::=
SUBSTRING <leftparen> <blob value expression> FROM <start position>
[ FOR <string length> ] <rightparen>
<blob value expression>::= <blob concatenation> | <blob factor>
<blob concatenation>::= <blob value expression> <concatenation operator> <blob factor>
<blob factor>::= <blob primary>
<blob primary>::= <value expression primary> | <string value function>
<blob trim function>::=TRIM <leftparen> <blob trim operands> <rightparen>
<blob trim operands>::=[ [ <trim specification> ] [ <trim octet> ] FROM ] <blob trim source>
<trim octet>::= <blob value expression>
<blob trim source>::= <blob value expression>
<blob overlay function>::=
OVERLAY <leftparen> <blob value expression> PLACING <blob value
expression>
FROM <start position> [ FOR <string length> ] <rightparen>
<bit value function>::= <bit substring function>
<bit substring function>::=
SUBSTRING <leftparen> <bit value expression> FROM <start position>
www.PDFgozar.com
<some>::=SOME | ANY
<exists predicate>::=EXISTS <table subquery>
<unique predicate>::=UNIQUE <table subquery>
<match predicate>::=
<row value expression> MATCH [ UNIQUE ] [ SIMPLE | PARTIAL | FULL ]
<table subquery>
<overlaps predicate>::= <row value expression 1> OVERLAPS <row value expression 2>
<row value expression 1>::= <row value expression>
<row value expression 2>::= <row value expression>
<similar predicate>::=
<character match value> [ NOT ] SIMILAR TO <similar pattern> [ ESCAPE
<escape character> ]
<similar pattern>::= <character value expression>
--hr
--h2 Regular Expressions for SIMILAR TO
--/h2
--p
These regular expressions are not referenced anywhere else in the document, but define the structure that
the <character value expression> used in <similar pattern> must have. Structurally, these regular
expressions are similar to 'egrep' expressions, except they use underscore in place of dot, and percent is
equivalent to dot star in 'egrep'. The other omission is the use of caret (aka circumflex) to mark the start
of the matched text and dollar to mark the end of the matched text.
--/p
<regular expression>::=
<regular term>
| <regular expression> <vertical bar> <regular term>
<regular term>::=
<regular factor>
| <regular term> <regular factor>
<regular factor>::=
<regular primary>
| <regular primary> <asterisk>
| <regular primary> <plus sign>
<regular primary>::=
<character specifier>
| <percent>
| <regular character set>
| <leftparen> <regular expression> <rightparen>
<character specifier>::= <non-escaped character> | <escaped character>
<non-escaped character>::=!! (See the Syntax Rules)
<escaped character>::=!! (See the Syntax Rules)
<regular character set>::=
<underscore>
| <left bracket> <character enumeration>... <right bracket>
| <left bracket> <circumflex> <character enumeration>... <right bracket>
| <left bracket> <colon> <regular character set identifier> <colon> <right
bracket>
<character enumeration>::=
<character specifier>
| <character specifier> <minus sign> <character specifier>
<regular character set identifier>::= <identifier>
--hr
<distinct predicate>::=
<row value expression 3> IS DISTINCT FROM <row value expression 4>
<row value expression 3>::= <row value expression>
<row value expression 4>::= <row value expression>
<type predicate>::=
<user-defined type value expression> IS [ NOT ] OF <leftparen> <type list>
<rightparen>
www.PDFgozar.com
<type list>::=
<user-defined type specification> [ { <comma> <user-defined type specification> }...
]
<user-defined type specification>::=
<inclusive user-defined type specification>
| <exclusive user-defined type specification>
<inclusive user-defined type specification>::= <user-defined type>
<exclusive user-defined type specification>::=ONLY <user-defined type>
<parenthesized boolean value expression>::= <leftparen> <boolean value expression> <rightparen>
<truth value>::=TRUE | FALSE | UNKNOWN
--hr
--h2 More about constraints
--/h2
<constraint characteristics>::=
<constraint check time> [ [ NOT ] DEFERRABLE ]
| [ NOT ] DEFERRABLE [ <constraint check time> ]
<constraint check time>::=INITIALLY DEFERRED | INITIALLY IMMEDIATE
<table constraint definition>::=
[ <constraint name definition> ] <table constraint> [ <constraint characteristics> ]
<table constraint>::= <unique constraint definition> | <referential constraint definition> | <check
constraint definition>
--p
--small
--i
The standard documents UNIQUE ( VALUE ) but there is no explanation of why that is different from
the UNIQUE <leftparen> VALUE <rightparen> used here.
--/i
--/small
--/p
<unique constraint definition>::=
<unique specification> <leftparen> <unique column list> <rightparen>
| UNIQUE <leftparen> VALUE <rightparen>
<unique column list>::= <column name list>
<referential constraint definition>::=
FOREIGN KEY <leftparen> <referencing columns> <rightparen> <references
specification>
<referencing columns>::= <reference column list>
<like clause>::=LIKE <table name>
<self-referencing column specification>::=
REF IS <self-referencing column name> <reference generation>
<self-referencing column name>::= <column name>
<reference generation>::=SYSTEM GENERATED | USER GENERATED | DERIVED
<column options>::= <column name> WITH OPTIONS <column option list>
<column option list>::=
[ <scope clause> ] [ <default clause> ] [ <column constraint definition>... ] [
<collate clause> ]
<table commit action>::=PRESERVE | DELETE
--hr
--h2 Module contents
--/h2
<module contents>::=
<declare cursor>
| <externally-invoked procedure>
| <dynamic declare cursor>
<declare cursor>::=
DECLARE <cursor name> [ <cursor sensitivity> ] [ <cursor scrollability> ]
CURSOR
[ <cursor holdability> ] [ <cursor returnability> ] FOR <cursor specification>
<cursor name>::= <local qualified name>
www.PDFgozar.com
| <SQL-invoked routine>
| <grant statement>
| <role definition>
| <domain definition>
| <character set definition>
| <collation definition>
| <translation definition>
| <assertion definition>
| <trigger definition>
| <user-defined type definition>
| <user-defined cast definition>
| <user-defined ordering definition>
| <transform definition>
| <SQL-server module definition>
<schema definition>::=
CREATE SCHEMA <schema name clause> [ <schema character set or path> ]
[ <schema element>... ]
<schema name clause>::=
<schema name>
| AUTHORIZATION <schema authorization identifier>
| <schema name> AUTHORIZATION <schema authorization identifier>
<schema authorization identifier>::= <authorization identifier>
<schema character set or path>::=
<schema character set specification>
| <schema path specification>
| <schema character set specification> <schema path specification>
| <schema path specification> <schema character set specification>
<schema character set specification>::=
DEFAULT CHARACTER SET <character set specification>
<schema path specification>::= <path specification>
--p
--small
--i <schema element> modified per ISO 9075:1999/Cor.1:2000(E)
--/i
--/small
--/p
<schema element>::=
<table definition>
| <view definition>
| <domain definition>
| <character set definition>
| <collation definition>
| <translation definition>
| <assertion definition>
| <trigger definition>
| <user-defined type definition>
| <schema routine>
| <grant statement>
| <role definition>
| <user-defined cast definition>
| <user-defined ordering definition>
| <transform definition>
<table definition>::=
CREATE [ <table scope> ] TABLE <table name> <table contents source>
[ ON COMMIT <table commit action> ROWS ]
<table scope>::= <global or local> TEMPORARY
<global or local>::=GLOBAL | LOCAL
<table contents source>::=
<table element list>
www.PDFgozar.com
--p
--small
--i <method characteristic> modified per ISO 9075:1999/Cor.1:2000(E)
--/i
--/small
--/p
<method characteristic>::=
<language clause>
| <parameter style clause>
| <deterministic characteristic>
| <SQL-data access indication>
| <null-call clause>
<parameter style clause>::=PARAMETER STYLE <parameter style>
<parameter style>::=SQL | GENERAL
<deterministic characteristic>::=DETERMINISTIC | NOT DETERMINISTIC
<SQL-data access indication>::=
NO SQL
| CONTAINS SQL
| READS SQL DATA
| MODIFIES SQL DATA
<null-call clause>::=
RETURNS NULL ON NULL INPUT
| CALLED ON NULL INPUT
<overriding method specification>::=OVERRIDING <partial method specification>
<schema routine>::= <schema procedure> | <schema function>
<schema procedure>::=CREATE <SQL-invoked procedure>
<SQL-invoked procedure>::=
PROCEDURE <schema qualified routine name>
<SQL parameter declaration list> <routine characteristics> <routine body>
<routine characteristics>::=[ <routine characteristic>... ]
--p
--small
--i <routine characteristic> modified per ISO 9075:1999/Cor.1:2000(E)
--/i
--/small
--/p
<routine characteristic>::=
<language clause>
| <parameter style clause>
| SPECIFIC <specific name>
| <deterministic characteristic>
| <SQL-data access indication>
| <null-call clause>
| <dynamic result sets characteristic>
<dynamic result sets characteristic>::=
DYNAMIC RESULT SETS <maximum dynamic result sets>
<maximum dynamic result sets>::= <unsigned integer>
<routine body>::= <SQL routine body> | <external body reference>
<SQL routine body>::= <SQL procedure statement>
--p
--small
--i <external body reference> modified per ISO 9075:1999/Cor.1:2000(E)
--/i
--/small
--/p
<external body reference>::=
EXTERNAL [ NAME <external routine name> ] [ <parameter style clause> ]
[ <transform group specification> ] [ <external security clause> ]
<external routine name>::= <identifier> | <character string literal>
www.PDFgozar.com
--/small
--/p
<drop transform statement>::=
DROP { TRANSFORM | TRANSFORMS } <transforms to be dropped>
FOR <user-defined type name> <drop behavior>
<transforms to be dropped>::=ALL | <transform group element>
<transform group element>::= <group name>
--hr
--h2 SQL Data Manipulation Statements
--/h2
<SQL data statement>::=
<open statement>
| <fetch statement>
| <close statement>
| <select statement: single row>
| <free locator statement>
| <hold locator statement>
| <SQL data change statement>
<open statement>::=OPEN <cursor name>
<fetch statement>::=
FETCH [ [ <fetch orientation> ] FROM ] <cursor name> INTO <fetch target list>
<fetch orientation>::=
NEXT | PRIOR | FIRST | LAST
| { ABSOLUTE | RELATIVE } <simple value specification>
<simple value specification>::=
<literal>
| <host parameter name>
| <SQL parameter reference>
| <SQL variable reference>
| <embedded variable name>
<fetch target list>::= <target specification> [ { <comma> <target specification> }... ]
<close statement>::=CLOSE <cursor name>
<select statement: single row>::=
SELECT [ <set quantifier> ] <select list> INTO <select target list> <table
expression>
<select target list>::= <target specification> [ { <comma> <target specification> }... ]
<free locator statement>::=
FREE LOCATOR <locator reference> [ { <comma> <locator reference> }... ]
<locator reference>::= <host parameter name> | <embedded variable name>
<hold locator statement>::=
HOLD LOCATOR <locator reference> [ { <comma> <locator reference> }... ]
<SQL data change statement>::=
<delete statement: positioned>
| <delete statement: searched>
| <insert statement>
| <update statement: positioned>
| <update statement: searched>
<delete statement: positioned>::=
DELETE FROM <target table> WHERE CURRENT OF <cursor name>
--p
--small
--i <target table> modified per ISO 9075:1999/Cor.1:2000(E)
--/i
--/small
--/p
<target table>::=
<table name>
| [ ONLY ] <leftparen> <table name> <rightparen>
<delete statement: searched>::=
www.PDFgozar.com
| ROW_COUNT
| TRANSACTIONS_COMMITTED
| TRANSACTIONS_ROLLED_BACK
| TRANSACTION_ACTIVE
<condition information>::=
EXCEPTION <condition number>
<condition information item> [ { <comma> <condition information item> }... ]
<condition number>::= <simple value specification>
<condition information item>::=
<simple target specification> <equals operator> <condition information item name>
<condition information item name>::=
CATALOG_NAME
| CLASS_ORIGIN
| COLUMN_NAME
| CONDITION_IDENTIFIER
| CONDITION_NUMBER
| CONNECTION_NAME
| CONSTRAINT_CATALOG
| CONSTRAINT_NAME
| CONSTRAINT_SCHEMA
| CURSOR_NAME
| MESSAGE_LENGTH
| MESSAGE_OCTET_LENGTH
| MESSAGE_TEXT
| PARAMETER_MODE
| PARAMETER_NAME
| PARAMETER_ORDINAL_POSITION
| RETURNED_SQLSTATE
| ROUTINE_CATALOG
| ROUTINE_NAME
| ROUTINE_SCHEMA
| SCHEMA_NAME
| SERVER_NAME
| SPECIFIC_NAME
| SUBCLASS_ORIGIN
| TABLE_NAME
| TRIGGER_CATALOG
| TRIGGER_NAME
| TRIGGER_SCHEMA
<dereference operation>::=
<reference value expression> <dereference operator> <attribute name>
<method reference>::=
<value expression primary> <dereference operator> <method name> <SQL
argument list>
<method selection>::= <routine invocation>
--p
--small
--i <new invocation> modified per ISO 9075:1999/Cor.1:2000(E)
--/i
--/small
--/p
<new invocation>::= <method invocation> | <routine invocation>
<static method selection>::= <routine invocation>
<token>::= <nondelimiter token> | <delimiter token>
<nondelimiter token>::=
<regular identifier>
| <key word>
| <unsigned numeric literal>
| <national character string literal>
www.PDFgozar.com
| K | KEY_MEMBER | KEY_TYPE
| LENGTH | LOWER
| M | MAX | MIN | MESSAGE_LENGTH | MESSAGE_OCTET_LENGTH |
MESSAGE_TEXT
| MOD | MORE | MUMPS
| NAME | NULLABLE | NUMBER | NULLIF
| OCTET_LENGTH | ORDERING | OPTIONS | OVERLAY | OVERRIDING
| PASCAL | PARAMETER_MODE | PARAMETER_NAME
| PARAMETER_ORDINAL_POSITION | PARAMETER_SPECIFIC_CATALOG
| PARAMETER_SPECIFIC_NAME | PARAMETER_SPECIFIC_SCHEMA | PLI
| POSITION
| REPEATABLE | RETURNED_CARDINALITY | RETURNED_LENGTH
| RETURNED_OCTET_LENGTH | RETURNED_SQLSTATE |
ROUTINE_CATALOG
| ROUTINE_NAME | ROUTINE_SCHEMA | ROW_COUNT
| SCALE | SCHEMA_NAME | SCOPE | SECURITY | SELF | SENSITIVE |
SERIALIZABLE
| SERVER_NAME | SIMPLE | SOURCE | SPECIFIC_NAME | STATEMENT |
STRUCTURE
| STYLE | SUBCLASS_ORIGIN | SUBSTRING | SUM | SYMMETRIC |
SYSTEM
| TABLE_NAME | TOP_LEVEL_COUNT | TRANSACTIONS_COMMITTED
| TRANSACTIONS_ROLLED_BACK | TRANSACTION_ACTIVE |
TRANSFORM
| TRANSFORMS | TRANSLATE | TRIGGER_CATALOG |
TRIGGER_SCHEMA
| TRIGGER_NAME | TRIM | TYPE
| UNCOMMITTED | UNNAMED | UPPER
<delimiter token>::=
<character string literal>
| <date string>
| <time string>
| <timestamp string>
| <interval string>
| <delimited identifier>
| <SQL special character>
| <not equals operator>
| <greater than or equals operator>
| <less than or equals operator>
| <concatenation operator>
| <right arrow>
| <left bracket trigraph>
| <right bracket trigraph>
| <double colon>
| <double period>
<CLI routine>::= <CLI routine name> <CLI parameter list> [ <CLI returns clause> ]
<CLI routine name>::= <CLI name prefix> <CLI generic name>
<CLI name prefix>::= <CLI by-reference prefix> | <CLI by-value prefix>
<CLI by-reference prefix>::=SQLR
<CLI by-value prefix>::=SQL
<CLI generic name>::=
AllocConnect | AllocEnv | AllocHandle | AllocStmt
| BindCol | BindParameter
| Cancel | CloseCursor | ColAttribute | ColumnPrivileges | Columns | Connect |
CopyDesc
| DataSources | DescribeCol | Disconnect
| EndTran | Error | ExecDirect | Execute
| Fetch | FetchScroll | ForeignKeys | FreeConnect | FreeEnv | FreeHandle | FreeStmt
www.PDFgozar.com
<condition declaration>::=
DECLARE <condition name> CONDITION [ FOR <sqlstate value> ]
<condition name>::= <identifier>
<sqlstate value>::=SQLSTATE [ VALUE ] <character string literal>
<local cursor declaration list>::= <terminated local cursor declaration>...
<terminated local cursor declaration>::= <declare cursor> <semicolon>
<local handler declaration list>::= <terminated local handler declaration>...
<terminated local handler declaration>::= <handler declaration> <semicolon>
<handler declaration>::=
DECLARE <handler type> HANDLER FOR <condition value list> <handler action>
<handler type>::=CONTINUE | EXIT | UNDO
<condition value list>::= <condition value> [ { <comma> <condition value> }... ]
<condition value>::=
<sqlstate value> | <condition name> | SQLEXCEPTION | SQLWARNING | NOT FOUND
<handler action>::= <SQL procedure statement>
<SQL statement list>::= <terminated SQL statement>...
<terminated SQL statement>::= <SQL procedure statement> <semicolon>
<ending label>::= <statement label>
<case statement>::= <simple case statement> | <searched case statement>
<simple case statement>::=
CASE <simple case operand 1> <simple case statement when clause>... [ <case
statement else clause> ] END CASE
<simple case operand 1>::= <value expression>
<simple case statement when clause>::=
WHEN <simple case operand 2> THEN <SQL statement list>
<simple case operand 2>::= <value expression>
<case statement else clause>::=ELSE <SQL statement list>
<searched case statement>::=
CASE <searched case statement when clause>... [ <case statement else clause> ]
END CASE
<searched case statement when clause>::=
WHEN <search condition> THEN <SQL statement list>
<if statement>::=
IF <search condition> <if statement then clause>
[ <if statement elseif clause>... ] [ <if statement else clause> ]
END IF
<if statement then clause>::=THEN <SQL statement list>
<if statement elseif clause>::=ELSEIF <search condition> THEN <SQL statement list>
<if statement else clause>::=ELSE <SQL statement list>
<iterate statement>::=ITERATE <statement label>
<leave statement>::=LEAVE <statement label>
<loop statement>::=
[ <beginning label> <colon> ] LOOP <SQL statement list> END LOOP [ <ending label> ]
<while statement>::=
[ <beginning label> <colon> ] WHILE <search condition> DO <SQL statement
list> END WHILE [ <ending label> ]
<repeat statement>::=
[ <beginning label> <colon> ] REPEAT <SQL statement list> UNTIL <search
condition> END REPEAT [ <ending label> ]
<for statement>::=
[ <beginning label> <colon> ] FOR <for loop variable name> AS
[ <cursor name> [ <cursor sensitivity> ] CURSOR FOR ] <cursor specification>
DO <SQL statement list> END FOR [ <ending label> ]
<for loop variable name>::= <identifier>
<signal statement>::=SIGNAL <signal value> [ <set signal information> ]
<signal value>::= <condition name> | <sqlstate value>
<set signal information>::=SET <signal information item list>
<signal information item list>::=
<signal information item> [ { <comma> <signal information item> }... ]
www.PDFgozar.com
| REAL
| DOUBLE PRECISION
| LOGICAL
| <Fortran derived type specification>
<Fortran derived type specification>::=
<Fortran CLOB variable>
| <Fortran BLOB variable>
| <Fortran user-defined type variable>
| <Fortran CLOB locator variable>
| <Fortran BLOB locator variable>
| <Fortran user-defined type locator variable>
| <Fortran array locator variable>
| <Fortran REF variable>
<Fortran CLOB variable>::=
SQL TYPE IS CLOB <leftparen> <large object length> <rightparen>
[ CHARACTER SET [ IS ] <character set specification> ]
<Fortran BLOB variable>::=
SQL TYPE IS BLOB <leftparen> <large object length> <rightparen>
<Fortran user-defined type variable>::=
SQL TYPE IS <user-defined type> AS <predefined type>
<Fortran CLOB locator variable>::=
SQL TYPE IS CLOB AS LOCATOR
<Fortran BLOB locator variable>::=
SQL TYPE IS BLOB AS LOCATOR
<Fortran user-defined type locator variable>::=
SQL TYPE IS <user-defined type name> AS LOCATOR
<Fortran array locator variable>::=
SQL TYPE IS <collection type> AS LOCATOR
<Fortran REF variable>::=
SQL TYPE IS <reference type>
<MUMPS variable definition>::=
<MUMPS numeric variable> <semicolon>
| <MUMPS character variable> <semicolon>
| <MUMPS derived type specification> <semicolon>
<MUMPS numeric variable>::=
<MUMPS type specification> <MUMPS host identifier>
[ { <comma> <MUMPS host identifier> }... ]
<MUMPS type specification>::=
INT
| DEC [ <leftparen> <precision> [ <comma> <scale> ] <rightparen> ]
| REAL
<MUMPS character variable>::=
VARCHAR <MUMPS host identifier> <MUMPS length specification>
[ { <comma> <MUMPS host identifier> <MUMPS length specification> }... ]
<MUMPS length specification>::=
<leftparen> <length> <rightparen>
<MUMPS derived type specification>::=
<MUMPS CLOB variable>
| <MUMPS BLOB variable>
| <MUMPS user-defined type variable>
| <MUMPS CLOB locator variable>
| <MUMPS BLOB locator variable>
| <MUMPS user-defined type locator variable>
| <MUMPS array locator variable>
| <MUMPS REF variable>
<MUMPS CLOB variable>::=
SQL TYPE IS CLOB <leftparen> <large object length> <rightparen>
[ CHARACTER SET [ IS ] <character set specification> ]
<MUMPS BLOB variable>::=
www.PDFgozar.com
ﻭﺍﮊﻩ ﻧﺎﻣﻪ
ﺍﻧﮕﻠﻴﺴﻲ ﺑﻪ ﻓﺎﺭﺳﻲ
A ALL-Key ﺕم آ
Abort دyz Alternate Key(A K) y¡آ دی
Abstract machine {|
ا~ا Analogue {
Abstract Data ع داد اي Anomaly {®
ﻝ
Type (ADT) {|ا~ا
Antisemijoin ¢ ¯
Abstract Data
Application
Type (ADT) دy
ع داد
perspective ديyدی¬ آر
Abstractive {|ا~ا Application
Abstractive Programming °
y ±وا
construct {| ا~ا Interface (API) دyزي آر
Access rules {ا| د Application ) د زyآر
Access Method developer ( دارy y
(AM) { د Application ديy آر°
y
Access right {ق د Program (AP ) ( دارy) آر
اﺕيyا Application °
y ³ﺕ´ی
Access strategy {د Program conversion ديyهي آر
Accessability y {د Application system ديy آر
Accuracy د Arity {®ری
Action {| Assertion رµا
Active rule | ل Asset °
یy
Active Data هي داد Association {¡
Objects (ADO) اي ل Asymmetry |م ﺕرن
Active Database ل
Atomic {¤ °ﺕ~ی
Management یy
ی
System (ADBMS) ی¡داد¢ Atomicity يy·ی¢ °ﺕ~ی
Active dictionary ي لy£¤¥دی Attribute ¸¹
Active DBMS Attribute features ¸¹ هي°´£ﺝ
(ADBMS) ل Attribute
Activity diagram دار ﻝ inheritance ¸¹ ºورا
Attribute
Actor y¡¤£آ
preserving ¸ت¹ °¼
Ad hoc
½ودی
(Unplanned)
ردي
Attribute constraint {¸¹
ﺝ{ یªﺕ
Aggregate function {وهy¬ Attributes set ¸ت¹ °|
Aggregation ªﺕ Augmentation ¾ا~ای
www.PDFgozar.com
واژه ﻧﺎﻣﻪ
ﻓﺎرﺳﻲ ﺑﻪ اﻧﮕﻠﻴﺴﻲ
Essential اﺳﺎﺳﻲ ®
اﺳﺘﺨﺮاج داده ﻫﺎ Redundant
Data extraction Array of ارزان دﻳﺴﻜﻬﺎي آراﻳﻪ
Test strategy اﺳﺘﺮاﺗﮋي ﺗﺴﺖ Inexpensive
Disks (RAID) اﻓﺰوﻧﻪ
Access strategy اﺳﺘﺮاﺗﮋي دﺳﺘﻴﺎﺑﻲ
Arity آرﻳﺘﻲ
Induction اﺳﺘﻘﺮاء
Free آزاد
Program-data
independence اﺳﺘﻘﻼل ﺑﺮﻧﺎﻣﻪ از داده آﻧﻮﻣﺎﻟﻲ
Anomaly
Data اﺑﺮﻛﻠﻴﺪ
independence اﺳﺘﻘﻼل داده اي Super Key (SK )
Physical Data Automatic
اﺳﺘﻘﻼل داده اي ﻓﻴﺰﻳﻜﻲ Design Tool اﺑﺰار ﻃﺮاﺣﻲ ﺧﻮدﻛﺎر
Independence
logical Data Tool developer اﺑﺰار ﺳﺎز
Independence اﺳﺘﻘﻼل داده اي ﻣﻨﻄﻘﻲ
Design tool اﺑﺰار ﻃﺮاﺣﻲ
Deduction اﺳﺘﻨﺘﺎج
Nested
( اﺳﻠﻮب ﭘﻴﻮﺳﺘﻪ ) ﺑﺮ ﺧﻂ statement ( اﺣﻜﺎم ﻣﺮﻛﺐ ) ﺗﻮ در ﺗﻮ
Online mode
Interactive DBMS-web
اﺳﻠﻮب ﺗﻌﺎﻣﻠﻲ integration ادﻏﺎم در وب
mode
Operational Embedded ادﻏﺎم ﺷﺪه
mode اﺳﻠﻮب ﻋﻤﻠﻴﺎﺗﻲ
Self-relationship ارﺗﺒﺎط ﺑﺎ ﺧﻮد
Batch mode اﺳﻠﻮب ﻳﻜﺠﺎ
Recursive
اﺷﺘﺮاك داده ﻫﺎ relationship ارﺗﺒﺎط ﺑﺎزﮔﺸﺘﻲ
Data sharing
اﺷﺘﺮاﻛﻲ Informative ارﺗﺒﺎط دﻫﻨﺪﮔﻲ
Shared
اﺷﺘﻘﺎق دﻳﺪ Identifing
View derivation relationship ارﺗﺒﺎط ﺷﻨﺎﺳﺎ
Real-world ارﺗﻘﺎء
object اﺷﻴﺎء ﺟﻬﺎن واﻗﻊ Upgradibility
( اﻃﻼع ﺟﻌﻠﻲ ) اﺿﺎﻓﻲ Reference ارﺟﺎع
Spurious
اﻃﻼع ﻧﻬﺴﺖ Axiom اﺻﻞ ﻣﻮﺿﻮﻋﻪ
Missing
www.PDFgozar.com
اﻳﺠﺎد information
Development
اﻳﺠﺎد دﻳﺪ Assertion اﻇﻬﺎر
CREATE view
اﻳﺴﺘﮕﺎه ﻛﺎر GRANT اﻋﻄﺎء
Work station
اﻳﺴﺘﮕﺎه ﻛﺎري Declarative اﻋﻼﻧﻲ
Work station
اﻳﻤﻨﻲ Value -based اﻋﻤﺎل ﻗﻮاﻋﺪ اﻳﻤﻨﻲ ﻣﺒﺘﻨﻲ
Security security
Database constraint ﺑﺮ ﻣﻘﺎدﻳﺮ
Protection ﺣﻔﺎﻇﺖ ﭘﺎﻳﮕﺎهداده ﻫﺎ
Back office
ب server اﻓﺰارﮔﺎن ﭘﺸﺖ ﺻﺤﻨﻪ
ﺑﺎرﻛﺎري Augmentation اﻓﺰاﻳﺶ
Workload
ﺑﺎرﮔﺬاري Upsizing اﻓﺰاﻳﺶاﻧﺪازه
Load
ﺑﺎز ﺑﺎرﮔﺬاري Left
Reload augmentation اﻓﺰاﻳﺶ ﭼﭗ
Data marts ﺑﺎزار داده ﻫﺎ ( اﻓﺰاﻳﺶ ﺳﺮﻋﺖ ) ﻛﺎراﻳﻲ
Speedup
Index rebuilding ﺑﺎزﺳﺎزي ﺷﺎﺧﺺ - اﻓﺰاﻳﺶ ﻣﻘﻴﺎس ﻛﺎر
Data bank ﺑﺎﻧﻚ داده ﻫﺎ ﮔﺴﺘﺮش ﭘﺬﻳﺮي
Scale up
Setup ﺑﺮﭘﺎﻳﻲ اﻓﺰوﻧﮕﻲ
Redundancy
Selective setup ﺑﺮﭘﺎﻳﻲ ﮔﺰﻳﻨﺸﻲ Physical
redundancy اﻓﺰوﻧﮕﻲ ﻓﻴﺰﻳﻜﻲ
On-line ( ﺑﺮﺧﻂ ) ﭘﻴﻮﺳﺘﻪ
Conceptual
Vector ﺑﺮدار redundancy اﻓﺰوﻧﮕﻲ ادراﻛﻲ
Application Data usage
Program (AP ) ﺑﺮﻧﺎﻣﻪ ﻛﺎرﺑﺮدي_ ﻛﺎرﺑﺮدار pattern اﻟﮕﻮي اﺳﺘﻔﺎده از داده ﻫﺎ
Logical ﻛﺎرﺑﺮ
sequence ﺗﻮاﻟﻲ ﻣﻨﻄﻘﻲ
System defined ﺗﻌﺮﻳﻒ ﺷﺪه در ﺳﻴﺴﺘﻢ
Throughput ﺗﻮان ﻋﻤﻠﻴﺎﺗﻲ
Schema
Network ﺗﻌﺮﻳﻒ ﺷﻤﺎ
ﺗﻮﭘﻮﻟﻮژي ﺷﺒﻜﻪ definition
topology
Undefined ﺗﻌﺮﻳﻒ ﻧﺸﺪه
Bags ﺗﻮده
Generalization ﺗﻌﻤﻴﻢ
Distributed ﺗﻮزﻳﻊ ﺷﺪه
Restricted (ﺗﻌﻮﻳﻘﻲ )ﻣﺸﺮوط
Descriptive ﺗﻮﺻﻴﻔﻲ
Query
ج modification ﺗﻐﻴﻴﺮ ﭘﺮﺳﺶ
ﺟﺎﺑﺠﺎﻳﻲ ﭘﺬﻳﺮي Request
Portability ﺗﻐﻴﻴﺮ درﺧﻮاﺳﺖ
modification
Integrity ﺟﺎﻣﻌﻴﺖ
Schema
Transaction evolution ﺗﻐﻴﻴﺮ ﺷﻤﺎ
integrity ﺟﺎﻣﻌﻴﺖ ﺗﺮاﻛﻨﺶ
Interpretation ﺗﻔﺴﻴﺮ
Java-script ﺟﺎوا اﺳﻜﺮﻳﭙﺖ
Closed World
ﺟﺎﻳﺪﻫﻲ داده interpretation ﺗﻔﺴﻴﺮ ﺟﻬﺎن ﺑﺴﺘﻪ
Data placement
Relational Divide ﺗﻘﺴﻴﻢ
algebra ﺟﺒﺮ راﺑﻄﻪاي
Mono- server ﺗﻚ ﺧﺪﻣﺘﮕﺰار
Isolation (ﺟﺪاﻳﻲ )اﻧﻔﺮاد
Monadic ﺗﻚ ﻋﻤﻠﻮﻧﺪي
Lookup table ﺟﺪول ﺟﺴﺘﺠﻮ
Single user
ﺟﺪول ﻛﺎري (Personal) ﺗﻚ ﻛﺎرﺑﺮي
Working table
Persistent Single-valued ﺗﻚ ﻣﻘﺪاري
(Permanent) ﺗﻚ ﻣﻨﻈﻮره
ﺟﺪول ﻣﺎﻧﺪﮔﺎر Special purpose
table
Information
Base Table (ﺟﺪول ﻣﺒﻨﺎ)ﭘﺎﻳﻪ ﺗﻜﻨﻮﻟﻮژي اﻃﻼﻋﺎت
Technology (IT)
Virtual table ﺟﺪول ﻣﺠﺎزي Virtual Parent
Child Link VPCL ﺗﻜﻨﻴﻚ
Temporary
table ﺟﺪول ﻣﻮﻗﺖ (ﺗﻜﻨﻴﻚ ﺗﺎﻳﻴﺪ )ﺗﺼﺪﻳﻖ
Certification
Islands of ﺗﻜﻨﻴﻚ ﭼﻨﺪ ﻧﺴﺨﻪ ﺳﺎزي
ﺟﺰاﻳﺮ اﻃﻼﻋﺎﺗﻲ Multiversioning
information
Timestamping ﺗﻜﻨﻴﻚ زﻣﺎﻧﻤﻬﺮ
Partial ﺟﺰﻳﻲ
Locking
IS-A PART-OF ...ﺟﺰﻳﻲ اﺳﺖ از ﺗﻜﻨﻴﻚ ﻗﻔﻞ ﮔﺬاري
technique
Attribute ﺗﻜﻨﻴﻚ ﻗﻔﻞ ﮔﺬاري دو
features ﺟﻨﺒﻪ ﻫﺎي ﺻﻔﺖ Two Phase
Locking (2PL) ﻣﺮﺣﻠﻪ اي
Closed World ﺟﻬﺎن ﺑﺴﺘﻪ
Object
ﺟﻬﺎن ﺗﺎزه )ﺷﺒﻜﻪ ﺟﻬﺎﻧﻲ
World Wide Modeling
(اﻃﻼع رﺳﺎﻧﻲ Technique ﺗﻜﻨﻴﻚ ﻣﺪﻟﺴﺎزي ﺷﻴﺊ
Web (W W W )
Universe of Piece ﺗﻜﻪ
Discourse ﺟﻬﺎن ﻣﻮرد ﻧﻈﺮ
ALL-Key ﺗﻤﺎم ﻛﻠﻴﺪ
Real world ﺟﻬﺎن واﻗﻊ
Database
چ tuning ﺗﻨﻈﻴﻢ ﭘﺎﻳﮕﺎهداده ﻫﺎ
Active Manipulation
dictionary دﻳﻜﺸﻨﺮي ﻓﻌﺎل Language
ذ Data Definition
Language دﺳﺘﻮرات ﺗﻌﺮﻳﻒ داده ﻫﺎ
Intrinsic ذاﺗﻲ
Data دﺳﺘﻮرات ﻋﻤﻠﻴﺎت روي
Stored data ذﺧﻴﺮه ﺷﺪه Manipulation
Language داده ﻫﺎ
Information
Storage and Data Control
ذﺧﻴﺮه و ﺑﺎزﻳﺎﺑﻲ اﻃﻼﻋﺎت Language دﺳﺘﻮرات ﻛﻨﺘﺮل داده ﻫﺎ
Retrieval (ISR)
ر Prescriptive دﺳﺘﻮري
Constraint Enhanced
specification (Extended) ER EER روش
language زﺑﺎن ﺗﻮﺻﻴﻒ ﻣﺤﺪودﻳﺖ Top-down
Data Sub design method روش ﺑﺎﻻ ﺑﻪ ﭘﺎﻳﻴﻦ
Language زﺑﺎن داده اي ﻓﺮﻋﻲ Mixed design
Network method روش ﺗﺮﻛﻴﺒﻲ
Database Relational
Language زﺑﺎن ﺳﻴﺴﺘﻢ ﺷﺒﻜﻪ اي synthesis روش ﺳﻨﺘﺰ راﺑﻄﻪاي
Object Oriented Event
journaling روﻳﺪاد ﻧﮕﺎري
Language(OOL) زﺑﺎن ﺷﻴﺊ ﮔﺮا
Procedure روﻳﻪ
Universal
Procedural روﻳﻪ اي
Modeling
Language Responding
زﺑﺎن ﻋﻤﻮﻣﻲ ﻣﺪل ﺳﺎزي procedure روﻳﻪ ﭘﺎﺳﺨﮕﻮ
(UML)
زﺑﺎن ﻣﻴﺰﺑﺎن Stored
Host Language روﻳﻪ ذﺧﻴﺮه ﺷﺪه
procedure
4GL زﺑﺎن ﻧﺴﻞ ﭼﻬﺎرم Documented
procedure روﻳﻪ ﻣﺴﺘﻨﺪ
Super table زﺑﺮ ﺟﺪول
Trigger (رﻫﺎﻧﺎ )راهاﻧﺪاز
Super type زﺑﺮ رده
Super entity ز
type زﺑﺮ ﻧﻮع
Virtual relation زاﺑﻄﻪ ﻣﺠﺎزي
peak time زﻣﺎن اوج
ZANIOLO زاﻧﻴﻮﻟﻮ
Response time زﻣﺎن ﭘﺎﺳﺨﺪﻫﻲ Programming
Language (PL) زﺑﺎن ﺑﺮﻧﺎﻣﻪ ﺳﺎزي
Temporal زﻣﺎﻧﻤﻨﺪ
Structured
Sub table زﻳﺮ ﺟﺪول
Query Language
زﻳﺮ رده (SQL) SQL زﺑﺎن
Subtype
Logic
Subtype زﻳﺮ ﻧﻮع
programming
زﻳﺮ ﻧﻮع ﻣﺸﺘﺮك Language زﺑﺎن ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﻣﻨﻄﻖ
Shared entity
زﻳﺮ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ Database
Sub entity type Language زﺑﺎن ﭘﺎﻳﮕﺎﻫﻲ
س Object
Abstractive Oriented
construct ﺳﺎﺧﺖ اﻧﺘﺰاﻋﻲ Database
Language زﺑﺎن ﭘﺎﻳﮕﺎﻫﻲ ﺷﻴﺊ ﮔﺮا
Logical
construct ﺳﺎﺧﺖ ﻣﻨﻄﻘﻲ زﺑﺎن ﭘﺮﺳﺶ
Query Language
Data Structure ﺳﺎﺧﺘﺎر داده اي Nested زﺑﺎن ﭘﺮﺳﺶ ﺑﺎ راﺑﻄﻪ ﻏﻴﺮ
Tabular Data relational
ﺳﺎﺧﺘﺎر داده اي ﺟﺪوﻟﻲ Query language ﻧﺮﻣﺎل
Structure (TDS)
Relational Data Object Query
Structure ﺳﺎﺧﺘﺎر داده اي ارﺗﺒﺎﻃﻲ
Language(OQL) زﺑﺎن ﭘﺮﺳﺶ ﺷﻴﺊ ﮔﺮا
Box data
structure ﺳﺎﺧﺘﺎر داده اي ﺟﻌﺒﻪ اي View Definition
Language (زﺑﺎن ﺗﻌﺮﻳﻒ دﻳﺪ
ﺳﺎﺧﺘﺎر داده اي ﺳﻠﺴﻠﻪ
Hierarchical Storage ذﺧﻴﺮه ﺗﻌﺮﻳﻒ زﺑﺎن
Data Structure ﻣﺮاﺗﺒﻲ Definition
Language ﺳﺎزي
Network Data
Structure (NDS) ﺳﺎﺧﺘﺎر داده اي ﺷﺒﻜﻪ اي
www.PDFgozar.com
Tow-Valued ﻣﺴﻄﺢ
ﻣﻨﻄﻖ دو ارزﺷﻲ Flat
Logic (2VL)
Predicate ﻣﺴﻨﺪ
Three-Valued
Logic (3VL) ﻣﻨﻄﻖ ﺳﻪ ارزﺷﻲ Restriction
predicate ﻣﺴﻨﺪ ﮔﺰﻳﻨﺶ
Engine ﻣﻮﺗﻮر
Predicate
Entity ﻣﺴﻨﺪات
(ER) ارﺗﺒﺎط-ﻣﻮﺟﻮدﻳﺖ calculus
relationship
Reference path ﻣﺴﻴﺮﮔﺮاف
Identifing entity ﻣﻮﺟﻮدﻳﺖ ﺷﻨﺎﺳﺎ
Total
Virtual entity ﻣﻮﺟﻮدﻳﺖ ﻣﺠﺎزي participation (ﻣﺸﺎرﻛﺖ اﻟﺰاﻣﻲ )ﻛﺎﻣﻞ
Ad hoc ﻏﻴﺮاﻟﺰاﻣﻲ ﻣﺸﺎرﻛﺖ
(Unplanned) ﻣﻮردي Partial
participation ()ﻧﺎﻛﺎﻣﻞ
Form generator ﻣﻮﻟﺪ ﻓﺮم
Client/Server ﺧﺪﻣﺘﮕﺰار/ﻣﺸﺘﺮي
Report
generator ﻣﻮﻟﺪ ﮔﺰارش ﻣﺸﺘﻖ
Derived
Menu generator ﻣﻮﻟﺪ ﻣﻨﻮ System
specification ﻣﺸﺨﺼﺎت ﺳﻴﺴﺘﻢ
Relation type
generator ﻣﻮﻟﺪ ﻧﻮع راﺑﻄﻪ Database
approach ﻣﺸﻲ ﭘﺎﻳﮕﺎﻫﻲ
Nontrivial (ﻣﻬﻢ )ﻣﻄﺮح
Non database
Reengineering ﻣﻬﻨﺪﺳﻲ دوﺑﺎره approach ﻣﺸﻲ ﻧﺎﭘﺎﻳﮕﺎﻫﻲ
Requirements ﻣﻌﻠﻖ
ﻣﻬﻨﺪﺳﻲ ﻧﻴﺎزﻫﺎ Dangling
Engineering
Multi Database
Middleware ﻣﻴﺎن اﻓﺰار System (MDBS) ﻣﻌﻤﺎري ﭼﻨﺪ ﭘﺎﻳﮕﺎﻫﻲ
Uniqueness ﻳﻜﺘﺎﻳﻲ
Batch ﻳﻜﺠﺎ
General
unification ﻳﻜﺴﺎن ﻋﻤﻮﻣﻲ
www.PDFgozar.com
www.PDFgozar.com
ﻣﻨﺎﺑﻊ ﻭ ﻣﺎﺧﺬ