‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﻣﻮﻟﻔﻴﻦ‬ ‫ﻣﻬﻨﺪس ﺳﻴﺪ ﻧﺎﺻﺮ آﻳﺖ دﻛﺘﺮ اﺣﻤﺪ ﻓﺮاﻫﻲ‬

‫ﻓﻬﺮﺳﺖ‬ ‫ﻓﺼﻞ ‪ - 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 .............................. ................................‬‬

‫ﺗﻤﺮﻳﻨﺎت ‪16 ............. ................................ ................................‬‬ ‫ﻓﺼﻞ ‪ - 2‬ﻣﺪل ﺳﺎزي ﻣﻌﻨﺎﻳﻲ داده ﻫﺎ ‪17 .................... ................................‬‬ ‫ﻫﺪف ﻛﻠﻲ ‪17 ........... ................................ ................................‬‬ ‫ﻫﺪف رﻓﺘﺎري ‪17 ........ ................................ ................................‬‬ ‫‪ -1‬ﻣﺪﻟﺴﺎزي ﻣﻌﻨﺎﻳﻲ داده ﻫﺎ ‪18 ......................... ................................‬‬ ‫‪ -2‬ﻣﺪﻟﺴﺎزي ﺑﻪ روش ‪19 .......................... ................................ ER‬‬ ‫‪ 1 -2‬ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ‪19 ............................. ................................‬‬ ‫‪ 1 -1 -2‬ﻧﻤﻮﻧﻪ ﻣﻮﺟﻮدﻳﺖ ‪20 ....................... ................................‬‬ ‫‪ 2 -1 -2‬ﺣﺎﻻت ﻳﻚ ﻣﻮﺟﻮدﻳﺖ ‪20 .................. ................................‬‬ ‫ﻣﻮﺟﻮدﻳﺖ ﻗﻮي ﻳﺎ ﻣﺴﺘﻘﻞ ‪21 ...................... ................................‬‬ ‫ﻣﻮﺟﻮدﻳﺖ ﺿﻌﻴﻒ ﻳﺎ واﺑﺴﺘﻪ ‪21 .................... ................................‬‬ ‫‪ 2 -2‬ﺻﻔﺖ ‪21 ....... ................................ ................................‬‬ ‫رده ﺑﻨﺪي ﺻﻔﺖ ‪21 . ................................ ................................‬‬ ‫‪ 1 -2 -2‬ﺻﻔﺖ ﺳﺎده ﻳﺎ ﻣﺮﻛﺐ ‪22 ................... ................................‬‬ ‫ﺻﻔﺖ ﺳﺎده ‪22 ...... ................................ ................................‬‬ ‫ﺻﻔﺖ ﻣﺮﻛﺐ ‪22 .... ................................ ................................‬‬ ‫‪ 2 -2 -2‬ﺻﻔﺖ ﺗﻚ ﻣﻘﺪاري ﻳﺎ ﭼﻨﺪ ﻣﻘﺪاري ‪22 .... ................................‬‬ ‫ﺻﻔﺖ ﺗﻚ ﻣﻘﺪاري ‪22 ............................... ................................‬‬ ‫ﺻﻔﺖ ﭼﻨﺪ ﻣﻘﺪاري ‪23 .............................. ................................‬‬ ‫‪ 3 -2 -2‬ﺷﻨﺎﺳﻪ ‪23 .... ................................ ................................‬‬ ‫ﻣﻔﻬﻮم ﻣﻘﺪار ﻫﻴﭻ ) ﻫﻴﭻ ﻣﻘﺪار ( ‪23 ................. ................................‬‬ ‫‪ 4 -2 -2‬ﺻﻔﺖ واﻗﻌﻲ ﻳﺎ ﻣﺸﺘﻖ ‪23 ................... ................................‬‬ ‫ﺻﻔﺖ واﻗﻌﻲ ) ذﺧﻴﺮه ﺷﺪه ( ‪24 ...................... ................................‬‬ ‫ﺻﻔﺖ ﻣﺸﺘﻖ ‪24 ..... ................................ ................................‬‬ ‫‪ 3 -2‬ارﺗﺒﺎط ‪24 ...... ................................ ................................‬‬ ‫ﻧﻮع ارﺗﺒﺎط ‪24 ....... ................................ ................................‬‬ ‫‪ -3‬ﻧﻤﻮدار ‪25 ....... ................................ ................................ ER‬‬ ‫‪ 1 -3‬درﺟﻪ ﻧﻮع ارﺗﺒﺎط ‪28 .......................... ................................‬‬ ‫‪ 2 -3‬ﻣﺎﻫﻴﺖ ﻧﻮع ارﺗﺒﺎط ) اﺗﺼﺎل ( ‪29 ............... ................................‬‬

‫‪ 3 -3‬ﺣﺪ ﻛﺎردﻳﻨﺎﻟﻴﺘﻲ ‪30 ............................. ................................‬‬ ‫‪ -4‬ﻣﺸﻜﻼت روش ‪31 .............................. ................................ ER‬‬ ‫‪ 1 -4‬دام ﺣﻠﻘﻪ اي ‪31 . ................................ ................................‬‬ ‫‪ 2 -4‬دام ﭼﻨﺪ ﺷﺎﺧﻪ اي ‪32 .......................... ................................‬‬ ‫‪ 3 -4‬دام ﮔﺴﻞ ‪32 .... ................................ ................................‬‬ ‫‪ -5‬ﻣﺪل ﺳﺎزي ﺑﺎ روش ‪33 ....................... ................................ EER‬‬ ‫‪ 1 -5‬ﺗﺠﺰﻳﻪ و ﺗﺮﻛﻴﺐ ‪33 ............................ ................................‬‬ ‫‪ 2 -5‬ﺗﺨﺼﻴﺺ و ﺗﻌﻤﻴﻢ ‪35 .......................... ................................‬‬ ‫‪ 3 -5‬زﻳﺮ ﻧﻮع ﻫﺎي ﻫﻤﭙﻮﺷﺎ و ﻣﺠﺰا ‪36 .............. ................................‬‬ ‫‪ 4 -5‬دﺳﺘﻪ ﺑﻨﺪي و وراﺛﺖ ‪37 ...................... ................................‬‬ ‫‪ 5 -5‬ﺗﺠﻤﻊ ‪38 ....... ................................ ................................‬‬ ‫‪ -6‬روش ﻣﺪل ﺳﺎزي ﺷﻲء ‪39 .................. ................................ UML‬‬ ‫‪ 1 -6‬ﻣﻔﺎﻫﻴﻢ اﺻﻠﻲ ‪39 ............................... ................................‬‬ ‫‪ 2 -6‬ﻧﺤﻮه ﻧﻤﺎﻳﺶ ﻣﻔﺎﻫﻴﻢ ‪41 ........................ ................................‬‬ ‫‪ 3 -6‬ﺧﺼﻮﺻﻴﺎت ﻛﻠﻲ روش ﻣﺪل ﺳﺎزي ﻣﻌﻨﺎﻳﻲ داده ﻫﺎ ‪42 .......................‬‬ ‫ﺗﻤﺮﻳﻨﺎت ‪44 ............. ................................ ................................‬‬ ‫ﻓﺼﻞ ‪ - 3‬ﻣﻌ ﻤﺎري ﭘﺎﻳﮕﺎه داده ‪45 ............................ ................................‬‬ ‫ﻫﺪف ﻛﻠﻲ ‪45 ........... ................................ ................................‬‬ ‫ﻫﺪف رﻓﺘﺎري ‪45 ........ ................................ ................................‬‬ ‫‪ -1‬ﻣﻌﻤﺎري ﺳﻪ ﺳﻄﺤﻲ ﭘﺎ ﻳﮕﺎه داده ‪46 .................. ................................‬‬ ‫‪ -2‬ﺷﺮح ﺳﻄﻮح ﺳﻪ ﮔﺎﻧﻪ ‪48 ........................... ................................ :‬‬ ‫‪ ) 1 -2‬ﻧﻤﺎي ( ادراﻛﻲ ) ﻣﻔﻬﻮﻣﻲ ( ‪48 .................. ................................‬‬ ‫‪ 2 -2‬دﻳﺪ ) ﻧﻤﺎي ( ﺧﺎرﺟﻲ ‪49 ........................ ................................‬‬ ‫‪ 3 -2‬دﻳﺪ ) ﻧﻤﺎي ( داﺧﻠﻲ ‪50 ......................... ................................‬‬ ‫‪ -3‬ﺳﺎﻳﺮ اﺟﺰاء ﭘﺎﻳﮕﺎه داده ﻫﺎ ‪53 ........................ ................................‬‬ ‫‪ 1 -3‬ﻛﺎرﺑﺮ ‪53 ........ ................................ ................................‬‬ ‫‪ 2 -3‬زﺑﺎن ﻣﻴﺰﺑﺎن ‪53 . ................................ ................................‬‬ ‫‪ 3 -3‬زﺑﺎن داده اي ﻓﺮﻋﻲ ‪54 ......................... ................................‬‬ ‫زﺑﺎن ﻣﺴﺘﻘﻞ ‪55 ...... ................................ ................................‬‬

‫زﺑﺎن ادﻏﺎم ﺷﺪﻧﻲ ‪55 ................................ ................................‬‬ ‫ﺗﻤﺮﻳﻨﺎت ‪56 ............. ................................ ................................‬‬ ‫ﻓﺼﻞ ‪ - 4‬ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ‪57 ................. ................................‬‬ ‫ﻫﺪف ﻛﻠﻲ ‪57 ........... ................................ ................................‬‬ ‫ﻫﺪف رﻓﺘﺎري ‪57 ........ ................................ ................................‬‬ ‫‪ -1‬ﺗﻌﺮﻳﻒ ‪58 ............ ................................ ................................‬‬ ‫ﺑﺨﺶ ﺳﺎﺧﺘﺎري ‪59 .. ................................ ................................‬‬ ‫ﺑﺨﺶ ﻋﻤﻠﻴﺎﺗﻲ ‪59 .... ................................ ................................‬‬ ‫ﺑﺨﺶ ﺟﺎﻣﻌﻴﺘﻲ ‪59 ... ................................ ................................‬‬ ‫‪ -2‬رده ﺑﻨﺪي ﺳﻴﺴﺘﻢ ﻫﺎي ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎ ‪60 ... ................................‬‬ ‫از ﻧﻈﺮ ﻣﺪل داده اي ‪60 .............................. ................................‬‬ ‫از ﻧﻈﺮ ﻣﺤﻴﻂ ﺳﺨﺖ اﻓﺰاري ‪60 ...................... ................................‬‬ ‫از ﻧﻈﺮ رده ﺑﻨﺪي ﻛﺎﻣﭙﻴﻮﺗﺮ ‪60 ....................... ................................‬‬ ‫از ﻧﻈﺮ ﻣﺤﻴﻂ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ ‪60 ...................... ................................‬‬ ‫از ﻧﻈﺮ ﻧﻮع ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده ﻫﺎ ‪60 ....... ................................‬‬ ‫از ﻧﻈﺮ ﻣﻌﻤﺎري ﻣﺸﺘﺮي‪ -‬ﺧﺪﻣﺘﮕﺰار ‪61 ............. ................................‬‬ ‫از ﻧﻈﺮ ﺳﻴﺴﺘﻢ ﻓﺎﻳﻞ ‪61 .............................. ................................‬‬ ‫از ﻧﻈﺮ ﻣﺘﺪوﻟﻮژي زﺑﺎن ﭘﺎﻳﮕﺎﻫﻲ ‪61 ................ ................................‬‬ ‫از ﻧﻈﺮ ﺑﻬﻴﻨﻪ ﺳﺎزي ﭘﺮس و ﺟﻮﻫﺎ و درﺧﻮاﺳﺖ ﻫﺎي ﻛﺎرﺑﺮ ‪61 ....................‬‬ ‫از ﻧﻈﺮ ﻧﻮع ﺗ ﺮاﻛﻨﺶ ‪61 .............................. ................................‬‬ ‫از ﻧﻈﺮ ﻧﻮع ﭘﺮدازش ‪61 .............................. ................................‬‬ ‫‪ -3‬اﺟﺰاء ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎ ‪61 ............ ................................‬‬ ‫‪ 1 -3‬ﻧﻤﺎي ﺑﻴﺮوﻧﻲ ‪62 ................................ ................................‬‬ ‫‪ 2 -3‬ﻧﻤﺎي دروﻧﻲ ‪63 ................................ ................................‬‬ ‫‪ 1 -2 -3‬ﻻﻳﻪ ﻣﺪﻳﺮﻳﺖ ﻣﺤﻴﻂ ﭘﺎﻳﮕﺎه داده ‪63 ......... ................................‬‬ ‫‪ 2 -2 -3‬ﻻﻳﻪ ﻫﺴﺘﻪ ﭘﺎﻳﮕﺎه داده ‪64 ................... ................................‬‬ ‫‪ -4‬ﻛﺎﺗﺎﻟﻮگ ﺳﻴﺴﺘﻢ و دﻳﻜﺸﻨﺮي داده ﻫﺎ ) ﻣﺘﺎ داده ﻫﺎ ( ‪64 ..............................‬‬ ‫‪ -5‬ﭘﺎراﻣﺘﺮﻫﺎي ﺷﻨﺎﺧﺖ ‪66 .................... ................................ DBMS‬‬ ‫‪ 1 -5‬ﭘﺎراﻣﺘﺮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﺗﻮاﻧﺎﻳﻲ ﻫﺎ و ﻛﺎراﻳﻲ ﺳﻴﺴﺘﻢ ‪67 ........................‬‬

‫‪ 2 -5‬ﺗﺴﻬﻴﻼت و ﺟﻨﺒﻪ ﻫﺎي دﻳﮕﺮ ‪70 ................ ................................‬‬ ‫‪ : 3 -5‬ﻣﺸﺨﺼﺎت ﻛﻠﻲ ﺳﻴﺴﺘﻢ ‪72 .................... ................................‬‬ ‫‪ : 4 -5‬ﭘﺎراﻣﺘﺮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎه داده ﻫﺎ ‪72 ..............................‬‬ ‫‪ 1 -4 -5‬ﺳﻄﺢ داﺧﻠﻲ‪ -‬ﻓﻴﺰﻳﻜﻲ ‪72 ................... ................................‬‬ ‫‪ 2 -4 -5‬ﺳﻄﺢ ادراﻛﻲ ‪74 ............................ ................................‬‬ ‫‪ 3 -4 -5‬ﺳﻄﺢ ﺧﺎرﺟﻲ ‪74 ............................ ................................‬‬ ‫‪ 5 -5‬ﭘﺎراﻣﺘﺮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ زﺑﺎن داده اي ﻓﺮﻋﻲ ‪75 . ................................‬‬ ‫‪ -6‬ﻣﺤﻮرﻫﺎي اﺻﻠﻲ ﻣﻘﺎﻳﺴﻪ ‪ DBMS‬ﻫﺎ ‪76 ............ ................................‬‬ ‫‪ -7‬روش ﻣﻄﺎﻟﻌﻪ ﺳﻴﺴﺘﻢ ‪78 ............................. ................................‬‬ ‫‪ -8‬روﻳﻪ ﻫﺎي ﻣﺴﺘﻨﺪ ﺑﺮاي ﻛﺎرﺑﺮان ‪78 .................. ................................‬‬ ‫‪ -9‬ﻫﺰﻳﻨﻪ ﻫﺎ ‪79 ........... ................................ ................................‬‬ ‫‪ -10‬ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎه داده )‪80 ...................... ................................ (DBA‬‬ ‫‪ 1 -10‬اﺻﻄﻼح ﺗﻴﻢ ‪80 ....................... ................................ DBA‬‬ ‫‪ 2 -10‬ﻣﺴﺌﻮﻟﻴﺖ ﻫﺎ ‪81 ............................... ................................‬‬ ‫‪ 3 -10‬وﻇﺎﻳﻒ ‪81 .... ................................ ................................‬‬ ‫ﺗﻤﺮﻳﻨﺎت ‪85 ............. ................................ ................................‬‬ ‫ﻓﺼﻞ ‪ - 5‬ﻣﺪل ﻫﺎ و ﺳﺎﺧﺘﺎرﻫﺎي داده اي ﭘﺎﻳﮕﺎه داده ﻫﺎ ‪87 ................................‬‬ ‫ﻫﺪف ﻛﻠﻲ ‪87 ........... ................................ ................................‬‬ ‫ﻫﺪف رﻓﺘﺎري ‪87 ........ ................................ ................................‬‬ ‫‪ -1‬ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ ‪88 .... ................................ ................................‬‬ ‫‪ -2‬آﺷﻨﺎﻳﻲ ﺑﺎ ﺳﺎﺧﺘﺎر داده اي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ‪91 ....... ................................‬‬ ‫‪ 1 -2‬ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﺎري ‪91 ........................... ................................‬‬ ‫‪ 2 -2‬ﻃﺮاﺣﻲ ﭘﺎﻳﮕﺎه ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ‪93 .............. ................................‬‬ ‫‪ 3 -2‬ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎه ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ‪98 ......... ................................‬‬ ‫‪ 4 -2‬ﺑﺮﺧﻲ وﻳﮋﮔﻲ ﻫﺎي ﺳﺎﺧﺘﺎر ) و ﻣﺪل ( داده اي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ‪99 ..............‬‬ ‫‪ -3‬آﺷﻨﺎﻳﻲ ﺑﺎ ﺳﺎﺧﺘﺎر داده اي ﺷﺒﻜﻪ اي ‪100 ............ ................................‬‬ ‫‪ 1 -3‬ﺗﻌﺮﻳﻒ ﺳﺎﺧﺘﺎر ﺷﺒﻜﻪ ‪100 .................... ................................‬‬ ‫‪ 2 -3‬ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﺎري ‪101 ......................... ................................‬‬ ‫‪ 3 -3‬ﻃﺮاﺣﻲ ﭘﺎﻳﮕﺎه ﺷﺒﻜﻪ اي ‪102 ................. ................................‬‬

‫‪ 1 -3 -3‬ﻃﺮز ﻧﻤﺎﻳﺶ ارﺗﺒﺎط " ﻳﻚ ﺑﻪ ﭼﻨﺪ " ‪102 .. ................................‬‬ ‫ارﺗﺒﺎط ﺑﺎزﮔﺸﺘﻲ ‪104 ................................ ................................‬‬ ‫‪ 2 -3 -3‬ﻃﺮز ﻧﻤﺎﻳﺶ ارﺗﺒﺎط " ﭼﻨﺪ ﺑﻪ ﭼ ﻨﺪ " ‪104 .. ................................‬‬ ‫‪ 4 -3‬ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎه ﺷﺒﻜﻪ اي ‪105 .............. ................................‬‬ ‫‪ 5 -3‬ﺑﺮﺧﻲ وﻳﮋﮔﻲ ﻫﺎي ﺳﺎﺧﺘﺎر ) و ﻣﺪل ( داده اي ﺷﺒﻜﻪ اي ‪106 .................‬‬ ‫ﺗﻤﺮﻳﻨﺎت ‪107 ........... ................................ ................................‬‬ ‫ﻓﺼﻞ ‪ - 6‬ﭘﺎﻳﮕﺎه داده راﺑﻄﻪ اي ‪109 ......................... ................................‬‬ ‫ﻫﺪف ﻛﻠﻲ ‪109 ......... ................................ ................................‬‬ ‫ﻫﺪف رﻓﺘﺎري ‪109 ...... ................................ ................................‬‬ ‫‪ -1‬ﺑﺎﻧﻚ اﻃﻼﻋﺎت راﺑﻄﻪ اي ‪110 ... ................................ Relational DB‬‬ ‫‪ -2‬ﺳﺎﺧﺘﺎر داده اي راﺑﻄﻪ اي ‪110 ....................... ................................‬‬ ‫‪ -3‬ﺗﻌﺮﻳﻒ راﺑﻄﻪ ‪111 ... ................................ ................................‬‬ ‫‪111 ................ ................................ ................................ 3‬‬ ‫‪ 2 -3‬ﺗﻌﺮﻳﻒ راﺑﻄﻪ ‪112 ............................. ................................‬‬ ‫‪ 3 -3‬ﺗﻨﺎﻇﺮ ﺑﻴﻦ ﻣﻔﺎﻫﻴﻢ راﺑﻄﻪ اي و ﻣﻔﺎﻫﻴﻢ ﺟﺪوﻟﻲ ‪113 ...........................‬‬ ‫‪ 4 -3‬ﺗﻌﺮﻳﻒ ﺻﻮري ﺟﺪول ‪113 .................... ................................‬‬ ‫‪ -4‬وﻳﮋﮔﻲ ﻫﺎي راﺑﻄﻪ ‪115 .............................. ................................‬‬ ‫‪ -5‬اﻧﻮاع ﻛﻠﻴﺪ در ﻣﺪل راﺑﻄﻪ اي ‪116 ................... ................................‬‬ ‫‪ 1 -5‬اﺑﺮ ﻛﻠﻴﺪ ‪116 ... ................................ ................................‬‬ ‫‪ 2 -5‬ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ‪116 .............................. ................................‬‬ ‫‪ 3 -5‬ﻛﻠﻴﺪ اﺻﻠﻲ ‪117 ................................ ................................‬‬ ‫‪ 4 -5‬ﻛﻠﻴﺪ ﺑﺪﻳﻞ ‪117 ................................ ................................‬‬ ‫‪ 5 -5‬ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ‪118 ............................. ................................‬‬ ‫ﻧﻜﺎﺗﻲ در ﻣﻮرد ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ‪119 .................. ................................‬‬ ‫‪ -6‬اﻧﻮاع راﺑﻄﻪ ‪121 ..... ................................ ................................‬‬ ‫راﺑﻄﻪ ﻣﺒﻨﺎ ‪121 ...... ................................ ................................‬‬ ‫راﺑﻄﻪ ﻣﺸﺘﻖ ‪121 .... ................................ ................................‬‬ ‫ﻣﻔﻬﻮم دﻳﺪ ‪121 ...... ................................ ................................‬‬ ‫‪ -7‬ﻗﻮاﻋﺪ ﺟﺎﻣﻌﻴﺖ در ﻣﺪل راﺑﻄﻪ اي ‪122 ............. ................................‬‬

‫‪ 1 -7‬اﻧﻮاع ﻗﻮاﻋﺪ ﺟﺎﻣﻌﻴﺖ ‪123 ..................... ................................‬‬ ‫‪ 1 -1 -7‬ﻗﻮاﻋﺪ ﻛﺎرﺑﺮي ‪123 ......................... ................................‬‬ ‫‪ 2 -1 -7‬ﻣﺘﺎ ﻗﻮاﻋﺪ ‪124 .............................. ................................‬‬ ‫‪ 1 -2 -1 -7‬ﻗﺎﻋﺪه ﺟﺎﻣﻌﻴﺖ ﻣﻮﺟﻮدﻳﺘﻲ ‪124 ......... ................................‬‬ ‫‪ 2 -2 -1 -7‬ﻗﺎﻋﺪه ﺟﺎﻣﻌﻴﺖ ارﺟﺎﻋﻲ ‪125 ........... ................................‬‬ ‫ﺗ ﻤﺮﻳﻨﺎت ‪125 ........... ................................ ................................‬‬ ‫ﻓﺼﻞ ‪ - 7‬ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎه راﺑﻄﻪ اي ‪127 ................ ................................‬‬ ‫ﻫﺪف ﻛﻠﻲ ‪127 ......... ................................ ................................‬‬ ‫ﻫﺪف رﻓﺘﺎري ‪127 ...... ................................ ................................‬‬ ‫‪ -1‬ﺗﻌﺮﻳﻒ ‪128 .......... ................................ ................................‬‬ ‫‪ -2‬ﺟﺒﺮ راﺑﻄﻪ اي ) ‪ ( RA‬و ﻋﻤﻠﮕﺮﻫﺎي آن ‪129 ........ ................................‬‬ ‫ﻋﻤ ﻠﮕﺮﻫﺎي اﺻﻠﻲ ‪130 ............... ................................ : ( Б ) Select‬‬ ‫ﻋﻤﻠﮕﺮ اﺻﻠﻲ ‪130 .................. ................................ : ( ∏ ) Project‬‬ ‫اﻟﺤﺎق ) ‪130 . ................................ ................................ : ( Join‬‬ ‫ﻋﻤﻠﮕﺮﺗﻐﻴﻴﺮ ﻧﺎم ) ‪131 .......................... ................................ : ( ⍴‬‬ ‫دﺳﺘﻮر ) ‪133 .... ................................ ................................ : ( Б‬‬ ‫دﺳﺘﻮر ) ∏ ( ‪134 ... ................................ ................................ :‬‬ ‫ﻋﻤﻠﮕﺮ ﻫﺎي ﭘﻴﻮﻧﺪ )‪135 ...................... ................................ (join‬‬ ‫)‪X‬‬

‫ﺿﺮب دﻛﺎرﺗﻲ ‪135 ......................... ( Cartesian product :‬‬

‫ﺧﻮاص ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ ‪135 ........................... ................................‬‬ ‫ﻛﺎرﺑﺮدﻫﺎي ﺿﺮب دﻛﺎرﺗﻲ ) ‪136 ................. ................................ ( X‬‬ ‫اﻟﺤﺎق ﻃﺒﻴﻌﻲ ‪136 .......... ................................ : ( ∞ ) Natural join‬‬ ‫‪137 ............................. ................................ ⍺ = semi join‬‬ ‫ﻋﻤﻠﮕﺮ ﺗﻘﺴﻴﻢ ‪ Divide‬ﻳﺎ ‪138 ...... ................................ Division:‬‬ ‫‪ -3‬ﻋﻤﻠﮕﺮﻫﺎي ﻛﺎر ﺑﺮروي داده ﻫﺎ ‪140 ................ ................................‬‬ ‫‪ 1 -3‬ﻋﻤ ﻠﮕﺮ درج ) ‪140 .................... ................................ ( Insert‬‬ ‫‪ 2 -3‬ﻋﻤﻠﮕﺮ ﺑﻬﻨﮕﺎم ﺳﺎزي ) ‪141 ..... ................................ ( UPDATE‬‬ ‫‪ 3 -3‬ﻋﻤﻠﮕﺮ ﺣﺬف ) ‪141 .............. ................................ ( DELETE‬‬ ‫‪ -4‬ﻛﺎﻣﻞ ﺑﻮدن ﺟﺒﺮ راﺑﻄﻪ اي ‪142 ...................... ................................‬‬

‫‪ -5‬ﺣﺴﺎب راﺑﻄﻪ اي ‪142 ................................ ................................‬‬ ‫‪ 1 -5‬ﺣﺴﺎب راﺑﻄﻪ اي ﺗﺎﭘﻠﻲ ‪143 ................... ................................‬‬ ‫‪ 1 -1 -5‬ﺷﻜﻞ ﻛﻠﻲ ﻋﺒﺎرت ﺣﺴﺎب ﺗﺎﭘﻠﻲ ‪143 ...... ................................‬‬ ‫‪ 2 -1 -5‬ﺳﻮر وﺟﻮدي و ﺳﻮر ﻫﻤﮕﺎﻧﻲ ‪144 ........ ................................‬‬ ‫ﺳﻮر وﺟﻮدي ‪144 ... ................................ ................................‬‬ ‫ﺳﻮر ﻫﻤﮕﺎﻧﻲ ‪144 ... ................................ ................................‬‬ ‫‪ 3 -1 -5‬ﻋﺒﺎرت ﻣﻄﻤﺌﻦ ‪144 ......................... ................................‬‬ ‫‪ 2 -5‬ﺣﺴﺎب راﺑﻄﻪ ﻣﻴﺪاﻧﻲ ‪145 ..................... ................................‬‬ ‫‪ -6‬ﺑﻬﻴﻨﻪ ﺳﺎزي ﭘﺮس و ﺟﻮ ﻫﺎ ‪145 .................... ................................‬‬ ‫‪ 1 -6‬ﺗﺒﺪﻳﻞ ‪ Q‬ﺑﻪ ‪147 ..................... ................................ o.Q:‬‬ ‫‪ 2 -6‬ﺳﺎﻳﺮ ﻗﻮاﻋﺪ و ﻋﻤﻠﮕﺮ ﻫﺎي ﺑﻬﻴﻨﻪ ﺳﺎزي ‪147 .. ................................‬‬ ‫‪148 ..... ................................ ................................ crs ∞ sec‬‬ ‫‪148 ..... ................................ ................................ sec ∞ crs‬‬ ‫ﺗﻤﺮﻳﻨﺎت ‪149 ........... ................................ ................................‬‬ ‫ﻓﺼﻞ ‪ - 8‬آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪ اي ‪151 ............ ................................ SQL‬‬ ‫ﻫﺪف ﻛﻠﻲ ‪151 ......... ................................ ................................‬‬ ‫ﻫﺪف رﻓﺘﺎري ‪151 ...... ................................ ................................‬‬ ‫‪ - 1‬ﻣﻘﺪﻣﻪ اي ﺑﺮ ‪152 ............................ ................................ SQL‬‬ ‫‪ - 2‬دﻻﻳﻞ ﮔﺴﺘﺮدﮔﻲ ‪153 ........................ ................................ SQL‬‬ ‫‪ - 3‬دﺳﺘﻮرات ﺗﻌﺮﻳﻒ د اده ﻫﺎ ‪154 .............. ................................ DDL‬‬ ‫‪ 1 - 3‬ﺗﻌﺮﻳﻒ ﭘﺎﻳﮕﺎه داده ‪154 ....................... ................................‬‬ ‫‪ 2 - 3‬ﺗﻌﺮﻳﻒ ﺷﻤﺎ ‪155 .............................. ................................‬‬ ‫‪ 3 - 3‬ﺟﺪول ‪155 .... ................................ ................................‬‬ ‫‪ 1 - 3 - 3‬ﺗﻌﺮﻳﻒ ﺟﺪول ‪155 ....................... ................................‬‬ ‫‪ 2 - 3 - 3‬اﺻ ﻼ ً ح ﺳﺎﺧﺘﺎر ﺟﺪول ‪156 .............. ................................‬‬ ‫‪ 3 - 3 - 3‬ﺗﻐﻴﻴﺮ ﻧﻮع داده ﻫﺎي ﻳﻚ ﺳﺘﻮن ﺟﺪول ‪158 ..............................‬‬ ‫‪ 4 - 3 - 3‬ﺣﺬف ﻳﻚ ﺟﺪول ‪158 ................... ................................‬‬ ‫‪ -4‬دﺳﺘﻮرات ﭘﺮس و ﺟﻮ ) ﻣﺸﺎﻫﺪه ( داده ﻫﺎ ‪159 ...... ................................‬‬ ‫‪ - 5‬دﺳﺘﻮرات ﻛﺎر ﺑﺮ روي داده ﻫﺎ ‪162 ................ ................................‬‬

‫‪ 1 - 5‬دﺳﺘﻮر ‪163 ....................... ................................ INSERT‬‬ ‫‪ 2 - 5‬دﺳﺘﻮر ‪164 ...................... ................................ UPDATE‬‬ ‫‪ 3 - 5‬دﺳﺘﻮر ‪166 ....................... ................................ DELETE‬‬ ‫‪ -6‬ﺟﺴﺘﺠﻮﻫﺎي ﭘﻴﺸﺮﻓﺘﻪ ﺑﺎ ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ ‪167 ......... ................................‬‬ ‫‪ 1 - 6‬ﻋﻤﻠﮕ ﺮ ﭘﻴﻮﻧﺪ داﺧﻠﻲ ‪168 ..................... ................................‬‬ ‫ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ ﻃﺒﻴﻌﻲ ‪171 ........................... ................................‬‬ ‫‪ 3 - 6‬ﻋﻤﻠﮕﺮ ﻫﺎي ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ ‪171 .............. ................................‬‬ ‫‪ 1 - 3 - 6‬ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ ﭼﭗ ‪172 .................. ................................‬‬ ‫‪ 2 - 3 - 6‬ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ راﺳﺖ ‪173 ................ ................................‬‬ ‫‪ 3 - 3 - 6‬ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ ﻛﺎﻣﻞ ‪175 ................. ................................‬‬ ‫‪ - 7‬ﺳﺎﻳﺮ ﻋﻤﻠﮕﺮﻫﺎ در ﺟﺴﺘﺠﻮﻫﺎي ﭘﻴﺸﺮﻓﺘﻪ ‪176 ..... ................................‬‬ ‫‪ 1 - 7‬ﻋﻤﻠﮕﺮ ﮔﺮوه ﺑﻨﺪي ‪176 ..................... ................................‬‬ ‫‪ 2 - 7‬ﻋﻤﻠﮕﺮ ﻣﺮﺗﺐ ﺳﺎزي ‪177 ..................... ................................‬‬ ‫‪ 3 - 7‬ﺗﻮاﺑﻊ ﺗﺠﻤﻌﻲ ‪178 ............................ ................................‬‬ ‫‪ 4 - 7‬ﻋﻤﻠﮕﺮ ‪179 ...................... ................................ HAVING‬‬ ‫‪ 5 - 7‬ﻋﻤﻠﮕﺮ ‪180 ................... ................................ BETWEEN‬‬ ‫‪ 6 - 7‬ﻋﻤﻠﮕﺮ ‪181 ........................... ................................ LIKE‬‬ ‫‪ - 8‬اﺳﺘﻔﺎده از ﭘﺮس و ﺟﻮﻫﺎي ﺗﻮدرﺗﻮ ‪182 ........... ................................‬‬ ‫‪ 1 - 8‬اﺳﺘﻔﺎده ا ز زﻳﺮﭘﺮﺳﺶ ﻫﺎ ) ﭘﺮﺳﺶ ﻫﺎي ﻓﺮﻋﻲ ( ‪182 ..........................‬‬ ‫‪ 2 - 8‬ﻋﻤﻠﮕﺮ ‪183 ............................... ................................ IN‬‬ ‫‪ 3 - 8‬ﻋﻤﻠﮕﺮ ‪184 ....................... ................................ EXISTS‬‬ ‫‪ - 9‬دﺳﺘﻮرات ﻛﻨﺘﺮل ﻣﺠﻮز دﺳﺘﺮﺳﻲ ‪184 ............. ................................‬‬ ‫‪ 1 - 9‬دﺳﺘﻮر اﻋﻄﺎ اﺧﺘﻴﺎرات ‪185 ................... ................................‬‬ ‫‪ 2 - 9‬دﺳﺘﻮر ﻟﻐﻮ اﺧﺘﻴﺎرات ‪186 .................... ................................‬‬ ‫‪ -10‬اﻣﻜﺎﻧﺎت و وﻳﮋﮔﻲ ﻫﺎي ‪ SQL2‬و ‪186 ... ................................ SQL3‬‬ ‫‪ 1 - 10‬اﻣﻜﺎﻧﺎت ‪186 ....................... ................................ SQL2‬‬ ‫‪ 2 -10‬اﻣﻜﺎﻧﺎت ‪187 ........................ ................................ SQL3‬‬ ‫ﺗﻤﺮﻳﻨﺎت ‪188 ........... ................................ ................................‬‬ ‫ﻓﺼﻞ ‪ - 9‬ﻧﺮﻣﺎل ﺳﺎزي ‪193 . ................................ ................................‬‬

‫ﻫﺪف ﻛﻠﻲ ‪193 ......... ................................ ................................‬‬ ‫ﻫﺪف رﻓﺘﺎري ‪193 ...... ................................ ................................‬‬ ‫‪ -1‬ﺗﻌﺮﻳﻒ راﺑﻄﻪ ﻧﺮﻣﺎل ‪194 ............................ ................................‬‬ ‫‪ 1 -1‬دﻻﻳﻞ ﻟﺰوم ﻧﺮﻣﺎل ﺑﻮدن راﺑﻄﻪ ‪194 ........... ................................‬‬ ‫‪ 2 -1‬ﻣﻌﺎﻳﺐ راﺑﻄﻪ ﻧﺮﻣﺎل ‪194 ...................... ................................‬‬ ‫‪ 3 -1‬ﻣﺰاﻳﺎ و ﻣﻌﺎﻳ ﺐ راﺑﻄﻪ ﻏﻴﺮ ﻧﺮﻣﺎل ‪195 ......... ................................‬‬ ‫‪ -2‬ﻣﻔﺎﻫﻴﻢ ﺗﺌﻮري واﺑﺴﺘﮕﻲ ‪195 ....................... ................................‬‬ ‫‪ 1 -2‬اﻧﻮاع واﺑﺴﺘﮕﻲ ﻫﺎ ‪196 ......................... ................................‬‬ ‫‪ 1 -1 -2‬واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ‪196 ........................ ................................‬‬ ‫‪ 2 -1 -2‬واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﻛﺎﻣﻞ ‪196 ................. ................................‬‬ ‫‪ 2 -2‬ﺣﺎﻟﺘﻬﺎي واﺑﺴﺘﮕﻲ ‪197 ........................ ................................‬‬ ‫‪ 3 -2‬ﺗﻌﺮﻳﻒ ‪197 ............................ ................................ F ﹢‬‬ ‫روش ﻳﺎﻓﺘﻦ ‪197 ............................. ................................ F ﹢‬‬ ‫‪ 4 -2‬ﻧﻤﻮدار واﺑﺴﺘﮕﻲ ﻫﺎي ﺗﺎﺑﻌﻲ ‪198 ............. ................................‬‬ ‫‪ -3‬ﺻﻮرت ﻫﺎي ﻧﺮﻣﺎل ‪199 .............................. ................................‬‬ ‫‪ -4‬ﻓﺮاﻳﻨﺪ ﻧﺮﻣﺎل ﺳﺎزي ‪200 ........................... ................................‬‬ ‫‪ 1 -4‬راﺑﻄﻪ ‪201 ............................... ................................ 1NF‬‬ ‫‪ 2 -4‬راﺑﻄﻪ ‪202 ............................... ................................ 2NF‬‬ ‫‪ 3 -4‬راﺑﻄﻪ ‪203 ............................... ................................ 3NF‬‬ ‫‪ 4 -4‬راﺑﻄﻪ ‪204 ............................ ................................ BCNF‬‬ ‫‪ 5 -4‬راﺑﻄﻪ ‪204 ............................... ................................ 4NF‬‬ ‫‪ 6 -4‬راﺑﻄﻪ ‪205 ............................... ................................ 5NF‬‬ ‫ﺗﻤﺮﻳﻨﺎت ‪207 ........... ................................ ................................‬‬ ‫ﻓﺼﻞ ‪ - 10‬ﻣﻌﻤﺎري ﻫﺎي ﻣﺨﺘﻠﻒ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده ‪209 . ................................‬‬ ‫ﻫﺪف ﻛﻠﻲ ‪209 ......... ................................ ................................‬‬ ‫ﻫﺪف رﻓﺘﺎري ‪209 ...... ................................ ................................‬‬ ‫‪ -1‬ﻣﻘﺪﻣﻪ ‪210 ........... ................................ ................................‬‬ ‫‪ -2‬اﻧﻮاع ﻣﻌﻤﺎري ‪210 .. ................................ ................................‬‬ ‫‪ 1 -2‬ﻣﻌﻤﺎري ﻣﺘﻤﺮﻛﺰ ‪211 .......................... ................................‬‬

‫‪ 2 -2‬ﻣﻌﻤﺎري ﻧﺎﻣﺘﻤﺮﻛﺰ ‪211 ........................ ................................‬‬ ‫‪ 1 -2 -2‬ﻣ ﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﻣﺸﺘﺮي‪ -‬ﺧﺪﻣﺘﮕﺰار ‪212 ........................‬‬ ‫‪ 1 -1 -2 -2‬ﺗﻌﺮﻳﻒ ‪212 .............................. ................................‬‬ ‫‪ 2 -1 -2 -2‬ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎﻫﻲ ﻣﺸﺘﺮي‪ -‬ﺧﺪﻣﺘﮕﺰار ‪213 .............................‬‬ ‫‪ 3 -1 -2 -2‬ﻃﺮﺣﻬﺎي ﻣﻌﻤﺎري ‪215 .................. ................................‬‬ ‫‪ 1 - 3 -1 -2 -2‬از ﻧﻈﺮ ﺗﻌﺪاد ﻣﺸﺘﺮي و ﺧﺪﻣﺘﮕﺰار ‪215 ............................‬‬ ‫‪ 2 - 3 -1 -2 -2‬از ﻧﻈﺮ ﭘﻴﻜﺮ ﺑﻨﺪي ﺳﺨﺖ اﻓﺰاري ‪215 ..............................‬‬ ‫ﻣﻌﻤﺎري ﺣﻮل ﻛﺎﻣﭙﻴﻮﺗﺮ ﺑﺰرگ ‪215 ................. ................................‬‬ ‫ﻣﻌﻤﺎري ﺣﻮل ﺷﺒﻜﻪ ‪216 ............................ ................................‬‬ ‫‪ 4 -1 -2 -2‬ﻣﺰاﻳﺎي ﻣﻌﻤﺎري ﻣﺸﺘﺮي‪ -‬ﺧﺪﻣﺘﮕﺰار ‪216 ..............................‬‬ ‫‪ 2 -2 -2‬ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﺗﻮزﻳﻊ ﺷﺪه ‪217 ...............................‬‬ ‫‪ 1 -2 -2 -2‬ﺗﻌﺮﻳﻒ ‪217 .............................. ................................‬‬ ‫‪ : 2 -2 -2 -2‬ﭘﻴﻜﺮﺑﻨﺪي ﺳﺨﺖ اﻓﺰاري ‪219 ........... ................................‬‬ ‫‪ 3 -2 -2 - 2‬ﻗﻮاﻋﺪ ‪220 ............................. ................................‬‬ ‫‪ 4 -2 -2 -2‬ﻣﺰاﻳﺎ ‪220 ................................ ................................‬‬ ‫‪ 5 -2 -2 -2‬ﻣﻌﺎﻳﺐ ‪221 .............................. ................................‬‬ ‫‪ 3 -2 -2‬ﻣﻌﻤﺎري ﺑﺎ ﭘﺮدازش ﻣﻮازي ‪221 ........... ................................‬‬ ‫‪ 1 -3 -2 -2‬ﻃﺮح ﻛﻠﻲ ﻣﻌﻤﺎري ‪222 ................. ................................‬‬ ‫‪ 2 -3 -2 -2‬ﻃﺮح ﻫﺎ ‪222 .............................. ................................‬‬ ‫‪ 1 - 2 -3 -2 -2‬ﻣﻌﻤﺎري ﺑﺎ ﺣﺎﻓﻈﻪ ﻣﺸﺘﺮك ‪223 ..... ................................‬‬ ‫‪ 2 -2 -3 -2 -2‬ﻣﻌﻤﺎري ﺑﺎ دﻳﺴﻚ ﻫﺎي ﻣﺸﺘﺮك ‪224 . ................................‬‬ ‫‪ 3 -2 -3 -2 -2‬ﻣﻌﻤﺎري ﺑﻲ اﺟﺰا ﻣﺸﺘﺮك ‪225 ....... ................................‬‬ ‫‪ 4 -2 -3 -2 -2‬ﻣﻌﻤﺎري ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ‪226 ......... ................................‬‬ ‫‪ 4 -2 -2‬ﻣﻌﻤﺎري ﭼﻨﺪ ﭘﺎﻳﮕﺎﻫﻲ ‪226 ................ ................................‬‬ ‫‪ 5 -2 -2‬ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﻫﻤﺮاه ‪227 ................ ................................‬‬ ‫‪ 1 -5 -2 -2‬ﺗﻌﺮﻳﻒ ‪227 .............................. ................................‬‬ ‫‪ : 2 -5 -2 -2‬ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﻫﻤﺮاه ‪228 .. ................................‬‬ ‫ﺗﻤﺮﻳﻨﺎت ‪229 ........... ................................ ................................‬‬ ‫ﺿﻤﻴﻤﻪ ‪ - 1‬ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت ‪231 ...................... ................................‬‬

‫ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪231 ................................ ................................ 1‬‬ ‫ﭘﺎﺳﺦ ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪234 ......................... ................................ 1‬‬ ‫ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪235 ................................ ................................ 2‬‬ ‫ﭘﺎﺳﺦ ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪238 ......................... ................................ 2‬‬ ‫ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪240 ................................ ................................ 3‬‬ ‫ﭘﺎﺳﺦ ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪256 ......................... ................................ 3‬‬ ‫ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪261 ................................ ................................ 4‬‬ ‫ﭘﺎﺳﺦ ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪267 ......................... ................................ 4‬‬ ‫ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪268 ................................ ................................ 5‬‬ ‫ﭘﺎﺳﺦ ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪276 ......................... ................................ 5‬‬ ‫ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪279 ................................ ................................ 6‬‬ ‫ﭘﺎﺳﺦ ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪292 ......................... ................................ 6‬‬ ‫ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪297 ................................ ................................ 7‬‬ ‫ﭘﺎﺳﺦ ﺗﺴﺘﻬﺎي ﺳﺮي ‪301 ............................ ................................ 7‬‬ ‫ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪302 ................................ ................................ 8‬‬ ‫ﭘﺎﺳﺦ ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪312 ......................... ................................ 8‬‬ ‫ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪315 ................................ ................................ 9‬‬ ‫ﭘﺎﺳﺦ ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪319 ......................... ................................ 9‬‬ ‫ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪322 ............................... ................................ 10‬‬ ‫ﭘﺎﺳﺦ ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪331 ........................ ................................ 10‬‬ ‫ﺿﻤﻴﻤﻪ ‪335 ......................... ................................ _ BNF 99 SQL - 2‬‬ ‫واژه ﻧﺎﻣﻪ اﻧﮕﻠﻴﺴﻲ ﺑﻪ ﻓﺎرﺳﻲ ‪391 ........................ ................................‬‬ ‫واژه ﻧﺎﻣﻪ ﻓﺎرﺳﻲ ﺑﻪ اﻧﮕﻠﻴﺴﻲ ‪407 ........................... ................................‬‬ ‫ﻣﻨﺎﺑﻊ و ﻣﺎﺧﺬ ‪425 ......... ................................ ................................‬‬

‫ﭘﻴﺸﮕﻔﺘﺎﺭ‬ ‫اﻳﻦ ﻛﺘﺎب ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺳﺮ ﻓﺼﻞ ﺗﻌﻴﻴﻦ ﺷﺪه ﺑﺮاي داﻧﺸﺠﻮﻳﺎن داﻧﺸﮕﺎه ﭘﻴﺎمﻧﻮر در‬ ‫رﺷﺘﻪ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺗﻬﻴﻪ و ﺗﻨﻈﻴﻢ ﺷﺪه اﺳﺖ‪ .‬در ﺗﻬﻴﻪ اﻳﻦ ﻛﺘﺎب ﺳﻌﻲ ﺑﺮ آن ﺷﺪه اﺳﺖ ﺗﺎ‬ ‫ﻣﺒﺎﺣﺜﻲ ﻛﻪ ﺑﺮاي ﺗﺪرﻳﺲ درس ﭘﺎﻳﮕﺎه داده ﻫﺎ ﻻزم ﺑﻪ ﺗﺪرﻳﺲ اﺳﺖ‪ ،‬ﻣﻄﺮح ﮔﺮدﻧﺪ‪.‬‬ ‫اﻳﻦ ﻛﺘﺎب ﻣﺸﺘﻤﻞ ﺑﺮ ده ﻓﺼﻞ ﻣﻲ ﺑﺎﺷﺪ‪.‬‬ ‫در اﺑﺘﺪاي ﻛﺘﺎب ﻟﻴﺴﺖ ﺳﺮ ﻓﺼﻞ ﻣﻄﺎﻟﺐ ﻗﻴﺪ ﺷﺪه اﺳﺖ‪ .‬در اﻧﺘﻬﺎي ﻛﺘﺎب‬ ‫ﻣﺠﻤﻮﻋﻪاي از ﺳﺆاﻻت ﺗﺴﺘﻲ ﺑﻪ ﻫﻤﺮاه ﭘﺎﺳﺦ ﻧﺎﻣﻪ اراﺋﻪ ﺷﺪه اﺳﺖ‪ .‬ﻫﻤﭽﻨﻴﻦ ﺑﻪ ﻣﻨﻈﻮر‬ ‫آﺷﻨﺎﻳﻲ ﺑﻴﺸﺘﺮ ﻋﻼﻗﻤﻨﺪان ﺑﻪ ﺳﺎﺧﺘﺎر ﭘﺎﻳﻪاي زﺑﺎن‬

‫‪SQL‬‬

‫‪ ،‬در ﺿﻤﻴﻤﻪ ‪ 2‬ﻛﺘﺎب ﻣﺘﻦ ﻛﺎﻣﻞ‬

‫‪ SQL BNF‬اراﺋﻪ ﺷﺪه اﺳﺖ‪.‬‬ ‫ﻧﻈﺮ ﺑﻪ ﻟﺰوم ﺟﺎﮔﺬاري ﻣﻌﺎدل ﻓﺎرﺳﻲ ﻛﻠﻤﺎت ﺗﺨﺼﺼﻲ ﺑﺮاي راﺣﺘﻲ ﻓﻬﻢ‬ ‫داﻧﺸﺠﻮﻳﺎن دو واژهﻧﺎﻣﻪ ﺑﻪﺻﻮرت اﻧﮕﻠﻴﺴﻲ ﺑﻪ ﻓﺎرﺳﻲ و ﻓﺎرﺳﻲ ﺑﻪ اﻧﮕﻠﻴﺴﻲ در اﻧﺘﻬﺎي‬ ‫ﻛﺘﺎب آﻣﺪه اﺳﺖ‪ .‬در ﺻﻔﺤﻪ ﭘﺎﻳﺎﻧﻲ ﻛﺘﺎب ﻟﻴﺴﺖ ﻣﻨﺎﺑﻊ و ﻣﺎﺧﺬ ﻧﻴﺰ ﺑﺮاي آﮔﺎﻫﻲ‬ ‫داﻧﺸﺠﻮﻳﺎن اراﺋﻪ ﺷﺪه اﺳﺖ‪.‬‬ ‫اﻳﻦ اﺛﺮ ﺑﺎ دﻗﺖ ﻧﻈﺮ ﻓﺮاوان ﻛﺎرﺷﻨﺎﺳﺎن ﻣﺪﻳﺮﻳﺖ ﺗﻮﻟﻴﺪ ﻣﻮاد و ﺗﺠﻬﻴﺰات آﻣﻮزﺷﻲ‬ ‫ﻣﻮرد ارزﻳﺎﺑﻲ ﻗﺮار ﮔﺮﻓﺖ ﻛﻪ ﺑﺪﻳﻨﻮﺳﻴﻠﻪ از ﺟﻨﺎب آﻗﺎي اﻛﺒﺮي ﺑﻪ ﻧﻤﺎﻳﻨﺪﮔﻲ از آن ﻋﺰﻳﺰان‬ ‫ﻗﺪرداﻧﻲ ﻣﻲﻧﻤﺎﻳﻴﻢ‪.‬‬ ‫ﻛﺘﺎب ﺣﺎﺿﺮ ﺑﻌﻨﻮان ﻣﻨﺒﻊ درﺳﻲ در داﻧﺸﮕﺎه ﭘﻴﺎمﻧﻮر اﻋﻼم ﺷﺪه ﻛﻪ ﺑﻌﻠﺖ ﻛﻮﺗﺎه‬ ‫ﺑﻮدن زﻣﺎن اﻣﻜﺎن رﻓﻊ ﻛﻠﻴﻪ اﻳﺮادات ﺗﺎﻳﭙﻲ و ﻧﮕﺎرﺷﻲ ﻣﻴﺴﺮ ﻧﺸﺪ‪ .‬ﻟﺬا از ﻛﻠﻴﻪ‬ ‫ﺻﺎﺣﺐﻧﻈﺮان‪ ،‬اﺳﺎﺗﻴﺪ و داﻧﺸﺠﻮﻳﺎن ﻣﺤﺘﺮم ﺗﻘﺎﺿﺎ دارد ﻧﻈﺮات ﭘﻴﺸﻨﻬﺎدي ﺧﻮد را در‬ ‫ﺟﻬﺖ اﺻﻼح اﻳﺮادات اﻳﻦ اﺛﺮ‪ ،‬ﺑﻪ آدرس ﭘﺴﺖ اﻟﻜﺘﺮوﻧﻴﻜﻲ ﻣﻮﻟﻔﻴﻦ ارﺳﺎل ﻓﺮﻣﺎﻳﻨﺪ‪.‬‬ ‫در ﭘﺎﻳﺎن از آﻗﺎي ﻣﻬﻨﺪس ﻛﺎﻣﻴﺎر آﻫﻨﻜﻮب ﻛﻪ در ﺗﻨﻈﻴﻢ و ﺗﺪوﻳﻦ ﻛﺘﺎب ﻫﻤﻜﺎري‬ ‫ﺷﺎﻳﺎﻧﻲ داﺷﺘﻪاﻧﺪ ﺳﭙﺎﺳﮕﺰاري ﻣﻲﻛﻨﻴﻢ‪.‬‬ ‫ﻧﺎﺻﺮ آﻳﺖ‬

‫اﺣﻤﺪ ﻓﺮاﻫﻲ‬

‫‪[email protected]‬‬

‫‪[email protected]‬‬

‫ﺗﺎﺑﺴﺘﺎن ‪1386‬‬

‫ﻓﺼﻞ ‪۱‬‬ ‫ﻣﻔﺎﻫﻴﻢ ﺍﻭﻟﻴﻪ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻩﺩﺍﺩﻩ‬ ‫ﻫﺪف ﻛﻠﻲ‬ ‫در اﻳﻦ ﻓﺼﻞ اﺑﺘﺪا ﺗﺎرﻳﺨﭽﻪ اي در راﺑﻄﻪ ﺑﺎ ﺑﺤﺚ ﭘﺎﻳﮕﺎه دادهﻫﺎ و ذﺧﻴﺮه ﺳﺎزي داده ﻫﺎ‬ ‫ﻣﻄﺮح و ﺳﭙﺲ اﻧﻮاع ﺳﻴﺴﺘﻢﻫﺎي ﭘﺎﻳﮕﺎه داده ﻧﺎم ﺑﺮده ﻣﻲﺷﻮﻧﺪ‪ .‬در اداﻣﻪ ﺑﻌﻀﻲ از‬ ‫ﻣﻔﺎﻫﻴﻢ ﻛﻠﻴﺪي در ﭘﺎﻳﮕﺎه دادهﻫﺎ ﺷﺮح داده ﺧﻮاﻫﻨﺪ ﺷﺪ ‪ .‬ﺳﭙﺲ ﻣﻔﻬﻮم ﭘﺎﻳﮕﺎه داده‬ ‫ﺑﺼﻮرﺗﻲ دﻗﻴﻖ ﺗﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﺪ ﮔﺮﻓﺖ ‪ .‬ﺑﺎ ﺗﻌﺮﻳﻒ ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع‪ ،‬ﻣﺮاﺣﻞ ﻛﺎر در ﻣﺸﻲ ﻓﺎﻳﻠﻴﻨﮓ و ﭘﺎﻳﮕﺎه داده ﻣﻮرد ﺑﺤﺚ و‬ ‫ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻨﺪ ﮔﺮﻓﺖ و در ﭘﺎﻳﺎن اﺟﺰاء ﭘﺎﻳﮕﺎه داده ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار‬ ‫ﮔﺮﻓﺘﻪ و ﺟﺎﻳﮕﺎه ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎه داده ﺑﺮرﺳﻲ ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬

‫ﻫﺪف رﻓﺘﺎري‬ ‫در اﻳﻦ ﻓﺼﻞ ﻋﻨﺎوﻳﻦ زﻳﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ‪:‬‬ ‫•‬

‫اﻧﻮاع ﺳﻴﺴﺘﻢﻫﺎي ﭘﺎﻳﮕﺎهداده‬ ‫‪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‬‬

‫‪2‬‬

‫ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﻫﺎ‬

‫•‬

‫اﺟﺰاء ﭘﺎﻳﮕﺎهداده‬

‫•‬

‫ﻣﻔﻬﻮم داده‪ ،‬ﺳﺨﺖاﻓﺰار و ﻧﺮماﻓﺰار در ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫اﻧﻮاع ﻛﺎرﺑﺮان در ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫ﺗﻌﺮﻳﻒ ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎهداده و وﻇﺎﻳﻒ آن‬

‫‪ -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‬‬

‫ﻣﻔﺎﻫﻴﻢ ﺍﻭﻟﻴﻪ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﻫﺎ‬

‫‪3‬‬

‫ﭘﺎﻳﮕﺎه ﻫﺎي داده ﻣﺘﻨﺎﺳﺐ ﺑﺎ آﻧﻬﺎ ﻧﻴﺰ اراﺋﻪ ﮔﺮدﻳﺪ ﻛﻪ ﻧﻤﻮﻧﻪﻫﺎي آن در ذﻳﻞ آﻣﺪه اﺳﺖ‪:‬‬ ‫•‬ ‫•‬

‫ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داﻧﺶ‬

‫‪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‬‬

‫‪4‬‬

‫ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﻫﺎ‬

‫ﺷﺎﻳﺪ ﺑﺘﻮان ﮔﻔﺖ ﻋﻠﺖ اﺻﻠﻲ ﺗﻔﺎوت ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ ﺑﺎ ﺑﻘﻴﻪ ﺳﻴﺴﺘﻤﻬﺎ‬ ‫در وﺟﻮد ﺳﻴﺴﺘﻢ ﺣﺼﺎري ﻧﻔﻮذ ﻧﺎﭘﺬﻳﺮي ﺑﻪ ﻧﺎم ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهداده اﺳﺖ ﻛﻪ ﻫﺮ‬ ‫ﮔﻮﻧﻪ دﺳﺘﻴﺎﺑﻲ ﺑﻪ دادهﻫﺎ ﺑﺎﻳﺪ از ﻃﺮﻳﻖ اﻳﻦ ﺳﻴﺴﺘﻢ اﻧﺠﺎم ﺷﻮد‪ .‬ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهداده‬ ‫در واﻗﻊ اﻧﻘﻼﺑﻲ در ﺑﺎﻧﻜﻬﺎي اﻃﻼﻋﺎﺗﻲ ﺑﻪ ﺷﻤﺎر ﻣﻲآﻳﺪ‪ .‬در ﻫﻤﻴﻦ اواﺧﺮ دو ﺗﺤﻮل دﻳﮕﺮ‬ ‫ﻫﻢ در ﺗﻜﻨﻮﻟﻮژي ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﭘﺪﻳﺪ‬

‫آﻣﺪ‪:‬‬ ‫‪1‬‬

‫•‬

‫ﻃﺮاﺣﻲ واﻳﺠﺎد ﭘﺎﻳﮕﺎهﻫﺎي داده ﺗﻮزﻳﻊ ﺷﺪه ﺗﺤﺖ ﺷﺒﻜﻪﻫﺎي ﻣﺨﺘﻠﻒ‬

‫•‬

‫ﻃﺮاﺣﻲ واﻳﺠﺎد ﺳﻴﺴﺘﻢﻫﺎي ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهداده ﺑﺮاي ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎي ﺷﺨﺼﻲ‬

‫ﺑﺮاي آﺷﻨﺎ ﺷﺪن ذﻫﻦ ﺧﻮاﻧﻨﺪه ﺗﻌﺮﻳﻒ ﭼﻨﺪ اﺻﻄﻼح ﭘﺎﻳﻪ اي در ﺳﻴﺴﺘﻢ ﻫﺎي ﭘﺎﻳﮕﺎه داده‬ ‫در ذﻳﻞ اراﺋﻪ ﻣﻲ ﮔﺮدد ‪ .‬ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ ﺗﻌﺎرﻳﻒ ﻣﺮﺑﻮط ﺑﻪ اﺻﻄﻼﺣﺎت ذﻛﺮ ﺷﺪه‪،‬‬ ‫ﺑﻌﻀﺎ در ﻛﺘﺎبﻫﺎي ﻣﺨﺘﻠﻒ ﺑﺎ ﻛﻤﻲ ﺗﻐﻴﻴﺮ ﻧﻮﺷﺘﻪ ﺷﺪه اﻧﺪ ‪ .‬وﻟﻲ ﻣﻔﻬﻮم اﺻﻠﻲ آﻧﻬﺎ ﺑﺴﻴﺎر‬ ‫ﻧﺰدﻳﻚ ﺑﻬﻢ ﻫﺴﺘﻨﺪ ‪.‬‬

‫‪ 1-1‬ذﺧﻴﺮه و ﺑﺎزﻳﺎﺑﻲ اﻃﻼﻋﺎت‬ ‫اﺻﻄﻼح ذﺧﻴﺮه و ﺑﺎزﻳﺎﺑﻲ اﻃﻼﻋﺎت در واﻗﻊ ﺑﻪ ﻣﺠﻤﻮﻋﻪاي از اﻟﮕﻮرﻳﺘﻢ ﻫﺎ و ﺗﻜﻨﻴﻜﻬﺎ‬ ‫اﻃﻼق ﻣﻲ ﮔﺮدد ﻛﻪ در ﻃﺮاﺣﻲ و ﺗﻮﻟﻴﺪ ﻳﻚ ﺳﻴﺴﺘﻢ ﺑﻜﺎر ﮔﺮﻓﺘﻪ ﻣﻲ ﺷﻮد و ﺑﻪ ﻛﺎرﺑﺮ‬ ‫اﻣﻜﺎن ﻣﻲ دﻫﺪ ﺗﺎ اﻃﻼﻋﺎت )اﺳﻨﺎد‪ ،‬ﻣﺪارك‪ ،‬ﻣﺘﻮن‪ ،‬اﺻﻮات و ﺗﺼﺎوﻳﺮ و ‪ (. . .‬ﺧﻮد را‬ ‫ذﺧﻴﺮه ﺳﺎزي‪ ،‬ﺑﺎزﻳﺎﺑﻲ و ﭘﺮدازش ﻛﻨﺪ ‪ .‬اﻳﻦ ﮔﻮﻧﻪ داده ﻫﺎ ﻣﻤﻜﻦ اﺳﺖ ﺳﺎﺧﺘﻤﻨﺪ‪ ،‬ﻧﻴﻢ‬ ‫ﺳﺎﺧﺘﻤﻨﺪ و ﻳﺎ ﺣﺘﻲ ﻧﺎﺳﺎﺧﺘﻪ ﺑﺎﺷﻨﺪ ‪.‬‬

‫‪ 2-1‬داده‬ ‫اﺻﻄﻼح داده در ﻣﻔﻬﻮم ﻛﻠﻲ ﻋﺒﺎرت اﺳﺖ از ﻧﻤﺎﻳﺶ ذﺧﻴﺮه ﺷﺪه ﻛﻠﻴﻪ ﻣﻮﺟﻮدﻳﺘﻬﺎ‪،‬‬ ‫واﻗﻌﻴﺎت و رﺧﺪادﻫﺎ ﻛﻪ در ﺗﺼﻤﻴﻢ ﮔﻴﺮي ﺑﻜﺎر ﻣﻲ آﻳﻨﺪ‪.‬‬

‫‪ 3-1‬ﺗﻌﺮﻳﻒ داده از دﻳﺪﮔﺎه‬

‫‪ANSI‬‬

‫اﺳﺘﺎﻧﺪارد ‪ ANSI‬ﺑﺮاي اﺻﻄﻼح داده ﺗﻌﺎرﻳﻒ زﻳﺮ را اراﺋﻪ ﻛﺮده اﺳﺖ‪:‬‬ ‫‪1. D i st r i b u t e d D a t a B a s e‬‬

‫ﻣﻔﺎﻫﻴﻢ ﺍﻭﻟﻴﻪ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﻫﺎ‬

‫•‬

‫‪5‬‬

‫ﻫﺮ ﻧﻤﺎﻳﺸﻲ ﻛﻪ ﺗﻮﺳﻂ اﻧﺴﺎن ﻳﺎ ﻳﻚ ﺳﻴﺴﺘﻢ ﻣﻜﺎﻧﻴﻜﻲ ﺧﻮدﻛﺎر ﻣﻌﻨﺎﻳﻲ ﺑﻪ آن ﻗﺎﺑﻞ‬ ‫اﻧﺘﺴﺎب ﺑﺎﺷﺪ‪.‬‬

‫•‬

‫ﻧﻤﺎﻳﺶ واﻗﻌﻴﺎت‪ ،‬ﭘﺪﻳﺪهﻫﺎ‪ ،‬ﻣﻔﺎﻫﻴﻢ ﻳﺎ ﺷﻨﺎﺧﺘﻪﻫﺎ ﺑﻪ ﻃﺮزي ﺻﻮري و ﻣﻨﺎﺳﺐ ﺑﺮاي‬ ‫ﺑﺮﻗﺮاري ارﺗﺒﺎط‪ ،‬ﺗﻔﺴﻴﺮ ﻳﺎ ﭘﺮدازش ﺗﻮﺳﻂ اﻧﺴﺎن ﻳﺎ ﻫﺮ دﺳﺘﮕﺎه ﺧﻮدﻛﺎر‪.‬‬

‫•‬

‫ﺑﻪ ﻃﻮر ﻛﻠﻲ ﻣﻲﺗﻮان ﮔﻔﺖ ﻛﻪ داده ارزﺷﻬﺎي واﻗﻌﻲ ﻫﺴﺘﻨﺪ ﻛﻪ از ﻃﺮﻳﻖ ﻣﺸﺎﻫﺪه‬ ‫و ﺗﺤﻘﻴﻖ ﺑﺪﺳﺖ ﻣﻲ آﻳﻨﺪ‪.‬‬

‫‪ 4-1‬اﻃﻼع‬ ‫ﻫﺮ ﻧﻮع داده ﭘﺮدازش ﺷﺪه )ﺳﺎﺧﺖ ﻳﺎﻓﺘﻪ( را اﻃﻼع ﻣﻲ ﻧﺎﻣﻨﺪ ‪ .‬اﻳﻦ ﺗﻌﺮﻳﻒ ﻳﻚ ﺗﻌﺮﻳﻒ‬ ‫ﺑﺴﻴﺎر ﺳﺎده اﺳﺖ ﻛﻪ ﺑﻴﺎﻧﮕﺮ ﺗﻔﺎوت ﺑﻴﻦ دو اﺻﻄﻼح داده و اﻃﻼع اﺳﺖ‪ .‬وﻟﻲ ﺑﻄﻮر‬ ‫ﻛﻠﻲ ﻣﻲ ﺗﻮان ﮔﻔﺖ اﻃﻼع ﻣﺠﻤﻮﻋﻪ داده ﻫﺎﻳﻲ اﺳﺖ ﻛﻪ در ﺗﺼﻤﻴﻢ ﮔﻴﺮي ﺑﻜﺎر ﻣﻲروﻧﺪ‬ ‫و اﺳﺎﺳﺎً ﻛﻤﻴﺘﻲ اﺳﺖ ﻧﺴﺒﻲ و واﺑﺴﺘﻪ ﺑﻪ وﺿﻌﻴﺖ ﻣﺸﺨﺺ‪ ،‬زﻣﺎن ﻣﺸﺨﺺ و ﻧﻴﺰ ﺧﻮد‬ ‫ﺷﺨﺺ )ﻳﺎ ﺳﻴﺴﺘﻢ( ﺗﺼﻤﻴﻢ ﮔﻴﺮﻧﺪه ‪ .‬در واﻗﻊ‪ ،‬ﺷﺨﺺ ﺗﺼﻤﻴﻢ ﮔﻴﺮﻧﺪه ﺑﺎ ﺗﻔﺴﻴﺮ داده ﻫﺎ‬ ‫در ﻳﻚ وﺿﻌﻴﺖ ﻣﺸﺨﺺ اﻃﻼﻋﺎت ﻻزم ﺑﺮاي ﺗﺼﻤﻴﻢ ﮔﻴﺮي را ﺑﻪ دﺳﺖ ﻣﻲ آورد‪.‬‬

‫‪ 5-1‬ﺗﻌﺮﻳﻒ اﻃﻼع از دﻳﺪﮔﺎه‬

‫‪ANSI‬‬

‫اﺳﺘﺎﻧﺪارد ‪ ANSI‬ﺑﺮاي اﺻﻄﻼح اﻃﻼع ﺗﻌﺮﻳﻒ زﻳﺮ را اراﺋﻪ ﻛﺮده اﺳﺖ‪:‬‬ ‫ﻣﻌﻨﺎﻳﻲ ﻛﻪ اﻧﺴﺎن از ﻃﺮﻳﻖ ﺗﻮاﻓﻘﺎت و ﻗﺮاردادﻫﺎي ﺷﻨﺎﺧﺘﻪ ﺷﺪه اي ﺑﻪ داده‬ ‫ﻣﻨﺘﺴﺐ ﻣﻲ ﻛﻨﺪ‪.‬‬

‫‪ 6-1‬داﻧﺶ‬ ‫اﺻﻄﻼح داﻧﺶ ﻋﺒﺎرت اﺳﺖ از ﻧﻤﺎﻳﺶ ﻧﻤﺎدﻳﻦ ﺑﺨﺶ ﻫﺎﻳﻲ از دﻧﻴﺎي واﻗﻌﻲ‪ .‬ﺑﻪ ﺑﻴﺎﻧﻲ‬ ‫دﻳﮕﺮ‪ ،‬داﻧﺶ ﻧﻮﻋﻲ ﺷﻨﺎﺧﺖ اﺳﺖ ﻛﻪ از ﻳﻚ ﻣﺠﻤﻮﻋﻪ از اﻃﻼﻋﺎت‪ ،‬ﺑﺮاﺳﺎس ﻳﻚ‬ ‫ﻣﺠﻤﻮﻋﻪ از ﻗﻮاﻋﺪ ﻣﺸﺨﺺ ﺑﺪﺳﺖ ﻣﻲ آﻳﺪ‪.‬‬ ‫ﻧﻜﺘﻪ‪ :1‬ﺑﻌﻀﻲ از ﺗﺌﻮرﻳﺴﻴﻦ ﻫﺎ داده را ﻫﻤﺎن ﻣﻘﺪار واﻗﻌﺎ ذﺧﻴﺮه ﺷﺪه و اﻃﻼع را ﻣﻌﻨﺎي‬ ‫آن ﻣﻲ داﻧﻨﺪ‪ ،‬ﺑﻨﺎﺑﺮاﻳﻦ اﻃﻼع و داده ﺑﺎ ﻫﻢ ﻓﺮق دارﻧﺪ‪ ،‬اﻃﻼع داراي ﺧﺎﺻﻴﺖ ارﺗﺒﺎط‬ ‫دﻫﻨﺪﮔﻲ و اﻧﺘﻘﺎل دﻫﻨﺪﮔﻲ اﺳﺖ درﺣﺎﻟﻴﻜﻪ داده ﻣﺠﺮد اﻳﻦ ﺧﺎﺻﻴﺖ را ﻧﺪارد‪.‬‬

‫‪6‬‬

‫ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﻫﺎ‬

‫ﻧﻜﺘﻪ‪ :2‬دادهﻫﺎ ﺣﺎﻟﺖ ﻣﻨﻔﺮد و ﻣﺠﺰا دارﻧﺪ و ﻟﺰوﻣﺎ اﻃﻼﻋﻲ از آﻧﻬﺎ ﺑﺪﺳﺖ ﻧﻤﻲ آﻳﺪ ﻣﮕﺮ‬ ‫اﻳﻨﻜﻪ ﺑﻪ ﻧﺤﻮي ﺑﻬﻢ ﻣﺮﺗﺒﻂ ﺷﻮﻧﺪ و ﻣﻌﻨﺎﻳﻲ ﺑﻪ آﻧﻬﺎ ﻣﻨﺘﺴﺐ ﺷﻮد و ﺑﺎﻳﺪ داﻧﺶ را ﻧﻮﻋﻲ‬ ‫اﻃﻼع ﺳﻄﺢ ﺑﺎﻻﺗﺮ داﻧﺴﺖ در واﻗﻊ ﻫﻢ اﻃﻼع و ﻫﻢ داﻧﺶ ﺣﺎﺻﻞ ﻋﻤﻠﻴﺎﺗﻲ روي داده‬ ‫ﻫﺴﺘﻨﺪ‪ ،‬وﻟﻲ ﻧﻮع ﻋﻤﻠﻴﺎت ﻻزم ﺑﺮاي ﺣﺼﻮل آﻧﻬﺎ ﻣﺘﻔﺎوت اﺳﺖ ‪ .‬ﺑﺎ اﻳﻦ اوﺻﺎف راﺑﻄﻪ‬ ‫ﺑﻴﻦ ﺳﻪ ﻣﻔﻬﻮم داده‪ ،‬اﻃﻼع و داﻧﺶ ﺑﺼﻮرت زﻳﺮ ﻗﺎﺑﻞ ﻧﻤﺎﻳﺶ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫داﻧﺶ‬

‫ﭘﺮدازش‬

‫اﻃﻼع‬

‫ﭘﺮدازش‬

‫داده‬

‫ﺷﻜﻞ ‪ 1-1‬راﺑﻄﻪ ﻧﻤﺎدﻳﻦ ﺑﻴﻦ داده‪ ،‬اﻃﻼع و داﻧﺶ‬

‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﻮﺿﻴﺤﺎﺗﻲ ﻛﻪ در ﺑﺎﻻ اراﺋﻪ ﺷﺪ‪ ،‬اﻛﻨﻮن ﺗﻮﺿﻴﺤﻲ دﻗﻴﻘﺘﺮ از ﻣﻔﻬﻮم‬ ‫ﭘﺎﻳﮕﺎه داده را اراﺋﻪ ﻣﻲ دﻫﻴﻢ‪.‬‬

‫‪-2‬ﺗﻌﺮﻳﻒ ﭘﺎﻳﮕﺎهداده‬ ‫ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺑﺎ ﺗﻮﺻﻴﻔﻲ ﺟﺎﻣﻊ ﺗﺮ‪ ،‬ﻣﺠﻤﻮﻋﻪ اي اﺳﺖ از داده ﻫﺎ ﻛﻪ ﺑﺼﻮرت ﻣﺠﺘﻤﻊ و ﺗﺎ‬ ‫ﺣﺪ ﻣﻤﻜﻦ ﺑﺼﻮرت ﻣﺮﺗﺒﻂ ﺑﻬﻢ و ﺑﺎ ﻛﻤﺘﺮﻳﻦ اﻓﺰوﻧﮕﻲ ذﺧﻴﺮه ﺷﺪه اﻧﺪ ﻛﻪ اﻳﻦ ﻣﺠﻤﻮﻋﻪ‬ ‫ﺗﺤﺖ ﻣﺪﻳﺮﻳﺖ ﻳﻚ ﺳﻴﺴﺘﻢ ﻛﻨﺘﺮل ﻣﺘﻤﺮﻛﺰ ﺑﺮاي اﺳﺘﻔﺎده ﻳﻚ ﻳﺎ ﭼﻨﺪ ﻛﺎرﺑﺮ ﻗﺮار‬ ‫ﮔﺮﻓﺘﻪ اﻧﺪ‪.‬‬ ‫ﺷﺎﻳﺪ در ﻧﮕﺎه اول ﺗﻌﺮﻳﻒ اراﺋﻪ ﺷﺪه در ﻣﻮرد ﭘﺎﻳﮕﺎهدادهﻫﺎ ﻛﻤﻲﻣﺒﻬﻢ ﺑﻪ ﻧﻈﺮ ﺑﺮﺳﺪ‪.‬‬ ‫در ﺗﺸﺮﻳﺢ ﻛﻠﻲ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎهدادهﻫﺎ ﻣﻲﺗﻮان ﮔﻔﺖ ﻛﻪ ﻳﻚ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎهداده ﻣﺠﻤﻮﻋﻪاي‬ ‫از دادهﻫﺎي ﺑﻬﻢ واﺑﺴﺘﻪ اﺳﺖ ﻛﻪ از اﻓﺰوﻧﮕﻲ ﺑﻲﺣﺎﺻﻞ و ﻣﻀﺮ ﻣﺒﺮا اﺳﺖ و ﺑﺮاي‬ ‫ﻛﺎرﺑﺮدﻫﺎي ﮔﻮﻧﺎﮔﻮن اﺳﺘﻔﺎده ﻣﻲﺷﻮد‪ .‬دادهﻫﺎ ﺑﻪ ﮔﻮﻧﻪاي ذﺧﻴﺮه ﺷﺪهاﻧﺪ ﻛﻪ از ﺑﺮﻧﺎﻣﻪﻫﺎﻳﻲ‬ ‫ﻛﻪ آﻧﻬﺎ را ﺑﻪ ﻓﺮﻣﺖ ﻣﻲﮔﻴﺮﻧﺪ ﻣﺴﺘﻘﻞ ﻫﺴﺘﻨﺪ و راه ﻳﺎﻓﺖ ﻣﺸﺘﺮك ﻛﻨﺘﺮل ﺷﺪه ﺑﺮاي درج‪،‬‬ ‫ﺣﺬف‪ ،‬ﺗﻐﻴﻴﺮ و ﺑﺎزﻳﺎﺑﻲ دادهﻫﺎي ﻣﻮﺟﻮد اﺳﺘﻔﺎده ﻣﻲﺷﻮد و دادهﻫﺎ ﺑﻪﮔﻮﻧﻪاي ﺳﺎﺧﺖ ﻳﺎﻓﺘﻪ‬ ‫اﺳﺖ ﻛﻪ ﭘﺎﻳﻪاي ﺑﺮاي ﺗﻮﺳﻌﻪ ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي آﻳﻨﺪه ﻓﺮاﻫﻢ ﻣﻲﺳﺎزد‪ .‬اﻳﻦ دادهﻫﺎ ﺗﻮﺳﻂ‬ ‫ﻳﻚ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ ﻣﺪﻳﺮﻳﺖ ﻣﻲﺷﻮد‪ .‬ﺑﺎ اﻳﻦ وﺻﻒ ﻣﻲﺗﻮان درﻳﺎﻓﺖ ﻛﻪ ﻫﺮ‬

‫ﻣﻔﺎﻫﻴﻢ ﺍﻭﻟﻴﻪ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﻫﺎ‬

‫‪7‬‬

‫ﻣﺠﻤﻮﻋﻪاي از ﻓﺎﻳﻠﻬﺎ ﻳﺎ ﻫﺮ ﻣﺠﻤﻮﻋﻪاي از اﻃﻼﻋﺎت ذﺧﻴﺮه ﺷﺪه ﻟﺰوﻣﺎ ﻳﻚ ﭘﺎﻳﮕﺎهدادهﻫﺎ‬ ‫ﻧﻴﺴﺖ‪.‬‬ ‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻣﻄﺎﻟﺐ ﻓﻮق ﻣﻲﺗﻮان ﭼﻨﻴﻦ ﻧﺘﻴﺠﻪ ﮔﺮﻓﺖ ﻛﻪ ﺑﺮاي اﻳﺠﺎد ﭘﺎﻳﮕﺎهدادهﻫﺎ‬ ‫وﺟﻮد ﺣﺪاﻗﻞ ﻳﻚ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ ﺑﻪ ﻋﻨﻮان ﺳﻴﺴﺘﻢ واﺳﻄﻪ اﻟﺰاﻣﻲ اﺳﺖ‪.‬‬ ‫ﺑﺎرزﺗﺮﻳﻦ ﺑﺮﺗﺮي ﻳﻚ ﭘﺎﻳﮕﺎهداده ﻧﺴﺒﺖ ﺑﻪ ﺳﻴﺴﺘﻢ ﺑﺎﻧﻚﻫﺎي داده ﻗﺒﻠﻲ )ﺳﻴﺴﺘﻢﻫﺎي‬ ‫ﻓﺎﻳﻠﻴﻨﮓ(‪ ،‬ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهداده ﻣﻲﺑﺎﺷﺪ‪ .‬ﺑﺎ اﻳﻦ وﺻﻒ ﻻزم اﺳﺖ ﺑﻴﻦ اﺻﻄﻼﺣﺎﺗﻲ‬ ‫ﻣﺎﻧﻨﺪ ﺑﺎﻧﻚ داده‪ ،‬ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ‪ ،‬ﭘﺎﻳﮕﺎهداده و ﭘﺎﻳﮕﺎه اﻃﻼﻋﺎﺗﻲ ﺗﻔﺎوت ﻗﺎﺋﻞ ﺷﻮﻳﻢ‪.‬‬ ‫در ﺑﺮرﺳﻲ ﻣﺤﻴﻂ ﻳﻚ ﭘﺎﻳﮕﺎهدادهﻫﺎ ﻻزم اﺳﺖ ﺑﻪ اﻳﻦ ﻧﻜﺘﻪ ﺗﻮﺟﻪ ﺷﻮد ﻛﻪ ﻣﺤﻴﻂ‬ ‫واﺣﺪ‪ ،‬ﻣﺠﺘﻤﻊ و ﻣﺸﺘﺮك ذﺧﻴﺮه ﺳﺎزي ﻟﺰوﻣﺎ ﺑﻪ اﻳﻦ ﻣﻌﻨﺎ ﻧﻴﺴﺖ ﻛﻪ ﭼﻨﻴﻦ ﻣﺤﻴﻄﻲ از ﻧﻈﺮ‬ ‫ﻓﻴﺰﻳﻜﻲ و ﻣﺤﻞ ﺟﻐﺮاﻓﻴﺎﻳﻲ واﺣﺪ و ﻳﻜﭙﺎرﭼﻪ اﺳﺖ‪ .‬ﺑﻠﻜﻪ ﻣﺤﻴﻂ ﭘﺎﻳﮕﺎهدادهﻫﺎ از ﻟﺤﺎظ‬ ‫ﻣﻨﻄﻘﻲ‪ ،‬ﻳﻜﭙﺎرﭼﮕﻲ دارد‪ .‬وﺿﻊ ﭘﺎﻳﮕﺎهدادهﻫﺎ در ﺳﻄﺢ ﻓﻴﺰﻳﻜﻲ ﺑﺴﺘﮕﻲ ﺑﻪ ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ‬ ‫ﭘﺎﻳﮕﺎهدادهﻫﺎ دارد‪ ،‬ﭘﺎﻳﮕﺎهدادهﻫﺎ ﻣﻲﺗﻮاﻧﺪ در ﻋﻴﻦ واﺣﺪ ﻣﺠﺘﻤﻊ و ﻣﺸﺘﺮك ﺑﻮدن در ﺳﻄﺢ‬ ‫ﻣﻨﻄﻘﻲ‪ ،‬از ﻧﻈﺮ ﻓﻴﺰﻳﻜﻲ ﻧﺎﻣﺘﻤﺮﻛﺰ و ﺗﻮزﻳﻊ ﺷﺪه ﺑﺎﺷﺪ‪.‬‬

‫‪ 1-2‬ﺗﻔﺎوتﻫﺎي ﺑﻴﻦ روش ﻓﺎﻳﻠﻴﻨﮓ و روش ﭘﺎﻳﮕﺎهدادهﻫﺎ‬ ‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﻌﺎرﻳﻒ ﺑﺎﻻ ﻣﻤﻜﻦ اﺳﺖ اﻳﻦ ﺳﺌﻮال ﭘﻴﺶ ﺑﻴﺎﻳﺪ ﻛﻪ اﺳﺎﺳﺎً اﺳﺘﻔﺎده از روش‬ ‫ﻓﺎﻳﻠﻴﻨﮓ در ﻃﺮاﺣﻲ ﺑﺮﻧﺎﻣﻪ ﻫﺎ ﺑﻪ ﭼﻪ ﺻﻮرت ﺑﻮده و ﭼﻪ ﺗﻔﺎوﺗﻲ ﺑﺎ روش ﭘﺎﻳﮕﺎﻫﻲ‬ ‫دارد ‪ .‬ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع اﺑﺘﺪا روش ﻓﺎﻳﻠﻴﻨﮓ ﺑﺮاي ﻃﺮاﺣﻲ ﺑﺮﻧﺎﻣﻪ ﻫﺎ را ﺑﺼﻮرت‬ ‫ﻛﻠﻲ ﺑﻴﺎن ﻣﻲ ﻛﻨﻴﻢ‪.‬‬

‫‪ 1-1-2‬ﻣﺮاﺣﻞ ﻛﺎر در روش ﻓﺎﻳﻠﻴﻨﮓ‬ ‫ﺳﻴﺴﺘﻢ ﻣﻮرد درﺧﻮاﺳﺖ ﺑﺮاي ﻣﻜﺎﻧﻴﺰه ﻛﺮدن اﻧﺘﺨﺎب و ﻣﻮرد ﺑﺮرﺳﻲ و ﭘﺮدازش ﻗﺮار‬ ‫ﻣﻲ ﮔﻴﺮد ﺗﺎ ﻣﺸﺨﺼﺎت ﻧﻴﺎزﻫﺎ ﺗﻌﻴﻴﻦ ﮔﺮدد ‪.‬‬ ‫•‬

‫ﻣﺮاﺣﻞ اوﻟﻴﻪ ﻻزم ﺑﺮاي ﻃﺮاﺣﻲ و ﭘﻴﺎده ﺳﺎزي ﺳﻴﺴﺘﻢ ﻣﻮرد ﻧﻈﺮ اﻧﺠﺎم ﻣﻲﮔﻴﺮد‪.‬‬

‫•‬

‫ﻣﺸﺨﺼﺎت ﺳﻴﺴﺘﻢ و زﻳﺮ ﺳﻴﺴﺘﻢﻫﺎي اﺣﺘﻤﺎﻟﻲ و وﻇﺎﻳﻒ ﻫﺮ ﻛﺪام از آﻧﻬﺎ ﺗﻌﻴﻴﻦ‬ ‫ﻣﻲﮔﺮدد‪.‬‬

‫‪8‬‬

‫ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﻫﺎ‬

‫•‬

‫ﺗﻌﺪادي ﻓﺎﻳﻞ اﻃﻼﻋﺎﺗﻲ ﺑﺮاي ذﺧﻴﺮه ﺳﺎزي ﻓﺎﻳﻠﻬﺎ ﻃﺮاﺣﻲ ﻣﻲﮔﺮدد‪ .‬اﻳﻦ ﻓﺎﻳﻠﻬﺎ‬ ‫ﻣﻌﻤﻮﻻً ﺑﻪ ﺻﻮرت ﻣﻨﻔﺮد در ﺳﻄﺢ ﺳﻴﺴﺘﻢ ﻃﺮاﺣﻲ ﻣﻲﮔﺮدﻧﺪ‪.‬‬

‫•‬

‫ﺑﺮﻧﺎﻣﻪ ﻣﻮرد درﺧﻮاﺳﺖ ﺑﺎ اﺳﺘﻔﺎده از ﻳﻚ زﺑﺎن ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺗﻬﻴﻪ ﻣﻲﮔﺮدد‪.‬‬ ‫ﺑﺮﻧﺎﻣﻪ ﻣﻮرد ﻧﻈﺮ ﺑﻪ ﻫﻤﺮاه ﺑﺮﻧﺎﻣﻪﻫﺎي ﻣﺮﺗﺒﻂ ﺑﺎ ﻓﺎﻳﻞﻫﺎ اﻃﻼﻋﺎﺗﻲ‪ ،‬ﻣﺠﻤﻮﻋﻪ‬ ‫ﻧﺮماﻓﺰاري ﺳﻴﺴﺘﻢ را ﭘﻮﺷﺶ ﻣﻲدﻫﻨﺪ‪.‬‬

‫•‬

‫ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﻛﺎﻣﻞ ﺷﺎﻣﻞ ﻧﺮماﻓﺰار و ﺳﺨﺖاﻓﺰار و اﺣﺘﻤﺎﻻ ﻣﻜﺎﻧﻴﺰﻣﻲﺟﻬﺖ‬ ‫ﺑﺮﻗﺮاري ارﺗﺒﺎط ﺑﻴﻦ ﭼﻨﺪ ﺳﺨﺖاﻓﺰار ﻓﺮاﻫﻢ ﻣﻲﮔﺮدد‪.‬‬

‫•‬

‫ﻣﺠﻤﻮﻋﻪاي از ﺗﺴﺖﻫﺎ ﺟﻬﺖ ﺑﺮرﺳﻲ ﻫﺮ زﻳﺮ ﺳﻴﺴﺘﻢ و در ﻧﻬﺎﻳﺖ ﺑﺮرﺳﻲ ﻛﻞ‬ ‫ﺳﻴﺴﺘﻢ اﻋﻤﺎل ﻣﻲﮔﺮدد‪.‬‬

‫ﺑﺎ اﻳﻦ وﺻﻒ ﺑﻪ راﺣﺘﻲ ﻣﻲ ﺗﻮان درﻳﺎﻓﺖ ﻛﻪ در روش ﻓﺎﻳﻠﻴﻨﮓ‪ ،‬داده ﻫﺎ در واﻗﻊ ﭼﻨﺪ‬ ‫ﻣﺠﻤﻮﻋﻪ ﻣﺠﺰا و ﻧﺎﻣﺠﺘﻤﻊ )از ﻟﺤﺎظ ﻣﻨﻄﻘﻲ و ﻓﻴﺰﻳﻜﻲ( و ﺗﺎ ﺣﺪود زﻳﺎدي ﻧﺎﻣﺮﺗﺒﻂ ﺑﺎ‬ ‫ﻫﻢ و ﺑﺪون ﻣﺪﻳﺮﻳﺖ ﻣﺘﻤﺮﻛﺰ ﺧﻮاﻫﻨﺪ ﺑﻮد ‪ .‬ﻧﻤﺎﻳﻲ از روش ﻓﺎﻳﻠﻴﻨﮓ در ﺷﻜﻞ ‪2 -1‬‬ ‫آﻣﺪه اﺳﺖ‪.‬‬

‫‪ 2-1-2‬ﻣﺮاﺣﻞ ﻛﺎر در روش ﭘﺎﻳﮕﺎﻫﻲ‬ ‫ﺑﺎ ﻋﻨﺎﻳﺖ ﺑﻪ روش ﻛﺎر در ﺳﻴﺴﺘﻢ ﻓﺎﻳﻠﻴﻨﮓ‪ ،‬در اداﻣﻪ ﻣﺮاﺣﻞ ﻛﺎر در روش ﭘﺎﻳﮕﺎﻫﻲ‬ ‫ﻣﻌﺮﻓﻲ ﻣﻲ ﮔﺮدد‪.‬‬ ‫•‬

‫ﻛﻠﻴﻪ ﻧﻴﺎزﻫﺎي اﻃﻼﻋﺎﺗﻲ و ﭘﺮدازﺷﻲ ﻣﺠﻤﻮﻋﻪ ﻣﻮرد ﻧﻈﺮ ﺑﺼﻮرت ﻳﻜﭙﺎرﭼﻪ ﻣﻮرد‬ ‫ﻣﻄﺎﻟﻌﻪ و ﺗﺤﻠﻴﻞ ﻗﺮار ﻣﻲﮔﻴﺮد‪ .‬دادهﻫﺎي ﻣﻮرد ﻧﻈﺮ‪ ،‬ﻣﺪل ﺳﺎزي ﻣﻲﮔﺮدﻧﺪ و‬ ‫ﻣﺸﺨﺼﺎت ﺳﻴﺴﺘﻢ و وﻇﺎﻳﻒ آن ﺑﺼﻮرت ﺟﺎﻣﻊ ﺗﻌﻴﻴﻦ ﻣﻲﮔﺮدﻧﺪ‪.‬‬

‫•‬

‫ﻳﻚ ﻳﺎ ﭼﻨﺪ ﭘﺎﻳﮕﺎهداده ﺑﻌﻨﻮان ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﻣﺘﻤﺮﻛﺰ اﻧﺘﺨﺎب ﻣﻲﮔﺮدد‪.‬‬ ‫ﻃﺮاﺣﻲﻫﺎي ﻻزم در ﺳﻄﻮح ﻣﺨﺘﻠﻒ ﭘﺎﻳﮕﺎهداده ﺗﻌﺮﻳﻒ و ﻃﺮاﺣﻲ ﻣﻲﮔﺮدﻧﺪ‪.‬‬

‫•‬

‫واﺳﻂﻫﺎي ﻣﻮرد ﻧﻈﺮ ﺑﺮاي ﻛﺎرﺑﺮان واﺣﺪﻫﺎي ﻣﺨﺘﻠﻒ )و ﺑﻌﻀﺎ ﻣﺪﻳﺮان ﺳﻴﺴﺘﻢ(‬ ‫ﻃﺮاﺣﻲ ﻣﻲﮔﺮدﻧﺪ‪.‬‬

‫•‬

‫ﺗﺴﺖﻫﺎي ﻻزم ﺑﺮ روي ﻗﺴﻤﺖﻫﺎي ﻣﺨﺘﻠﻒ ﺳﻴﺴﺘﻢ اﻋﻤﺎل ﻣﻲﮔﺮدﻧﺪ‪.‬‬

‫ﻣﻔﺎﻫﻴﻢ ﺍﻭﻟﻴﻪ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﻫﺎ‬

‫‪9‬‬

‫ﺷﻜﻞ ‪ 2-1‬ﻧﻤﺎي ﻛﻠﻲ از روش ﻓﺎﻳﻠﻴﻨﮓ‬

‫ﺑﺎ اﻳﻦ وﺻﻒ ﻣﻲ ﺗﻮان ﻣﺸﺎﻫﺪه ﻛﺮد ﻛﻪ اﺳﺎس روش ﻓﺎﻳﻠﻴﻨﮓ ﺑﺮ ﻣﺒﻨﺎي ﺳﺎﺧﺘﺎر‬ ‫اﻃﻼﻋﺎﺗﻲ ﻳﻜﭙﺎرﭼﻪ ﻃﺮاﺣﻲ ﺷﺪه اﺳﺖ و ﻣﺒﻨﺎي ﻛﺎر ﻣﺪﻳﺮﻳﺖ ﻳﻚ ﭘﺎرﭼﻪ و ﻣﺘﻤﺮﻛﺰ‬ ‫داده ﻫﺎ ﻣﻲ ﺑﺎﺷﺪ‪ .‬ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع ﺷﻤﺎﻳﻲ از روش ﭘﺎﻳﮕﺎﻫﻲ در ﺷﻜﻞ ‪3-1‬‬ ‫آﻣﺪه اﺳﺖ‪.‬‬

‫‪10‬‬

‫ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﻫﺎ‬

‫ﺷﻜﻞ ‪ 3-1‬ﺷﻤﺎﻳﻲ از روش ﭘﺎﻳﮕﺎﻫﻲ‬

‫‪ 2-2‬اﺟﺰاء ﭘﺎﻳﮕﺎهداده‬ ‫ﻫﻤﺎﻧﮕﻮﻧﻪ ﻛﻪ در ﺷﻜﻞ زﻳﺮ ﻣﺸﺎﻫﺪه ﻣﻲ ﺷﻮد ﻫﺮ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده از ﭼﻬﺎر ﺟﺰء‬ ‫اﺳﺎﺳﻲ ﺗﺸﻜﻴﻞ ﻣﻲ ﺷﻮد‪:‬‬ ‫•‬

‫دادهﻫﺎ‬

‫•‬

‫ﺳﺨﺖاﻓﺰار‬

‫ﻣﻔﺎﻫﻴﻢ ﺍﻭﻟﻴﻪ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﻫﺎ ‪11‬‬

‫•‬

‫ﻧﺮماﻓﺰار‬

‫•‬

‫ﻛﺎرﺑﺮ‬ ‫ﺳﺨﺖ اﻓﺰار‬ ‫ارﺗﺒﺎﻃﻲ‬ ‫ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ‬ ‫دادهﻫﺎي‬ ‫ذﺧﻴﺮه ﺷﺪه در‬

‫‪D‬‬ ‫‪B‬‬ ‫‪M‬‬ ‫‪S‬‬

‫ﻛﺎرﺑﺮ ‪1‬‬

‫ﻛﺎرﺑﺮ ‪2‬‬

‫ﺳﺨﺖ اﻓﺰار‬ ‫‪.‬‬

‫ﺳﺨﺖ اﻓﺰار ذﺧﻴﺮه ﺳﺎزي و ﭘﺮدازش‬

‫ﻛﺎرﺑﺮ‪n‬‬

‫ﺷﻜﻞ ‪ 4-1‬ﺷﻤﺎي ﺗﺼﻮﻳﺮي ارﺗﺒﺎط ﺑﻴﻦ اﺟﺰاء ﭘﺎﻳﮕﺎهداده‬

‫ﺷﻜﻞ ‪ 4-1‬ﻳﻚ ﻧﻤﺎي ﻛﻠﻲ از اﺟﺰاء ﻣﻌﺮﻓﻲ ﺷﺪه ﺑﻪ ﻫﻤﺮاه ﻧﺤﻮه ارﺗﺒﺎط ﺑﻴﻦ آﻧﻬﺎ را‬ ‫ﻧﺸﺎن ﻣﻲ دﻫﺪ ‪ .‬در اداﻣﻪ ﻫﺮ ﻳﻚ از اﺟﺰاء ﻣﺬﻛﻮر ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻨﺪ‬ ‫ﮔﺮﻓﺖ‪.‬‬

‫‪1-2-2‬دادهﻫﺎ‬ ‫‪1‬‬

‫ﻳﻚ ﭘﺎﻳﮕﺎه داده ﮔﻨﺠﻴﻨﻪ اي از داده ﻫﺎ اﺳﺖ ﻛﻪ در ﻛﻞ ﻣﺠﺘﻤﻊ ﺷﺪه و ﺑﻪ اﺷﺘﺮاك‬ ‫ﮔﺬاﺷﺘﻪ ﺷﺪه‬

‫‪2‬‬

‫اﺳﺖ ‪ .‬ﻣﻨﻈﻮر از ﻣﺠﺘﻤﻊ ﺷﺪﮔﻲ‪ ،‬اﺗﺤﺎد ﭼﻨﺪﻳﻦ ﻓﺎﻳﻞ داده ﺑﻪ ﺻﻮرت‬

‫ﻣﺠﻤﻮﻋﻪ اي اﺳﺖ ﻛﻪ آن را ﺑﻪ ﻧﺎم ﭘﺎﻳﮕﺎه داده ﻣﻲ ﺷﻨﺎﺳﻴﻢ و ﺑﻪ ﻫﻤﻴﻦ ﻋﻠﺖ اﺳﺖ ﻛﻪ‬ ‫ﺗﻤﺎم آن اﻓﺰوﻧﮕﻲ ﻫﺎ ﻛﻪ در ﺳﻴﺴﺘﻢ ﭘﺮدازش ﻓﺎﻳﻠﻬﺎ وﺟﻮد داﺷﺖ از ﻣﻴﺎن ﻣﻲرود ‪ .‬ﻣﻨﻈﻮر‬ ‫از ﻣﺸﺘﺮك ﺑﻮدن ﭘﺎﻳﮕﺎه دادهﻫﺎ اﻳﻦ اﺳﺖ ﻛﻪ اﻃﻼﻋﺎت ﻣﻮﺟﻮد در ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺑﻴﻦ‬ ‫‪1. In t e gr a t e d‬‬ ‫‪2. Sh a r e d‬‬

‫‪12‬‬

‫ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﻫﺎ‬

‫اﺳﺘﻔﺎده ﻛﻨﻨﺪﮔﺎن ﻣﺨﺘﻠﻒ ﺑﻪ اﺷﺘﺮاك ﮔﺬاﺷﺘﻪ ﻣﻲ ﺷﻮد ‪ .‬دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه در ﻳﻚ‬ ‫ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﻋﺒﺎرﺗﻨﺪ‬

‫از‪:‬‬

‫•‬

‫دادهﻫﺎي ﻛﺎرﺑﺮان‬

‫•‬

‫دادهﻫﺎي ﺳﻴﺴﺘﻤﻲ‬

‫‪ 2-2-2‬ﺳﺨﺖاﻓﺰار‬ ‫ﻳﻚ ﭘﺎﻳﮕﺎه داده ﺟﻬﺖ اﺳﺘﻘﺮار ﺑﻪ ﻣﺠﻤﻮﻋﻪ ﻣﻨﺎﺳﺒﻲ از ﺗﺠﻬﻴﺰات ﺳﺨﺖ اﻓﺰاري ﻧﻴﺎز‬ ‫دارد ‪ .‬ﺳﺨﺖ اﻓﺰار ﻫﺎ ﺑﻪ ﺳﻪ دﺳﺘﻪ ﺗﻘﺴﻴﻢ ﻣﻲ ﮔﺮدﻧﺪ‪:‬‬ ‫•‬

‫ﺳﺨﺖاﻓﺰار ذﺧﻴﺮه ﺳﺎزي دادهﻫﺎ‬

‫•‬

‫ﺳﺨﺖاﻓﺰار ﭘﺮدازﺷﮕﺮ‬

‫•‬

‫ﺳﺨﺖاﻓﺰار ﺑﺮﻗﺮار ﻛﻨﻨﺪه ارﺗﺒﺎط‬

‫در اداﻣﻪ ﺑﻪ ﺷﺮح ﻫﺮ ﻳﻚ از اﻧﻮاع ﺳﺨﺖ اﻓﺰارﻫﺎ در ﻣﺤﻴﻂ ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺧﻮاﻫﻴﻢ‬ ‫ﭘﺮداﺧﺖ‪:‬‬

‫‪ -1‬ﺳﺨﺖاﻓﺰار ذﺧﻴﺮه ﺳﺎزي دادهﻫﺎ‬ ‫ﻣﻨﻈﻮر ﻫﻤﺎن رﺳﺎﻧﻪ ﻫﺎي ذﺧﻴﺮه ﺳﺎزي ﺧﺎرﺟﻲ اﺳﺖ وﻟﻲ ﺑﺎﻳﺪ داﻧﺴﺖ ﻛﻪ رﺳﺎﻧﻪ اﺻﻠﻲ‬ ‫ذﺧﻴﺮه ﺳﺎزي دﻳﺴﻚ اﺳﺖ‪ ،‬ﺳﺎﻳﺮ رﺳﺎﻧﻪ ﻫﺎي ذﺧﻴﺮه ﺳﺎزي ﻣﺎﻧﻨﺪ ﻧﻮار ﻣﻐﻨﺎﻃﻴﺴﻲ در‬ ‫ﻣﺤﻴﻂ ﭘﺎﻳﮕﺎه دادهﻫﺎ ﻛﺎرﺑﺮد دارد وﻟﻲ ﻧﻪ ﺑﻪ ﻋﻨﻮان رﺳﺎﻧﻪ اﺻﻠﻲ‪ ،‬ﺑﻠﻜﻪ ﺑﻪ ﺻﻮرت رﺳﺎﻧﻪ‬ ‫ﻛﻤﻜﻲ ﺑﺮاي ﺗﻮﻟﻴﺪ ﻧﺴﺨﻪﻫﺎي ﭘﺸﺘﻴﺒﺎن و ﻓﺎﻳﻠﻬﺎي ﺛﺒﺖ ﺗﺮاﻛﻨﺶ ﻫﺎ ﻳﺎ ﻓﺎﻳﻠﻬﺎ‬ ‫روﻳﺪادﻧﮕﺎري‪.‬‬

‫‪ -2‬ﺳﺨﺖاﻓﺰار ﭘﺮدازﺷﮕﺮ‬ ‫ﻣﻨﻈﻮر ﺧﻮد ﻛﺎﻣﭙﻴﻮﺗﺮ اﺳﺖ ‪ .‬ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ ﺑﺮاي ﭘﺎﻳﮕﺎهﻫﺎي داده ﺑﺎ ﻣﻌﻤﺎري‬ ‫ﺧﺎص و ﻳﺎ ﺑﺴﻴﺎر ﺣﺠﻴﻢ‪ ،‬از اﻧﻮاع ﺧﺎﺻﻲ از ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎ ﺑﺎ ﺳﺨﺖ اﻓﺰارﻫﺎي ﺧﺎص و‬ ‫ﻧﻮع ﭘﺮدازش ﺧﺎص اﺳﺘﻔﺎده ﻣﻲ ﮔﺮدد‪.‬‬

‫‪ -3‬ﺳﺨﺖاﻓﺰار ﺑﺮﻗﺮار ﻛﻨﻨﺪه ارﺗﺒﺎط‬

‫ﻣﻔﺎﻫﻴﻢ ﺍﻭﻟﻴﻪ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﻫﺎ ‪13‬‬

‫ﻣﻨﻈﻮر از ﺳﺨﺖ اﻓﺰار ﺑﺮﻗﺮار ﻛﻨﻨﺪه ارﺗﺒﺎط‪ ،‬ﺳﺨﺖ اﻓﺰار ارﺗﺒﺎﻃﻲ ﺑﻴﻦ ﻛﺎﻣﭙﻴﻮﺗﺮ و‬ ‫دﺳﺘﮕﺎه ﻫﺎي ﺟﻨﺒﻲ و ﻧﻴﺰ ﺑﻴﻦ ﻛﺎﻣﭙﻴﻮﺗﺮ ﻫﺎﺳﺖ ‪ .‬اﻳﻦ اﻣﻜﺎﻧﺎت ﺑﻪ دو دﺳﺘﻪ ﺗﻘﺴﻴﻢ‬ ‫ﻣﻲ ﺷﻮﻧﺪ‪:‬‬ ‫•‬

‫اﻣﻜﺎﻧﺎت ﻣﺤﻠﻲ‪ :‬ﺑﺮاي اﻳﺠﺎد ارﺗﺒﺎط ﺑﻴﻦ ﻛﺎﻣﭙﻴﻮﺗﺮ و دﺳﺘﮕﺎهﻫﺎي ﺟﻨﺒﻲ آن در ﻳﻚ‬ ‫ﺳﺎﻳﺖ ﺑﻪ ﻛﺎر ﻣﻲرود‪.‬‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺷﺒﻜﻪاي‪ :‬دراﻳﺠﺎد ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎهدادهﻫﺎي ﺑﺎ ﻣﻌﻤﺎري ﻧﺎ ﻣﺘﻤﺮﻛﺰ ﺑﻪ ﻛﺎر‬ ‫ﻣﻲرود‪.‬‬

‫ﭼﻨﺎﻧﭽﻪ ﺑﺨﻮاﻫﻴﻢ ﭘﺎﻳﮕﺎه ﻫﺎي داده را ﺑﺮ اﺳﺎس ﻧﮕﺎه ارﺗﺒﺎﻃﻲ دﺳﺘﻪ ﺑﻨﺪي ﻛﻨﻴﻢ‪ ،‬اﻧﻮاع‬ ‫ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎه دادهﻫﺎ ﺑﻪ ﺷﺮح زﻳﺮ ﺧﻮاﻫﺪ ﺑﻮد‪:‬‬ ‫•‬

‫ﻣﻌﻤﺎري ﻣﺸﺘﺮي‪ -‬ﺧﺪﻣﺖ ﮔﺰار‬ ‫‪2‬‬

‫•‬

‫ﻣﻌﻤﺎري ﻣﺘﻤﺮﻛﺰ‬

‫•‬

‫ﻣﻌﻤﺎري ﺗﻮزﻳﻊ ﺷﺪه‬

‫•‬

‫ﻣﻌﻤﺎري ﺑﺎ ﭘﺮدازش ﻣﻮازي‬

‫•‬ ‫•‬

‫‪3‬‬

‫ﻣﻌﻤﺎري ﭼﻨﺪ ﭘﺎﻳﮕﺎﻫﻲ‬ ‫ﻣﻌﻤﺎري ﻣﻮﺑﺎﻳﻞ‬

‫‪1‬‬

‫‪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‬‬

‫‪14‬‬

‫ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﻫﺎ‬

‫ﻣﻲ ﺷﻮﻧﺪ‪:‬‬ ‫ﻧﺮماﻓﺰار ﻛﺎرﺑﺮدي‬

‫•‬

‫• ﻧﺮماﻓﺰار ﺳﻴﺴﺘﻤﻲ‬ ‫در اداﻣﻪ ﺑﻪ ﺷﺮح ﻫﺮ ﻳﻚ از اﻧﻮاع ﻧﺮم اﻓﺰارﻫﺎ ﺧﻮاﻫﻴﻢ ﭘﺮداﺧﺖ‪:‬‬

‫‪ -1‬ﻧﺮماﻓﺰار ﻛﺎرﺑﺮدي‬ ‫ﻧﺮم اﻓﺰاري اﺳﺖ ﻛﻪ ﻛﺎرﺑﺮ ﺑﺎﻳﺪ ﺑﺮاي ﺗﻤﺎس ﺑﺎ ﺳﻴﺴﺘﻢ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ آﻣﺎده ﻛﻨﺪ ‪ .‬اﻳﻦ‬ ‫‪1‬‬

‫ﻧﺮم اﻓﺰار ﺑﻪ ﻛﻤﻚ ﻳﻚ زﺑﺎن ﺳﻄﺢ ﺑﺎﻻ و ﻳﻚ زﺑﺎن دادهﻳﻲ و ﺑﺮﺧﻲ ﺗﺴﻬﻴﻼت‬ ‫ﻧﺮم اﻓﺰاري ﺑﺮاي ﺗﻤﺎس ﺑﺎ ﺑﺎﻧﻚ ﺳﺎﺧﺘﻪ ﻣﻲ ﺷﻮد ‪.‬‬

‫‪ -2‬ﻧﺮماﻓﺰار ﺳﻴﺴﺘﻤﻲ‬ ‫اﻳﻦ ﻧﻮع ﻧﺮم اﻓﺰار از دو ﻗﺴﻤﺖ ﻧﺮم اﻓﺰار ﺳﻴﺴﺘﻤﻲ ﺧﺎص ﺑﺎﻧﻚ ﻛﻪ در اﻳﻨﺠﺎ ﺑﻪ آن‬ ‫‪DBMS‬‬

‫ﻣﻲ ﮔﻮﻳﻴﻢ و ﻧﺮم اﻓﺰار ﺳﻴﺴﺘﻤﻲﻋﻤﻮﻣﻲ )ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ( ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ‪.‬‬

‫)‪ (DBMS‬در ﻳﻚ ﺗﻌﺮﻳﻒ ﺳﺎده‪ ،‬ﺳﻴﺴﺘﻤﻲ اﺳﺖ ﻛﻪ ﺑﻪ ﻛﺎرﺑﺮان اﻣﻜﺎن ﻣﻲ دﻫﺪ ﻋﻤﻠﻴﺎت‬ ‫ﻣﻮرد ﻧﻈﺮﺷﺎن را )ﻣﺎﻧﻨﺪ ﺗﻌﺮﻳﻒ دادهﻫﺎ‪ ،‬ﺑﺎزﻳﺎﺑﻲ دادهﻫﺎ‪ ،‬ذﺧﻴﺮه ﺳﺎزي دادهﻫﺎ( اﻧﺠﺎم‬ ‫دﻫﻨﺪ‪.‬‬

‫‪DBMS‬‬

‫ﻛﻪ ﻧﺮم اﻓﺰاري ﭘﻴﭽﻴﺪه اﺳﺖ ﻣﻴﻬﻤﺎن ﻳﻚ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ اﺳﺖ و از‬

‫اﻣﻜﺎﻧﺎت ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ در اﻧﺠﺎم وﻇﺎﻳﻔﺶ اﺳﺘﻔﺎده ﻣﻲ ﻛﻨﺪ ‪.‬‬

‫‪ 4-2-2‬ﻛﺎرﺑﺮ‬ ‫ﻫﺮ اﺳﺘﻔﺎده ﻛﻨﻨﺪه از ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده ﻫﺎ را ﻛﺎرﺑﺮ ﻣﻲ ﮔﻮﻳﻨﺪ ‪ .‬ﻛﺎرﺑﺮان ﭘﺎﻳﮕﺎه داده را‬ ‫ﻣﻲ ﺗﻮان ﺑﻪ ﺳﻪ ﮔﺮوه اﺳﺎﺳﻲ و ﻣﺘﻔﺎوت ﺗﻘﺴﻴﻢ ﻧﻤﻮد‪:‬‬ ‫•‬

‫ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﺎن ﻛﺎرﺑﺮدي‬

‫•‬

‫ﻛﺎرﺑﺮان واﻗﻌﻲ ﻳﺎ ﻧﻬﺎﻳﻲ‬

‫•‬

‫ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫‪1. D at a La n gu a ge‬‬

‫ﻣﻔﺎﻫﻴﻢ ﺍﻭﻟﻴﻪ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﻫﺎ ‪15‬‬

‫‪ -1‬ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﺎن ﻛﺎرﺑﺮدي‬

‫‪1‬‬

‫اﻓﺮادي ﻫﺴﺘﻨﺪ ﻛﻪ ﺑﺎ اﻃﻼﻋﺎﺗﻲ ﻛﻪ در ﻣﻮرد ﭘﺎﻳﮕﺎه داده ﭘﻴﺪا ﻣﻲ ﻛﻨﻨﺪ ﻣﻲ ﺗﻮاﻧﻨﺪ‬ ‫ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﻣﻨﺎﺳﺒﻲ ﺟﻬﺖ ﺑﺮوز ﻛﺮدن اﻃﻼﻋﺎت و ﻳﺎ اﺳﺘﻔﺎده از اﻃﻼﻋﺎت ﻣﻮﺟﻮد در‬ ‫ﭘﺎﻳﮕﺎه داده ﺗﻬﻴﻪ ﻧﻤﺎﻳﻨﺪ ‪.‬‬

‫‪ -2‬ﻛﺎرﺑﺮان واﻗﻌﻲ ﻳﺎ ﻧﻬﺎﻳﻲ‬

‫‪2‬‬

‫اﻓﺮادي ﻫﺴﺘﻨﺪ ﻛﻪ ﺑﺎ اﺳﺘﻔﺎده از اﻣﻜﺎﻧﺎﺗﻲ ﻛﻪ ﭘﺎﻳﮕﺎه داده در اﺧﺘﻴﺎر آﻧﻬﺎ ﻗﺮار ﻣﻲ دﻫﺪ‬ ‫ﻣﻲ ﺗﻮاﻧﻨﺪ اﻣﻮر ﻣﺮﺑﻮط ﺑﻪ ﺧﻮد و ﻣﻮﺳﺴﻪ و ﺳﺎزﻣﺎن را اﻧﺠﺎم دﻫﻨﺪ ‪.‬‬

‫‪ -3‬ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎهداده‬

‫‪3‬‬

‫ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎه داده ﻣﺴﺌﻮﻟﻴﺖ ﻛﻨﺘﺮل ﻣﺘﻤﺮﻛﺰ ﺳﺎزﻣﺎن ﺑﺮ داده ﻫﺎي ﻋﻤﻠﻴﺎﺗﻲ را ﺑﺮ ﻋﻬﺪه‬ ‫دارد ‪ .‬اﮔﺮ ﺑﺨﻮاﻫﻴﻢ وﻇﺎﻳﻒ ‪ DBA‬را ﺑﻪ ﻃﻮر ﺟﺰﺋﻲ ﻃﺮاﺣﻲ ﻛﻨﻴﻢ ﻋﺒﺎرﺗﻨﺪ از‪:‬‬ ‫•‬

‫ﺗﺼﻤﻴﻢ ﮔﻴﺮي در ﻣﻮرد دادهﻫﺎﻳﻲ ﻛﻪ در ﭘﺎﻳﮕﺎهداده ﻧﮕﻬﺪاري ﻣﻲﺷﻮﻧﺪ‪.‬‬

‫•‬

‫ﺗﺼﻤﻴﻢ ﮔﻴﺮي در ﻣﻮرد ذﺧﻴﺮه ﺳﺎزي و روش دﺳﺘﻴﺎﺑﻲ اﺳﺖ‪.‬‬

‫•‬

‫ارﺗﺒﺎط ﺑﺎ ﻛﺎرﺑﺮان ﺑﺮاي ﺣﺼﻮل اﻃﻤﻴﻨﺎن از ﺑﺮآورده ﺷﺪن ﻧﻴﺎزﻫﺎي آﻧﺎن‪.‬‬

‫•‬

‫‪5‬‬

‫‪4‬‬

‫ﺗﻌﺮﻳﻒ ﺑﺮرﺳﻲﻫﺎي ﻣﺮﺑﻮط ﺑﻪ اﻣﻨﻴﺖ وﺟﺎﻣﻌﻴﺖ )ﺻﺤﺖ ﻋﻤﻠﻴﺎت دادهﻫﺎ(‪.‬‬ ‫‪6‬‬

‫•‬

‫ﺗﻌﺮﻳﻒ اﺳﺘﺮاﺗﮋي اﺧﺬ ﻧﺴﺨﻪ ﭘﺸﺘﻴﺒﺎﻧﻲ و ﺗﺮﻣﻴﻢ ‪.‬‬

‫•‬

‫ﻧﻈﺎرت ﺑﺮ ﻋﻤﻠﻜﺮد ﺳﻴﺴﺘﻢ و ﭘﺎﺳﺨﮕﻮﻳﻲ ﺑﻪ ﻧﻴﺎزﻫﺎي در ﺣﺎل ﺗﻐﻴﻴﺮ‪.‬‬

‫ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ اﻣﺮوزه ﺑﺎ ﭘﻴﭽﻴﺪه ﺗﺮ ﺷﺪن ﭘﺎﻳﮕﺎه ﻫﺎي داده و ﺣﺠﻴﻢ ﺗﺮ ﺷﺪن‬ ‫داده ﻫﺎ‪ ،‬ﻣﻌﻤﻮﻻً ﭼﻨﺪ ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎه داده‬ ‫ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫)‪(Senior DBA‬‬

‫)‪(Junior DBA‬‬

‫ﺗﺤﺖ ﻧﻈﺮ ﻳﻚ ﻣﺪﻳﺮ اﺻﻠﻲ‬

‫ﻗﺮار ﮔﺮﻓﺘﻪ و ﻫﺮ ﻳﻚ ﻣﺴﺌﻮﻟﻴﺖ ﻳﻚ ﻗﺴﻤﺖ را ﺑﺮ ﻋﻬﺪه‬

‫دارﻧﺪ‪.‬‬ ‫‪1. Ap p l i c a t i o n P r o gr a mme r‬‬ ‫) ‪2. E n d U s e r ( R ea l U se r‬‬ ‫‪3. D at a b a s e Ad mi n i s t r a t o r‬‬ ‫‪4 . Se c u r i t y‬‬ ‫‪5 . In t e gr i t y‬‬ ‫‪6 . R e c o ve r y‬‬

‫‪16‬‬

‫ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﻫﺎ‬

‫ﺗﻤﺮﻳﻨﺎت‬ ‫‪ .1‬ﻣﻔﺎﻫﻴﻢ داده‪ ،‬اﻃﻼع و داﻧﺶ را ﺗﻮﺿﻴﺢ دﻫﻴﺪ ؟‬ ‫‪ .2‬ﭘﺎﻳﮕﺎهداده را ﺗﻌﺮﻳﻒ ﻧﻤﺎﻳﻴﺪ ؟‬ ‫‪ .3‬ﻋﻨﺎﺻﺮ اﺳﺎﺳﻲ ﻳﻚ ﭘﺎﻳﮕﺎهداده را ﻧﺎم ﺑﺒﺮﻳﺪ ؟‬ ‫‪ .4‬اﻧﻮاع ﺗﺠﻬﻴﺰات ﺳﺨﺖاﻓﺰاري ﻣﻮرد ﻧﻴﺎز ﺑﺮاي ﻳﻚ ﭘﺎﻳﮕﺎهداده را در ﺣﺎﻟﺖ ﻛﻠﻲ‬ ‫ﻧﺎم ﺑﺮده و ﺗﻮﺿﻴﺢ دﻫﻴﺪ ؟‬ ‫‪ .5‬اﻧﻮاع ﻛﺎرﺑﺮان اﺳﺘﻔﺎده ﻛﻨﻨﺪه از ﻳﻚ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎهداده را در ﺣﺎﻟﺖ ﻛﻠﻲ ﻧﺎم ﺑﺮده‬ ‫و ﺗﻮﺿﻴﺢ دﻫﻴﺪ ؟‬

‫ﻓﺼﻞ ‪۲‬‬ ‫ﻣﺪﻝ ﺳﺎﺯﻱ ﻣﻌﻨﺎﻳﻲ ﺩﺍﺩﻩﻫﺎ‬ ‫ﻫﺪف ﻛﻠﻲ‬ ‫در اﻳﻦ ﻓﺼﻞ ﺑﺎ ﻣﻔﻬﻮم ﻣﺪل ﺳﺎزي ﻣﻌﻨﺎﻳﻲ دادهﻫﺎ آﺷﻨﺎ ﺧﻮاﻫﻴﻢ ﺷﺪ و دو روش ﻣﺪل‬ ‫ﺳﺎزي ﻣﻮﺟﻮدﻳﺖ‪ -‬ارﺗﺒﺎط‬

‫)‪(ER‬‬

‫‪1‬‬

‫و ﻣﻮﺟﻮدﻳﺖ‪ -‬ارﺗﺒﺎط ﺗﻮﺳﻌﻪ ﻳﺎﻓﺘﻪ‬

‫)‪(ERR‬‬

‫‪2‬‬

‫را ﻣﻮرد‬

‫ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻴﻢ داد‪ .‬در ﺑﺤﺚ ﻣﺪل ﺳﺎزي ﺑﻪ روش ‪ ،ER‬ﺑﺎ ﻣﻔﺎﻫﻴﻢ‬ ‫ﻣﻮﺟﻮدﻳﺖ‪ ،‬ﺻﻔﺎت و ارﺗﺒﺎط آﺷﻨﺎ ﺷﺪه و ﺳﭙﺲ ﻧﺤﻮه رﺳﻢ ﻧﻤﻮدار را در اﻳﻦ روش‬ ‫ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻴﻢ داد و ﭘﺲ از آن ﻣﺸﻜﻼت روش‬ ‫در اداﻣﻪ ﻣﺪل ﺳﺎزي ﺑﻪ روش‬

‫‪ERR‬‬

‫‪ER‬‬

‫را ﺷﺮح ﺧﻮاﻫﻴﻢ داد‪.‬‬

‫را ﺗﻮﺿﻴﺢ داده و ﻣﻄﺎﻟﺒﻲ در ﺧﺼﻮص ﻧﺤﻮه‬

‫ﭘﻮﺷﺶ ﻣﺒﺎﺣﺚ ﺷﻲ ﮔﺮاﻳﻲ در اﻳﻦ روش را ﺑﺮﺧﻮاﻫﻴﻢ ﺷﻤﺮد‪.‬‬

‫ﻫﺪف رﻓﺘﺎري‬ ‫در اﻳﻦ ﻓﺼﻞ ﻋﻨﺎوﻳﻦ زﻳﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ‪:‬‬ ‫•‬

‫ﻣﺪل ﺳﺎزي ﻣﻌﻨﺎﻳﻲ دادهﻫﺎ‬

‫•‬

‫ﻣﺪل ﺳﺎزي ﺑﻪ روش‬

‫•‬

‫ﻧﻮع ﻣﻮﺟﻮدﻳﺖ‬

‫•‬

‫ﻧﻤﻮﻧﻪ ﻣﻮﺟﻮدﻳﺖ‬

‫•‬

‫ﺣﺎﻻت ﻳﻚ ﻣﻮﺟﻮدﻳﺖ‬

‫‪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‬‬

‫‪18‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫ﺻﻔﺎت ﻳﻚ ﻣﻮﺟﻮدﻳﺖ‬

‫•‬

‫ارﺗﺒﺎط‬

‫•‬

‫ﻧﻮع ارﺗﺒﺎط‬

‫•‬

‫ﻧﻤﻮدار‬

‫•‬

‫درﺟﻪ و ﻣﺎﻫﻴﺖ ﻧﻮع ارﺗﺒﺎط‬

‫•‬

‫ﺣﺪ ﻛﺎردﻳﻨﺎﻟﻴﺘﻲ‬

‫•‬

‫ﻣﺸﻜﻼت روش‬

‫•‬

‫ﻣﺪل ﺳﺎزي ﺑﺎ روش‬

‫•‬

‫ﺗﺠﺰﻳﻪ و ﺗﺮﻛﻴﺐ‬

‫•‬

‫ﺗﺨﺼﻴﺺ و ﺗﻌﻤﻴﻢ‬

‫•‬

‫زﻳﺮ ﻧﻮعﻫﺎي ﻫﻤﭙﻮﺷﺎ و ﻣﺠﺰا‬

‫•‬

‫دﺳﺘﻪ ﺑﻨﺪي و وراﺛﺖ‬

‫•‬

‫ﺗﺠﻤﻊ‬

‫‪ER‬‬

‫‪ER‬‬ ‫‪EER‬‬

‫‪ -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‬‬

‫ﻣﺪﻝ ﺳﺎﺯﻱ ﻣﻌﻨﺎﻳﻲ ﺩﺍﺩﻩﻫﺎ‬ ‫•‬

‫روش ﻣﻮﺟﻮدﻳﺖ‪ -‬ارﺗﺒﺎط‬

‫•‬

‫روش ﻣﻮﺟﻮدﻳﺖ‪ -‬ارﺗﺒﺎط ﺗﻮﺳﻌﻪ ﻳﺎﻓﺘﻪ‬

‫‪19‬‬

‫در اﻳﻦ ﺑﻴﻦ روش ﻣﻮﺟﻮدﻳﺖ‪ -‬ارﺗﺒﺎط )‪ (ER‬ﻛﻪ از اﺑﺘﺪا ﺑﻪ ﻋﻨﻮان روش ﻣﺪل ﺳﺎزي‬ ‫ﻣﻌﻨﺎﻳﻲ در ﭘﺎﻳﮕﺎه ﻫﺎي داده راﺑﻄﻪ اي ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﮔﺮﻓﺘﻪ اﺳﺖ ﺑﻴﺸﺘﺮ ﻣﻮرد ﺑﺮرﺳﻲ‬ ‫ﻗﺮار ﺧﻮاﻫﺪ ﮔﺮﻓﺖ‪.‬‬

‫‪ -2‬ﻣﺪﻟﺴﺎزي ﺑﻪ روش‬ ‫ﻣﺪل ﺳﺎزي ﺑﻪ روش‬

‫‪ER‬‬

‫‪ER‬‬

‫ﻳﻜﻲ از اﺑﺰارﻫﺎي ﻣﺪل ﺳﺎزي ﻣﻌﻨﺎﻳﻲ در ﭘﺎﻳﮕﺎه داده اﺳﺖ ﻛﻪ‬

‫در ﺳﺎل ‪ 1976‬ﺗﻮﺳﻂ آﻗﺎي‬ ‫ﭘﻴﺸﺮﻓﺖ ﻛﺮد‪ .‬ﺗﻌﺮﻳﻒ‬

‫‪Chen‬‬

‫‪Chen‬‬ ‫‪2‬‬

‫در‬

‫‪MIT‬‬

‫اراﺋﻪ ﮔﺮدﻳﺪ و ﺑﻪ ﻣﺮور زﻣﺎن اﻳﻦ اﺑﺰار‬

‫از ﺑﺎﻧﻚ اﻃﻼﻋﺎت ﻋﺒﺎرت ﺑﻮد از ﺗﻌﺪادي ﭘﺪﻳﺪه‬

‫‪1‬‬

‫‪3‬‬

‫)ﻣﻮﺟﻮدﻳﺖ( داراي ﺻﻔﺎت ﻣﺸﺨﺺ و ارﺗﺒﺎط ﺑﻴﻦ ﭘﺪﻳﺪهﻫﺎ‪ .‬در اﻳﻦ روش‪ ،‬ﺳﻪ‬ ‫‪4‬‬

‫ﻣﻔﻬﻮم ﻣﻌﻨﺎﻳﻲ زﻳﺮ وﺟﻮد دارد‪:‬‬ ‫•‬

‫ﻧﻮع ﻣﻮﺟﻮدﻳﺖ‬

‫‪5‬‬

‫‪6‬‬

‫•‬

‫ﺻﻔﺖ‬

‫•‬

‫ﻧﻮع ارﺗﺒﺎط‬

‫‪7‬‬

‫در اداﻣﻪ ﻫﺮ ﻳﻚ از ﻣﻔﺎﻫﻴﻢ ﻣﺬﻛﻮر را ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻴﻢ داد‪.‬‬

‫‪ 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‬‬

‫‪20‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫در ﻳﻚ ﻣﺤﻴﻂ ﻛﺎري دﺷﻮار ﻣﻲ ﺑﺎﺷﺪ‪ .‬ﺑﻪ ﻃﻮر ﻛﻠﻲ ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ داراي‬ ‫ﺧﺼﻮﺻﻴﺎت زﻳﺮ ﻣﻲ ﺑﺎﺷﺪ ﻳﺎ ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ ﻻزم اﺳﺖ اﻃﻼﻋﺎت زﻳﺮ در ﻣﻮرد ﻫﺮ ﻧﻮع‬ ‫ﻣﻮﺟﻮدﻳﺘﻲ ﺑﺪﺳﺖ آﻳﺪ‪:‬‬ ‫•‬

‫ﻧﺎم ﻣﻮﺟﻮدﻳﺖ )ﻳﺎ ﭘﺪﻳﺪه(‬

‫•‬

‫ﻣﻌﻨﺎي ﻣﺸﺨﺺ‬

‫•‬

‫ﻣﺠﻤﻮﻋﻪاي از ﺻﻔﺎت‬

‫•‬

‫ﻣﺠﻤﻮﻋﻪاي از ﻧﻤﻮﻧﻪﻫﺎ‬

‫•‬

‫ﺣﺎﻟﺖ ﻛﻨﺶ ﮔﺮي ﻳﺎ ﻛﻨﺶ ﭘﺬﻳﺮي‬

‫•‬

‫ﻋﺪم واﺑﺴﺘﮕﻲ و ﻳﺎ واﺑﺴﺘﮕﻲ ﺑﻪ ﻳﻚ ﻧﻮع دﻳﮕﺮ‬

‫ﺑﺮاي ﻣﺜﺎل در ﻳﻚ ﺳﻴﺴﺘﻢ اﻃﻼﻋﺎت اﺗﻮﻣﺒﻴﻞ اﻧﻮاع ﻣﻮﺟﻮدﻳﺖﻫﺎ ﻣﻲ ﺗﻮاﻧﻨﺪ ﺷﺎﻣﻞ‬ ‫ﻣﻮﺟﻮدﻳﺖ اﺗﻮﻣﺒﻴﻞ‪ ،‬ﻛﺸﻮر ﺳﺎزﻧﺪه )ﻳﺎ ﻣﺼﺮف ﻛﻨﻨﺪه( و‪ ...‬ﺑﺎﺷﻨﺪ‪ .‬در ﻳﻚ ﺳﻴﺴﺘﻢ‬ ‫آﻣﻮزﺷﻲ اﻧﻮاع ﻣﻮﺟﻮدﻳﺖ ﻫﺎ ﻣﻲ ﺗﻮاﻧﻨﺪ ﺷﺎﻣﻞ ﻣﻮﺟﻮدﻳﺖ ﻫﺎي درس‪ ،‬داﻧﺸﺠﻮ‪ ،‬اﺳﺘﺎد‪،‬‬ ‫ﻛﻼس و‪ ...‬ﺑﺎﺷﻨﺪ‪.‬‬

‫‪ 1-1-2‬ﻧﻤﻮﻧﻪ ﻣﻮﺟﻮدﻳﺖ‬

‫‪1‬‬

‫ﺗﻤﺎم ﻧﻤﻮﻧﻪﻫﺎي ﻣﺸﺨﺺ )در ﻣﻮاردي ﻣﺘﻤﺎﻳﺰ( ﻫﺮ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ از ﻳﻚ ﻣﺤﻴﻂ‬ ‫‪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‬‬

‫ﻣﺪﻝ ﺳﺎﺯﻱ ﻣﻌﻨﺎﻳﻲ ﺩﺍﺩﻩﻫﺎ‬

‫‪21‬‬

‫ﺿﻌﻴﻒ )واﺑﺴﺘﻪ( ﺑﺎﺷﺪ‪ .‬در اداﻣﻪ ﺑﻪ ﺷﺮح ﺣﺎﻻت ﻣﺬﻛﻮر ﺧﻮاﻫﻴﻢ ﭘﺮداﺧﺖ‪:‬‬

‫ﻣﻮﺟﻮدﻳﺖ ﻗﻮي ﻳﺎ ﻣﺴﺘﻘﻞ‬

‫‪1‬‬

‫ﻣﻮﺟﻮدﻳﺘﻲ اﺳﺖ ﻛﻪ ﻣﺴﺘﻘﻞ از ﻫﺮ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ دﻳﮕﺮ و ﺑﻪ ﺧﻮدي ﺧﻮد در ﻳﻚ‬ ‫ﻣﺤﻴﻂ ﻣﺸﺨﺺ ﻣﻄﺮح ﺑﺎﺷﺪ‪ .‬اﻳﻦ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ واﺑﺴﺘﮕﻲ ﺧﺎﺻﻲ ﺑﻪ ﺳﺎﻳﺮ‬ ‫ﻣﻮﺟﻮدﻳﺖ ﻫﺎي ﻣﺤﻴﻂ ﻋﻤﻠﻴﺎﺗﻲ ﻧﺪارد‪.‬‬

‫ﻣﻮﺟﻮدﻳﺖ ﺿﻌﻴﻒ ﻳﺎ واﺑﺴﺘﻪ‬

‫‪2‬‬

‫ﻣﻮﺟﻮدﻳﺖ ﺿﻌﻴﻒ ﻣﻮﺟﻮدﻳﺘﻲ اﺳﺖ ﻛﻪ وﺟﻮدش واﺑﺴﺘﻪ ﺑﻪ ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ دﻳﮕﺮ‬ ‫)ﻣﻮﺟﻮدﻳﺖ ﻗﻮي( اﺳﺖ‪ .‬ﻻزم ﺑﺬﻛﺮ اﺳﺖ ﻛﻪ اﮔﺮ ﻣﻮﺟﻮدﻳﺖ ﻗﻮي از ﻣﺪل ﻣﻌﻨﺎﻳﻲ‬ ‫ﺣﺬف ﮔﺮدد‪ ،‬وﺟﻮد ﻣﻮﺟﻮدﻳﺖ ﺿﻌﻴﻒ ﺑﻲ ﻣﻌﻨﺎ ﺑﻮده و ﻣﻮﺟﻮدﻳﺖ ﺿﻌﻴﻒ ﻧﻴﺰ ﺣﺬف‬ ‫ﻣﻲ ﮔﺮدد‪.‬‬ ‫ﻧﻜﺘﻪ‪ :‬ﻣﺴﺘﻘﻞ ﺑﻮدن ﻳﺎ واﺑﺴﺘﻪ ﺑﻮدن ﻣﻮﺟﻮدﻳﺖﻫﺎ در ﻣﺤﻴﻂ ﻋﻤﻠﻴﺎﺗﻲ ﻛﻪ ﻣﻲ ﺧﻮاﻫﻴﻢ‬ ‫ﺑﺮاي آن ﭘﺎﻳﮕﺎه داده اي ﻃﺮاﺣﻲ ﻛﻨﻴﻢ‪ ،‬ﺗﻌﻴﻴﻦ ﻣﻲ ﮔﺮدد و اﻳﻦ ﻣﻮﺿﻮع ارﺗﺒﺎﻃﻲ ﺑﻪ‬ ‫واﺑﺴﺘﮕﻲ و ﻳﺎ اﺳﺘﻘﻼل ﻣﻮﺟﻮدﻳﺖ در دﻧﻴﺎي واﻗﻌﻲ ﻧﺪارد‪.‬‬

‫‪ 2-2‬ﺻﻔﺖ‬ ‫ﻫﺮ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺷﺎﻣﻞ ﻣﺠﻤﻮﻋﻪ اي از ﺻﻔﺎت )ﻣﺸﺨﺼﺎت( ﻣﺮﺑﻮط ﺑﻪ آن ﻣﻮﺟﻮدﻳﺖ‬ ‫اﺳﺖ ﻛﻪ ﺣﺎﻟﺖ ﻳﺎ وﺿﻊ آن ﻣﻮﺟﻮدﻳﺖ را ﺗﻮﺻﻴﻒ ﻣﻲ ﻛﻨﺪ‪ .‬اﻳﻦ ﺻﻔﺎت ﺧﻮد داراي‬ ‫رده ﺑﻨﺪي ﻫﺎي ﻣﺨﺘﻠﻔﻲ ﻫﺴﺘﻨﺪ ﻛﻪ در ذﻳﻞ آﻣﺪه اﺳﺖ‪:‬‬

‫رده ﺑﻨﺪي ﺻﻔﺖ‬ ‫ﺻﻔﺎت ﻳﻚ ﻣﻮﺟﻮدﻳﺖ ﺑﺮ ﺣﺴﺐ ﻣﻔﻬﻮم آﻧﻬﺎ ﺑﻪ دﺳﺘﻪﻫﺎي زﻳﺮ ﺗﻘﺴﻴﻢ ﻣﻲ ﮔﺮدﻧﺪ‪:‬‬ ‫•‬ ‫•‬

‫‪3‬‬

‫ﺳﺎده ﻳﺎ ﻣﺮﻛﺐ‬ ‫‪1‬‬

‫‪4‬‬

‫ﺗﻚ ﻣﻘﺪاري ﻳﺎ ﭼﻨﺪ ﻣﻘﺪاري‬

‫‪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‬‬

‫‪22‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬ ‫•‬ ‫•‬

‫ﺷﻨﺎﺳﻪ ﻳﺎ ﻧﺎﺷﻨﺎﺳﻪ‬ ‫‪3‬‬

‫ﻫﻴﭻ ﻣﻘﺪار ﭘﺬﻳﺮ ﻳﺎ ﻫﻴﭻ ﻣﻘﺪار ﻧﺎﭘﺬﻳﺮ‬ ‫ذﺧﻴﺮه ﺷﺪه )واﻗﻌﻲ‪ 4‬ﻳﺎ ﻣﺒﻨﺎ( ﻳﺎ ﻣﺸﺘﻖ‬

‫‪5‬‬

‫در اداﻣﻪ ﻫﺮ ﻳﻚ از رده ﺑﻨﺪي ﺻﻔﺎت )ﺑﺮ اﺳﺎس آﻧﭽﻪ ﻛﻪ در ﺑﺎﻻ آﻣﺪه اﺳﺖ( ﻣﻮرد‬ ‫ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ‪.‬‬

‫‪ 1-2-2‬ﺻﻔﺖ ﺳﺎده ﻳﺎ ﻣﺮﻛﺐ‬ ‫ﺻﻔﺖ ﺳﺎده‬ ‫ﺻﻔﺘﻲ اﺳﺖ ﻛﻪ ﻣﻘﺪار آن ﺗﺠﺰﻳﻪ ﻧﺸﺪﻧﻲ ﻣﻲ ﺑﺎﺷﺪ‪ ،‬ﺑﻪ اﻳﻦ ﻣﻌﻨﺎ ﻛﻪ اﮔﺮ ﻣﻘﺪار آﻧﺮا ﺑﻪ‬ ‫اﺟﺰاﺋﻲ ﺗﺠﺰﻳﻪ ﻛﻨﻴﻢ‪ ،‬ﻣﻘﺎدﻳﺮ ﻫﺮ ﺟﺰء ﻓﺎﻗﺪ ﻣﻌﻨﺎ ﻣﻲ ﺑﺎﺷﺪ‪ .‬ﻣﺎﻧﻨﺪ اﺳﻢ درﺧﺖ‪.‬‬

‫ﺻﻔﺖ ﻣﺮﻛﺐ‬ ‫ﺻﻔﺘﻲ ﻛﻪ از ﭼﻨﺪ ﺻﻔﺖ ﺳﺎده ﺗﺸﻜﻴﻞ ﺷﺪه و ﺗﺠﺰﻳﻪ ﺷﺪﻧﻲ ﻣﻲ ﺑﺎﺷﺪ‪ .‬ﻣﺎﻧﻨﺪ ﺻﻔﺖ‬ ‫آدرس ﻛﻪ ﻣﻲ ﺗﻮاﻧﺪ ﺷﺎﻣﻞ ﻧﺎم ﻛﺸﻮر‪ ،‬اﺳﺘﺎن‪ ،‬ﺷﻬﺮ‪ ،‬ﻣﻨﻄﻘﻪ و‪ ...‬ﺑﺎﺷﺪ‪ .‬ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ‬ ‫ﻛﻪ ﻣﻲ ﺗﻮان ﺑﺮ ﺣﺴﺐ ﻧﻮع ﻧﻴﺎز ﺑﺠﺎي اﺳﺘﻔﺎده از ﻳﻚ ﺻﻔﺖ ﻣﺮﻛﺐ‪ ،‬ﺻﻔﺖ ﻣﺬﻛﻮر را‬ ‫ﺑﻪ ﭼﻨﺪﻳﻦ ﺻﻔﺖ ﺳﺎده ﺷﻜﺴﺖ‪.‬‬

‫‪ 2-2-2‬ﺻﻔﺖ ﺗﻚ ﻣﻘﺪاري ﻳﺎ ﭼﻨﺪ ﻣﻘﺪاري‬ ‫ﺻﻔﺖ ﺗﻚ ﻣﻘﺪاري‬ ‫ﺻﻔﺖ ﺗﻚ ﻣﻘﺪاري ﺻﻔﺘﻲ اﺳﺖ ﻛﻪ ﺣﺪاﻛﺜﺮ ﻳﻚ ﻣﻘﺪار از ﻣﻴﺪان ﻣﻘﺎدﻳﺮ را ﺑﺮاي ﻳﻚ‬ ‫ﻧﻤﻮﻧﻪ از ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻣﻲ ﮔﻴﺮد‪ .‬ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ ﻣﻘﺪار آن ﺻﻔﺖ ﺑﺮاي ﻧﻮع‬ ‫ﻣﻮﺟﻮدﻳﺖ ﻣﻮرد ﻧﻈﺮ‪ ،‬ﻳﻚ ﻣﻘﺪار ﻣﺸﺨﺺ از ﻣﻴﺪان ﻣﻘﺎدﻳﺮ ﻣﺮﺑﻮط ﺑﻪ آن ﺻﻔﺖ‬ ‫ﻣﻲ ﺑﺎﺷﺪ‪ .‬ﻣﺜﻼ ﺑﺮاي ﻫﺮ ﺷﺨﺺ ﻳﻚ ﻛﺪ ﻣﻠﻲ وﺟﻮد دارد‪.‬‬ ‫‪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‬‬

‫ﻣﺪﻝ ﺳﺎﺯﻱ ﻣﻌﻨﺎﻳﻲ ﺩﺍﺩﻩﻫﺎ‬

‫‪23‬‬

‫ﺻﻔﺖ ﭼﻨﺪ ﻣﻘﺪاري‬ ‫ﺻﻔﺘﻲ اﺳﺖ ﻛﻪ ﺑﻴﺶ از ﻳﻚ ﻣﻘﺪار از ﻣﻴﺪان ﻣﻘﺎدﻳﺮ را ﺑﺮاي ﺣﺪاﻗﻞ ﻳﻚ ﻧﻤﻮﻧﻪ از ﻧﻮع‬ ‫ﻣﻮﺟﻮدﻳﺖ در ﺑﺮ ﻣﻲ ﮔﻴﺮد‪ .‬ﻣﺎﻧﻨﺪ ﺻﻔﺖ ﻣﺪرك ﺗﺤﺼﻴﻠﻲ ﺑﺮاي ﻳﻚ ﺷﺨﺺ ﻛﻪ ﻣﻤﻜﻦ‬ ‫اﺳﺖ ﭼﻨﺪ ﻣﻘﺪاري ﺑﺎﺷﺪ‪ ،‬ﻟﻴﺴﺎﻧﺲ‪ ،‬ﻓﻮق ﻟﻴﺴﺎﻧﺲ و‪....‬‬ ‫ﺻﻔﺖ‬

‫ﻣﺮﻛﺐ‬

‫ﺳﺎده‬

‫ﺗﻚ ﻣﻘﺪاري‬

‫ﭼﻨﺪ ﻣﻘﺪاري‬

‫ﺷﻜﻞ ‪ 1-2‬ﻧﻤﻮدار ارﺗﺒﺎط دﻫﻨﺪه ردهﻫﺎي ﻣﺨﺘﻠﻒ ﺻﻔﺎت‬

‫‪ 3-2-2‬ﺷﻨﺎﺳﻪ‬ ‫ﺻﻔﺖ ﺷﻨﺎﺳﻪ ﻣﻮﺟﻮدﻳﺖ‪ ،‬ﺻﻔﺘﻲ اﺳﺖ ﻛﻪ ﺑﺎﻳﺪ ﻳﻜﺘﺎﻳﻲ ﻣﻘﺪار داﺷﺘﻪ ﺑﺎﺷﺪ و ﺣﺘﻲ‬ ‫اﻻﻣﻜﺎن ﻃﻮل ﻣﻘﺎدﻳﺮش ﻛﻮﺗﺎه ﺑﺎﺷﺪ‪.‬‬

‫ﻣﻔﻬﻮم ﻣﻘﺪار ﻫﻴﭻ )ﻫﻴﭻ ﻣﻘﺪار(‬ ‫اﻳﻦ ﻣﻔﻬﻮم از ﻣﻔﺎﻫﻴﻢ ﻣﺪل راﺑﻄﻪ اي اﺳﺖ‪ ،‬ﻣﻘﺪار ﻫﻴﭻ ﻳﻌﻨﻲ ﻣﻘﺪار ﻧﺎﺷﻨﺎﺧﺘﻪ‪ ،‬ﻣﻘﺪار‬ ‫ﺗﻌﺮﻳﻒ ﻧﺸﺪه‪ .‬ﻣﻤﻜﻦ اﺳﺖ ﻣﻘﺪار ﻳﻚ ﺻﻔﺖ ﺑﺮاي ﺑﺮﺧﻲ از ﻧﻤﻮﻧﻪ ﻫﺎي ﻳﻚ ﻧﻮع‬ ‫ﻣﻮﺟﻮدﻳﺖ‪ ،‬ﻧﺎﺷﻨﺎﺧﺘﻪ ﺑﺎﺷﺪ‪ .‬ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ ﺻﻔﺖ ﺷﻨﺎﺳﻪ ﻣﻮﺟﻮدﻳﺖ ﻧﻤﻲ ﺗﻮاﻧﺪ‬ ‫ﻫﻴﭻ ﻣﻘﺪار ﭘﺬﻳﺮ ﺑﺎﺷﺪ‪.‬‬

‫‪24‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪ 4-2-2‬ﺻﻔﺖ واﻗﻌﻲ ﻳﺎ ﻣﺸﺘﻖ‬ ‫ﺻﻔﺖ واﻗﻌﻲ )ذﺧﻴﺮه ﺷﺪه(‬ ‫ﺻﻔﺖ واﻗﻌﻲ آن ﺻﻔﺘﻲ اﺳﺖ ﻛﻪ ﻣﻘﺎدﻳﺮش در ﭘﺎﻳﮕﺎه دادهﻫﺎ ذﺧﻴﺮه ﺷﺪه ﺑﺎﺷﺪ‪ .‬ﺑﺎﻳﺪ‬ ‫ﺗﻮﺟﻪ داﺷﺖ ﻛﻪ ﺟﻨﺎﻧﭽﻪ ﺻﻔﺖ ﺑﻌﻨﻮان ﺷﻨﺎﺳﻪ ﻧﺒﺎﺷﺪ‪ ،‬ﻣﻲ ﺗﻮاﻧﺪ ﻣﻘﺪار ﻫﻴﭻ را ﻧﻴﺰ داﺷﺘﻪ‬ ‫ﺑﺎﺷﺪ‪.‬‬

‫ﺻﻔﺖ ﻣﺸﺘﻖ‬ ‫ﺻﻔﺘﻲ اﺳﺖ ﻛﻪ ﻣﻘﺎدﻳﺮش در ﭘﺎﻳﮕﺎه دادهﻫﺎ ذﺧﻴﺮه ﺷﺪه ﻧﺒﺎﺷﺪ‪ .‬اﻳﻦ ﺻﻔﺖ وﺟﻮد‬ ‫ﺧﺎرﺟﻲ ﻧﺪارد‪ .‬وﻟﻲ از روي دﻳﮕﺮ ﺻﻔﺎت ﻗﺎﺑﻞ ﻣﺤﺎﺳﺒﻪ اﺳﺖ‪ .‬ﻣﺎﻧﻨﺪ ﺳﻦ اﻓﺮاد ﻛﻪ از‬ ‫روي ﺗﺎرﻳﺦ ﺗﻮﻟﺪ ﻗﺎﺑﻞ ﻣﺤﺎﺳﺒﻪ اﺳﺖ‪ .‬ﻫﺮ ﺻﻔﺖ ﺟﻨﺒﻪ ﻫﺎي زﻳﺮ را دارد‪:‬‬ ‫•‬

‫ﻧﺎم‬

‫•‬

‫ﻣﻌﻨﺎ‬

‫•‬

‫ﻣﻴﺪان )داﻣﻨﻪ( ﻣﻘﺎدﻳﺮ‬

‫•‬

‫ﻧﻮع ﻣﻘﺪار‬

‫•‬

‫ﻃﻮل ﻣﻘﺪار )ﺻﺮﻳﺢ ﻳﺎ ﺻﻔﺘﻲ(‬

‫•‬

‫ﻳﻚ ﻳﺎ ﭼﻨﺪ ﻣﺤﺪودﻳﺖ ﻧﺎﻇﺮ ﺑﻪ ﺻﻔﺖ‬

‫‪ 3-2‬ارﺗﺒﺎط‬

‫‪1‬‬

‫ﻳﻜﻲ از ﻣﻔﺎﻫﻴﻢ ﺑﺴﻴﺎر ﻣﻬﻢ در ﻣﺪل ﺳﺎزي ﻣﻌﻨﺎﻳﻲ داده ﻫﺎ ﻣﻔﻬﻮم ارﺗﺒﺎط ﻳﺎ ﺑﺴﺘﮕﻲ‬ ‫اﺳﺖ‪ ،‬ﺑﻪ ﻫﻤﻴﻦ ﻣﻨﻈﻮر ﺑﻪ ﺗﻌﺮﻳﻒ ﻧﻮع ارﺗﺒﺎط ﻣﻲ ﭘﺮدازﻳﻢ‪:‬‬

‫ﻧﻮع ارﺗﺒﺎط‬ ‫ﺋﻮع ارﺗﺒﺎط ﻋﺒﺎرت اﺳﺖ از ﺗﻌﺎﻣﻞ‪ 2‬ﺑﻴﻦ‬

‫‪n‬‬

‫ﻧﻮع ﻣﻮﺟﻮدﻳﺖ )‪ (n≥1‬و ﻣﺎﻫﻴﺘﺎ ﻧﻮﻋﻲ‬

‫ﺑﺴﺘﮕﻲ ﺑﻴﻦ اﻧﻮاع ﻣﻮﺟﻮدﻳﺖﻫﺎﺳﺖ‪ .‬ﺑﻪ ﺗﻌﺒﻴﺮي دﻳﮕﺮ ﻋﻤﻠﻲ اﺳﺖ ﻛﻪ ﺑﻴﻦ اﻧﻮاع‬ ‫ﻣﻮﺟﻮدﻳﺖ ﻫﺎ ﺟﺎري ﺑﻮده‪ ،‬ﻫﺴﺖ ﻳﺎ ﺧﻮاﻫﺪ ﺑﻮد‪ .‬ﻫﺮ ﻧﻮع ارﺗﺒﺎط ﻳﻚ ﻣﻌﻨﺎي ﻣﺸﺨﺺ‬ ‫داﺷﺘﻪ و ﺑﺎ ﻳﻚ ﻧﺎم ﺑﻴﺎن ﻣﻲ ﺷﻮد‪.‬‬ ‫‪1. As s o c i a t i o n‬‬ ‫‪2. In t e r a c t i o n‬‬

‫ﻣﺪﻝ ﺳﺎﺯﻱ ﻣﻌﻨﺎﻳﻲ ﺩﺍﺩﻩﻫﺎ‬

‫‪ -3‬ﻧﻤﻮدار‬ ‫ﻧﻤﻮدار‬

‫‪25‬‬

‫‪ER‬‬

‫در واﻗﻊ ﻧﻤﻮداري اﺳﺖ ﻛﻪ در آن ﺳﻪ ﻣﻔﻬﻮم اﺳﺎﺳﻲ ﻣﺪل‬

‫‪ER‬‬

‫ﻳﻌﻨﻲ‬

‫ﻣﻮﺟﻮدﻳﺖ‪ ،‬ﺻﻔﺖ و ﻧﻮع ارﺗﺒﺎط ﻧﻤﺎﻳﺶ داده ﻣﻲ ﺷﻮﻧﺪ‪ .‬در واﻗﻊ ﻧﻤﻮدار‬

‫‪ER‬‬

‫اوﻟﻴﻦ‬

‫‪ER‬‬

‫ﻃﺮح ﭘﺎﻳﮕﺎه داده ﻫﺎ و ﻣﺪل ﻛﻠﻲ آن در ﺑﺎﻻﺗﺮﻳﻦ ﺳﻄﺢ اﻧﺘﺰاع ﻣﻲ ﺑﺎﺷﺪ‪.‬‬ ‫ﻣﻔﻬﻮم ﻧﻤﺎد در ﻣﺪل‬

‫‪ER‬‬

‫ﻧﻮع ﻣﻮﺟﻮدﻳﺖ‪ :‬ﭘﺪﻳﺪهﻫﺎي ﻣﻮﺟﻮد ﻛﻪ‬ ‫وﺟﻮد ﺧﺎرﺟﻲ دارﻧﺪ )‪ (Entity‬را ﺑﺎ‬ ‫ﻣﺴﺘﻄﻴﻞ ﻧﻤﺎﻳﺶ ﻣﻲدﻫﻨﺪ‪.‬‬ ‫ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺿﻌﻴﻒ )واﺑﺴﺘﻪ(‬

‫ﻧﻮع ارﺗﺒﺎط )‪ :(Relationship‬ﻋﺎﻣﻞ ارﺗﺒﺎط‬ ‫ﻣﻮﺟﻮدﻳﺖﻫﺎ را ﺑﺎ ﻟﻮزي ﻧﻤﺎﻳﺶ ﻣﻲدﻫﻨﺪ‪.‬‬ ‫ﻧﻮع ارﺗﺒﺎط ﻣﻮﺟﻮدﻳﺖ ﺿﻌﻴﻒ ﺑﺎ ﻗﻮي‬

‫ﻣﺸﺎرﻛﺖ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ در ﻧﻮع ارﺗﺒﺎط‬

‫ﻣﺸﺎرﻛﺖ اﻟﺰاﻣﻲ‬

‫ﺻﻔﺖ‪ :‬ﺻﻔﺖﻫﺎي ﻫﺮ ﻣﻮﺟﻮدﻳﺖ را ﺗﻮﺳﻂ‬ ‫اﺷﻜﺎل ﺑﻴﻀﻲ ﺑﻪ آن ﻣﺘﺼﻞ ﻣﻲﻧﻤﺎﻳﻴﻢ‪.‬‬

‫ﻧﻤﺎد در ﻣﺪل‬

‫‪ER‬‬

‫‪26‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﺻﻔﺖ ﺷﻨﺎﺳﻪ اول‬

‫ﺻﻔﺖ ﺷﻨﺎﺳﻪ دوم )در ﺻﻮرت وﺟﻮد(‬ ‫ﺻﻔﺖ ﺷﻨﺎﺳﻪ ﻣﺮﻛﺐ )ﻣﺜﻼ درﺧﺘﻲ(‬

‫ﺻﻔﺖ ﺟﻨﺪ ﻣﻘﺪاري‬ ‫ﺻﻔﺖ ﻣﺮﻛﺐ‬

‫ﺻﻔﺖ ﻣﺸﺘﻖ‬ ‫)ﻣﺠﺎزي ﻳﺎ ﻣﺤﺎﺳﺒﻪ ﺷﺪﻧﻲ(‬ ‫ﭼﻨﺪي ارﺗﺒﺎط‬

‫‪E2‬‬

‫‪N‬‬ ‫‪1‬‬ ‫‪M‬‬

‫ﺷﻜﻞ ‪ 2-2‬ﻧﻤﺎدﻫﺎي رﺳﻢ‬

‫ﻫﺮ ﻧﻤﻮدار‬

‫‪ER‬‬

‫‪R‬‬

‫‪1‬‬ ‫‪1‬‬ ‫‪E1‬‬ ‫‪N‬‬

‫ﻧﻤﻮدار ‪ER‬‬

‫ﭘﺎﺳﺨﮕﻮي ﻣﺠﻤﻮﻋﻪ ﻣﺸﺨﺼﻲ از ﻧﻴﺎزﻫﺎي ﻛﺎرﺑﺮان اﺳﺖ و ﺑﺪﻳﻬﻲ‬

‫اﺳﺖ ﻛﻪ اﻳﻦ ﻧﻤﻮدار ﺑﺎ ﺗﻐﻴﻴﺮ و رﺷﺪ ﻧﻴﺎزﻫﺎي ﻛﺎرﺑﺮان ﺗﻐﻴﻴﺮ ﻳﺎﻓﺘﻪ و ﺗﻮﺳﻌﻪ داده ﻣﻲﺷﻮد‪.‬‬ ‫ﺑﺮاي رﺳﻢ اﻳﻦ ﻧﻮع ﻧﻤﻮدار ﻧﻴﺎز ﺑﻪ ﻧﻤﺎدﻫﺎﻳﻲ اﺳﺖ ﻛﻪ اﻳﻦ ﻧﻤﺎدﻫﺎ در ﺟﺪول ذﻳﻞ آﻣﺪه‬ ‫اﺳﺖ‪ .‬ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ ﺗﻤﺎﻣﻲﻧﻤﺎدﻫﺎي ﻣﻮرد اﺳﺘﻔﺎده ﺑﺮاي رﺳﻢ ﻧﻤﻮدار ‪ ER‬در رﺳﻢ‬ ‫ﻧﻤﻮدار ‪ EER‬ﻧﻴﺰ ﻣﻌﺘﺒﺮ ﺑﻮده و ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﻲﮔﻴﺮﻧﺪ‪ .‬ﺑﺮاي درك ﺑﻬﺘﺮ ﻧﺤﻮه اﺳﺘﻔﺎده‬ ‫از ﻧﻤﺎدﻫﺎ در رﺳﻢ ﻧﻤﻮدار ‪ ،ER‬ﺑﻪ ﻧﻤﻮدار زﻳﺮ ﻛﻪ ﺑﻴﺎﻧﮕﺮ وﺿﻌﻴﺖ ﻳﻚ ﺳﻴﺴﺘﻢ داﻧﺸﺠﻮﻳﻲ‬ ‫اﺳﺖ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ‪:‬‬

‫ﻣﺪﻝ ﺳﺎﺯﻱ ﻣﻌﻨﺎﻳﻲ ﺩﺍﺩﻩﻫﺎ‬ ‫ﺷﻤﺎره داﻧﺸﺠﻮﻳﻲ‬

‫ﻧﺎم‬

‫‪27‬‬

‫درﺟﻪ داﻧﺸﮕﺎﻫﻲ‬

‫داﻧﺸﺠﻮ‬

‫درس‬

‫ﻧﺎم‬

‫اﺳﺘﺎد‬

‫رﺷﺘﻪ ﺗﺤﺼﻴﻠﻲ‬ ‫ﺷﻜﻞ ‪ 3-2‬ﻳﻚ ﻧﻤﻮﻧﻪ از ﻧﻤﻮدار ‪ ER‬ﺑﺮاي ﻧﻤﺎﻳﺶ ﺳﻴﺴﺘﻢ داﻧﺸﺠﻮﻳﻲ‬

‫ﻳﻜﻲ از ﻧﻜﺎت ﻣﻬﻢ در رﺳﻢ ﻧﻤﻮدار ‪ ،ER‬ﻣﻌﻨﺎي ارﺗﺒﺎط ﺑﻴﻦ ﻋﻨﺎﺻﺮ اﺳﺖ‪ .‬ﺑﺪﻳﻦ‬ ‫ﺻﻮرت ﻛﻪ ﻣﻌﻨﺎي ارﺗﺒﺎط ))اﻧﺘﺨﺎب(( ﺑﺎ ﻣﻌﻨﺎي ارﺗﺒﺎط ))ﺣﺬف(( ﻓﺮق دارد‪ .‬در اداﻣﻪ‬ ‫ﻧﻤﻮﻧﻪ ا ي از ﻣﻌﻨﺎي ارﺗﺒﺎط ﺑﻴﻦ ﻣﻮﺟﻮدﻳﺖ ﻫﺎ ﺗﺮﺳﻴﻢ ﺷﺪه اﺳﺖ‪.‬‬ ‫ﺗﺮم‬

‫ﺳﺎل آﻣﻮزﺷﻲ‬

‫اﻧﺘﺨﺎب‬

‫درس‬

‫ﺗﺮم‬

‫ﺣﺬف‬

‫ﺳﺎل آﻣﻮزﺷﻲ‬ ‫ﺷﻜﻞ ‪ 4-2‬ﻧﻤﻮﻧﻪاي از ﻣﻌﻨﺎي ارﺗﺒﺎط ﺑﻴﻦ ﻋﻨﺎﺻﺮ‬

‫ﻧﻤﺮه‬

‫داﻧﺸﺠﻮ‬

‫ﻧﻮع‬

‫‪28‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪ 1-3‬درﺟﻪ ﻧﻮع ارﺗﺒﺎط‬ ‫درﺟﻪ ارﺗﺒﺎط ﺑﺴﺘﮕﻲ ﺑﻪ ﺗﻌﺪاد ﻣﻮﺟﻮدﻳﺘﻬﺎ ﻣﺮﺗﺒﻂ ﺑﻪ ﻫﻢ دارد‪ .‬ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ ﺗﻌﺪاد‬ ‫ﺷﺮﻛﺖ ﻛﻨﻨﺪﮔﺎن در ﻳﻚ ﻧﻮع ارﺗﺒﺎط را درﺟﻪ آن ارﺗﺒﺎط ﻣﻲﮔﻮﻳﻨﺪ‪.‬‬ ‫درﺟﻪ‬

‫ﺗﻌﺪاد ﻣﻮﺟﻮدﻳﺖﻫﺎي‬ ‫ﺷﺮﻛﺖ ﻛﻨﻨﺪه در ارﺗﺒﺎط‬

‫ﻻﺗﻴﻦ‬

‫ﻓﺎرﺳﻲ‬

‫‪1‬‬

‫‪Unary‬‬

‫ﻳﮕﺎﻧﻲ‬

‫‪2‬‬

‫‪Binary‬‬

‫دوﮔﺎﻧﻲ‬

‫‪3‬‬

‫‪Ternary‬‬

‫ﺳﻪ ﮔﺎﻧﻲ‬

‫…‬ ‫‪N‬‬

‫…‬ ‫‪n-ary‬‬

‫…‬ ‫ﭼﻨﺪ ﮔﺎﻧﻲ‬

‫در اداﻣﻪ ﻫﺮ ﻳﻚ از درﺟﺎت ﻧﻮع ارﺗﺒﺎط ﺑﺼﻮرت ﺷﻤﺎﺗﻴﻚ رﺳﻢ ﺷﺪه و ﺗﻮﺿﻴﺢ داده‬ ‫ﻣﻲ ﺷﻮﻧﺪ‪:‬‬ ‫‪:1‬‬

‫ﻳﮕﺎﻧﻲ زﻣﺎﻧﻲ ﻛﻪ ﻳﻚ ﻧﻮع ارﺗﺒﺎط ﺑﻴﻦ ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ و ﺧﻮدش ﺑﺮﻗﺮار ﺑﺎﺷﺪ‪.‬‬ ‫درس‬

‫ه ز‬

‫‪:2‬‬

‫دوﮔﺎﻧﻲ ارﺗﺒﺎط ﺑﻴﻦ دو ﻣﻮﺟﻮدﻳﺖ‬ ‫درس‬

‫اب‬

‫دا ‬

‫‪1. U n ar y‬‬ ‫‪2. B i na r y‬‬

‫ﻣﺪﻝ ﺳﺎﺯﻱ ﻣﻌﻨﺎﻳﻲ ﺩﺍﺩﻩﻫﺎ‬

‫‪29‬‬

‫ﺳﻪ ﮔﺎﻧﻲ‪ :1‬ارﺗﺒﺎط ﺑﻴﻦ ﺳﻪ ﻣﻮﺟﻮدﻳﺖ‬ ‫دا ‬

‫اب‬

‫اد‬

‫درس‬

‫ﭼﻨﺪ ﮔﺎﻧﻲ‪ :‬ارﺗﺒﺎط ﺑﻴﻦ ﭼﻨﺪ ﻣﻮﺟﻮدﻳﺖ‬ ‫د ‬

‫در‬

‫ر‬ ‫اد‬

‫ ‬

‫ﺗﻮﺟﻪ‪ :‬ﭼﻮن ﻣﻌﻤﻮﻻً ﻣﺎدر و ﭘﺪر و ﺧﻮاﻫﺮ و ﺑﺮادر ﻳﻚ ﻋﻀﻮ ﻣﺤﺴﻮب ﻣﻲ ﺷﻮﻧﺪ‪ ،‬اﻳﻦ‬ ‫ﻧﻮع ارﺗﺒﺎط ﻣﻨﻄﻘﺎً درﺳﺖ ﻧﻴﺴﺖ‪ .‬ﺷﻜﻞ ﻣﺬﻛﻮر ﻓﻘﻂ ﺑﻌﻨﻮان ﻧﻤﻮﻧﻪ اﺳﺖ‪.‬‬

‫‪ 2-3‬ﻣﺎﻫﻴﺖ ﻧﻮع ارﺗﺒﺎط )اﺗﺼﺎل(‬ ‫اﮔﺮ دو ﻣﻮﺟﻮدﻳﺖ‬

‫‪A‬‬

‫و‪ B‬را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﻢ اﻳﻦ دو ﻣﻮﺟﻮدﻳﺖ ﺑﻪ ﻳﻜﻲ از ﺳﻪ ﺣﺎﻟﺖ‬

‫زﻳﺮ ﺑﺎ ﻫﻢ ارﺗﺒﺎط دارﻧﺪ‪.‬‬ ‫•‬

‫‪2‬‬

‫ﻳﻚ ﺑﻪ ﻳﻚ ‪ :‬ﻳﻚ ﻧﻤﻮﻧﻪ از ﻣﻮﺟﻮدﻳﺖ ‪ A‬ﺣﺪاﻛﺜﺮ ﺑﺎ ﻳﻚ ﻧﻤﻮﻧﻪ از ﻣﻮﺟﻮدﻳﺖ‬

‫‪B‬‬

‫ارﺗﺒﺎط دارد و ﺑﺮ ﻋﻜﺲ‪ .‬ﺑﻪ اﺧﺘﺼﺎر ‪ 1:1‬ﻧﻤﺎﻳﺶ ﻣﻲدﻫﻨﺪ‪.‬‬ ‫‪1. T er n a r y‬‬ ‫‪2. O n e T o O n e‬‬

‫‪30‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫ﻳﻚ ﺑﻪ ﭼﻨﺪ‪ :1‬ﻳﻚ ﻧﻤﻮﻧﻪ از ‪ A‬ﺑﺎ ‪ n‬ﻧﻤﻮﻧﻪ از ‪ B‬ارﺗﺒﺎط دارد وﻟﻲ ﻳﻚ ﻧﻤﻮﻧﻪ از‬

‫‪B‬‬

‫ﺣﺪاﻛﺜﺮ ﺑﺎ ﻳﻚ ﻧﻤﻮﻧﻪ از ‪ A‬ارﺗﺒﺎط دارد )‪ .(n>1‬ﺑﻪ اﺧﺘﺼﺎر ‪ 1: N‬ﻧﻤﺎﻳﺶ ﻣﻲدﻫﻨﺪ‪.‬‬ ‫•‬

‫ﭼﻨﺪ ﺑﻪ ﭼﻨﺪ‪:2‬ﻳﻚ ﻧﻤﻮﻧﻪ از ‪ A‬ﺑﺎ ‪ n‬ﻧﻤﻮﻧﻪ از ‪ B‬ارﺗﺒﺎط دارد و ﺑﺮ ﻋﻜﺲ )‪ .(n>1‬ﺑﻪ‬ ‫اﺧﺘﺼﺎر ‪ M: N‬ﻧﻤﺎﻳﺶ ﻣﻲدﻫﻨﺪ‪.‬‬ ‫‪1‬‬

‫‪N‬‬

‫ﻋﻀﻮﻳﺖ‬

‫‪1‬‬

‫‪1‬‬ ‫ﮔﺮوه آﻣﻮزﺷﻲ‬

‫اﺳﺘﺎد‬

‫ﻣﺪﻳﺮﻳﺖ‬ ‫‪N‬‬

‫‪M‬‬ ‫ﺗﺪرﻳﺲ‬

‫ﺷﻜﻞ ‪ 5-2‬ﻧﻤﺎﻳﺶ ﭼﻨﺪي ارﺗﺒﺎط‬

‫‪ 3-3‬ﺣﺪ ﻛﺎردﻳﻨﺎﻟﻴﺘﻲ‬

‫‪3‬‬

‫ﺣﺪ ﻛﺎردﻳﻨﺎﻟﻴﺘﻲ‪ ،‬ﺣﺪاﻗﻞ و ﺣﺪاﻛﺜﺮ ارﺗﺒﺎط ﺑﻴﻦ دو ﻣﻮﺟﻮدﻳﺖ را ﻣﻲ رﺳﺎﻧﺪ‪ .‬ﺑﺮاي درك‬ ‫ﺑﻬﺘﺮ اﻳﻦ ﻣﻔﻬﻮم ﻣﺜﺎل زﻳﺮ اراﺋﻪ ﻣﻲ ﮔﺮدد‪:‬‬

‫داﻧﺸﺠﻮ‬

‫‪1‬‬

‫‪M‬‬

‫اﺳﺘﺎد‬

‫راﻫﻨﻤﺎﻳﻲ‬ ‫)‪(0 , 1‬‬

‫)‪(0 , 10‬‬

‫ﺷﻜﻞ ‪ 6-2‬ﻧﻤﻮﻧﻪاي از ﻧﻤﺎﻳﺶ ﺣﺪ ﻛﺎردﻳﻨﺎﻟﻴﺘﻲ‬ ‫‪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‬‬

‫ﻣﺪﻝ ﺳﺎﺯﻱ ﻣﻌﻨﺎﻳﻲ ﺩﺍﺩﻩﻫﺎ‬

‫‪31‬‬

‫ﻋﺒﺎرات ذﻛﺮ ﺷﺪه در ﺑﺎﻻ و ﭘﺎﻳﻴﻦ ارﺗﺒﺎط ﺑﻴﻦ ﻋﻨﺎﺻﺮ‪ ،‬ﻫﺮ ﻳﻚ داراي ﻣﻔﺎﻫﻴﻤﻲ ﻫﺴﺘﻨﺪ‪.‬‬ ‫در اداﻣﻪ دو ﻋﺒﺎرت )‪ (0 , 10‬و )‪ (0 , 1‬ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﮔﺮﻓﺘﻪ اﻧﺪ‪:‬‬ ‫•‬

‫)‪10‬و‪ (0‬ﺑﺪﻳﻦ ﻣﻌﻨﻲ اﺳﺖ ﻛﻪ ﻳﻚ اﺳﺘﺎد ﻣﻤﻜﻦ اﺳﺖ ﺣﺪاﻛﺜﺮ ‪ 10‬داﻧﺸﺠﻮ را‬ ‫راﻫﻨﻤﺎﻳﻲ ﻛﻨﺪ و ﻳﺎ ﻫﻴﭻ داﻧﺸﺠﻮﻳﻲ ﺑﺮاي راﻫﻨﻤﺎﻳﻲ ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ )اﻳﻦ اﺳﺘﺎد‬ ‫ﭘﺮوژه اراﺋﻪ ﻧﻜﺮده اﺳﺖ(‪.‬‬

‫•‬

‫)‪1‬و‪ (0‬ﺑﺪﻳﻦ ﻣﻌﻨﻲ اﺳﺖ ﻛﻪ ﻳﻚ داﻧﺸﺠﻮ ﺣﺪاﻛﺜﺮ ﻣﻲﺗﻮاﻧﺪ ﻳﻚ اﺳﺘﺎد راﻫﻨﻤﺎ‬ ‫داﺷﺘﻪ ﺑﺎﺷﺪ و اﮔﺮ ﭘﺮوژه اﺧﺬ ﻧﻜﺮده ﺑﺎﺷﺪ ﻫﻴﭻ اﺳﺘﺎد راﻫﻨﻤﺎﻳﻲ ﻧﺪارد‪.‬‬

‫‪ -4‬ﻣﺸﻜﻼت روش‬

‫‪ER‬‬

‫در ﻧﺘﻴﺠﻪ درك ﻧﺎدرﺳﺖ و ﺗﻔﺴﻴﺮ ﻧﺎﺻﺤﻴﺢ از ﻣﻌﻨﺎي ﺑﻌﻀﻲ ارﺗﺒﺎﻃﺎت در ﻣﺪل ﺳﺎزي‬ ‫داده ﻫﺎ ﻣﺸﻜﻼﺗﻲ ﻣﻮﺳﻮم ﺑﻪ داﻣﻬﺎي ﭘﻴﻮﻧﺪي‪ 1‬ﻧﻤﺎﻳﺎن ﻣﻲ ﮔﺮدد‪ .‬اﻳﻦ داﻣﻬﺎي ﭘﻴﻮﻧﺪي‬ ‫ﻋﺒﺎرﺗﻨﺪ از‪:‬‬ ‫‪2‬‬

‫•‬

‫دام ﺣﻠﻘﻪاي‬

‫•‬

‫دام ﭼﻨﺪ ﺷﺎﺧﻪ )ﭼﺘﺮي(‬

‫•‬

‫دام ﮔﺴﻞ )ﺷﻜﺎف(‬

‫‪3‬‬

‫‪4‬‬

‫در اداﻣﻪ ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻔﻬﻮم دام ﻫﺎ‪ ،‬ﻫﺮ ﻳﻚ از اﻧﻮاع دام ﻫﺎ در روش ‪ 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‬‬

‫‪32‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪M‬‬

‫درس‬

‫اﻧﺘﺨﺎب‬

‫‪N‬‬

‫داﻧﺸﺠﻮ‬

‫‪N‬‬ ‫‪M‬‬

‫ﺗﻌﻠﻴﻢ‬

‫اراﺋﻪ‬

‫اﺳﺘﺎد‬

‫‪M‬‬

‫‪N‬‬

‫ﺷﻜﻞ ‪ 7-2‬ﻧﻤﻮﻧﻪاي از دام ﺣﻠﻘﻪاي‬

‫‪ 2-4‬دام ﭼﻨﺪ ﺷﺎﺧﻪاي‬ ‫اﻳﻦ ﻧﻮع دام وﻗﺘﻲاﻳﺠﺎد ﻣﻲ ﺷﻮد ﻛﻪ ﺑﻴﻦ ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ‬ ‫‪G‬‬

‫ارﺗﺒﺎط‬

‫‪1: N‬‬

‫‪E‬‬

‫و ﻣﻮﺟﻮدﻳﺖﻫﺎي‬

‫ﺑﺎ ﻣﺸﺎرﻛﺖ اﻟﺰاﻣﻲ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ‪ ،‬وﻟﻲ ارﺗﺒﺎط ﺑﻴﻦ‬

‫‪F‬‬

‫و‬

‫‪G‬‬

‫‪F‬‬

‫و‬

‫دﻳﺪه‬

‫ﻧﺸﺪه ﺑﺎﺷﺪ‪ .‬در اﻳﻦ ﺻﻮرت ﻧﻤﻲ ﺗﻮان وﺟﻮد ارﺗﺒﺎط ﺑﻴﻦ ‪ F‬و ‪ G‬را ﺑﺪﺳﺖ آورد‪.‬‬

‫‪1‬‬ ‫دارد‬

‫داﻧﺸﻜﺪه‬

‫‪1‬‬ ‫دارد‬ ‫‪N‬‬

‫‪N‬‬

‫ﮔﺮوه آﻣﻮزﺷﻲ‬

‫اﺳﺘﺎد‬ ‫ﺷﻜﻞ ‪ 8-2‬ﻧﻤﻮﻧﻪاي از دام ﺷﺎﺧﻪاي‬

‫‪ 3-4‬دام ﮔﺴﻞ‬ ‫اﻳﻦ ﻧﻮع دام وﻗﺘﻲ اﻳﺠﺎد ﻣﻲ ﺷﻮد ﻛﻪ ﺑﻴﻦ دو ﻧﻮع ﻣﻮﺟﻮدﻳﺖ‬

‫‪E‬‬

‫و‬

‫‪F‬‬

‫ﻳﻚ ارﺗﺒﺎط‬

‫‪1: N‬‬

‫و‬

‫ﻣﺸﺎرﻛﺖ اﻟﺰاﻣﻲ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ‪ ،‬وﻟﻲ‪ F‬ﺑﺎ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ‪ G‬ارﺗﺒﺎط ‪ 1:N‬ﺑﺎ ﻣﺸﺎرﻛﺖ‬

‫ﻣﺪﻝ ﺳﺎﺯﻱ ﻣﻌﻨﺎﻳﻲ ﺩﺍﺩﻩﻫﺎ‬

‫ﻏﻴﺮ اﻟﺰاﻣﻲ داﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬در اﻳﻦ ﺷﺮاﻳﻂ ﻧﻤﻲ ﺗﻮان ﺗﻤﺎم اﻃﻼعﻫﺎي دو ﻣﻮﺟﻮدﻳﺘﻲ ﺑﻴﻦ‬

‫‪33‬‬ ‫‪E‬‬

‫و ‪ G‬را ﺑﺪﺳﺖ آورد‪ .‬اﮔﺮ ﭼﻨﻴﻦ ﻓﺮﺿﻲ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﻮد‪ ،‬دﭼﺎر دام ﮔﺴﻞ ﺷﺪه اﻳﻢ‪.‬‬

‫‪ -5‬ﻣﺪل ﺳﺎزي ﺑﺎ روش‬

‫‪EER‬‬

‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﻲ داﻧﻴﻢ روش‬

‫‪ER‬‬

‫داراي ﻧﻘﺎط ﺿﻌﻔﻲ ﺑﻮد‪ .‬اﻳﻦ ﻧﻘﺎط ﺿﻌﻒ ﺑﻴﺸﺘﺮ زﻣﺎﻧﻲ‬

‫ﻧﻤﺎﻳﺎن ﻣﻲ ﺷﺪ ﻛﻪ ﻣﻲ ﺧﻮاﺳﺘﻴﻢ ﻳﻚ ﺳﻴﺴﺘﻢ ﺷﻲء ﮔﺮا را ﻣﺪل ﺳﺎزي ﻧﻤﺎﻳﻴﻢ‪ .‬ﺑﻄﻮر ﻛﻠﻲ‬ ‫ﻧﻘﺎط ﺿﻌﻒ روش ‪ ER‬ﻛﻪ در روش ‪ EER‬رﻓﻊ ﺷﺪه اﻧﺪ ﺑﻪ ﺷﺮح ذﻳﻞ ﺑﻮدﻧﺪ‪.‬‬ ‫اﺳﺘﺎد‬ ‫‪N‬‬

‫‪1‬‬ ‫ﺗﺪرﻳﺲ‬

‫ﻋﻀﻮﻳﺖ‬ ‫‪1‬‬

‫‪N‬‬

‫ﮔﺮوه آﻣﻮزﺷﻲ‬

‫درس‬ ‫ﺷﻜﻞ ‪ 9-2‬ﻧﻤﻮﻧﻪاي از دام ﮔﺴﻞ‬

‫‪ 1-5‬ﺗﺠﺰﻳﻪ‪ 1‬و ﺗﺮﻛﻴﺐ‬

‫‪2‬‬

‫ﻓﺮاﻳﻨﺪ ﺗﻘﺴﻴﻢ ﻳﻚ ﺷﻲء ﻛﻞ ﺑﻪ اﺟﺰاء ﺗﺸﻜﻴﻞ دﻫﻨﺪه آن را ﺗﺠﺰﻳﻪ ﮔﻮﻳﻨﺪ‪ .‬ﺑﺪﻳﻬﻲ اﺳﺖ‬ ‫ﻛﻪ در ﻓﺮاﻳﻨﺪ ﺗﺠﺰﻳﻪ‪ ،‬ﺷﻲء ﻛﻞ و اﺟﺰاء آن ﻫﺮ ﻳﻚ داراي ﺻﻔﺎت‪ ،‬ﺳﺎﺧﺘﺎر و رﻓﺘﺎر‬ ‫ﺧﺎص ﺧﻮد ﻣﻲ ﺑﺎﺷﻨﺪ‪.‬‬ ‫ﺗﺮﻛﻴﺐ‪ ،‬ﻋﻜﺲ ﻋﻤﻞ ﺗﺠﺰﻳﻪ اﺳﺖ ﻛﻪ در آن ﺑﺎ داﺷﺘﻦ ﺗﻌﺪادي ﻧﻮع ﻣﻮﺟﻮدﻳﺖ‪ ،‬ﻳﻚ‬ ‫ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺟﺪﻳﺪ را اﻳﺠﺎد ﻣﻲ ﻛﻨﻴﻢ‪.‬‬

‫‪1. D ec o mp o s i t i o n‬‬ ‫‪2. C o mp o s i t i o n‬‬

‫‪34‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻛﻞ‬

‫ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺟﺰء‬ ‫ﺷﻜﻞ ‪ 10-2‬ﻧﻤﺎد ارﺗﺒﺎط " ﺟﺰﺋﻲ اﺳﺖ از‪" ...‬‬

‫در روش‬

‫‪ERR‬‬

‫ارﺗﺒﺎط ﺑﻴﻦ ﺷﻲء ﻛﻞ و اﺷﻴﺎء ﺟﺰء را ارﺗﺒﺎط " ﺟﺰﺋﻲ اﺳﺖ از‪" ...‬‬

‫ﮔﻮﻳﻨﺪ‪ .‬ﻧﻤﺎد ﻣﻮرد اﺳﺘﻔﺎده ﺑﺮاي ﻧﻤﺎﻳﺶ ارﺗﺒﺎط ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻛﻞ و ﻧﻮع ﻣﻮﺟﻮدﻳﺖ‬ ‫ﺟﺰء ﺑﻪ ﺷﻜﻞ زﻳﺮ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬

‫ﺷﻜﻞ ‪ 11-2‬ﻧﻤﻮﻧﻪاي از ﺗﺠﺰﻳﻪ و ﺗﺮﻛﻴﺐ ﻣﻮﺟﻮدﻳﺖﻫﺎ‬

‫ﻣﺪﻝ ﺳﺎﺯﻱ ﻣﻌﻨﺎﻳﻲ ﺩﺍﺩﻩﻫﺎ‬

‫‪ 2-5‬ﺗﺨﺼﻴﺺ‪ 1‬و ﺗﻌﻤﻴﻢ‬

‫‪35‬‬

‫‪2‬‬

‫ﺗﺨﺼﻴﺺ ﻓﺮاﻳﻨﺪي اﺳﺖ ﻛﻪ ﻃﻲ آن ﻧﻤﻮﻧﻪﻫﺎي ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺑﺮﺗﺮ ‪) 3‬زﺑﺮ ﻧﻮع(‬ ‫را ﺑﺮ اﺳﺎس ﻳﻚ ﻳﺎ ﭼﻨﺪ ﺻﻔﺖ ﺧﺎﺻﻪ آن ﻣﻮﺟﻮدﻳﺖ ﺑﺮﺗﺮ ﺗﺸﺨﻴﺺ ﻣﻲ دﻫﻴﻢ‪ .‬ﻻزم ﺑﻪ‬ ‫ذﻛﺮ اﺳﺖ ﻛﻪ ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻣﻲ ﺗﻮاﻧﺪ داراي ﻳﻚ ﻳﺎ ﭼﻨﺪ زﻳﺮ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ‬

‫‪4‬‬

‫ﻧﻴﺰ ﺑﺎﺷﺪ‪ .‬ارﺗﺒﺎط ﺑﻴﻦ ﻣﻮﺟﻮدﻳﺖ ﺑﺮﺗﺮ و زﻳﺮ ﻧﻮع ﻫﺎي آن را ارﺗﺒﺎط " ﮔﻮﻧﻪ اي اﺳﺖ‬ ‫از‪ " ...‬ﻣﻲ ﻧﺎﻣﻴﻢ‪ .‬ﻧﻤﺎد ﻣﻮرد اﺳﺘﻔﺎده ﺑﺮاي ﻧﻤﺎﻳﺶ اﻳﻦ ﻧﻮع ارﺗﺒﺎط در ﺷﻜﻞ زﻳﺮ آﻣﺪه‬ ‫اﺳﺖ‪.‬‬

‫ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺑﺮﺗﺮ‬

‫زﻳﺮ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ‬

‫زﻳﺮ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ‬

‫زﻳﺮ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ‬

‫ﺷﻜﻞ ‪ 12-2‬ﻧﻤﺎد ارﺗﺒﺎط " ﮔﻮﻧﻪاي اﺳﺖ از‪) " ...‬ﺗﺨﺼﻴﺺ(‬

‫ﺗﻌﻤﻴﻢ ﻋﻜﺲ ﻋﻤﻞ ﺗﺨﺼﻴﺺ اﺳﺖ ﻛﻪ در آن ﺑﺎ داﺷﺘﻦ زﻳﺮ ﻧﻮع ﻫﺎي ﻳﻚ ﻧﻮع‬ ‫ﻣﻮﺟﻮدﻳﺖ و ﺗﻌﻴﻴﻦ ﺻﻔﺎت ﻣﺸﺘﺮك ﺑﻴﻦ آﻧﻬﺎ‪ ،‬ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﺻﻔﺎت را ﺑﺮاي ﻧﻮع‬ ‫ﻣﻮﺟﻮدﻳﺖ ﺑﺮﺗﺮ در ﻧﻈﺮ ﻣﻲ ﮔﻴﺮﻳﻢ‪.‬‬

‫‪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‬‬

‫‪36‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﺷﻜﻞ‪) 13-2‬اﻟﻒ( ﻧﻤﻮﻧﻪاي از ﺣﺎﻟﺖ ﺗﻌﻤﻴﻢ در ﺳﻴﺴﺘﻢﻫﺎي داﻧﺸﺠﻮﻳﻲ‬

‫ﺷﻜﻞ‪) 13-2‬ب( ﻧﻤﻮﻧﻪاي از ﺣﺎﻟﺖ ﺗﻌﻤﻴﻢ در ﺳﻴﺴﺘﻢﻫﺎي داﻧﺸﺠﻮﻳﻲ‬

‫‪ 3-5‬زﻳﺮ ﻧﻮعﻫﺎي ﻫﻤﭙﻮﺷﺎ‪ 1‬و ﻣﺠﺰا‬

‫‪2‬‬

‫ﻧﻤﻮﻧﻪ ﻫﺎي ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺑﺮﺗﺮ ﺑﺮ اﺳﺎس ﺻﻔﺎت ﺧﺎﺻﻪ ﻣﺸﺘﺮك و ﻣﺠﺰا در‬ ‫دﺳﺘﻪ ﻫﺎي ﺧﺎص ﺧﻮد دﺳﺘﻪ ﺑﻨﺪي ﻣﻲ ﺷﻮﻧﺪ‪ .‬ﺣﺎل ﻣﻤﻜﻦ اﺳﺖ ﻳﻚ ﻧﻤﻮﻧﻪ ﻣﻮﺟﻮدﻳﺖ‬ ‫در دو دﺳﺘﻪ ﻗﺎﺑﻞ دﺳﺘﻪ ﺑﻨﺪي ﺑﺎﺷﺪ در ﭼﻨﻴﻦ ﺷﺮاﻳﻄﻲ ﺑﻪ اﻳﻦ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻫﺎ‪،‬‬ ‫ﻣﻮﺟﻮدﻳﺖ ﻫﺎي ﻫﻤﭙﻮﺷﺎ )ﻣﺸﺘﺮك( ﮔﻮﻳﻨﺪ‪.‬‬ ‫‪1. O ve r l a p‬‬ ‫‪2. D i sj o i n t‬‬

‫ﻣﺪﻝ ﺳﺎﺯﻱ ﻣﻌﻨﺎﻳﻲ ﺩﺍﺩﻩﻫﺎ‬

‫‪37‬‬

‫ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺲ‬

‫ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺲ ﻧﺮم اﻓﺰار ﺳﻴﺘﻤﻲ‬

‫ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺲ ﻧﺮم اﻓﺰار ﻛﺎرﺑﺮدي‬

‫ﺷﻜﻞ ‪ 14-2‬ﻧﻤﻮﻧﻪاي از زﻳﺮ ﻧﻮعﻫﺎي ﻫﻤﭙﻮﺷﺎ‬

‫در ﻋﻴﻦ ﺣﺎل ﻣﻤﻜﻦ اﺳﺖ ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻓﻘﻂ در ﻳﻚ دﺳﺘﻪ ﺑﻨﺪي از زﻳﺮ ﻧﻮع‬ ‫ﻣﻮﺟﻮدﻳﺖ ﻫﺎ ﻗﺎﺑﻞ دﺳﺘﻪ ﺑﻨﺪي ﺑﺎﺷﺪ‪ .‬ﺑﻪ اﻳﻦ زﻳﺮ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻫﺎ‪ ،‬ﻣﻮﺟﻮدﻳﺖ ﻫﺎي‬ ‫ﻣﺠﺰا ﻣﻲ ﮔﻮﻳﻨﺪ‪.‬‬ ‫ﭘﺮﺳﻨﻞ ﺷﺮﻛﺖ‬

‫‪U‬‬

‫ﭘﺮﺳﻨﻞ زن‬

‫ﭘﺮﺳﻨﻞ ﻣﺮد‬

‫ﺷﻜﻞ ‪ 15-2‬ﻧﻤﻮﻧﻪاي از زﻳﺮ ﻧﻮعﻫﺎي ﻣﺠﺰا‬

‫‪ 4-5‬دﺳﺘﻪ ﺑﻨﺪي ‪ 1‬و وراﺛﺖ‬

‫‪2‬‬

‫ﻳﻚ زﻳﺮ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻣﻲ ﺗﻮاﻧﺪ زﻳﺮ ﻧﻮع ﺑﻴﺶ از ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺑﺮﺗﺮ ﺑﺎﺷﺪ‪ .‬ﻛﻪ‬ ‫در اﻳﻦ ﺷﺮاﻳﻂ ﺑﻌﻀﻲ از ﺧﻮاص ﺧﻮد را از ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺑﺮﺗﺮ و ﺑﻌﻀﻲ دﻳﮕﺮ‬

‫‪1. C at e go r i z a t i o n‬‬ ‫‪2. In h e r i t a n c e‬‬

‫‪38‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫از ﺻﻔﺎت ﺧﺎﺻﻪ ﺧﻮد را از ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺑﺮﺗﺮ دﻳﮕﺮ ﺑﻪ ارث ﻣﻲ ﺑﺮد‪ .‬اﻳﻦ‬ ‫ﻣﻮﺟﻮدﻳﺖ ﻫﺎي ﺑﺮﺗﺮ ﻣﻲ ﺗﻮاﻧﻨﺪ از ﻳﻚ ﻧﻮع ﺑﺎﺷﻨﺪ ﻛﻪ در اﻳﻦ ﺷﺮاﻳﻂ داراي ﺷﻨﺎﺳﻪ ﻫﺎي‬ ‫ﻳﻜﺴﺎن ﻫﺴﺘﻨﺪ‪ .‬وﻟﻲ در ﺷﺮاﻳﻄﻲ ﻛﻪ ﻣﻮﺟﻮدﻳﺖ ﻫﺎي ﺑﺮﺗﺮ از ﻳﻚ ﻧﻮع ﻧﺒﺎﺷﻨﺪ‪ ،‬در واﻗﻊ‬ ‫وراﺛﺖ ﭼﻨﺪﮔﺎﻧﻪ‬

‫‪1‬‬

‫رخ داده اﺳﺖ‪ .‬ﺑﻪ اﻳﻦ زﻳﺮ ﻧﻮعﻫﺎ در اﺻﻄﻼح دﺳﺘﻪ‪) 2‬ﻃﺒﻘﻪ(‬ ‫‪3‬‬

‫ﻣﻲ ﮔﻮﻳﻨﺪ و در ﺑﻌﻀﻲ از ﻛﺘﺎب ﻫﺎ ﺑﻪ اﻳﻦ زﻳﺮ ﻧﻮع اﺻﻄﻼﺣﺎ ﻧﻮع اﺟﺘﻤﺎع ﻣﻲ ﮔﻮﻳﻨﺪ‪.‬‬ ‫ﺷﻜﻞ زﻳﺮ ﻧﺤﻮه ﻧﻤﺎﻳﺶ وراﺛﺖ ﭼﻨﺪ ﮔﺎﻧﻪ را ﻧﺸﺎن ﻣﻲ دﻫﺪ‪:‬‬ ‫‪E2‬ﻣﻮﺟﻮدﻳﺖ‬

‫‪E3‬ﻣﻮﺟﻮدﻳﺖ‬

‫‪U‬‬

‫‪E1‬ﻣﻮﺟﻮدﻳﺖ‬ ‫ﺷﻜﻞ ‪ 16-2‬ﺷﻤﺎي ﻧﻤﺎﻳﺶ وراﺛﺖ ﭼﻨﺪ ﮔﺎﻧﻪ و دﺳﺘﻪ ﺑﻨﺪي‬

‫‪ 5-5‬ﺗﺠﻤﻊ‬

‫‪4‬‬

‫ﺗﺠﻤﻊ ﺑﺪﻳﻦ ﻣﻌﻨﺎ اﺳﺖ ﻛﻪ ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺟﺪﻳﺪ را ﺑﺮ اﺳﺎس دو ﻳﺎ ﭼﻨﺪ‬ ‫ﻣﻮﺟﻮدﻳﺖ ﻣﺮﺗﺒﻂ ﺑﺎ ﻳﻜﺪﻳﮕﺮ‪ ،‬ﺑﻪ ﺻﻮرت ﻳﻜﭙﺎرﭼﻪ در ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ واﺣﺪ اراﺋﻪ‬ ‫ﻧﻤﺎﻳﻴﻢ‪ .‬ﺑﺪﻳﻬﻲ اﺳﺖ ﻛﻪ اﻳﻦ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ واﺣﺪ ﺧﻮد ﻣﻲ ﺗﻮاﻧﺪ ﺑﺎ ﻧﻮع‬ ‫ﻣﻮﺟﻮدﻳﺖ ﻫﺎي دﻳﮕﺮ ﻧﻴﺰ در ارﺗﺒﺎط ﺑﺎﺷﺪ‪ .‬ﺷﻜﻞ زﻳﺮ ﻧﺤﻮه ﻧﻤﺎﻳﺶ ﺗﺠﻤﻊ را ﻧﺸﺎن‬ ‫ﻣﻲ دﻫﺪ‪:‬‬

‫‪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‬‬

‫ﻣﺪﻝ ﺳﺎﺯﻱ ﻣﻌﻨﺎﻳﻲ ﺩﺍﺩﻩﻫﺎ‬

‫‪E1‬ﻣﻮﺟﻮدﻳﺖ‬

‫‪39‬‬

‫‪E2‬ﻣﻮﺟﻮدﻳﺖ‬

‫‪R1‬‬

‫‪R2‬‬

‫‪ E3‬ﻣﻮﺟﻮدﻳﺖ‬ ‫ﺷﻜﻞ ‪ 17-2‬ﻧﻤﺎﻳﺶ ﺗﺠﻤﻊ‬

‫‪-6‬روش ﻣﺪل ﺳﺎزي ﺷﻲء‬

‫‪UML‬‬

‫‪1‬‬

‫ﺑﺎ ﻣﻄﺮح ﺷﺪن اﻟﮕﻮﻫﺎي ﺷﻲء ﮔﺮاﻳﻲ ﻛﻪ ﻫﺮ ﻣﻮﺟﻮدﻳﺖ در ﺟﻬﺎن واﻗﻊ را ﺷﺎﻣﻞ‬ ‫داده ﻫﺎي آن ﻣﻮﺟﻮدﻳﺖ و ﻋﻤﻠﻜﺮدﻫﺎي ﻣﺮﺗﺒﻂ ﺑﺎ آن ﺗﻮﺻﻴﻒ ﻣﻲ ﻛﺮد‪ ،‬ﻃﺮاﺣﺎن ﺳﻴﺴﺘﻢ‬ ‫روش ﻫﺎي‬

‫‪ER‬‬

‫و‬

‫‪EER‬‬

‫را ﻧﺎﻛﺎرآﻣﺪ ﺗﺸﺨﻴﺺ داده و در ﺟﺴﺘﺠﻮي ﺗﻌﺮﻳﻒ ﻳﻚ‬

‫ﻣﺘﻮدوﻟﻮژي ﺟﺪﻳﺪ ﺑﻮدﻧﺪ ﺗﺎ ﺑﺘﻮاﻧﻨﺪ ﻋﻤﻠﻜﺮد ﻫﺮ ﻣﻮﺟﻮدﻳﺖ را ﻧﻴﺰ ﺑﻪ ﻧﻤﺎﻳﺶ در آورﻧﺪ‪.‬‬ ‫از اﻳﻨﺮو ﮔﺮوه‬

‫‪OMG‬‬

‫‪2‬‬

‫روﺷﻲ اﺳﺘﺎﻧﺪارد ﺑﻨﺎم‬

‫‪UML‬‬

‫را ﺑﺮاي اﻳﺠﺎد ﺳﻴﺴﺘﻢ ﻫﺎي ﻛﺎرﺑﺮدي‬

‫ﻣﻌﺮﻓﻲ ﻛﺮدﻧﺪ و اﻳﻦ روش را در اﻳﺠﺎد ﺳﻴﺴﺘﻢ ﻫﺎي ﻛﺎرﺑﺮدي ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار دادﻧﺪ‪.‬‬ ‫ﻣﻬﻤﺘﺮﻳﻦ ﺧﺼﻮﺻﻴﺖ اﻳﻦ روش‪ ،‬اﻳﺠﺎد اﻣﻜﺎﻧﻲ ﺑﺮاي اﻳﺠﺎد و ﻧﻤﺎﻳﺶ اﺷﻴﺎء ﺟﻬﺎن واﻗﻊ‬ ‫ﺑﺼﻮرت ﺗﺼﻮﻳﺮي اﺳﺖ‪ .‬ﻳﻜﻲ از ﻧﻜﺎت ﺑﺴﻴﺎر ﻣﻬﻢ در اﺳﺘﻔﺎده ﻣﻮﺛﺮ از روش ‪،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‬‬

‫‪40‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﺑﺮاي ﻧﻤﺎﻳﺶ ﻣﺪل ﺳﺎزي و ﻃﺮاﺣﻲ ﻧﺮم اﻓﺰار اﺳﺘﻔﺎده ﻣﻲ ﻛﻨﺪ‪ .‬ﭼﻨﺪ ﻧﻤﻮﻧﻪ از ﻣﻬﻤﺘﺮﻳﻦ‬ ‫ﻧﻤﻮدارﻫﺎ در اﻳﻦ روش ﺑﻪ ﺷﺮح زﻳﺮ ﻣﻲ ﺑﺎﺷﻨﺪ‪:‬‬ ‫‪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‬‬

‫ﻣﺪﻝ ﺳﺎﺯﻱ ﻣﻌﻨﺎﻳﻲ ﺩﺍﺩﻩﻫﺎ‬

‫ﻣﻔﻬﻮم در‬

‫ﻣﻔﻬﻮم در‬

‫‪UML‬‬

‫ﻛﻼس‬

‫ﻧﻮع ﻣﻮﺟﻮدﻳﺖ‬

‫ﺷﻲء‬

‫ﻧﻤﻮﻧﻪ ﻣﻮﺟﻮدﻳﺖ‬

‫ﺻﻔﺖ‬

‫ﺻﻔﺖ‬

‫ﺑﺴﺘﮕﻲ‬

‫ارﺗﺒﺎط‬

‫ﭘﻴﻮﻧﺪ‬

‫‪1‬‬

‫‪41‬‬

‫‪EER‬‬

‫ﻧﻤﻮﻧﻪ ارﺗﺒﺎط‬

‫ﺑﺴﺘﮕﻲ اﻧﻌﻜﺎﺳﻲ‬ ‫ﺑﺴﺘﮕﻲ ﻣﻘﻴﺪ‬

‫‪2‬‬

‫ارﺗﺒﺎط ﺑﺎزﮔﺸﺘﻲ‬

‫‪3‬‬

‫ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺿﻌﻴﻒ‬

‫ﻣﻴﺪان ﺳﺎﺧﺘﻤﻨﺪ‬

‫‪4‬‬

‫ﺻﻔﺖ ﻣﺮﻛﺐ‬

‫ﺻﻔﺖ ﭘﻴﻮﻧﺪ‬ ‫ﭼﻨﺪي ﺑﺴﺘﮕﻲ‬

‫ﺻﻔﺖ ارﺗﺒﺎط‬ ‫‪5‬‬

‫درﺟﻪ ارﺗﺒﺎط‬

‫‪ 2-6‬ﻧﺤﻮه ﻧﻤﺎﻳﺶ ﻣﻔﺎﻫﻴﻢ‬ ‫ﻛﻼس‪ :‬ﺑﺮاي ﻧﻤﺎﻳﺶ ﻳﻚ ﻛﻼس از ﻣﺮﺑﻊ ﻳﺎ ﻣﺴﺘﻄﻴﻞ اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد‪ .‬در اﻳﻦ ﺣﺎﻟﺖ‬ ‫ﻣﺮﺑﻊ ﺑﻪ ﺳﻪ ﻗﺴﻤﺖ ﻣﺠﺰا ﺗﻘﺴﻴﻢ ﺷﺪه و در اﻳﻦ ﻗﺴﻤﺖ ﻫﺎ ﻣﻮارد زﻳﺮ ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮﻧﺪ‬ ‫•‬

‫ﻧﺎم ﻛﻼس‬

‫•‬

‫ﻧﺎم ﺻﻔﺎت ﻛﻼس‬

‫•‬

‫ﻧﺎم ﭘﺮدازﺷﻬﺎي ﻛﻼس‬ ‫ﻧﺎم ﻛﻼس‬ ‫ﻧﺎم ﺻﻔﺎت ﻛﻼس‬ ‫ﻧﺎم ﭘﺮدازﺷﻬﺎي ﻛﻼس‬

‫ﺑﺴﺘﮕﻲ‪ :‬ﺑﺴﺘﮕﻲ ﺑﻴﻦ دو ﻛﻼس ﺑﺼﻮرت ﻳﻚ ﺧﻂ ﻣﺘﺼﻞ ﻛﻨﻨﺪه دو ﻛﻼس ﻧﻤﺎﻳﺶ داده‬ ‫ﻣﻲ ﺷﻮدو ﻧﺎم ارﺗﺒﺎط روي ﺧﻂ ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮد‪.‬‬ ‫‪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‬‬

‫‪42‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﺗﺠﻤﻴﻊ‪ :‬ﺗﺠﻤﻴﻊ ﺑﺼﻮرت زﻳﺮ ﻧﻤﺎﻳﺶ داده ﻣﻲ ﺷﻮد‬ ‫ﺷﻲء ﻛﻞ‬

‫ﺷﻲء ﺟﺰء‬

‫ﭼﻨﺪي ارﺗﺒﺎط‪ :‬ﭼﻨﺪي ارﺗﺒﺎط ﺑﺼﻮرت ‪ min …max‬ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮد‬ ‫ﺻﻔﺖ ﭼﻨﺪ ﻣﻘﺪاري‪ :‬ﺻﻔﺖ ﭼﻨﺪ ﻣﻘﺪاري ﺑﻪ ﺻﻮرت ﻳﻚ ﻛﻼس ﺟﺪاﮔﺎﻧﻪ ﻧﺸﺎن داده‬ ‫ﻣﻲ ﺷﻮد‪ ،‬وﻟﻲ ﻗﺴﻤﺖ ﭘﺮدازش را ﻫﻤﺮاه ﻧﺪارد‪.‬‬ ‫ﻣﻴﺪان‪ :‬ﻧﺎم ﻣﻴﺪان ﻣﻌﻤﻮﻻً ﺑﻌﺪ از ﻧﺎم ﺻﻔﺖ ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮد و ﺑﻴﻦ اﻳﻦ دو ﻧﺎم از ﻋﻼﻣﺖ‪:‬‬ ‫اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد ﺑﺼﻮرت زﻳﺮ‬ ‫ﻧﺎم ﻣﻴﺪان‪ :‬ﻧﺎم ﺻﻔﺖ‬ ‫ﺻﻔﺖ ﭘﻴﻮﻧﺪ‪ :‬ﺻﻔﺖ ﭘﻴﻮﻧﺪ در ﻳﻚ ﻣﺮﺑﻊ ﻳﺎ ﻣﺴﺘﻄﻴﻞ ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮد و ﺑﺎ ﺧﻂ ﭼﻴﻦ ﺑﻪ‬ ‫ﺧﻂ ﻧﺸﺎن دﻫﻨﺪه ﺑﺴﺘﮕﻲ ﻣﺘﺼﻞ ﻣﻲ ﺷﻮد‪ .‬ﻧﺎم ﭘﻴﻮﻧﺪ و ﻧﺎم ﺻﻔﺎت ﭘﻴﻮﻧﺪ در دو ﻗﺴﻤﺖ‬ ‫اﻳﻦ ﻣﺮﺑﻊ ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮﻧﺪ‪ .‬ﺷﻜﻞ زﻳﺮ ﻧﺤﻮه ﻧﻤﺎﻳﺶ ﺻﻔﺖ ﭘﻴﻮﻧﺪ را ﻧﺸﺎن ﻣﻲ دﻫﺪ‬ ‫ﻧﺎم ﻛﻼس‬ ‫ﻧﺎم ﺻﻔﺎت‬

‫ﻧﺎم ﻛﻼس‬ ‫‪ Min.. max‬ﻧﺎم ﺑﺴﺘﮕﻲ ‪min.. max‬‬

‫ﭘﺮدازﺷﻬﺎ‬

‫ﻧﺎم ﺻﻔﺎت‬ ‫ﭘﺮدازﺷﻬﺎ‬

‫ﻧﺎم ﺑﺴﺘﮕﻲ‬ ‫ﻧﺎم ﺻﻔﺎت‬

‫‪ ٣-6‬ﺧﺼﻮﺻﻴﺎت ﻛﻠﻲ روش ﻣﺪل ﺳﺎزي ﻣﻌﻨﺎﻳﻲ دادهﻫﺎ‬ ‫ﻫﺮ روش ﻣﺪل ﺳﺎزي ﻣﻌﻨﺎﻳﻲ دادهﻫﺎ ﺑﺎﻳﺪ ﺣﺪاﻗﻞ داراي ﺧﺼﻮﺻﻴﺎت زﻳﺮ ﺑﺎﺷﺪ‬ ‫•‬

‫ﮔﻮﻳﺎﻳﻲ‬

‫•‬

‫ﺳﺎدﮔﻲ ﻣﻔﺎﻫﻴﻢ‬

‫ﻣﺪﻝ ﺳﺎﺯﻱ ﻣﻌﻨﺎﻳﻲ ﺩﺍﺩﻩﻫﺎ‬ ‫•‬

‫اﻳﺠﺎز‬

‫•‬

‫ﮔﺴﺘﺮش ﭘﺬﻳﺮي‬

‫•‬

‫ﺻﻮري ﺑﻮدن‬

‫•‬

‫ﻗﺎﺑﻠﻴﺖ ﻧﻤﺎﻳﺶ ﻧﻤﻮداري‬

‫•‬

‫ﺟﺎﻣﻊ ﺑﻮدن ﻣﻔﺎﻫﻴﻢ‬

‫•‬

‫ﻗﺎﺑﻠﻴﺖ ﻧﻤﺎﻳﺶ ﺳﺎﺧﺘﺎر ﺣﺎﻟﺖ و رﻓﺘﺎر ﻧﻮع ﻣﻮﺟﻮدﻳﺖ‬

‫‪43‬‬

‫ﺑﺎﻳﺪ ﺑﻪ اﻳﻦ ﻧﻜﺘﻪ ﺗﻮﺟﻪ داﺷﺖ ﻛﻪ ﺑﻌﻀﻲ از ﺧﺼﻮﺻﻴﺎت ذﻛﺮ ﺷﺪه ﻣﺎﻧﻨﺪ ﺗﺠﻤﻴﻊ و‬ ‫اﻳﺠﺎز ﻣﻤﻜﻦ اﺳﺖ ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﻣﻐﺎﻳﺮت داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪ .‬در اﻳﻦ ﺻﻮرت وﺟﻮد ﻳﻜﻲ از‬ ‫اﻳﻦ ﺧﺼﻮﺻﻴﺎت ﻛﺎﻓﻲ اﺳﺖ‪.‬‬

‫‪44‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﺗﻤﺮﻳﻨﺎت‬ ‫‪ .1‬ﻣﺪل ﺳﺎزي ﻣﻌﻨﺎﻳﻲ داده را ﺗﻮﺿﻴﺢ دﻫﻴﺪ ؟‬ ‫‪ .2‬اﻧﻮاع ﻣﻮﺟﻮدﻳﺖ ﻫﺎ را ﻧﺎم ﺑﺮده و ﺗﻮﺿﻴﺢ دﻫﻴﺪ ؟‬ ‫‪ .3‬ﺻﻔﺖ را ﺗﻌﺮﻳﻒ ﻛﺮده و ردهﻫﺎي ﻣﺨﺘﻠﻒ آن را ﻧﺎم ﺑﺒﺮﻳﺪ ؟‬ ‫‪ .4‬ﺣﺎﻻت ﻣﺨﺘﻠﻒ ارﺗﺒﺎط ﺑﻴﻦ دو ﻣﻮﺟﻮدﻳﺖ را ﻧﺎم ﺑﺮده و ﺗﻮﺿﻴﺢ دﻫﻴﺪ ؟‬ ‫‪ .5‬ﻣﺸﻜﻞ دام ﺣﻠﻘﻪ اي در روش ‪ ER‬را ﺗﻮﺿﻴﺢ دﻫﻴﺪ ؟‬ ‫‪ .6‬ﻣﺸﻜﻞ دام ﭼﻨﺪ ﺷﺎﺧﻪ اي را در روش ‪ ER‬ﺗﻮﺿﻴﺢ دﻫﻴﺪ ؟‬ ‫‪ .7‬ﻣﺸﻜﻞ دام ﮔﺴﻞ را در روش ‪ ER‬ﺷﺮح دﻫﻴﺪ ؟‬ ‫‪ .8‬ﻣﻔﺎﻫﻴﻢ ﺗﺠﺰﻳﻪ و ﺗﺮﻛﻴﺐ در روش ‪ EER‬را ﺷﺮح دﻫﻴﺪ ؟‬ ‫‪ .9‬ﻣﻔﺎﻫﻴﻢ ﺗﺨﺼﻴﺺ و ﺗﺮﻣﻴﻢ در روش ‪ EER‬را ﺷﺮح دﻫﻴﺪ ؟‬ ‫‪ .10‬ﻣﻔﺎﻫﻴﻢ وراﺛﺖ و دﺳﺘﻪ ﺑﻨﺪي در روش ‪ EER‬را ﺷﺮح دﻫﻴﺪ ؟‬ ‫‪ .11‬ﻣﻔﻬﻮم ﺗﺠﻤﻊ در روش ‪ EER‬را ﺷﺮح دﻫﻴﺪ ؟‬

‫ﻓﺼﻞ ‪۳‬‬ ‫ﻣﻌﻤﺎﺭﻱ ﭘﺎﻳﮕﺎﻩﺩﺍﺩﻩ‬ ‫ﻫﺪف ﻛﻠﻲ‬ ‫در اﻳﻦ ﻓﺼﻞ ﻣﻌﻤﺎري ﺳﻪ ﺳﻄﺤﻲ ﭘﺎﻳﮕﺎهداده ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﺪ‬ ‫ﮔﺮﻓﺖ‪ .‬در اﻳﻦ راﺳﺘﺎ ﺳﻄﻮح ﺧﺎرﺟﻲ‪ ،‬ادراﻛﻲ و داﺧﻠﻲ ﺑﺼﻮرﺗﻲ دﻗﻴﻖ ﺗﺮ ﻣﻮرد ارزﻳﺎﺑﻲ‬ ‫ﻗﺮار ﺧﻮاﻫﻨﺪ ﮔﺮﻓﺖ‪ .‬در اداﻣﻪ ﺑﺎ ﺳﺎﻳﺮ اﺟﺰاء ﭘﺎﻳﮕﺎه داده آﺷﻨﺎ ﺧﻮاﻫﻴﻢ ﺷﺪ و زﺑﺎن ﻫﺎي‬ ‫ﻣﺨﺘﻠﻒ ﻣﻮرد اﺳﺘﻔﺎده درون ﭘﺎﻳﮕﺎه داده ﻧﻴﺰ ﺑﺮرﺳﻲ ﺧﻮاﻫﻨﺪ ﺷﺪ‪.‬‬

‫ﻫﺪف رﻓﺘﺎري‬ ‫در اﻳﻦ ﻓﺼﻞ ﻋﻨﺎوﻳﻦ زﻳﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ‪:‬‬ ‫•‬

‫ﻣﻌﻤﺎري ﺳﻪ ﺳﻄﺤﻲ ﭘﺎﻳﮕﺎهداده‬

‫•‬

‫دﻳﺪ )ﻧﻤﺎي( ادراﻛﻲ )ﻣﻔﻬﻮﻣﻲ(‬

‫•‬

‫دﻳﺪ )ﻧﻤﺎي( ﺧﺎرﺟﻲ‬

‫•‬

‫دﻳﺪ )ﻧﻤﺎي( داﺧﻠﻲ‬

‫•‬

‫ﻛﺎرﺑﺮ‬

‫•‬

‫زﺑﺎن ﻣﻴﺰﺑﺎن‬

‫•‬

‫زﺑﺎن دادهاي ﻓﺮﻋﻲ‬

‫•‬

‫اﻧﻮاع زﺑﺎن دادهاي‬

‫‪46‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪ -1‬ﻣﻌﻤﺎري ﺳﻪ ﺳﻄﺤﻲ ﭘﺎﻳﮕﺎهداده‬ ‫از آﻧﺠﺎ ﻛﻪ در ﭼﮕﻮﻧﮕﻲ ﻣﻌﻤﺎري "ﭘﺎﻳﮕﺎه داده ﻫﺎ" ﺣﺪاﻗﻞ در ﺳﺎﻟﻬﺎي آﻏﺎزﻳﻦ اﻳﺠﺎد‬ ‫اﻳﻦ ﺗﻜﻨﻮﻟﻮژي‪ ،‬ﺑﻴﻦ ﻛﺎرﺷﻨﺎﺳﺎن اﺗﻔﺎق ﻧﻈﺮ ﻧﺒﻮد‪ ،‬ﻟﺬا‬

‫‪ANSI/SPARC‬‬

‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ‬

‫اﻫﻤﻴﺖ ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ‪ ،‬ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎه داده ﻫﺎ را )ﺑﻪ ﻋﻨﻮان ﻳﻚ ﻣﻌﻤﺎري اﺳﺘﺎﻧﺪارد(‬ ‫ﭘﻴﺸﻨﻬﺎد ﻛﺮد‪ .‬اﻳﻦ ﻣﻌﻤﺎري ﺑﻪ ﻣﻌﻤﺎري ﺳﻪ ﺳﻄﺤﻲ ﻣﻮﺳﻮم اﺳﺖ‪.‬‬ ‫ﺑﺎﻳﺪ ﺗﻮﺟﻪ داﺷﺖ ﻛﻪ اﻳﻦ ﺳﻪ ﺳﻄﺢ‪ ،‬اﺳﺎﺳﺎً ﺳﻪ ﺳﻄﺢ "ﺗﻌﺮﻳﻒ دادهﻫﺎ" ﻫﺴﺘﻨﺪ‪ :‬دو‬ ‫ﺳﻄﺢ ﺧﺎرﺟﻲ و ادراﻛﻲ در ﻣﺤﻴﻄﻲ اﻧﺘﺰاﻋﻲ ﻫﺴﺘﻨﺪ و ﺳﻄﺢ ﺳﻮم ﻛﻪ ﻫﻤﺎن ﺳﻄﺢ داﺧﻠﻲ‬ ‫اﺳﺖ در ﻣﺤﻴﻂ ﻓﺎﻳﻠﻴﻨﮓ ﻣﻨﻄﻘﻲ ﻗﺮار ﮔﺮﻓﺘﻪ اﺳﺖ‪ .‬ﺷﻜﻞ ‪ 1-3‬ﻧﻤﺎي ﺳﺎدهاي از ﻣﻌﻤﺎري‬ ‫ﺳﻪ ﺳﻄﺤﻲ را ﻧﻤﺎﻳﺶ ﻣﻲدﻫﺪ‪.‬‬

‫ﺳﻄﺢ ﺧﺎرﺟﻲ‬

‫‪….‬‬

‫ﺳﻄﻮح‬ ‫اﻧﺘﺰاﻋﻲ‬

‫ﺳﻄﺢ ادراﻛﻲ‬ ‫)ﻣﻔﻬﻮﻣﻲ(‬ ‫‪-----------------------‬‬‫ﺳﻄﺢ داﺧﻠﻲ‬ ‫ﺷﻜﻞ ‪ 1-3‬ﻧﻤﺎي ﺳﺎده ﺷﺪه ﻣﻌﻤﺎري ﺳﻪ ﺳﻄﺤﻲ‬

‫واﺿﺢ اﺳﺖ ﻛﻪ ﺳﻄﺢ ﻓﻴﺰﻳﻜﻲ ﻳﻚ ﻻﻳﻪ ﭘﺎﻳﻴﻦ ﺗﺮ از ﺳﻄﺢ داﺧﻠﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮد‪ .‬در‬ ‫ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎه ﻫﺎي داده‪ ،‬ﺳﻄﺢ ﻓﻴﺰﻳﻜﻲ ﻧﻴﺰ ﺟﺰﺋﻲ از ﻣﻌﻤﺎري ﻣﺤﺴﻮب ﻣﻲ ﮔﺮدد‪.‬‬ ‫ﻧﻤﺎي ﻛﺎﻣﻠﺘﺮ ﻣﻌﻤﺎري ﭘﻴﺸﻨﻬﺎدي‬ ‫ﻣﻲ ﺷﻮد‪.‬‬

‫‪ANSI‬‬

‫ﺑﺮاي ﭘﺎﻳﮕﺎه داده در ﺷﻜﻞ ‪ 2-3‬ﻧﺸﺎن داده‬

‫‪47‬‬

‫ﻣﻌﻤﺎﺭﻱ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﻫﺎ‬

‫آر‪٢ /‬‬

‫آر‪i /‬‬

‫‪D‬‬ ‫‪B‬‬ ‫‪M‬‬ ‫‪S‬‬

‫‪OS‬‬

‫د‪ #‬ر"! ‪j‬‬

‫د‪ #‬ر"! ‪٢‬‬

‫آر‪١ /‬‬

‫د‪ #‬ر"! ‪١‬‬

‫ﺳﻄﺢ ﺧﺎرﺟﻲ‬

‫ﺳﻄﻮح‬ ‫‪D‬‬ ‫‪B‬‬ ‫‪A‬‬

‫اﻧﺘﺰاﻋﻲ‬ ‫د‪ #‬ادراآ! ))(!(‬

‫ﺳﻄﺢ ادراﻛﻲ‬

‫ﺳﻄﺢ داﺧﻠﻲ‬

‫د‪ #‬دا‪!,‬‬

‫ﻓﺎﻳﻠﻴﻨﮓ ﻣﻨﻄﻘﻲ‬

‫‪-#.k‬‬

‫‪......‬‬

‫‪٢-#.‬‬

‫‪١-#.‬‬

‫ﺳﻄﺢ ﻓﻴﺰﻳﻜﻲ‬ ‫ﻓﺎﻳﻠﻴﻨﮓ ﻓﻴﺰﻳﻜﻲ‬

‫دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه‬ ‫ﺷﻜﻞ ‪ 2-3‬ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫در اﻳﻦ ﻣﻌﻤﺎري ﻋﻼوه ﺑﺮ ﺳﻪ ﺳﻄﺢ‪ ،‬اﺟﺰاي دﻳﮕﺮي ﻫﻢ دﻳﺪه ﻣﻲ ﺷﻮد ﻛﻪ در واﻗﻊ ﺟﺰء‬ ‫"ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده ﻫﺎ" ﻫﺴﺘﻨﺪ‪ .‬در اﻳﻨﺠﺎ ﺳﻪ ﺳﻄﺢ و ﻧﻴﺰ اﺟﺰاء دﻳﮕﺮ را ﻧﺎم ﻣﻲ ﺑﺮﻳﻢ‪:‬‬ ‫•‬

‫ﻛﺎرﺑﺮ‬

‫•‬

‫زﺑﺎن ﻣﻴﺰﺑﺎن‬

‫‪48‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫زﺑﺎن دادهاي ﻓﺮﻋﻲ‬

‫•‬

‫دﻳﺪ ﺧﺎرﺟﻲ‬

‫•‬

‫دﻳﺪ ادراﻛﻲ‬

‫•‬

‫دﻳﺪ داﺧﻠﻲ‬

‫•‬

‫ﻓﺎﻳﻠﻬﺎي ﻓﻴﺰﻳﻜﻲ‬

‫•‬

‫ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫در اداﻣﻪ ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع‪ ،‬ﺳﻄﻮح ﺳﻪ ﮔﺎﻧﻪ ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ‪:‬‬

‫‪ -2‬ﺷﺮح ﺳﻄﻮح ﺳﻪ ﮔﺎﻧﻪ‬ ‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ در ﺳﻤﺖ ﭼﭗ ﺗﺼﻮﻳﺮ ﺑﺎﻻ ﻣﺸﺎﻫﺪه ﻣﻲ ﻛﻨﻴﺪ ﺳﻪ ﺳﻄﺢ )دﻳﺪ( ﻣﺨﺘﻠﻒ در‬ ‫ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎه دادﻫﻬﺎ اراﺋﻪ ﺷﺪه اﺳﺖ‪ .‬اﻳﻦ ﺳﻄﻮح ﻋﺒﺎرﺗﻨﺪ از‪:‬‬ ‫•‬

‫دﻳﺪ )ﻧﻤﺎي( ادراﻛﻲ )ﻣﻔﻬﻮﻣﻲ(‬

‫•‬

‫دﻳﺪ )ﻧﻤﺎي( ﺧﺎرﺟﻲ‬

‫•‬

‫دﻳﺪ )ﻧﻤﺎي( داﺧﻠﻲ‬

‫‪ 1-2‬دﻳﺪ )ﻧﻤﺎي( ادراﻛﻲ )ﻣﻔﻬﻮﻣﻲ(‬ ‫•‬

‫دﻳﺪ ﻳﺎ ﻧﻤﺎي ادراﻛﻲ در واﻗﻊ ﻫﻤﺎن دﻳﺪ ﻃﺮاح ﭘﺎﻳﮕﺎهدادهﻫﺎ ﻧﺴﺒﺖ ﺑﻪ دادهﻫﺎي‬ ‫ذﺧﻴﺮه ﺷﺪﻧﻲ در ﭘﺎﻳﮕﺎهداده اﺳﺖ‪.‬‬

‫•‬

‫اﻳﻦ دﻳﺪ ﻳﻚ دﻳﺪ ﺟﺎﻣﻊ )ﺳﺮﺗﺎﺳﺮي( ﺑﻮده و ﺗﻤﺎم ﻧﻴﺎزﻫﺎي ﻛﺎرﺑﺮان در ﻣﺤﻴﻂ‬ ‫ﻋﻤﻠﻴﺎﺗﻲ را در ﺑﺮ ﻣﻲﮔﻴﺮد‪.‬‬

‫•‬

‫اﻳﻦ دﻳﺪ در ﻳﻚ ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ ﻣﻄﺮح اﺳﺖ‪ :‬ﺑﻨﺎﺑﺮﻳﻦ ﻣﺒﺘﻨﻲ اﺳﺖ ﺑﺮ ﻳﻚ ﺳﺎﺧﺘﺎر‬ ‫دادهاي ﻣﺸﺨﺺ )از ﻳﻚ ﻣﺪل دادهاي ﻛﻪ اﻧﺘﺰاع ﻻزم را ﺗﺎﻣﻴﻦ ﻣﻲﻛﻨﺪ(‪.‬‬

‫•‬

‫اﻳﻦ دﻳﺪ‪ ،‬ﺑﺎ ﺳﺎﺗﻔﺎده از ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﺎري اﺳﺎﺳﻲ ﻫﻤﺎن ﺳﺎﺧﺘﺎر دادهاي‪ ،‬ﻃﺮاﺣﻲ‬ ‫ﻣﻲﺷﻮد‪.‬‬

‫ﻣﻌﻤﺎﺭﻱ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﻫﺎ‬ ‫•‬

‫‪49‬‬

‫اﻳﻦ دﻳﺪ ﺑﺎﻳﺪ )ﭘﺲ از ﻃﺮاﺣﻲ ﻃﺒﻌﺎ( ﺗﻮﺻﻴﻒ ﺷﻮد‪ .‬ﺑﻪ وﺻﻒ ﻳﺎ ﺷﺮح دﻳﺪ‬ ‫ادراﻛﻲ‪ ،‬ﺷﻤﺎي ادراﻛﻲ ﻣﻲﮔﻮﻳﻴﻢ‪ .‬ﺷﻤﺎي ادراﻛﻲ ﻧﻮﻋﻲ "ﺑﺮﻧﺎﻣﻪ" اﺳﺖ ﺣﺎوي‬ ‫دﺳﺘﻮرات "ﺗﻌﺮﻳﻒ دادهﻫﺎ" و "ﻛﻨﺘﺮل دادهﻫﺎ" )و ﻧﻪ دﺳﺘﻮرات ﻋﻤﻠﻴﺎت در‬ ‫دادهﻫﺎ(‪ .‬ﺳﻄﺢ ادراﻛﻲ در واﻗﻊ ﻫﻤﻴﻦ ﺷﻤﺎي ادراﻛﻲ اﺳﺖ‪.‬‬

‫•‬

‫ﺷﻤﺎي ادراﻛﻲ ﺑﻪ ﺳﻴﺴﺘﻢ داده ﻣﻲﺷﻮد و در ﻛﺎﺗﺎﻟﻮگ ﺳﻴﺴﺘﻢ ﻧﮕﻬﺪاري ﻣﻲﺷﻮد‪.‬‬

‫ﺑﻪ ﺑﻴﺎﻧﻲ ﺳﺎده‪ ،‬دﻳﺪ ادراﻛﻲ ﻫﻤﺎن ﺗﻌﺮﻳﻒ ﺟﺪول ﻣﻲ ﺑﺎﺷﺪ‪ .‬ﺑﺮاي ﻣﺜﺎل ﻓﺮض ﻛﻨﻴﺪ‬ ‫ﻣﻲ ﺧﻮاﻫﻴﺪ ﻳﻚ ﻣﻮﺟﻮدﻳﺖ ﻣﺜﻞ داﻧﺸﺠﻮ را ﺗﻌﺮﻳﻒ ﻛﻨﻴﺪ‪ .‬ﺗﻌﺮﻳﻒ ﺟﺪول ﻣﺮﺑﻮﻃﻪ ﺑﻪ‬ ‫ﻫﻤﺮاه ﻓﻴﻠﺪﻫﺎ )ﺻﻔﺎت ﺧﺎﺻﻪ( آن ﻣﻮﺟﻮدﻳﺖ در ﻳﻚ ﭘﺎﻳﮕﺎه داده‪ ،‬در ﺑﺤﺚ دﻳﺪ ادراﻛﻲ‬ ‫دﺳﺘﻪ ﺑﻨﺪي ﻣﻲ ﺷﻮد‪.‬‬

‫‪ 2-2‬دﻳﺪ )ﻧﻤﺎي( ﺧﺎرﺟﻲ‬ ‫دﻳﺪ ﻳﺎ ﻧﻤﺎي ﺧﺎرﺟﻲ در ﻛﺘﺐ ﻣﺨﺘﻠﻒ ﺑﺎ ﻋﺒﺎرات ﻣﺨﺘﻠﻔﻲ ﺗﻮﺿﻴﺢ داده ﺷﺪه اﺳﺖ‪ .‬در‬ ‫اداﻣﻪ ﭼﻨﺪ ﺗﻌﺮﻳﻒ از دﻳﺪ ﺧﺎرﺟﻲ ﻣﻄﺮح ﺷﺪه اﺳﺖ‪:‬‬ ‫•‬

‫ﻣﻔﻬﻮم دﻳﺪ ﻳﺎ ﻧﻤﺎي ﺧﺎرﺟﻲ در واﻗﻊ ﻫﻤﺎن ﻣﻔﻬﻮﻣﻲاﺳﺖ ﻛﻪ در ﺗﺤﻠﻴﻞ و‬ ‫ﻃﺮاﺣﻲ ﻳﻚ ﺳﻴﺴﺘﻢ ﺑﻜﺎر ﺑﺮده ﻣﻲﺷﻮد‪ .‬در اداﻣﻪ ﺗﻌﺎرﻳﻒ و ﻧﻜﺎﺗﻲ در ﻣﻮرد دﻳﺪ‬ ‫ﺧﺎرﺟﻲ آﻣﺪه اﺳﺖ‪:‬‬

‫•‬

‫دﻳﺪ ﻛﺎرﺑﺮ ﺧﺎص اﺳﺖ ﻧﺴﺒﺖ ﺑﻪ دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه در ﭘﺎﻳﮕﺎهدادهﻫﺎ‪.‬‬

‫•‬

‫اﻳﻦ دﻳﺪ ﺟﺰﻳﻲ اﺳﺖ و ﻧﻪ ﺟﺎﻣﻊ‪ :‬ﻧﺸﺎن دﻫﻨﺪه "ﻣﺤﺪودهاي " از ﭘﺎﻳﮕﺎهدادهﻫﺎ ﻛﻪ‬ ‫ﺑﻪ ﻧﻴﺎزﻫﺎي اﻃﻼﻋﺎﺗﻲ ﻳﻚ ﻛﺎرﺑﺮ ﺧﺎص ﭘﺎﺳﺦ ﻣﻲدﻫﺪ‪.‬‬

‫•‬

‫اﻳﻦ دﻳﺪ ﻫﻢ در ﺳﻄﺢ اﻧﺘﺰاﻋﻲ ﻣﻄﺮح اﺳﺖ‪ :‬ﺑﻨﺎﺑﺮﻳﻦ ﻣﺒﺘﻨﻲ اﺳﺖ ﺑﺮ ﻳﻚ ﺳﺎﺧﺘﺎر‬ ‫دادهاي ﻣﺸﺨﺺ و ﻣﻌﻤﻮﻻً ﻫﻤﺎن ﺳﺎﺧﺘﺎر دادهاي ﻛﻪ دﻳﺪ ادراﻛﻲ ﺑﺮ اﺳﺎس آن‬ ‫ﻃﺮاﺣﻲ و ﺗﻌﺮﻳﻒ ﻣﻲﺷﻮد‪.‬‬

‫•‬

‫اﻳﻦ دﻳﺪ روي دﻳﺪ ادراﻛﻲ ﻃﺮاﺣﻲ و ﺗﻌﺮﻳﻒ ﻣﻲﺷﻮد )ﺑﻪ ﻫﻤﻴﻦ دﻟﻴﻞ ﺑﻪ‬ ‫ﺟﺪوﻟﻬﺎي ﺳﻄﺢ ادراﻛﻲ‪ ،‬ﺟﺪوﻟﻬﺎي ﻣﺒﻨﺎ ﻳﺎ ﭘﺎﻳﻪ ﻣﻲﮔﻮﻳﻨﺪ(‪.‬‬

‫•‬

‫ﺑﻪ وﺻﻒ ﻳﺎ ﺗﻌﺮﻳﻒ دﻳﺪ ﺧﺎرﺟﻲ‪ ،‬ﺷﻤﺎي ﺧﺎرﺟﻲ ﻣﻲﮔﻮﻳﻴﻢ‪ :‬ﻧﻮﻋﻲ "ﺑﺮﻧﺎﻣﻪ "‬ ‫ﻛﻪ ﻛﺎرﺑﺮ ﺳﻄﺢ ﺧﺎرﺟﻲ ﻣﻲﻧﻮﻳﺴﺪ ﺣﺎوي دﺳﺘﻮرات "ﺗﻌﺮﻳﻒ دادهﻫﺎ " و ﮔﺎه‬

‫‪50‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫"ﻛﻨﺘﺮل دادهﻫﺎ" در ﻫﻤﺎن ﺳﻄﺢ ﺧﺎرﺟﻲ‪ .‬ﺷﻤﺎي ﺧﺎرﺟﻲ ﻫﻢ ﺑﻪ ﺳﻴﺴﺘﻢ داده‬ ‫ﻣﻲﺷﻮد و در ﻛﺎﺗﺎﻟﻮگ آن ﻧﮕﻬﺪاري ﻣﻲﺷﻮد‪.‬‬ ‫•‬

‫ﺑﻪ ﺗﻌﺮﻳﻒ ﻣﺠﻤﻮﻋﻪ دﻳﺪﻫﺎي ﺧﺎرﺟﻲ ﻛﺎرﺑﺮ‪ ،‬ﺳﻄﺢ ﺧﺎرﺟﻲ ﮔﻔﺘﻪ ﻣﻲﺷﻮد‪.‬‬

‫ﺷﻜﻞ ‪ 3-3‬ﺷﻤﺎﻳﻲ از ﻧﺎﻳﻜﺴﺎﻧﻲ ﺳﺎﺧﺘﺎر دادﻫﺎي در ﺳﻄﻮح ادراﻛﻲ و ﺧﺎرﺟﻲ‬

‫ﻧﻜﺘﻪ‪ :‬ﺣﺪاﻗﻞ از ﻟﺤﺎظ ﻧﻈﺮي ﻣﻲ ﺗﻮان ﮔﻔﺖ ﻛﻪ ﺳﺎﺧﺘﺎر )ﻣﺪل( داده اي در دو ﺳﻄﺢ‬ ‫اﻧﺘﺰاﻋﻲ ﻳﻌﻨﻲ ﺳﻄﺢ ﺧﺎرﺟﻲ و ﺳﻄﺢ ادراﻛﻲ ﻣﻲ ﺗﻮاﻧﺪ ﻳﻜﺴﺎن ﻧﺒﺎﺷﺪ‪ .‬ﺑﺎ اﻳﻦ وﺻﻒ‪،‬‬ ‫ﺑﺪﻳﻬﻲ اﺳﺖ ﻛﻪ ﻳﻚ ﻧﺮم اﻓﺰار واﺳﻂ ﺑﺮاي ﺗﺒﺪﻳﻞ دو ﺳﺎﺧﺘﺎر ﺑﻪ ﻳﻜﺪﻳﮕﺮ ﻻزم اﺳﺖ‪.‬‬ ‫ﺷﻜﻞ زﻳﺮ ﺗﻔﺎوت ﺑﻴﻦ ﺳﺎﺧﺘﺎرﻫﺎي داده اي دو دﻳﺪ را ﻣﺸﺨﺺ ﻣﻲ ﻛﻨﺪ‪ .‬ﻋﻨﺎوﻳﻦ ذﻛﺮ‬ ‫ﺷﺪه در ﺳﻄﺢ ادراﻛﻲ‪ ،‬در ﻣﻮرد ﺳﺎﺧﺘﺎرﻫﺎي داده اي اﺳﺖ ﻛﻪ در ﻓﺼﻞ ﺑﻌﺪ ﻣﻮرد‬ ‫ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻨﺪ ﮔﺮﻓﺖ‪.‬‬

‫‪ 3-2‬دﻳﺪ )ﻧﻤﺎي( داﺧﻠﻲ‬ ‫ﺳﻄﺢ داﺧﻠﻲ‪ ،‬ﻫﻤﺎن ﺳﻄﺢ ﻓﺎﻳﻠﻴﻨﮓ ﻣﻨﻄﻘﻲ ﭘﺎﻳﮕﺎه داده ﻫﺎﺳﺖ‪ .‬ﻣﻌﻨﺎﻳﺶ اﻳﻦ اﺳﺖ ﻛﻪ‬ ‫‪DBMS‬‬

‫ﺑﻪ ﺟﻨﺒﻪﻫﺎي ﻓﺎﻳﻠﻴﻨﮓ ﻓﻴﺰﻳﻜﻲ ﭘﺎﻳﮕﺎه داده ﻫﺎ ﻧﻤﻲ ﭘﺮدازد‪ .‬اﻳﻦ ﻛﺎر ﺑﺮ ﻋﻬﺪه‬

‫"ﺳﻴﺴﺘﻢ ﻓﺎﻳﻞ ﻓﻴﺰﻳﻜﻲ" در ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ اﺳﺖ‪ .‬در واﻗﻊ‪،‬‬

‫‪DBMS‬‬

‫در ﻣﺤﻴﻂ ﻓﺎﻳﻠﻴﻨﮓ‬

‫ﻣﻌﻤﺎﺭﻱ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﻫﺎ‬

‫‪51‬‬

‫ﻣﻨﻄﻘﻲ ﻋﻤﻞ ﻣﻲ ﻛﻨﺪ‪ ،‬ﻛﻢ و ﺑﻴﺶ ﺷﺒﻴﻪ ﺑﺮﻧﺎﻣﻪ ﻓﺎﻳﻞ ﭘﺮداز ﻛﻪ در ﺳﻄﺢ ﻣﻨﻄﻘﻲ و ﻧﻪ‬ ‫ﻓﻴﺰﻳﻜﻲ‪ ،‬ﻛﺎر ﻣﻲ ﻛﻨﺪ‪.‬‬

‫ﺷﻜﻞ ‪ 4-3‬ﻃﺮح ﺷﻤﺎﺗﻴﻚ از ذﺧﻴﺮه ﺳﺎزي ﻓﺎﻳﻠﻬﺎ در ﻣﺤﻴﻂ‬

‫‪DBMS‬‬

‫در اداﻣﻪ ﺗﻮﺿﻴﺤﺎﺗﻲ در ﺧﺼﻮص دﻳﺪ داﺧﻠﻲ اراﺋﻪ ﺷﺪه اﺳﺖ‪:‬‬ ‫•‬

‫دﻳﺪ‬

‫‪DBMS‬‬

‫)و ﻧﻴﺰ ﻃﺮاح ﭘﺎﻳﮕﺎهدادهﻫﺎ( اﺳﺖ در ﺳﻄﺢ ﭘﺎﻳﻴﻦ ﺗﺮ از ﺳﻄﺢ‬

‫ادراﻛﻲ‪ ،‬ﻧﺴﺒﺖ ﺑﻪ ﻛﻞ دادﻫﻬﺎي ذﺧﻴﺮه ﺷﺪﻧﻲ در ﭘﺎﻳﮕﺎهدادهﻫﺎ‪.‬‬ ‫•‬

‫اﻳﻦ دﻳﺪ در ﺳﻄﺢ ﻓﺎﻳﻠﻴﻨﮓ ﻣﻨﻄﻘﻲ )و ﮔﺎه ﻣﺠﺎزي( ﭘﺎﻳﮕﺎهدادهﻫﺎ ﻣﻄﺮح اﺳﺖ‪.‬‬

‫‪52‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫اﻳﻦ دﻳﺪ ﻣﺒﺘﻨﻲ اﺳﺖ ﺑﺮﻳﻚ )و ﮔﺎه ﺑﻴﺶ از ﻳﻚ( ﺳﺎﺧﺘﺎر ﻓﺎﻳﻞ ﻛﻪ ﻣﻌﻤﻮﻻً ﺑﺎ ﻧﻈﺮ‬ ‫و دﺧﺎﻟﺖ ﻃﺮاح ﭘﺎﻳﮕﺎهدادهﻫﺎ ﻃﺮاﺣﻲ ﻣﻲﺷﻮد‪ .‬اﻳﻦ ﻃﺮاﺣﻲ‪ ،‬اﺻﻄﻼﺣﺎ ﺑﻪ ﻃﺮاﺣﻲ‬ ‫ﻓﻴﺰﻳﻜﻲ ﻣﻮﺳﻮم اﺳﺖ‪.‬‬

‫•‬

‫ﺳﻄﺢ داﺧﻠﻲ ﭘﺎﻳﮕﺎهدادهﻫﺎ‪ ،‬در واﻗﻊ ﺳﻄﺤﻲ اﺳﺖ ﻛﻪ در آن ﻓﺎﻳﻠﻬﺎي ﻣﻨﻄﻘﻲ‬ ‫ﭘﺎﻳﮕﺎهدادهﻫﺎ ﺗﻌﺮﻳﻒ ﻣﻲﺷﻮد‪.‬‬

‫•‬

‫ﺑﻪ ﺷﺮح ﻳﺎ ﺗﻌﺮﻳﻒ دﻳﺪ داﺧﻠﻲ‪ ،‬ﺷﻤﺎي داﺧﻠﻲ ﮔﻔﺘﻪ ﻣﻲﺷﻮد‪ :‬ﻧﻮﻋﻲ "ﺑﺮﻧﺎﻣﻪ" ﻛﻪ‬ ‫ﺗﻮﺳﻂ ﺧﻮد ‪) DBMS‬و ﺗﺎ ﺣﺪي ﺑﺎ دﺧﺎﻟﺖ ﻃﺮاح ﭘﺎﻳﮕﺎهدادهﻫﺎ( ﺗﻮﻟﻴﺪ ﻣﻲﺷﻮد و‬ ‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﮔﻔﺘﻴﻢ ﺷﺮح ﻳﺎ ﺗﻮﺻﻴﻒ ﻓﺎﻳﻠﻴﻨﮓ ﻣﻨﻄﻘﻲ ﭘﺎﻳﮕﺎه اﺳﺖ ﻛﻪ در واﻗﻊ‬ ‫ﻫﻤﺎن ﺳﻄﺢ داﺧﻠﻲ اﺳﺖ‪.‬‬

‫ﺷﻜﻞ ‪ 5-3‬ﺷﻤﺎﻳﻲ از ﺗﻔﺎوت ﺳﻄﻮح ﻣﻌﻤﺎري ﺑﻴﻦ ﻣﺤﻴﻂ ﭘﺎﻳﮕﺎﻫﻲ و ﻧﺎﭘﺎﻳﮕﺎﻫﻲ‬

‫ﻣﻌﻤﺎﺭﻱ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﻫﺎ‬

‫ﻧﻜﺘﻪ‪ :‬در ﺑﻌﻀﻲ از ﺳﻴﺴﺘﻢﻫﺎي ﭘﺎﻳﮕﺎﻫﻲ‪،‬‬

‫‪DBMS‬‬

‫‪53‬‬

‫ﻛﻞ ﻓﻀﺎي ﭘﺎﻳﮕﺎه دادهﻫﺎ را ﺑﻪ‬

‫ﺻﻮرت ﻣﺠﻤﻮﻋﻪ اي از ﻣﺠﻤﻮﻋﻪ ﺻﻔﺤﺎت ﻣﻲ ﺑﻴﻨﺪ‪ ،‬ﻳﻌﻨﻲ ﻧﻮﻋﻲ ﻧﻤﺎي ﻣﺠﺎزي از‬ ‫داده ﻫﺎي ذﺧﻴﺮه ﺷﺪه در ﭘﺎﻳﮕﺎه دارد‪ .‬اﻳﻦ ﻧﻤﺎي ﻣﺠﺎزي ﺑﺎﻻﺗﺮ از ﺳﻄﺢ ﻓﺎﻳﻠﻴﻨﮓ ﻣﻨﻄﻘﻲ‬ ‫ﻗﺮار ﻣﻲ ﮔﻴﺮد‪ .‬در واﻗﻊ ﺑﻴﻦ ﺳﻄﺢ ﻧﻤﺎي ﻣﺠﺎزي و ﺳﻄﺢ ﻓﺎﻳﻠﻴﻨﮓ ﻓﻴﺰﻳﻜﻲ‪ ،‬ﻳﻚ ﺳﻄﺢ‬ ‫ﻓﺎﻳﻠﻴﻨﮓ ﻣﻨﻄﻘﻲ واﺳﻂ اﺳﺖ‪ .‬اﻳﻦ ﺳﻪ ﺳﻄﺢ در ﺷﻜﻞ ‪ 4-3‬ﻧﻤﺎﻳﺶ داده ﺷﺪه اﺳﺖ‪.‬‬ ‫ﻧﻜﺘﻪ‪ :‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ دﻳﺪﻫﺎي ﺳﻪ ﮔﺎﻧﻪ اراﺋﻪ ﺷﺪه در ﭘﺎﻳﮕﺎه داده‪ ،‬اﻛﻨﻮن ﺗﻔﺎوت ﺳﻄﻮح‬ ‫ﻣﻌﻤﺎري ﺑﻴﻦ ﻣﺤﺒﻂ ﭘﺎﻳﮕﺎﻫﻲ و ﻧﺎﭘﺎﻳﮕﺎﻫﻲ ﺑﻬﺘﺮ ﻧﻤﺎﻳﺎن ﻣﻲ ﮔﺮدد‪ .‬ﺷﻜﻞ زﻳﺮ اﻳﻦ ﺗﻔﺎوت‬ ‫را ﻧﻤﺎﻳﺎن ﻣﻲ ﻛﻨﺪ‪.‬‬

‫‪ -3‬ﺳﺎﻳﺮ اﺟﺰاء ﭘﺎﻳﮕﺎهدادهﻫﺎ‬ ‫ﺑﻐﻴﺮ از ﺳﻪ دﻳﺪ اﺻﻠﻲ اراﺋﻪ ﺷﺪه در ﺑﺎﻻ‪ ،‬اﺟﺰاء دﻳﮕﺮي ﻧﻴﺰ در ﭘﺎﻳﮕﺎه داده وﺟﻮد دارﻧﺪ‬ ‫ﻛﻪ ﻋﺒﺎرﺗﻨﺪ از‪:‬‬ ‫•‬

‫ﻛﺎرﺑﺮ‬

‫•‬

‫زﺑﺎن ﻣﻴﺰﺑﺎن‬

‫•‬

‫زﺑﺎن دادهاي ﻓﺮﻋﻲ‬

‫‪ 1-3‬ﻛﺎرﺑﺮ‬ ‫در ﻣﻌﻨﺎي ﻋﺎم‪ ،‬ﻫﺮ اﺳﺘﻔﺎده ﻛﻨﻨﺪه از ﭘﺎﻳﮕﺎه داده ﻫﺎ را ﻛﺎرﺑﺮ ﮔﻮﻳﻴﻢ‪ .‬ﻻزم ﺑﺬﻛﺮ اﺳﺖ ﻛﻪ‬ ‫در ﺑﻌﻀﻲ از ﻛﺘﺐ ﻛﺎرﺑﺮان ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺑﺮ ﺣﺴﺐ ﻧﻮع ﻛﺎر دﺳﺘﻪ ﺑﻨﺪي ﻣﻲ ﮔﺮدﻧﺪ‪ ،‬در‬ ‫اﻳﻨﺠﺎ ﻛﻠﻤﻪ ﻛﺎرﺑﺮ ﺑﺼﻮرت ﻋﺎم اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ و از ذﻛﺮ اﻧﻮاع ﻛﺎرﺑﺮ ﺧﻮدداري‬ ‫ﺷﺪه اﺳﺖ‪.‬‬

‫‪ 2-3‬زﺑﺎن ﻣﻴﺰﺑﺎن‬ ‫ﻳﻜﻲ از زﺑﺎﻧﻬﺎي ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﻣﻲ ﺑﺎﺷﺪ ﻛﻪ ﻗﺎدر ﺑﻪ ﺑﺮﻗﺮاري ارﺗﺒﺎط و اﻧﺘﻘﺎل دﺳﺘﻮرات‬ ‫ﺑﻴﻦ ﺧﻮد و ﭘﺎﻳﮕﺎه داده ﺑﺎﺷﺪ‪ .‬واﺿﺢ اﺳﺖ ﻛﻪ ﻫﺮﭼﻪ ﺗﻌﺪاد زﺑﺎﻧﻬﺎي ﻣﻴﺰﺑﺎن ﻣﻮرد‬ ‫ﭘﺬﻳﺮش ‪ DBMS‬ﺑﻴﺸﺘﺮ ﺑﺎﺷﺪ‪ ،‬ﻣﻮارد ذﻳﻞ ﺗﺎﻣﻴﻦ ﻣﻲ ﮔﺮدد‪:‬‬

‫‪54‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫ﺗﻨﻮع ﻛﺎرﺑﺮدﻫﺎ اﻣﻜﺎن ﭘﺬﻳﺮ ﻣﻲﺑﺎﺷﺪ‬

‫•‬

‫ﺗﻨﻮع ﻛﺎرﺑﺮان ﺗﺎﻣﻴﻦ ﻣﻲﮔﺮدد‬

‫•‬

‫اﻧﻌﻄﺎف ﭘﺬﻳﺮي ﺳﻴﺴﺘﻢ ﺑﻴﺸﺘﺮ ﻣﻲﮔﺮدد‪.‬‬ ‫ﻛﺎرﺑﺮ‬

‫ﻏﻴﺮ ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺲ‬

‫ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺲ‬

‫ﻛﺎرﺑﺮ ﻣﻮردي‬

‫ﻛﺎرﺑﺮ ﻫﻤﻴﺸﮕﻲ‬

‫ﻛﺎرﺑﺮ ﻧﻬﺎﻳﻲ‬ ‫ﺷﻜﻞ ‪ 6-3‬ﺷﻤﺎﻳﻲ از اﻧﻮاع ﻛﺎرﺑﺮان و ارﺗﺒﺎط ﺑﻴﻦ آﻧﻬﺎ‬

‫‪ 3-3‬زﺑﺎن دادهاي ﻓﺮﻋﻲ‬ ‫اﻳﻦ زﺑﺎن از ﺳﻪ دﺳﺘﻪ دﺳﺘﻮر ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ‪:‬‬ ‫‪1‬‬

‫•‬

‫دﺳﺘﻮرات ﺗﻌﺮﻳﻒ دادهﻫﺎ‬

‫•‬

‫دﺳﺘﻮرات ﻋﻤﻠﻴﺎت روي دادهﻫﺎ‬

‫•‬

‫دﺳﺘﻮرات ﻛﻨﺘﺮل دادهﻫﺎ‬

‫‪2‬‬

‫‪3‬‬

‫اﻳﻦ ﻧﻮع دﺳﺘﻮرﻫﺎ ﺑﺎﻳﺪ ﺑﺮاي ﻫﺮ ﻳﻚ از ﺳﻄﻮح ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎه داده وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪.‬‬ ‫اﻳﻦ ﻣﻮﺿﻮع در ﺷﻜﻞ ‪ 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‬‬

‫ﻣﻌﻤﺎﺭﻱ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﻫﺎ‬

‫‪55‬‬

‫زﺑﺎن ﻣﻴﺰﺑﺎن ﻳﺎ ﻋﺪم ﻧﻴﺎز ﺑﻪ آن‪ ،‬ﺑﻪ دو رده ﺗﻘﺴﻴﻢ ﻣﻲ ﺷﻮد‪:‬‬ ‫•‬

‫ﻣﺴﺘﻘﻞ ﻳﺎ ﺧﻮد ﻛﻔﺎ‬

‫•‬

‫ادﻏﺎم ﺷﺪﻧﻲ )ادﻏﺎم ﺷﺪه(‬

‫‪DDL‬‬

‫ﺳﻄﺢ ﺧﺎرﺣﻲ‬

‫‪DML‬‬

‫ﺳﻄﺢ ادراﻛﻲ‬

‫‪DCL‬‬

‫ﺳﻄﺢ داﺧﻠﻲ‬

‫ﻣﻌﻤﺎري‬ ‫‪ANSI‬‬

‫ﺷﻜﻞ ‪ 7-3‬ارﺗﺒﺎط ﺑﻴﻦ ﮔﺮوهﻫﺎي دﺳﺘﻮري ﻣﺨﺘﻠﻒ و ﺳﻄﻮح ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎهداده‬

‫زﺑﺎن ﻣﺴﺘﻘﻞ‬ ‫زﺑﺎﻧﻲ اﺳﺖ ﻛﻪ ﻧﻴﺎز ﺑﻪ زﺑﺎن ﻣﻴﺰﺑﺎن ﻧﺪارد و ﺧﻮد ﺑﻪ ﺻﻮرت ﺗﻌﺎﻣﻠﻲ )اﻧﺪر ﻛﻨﺸﻲ(‬ ‫اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد و آن را‬

‫‪I.DSL‬‬

‫ﮔﻮﻳﻴﻢ‪.‬‬

‫زﺑﺎن ادﻏﺎم ﺷﺪﻧﻲ‬ ‫زﺑﺎﻧﻲ اﺳﺖ ﻛﻪ دﺳﺘﻮرﻫﺎﻳﺶ )ﺑﻪ ﻧﺤﻮي( در ﻣﺘﻦ ﺑﺮﻧﺎﻣﻪاي ﺑﻪ زﺑﺎن ﻣﻴﺰﺑﺎن ﺑﻜﺎر‬ ‫ﻣﻲ روﻧﺪ و ﻣﺴﺘﻘﻼ ﻗﺎﺑﻞ اﺳﺘﻔﺎده ﻧﻴﺴﺘﻨﺪ و آن را ‪ E.DSL‬ﮔﻮﻳﻴﻢ‪.‬‬ ‫ﻧﻜﺘﻪ‪ :‬زﺑﺎن داده اي ﻓﺮﻋﻲ ﻣﻤﻜﻦ اﺳﺖ ﻫﻢ ﻣﺴﺘﻘﻞ و ﻫﻢ ادﻏﺎم ﺷﺪﻧﻲ ﺑﺎﺷﺪ)‪.(I/E.DSL‬‬

‫‪56‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﺗﻤﺮﻳﻨﺎت‬ ‫‪ .1‬دﻳﺪﻫﺎي ﺳﻪ ﮔﺎﻧﻪ اراﺋﻪ ﺷﺪه در ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎه داده ﻫﺎ را ﻧﺎم ﺑﺒﺮﻳﺪ ؟‬ ‫‪ .2‬دﻳﺪ )ﻧﻤﺎي( ادارﻛﻲ را ﺷﺮح دﻫﻴﺪ ؟‬ ‫‪ .3‬دﻳﺪ )ﻧﻤﺎي( ﺧﺎرﺟﻲ را ﺷﺮح دﻫﻴﺪ ؟‬ ‫‪ .4‬دﻳﺪ )ﻧﻤﺎي( داﺧﻠﻲ را ﺷﺮح دﻫﻴﺪ ؟‬ ‫‪ .5‬اﻧﻮاع دﺳﺘﻮرات زﺑﺎن داده اي ﻓﺮﻋﻲ را ﻧﺎم ﺑﺒﺮﻳﺪ ؟‬ ‫‪ .6‬زﺑﺎن ﻣﺴﺘﻘﻞ ﺑﻪ ﭼﻪ ﻣﻌﻨﻲ اﺳﺖ ؟‬ ‫‪ .7‬زﺑﺎن ادﻏﺎم ﺷﺪﻧﻲ را ﺷﺮح دﻫﻴﺪ ؟‬

‫ﻓﺼﻞ ‪۴‬‬ ‫ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎﻩﺩﺍﺩﻩ‬ ‫ﻫﺪف ﻛﻠﻲ‬ ‫در اﻳﻦ ﻓﺼﻞ اﺑﺘﺪا ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺗﻌﺮﻳﻒ و ﺳﻪ ﺑﺨﺶ اﺻﻠﻲ آن ﻣﻮرد‬ ‫ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻨﺪ ﮔﺮﻓﺖ‪ .‬ﺳﭙﺲ ﺳﻴﺴﺘﻢ ﻫﺎي ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎ از ﺟﻬﺎت‬ ‫ﻣﺨﺘﻠﻒ ﻣﻮرد دﺳﺘﻪ ﺑﻨﺪي ﻗﺮار ﺧﻮاﻫﻨﺪ ﮔﺮﻓﺖ‪ .‬در اداﻣﻪ اﺟﺰاء ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ‬ ‫ﭘﺎﻳﮕﺎه داده ﻣﻌﺮﻓﻲ ﺷﺪه و ﻛﺎﺗﺎﻟﻮگ ﻳﺎ دﻳﻜﺸﻨﺮي ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺗﻮﺿﻴﺢ داده ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬ ‫ﺳﭙﺲ ﭘﺎراﻣﺘﺮﻫﺎي ﻣﺨﺘﻠﻒ ﻣﻮرد ﻧﻴﺎز ﺟﻬﺖ ﺷﻨﺎﺧﺖ‬ ‫اﺻﻠﻲ ﻣﻘﺎﻳﺴﻪ‬

‫‪DBMS‬‬

‫‪DBMS‬‬

‫ﻣﻄﺮح ﺷﺪه و ﻣﺤﻮر ﻫﺎي‬

‫ﺷﺮح داده ﺧﻮاﻫﻨﺪ ﺷﺪ‪ .‬در ﭘﺎﻳﺎن ﻧﻴﺰ ﺟﺎﻳﮕﺎه ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎه داده‬

‫ﺗﺸﺮﻳﺢ ﺷﺪه و ﺗﻴﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﺷﺮح داده ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬

‫ﻫﺪف رﻓﺘﺎري‬ ‫در اﻳﻦ ﻓﺼﻞ ﻋﻨﺎوﻳﻦ زﻳﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ‪:‬‬ ‫•‬

‫ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫ﺑﺨﺶ ﺳﺎﺧﺘﺎري‬

‫•‬

‫ﺑﺨﺶ ﻋﻤﻠﻴﺎﺗﻲ‬

‫•‬

‫ﺑﺨﺶ ﺟﺎﻣﻌﻴﺘﻲ‬

‫•‬

‫رده ﺑﻨﺪي ﺳﻴﺴﺘﻢﻫﺎي ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫اﺟﺰاء ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫ﻧﻤﺎي ﺑﻴﺮوﻧﻲ ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫‪58‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫ﻧﻤﺎي دروﻧﻲ ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫ﻻﻳﻪ ﻣﺪﻳﺮﻳﺖ ﻣﺤﻴﻂ ﭘﺎﻳﮕﺎهداده‬

‫•‬

‫ﻻﻳﻪ ﻫﺴﺘﻪ ﭘﺎﻳﮕﺎهداده‬

‫•‬

‫ﻛﺎﺗﺎﻟﻮگ ﺳﻴﺴﺘﻢ و دﻳﻜﺸﻨﺮي دادهﻫﺎ‪ :‬ﻣﺘﺎ دادهﻫﺎ‬

‫•‬

‫ﭘﺎراﻣﺘﺮﻫﺎي ﺷﻨﺎﺧﺖ‬

‫•‬

‫ﭘﺎراﻣﺘﺮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫ﺳﻄﺢ داﺧﻠﻲ‪ -‬ﻓﻴﺰﻳﻜﻲ‬

‫•‬

‫ﺳﻄﺢ ادراﻛﻲ‬

‫•‬

‫ﺳﻄﺢ ﺧﺎرﺟﻲ‬

‫•‬

‫ﭘﺎراﻣﺘﺮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ زﺑﺎن دادهاي ﻓﺮﻋﻲ‬

‫•‬

‫ﻣﺤﻮرﻫﺎي اﺻﻠﻲ ﻣﻘﺎﻳﺴﻪ ‪DBMS‬ﻫﺎ‬

‫•‬

‫ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎهداده‬

‫•‬

‫ﺗﻴﻢ ‪ ،DBA‬وﻇﺎﻳﻒ و ﻣﺴﺌﻮﻟﻴﺖﻫﺎ ي آن‬

‫‪DBMS‬‬

‫)‪(DBA‬‬

‫‪ -1‬ﺗﻌﺮﻳﻒ‬ ‫ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎ ﻳﻜﻲ از اﻧﻮاع ﻧﺮم اﻓﺰارﻫﺎي واﺳﻄﻪ ﺑﻴﻦ ﻣﺤﻴﻂ ﻓﻴﺰﻳﻜﻲ‬ ‫ذﺧﻴﺮه و ﺑﺎزﻳﺎﺑﻲ اﻃﻼﻋﺎت و ﻣﺤﻴﻂ ﻣﻨﻄﻘﻲ ﺑﺮﻧﺎﻣﻪ ﺳﺎزي اﺳﺖ اﻳﻦ ﻧﺮم اﻓﺰار ﺑﻪ ﻛﺎرﺑﺮ‬ ‫ﺑﺮﻧﺎﻣﻪ ﺳﺎز اﻣﻜﺎن ﻣﻲ دﻫﺪ ﺗﺎ‪:‬‬ ‫•‬

‫ﭘﺎﻳﮕﺎهدادهﻫﺎي ﺧﻮد را ﺗﻌﺮﻳﻒ واﻳﺠﺎد ﻛﻨﺪ‪.‬‬

‫•‬

‫در ﭘﺎﻳﮕﺎهدادهﻫﺎي ﺧﻮد ﻋﻤﻠﻴﺎت اﻧﺠﺎم دﻫﺪ‪.‬‬

‫•‬

‫روي ﭘﺎﻳﮕﺎهدادهﻫﺎي ﺧﻮد ﺗﺎ ﺣﺪي ﻛﻨﺘﺮل داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬

‫ﺑﺪﻳﻬﻲ اﺳﺖ ﻛﻪ ﻳﻚ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎ در ﻣﺤﻴﻂ ﻳﻚ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ ﻋﻤﻞ‬ ‫ﻣﻲ ﻛﻨﺪ‪ .‬ﺷﻤﺎي ﺳﺎده اي از ﺟﺎﻳﮕﺎه اﻳﻦ ﻧﺮم اﻓﺰار در ﻳﻚ ﺳﻴﺴﺘﻢ ﻛﺎﻣﭙﻮﺗﺮي در ﺷﻜﻞ‬ ‫زﻳﺮ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪:‬‬

‫ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده‬

‫‪59‬‬

‫ﺷﻜﻞ ‪ 1-4‬ﺟﺎﻳﮕﺎه ‪ DBMS‬در ﻳﻚ ﺳﻴﺴﺘﻢ ﻛﺎﻣﭙﻴﻮﺗﺮي‬

‫ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ ﻳﻚ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده واﻗﻌﻲ ﺑﺎﻳﺪ اﻣﻜﺎن اﻧﺠﺎم اﻳﻦ ﺳﻪ‬ ‫ﻓﻌﺎﻟﻴﺖ اﺳﺎﺳﻲ را ﻗﺒﻞ از ﻫﺮ ﭼﻴﺰ در ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ ﺑﻪ ﻛﺎرﺑﺮ ﺑﺪﻫﺪ‪ .‬ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ‬ ‫ﻣﻲ ﺗﻮان ﮔﻔﺖ ﻛﻪ ﭘﺎﻳﮕﺎه داده از ﺳﻪ ﺑﺨﺶ اﺻﻠﻲ ﺑﻪ ﺷﺮح ذﻳﻞ ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ‪:‬‬ ‫•‬

‫ﺑﺨﺶ ﺳﺎﺧﺘﺎري‬

‫•‬

‫ﺑﺨﺶ ﻋﻤﻠﻴﺎﺗﻲ‬

‫•‬

‫ﺑﺨﺶ ﺟﺎﻣﻌﻴﺘﻲ‬

‫ﺑﺨﺶ ﺳﺎﺧﺘﺎري‬ ‫ﺷﺎﻣﻞ ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﺎري ﻣﺪل اﺳﺖ ﻛﻪ ﻫﻤﺎن ﺳﺎﺧﺘﺎر داده اي اﺻﻠﻲ و ﻣﻔﺎﻫﻴﻢ ﻣﺮﺗﺒﻂ ﺑﺎ‬ ‫آن اﺳﺖ‪.‬‬

‫ﺑﺨﺶ ﻋﻤﻠﻴﺎﺗﻲ‬ ‫ﻣﺠﻤﻮﻋﻪ اﻣﻜﺎﻧﺎﺗﻲ اﺳﺖ ﻛﻪ ﺑﻪ وﺳﻴﻠﻪ آﻧﻬﺎ ﻋﻤﻠﻴﺎت ﻣﻮرد ﻧﻈﺮ ﻛﺎرﺑﺮ‪ ،‬از ﺟﻤﻠﻪ ﺑﺎزﻳﺎﺑﻲ‬ ‫و ذﺧﻴﺮه ﺳﺎزي‪ ،‬در ﻛﺎدر ﺳﺎﺧﺘﺎر داده اي و ﻣﺒﺘﻨﻲ ﺑﺮ ﻋﻨﺼﺮ ﺳﺎﺧﺘﺎر اﺳﺎﺳﻲ آن اﻧﺠﺎم‬ ‫ﻣﻲ ﺷﻮد‪.‬‬

‫ﺑﺨﺶ ﺟﺎﻣﻌﻴﺘﻲ‬ ‫از ﻣﺠﻤﻮﻋﻪ اي از ﻗﻮاﻋﺪ ﺟﺎﻣﻌﻴﺘﻲ ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ ﻛﻪ ﺑﺎ اﺳﺘﻔﺎده از آن ﺳﻴﺴﺘﻢ‬ ‫ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻣﻲ ﺗﻮاﻧﺪ ﺻﺤﺖ‪ ،‬دﻗﺖ و ﺳﺎزﮔﺎري دادهﻫﺎ را در ﻫﺮ ﻟﺤﻈﻪ از‬ ‫ﺣﻴﺎت ﭘﺎﻳﮕﺎه داده ﻫﺎ‪ ،‬ﻛﻨﺘﺮل و ﺗﻈﻤﻴﻦ ﻛﻨﺪ‪.‬‬

‫‪60‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪ -2‬رده ﺑﻨﺪي ﺳﻴﺴﺘﻢﻫﺎي ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ‬ ‫ﺳﻴﺴﺘﻢ ﻫﺎي ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده را ﻣﻲ ﺗﻮان ﺑﻪ ﭼﻨﺪﻳﻦ ﺻﻮرت دﺳﺘﻪ ﺑﻨﺪي ﻧﻤﻮد‪ .‬اﻳﻦ‬ ‫دﺳﺘﻪ ﺑﻨﺪي ﻫﺎ در ذﻳﻞ آﻣﺪه اﻧﺪ‪:‬‬

‫از ﻧﻈﺮ ﻣﺪل دادهاي‬ ‫•‬

‫ﺳﻴﺴﺘﻢ راﺑﻄﻪاي‬

‫•‬

‫ﺳﻴﺴﺘﻢ ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‬

‫•‬

‫ﺳﻴﺴﺘﻢ ﺷﺒﻜﻪاي‬

‫از ﻧﻈﺮ ﻣﺤﻴﻂ ﺳﺨﺖاﻓﺰاري‬ ‫•‬

‫ﻗﺎﺑﻠﻴﺖ اﺟﺮا ﺑﺮ روي ﻳﻚ ﺳﺨﺖاﻓﺰار ﺧﺎص‬

‫•‬

‫ﻗﺎﺑﻠﻴﺖ اﺟﺮا ﺑﺮ روي ﺳﺨﺖاﻓﺰارﻫﺎي ﻣﺘﻨﻮع‬

‫از ﻧﻈﺮ رده ﺑﻨﺪي ﻛﺎﻣﭙﻴﻮﺗﺮ‬ ‫‪1‬‬

‫•‬

‫ﻗﺎﺑﻞ اﺟﺮا ﺑﺮ روي ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎي ﺑﺰرگ و ﺧﻴﻠﻲ ﺑﺰرگ‬

‫•‬

‫ﻗﺎﺑﻞ اﺟﺮا ﺑﺮ روي ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎي ﻣﺘﻮﺳﻂ‬

‫•‬

‫ﻗﺎﺑﻞ اﺟﺮا ﺑﺮ روي ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎي ﺷﺨﺼﻲ‬

‫•‬

‫ﻗﺎﺑﻞ اﺟﺮا ﺑﺮ روي اﻧﻮاع ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎ‬

‫‪2‬‬

‫از ﻧﻈﺮ ﻣﺤﻴﻂ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ‬ ‫•‬

‫واﺑﺴﺘﻪ ﺑﻪ ﻳﻚ ﻧﻮع ﺧﺎص از ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ‬

‫•‬

‫ﻋﺪم واﺑﺴﺘﮕﻲ ﺑﻪ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ و ﻗﺎﺑﻞ اﺟﺮا ﺑﺮ روي ﭼﻨﺪ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ‬

‫از ﻧﻈﺮ ﻧﻮع ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎهدادهﻫﺎ‬ ‫•‬

‫داراي ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎهداده ﻣﺘﻤﺮﻛﺰ‬

‫•‬

‫داراي ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎهداده ﻧﺎ ﻣﺘﻤﺮﻛﺰ‬

‫‪1. M a in f r a me‬‬ ‫‪2. Su p e r C o mp u t e r‬‬

‫ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده‬

‫از ﻧﻈﺮ ﻣﻌﻤﺎري ﻣﺸﺘﺮي‪ -‬ﺧﺪﻣﺘﮕﺰار‬

‫‪61‬‬

‫‪1‬‬

‫•‬

‫ﺗﻮاﻧﺎﻳﻲ در اراﺋﻪ ﻣﻌﻤﺎري ﻳﻚ ﺧﺪﻣﺘﮕﺰار‪ -‬ﭼﻨﺪ ﻣﺸﺘﺮي‬

‫•‬

‫ﺗﻮاﻧﺎﻳﻲ در اراﺋﻪ ﻣﻌﻤﺎري ﭼﻨﺪ ﺧﺪﻣﺘﮕﺰار‪ -‬ﭼﻨﺪ ﻣﺸﺘﺮي‬

‫از ﻧﻈﺮ ﺳﻴﺴﺘﻢ ﻓﺎﻳﻞ‬ ‫•‬

‫ﻣﺴﺘﻘﻞ از ﺳﻴﺴﺘﻢ ﻓﺎﻳﻠﻴﻨﮓ ﻣﺮﺑﻮط ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ‬

‫•‬

‫واﺑﺴﺘﻪ ﺑﻪ ﺳﻴﺴﺘﻢ ﻓﺎﻳﻠﻴﻨﮓ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ‬

‫از ﻧﻈﺮ ﻣﺘﺪوﻟﻮژي زﺑﺎن ﭘﺎﻳﮕﺎﻫﻲ‬ ‫•‬

‫ﺑﺪون ﻣﺘﺪوﻟﻮژي ﺷﻴﺊ ﮔﺮاﻳﻲ‬

‫•‬

‫داراي ﻣﺘﺪوﻟﻮژي ﺷﻴﺊ ﮔﺮاﻳﻲ‬

‫از ﻧﻈﺮ ﺑﻬﻴﻨﻪ ﺳﺎزي ﭘﺮس و ﺟﻮﻫﺎ و درﺧﻮاﺳﺖﻫﺎي ﻛﺎرﺑﺮ‬ ‫•‬

‫داراي ﺑﻬﻴﻨﻪ ﺳﺎز ﻣﺘﻌﺎرف‬

‫•‬

‫داراي ﺑﻬﻴﻨﻪ ﺳﺎز ﻣﺒﺘﻨﻲ ﺑﺮ ﻗﺎﻋﺪه‪ ،‬ﻣﻌﻨﺎﻳﻲ و‪...‬‬

‫از ﻧﻈﺮ ﻧﻮع ﺗﺮاﻛﻨﺶ‬ ‫•‬

‫ﭘﺬﻳﺮﻧﺪه ﺗﺮاﻛﻨﺸﻬﺎي ﺳﺎده و ﺗﻚ ﺳﻄﺤﻲ‬

‫•‬

‫ﭘﺬﻳﺮﻧﺪه ﺗﺮاﻛﻨﺸﻬﺎي ﺑﺎ ﻣﺪل ﭘﻴﺸﺮﻓﺘﻪ )ﻣﺜﻼ ﺗﻮدرﺗﻮ‪ ،‬زﻧﺠﻴﺮهاي و‪(...‬‬

‫از ﻧﻈﺮ ﻧﻮع ﭘﺮدازش‬ ‫•‬

‫ﺑﺎ ﻗﺎﺑﻠﻴﺖ ﭘﺮدازش ﺑﻲ درﻧﮓ‬

‫•‬

‫ﻓﺎﻗﺪ اﻳﻦ ﻗﺎﺑﻠﻴﺖ‬

‫‪ -3‬اﺟﺰاء ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ‬ ‫اﻳﻦ ﻧﺮم اﻓﺰار‪ ،‬ﻣﺜﻞ ﻫﺮ ﻧﺮم اﻓﺰار ﻧﻴﻤﻪ ﺑﻨﻴﺎدي دﻳﮕﺮ از واﺣﺪﻫﺎﻳﻲ ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ‪.‬‬ ‫ﺗﻌﺪاد واﺣﺪﻫﺎ و ﺣﺠﻢ ﻫﺮ واﺣﺪ ﻧﺮم اﻓﺰاري ﺑﺴﺘﮕﻲ ﺑﻪ ﺗﻮاﻧﺎﻳﻲ ﺳﻴﺴﺘﻢ در اﻧﺠﺎم ﻛﺎرﻫﺎ‬ ‫‪1. C li e n t - Se r ve r Ar c h i t e c t u r e‬‬

‫‪62‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫و اراﺋﻪ ﺧﺪﻣﺎت ﺑﻪ ﻛﺎرﺑﺮان دارد‪ .‬در اداﻣﻪ واﺣﺪﻫﺎي اﺻﻠﻲ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ‬ ‫ﭘﺎﻳﮕﺎه داده ﻫﺎ ﻣﻌﺮﻓﻲ ﺧﻮاﻫﻴﻢ ﻛﺮد‪.‬‬

‫‪ 1-3‬ﻧﻤﺎي ﺑﻴﺮوﻧﻲ‬ ‫ﻧﻤﺎي ﺑﻴﺮوﻧﻲ‪ ،‬از واﺣﺪﻫﺎي اﺻﻠﻲ زﻳﺮ ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ‪:‬‬ ‫•‬

‫واﺣﺪ ﭘﺮدازﺷﮕﺮ "ﭘﺮﺳﺶﻫﺎ"‬

‫•‬

‫واﺣﺪ ﭘﺮدازﺷﮕﺮ "ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي"‬

‫•‬

‫واﺣﺪاﻳﺠﺎد و ﻣﺪﻳﺮﻳﺖ دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه‪.‬‬

‫ﺷﻜﻞ ‪ 2-4‬ﻧﻤﺎي ﺑﻴﺮوﻧﻲ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهداده‬

‫ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده‬

‫‪63‬‬

‫در اﻳﻨﺠﺎ ﻻزم اﺳﺖ ﺑﻪ اﻳﻦ ﻧﻜﺘﻪ ﺗﻮﺟﻪ ﺷﻮد ﻛﻪ ﭘﺮﺳﺸﻬﺎ ﻧﻴﺰ در واﻗﻊ ﻧﻮﻋﻲ از ﺑﺮﻧﺎﻣﻪ‬ ‫ﻛﺎرﺑﺮدي و ﻳﺎ در ﻣﻮاردي ﻗﺴﻤﺘﻲ از ﺑﺮﻧﺎﻣﻪ ﻛﺎرﺑﺮدي ﻫﺴﺘﻨﺪ‪ .‬ﺗﻔﺎوت ﺑﻴﻦ اﻳﻦ دو در‬ ‫اﻳﻦ ﻧﻜﺘﻪ اﺳﺖ ﻛﻪ ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﻛﺎرﺑﺮدي ﺑﺎ ﻳﻚ زﺑﺎن ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺗﻬﻴﻪ ﻣﻲ ﺷﻮﻧﺪ ﻛﻪ ﺑﻪ‬ ‫ﻃﺮﻳﻘﻲ ﺑﺎ ﭘﺎﻳﮕﺎه داده ارﺗﺒﺎط ﺑﺮﻗﺮار ﻣﻲ ﻛﻨﺪ و دﺳﺘﻮرات ﻣﻮرد ﻧﻴﺎز ﺑﺮاي ﻛﺎر ﺑﺎ‬ ‫ﭘﺎﻳﮕﺎه داده درون زﺑﺎن اﻧﺘﺨﺎب ﺷﺪه ﻣﻲ ﺑﺎﺷﺪ ﻛﻪ ﺗﻮﺳﻂ ﻛﺎﻣﭙﺎﻳﻠﺮ زﺑﺎن ﺑﺮاي ﭘﺎﻳﮕﺎه داده‬ ‫ﻗﺎﺑﻞ ﻓﻬﻢ ﻣﻲ ﺷﻮد‪ .‬وﻟﻲ ﭘﺮﺳﺸﻬﺎ ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮراﺗﻲ ﻛﻪ ﺑﺮاي ﭘﺎﻳﮕﺎه داده ﻗﺎﺑﻞ ﻓﻬﻢ‬ ‫ﻣﻲ ﺑﺎﺷﺪ‪ ،‬ﺗﻬﻴﻪ ﻣﻲ ﺷﻮﻧﺪ و در واﻗﻊ ﺑﻪ ﻧﻮﻋﻲ واﺑﺴﺘﮕﻲ ﻛﺎﻣﻞ ﺑﻪ ﭘﺎﻳﮕﺎه داده ﻣﻮرد اﺳﺘﻔﺎده‬ ‫دارد‪ .‬ﺷﻜﻞ ‪ 2-4‬ﻧﻤﺎي ﺑﻴﺮوﻧﻲ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده را ﺑﺼﻮرﺗﻲ ﺳﺎده ﺑﻴﺎن‬ ‫ﻣﻲ ﻛﻨﺪ‪.‬‬

‫‪ 2-3‬ﻧﻤﺎي دروﻧﻲ‬ ‫اﻳﻦ ﻧﺮم اﻓﺰار )ﻧﻤﺎي دروﻧﻲ( از ﺳﻪ ﻻﻳﻪ ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ ﻛﻪ ﻫﺮ ﻻﻳﻪ وﻇﺎﻳﻒ ﺧﺎص‬ ‫ﺧﻮد را ﺑﺮ ﻋﻬﺪه دارد‪ .‬ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ در ﻛﺘﺎﺑﻬﺎي ﻣﺨﺘﻠﻒ ﻣﻤﻜﻦ اﺳﺖ وﻇﺎﻳﻒ‬ ‫ﻫﺮ ﻳﻚ از اﻳﻦ ﻻﻳﻪ ﻫﺎ ﻣﺘﻔﺎوت ﺑﺎﺷﺪ‪ .‬در اداﻣﻪ ﻻﻳﻪ ﻫﺎي اﻳﻦ ﻗﺴﻤﺖ ﺑﻪ ﻫﻤﺮاه وﻇﺎﻳﻒ‬ ‫ﻫﺮ ﻳﻚ ﺷﺮح داده ﺷﺪه اﺳﺖ‪:‬‬ ‫•‬

‫ﻻﻳﻪ ﻣﺪﻳﺮﻳﺖ ﻣﺤﻴﻂ ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫ﻻﻳﻪ ﻫﺴﺘﻪ ‪) 2‬ﺳﻴﺴﺘﻢ ﻛﻨﺘﺮل ﻳﺎ ﻣﻮﺗﻮر ﭘﺎﻳﮕﺎهدادهﻫﺎ(‬

‫•‬

‫ﻻﻳﻪ ﺗﺴﻬﻴﻼت ﻧﺮماﻓﺰاري‪) 3‬اﺑﺰارﻫﺎ(‬

‫‪1‬‬

‫ﻻﻳﻪ ﻣﺮﺑﻮط ﺑﻪ ﺗﺴﻬﻴﻼت ﻧﺮماﻓﺰاري ﻣﻌﻤﻮﻻً در ﺳﻴﺴﺘﻢ ﻫﺎي ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎ‬ ‫ﻣﺘﻔﺎوت ﻣﻲ ﺑﺎﺷﺪ و ﺗﻮاﻧﺎﻳﻲ ﻫﺎ و ﺧﺪﻣﺎت ﻗﺎﺑﻞ اراﺋﻪ در اﻳﻦ ﻻﻳﻪ ﺑﻌﻀﺎ ﺑﺴﻴﺎر ﻣﺘﻨﻮع و ﻳﺎ‬ ‫ﺑﺴﻴﺎر ﺳﺎده اﺳﺖ‪ .‬ﻟﺬا از ﺑﺤﺚ ﭘﻴﺮاﻣﻮن اﻳﻦ ﻻﻳﻪ اﺟﺘﻨﺎب ﻣﻲﮔﺮدد‪.‬‬

‫‪ 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‬‬

‫‪64‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫ﻛﻨﺘﺮل ﺟﺎﻣﻌﻴﺖ‪ 1‬ﭘﺎﻳﮕﺎهداده‬

‫•‬

‫ﻛﻨﺘﺮل ﺗﺮﻣﻴﻢ‪) 2‬ﺑﺎزﺳﺎزي( ﭘﺎﻳﮕﺎهداده‬

‫•‬

‫اﻳﻤﻨﻲ و ﺣﻔﺎﻇﺖ ﭘﺎﻳﮕﺎهداده‬

‫‪3‬‬

‫‪4‬‬

‫•‬

‫ﺗﻮﻟﻴﺪ ﻧﺴﺨﻪﻫﺎي ﭘﺸﺘﻴﺒﺎن‬

‫•‬

‫ﺗﻮﻟﻴﺪ ﻓﺎﻳﻠﻬﺎي ﺛﺒﺖ ﺗﺮاﻛﻨﺶ ﻫﺎ‬

‫‪5‬‬

‫‪ 2-2-3‬ﻻﻳﻪ ﻫﺴﺘﻪ ﭘﺎﻳﮕﺎهداده‬ ‫ﻻﻳﻪ ﻫﺴﺘﻪ در واﻗﻊ ﻻﻳﻪ اﺻﻠﻲ درﻳﺎﻓﺖ ﻛﻨﻨﺪه درﺧﻮاﺳﺖ ﻫﺎ و اﻧﺠﺎم ﻋﻤﻠﻴﺎت ﻣﺮﺗﺒﻂ ﺑﺎ‬ ‫آن را ﺑﺮ ﻋﻬﺪه دارد‪ .‬ﻣﻬﻤﺘﺮﻳﻦ وﻇﺎﻳﻒ اﻳﻦ واﺣﺪ ﺑﻪ ﺷﺮح زﻳﺮ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫•‬

‫درﻳﺎﻓﺖ درﺧﻮاﺳﺖﻫﺎ و ﭘﻴﺶ ﻛﺎﻣﭙﺎﻳﻞ‬

‫•‬

‫ﻛﺎﻣﭙﺎﻳﻞ درﺧﻮاﺳﺖﻫﺎ و ﺑﻬﻴﻨﻪ ﺳﺎزي ﭘﺮس و ﺟﻮ‬

‫•‬

‫ﻣﺪﻳﺮﻳﺖ ﻓﺎﻳﻠﻴﻨﮓ ﻣﻨﻄﻘﻲ و ﻓﻀﺎي دﻳﺴﻚ‬

‫•‬

‫ﻣﺪﻳﺮﻳﺖ ﺑﺎﻓﺮ )ﺣﺎﻓﻈﻪ ﻧﻬﺎن(‬

‫•‬

‫ﻣﺪﻳﺮﻳﺖ و ﻧﻈﺎرت ﺑﺮ زﻣﺎن اﺟﺮا دﺳﺘﻮرات‬

‫•‬

‫ﻣﺪﻳﺮﻳﺖ ﻫﻤﺰﻣﺎﻧﻲ ﺗﺮاﻛﻨﺶﻫﺎ‬

‫•‬

‫ﻣﺪﻳﺮﻳﺖ اﻧﺘﻘﺎل دادهﻫﺎ‬

‫•‬

‫ﻣﺪﻳﺮﻳﺖ ﻛﺎﺗﺎﻟﻮگ ﺳﻴﺴﺘﻢ‬

‫‪ -4‬ﻛﺎﺗﺎﻟﻮگ ﺳﻴﺴﺘﻢ و دﻳﻜﺸﻨﺮي دادهﻫﺎ )ﻣﺘﺎ دادهﻫﺎ(‬ ‫ﻳﻜﻲ از وﻳﮋﮔﻲ ﻫﺎي ﻣﺸﻲ ﭘﺎﻳﮕﺎﻫﻲ اﻳﻦ اﺳﺖ ﻛﻪ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﻧﻪ ﺗﻨﻬﺎ ﺣﺎوي‬ ‫ﭘﺎﻳﮕﺎه داده ﻫﺎ اﺳﺖ‪ ،‬ﺑﻠﻜﻪ ﺗﻌﺮﻳﻒ ﻛﺎﻣﻞ ﻳﺎ ﺗﻮﺻﻴﻒ ﭘﺎﻳﮕﺎه داده ﻫﺎ و ﻗﻮاﻋﺪ ﻧﺎﻇﺮ ﺑﻪ آﻧﺮا‬ ‫ﻧﻴﺰ در ﺧﻮد دارد‪ .‬ﻛﺎﺗﺎﻟﻮگ ﺣﺎوي داده ﻫﺎﻳﻲ اﺳﺖ در ﻣﻮرد داده ﻫﺎي ذﺧﻴﺮه ﺷﺪه در‬ ‫ﭘﺎﻳﮕﺎه داده ﻫﺎي ﻛﺎرﺑﺮ‪ .‬در اداﻣﻪ ﻧﻜﺎﺗﻲ ﭼﻨﺪ در ﻣﻮرد ﻛﺎﺗﺎﻟﻮگ ﺳﻴﺴﺘﻢ اراﺋﻪ ﻣﻲ ﮔﺮدد‪:‬‬ ‫‪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‬‬

‫ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده‬ ‫•‬

‫‪65‬‬

‫دادهﻫﺎي ﺣﺎوي اﻃﻼﻋﺎت در ﻣﻮرد دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه در ﭘﺎﻳﮕﺎهداده‪ ،‬ﺑﻪ ﻣﺘﺎ‬ ‫دادهﻫﺎ ﻣﻮﺳﻮﻣﻨﺪ‪.‬‬

‫•‬

‫در ﺑﻌﻀﻲ از ﻛﺘﺎبﻫﺎ ﺑﻪ ﻛﺎﺗﺎﻟﻮگ ﺳﻴﺴﺘﻢ ﮔﺎه دﻳﻜﺸﻨﺮي دادهﻫﺎ ﻫﻢ ﮔﻔﺘﻪ ﻣﻲﺷﻮد‪،‬‬ ‫اﻣﺎ در واﻗﻊ دﻳﻜﺸﻨﺮي دادهﻫﺎ ﺣﺎوي اﻃﻼﻋﺎت ﺑﻴﺸﺘﺮي اﺳﺖ‪.‬‬

‫•‬

‫ﻣﺘﺎ دادهﻫﺎ ﻣﻌﻤﻮﻻً از دﻳﺪ ﻛﺎرﺑﺮ ﺳﻄﺢ ﺧﺎرﺟﻲ ﻧﻬﺎناﻧﺪ‪ ،‬اﻣﺎ ﻣﺪﻳﺮ ﺳﻴﺴﺘﻢ و ﻳﺎ‬ ‫ﻛﺎرﺑﺮ ﻣﺠﺎز‪ ،‬ﻣﻲﺗﻮاﻧﺪ ﺗﺎ ﺣﺪي از ﻣﺤﺘﻮاي ﻛﺎﺗﺎﻟﻮگ آﮔﺎه ﺷﻮد‪.‬‬

‫•‬

‫ﺳﺎﺧﺘﺎر و ﻣﺤﺘﻮاي ﻛﺎﺗﺎﻟﻮگ و دﻳﮕﺸﻨﺮي دادهﻫﺎ در ﺳﻴﺴﺘﻢﻫﺎي ﻣﺨﺘﻠﻒ ﻳﻜﺴﺎن‬ ‫ﻧﻴﺴﺖ‪ .‬اﻣﺎ ﺑﻪ ﻃﻮر ﻛﻠﻲ‪ ،‬اﻃﻼﻋﺎت زﻳﺮ در آﻧﻬﺎ ذﺧﻴﺮه ﻣﻲﺷﻮد‪:‬‬

‫دﻳﻜﺸﻨﺮي داده ﻫﺎ ﻣﻌﻤﻮﻻً ﺟﺰﻳﻲ از ﺧﻮد ﺳﻴﺴﺘﻢ اﺳﺖ و اﻃﻼﻋﺎت زﻳﺮ در آﻧﻬﺎ‬ ‫ﻧﮕﻬﺪاري ﻣﻲ ﺷﻮد‪:‬‬ ‫•‬

‫ﺷﻤﺎﻫﺎي ﺧﺎرﺟﻲ‬

‫•‬

‫ﺷﻤﺎي ادراﻛﻲ‬

‫•‬

‫ﺷﻤﺎي داﺧﻠﻲ‬

‫•‬

‫روﻳﻪﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﺗﺒﺪﻳﻼت ﺑﻴﻦ ﺳﻪ ﺳﻄﺢ ﻣﻌﻤﺎري‬

‫•‬

‫ﺷﺮح ﺳﺎﺧﺘﺎر ﻓﻴﺰﻳﻜﻲ دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه‬

‫•‬

‫ﻣﺸﺨﺼﺎت ﻛﺎرﺑﺮان و ﺣﻘﻮق دﺳﺘﻴﺎﺑﻲ آﻧﻬﺎ ﺑﻪ دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه‬

‫•‬

‫ﻣﺸﺨﺼﺎت ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي ﺗﻮﻟﻴﺪ ﺷﺪه و ارﺗﺒﺎط آﻧﻬﺎ ﺑﺎ درﺧﻮاﺳﺖ ﻛﺎرﺑﺮان‬

‫•‬

‫ﻣﺸﺨﺼﺎت ﭘﺎﻳﺎﻧﻪﻫﺎي ﻣﺘﺼﻞ ﺑﻪ ﺳﻴﺴﺘﻢ و ﻳﺎ ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎي ﻣﺸﺘﺮي و اﻳﺴﺘﮕﺎﻫﻬﺎي‬ ‫ﻛﺎري‬

‫•‬

‫ارﺗﺒﺎط ﺑﻴﻦ ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي و دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه‬

‫•‬

‫ﻗﻮاﻋﺪ ﻣﺮﺑﻮط ﺑﻪ ﻛﻨﺘﺮل ﺻﺤﺖ و دﻗﺖ دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه در ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫ﺿﻮاﺑﻂ ﻛﻨﺘﺮلاﻳﻤﻨﻲ دادهﻫﺎ‬

‫•‬

‫ﻣﺸﺨﺼﺎت ﭘﻴﻜﺮ ﺑﻨﺪي ﺳﺨﺖاﻓﺰاري ﺳﻴﺴﺘﻢ و رﺳﺎﻧﻪﻫﺎي ذﺧﻴﺮه ﺳﺎزي‬

‫•‬

‫اﻃﻼﻋﺎت ﻣﺘﻨﻮع آﻣﺎري در ﻣﻮرد ﭘﺎﻳﮕﺎهدادهﻫﺎ‪ ،‬ﻋﻤﻠﻴﺎت ﻛﺎرﺑﺮان‪ ،‬ﻓﺮﻛﺎﻧﺲ اﺟﺮاي‬ ‫ﺗﺮاﻛﻨﺸﻬﺎ و ﺗﻌﺪاد دﺳﺘﻴﺎﺑﻲ ﺑﻪ اﺷﻴﺎء ذﺧﻴﺮه ﺷﺪه‬

‫•‬

‫ﺗﻮاﺑﻊ ﺗﻌﺮﻳﻒ ﺷﺪه ﺗﻮﺳﻂ ﻛﺎرﺑﺮان‬

‫‪66‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﺷﻜﻞ ‪ 3-4‬ﺷﻤﺎي ﻛﻠﻲ ﻛﺎﺗﺎﻟﻮگ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫‪ -5‬ﭘﺎراﻣﺘﺮﻫﺎي ﺷﻨﺎﺧﺖ‬

‫‪DBMS‬‬

‫اﻣﺮوز ﻣﺮﺗﺒﺎ ﺷﺎﻫﺪ ﻋﺮﺿﻪ ﺳﻴﺴﺘﻢ ﻫﺎي ﺑﺎ ﻧﺎﻣﻬﺎي ﮔﻮﻧﺎﮔﻮن ﺗﺤﺖ ﻋﻨﻮان‬

‫‪DBMS‬‬

‫ﺑﻪ ﺑﺎزار‬

‫ﻣﺼﺮف ﻫﺴﺘﻴﻢ‪ .‬ﻋﺪم اﻃﻼع ﻛﺎﻓﻲ ﺧﺮﻳﺪاران و اﺳﺘﻔﺎده ﻛﻨﻨﺪﮔﺎن ﭼﻨﻴﻦ ﺳﻴﺴﺘﻤﻲ از‬ ‫ﭘﺎراﻣﺘﺮ ﻫﺎي اﻧﺘﺨﺎب ﺳﺒﺐ ﻣﻲﺷﻮد ﺗﺎ اوﻻ اﻧﺘﺨﺎب ﺳﻴﺴﺘﻢ ﻣﻨﺎﺳﺐ ﺑﺮاي ﻳﻚ ﻣﺤﻴﻂ‬ ‫ﻋﻤﻠﻴﺎﺗﻲ )ﺳﺎزﻣﺎن( ﻣﺨﺼﻮﺻﺎ ﻣﺤﻴﻂ ﺑﺰرگ‪ ،‬ﮔﺎه ﺑﺮ اﺳﺎس ﻣﻼﺣﻈﺎت ﻏﻴﺮ ﻋﻠﻤﻲ‪-‬ﻓﻨﻲ‬ ‫ﺻﻮرت ﭘﺬﻳﺮد و ﮔﺎه اﺳﺎﺳﺎً ﻧﻮﻋﻲ ﺳﺮدرﮔﻤﻲ در اﻧﺘﺨﺎب ﺑﺮوز ﻛﻨﺪ )اﻟﺒﺘﻪ در اﻧﺘﺨﺎب و‬ ‫ﺧﺮﻳﺪ ﻳﻚ ﺳﻴﺴﺘﻢ ﻣﻼﺣﻈﺎﺗﻲ ﺟﺰ ﻣﻼﺣﻈﺎت ﻣﺴﺘﻘﻴﻤﺎ ﻣﺮﺑﻮط ﺑﻪ ﺧﻮد ﺳﻴﺴﺘﻢ و‬ ‫ﭘﺎﻳﮕﺎﻫﻲ ﻛﻪ ﻗﺮار اﺳﺖ ﺑﻪ ﻛﻤﻚ آن اﻳﺠﺎد ﺷﻮد‪ ،‬ﻧﻴﺰ ﻣﻲ ﺗﻮاﻧﺪ ﻣﻄﺮح ﺑﺎﺷﺪ(‪ .‬ﺛﺎﻧﻴﺎ‬ ‫ﻧﺮم اﻓﺰار ﺧﺮﻳﺪاري ﺷﺪه ﻣﻨﻄﺒﻖ ﺑﺎ ﻧﻴﺎزﻫﺎي ﻣﺤﻴﻂ ﻋﻤﻠﻴﺎﺗﻲ و ﭘﺎﺳﺨﮕﻮي اﺣﺘﻴﺎﺟﺎت‬ ‫اﻃﻼﻋﺎﺗﻲ ﻣﺤﻴﻂ ﻧﺒﺎﺷﺪ‪ .‬ﺛﺎﻟﺜﺎ از ﻧﺮم اﻓﺰار ﺑﻪ ﻫﺮ ﺣﺎل اﻧﺘﺨﺎب ﺷﺪه ﺑﻄﻮر ﺑﻬﻴﻨﻪ ﺑﻬﺮه‬ ‫ﺑﺮداري ﻧﺸﻮد و ﮔﺎه ﭘﻴﺎﻣﺪﻫﺎي ﻧﺎﻣﻄﻠﻮﺑﻲ ﺑﺮوز ﻛﻨﺪ‪.‬‬ ‫ﺗﺼﻤﻴﻢ ﮔﻴﺮي در ﻣﻮرد اﻧﺘﺨﺎب ﺳﻴﺴﺘﻢ ﻣﻨﺎﺳﺐ‪ ،‬ﻣﺴﺌﻠﻪ اﺳﺎﺳﻲ ﻫﺮ ﺳﺎزﻣﺎن اﺳﺖ‪.‬‬ ‫اﻳﻦ ﻣﺴﺌﻠﻪ ﻣﺨﺼﻮﺻﺎ در ﺷﺮاﻳﻄﻲ ﻛﻪ ﺗﺤﻮﻻت ﺗﻜﻨﻮﻟﻮژﻳﻚ در ﻧﺮماﻓﺰار و ﺳﺨﺖاﻓﺰار‬ ‫ﭼﻨﺎن ﺷﺘﺎﺑﻨﺪه اﺳﺖ ﻛﻪ ﻫﺮ روز ﺗﻮﻟﻴﺪات ﻧﺮماﻓﺰاري و ﺳﺨﺖاﻓﺰاري ﺟﺪﻳﺪي ﺑﻪ ﺑﺎزار‬

‫ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده‬

‫‪67‬‬

‫ﻣﺼﺮف ﻋﺮﺿﻪ ﻣﻲﺷﻮﻧﺪ‪ ،‬ﺑﺎﻻﺧﺺ ﺑﺮاي ﻣﺤﻴﻂﻫﺎي ﻋﻤﻠﻴﺎﺗﻲ ﺑﺰرگ‪ ،‬ﺑﺴﻴﺎر اﺳﺘﺮاﺗﮋﻳﻚ‬ ‫ﻣﻲﻧﻤﺎﻳﺪ‪ .‬ﺳﺎزﻣﺎﻧﻬﺎﻳﻲ ﻛﻪ ﺑﺎ ﻣﺸﻜﻞ ﺑﺮﻧﺎﻣﻪ رﻳﺰي ﻣﻴﺎن ﻣﺪت و دراز ﻣﺪت ﻣﻮاﺟﻪاﻧﺪ‪ ،‬اﮔﺮ در‬ ‫ﺗﺼﻤﻴﻢ ﮔﻴﺮي ﺑﺮاي اﻧﺘﺨﺎب اﻳﻦ ﺗﻜﻨﻮﻟﻮژي ﺑﺎ ﺗﺨﺼﺺ واﻓﻲ و ﻣﻄﺎﻟﻌﻪ ﻫﻤﻪ ﺟﺎﻧﺒﻪ و ﻧﻬﺎﻳﺘﺎ‬ ‫ﺑﺎ ﺷﻨﺎﺧﺖ ﻛﺎﻓﻲ اﻗﺪام ﻧﻜﻨﻨﺪ‪ ،‬ﻧﻪ ﺗﻨﻬﺎ ﺑﻪ اﻫﺪاف ﺗﻌﺮﻳﻒ ﺷﺪه در ﺑﺮﻧﺎﻣﻪ رﻳﺰي ﻧﺎﻳﻞ ﻧﺨﻮاﻫﺪ‬ ‫ﺷﺪ ﺑﻠﻜﻪ ﭼﻪ ﺑﺴﺎ راه ﺑﻪ ﺑﻴﺮاﻫﻪ ﺧﻮاﻫﺪ ﺑﺮد و ﺑﺎ ﻣﺸﻜﻼت ﻋﺪﻳﺪهاي ﻣﻮاﺟﻪ ﺧﻮاﻫﻨﺪ ﺷﺪ ﻛﻪ‬ ‫رﻓﻊ آﻧﻬﺎ ﺑﻪ آﺳﺎﻧﻲ اﻣﻜﺎن ﭘﺬﻳﺮ ﻧﺨﻮاﻫﺪ ﺷﺪ‪.‬‬ ‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺣﻞ ﺑﺴﻴﺎري از ﻣﺸﻜﻼت ﺗﻜﻨﻴﻜﻲ در اﻳﺠﺎد ﺳﻴﺴﺘﻢﻫﺎي ﺗﻮزﻳﻊ ﺷﺪه‬ ‫ﻧﺎﻫﻤﮕﻦ‪ ،‬اﻳﻨﻚ دﻳﮕﺮ ﻣﺴﺌﻠﻪ اﻧﺘﺨﺎب ﻓﻘﻂ ﻳﻚ‬

‫‪DBMS‬‬

‫و ﻳﺎ ﻓﻘﻂ ﻳﻚ ﭘﻴﻜﺮ ﺑﻨﺪي‬

‫ﻧﺮماﻓﺰاري‪-‬ﺳﺨﺖاﻓﺰاري ﻣﻲﺗﻮاﻧﺪ ﭼﻨﺪان ﻣﻄﺮح ﻧﺒﺎﺷﺪ‪ .‬ﺑﺎ اﻳﻦﻫﻤﻪ اﻧﺘﺨﺎب اﺟﺰاء ﺗﺸﻜﻴﻞ‬ ‫دﻫﻨﺪه ﭘﻴﻜﺮ ﺑﻨﺪي ﻳﻚ ﺳﻴﺴﺘﻢ ﻧﺎﻫﻤﮕﻦ ﺑﻪ ﻫﺮ ﺣﺎل ﻣﻄﺮح اﺳﺖ ﺗﺎ ﻳﻚ ﭘﻴﻜﺮ ﺑﻨﺪي ﺑﺎ‬ ‫ﺑﻴﺸﺘﺮﻳﻦ ﻛﺎراﺋﻲ‪ ،‬ﻃﺮاﺣﻲ و ﺗﺎﻣﻴﻦ ﺷﻮد‪.‬‬ ‫ﺑﻪ ﻣﻨﻈﻮر ﻛﺴﺐ ﺷﻨﺎﺧﺖ ﺗﺨﺼﺼﻲ ﺑﺎﻳﺪ ﭘﺎراﻣﺘﺮﻫﺎي زﻳﺎدي را در ﻧﻈﺮ ﮔﺮﻓﺖ ﻛﻪ‬ ‫اﻳﻦ ﭘﺎراﻣﺘﺮﻫﺎ را ﺑﺼﻮرت ﻛﻠﻲ در ﭘﻨﺞ رده ﺑﻪ ﺷﺮح زﻳﺮ دﺳﺘﻪ ﺑﻨﺪي ﻣﻲﻛﻨﻴﻢ‪:‬‬ ‫•‬

‫ﭘﺎراﻣﺘﺮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﺗﻮاﻧﺎﻳﻲﻫﺎ و ﻛﺎراﻳﻲ ﺳﻴﺴﺘﻢ‬

‫•‬

‫ﺗﺴﻬﻴﻼت و ﺟﻨﺒﻪﻫﺎي دﻳﮕﺮ‬

‫•‬

‫ﻣﺸﺨﺼﺎت ﻛﻠﻲ ﺳﻴﺴﺘﻢ‬

‫•‬

‫ﭘﺎراﻣﺘﺮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫ﭘﺎراﻣﺘﺮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ زﺑﺎن دادهاي ﻓﺮﻋﻲ )واﺳﻂ ﻛﺎر ﺑﺮﻧﺎﻣﻪ ﺳﺎز(‪.‬‬

‫در اداﻣﻪ ﻫﺮ ﻳﻚ از دﺳﺘﻪ ﻫﺎي اﺻﻠﻲ را ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻴﻢ داد‪:‬‬

‫‪ 1-5‬ﭘﺎراﻣﺘﺮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﺗﻮاﻧﺎﻳﻲﻫﺎ و ﻛﺎراﻳﻲ ﺳﻴﺴﺘﻢ‬ ‫•‬

‫ﺗﻮان ﺳﻴﺴﺘﻢ در اﻳﺠﺎد و ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ ﺑﺮ اﺳﺎس ﻣﻌﻤﺎري ﭘﻴﺸﻨﻬﺎدي‬ ‫‪ ANSI‬ﻳﻌﻨﻲ ﺳﻴﺴﺘﻢ ﺑﺎ ﻣﻌﻤﺎري ﺳﻪ ﺳﻄﺤﻲ‪.‬‬

‫•‬

‫ﺣﺪاﻛﺜﺮ ﺗﻌﺪاد ﻛﺎرﺑﺮان ﻫﻤﺰﻣﺎن‪.‬‬

‫•‬

‫ﺗﻮاﻧﺎﻳﻲ ﺳﻴﺴﺘﻢ در ﺗﺮﻣﻴﻢ دادهﻫﺎ و ﻣﻜﺎﻧﻴﺴﻢﻫﺎي اﻧﺠﺎم اﻳﻦ ﻛﺎر‪.‬‬

‫•‬

‫ﺗﻮاﻧﺎﻳﻲ ﺳﻴﺴﺘﻢ در ﺗﺎﻣﻴﻦ ﻫﻤﺰﻣﺎﻧﻲ‪ ،‬ﻣﻜﺎﻧﻴﺴﻢ ﻗﻔﻞ ﮔﺬاري‪ ،‬اﻧﺪازه واﺣﺪ ﻗﻔﻞ ﭘﺬﻳﺮ‬ ‫و وﺟﻮد اﺳﺘﺮاﺗﮋي ﻛﺎرا در ﺣﻞ ﻣﺸﻜﻞ ﺑﻦ ﺑﺴﺖ‪.‬‬

‫‪68‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫ﺗﻮاﻧﺎﻳﻲ ﺳﻴﺴﺘﻢ در ﺗﺎﻣﻴﻦاﻳﻤﻨﻲ دادهﻫﺎ‬

‫•‬

‫ﺗﻮاﻧﺎﻳﻲ ﺳﻴﺴﺘﻢ در ﺣﻔﺎﻇﺖ دادهﻫﺎ وﺗﻀﻤﻴﻦ ﻣﺤﺮﻣﺎﻧﮕﻲ آﻧﻬﺎ‬

‫•‬

‫ﺗﻮاﻧﺎﻳﻲ ﺳﻴﺴﺘﻢ درﺗﺎﻣﻴﻦ رﺷﺪ ﭘﺎﻳﮕﺎهدادهﻫﺎ ودرﺟﻪ ﺳﻬﻮﻟﺖ اﻧﺠﺎم اﻳﻦ ﻛﺎر‪.‬‬

‫•‬

‫ﺗﻮاﻧﺎﻳﻲ ﺳﻴﺴﺘﻢ در ﺗﻀﻤﻴﻦ ﺟﺎﻣﻌﻴﺖ ﭘﺎﻳﮕﺎه‬

‫•‬

‫ﺗﻌﺪاد زﺑﺎﻧﻬﺎي ﻣﻴﺰﺑﺎن ﻣﻮرد ﭘﺬﻳﺮش ﺳﻴﺴﺘﻢ‪.‬‬

‫•‬

‫ﻣﻜﺎﻧﻴﺴﻢ ﻫﻤﺎﻫﻨﮕﻲ ﻋﻤﻠﻜﺮد ﺳﻴﺴﺘﻢ ﺑﺎ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ ﺧﺎص ﭘﺎﻳﮕﺎه‪.‬‬

‫•‬

‫ﺷﺮاﻳﻂ ﺑﺮوز ﺗﻨﮕﻨﺎﻫﺎ در ﻋﻤﻠﻴﺎت ورودي ‪ /‬ﺧﺮوﺟﻲ و در ﻓﻌﺎﻟﻴﺖ واﺣﺪ ﭘﺮدازش‬ ‫ﻣﺮﻛﺰي و ﻣﻜﺎﻧﻴﺴﻢ رﻓﻊ آن‪.‬‬

‫•‬

‫ﺗﻮاﻧﺎﻳﻲ ﺳﻴﺴﺘﻢ در اﺷﺘﺮاﻛﻲ ﻛﺮدن دادهﻫﺎ‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺳﻴﺴﺘﻢ در ﻣﺠﺎز ﺷﻤﺎري و ﺳﻄﺢ ﻳﺎﺳﻄﻮح اﺳﺘﻔﺎده از اﻳﻦ اﻣﻜﺎﻧﺎت )ﺑﺎ‬ ‫ﺗﻮﺟﻪ ﺑﻪ ﻣﻌﻤﺎري ﭼﻨﺪ ﺳﻄﺤﻲ ﭘﺎﻳﮕﺎه(‪.‬‬

‫•‬

‫آﺳﺘﺎﻧﻪ ﭘﺎﻳﺪاري ﻛﺎراﻳﻲ ﺳﻴﺴﺘﻢ )از ﻧﻈﺮ ﺗﻌﺪاد ﺗﺮاﻛﻨﺶﻫﺎي اﺟﺮا ﺷﻮﻧﺪه ﻣﺜﻼ در‬ ‫ﺛﺎﻧﻴﻪ و ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺣﺠﻢ دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه در ﭘﺎﻳﮕﺎه(‪.‬‬

‫•‬

‫ﺗﻮاﻧﺎﻳﻲ ﺳﻴﺴﺘﻢ درﭘﺮدازش ﭘﺮﺳﺸﻬﺎي ﻣﻮازي‪.‬‬

‫•‬

‫ﺗﻮاﻧﺎﻳﻲ ﺳﻴﺴﺘﻢ در ﭘﺬﻳﺮش اﻧﻮاع ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي و ﭘﺮﺳﺸﻬﺎ‪.‬‬

‫•‬

‫ﻧﺤﻮه ﭘﺮدازش زﺑﺎن دادهاي ﻓﺮﻋﻲ ﺗﻮﺳﻂ ﺳﻴﺴﺘﻢ )ﻛﺎﻣﭙﺎﻳﻠﺮي‪ ،‬ﻣﻔﺴﺮي(‪.‬‬

‫•‬

‫ﺗﻮاﻧﺎﻳﻲ ﺳﻴﺴﺘﻢ در ﺑﻬﻴﻨﻪ ﺳﺎزي ﭘﺮﺳﺸﻬﺎ و ﻧﻮع ﺑﻬﻴﻨﻪ ﺳﺎزي )اﻋﻤﺎل اﻟﮕﻮرﻳﺘﻢﻫﺎي‬ ‫ﺑﻬﻴﻨﻪ در اﺟﺮاي ﭘﺮﺳﺸﻬﺎ( و زﻣﺎن اﻧﺠﺎم ﺑﻬﻴﻨﻪ ﺳﺎزي اﺳﺘﺮاﺗﮋي دﺳﺘﻴﺎﺑﻲ )در زﻣﺎن‬ ‫ﻛﺎﻣﭙﺎﻳﻞ‪ ،‬در اوﻟﻴﻦ ﺑﺎر اﺟﺮاي ﭘﺮﺳﺶ‪ ،‬در ﻫﺮ ﺑﺎر ﻛﻪ ﭘﺮﺳﺶ اﺟﺮا ﻣﻲﺷﻮد(‪.‬‬

‫•‬

‫ﻣﺪﻟﻬﺎي ﺗﺮاﻛﻨﺶ ﻛﻪ ﻣﻲﭘﺬﻳﺮد )ﺑﻮﻳﮋه ﻣﺪﻟﻬﺎي ﭘﻴﺸﺮﻓﺘﻪ(‪.‬‬

‫•‬

‫ﻗﺎﺑﻠﻴﺖ ﮔﺴﺘﺮش ﭘﺬﻳﺮي و ارﺗﻘﺎء ﺳﻴﺴﺘﻢ‪.‬‬

‫•‬

‫ﺗﻮاﻧﺎﻳﻲ ﺳﻴﺴﺘﻢ در ﺳﺎزﻣﺎﻧﺪﻫﻲ ﻣﺠﺪد ﻣﺤﻴﻂ ﻓﻴﺰﻳﻜﻲ ﭘﺎﻳﮕﺎه و درﺟﻪ ﭘﻮﻳﺎﻳﻲ و‬ ‫ﺧﻮدﻛﺎر ﺑﻮدن اﻳﻦ ﻛﺎر‪.‬‬

‫•‬

‫اﻳﺠﺎد ﺳﻴﺴﺘﻢ در ﺧﺪﻣﺖ رﺳﺎﻧﻲ در ﻣﺤﻴﻂ ﺷﺒﻜﻪاي‪.‬‬

‫•‬

‫ﻧﻮع ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎهدادهﻫﺎ ﻛﻪ ﺳﻴﺴﺘﻢ ﻣﻲﺗﻮاﻧﺪ آن را ﺗﺎﻣﻴﻦ ﻛﻨﺪ‪.‬‬

‫•‬

‫ﻗﺎﺑﻠﻴﺖ ﺗﻌﺎﻣﻞ ﺳﻴﺴﺘﻢ ﺑﺎ ﺳﻴﺴﺘﻢﻫﺎي ﻣﺘﻌﺎرف دﻳﮕﺮ )ﺑﺎ ﻣﺪل دادهاي و زﺑﺎن‬ ‫دادهاي ﻳﻜﺴﺎن ﻳﺎ ﻣﺘﻔﺎوت( و ﻣﻜﺎﻧﻴﺴﻢ ارﺗﺒﺎط ﺑﺎ آﻧﻬﺎ‪.‬‬

‫ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده‬ ‫•‬

‫‪69‬‬

‫ﻗﺎﺑﻠﻴﺖ ﺗﻌﺎﻣﻞ ﺳﻴﺴﺘﻢ ﺑﺎ ﮔﻮﻧﻪﻫﺎي ﻏﻴﺮ ﻣﺘﻌﺎرف ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ و‬ ‫ﻣﻜﺎﻧﻴﺴﻢ و ﻣﻠﺰوﻣﺎت ﻫﻤﺎﻳﻨﺪي ﺑﺎ ﺳﻴﺴﺘﻢﻫﺎ‪.‬‬

‫•‬

‫ﻗﺎﺑﻠﻴﺖ ﺗﻌﺎﻣﻞ ﺳﻴﺴﺘﻢ ﺑﺎ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داﻧﺶ و ﻣﻜﺎﻧﻴﺴﻢ ﻫﻤﺎﻳﻨﺪي‪.‬‬

‫•‬

‫ﻗﺎﺑﻠﻴﺖ ﺗﻌﺎﻣﻞ ﺳﻴﺴﺘﻢ ﺑﺎ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎي ﺷﻴﺊﮔﺮا و ﻣﻜﺎﻧﻴﺴﻢ‬ ‫ﻫﻤﺎﻳﻨﺪي‪.‬‬

‫•‬

‫ﻣﻴﺰان ﺗﻐﻴﻴﺮ ﻛﺎرآﻳﻲ ﺳﻴﺴﺘﻢ از ﻣﺎﺷﻴﻦ ﻛﻼﺳﻴﻚ ﺗﺎ ﻣﺎﺷﻴﻦ ﺧﺎص ﭘﺎﻳﮕﺎهدادهﻫﺎ‪.‬‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺳﻴﺴﺘﻢ ﺑﺮاي اﻳﺠﺎد ﭘﺎﻳﮕﺎهدادهﻫﺎي زﻣﺎﻧﺒﻨﺪ‪.‬‬

‫•‬

‫زﺑﺎﻧﻲ ﻛﻪ ﺳﻴﺴﺘﻢ ﺑﺎ آن ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ‪.‬‬

‫•‬

‫ﻣﻴﺰان رﻋﺎﻳﺖ اﺻﻮل ﻧﻮﻳﻦ ﻣﻬﻨﺪﺳﻲ ﻧﺮماﻓﺰار در ﻃﺮاﺣﻲ و ﺗﻮﻟﻴﺪ ﺳﻴﺴﺘﻢ‪.‬‬

‫•‬

‫ﻣﻴﺰان رﻋﺎﻳﺖ اﺻﻮل ﺷﻴﺊ ﮔﺮاﻳﻲ در ﻃﺮاﺣﻲ و ﭘﻴﺎده ﺳﺎزي ﺳﻴﺴﺘﻢ‪.‬‬

‫•‬

‫ﺗﻮاﻧﺎﻳﻲ ﺳﻴﺴﺘﻢ در اﻳﺠﺎد و ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهﻫﺎي ﺑﺰرگ و ﺧﻴﻠﻲ ﺑﺰرگ )از ﻧﻈﺮ‬ ‫ﺣﺠﻢ دادهﻫﺎ و ﺗﻌﺪاد ﺗﺮاﻛﻨﺸﻬﺎ(‪.‬‬

‫•‬

‫ﻗﺎﺑﻠﻴﺖ ﺳﻴﺴﺘﻢ در ﻧﻬﺎن ﻧﮕﺎري دادهﻫﺎ‬

‫•‬

‫ﻗﺎﺑﻠﻴﺖ ﺳﻴﺴﺘﻢ در ﭘﺸﺘﻴﺒﺎﻧﻲ اﻧﻮاع ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎهدادهﻫﺎ‪.‬‬

‫•‬

‫ﻗﺎﺑﻠﻴﺖ ﺳﻴﺴﺘﻢ در ﻛﻨﺘﺮل اﺷﺘﺒﺎﻫﺎت ﺑﺮﻧﺎﻣﻪ ﺳﺎزي‪.‬‬

‫•‬

‫ﻗﺎﺑﻠﻴﺖ ﺳﻴﺴﺘﻢ در ﻋﻤﻠﻴﺎت در ﻣﺤﻴﻂ ﭘﺎﻳﮕﺎهدادهﻫﺎي وب و ﻳﺎ ادﻏﺎم در‬

‫•‬

‫ﻗﺎﺑﻠﻴﺖ ﺳﻴﺴﺘﻢ در ﻋﻤﻠﻴﺎت در ﻣﺤﻴﻂ ﭘﺎﻳﮕﺎهدادهﻫﺎي ﻣﻮﺑﺎﻳﻞ‬

‫•‬

‫ﻗﺎﺑﻠﻴﺖ ﺟﺎﺑﺠﺎﻳﻲ ﭘﺬﻳﺮي ﺳﻴﺴﺘﻢ‬

‫•‬

‫ﻣﺘﻮﺳﻂ زﻣﺎن ﺑﻴﻦ دو ﺧﺮاﺑﻲ ﭘﻲ در ﭘﻲ ﺳﻴﺴﺘﻢ‬

‫•‬

‫ﻣﻴﺰان ﻛﺎر ﻻزم ﺑﺮاي ﭘﻴﺎده ﺳﺎزي ﺳﻴﺴﺘﻢ‬

‫•‬

‫اﺳﺘﺎﻧﺪاردﻫﺎي ﺑﻜﺎر رﻓﺘﻪ در ﺳﻴﺴﺘﻢ‬

‫•‬

‫ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ ﻣﻮرد ﻧﻴﺎز‬

‫•‬

‫ﻗﺎﺑﻠﻴﺖ ﺳﻴﺴﺘﻢ در ﭘﺮدازش ﭘﻴﺎمﻫﺎ‪.‬‬

‫•‬

‫ﺗﺠﻬﻴﺰات ﻻزم ﺑﺮاي ﺳﻴﺴﺘﻢ از ﺟﻤﻠﻪ‪:‬‬

‫•‬

‫ﻧﻮع ﺳﺨﺖاﻓﺰار‬

‫•‬

‫ﺣﺪاﻗﻞ ﺣﺎﻓﻈﻪ ﻻزم‬

‫•‬

‫ﺣﺪاﻗﻞ ﻓﻀﺎي دﻳﺴﻚ‬

‫" وب"‬

‫‪70‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫ﻧﻮع و ﺗﻌﺪاد ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ‬

‫•‬

‫ﺗﻌﺪد و ﺗﻨﻮع رﺳﺎﻧﻪﻫﺎي ﺟﺎﻧﺒﻲ‬

‫‪ 2-5‬ﺗﺴﻬﻴﻼت و ﺟﻨﺒﻪﻫﺎي دﻳﮕﺮ‬ ‫اﻳﻦ ﺗﺴﻬﻴﻼت و ﺟﻨﺒﻪ ﻫﺎ ﻣﻲﺗﻮاﻧﻨﺪ ﻫﻤﺮاه ﺧﻮد ﺳﻴﺴﺘﻢ و ﻳﺎ ﺑﻪ ﻧﺤﻮي ﻗﺎﺑﻞ ﺗﺎﻣﻴﻦ و‬ ‫اﺳﺘﻔﺎده در ﻣﺤﻴﻂ ﺳﻴﺴﺘﻢ ﺑﺎﺷﻨﺪ )ﺑﻪ ﺻﻮرت ﻧﺮم اﻓﺰار ﺟﺪاﮔﺎﻧﻪ ﺑﻪ ﻛﺎرﺑﺮان ﺳﻴﺴﺘﻢ‬ ‫ﻋﺮﺿﻪ ﺷﻮﻧﺪ(‪ .‬ﻫﺮ ﭼﻪ ﺳﻴﺴﺘﻢ از ﻧﻈﺮ ﭘﺬﻳﺮش اﻧﻮاع ﺗﺴﻬﻴﻼت و ﺳﺎزﮔﺎري و ﻫﻤﺎﻳﻨﺪي‬ ‫ﺑﺎ آﻧﻬﺎ ﻏﻨﻲ ﺗﺮ ﺑﺎﺷﺪ‪ ،‬ﻣﻄﻠﻮﺑﺘﺮ اﺳﺖ و ﺑﻬﺮه ﺑﺮداري ﺑﻬﺘﺮي از ﺳﻴﺴﺘﻢ اﻣﻜﺎن ﭘﺬﻳﺮ‬ ‫ﺧﻮاﻫﺪ ﺑﻮد‪ .‬ﺑﺮﺧﻲ از اﻳﻦ ﺗﺴﻬﻴﻼت )اﺑﺰارﻫﺎ( ﻋﺒﺎرﺗﻨﺪ از‪:‬‬ ‫•‬

‫اﻣﻜﺎﻧﺎت ﺗﻮﻟﻴﺪ ﻧﺴﺨﻪﻫﺎي ﭘﺸﺘﻴﺒﺎن‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﭘﺮﺳﺶ ﺑﻪ ﻛﻤﻚ ﻣﺜﺎل و ﭘﺮﺳﺶ ﺑﻪ ﻛﻤﻚ ﻓﺮم‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺑﺮرﺳﻲﻫﺎ و ﺗﺤﻠﻴﻞﻫﺎي آﻣﺎري‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﮔﺮاﻓﻴﻜﻲ‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﻧﮕﻬﺪاري ﺳﻴﺴﺘﻢ‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺑﻬﻴﻨﻪ ﺳﺎزي ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﻳﺎدﮔﻴﺮي ﻃﺮز ﻛﺎر ﺑﺎ ﺳﻴﺴﺘﻢ و ﺑﻬﺮه ﺑﺮداري آن‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﻛﺎر در ﻣﺤﻴﻂ وب‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﻣﺪﻳﺮﻳﺖ ﭘﻮﻳﺎي ﭘﺮﺳﺸﻬﺎ‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﻧﻈﺎرت ﺑﺮ ﻋﻤﻠﻴﺎت ﻛﺎرﺑﺮان در ﭘﺎﻳﮕﺎه‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﻣﺪﻳﺮﻳﺘﻲ ﺑﺮاي ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﭘﺸﺘﻴﺒﺎﻧﻲ از‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﭘﺮدازش ﺗﺤﻠﻴﻠﻲ ﺑﺮ ﺧﻂ‬

‫•‬

‫ﻣﻮﻟﺪ ﮔﺰارش‬

‫•‬

‫اﻧﻮاع وﻳﺮاﻳﺸﮕﺮﻫﺎ‬

‫•‬

‫اﺑﺰارﻫﺎياﻳﺠﺎد ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي و واﺳﻄﻪﻫﺎي ﻛﺎرﺑﺮدي‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺗﻌﺮﻳﻒ ﮔﺮوﻫﻬﺎي ﻛﺎرﺑﺮدي و ﺗﻌﻴﻴﻦ اﻣﺘﻴﺎزات ﻫﺮ ﮔﺮوه )در اﻧﺠﺎم‬

‫‪XML‬‬

‫ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎهدادهﻫﺎ(‬

‫ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده‬

‫‪71‬‬

‫•‬

‫اﻣﻜﺎﻧﺎت دﺳﺘﻴﺎﺑﻲ ﺑﻪ دادهﻫﺎي دوردﺳﺖ‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺗﻮﻟﻴﺪ ﺧﺮوﺟﻲﻫﺎي ﻛﺎرﺑﺮﭘﺴﻨﺪ‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺗﻨﻈﻴﻢ ﻛﺮدن ﭘﺎﻳﮕﺎه‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺗﻨﻈﻴﻢ ﻛﺮدن ﺧﻮد ﺳﻴﺴﺘﻢ‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺑﺎرﮔﺬاري )ﮔﺎه ﻣﻮﺳﻮم ﺑﻪ ﻋﻤﻞ ورود دادهﻫﺎ(‪ ،‬ﺑﺎزﺑﺎرﮔﺬاري‪ ،‬ﺧﺎﻟﻲ‬ ‫ﻛﺮدن )ﮔﺎه ﻣﻮﺳﻮم ﺑﻪ ﻋﻤﻞ ﺻﺪور دادهﻫﺎ( ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺗﺒﺪﻳﻞ ﻳﻚ ﺳﺎﺧﺘﺎر داده از ﺳﻄﺢ ﺧﺎرﺟﻲ ﻣﻌﻤﺎري‬

‫‪ANSI‬‬

‫ﺑﻪ ﺳﺎﺧﺘﺎر‬

‫داده دﻳﮕﺮ از ﺳﻄﺢ ادراﻛﻲ ﻫﻤﺎن ﻣﻌﻤﺎري‬ ‫•‬

‫اﻣﻜﺎﻧﺎت ﻓﻌﺎل و ﻏﻴﺮﻓﻌﺎل ﻛﺮدن ﭘﺎﻳﮕﺎه‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺗﻬﻴﻪ آﻣﺎرﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﻋﻤﻠﻴﺎت ذﺧﻴﺮه ﺳﺎزي )درج‪ ،‬ﺣﺬف‪ ،‬ﺑﻬﻨﮕﺎم‬ ‫ﺳﺎزي(‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺳﻴﺴﺘﻢ ﺑﺮاي ﻣﺪﻟﺴﺎزي دادهﻫﺎ و ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ و ﻓﻴﺰﻳﻜﻲ ﭘﺎﻳﮕﺎه‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺳﻴﺴﺘﻢ ﺑﺮاي ﮔﺸﺖ زﻧﻲ )ﮔﺬارﮔﺮي( در ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫اﻣﻜﺎﻧﺎت اﺳﺘﻔﺎده از زﺑﺎﻧﻬﺎي ﺳﻄﺢ ﺑﺎﻻ )ﻧﻪ ﺑﻪ ﻋﻨﻮان زﺑﺎن ﻣﻴﺰﺑﺎن( و ﻣﻜﺎﻧﻴﺴﻢ‬ ‫ﭘﻴﻮﻧﺪ ﺑﻪ ﺳﻴﺴﺘﻢ از ﻃﺮﻳﻖ آﻧﻬﺎ‬

‫•‬

‫اﻣﻜﺎناﻳﺠﺎد ﻣﺪوﻟﻬﺎي اﺟﺮاﻳﻲ ﺑﺮاي ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي در ﻣﺤﻴﻂ ﺳﻴﺴﺘﻢ ﺑﻪ‬ ‫ﻧﺤﻮي ﻛﻪ ﺧﺎرج از ﻣﺤﻴﻂ ﺳﻴﺴﺘﻢ ﻗﺎﺑﻞ اﺟﺮا ﺑﺎﺷﻨﺪ‬

‫•‬

‫اﻣﻜﺎن اﺳﺘﻔﺎده از ﻳﻚ ﺳﻴﺴﺘﻢ ﺧﺒﺮه در ﻣﺤﻴﻂ ﺳﻴﺴﺘﻢ‬

‫•‬

‫ﻣﻮﻟﺪ ﻓﺮم‬

‫•‬

‫ﻣﻮﻟﺪ ﻣﻨﻮ‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺷﺒﻜﻪاي‬

‫•‬

‫واﺳﻂ‬

‫•‬

‫اﺑﺰارﻫﺎي ﺗﻮﻟﻴﺪ ﻣﺴﺘﻨﺪات )در ﻣﺮاﺣﻞ ﻣﺨﺘﻠﻒ ﺗﻮﻟﻴﺪ ﻳﻚ ﺳﻴﺴﺘﻢ ﻛﺎرﺑﺮدي(‬

‫‪4GL‬‬

‫آﻧﭽﻪ ﺑﺮ ﺷﻤﺮده ﺷﺪ‪ ،‬ﻓﻬﺮﺳﺘﻲ اﺳﺖ از ﺗﺴﻬﻴﻼت و ﺟﻨﺒﻪ ﻫﺎ‪ ،‬و ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﭘﻴﺸﺮﻓﺖ‬ ‫ﻣﻬﻨﺪﺳﻲ ﻧﺮم اﻓﺰار‪ ،‬اﻣﻜﺎﻧﺎت دﻳﮕﺮي ﻧﻴﺰ ﻣﻲ ﺗﻮاﻧﻨﺪ ﻣﻄﺮح ﺑﺎﺷﻨﺪ‪ .‬ﺑﻪ وﻳﮋه ﻛﻪ ﻫﺮ روز‬ ‫اﻧﻮاع ﮔﻮﻧﺎﮔﻮﻧﻲ از اﻳﻦ ﻗﺒﻴﻞ اﺑﺰارﻫﺎ و ﺗﺴﻬﻴﻼت ﺗﻮﻟﻴﺪ و ﺑﻪ ﺑﺎزار ﻣﺼﺮف ﻋﺮﺿﻪ‬ ‫ﻣﻲ ﺷﻮﻧﺪ‪ .‬ﺳﻴﺴﺘﻢ ﻧﻪ ﺗﻨﻬﺎ ﺑﺎﻳﺪ ﺑﺘﻮاﻧﺪ ﺑﺎ اﻳﻦ اﻣﻜﺎﻧﺎت ﺗﻤﺎس ﺑﺮﻗﺮار ﻛﻨﺪ ﺑﻠﻜﻪ ﺑﺎﻳﺪ ﺑﻪ‬

‫‪72‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﺳﻬﻮﻟﺖ ﺑﺎ آﻧﻬﺎ ﻫﻤﺎﻳﻨﺪي داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬

‫‪ 3-5‬ﻣﺸﺨﺼﺎت ﻛﻠﻲ ﺳﻴﺴﺘﻢ‬ ‫•‬

‫ﻧﺎم ﻧﺮماﻓﺰار‬

‫•‬

‫ﻋﻨﻮان ﺷﺮﻛﺖ ﺳﺎزﻧﺪه و ﺷﺮﻛﺖ ﻓﺮوﺷﻨﺪه‬

‫•‬

‫ﺷﻤﺎره وﻳﺮاﺳﺖ )ﻧﮕﺎرش( ﻣﻮرد ﺑﺮرﺳﻲ‪-‬ﺷﻤﺎره آﺧﺮﻳﻦ وﻳﺮاﺳﺖ‬

‫•‬

‫ﺗﺎرﻳﺦ ﻋﺮﺿﻪ )اوﻟﻴﻦ ﻧﮕﺎرش و آﺧﺮﻳﻦ ﻧﮕﺎرش(‬

‫•‬

‫ﻗﻴﻤﺖ‬

‫•‬

‫ﻧﺎم ﻛﺸﻮر ﺳﺎزﻧﺪه و ﻓﺮوﺷﻨﺪه‬

‫•‬

‫ﺷﺮاﻳﻂ ﻛﻠﻲ ﺗﺤﻮﻳﻞ‬

‫•‬

‫ﺧﺪﻣﺎت ﺑﻌﺪ از ﺗﺤﻮﻳﻞ‬

‫•‬

‫ﻛﻤﻴﺖ و ﻛﻴﻔﻴﺖ آﻣﻮزش‬

‫•‬

‫ﻣﺴﺘﻨﺪات‬

‫•‬

‫ﺗﻌﺪاد ﻣﺸﺘﺮيﻫﺎ و ﻣﺎﻫﻴﺖ ﻧﻴﺎزﻫﺎي اﻃﻼﻋﺎﺗﻲ و ﭘﺮدازﺷﻲ آﻧﺎن‬

‫•‬

‫ﺿﻤﺎﻧﺖ )ﻫﺎي(ﺷﺮﻛﺖ ﻓﺮوﺷﻨﺪه‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺷﺮﻛﺖ ﻓﺮوﺷﻨﺪه در ﮔﺴﺘﺮش ﻳﺎ ارﺗﻘﺎء ﺳﻴﺴﺘﻢ‬

‫•‬

‫در دﺳﺘﺮس ﺑﻮدن ﻓﺮوﺷﻨﺪه )ﻫﺮﮔﺎه ﻛﻪ ﻻزم ﺑﺎﺷﺪ(‬

‫•‬

‫وﺟﻮد ﺗﻴﻢ ﻓﻨﻲ ﭘﺸﺘﻴﺒﺎﻧﻲ ﺳﻴﺴﺘﻢ‪ ،‬در ﺷﺮﻛﺖ ﻓﺮوﺷﻨﺪه‬

‫‪ 4-5‬ﭘﺎراﻣﺘﺮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎهدادهﻫﺎ‬ ‫از آﻧﺠﺎﺋﻴﻜﻪ ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎه دادهﻫﺎ در ﺳﻪ ﺳﻄﺢ داﺧﻠﻲ‪ ،‬ادراﻛﻲ و ﺧﺎرﺟﻲ در ﻧﻈﺮ‬ ‫ﮔﺮﻓﺘﻪ ﻣﻲﺷﻮد‪ ،‬ﻟﺬا ﭘﺎراﻣﺘﺮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﻣﻌﻤﺎري را ﻧﻴﺰ در اﻳﻦ ﺳﻪ ﺳﻄﺢ ﺑﺮرﺳﻲ‬ ‫ﻣﻲ ﻛﻨﻴﻢ‪:‬‬

‫‪ 1-4-5‬ﺳﻄﺢ داﺧﻠﻲ‪ -‬ﻓﻴﺰﻳﻜﻲ‬ ‫•‬

‫ﻧﻮع داده‬

‫•‬

‫ﻧﺎم ﻓﻴﻠﺪ‬

‫•‬

‫ﻃﻮل داده )ﺣﺪاﻛﺜﺮ ﻃﻮل ﭘﻴﺶ ﻧﻬﺎده(‬

‫ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده‬

‫‪73‬‬

‫•‬

‫ﺣﺪاﻛﺜﺮ ﺗﻌﺪاد رﻛﻮرد‬

‫•‬

‫ﺣﺪاﻛﺜﺮ ﻃﻮل ﻫﺮ رﻛﻮرد‬

‫•‬

‫ﺛﺎﺑﺖ ﻳﺎ ﻣﺘﻐﻴﺮ ﺑﻮدن ﻃﻮل رﻛﻮرد‬

‫•‬

‫ﺣﺪاﻛﺜﺮ ﺗﻌﺪاد ﻓﻴﻠﺪ در ﻫﺮ ﻧﻮع‬

‫•‬

‫ﺣﺪاﻛﺜﺮ ﻃﻮل ﻫﺮ ﻓﻴﻠﺪ‬

‫•‬

‫ﺛﺎﺑﺖ ﻳﺎ ﻣﺘﻐﻴﺮ ﺑﻮدن ﻃﻮل ﻓﻴﻠﺪ‬

‫•‬

‫ﺣﺪاﻛﺜﺮ ﺗﻌﺪاد ﻓﺎﻳﻞﻫﺎي ﺑﺎز در ﻳﻚ زﻣﺎن‬

‫•‬

‫ﺣﺪاﻛﺜﺮ ﺗﻌﺪاد ﺗﺮاﻛﻨﺶﻫﺎي ﻋﻤﻞ ﻛﻨﻨﺪه در ﻣﺤﻴﻂ داﺧﻠﻲ‪-‬ﻓﻴﺰﻳﻜﻲ‬

‫•‬

‫ﺣﺪاﻛﺜﺮ ﺗﻌﺪاد ﺷﺎﺧﺺﻫﺎ و ﺳﺎﺧﺘﺎر دروﻧﻲ ﻫﺮ ﺷﺎﺧﺺ و درﺟﻪ ﭘﻮﻳﺎﻳﻲ آن‬

‫•‬

‫اﻧﺪازه ﺷﺎﺧﺺ‬

‫•‬

‫ﻫﺰﻳﻨﻪاﻳﺠﺎد ﺷﺎﺧﺺ‬

‫•‬

‫ﺳﺎﺧﺘﺎر ﻓﺎﻳﻠﻬﺎي ﻣﻮﺟﻮد‬

‫•‬

‫ﺣﺪاﻛﺜﺮ ﺗﻌﺪاد ﻛﻠﻴﺪﻫﺎ‬

‫•‬

‫ﺣﺪاﻛﺜﺮ ﻃﻮل ﻛﻠﻴﺪ‬

‫•‬

‫ﻧﻮع ﻛﻠﻴﺪ‬

‫•‬

‫ﻧﺤﻮه اﻧﺠﺎم ﻋﻤﻠﻴﺎت ذﺧﻴﺮه ﺳﺎزي در ﻣﺤﻴﻂ داﺧﻠﻲ‪-‬ﻓﻴﺰﻳﻜﻲ و ﻛﺎراﻳﻲ ﺳﻴﺴﺘﻢ‬ ‫در ﻫﺮ ﻋﻤﻞ‬

‫•‬

‫ﻧﺤﻮه ﺟﺎﻳﮕﻴﺮي ﻓﺎﻳﻠﻬﺎ روي رﺳﺎﻧﻪ ﺧﺎرﺟﻲ‬

‫•‬

‫ﻧﺤﻮه ﭘﻴﺎده ﺳﺎزي " ﻫﻴﭽﻤﻘﺪار " در اﻳﻦ ﺳﻄﺢ و ﻣﻴﺰان ﺣﺎﻓﻈﻪ ﻣﺼﺮﻓﻲ ﺑﺮاي آن‬

‫•‬

‫ﭼﮕﻮﻧﮕﻲ ﺗﻨﺎﻇﺮ )ﻧﮕﺎﺷﺖ( ﺑﻴﻦ ﻓﺎﻳﻠﻬﺎ و ﺳﺎﺧﺖﻫﺎي ﺳﻄﺢ ادراﻛﻲ‬

‫•‬

‫ﭼﮕﻮﻧﮕﻲ ﺧﻮﺷﻪ واري و ﻣﻮﺿﻌﻲ ﺑﻮدن ﻓﺎﻳﻠﻬﺎ و رﻛﻮردﻫﺎ‬

‫•‬

‫ﭼﮕﻮﻧﮕﻲ ﻓﺸﺮده ﺳﺎزي دادهﻫﺎ و ﻧﺴﺒﺖ ﻓﺸﺮده ﺳﺎزي‬

‫•‬

‫ﻓﺸﺮده ﺳﺎزي ﺷﺎﺧﺺﻫﺎ و ﻧﺴﺒﺖ ﻓﺸﺮده ﺳﺎزي‬

‫•‬

‫اﻧﺪازه و ﺗﻌﺪاد ﺑﺎﻓﺮ ﻣﻮرد ﻧﻴﺎز‬

‫•‬

‫اﻧﺪازه ﺑﻼك‬

‫•‬

‫اﻧﺪازه ﺻﻔﺤﻪ)ﺛﺎﺑﺖ ﻳﺎ ﻣﺘﻐﻴﺮ(‬

‫•‬

‫وﺟﻮد زﺑﺎن دادهاي ﻓﺮﻋﻲ ﺑﺮاي ﺳﻄﺢ داﺧﻠﻲ و اﻣﻜﺎﻧﺎت آن‬

‫‪74‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫ﻣﻴﺰان دﺧﺎﻟﺖ ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎهدادهﻫﺎ دراﻳﺠﺎد ﺳﻄﺢ داﺧﻠﻲ‪-‬ﻓﻴﺰﻳﻜﻲ و ﻛﻨﺘﺮل آن‬

‫‪ 2-4-5‬ﺳﻄﺢ ادراﻛﻲ‬ ‫•‬

‫وﺟﻮد ﺳﻄﺢ ادراﻛﻲ‬

‫•‬

‫درﺟﻪ اﻧﺘﺰاع ﺳﻄﺢ ادراﻛﻲ )ﻛﻪ ﻣﺴﺘﻘﻴﻤﺎ ﺑﻪ ﻣﺪل دادهاي ﺑﺴﺘﮕﻲ دارد(‬

‫•‬

‫وﺟﻮد زﺑﺎن دادهاي ﻓﺮﻋﻲ در ﺳﻄﺢ ادراﻛﻲ و اﻣﻜﺎﻧﺎت آن‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺗﻌﺮﻳﻒ ﻗﻮاﻋﺪ )ﻣﺤﺪودﻳﺘﻬﺎي( ﺟﺎﻣﻌﻴﺖ )ﺑﻪ ﻋﻨﻮان ﺑﺨﺸﻲ از ﻣﺪل‬ ‫دادهاي(در ﺑﻴﺮون از ﺑﺮﻧﺎﻣﻪﻫﺎي ﻋﻤﻠﻴﺎﺗﻲ )ﺑﺎ اﺣﻜﺎم ﺗﻌﺮﻳﻒ دادهﻫﺎ(‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺗﻌﺮﻳﻒ اﻧﻮاع ﻛﻠﻴﺪ )ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ‪ ،‬ﻛﻠﻴﺪ اﺻﻠﻲ‪ ،‬ﻛﻠﻴﺪ ﺧﺎرﺟﻲ‪ ،‬ﻛﻠﻴﺪ‬ ‫دﻳﮕﺮو‪(...‬‬

‫•‬

‫ﻣﻴﺰان ﺗﺎﻣﻴﻦ اﺳﺘﻘﻼل دادهاي ﻓﻴﺰﻳﻜﻲ‬

‫•‬

‫ﻣﻴﺰان دﻳﻨﺎﻣﻴﺴﻢ رﺷﺪ ﭘﺎﻳﮕﺎه در ﺳﻄﺢ ادراﻛﻲ‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺳﺎزﻣﺎﻧﺪﻫﻲ ﻣﺠﺪد ﭘﺎﻳﮕﺎه در ﺳﻄﺢ ادراﻛﻲ )ﺗﻐﻴﻴﺮ در ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ و‬ ‫در ﭘﻲ آن ﺗﻐﻴﻴﺮ ﺷﻤﺎ(‬

‫•‬

‫ﭼﮕﻮﻧﮕﻲ ﻣﻜﺎﻧﻴﺴﻢ ﻧﮕﺎﺷﺖ ﺳﻄﺢ ادراﻛﻲ ﺑﻪ داﺧﻠﻲ و ﺟﻨﺒﻪﻫﺎي ﻧﮕﺎﺷﺖ )ﻧﺎم‬ ‫داده‪ ،‬ﻧﻮع داده‪ ،‬ﻃﻮل داده‪ ،‬ﻛﺪ ﻧﻤﺎﻳﺶ داده‪ ،‬واﺣﺪ داده و‪(...‬‬

‫•‬

‫ﭘﻴﺎﻣﺪﻫﺎي ﺳﺎزﻣﺎﻧﺪﻫﻲ ﻣﺠﺪد ﺳﻄﺢ ادراﻛﻲ در ﺳﻄﺢ داﺧﻠﻲ‪-‬ﻓﻴﺰﻳﻜﻲ‬

‫•‬

‫ﻣﻴﺰان اﻓﺰوﻧﮕﻲ در ﺳﻄﺢ ادراﻛﻲ و ﻣﻜﺎﻧﻴﺴﻢ ﻛﻨﺘﺮل آن و ﻣﻴﺰان اﻧﻌﻜﺎس آن در‬ ‫ﺳﻄﺢ داﺧﻠﻲ‪ -‬ﻓﻴﺰﻳﻜﻲ‬

‫•‬

‫وﺟﻮد ﻣﻔﻬﻮم ﻣﻴﺪان و اﻣﻜﺎﻧﺎت ﻻزم ﺑﺮاي آن در ﺳﻄﺢ ادراﻛﻲ‬

‫•‬

‫ﻧﺤﻮه ﺑﺮﺧﻮرد ﺑﺎ " ﻫﻴﭽﻤﻘﺪار " در ﺳﻄﺢ ادراﻛﻲ‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺳﻴﺴﺘﻢ در ﻣﺠﺎزﺷﻤﺎري ﺑﻪ وﻳﮋه در اﻳﻦ ﺳﻄﺢ‬

‫‪ 3-4-5‬ﺳﻄﺢ ﺧﺎرﺟﻲ‬ ‫•‬

‫وﺟﻮد ﻣﻔﻬﻮم ﻫﻤﮕﺎﻧﻲ دﻳﺪ ﺧﺎرﺟﻲ‬

‫•‬

‫ﺣﺪاﻛﺜﺮ ﺗﻌﺪاد دﻳﺪﻫﺎي ﻫﺮ ﻛﺎرﺑﺮ و در ﻣﺠﻤﻮع‪ ،‬ﺗﻨﻮع دﻳﺪﻫﺎ از ﻧﻈﺮ ﻣﻜﺎﻧﻴﺴﻢ‬ ‫ﺗﻌﺮﻳﻒ آﻧﻬﺎ‬

‫ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده‬ ‫•‬

‫‪75‬‬

‫وﺟﻮد زﺑﺎن دادهاي ﻓﺮﻋﻲ ﺧﺎرﺟﻲ و اﻣﻜﺎﻧﺎت آن )ﺑﺮاي ﺑﺎزﻳﺎﺑﻲ‪ ،‬ذﺧﻴﺮه ﺳﺎزﻳﻲ و‬ ‫ﻛﻨﺘﺮل(‬

‫•‬

‫درﺟﻪ اﻧﺘﺰاع ﺗﺎﻣﻴﻦ ﺷﺪه در اﻳﻦ ﺳﻄﺢ و ارﺗﻔﺎع اﻳﻦ اﻧﺘﺰاع‬

‫•‬

‫ﻣﻴﺰان ﺗﺎﻣﻴﻦ اﺳﺘﻘﻼل دادهاي ﻣﻨﻄﻘﻲ‬

‫•‬

‫ﭼﮕﻮﻧﮕﻲ ﻧﮕﺎﺷﺖ ﺳﻄﺢ ﺧﺎرﺟﻲ ﺑﻪ ادراﻛﻲ و ﻣﺤﻮرﻫﺎي اﻳﻦ ﻧﮕﺎﺷﺖ )ﺣﺪود‬ ‫آزادي ﻋﻤﻞ ﻛﺎرﺑﺮان در ﺗﻌﻴﻴﻦ ﺟﻨﺒﻪﻫﺎي داده(‬

‫•‬

‫ﻗﺪرت ﺳﻴﺴﺘﻢ در اﻧﺠﺎم ﻋﻤﻠﻴﺎت ﺑﻬﻨﮕﺎم ﺳﺎزي دﻳﺪﻫﺎ )ﺑﻬﻨﮕﺎم ﺳﺎزي ﺑﻪ ﻣﻌﻨﺎي‬ ‫ﻋﺎم ﻳﻌﻨﻲ درج‪ ،‬ﺣﺬف و ﺗﻐﻴﻴﺮ( و ﺗﻨﻮع دﻳﺪﻫﺎي ﭘﺬﻳﺮاي اﻳﻦ ﻋﻤﻠﻴﺎت‬

‫•‬

‫وﺟﻮد ﻛﻠﻴﺪ اﺻﻠﻲ در اﻳﻦ ﺳﻄﺢ )ﺑﺮاي ﺑﻌﺾ دﻳﺪﻫﺎ ﺑﻪ ﺗﺸﺨﻴﺺ ﻣﺪﻳﺮ‬ ‫ﭘﺎﻳﮕﺎهدادهﻫﺎ(‬

‫‪ 5-5‬ﭘﺎراﻣﺘﺮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ زﺑﺎن دادهاي ﻓﺮﻋﻲ‬ ‫•‬

‫ﻣﻴﺰان ﭘﺎﻳﺒﻨﺪي اﺣﻜﺎم زﺑﺎن ﺑﻪ ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﺎري ﻣﺪل دادهاي در ﺟﻬﺖ ﺗﺎﻣﻴﻦ‬ ‫اﻧﺘﺰاع ﻫﺮﭼﻪ ﺑﻴﺸﺘﺮ‬

‫•‬

‫وﺟﻮد دﺳﺘﻮرات ‪ DCL ،DML ،DDL‬ﺑﺮاي ﻫﺮ ﺳﻪ ﺳﻄﺢ ﻣﻌﻤﺎري‬

‫•‬

‫داﺷﺘﻦ ﻫﺮ دو ﺟﻨﺒﻪ ﺧﻮدﻛﻔﺎ )ﻣﺴﺘﻘﻞ( ﺑﻮدن و ﻗﺎﺑﻞ ادﻏﺎم ﺑﻮدن‬

‫•‬

‫اﻧﻮاع دادهاي ﻣﻮﺟﻮد‬

‫•‬

‫ﮔﺴﺘﺮش ﭘﺬﻳﺮي ﻧﻮع دادهاي و وﺟﻮد ﻧﻮع دادهاي ﺗﻌﺮﻳﻒ ﺷﺪه ﺗﻮﺳﻂ ﻛﺎرﺑﺮ‬

‫•‬

‫ﭘﺬﻳﺮش ‪ BLOB‬و دادهﻫﺎي از ﻧﻮع ﺗﺼﻮﻳﺮ‪ ،‬وﻳﺪﺋﻮ و ﻣﺘﻦ‬

‫•‬

‫اﻣﻜﺎن ﻧﻮﺷﺘﻦ روﻳﻪ ذﺧﻴﺮه ﺷﺪه و رﻫﺎﻧﺎ‬

‫•‬

‫ﺟﻬﺖ ﺟﺎﺑﺠﺎﻳﻲ ﻣﻜﺎن ﻧﻤﺎ )ﺟﻠﻮ‪ ،‬ﻋﻘﺐ و ﻫﺮ دو ﺳﻮ(‬

‫•‬

‫واﺳﻂﻫﺎي ﻣﺤﻴﻂ ﺑﺮﻧﺎﻣﻪ ﺳﺎزي )ﻣﺜﻞ ‪ ODBC‬و‪(...‬‬

‫•‬

‫درﺟﻪ ﻛﻤﺎل از ﻧﻈﺮ ﺳﺎﺧﺘﺎر دادهاي‬

‫•‬

‫درﺟﻪ ﻛﻤﺎل ﺑﺮﻧﺎﻣﻪ ﺳﺎزي‬

‫•‬

‫ﺳﺎزﮔﺎري ﺑﺎ‬

‫•‬

‫روﻳﻪاي ﻳﺎ ﻧﺎ روﻳﻪاي ﺑﻮدن‬

‫•‬

‫ﻣﻔﺴﺮي ﻳﺎ ﻛﺎﻣﭙﺎﻳﻠﺮي ﺑﻮدن‬

‫‪4GL‬‬

‫‪ANSI‬‬

‫‪76‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫رﻋﺎﻳﺖ اﺻﻞ وﺣﺪت اﺣﻜﺎم ﺑﺮاي ﻋﻤﻞ واﺣﺪ در دو ﺳﻄﺢ اﻧﺘﺰاﻋﻲ و ﻧﻴﺰ در ﻳﻚ‬ ‫ﺳﻄﺢ ﻣﺸﺨﺺ‬

‫•‬

‫وﺟﻮد اﻣﻜﺎن ﻛﻨﺘﺮل رﻛﻮردﻫﺎي ﺗﻜﺮاري ﺑﺮاي ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫ﻗﺪرت در ﺑﺮﻧﺎﻣﻪ ﺳﺎزي اﻟﮕﻮرﻳﺘﻢﻫﺎي ﺑﻬﻴﻨﻪ ﺑﺮاي اﻧﺠﺎم ﭼﻬﺎر ﻋﻤﻞ اﺻﻠﻲ‬ ‫)ﺑﺎزﻳﺎﺑﻲ‪ ،‬ﺣﺬف‪ ،‬درج و ﺑﻬﻨﮕﺎم ﺳﺎزي(‬

‫•‬

‫ﺳﻬﻮﻟﺖ ﻧﻮﺷﺘﻦ ﺑﺮﻧﺎﻣﻪﻫﺎي ﻻزم ﺑﺮاي اﻧﺠﺎم ﭼﻬﺎر ﻋﻤﻞ اﺻﻠﻲ )ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ‬ ‫ﻣﻔﺎﻫﻴﻢ ﺳﺎﺧﺘﺎر دادهاي(‬

‫•‬

‫ﺳﻬﻮﻟﺖ ﻳﺎدﮔﻴﺮي و ﻧﺰدﻳﻜﻲ ﺑﻪ زﺑﺎن ﻃﺒﻴﻌﻲ‬

‫•‬

‫وﺟﻮد اﻣﻜﺎن ﻣﻌﺮﻓﻲ ﻣﻴﺪان و ﻋﻤﻠﻴﺎت روي ﻣﻴﺪانﻫﺎ‬

‫•‬

‫وﺟﻮد اﺣﻜﺎم ﻻزم ﺑﺮاي اﻋﻤﺎل ﻗﻮاﻋﺪ ﺟﺎﻣﻌﻴﺘﻲ‬

‫•‬

‫وﺟﻮد اﺣﻜﺎم ﻻزم ﺑﺮاياﻳﻤﻨﻲ و ﺣﻔﺎﻇﺖ دادهﻫﺎ‬

‫•‬

‫وﺟﻮد اﺣﻜﺎم ﻻزم ﺑﺮاي اﻋﻤﺎل ﺿﻮاﺑﻂ ﻣﺠﺎزﺷﻤﺎري‬

‫•‬

‫وﺟﻮد اﺣﻜﺎم ﻻزم ﺑﺮاي ﺗﻌﻴﻴﻦ ﺣﺪود ﺗﺮاﻛﻨﺶﻫﺎ و ﻛﻨﺘﺮل ﻫﻤﺰﻣﺎﻧﻲ آﻧﻬﺎ‬

‫•‬

‫وﺟﻮد اﻣﻜﺎن ﻧﻮﺷﺘﻦ اﻟﮕﻮرﻳﺘﻢﻫﺎي ﻣﻮازي ﭘﺮﺳﺶ‬

‫•‬

‫ﻣﻴﺰان ﺷﻴﺊ ﮔﺮا ﺑﻮدن‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﻻزم ﺑﺮاي دادهﻫﺎي زﻣﺎﻧﺒﻨﺪ‬

‫‪ -6‬ﻣﺤﻮرﻫﺎي اﺻﻠﻲ ﻣﻘﺎﻳﺴﻪ ‪DBMS‬ﻫﺎ‬ ‫در ﻣﻘﺎﻳﺴﻪ اﻳﻦ ﺳﻴﺴﺘﻢﻫﺎ‪ ،‬ﺑﺎﻳﺪ ﺗﻤﺎم ﭘﺎراﻣﺘﺮﻫﺎي ﮔﻔﺘﻪ ﺷﺪه در ﻗﺴﻤﺖ ‪ 9‬اﻳﻦ ﮔﻔﺘﺎر را‬ ‫در ﻧﻈﺮ داﺷﺖ‪ .‬اﻣﺎ ﺑﺎ ﺑﺮرﺳﻲ اﻳﻦ ﭘﺎراﻣﺘﺮﻫﺎ ﻣﻲ ﺗﻮان ﻣﺤﻮرﻫﺎي اﺻﻠﻲ ﻣﻘﺎﻳﺴﻪ را ﺑﺪﺳﺖ‬ ‫آورد‪ .‬در زﻳﺮ ﻣﺤﻮرﻫﺎي ﻣﻬﻤﺘﺮ را ﺑﺮ ﻣﻲﺷﻤﺮﻳﻢ )ﻓﺮض ﺑﺮ اﻳﻦ اﺳﺖ ﻛﻪ ﺳﻴﺴﺘﻢ ﻫﺎي‬ ‫ﻣﻘﺎﻳﺴﻪ ﺷﻮﻧﺪه ﻣﻌﻤﺎري ‪ ANSI‬را ﭘﺸﺘﻴﺒﺎﻧﻲ ﻣﻲﻛﻨﻨﺪ(‪:‬‬ ‫•‬

‫اﻣﻜﺎﻧﺎت ﺗﻌﺮﻳﻒ دادهﻫﺎ‬

‫•‬

‫اﻧﻮاع دادهاي ﻣﻮرد ﭘﺬﻳﺮش ﺳﻴﺴﺘﻢ‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﻋﻤﻠﻴﺎت در دادهﻫﺎ‬

‫•‬

‫ﻧﻮع ﺗﺮاﻛﻨﺶﻫﺎ )ﭼﻨﺪ ﭘﺮﺳﺸﻲ ﻳﺎ ﺑﺮﻧﺎﻣﻪ‪ ،‬ﺗﻌﺪاد آﻧﻬﺎ( و ﻃﺮز ﻣﺪﻳﺮﻳﺖ آﻧﻬﺎ‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﭘﺮدازش ﭘﺮﺳﺶﻫﺎ‪ ،‬ﺑﻬﻴﻨﻪ ﺳﺎزي آﻧﻬﺎ و زﻣﺎن ﺑﻬﻴﻨﻪ ﺳﺎزي‬

‫ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده‬

‫‪77‬‬

‫•‬

‫اﻣﻜﺎﻧﺎتاﻳﺠﺎد دﻳﻜﺸﻨﺮي دادهﻫﺎ‬

‫•‬

‫وﺿﻌﻴﺖ ﺳﻄﺢ داﺧﻠﻲ‪ -‬ﻓﻴﺰﻳﻜﻲ ﭘﺎﻳﮕﺎهدادهﻫﺎ از ﻧﻈﺮ ﺳﺎﺧﺘﺎر ﻓﺎﻳﻠﻬﺎ‪ ،‬ﺷﻴﻮهﻫﺎي‬ ‫دﺳﺘﻴﺎﺑﻲ )ﺑﻮﻳﮋه ﺷﺎﺧﺺ ﺑﻨﺪي( و ﺟﻨﺒﻪﻫﺎي دﻳﮕﺮ‪.‬‬

‫•‬

‫ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﻗﺎﺑﻞاﻳﺠﺎد و ﻣﺪﻳﺮﻳﺖ‬

‫•‬

‫ﻣﺤﻴﻂ ﺳﺨﺖاﻓﺰاري و ﺣﺪاﻗﻞ اﻣﻜﺎﻧﺎت ﻻزم‬

‫•‬

‫ﻣﺤﻴﻂ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ ﻻزم‬

‫•‬

‫ﺗﻜﻨﻴﻜﻬﺎي ﻛﻨﺘﺮل ﻫﻤﺰﻣﺎﻧﻲ‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﻣﺪﻳﺮﻳﺖ ﻣﺤﻴﻂ ﭘﺎﻳﮕﺎهدادهﻫﺎ‪ :‬ﻛﻨﺘﺮل ﺟﺎﻣﻌﻴﺖ‪ ،‬ﺗﺮﻣﻴﻢ‪ ،‬اﻳﻤﻨﻲ و ﺣﻔﺎﻇﺖ‪.‬‬

‫•‬

‫ﺗﺴﻬﻴﻼت ﻃﺮاﺣﻲ ﭘﺎﻳﮕﺎهدادهﻫﺎ )ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ و ﻃﺮاﺣﻲ ﻓﻴﺰﻳﻜﻲ(‪.‬‬

‫•‬

‫ﻣﻜﺎﻧﻴﺴﻢ ادﻏﺎم زﺑﺎن دادهاي ﻓﺮﻋﻲ در زﺑﺎن ﻣﻴﺰﺑﺎن )وﺟﻮد ﭘﻴﺶ ﻛﺎﻣﭙﺎﻳﻠﺮ ﻳﺎ‬ ‫ﻓﺮاﺧﻮاﻧﻲ ﺗﻮاﺑﻊ(‪.‬‬

‫•‬

‫ﺗﻨﻮع دﻳﺪﻫﺎﻳﻲ ﻛﻪ ﻋﻤﻠﻴﺎت ذﺧﻴﺮه ﺳﺎزي را ﻣﻲﭘﺬﻳﺮﻧﺪ‪.‬‬

‫•‬

‫ﻣﻜﺎﻧﻴﺴﻢ ﻣﺠﺎزﺷﻤﺎري ﻛﺎرﺑﺮان )ﻧﺎﻣﺘﻤﺮﻛﺰ‪ ،‬ﻣﺘﻤﺮﻛﺰ ﻳﺎ ﻧﻴﻤﻪ ﻣﺘﻤﺮﻛﺰ(‪.‬‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﻣﻮرد ﻧﻴﺎز ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎهدادهﻫﺎ‪.‬‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﻧﻬﺎن ﻧﮕﺎري دادهﻫﺎ‪.‬‬

‫•‬

‫ﻃﺮز اﻧﺠﺎم ﻋﻤﻞ ﺑﻬﻨﮕﺎم ﺳﺎزي )درﺟﺎ ﻳﺎ ﺑﺮون از ﺟﺎ(‪.‬‬

‫•‬

‫اﻟﮕﻮرﻳﺘﻢ اﺟﺮاي ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ و ﺳﺎﻳﺮ ﻋﻤﻠﮕﺮﻫﺎي ﺟﺒﺮ راﺑﻄﻪاي‪.‬‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺗﻌﺎﻣﻞ ﺑﺎ ﺳﻴﺴﺘﻢﻫﺎي دﻳﮕﺮ )ﻧﻮع ﻣﻴﺎن اﻓﺰار و‪(...‬‬

‫•‬

‫ﻃﺮز ﻧﻤﺎﻳﺶ ﻧﺘﺎﻳﺞ ﻋﻤﻠﻴﺎت )ﮔﺮاﻓﻴﻚ و ﮔﺰارش(‪.‬‬

‫•‬

‫ﭘﺬﻳﺮش ﻳﺎ ﻋﺪم ﭘﺬﻳﺮش زﺑﺎﻧﻬﺎي ﻧﺴﻞ ﭼﻬﺎرم و ﭘﻨﺠﻢ‪.‬‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺗﻮﻟﻴﺪ ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي‪.‬‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﭘﺸﺘﻴﺒﺎﻧﻲ ﺗﺼﻤﻴﻢ‪.‬‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﻻزم ﺑﺮاي ﺗﻮﻟﻴﺪ واﺳﻄﻬﺎي ﻛﺎرﺑﺮي‪.‬‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﻋﻤﻠﻴﺎﺗﻲ در ﻣﺤﻴﻂ ﺳﻴﺴﺘﻢ " ﺗﻮزﻳﻊ ﺷﺪه "‪.‬‬

‫•‬

‫ﺗﺴﻬﻴﻼت ﻧﺮماﻓﺰاري دﻳﮕﺮ‪.‬‬

‫‪78‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪ -7‬روش ﻣﻄﺎﻟﻌﻪ ﺳﻴﺴﺘﻢ‬ ‫در ﻣﻄﺎﻟﻌﻪ اﻳﻦ ﻧﺮم اﻓﺰار‪ ،‬ﺑﻪ ﻣﻨﻈﻮر‬

‫ﻛﺴﺐ آﺷﻨﺎﻳﻲ ﻣﻘﺪﻣﺎﺗﻲ ﺑﺎ آن )وﻧﻪ ﭼﻨﺪان‬

‫ﺗﺨﺼﺼﻲ(‪ ،‬ﺑﺎﻳﺪ ﻣﻮارد زﻳﺮ ﺑﺮرﺳﻲ ﺷﻮد‪:‬‬ ‫•‬

‫ﺑﺮرﺳﻲ ﺷﺮﻛﺖ ﺳﺎزﻧﺪه‪ ،‬ﺧﺎﻧﻮاده ﻧﺮماﻓﺰارﻫﺎي ﭘﺎﻳﮕﺎﻫﻲ ﻣﺸﺎﺑﻪ و ﺗﺎرﻳﺨﭽﻪ‬ ‫ﺳﻴﺴﺘﻢ‬

‫•‬

‫ﺣﺪاﻗﻞ ﭘﻴﻜﺮه ﺑﻨﺪي ﺳﺨﺖاﻓﺰاري و ﻧﺮماﻓﺰاري ﻻزم‬

‫•‬

‫ﺑﺮرﺳﻲ وﺟﻮد اﺟﺰاء ﻣﻌﻤﺎري ‪ ANSI‬ﺑﺮاي ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫اﻣﻜﺎﻧﺎت زﺑﺎن دادهاي ﻓﺮﻋﻲ ﺳﻴﺴﺘﻢ‬

‫•‬

‫اﻣﻜﺎﻧﺎت ﺳﻴﺴﺘﻢ ازﻧﻈﺮ زﺑﺎن ﻣﻴﺰﺑﺎن‬

‫•‬

‫ﺑﺮرﺳﻲ ﻣﻮﻟﻔﻪﻫﺎي ﻣﺪل دادهاي و ﻣﻴﺰان راﺑﻄﻪاي ﺑﻮدن ﺳﻴﺴﺘﻢ‬

‫•‬

‫اﺟﺰاء ﺗﺸﻜﻴﻞ دﻫﻨﺪه ﺳﻴﺴﺘﻢ‬

‫•‬

‫روﻧﺪ ﻛﻠﻲ اﺟﺮاي ﺑﺮﻧﺎﻣﻪ ﺗﻮﺳﻂ ﺳﻴﺴﺘﻢ‬

‫•‬

‫ﻧﺤﻮه ﻛﺎر ﺑﺎ ﺳﻴﺴﺘﻢ‪ ،‬ﺑﺮﭘﺎﺳﺎزي‪ ،‬راهاﻧﺪازي و آﻣﺎده ﺳﺎزي ﺳﻴﺴﺘﻢ‪ ،‬ورود ﺑﻪ‬ ‫ﺳﻴﺴﺘﻢ و ﻛﺎرﻫﺎي ﻻزم ﺑﺮاياﻳﺠﺎد ﭘﺎﻳﮕﺎه و اﻧﺠﺎم ﻋﻤﻠﻴﺎت در آن‬

‫•‬

‫ﺗﺴﻬﻴﻼت ﺟﺎﻧﺒﻲ ﺳﻴﺴﺘﻢ از ﺟﻤﻠﻪ واﺳﻂﻫﺎي ﻛﺎرﺑﺮي و‪....‬‬

‫‪ -8‬روﻳﻪﻫﺎي ﻣﺴﺘﻨﺪ ﺑﺮاي ﻛﺎرﺑﺮان‬ ‫ﺑﺮاي اﻳﻨﻜﻪ ﻛﺎرﺑﺮان و اﻋﻀﺎء ﺗﻴﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺑﺘﻮاﻧﻨﺪ از ﺳﻴﺴﺘﻢ اﺳﺘﻔﺎده‬ ‫ﻛﻨﻨﺪ‪ ،‬ﻣﻌﻤﻮﻻً ﻣﺠﻤﻮﻋﻪ اي از دﺳﺘﻮرﻫﺎ و ﻗﻮاﻋﺪ‪ ،‬ﻣﻮﺳﻮم ﺑﻪ روﻳﻪ ﻫﺎي ﻣﺴﺘﻨﺪ ﺗﻮﺳﻂ‬ ‫ﻋﺮﺿﻪ ﻛﻨﻨﺪﮔﺎن ﺳﻴﺴﺘﻢ در اﺧﺘﻴﺎر ﺧﺮﻳﺪاران ﻗﺮار داده ﻣﻲ ﺷﻮد‪ .‬در اﻳﻦ روﻳﻪﻫﺎي‬ ‫ﻣﺴﺘﻨﺪ ﭼﮕﻮﻧﮕﻲ اﻧﺠﺎم ﻓﻌﺎﻟﻴﺘﻬﺎي زﻳﺮ ﻣﺸﺨﺺ ﺷﺪه اﺳﺖ‪:‬‬ ‫•‬

‫ﺑﺮﭘﺎﺳﺎزي ﺳﻴﺴﺘﻢ‬

‫•‬

‫ﻃﺮز ارﺗﺒﺎط ﺑﺎ ﺳﻴﺴﺘﻢ‬

‫•‬

‫ﻃﺮز اﺳﺘﻔﺎده از ﺳﻴﺴﺘﻢ‬

‫•‬

‫ﻃﺮز اﺳﺘﻔﺎده از ﺗﺴﻬﻴﻼت و اﻣﻜﺎﻧﺎت آن‬

‫•‬

‫ﺗﻮﻟﻴﺪ ﻧﺴﺨﻪﻫﺎﻳﻲ از ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده‬ ‫•‬

‫‪79‬‬

‫ﻃﺮز ﺗﺸﺨﻴﺺ ﻋﻴﺒﻬﺎي ﺳﺨﺖاﻓﺰاري و ﻧﺮماﻓﺰاري و ﭼﮕﻮﻧﮕﻲ رﻓﻊ آﻧﻬﺎ و ﺗﺮﻣﻴﻢ‬ ‫ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫ﺗﻐﻴﻴﺮ ﺳﺎﺧﺘﺎر ﭘﺎﻳﮕﺎهدادهﻫﺎ )ﺳﺎزﻣﺎﻧﺪﻫﻲ ﻣﺠﺪد(‬

‫•‬

‫ﺗﻨﻈﻴﻢ ﺳﻴﺴﺘﻢ‬

‫•‬

‫ﺑﻬﺒﻮد ﺑﺨﺸﻴﺪن ﻛﺎراﻳﻲ ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫ﺗﻮﻟﻴﺪ ﻧﺴﺨﻪﻫﺎي ﭘﺸﺘﻴﺒﺎن‬

‫‪ -9‬ﻫﺰﻳﻨﻪﻫﺎ‬ ‫اﺳﺘﻔﺎده از ﺗﻜﻨﻮﻟﻮژي ﭘﺎﻳﮕﺎه دادهﻫﺎ ﻫﺰﻳﻨﻪ ﻫﺎﻳﻲ دارد‪ .‬ﺑﺮﺧﻲ از اﻗﻼم ﻣﻬﻤﺘﺮ ﻫﺰﻳﻨﻪ‬ ‫ﻋﺒﺎرﺗﻨﺪاز‪:‬‬ ‫•‬

‫ﻫﺰﻳﻨﻪ ﺧﺮﻳﺪ ﻧﺮماﻓﺰار اﺻﻠﻲ)‪(DBMS‬‬

‫•‬

‫ﻫﺰﻳﻨﻪ آﻣﻮزش ﻧﺮماﻓﺰار اﺻﻠﻲ‬

‫•‬

‫ﻫﺰﻳﻨﻪ ﻧﮕﻬﺪاري و ﺑﻬﺮه ﺑﺮداري از آن‬

‫•‬

‫ﻫﺰﻳﻨﻪ ﺗﺒﺪﻳﻞ ﺳﻴﺴﺘﻢ ﻧﺎﭘﺎﻳﮕﺎﻫﻲ ﺑﻪ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ‬

‫•‬

‫ﻫﺰﻳﻨﻪ ﺗﻬﻴﻪ اﺑﺰارﻫﺎي ﻧﺮماﻓﺰاري دﻳﮕﺮ‬

‫•‬

‫ﻫﺰﻳﻨﻪ آﻣﻮزش اﻣﻜﺎﻧﺎت ﻧﺮماﻓﺰاري‬

‫•‬

‫ﻫﺰﻳﻨﻪ ﺗﻬﻴﻪ ﺑﺴﺘﻪﻫﺎي ﻛﺎرﺑﺮدي‬

‫•‬

‫ﻫﺰﻳﻨﻪ آﻣﻮزش ﺑﺴﺘﻪﻫﺎي ﻛﺎرﺑﺮدي‬

‫•‬

‫ﻫﺰﻳﻨﻪ ﺗﻬﻴﻪ ﻣﺴﺘﻨﺪات ﺧﻮد ﺳﻴﺴﺘﻢ‬

‫•‬

‫ﻫﺰﻳﻨﻪ ﺗﻬﻴﻪ ﻣﺴﺘﻨﺪات اﻣﻜﺎﻧﺎت ﻧﺮماﻓﺰاري و ﺑﺴﺘﻪﻫﺎي ﻛﺎرﺑﺮدي‬

‫•‬

‫ﻫﺰﻳﻨﻪ ﺗﻨﻈﻴﻢ ﻣﺴﺘﻨﺪات ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫ﻫﺰﻳﻨﻪ ﺗﻬﻴﻪ ﺳﺨﺖاﻓﺰار ﭘﺮدازﺷﮕﺮ )ﻛﺎﻣﭙﻴﻮﺗﺮ از ردهﻫﺎي ﻣﺨﺘﻠﻒ(‬

‫•‬

‫ﻫﺰﻳﻨﻪ ﺗﻬﻴﻪ ﺳﺨﺖاﻓﺰار ذﺧﻴﺮه ﺳﺎزي‬

‫•‬

‫ﻫﺰﻳﻨﻪ ﺗﺎﻣﻴﻦ ﺷﺒﻜﻪﻫﺎي ﻻزم )در ﺻﻮرت ﻟﺰوم(‬

‫•‬

‫ﻫﺰﻳﻨﻪ ﻧﮕﻬﺪاري و ﺑﻬﺮه ﺑﺮداري از ﺳﻴﺴﺘﻢ ﻛﺎرﺑﺮدي‬

‫•‬

‫ﻫﺰﻳﻨﻪ ﺑﻬﻴﻨﻪ ﺳﺎزي و ﮔﺴﺘﺮش ﺳﻴﺴﺘﻢ‬

‫•‬

‫ﺣﻘﻮق و ﻣﺰاﻳﺎي اﻓﺮاد ﺗﻴﻢ ﻣﺪﻳﺮﻳﺖ و ﺗﻴﻢﻫﺎي اﺟﺮاﻳﻲ‬

‫‪80‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪ -10‬ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎهداده‬

‫)‪(DBA‬‬

‫ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎه داده ﻫﺎ ﻓﺮدي اﺳﺖ ﻣﺘﺨﺼﺺ در ﭘﺎﻳﮕﺎه دادهﻫﺎ و ﺑﺎ ﻣﺴﺌﻮﻟﻴﺖ ﻋﻠﻤﻲ‪-‬ﻓﻨﻲ و‬ ‫ﻧﻴﺰ اداري در ﻣﺤﺪوده وﻇﺎﻳﻔﻲ ﻛﻪ ﻋﻬﺪه دار اﺳﺖ‪ .‬اﻳﻦ ﻣﺪﻳﺮ ﻣﻌﻤﻮﻻً ﻫﻤﺮاه ﺑﺎ ﻳﻚ ﺗﻴﻢ‬ ‫ﺗﺨﺼﺼﻲ ﻛﺎر ﻣﻲ ﻛﻨﺪ ﻛﻪ ﺑﻪ آن ﺗﻴﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎ ﻣﻲ ﮔﻮﻳﻨﺪ‪ .‬ﻫﺮ ﻳﻚ از اﻋﻀﺎ‬ ‫اﻳﻦ ﺗﻴﻢ ﻣﺴﺌﻮﻟﻴﺖ ﺧﺎﺻﻲ دارد و در ﺣﻴﻄﻪ اﺧﺘﻴﺎرات و وﻇﺎﻳﻔﺶ ﻣﻲ ﺗﻮاﻧﺪ ﺳﺮﭘﺮﺳﺖ‬ ‫ﻳﻚ ﺗﻴﻢ اﺟﺮاﻳﻲ ﺑﺎﺷﺪ‪.‬‬

‫‪ 1-10‬اﺻﻄﻼح ﺗﻴﻢ‬

‫‪DBA‬‬

‫در ﻳﻚ ﻣﺤﻴﻂ ﻛﺎري ﺑﺮﺧﻮردار از ﺳﻄﺢ ﻣﻄﻠﻮب داﻧﺶ و ﺗﻜﻨﻮﻟﻮژي و ﻋﻤﻞ ﻛﻨﻨﺪه ﺑﺮ‬ ‫اﺳﺎس دﻳﺴﻴﭙﻠﻴﻦ ﻫﺎ و اﺳﺘﺎﻧﺪارد ﻫﺎي ﻋﻠﻤﻲ و ﻣﻬﻨﺪﺳﻲ و داراي ﻣﺪﻳﺮﻳﺖ ﭘﻮﻳﺎ‪ ،‬وﺟﻮد‬ ‫اﻳﻦ ﺗﻴﻢ ﺗﺨﺼﺼﻲ اﺟﺘﻨﺎب ﻧﺎﭘﺬﻳﺮ اﺳﺖ‪ .‬ﺑﻌﻼوه اﻳﻦ ﺗﻴﻢ ﺑﺎﻳﺪ از ﻣﺸﺎوراﻧﻲ در‬ ‫زﻣﻴﻨﻪ ﻫﺎي دﻳﮕﺮ ﻣﻬﻨﺪﺳﻲ ﻧﺮم اﻓﺰار و ﻣﻬﻨﺪﺳﻲ ﺳﺨﺖ اﻓﺰار اﺳﺘﻔﺎده ﻛﻨﺪ و ﺣﺘﻲ ﻣﻄﻠﻮب‬ ‫اﻳﻦ اﺳﺖ ﻛﻪ ﺑﻌﻀﻲ از ﻣﺸﺎوران ﺑﻪ ﻧﺤﻮي ﻋﻀﻮ ﺧﻮد ﺗﻴﻢ ﺑﺎﺷﻨﺪ‪ .‬ﺑﺮﺧﻲ از‬ ‫ﻣﺴﺌﻮﻟﻴﺖ ﻫﺎي اﺻﻠﻲ در اﻳﻦ ﺗﻴﻢ ﺗﺨﺼﺼﻲ ﻋﺒﺎرﺗﻨﺪ از‪:‬‬ ‫•‬

‫ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫ﻣﺪﻳﺮ دادهﻫﺎ‬

‫•‬

‫ﻣﺪﻳﺮ اﻣﻮر ﭘﮋوﻫﺸﻲ‪ -‬ﺗﻮﺳﻌﻪ‬

‫•‬

‫ﻣﺪﻳﺮ ﺳﻴﺴﺘﻢ )ﻫﺎي( ﻛﺎرﺑﺮدي‬

‫•‬

‫ﻣﺴﺌﻮل ﺗﻴﻤﻬﺎي ﺑﺮﻧﺎﻣﻪ ﺳﺎزي‬

‫•‬

‫ﻣﺴﺌﻮل ﻛﻨﺘﺮل ﻛﺎراﻳﻲ‬

‫•‬

‫ﻣﺴﺌﻮل ﻛﻨﺘﺮل ﻛﺎراﻳﻲ ﺧﻮد ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ‬

‫•‬

‫ﻣﺴﺌﻮل ﻧﻈﺎرت ﺑﺮ ﻋﻤﻠﻴﺎت روي ﭘﺎﻳﮕﺎهدادهﻫﺎ و اﻧﺠﺎم ﻓﻌﺎﻟﻴﺖﻫﺎي آﻣﺎري‬

‫‪DBMS‬‬

‫ﻣﺮﺑﻮﻃﻪ‬ ‫•‬

‫ﻣﺴﺌﻮل ﺗﻤﺎس ﺑﺎ ﻛﺎرﺑﺮان زﻳﺮ ﻣﺤﻴﻂﻫﺎي ﺳﺎزﻣﺎن‬

‫•‬

‫ﻣﺴﺌﻮل ﺗﻨﻈﻴﻢ ﻣﺴﺘﻨﺪات‬

‫اﺻﻄﻼح ﺗﻴﻢ ‪ DBA‬ﺑﻪ دو ﻣﻌﻨﺎ )در ﻣﺤﻴﻂﻫﺎي ﻛﺎري( ﻣﻄﺮح اﺳﺖ‪:‬‬

‫ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده‬ ‫•‬

‫ﺗﻴﻢ‬

‫‪DBA‬‬

‫در ﻣﻌﻨﺎي ﻣﺤﺪود‪ :‬ﺑﺎ اﻳﻦ ﻣﻌﻨﺎ‪ ،‬ﺗﻴﻢ‬

‫‪DBA‬‬

‫‪81‬‬

‫ﺗﻴﻤﻲاﺳﺖ ﻛﻪ‬

‫ﭘﺎﻳﮕﺎهدادهﻫﺎي ﺳﺎزﻣﺎن را‪ ،‬ﭘﺲ ازاﻳﺠﺎد ﺗﻮﺳﻂ ﮔﺮوه دﻳﮕﺮي از ﻣﺘﺨﺼﺼﻴﻦ‪،‬‬ ‫ﺗﺤﻮﻳﻞ ﻣﻲﮔﻴﺮد و ﭘﺲ از ﺗﺤﻮﻳﻞ‪ ،‬وﻇﻴﻔﻪ ﻧﮕﻬﺪاري‪ ،‬ﺑﻬﺮه ﺑﺮداري و ﮔﺎه ﺑﻬﻴﻨﻪ‬ ‫ﺳﺎزي و اﺣﺘﻤﺎﻻ ﮔﺴﺘﺮش "ﺳﻴﺴﺘﻢ" را ﺑﺮ ﻋﻬﺪه دارد‪.‬‬ ‫•‬

‫ﺗﻴﻢ‬

‫‪DBA‬‬

‫در ﻣﻌﻨﺎي ﮔﺴﺘﺮده‪ :‬ﺑﺎ اﻳﻦ ﻣﻌﻨﺎ‪ ،‬ﺗﻴﻢ ‪ ،DBA‬ﺧﻮد ﻫﻤﻪ ﻣﺮاﺣﻞ ﻻزم‬

‫ﺑﺮاياﻳﺠﺎد ﭘﺎﻳﮕﺎهدادهﻫﺎي ﺳﺎزﻣﺎن را اﻧﺠﺎم ﻣﻲدﻫﺪ و ﺳﭙﺲ ﻧﮕﻬﺪاري‪ ،‬ﺑﻬﺮه‬ ‫ﺑﺮداري و ﺑﻬﻴﻨﻪ ﺳﺎزي و ﮔﺴﺘﺮش آن را ﺑﺮﻋﻬﺪه ﻣﻲﮔﻴﺮد‪.‬‬

‫‪ 2-10‬ﻣﺴﺌﻮﻟﻴﺖﻫﺎ‬ ‫ﻣﺪﻳﺮ دادهﻫﺎ ﻓﺮدي اﺳﺖ ﺑﺎ داﻧﺶ و ﺗﺠﺮﺑﻪ در ﻣﺪﻳﺮﻳﺖ و آﺷﻨﺎ ﺑﺎ داﻧﺶ و ﺗﻜﻨﻮﻟﻮژي‬ ‫ﭘﺎﻳﮕﺎه داده ﻫﺎ‪ .‬ﺑﺮاي اﻃﻼع از وﻇﺎﻳﻒ ﻣﺪﻳﺮ داده ﻫﺎ ﺑﻪ ﻣﻨﺎﺑﻊ درس ﻫﺎي ''ﻣﻬﻨﺪﺳﻲ‬ ‫ﻧﺮم اﻓﺰار"‪" ،‬ﺗﺤﻠﻴﻞ و ﻃﺮاﺣﻲ ﺳﻴﺴﺘﻢﻫﺎ" و ﻧﻴﺰ درس "ﺳﻴﺴﺘﻢ اﻃﻼﻋﺎت‬

‫ﻣﺪﻳﺮﻳﺖ"‬

‫ﻣﺮاﺟﻌﻪ ﺷﻮد‪.‬‬

‫‪ 3-10‬وﻇﺎﻳﻒ‬ ‫ﺗﻴﻢ‬

‫‪DBA‬‬

‫در ﻣﻌﻨﺎي ﮔﺴﺘﺮده وﻇﺎﻳﻔﻲ دارد ﻛﻪ اﻫﻢ آﻧﻬﺎ را ذﻛﺮ ﻣﻲﻛﻨﻴﻢ‪ .‬ﺗﻮﺟﻪ دارﻳﻢ‬

‫ﻛﻪ ﺗﺮﺗﻴﺐ اﻧﺠﺎم اﻳﻦ وﻇﺎﻳﻒ ﻟﺰوﻣﺎ ﻫﻤﺎن ﻧﻴﺴﺖ ﻛﻪ در زﻳﺮ آﻣﺪه اﺳﺖ )روﺷﻦ اﺳﺖ‬ ‫ﻛﻪ در اﺟﺮاي ﻫﺮ ﭘﺮوژه‪ ،‬ﻧﻴﺎز ﺑﻪ ﻳﻚ ﻃﺮح زﻣﺎن ﺑﻨﺪي ﻓﻌﺎﻟﻴﺘﻬﺎﺳﺖ ﻛﻪ ﺑﺎﻳﺪ آﻣﺎده‬ ‫ﺷﻮد(‪ .‬ﻫﻤﭽﻨﻴﻦ ﺑﺮﺧﻲ از اﻳﻦ وﻇﺎﻳﻒ ﻣﻲ ﺗﻮاﻧﻨﺪ ﺑﻄﻮر ﻫﻤﺰﻣﺎن اﻧﺠﺎم ﺷﻮﻧﺪ‪.‬‬ ‫•‬

‫ﻣﺸﺎرﻛﺖ در ﺗﻔﻬﻴﻢ اﻫﻤﻴﺖ و ﻧﻘﺶ داده ﺑﻪ ﻣﺪﻳﺮﻳﺖ ﺳﺎزﻣﺎن‬

‫•‬

‫ﻣﺸﺎرﻛﺖ در ﺗﻔﻬﻴﻢ اﻫﻤﻴﺖ و ﻣﺰاﻳﺎي ﺗﻜﻨﻮﻟﻮژي ﭘﺎﻳﮕﺎهدادهﻫﺎ‪.‬‬

‫•‬

‫ﻣﺸﺎرﻛﺖ در ﺗﺼﻤﻴﻢ ﮔﻴﺮي در ﻣﻮرد اﺳﺘﻔﺎده ﻳﺎ ﻋﺪم اﺳﺘﻔﺎده از اﻳﻦ ﺗﻜﻨﻮﻟﻮژي‪.‬‬

‫•‬

‫ﻣﺸﺎرﻛﺖ در ﺗﻮﺟﻴﻪ ﻋﻠﻤﻲ‪-‬ﻓﻨﻲ ﺗﺼﻤﻴﻢ اﺳﺘﻔﺎده از اﻳﻦ ﺗﻜﻨﻮﻟﻮژي‪.‬‬

‫•‬

‫ﻣﻄﺎﻟﻌﻪ دﻗﻴﻖ و ﻫﻤﻪ ﺟﺎﻧﺒﻪ ﻣﺤﻴﻂ ﻋﻤﻠﻴﺎﺗﻲ و ﺑﺮآورد ﺧﻮاﺳﺘﻪﻫﺎ و ﺑﺮ آورد‬ ‫ﻧﻴﺎزﻫﺎي ﻛﺎرﺑﺮان )اﻧﺠﺎم اﺻﻮﻟﻲ ﻣﻬﻨﺪﺳﻲ ﻧﻴﺎزﻫﺎ(‪.‬‬

‫‪82‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫ﺑﺮرﺳﻲ روﻧﺪ دادهﻫﺎ و روﻧﺪ روﻳﺪادﻫﺎ در ﻣﺤﻴﻂ و رﺳﻢ ﻧﻤﻮدار روﻧﺪ دادهﻫﺎ و‬ ‫روﻧﺪ روﻳﺪادﻫﺎ )ﻳﻚ ﻳﺎ ﻫﺮ دو ﺑﺴﺘﻪ ﺑﻪ ﺷﻴﻮه ﻣﺪﻟﺴﺎزي ﺳﻴﺴﺘﻢ ﻣﻮرد ﻧﻈﺮ( و ﺗﻬﻴﻪ‬ ‫و ﺗﻨﻈﻴﻢ ﻣﺴﺘﻨﺪات ﻻزم‪.‬‬

‫•‬

‫ﻣﺪﻟﺴﺎزي ﻣﻌﻨﺎﻳﻲ دادهﻫﺎ )ﺑﺎ ﻣﺮاﺣﻠﻲ ﻛﻪ دﻳﺪه ﺷﺪ از ﺟﻤﻠﻪ رﺳﻢ ﻧﻤﻮدار ‪.(EER‬‬

‫•‬

‫ﺗﺨﻤﻴﻦ ﺣﺠﻢ دادهﻫﺎي ذﺧﻴﺮه ﺷﺪﻧﻲ در ﭘﺎﻳﮕﺎهدادهﻫﺎ‪.‬‬

‫•‬

‫ﺗﺼﻤﻴﻢ ﮔﻴﺮي دو ﻣﻮرد ﺗﻌﻴﻴﻦ ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎهدادهﻫﺎ و ﺗﻌﻴﻴﻦ ﻣﺸﺨﺼﺎت‬ ‫ﺳﻴﺴﺘﻢ )ﻫﺎي( ﻛﺎرﺑﺮدي ﻣﻮرد ﻧﻴﺎز‪.‬‬

‫•‬

‫ﻣﺸﺎرﻛﺖ در اﻧﺘﺨﺎب ‪) DBMS‬ﻫﺎ( و ﭘﻴﻜﺮ ﺑﻨﺪي ﺳﺨﺖاﻓﺰاري و ﻧﺮماﻓﺰاري ﻻزم‬ ‫در ﺻﻮرت ﻟﺰوم )اﮔﺮ اﻧﺘﺨﺎب ﻧﺸﺪه ﺑﺎﺷﺪ(‪.‬‬

‫•‬

‫ﺗﺼﻤﻴﻢ ﮔﻴﺮي در اﻧﺘﺨﺎب و اﻧﺘﺴﺎب اﻋﻀﺎء ﺗﻴﻤﻬﺎي اﺟﺮاﻳﻲ‪.‬‬

‫•‬

‫ﺗﺼﻤﻴﻢ ﮔﻴﺮي در اﻧﺘﺨﺎب اﺑﺰارﻫﺎي ﻧﺮماﻓﺰاري دﻳﮕﺮ ﺑﺮاي ﺗﻮﻟﻴﺪ و ﮔﺴﺘﺮش‬ ‫ﺳﻴﺴﺘﻢ ﻣﻮرد ﻧﻈﺮ‪.‬‬

‫•‬

‫ﺗﺼﻤﻴﻢﮔﻴﺮي درﻣﻮرد زﺑﺎن)ﻫﺎي( ﺑﺮﻧﺎﻣﻪﺳﺎزي ﻣﻮرد ﻧﻴﺎز و ﻣﺘﻨﺎﺳﺐ ﺑﺎ ﻫﺮ ﻛﺎرﺑﺮد‪.‬‬

‫•‬

‫ﻃﺮاﺣﻲ ﺳﻄﺢ ادراﻛﻲ ﭘﺎﻳﮕﺎهدادهﻫﺎ )ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ(‪.‬‬

‫•‬

‫ﻧﻮﺷﺘﻦ ﺷﻤﺎي ادراﻛﻲ و ﺑﺮﻧﺎﻣﻪﻫﺎي ﻻزم ﺑﺮاياﻳﺠﺎد ﭘﺎﻳﮕﺎهدادهﻫﺎ‪.‬‬

‫•‬

‫ﺗﻌﻴﻴﻦ ﻣﺠﻤﻮﻋﻪ ﻗﻮاﻋﺪ )ﻣﺤﺪودﻳﺘﻬﺎي( ﺟﺎﻣﻌﻴﺖ ﻧﺎﻇﺮ ﺑﻪ ﭘﺎﻳﮕﺎهدادهﻫﺎ‪.‬‬

‫•‬

‫ﻧﻈﺎرت ﺑﺮ ﺗﻌﻴﻴﻦ دﻳﺪﻫﺎي ﺧﺎرﺟﻲ و ﻧﻮﺷﺘﻦ ﺷﻤﺎﻫﺎي ﺧﺎرﺟﻲ‪.‬‬

‫•‬

‫ﺗﺼﻤﻴﻢ ﮔﻴﺮي در ﻣﻮرد ﻣﺸﺨﺼﺎت ﺳﺎﺧﺘﺎر ﺳﻄﺢ داﺧﻠﻲ ﭘﺎﻳﮕﺎهدادهﻫﺎ و ﺗﻌﻴﻴﻦ‬ ‫ﺳﺎﺧﺘﺎر ﻓﺎﻳﻞﻫﺎي ﻣﻨﺎﺳﺐ‪ ،‬اﺳﺘﺮاﺗﮋيﻫﺎي دﺳﺘﻴﺎﺑﻲ ﻛﺎرا و ﻧﻮﺷﺘﻦ ﺷﻤﺎي داﺧﻠﻲ‪.‬‬

‫•‬

‫اﻧﺠﺎم ﻃﺮاﺣﻲ ﺗﻮزﻳﻊ )در ﺻﻮرت ﻣﻌﻤﺎري ﺗﻮزﻳﻊ ﺷﺪه(‪.‬‬

‫•‬

‫ﻃﺮاﺣﻲ "ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي"‪ ،‬ﺗﺮاﻛﻨﺶﻫﺎي ﻻزم و روﻳﻪﻫﺎي ﻋﻤﻠﻴﺎﺗﻲ ﻻزم‪.‬‬ ‫)ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﻴﻢ ﻛﻪ ﻫﺮ ﺑﺮﻧﺎﻣﻪاي‪ ،‬ﻧﻴﺎز ﺑﻪ ﻃﺮاﺣﻲ دارد و ﺗﻨﻬﺎ ﭘﺲ از ﻃﺮاﺣﻲ‬ ‫اﺻﻮﻟﻲ ﺑﺮﻧﺎﻣﻪ‪ ،‬ﻣﻲﺗﻮان ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﻛﺮد(‪ ،‬واﻳﺠﺎد ارﺗﺒﺎط داﺋﻢ ﺑﺎ ﺗﻮﻟﻴﺪ ﻛﻨﻨﺪﮔﺎن‬ ‫" ﺳﻴﺴﺘﻢ ﻛﺎرﺑﺮدي"‪.‬‬

‫•‬

‫ﻃﺮاﺣﻲ واﺳﻄﻪﻫﺎي ﻛﺎرﺑﺮدي‪.‬‬

‫•‬

‫اﻳﺠﺎد ﻧﻤﻮﻧﻪ ﻧﺨﺴﺖ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ و ﺑﺎرﮔﺬاري ﭘﺎﻳﮕﺎه ﺑﺎ دادهﻫﺎي ﺗﺴﺘﻲ‪.‬‬

‫ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده‬ ‫•‬

‫‪83‬‬

‫ﻧﻮﺷﺘﻦ ﺑﺮﻧﺎﻣﻪﻫﺎي ﻻزم ﺑﺮاي ﻛﻨﺘﺮل ﭘﺎﻳﮕﺎهدادهﻫﺎ ﺑﻮﻳﮋه اﻋﻤﺎل ﻣﺤﺪودﻳﺘﻬﺎي‬ ‫ﺟﺎﻣﻌﻴﺘﻲ‪.‬‬

‫•‬

‫ﻧﻮﺷﺘﻦ ﺑﺮﻧﺎﻣﻪﻫﺎي ﻻزم ﺑﺮاي ﺑﻬﺮه ﺑﺮداري از ﭘﺎﻳﮕﺎهدادهﻫﺎ‪.‬‬

‫•‬

‫اﻳﺠﺎد ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ واﻗﻌﻲ )و ﻣﻨﻄﺒﻖ ﺑﺎ ﻧﻴﺎزﻫﺎي ﻛﺎرﺑﺮان(‪.‬‬

‫•‬

‫ﻧﻈﺎرت ﺑﺮ وارد ﻛﺮدن دادهﻫﺎ )در ﺣﺠﻢ ﻣﺤﺪود(‪.‬‬

‫•‬

‫اﻧﺘﺨﺎب اﺳﺘﺮاﺗﮋيﻫﺎي ﺗﺴﺖ ﻣﻨﺎﺳﺐ و ﺗﺴﺖ ﻛﺮدن " ﺳﻴﺴﺘﻢ" ﺑﺎ دادهﻫﺎي ﺗﺴﺘﻲ‬ ‫و ﻧﻴﺰ ﺑﺎ دادهﻫﺎي واﻗﻌﻲ در ﺣﺠﻢ ﻣﺤﺪود )اﻧﺠﺎم دو ﻣﺮﺣﻠﻪ ﺗﺴﺖ(‪.‬‬

‫•‬

‫ﻧﻈﺎرت ﺑﺮ وارد ﻛﺮدن دادهﻫﺎي واﻗﻌﻲ ﺳﺎزﻣﺎن‪.‬‬

‫•‬

‫ﺗﺴﺖ ﻛﺮدن " ﺳﻴﺴﺘﻢ" ﺑﺎ دادهﻫﺎي واﻗﻌﻲ و در ﺣﺠﻢ واﻗﻌﻲ‬

‫•‬

‫ﺗﻨﻈﻴﻢ دﻗﻴﻖ ﻗﺴﻤﺘﻬﺎي ﻣﺨﺘﻠﻒ ﺳﻴﺴﺘﻢ و ﻛﻞ ﺳﻴﺴﺘﻢ ﻳﻜﭙﺎرﭼﻪ‪.‬‬

‫•‬

‫ﺗﻌﻴﻴﻦ ﺿﻮاﺑﻂ دﺳﺘﻴﺎﺑﻲ ﻛﺎرﺑﺮان ﺑﻪ دادهﻫﺎ‪.‬‬

‫•‬

‫ﻧﻈﺎرت در ﺗﻬﻴﻪ ﻣﺴﺘﻨﺪات ﻻزم در ﻫﻤﻪ ﻣﺮاﺣﻞ ﻛﺎر‪.‬‬

‫•‬

‫وﺿﻊ اﺳﺘﺎﻧﺪاردﻫﺎي ﻻزم در ﻫﻤﻪ ﻣﺮاﺣﻞ ﻛﺎر و ﻧﻈﺎرت ﺑﺮ اﻋﻤﺎل آﻧﻬﺎ‪.‬‬

‫•‬

‫ﺗﺼﻤﻴﻢ ﮔﻴﺮي در ﻣﻮرد ﭼﮕﻮﻧﮕﻲ ﺗﺮﻣﻴﻢ ﭘﺎﻳﮕﺎهدادهﻫﺎ و در ﺻﻮرت ﻟﺰوم ﺗﻬﻴﻪ ﻳﺎ‬ ‫ﺗﻮﺳﻌﻪ اﺑﺰارﻫﺎي اﻳﻦ ﻛﺎر و اﻧﺠﺎم ﺗﺮﻣﻴﻢ ﭘﺎﻳﮕﺎه‪.‬‬

‫•‬

‫ﻛﻨﺘﺮل ﻣﺪاوم ﻛﺎراﻳﻲ ‪ DBMS‬و ﺗﻼش در اﻓﺰاﻳﺶ ﻛﺎراﻳﻲ‪.‬‬

‫•‬

‫ﻧﻈﺎرت و ﻛﻨﺘﺮل داﺋﻢ ﺑﺮ ﻋﻤﻠﻴﺎﺗﻲ ﻛﻪ در ﭘﺎﻳﮕﺎهدادهﻫﺎ اﻧﺠﺎم ﻣﻲﺷﻮد‪.‬‬

‫•‬

‫ﻛﻨﺘﺮل ﺟﺎﻣﻌﻴﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ‪.‬‬

‫•‬

‫ﺗﻀﻤﻴﻦ ﻣﺤﺮﻣﺎﻧﮕﻲ دادهﻫﺎ‪.‬‬

‫•‬

‫ﺗﺼﻤﻴﻢ ﮔﻴﺮي در ﻣﻮرد ﭼﻨﺪي و ﭼﮕﻮﻧﮕﻲ رﺷﺪ )ﮔﺴﺘﺮش( ﭘﺎﻳﮕﺎهدادهﻫﺎ‪.‬‬

‫•‬

‫اﺗﺨﺎذ ﺗﺪاﺑﻴﺮ ﻻزم ﺑﺮاياﻳﻤﻨﻲ و ﺣﻔﺎﻇﺖ دادهﻫﺎ و اﻋﻤﺎل اﻳﻦ ﺗﺪاﺑﻴﺮ‪.‬‬

‫•‬

‫ﻣﺪﻳﺮﻳﺖ ﻛﺎرﺑﺮان ﭘﺎﻳﺎﻧﻲ )اﻳﺠﺎد و ﺗﻌﺮﻳﻒ ﻛﺎرﺑﺮان‪ ،‬ﮔﺬر واژهﻫﺎ‪ ،‬اﻣﺘﻴﺎزﻫﺎ و‪.(...‬‬

‫•‬

‫ﺗﻤﺎس داﺋﻢ ﺑﺎ ﻛﺎرﺑﺮان و ﺷﻨﺎﺧﺖ ﻧﻴﺎزﻫﺎي ﺟﺪﻳﺪ آﻧﻬﺎ‪.‬‬

‫•‬

‫ﺗﻮﻟﻴﺪ ﻧﺴﺨﻪﻫﺎي ﭘﺸﺘﻴﺒﺎن ﺑﻄﻮر ﻣﺘﻨﺎوب )ﺑﺎ ﺗﻨﺎوب ﻣﻨﺎﺳﺐ(‪.‬‬

‫•‬

‫ﺗﻌﻴﻴﻦ اﻟﮕﻮﻫﺎي اﺳﺘﻔﺎده از دادهﻫﺎ و ﺑﺴﺎﻣﺪ )ﻓﺮﻛﺎﻧﺲ( اﺳﺘﻔﺎده از دادهﻫﺎ‪.‬‬

‫•‬

‫ﺗﺼﻤﻴﻢ ﮔﻴﺮي در ﻣﻮرد ﭼﮕﻮﻧﮕﻲ ﺳﺎزﻣﺎﻧﺪﻫﻲ ﻣﺠﺪد ﭘﺎﻳﮕﺎهدادهﻫﺎ‪.‬‬

‫‪84‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫اﻧﺠﺎم ﺗﺒﺪﻳﻞ و اﻧﺘﻘﺎل دادهﻫﺎ از" ﺳﻴﺴﺘﻢﻫﺎي ﻣﻮﺟﻮد" ﺑﻪ ﭘﺎﻳﮕﺎهدادهﻫﺎي ﺟﺪﻳﺪ و‬ ‫اﻧﺠﺎم ﺗﺒﺪﻳﻞ ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي ﻣﻮﺟﻮد ﺑﻪ ﮔﻮﻧﻪاي ﻛﻪ ﻗﺎﺑﻞ اﺟﺮا در"ﺳﻴﺴﺘﻢ‬ ‫ﻛﺎرﺑﺮدي" ﺟﺪﻳﺪ ﺑﺎﺷﻨﺪ‪.‬‬

‫•‬

‫ﺗﻼش در ﺟﻬﺖ ارﺗﻘﺎء ﺳﻄﺢ داﻧﺶ و ﻓﻦ اﻋﻀﺎء ﺗﻴﻢ و ﻛﺎرﺑﺮان )ﺑﻮﻳﮋه در زﻣﻴﻨﻪ‬ ‫ﺗﻜﻨﻮﻟﻮژي اﻃﻼﻋﺎت و ﺳﻴﺴﺘﻤﻬﺎي اﻃﻼﻋﺎﺗﻲ(‪.‬‬

‫•‬

‫ﺗﻼش در ﺟﻬﺖ ﺷﻨﺎﺳﺎﻳﻲ اﻣﻜﺎﻧﺎت ﺟﺪﻳﺪ‪ ،‬ﮔﺴﺘﺮش‪ ،‬ارﺗﻘﺎء و ﻛﺎراﺗﺮ ﻛﺮدن‬ ‫ﺳﻴﺴﺘﻢ ﺑﺎ اﺳﺘﻔﺎده از اﻳﻦ اﻣﻜﺎﻧﺎت‪.‬‬

‫•‬

‫ﺗﻬﻴﻪ و ﺗﻨﻈﻴﻢ اﻧﻮاع آﻣﺎرﻫﺎ و ﮔﺰارﺷﺎت ﻛﻨﺘﺮﻟﻲ و ﻣﺪﻳﺮﻳﺘﻲ در ﻣﻮرد ﺳﻴﺴﺘﻢ‬ ‫ﭘﺎﻳﮕﺎهدادهﻫﺎ و ﻛﺎرﺑﺮان‪.‬‬

‫•‬

‫ﺗﻀﻤﻴﻦ اﻧﺠﺎم و اﺗﻤﺎم "ﭘﺮوژه ﭘﺎﻳﮕﺎﻫﻲ" در ﻣﺪت زﻣﺎن ﭘﻴﺶ ﺑﻴﻨﻲ ﺷﺪه و ﺑﺎ‬ ‫ﺗﻮﺟﻪ ﺑﻪ ﻣﺤﺪودﻳﺖ ﺑﻮدﺟﻪ‪.‬‬

‫ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده‬

‫‪85‬‬

‫ﺗﻤﺮﻳﻨﺎت‬ ‫‪ .1‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻣﻄﺎﻟﻌﻪ ﮔﻔﺘﺎر‪ ،‬وﻇﺎﻳﻒ اﺳﺎﺳﻲ ﻳﻚ ‪ DBMS‬را ﻓﻬﺮﺳﺖ ﻛﻨﻴﺪ‪.‬‬ ‫‪ .2‬ﺑﺮاي ﻃﺮاﺣﻲ و ﺗﻮﻟﻴﺪ ﻳﻚ ‪ ،RDBMS‬ﺣﺪاﻗﻞ ﭼﻪ اﺟﺰاﻳﻲ ﻻزم اﺳﺖ ؟‬ ‫‪ .3‬ﻳﻚ ‪ RDBMS‬را اﻧﺘﺨﺎب و ﻛﺎرﻫﺎي ﻻزم ﺑﺮاي ﺑﺮﭘﺎﺳﺎزي آن را اﻧﺠﺎم دﻫﻴﺪ‪.‬‬ ‫‪ .4‬در اﻧﺘﺨﺎب و اﺳﺘﻔﺎده از ﻳﻚ ‪ ،DBMS‬ﭼﻪ ﻫﺰﻳﻨﻪ ﻫﺎي دﻳﮕﺮي را ﺑﺎﻳﺪ در ﻧﻈﺮ‬ ‫داﺷﺖ )ﻏﻴﺮ از ﻫﺰﻳﻨﻪ ﻫﺎي ﺑﺮﺷﻤﺮده در ﮔﻔﺘﺎر( ؟‬ ‫‪ .5‬ﭼﻪ ﺗﻔﺎوت )ﻫﺎﻳﻲ( ﺑﻴﻦ ﻣﺘﺎ داده ﻫﺎ و دﻳﻜﺸﻨﺮي داده ﻫﺎ وﺟﻮد دارد ؟‬ ‫‪ .6‬ﭘﺎراﻣﺘﺮﻫﺎي اﺻﻠﻲ ﺷﻨﺎﺧﺖ ﻳﻚ ‪ DBMS‬را ﻧﺎم ﺑﺒﺮﻳﺪ ؟‬ ‫‪ .7‬ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎه داده را ﺗﻌﺮﻳﻒ ﻛﻨﻴﺪ ؟‬ ‫‪ .8‬ﺗﻴﻢ ‪ DBA‬ﺑﻪ ﭼﻪ ﻣﻌﻨﺎ اﺳﺖ ؟‬ ‫‪ .9‬ﻛﺪاﻣﻴﻚ از وﻇﺎﻳﻒ ‪ ،DBA‬ﻣﺴﺘﻘﻞ از ‪ ،DBMS‬ﻗﺎﺑﻞ اﻧﺠﺎم اﺳﺖ ؟‬ ‫‪ .10‬ﻛﺪاﻣﻴﻚ از ﻣﻮارد ﺑﺮ ﺷﻤﺮده در ﻓﻬﺮﺳﺖ وﻇﺎﻳﻒ ﺗﻴﻢ ‪ ،DBA‬ﻣﺴﺘﻘﻴﻤﺎ ﺑﻪ‬ ‫ﻣﺮﺣﻠﻪ ﭘﻴﺎده ﺳﺎزي ﭘﺎﻳﮕﺎه دادهﻫﺎ ﻣﺮﺑﻮط ﻣﻲ ﺷﻮد ؟‬

‫‪86‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﻓﺼﻞ ‪۵‬‬ ‫ﻣﺪﻝﻫﺎ ﻭ ﺳﺎﺧﺘﺎﺭﻫﺎﻱ ﺩﺍﺩﻩﺍﻱ ﭘﺎﻳﮕﺎﻩﺩﺍﺩﻩﻫﺎ‬ ‫ﻫﺪف ﻛﻠﻲ‬ ‫دراﻳﻦ ﻓﺼﻞ اﺑﺘﺪا ﺑﺎ ﻣﻔﻬﻮم ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ ﻳﻚ ﭘﺎﻳﮕﺎه داده و ﺑﺨﺶ ﻫﺎي ﻣﺨﺘﻠﻒ آن‬ ‫آﺷﻨﺎ ﺧﻮاﻫﻴﻢ ﺷﺪ‪ .‬در اداﻣﻪ ﺳﻪ ﺳﺎﺧﺘﺎر داده اي اﺻﻠﻲ ﭘﺎﻳﮕﺎهﻫﺎي داده ﻛﻪ ﺷﺎﻣﻞ‬ ‫ﺳﺎﺧﺘﺎر داده اي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‪ ،‬ﺷﺒﻜﻪ اي و راﺑﻄﻪ اي ﻣﻲ ﺑﺎﺷﻨﺪ را ﻣﻌﺮﻓﻲ ﻛﺮده و ﻋﻨﺎﺻﺮ‬ ‫اﺻﻠﻲ‪ ،‬ﻋﻤﻠﻴﺎت اﺻﻠﻲ و ﻧﺤﻮه ﻧﻤﺎﻳﺶ ارﺗﺒﺎط ﻣﻮﺟﻮدﻳﺖﻫﺎ و وﻳﮋﮔﻲ ﻫﺎي ﻫﺮ ﻳﻚ از‬ ‫ﺳﺎﺧﺘﺎرﻫﺎي داده اي ﺷﺮح داده ﺧﻮاﻫﻨﺪ ﺷﺪ‪.‬‬

‫ﻫﺪف رﻓﺘﺎري‬ ‫دراﻳﻦ ﻓﺼﻞ ﻋﻨﺎوﻳﻦ زﻳﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ‪:‬‬ ‫•‬

‫ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ‬

‫•‬

‫ﺑﺨﺶ ﺳﺎﺧﺘﺎري ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ‬

‫•‬

‫ﺑﺨﺶ ﻋﻤﻠﻴﺎﺗﻲ ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ‬

‫•‬

‫ﺑﺨﺶ ﺟﺎﻣﻌﻴﺘﻲ ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ‬

‫•‬

‫آﺷﻨﺎﻳﻲ ﺑﺎ ﺳﺎﺧﺘﺎر دادهاي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‬

‫•‬

‫ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﺎري‬

‫•‬

‫ﻃﺮاﺣﻲ ﭘﺎﻳﮕﺎه ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‬

‫•‬

‫ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎه ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‬

‫•‬

‫ﺑﺮﺧﻲ وﻳﮋﮔﻲﻫﺎي ﺳﺎﺧﺘﺎر )و ﻣﺪل( دادهاي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪88‬‬ ‫•‬

‫آﺷﻨﺎﻳﻲ ﺑﺎ ﺳﺎﺧﺘﺎر دادهاي ﺷﺒﻜﻪاي‬

‫•‬

‫ﺗﻌﺮﻳﻒ ﺳﺎﺧﺘﺎر ﺷﺒﻜﻪ‬

‫•‬

‫ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﺎري‬

‫•‬

‫ﻃﺮاﺣﻲ ﭘﺎﻳﮕﺎه ﺷﺒﻜﻪاي‬

‫•‬

‫ﻃﺮز ﻧﻤﺎﻳﺶ ارﺗﺒﺎط "ﻳﻚ ﺑﻪ‬

‫•‬

‫ﻃﺮز ﻧﻤﺎﻳﺶ ارﺗﺒﺎط ﺑﺎزﮔﺸﺘﻲ‬

‫•‬

‫ﻃﺮز ﻧﻤﺎﻳﺶ ارﺗﺒﺎط "ﭼﻨﺪ ﺑﻪ‬

‫•‬

‫ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎه ﺷﺒﻜﻪاي‬

‫•‬

‫ﺑﺮﺧﻲ وﻳﮋﮔﻲﻫﺎي ﺳﺎﺧﺘﺎر )و ﻣﺪل( دادهاي ﺷﺒﻜﻪاي‬

‫‪ -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‬‬

‫ﻣﺪلﻫﺎ و ﺳﺎﺧﺘﺎرﻫﺎي دادهاي ﭘﺎﻳﮕﺎه دادهﻫﺎ ‪89‬‬

‫ﺑﺨﺶ ﺳﺎﺧﺘﺎري‪ ،‬ﺷﺎﻣﻞ ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﺎري ﻣﺪل اﺳﺖ ﻛﻪ ﻫﻤﺎن ﺳﺎﺧﺘﺎر داده اي اﺻﻠﻲ‬ ‫و ﻣﻔﺎﻫﻴﻢ ﻣﺮﺑﻮط ﺑﻪ آن اﺳﺖ‪.‬‬ ‫ﺑﺨﺶ ﻋﻤﻠﻴﺎﺗﻲ‪ ،‬ﻣﺠﻤﻮﻋﻪ اﻣﻜﺎﻧﺎﺗﻲ اﺳﺖ ﻛﻪ ﺑﻪ وﺳﻴﻠﻪ آﻧﻬﺎ ﻋﻤﻠﻴﺎت ﻣﻮرد ﻧﻈﺮ ﻛﺎرﺑﺮ‬ ‫در ﻣﺠﺪوده ﺳﺎﺧﺘﺎر داده اي و ﻣﺒﺘﻨﻲ ﺑﺮ ﻋﻨﺼﺮ ﺳﺎﺧﺘﺎري اﺳﺎﺳﻲ آن اﻧﺠﺎم ﻣﻲ ﺷﻮد‪.‬‬ ‫ﺑﺨﺶ ﺟﺎﻣﻌﻴﺘﻲ‪ ،‬از ﻣﺠﻤﻮﻋﻪاي از ﻗﻮاﻋﺪ )ﻣﺤﺪودﻳﺖﻫﺎي( ﺟﺎﻣﻌﻴﺘﻲ ﺗﺸﻜﻴﻞ ﺷﺪه‬ ‫اﺳﺖ ﻛﻪ ﺑﺎ اﺳﺘﻔﺎده از آﻧﻬﺎ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎ ﻣﻲ ﺗﻮاﻧﺪ ﺻﺤﺖ‪ ،‬دﻗﺖ و‬ ‫ﺳﺎزﮔﺎري داده ﻫﺎ را در ﻫﺮ ﻟﺤﻈﻪ از ﺣﻴﺎت ﭘﺎﻳﮕﺎه داده‪ ،‬ﻛﻨﺘﺮل و ﺗﻀﻤﻴﻦ ﻛﻨﺪ‪.‬‬

‫ﺷﻜﻞ ‪ 1-5‬ﺳﻄﻮح ﻣﺨﺘﻠﻒ ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ‬

‫ﺑﺎ ﺍﻳﻦ ﺗﻮﺻﻴﻒ ﻫﺮ ﺳﺎﺧﺘﺎر دادهاي ﻧﻴﺰ ﻓﻘﻂ ﺑﺨﻀﻲ از ﻳﻚ ﻣﺪل دادهاي اﺳﺖ و‬ ‫ﺣﺪاﻗﻞ ﻳﻚ ﻋﻨﺼﺮ ﺳﺎﺧﺘﺎر اﺳﺎﺳﻲ دارد ﻛﻪ ﺑﻪ ﻛﻤﻚ آن ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻳﺎ ﻧﻮع ارﺗﺒﺎط و ﻳﺎ‬ ‫ﻫﺮ دو ﻧﻤﺎﻳﺶ داده ﻣﻲﺷﻮﻧﺪ‪ .‬در اداﻣﻪ دﻻﻳﻠﻲ ﻛﻪ اﺳﺘﻔﺎده از ﺳﺎﺧﺘﺎر دادهاي را ﺑﻴﺎن ﻣﻲﻛﻨﺪ‬ ‫اراﺋﻪ ﺷﺪه اﺳﺖ‪:‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪90‬‬ ‫•‬

‫ﺳﺎﺧﺘﺎر دادهاي ﺗﺎﻣﻴﻦ ﻛﻨﻨﺪه ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ ﭘﺎﻳﮕﺎهدادهﻫﺎ و ﭼﺎر ﭼﻮب ﻃﺮاﺣﻲ‬ ‫ﻣﻨﻄﻘﻲ ﭘﺎﻳﮕﺎه اﺳﺖ‪.‬‬

‫•‬

‫ﺳﺎﺧﺘﺎر دادهاي ﻣﺒﻨﺎ )و ﭼﺎرﭼﻮب( ﻃﺮاﺣﻲ دﺳﺘﻮرات ﺗﻌﺮﻳﻒ دادهﻫﺎ‪ ،‬دﺳﺘﻮرﻫﺎي‬ ‫ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎهدادهﻫﺎ و دﺳﺘﻮرﻫﺎي ﻛﻨﺘﺮل دادهﻫﺎ اﺳﺖ‪.‬‬

‫•‬

‫ﺳﺎﺧﺘﺎر دادهاي ﻣﺒﻨﺎي ﻃﺮاﺣﻲ ‪DBMS‬ﻫﺎﺳﺖ‪ ،‬ﻳﻌﻨﻲ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺳﻪ ﻧﻮع ﻣﺪل‪ ،‬ﺳﻪ‬ ‫رده‬

‫‪DBMS‬‬

‫دارﻳﻢ ﻛﻪ ﻋﺒﺎرﺗﻨﺪ‬

‫از‪HDBMS ،RDBMS:‬‬

‫و‪ ،NDBMS‬ﺑﻪ ﻧﺤﻮي ﻛﻪ‬

‫ﻫﻮﻳﺖ "ﻫﺮ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ" ﻫﻤﺎن ﻣﺪل دادهاي آن اﺳﺖ‪.‬‬ ‫•‬

‫ﺳﺎﺧﺘﺎر دادهاي ﺿﺎﺑﻄﻪاي اﺳﺖ ﺑﺮاي ﻣﻘﺎﻳﺴﻪ ‪DBMS‬ﻫﺎ و ﻧﻴﺰ ارزﻳﺎﺑﻲ آﻧﻬﺎ‪.‬‬

‫•‬

‫ﺳﺎﺧﺘﺎر دادهاي ﻣﺒﻨﺎﻳﻲ اﺳﺖ ﺑﺮاي ﺍﻳﺠﺎﺩ و ﮔﺴﺘﺮش ﺗﻜﻨﻴﻜﻬﺎي ﻃﺮاﺣﻲ‬ ‫ﭘﺎﻳﮕﺎهدادهﻫﺎ‪.‬‬

‫•‬

‫ﺳﺎﺧﺘﺎر دادهاي‪ ،‬ﻣﺒﻨﺎي ﭘﮋوﻫﺶ در داﻧﺶ و ﺗﻜﻨﻮﻟﻮژي ﭘﺎﻳﮕﺎهدادهﻫﺎ اﺳﺖ‪.‬‬

‫ﭘﺎﻳﮕﺎه داده ﻫﺎ در ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ‪ ،‬ﻣﺠﻤﻮﻋﻪ اي اﺳﺖ از ﻧﻤﻮﻧﻪﻫﺎي ﻣﺘﻤﺎﻳﺰ ﻋﻨﺎﺻﺮ‬ ‫ﺳﺎﺧﺘﺎري ﻳﻚ ﺳﺎﺧﺘﺎر دادهاي‪ .‬در ﻣﻔﺎﻫﻴﻢ ﭘﺎﻳﮕﺎه داده‪ ،‬ﻧﻤﻮﻧﻪ ﻫﺎي ﻛﻼﺳﻴﻚ ﺳﺎﺧﺘﺎر‬ ‫داده اي ﻋﺒﺎرﺗﻨﺪ از‪:‬‬ ‫•‬

‫ﺳﺎﺧﺘﺎر دادهاي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‬

‫‪1‬‬

‫‪2‬‬

‫•‬

‫ﺳﺎﺧﺘﺎر دادهاي ﺷﺒﻜﻪ‬

‫•‬

‫ﺳﺎﺧﺘﺎر دادهاي راﺑﻄﻪاي‬

‫‪3‬‬

‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻨﻜﻪ ﺳﺎﺧﺘﺎرﻫﺎي داده اي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ و ﺷﺒﻜﻪاي از رده ﺧﺎرج ﺷﺪه اﻧﺪ‪،‬‬ ‫ﻟﺬا ﺍﻳﻦ دو ﺳﺎﺧﺘﺎر ﺟﻬﺖ آﺷﻨﺎﻳﻲ ﺧﻮاﻧﻨﺪﮔﺎن ﻣﺤﺘﺮم ﺑﺼﻮرت ﻛﻠﻲ ﺗﻮﺿﻴﺢ داده‬ ‫ﺧﻮاﻫﺪ ﺷﺪ‪ .‬ﺳﺎﺧﺘﺎر داده اي راﺑﻄﻪ اي در ﻓﺼﻞﻫﺎي ﺑﻌﺪي ﺑﺼﻮرت ﻛﺎﻣﻞ ﻣﻮرد ﺑﺤﺚ‬ ‫و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﺪ ﮔﺮﻓﺖ‪.‬‬

‫‪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‬‬

‫ﻣﺪلﻫﺎ و ﺳﺎﺧﺘﺎرﻫﺎي دادهاي ﭘﺎﻳﮕﺎه دادهﻫﺎ ‪91‬‬

‫‪ -2‬آﺷﻨﺎﻳﻲ ﺑﺎ ﺳﺎﺧﺘﺎر دادهاي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‬ ‫اﻳﻦ ﺳﺎﺧﺘﺎر ﻗﺪﻳﻤﻲ ﺗﺮﻳﻦ ﺳﺎﺧﺘﺎر داده اي ﺑﺮاي ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ ﭘﺎﻳﮕﺎه داده ﻫﺎ )در ﺳﻄﺢ‬ ‫اﻧﺘﺰاﻋﻲ( اﺳﺖ‪ .‬اﻧﺴﺎن از دﻳﺮﺑﺎز ﺑﺎ ﻣﻔﻬﻮم ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ آﺷﻨﺎ ﺑﻮد و آن را ﺑﺮاي رده‬ ‫ﺑﻨﺪي ﭘﺪﻳﺪهﻫﺎ )در ﻣﻌﻨﺎي ﻋﺎم( در ﺟﻬﺎن واﻗﻊ‪ ،‬اﺳﺘﻔﺎده ﻣﻲﻛﺮد‪ .‬در اواﺳﻂ دﻫﻪ ‪1960‬‬ ‫ﻣﻴﻼدي‪ ،‬وﻗﺘﻲ ﻛﻪ ﻃﺮاﺣﺎن ﺳﻴﺴﺘﻢ ﻫﺎي ﻧﮕﻬﺪاري داده‪ -‬داده ﭘﺮدازي در اﻧﺪﻳﺸﻪ ﻳﺎﻓﺘﻦ‬ ‫ﻧﻮﻋﻲ "رﻛﻮرد ﺳﺎﺧﺘﻤﻨﺪ" ﺑﻮدﻧﺪ )ﺑﻪ ﺟﺎي "رﻛﻮرد ﺧﻄﻲ ﻣﺴﻄﺢ"( ﻫﻤﻴﻦ ﻣﻔﻬﻮم‬ ‫آﺷﻨﺎي "ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ" را ﺑﺮاي ﻧﻤﺎﻳﺶ داده ﻫﺎي ﻣﻮرد ﻧﻈﺮﺷﺎن‪ ،‬ﻣﻨﺎﺳﺐ ﻳﺎﻓﺘﻨﺪ‪.‬‬

‫‪ 1-2‬ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﺎري‬ ‫ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ در اﺳﺎس ﻧﻮﻋﻲ درﺧﺖ اﺳﺖ ﻛﻪ ﻣﻔﻬﻮم آﺷﻨﺎﻳﻲ اﺳﺖ‪ .‬در ﺳﺎﺧﺘﺎر‬ ‫داده اي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‪ ،‬دو ﻋﻨﺼﺮ ﺳﺎﺧﺘﺎري اﺳﺎﺳﻲ وﺟﻮد دارد‪:‬‬ ‫•‬

‫ﻧﻮع رﻛﻮرد‬

‫•‬

‫ﻧﻮع ﭘﻴﻮﻧﺪ ﭘﺪر‪-‬ﻓﺮزﻧﺪي‬

‫ﺑﻄﻮرﻳﻜﻪ ﺧﻮاﻫﻴﻢ دﻳﺪ‪ ،‬ﻧﻮع رﻛﻮرد ﺑﺮاي ﻧﻤﺎﻳﺶ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺑﻪ ﻛﺎر ﻣﻲرود‪ .‬ﺑﻴﻦ‬ ‫ﻫﺮ دو ﻧﻮع رﻛﻮرد ﺑﻼﻓﺼﻞ از ﻳﻚ ﻣﺴﻴﺮ ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ‪ ،‬ﭘﻴﻮﻧﺪ ﭘﺪر‪-‬ﻓﺮزﻧﺪي وﺟﻮد‬ ‫دارد و ﺑﺎ ﺍﻳﻦ ﭘﻴﻮﻧﺪ ارﺗﺒﺎط ﺑﻴﻦ دو ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﻧﻤﺎﻳﺶ داده ﻣﻲ ﺷﻮد‪ .‬ﺍﻳﻦ ﻧﻮع‬ ‫ﭘﻴﻮﻧﺪ‪ ،‬ﻃﺒﻖ ﻣﺎﻫﻴﺖ ﻣﻔﻬﻮم ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ‪ ،‬ارﺗﺒﺎط ﻳﻚ ﺑﻪ ﭼﻨﺪ را ﻣﻲ ﺗﻮاﻧﺪ ﻧﻤﺎﻳﺶ دﻫﺪ‪.‬‬ ‫در ﺳﻮي "ﻳﻚ" ارﺗﺒﺎط )‪ ،(1‬ﻧﻮع رﻛﻮرد ﭘﺪر و در ﺳﻮي "ﭼﻨﺪ" )‪ (N‬آن‪ ،‬ﻧﻮع رﻛﻮرد‬ ‫ﻓﺮزﻧﺪ ﻗﺮار دارد‪.‬‬ ‫‪X‬‬

‫‪.....‬‬ ‫‪1: N‬‬ ‫‪Y‬‬

‫‪.....‬‬ ‫ﺷﻜﻞ ‪ 2-5‬ﻣﻔﻬﻮم ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪92‬‬

‫در ﺷﻜﻞ ‪ ،2-5‬رﻛﻮرد ﻧﻮع‬

‫‪Y‬‬

‫ﻓﺮزﻧﺪ و رﻛﻮرد ﻧﻮع ‪ ،X‬ﭘﺪر اﺳﺖ‪ .‬ﻫﺮ ﻧﻮع رﻛﻮرد )از‬

‫ﻫﺮ ﺳﻄﺢ ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ(‪ ،‬ﻣﻲ ﺗﻮاﻧﺪ از ﺻﻔﺮ ﺗﺎ ‪ n‬ﻧﻮع رﻛﻮرد ﻓﺮزﻧﺪ )در ﺳﻄﺢ ﺑﻼﻓﺎﺻﻠﻪ‬ ‫ﭘﺎﺋﻴﻦ ﺗﺮ و در ﻣﺴﻴﺮ ﻫﺎي ﻣﺨﺘﻠﻒ ﻃﺒﻌﺎ( داﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬ﭘﺲ ﻫﺮ ﻧﻮع رﻛﻮرد ﻓﺮزﻧﺪ از ﻳﻚ‬ ‫ﺳﻄﺢ‪ ،‬ﺧﻮد ﻣﻲ ﺗﻮاﻧﺪ ﭘﺪر اﻧﻮاﻋﻲ از رﻛﻮرد ﻫﺎ در ﺳﻄﺢ ﺑﻼﻓﺎﺻﻠﻪ ﭘﺎﺋﻴﻦ ﺗﺮ و در ﭼﻨﺪ‬ ‫ﻣﺴﻴﺮ ﺑﺎﺷﺪ‪ .‬ﺑﺪﻳﻨﺴﺎن‪ ،‬ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ از اﻧﻮاع رﻛﻮردﻫﺎ در ﺳﻄﻮح و ﻣﺴﻴﺮﻫﺎي ﻣﺨﺘﻠﻒ‬ ‫ﺍﻳﺠﺎﺩ ﻣﻲ ﺷﻮد‪.‬‬ ‫•‬

‫رﻳﺸﻪ ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ‪ ،‬رﻛﻮرد ﻧﻮع ﭘﺪر در ﺑﺎﻻﺗﺮﻳﻦ ﺳﻄﺢ اﺳﺖ‪ .‬ﺑﻘﻴﻪ اﻧﻮاع‬ ‫رﻛﻮردﻫﺎ‪ ،‬واﺑﺴﺘﮕﺎن رﻳﺸﻪ در ﺳﻄﻮح ﻣﺨﺘﻠﻒ‪ ،‬ﻫﺴﺘﻨﺪ‪.‬‬

‫•‬

‫رﻳﺸﻪ در ﺣﺎﻟﺖ ﺧﺎص ﻣﻤﻜﻦ اﺳﺖ اﺻﻼً ﻓﺮزﻧﺪ ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ و درﺍﻳﻦ ﺻﻮرت‬ ‫ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ را " ﻓﻘﻂ رﻳﺸﻪ" ﻣﻲﮔﻮﻳﻴﻢ‪.‬‬

‫ﺑﺮاي ﻣﺜﺎل ﻳﻚ ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ﺑﺎ ﺗﻌﺪاد ‪ 9‬ﻧﻮع رﻛﻮرد در ﺷﻜﻞ ‪ 3-5‬ﻧﺸﺎن داده‬ ‫ﺷﺪه اﺳﺖ‪.‬‬

‫ﺷﻜﻞ ‪ 3-5‬ﻧﻤﺎﻳﺶ ارﺗﺒﺎﻃﻲ ﻧﻪ ﻧﻮع رﻛﻮرد در ﺳﺎﺧﺘﺎر ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‬

‫ﻣﺪلﻫﺎ و ﺳﺎﺧﺘﺎرﻫﺎي دادهاي ﭘﺎﻳﮕﺎه دادهﻫﺎ ‪93‬‬

‫ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ ﺗﺮﺗﻴﺐ ﭘﺮ ﺷﺪن زﻳﺮ ﻣﺠﻤﻮﻋﻪﻫﺎ ﺑﺮ اﺳﺎس ﻧﻴﺎز اﻃﻼﻋﺎﺗﻲ ﺑﻮده‬ ‫و ﻫﻴﭻ ﻧﻮع ﻧﻈﻢ ﺧﺎﺻﻲ را ﻧﺪارد‪ .‬ﻫﻤﭽﻨﻴﻦ ﻻزم ﺑﺬﻛﺮ اﺳﺖ ﻛﻪ ﻫﺮ ﻧﻮع رﻛﻮرد ﻓﺮزﻧﺪ‪ ،‬ﺗﻨﻬﺎ‬ ‫ﻳﻚ ﻧﻮع رﻛﻮرد ﭘﺪر دارد‪.‬‬ ‫ﺗﻮﺟﻪ‪ :‬ﻳﻚ ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ‪ ،‬از ﻟﺤﺎظ ﻧﻈﺮي ﻣﻲ ﺗﻮاﻧﺪ ﻫﺮ ﺗﻌﺪاد ﻣﺴﻴﺮ داﺷﺘﻪ ﺑﺎﺷﺪ‬ ‫)ﻋﺮض( و ﻋﻤﻖ ﻫﺮ ﻣﺴﻴﺮ ﻫﻢ ﻣﺤﺪودﻳﺘﻲ ﻧﺪارد‪ .‬اﻣﺎ در ﺳﻴﺴﺘﻢ ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ﻋﺮض‬ ‫و ﻋﻤﻖ ﻳﻚ ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ﻣﻌﻤﻮﻻً ﻳﻚ ﺳﻘﻒ ﺣﺪاﻛﺜﺮ )ﻣﺜﻼ ‪ 16‬ﺳﻄﺢ( دارد‪.‬‬

‫‪ 2-2‬ﻃﺮاﺣﻲ ﭘﺎﻳﮕﺎه ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‬ ‫در ﺳﻄﺢ اﻧﺘﺰاﻋﻲ )از دﻳﺪ ﻛﺎرﺑﺮ( ﭘﺎﻳﮕﺎه داده ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‪ ،‬ﻣﺠﻤﻮﻋﻪ اي اﺳﺖ ﻣﻨﻄﻘﺎً‬ ‫"ﻣﻨﻈﻢ" از ﻧﻤﻮﻧﻪ ﻫﺎي ﻣﺘﻤﺎﻳﺰ ﻳﻚ ﻳﺎ ﺑﻴﺶ از ﻳﻚ ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ‪) .‬روﺷﻦ اﺳﺖ ﻛﻪ‬ ‫در ﺳﻄﺢ ﻓﻴﺰﻳﻜﻲ‪ ،‬ﻧﻬﺎﻳﺘﺎ ﻣﺠﻤﻮﻋﻪ اي اﺳﺖ از ﻓﺎﻳﻠﻬﺎي ذﺧﻴﺮه ﺷﺪه ﺑﻬﻢ ﻣﺮﺗﺒﻂ ﺑﺮ‬ ‫اﺳﺎس ﻫﻤﺎن ﭘﻴﻮﻧﺪﻫﺎي ﻣﻨﻄﻘﻲ و ﺑﺎ ﺳﺎﺧﺘﺎر ﻣﺸﺨﺺ(‪.‬‬ ‫ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ در ﻫﺮ ﻧﻤﻮﻧﻪ ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ‪ ،‬ﻳﻚ ﻧﻤﻮﻧﻪ ﻣﺘﻤﺎﻳﺰ از رﻳﺸﻪ دارﻳﻢ‬ ‫)ﻋﺎﻣﻞ ﺗﻤﺎﻳﺰ‪ ،‬ﻛﻠﻴﺪ رﻳﺸﻪ اﺳﺖ(‪ .‬ﻫﺮ ﻧﻤﻮﻧﻪ از ﻳﻚ رﻛﻮرد از ﻳﻚ ﺳﻄﺢ ﻣﻲﺗﻮاﻧﺪ از ﺻﻔﺮ ﺗﺎ‬ ‫‪n‬‬

‫ﻧﻤﻮﻧﻪ از ﻫﺮ ﻧﻮع رﻛﻮرد ﻓﺮزﻧﺪ ﺑﻼﻓﺼﻞ‪ ،‬داﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬ﻧﻤﻮﻧﻪﻫﺎي ﻫﺮ ﻧﻮع رﻛﻮرد ﻓﺮزﻧﺪ‬

‫ذﻳﻞ ﻳﻚ ﻧﻤﻮﻧﻪ ﭘﺪر ﻣﺸﺨﺺ ﻫﻢ از ﻳﻜﺪﻳﮕﺮ ﻣﺘﻤﺎﻳﺰﻧﺪ‪ .‬ﻋﺎﻣﻞ ﺗﻤﺎﻳﺰ‪ ،‬ﻫﻤﺎن ﻛﻠﻴﺪ رﻛﻮرد‬ ‫ﻓﺮزﻧﺪ اﺳﺖ‪ .‬ﺑﻪ ﻋﻨﻮان اوﻟﻴﻦ ﻣﺜﺎل‪ ،‬ﻧﻤﻮدار ‪ ER‬ﺷﻜﻞ ‪ 4-5‬را در ﻧﻈﺮ ﻣﻲﮔﻴﺮﻳﻢ‪.‬ﺍﻳﻦ ﻧﻤﻮدار‬ ‫ﻧﻮع ارﺗﺒﺎط ﺑﻴﻦ ﻣﻮﺟﻮدﻳﺖﻫﺎ داﻧﺸﺠﻮ‪ ،‬و ﮔﺮوه آﻣﻮزﺷﻲ را ﻧﺸﺎن ﻣﻲدﻫﺪ‪:‬‬

‫ﺷﻜﻞ ‪ 4-5‬ﻧﻤﻮدار ‪ ER‬ﻣﺜﺎل ‪1‬‬

‫‪94‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﻓﺮض ﻣﻲﻛﻨﻴﻢ ﻛﻪ ﻳﻚ داﻧﺸﺠﻮ ﻓﻘﻂ در ﻳﻚ ﮔﺮوه آﻣﻮزﺷﻲ ﺗﺤﺼﻴﻞ ﻣﻲﻛﻨﺪ‬ ‫)واﺑﺴﺘﻪ ﺑﻪ ﻳﻚ ﮔﺮوه آﻣﻮزﺷﻲ اﺳﺖ(‪ .‬ﭼﻨﺪي ارﺗﺒﺎط "ﺗﺤﺼﻴﻞ ﻛﺮدن " درﺍﻳﻦ ﻣﺜﺎل‪ ،‬ﻳﻚ‬ ‫ﺑﻪ ﭼﻨﺪ اﺳﺖ‪ ،‬ﺑﻨﺎﺑﺮاﻳﻦ ﻳﻚ ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ﺑﻪ ﺻﻮرت ﺷﻜﻞ ‪ 5-5‬ﻃﺮاﺣﻲ ﻣﻲﻛﻨﻴﻢ‪:‬‬ ‫‪DEPT‬‬ ‫‪DID‬‬

‫‪.....‬‬

‫‪STUDENT‬‬ ‫‪YEAR‬‬

‫‪TERM‬‬

‫‪STID‬‬

‫‪.....‬‬

‫ﺷﻜﻞ ‪ 5-5‬ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ‬

‫در ﺍﻳﻦ ﻃﺮح ﺳﺎده‪ ،‬رﻛﻮرد ﻧﻮع‬

‫‪DEPT‬‬

‫ﻧﻮع ‪DEST‬‬

‫رﻳﺸﻪ‪ -‬ﭘﺪر و رﻛﻮرد ﻧﻮع‬

‫‪STUD‬‬

‫واﺑﺴﺘﻪ‬

‫ﺑﻼﻓﺼﻞ )ﻓﺮزﻧﺪ( اﺳﺖ‪ .‬ﻓﻘﻂ ﻓﻴﻠﺪ ﺻﻔﺖ ﺷﻨﺎﺳﻪ دو ﻧﻮع ﻣﻮﺟﻮدﻳﺖ راﻧﺸﺎن دادهاﻳﻢ‪ .‬ﺻﻔﺖ‬ ‫ارﺗﺒﺎط‪ ،‬ﻓﻴﻠﺪي از ﻧﻮع رﻛﻮرد ﻓﺮزﻧﺪ ﻣﻲﺷﻮد‪ .‬ﭘﺲ ﭘﺎﻳﮕﺎهداده ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ﻣﺠﻤﻮﻋﻪاي‬ ‫اﺳﺖ ﻣﻨﻄﻘﺎً ﻣﻨﻈﻢ از ﻧﻤﻮﻧﻪﻫﺎي ﻣﺘﻤﺎﻳﺰ ﻳﻚ ﻳﺎ ﺑﻴﺶ از ﻳﻚ ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ‪.‬‬ ‫ﻣﺜﺎل ‪ :2‬در ﻣﺜﺎل ﻗﺒﻞ‪ ،‬ﭼﻨﺪي ارﺗﺒﺎط "ﻳﻚ ﺑﻪ ﭼﻨﺪ" اﺳﺖ‪ .‬درﺍﻳﻦ ﻣﺜﺎل‪ ،‬ﻳﻚ ارﺗﺒﺎط ﺑﺎ‬ ‫ﭼﻨﺪي "ﭼﻨﺪ ﺑﻪ ﭼﻨﺪ" را ﻣﻄﺮح ﻣﻲﻛﻨﻴﻢ‪.‬‬ ‫ﻧﻤﻮدار "داﻧﺸﺠﻮ‪ -‬درس" را در ﻧﻈﺮ ﻣﻲﮔﻴﺮﻳﻢ‪ .‬ﻣﻲداﻧﻴﻢ ﻛﻪ ﭼﻨﺪي ارﺗﺒﺎط‬ ‫"اﻧﺘﺨﺎب"‪ ،‬ﭼﻨﺪ ﺑﻪ ﭼﻨﺪ اﺳﺖ‪ .‬اﮔﺮ ارﺗﺒﺎط ﭼﻨﺪ ﺑﻪ ﭼﻨﺪ را ارﺗﺒﺎط ﻳﻚ ﺑﻪ ﭼﻨﺪ دو ﺳﻮﻳﻪ‬ ‫ﺑﺪاﻧﻴﻢ ﺑﺮاي ﻧﻤﺎﻳﺶﺍﻳﻦ ارﺗﺒﺎط ﺑﺎ ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﺎر دادهاي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‪ ،‬ﻣﻨﻄﻘﺎً ﺑﻪ دو ﻧﻮع‬ ‫ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ﻧﻴﺎز دارﻳﻢ‪ .‬دو روش ﺑﺮاي ﻃﺮاﺣﻲ وﺟﻮد دارد‪:‬‬ ‫روش‪ :1‬ﻃﺮاﺣﻲ دو ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ﺟﺪاﮔﺎﻧﻪ‬ ‫در ﺍﻳﻦ ﻃﺮاﺣﻲ‪ ،‬ﻳﻚ ﻧﻤﻮﻧﻪ رﻛﻮرد ﻓﺮزﻧﺪ‪ ،‬ﻣﻲ ﺗﻮاﻧﺪ ﺗﻜﺮار ﺷﻮد‪ :‬ﻣﺜﻼ در ﺳﻠﺴﻠﻪ‬ ‫ﻣﺮاﺗﺐ ﻧﻮع ‪ ،STCO‬ﻳﻚ ﻧﻤﻮﻧﻪ رﻛﻮرد ﻧﻮع درس ذﻳﻞ ﻫﺮ ﻧﻤﻮﻧﻪ رﻛﻮرد داﻧﺸﺠﻮ ﻛﻪ آن‬ ‫درس اﻧﺘﺨﺎب ﻛﺮده ﺑﺎﺷﺪ‪ ،‬ﻣﻲ آﻳﺪ‪ .‬ﭼﻨﻴﻦ اﺳﺖ ﺑﺮاي رﻛﻮرد ﻧﻮع‬ ‫ﻣﺮاﺗﺐ ﻧﻮع ‪.COST‬‬

‫‪STUD‬‬

‫در ﺳﻠﺴﻠﻪ‬

‫ﻣﺪلﻫﺎ و ﺳﺎﺧﺘﺎرﻫﺎي دادهاي ﭘﺎﻳﮕﺎه دادهﻫﺎ ‪95‬‬

‫ﺷﻜﻞ ‪ 6-5‬ﻧﻤﺎﻳﺶ دو ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ﺟﺪاﮔﺎﻧﻪ ﺑﺮاي ارﺗﺒﺎط ﭼﻨﺪ ﺑﻪ ﭼﻨﺪ‬

‫ﺍﻳﻦ ﺗﻜﺮار‪ ،‬در واﻗﻊ ﻫﻤﺎن ﭘﺪﻳﺪه ﻧﺎﻣﻄﻠﻮب اﻓﺰوﻧﮕﻲ اﺳﺖ‪.‬ﺍﻳﻦ اﻓﺰوﻧﮕﻲ اﻟﺒﺘﻪ ﻣﺎﻫﻴﺘﺎ‬ ‫ﻣﻨﻄﻘﻲ ﻳﺎ ادراﻛﻲ اﺳﺖ‪ .‬اﻣﺎ اﮔﺮ ﻣﻨﺠﺮ ﺑﻪ ﺑﺮوز اﻓﺰوﻧﮕﻲ در ﻣﺤﻴﻂ ﻓﻴﺰﻳﻜﻲ ذﺧﻴﺮه ﺳﺎزي‬ ‫ﺷﻮد ﻣﻲﺗﻮاﻧﺪ‪:‬‬ ‫•‬

‫ﺳﺒﺐ ﺑﺮوز ﻧﺎﺳﺎزﮔﺎري دادهاي ﺷﻮد )ﺑﻪ ﻳﺎد داﺷﺘﻪ ﺑﺎﺷﻴﻢ ﻛﻪ اﻓﺰوﻧﮕﻲ ﻛﻨﺘﺮل‬ ‫ﻧﺸﺪه و ﻧﺎﺳﺎزﮔﺎري دادهاي ﭘﺸﺖ و روي ﻳﻚ ﺳﻜﻪاﻧﺪ !(‪.‬‬

‫•‬

‫ﺳﺒﺐ ﺑﺮوز ﻓﺰوﻧﻜﺎري )ﺑﻴﺸﻜﺎري(در ﺳﻴﺴﺘﻢ در اﻧﺠﺎم ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎهدادهﻫﺎ‬ ‫ﺷﻮد‪.‬‬

‫ﺗﻮﺟﻪ‪ :‬ﻣﻲ ﺗﻮان ارﺗﺒﺎط ﺑﺎ ﭼﻨﺪي‬ ‫ﻣﺜﻼ ﻓﻘﻂ ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ‬

‫‪M:N‬‬

‫را ﺑﺎ ﻳﻚ ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ﻫﻢ ﻃﺮاﺣﻲ ﻛﺮد‪،‬‬

‫‪STCO‬‬

‫را داﺷﺖ‪ .‬اﻣﺎ ﭼﻮن ﻣﻨﻄﻖ ﻃﺒﻴﻌﻲ در ﺳﻠﺴﻠﻪ‬

‫ﻣﺮاﺗﺐ‪ ،‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻣﺎﻫﻴﺖ ﭘﻴﻮﻧﺪ ﭘﺪر‪ -‬ﻓﺮزﻧﺪي‪ ،‬ورود از رﻳﺸﻪ و ﻃﻲ ﻛﺮدن ﻣﺴﻴﺮ‬ ‫ﻣﻨﺎﺳﺐ ﺑﺮاي رﺳﻴﺪن ﺑﻪ ﻧﻤﻮﻧﻪ ﻓﺮزﻧﺪ ﻣﻮرد ﻧﻈﺮ اﺳﺖ‪ ،‬ﺑﺮاي ﭘﺎﺳﺨﮕﻮﻳﻲ ﺑﻪ ﭘﺮﺳﺸﻲ ﻛﻪ‬ ‫در آن ﻛﻠﻴﺪ ﻧﻤﻮﻧﻪ ﻓﺮزﻧﺪ داده ﺷﺪه ﺑﺎﺷﺪ و ﻧﻤﻮﻧﻪ )ﻫﺎي( ﭘﺪر ﻣﻮرد درﺧﻮاﺳﺖ ﺑﺎﺷﺪ‪،‬‬ ‫دﻳﮕﺮ ﻧﻤﻲ ﺗﻮان ﻣﻨﻄﻘﺎً ﺑﺮ اﺳﺎس روﻳﻪ ﻣﺒﺘﻨﻲ ﺑﺮ ﭘﻴﻮﻧﺪ ﭘﺪر‪ -‬ﻓﺮزﻧﺪي ﻋﻤﻞ ﻛﺮد‪ .‬ﺑﻌﻼوه‬ ‫ﺑﺎ داﺷﺘﻦ ﻓﻘﻂ ﻳﻚ ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ﺑﺮاي ارﺗﺒﺎط‬

‫‪M:N‬‬

‫و )ﻋﺪم وﺟﻮد ﻧﻮع ﺳﻠﺴﻠﻪ‬

‫ﻣﺮاﺗﺐ ﻗﺮﻳﻨﻪ(‪ ،‬ﻣﺸﻜﻼﺗﻲ ﻧﺎﺷﻲ از ﻣﺎﻫﻴﺖ ﭘﻴﻮﻧﺪ ﭘﺪر‪-‬ﻓﺮزﻧﺪي در ﻋﻤﻠﻴﺎت ذﺧﻴﺮه‬ ‫ﺳﺎزي در ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺑﺮوز ﻣﻲ ﻛﻨﺪ )از ﺟﻤﻠﻪ ﻋﺪم اﻣﻜﺎن درج ﻧﻤﻮﻧﻪ ﻓﺮزﻧﺪ ﺑﺪون‬ ‫وﺟﻮد ﻧﻤﻮﻧﻪ ﭘﺪر و ﻳﺎ ﻟﺰوم اﻧﺠﺎم ﺑﻬﻨﮕﺎم ﺳﺎزي ﻣﻨﺘﺸﺮ ﺷﻮﻧﺪه‬

‫(‬

‫‪96‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫روش ‪ :2‬ﻃﺮاﺣﻲ دو ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ﺑﻪ ﻫﻢ ﺑﺴﺘﻪ‪ :‬ﺗﻜﻨﻴﻚ‬

‫‪VPCL‬‬

‫‪1‬‬

‫درﺍﻳﻦ روش‪ ،‬از ﻳﻚ ﻧﻮع رﻛﻮرد ﻣﺠﺎزي )ﺣﺎوي ﻧﺸﺎن ﻧﻤﺎ‪ :‬اﺷﺎره ﮔﺮ و ﺻﻔﺎت‬ ‫ارﺗﺒﺎط( اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد‪ .‬ﺑﻪ اﻳﻦ ﻧﻮع رﻛﻮرد اﺻﻄﻼﺣﺎ "ﻓﺮزﻧﺪ ﻣﺠﺎزي" ﮔﻔﺘﻪ ﻣﻲ ﺷﻮد‪.‬‬ ‫ﻫﺮ ﻧﻤﻮﻧﻪ از ﻓﺮزﻧﺪ ﻣﺠﺎزي ﺑﻪ ﻳﻚ ﻧﻤﻮﻧﻪ " ﭘﺪر ﻣﺠﺎزي " اﺷﺎره ﻣﻲﻛﻨﺪ‪ .‬ﭼﻨﻴﻦ ﭘﻴﻮﻧﺪي‬ ‫را ﭘﻴﻮﻧﺪ ﭘﺪر‪ -‬ﻓﺮزﻧﺪي ﻣﺠﺎزي ﻣﻲ ﻧﺎﻣﻴﻢ‪ .‬در ﺷﻜﻞ ‪ 7-5‬ﺍﻳﻦ روش دﻳﺪه ﻣﻲ ﺷﻮد‪.‬‬ ‫در ﺍﻳﻦ ﻃﺮح ﻧﻮع رﻛﻮرد ‪ ،COPTR‬ﻓﺮزﻧﺪ ﻣﺠﺎزي ﻧﻮع رﻛﻮرد ‪ COURSE‬وﺍﻳﻦ ﻧﻮع‬ ‫رﻛﻮرد‪ ،‬ﭘﺪر ﻣﺠﺎزي ﻧﻮع رﻛﻮرد ‪ COPTR‬اﺳﺖ و ﻧﻮع رﻛﻮرد ‪ ،STPTR‬ﻓﺮزﻧﺪ ﻣﺠﺎزي ﻧﻮع‬ ‫رﻛﻮرد‬

‫‪STUD‬‬

‫و ﺍﻳﻦ ﻧﻮع رﻛﻮرد‪ ،‬ﭘﺪر ﻣﺠﺎزي ﻧﻮع رﻛﻮرد‬

‫‪STPTR‬‬

‫اﺳﺖ‪ .‬اﻃﻼﻋﺎﺗﻲ ﻛﻪ‬

‫ﻫﻢ ﺑﻪ ﭘﺪر و ﻫﻢ ﺑﻪ ﻓﺮزﻧﺪ ﻣﺮﺑﻮط ﻣﻲﺷﻮد )ﺻﻔﺎت ارﺗﺒﺎط(‪ ،‬در ﻧﻮع رﻛﻮرد اﺷﺎره ﮔﺮ‬ ‫ﻣﺠﺎزي ﮔﻨﺠﺎﻧﺪه ﻣﻲﺷﻮد‪ :‬درﺍﻳﻨﺠﺎ ﺻﻔﺎت ‪ YRYR ،TR‬و ‪.GRADE‬‬ ‫در ﺍﻳﻦ ﻃﺮاﺣﻲ‪ ،‬ﻧﻤﻮﻧﻪﻫﺎي دو ﻧﻮع رﻛﻮرد‬

‫‪STUD‬‬

‫و‬

‫‪COURSE‬‬

‫دﻳﮕﺮ ﺗﻜﺮار‬

‫ﻧﻤﻲﺷﻮﻧﺪ‪ .‬ﺍﻳﻦ ﻛﺎﻫﺶ اﻓﺰوﻧﮕﻲ‪ ،‬اﻟﺒﺘﻪ ﺑﻪ ﻗﻴﻤﺖ ﭘﻴﭽﻴﺪهﺗﺮ ﺷﺪن ﻃﺮاﺣﻲ و ﭘﻴﺎده ﺳﺎزي‬ ‫ﭘﺎﻳﮕﺎهدادهﻫﺎ ﺗﻤﺎم ﻣﻲﺷﻮد )ﺑﻪ وﻳﮋه اﮔﺮ ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ﻣﻮرد ﻧﻴﺎز‪ ،‬ﺑﺰرگ ﺑﺎﺷﺪ )در ﻋﺮض‬ ‫و ﻋﻤﻖ((‪ .‬ﺷﺎﻳﺎن ذﻛﺮ اﺳﺖ ﻛﻪ از دﻳﺪﮔﺎه ﻧﻈﺮي‪ ،‬ﺍﻳﻦ ﺗﻜﻨﻴﻚ رﺑﻄﻲ ﺑﻪ ﻣﺎﻫﻴﺖ ﺳﺎﺧﺘﺎر‬ ‫دادهاي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ﻧﺪارد‪ ،‬ﺑﻠﻜﻪ اﻣﻜﺎﻧﻲ اﺳﺖ ﺑﺮاي ﻧﻤﺎﻳﺶ ﺑﻬﻢ ﺑﺴﺘﮕﻲ دو ﻳﺎ ﺑﻴﺶ از‬ ‫دو ﻧﻮع ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ و از آﻧﺠﺎ‪ ،‬اﻣﻜﺎﻧﻲ اﺳﺖ ﺑﺮاي ﻧﻤﺎﻳﺶ ارﺗﺒﺎط ﭼﻨﺪ ﺑﻪ ﭼﻨﺪ‪.‬‬

‫ﺷﻜﻞ ‪ 7-5‬ﭘﻴﻮﻧﺪ ﭘﺪر‪ -‬ﻓﺮزﻧﺪي ﻣﺠﺎزي‬ ‫‪1. V ir t u a l P a r e n t C h i l d Li n k‬‬

‫ﻣﺪلﻫﺎ و ﺳﺎﺧﺘﺎرﻫﺎي دادهاي ﭘﺎﻳﮕﺎه دادهﻫﺎ ‪97‬‬

‫ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﻴﻢ ﻛﻪ‬

‫‪PCL‬‬

‫و‬

‫‪VPCL‬‬

‫از ﻧﻈﺮ ﻣﻔﻬﻮﻣﻲ‪ ،‬ﻳﻜﺴﺎن ﻫﺴﺘﻨﺪ‪ ،‬ﺗﻔﺎوت در‬

‫ﻃﺮز ﭘﻴﺎده ﺳﺎزي آﻧﻬﺎ اﺳﺖ‪ PCL :‬ﺑﺎ اﺳﺘﻔﺎده از ﺗﻮاﻟﻲ ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ﭘﻴﺎده ﺳﺎزي ﻣﻲﺷﻮد و‬ ‫‪ VPCL‬ﺑﺎ اﺳﺘﻔﺎده از ﻧﺸﺎﻧﻪ رو ﻓﻴﺰﻳﻜﻲ ﺣﺎوي آدرس و ﻳﺎ ﻧﺸﺎﻧﻪ رو ﻣﻨﻄﻘﻲ ﺣﺎوي ﻛﻠﻴﺪ‪ ،‬از‬ ‫رﻛﻮرد ﻓﺮزﻧﺪ ﻣﺠﺎزي ﺑﻪ رﻛﻮرد ﭘﺪر ﻣﺠﺎزي‪.‬ﺍﻳﻦ ﺗﻜﻨﻴﻚ ﺳﺒﺐ اﻓﺰاﻳﺶ ﻛﺎراﻳﻲ ﺳﻴﺴﺘﻢ در‬ ‫ﭘﺎﺳﺦ ﮔﻮﻳﻲ ﺑﻪ ﺑﻌﺾ ﭘﺮﺳﺸﻬﺎ ﻣﻲﺷﻮد‪.‬‬ ‫ﻣﺜﺎل ‪ :3‬درﺍﻳﻦ ﻣﺜﺎل‪ ،‬ﻳﻚ ارﺗﺒﺎط ﺳﻪ ﻣﻮﺟﻮدﻳﺘﻲ را در ﻧﻈﺮ ﻣﻲ ﮔﻴﺮﻳﻢ‪ :‬ارﺗﺒﺎط ﺑﻴﻦ اﻧﻮاع‬ ‫ﻣﻮﺟﻮدﻳﺖ ﻫﺎي داﻧﺸﺠﻮ‪ ،‬درس و اﺳﺘﺎد ﻛﻪ در ﺑﺤﺚ ﻣﺪل ﺳﺎزي ﻣﻌﻨﺎﻳﻲ داده ﻫﺎ دﻳﺪﻳﻢ‪.‬‬ ‫ﻧﻤﻮدار ‪ ER‬ﻣﺮﺑﻮﻃﻪ در ﺷﻜﻞ ‪ 8-5‬ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪:‬‬

‫ﺷﻜﻞ ‪ 8-5‬ﻧﻤﻮدار ‪ ER‬ارﺗﺒﺎط ﺑﻴﻦ ﺳﻪ ﻣﻮﺟﻮدﻳﺖ‬

‫ﺑﺮاي ﺗﺒﺪﻳﻞ ﺍﻳﻦ ﻧﻤﻮدار ﺑﻪ ﻃﺮاﺣﻲ ﭘﺎﻳﮕﺎه ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‪ ،‬دو روش ﻣﻤﻜﻦ ﺑﻪ‬ ‫ﺻﻮرت زﻳﺮ ﺧﻮاﻫﻨﺪ ﺑﻮد‪:‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪98‬‬

‫روش اول‪:‬‬

‫روش دوم‪:‬‬

‫ﺷﻜﻞ ‪ 9-5‬روشﻫﺎي ﺑﺮاي ﻧﻤﺎﻳﺶ ارﺗﺒﺎط ﺳﻪ ﻣﻮﺟﻮدﻳﺘﻲ ﺑﺎ ﺳﺎﺧﺘﺎر ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‬

‫‪ 3-2‬ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎه ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‬ ‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﺎري اﺳﺎﺳﻲ ﺳﺎﺧﺘﺎر داده اي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‪ ،‬ﺑﺮﺧﻲ از‬ ‫دﺳﺘﻮرات ﻻزم‪ ،‬ﺑﻄﻮر ﻛﻠﻲ ﭼﻨﻴﻦ اﻧﺪ‪:‬‬ ‫•‬

‫دﺳﺘﻮر ﺑﺎزﻳﺎﺑﻲ ﻳﻚ ﻧﻤﻮﻧﻪ رﻛﻮرد ﻧﻮع رﻳﺸﻪ‪.‬‬

‫•‬

‫دﺳﺘﻮر ﺑﺎزﻳﺎﺑﻲ ﻧﻤﻮﻧﻪ رﻳﺸﻪ ﺑﻌﺪي‪.‬‬

‫•‬

‫دﺳﺘﻮر ﺑﺎزﻳﺎﺑﻲ ﻳﻚ ﻧﻤﻮﻧﻪ ﻓﺮزﻧﺪ از ﻳﻚ ﻧﻤﻮﻧﻪ ﭘﺪر )ﺑﻼﻓﺼﻞ ﻳﺎ از ﻧﻤﻮﻧﻪ ﭘﺪران ﺗﺎ‬ ‫رﻳﺸﻪ(‪.‬‬

‫ﻣﺪلﻫﺎ و ﺳﺎﺧﺘﺎرﻫﺎي دادهاي ﭘﺎﻳﮕﺎه دادهﻫﺎ ‪99‬‬ ‫•‬

‫دﺳﺘﻮر ﺑﺎزﻳﺎﺑﻲ ﻧﻤﻮﻧﻪ ﻓﺮزﻧﺪ ﺑﻌﺪي از ﻳﻚ ﻧﻤﻮﻧﻪ ﭘﺪر‪.‬‬

‫•‬

‫دﺳﺘﻮر درج ﻳﻚ ﻧﻤﻮﻧﻪ ﻓﺮزﻧﺪ زﻳﺮ ﻳﻚ ﻧﻤﻮﻧﻪ ﭘﺪر )ﻣﺸﺨﺼﺎت ﻣﺴﻴﺮ‪ ،‬در‬ ‫ﺻﻮرت ﻧﻴﺎز ﺑﺎﻳﺪ داده ﺷﻮد(‪.‬‬

‫•‬

‫دﺳﺘﻮر ﺣﺬف ﻳﻚ )ﻳﺎ ﭼﻨﺪ( ﻧﻤﻮﻧﻪ ﻓﺮزﻧﺪ از ﻳﻚ ﻧﻤﻮﻧﻪ ﭘﺪر)ﻣﺸﺨﺼﺎت ﻣﺴﻴﺮ‪ ،‬در‬ ‫ﺻﻮرت ﻧﻴﺎز ﺑﺎﻳﺪ داده ﺷﻮد(‪.‬‬

‫•‬

‫دﺳﺘﻮر ﺑﻬﻨﮕﺎم ﺳﺎزي ﻳﻚ )ﻳﺎ ﭼﻨﺪ( ﻧﻤﻮﻧﻪ ﻓﺮزﻧﺪ از ﻳﻚ ﻧﻤﻮﻧﻪ ﭘﺪر )ﻣﺸﺨﺼﺎت‬ ‫ﻣﺴﻴﺮ‪ ،‬در ﺻﻮرت ﻧﻴﺎز ﺑﺎﻳﺪ داده ﺷﻮد(‪.‬‬

‫‪ 4-2‬ﺑﺮﺧﻲ وﻳﮋﮔﻲﻫﺎي ﺳﺎﺧﺘﺎر )و ﻣﺪل( دادهاي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‬ ‫در اداﻣﻪ ﺑﺮﺧﻲ وﻳﮋﮔﻲ ﻫﺎي ﺳﺎﺧﺘﺎر داده اي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ﺑﻪ اﺧﺘﺼﺎر ﺑﻴﺎن ﺷﺪه اﺳﺖ‪:‬‬ ‫•‬

‫ﻣﺒﻨﺎي رﻳﺎﺿﻲ ﻧﺪارد )ﺣﺪاﻗﻞ در ﺳﻴﺴﺘﻢ ﻣﻮﺟﻮد( و ازﺍﻳﻦ رو ﻣﻴﺰان اﻧﺘﺰاع آن‬ ‫ﺑﻪاﻧﺪازه اﻧﺘﺰاع ﺳﺎﺧﺘﺎر ﺟﺪوﻟﻲ ﻧﻴﺴﺖ )اﻟﺒﺘﻪ ﮔﺮاف ﻳﻚ ﺳﻮﻳﻪ‪ ،‬ﺑﻲﮔﺴﺴﺖ و‬ ‫ﻧﺎﺑﺎزﮔﺸﺘﻲ ﻣﻲﺗﻮاﻧﺪ ﻣﺒﻨﺎي رﻳﺎﺿﻲ ﻣﻨﺎﺳﺒﻲ ﺑﺮاي ﺍﻳﻦ ﺳﺎﺧﺘﺎر دادهاي ﺑﺎﺷﺪ(‪.‬‬

‫•‬

‫دو ﻋﻨﺼﺮ ﺳﺎﺧﺘﺎري اﺳﺎﺳﻲ دارد )و ﻧﻪ ﻳﻜﻲ(‪.‬‬

‫•‬

‫ﺑﺮاي ﻧﻤﺎﻳﺶ ارﺗﺒﺎط ﻳﻚ ﺑﻪ ﭼﻨﺪ ﻣﻨﺎﺳﺐ اﺳﺖ )ﻣﺤﺪودﻳﺖ ﺳﺎﺧﺘﺎر(‪.‬‬

‫•‬

‫در ﻋﻤﻠﻴﺎت ذﺧﻴﺮه ﺳﺎزي ﻣﺸﻜﻼﺗﻲ دارد‪.‬‬

‫•‬

‫در ﻧﻤﺎﻳﺶ ارﺗﺒﺎط "ﭼﻨﺪ ﺑﻪ ﭼﻨﺪ" دﺷﻮاري دارد و ﻧﻴﺰ در ﻧﻤﺎﻳﺶ ارﺗﺒﺎط ﺳﻪ ﮔﺎﻧﻲ‬ ‫ﻳﺎ ﺑﺎ درﺟﻪ ﺑﻴﺸﺘﺮ و ﻫﻤﭽﻨﻴﻦ وﻗﺘﻲ ﻛﻪ دو ﻳﺎ ﺑﻴﺶ از دو ارﺗﺒﺎط ﺑﺎ ﭼﻨﺪي‬ ‫داﺷﺘﻪ ﺑﺎﺷﻴﻢ ﻛﻪ در آﻧﻬﺎ‪ ،‬در ﻃﺮف‬

‫‪N‬‬

‫‪1 :N‬‬

‫ارﺗﺒﺎط‪ ،‬ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ واﺣﺪ وﺟﻮد‬

‫داﺷﺘﻪ ﺑﺎﺷﺪ‪ ،‬ﺑﻪ ﺻﻮرت ﺷﻜﻞ زﻳﺮ‪.‬‬ ‫ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ درﺍﻳﻦﺟﺎ دو ﻧﻮع ﻣﻮﺟﻮدﻳﺖ‬

‫‪ E1‬و‪E2‬‬

‫ﻣﻤﻜﻦ اﺳﺖ ﻳﻜﺴﺎن ﻫﻢ‬

‫ﺑﺎﺷﻨﺪ‪ ،‬ﺑﻪ ﺑﻴﺎن دﻳﮕﺮ دو ﻳﺎ ﺑﻴﺶ از دو ﻧﻮع ارﺗﺒﺎط ﺑﻴﻦ دو ﻧﻮع ﻣﻮﺟﻮدﻳﺖ وﺟﻮد داﺷﺘﻪ‬ ‫ﺑﺎﺷﺪ(‪.‬‬

‫‪ 100‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﺷﻜﻞ ‪ 10-5‬ﻧﻤﻮدار ﺗﻮع ارﺗﺒﺎط ‪ 1‬ﺑﻪ ﭼﻨﺪ‬

‫‪ -3‬آﺷﻨﺎﻳﻲ ﺑﺎ ﺳﺎﺧﺘﺎر دادهاي ﺷﺒﻜﻪاي‬ ‫اﻳﻦ ﺳﺎﺧﺘﺎر )ﻛﻪ ﮔﺎه ﺑﻪ آن ﺳﺎﺧﺘﺎر ﭘﻠﻜﺲ ﻫﻢ ﻣﻲ ﮔﻮﻳﻨﺪ(‪ ،‬ﻧﺨﺴﺘﻴﻦ ﺑﺎر در ﺳﺎل ‪1966‬‬ ‫ﺗﻮﺳﻂ ﻳﻚ ﮔﺮوه ﻛﺎري ﺑﻪ ﻧﺎم‬

‫‪DBTG‬‬

‫واﺑﺴﺘﻪ ﺑﻪ‬

‫‪ANSI‬‬

‫ﭘﻴﺸﻨﻬﺎد ﺷﺪه اﺳﺖ‪ .‬در ﺳﺎل‬

‫‪ 1971‬اوﻟﻴﻦ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎي ﺷﺒﻜﻪ اي )‪ (NDBMS‬ﻣﻮرد ﺗﺎﺋﻴﺪ ‪،ANSI‬‬ ‫ﺑﻪ ﻧﺎم‬

‫‪IDMS‬‬

‫ﺗﻮﺳﻂ ﻫﻤﺎن ﮔﺮوه ﻛﺎري ﻃﺮاﺣﻲ ﺷﺪ‪.‬ﺍﻳﻦ ﺳﻴﺴﺘﻢ ﮔﺎه ﺑﻪ ﺳﻴﺴﺘﻢ‬

‫ﻛﻮداﺳﻴﻞ و ﻣﺪل داده اي ﺷﺒﻜﻪ اي ﺑﻪ ﻣﺪل داده اي ﻛﻮداﺳﻴﻞ ﻧﻴﺰ ﻣﻮﺳﻮم اﺳﺖ‪.‬‬ ‫ﺳﻴﺴﺘﻢ ﻫﺎي ﺷﺒﻜﻪ اي دﻳﮕﺮ ﻋﺒﺎرﺗﻨﺪ از‪:‬‬ ‫•‬

‫‪VAX- DBMS‬‬

‫•‬ ‫•‬

‫‪IMAGE‬‬ ‫‪.1100-DMS‬‬

‫‪ 1-3‬ﺗﻌﺮﻳﻒ ﺳﺎﺧﺘﺎر ﺷﺒﻜﻪ‬ ‫ﺷﺒﻜﻪ ﻧﻮﻋﻲ ﮔﺮاف ﺟﻬﺖ دار اﺳﺖ ﻛﻪ در آن ﮔﺮه ﻫﺎ ﺑﻪ ﻛﻤﻚ ﻳﺎل ﻫﺎﻳﻲ ﺑﻬﻢ ﺑﺴﺘﻪ اﻧﺪ‪.‬‬ ‫در ﺷﻜﻞ ‪ 10-5‬ﻳﻚ ﺷﺒﻜﻪ ﺑﺎ ﻫﺸﺖ ﮔﺮه دﻳﺪه ﻣﻲ ﺷﻮد‪.‬ﺍﻳﻦ ﺳﺎﺧﺘﺎر را ﻣﻲ ﺗﻮان‬ ‫ﮔﺴﺘﺮش ﻳﺎﻓﺘﻪ ﺳﺎﺧﺘﺎر ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ داﻧﺴﺖ ﺑﻬﺎﻳﻦ ﻣﻌﻨﺎ ﻛﻪ در آن ﻫﺮ ﻧﻮع ﮔﺮه ﻓﺮزﻧﺪ‬ ‫ﻣﻲ ﺗﻮاﻧﺪ ﺑﻴﺶ از ﻳﻚ ﻧﻮع ﮔﺮه ﭘﺪر داﺷﺘﻪ ﺑﺎﺷﺪ و ﺑﻨﺎﺑﺮﻳﻦ ازﺍﻳﻦ ﻧﻈﺮ‪ ،‬ﻣﺤﺪودﻳﺖ ﻋﺪم‬ ‫ﺗﻘﺎرن ﺳﺎﺧﺘﺎر ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ را ﻧﺪارد‪.‬‬

‫ﻣﺪلﻫﺎ و ﺳﺎﺧﺘﺎرﻫﺎي دادهاي ﭘﺎﻳﮕﺎه دادهﻫﺎ ‪101‬‬

‫ﺷﻜﻞ ‪ 11-5‬ﻧﻤﺎﻳﺶ ﻛﻠﻲ ﺳﺎﺧﺘﺎر ﺷﺒﻜﻪ‬

‫‪ 2-3‬ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﺎري‬ ‫در ﺳﺎﺧﺘﺎر داده اي ﺷﺒﻜﻪ اي دو ﻋﻨﺼﺮ ﺳﺎﺧﺘﺎري اﺳﺎﺳﻲ وﺟﻮد دارد‪:‬‬ ‫•‬

‫ﻧﻮع رﻛﻮرد‬

‫•‬

‫ﻧﻮع ﻣﺠﻤﻮﻋﻪ‬

‫ﻧﻮع رﻛﻮرد‪ :‬ﺑﺮاي ﻧﻤﺎﻳﺶ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺑﻪ ﻛﺎر ﻣﻲرود )ﻣﺜﻞ ﺳﺎﺧﺘﺎر ﺳﻠﺴﻠﻪ‬ ‫ﻣﺮاﺗﺒﻲ(‪ .‬در ﻳﻚ ﻧﻮع رﻛﻮرد ﻃﺒﻌﺎ ﺻﻔﺎﺗﻲ وﺟﻮد دارد ﻛﻪ ﻣﻲﺗﻮاﻧﻨﺪ ﺳﺎده ﺗﻜﺮار ﺷﻮﻧﺪه‬ ‫)ﺑﺮدار در اﺻﻄﻼح ﺷﺒﻜﻪ اي( ﻳﺎ ﻣﺮﻛﺐ ﺗﻜﺮار ﺷﻮﻧﺪه )ﮔﺮوه ﺗﻜﺮار ﺷﻮﻧﺪه در اﺻﻄﻼح‬ ‫ﺷﺒﻜﻪ اي( ﻫﻢ ﺑﺎﺷﻨﺪ‪.‬‬ ‫ﻧﻮع ﻣﺠﻤﻮﻋﻪ‪ :‬در اﺳﺎس ﺑﺮاي ﻧﻤﺎﻳﺶ ارﺗﺒﺎط ‪ 1:N‬ﺑﻴﻦ دو )ﭼﻨﺪ( ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺑﻜﺎر‬ ‫ﻣﻲ رود‪ .‬ﻧﻮع ﻣﺠﻤﻮﻋﻪ )ﻛﻪ ﺑﻪ آن ﻣﺠﻤﻮﻋﻪ ﻛﻮداﺳﻴﻞ ﻫﻢ ﻣﻲ ﮔﻮﻳﻨﺪ(‪ ،‬از ﺳﻪ ﺟﺰء‬ ‫ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ‪:‬‬ ‫•‬

‫ﻧﺎم ﻣﺠﻤﻮﻋﻪ‬

‫•‬

‫ﻳﻚ ﻧﻮع رﻛﻮرد ﻣﺎﻟﻚ‬

‫•‬

‫ﻳﻚ ﻧﻮع رﻛﻮرد ﻋﻀﻮ‬

‫ﻫﺮ ﭼﻨﺪ ﺍﻳﻦ ﻋﻨﺼﺮ ﺳﺎﺧﺘﺎري در اﺳﺎس ﺑﺮاي ﻧﻤﺎﻳﺶ ارﺗﺒﺎط "ﻳﻚ ﺑﻪ ﭼﻨﺪ" ﺑﻴﻦ دو ﻳﺎ‬ ‫ﺑﻴﺶ از دو ﻧﻮع ﻣﻮﺟﻮدﻳﺖ ﺑﻜﺎر ﻣﻲ رود‪ ،‬اﻣﺎ ﻣﻲ ﺗﻮان ارﺗﺒﺎط "ﭼﻨﺪ ﺑﻪ ﭼﻨﺪ" را ﻫﻢ ﺑﺎ‬ ‫آن ﻧﻤﺎﻳﺶ داد‪ .‬در ﺍﻳﻨﺠﺎ ﻻزم اﺳﺖ ﺑﻪ ﻧﻜﺎت زﻳﺮ ﺗﻮﺟﻪ ﮔﺮدد‪:‬‬

‫‪ 102‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫ﻣﺎﻟﻚ ﻳﻚ ﻧﻮع ﻣﺠﻤﻮﻋﻪ‪ ،‬ﻣﻲﺗﻮاﻧﺪ ﻣﺎﻟﻚ در ﻧﻮع ﻣﺠﻤﻮﻋﻪ دﻳﮕﺮ ﺑﺎﺷﺪ‪.‬‬

‫•‬

‫ﻣﺎﻟﻚ ﻳﻚ ﻧﻮع ﻣﺠﻤﻮﻋﻪ ﻣﻲﺗﻮاﻧﺪ ﻋﻀﻮ در ﻧﻮع ﻣﺠﻤﻮﻋﻪ دﻳﮕﺮ ﺑﺎﺷﺪ‪.‬‬

‫•‬

‫ﻋﻀﻮ ﻳﻚ ﻧﻮع ﻣﺠﻤﻮﻋﻪ ﻣﻲﺗﻮاﻧﺪ ﻣﺎﻟﻚ در ﻧﻮع ﻣﺠﻤﻮﻋﻪ دﻳﮕﺮ ﺑﺎﺷﺪ‪.‬‬

‫•‬

‫ﻋﻀﻮ ﻳﻚ ﻧﻮع ﻣﺠﻤﻮﻋﻪ ﻣﻲﺗﻮاﻧﺪ ﻋﻀﻮ در ﻧﻮع ﻣﺠﻤﻮﻋﻪ دﻳﮕﺮ ﺑﺎﺷﺪ‪ .‬ﺑﻪ اﻳﻦ‬ ‫ﻋﻀﻮ‪ ،‬ﻋﻀﻮ ﻣﺸﺘﺮك ﻳﺎ ﭘﻴﻮﻧﺪ دﻫﻨﺪه ﻣﻲﮔﻮﺋﻴﻢ و در ﻧﻤﺎﻳﺶ ارﺗﺒﺎط ﺑﺎ ﭼﻨﺪي‬ ‫‪ N:M‬ﺑﻜﺎر ﻣﻲآﻳﺪ‪.‬‬

‫ﻳﻚ ﻧﻮع ﻣﺠﻤﻮﻋﻪ‪ ،‬ﻣﻲ ﺗﻮاﻧﺪ ﻧﻤﻮﻧﻪ ﻫﺎﻳﻲ داﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬در ﻫﺮ ﻧﻤﻮﻧﻪ ﻣﺠﻤﻮﻋﻪ‪ ،‬ﻳﻚ ﻧﻤﻮﻧﻪ‬ ‫ﻣﺸﺨﺺ و ﻣﺘﻤﺎﻳﺰ از رﻛﻮرد ﻧﻮع ﻣﺎﻟﻚ و‬

‫‪n≥ 0‬‬

‫ﻧﻤﻮﻧﻪ ﻣﺘﻤﺎﻳﺰ از رﻛﻮرد ﻧﻮع ﻋﻀﻮ‬

‫وﺟﻮد دارد‪ .‬ﭘﺎﻳﮕﺎه داده ﻫﺎي ﺷﺒﻜﻪ اي در ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ )از دﻳﺪ ﻛﺎرﺑﺮ( ﻣﺠﻤﻮﻋﻪ اي‬ ‫اﺳﺖ ﻣﻨﻄﻘﺎً "ﻣﻨﻈﻢ" از ﻧﻤﻮﻧﻪ ﻫﺎي ﻳﻚ )ﻳﺎ ﭼﻨﺪ( ﻧﻮع ﻣﺠﻤﻮﻋﻪ‪.‬‬

‫‪ 3-3‬ﻃﺮاﺣﻲ ﭘﺎﻳﮕﺎه ﺷﺒﻜﻪاي‬ ‫ﭘﺎﻳﮕﺎه داده ﺷﺒﻜﻪ اي روش ﺧﺎص ﺧﻮد ﺟﻬﺖ ﻧﻤﺎﻳﺶ ارﺗﺒﺎط ﺑﻴﻦ ﻣﻮﺟﻮدﻳﺖ ﻫﺎ را دارا‬ ‫اﺳﺖ‪ .‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻫﻤﻴﺖ ارﺗﺒﺎط ﻫﺎي از ﻧﻮع ﻳﻚ ﺑﻪ ﭼﻨﺪ و ﭼﻨﺪ ﺑﻪ ﭼﻨﺪ‪ ،‬ﻧﺤﻮه ﻧﻤﺎﻳﺶ‬ ‫و ﭘﻴﺎده ﺳﺎزي ﺍﻳﻦ دو ﻧﻮع ارﺗﺒﺎط در زﻳﺮ ﺗﻮﺿﻴﺢ داده ﺷﺪه اﻧﺪ‪.‬‬

‫‪ 1-3-3‬ﻃﺮز ﻧﻤﺎﻳﺶ ارﺗﺒﺎط " ﻳﻚ ﺑﻪ‬

‫ﭼﻨﺪ"‬

‫در ﺍﻳﻦ ﻧﻮع ﺣﺎﻟﺖ ﻧﻮع رﻛﻮرد ﺳﻮي " ﻳﻚ " را ﻣﺎﻟﻚ و ﻧﻮع رﻛﻮرد ﺳﻮي " ﭼﻨﺪ " را‬ ‫ﻋﻀﻮ در ﻧﻈﺮ ﻣﻲ ﮔﻴﺮﻳﻢ‪.‬‬

‫ﺷﻜﻞ ‪ 12-5‬ﻧﻮع‬

‫ﻣﺠﻤﻮﻋﻪ ﻛﻮداﺳﻴﻞ‪DEST‬‬

‫ﻣﺪلﻫﺎ و ﺳﺎﺧﺘﺎرﻫﺎي دادهاي ﭘﺎﻳﮕﺎه دادهﻫﺎ ‪103‬‬ ‫‪1‬‬

‫در ﺍﻳﻦ ﻧﻤﻮدار ﻛﻪ ﺑﻪ آن ﻧﻤﻮدار ﺑﺎﺧﻤﻦ ﻫﻢ ﻣﻲ ﮔﻮﻳﻨﺪ‪ ،‬ﻧﻮع رﻛﻮرد ‪ ،DEPT‬ﻣﺎﻟﻚ‪ ،‬و‬ ‫ﻧﻮع رﻛﻮرد ‪ ،STUD‬ﻋﻀﻮ اﺳﺖ‪.‬ﺍﻳﻦ ﻧﻤﻮدار ﻳﻚ ﻧﻮع ﻣﺠﻤﻮﻋﻪ ﻛﻮداﺳﻴﻞ ﺑﻪ ﻧﺎم‬

‫‪DEST‬‬

‫را ﻧﻤﺎﻳﺶ ﻣﻲ دﻫﺪ‪ .‬ﻣﻲ ﺑﻴﻨﻴﻢ ﻛﻪ در ﺣﺎﻟﺖ ارﺗﺒﺎط ﻳﻚ ﺑﻪ ﭼﻨﺪ‪ ،‬ﺻﻔﺖ )ﺻﻔﺎت( ارﺗﺒﺎط‪،‬‬ ‫ﻓﻴﻠﺪ)ﻫﺎﻳﻲ( از ﻧﻮع رﻛﻮرد ﻋﻀﻮ ﻫﺴﺘﻨﺪ‪ .‬در ﺷﻜﻞ ‪ 13-5‬ﻧﻤﻮﻧﻪ اي از ﻧﻮع ﻣﺠﻤﻮﻋﻪ‬ ‫‪ DEST‬دﻳﺪه ﻣﻲ ﺷﻮد‪.‬‬

‫ﺷﻜﻞ ‪ 13-5‬دو ﻧﻤﻮﻧﻪ از ﻧﻮع‬

‫ﻣﺠﻤﻮﻋﻪ ‪DEST‬‬

‫ﻳﻚ ﻧﻮع ﻣﺠﻤﻮﻋﻪ‪ ،‬ﻣﻲﺗﻮاﻧﺪ ﭼﻨﺪ ﻧﻮع رﻛﻮرد ﻋﻀﻮ داﺷﺘﻪ ﺑﺎﺷﺪ ﻛﻪ اﻟﺒﺘﻪ ﻳﻚ ﺣﺎﻟﺖ‬ ‫ﺧﺎص اﺳﺖ و در ﺳﻴﺴﺘﻢﻫﺎي ﺷﺒﻜﻪاي ﻣﻮﺟﻮد ﭘﺬﻳﺮﻓﺘﻪ ﻧﻴﺴﺖ‪ .‬رﻛﻮرد ﻧﻮع ﻣﺎﻟﻚ در ﻳﻚ‬ ‫ﻧﻮع ﻣﺠﻤﻮﻋﻪ ﻣﻲﺗﻮاﻧﺪ ﻣﺎﻟﻚ در ﭼﻨﺪ ﻧﻮع ﻣﺠﻤﻮﻋﻪ ﺑﺎﺷﺪ‪ .‬ﮔﻮﻧﻪ ﺧﺎﺻﻲ از ﻧﻮع ﻣﺠﻤﻮﻋﻪ‬ ‫وﺟﻮد دارد ﻛﻪ رﻛﻮرد ﻧﻮع ﻣﺎﻟﻚ ﻧﺪارد و در واﻗﻊ " ﺳﻴﺴﺘﻢ " ﺧﻮد ﻣﺎﻟﻚ آن اﺳﺖ‪ .‬ﺷﻜﻞ‬ ‫‪ 14-5‬ﻧﻤﻮﻧﻪاي از رﻛﻮرد ﺗﺤﺖ ﻣﺎﻟﻜﻴﺖ ﺳﻴﺴﺘﻢ را ﻧﺸﺎن ﻣﻲدﻫﺪ‪.‬‬

‫ﺷﻜﻞ ‪ 14-5‬ﻧﻮع رﻛﻮرد ﺗﺤﺖ‬

‫ﻣﺎﻟﻜﻴﺖ " ﺳﻴﺴﺘﻢ "‬

‫‪1. B ac h ma n D i a gr a m‬‬

‫‪ 104‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ارﺗﺒﺎط ﺑﺎزﮔﺸﺘﻲ‬ ‫ﻧﻮع ﻣﺠﻤﻮﻋﻪ ﻣﻤﻜﻦ اﺳﺖ ﺑﺎزﮔﺸﺘﻲ ﺑﺎﺷﺪ‪ .‬درﺍﻳﻦ ﮔﻮﻧﻪ ﻧﻮع ﻣﺠﻤﻮﻋﻪ‪ ،‬ﻳﻚ ﻧﻮع رﻛﻮرد‬ ‫ﻫﻢ ﻣﺎﻟﻚ اﺳﺖ و ﻫﻢ ﻋﻀﻮ )اﻳﻦ ﻧﻮع ﻣﺠﻤﻮﻋﻪ ﻏﺎﻟﺒﺎ در ﺳﻴﺴﺘﻤﻬﺎي ﺷﺒﻜﻪ اي ﻣﺠﺎز‬ ‫ﻧﻴﺴﺖ(‪ .‬ﺷﻜﻞ ‪ 15-5‬ارﺗﺒﺎط ﻣﻮﺟﻮدﻳﺖ ‪ E‬ﺑﺎ ﺧﻮدش را ﻧﺸﺎن ﻣﻲ دﻫﺪ‪:‬‬

‫ﺷﻜﻞ ‪ 15-5‬ارﺗﺒﺎط ﻣﻮﺟﻮدﻳﺖ ﺑﺎ ﺧﻮدش‬

‫‪ 2-3-3‬ﻃﺮز ﻧﻤﺎﻳﺶ ارﺗﺒﺎط "ﭼﻨﺪ ﺑﻪ‬

‫ﭼﻨﺪ"‬

‫ﺑﺮاي ﻧﻤﺎﻳﺶ ارﺗﺒﺎز ﭼﻨﺪ ﺑﻪ ﭼﻨﺪ‪ ،‬از ﻳﻚ ﻧﻮع رﻛﻮرد ﭘﻴﻮﻧﺪ دﻫﻨﺪه اﺳﺘﻔﺎده ﻣﻲﻛﻨﻴﻢ ﻛﻪ‬ ‫ﻋﻀﻮ ﻣﺸﺘﺮك ﺑﻴﻦ دو ﻳﺎ ﺑﻴﺶ از دو ﻧﻮع ﻣﺠﻤﻮﻋﻪ اﺳﺖ )ﺗﻌﺪاد ﻧﻮع ﻣﺠﻤﻮﻋﻪﻫﺎ ﻫﻤﺎن‬ ‫ﺗﻌﺪاد ﻧﻮع ﻣﻮﺟﻮدﻳﺘﻬﺎي ﺷﺮﻛﺖ ﻛﻨﻨﺪه در ارﺗﺒﺎط اﺳﺖ‪ .‬ﺑﻪ ﺑﻴﺎن دﻳﮕﺮ ﺑﻪ ﺗﻌﺪاد درﺟﻪ‬ ‫ارﺗﺒﺎط‪ ،‬ﻧﻮع ﻣﺠﻤﻮﻋﻪ ﺑﺎ ﻋﻀﻮ ﻣﺸﺘﺮك دارﻳﻢ(‪.‬ﺍﻳﻦ ﻧﻮع رﻛﻮرد )ﻛﻪ ﻣﻲ ﺗﻮاﻧﺪ ﺑﺪون ﻳﺎ‬ ‫داراي ﻓﻴﻠﺪ )ﻫﺎي( داده اي ﺑﺎﺷﺪ( را ﮔﺎه رﻛﻮرد ﺳﺎﺧﺘﮕﻲ ﻣﻲ ﻧﺎﻣﻴﻢ‪ .‬ﻓﻴﻠﺪ)ﻫﺎي( ﺍﻳﻦ‬ ‫رﻛﻮرد )در ﺳﻄﺢ ﻃﺮاﺣﻲ(‪ ،‬ﻫﻤﺎن ﺻﻔﺖ )ﺻﻔﺎت( ارﺗﺒﺎط ‪ N:M‬اﺳﺖ‪ .‬ﺑﺮاي ﻧﻤﻮﻧﻪ در‬ ‫ﺷﻜﻞ‪ 16-5‬ارﺗﺒﺎط " اﻧﺘﺨﺎب " ﺑﻴﻦ داﻧﺸﺠﻮ و درس ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪ .‬ﺍﻳﻦ ارﺗﺒﺎط‬ ‫ﺑﻪ ﻛﻤﻚ دو ﻧﻮع ﻣﺠﻤﻮﻋﻪ ﻧﻤﺎﻳﺶ داده ﺷﺪه اﺳﺖ ﻛﻪ در آﻧﻬﺎ رﻛﻮرد‬

‫‪TYGR‬‬

‫رﻛﻮرد‬

‫ﭘﻴﻮﻧﺪ دﻫﻨﺪه اﺳﺖ‪.‬‬ ‫ﺣﺎل ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع ﻣﻲﺧﻮاﻫﻴﻢ ﭘﺎﻳﮕﺎهداده ﺷﺒﻜﻪاي را در ﺳﻄﺢ اﻧﺘﺰاﻋﻲ‬ ‫ﺗﻮﺻﻴﻒ ﻛﻨﻴﻢ‪ .‬ﭘﺎﻳﮕﺎهداده ﺷﺒﻜﻪاي ﻣﺠﻤﻮﻋﻪ اﻳﺴﺖ ﻣﻨﻄﻘﺎً ﻣﻨﻈﻢ از ﻧﻤﻮﻧﻪﻫﺎي ﻣﺘﻤﺎﻳﺰ ﻳﻚ ﻳﺎ‬ ‫ﭼﻨﺪ ﻣﺠﻤﻮﻋﻪ ﻛﻮداﺳﻴﻞ‪ .‬در ﺍﻳﻨﺠﺎ ذﻛﺮ ﺍﻳﻦ ﻧﻜﺘﻪ اﻫﻤﻴﺖ دارد ﻛﻪ ﺳﺎﺧﺘﺎر ﭼﻨﺪ ﺣﻠﻘﻪاي‬

‫ﻣﺪلﻫﺎ و ﺳﺎﺧﺘﺎرﻫﺎي دادهاي ﭘﺎﻳﮕﺎه دادهﻫﺎ ‪105‬‬

‫ﺑﻮﻳﮋه ﮔﻮﻧﻪﻫﺎي ﻛﺎﻣﻠﺘﺮش ﻣﻲﺗﻮاﻧﺪ ﺳﺎﺧﺘﺎر ﻣﻨﺎﺳﺒﻲ ﺑﺎﺷﺪ و ﻣﻲﺗﻮان ﺍﻳﻦ ﺳﺎﺧﺘﺎر را ﺑﺎ‬ ‫ﺳﺎﺧﺘﺎر ﺷﺎﺧﺺ و ﻳﺎ ﺳﺎﺧﺘﺎر ﻣﺴﺘﻘﻴﻢ از ﻃﺮﻳﻖ درﻫﻤﺴﺎزي‪ ،‬ﺗﺮﻛﻴﺐ ﻛﺮد‪.‬‬

‫ﺷﻜﻞ ‪ 16-5‬ﻧﻤﺎﻳﺶ ارﺗﺒﺎط " ﭼﻨﺪ ﺑﻪ ﭼﻨﺪ " ﺑﻴﻦ داﻧﺸﺠﻮ و درس‬

‫‪ 4-3‬ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎه ﺷﺒﻜﻪاي‬ ‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﺎري ﺳﺎﺧﺘﺎر داده اي ﺷﺒﻜﻪ اي‪ ،‬ﺑﺮﺧﻲ دﺳﺘﻮرات ﺑﻄﻮر ﻛﻠﻲ‬ ‫ﻋﺒﺎرﺗﻨﺪ از‪:‬‬ ‫•‬

‫دﺳﺘﻮر ﺑﺎزﻳﺎﺑﻲ ﻳﻚ ﻧﻤﻮﻧﻪ از ﻳﻚ ﻧﻮع رﻛﻮرد ﻣﺎﻟﻚ‬

‫•‬

‫دﺳﺘﻮر ﺑﺎزﻳﺎﺑﻲ ﻧﻤﻮﻧﻪ ﺑﻌﺪي از ﻳﻚ ﻧﻮع رﻛﻮرد ﻣﺎﻟﻚ‬

‫•‬

‫دﺳﺘﻮر ﺑﺎزﻳﺎﺑﻲ ﻳﻚ ﻧﻤﻮﻧﻪ از ﻳﻚ ﻧﻮع رﻛﻮرد ﻋﻀﻮ ﺑﺎ داﺷﺘﻦ ﻧﻤﻮﻧﻪ ﻣﺎﻟﻚ )ﻫﺎ(‬

‫•‬

‫دﺳﺘﻮر ﺑﺎزﻳﺎﺑﻲ ﻧﻤﻮﻧﻪ ﺑﻌﺪي از ﻳﻚ ﻧﻮع رﻛﻮرد ﻋﻀﻮ ﺑﺎ داﺷﺘﻦ ﻧﻤﻮﻧﻪ ﻣﺎﻟﻚ )ﻫﺎ(‬

‫•‬

‫دﺳﺘﻮر ﺑﺎزﻳﺎﺑﻲ ﻳﻚ ﻧﻤﻮﻧﻪ ﻣﺎﻟﻚ از ﻳﻚ ﻧﻮع ﻣﺠﻤﻮﻋﻪ ﺑﺎ داﺷﺘﻦ ﻳﻚ ﻧﻤﻮﻧﻪ ﻋﻀﻮ‬ ‫از آن‬

‫•‬

‫دﺳﺘﻮر درج ﻳﻚ ﻧﻤﻮﻧﻪ ﻧﻮع رﻛﻮرد ﻣﺎﻟﻚ ﻳﺎ ﻧﻮع رﻛﻮرد ﻋﻀﻮ‬

‫•‬

‫دﺳﺘﻮر ﺣﺬف ﻳﻚ ﻧﻤﻮﻧﻪ ﻧﻮع رﻛﻮرد ﻣﺎﻟﻚ ﻳﺎ ﻧﻮع رﻛﻮرد ﻋﻀﻮ‬

‫•‬

‫دﺳﺘﻮر ﺑﻬﻨﮕﺎم ﺳﺎزي ﻳﻚ ﻧﻤﻮﻧﻪ ﻧﻮع رﻛﻮرد ﻣﺎﻟﻚ ﻳﺎ ﻧﻮع رﻛﻮرد ﻋﻀﻮ‬

‫‪ 106‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪ 5-3‬ﺑﺮﺧﻲ وﻳﮋﮔﻲﻫﺎي ﺳﺎﺧﺘﺎر )و ﻣﺪل( دادهاي ﺷﺒﻜﻪاي‬ ‫در اداﻣﻪ ﺑﺮﺧﻲ وﻳﮋﮔﻲ ﻫﺎ و ﻣﺤﺪودﻳﺖﻫﺎي ﺳﺎﺧﺘﺎر داده اي ﺷﺒﻜﻪ را ﺷﺮح ﺧﻮاﻫﻴﻢ‬ ‫داد‪:‬‬ ‫•‬

‫ﻣﺒﻨﺎي رﻳﺎﺿﻲ ﻧﺪارد )ﺣﺪاﻗﻞ در ﺳﻴﺴﺘﻢ ﻣﻮﺟﻮد(‪ ،‬ازﺍﻳﻦ رو ﻣﻴﺰان اﻧﺘﺰاع آن در‬ ‫ﺣﺪ ﺳﺎﺧﺘﺎر دادهاي راﺑﻄﻪاي )ﺟﺪوﻟﻲ( ﻧﻴﺴﺖ )اﻟﺒﺘﻪ ﮔﺮاف ﻣﻲﺗﻮاﻧﺪ ﻣﺒﻨﺎي‬ ‫رﻳﺎﺿﻲ ﻣﻨﺎﺳﺒﻲ ﺑﺮاي ﺍﻳﻦ ﺳﺎﺧﺘﺎر دادهاي ﺑﺎﺷﺪ(‪.‬‬

‫•‬ ‫•‬

‫دو ﻧﻮع ﻋﻨﺼﺮ ﺳﺎﺧﺘﺎري اﺳﺎﺳﻲ دارد‪.‬‬ ‫ﻣﺎﻫﻴﺘﺎ ﺧﺎص ﻧﻤﺎﻳﺶ ارﺗﺒﺎﻃﺎت‬

‫"‬

‫ﻳﻚ ﺑﻪ ﭼﻨﺪ" ﻧﻴﺴﺖ‪ ،‬ﻳﻌﻨﻲ ﻣﺤﺪودﻳﺘﻲ در‬

‫ﻧﻤﺎﻳﺶ ارﺗﺒﺎﻃﺎت ﺑﺎ ﭼﻨﺪيﻫﺎي دﻳﮕﺮ‪ ،‬ﻧﺪارد‪.‬‬ ‫•‬

‫ﺳﺎﺧﺖ ﻣﻨﻄﻘﻲ روﻳﻪ ﺑﺎزﻳﺎﺑﻲ آن ﭘﻴﭽﻴﺪه ﺗﺮ از ﺳﺎﺧﺘﺎرﻫﺎي دﻳﮕﺮ اﺳﺖ و ﻧﺎوش‬ ‫ﻏﻴﺮ اﺗﻮﻣﺎﺗﻴﻚ اﺳﺖ‪.‬‬

‫•‬

‫ﺧﻄﺮ ﺑﺮوز ﻧﺎﺳﺎزﮔﺎري دادهﻫﺎ ﻧﺴﺒﺖ ﺑﻪ ﺳﺎﺧﺘﺎر ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‪ ،‬ﻛﻤﺘﺮ اﺳﺖ‪.‬‬

‫•‬

‫ﻗﻮاﻋﺪ ﺟﺎﻣﻌﻴﺖ ذاﺗﻲ دارد‪.‬‬

‫•‬

‫ﺑﻌﺾ آﻧﻮﻣﺎﻟﻲﻫﺎي ﻣﺪل ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ در ﻋﻤﻠﻴﺎت ذﺧﻴﺮه ﺳﺎزي را ﻧﺪارد‪.‬‬

‫•‬

‫ﻓﺰون ﻛﺎري اﺣﺘﻤﺎﻟﻲ ﻧﺎﺷﻲ از اﻓﺰوﻧﮕﻲ ﻛﻪ در ﺳﺎﺧﺘﺎر ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ﻣﻲﺗﻮاﻧﺪ‬ ‫وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ‪ ،‬درﺍﻳﻦ ﺳﺎﺧﺘﺎر وﺟﻮد ﻧﺪارد اﻣﺎ ﺑﻪ ﻋﻠﺖ ﺣﺠﻢ زﻳﺎد ﻧﺸﺎن‬ ‫ﻧﻤﺎﻫﺎ )اﺷﺎره ﮔﺮﻫﺎ(‪ ،‬اﻳﺠﺎد ﻳﺎ اﺻﻼًح آﻧﻬﺎ ﻣﻲﺗﻮاﻧﺪ ﺳﺒﺐ ﺑﺮوز ﻓﺰون ﻛﺎري در‬ ‫ﺳﻴﺴﺘﻢ ﺷﻮد‪.‬‬

‫ﻣﺪلﻫﺎ و ﺳﺎﺧﺘﺎرﻫﺎي دادهاي ﭘﺎﻳﮕﺎه دادهﻫﺎ ‪107‬‬

‫ﺗﻤﺮﻳﻨﺎت‬ ‫‪ .1‬دﻻﻳﻞ اﺳﺘﻔﺎده از ﺳﺎﺧﺘﺎر دادهاي را ﺷﺮح دﻫﻴﺪ ؟‬ ‫‪ .2‬ﻋﻨﺎﺻﺮ اﺻﻠﻲ ﺳﺎﺧﺘﺎر داده ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ را ﺷﺮح دﻫﻴﺪ ؟‬ ‫‪ .3‬وﻳﮋﮔﻲ ﻫﺎ و ﻣﺤﺪودﻳﺖ ﻫﺎي ﺳﺎﺧﺘﺎر داده ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ را ﺷﺮح دﻫﻴﺪ ؟‬ ‫‪ .4‬ﻋﻨﺎﺻﺮ اﺻﻠﻲ ﺳﺎﺧﺘﺎر داده ﺷﺒﻜﻪ اي را ﺷﺮح دﻫﻴﺪ ؟‬ ‫‪ .5‬وﻳﮋﮔﻲ ﻫﺎ و ﻣﺤﺪودﻳﺖ ﻫﺎي ﺳﺎﺧﺘﺎر داده ﺷﺒﻜﻪ اي را ﺷﺮح دﻫﻴﺪ ؟‬ ‫‪ .6‬ﻧﺤﻮه ﭘﻴﺎده ﺳﺎزي ارﺗﺒﺎط ﺑﺎزﮔﺸﺘﻲ را در ﺳﺎﺧﺘﺎر داده اي ﺷﺒﻜﻪ اي ﺗﻮﺿﻴﺢ‬ ‫دﻫﻴﺪ ؟‬

‫‪ 108‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﻓﺼﻞ ‪۶‬‬ ‫ﭘﺎﻳﮕﺎﻩﺩﺍﺩﻩ ﺭﺍﺑﻄﻪﺍﻱ‬ ‫ﻫﺪف ﻛﻠﻲ‬ ‫دراﻳﻦ ﻓﺼﻞ اﺑﺘﺪا ﺗﺎرﻳﺨﭽﻪ اي در ﻣﻮرد ﺑﺎﻧﻚ اﻃﻼﻋﺎت راﺑﻄﻪ اي ﺑﻴﺎن ﺷﺪه و ﺳﺎﺧﺘﺎر‬ ‫داده اي راﺑﻄﻪ اي ﺑﻪ ﺗﻔﺼﻴﻞ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﺪ ﮔﺮﻓﺖ‪ .‬در اﻳﻦ راﺳﺘﺎ‬ ‫ﻣﻔﻬﻮم راﺑﻄﻪ ﺷﺮح داده ﺷﺪه و ﺗﻨﺎﻇﺮي ﺑﻴﻦ ﻣﻔﻬﻮم راﺑﻄﻪ و ﺟﺪول ﺑﻴﺎن ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬ ‫ﺳﭙﺲ وﻳﮋﮔﻲﻫﺎي راﺑﻄﻪ ﺷﺮح داده ﺷﺪه و در ﻣﻮرد ﻣﻔﺎﻫﻴﻤﻲ ﻣﺎﻧﻨﺪ ﻛﻠﻴﺪﻫﺎ‪ ،‬ﻧﻮع راﺑﻄﻪ‬ ‫و ﻣﻔﻬﻮم دﻳﺪ ﺻﺤﺒﺖ ﺧﻮاﻫﺪ ﺷﺪ‪ .‬در اداﻣﻪ ﻣﻔﻬﻮم ﻗﻮاﻋﺪ ﺟﺎﻣﻌﻴﺖ ﻣﻄﺮح ﺷﺪه و اﻧﻮاع‬ ‫ﻗﻮاﻋﺪ ﺟﺎﻣﻌﻴﺖ ﺗﻮﺿﻴﺢ داده ﺧﻮاﻫﻨﺪ ﺷﺪ‪.‬‬

‫ﻫﺪف رﻓﺘﺎري‬ ‫دراﻳﻦ ﻓﺼﻞ ﻋﻨﺎوﻳﻦ زﻳﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ‪:‬‬ ‫•‬

‫ﺑﺎﻧﻚ اﻃﻼﻋﺎت راﺑﻄﻪاي‬

‫•‬

‫ﺳﺎﺧﺘﺎر دادهاي راﺑﻄﻪاي‬

‫•‬

‫ﺗﻌﺮﻳﻒ راﺑﻄﻪ‬

‫•‬

‫ﺗﻨﺎﻇﺮ ﺑﻴﻦ ﻣﻔﺎﻫﻴﻢ راﺑﻄﻪاي و ﻣﻔﺎﻫﻴﻢ ﺟﺪوﻟﻲ‬

‫•‬

‫ﺗﻌﺮﻳﻒ ﺻﻮري ﺟﺪول‬

‫•‬

‫وﻳﮋﮔﻲﻫﺎي راﺑﻄﻪ‬

‫•‬

‫اﻧﻮاع ﻛﻠﻴﺪ در ﻣﺪل راﺑﻄﻪاي‬

‫•‬

‫اﻧﻮاع راﺑﻄﻪ‬

‫‪Relational DB‬‬

‫‪ 110‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫ﻣﻔﻬﻮم دﻳﺪ‬

‫•‬

‫ﻗﻮاﻋﺪ ﻛﺎرﺑﺮي‬

‫•‬

‫ﻣﺘﺎ ﻗﻮاﻋﺪ‬

‫•‬

‫ﻗﻮاﻋﺪ ﺟﺎﻣﻌﻴﺖ در ﻣﺪل راﺑﻄﻪاي‬

‫‪ -1‬ﺑﺎﻧﻚ اﻃﻼﻋﺎت راﺑﻄﻪاي‬

‫‪1‬‬

‫ﭘﺲ از ﭘﺎﻳﮕﺎه ﻫﺎي داده اي ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ و ﺷﺒﻜﻪ اي‪ ،‬ﻛﻪ ﻫﺮ ﻳﻚ داراي ﺿﻌﻒ ﻫﺎﻳﻲ‬ ‫ﺑﻮدﻧﺪ‪ ،‬ﻣﺘﺨﺼﺼﺎن در ﺟﺴﺘﺠﻮي ﻣﺪﻟﻲ ﺑﻮدﻧﺪ ﻛﻪ داراي ﺳﺎﺧﺘﺎر داده اي ﺑﺎ اﻧﺘﺰاع ﻗﻮي‬ ‫ﺑﺎﺷﺪ‪ .‬ﻣﺪل راﺑﻄﻪ اي در ﺳﺎل ‪ 1970‬ﺗﻮﺳﻂ‬

‫‪E.F.Codd‬‬

‫اﺑﺪاع ﮔﺮدﻳﺪ‪ .‬اﻳﻦ ﻣﺪل داراي‬

‫ﺳﺎﺧﺘﺎر داده اي ﺑﺎ اﻧﺘﺰاع ﻗﻮي ﺑﻮده و اﺳﺎﺳﺎً ﺳﺎﺧﺘﺎر دادهاي در آن ﺑﺮ اﺳﺎس ﻳﻚ‬ ‫‪2‬‬

‫ﻣﻔﻬﻮم رﻳﺎﺿﻲ ﺑﻨﺎم راﺑﻄﻪ اﺳﺘﻮار اﺳﺖ‪ .‬در اﻳﻨﺠﺎ ﻻزم اﺳﺖ ﺑﻪ اﻳﻦ ﻧﻜﺘﻪ ﺗﻮﺟﻪ ﺷﻮد‬ ‫ﻛﻪ ﻣﻔﻬﻮم راﺑﻄﻪ از دﻳﺪﮔﺎه ﻛﺎد ﺑﺎ ﻣﻔﻬﻮم رﻳﺎﺿﻲ آن ﺗﺎﺣﺪودي ﻣﺘﻔﺎوت اﺳﺖ‪ .‬در اﻳﻨﺠﺎ‬ ‫ﺑﺮاي اراﺋﻪ ﺳﺎده ﺗﺮ ﻣﻮﺿﻮﻋﺎت‪ ،‬در ﻣﺒﺎﺣﺚ اﻳﻦ ﻛﺘﺎب ﻣﻔﻬﻮم راﺑﻄﻪ را ﺑﺎ ﻣﻔﻬﻮم رﻳﺎﺿﻲ‬ ‫آن ﻣﺴﺎوي در ﻧﻈﺮ ﻣﻲ ﮔﻴﺮﻳﻢ‪.‬‬

‫‪ -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‬‬

‫ﭘﺎﻳﮕﺎه داده راﺑﻄﻪاي ‪111‬‬ ‫•‬

‫ﺳﺘﻮن‬

‫ﻫﺮ ﺟﺪول از ﻧﻈﺮ ﻣﺤﺘﻮاي داده اي ﻣﺠﻤﻮﻋﻪ اي اﺳﺖ از ﻧﻤﻮﻧﻪﻫﺎي ﻣﺘﻤﺎﻳﺰ از اﻧﻮاع‬ ‫ﺳﻄﺮﻫﺎ و ﻫﺮ ﺳﻄﺮ ﻧﻴﺰ ﻣﺠﻤﻮﻋﻪ اي از ﻣﻘﺎدﻳﺮ اﺳﺖ ﻛﻪ ﻫﺮ ﻛﺪام از ﻳﻚ ﻣﺠﻤﻮﻋﻪ‬ ‫ﺑﺮﮔﺮﻓﺘﻪ ﺷﺪه اﻧﺪ‪ .‬ﺑﻪ ﻫﺮ ﻳﻚ از ﻋﻨﺎﺻﺮ ﺳﻄﺮ ﻳﻚ ﺳﺘﻮن ﮔﻮﻳﻨﺪ‪ .‬ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ‬ ‫در ﺳﺎﺧﺘﺎر ﺟﺪوﻟﻲ‪ ،‬ﺗﻨﻬﺎ ﻋﻨﺼﺮ ﺳﺎﺧﺘﺎري اﺳﺎﺳﻲ ﻫﻤﻴﻦ ﻣﻔﻬﻮم ﻧﻮع ﺟﺪول اﺳﺖ‪.‬‬

‫‪ -3‬ﺗﻌﺮﻳﻒ راﺑﻄﻪ‬ ‫‪ 1-3‬ﺗﻌﺮﻳﻒ راﺑﻄﻪ از دﻳﺪﮔﺎه ﻛﺎد‬ ‫ﺑﺎ ﻓﺮض وﺟﻮد‬

‫‪n‬‬

‫ﻣﺠﻤﻮﻋﻪ ‪ ،Sn ،... ،S2 ،S1‬راﺑﻄﻪ‬

‫ﻣﺠﻤﻮﻋﻪ‪ ،‬ﻣﺠﻤﻮﻋﻪاﻳﺴﺖ از‬

‫‪n‬‬

‫‪R‬‬

‫ﺗﻌﺮﻳﻒ ﺷﺪه روي اﻳﻦ‬

‫‪n‬‬

‫‪1‬‬

‫ﺗﺎﻳﻲ ﻫﺎ )ﻛﻪ ﺑﻪ آن ﺗﺎﭘﻞ ﻣﻲ ﮔﻮﻳﻨﺪ( ﺑﻪ ﻧﺤﻮي ﻛﻪ ﺟﺰء‬

‫اول ﻫﺮ ‪ n‬ﺗﺎﻳﻲ از ‪ ،S1‬ﺟﺰء دوم از ‪ S2‬و‪ ...‬ﻣﻘﺪار ﺑﮕﻴﺮد‪.‬‬ ‫ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ ‪ R‬ﻋﺒﺎرﺗﺴﺖ از زﻳﺮﻣﺠﻤﻮﻋﻪاي از ﺿﺮب ﻛﺎرﺗﺰﻳﻦ ‪ .S1*S2*…*Sn‬و‬ ‫ﻣﻲﮔﻮﻳﻴﻢ راﺑﻄﻪ ‪ R‬از درﺟﻪ ‪ n‬اﺳﺖ‪ .‬ﻫﺮ ﻳﻚ از ﻣﺠﻤﻮﻋﻪﻫﺎي ‪ S2 ،S1‬و‪ ...‬ﻣﻴﺪان ﻳﺎ داﻣﻨﻪ‬

‫‪2‬‬

‫ﻧﺎﻣﻴﺪه ﻣﻲﺷﻮﻧﺪ‪ .‬داﻣﻨﻪ‪ ،‬ﻣﺠﻤﻮﻋﻪ ﻣﻘﺎدﻳﺮي اﺳﺖ ﻛﻪ ﻳﻚ ﺻﻔﺖ از راﺑﻄﻪ ﻣﺸﺨﺺ ﻣﻲﺗﻮاﻧﻨﺪ‬ ‫داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪.‬‬ ‫‪D2‬‬

‫‪D1‬‬

‫‪T‬‬ ‫‪F‬‬ ‫‪V‬‬ ‫‪T‬‬ ‫‪F‬‬ ‫‪V‬‬

‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬

‫ﺷﻜﻞ ‪ 1-6‬ﻧﻤﺎﻳﺶ راﺑﻄﻪ‬

‫}‪D1={1,2‬‬ ‫}‪D2={T,F,V‬‬

‫‪*D1 = R1‬‬

‫‪D2‬‬

‫‪R1=D1* D2‬‬

‫‪1. T u pl e‬‬ ‫‪2. D o ma i n‬‬

‫‪ 112‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع ﻣﺜﺎل ﺑﺎﻻ ﻛﻪ ﻧﺸﺎن دﻫﻨﺪه دو ﻣﺠﻤﻮﻋﻪ و ﺣﺎﺻﻞ ﺿﺮب ﺑﻴﻦ‬ ‫آن دو اﺳﺖ‪ ،‬ﺗﻮﺟﻪ ﻛﻨﻴﺪ‪ .‬ﺷﺎﻳﺪ اﻳﻦ ﻣﺜﺎل ﺗﺎ ﺣﺪودي ﺷﻔﺎﻓﻴﺖ ﻻزم را ﺑﺮاي ﺧﻮاﻧﻨﺪه‬ ‫ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬اﻛﻨﻮن ﻣﺜﺎل دﻳﮕﺮي را ﺑﺎ ﺟﺰﺋﻴﺎت ﺑﻴﺸﺘﺮ ﺑﻴﺎن ﻣﻲﻛﻨﻴﻢ‪ .‬ﻓﺮض ﻛﻨﻴﺪ‬ ‫ﻣﺠﻤﻮﻋﻪﻫﺎي زﻳﺮ را داﺷﺘﻪ ﺑﺎﺷﻴﻢ‪:‬‬ ‫•‬

‫‪ S1‬ﻣﺠﻤﻮﻋﻪ ﻣﻘﺎدﻳﺮ ﺷﻤﺎره داﻧﺸﺠﻮﻳﺎن‬

‫•‬

‫‪ S2‬ﻣﺠﻤﻮﻋﻪ اﺳﺎﻣﻲداﻧﺸﺠﻮﻳﺎن‬

‫•‬

‫‪ S3‬ﻣﺠﻤﻮﻋﻪ ﻣﻘﺎدﻳﺮ ﺳﻄﻮح ﺗﺤﺼﻴﻠﻲ در داﻧﺸﮕﺎه‬

‫•‬

‫‪ S4‬ﻣﺠﻤﻮﻋﻪ ﻣﻘﺎدﻳﺮ رﺷﺘﻪﻫﺎي ﺗﺤﺼﻴﻠﻲ‬

‫•‬

‫‪ S5‬ﻣﺠﻤﻮﻋﻪ ﻣﻘﺎدﻳﺮ ﺷﻤﺎره ﮔﺮوهﻫﺎي آﻣﻮزﺷﻲ‬

‫در اﻳﻦ ﺻﻮرت‬

‫‪STT‬‬

‫ﺑﺎ ﭘﻨﺞ ﺻﻔﺖ ﺧﺎﺻﻪ ﻣﺮﺗﺒﻂ ﺑﺎ ﭘﻨﺞ ﻣﺠﻤﻮﻋﻪ ﺑﺎﻻ‪ ،‬ﻳﻚ راﺑﻄﻪ ﺑﻮده‬

‫و ﺑﺼﻮرت زﻳﺮ ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮد‪:‬‬ ‫)‪STT(STID,STNAME,STDEG,STMJR,STDEID‬‬

‫ﺟﺪول ‪ 2-6‬ﻧﻤﺎﻳﺶ ﺟﺪوﻟﻲ‬

‫راﺑﻄﻪ ‪STT‬‬

‫‪STT‬‬ ‫‪STDEID‬‬ ‫‪V532‬‬ ‫‪V135‬‬ ‫…‬

‫‪STDEG‬‬ ‫‪Bs‬‬ ‫‪ms‬‬ ‫…‬

‫‪STMGR‬‬ ‫‪computer‬‬ ‫‪math‬‬ ‫…‬

‫‪STID‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫…‬

‫‪STNAME‬‬ ‫‪Reza‬‬ ‫‪Hamid‬‬ ‫…‬

‫‪ 2-3‬ﺗﻌﺮﻳﻒ راﺑﻄﻪ‬ ‫ﺑﺎ ﻓﺮض وﺟﻮد‬

‫‪n‬‬

‫ﻣﻴﺪان ‪،... ،D2 ،D1‬‬

‫‪Dn‬‬

‫)ﻧﻪ ﻟﺰوﻣﺎ ﻣﺘﻤﺎﻳﺰ(‪ ،‬راﺑﻄﻪ‬

‫‪R‬‬

‫از دو ﻗﺴﻤﺖ‬

‫ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ‪:‬‬ ‫‪ -1‬ﻣﺠﻤﻮﻋﻪ ﻋﻨﻮان‪ :‬ﻣﺠﻤﻮﻋﻪاي ﻧﺎﻣﺪار اﺳﺖ از ‪ n‬ﺻﻔﺖ ﺑﻪ ﺻﻮرت ‪ Ai: Di‬ﻛﻪ در آن‬ ‫ﻫﺮ‬

‫‪Ai‬‬

‫ﻧﺎم ﻳﻚ ﺻﻔﺖ اﺳﺖ و ﻫﺮ‬

‫‪Di‬‬

‫ﻧﺎم ﻣﻴﺪان ﺻﻔﺖ اﺳﺖ‪ .‬ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ‬ ‫‪1‬‬

‫‪ Ai‬ﻫﺎ از ﻳﻜﺪﻳﮕﺮ ﻣﺘﻤﺎﻳﺰ ﻫﺴﺘﻨﺪ‪ .‬ﺑﻪ اﻳﻦ ﻣﺠﻤﻮﻋﻪ ﺷﻤﺎي راﺑﻄﻪ ﻧﻴﺰ ﻣﻲ ﮔﻮﻳﻨﺪ ﻛﻪ ﺑﻪ‬ ‫ﺻﻮرت ﺷﻤﺎﺗﻴﻚ ﭼﻨﻴﻦ اﺳﺖ‪:‬‬ ‫‪1. R el a t i o n Sc h e ma‬‬

‫ﭘﺎﻳﮕﺎه داده راﺑﻄﻪاي ‪113‬‬ ‫}> ‪{,,…,
‫‪ -2‬ﻣﺠﻤﻮﻋﻪ ﺑﺪﻧﻪ‪ :‬ﻣﺠﻤﻮﻋﻪ اﻳﺴﺖ از‬

‫‪m‬‬

‫ﺗﺎﭘﻞ ‪ t‬ﺑﻨﺤﻮي ﻛﻪ ‪ t‬ﺧﻮد ﻣﺠﻤﻮﻋﻪاﻳﺴﺖ از‬

‫‪n‬‬

‫ﻋﻨﺼﺮ ﺑﺼﻮرت ‪ Ai: vi‬ﻛﻪ در آن ‪ vi‬ﻣﻘﺪاري اﺳﺖ از ﻧﻮع )ﻣﻴﺪان( ‪.Di‬‬ ‫}> ‪{
,,…,
‫‪2‬‬

‫‪1‬‬

‫ﭘﻴﻜﺮ راﺑﻄﻪ را ﮔﺎﻫﺎ ﺑﺴﻂ راﺑﻄﻪ ﻳﺎ ﺣﺎﻟﺖ راﺑﻄﻪ ﻫﻢ ﻣﻲﮔﻮﻳﻨﺪ‪.‬‬ ‫‪4‬‬

‫‪3‬‬

‫ﻣﻘﺪار ‪ n‬را درﺟﻪ راﺑﻄﻪ ﻳﺎ آرﻳﺘﻲ ﻣﻲﮔﻮﻳﻨﺪ‪.‬‬ ‫‪5‬‬

‫ﻣﻘﺪار ‪ m‬را ﻛﺎردﻳﻨﺎﻟﻴﺘﻲ راﺑﻄﻪ ﻣﻲﮔﻮﻳﻨﺪ‪.‬‬

‫‪ 3-3‬ﺗﻨﺎﻇﺮ ﺑﻴﻦ ﻣﻔﺎﻫﻴﻢ راﺑﻄﻪاي و ﻣﻔﺎﻫﻴﻢ ﺟﺪوﻟﻲ‬ ‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﻲ داﻧﻴﺪ ﺑﺮاي ﭘﻴﺎده ﺳﺎزي ﻣﺪل راﺑﻄﻪ اي در ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ از راﺑﻄﻪ‬ ‫اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد‪ .‬ﺑﺮاي ﭘﻴﺎده ﺳﺎزي ﻣﺪل راﺑﻄﻪ اي در ﺳﺎﺧﺘﺎر ﭘﺎﻳﮕﺎه داده از ﻣﻔﻬﻮم‬ ‫ﺟﺪول اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد‪.‬‬ ‫ﺟﺪول ‪ 3-6‬ﺗﻨﺎﻇﺮ ﺑﻴﻦ اﺟﺰاء دو ﻣﻔﻬﻮم راﺑﻄﻪ و ﺟﺪول‬

‫اﺟﺰاء ﻣﻔﻬﻮم راﺑﻄﻪ‬

‫اﺟﺰاء ﻣﻔﻬﻮم ﺟﺪوﻟﻲ‬

‫راﺑﻄﻪ‬

‫ﺟﺪول‬

‫ﺗﺎﭘﻞ‬

‫ﺳﻄﺮ‬

‫ﺻﻔﺖ‬

‫ﺳﺘﻮن‬

‫ﻣﻴﺪان‬

‫ﻣﺠﻤﻮﻋﻪ ﻣﻘﺎدﻳﺮ ﺳﺘﻮن‬

‫درﺟﻪ‬

‫ﺗﻌﺪاد ﺳﺘﻮنﻫﺎ‬

‫ﻛﺎردﻳﻨﺎﻟﻴﺘﻲ‬

‫ﺗﻌﺪاد ﺳﻄﺮﻫﺎ‬

‫ﻣﻔﺎﻫﻴﻢ ﺟﺪول و راﺑﻄﻪ ﺗﺎ ﺣﺪود زﻳﺎدي ﺑﻪ ﻳﻜﺪﻳﮕﺮ ﻧﺰدﻳﻚ ﺑﻮده و در ﻣﻮاردي ﺑﻪ‬ ‫‪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‬‬

‫‪ 114‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫اﺷﺘﺒﺎه ﺑﺠﺎي ﻳﻜﺪﻳﮕﺮ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ‪ .‬در ﺟﺪول ‪ 3-6‬ﺗﻨﺎﻇﺮ ﺑﻴﻦ دو‬ ‫ﻣﻔﻬﻮم راﺑﻄﻪ و ﺟﺪول ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪.‬‬

‫‪ 4-3‬ﺗﻌﺮﻳﻒ ﺻﻮري ﺟﺪول‬ ‫ﻓﺮض ﻣﻲ ﻛﻨﻴﻢ‬ ‫ﻫﺮ‪AЄU‬‬

‫‪U‬‬

‫ﻣﺠﻤﻮﻋﻪ اي از ﻧﻤﺎدﻫﺎ ﻣﻮﺳﻮم ﺑﻪ ﺻﻔﺎت راﺑﻄﻪ اي ﺑﺎﺷﺪ و ﺑﺮاي‬

‫ﻣﺠﻤﻮﻋﻪ اي از ﻣﻘﺎدﻳﺮ ﺑﻪ ﻧﺎم‬

‫)‪Domain(A‬‬

‫وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬ﻧﻤﺎد ﻧﻤﺎﻳﺸﮕﺮ‬

‫ﺳﺘﻮن ﺟﺪول اﺳﺖ و )‪ Domain(A‬ﻣﻘﺎدﻳﺮي ﻫﺴﺘﻨﺪ ﻛﻪ در ﺳﺘﻮن ‪ A‬ﻇﺎﻫﺮ ﻣﻲ ﺷﻮﻧﺪ‪.‬‬ ‫ﻓﺮض ﻣﻲ ﻛﻨﻴﻢ‬

‫} ‪H = { A ,A ,…,A‬‬ ‫‪1 2‬‬ ‫‪n‬‬

‫ﻣﺠﻤﻮﻋﻪ اي ﻣﺘﻨﺎﻫﻲ از ﺻﻔﺎت راﺑﻄﻪ اي ﺑﺎﺷﺪ‪.‬‬

‫ﻣﻲ داﻧﻴﻢ ﻛﻪ ﺿﺮب ﻛﺎرﺗﺰﻳﻦ‬ ‫) ‪Domain (A ) * … * Domain (A‬‬ ‫‪1‬‬ ‫‪n‬‬

‫از ﺗﺎﭘﻠﻬﺎﻳﻲ ﺑﻪ ﺻﻮرت )‪ t = (a1,a2,…,an‬ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ ﻛﻪ در آن‪:‬‬ ‫) ‪1<= i <= n , a Є Domain (A‬‬ ‫‪i‬‬ ‫‪i‬‬

‫ﺗﺎﭘﻞ ‪ T‬را ﻣﻲ ﺗﻮان ﺑﻪ ﮔﻮﻧﻪ دﻳﮕﺮي ﻫﻢ ﺗﻌﺮﻳﻒ ﻛﺮد‪:‬‬ ‫}‪t = {A ,A ,…,A } → U {Domain (A ), 1 <= i <= n‬‬ ‫‪1 2‬‬ ‫‪n‬‬ ‫‪i‬‬

‫ﺑﻪ ﻧﺤﻮي ﻛﻪ‬ ‫) ‪T(A ) Є Domain (A‬‬ ‫‪i‬‬ ‫‪i‬‬

‫ﺿﺮب ﻛﺎرﺗﺰﻳﻦ‬

‫) ‪Domain (A ) * … * Domain (A‬‬ ‫‪1‬‬ ‫‪n‬‬

‫را ﺑﺎ‬

‫)‪tupl(H‬‬

‫ﻧﻤﺎﻳﺶ ﻣﻲ دﻫﻴﻢ‪،‬‬

‫ﺑﻪ ﺑﻴﺎن دﻳﮕﺮ‪:‬‬ ‫} ‪Domain (A),t(A) Є Domain (A) , for AЄ H‬‬

‫‪AЄH‬‬

‫‪Tupl(H) = {t | t: H→ U‬‬

‫ﻋﻨﺎﺻﺮ )‪ Tupl(H‬را ﺗﺎﭘﻠﻬﺎي روي ‪ H‬ﻣﻲ ﻧﺎﻣﻴﻢ‪.‬‬ ‫راﺑﻄﻪ ‪ R‬روي ﻣﻴﺪاﻧﻬﺎي ) ‪Domain (A ), … , Domain (A‬‬ ‫‪1‬‬ ‫‪n‬‬ ‫)‪ . Tupl(H‬ﻣﺠﻤﻮﻋﻪ ﻫﻤﻪ اﻳﻦ ﮔﻮﻧﻪ راﺑﻄﻪ ﻫﺎ را ﺑﺎ )‪rel(H‬‬

‫ﻣﻲ ﮔﻮﻳﻴﻢ ﺟﺪول ﻋﺒﺎرﺗﺴﺖ از ﺳﻪ ﺗﺎﻳﻲ‪:‬‬

‫زﻳﺮ ﻣﺠﻤﻮﻋﻪ اي اﺳﺖ از‬ ‫ﻧﻤﺎﻳﺶ ﻣﻲ دﻫﻴﻢ‪ .‬ﺣﺎل‬

‫ﭘﺎﻳﮕﺎه داده راﺑﻄﻪاي ‪115‬‬ ‫ד) ‪= ( T , H , ρ‬‬

‫ﻛﻪ در آن‪:‬‬

‫‪T‬‬

‫ﻧﻤﺎدي اﺳﺖ ﺑﻪ ﻋﻨﻮان ﺟﺪول‬

‫اﺳﺖ از ﺻﻔﺎت راﺑﻄﻪ اي ﻛﻪ ﺑﻪ آن ﺳﺮآﻳﻨﺪ ד‬

‫ﻣﺠﻤﻮﻋﻪ اي‬

‫و } ‪H = { A ,A , … A‬‬ ‫‪1 2‬‬ ‫‪n‬‬ ‫ﮔﻮﻳﻴﻢ و ‪ ρ‬ﻳﻚ راﺑﻄﻪ اﺳﺖ‪ρ Є rel (H) ،‬‬

‫و ﺑﻪ آن ﮔﺴﺘﺮده ד ﻣﻲ ﮔﻮﻳﻴﻢ‪.‬‬

‫‪ -4‬وﻳﮋﮔﻲﻫﺎي راﺑﻄﻪ‬ ‫راﺑﻄﻪ ﺑﻪ ﻋﻨﻮان ﺗﻨﻬﺎ ﻋﻨﺼﺮ ﺳﺎﺧﺘﺎري اﺻﻠﻲ در ﻣﺪل راﺑﻄﻪ اي ﺑﺮاي ﻧﻤﺎﻳﺶ اﻧﻮاع‬ ‫ﻣﻮﺟﻮدﻳﺘﻬﺎ و اﻧﻮاع ارﺗﺒﺎﻃﺎت ﺑﻜﺎر ﻣﻲرود‪ .‬در واﻗﻊ در ﻣﺪل راﺑﻄﻪ اي ﻫﻢ ﻧﻮع‬ ‫ﻣﻮﺟﻮدﻳﺖ و ﻫﻢ ﻧﻮع ارﺗﺒﺎط ﺑﺎ ﻣﻔﻬﻮم راﺑﻄﻪ ﻧﻤﺎﻳﺶ داده ﻣﻲ ﺷﻮﻧﺪ و در ﻧﺘﻴﺠﻪ ﻫﻢ‬ ‫ﻧﻤﻮﻧﻪ ﻣﻮﺟﻮدﻳﺖ و ﻫﻢ ﻧﻤﻮﻧﻪ ارﺗﺒﺎط ﺑﺎ ﻣﻔﻬﻮم ﺗﺎﭘﻞ ﻧﺸﺎن داده ﻣﻲ ﺷﻮﻧﺪ‪ .‬راﺑﻄﻪ داراي‬ ‫ﭼﻬﺎر وﻳﮋﮔﻲ ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲﺑﺎﺷﺪ‪:‬‬ ‫•‬

‫راﺑﻄﻪ ﺗﺎﭘﻞ ﺗﻜﺮاري ﻧﺪارد‪.‬‬

‫• زﻳﺮا ﺑﺪﻧﻪ راﺑﻄﻪ ﻣﺠﻤﻮﻋﻪ اﺳﺖ و ﻣﺠﻤﻮﻋﻪ ﻧﻤﻲﺗﻮاﻧﺪ ﻋﻨﺼﺮ ﺗﻜﺮاري داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬ ‫•‬

‫ﺗﺎﭘﻞﻫﺎ ﻧﻈﻢ ﻧﺪارﻧﺪ‪.‬‬

‫• زﻳﺮا ﺑﺪﻧﻪ راﺑﻄﻪ ﻣﺠﻤﻮﻋﻪ اﺳﺖ و ﻣﺠﻤﻮﻋﻪ در ﺣﺎﻟﺖ ﻛﻠﻲ ﻓﺎﻗﺪ ﻧﻈﻢ اﺳﺖ‪.‬‬ ‫•‬

‫ﺻﻔﺎت راﺑﻄﻪ ﻧﻈﻢ ﻣﻜﺎﻧﻲ )از ﭼﭗ ﺑﻪ راﺳﺖ( ﻧﺪارﻧﺪ‪.‬‬

‫• زﻳﺮا ﺳﺮآﻳﻨﺪ راﺑﻄﻪ ﻣﺠﻤﻮﻋﻪ اﺳﺖ و ﻣﺠﻤﻮﻋﻪ در ﺣﺎﻟﺖ ﻛﻠﻲ ﻓﺎﻗﺪ ﻧﻈﻢ اﺳﺖ‪.‬‬ ‫•‬

‫ﺗﻤﺎم ﺻﻔﺎت ﺗﻚ ﻣﻘﺪاري )ﺗﺠﺰﻳﻪ ﻧﺸﺪﻧﻲ( ﻫﺴﺘﻨﺪ‪.‬‬

‫• زﻳﺮا در ﻧﻤﺎﻳﺶ ﺟﺪوﻟﻲ راﺑﻄﻪ‪ ،‬در ﺗﻘﺎﻃﻊ ﻫﺮ ﺳﻄﺮ و ﺳﺘﻮن‪ ،‬ﺑﺎﻳﺪ ﻳﻚ ﻣﻘﺪار‬ ‫وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ در ﻫﺮ ﺗﺎﭘﻞ‪ ،‬دﻗﻴﻘﺎ ﻳﻚ ﻣﻘﺪار ﺑﺮاي ﻫﺮ ﺻﻔﺖ‬ ‫وﺟﻮد دارد‪.‬‬ ‫در اداﻣﻪ ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع ﻣﺜﺎﻟﻲ اراﺋﻪ ﺷﺪه اﺳﺖ‪ .‬در اﻳﻦ ﻣﺜﺎل راﺑﻄﻪ اي ﺑﻨﺎم‬ ‫ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪.‬‬ ‫ﻣﺜﺎل ‪ :1‬راﺑﻄﻪ ‪ S‬را ﻛﻪ ﺑﻪ ﺻﻮرت ﺟﺪول ‪ 4-6‬اﺳﺖ در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪.‬‬ ‫ﺟﺪول ‪ 4- 6‬ﻧﻤﺎﻳﺶ ﺟﺪوﻟﻲ‬

‫راﺑﻄﻪ ‪S‬‬

‫‪S‬‬

‫‪ 116‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫‪CITY‬‬ ‫‪CONDON‬‬ ‫‪PARIS‬‬ ‫‪PARIS‬‬ ‫‪LONDON‬‬ ‫‪ATHENS‬‬

‫‪STATUS‬‬ ‫‪20‬‬ ‫‪10‬‬ ‫‪30‬‬ ‫‪20‬‬ ‫‪30‬‬

‫‪S NAME‬‬ ‫‪S‬‬ ‫‪J‬‬ ‫‪B‬‬ ‫‪C‬‬ ‫‪A‬‬

‫‪S#‬‬ ‫‪S1‬‬ ‫‪S2‬‬ ‫‪S3‬‬ ‫‪S4‬‬ ‫‪S5‬‬

‫ﻫﻤﺎﻧﮕﻮﻧﻪ ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲ ﻛﻨﺒﺪ در ﺟﺪول ﺑﺎﻻ‪:‬‬ ‫‪S#‬‬

‫•‬

‫ﻧﺸﺎن دﻫﻨﺪه ﻛﻠﻴﺪ اﺻﻠﻲ اﺳﺖ‪) .‬در ﻣﻮرد ﻣﺒﺤﺚ ﻛﻠﻴﺪ در اداﻣﻪ ﺗﻮﺿﻴﺢ‬

‫ﺧﻮاﻫﻴﻢ داد(‪.‬‬ ‫•‬

‫)‪, SNAME , STATUS , CITY‬‬

‫‪ (S#‬اﻳﻦ ‪ 4‬ﻣﺸﺨﺼﻪ ﻧﺸﺎن دﻫﻨﺪه‬

‫‪attribute‬‬

‫ﻫﺴﺘﻨﺪ‪.‬‬ ‫• داﻣﻨﻪ‬

‫‪CITY‬‬

‫ﺷﺎﻣﻞ )‪ (ATHENS ،PARIS ،LONDON‬اﺳﺖ‪.‬‬

‫• )‪ (ATHENS ،LONDON ،PARIS ،PARIS ،LONDON‬ﻧﻴﺰ ﻧﺸﺎن دﻫﻨﺪه ﺗﻌﺪاد‬ ‫ﺳﻄﺮﻫﺎي ﻣﻮﺟﻮد ﻳﺎ ‪ Cardinality‬ﻣﻲﺑﺎﺷﻨﺪ‪.‬‬ ‫•‬

‫)‪(S5 , A , 30 , ATHENS‬ﻧﺸﺎن دﻫﻨﺪه ﺗﻌﺪاد ﺻﻔﺎت درﺟﻪ ‪ Degree‬اﺳﺖ‪.‬‬

‫‪ -5‬اﻧﻮاع ﻛﻠﻴﺪ در ﻣﺪل راﺑﻄﻪاي‬ ‫در ﻣﺪل راﺑﻄﻪ اي ﭼﻨﺪ ﻣﻔﻬﻮم اﺳﺎﺳﻲ در ﺑﺤﺚ ﻛﻠﻴﺪ وﺟﻮد دارد ﻛﻪ در اداﻣﻪ ﺑﺮرﺳﻲ‬ ‫ﻣﻲ ﺷﻮﻧﺪ‪:‬‬

‫‪ 1-5‬اﺑﺮ ﻛﻠﻴﺪ‬

‫‪1‬‬

‫ﻫﺮ ﺗﺮﻛﻴﺒﻲ از ﺻﻔﺎت ﺟﺪول را ﻛﻪ ﻳﻜﺘﺎﻳﻲ ﻣﻘﺪار را داﺷﺘﻪ ﺑﺎﺷﺪ‪ ،‬اﺑﺮ ﻛﻠﻴﺪ ﮔﻮﻳﻨﺪ )ﺑﻪ‬ ‫ﺻﻮرت دﻟﺨﻮاه(‪ .‬ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ ﻫﺮ زﻳﺮ ﻣﺠﻤﻮﻋﻪ ﻋﻨﻮان راﺑﻄﻪ ﻛﻪ ﻳﻜﺘﺎﻳﻲ ﻣﻘﺪار در‬ ‫ﮔﺴﺘﺮده )ﺑﺪﻧﻪ( راﺑﻄﻪ داﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬ﺗﻌﺮﻳﻒ دﻳﮕﺮ اﺑﺮ ﻛﻠﻴﺪ ﻋﺒﺎرت اﺳﺖ از ﻫﺮ ﺗﺮﻛﻴﺒﻲ‬ ‫از اﺳﺎﻣﻲ ﺻﻔﺎت راﺑﻄﻪ ﻛﻪ در ﻫﻴﭻ دو ﺗﺎﭘﻞ ﻣﻘﺪار ﻳﻜﺴﺎن ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬

‫‪ 2-5‬ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ‬

‫‪2‬‬

‫ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ اﻣﻜﺎﻧﻲ اﺳﺖ ﺑﺮاي ارﺟﺎع ﺑﻪ "ﺗﻚ ﺗﺎﭘﻞ" در راﺑﻄﻪ‪ .‬ﻣﺠﻤﻌﻪ ﺻﻔﺎت‬

‫‪K‬‬

‫از‬

‫‪1. Su p e r ke y‬‬ ‫‪2. C a nd i d a t e‬‬

‫ﭘﺎﻳﮕﺎه داده راﺑﻄﻪاي ‪117‬‬

‫راﺑﻄﻪ ‪ ،R‬ﻳﻚ ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﻣﻲﺑﺎﺷﺪ )ﻣﺎﻧﻨﺪ‪ S#‬و‪(SNAME‬اﮔﺮ داراي ﺧﻮاص زﻳﺮ ﺑﺎﺷﻨﺪ‪:‬‬ ‫•‬

‫ﺧﺎﺻﻴﺖ ﻣﻨﺤﺼﺮ ﺑﻔﺮد ﺑﻮدن )ﻳﻜﺘﺎﻳﻲ ﻣﻘﺪار(‪:‬‬ ‫ﻫﻴﭻ دو ‪ tuple‬ﻣﺠﺰاﺋﻲ از راﺑﻄﻪ ‪ R‬داراي ﻣﻘﺪار ﻳﻜﺴﺎﻧﻲ ﺑﺮاي ‪ K‬ﻧﺒﺎﺷﻨﺪ‪).‬ﺑﻪ ﻃﻮر‬ ‫ﻣﺜﺎل ﻫﻴﭻ دو ﺳﻄﺮ‬

‫‪S#‬‬

‫ﻳﻜﻲ ﻧﻴﺴﺖ‬

‫وﻟﻲ‪CITY‬‬

‫ﺗﻜﺮار دارد‪،‬‬

‫‪city ،status‬‬

‫ﻫﻢ‬

‫ﻧﻤﻲﺗﻮاﻧﻨﺪ ﺑﺎ ﻫﻢ ﺑﺎ ﺷﻨﺪ زﻳﺮا دو ﻓﺮوﺷﻨﺪه‪ ،‬در ﻟﻨﺪن ‪ 20‬ﻫﺴﺘﻨﺪ(‪.‬‬ ‫•‬

‫ﺧﺎﺻﻴﺖ ﻏﻴﺮ ﻛﺎﻫﺸﻲ)‪:(minimal‬‬ ‫ﻫﻴﭻ زﻳﺮ ﻣﺠﻤﻮﻋﻪ ﻣﻨﺎﺳﺒﻲ از‬

‫‪K‬‬

‫وﺟﻮد ﻧﺪارد ﻛﻪ داراي ﺧﺎﺻﻴﺖ ﻣﻨﺤﺼﺮ ﺑﻔﺮد‬

‫ﺑﺎﺷﺪ‪.‬‬ ‫ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ ﻫﺮ زﻳﺮ ﻣﺠﻤﻮﻋﻪ از ﻣﺠﻤﻮﻋﻪ ﻋﻨﻮان راﺑﻄﻪ ﻛﻪ دو ﺧﺎﺻﻴﺖ ﺑﺎﻻ را داﺷﺘﻪ‬ ‫ﺑﺎﺷﺪ‪ ،‬ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ راﺑﻄﻪ اﺳﺖ‪.‬‬ ‫در ﻣﺜﺎل ﻓﻮق ‪ s#‬و‬

‫‪sname‬‬

‫ﻛﻠﻴﺪ اﻧﺤﺼﺎري ﻫﺴﺘﻨﺪ‪ .‬ﺧﺎﺻﻴﺖ دوم را ﻧﺪارﻧﺪ زﻳﺮا‬

‫ﺑﻪ ﺗﻨﻬﺎﻳﻲ ﻣﻨﺤﺼﺮ ﺑﻔﺮد اﺳﺖ و ﻣﻲﺗﻮان اﻳﻨﻬﺎ رو ﺷﻜﺴﺖ ﻣﺜﻼ‬

‫‪s#‬‬

‫‪s#‬‬

‫ﺑﻪ ﺗﻨﻬﺎﻳﻲ ﻫﻢ ﻣﻲﺗﻮاﻧﺪ‬

‫ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﺑﺸﻮد‪).‬ﻫﺮ ﭼﻴﺰي را ﻧﻤﻲﺗﻮان ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﺑﻪ ﺣﺴﺎب آورﻳﻢ زﻳﺮا ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ‬ ‫ﻧﺒﺎﻳﺪ ﺑﺸﻜﻨﺪ(‪.‬‬ ‫ﺗﻮﺟﻪ‪:‬ﻫﺮ راﺑﻄﻪ ﺣﺪاﻗﻞ داراي ﻳﻚ ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﻣﻲ ﺑﺎﺷﺪ )ﻣﻤﻜﻦ اﺳﺖ ﺗﻜﻲ ﺑﺎﺷﺪ ﻳﺎ‬ ‫دو ﺻﻔﺖ و ﻳﺎ‪.(...‬‬

‫‪ 3-5‬ﻛﻠﻴﺪ اﺻﻠﻲ‬

‫‪1‬‬

‫ﻳﻜﻲ از ﻛﻠﻴﺪﻫﺎي ﻛﺎﻧﺪﻳﺪ راﺑﻄﻪ ﻛﻪ ﺷﺮاﻳﻂ ذﻳﻞ را داﺷﺘﻪ ﺑﺎﺷﺪ‪:‬‬ ‫•‬

‫ﺷﻨﺎﺳﺎﻳﻲ ﻛﻨﻨﺪه ﻧﻮع ﻣﻮﺟﻮدﻳﺖ )ﺗﻚ ﺗﺎﭘﻞ( در راﺑﻄﻪ ﺑﺎﺷﺪ‪ .‬ﻣﺎﻧﻨﺪ ﺷﻤﺎره‬ ‫داﻧﺸﺠﻮﻳﻲ ﺑﺮاي ﻫﺮ داﻧﺸﺠﻮ‪.‬‬

‫•‬

‫از ﻧﻈﺮ ﺳﺎﻳﺰ داراي ﻃﻮل ﻛﻮﺗﺎه ﺗﺮ ﺑﺎﺷﺪ‪ .‬ﺑﺪﻳﻦ ﻣﻌﻨﻲ ﻛﻪ ﻣﺜﻼ ﺑﻴﻦ دو ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ‬ ‫ﻛﻪ ﻳﻜﻲ از ﻧﻮع رﺷﺘﻪ ‪ 20‬ﺗﺎﻳﻲ و دﻳﮕﺮي ﻳﻚ ﻋﺪد ‪ 4‬ﺑﺎﻳﺘﻲ اﺳﺖ‪ ،‬ﻛﻠﻴﺪي ﻛﻪ‬ ‫داراي ﻧﻮع ﻋﺪد ‪ 4‬ﺑﺎﻳﺘﻲ اﺳﺖ‪ ،‬ﺑﺮاي ﻛﻠﻴﺪ اﺻﻠﻲ ﺑﻮدن ﺑﻬﺘﺮ اﺳﺖ‪.‬‬

‫‪ 4-5‬ﻛﻠﻴﺪ ﺑﺪﻳﻞ‬

‫‪1‬‬

‫‪1. P ri ma r y K e y‬‬

‫‪ 118‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﻫﺮ ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﺑﻐﻴﺮ از ﻛﻠﻴﺪ اﺻﻠﻲ را ﻛﻠﻴﺪ ﺑﺪﻳﻞ ﮔﻮﻳﻨﺪ‪.‬‬

‫‪ 5-5‬ﻛﻠﻴﺪ ﺧﺎرﺟﻲ‬ ‫دو راﺑﻄﻪ‬

‫‪R1‬‬

‫و‬

‫‪R2‬‬

‫‪2‬‬

‫را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪ .‬ﻫﺮ زﻳﺮ ﻣﺠﻤﻮﻋﻪ از ﺻﻔﺎت راﺑﻄﻪ‬

‫ﻣﻘﺪار ﻣﻌﻠﻮﻣﺶ ﺑﺎ ﻳﻚ ﻣﻘﺪار از ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ‬

‫‪R1‬‬

‫‪R2‬‬

‫ﻛﻪ ﻫﺮ‬

‫ﺑﺮاﺑﺮ ﺑﺎﺷﺪ‪ ،‬ﻛﻠﻴﺪ ﺧﺎرﺟﻲ در راﺑﻄﻪ‬

‫‪ R2‬اﺳﺖ‪.‬‬ ‫ﻧﻘﺶ ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ﺑﺮاي ﻧﻤﺎﻳﺶ ارﺗﺒﺎﻃﺎت ﺑﻴﻦ اﻧﻮاع ﻣﻮﺟﻮدﻳﺖ ﻫﺎ )و در ﻧﺘﻴﺠﻪ ﺑﻴﻦ‬ ‫ﻧﻤﻮﻧﻪ ﻫﺎي آﻧﻬﺎ( ﺑﻜﺎر ﻣﻲرود‪ .‬ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮﻋﺎت ﻛﻠﻴﺪ ﺑﻪ ﻣﺜﺎل زﻳﺮ ﺗﻮﺟﻪ‬ ‫ﻓﺮﻣﺎﻳﻴﺪ‪:‬‬ ‫ﻣﺜﺎل ‪ :2‬ﻛﻠﻴﺪي ﻛﻪ ارﺗﺒﺎط ﺟﺪول ﻣﺨﺘﻠﻒ را ﻣﺸﺨﺺ و ﺑﺮﻗﺮار ﻣﻲﻧﻤﺎﻳﺪ‪.‬‬ ‫ﺟﺪول ‪ 5-6‬ﺟﺪول ﻣﺜﺎل ‪2‬‬ ‫‪NO….‬‬ ‫‪5‬‬ ‫‪10‬‬ ‫‪7‬‬

‫‪C#‬‬

‫و‬

‫‪status‬‬

‫‪CNAME‬‬ ‫‪Pen‬‬ ‫‪Pen‬‬ ‫‪Pen‬‬ ‫‪Ruler‬‬

‫‪STATUS‬‬ ‫‪Q‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪Q‬‬

‫‪C#‬‬ ‫‪10‬‬ ‫‪10‬‬ ‫‪10‬‬ ‫‪10‬‬

‫ﻣﻲ ﺗﻮاﻧﻨﺪ ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﺑﺎﺷﻨﺪ ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪي ﻛﻪ ﻣﻲ ﺗﻮاﻧﺪ ﻛﻠﻴﺪ اﺻﻠﻲ‬

‫ﺑﺸﻮد وﻟﻲ ﺑﻪ ﺗﻨﻬﺎﻳﻲ ﻧﻤﻲ ﺗﻮاﻧﻨﺪ ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﺑﺎﺷﻨﺪ‪.‬‬ ‫ﺟﺪول ﻓﺮوﺷﻨﺪه ﻫﺎ )ﺳﺎزﻧﺪه ﻛﺎﻻ(‬ ‫ﺟﺪول ‪ 6-6‬ﺟﺪول ﻓﺮوﺷﻨﺪهﻫﺎ‬ ‫‪Tell#‬‬

‫‪C#‬‬ ‫‪10‬‬

‫‪SNAME‬‬ ‫‪a‬‬

‫‪S#‬‬ ‫‪100‬‬

‫‪11‬‬

‫‪b‬‬

‫‪105‬‬

‫‪1. Al t e r n a t e K e y‬‬ ‫‪2. F o re i gn ke y‬‬

‫ﭘﺎﻳﮕﺎه داده راﺑﻄﻪاي ‪119‬‬

‫ﺗﻮﺟﻪ‪ :‬در ﺟﺪول ﻓﻮق ‪ s#‬ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﻣﻲ ﺑﺎﺷﺪ‪.‬‬ ‫ﺟﺪول ﻛﺎﻻ‬ ‫ﺟﺪول ‪ 7-6‬ﺟﺪول ﻛﺎﻻ‬ ‫…‪NO‬‬ ‫‪5‬‬ ‫‪7‬‬ ‫‪10‬‬

‫‪CNAME‬‬ ‫‪Pen‬‬ ‫‪Pen‬‬ ‫‪Pen‬‬ ‫‪ruler‬‬

‫‪STATUS‬‬ ‫‪Q‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪Q‬‬

‫‪C#‬‬ ‫‪10‬‬ ‫‪10‬‬ ‫‪10‬‬ ‫‪11‬‬

‫ﻧﻜﺘﻪ‪ ،C# :‬ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ﺑﺮاي ارﺗﺒﺎط ﺑﻴﻦ دو ﺟﺪول ﻛﺎﻻ و ﻓﺮوﺷﻨﺪه ﻣﻲ ﺑﺎﺷﺪ‪.‬‬ ‫ﻧﻜﺘﻪ‪ ،C# :‬در ﺟﺪول ﻓﺮوﺷﻨﺪه ﻛﻠﻴﺪ ﺧﺎرﺟﻲ و در ﺟﺪول ﻛﺎﻻ ﻛﻠﻴﺪ اﺻﻠﻲ ﻣﻲﺑﺎﺷﺪ‪.‬‬

‫ﻧﻜﺎﺗﻲ در ﻣﻮرد ﻛﻠﻴﺪ ﺧﺎرﺟﻲ‬ ‫ﻓﺮض ﻛﻨﻴﺪ ﻛﻪ راﺑﻄﻪ‬

‫‪R2‬‬

‫ﻳﻚ راﺑﻄﻪ ﻣﺒﻨﺎ ﺑﺎﺷﺪ آﻧﮕﺎه ﻳﻚ ﻛﻠﻴﺪ ﺧﺎرﺟﻲ در راﺑﻄﻪ‬

‫زﻳﺮ ﻣﺠﻤﻌﻪ اي از ﻣﺠﻤﻮﻋﻪ ﺻﻔﺎت ‪ R2‬ﻣﺎﻧﻨﺪ‬

‫‪FR‬‬

‫‪R2‬‬

‫ﻣﻲ ﺑﺎﺷﺪ ﺑﻪ ﻧﺤﻮي ﻛﻪ‪:‬‬

‫•‬

‫راﺑﻄﻪ ﻣﺒﻨﺎﻳﻲ ﺑﻪ ﻧﺎم ‪ R1‬ﺑﺎ ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ‪CK‬وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪.‬‬

‫•‬

‫ﺑﺮاي ﺗﻤﺎﻣﻲﻣﻮاﻗﻊ ﻫﺮ ﻣﻘﺪار از ‪ FK‬در ﻣﻘﺪار ﻓﻌﻠﻲ ‪ R2‬ﺑﺎ ﻣﻘﺪار ‪ CK‬در ﺑﻌﻀﻲ از‬ ‫‪Tuple‬ﻫﺎ در ﻣﻘﺪار ﻗﺒﻠﻲ ﻳﻜﺴﺎن ﺑﺎﺷﻨﺪ‪.‬‬

‫ﻧﻜﺘﻪ‪ :‬اﮔﺮ ﺻﻔﺘﻲ ﺑﺘﻮاﻧﺪ ﻣﻘﺪار ﺗﻬﻲ )‪ (null‬ﺑﮕﻴﺮد‪ ،‬ﻧﻤﻲ ﺗﻮاﻧﺪ ﻛﻠﻴﺪ ﺑﺎﺷﺪ )ﻣﺎﻧﻨﺪ‬

‫‪tell#‬‬

‫)ﺷﻤﺎره ﺗﻠﻔﻦ((‪.‬‬ ‫از وﻳﮋﮔﻲ ﻫﺎي ‪ RDBMS‬در ﭘﺎﻳﮕﺎه داده راﺑﻄﻪ اي در ﻣﻮرد ﺟﺪاول اﻳﻦ اﺳﺖ ﻛﻪ‪:‬‬ ‫•‬

‫دادهﻫﺎ ﺗﻮﺳﻂ ﻛﺎرﺑﺮ و ﺑﻪ ﺻﻮرت ﺟﺪاول درﻳﺎﻓﺖ ﻣﻲﺷﻮﻧﺪ‪.‬‬

‫•‬

‫ﻋﻤﻠﻜﺮدﻫﺎﻳﻲ ﻛﻪ ﻛﺎرﺑﺮ ﻣﻲﺗﻮاﻧﺪ از آﻧﻬﺎ اﺳﺘﻔﺎده ﻧﻤﺎﻳﺪ ﻛﻪ آﻧﻬﺎ ﺑﻪ ﻛﺎرﺑﺮ اﻳﻦ اﺟﺎزه‬ ‫را ﻣﻲدﻫﻨﺪ ﺗﺎ ﺑﺘﻮاﻧﻨﺪ ﺟﺪاول ﺟﺪﻳﺪي را اﻳﺠﺎد ﻧﻤﺎﻳﻨﺪ‪.‬‬

‫ﻣﺜﺎل‪ :‬ﺑﺨﺸﻲ از ﺟﺪاول ﻳﻚ ﺳﻴﺴﺘﻢ اداري ﺑﻪ ﺻﻮرت زﻳﺮ اﺳﺖ‪:‬‬ ‫ﻛﺎرﻣﻨﺪ‬

‫‪EMP‬‬

‫‪ 120‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫ﺟﺪول ‪8-6‬‬ ‫‪SALARY‬‬ ‫‪40‬‬ ‫‪42‬‬ ‫‪30‬‬ ‫‪35‬‬

‫ﺑﺨﺶ ﻫﺎ‬

‫ﺟﺪول ‪Employee‬‬

‫‪DEPT#‬‬ ‫‪D1‬‬ ‫‪D1‬‬ ‫‪D2‬‬ ‫‪D2‬‬

‫‪EMP#‬‬ ‫‪E1‬‬ ‫‪E2‬‬ ‫‪E3‬‬ ‫‪E4‬‬

‫‪SNAME‬‬ ‫‪LOP‬‬ ‫‪CHEN‬‬ ‫‪FIN‬‬ ‫‪SAI‬‬

‫‪DEPT‬‬

‫ﺟﺪول ‪9-6‬‬

‫ﺑﻮدﺟﻪ‬ ‫‪40‬‬ ‫‪12‬‬ ‫‪5‬‬

‫ﺟﺪول ‪Department‬‬

‫‪DNAME‬‬

‫‪DEPT#‬‬

‫ﻧﺎم ﺳﺎزﻣﺎن‬

‫‪#‬ﺳﺎزﻣﺎن‬

‫‪MARKETING‬‬ ‫‪DEVELOPMENT‬‬ ‫‪RESEARCH‬‬

‫‪D1‬‬ ‫‪D2‬‬ ‫‪D3‬‬

‫)‪ > 8‬ﺑﻮدﺟﻪ( ‪SELECT * FROM DEPT WHERE‬‬

‫ﻧﻜﺘﻪ‪ :‬در ﻋﺒﺎرت ﺑﺎﻻ ﻋﻼﻣﺖ * ﻧﻤﺎﻳﺎﻧﮕﺮ ﻫﻤﻪ ﺻﻔﺖ ﻫﺎ اﺳﺖ‪.‬‬ ‫در ﻧﺘﻴﺠﻪ ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﻋﺒﺎرت ﺑﺎﻻ ﺑﻪ ﺻﻮرت ﺟﺪول زﻳﺮ ﺧﻮاﻫﺪ ﺑﻮد‪.‬‬ ‫ﻫﻤﺎﻧﮕﻮﻧﻪ ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲﺷﻮد دادهﻫﺎ ﺑﻪ ﺻﻮرت ﺟﺪول وارد ﺳﻴﺴﺘﻢ ﺷﺪهاﻧﺪ و ﮔﺰارش‬ ‫ﺧﻮاﺳﺘﻪ ﺷﺪه ﻧﻴﺰ ﺑﺮ اﺳﺎس ﻳﻚ ﺳﺮي از ﻋﻤﻠﮕﺮﻫﺎي اﺳﺘﺎﻧﺪارد اراﺋﻪ ﺷﺪه و ﻧﺘﻴﺠﻪ ﺑﻪ‬ ‫ﺻﻮرت ﺟﺪول )ﺑﺮ اﺳﺎس ﻧﻮع ﻋﻤﻠﮕﺮ( ﮔﺰارش ﻣﻲﮔﺮدد‪.‬‬ ‫ﺟﺪول ‪ 10-6‬ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﻋﺒﺎرت ذﻛﺮ ﺷﺪه‬

‫ﺑﻮدﺟﻪ‬ ‫‪10‬‬ ‫‪12‬‬

‫ﻧﺎم ﺳﺎزﻣﺎن‬ ‫‪MARKETING‬‬ ‫‪DEVELOPMENT‬‬

‫‪#‬ﺳﺎزﻣﺎن‬ ‫‪D1‬‬ ‫‪D2‬‬

‫ﻧﻜﺘﻪ‪ :‬ﺧﺮوﺟﻲﻫﺎ از ﻫﻤﺎن ﻧﻮع ورودي ﻫﺎ ﻣﻲ ﺑﺎﺷﻨﺪ‪.‬‬ ‫ﻧﻜﺘﻪ‪ :‬ﺧﺮوﺟﻲ ﻫﺮ ﻋﻤﻠﮕﺮ ﻣﻲﺗﻮاﻧﺪ ﺑﻪ ﻋﻨﻮان ورودي ﻋﻤﻠﮕﺮ دﻳﮕﺮ ﺑﻜﺎر رود‪ .‬اﻳﻦ ﻧﻮع‬

‫ﭘﺎﻳﮕﺎه داده راﺑﻄﻪاي ‪121‬‬

‫ﻋﺒﺎرت را ﻋﺒﺎرت ﺗﻮ در ﺗﻮ‪ 1‬ﻣﻲ ﻧﺎﻣﻨﺪ‪.‬‬

‫‪ -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‬‬

‫‪ 122‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫‪1‬‬

‫•‬

‫راﺑﻄﻪ ﺑﻴﻨﺎﺑﻴﻨﻲ‬

‫•‬

‫راﺑﻄﻪ ذﺧﻴﺮه ﺷﺪه‬

‫‪2‬‬

‫ﺷﻜﻞ زﻳﺮ ارﺗﺒﺎط و دﺳﺘﻪ ﺑﻨﺪي اﻧﻮاع راﺑﻄﻪ را ﻧﺸﺎن ﻣﻲ دﻫﺪ‪:‬‬ ‫راﺑﻄﻪ‬

‫ذﺧﻴﺮه ﺷﺪه و ﻧﺎﻣﺪار‬

‫ﻣﺸﺘﻖ‬

‫ﻣﺴﺘﻘﻞ‬

‫ﻟﺤﻈﻪ اي‬

‫ﻣﺒﻨﺎ‬

‫ﻣﺠﺎزي ﻣﺸﺘﻖ‬

‫ﻧﺎﻣﺪار‬

‫دﻳﺪ‬

‫ﺑﻲ ﻧﺎم‬

‫ﻧﺘﻴﺠﻪ ﭘﺮﺳﺶ‬

‫ﺑﻴﻨﺎﺑﻴﻨﻲ‬

‫راﺑﻄﻪ ﻋﺒﺎرﺗﻲ‬ ‫ﺷﻜﻞ ‪ 11-6‬ﻧﻤﺎﻳﺶ ﻧﺤﻮه ارﺗﺒﺎط ﺑﻴﻦ راﺑﻄﻪﻫﺎ‬

‫‪ -7‬ﻗﻮاﻋﺪ ﺟﺎﻣﻌﻴﺖ‪ 3‬در ﻣﺪل راﺑﻄﻪاي‬ ‫‪4‬‬

‫در ﻫﺮ ﻣﺤﻴﻂ ﻋﻤﻠﻴﺎﺗﻲ ﻫﻤﻴﺸﻪ ﻣﺠﻤﻮﻋﻪ اي از ﻗﻮاﻋﺪ ﻣﻌﻨﺎﻳﻲ ﻳﺎ ﻣﺤﺪودﻳﺖ ﻫﺎي‬ ‫‪5‬‬

‫ﺟﺎﻣﻌﻴﺘﻲ وﺟﻮد دارﻧﺪ‪ .‬اﮔﺮ دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه در ﭘﺎﻳﮕﺎه داده ﻫﻤﻮاره اﻳﻦ‬ ‫‪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‬‬

‫ﭘﺎﻳﮕﺎه داده راﺑﻄﻪاي ‪123‬‬

‫ﻣﺤﺪودﻳﺖ ﻫﺎ را رﻋﺎﻳﺖ ﻛﻨﻨﺪ‪ ،‬ﺟﺎﻣﻌﻴﺖ ﭘﺎﻳﮕﺎه داده ﺗﺎﻣﻴﻦ ﻣﻲ ﺑﺎﺷﺪ‪.‬‬ ‫ﺟﺎﻣﻌﻴﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ ﺑﻤﻌﻨﻲ ﺻﺤﺖ‪ ،‬دﻗﺖ و ﺳﺎزﮔﺎري دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه در‬ ‫ﭘﺎﻳﮕﺎهدادهﻫﺎ در ﺗﻤﺎم ﻟﺤﻈﺎت اﺳﺖ‪ .‬ﻫﺮ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎهداده ﺑﺎﻳﺪ ﺑﺘﻮاﻧﺪ ﺟﺎﻣﻌﻴﺖ ﭘﺎﻳﮕﺎهداده‬ ‫را ﻛﻨﺘﺮل و ﺗﻀﻤﻴﻦ ﻛﻨﺪ‪ .‬زﻳﺮا ﻣﻤﻜﻦ اﺳﺖ ﻋﻮاﻣﻠﻲ ﻣﺎﻧﻨﺪ آﻧﭽﻪ ﻛﻪ در ذﻳﻞ ﻧﺎم ﺑﺮده ﺷﺪهاﻧﺪ‪،‬‬ ‫ﺑﺎﻋﺚ ﻧﻘﺾ ﺟﺎﻣﻌﻴﺖ ﺷﻮﻧﺪ‪:‬‬ ‫•‬

‫اﺷﺘﺒﺎه در ﺑﺮﻧﺎﻣﻪﻫﺎ‬

‫•‬

‫اﺷﺘﺒﺎه در ورود اﻃﻼﻋﺎت از ﺳﻮي ﻛﺎرﺑﺮان‬

‫•‬

‫ﻣﺸﻜﻼت ﺳﺨﺖاﻓﺰاري و ﻧﺮماﻓﺰاري ﻣﺮﺗﺒﻂ ﺑﺎ دادهﻫﺎ‬

‫•‬

‫ﻋﺪم اﻧﺠﺎم ﻛﺎﻣﻞ ﻓﺮاﻳﻨﺪﻫﺎ ﺑﺮ روي دادهﻫﺎ‬

‫•‬

‫وﺟﻮد اﻓﺰوﻧﮕﻲ و ﺗﻌﺪد در دادهﻫﺎي ﺗﻜﺮاري‬

‫ﺑﺮاي ﻛﻨﺘﺮل و ﺗﻀﻤﻴﻦ ﺟﺎﻣﻌﻴﺖ‪ ،‬ﻗﻮاﻋﺪي ﻻزم اﺳﺖ ﺗﺎ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﺑﺘﻮاﻧﺪ ﺑﺮ‬ ‫اﺳﺎس آﻧﻬﺎ ﻋﻤﻞ ﻛﺮده و ﺑﺎﻋﺚ اﻧﻄﺒﺎق ﻣﺤﺘﻮاي ﭘﺎﻳﮕﺎه داده ﺑﺎ واﻗﻌﻴﺎت ﺑﺎﺷﺪ‪ .‬اﻳﻦ‬ ‫ﻗﻮاﻋﺪرا ﻗﻮاﻋﺪ ﺟﺎﻣﻌﻴﺘﻲ و ﻳﺎ ﻣﺤﺪودﻳﺖ ﻫﺎي ﺟﺎﻣﻌﻴﺘﻲ ﮔﻮﻳﻨﺪ‪.‬‬

‫‪ 1-7‬اﻧﻮاع ﻗﻮاﻋﺪ ﺟﺎﻣﻌﻴﺖ‬ ‫ﻗﻮاﻋﺪ ﺟﺎﻣﻌﻴﺖ در ﻣﺪل راﺑﻄﻪاي ﺑﻪ دو رده ﻛﻠﻲ ﺗﻘﺴﻴﻢ ﻣﻲﺷﻮﻧﺪ ﻛﻪ ﺑﻪ ﺷﺮح ﻫﺮﻳﻚ‬ ‫ﺧﻮاﻫﻴﻢ ﭘﺮداﺧﺖ‪:‬‬ ‫•‬ ‫•‬

‫ﻗﻮاﻋﺪ ﻛﺎرﺑﺮي‬ ‫ﻣﺘﺎ ﻗﻮاﻋﺪ‬

‫‪1‬‬

‫‪2‬‬

‫‪ 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‬‬

‫‪ 124‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫‪1‬‬

‫ﺟﺎﻣﻌﻴﺘﻲ ﻣﻌﻨﺎﻳﻲ ﻧﻴﺰ ﻣﻲ ﮔﻮﻳﻨﺪ‪ .‬ﻗﻮاﻋﺪ ﻛﺎرﺑﺮي در ﻣﺪل راﺑﻄﻪ اي ﺑﻪ ﭼﻬﺎر دﺳﺘﻪ ﺑﻪ‬ ‫ﺷﺮح زﻳﺮ ﺗﻘﺴﻴﻢ ﻣﻲ ﺷﻮﻧﺪ‪:‬‬ ‫•‬

‫‪2‬‬

‫ﻣﺤﺪودﻳﺖ ﻣﻴﺪاﻧﻲ ‪ :‬ﻣﺤﺪودﻳﺘﻲ اﺳﺖ ﻧﺎﻇﺮ ﺑﺮ ﻣﻴﺪان ﻫﺮ ﺻﻔﺖ ﺧﺎﺻﻪ و ﻣﻘﺎدﻳﺮ‬ ‫ﻣﺠﺎز آﻧﺮا ﻣﺸﺨﺺ ﻣﻲﻛﻨﺪ‪.‬‬

‫•‬

‫‪3‬‬

‫ﻣﺤﺪودﻳﺖ ﺻﻔﺘﻲ ‪ :‬ﻣﺤﺪودﻳﺘﻲ اﺳﺖ ﻧﺎﻇﺮ ﺑﺮ ﻳﻚ ﺻﻔﺖ و ﻧﻮع آن را ﻣﺸﺨﺺ‬ ‫ﻣﻲﻛﻨﺪ‪.‬‬

‫•‬

‫‪4‬‬

‫ﻣﺤﺪودﻳﺖ راﺑﻄﻪاي ‪ :‬ﻣﺤﺪودﻳﺘﻲ اﺳﺖ ﻧﺎﻇﺮ ﺑﺮ ﻳﻚ راﺑﻄﻪ و ﻣﻘﺎدﻳﺮ ﻣﺠﺎز ﻳﻚ‬ ‫ﻣﺘﻐﻴﺮ راﺑﻄﻪاي را ﻣﺸﺨﺺ ﻣﻲﻛﻨﺪ‪.‬‬

‫•‬

‫‪5‬‬

‫ﻣﺤﺪودﻳﺖ ﭘﺎﻳﮕﺎﻫﻲ ‪ :‬ﻣﺤﺪودﻳﺘﻲ اﺳﺖ ﻧﺎﻇﺮ ﺑﺮ دو ﻳﺎ ﭼﻨﺪ ﻣﺘﻐﻴﺮ راﺑﻄﻪاي ﺑﻪ‬ ‫ﻧﺤﻮي ﻛﻪ آﻧﻬﺎ را ﺑﻬﻢ ﻣﺮﺗﺒﻂ ﻣﻲﻛﻨﺪ‪.‬‬

‫‪ 2-1-7‬ﻣﺘﺎ ﻗﻮاﻋﺪ‬ ‫ﻣﺘﺎ ﻗﻮاﻋﺪ ﻗﻮاﻋﺪي ﻫﺴﺘﻨﺪ ﻛﻪ ﺑﺎﻳﺪ ﺗﻮﺳﻂ ﻫﺮ ﺳﻴﺴﺘﻢ راﺑﻄﻪ در ﻫﺮ ﭘﺎﻳﮕﺎه داده راﺑﻄﻪ اي‬ ‫اﻋﻤﺎل ﮔﺮدﻧﺪ‪ .‬ﻟﺬا در ﺑﻌﻀﻲ ﻛﺘﺐ ﺑﺪاﻧﻬﺎ ﻗﻮاﻋﺪ ﻋﺎم ﻧﻴﺰ ﻣﻲ ﮔﻮﻳﻨﺪ‪ .‬اﻳﻦ ﻗﻮاﻋﺪ ﺑﻪ دو‬ ‫ﮔﺮوه ﻛﻠﻲ ﺑﻪ ﺷﺮح ذﻳﻞ ﺗﻘﺴﻴﻢ ﻣﻲ ﺷﻮﻧﺪ‪:‬‬ ‫•‬ ‫•‬

‫ﻗﺎﻋﺪه ﺟﺎﻣﻌﻴﺖ ﻣﻮﺟﻮدﻳﺘﻲ‬ ‫ﻗﺎﻋﺪه ﺟﺎﻣﻌﻴﺖ ارﺟﺎﻋﻲ‬

‫‪6‬‬

‫‪7‬‬

‫‪ 1-2-1-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‬‬

‫ﭘﺎﻳﮕﺎه داده راﺑﻄﻪاي ‪125‬‬

‫آن ﺗﺎﭘﻞ در راﺑﻄﻪ اﺳﺖ و ﻋﺎﻣﻞ ﺗﻤﻴﻴﺰ ﻧﻤﻮﻧﻪ ﻫﺎي ﻣﻮﺟﻮدﻳﺖ )ﺗﺎﭘﻞ ﻫﺎ( در راﺑﻄﻪ اﺳﺖ‬ ‫و ﺑﺪﻳﻬﻲ اﺳﺖ ﻛﻪ ﻋﺎﻣﻞ ﺗﻤﻴﻴﺰ ﺧﻮد ﻧﻤﻲ ﺗﻮاﻧﺪ ﻣﻘﺪار ﻫﻴﭻ ﻳﺎ ﻧﺎﺷﻨﺎﺧﺘﻪ داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬

‫‪ 2-2-1-7‬ﻗﺎﻋﺪه ﺟﺎﻣﻌﻴﺖ ارﺟﺎﻋﻲ‬ ‫اﻳﻦ ﻗﺎﻋﺪه ﻧﺎﻇﺮ ﺑﺮ ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ﺑﻮده و ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫•‬

‫اﮔﺮ ﺻﻔﺖ ﺧﺎﺻﻪ ‪) Ai‬ﺳﺎده ﻳﺎ ﻣﺮﻛﺐ( در راﺑﻄﻪ ‪ R2‬ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ﺑﺎﺷﺪ در اﻳﻦ‬ ‫ﺻﻮرت ‪ Ai‬در ‪ R2‬ﻣﻲﺗﻮاﻧﺪ ﻣﻘﺪار ﻫﻴﭻ داﺷﺘﻪ ﺑﺎﺷﺪ )ﺑﻪ ﺷﺮﻃﻲ ﻛﻪ ﺟﺰﺋﻲ از ﻛﻠﻴﺪ‬ ‫‪R2‬‬

‫ﻧﺒﺎﺷﺪ(‪ ،‬در ﻏﻴﺮ اﻳﻨﺼﻮرت ﺑﺎﻳﺪ ﺣﺘﻤﺎ ﻣﻘﺪاري ﺑﺎﺷﺪ ﻛﻪ در راﺑﻄﻪ ﻣﺮﺟﻊ‬

‫‪R1‬‬

‫وﺟﻮد دارد‪ .‬ﺑﻪ ﻋﺒﺎرت دﻳﮕﺮ ﻣﻘﺪار ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ﻧﻤﻲﺗﻮاﻧﺪ در راﺑﻄﻪ ﻣﺮﺟﻊ‬ ‫وﺟﻮد ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬ ‫دﻟﻴﻞ ﺗﻮﺟﻴﻪ اﻳﻦ ﻗﺎﻋﺪه اﻳﻦ اﺳﺖ ﻛﻪ ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ﻋﺎﻣﻞ ارﺟﺎع از ﻳﻚ ﻧﻤﻮﻧﻪ‬ ‫ﻣﻮﺟﻮدﻳﺖ ﺑﻪ ﻧﻤﻮﻧﻪ ﻣﻮﺟﻮدﻳﺖ دﻳﮕﺮ اﺳﺖ و ﺑﺪﻳﻬﻲ اﺳﺖ ﻛﻪ ﻧﻤﻲ ﺗﻮان ﺑﻪ ﻧﻤﻮﻧﻪ‬ ‫ﻣﻮﺟﻮدﻳﺖ ﻧﺎﻣﻮﺟﻮد ارﺟﺎع داد‪.‬‬

‫ﺗﻤﺮﻳﻨﺎت‬ ‫‪ .1‬ﻋﻨﺎﺻﺮ اﺻﻠﻲ ﺳﺎﺧﺘﺎر ﺟﺪوﻟﻲ را ﻧﺎم ﺑﺒﺮﻳﺪ؟‬ ‫‪ .2‬راﺑﻄﻪ را ﺗﻌﺮﻳﻒ ﻛﻨﻴﺪ؟‬

‫‪ 126‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪ .3‬راﺑﻄﻪ را از دﻳﺪﮔﺎه ﻛﺎد ﺗﻌﺮﻳﻒ ﻛﻨﻴﺪ؟‬ ‫‪ .4‬وﻳﮋﮔﻲ ﻫﺎي راﺑﻄﻪ را ﻧﺎم ﺑﺒﺮﻳﺪ؟‬ ‫‪ .5‬اﻧﻮاع ﻛﻠﻴﺪ را در ﻣﺪل راﺑﻄﻪ اي ﻧﺎم ﺑﺮده و ﺗﻮﺿﻴﺢ دﻫﻴﺪ؟‬ ‫‪ .6‬ﻣﻔﻬﻮم ﻛﻠﻴﺪ ﺧﺎرﺟﻲ را ﺗﻮﺿﻴﺢ دﻫﻴﺪ؟‬ ‫‪ .7‬اﻧﻮاع راﺑﻄﻪ را ﻧﺎم ﺑﺒﺮﻳﺪ ؟‬ ‫‪ .8‬ﻗﺎﻋﺪه ﺟﺎﻣﻌﻴﺖ ﻣﻮﺟﻮدﻳﺘﻲ را ﺗﻮﺿﻴﺢ دﻫﻴﺪ؟‬ ‫‪ .9‬ﻗﺎﻋﺪه ﺟﺎﻣﻌﻴﺖ ارﺟﺎﻋﻲ را ﺗﻮﺿﻴﺢ دﻫﻴﺪ؟‬

‫ﻓﺼﻞ ‪۷‬‬ ‫ﻋﻤﻠﻴﺎﺕ ﺩﺭ ﭘﺎﻳﮕﺎﻩ ﺭﺍﺑﻄﻪﺍﻱ‬ ‫ﻫﺪف ﻛﻠﻲ‬ ‫در اﻳﻦ ﻓﺼﻞ اﺑﺘﺪا ﺗﻌﺮﻳﻔﻲ از ﭘﺎﻳﮕﺎه داده راﺑﻄﻪ اي ﺑﻴﺎن ﺷﺪه و ﺳﭙﺲ ﻣﺒﺤﺚ ﺟﺒﺮ‬ ‫راﺑﻄﻪ اي ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﺪ ﮔﺮﻓﺖ‪ .‬در اﻳﻦ راﺳﺘﺎ در اﺑﺘﺪا ﻋﻤﻠﮕﺮﻫﺎي‬ ‫ﺟﺒﺮ راﺑﻄﻪ اي ﻣﻌﺮﻓﻲ ﺷﺪه و ﺗﻮاﻧﺎﻳﻲ اﻳﻦ ﻋﻤﻠﮕﺮﻫﺎ در اﻟﺤﺎق و ﺟﺪاﺳﺎزي اﻃﻼﻋﺎت و‬ ‫ﻧﻤﺎﻳﺶ آﻧﻬﺎ ﺷﺮح داده ﺧﻮاﻫﺪ ﺷﺪ‪ .‬ﺳﭙﺲ ﻋﻤﻠﮕﺮﻫﺎي ﻛﺎر ﺑﺮ روي دادهﻫﺎ ﻣﻄﺮح ﺷﺪه‬ ‫و اﻧﻮاع اﻳﻦ ﻋﻤﻠﮕﺮﻫﺎ ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻨﺪ ﮔﺮﻓﺖ‪ .‬در ﺧﺎﺗﻤﻪ ﻧﻴﺰ ﻣﺮوري‬ ‫ﻣﺨﺘﺼﺮ ﺑﺮ روي ﻣﺒﺤﺚ ﺑﻬﻴﻨﻪ ﺳﺎزي ﻋﺒﺎرات ﺟﺴﺘﺠﻮ در ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺧﻮاﻫﻴﻢ داﺷﺖ‪.‬‬

‫ﻫﺪف رﻓﺘﺎري‬ ‫در اﻳﻦ ﻓﺼﻞ ﻋﻨﺎوﻳﻦ زﻳﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ‪:‬‬ ‫•‬

‫ﺗﻌﺮﻳﻒ ﭘﺎﻳﮕﺎهداده راﺑﻄﻪاي‬

‫•‬

‫ﺟﺒﺮ راﺑﻄﻪاي‬

‫•‬

‫ﻋﻤﻠﮕﺮﻫﺎي ﺟﺒﺮ راﺑﻄﻪاي‬

‫•‬

‫ﻋﻤﻠﮕﺮ ﮔﺰﻳﻨﺶ‬

‫•‬

‫ﻋﻤﻠﮕﺮ ﭘﺮﺗﻮ‬

‫•‬

‫ﻋﻤﻠﮕﺮ ﺗﻐﻴﻴﺮ ﻧﺎم‬

‫•‬

‫ﻋﻤﻠﮕﺮ ﺟﺎﻳﮕﺰﻳﻨﻲ‬

‫•‬

‫ﻋﻤﻠﮕﺮﻫﺎي ﻣﺠﻤﻮﻋﻪ‬

‫‪ 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‬‬

‫ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎه راﺑﻄﻪاي ‪129‬‬

‫‪ -2‬ﺟﺒﺮ راﺑﻄﻪاي )‪ (RA‬و ﻋﻤﻠﮕﺮﻫﺎي آن‬ ‫ﺟﺒﺮ راﺑﻄﻪ اي اراﺋﻪ ﺷﺪه ﺗﻮﺳﻂ ﻛﺎد )‪ (codd‬ﺷﺎﻣﻞ ﻫﺸﺖ ﻋﻤﻠﮕﺮ در دو ﮔﺮوه ﭼﻬﺎر‬ ‫ﺗﺎﻳﻲ ﻣﻲ ﺑﺎﺷﺪ‪ .‬در ﺑﻌﻀﻲ ﻛﺘﺐ ﺗﻌﺪادي ﻋﻤﻠﮕﺮ دﻳﮕﺮ ﻧﻴﺰ ﺑﻪ اﻳﻦ ﻋﻤﻠﮕﺮﻫﺎ اﺿﺎﻓﻪ‬ ‫ﺷﺪه اﻧﺪ‪ .‬ﻛﻠﻴﻪ اﻳﻦ ﻋﻤﻠﮕﺮﻫﺎ ﺑﺮاي ﻛﺎر ﺑﺮ روي ﻣﻔﻬﻮم راﺑﻄﻪ ﻫﺎ ﺗﻌﺮﻳﻒ و ﻃﺮاﺣﻲ‬ ‫ﺷﺪه اﻧﺪ‪ .‬در ﺟﺒﺮ راﺑﻄﻪ اي داده ﻫﺎ ﻫﻤﺎن راﺑﻄﻪ ﻫﺎ ﻣﻲ ﺑﺎﺷﻨﺪ‪ .‬ﻣﺠﻤﻮﻋﻪ ﻋﻤﻠﮕﺮﻫﺎي ﺟﺒﺮ‬ ‫راﺑﻄﻪ اي در ﻋﺒﺎرت زﻳﺮ ﻣﺸﺨﺺ ﺷﺪه اﺳﺖ‪ ،‬ﺑﺪﻳﻦ ﺗﺮﺗﻴﺐ ﻛﻪ‪:‬‬ ‫}} ‪, X , U ,-, ∩ , ÷ , ∞ , X⍬ , ⍬⍺‬‬

‫‪RA = {{Relations}, { Б ,∏ , ℓ ,‬‬

‫در ﺑﻌﻀﻲ از ﻛﺘﺐ ﺗﻌﺪادي از اﻳﻦ ﻋﻤﻠﮕﺮﻫﺎ ﺗﺤﺖ ﻋﻨﻮان ﻋﻤﻠﮕﺮ‬

‫‪set‬‬

‫و ﺗﻌﺪادي‬

‫دﻳﮕﺮ ﺗﺤﺖ ﻋﻨﻮان ﻋﻤﻠﮕﺮ ‪ join‬ﻣﻌﺮﻓﻲ ﺷﺪهاﻧﺪ ﻛﻪ اﻳﻦ دو ﮔﺮوه ﻧﻴﺰ ﺗﻮﺿﻴﺢ داده ﺧﻮاﻫﻨﺪ‬ ‫ﺷﺪ‪ .‬ﻋﻤﻠﮕﺮﻫﺎي ﺟﺒﺮ راﺑﻄﻪاي در راﺑﻄﻪ ﺑﺎﻻ ﺑﻪ ﺗﺮﺗﻴﺐ ﻋﺒﺎرﺗﻨﺪ از‪:‬‬ ‫ﻋﻤﻠﮕﺮ ﮔﺰﻳﻨﺶ‬

‫•‬

‫‪=Б‬‬

‫•‬

‫∏= ﻋﻤﻠﮕﺮ ﭘﺮﺗﻮ‬

‫•‬

‫‪= ℓ‬‬

‫‪2‬‬

‫ﻋﻤﻠﮕﺮ ﺗﻐﻴﻴﺮ ﻧﺎم‬ ‫=‬

‫•‬ ‫•‬

‫‪1‬‬

‫‪= Set‬‬

‫‪3‬‬

‫ﻋﻤﻠﮕﺮ ﺟﺎﻳﮕﺰﻳﻨﻲ‬

‫ﻋﻤﻠﮕﺮ ﻣﺠﻤﻮﻋﻪ‪ ،‬اﻳﻦ ﻋﻤﻠﮕﺮﻫﺎ ﺑﺮ روي ﻣﺠﻤﻮﻋﻪاي از راﺑﻄﻪﻫﺎ ﻋﻤﻞ‬

‫ﻣﻲﻛﻨﻨﺪ و ﺷﺎﻣﻞ ﻋﻤﻠﮕﺮﻫﺎي‬ ‫•‬ ‫•‬ ‫•‬

‫‪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‬‬

‫‪ 130‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫‪ = Join‬ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ )اﻟﺤﺎﻗﻲ( ﺷﺎﻣﻞ ﻋﻤﻠﮕﺮﻫﺎي‬ ‫‪1‬‬

‫•‬

‫ﭘﻴﻮﻧﺪ ﻃﺒﻴﻌﻲ )∞(‬

‫•‬

‫ﻧﻴﻢ ﭘﻴﻮﻧﺪ )‪(⍬⍺‬‬

‫•‬

‫ﭘﻴﻮﻧﺪ ﺷﺮﻃﻲ )‪(X⍬‬‬

‫‪2‬‬

‫در اداﻣﻪ ﺑﺎ ذﻛﺮ ﻣﺜﺎل ﻫﺎﻳﻲ ﺑﻪ ﺷﺮح ﻫﺮ ﻳﻚ از اﻳﻦ ﻋﻤﻠﮕﺮﻫﺎ ﺧﻮاﻫﻴﻢ‬

‫ﭘﺮداﺧﺖ‪.‬‬

‫ﻋﻤﻠﮕﺮﻫﺎي اﺻﻠﻲ ‪(Б) Select‬‬ ‫اﻧﺘﺨﺎب ﺳﻄﺮﻫﺎﻳﻲ از ﻳﻚ راﺑﻄﻪ ﺑﺮ اﺳﺎس ﺷﺮط ﻣﺸﺨﺺ )ﻣﺸﺨﺼﺎت ﻣﺜﻼ ﻳﻚ ﻓﺮد در‬ ‫ﻳﻚ ﺳﻄﺮ )اﻓﺮادي ﻛﻪ ﻣﻌﺪﻟﺸﺎن ﻣﺴﺎوي ‪ x‬اﺳﺖ((‪.‬‬

‫ﻋﻤﻠﮕﺮ اﺻﻠﻲ ‪(∏) Project‬‬ ‫اﻧﺘﺨﺎب دﻳﮕﺮ ﺳﺘﻮﻧﻬﺎي ﻣﺸﺨﺺ از ﻳﻚ راﺑﻄﻪ و ﺣﺬف دﻳﮕﺮ ﺳﺘﻮﻧﻬﺎ‬ ‫ﺗﻠﻔﻦ‬

‫ﻧﺎم‬

‫اﻟﺤﺎق )‪(Join‬‬ ‫داراي اﻧﻮاع ﻣﺨﺘﻠﻒ ﺑﻮده و راﺑﻄﻪ اي را ﺑﺮ ﻣﻲ ﮔﺮداﻧﺪ ﻛﻪ ﺷﺎﻣﻞ ﺗﻤﺎم ‪ Tuple‬ﻫﺎي‬ ‫ﺗﺮﻛﻴﺐ ﺷﺪه از دو ﺟﺪول ﻣﻲ ﺑﺎﺷﺪ‪ .‬ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع در اداﻣﻪ ﻣﺜﺎﻟﻲ از‬ ‫ﻋﻤﻠﮕﺮﻫﺎي اﻟﺤﺎﻗﻲ اراﺋﻪ ﺷﺪه اﺳﺖ‪.‬‬

‫‪1. N at u r a l J o i n‬‬ ‫‪2. Se mi J o i n‬‬

‫ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎه راﺑﻄﻪاي ‪131‬‬ ‫‪R2‬‬

‫∞ ‪R1‬‬

‫‪R2‬‬

‫‪R1‬‬

‫‪c1‬‬

‫‪b1‬‬

‫‪a1‬‬

‫‪b1‬‬

‫‪a1‬‬

‫‪c2‬‬

‫‪b2‬‬

‫‪a2‬‬

‫‪b2‬‬

‫‪a2‬‬

‫‪c3‬‬

‫‪b3‬‬

‫‪a3‬‬

‫‪b3‬‬

‫‪a3‬‬

‫ﺗﻤﺮﻳﻦ‪:‬‬ ‫ﺑﺎ اﺳﺘﻔﺎده از ﻋﻤﻠﮕﺮ )÷( ﻧﺘﻴﺠﻪ‬

‫)‪R1 ÷ R2 = ? (R3‬‬

‫‪R3‬‬

‫را ﺑﺪﺳﺖ آورﻳﺪ‪:‬‬

‫‪R2‬‬

‫?‬

‫‪R1‬‬ ‫‪X‬‬

‫‪a‬‬

‫‪x‬‬

‫‪y‬‬

‫‪a‬‬

‫‪y‬‬

‫‪z‬‬

‫‪a‬‬

‫‪X‬‬

‫‪b‬‬

‫‪y‬‬

‫‪c‬‬

‫ﻧﻜﺘﻪ‪ :‬ﻳﻜﻲ از ﻣﻬﻤﺘﺮﻳﻦ ﺧﻮاص‪ ،‬ﺧﺎﺻﻴﺖ ﺑﺴﺘﻪ ﺑﻮدن )ﺑﺴﺘﺎر ﻳﺎ‬

‫‪closure‬‬

‫( ﻣﻲ ﺑﺎﺷﺪ‪.‬‬

‫ﺑﺪﻳﻦ ﻣﻌﻨﺎ ﻛﻪ ﺧﺮوﺟﻲ ﻫﺮ ﻋﻤﻠﮕﺮ راﺑﻄﻪ اي ﺧﻮد ﻳﻚ راﺑﻄﻪ اﺳﺖ‪ .‬ﺑﻄﻮر ﻣﺜﺎل ﻣﻲ ﺗﻮان‬ ‫ﮔﻔﺖ ﻛﻪ اﺟﺘﻤﺎع دو راﺑﻄﻪ )دو ﺟﺪول( ﻳﻚ راﺑﻄﻪ )ﻳﻚ ﺟﺪول( ﻣﻲ ﮔﺮدد‪.‬‬

‫ﻋﻤﻠﮕﺮﺗﻐﻴﻴﺮ ﻧﺎم )‪(⍴‬‬ ‫اﻳﻦ ﻋﻤﻠﮕﺮ ﻳﻚ راﺑﻄﻪ را ﮔﺮﻓﺘﻪ و ﻧﺴﺨﻪ دﻳﮕﺮي از آن را ﻛﻪ ﻣﻤﻜﻦ اﺳﺖ ﺑﻪ ﺑﻌﻀﻲ از‬ ‫ﺻﻔﺎت اﺳﺎﻣﻲ دﻳﮕﺮي داده ﺷﺪه ﺑﺎﺷﺪ را ﻣﻲ دﻫﺪ‪:‬‬ ‫‪S RENAME city AS Scity‬‬

‫ﺗﻐﻴﻴﺮ ﻧﺎم ﺻﻔﺖ ‪ city‬ﺑﻪ‬

‫‪Scity‬‬

‫در راﺑﻄﻪ‬

‫‪S‬‬

‫اﮔﺮ ﺑﻴﺸﺘﺮ از ﻳﻚ ﺗﻐﻴﻴﺮ اﻧﺠﺎم ﮔﻴﺮد در ﭘﺮاﻧﺘﺰ ﻗﺮار ﻣﻲ دﻫﻴﻢ‪ .‬ﺑﻄﻮر ﻣﺜﺎل‪:‬‬ ‫)‪AS Scity , S# AS SNUM‬‬

‫‪( city‬‬

‫‪S RENAME‬‬

‫ ﭘﺎﻳﮕﺎه دادهﻫﺎ‬132 S#

SNAME

STATUS

City

S1

Smith

20

London

S2 S3 S4 S5

Jones Black Clark Adams

10 30 20 30

Paris Paris London Athens

.‫ ﺟﺪول ﻓﻮق ﺑﻪ ﺟﺪول ذﻳﻞ ﺗﺒﺪﻳﻞ ﻣﻲ ﮔﺮدد‬RENAME ‫ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر‬ SNUM

SNAME

STATUS

Scity

S1

Smith

20

London

S2 S3 S4 S5

Jones Black Clark Adoms

10 30 20 30

Paris Paris London Athens

:‫ﻣﺜﺎل‬ A

S#

SNAME

STATUS

City

S1

Smith

20

London

S4

Clark

20

London

B

S#

SNAME

STATUS

City

S1 S2

Smith Jones

20 10

London Paris

:‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ دو ﺟﺪول ﻓﻮق دارﻳﻢ‬ AՍ B

‫ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎه راﺑﻄﻪاي ‪133‬‬ ‫‪city‬‬

‫‪STATUS‬‬

‫‪SNAME‬‬

‫‪S#‬‬

‫‪London‬‬ ‫‪London‬‬ ‫‪Paris‬‬

‫‪20‬‬ ‫‪20‬‬ ‫‪10‬‬

‫‪Smith‬‬ ‫‪Clark‬‬ ‫‪Jones‬‬

‫‪S1‬‬ ‫‪S4‬‬ ‫‪S2‬‬

‫‪AՈB‬‬

‫‪City‬‬

‫‪STATUS‬‬

‫‪SNAME‬‬

‫‪S#‬‬

‫‪London‬‬

‫‪20‬‬

‫‪Smith‬‬

‫‪S1‬‬

‫‪B-A‬‬

‫‪City‬‬

‫‪STATUS‬‬ ‫‪20‬‬

‫‪London‬‬

‫‪SNAME‬‬ ‫‪Clark‬‬

‫‪S#‬‬ ‫‪S4‬‬

‫‪A-B‬‬

‫‪city‬‬

‫‪STATUS‬‬

‫‪SNAME‬‬

‫‪S#‬‬

‫‪Paris‬‬

‫‪10‬‬

‫‪Jones‬‬

‫‪S2‬‬

‫ﺗﻮﺟﻪ‪:‬‬ ‫‪(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‬‬

‫اﺳﺖ و در واﻗﻊ ﺗﻌﺪادي از ﺳﻄﺮﻫﺎ را‬

‫اﻧﺘﺨﺎب ﻣﻲ ﻛﻨﻴﻢ‪ .‬ﺷﻜﻞ ﻛﻠﻲ دﺳﺘﻮر ﺑﻪ ﻳﻜﻲ از دو ﺻﻮرت ذﻳﻞ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫)ﻧﺎم راﺑﻄﻪ( ‪) Б‬در ﻛﺎﻣﭙﻴﻮﺗﺮ اﺟﺮا ﻧﻤﻲﺷﻮد(‪.‬‬ ‫ﺷﺮط ﻳﺎ ﺷﺮﻃﻬﺎ‬ ‫ﺷﺮط ﻳﺎ ﺷﺮﻃﻬﺎ‬ ‫ﻣﺜﺎل‪:‬‬

‫‪where‬‬

‫ﻧﺎم راﺑﻄﻪ )در ﻛﺎﻣﭙﻴﻮﺗﺮ اﺟﺮا ﻧﻤﻲ ﺷﻮد )‪.((SQL‬‬

‫ ﭘﺎﻳﮕﺎه دادهﻫﺎ‬134

Б (S)

‫ﻳﺎ‬

S where city = London

city = London S# S1 S4

SNAME smith clark

STATUS 20 20

CITY London london

:‫ﻣﺜﺎل‬ Б (S) CITY =

" London"

AND SNAME = S# S1

SNAME smith

" smith"

STATUS 20

CITY London

(∏) ‫دﺳﺘﻮر‬ ‫( ﻣﻲ ﺑﺎﺷﺪ ﻛﻪ در واﻗﻊ ﺳﺘﻮن ﻫﺎﻳﻲ از راﺑﻄﻪ را‬Project) ‫اﻳﻦ دﺳﺘﻮر ﻫﻤﺎن ﻋﻤﻠﮕﺮ ﭘﺮﺗﻮ‬ :‫ ﺷﻜﻞ ﻛﻠﻲ دﺳﺘﻮر ﺑﻪ ﻳﻜﻲ از دو ﺻﻮرت ذﻳﻞ ﻣﻲ ﺑﺎﺷﺪ‬.‫در ﺑﺮ ﻣﻲ ﮔﻴﺮد‬ ∏ (‫)ﻧﺎم راﺑﻄﻪ‬

-1

‫ﻧﺎم ﺻﻔﺖ‬ ‫] ﻧﺎم ﺻﻔﺘﻬﺎ [ ﻧﺎم راﺑﻄﻪ‬

-2

:‫ﻣﺜﺎل‬ ∏ (s )

‫ﻳﺎ‬

s [city]

City City London Paris Athens

∏ (S ) S#

‫و‬

‫ﻳﺎ‬ SNAME

S [ S# , SNAME ]

:‫ﻣﺜﺎل‬

‫ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎه راﺑﻄﻪاي ‪135‬‬

‫‪SNAME‬‬

‫‪S#‬‬

‫‪Smith‬‬ ‫‪Jones‬‬ ‫‪Black‬‬ ‫‪Clark‬‬ ‫‪Adams‬‬

‫‪S1‬‬ ‫‪S2‬‬ ‫‪S3‬‬ ‫‪S4‬‬ ‫‪S5‬‬

‫ﺗﻤﺮﻳﻦ‪ :‬ﻧﺎم اﻓﺮادﻳﻜﻪ ﺷﻬﺮﺷﺎن ﻟﻨﺪن )‪ (london‬اﺳﺖ ؟‬ ‫"‪" London‬‬ ‫ﺗﻤﺮﻳﻦ‪:‬‬

‫‪S#‬‬

‫=‬

‫)‪Б (s‬‬ ‫‪∏ city‬‬ ‫‪Name‬‬

‫اﻓﺮادﻳﻜﻪ وﺿﻌﻴﺘﺸﺎن ﺑﺮاﺑﺮ ‪ 30‬اﺳﺖ‪.‬‬ ‫)‪Б (s‬‬ ‫∏‬

‫‪STATUS = 30‬‬

‫‪S#‬‬ ‫‪S#‬‬

‫)"‪" London‬‬

‫= ‪WHERE CITY‬‬

‫‪(S‬‬

‫‪Name‬‬

‫ﻋﻤﻠﮕﺮﻫﺎي ﭘﻴﻮﻧﺪ‬ ‫ﺿﺮب دﻛﺎرﺗﻲ‬

‫)‪(join‬‬

‫‪1‬‬

‫راﺑﻄﻪ اي اﺳﺖ ﻛﻪ ﺳﺘﻮﻧﻬﺎﻳﺶ ﻣﺠﻤﻮع ﺳﺘﻮﻧﻬﺎي دو راﺑﻄﻪ و ﺳﻄﺮﻫﺎﻳﺶ ﺑﺮاﺑﺮ ﺑﺎ‬ ‫ﺣﺎﺻﻠﻀﺮب )ﺗﻤﺎﻣﻲ ﺗﺮﻛﻴﺒﻬﺎي ﻣﻤﻜﻦ( ﺳﻄﺮﻫﺎي آن دو راﺑﻄﻪ )ﺗﻜﺮاري ﻧﻴﺰ ﺧﻮاﻫﻴﻢ‬ ‫داﺷﺖ( اﺳﺖ‪.‬‬

‫ﺧﻮاص ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ‬ ‫•‬

‫اﻃﻼﻋﺎت ﻛﺎﻣﻞ‬ ‫‪1 . C a r t e si a n P r o d uc t‬‬

‫‪ 136‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫ﺣﺠﻢ ﻳﺎ ﻓﻀﺎي زﻳﺎدي اﺷﻐﺎل ﻣﻲﻛﻨﺪ )ﺣﺘﻲ اﻻﻣﻜﺎن اﻧﺠﺎم ﻧﻤﻲدﻫﻴﻢ(‪.‬‬

‫•‬

‫‪*b=b*a‬‬

‫‪a‬‬

‫ﻛﺎرﺑﺮدﻫﺎي ﺿﺮب دﻛﺎرﺗﻲ)‪(X‬‬ ‫ﻳﻜﻲ از ﻛﺎرﺑﺮدﻫﺎي ﺿﺮب دﻛﺎرﺗﻲ ﻣﻮاﻗﻌﻲ اﺳﺖ ﻛﻪ ﺑﻴﻦ ﺟﺪاول ﻋﺎﻣﻞ ارﺗﺒﺎط‬ ‫)ﺻﻔﺘﻬﺎي ﻣﺸﺨﺺ( ﻧﺪاﺷﺘﻪ ﺑﺎﺷﻴﻢ )راه ﺣﻞ ﺧﻮﺑﻲ ﻧﻴﺴﺖ زﻳﺮا ﻓﻀﺎي زﻳﺎدي اﺷﻐﺎل‬ ‫ﻣﻲ ﻛﻨﺪ(‪.‬‬ ‫‪y‬‬

‫*‬

‫‪x‬‬

‫‪c‬‬

‫‪d‬‬

‫ﺑﺨﺎﻃﺮ ﭘﺮ ﻫﺰﻳﻨﻪ ﺑﻮدن ﺿﺮب‪ join ،‬ﻫﺎي دﻳﮕﺮ اراﺋﻪ ﮔﺮدﻳﺪﻧﺪ )اﺻﻞ‬

‫‪a‬‬

‫‪b‬‬

‫‪join‬‬

‫ﺑﺎ ﺿﺮب‬

‫ﺷﺮوع ﻣﻲ ﺷﻮد(‪.‬‬

‫اﻟﺤﺎق ﻃﺒﻴﻌﻲ‬

‫‪Natural join‬‬

‫)∞(‬

‫ﻧﺘﻴﺠﻪ ﺣﺎﺻﻞ از اﻳﻦ ﻋﻤﻠﻴﺎت ﺷﺎﻣﻞ ﺟﺪوﻟﻲ اﺳﺖ ﻛﻪ ﺳﺘﻮﻧﻬﺎﻳﺶ‪ ،‬ﺳﺘﻮﻧﻬﺎي دو‬ ‫ﺟﺪوﻟﻲ )ﺑﺪون ﺗﻜﺮار( و ﺳﻄﺮﻫﺎﻳﺶ‪ ،‬ﺳﻄﺮﻫﺎﻳﻲ از ﺟﺪول اﺳﺖ ﻛﻪ ﻣﻘﺎدﻳﺮ ﻫﻤﻪ‬ ‫ﺳﺘﻮﻧﻬﺎي ﻫﻢ ﻧﺎﻣﺶ ﻣﺴﺎوي ﻫﺴﺘﻨﺪ‪.‬‬ ‫‪B‬‬ ‫‪C‬‬

‫‪b‬‬

‫‪a‬‬

‫‪4‬‬

‫‪2‬‬

‫‪1‬‬

‫‪1‬‬

‫‪2‬‬

‫‪1‬‬

‫‪3‬‬

‫‪4‬‬

‫‪2‬‬

‫‪∞A‬‬

‫‪B‬‬ ‫=‬

‫‪A join B‬‬

‫=‬

‫‪c‬‬

‫‪b‬‬

‫‪4‬‬ ‫‪10‬‬ ‫‪8‬‬ ‫‪3‬‬ ‫‪1‬‬

‫‪2‬‬ ‫‪5‬‬ ‫‪6‬‬ ‫‪4‬‬ ‫‪2‬‬

‫در ﻣﺒﺎﺣﺚ ﭘﻴﻮﻧﺪ راﺑﻄﻪﻫﺎ ﻧﻜﺎت زﻳﺮ ﺑﺎﻳﺪ ﻣﻮرد ﺗﻮﺟﻪ ﻗﺮار ﮔﻴﺮد‪:‬‬ ‫)‪( A ∞B) ∞ C = A ∞ (B ∞ C‬‬ ‫‪A∞B= B∞A‬‬

‫‪A‬‬ ‫‪b‬‬

‫‪a‬‬

‫‪2‬‬ ‫‪4‬‬

‫‪1‬‬ ‫‪2‬‬

‫ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎه راﺑﻄﻪاي ‪137‬‬

‫اﮔﺮ دو ﺟﺪول ‪ A‬و ‪ B‬داراي ﺻﻔﺎت ﻣﺸﺘﺮﻛﻲ ﻧﺒﺎﺷﻨﺪ ∞ ﺗﺒﺪﻳﻞ ﺑﻪ ‪ X‬ﻣﻲ ﺷﻮد‪.‬‬ ‫)‪join‬‬

‫‪(X ⍬ (⍬- join) teta‬‬

‫و اﻳﻦ ﻋﺒﺎرت ﻣﻌﺎدل ﺿﺮب دﻛﺎرﺗﻲ اﺳﺖ ﻛﻪ ﺷﺮﻃﻲ ﻧﻴﺰ ﺑﻪ آن اﻓﺰوده ﺷﺪه اﺳﺖ‪.‬‬ ‫ﺷﺮط‬

‫ﻳﺎ‬

‫‪(R1 * R2) WHERE‬‬

‫‪R1 * R2‬‬

‫ﺷﺮط‬ ‫ﻛﺎرﺑﺮد‪ :‬ﻣﻮاﻗﻌﻲ ﻛﻪ ﻧﻴﺎز ﺑﻪ‬

‫دو راﺑﻄﻪ ﺑﺮ اﺳﺎس ﺷﺮط ﺧﺎﺻﻲ ﺑﻪ ﻏﻴﺮ از ﺑﺮاﺑﺮي‬

‫‪join‬‬

‫آﻧﻬﺎ ﺑﺎﺷﺪ‪.‬‬ ‫ﻣﺜﺎل‪:‬‬ ‫‪B‬‬

‫‪A*B‬‬

‫‪semi join‬‬

‫‪A‬‬

‫‪A.b > B.c‬‬ ‫‪b‬‬ ‫‪c‬‬

‫‪a‬‬

‫‪d‬‬

‫‪c‬‬

‫‪b‬‬

‫‪a‬‬

‫‪K‬‬

‫‪10‬‬

‫‪15‬‬

‫‪x‬‬

‫‪K‬‬

‫‪10‬‬

‫‪20‬‬

‫‪y‬‬

‫‪K‬‬ ‫‪l‬‬

‫‪10‬‬ ‫‪25‬‬

‫‪15‬‬ ‫‪20‬‬

‫‪x‬‬ ‫‪y‬‬

‫‪d‬‬

‫=‪⍺‬‬

‫ﻫﻤﺎن ‪ X ⍬‬اﺳﺖ ﻛﻪ ﻓﻘﻂ ﺷﺎﻣﻞ ﺳﺘﻮﻧﻬﺎي ﺟﺪول اول ﻣﻲ ﺑﺎﺷﺪ )ﺑﺪون ﺳﺘﻮﻧﻬﺎي‬

‫ﺗﻜﺮاري(‪.‬‬ ‫‪⍺ R2‬‬ ‫ﺷﺮط‬

‫‪R1‬‬

‫ﻛﺎرﺑﺮد‪ :‬در ﭘﺎﻳﮕﺎهﻫﺎي داده ﺗﻮزﻳﻊ ﻳﺎﻓﺘﻪ‬

‫)‪DB‬‬

‫‪ (Distributed‬ﺑﻜﺎر ﻣﻲ رود ﺗﺎ از اﻧﺘﻘﺎل‬

‫اﻃﻼﻋﺎت زﻳﺎدي ﺟﻠﻮﮔﻴﺮي ﻛﻨﺪ‪.‬‬ ‫ﻣﺜﺎل‪:‬‬ ‫‪B‬‬

‫‪A‬‬

‫‪B⍺A‬‬

‫‪ 138‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﻋﻤﻠﮕﺮ ﺗﻘﺴﻴﻢ‬

‫‪15‬‬

‫‪x‬‬

‫‪20‬‬

‫‪y‬‬

‫‪c.B < b.A‬‬

‫‪1‬‬

‫ﻓﺮض ﻛﻨﻴﺪ‬ ‫)‪ Yn‬و‪ ...‬و ‪ Y2‬و ‪ Y1‬و ‪ Xn‬و‪ ...‬و ‪ X2‬و‬

‫‪1‬‬

‫‪A (X‬‬

‫و‬ ‫)‪ Yn‬و‪ ...‬و ‪ Y2‬و‬

‫‪1‬‬

‫‪B (Y‬‬

‫در ﺗﻘﺴﻴﻢ دو راﺑﻄﻪ‪ ،‬ﺳﺘﻮﻧﻬﺎي ﺑﺎﻗﻲ ﻣﺎﻧﺪه و ﺳﻄﺮﻫﺎ‪ ،‬ﺳﻄﺮﻫﺎﻳﻲ اﺳﺖ ﻛﻪ ﺷﺮط در ﻫﻤﻪ‬ ‫آﻧﻬﺎ ﺻﺎدق اﺳﺖ‪.‬‬ ‫)‪ Xn‬و‪ ...‬و ‪ X2‬و ‪(X1‬‬ ‫ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ اﮔﺮ‬ ‫ﻧﺪاﺷﺘﻪ‬

‫ﺑﺎﺷﻴﻢ‪Xn‬‬

‫‪Y2‬‬

‫=‬

‫را ﻧﺪاﺷﺘﻪ ﺑﺎﺷﻴﻢ‬

‫‪÷B‬‬

‫‪X2‬‬

‫‪= A‬‬

‫‪A DIVIDE By B‬‬

‫را ﺑﻪ ﻣﺎ ﻧﻤﻲ دﻫﺪ‪ ،‬اﮔﺮ‬

‫‪Yn‬‬

‫را‬

‫را ﺑﻪ ﻣﺎ ﻧﻤﻲ دﻫﺪ‪.‬‬

‫ﻣﻤﻜﻦ اﺳﺖ اﻳﻦ ﻧﻜﺘﻪ ﺑﻪ ذﻫﻦ ﺑﺮﺳﺪ ﻛﻪ اﺳﺎﺳﺎً اﻳﻦ ﻋﻤﻠﮕﺮ ﭼﻪ ﻛﺎرﺑﺮدﻫﺎﻳﻲ ﻣﻲﺗﻮاﻧﺪ‬ ‫داﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬در ﭘﺎﺳﺦ ﺑﻪ اﻳﻦ ﭘﺮﺳﺶ ﺑﺎﻳﺪ ﮔﻔﺖ ﻛﻪ ﻳﻜﻲ از ﺳﺎده ﺗﺮﻳﻦ ﻣﻮارد اﺳﺘﻔﺎده از‬ ‫اﻳﻦ ﻋﻤﻠﮕﺮ ﭘﺮس و ﺟﻮﻫﺎﻳﻲ اﺳﺖ ﻛﻪ ﺑﺎ اﺳﺘﻔﺎده از آﻧﻬﺎ دﻧﺒﺎل ﻣﻘﺎدﻳﺮي ﺑﮕﺮدﻳﻢ ﻛﻪ ﺣﺎوي‬ ‫ﻳﻚ ﻛﻠﻤﻪ ﺧﺎص ﺑﺎﺷﺪ‪) .‬ﻣﺜﻼ ﺗﻤﺎم ‪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‬‬

‫ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎه راﺑﻄﻪاي ‪139‬‬

‫ﻗﻄﻌﺎت؟‬ ‫‪( ∏ (SP) ÷ ∏ (P)) ∞ S‬‬ ‫‪P#‬‬

‫∏‬

‫‪s# , P#‬‬ ‫‪SNAME‬‬

‫ﺷﻤﺎر ﺗﻤﺎم ﻗﻄﻌﺎت‬

‫ﺟﻮاب‪:‬‬

‫‪S#‬‬

‫ﺷﻤﺎر ﺳﺎزﻧﺪه و ﻗﻄﻌﺎﺗﻲ ﻛﻪ ﺗﻮﻟﻴﺪ ﻣﻲﻛﻨﻨﺪ را دارد‬ ‫)ﺗﻜﺮاري ﻫﻢ دارد(‬

‫ﻛﻪ ﻫﻤﻪ ﻗﻄﻌﺎت را ﺗﻮﻟﻴﺪ ﻛﻨﺪ‪.‬‬

‫از آﻧﺠﺎﺋﻴﻜﻪ در ﺟﺴﺘﺠﻮس ﻧﺎم ﻗﻄﻌﻪ ﻫﺴﺘﻴﻢ‪ ،‬ﭘﺲ ﺟﻮاب را ﺑﺎ ﺟﺪول‬

‫‪join ،S‬‬

‫ﻣﻲ ﻛﻨﻴﻢ‬

‫ﻛﻪ در آﺧﺮ ﻧﺎم آن ﺗﻮﻟﻴﺪ ﻛﻨﻨﺪﮔﺎن را ﺑﺪﺳﺖ آورﻳﻢ‪.‬‬ ‫ﺳﻮال‪:‬‬ ‫ﺷﻤﺎره ﻓﺮوﺷﻨﺪﮔﺎﻧﻲ ﻛﻪ ﺣﺪاﻗﻞ ﺗﻤﺎم ﻗﻄﻌﺎت ﻋﺮﺿﻪ ﺷﺪه ﺗﻮﺳﻂ ‪ S2‬را ﻋﺮﺿﻪ ﻣﻲ ﻛﻨﻨﺪ؟‬ ‫)‪Б (sp‬‬

‫÷ )‪∏ (s‬‬

‫‪S#=ՙS2̀՚‬‬

‫‪S#‬‬

‫ﺳﻮال‪:‬‬ ‫ﺟﺪاول زﻳﺮ را در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺑﻪ ﭘﺮﺳﺶ ﻫﺎ ﭘﺎﺳﺦ دﻫﻴﺪ‪.‬‬ ‫)‪ clg #‬و ‪ avg‬و ‪ city‬و ‪ SNAME‬و‬ ‫)‪clg#‬‬

‫و ‪ degree‬و ‪ esp‬و ‪ affice‬و‬ ‫)‪ clg#‬و ‪ unit‬و‬

‫)‪ score‬و ‪ pname‬و‪ term‬و‬

‫‪Stud (S#‬‬

‫‪prof (pname‬‬

‫‪ cname‬و‪crs (c#‬‬

‫‪ s#‬و‪ c#‬و‪sec (sec#‬‬

‫)‪ pnam‬و ‪ city‬و ‪ clgname‬و‬

‫‪clg (clg#‬‬

‫اﻟﻒ( ﺷﻤﺎره داﻧﺸﺠﻮﻳﻲ‪ ،‬ﻧﺎم‪ ،‬ﻛﺪ داﻧﺸﻜﺪه و ﻣﻌﺪل داﻧﺸﺠﻮﻳﻲ ﻛﻪ ﻣﻴﺎﻧﮕﻴﻦ ﻧﻤﺮات آﻧﻬﺎ‬ ‫ﺑﺎﻻي ‪ 15‬ﻣﻲ ﺑﺎﺷﺪ‪.‬‬ ‫ب( ﻟﻴﺴﺖ ﻧﺎم اﺳﺎﺗﻴﺪي ﻛﻪ رﺋﻴﺲ داﻧﺸﻜﺪه ﻧﻴﺴﺘﻨﺪ‪.‬‬ ‫ج( ﻣﺸﺨﺼﺎت ﻛﺎﻣﻞ روﺳﺎي داﻧﺸﻜﺪهﻫﺎ‪.‬‬

‫‪ 140‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫د( داﻧﺸﺠﻮﻳﺎﻧﻲ ﻛﻪ ﻫﻤﻪ درﺳﻬﺎي اﺳﺘﺎد ‪ x‬را ﮔﺮﻓﺘﻪ اﻧﺪ‪.‬‬ ‫ه( درﺳﻬﺎﻳﻲ ﻛﻪ ﺗﻮﺳﻂ ﻫﻤﻪ داﻧﺸﻜﺪهﻫﺎ اراﺋﻪ ﻣﻲ ﺷﻮد‪.‬‬ ‫و( ﻣﺸﺨﺼﺎت دروس ‪ 4‬واﺣﺪي ﻛﻪ در ﻧﻴﻤﺴﺎل اول ‪ 78‬اراﺋﻪ ﺷﺪه اﻧﺪ‪.‬‬

‫‪ -3‬ﻋﻤﻠﮕﺮﻫﺎي ﻛﺎر ﺑﺮروي دادهﻫﺎ‬ ‫ﻫﺮ ﻛﺎرﺑﺮ در ﻣﺤﻴﻂ ﭘﺎﻳﮕﺎه داده ﺑﺮاي اﻧﺠﺎم ﻋﻤﻠﻴﺎت ﻧﻴﺎزﻣﻨﺪ‪ ،‬ﻋﻤﻠﮕﺮ ﻫﺎي زﻳﺮ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫‪1‬‬

‫•‬

‫ﻋﻤﻠﮕﺮ درج‬

‫•‬

‫ﻋﻤﻠﮕﺮ ﺑﻬﻨﮕﺎم ﺳﺎزي‬

‫•‬

‫ﻋﻤﻠﮕﺮ ﺣﺬف‬

‫‪2‬‬

‫‪3‬‬

‫اﻳﻦ ﻋﻤﻠﮕﺮﻫﺎ در واﻗﻊ اﻣﻜﺎﻧﺎت ﺣﺬف‪ ،‬اﺿﺎﻓﻪ و اﺻﻼًح اﻃﻼﻋﺎت را ﺑﺮاي ﻛﺎرﺑﺮ ﻓﺮاﻫﻢ‬ ‫ﻣﻲ آورﻧﺪ‪ .‬در اداﻣﻪ ﺑﻪ ﺷﺮح ﻫﺮﻳﻚ ﺧﻮاﻫﻴﻢ ﭘﺮداﺧﺖ‪.‬‬

‫‪ 1-3‬ﻋﻤﻠﮕﺮ درج‬ ‫اﻳﻦ ﻋﻤﻠﮕﺮ اﻣﻜﺎن اﺿﺎﻓﻪ ﻛﺮدن اﻃﻼﻋﺎت ﺑﻪ ﺟﺪاول اﻃﻼﻋﺎﺗﻲ )راﺑﻄﻪ ﻫﺎ( را ﻓﺮاﻫﻢ‬ ‫ﻣﻲ آورد‪ .‬اﻳﻦ ﻋﻤﻠﮕﺮ در ﺣﺎﻟﺖ ﻛﻠﻲ اﻣﻜﺎن اﻓﺰودن داده ﻫﺎ ﺑﻪ دوﺻﻮرت زﻳﺮ را دارد‪.‬‬ ‫•‬

‫اﻓﺰودن ﻣﻘﺎدﻳﺮ ﻣﺸﺨﺺ ﺑﻌﻨﻮان ﻳﻚ ﺳﻄﺮ اﻃﻼﻋﺎﺗﻲ ﺑﻪ ﺟﺪول‬

‫•‬

‫اﻓﺰودن ﺗﻌﺪادي ﺳﻄﺮ اﻃﻼﻋﺎﺗﻲ از ﺟﺪوﻟﻲ ﺑﻪ ﺟﺪول دﻳﮕﺮ‬

‫ﺷﻜﻞ ﻛﻠﻲ دﺳﺘﻮر ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫‪Target‬‬

‫‪INTO‬‬

‫‪source‬‬

‫‪INSERT‬‬

‫ﺟﺪول ﻣﻘﺼﺪ‬

‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲ ﮔﺮدد ﻋﺒﺎرت‬

‫‪Source‬‬

‫ﻣﻲ ﺗﻮاﻧﺪ ﺑﺼﻮرت ﻣﺠﻤﻮﻋﻪ اي ﻣﺸﺨﺺ‬

‫از ﻣﻘﺎدﻳﺮ ﻛﻪ ﻣﻨﻄﺒﻖ ﺑﺎ ﺟﺪول ﻣﻘﺼﺪ ﻫﺴﺘﻨﺪ‪ ،‬ﺑﺎﺷﺪ و ﻳﺎ اﻳﻨﻜﻪ ﺧﺮوﺟﻪ ﺣﺎﺻﻞ از ﻳﻚ‬

‫‪1. In s e r t‬‬ ‫‪2. U p da t e‬‬ ‫‪3. D el e t e‬‬

‫ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎه راﺑﻄﻪاي ‪141‬‬

‫ﺟﺪول و ﻳﺎ ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از اﻋﻤﺎل ﻋﻤﻠﮕﺮﻫﺎي ﺟﺒﺮ راﺑﻄﻪ اي ﺑﺮ روي ﻳﻚ ﻳﺎ ﭼﻨﺪ‬ ‫ﺟﺪول ﺑﺎﺷﺪ‪.‬‬ ‫ﻣﺜﺎل‪:‬‬ ‫‪INTO TEMP‬‬

‫آن ﺳﻄﺮﻫﺎﻳﻲ ﻛﻪ ‪= ՙLondon՚‬‬

‫‪city‬‬

‫)‪= ՙlondon՚‬‬

‫‪INSERT (S WHERE city‬‬

‫اﺳﺖ را در راﺑﻄﻪ ‪ ،S‬را ﺑﻪ ﺟﺪول‬

‫‪temp‬‬

‫اﺿﺎﻓﻪ‬

‫ﻣﻲ ﻛﻨﺪ‪.‬‬

‫‪ 2-3‬ﻋﻤﻠﮕﺮ ﺑﻬﻨﮕﺎم ﺳﺎزي‬ ‫اﻳﻦ ﻋﻤﻠﮕﺮ اﻣﻜﺎن اﺻﻼًح اﻃﻼﻋﺎت ذﺧﻴﺮه ﺷﺪه در ﻳﻚ ﺟﺪول را ﺑﺮاي ﻛﺎرﺑﺮ ﻓﺮاﻫﻢ‬ ‫ﻣﻲ آورد‪ .‬ﺷﻜﻞ ﻛﻠﻲ دﺳﺘﻮر ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫‪Comma list-assignment‬‬

‫‪UPDATE target‬‬

‫ﻳﻚ اﻧﺘﺴﺎب‬ ‫ﻣﺜﺎل‪:‬‬ ‫’‪UPDATE P city = ‘Paris’ WHERE color = ‘Red‬‬

‫ﻋﺒﺎرت ﺑﺎﻻ ﺑﺪﻳﻦ ﻣﻌﻨﻲ اﺳﺖ ﻛﻪ از راﺑﻄﻪ ‪ P‬اﻧﺪﺳﺘﻪ از ﺳﻄﺮﻫﺎﻳﻲ را ﻛﻪ ﻣﻘﺪار ﺻﻔﺖ‬ ‫ﺧﺎﺻﻪ رﻧﮓ در آﻧﻬﺎ ﻗﺮﻣﺰ اﺳﺖ‪ ،‬ﻣﻘﺪار ﺻﻔﺖ ﺧﺎﺻﻪ ﺷﻬﺮ را ﺑﺮاﺑﺮ ﺑﺎ ﭘﺎرﻳﺲ ﻛﻨﻴﻢ‪ .‬اﻳﻦ‬ ‫ﻋﻤﻠﮕﺮ را ﺑﺼﻮرت ﻧﻤﺎدﻳﻦ )ﻧﻤﺎﻳﺶ( ﻣﻲ ﺗﻮان ﺑﻪ ﺻﻮرت زﻳﺮ ﻧﺸﺎن داد‪.‬‬ ‫)‪(P‬‬ ‫’‪WHERE color = ‘Red‬‬ ‫’‪City = ‘Paris‬‬

‫ﻻزم ﺑﺬﻛﺮ اﺳﺖ ﻛﻪ ﻋﺒﺎرت ﺑﺎﻻ در ﺑﻌﻀﻲ از ﻛﺘﺐ ﺑﺼﻮرت ﻛﺎﻣﻞ ﺗﺮ ﺑﻴﺎن ﻣﻲ ﺷﻮد ﻛﻪ‬ ‫در ﺑﺤﺚ ﻓﻌﻠﻲ ﻣﺪﻧﻈﺮ ﻧﻴﺴﺖ‪.‬‬

‫‪ 3-3‬ﻋﻤﻠﮕﺮ ﺣﺬف‬ ‫اﻳﻦ ﻋﻤﻠﮕﺮ ﺟﻬﺖ ﺣﺬف ﺳﻄﺮﻫﺎﻳﻲ از اﻃﻼﻋﺎت درون ﺟﺪاول ﺑﻜﺎر ﻣﻲرود‪ .‬ﺷﻜﻞ‬ ‫ﻛﻠﻲ دﺳﺘﻮر ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫‪R -E‬‬

‫‪R‬‬

‫‪target‬‬

‫‪DELETE‬‬

‫‪ 142‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﻣﺜﺎل‪:‬‬ ‫‪< 20‬‬

‫‪STATUS‬‬

‫‪DELETE S WHERE‬‬

‫ﻣﻌﻨﻲ دﺳﺘﻮر ﻣﺬﻛﻮر ﺑﺪﻳﻦ ﺻﻮرت اﺳﺖ‪ :‬ﺣﺬف ﻛﻦ از راﺑﻄﻪ‬ ‫‪STATUS‬‬

‫‪S‬‬

‫آﻧﻬﺎﻳﻲ را ﻛﻪ‬

‫آن ﻛﻤﺘﺮ از ‪ 20‬اﺳﺖ )ﭘﺲ ﻳﻚ ﺳﻄﺮ ﺣﺬف ﻣﻲ ﮔﺮدد(‪.‬‬

‫ﺗﻮﺟﻪ‪ :‬راﺑﻄﻪ‬

‫‪R‬‬

‫و‬

‫‪E‬‬

‫ﺑﺎﻳﺪ داراي ﺷﺮط‬

‫‪Same arity‬‬

‫ﺑﺎﺷﺪ )ﺗﻌﺪاد و ﻧﻮع ﺳﺘﻮن ﻫﺎﻳﺸﺎن‬

‫ﻳﻜﺴﺎن اﺳﺖ(‪.‬‬

‫‪ -4‬ﻛﺎﻣﻞ ﺑﻮدن ﺟﺒﺮ راﺑﻄﻪاي‬ ‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﻲ داﻧﻴﺪ ﻣﻲ ﺗﻮان ﻋﺒﺎرات ﺟﺒﺮ راﺑﻄﻪ اي را ﺑﺎ اﺳﺘﻔﺎده از ﺗﺮﻛﻴﺐ ﻋﻤﻠﮕﺮﻫﺎ‬ ‫ﻧﻮﺷﺖ و ﺣﺎﺻﻞ ﻫﺮ ﻋﺒﺎرت ﻣﻌﺘﺒﺮ ﺟﺒﺮ راﺑﻄﻪ اي ﺑﺎز ﻫﻢ ﻳﻚ راﺑﻄﻪ اﺳﺖ‪ .‬ﻟﺬا ﻣﻲ ﺗﻮان‬ ‫ﭼﻨﻴﻦ ارزﻳﺎﺑﻲ ﻛﺮد ﻛﻪ ﻫﺮ راﺑﻄﻪ ﻣﻌﺘﺒﺮ از ﻣﺠﻤﻮﻋﻪ راﺑﻄﻪ ﻫﺎ را ﻣﻲ ﺗﻮان ﺑﻪ ﻛﻤﻚ ﻳﻚ‬ ‫ﻋﺒﺎرت ﺟﺒﺮ راﺑﻄﻪ اي ﻧﻮﺷﺖ‪ .‬ﺑﺎ اﻳﻦ وﺻﻒ ﻣﻲ ﺗﻮان ﮔﻔﺖ ﻛﻪ ﺟﺒﺮ راﺑﻄﻪ اي از ﻧﻈﺮ‬ ‫راﺑﻄﻪ اي ﻛﺎﻣﻞ اﺳﺖ ﻳﺎ ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ ﺟﺒﺮ راﺑﻄﻪ اي ﻛﻤﺎل راﺑﻄﻪ اي را دارد‪ .‬ﺑﺪﻳﻦ ﻋﻠﺖ‬ ‫ﻣﻲ ﺗﻮان ﺟﺒﺮ راﺑﻄﻪ اي را ﻣﻌﻴﺎر ﺗﺸﺨﻴﺺ ﻛﻤﺎل راﺑﻄﻪ اي ﺑﺮاي زﺑﺎنﻫﺎي راﺑﻄﻪ اي‬ ‫داﻧﺴﺖ‪ .‬ﻳﻌﻨﻲ ﻣﻲ ﺗﻮان ﮔﻔﺖ زﺑﺎﻧﻲ داراي ﻛﻤﺎل راﺑﻄﻪ اي اﺳﺖ ﻛﻪ ﺣﺪاﻗﻞ ﻫﺮ راﺑﻄﻪاي‬ ‫ﻛﻪ ﺑﺎ ﻋﺒﺎرت ﺟﺒﺮ راﺑﻄﻪ اي ﻗﺎﺑﻞ ﺗﻌﺮﻳﻒ ﺑﺎﺷﺪ‪ ،‬ﺗﻮﺳﻂ آن زﺑﺎن ﻫﻢ ﺗﻌﺮﻳﻒ ﺷﺪﻧﻲ‬ ‫ﺑﺎﺷﺪ‪.‬‬

‫‪ -5‬ﺣﺴﺎب راﺑﻄﻪاي‬ ‫ﻧﻮع دﻳﮕﺮي از اﻣﻜﺎﻧﺎت اﻧﺠﺎم ﻋﻤﻠﻴﺎت در راﺑﻄﻪ ﻫﺎ‪ ،‬ﺣﺴﺎب راﺑﻄﻪ اي اﺳﺘﻜﻪ ﻣﻨﻄﻘﺎً‬ ‫ﻣﻌﺎدل ﺟﺒﺮ راﺑﻄﻪ اي ﻣﻲ ﺑﺎﺷﺪ‪ .‬ﻳﻌﻨﻲ ﺑﺮاي ﻫﺮ ﻋﺒﺎرت ﺟﺒﺮ راﺑﻄﻪ اي‪ ،‬ﻳﻚ ﻋﺒﺎرت ﻣﻌﺎدل‬ ‫در ﺣﺴﺎب راﺑﻄﻪ اي وﺟﻮد دارد و ﺑﺎﻟﻌﻜﺲ‪ .‬دراﻳﻨﺠﺎ ﻻزم اﺳﺖ ﺑﻪ اﻳﻦ ﻧﻜﺘﻪ ﺗﻮﺟﻪ ﺷﻮد‬ ‫ﻛﻪ ﺟﺒﺮ راﺑﻄﻪ اي‪ ،‬دﺳﺘﻮري ﺑﻮده و ﺷﺒﻴﻪ ﺑﻪ زﺑﺎن ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ اﺳﺖ و ﺣﺴﺎب‬ ‫راﺑﻄﻪ اي ﺑﺼﻮرت ﺗﻮﺻﻴﻔﻲ ﺑﻮده و ﺑﻪ زﺑﺎن ﻃﺒﻴﻌﻲ ﻧﺰدﻳﻚﺗﺮ اﺳﺖ‪ .‬ﺣﺴﺎب راﺑﻄﻪ اي‬ ‫ﺧﻮد داراي دو ﺷﺎﺧﻪ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬

‫ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎه راﺑﻄﻪاي ‪143‬‬ ‫‪1‬‬

‫•‬

‫ﺣﺴﺎب ﺗﺎﭘﻠﻲ‬

‫•‬

‫ﺣﺴﺎب ﻣﻴﺪاﻧﻲ‬

‫‪2‬‬

‫در اداﻣﻪ ﺑﻪ ﺷﺮح ﻫﺮﻳﻚ از اﻳﻦ دو ﻧﻮع ﺣﺴﺎب ﺧﻮاﻫﻴﻢ ﭘﺮداﺧﺖ‪:‬‬

‫‪ 1-5‬ﺣﺴﺎب راﺑﻄﻪاي ﺗﺎﭘﻠﻲ‬ ‫در ﺣﺴﺎب راﺑﻄﻪ اي ﺗﺎﭘﻠﻲ‪ ،‬ﻳﻚ ﻣﻔﻬﻮم ﻣﻬﻢ ﺑﻪ ﻧﺎم ﻣﺘﻐﻴﺮ ﺗﺎﭘﻠﻲ وﺟﻮد دارد‪ .‬ﻣﺘﻐﻴﺮ ﺗﺎﭘﻠﻲ‬ ‫ﻣﺘﻐﻴﺮي اﺳﺖ ﻛﻪ ﺗﻨﻬﺎ ﻣﻘﺎدﻳﺮ ﻣﺠﺎزش‪ ،‬ﺗﺎﭘﻞ ﻫﺎي راﺑﻄﻪ ﻫﺴﺘﻨﺪ‪ .‬اﻳﻦ ﻣﺘﻐﻴﺮ در ﺷﻜﻞ‬ ‫ﻛﻠﻲ ﺑﻪ ﺻﻮرت زﻳﺮ ﺗﻌﺮﻳﻒ ﻣﻲ ﺷﻮد‬ ‫‪:: RANGEVAR RANGEOVER‬‬ ‫>‪
‫ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع ﺑﻪ ﻋﺒﺎرات زﻳﺮ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ‪:‬‬ ‫;‪1-RANGEVAR STUD RANGE OVER STT‬‬ ‫‪2-RANGEVAR STUD RANGEOVER‬‬ ‫)‪(STUD WHERE STUD.STMJR = ‘’comp.eng‬‬

‫‪ 1-1-5‬ﺷﻜﻞ ﻛﻠﻲ ﻋﺒﺎرت ﺣﺴﺎب ﺗﺎﭘﻠﻲ‬ ‫اﮔﺮ ‪ t‬ﻳﻚ ﻣﺘﻐﻴﺮ ﺗﺎﭘﻠﻲ روي راﺑﻄﻪ )‪ R(A1,A2, … , AN‬ﺑﺎﺷﺪ‪ ،‬در اﻳﻨﺼﻮرت ﺷﻜﻞ ﻛﻠﻲ‬ ‫ﻋﺒﺎرت ﺣﺴﺎب ﺗﺎﭘﻠﻲ ﺑﺼﻮرت زﻳﺮ ﺧﻮاﻫﺪ ﺑﻮد‪:‬‬ ‫]‪(target-items(s)) [WHERE f‬‬

‫ﻛﻪ در آن ))‪ (target-items(s‬ﺑﻪ ﻣﻔﻬﻮم ﻓﻬﺮﺳﺘﻲ از ﺻﻔﺎت ﻣﺘﻐﻴﺮ ﺗﺎﭘﻠﻲ ‪ T‬اﺳﺖ‪:‬‬ ‫‪T. A1 , T. A2 , … , T. AN‬‬

‫ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع ﺑﻪ ﻣﺜﺎل ﻫﺎي زﻳﺮ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ‪:‬‬ ‫‪ST.STID‬‬ ‫‪ST.STID, ST.STDEID AS W‬‬ ‫’‪ST.STID WHERE ST.STDEID = ‘123‬‬ ‫‪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‬‬

‫‪ 144‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪ 2-1-5‬ﺳﻮر وﺟﻮدي و ﺳﻮر ﻫﻤﮕﺎﻧﻲ‬ ‫در ﺣﺴﺎب راﺑﻄﻪ ﺗﺎﭘﻠﻲ دو ﺳﻮر وﺟﻮد دارد‪:‬‬ ‫•‬ ‫•‬

‫ﺳﻮر وﺟﻮدي‬ ‫ﺳﻮر ﻫﻤﮕﺎﻧﻲ‬

‫‪1‬‬

‫‪2‬‬

‫ﺳﻮر وﺟﻮدي‬ ‫ﺳﻮر وﺟﻮدي را ﺑﺎ ∃ ﻧﻤﺎﻳﺶ داده و ﻋﺒﺎرت آﻧﺮا ﺑﺼﻮرت زﻳﺮ ﻣﻲ ﻧﻮﻳﺴﻴﻢ‬ ‫)‪∃ T (f‬‬

‫ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﺪﻳﻦ ﻣﻌﻨﺎ اﺳﺖ ﻛﻪ ﺣﺪاﻗﻞ ﻳﻚ ﻣﻘﺪار ﺑﺮاي ﻣﺘﻐﻴﺮ‬

‫‪T‬‬

‫وﺟﻮد دارد ﺑﻪ‬

‫ﻧﺤﻮي ﻛﻪ ‪ f‬ﺑﻪ ﻣﻔﻬﻮم "درﺳﺖ" ارزﻳﺎﺑﻲ ﺷﻮد‪.‬‬

‫ﺳﻮر ﻫﻤﮕﺎﻧﻲ‬ ‫ﺳﻮر ﻫﻤﮕﺎﻧﻲ را ﺑﺎ ∀ ﻧﻤﺎﻳﺶ داده و ﻋﺒﺎرت آﻧﺮا ﺑﺼﻮرت زﻳﺮ ﻣﻲ ﻧﻮﻳﺴﻴﻢ‬ ‫)‪∀ T (f‬‬

‫ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﺪﻳﻦ ﻣﻌﻨﺎ اﺳﺖ ﻛﻪ ﺑﻪ ازاء ﺗﻤﺎم ﻣﻘﺎدﻳﺮ ﻣﺘﻐﻴﺮ‬

‫‪T‬‬

‫‪،‬‬

‫‪F‬‬

‫ﺑﻪ ﻣﻔﻬﻮم‬

‫"درﺳﺖ" ارزﻳﺎﺑﻲ ﻣﻲ ﺷﻮد‪.‬‬ ‫اﻳﻦ دو ﺳﻮر ﺑﻪ روش ﻫﺎي زﻳﺮ ﻗﺎﺑﻞ ﺗﺒﺪﻳﻞ ﺑﻪ ﻳﻜﺪﻳﮕﺮ ﻣﻲ ﺑﺎﺷﻨﺪ‪:‬‬ ‫)‪FORAll T(f) ≡ NOT EXISTS T(NOT f‬‬ ‫))‪EXISTS T(f) ≡ NOT (FORALL T(NOT f‬‬ ‫))‪FORALL T((f) AND (g)) ≡ NOT EXISTS T(NOT (f) OR NOT (g‬‬ ‫))‪FORALL T((f) OR (g)) ≡ NOT EXISTS T(NOT (f) AND NOT (g‬‬ ‫))‪EXISTS T((F) OR (g)) ≡ NOT FORALL T(NOT (f) AND NOT (g‬‬ ‫))‪EXISTS T((f) AND (g)) ≡ NOT FORALL T(NOT (f) OR NOT (g‬‬ ‫)‪FORALL T(f) ⇒ EXISTS T(f‬‬ ‫)‪NOT EXISTS T(f) ⇒ NOT FORALL T(f‬‬

‫‪ 3-1-5‬ﻋﺒﺎرت ﻣﻄﻤﺌﻦ‬ ‫وﻗﺘﻲ از ﺳﻮر وﺟﻮدي‪ ،‬ﺳﻮر ﻫﻤﮕﺎﻧﻲ و ﺳﻮر ﻧﻔﻲ در ﻧﻮﺷﺘﻦ ﻳﻚ ﻋﺒﺎرت ﺣﺴﺎب‬ ‫‪1. E xi s t e n t i a l‬‬ ‫‪2. U n i ve r s a l‬‬

‫ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎه راﺑﻄﻪاي ‪145‬‬

‫راﺑﻄﻪ اي اﺳﺘﻔﺎده ﻣﻲﻛﻨﻴﻢ‪ ،‬ﺑﺎﻳﺪ اﻃﻤﻴﻨﺎن ﺣﺎﺻﻞ ﻛﻨﻴﻢ ﻛﻪ ﻋﺒﺎرت ﺣﺴﺎﺑﻲ ﻧﻮﺷﺘﻪ ﺷﺪه‬ ‫‪1‬‬

‫داراي ﻣﻌﻨﺎ ﺑﺎﺷﺪ‪ .‬ﻳﻚ ﻋﺒﺎرت ﺣﺴﺎﺑﻲ را ﻋﺒﺎرت ﻣﻄﻤﺌﻦ ﮔﻮﻳﻴﻢ ﻫﺮﮔﺎه ﻧﺘﻴﺠﻪ ارزﻳﺎﺑﻲ‬ ‫آن‪ ،‬ﺗﻌﺪاد ﻣﺤﺪودي از ﺗﺎﭘﻠﻬﺎ ﺑﺎﺷﺪ‪ .‬در ﻏﻴﺮ اﻳﻨﺼﻮرت آن ﻋﺒﺎرت را ﻋﺒﺎرت ﻧﺎﻣﻄﻤﺌﻦ‬

‫‪2‬‬

‫ﻣﻲ ﮔﻮﻳﻴﻢ‪.‬‬

‫‪ 2-5‬ﺣﺴﺎب راﺑﻄﻪ ﻣﻴﺪاﻧﻲ‬ ‫‪3‬‬

‫در اﻳﻦ ﻧﻮع ﺣﺴﺎب‪ ،‬ﺑﺠﺎي ﻣﺘﻐﻴﺮ ﺗﺎﭘﻠﻲ‪ ،‬ﻣﺘﻐﻴﺮ ﻣﻴﺪاﻧﻲ دارﻳﻢ‪ .‬ﻣﺘﻐﻴﺮ ﻣﻴﺪاﻧﻲ ﻣﺘﻐﻴﺮي‬ ‫اﺳﺖ ﻛﻪ از ﻳﻚ ﻣﻴﺪان ﻣﻘﺪار ﻣﻲ ﮔﻴﺮد‪ .‬ﺗﻔﺎوت اﺻﻠﻲ ﺣﺴﺎب ﻣﻴﺪاﻧﻲ ﺑﺎ ﺣﺴﺎب ﺗﺎﭘﻠﻲ‬ ‫‪4‬‬

‫دراﻳﻦ اﺳﺖ ﻛﻪ در ﺣﺴﺎب ﻣﻴﺪاﻧﻲ‪ ،‬ﻳﻚ ﺷﺮط اﺿﺎﻓﻲ ﺑﻪ ﻧﺎم ﺷﺮط ﻋﻀﻮﻳﺖ وﺟﻮد‬ ‫دارد‪ .‬ﺷﺮط ﻋﻀﻮﻳﺖ ﺑﺼﻮرت زﻳﺮ ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮد‪:‬‬ ‫)‪R (A1:v1 , A2:v2, … , An:vn‬‬

‫ﻛﻪ در آن‬

‫‪R‬‬

‫ﻧﺎم راﺑﻄﻪ ‪،‬‬

‫‪Ai‬‬

‫ﻧﺎم ﺻﻔﺖ و‬

‫‪vi‬‬

‫ﻳﻚ ﻣﻘﺪار از ﻣﻴﺪان و ﻳﺎ ﻳﻚ ﻟﻴﺘﺮال اﺳﺖ‪.‬‬

‫اﻳﻦ ﺷﺮط ﺑﻪ ﻣﻔﻬﻮم "درﺳﺖ" ارزﻳﺎﺑﻲ ﻣﻲ ﺷﻮد اﮔﺮ و ﺗﻨﻬﺎ اﮔﺮ ﺗﺎﭘﻠﻲ در‬

‫‪R‬‬

‫وﺟﻮد‬

‫داﺷﺘﻪ ﺑﺎﺷﺪ ﻛﻪ ﻣﻘﺎدﻳﺮ داده ﺷﺪه ﺑﺮاي ﺻﻔﺎت را داﺷﺘﻪ ﺑﺎﺷﺪ )ﺗﺎﭘﻞ ﻋﻀﻮي از ﻣﺠﻤﻮﻋﻪ‬ ‫ﺑﺪﻧﻪ راﺑﻄﻪ ﺑﺎﺷﺪ(‪ .‬ﺑﺮاي ﻣﺜﺎل ﺑﻪ ﻋﺒﺎرت زﻳﺮﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ‪:‬‬ ‫)’‪STT (STID: ‘345’,stdeg:’xwe‬‬

‫در ﻋﺒﺎرت ﻓﻮق اﻳﻦ ﺷﺮط ﺑﻪ ﻣﻔﻬﻮم "درﺳﺖ" ارزﻳﺎﺑﻲ ﻣﻲﺷﻮد اﮔﺮ و ﻓﻘﻂ اﮔﺮ ﺗﺎﭘﻠﻲ‬ ‫در ‪ STT‬ﺑﺎ ﺷﻤﺎره داﻧﺸﺠﻮﻳﻲ ’‪ ‘345‬و رﺷﺘﻪ ﻛﺎرﺷﻨﺎﺳﻲ ’‪ ‘xwe‬وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬

‫‪ -6‬ﺑﻬﻴﻨﻪ ﺳﺎزي ﭘﺮس و ﺟﻮﻫﺎ‬

‫‪5‬‬

‫ﻳﻜﻲ از ﻣﺒﺎﺣﺜﻲ ﻛﻪ در ﭘﺎﻳﮕﺎهﻫﺎي داده ﻣﻄﺮح اﺳﺖ ﺑﺤﺚ ﺑﻬﻴﻨﻪ ﺳﺎزي ﻋﺒﺎرت ﭘﺮس و‬

‫‪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‬‬

‫‪ 146‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﺟﻮ ﻣﻲ ﺑﺎﺷﺪ‪ .‬از آﻧﺠﺎﺋﻴﻜﻪ ﻣﺒﺤﺚ ﺑﻬﻴﻨﻪ ﺳﺎزي ﭘﺮس و ﺟﻮ ﻣﺮﺑﻮط ﺑﻪ دوره ﻛﺎرﺷﻨﺎﺳﻲ‬ ‫ﻧﻴﺴﺖ‪ ،‬ﻟﺬا در اﻳﻨﺠﺎ ﺻﺮﻓﺎ ﺗﻮﺿﻴﺤﺎت ﻣﺨﺘﺼﺮي در اﻳﻨﺒﺎره اراﺋﻪ ﺧﻮاﻫﻴﻢ ﻛﺮد‪.‬‬ ‫ﺗﻤﺎﻣﻲ ﺗﻼش ﻃﺮاﺣﺎن ﭘﺎﻳﮕﺎه داده ﻫﺎ در ﻛﻮﺗﺎه ﻛﺮدن ﻣﺪت زﻣﺎن ارﺳﺎل ﭘﺎﺳﺦ ﺑﻪ ﻣﺘﻘﺎﺿﻲ‬ ‫اﺳﺖ‪ .‬در ﻋﻴﻦ ﺣﺎل ﺧﺮوﺟﻲ ﻳﻜﺴﺎن در ﻫﻤﻪ ﺣﺎل ﻣﺪ ﻧﻈﺮ ﻣﻲ ﺑﺎﺷﺪ‪ .‬ﺑﻌﻨﻮان ﻣﺜﺎل دو‬ ‫ﻋﺒﺎرت زﻳﺮ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪:‬‬ ‫)‪(R‬‬ ‫)‪(R‬‬

‫‪ -1‬اﺑﺘﺪا از راﺑﻄﻪ‬

‫‪R‬‬

‫آن ﻫﺎﻳﻲ ﻛﻪ‬

‫‪A=B‬‬

‫‪Б‬‬

‫∏‬

‫‪A=B‬‬

‫‪A,B‬‬

‫∏‬ ‫‪A,B‬‬

‫‪Б‬‬ ‫‪A=B‬‬

‫‪١‬‬‫‪٢-‬‬

‫اﺳﺖ را ﺟﺪا ﻣﻲ ﻛﻨﺪ )ﺳﻄﺮي(‪ ،‬ﺑﻌﺪ از ﻛﻞ‬

‫آﻧﻬﺎ ﺳﺘﻮن ﻫﺎ را ﺑﻴﺮون ﻣﻲ ﻛﺸﺪ‪.‬‬ ‫‪ -2‬اﺑﺘﺪا از راﺑﻄﻪ‬

‫‪R‬‬

‫دو ﺳﺘﻮن‬

‫‪ B‬و‪A‬‬

‫را ﺟﺪا ﻣﻲ ﻛﻨﺪ‪ ،‬ﺑﻌﺪ آﻧﻬﺎﻳﻲ را ﻛﻪ‬

‫‪A= B‬‬

‫اﺳﺖ را ﺟﺪا ﻣﻲﻛﻨﺪ )ﺳﻄﺮﻫﺎﻳﻲ ﻛﻪ ‪.( A = B‬‬ ‫در اﻳﻨﺠﺎ ﻣﻤﻜﻦ اﺳﺖ ﺳﺌﻮاﻻﺗﻲ ﺑﺮاي ﻛﺎرﺑﺮ ﻣﻄﺮح ﮔﺮدد‪ .‬ﻣﺎﻧﻨﺪ‪:‬‬ ‫•‬

‫آﻳﺎ ﻫﻤﻪ ﭘﺎﺳﺦﻫﺎ ﻣﻌﺎدل اﻧﺪ ؟ ﺑﻠﻲ‬

‫•‬

‫آﻳﺎ ﻫﻤﻪ ﭘﺎﺳﺦﻫﺎ ﻫﻢ ﺳﺮﻋﺖاﻧﺪ ؟ ﺧﻴﺮ‬

‫ﺑﻨﺎﺑﺮﻳﻦ ﺟﻬﺖ اﻓﺰاﻳﺶ ﺳﺮﻋﺖ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده ﺳﻌﻲ ﺑﺮ آن اﺳﺖ ﺑﻬﺘﺮﻳﻦ روش ﺑﻜﺎر‬ ‫ﮔﺮﻓﺘﻪ ﺷﻮد و ﻳﺎ ﺑﻪ ﻋﺒﺎرت ﺑﻬﺘﺮ ﺳﻌﻲ ﻣﻲ ﻛﻨﻴﻢ ﺗﺎ آﻧﺠﺎ ﻛﻪ ﻣﻲ ﺗﻮاﻧﻴﻢ ﻫﺮ ﭼﻪ ﺳﺮﻳﻌﺘﺮ‬ ‫ﺟﺪاول را ﻛﻮﭼﻚ ﻛﺮده و روي آﻧﻬﺎ ﻛﺎر ﻛﻨﻴﻢ‪.‬‬ ‫ﻳﻜﻲ از ﺳﺌﻮاﻻﺗﻲ ﻛﻪ ﻣﻄﺮح ﻣﻲﮔﺮدد اﻳﻦ اﺳﺖ ﻛﻪ ﺳﺮﻋﺖ ‪Quary‬ﻫﺎي ﻣﺘﻔﺎوت‬ ‫ﭼﻘﺪر ﺗﻔﺎوت دارد ؟ در ﭘﺎﺳﺦ ﺑﺎﻳﺪ ﮔﻔﺖ ﻛﻪ‪ :‬ﺑﺴﻴﺎر زﻳﺎد‪ ،‬زﻳﺮا دادهﻫﺎ و ﺟﺪاول در ﺣﺎﻓﻈﻪ‬ ‫ﺟﺎﻧﺒﻲ ﻗﺮار دارﻧﺪ‪ .‬در اﻳﻦ راﺳﺘﺎ ﻣﻤﻜﻦ اﺳﺖ ﺑﮕﻮﻳﻴﻢ ﻛﻪ ﻛﺎرﺑﺮ ﺑﺎﻳﺪ آﻧﻘﺪر ﺗﺒﻬﺮ داﺷﺘﻪ ﺑﺎﺷﺪ‬ ‫ﺗﺎ ﺑﺘﻮاﻧﺪ ﻋﺒﺎرت ﭘﺮﺳﻮ ﺟﻮي ﺧﻮد را ﺑﻬﻴﻨﻪ ﻧﻤﺎﻳﺪ‪ .‬وﻟﻲ آﻳﺎ واﻗﻌﺎ ﭼﻨﻴﻦ ﻛﺎري ﻣﻤﻜﻦ اﺳﺖ؟‬ ‫در ﭘﺎﺳﺦ ﺑﺎﻳﺪ ﮔﻔﺖ‪ :‬ﺧﻴﺮ‪ .‬زﻳﺮا‪:‬‬ ‫•‬

‫ﻛﺎرﺑﺮ ﻣﺘﺨﺼﺺ ﻧﻴﺴﺖ‪.‬‬

‫ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎه راﺑﻄﻪاي ‪147‬‬ ‫•‬

‫از ﺳﺎﻳﺮ ﺟﺪاول و ﭼﮕﻮﻧﮕﻲ آﻧﻬﺎ ﻣﻄﻠﻊ ﻧﻤﻲﺑﺎﺷﺪ‪.‬‬

‫•‬

‫اﻛﺜﺮﻳﺖ ﻛﺎرﺑﺮان از ﺳﺎﺧﺘﺎر و ﻣﻜﺎﻧﻴﺰم دروﻧﻲ ﭘﺎﻳﮕﺎهداده ﺑﻲ اﻃﻼع ﻫﺴﺘﻨﺪ‪.‬‬

‫ﭘﺲ ﺑﻬﺘﺮﻳﻦ راه ﺣﻞ اﻳﻦ اﺳﺖ ﻛﻪ ﺑﮕﻮﻳﻴﻢ‬

‫‪DBMS‬‬

‫ﺑﺎﻳﺪ‬

‫‪Quary‬‬

‫را ﺑﻬﻴﻨﻪ ﺳﺎزي ﻧﻤﺎﻳﺪ‪.‬‬

‫ﻃﺒﻴﻌﻲ اﺳﺖ ﻛﻪ ﺑﺎﻳﺪ ﻣﻜﺎﻧﻴﺰم ﻣﺸﺨﺼﻲ ﺑﺮاي اﻳﻨﻜﺎر وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬ﻫﺮﭼﻨﺪ ﻛﻪ‬ ‫ﺑﺤﺚ ﺑﻬﻴﻨﻪ ﺳﺎزي ﭘﺮﺳﻮ ﺟﻮ در اﻳﻦ ﻛﺘﺎب ﻧﻤﻲ ﮔﻨﺠﺪ‪ ،‬وﻟﻲ ﺑﺮاي اراﺋﻪ ﻳﻚ ﺷﻤﺎي‬ ‫ﺳﺎده از اﻳﻦ ﻋﻤﻞ اﻟﮕﻮرﻳﺘﻢ ذﻳﻞ را )ﻛﻪ ﺑﺴﻴﺎر ﺳﺎده و ﻣﺨﺘﺼﺮ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه‬ ‫اﺳﺖ( اراﺋﻪ ﻣﻲﻧﻤﺎﻳﻴﻢ‪.‬‬

‫‪ 1-6‬ﺗﺒﺪﻳﻞ‬

‫‪Q‬‬

‫ﺑﻪ‬

‫‪o.Q‬‬

‫ﺑﺮاي ﺑﻬﻴﻨﻪ ﺳﺎزي ﭘﺮس و ﺟﻮﻫﺎ ﻻزم اﺳﺖ ﺗﺎ روﻳﻪ ﻣﺸﺨﺼﻲ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﻮد‪ .‬در‬ ‫اداﻣﻪ ﻗﻮاﻋﺪ ﻣﺮﺑﻮط ﺑﻪ ﺑﻬﻴﻨﻪ ﺳﺎزي ﭘﺮس و ﺟﻮﻫﺎ ﻣﻄﺮح ﺷﺪه اﺳﺖ‪:‬‬ ‫ﻗﺎﻋﺪه اول‪ Б :‬را ﻫﺮ ﭼﻪ ﺳﺮﻳﻌﺘﺮ )زودﺗﺮ( اﻧﺠﺎم دﻫﻴﻢ‪.‬‬ ‫ﻗﺎﻋﺪه دوم‪ :‬ﺷﺮﻃﻬﺎي ﺗﺮﻛﻴﺒﻲ را ﺑﻪ ﺷﺮﻃﻬﺎي ﺳﻮاﻟﻲ ﺗﺒﺪﻳﻞ ﻧﻤﺎﻳﻴﺪ )ﺷﺮﻃﻬﺎي داراي‬ ‫‪ OR ،AND‬و‪ ...‬را ﺗﺎ ﺣﺪ اﻣﻜﺎن ﺑﺸﻜﻨﻴﺪ(‪.‬‬ ‫)‪(R‬‬

‫‪Б‬‬

‫‪p2‬‬

‫‪Б‬‬ ‫‪p1‬‬

‫) ‪(R‬‬ ‫‪p2‬‬

‫‪Б‬‬ ‫∩‬

‫‪p1‬‬

‫ﻗﺎﻋﺪه ﺳﻮم‪ ∏ :‬را زودﺗﺮ اﻧﺠﺎم دﻫﻴﻢ )ﭘﺲ از ‪.(Б‬‬

‫‪ 2-6‬ﺳﺎﻳﺮ ﻗﻮاﻋﺪ و ﻋﻤﻠﮕﺮﻫﺎي ﺑﻬﻴﻨﻪ ﺳﺎزي‬ ‫ﻗﺎﻋﺪه اول‪:‬‬ ‫‪∞a‬‬

‫‪b‬‬

‫= ‪∞b‬‬

‫‪a‬‬

‫ﻗﺎﻋﺪه دوم‪:‬‬ ‫)‪∞ ( b ∞ c‬‬

‫‪a‬‬

‫= ‪(a ∞b) ∞ c‬‬

‫ﺗﻮﺟﻪ‪ :‬ﻻزم ﺑﺬﻛﺮ اﺳﺖ ﻛﻪ ﻋﺒﺎرات اﻳﻦ دو ﻋﺒﺎرات ﻗﺎﻋﺪه از ﻟﺤﺎظ زﻣﺎن ﺑﺎ ﻫﻢ ﺑﺮاﺑﺮ‬ ‫ﻧﻴﺴﺘﻨﺪ‪.‬‬ ‫ﻣﺜﺎل‪ :‬ﻣﺸﺨﺼﺎت ﻛﺎﻣﻞ دروس و ﮔﺮوه ﻫﺎي درﺳﻲ آﻧﻬﺎ را ﺑﺪﺳﺖ آورﻳﺪ‪.‬‬

‫‪ 148‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫در اﻳﻨﺠﺎ اﻳﻦ ﺳﺌﻮال ﻣﻄﺮح ﻣﻲ ﺷﻮد ﻛﻪ ﻛﺪام ﻳﻚ از دو ﻋﺒﺎرت زﻳﺮ ﺳﺮﻳﻌﺘﺮ ﭘﺎﺳﺦ‬ ‫ﻣﻲ دﻫﻨﺪ؟‬ ‫‪sec‬‬

‫∞‬

‫‪crs‬‬

‫ﻳﺎ‬ ‫∞‬

‫‪crs‬‬

‫‪sec‬‬

‫اﻳﻦ دو دﺳﺘﻮر از ﻧﻈﺮ ﺳﺮﻋﺖ ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﺑﺴﻴﺎر ﻣﺘﻔﺎوﺗﻨﺪ‪ .‬زﻳﺮا ﺳﺎﻳﺰ دو ﺟﺪول‬ ‫ﻛﺎﻣﻼ ﻣﺘﻔﺎوت ﻣﻲﺑﺎﺷﺪ ﺟﺪول‬ ‫اﺳﺖ و ﺟﺪول‬

‫‪sec‬‬

‫‪crs‬‬

‫)ﻓﻘﻂ ﻣﺸﺨﺼﺎت درسﻫﺎ ﻣﻲﺑﺎﺷﺪ( ﻣﻌﻤﻮﻻً ﻛﻮﭼﻚ‬

‫ﺑﺴﻴﺎر ﺑﺰرﮔﺘﺮ از آن‪ ،‬زﻳﺮا ﻫﻢ ﮔﺮوﻫﻬﺎي ﻣﺨﺘﻠﻒ دروس را ﺷﺎﻣﻞ‬

‫ﻣﻲﺷﻮد و ﻫﻢ داﻧﺸﺠﻮﻳﺎن آﻧﻬﺎ را‪ .‬ﻓﺮض ﻛﻨﻴﺪ ﺟﺪول ‪ crs‬در ﺣﺎﻓﻈﻪ‬

‫‪cash‬‬

‫ﺟﺎ ﺑﮕﻴﺮد‪ ،‬در‬

‫اﻳﻦ ﺻﻮرت اﻟﮕﻮرﻳﺘﻢﻫﺎي دو راه ﺣﻞ ﺑﺎﻻ را ﺑﺮرﺳﻲ ﻣﻲﻛﻨﻴﻢ‪:‬‬ ‫‪crs ∞ sec‬‬

‫اﻟﮕﻮرﻳﺘﻢ )‪ :(1‬ﺑﺮاي ﻫﺮ ﺳﻄﺮ ﺟﺪول‬

‫}‬

‫‪crs‬‬

‫ﺑﺮاي ﻫﺮ ﺳﻄﺮ ﺟﺪول ‪} sec‬‬ ‫ﻣﻘﺎﻳﺴﻪ ﻛﻦ{‬ ‫اﻧﺘﺨﺎب ﻛﻦ {‬ ‫در اﻟﮕﻮرﻳﺘﻢ ﻳﻚ ﺑﺎﻳﺪ ﺳﻄﺮﻫﺎي ﺑﺴﻴﺎر زﻳﺎد ﺟﺪول‬

‫‪sec‬‬

‫را ﺑﻪ دﻓﻌﺎت وارد ﺣﺎﻓﻈﻪ‬

‫اﺻﻠﻲ ﻛﻨﻴﻢ و ﻣﻘﺎﻳﺴﻪ و اﻧﺘﺨﺎب را اﻧﺠﺎم دﻫﻴﻢ ﺑﻪ ﻋﺒﺎرت دﻳﮕﺮ ﺗﻌﺪاد دﺳﺘﻴﺎﺑﻲ ﺑﻪ دﻳﺴﻚ‬ ‫)ﻣﻨﻈﻮر ﺣﺎﻓﻈﻪ ﺟﺎﻧﺒﻲ( ﺑﻪاﻧﺪازه ﺣﺎﺻﻠﻀﺮب ﺳﺎﻳﺰ دو ﺟﺪول اﺳﺖ‪.‬‬ ‫‪sec ∞ crs‬‬

‫اﻟﮕﻮرﻳﺘﻢ )‪ :(2‬ﺑﺮاي ﻫﺮ ﺳﻄﺮ ﺟﺪول ‪} sec‬‬ ‫ﺑﺮاي ﻫﺮ ﺳﻄﺮ ﺟﺪول ‪} crs‬‬ ‫ﻣﻘﺎﻳﺴﻪ ﻛﻦ {‬ ‫اﻧﺘﺨﺎب ﻛﻦ {‬ ‫در اﻟﮕﻮرﻳﺘﻢ دو‪ ،‬ﻫﺮ ﺳﻄﺮ ‪ sec‬را ﻓﻘﻂ ﻳﻜﺒﺎر ﺑﻪ ﺣﺎﻓﻈﻪ اﺻﻠﻲ ﻣﻲآورﻳﻢ زﻳﺮا ﺟﺪول‬ ‫‪ crs‬ﺑﻪ ﻃﻮر ﻛﺎﻣﻞ در ﺣﺎﻓﻈﻪ ‪ cash‬ﻗﺮار دارد و ﻫﻤﻪ ﻣﻘﺎﻳﺴﻪﻫﺎ ﻳﻜﺒﺎر اﻧﺠﺎم ﻣﻲﮔﻴﺮد و ﺗﻌﺪاد‬ ‫دﺳﺘﻴﺎﺑﻲ ﺑﻪ دﻳﺴﻚ ﺑﻪاﻧﺪازه ﺳﺎﻳﺰ ﺟﺪول‬

‫‪sec‬‬

‫اﺳﺖ‪ .‬ﺑﻄﻮر ﻣﺜﺎل اﮔﺮ ﺳﺎﻳﺰ ﺟﺪول‬

‫‪crs‬‬

‫را‬

‫ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎه راﺑﻄﻪاي ‪149‬‬

‫‪ 100‬و ﺟﺪول‬

‫‪sec‬‬

‫را ‪ 1001‬ﻓﺮض ﻛﻨﻴﻢ اﻟﮕﻮرﻳﺘﻢ اول ‪ 1000000‬ﺑﺎر ﺑﻴﺸﺘﺮ ﺑﻪ دﻳﺴﻚ‬

‫دﺳﺘﻴﺎﺑﻲ ﭘﻴﺪا ﻣﻲﻛﻨﺪ‪.‬‬

‫ﺗﻤﺮﻳﻨﺎت‬ ‫‪ .1‬ﭼﻪ اﻣﻜﺎﻧﺎﺗﻲ ﺑﺮاي اﻧﺠﺎم ﻋﻤﻠﻴﺎت در ﻣﺪل راﺑﻄﻪ اي وﺟﻮد دارﻧﺪ ؟‬

‫‪ 150‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪ .2‬ﻋﻤﻠﮕﺮﻫﺎي ﺟﺒﺮ راﺑﻄﻪ اي را ﻧﺎم ﺑﺒﺮﻳﺪ ؟‬ ‫‪ .3‬ﻋﻤﻠﮕﺮﻫﺎي ‪ Select‬و ‪ Project‬ﭼﻪ ﺗﻔﺎوﺗﻲ ﺑﺎ ﻳﻜﺪﻳﮕﺮ دارﻧﺪ ؟‬ ‫‪ .4‬ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ را ﺗﻮﺿﻴﺢ داده و ﺧﻮاص آﻧﺮا ﻧﺎم ﺑﺒﺮﻳﺪ؟‬ ‫‪ .5‬ﻋﻤﻠﮕﺮﻫﺎي ﻛﺎر ﺑﺮ روي داده ﻫﺎ را ﻧﺎم ﺑﺒﺮﻳﺪ؟‬

‫ﻓﺼﻞ ‪۸‬‬ ‫ﺁﺷﻨﺎﻳﻲ ﺑﺎ ﺯﺑﺎﻥ ﺭﺍﺑﻄﻪﺍﻱ‬

‫‪SQL‬‬

‫ﻫﺪف ﻛﻠﻲ‬ ‫در اﻳﻦ ﻓﺼﻞ اﺑﺘﺪا ﺗﺎرﻳﺨﭽﻪ اي از زﺑﺎن‬

‫‪SQL‬‬

‫و دﻻﺋﻞ ﮔﺴﺘﺮدﮔﻲ آن اراﺋﻪ ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬

‫ﺳﭙﺲ دﺳﺘﻮرات ﺗﻌﺮﻳﻒ دادهﻫﺎ ﻣﺎﻧﻨﺪ ﺗﻌﺮﻳﻒ ﺷﻤﺎ و ﺟﺪول و‪ ...‬ﻣﻄﺮح ﺷﺪه و در‬ ‫اداﻣﻪ دﺳﺘﻮرات ﻣﺮﺑﻮط ﺑﻪ ﭘﺮس وﺟﻮي دادهﻫﺎ ﺑﻴﺎن ﺧﻮاﻫﺪ ﺷﺪ‪ .‬ﭘﺲ از ﺗﻮﺿﻴﺢ اﻳﻦ‬ ‫ﮔﺮوه از دﺳﺘﻮرات‪ ،‬دﺳﺘﻮرات ﻛﺎر ﺑﺎ داده ﻫﺎ ﺷﺮح داده ﺧﻮاﻫﻨﺪ ﺷﺪ‪.‬ﭘﺲ از آن‬ ‫ﺟﺴﺘﺠﻮﻫﺎي ﭘﻴﺸﺮﻓﺘﻪ ﺗﺮ ﻣﻄﺮح و در اﻳﻦ راﺳﺘﺎ ﻋﻤﻠﮕﺮﻫﺎي ﭘﻴﻮﻧﺪ و ﺳﺎﻳﺮ ﻋﻤﻠﮕﺮﻫﺎي‬ ‫ﻣﺮﺗﺒﻂ ﺑﺎ ﺟﺴﺘﺠﻮﻫﺎي ﭘﻴﺸﺮﻓﺘﻪ ﺑﻴﺎن ﺧﻮاﻫﻨﺪ ﺷﺪ‪ .‬در ﭘﺎﻳﺎن ﻧﻴﺰ درﺑﺎزه دﺳﺘﻮرات ﻛﻨﺘﺮل‬ ‫ﻣﺠﻮزﻫﺎي دﺳﺘﺮﺳﻲ ﺻﺤﺒﺖ ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬

‫ﻫﺪف رﻓﺘﺎري‬ ‫دراﻳﻦ ﻓﺼﻞ ﻋﻨﺎوﻳﻦ زﻳﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ‪:‬‬ ‫•‬

‫ﻣﻘﺪﻣﻪ اي ﺑﺮ‬

‫•‬

‫دﻻﺋﻞ ﮔﺴﺘﺮدﮔﻲ‬

‫•‬

‫دﺳﺘﻮرات ﺗﻌﺮﻳﻒ دادهﻫﺎ‬

‫•‬

‫ﺗﻌﺮﻳﻒ ﭘﺎﻳﮕﺎهداده‬

‫•‬

‫ﺗﻌﺮﻳﻒ ﺷﻤﺎ‬

‫•‬

‫ﺗﻌﺮﻳﻒ ﺟﺪول‬

‫•‬

‫دﺳﺘﻮرات ﭘﺮس و ﺟﻮ )ﻣﺸﺎﻫﺪه( دادهﻫﺎ‬

‫‪SQL‬‬ ‫‪SQL‬‬ ‫‪DDL‬‬

‫‪152‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫دﺳﺘﻮرات ﻛﺎر ﺑﺮ روي دادهﻫﺎ‬

‫•‬

‫ﺟﺴﺘﺠﻮﻫﺎي ﭘﻴﺸﺮﻓﺘﻪ ﺑﺎ ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ‬

‫•‬

‫ﻋﻤﻠﮕﺮ ﮔﺮوه ﺑﻨﺪي‬

‫•‬

‫ﻋﻤﻠﮕﺮ ﻣﺮﺗﺐ ﺳﺎزي‬

‫•‬

‫ﺗﻮاﺑﻊ ﺗﺠﻤﻌﻲ‬

‫•‬

‫اﺳﺘﻔﺎده از ﭘﺮس و ﺟﻮﻫﺎي ﺗﻮدرﺗﻮ‬

‫•‬

‫اﺳﺘﻔﺎده از زﻳﺮﭘﺮﺳﺶﻫﺎ )ﭘﺮﺳﺶﻫﺎي ﻓﺮﻋﻲ(‬

‫•‬

‫دﺳﺘﻮرات ﻛﻨﺘﺮل ﻣﺠﻮز دﺳﺘﺮﺳﻲ‬

‫‪ - 1‬ﻣﻘﺪﻣﻪاي ﺑﺮ‬

‫‪SQL‬‬

‫ﻳﻚ زﺑﺎن راﺑﻄﻪ اي ﻗﺒﻞ از ﻫﺮ ﭼﻴﺰ ﺑﺎﻳﺪ ﺑﺘﻮاﻧﺪ در ﻣﺤﻴﻂ اﻧﺘﺰاﻋﻲ راﺑﻄﻪ ﻋﻤﻞ ﻧﻤﺎﻳﺪ و‬ ‫ﻃﺒﻴﻌﺘﺎ ﺑﺎﻳﺪ ﺑﺮ اﺳﺎس رﻳﺎﺿﻴﺎت راﺑﻄﻪ اي ﻣﺎﻧﻨﺪ ﺟﺒﺮ راﺑﻄﻪاي اﺳﺘﻮار ﺑﺎﺷﺪ‪ .‬در اﻳﻦ‬ ‫ﻓﺼﻞ زﺑﺎن‬

‫‪SQL‬‬

‫‪1‬‬

‫‪2‬‬

‫ﺑﻌﻨﻮان ﻳﻚ زﺑﺎن راﺑﻄﻪ اي اﺳﺘﺎﻧﺪارد ﺷﺪه و ﺷﺎﻳﺪ ﺑﻌﻨﻮان ﺑﻬﺘﺮﻳﻦ‬

‫زﺑﺎن راﺑﻄﻪ اي ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮد‪.‬‬ ‫اوﻟﻴﻦ ﻧﺴﺨﻪ اﻳﻦ زﺑﺎن ﺑﻌﻨﻮان ﻗﺴﻤﺘﻲ از ﺳﻴﺴﺘﻢ‬ ‫ﺷﺮﻛﺖ‬

‫‪IBM‬‬

‫‪R‬‬

‫‪3‬‬

‫در اواﺧﺮ دﻫﻪ ‪ 1980‬ﺗﻮﺳﻂ‬

‫ﻃﺮاﺣﻲ ﺷﺪ‪ .‬از آﻧﺠﺎﺋﻴﻜﻪ ﭘﺲ از ﻣﺪﺗﻲ ﺷﺮﻛﺖﻫﺎ و اﺷﺨﺎص ﻣﺨﺘﻠﻒ ﻫﺮ‬

‫ﻛﺪام اﻗﺪام ﺑﻪاﻳﺠﺎد ﻳﻚ ﻧﺴﺨﻪ از زﺑﺎن‬

‫‪SQL‬‬

‫ﺑﺎ اﺳﺎﻣﻲﻣﺨﺘﻠﻒ ﻛﺮدﻧﺪ‪ ،‬ﻟﺬا در ﺳﺎل ‪1984‬‬

‫ﻣﻮﺳﺴﻪ اﺳﺘﺎﻧﺪاردﻫﺎي ﻣﻠﻲ آﻣﺮﻳﻜﺎ )‪ (ANSI‬و ﺳﺎزﻣﺎن اﺳﺘﺎﻧﺪاردﻫﺎي ﺑﻴﻦ اﻟﻤﻠﻠﻲ )‪(ISO‬‬ ‫ﻧﺴﺨﻪ اﺳﺘﺎﻧﺪارد زﺑﺎن‬

‫‪SQL‬‬

‫را اراﺋﻪ ﻛﺮدﻧﺪ و در ﺳﺎل ‪ 1987‬اوﻟﻴﻦ ﻧﺴﺨﻪ اﺳﺘﺎﻧﺪارد اﻳﻦ‬

‫زﺑﺎن ﺑﻨﺎم ‪ ANSI/ISO SQL-89‬را ﻛﻪ اﺻﻄﻼﺣﺎ ﺑﻪ آن ‪ SQL1‬ﻣﻲﮔﻔﺘﻨﺪ‪ ،‬اراﺋﻪ ﻛﺮدﻧﺪ‪ .‬ﭘﺲ از‬ ‫ﮔﺬﺷﺖ ﭼﻨﺪ ﺳﺎل و ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﻮﺳﻌﻪ ﺗﻮاﻧﺎﻳﻲﻫﺎ و اﻧﺘﻈﺎرات از اﻳﻦ زﺑﺎن‪ ،‬ﻧﺴﺨﻪ‬ ‫ﺑﻪ ﻧﺎم‬

‫‪SQL2‬‬

‫‪SQL-92‬‬

‫ﺗﻮﺳﻂ اﻳﻦ ﻣﻮﺳﺴﻪﻫﺎ اراﺋﻪ ﮔﺮدﻳﺪ‪ .‬ﺑﺎ ورود ﻣﻔﺎﻫﻴﻢ ﺷﻲء ﮔﺮاﻳﻲ ﺑﻪ ﻣﺤﻴﻂ‬

‫ﭘﺎﻳﮕﺎهﻫﺎي داده راﺑﻄﻪاي‪ ،‬زﺑﺎن‬

‫‪SQL-99‬‬

‫ﻛﻪ ﺑﻪ‬

‫‪SQL3‬‬

‫ﻣﻌﺮوف اﺳﺖ‪ ،‬ﺗﻮﺳﻂ ﻣﻮﺳﺴﻪﻫﺎي‬

‫ﻣﺬﻛﻮر اراﺋﻪ ﮔﺮدﻳﺪ‪ .‬اﻣﺮوزه ﻧﺴﺨﻪ ﺟﺪﻳﺪي از زﺑﺎن اﺳﺘﺎﻧﺪارد‬

‫‪SQL‬‬

‫ﺑﻨﺎم‬

‫‪SQL-2003‬‬

‫ﻧﻴﺰ‬

‫‪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‬‬

‫آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪاي ‪153 SQL‬‬

‫اراﺋﻪ ﺷﺪه اﺳﺖ ﻛﻪ ﻫﻨﻮز در ﭘﺎﻳﮕﺎهﻫﺎي داده راﺑﻄﻪاي ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻧﮕﺮﻓﺘﻪ اﺳﺖ‪.‬‬ ‫ﻣﻔﺎﻫﻴﻢ اﺻﻠﻲ زﺑﺎن ‪ SQL‬در ﻛﻠﻴﻪ زﺑﺎنﻫﺎي ﻣﺬﻛﻮر ﻳﻜﺴﺎن ﻫﺴﺘﻨﺪ‪.‬‬

‫‪ - 2‬دﻻﻳﻞ ﮔﺴﺘﺮدﮔﻲ‬

‫‪SQL‬‬

‫ﺷﺮﻛﺖ ﻫﺎي ﻓﻌﺎل در زﻣﻴﻨﻪ ﭘﺎﻳﮕﺎهﻫﺎي داده راﺑﻄﻪ اي ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻧﻴﺎز ﺧﻮد اﻗﺪام ﺑﻪ‬ ‫ﻃﺮاﺣﻲ زﺑﺎﻧﻬﺎي راﺑﻄﻪ اي ﻛﺮده اﻧﺪ ﻛﻪ اﺻﻮﻻ ﻫﻤﮕﻲ از اﺳﺘﺎﻧﺪارد ﻫﺎي‬ ‫ﭘﺸﺘﻴﺒﺎﻧﻲ ﻣﻲ ﻛﻨﻨﺪ‪ .‬اﻳﻦ زﺑﺎن ﻫﺎ ﻣﻔﺎﻫﻴﻢ زﺑﺎن‬

‫‪SQL‬‬

‫‪ANSI/ISO‬‬

‫را ﺑﺼﻮرت ﻛﺎﻣﻞ ﭘﺸﺘﻴﺒﺎﻧﻲ ﻛﺮده و‬

‫ﻋﻼوه ﺑﺮ آن دﺳﺘﻮرات دﻳﮕﺮي ﻧﻴﺰ ﺑﺮاي ﺳﺎﺧﺘﺎر ﺧﻮد دارﻧﺪ‪ .‬اﻣﺮوزه اﻛﺜﺮﻳﺖ‬ ‫ﭘﺎﻳﮕﺎه ﻫﺎي داده راﺑﻄﻪ اي زﺑﺎن‬

‫‪SQL2‬‬

‫را ﺑﻌﻨﻮان اﺳﺘﺎﻧﺪارد زﺑﺎن ﭘﺎﻳﮕﺎه داده ﺧﻮد اﻧﺘﺨﺎب‬

‫ﻛﺮده اﻧﺪ‪ .‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻨﻜﻪ ﭘﻴﺎده ﺳﺎزي زﺑﺎن ‪ SQL3‬ﺑﻌﻨﻮان ﻳﻚ زﺑﺎن راﺑﻄﻪ اي ﺷﻲء ﮔﺮا‬ ‫داراي ﭘﻴﭽﻴﺪﮔﻲ ﻫﺎي ﺧﺎص ﺧﻮد ﻣﻲ ﺑﺎﺷﺪ‪ ،‬ﻟﺬا اﻣﺮوزه از ﺑﻴﻦ ﭘﺎﻳﮕﺎهﻫﺎي داده راﺑﻄﻪ اي‬ ‫‪1‬‬

‫ﺗﻨﻬﺎ ﭘﺎﻳﮕﺎه داده اراﻛﻞ ﻣﺤﺼﻮل ﺷﺮﻛﺖ اراﻛﻞ‪ ،‬ﻗﺎدر ﺑﻪ ﭘﺸﺘﻴﺒﺎﻧﻲ از زﺑﺎن‬

‫‪SQL3‬‬

‫ﻣﻲ ﺑﺎﺷﺪ‪ .‬ﺑﺼﻮرت ﻛﻠﻲ ﻣﻲ ﺗﻮان اﻫﻢ دﻻﻳﻞ ﮔﺴﺘﺮدﮔﻲ اﺳﺘﻔﺎده از زﺑﺎن ‪ SQL‬را ﺑﻪ ﺷﺮح‬ ‫زﻳﺮ ﻋﻨﻮان ﻛﺮد‪:‬‬ ‫•‬

‫ﻣﻮرد ﻗﺒﻮل ﻫﻤﻪ اﺳﺖ )ﻫﻤﻪ ﻣﺘﺨﺼﺼﻴﻦ از آن اﺳﺘﻔﺎده ﻣﻲﻛﻨﻨﺪ و آﻧﺮا ﻗﺒﻮل‬ ‫ﻣﻲﻛﻨﻨﺪ(‪.‬‬

‫•‬ ‫•‬

‫ﺷﺒﻪ روﻳﻪاي اﺳﺖ )زﺑﺎن ﭘﺮس و ﺟﻮﺋﻲ اﺳﺖ(‪.‬‬ ‫‪2‬‬

‫ﺑﻪ ﺻﻮرت ﺗﻌﺒﻴﻪ ﺷﺪه )ﺗﻮﻛﺎر ( در دﻳﮕﺮ ﻣﺤﻴﻂﻫﺎي ﺑﺮﻧﺎﻣﻪ ﺳﺎزي اﺳﺖ‪ .‬ﻣﺎﻧﻨﺪ‬ ‫ﻣﺤﻴﻂ‬

‫‪Oracle ،Delphi ،Access‬‬

‫ﺑﺮﺧﻲ اﻣﻜﺎﻧﺎت ﻣﻬﻤﺘﺮ زﺑﺎن‬

‫‪SQL‬‬

‫و‪....‬‬

‫ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﻨﺪ ﻛﻪ ﺑﻌﻀﻲ از آﻧﻬﺎ در زﺑﺎن‬

‫‪ SQL1‬وﺟﻮد ﻧﺪاﺷﺘﻪ و ﺑﻪ ﻣﺮور ﺑﻪ زﺑﺎنﻫﺎي ‪ SQL2‬و ‪ SQL3‬اﻓﺰوده ﺷﺪه اﻧﺪ‪:‬‬ ‫•‬

‫دﺳﺘﻮرات ﺗﻌﺮﻳﻒ دادهﻫﺎ‬

‫•‬

‫دﺳﺘﻮرات ﭘﺮس و ﺟﻮ )ﻣﺸﺎﻫﺪه( دادهﻫﺎ‬

‫•‬

‫دﺳﺘﻮرات ﻛﺎر ﺑﺮ روي دادهﻫﺎ‬ ‫‪1. O R AC LE‬‬ ‫‪2. E mb e d d e d‬‬

‫‪154‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫دﺳﺘﻮرات ﻛﻨﺘﺮل ﻣﺠﻮز دﺳﺘﺮﺳﻲ‬

‫•‬

‫دﺳﺘﻮرات ﻧﻮﺷﺘﻦ روﻳﻪﻫﺎ و ﺗﻮاﺑﻊ‬

‫•‬

‫دﺳﺘﻮرات ﻛﻨﺘﺮل ﺟﺎﻣﻌﻴﺖ‬

‫•‬

‫دﺳﺘﻮرات ﻛﻨﺘﺮل ﺗﺮاﻛﻨﺶﻫﺎ‬

‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻨﻜﻪ ﭼﻬﺎر دﺳﺘﻪ اول دﺳﺘﻮرات ذﻛﺮ ﺷﺪه ﺗﻘﺮﻳﺒﺎ در ﻫﻤﻪ ﭘﺎﻳﮕﺎه ﻫﺎي داده‬ ‫ﻣﻮﺟﻮد ﻣﻲ ﺑﺎﺷﺪ ﻟﺬا در اداﻣﻪ ﭼﻬﺎر ﺳﺮي دﺳﺘﻮرات اول را ﺑﻪ ﺗﻔﺼﻴﻞ ﻣﻮرد ﺑﺤﺚ و‬ ‫ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻴﻢ داد‪ .‬ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎهﻫﺎي داده و ﻳﺎ زﺑﺎن ﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ )ﻛﻪ‬ ‫زﺑﺎن‬

‫‪SQL‬‬

‫را درون ﺧﻮد دارﻧﺪ(‪ ،‬ﻣﺠﻤﻮﻋﻪ دﺳﺘﻮرات ﻧﻮﺷﺘﻦ روﻳﻪﻫﺎ و ﺗﻮاﺑﻊ‪ ،‬ﻛﻨﺘﺮل‬

‫ﺟﺎﻣﻌﻴﺖ و ﻛﻨﺘﺮل ﺗﺮاﻛﻨﺶ ﻫﺎ را ﻳﺎ ﻧﺪارﻧﺪ و ﻳﺎ در اﺧﺘﻴﺎر ﻛﺎرﺑﺮ ﻗﺮار ﻧﻤﻲ دﻫﻨﺪ‪ .‬ﻟﺬا اﻳﻦ‬ ‫ﻧﻮع دﺳﺘﻮرات در اﻳﻦ ﻛﺘﺎب ﺗﻮﺿﻴﺢ داده ﻧﻤﻲ ﺷﻮﻧﺪ‪.‬‬

‫‪ - 3‬دﺳﺘﻮرات ﺗﻌﺮﻳﻒ دادهﻫﺎ‬

‫‪DDL‬‬

‫‪1‬‬ ‫‪2‬‬

‫اﻳﻦ دﺳﺘﻮرات در ﺣﺎﻟﺖ ﻛﻠﻲ ﺷﺎﻣﻞ ﺗﻌﺮﻳﻒ ﭘﺎﻳﮕﺎهداده‪ ،‬ﺗﻌﺮﻳﻒ ﺷﻤﺎ ‪ ،‬ﺗﻌﺮﻳﻒ‬ ‫‪3‬‬

‫‪4‬‬

‫ﻛﺎرﺑﺮ و ﺗﻌﺮﻳﻒ ﺟﺪاول اﻃﻼﻋﺎﺗﻲ و دﻳﺪهﻫﺎ ﻣﻲﺑﺎﺷﻨﺪ‪.‬‬

‫‪ 1- 3‬ﺗﻌﺮﻳﻒ ﭘﺎﻳﮕﺎهداده‬ ‫ﺷﻜﻞ ﻛﻠﻲ دﺳﺘﻮر ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫‪CREATE DATABASE database -name‬‬

‫ﺑﺎ اﺳﺘﻔﺎده از اﻳﻦ دﺳﺘﻮر ﭘﺎﻳﮕﺎه داده ﻣﻮرد ﻧﻈﺮ را اﻳﺠﺎد ﻣﻲﻧﻤﺎﺋﻴﻢ ﻛﻪ ﺧﻮد ﭘﺎﻳﮕﺎه داده‬ ‫ﻣﻲ ﺗﻮاﻧﺪ ﺷﺎﻣﻞ ﺟﺪاول ﻣﺘﻌﺪدي ﺑﺎﺷﺪ‪ .‬ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ ﺗﻌﺮﻳﻒ ﭘﺎﻳﮕﺎه داده اﺳﺎﺳﺎً‬ ‫داراي ﭘﺎراﻣﺘﺮﻫﺎي ﺑﺴﻴﺎري اﺳﺖ ﻛﻪ ﻣﻮﺿﻮع اﻳﻦ ﻛﺘﺎب ﻧﻴﺴﺖ‪.‬‬

‫‪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‬‬

‫آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪاي ‪155 SQL‬‬

‫‪ 2- 3‬ﺗﻌﺮﻳﻒ ﺷﻤﺎ‬ ‫اﻳﻦ ﺗﻌﺮﻳﻒ در ﺣﺎﻟﺖ ﻛﻠﻲ ﺷﺎﻣﻞ ﺗﻌﺮﻳﻒ ﻛﺎرﺑﺮ‪ ،‬ﺗﻌﺮﻳﻒ ﺟﺪاول و ﺗﻌﺮﻳﻒ دﻳﺪ ﻫﺎ و‬ ‫ﺑﺴﻴﺎري ﻣﻔﺎﻫﻴﻢ دﻳﮕﺮ ﻣﻲ ﺑﺎﺷﺪ و ﺳﺎﺧﺘﺎر آن ﺑﺴﺘﻪ ﺑﻪ ﭘﺎﻳﮕﺎه داده اﻧﺘﺨﺎب ﺷﺪه ﻣﺘﻔﺎوت‬ ‫ﻣﻲ ﺑﺎﺷﺪ‪ .‬ﺷﻜﻞ ﻛﻠﻲ دﺳﺘﻮر )ﻛﻪ در آن ﺻﺮﻓﺎ ﺗﻌﺎرﻳﻒ‬

‫‪Table‬‬

‫و‬

‫‪View‬‬

‫آﻣﺪه اﺳﺖ( ﺑﻪ‬

‫ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﺪ‪.‬‬ ‫‪Schema::= CREATE SCHEMA‬‬ ‫‪AUTORIZATION User‬‬ ‫} ‪{ Schema -element -list‬‬ ‫‪Schema -element::= base -table definition‬‬ ‫‪| View definition‬‬ ‫‪| grant -operation‬‬

‫ﺟﻬﺖ ﺣﺬف ﻳﻚ ﺷﻤﺎ از ﻋﺒﺎرت زﻳﺮ اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد‪:‬‬ ‫] ‪DROP SCHEMA Name [ Restrict | Cascade‬‬

‫‪ 3- 3‬ﺟﺪول‬ ‫‪ 1- 3- 3‬ﺗﻌﺮﻳﻒ ﺟﺪول‬ ‫ﺑﺎ اﻳﻦ دﺳﺘﻮر اﻣﻜﺎن ﺗﻌﺮﻳﻒ ﺟﺪاول اﻃﻼﻋﺎﺗﻲ ﺑﺮاي ﻛﺎرﺑﺮ ﻓﺮاﻫﻢ ﻣﻲ ﺷﻮد‪ .‬ﺷﻜﻞ ﻛﻠﻲ‬ ‫دﺳﺘﻮر ﺑﻪ ﺻﻮرت زﻳﺮ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫‪Base -table definition::= CREATE TABLE base -table‬‬ ‫)‪(base -table -element commalist‬‬ ‫‪Base -table -element::= column -definition‬‬ ‫‪| Unique constraint -definition‬‬ ‫] ] ‪Column -definition::= column data -type [ NOT NULL [ UNIQUE‬‬ ‫)‪Unique Constraint -definition::= UNIQUE (Column -Cammalist‬‬

‫ﺑﺮاي ﻣﺜﺎل ﻓﺮض ﻛﻨﻴﺪ ﻣﻲ ﺧﻮاﻫﻴﻢ ﻳﻚ ﺟﺪول ﺷﺎﻣﻞ ﺷﻤﺎره و ﻧﺎم ﻗﺎره ﻫﺎي ﻣﺨﺘﻠﻒ‬ ‫ﺟﻬﺎن درﺳﺖ ﻛﻨﻴﻢ‪ .‬ﻋﺒﺎرت اﻳﺠﺎد ﻛﻨﻨﺪه ﺟﺪول ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح زﻳﺮ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫‪CREATE TABLE Continent‬‬ ‫‪(CntId int ,‬‬ ‫))‪CntName char(30‬‬

‫‪156‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﺣﺎل ﭼﻨﺎﻧﭽﻪ ﺑﺨﻮاﻫﻴﻢ ﻋﺒﺎرت ﻣﺬﻛﻮر را ﻛﺎﻣﻞ ﺗﺮ ﻛﻨﻴﻢ ﻻزم اﺳﺖ ﻣﺤﺪودﻳﺖ ﻫﺎﻳﻲ را‬ ‫ﺑﻪ آن اﺿﺎﻓﻪ ﻧﻤﺎﻳﻴﻢ‪.‬‬ ‫‪CREATE TABLE Continent‬‬ ‫‪(CntId int Unique,‬‬ ‫)‪CntName char (30) NOT NULL‬‬

‫ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ در‬

‫‪SQL -2‬‬

‫ﻛﻠﻤﺎت ﻛﻠﻴﺪي دﻳﮕﺮي ﺑﻪ ﻋﺒﺎرت اﻳﺠﺎد ﺟﺪول‬

‫اﻓﺰوده ﺷﺪهاﻧﺪ ﺑﮕﻮﻧﻪاﻳﻜﻪ اﻣﻜﺎن اﻓﺰودن ﻣﻘﺪار اوﻟﻴﻪ ﺑﻪ ﻳﻚ ﺻﻔﺖ ﺧﺎﺻﻪ و ﻳﺎ اﻣﻜﺎن‬ ‫اﻓﺰودن ﻣﺤﺪودﻳﺖﻫﺎ ﺑﻪ ﺟﺪول در ﻫﻨﮕﺎم اﻳﺠﺎد ﺟﺪول ﻓﺮاﻫﻢ ﺷﺪه اﺳﺖ‪ .‬ﺑﺮاي ﻣﺜﺎل ﺑﺎ‬ ‫اﺳﺘﻔﺎده از ﻛﻠﻤﻪ ﻛﻠﻴﺪي ‪ Default‬در ﺟﻠﻮي ﻳﻚ ﺻﻔﺖ ﺧﺎﺻﻪ ﻣﻲﺗﻮان ﻣﻘﺪار ﭘﻴﺶ ﻓﺮض‬ ‫را ﺑﺮاي آن ﺳﺘﻮن ﺗﻌﻴﻴﻦ ﻧﻤﻮد‪ .‬در ﻋﺒﺎرت زﻳﺮ ﻣﻘﺪار ﭘﻴﺶ ﻓﺮض ﺳﺘﻮن ﺳﺎل ﺑﺮاﺑﺮ ﺑﺎ ‪1384‬‬ ‫در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ‪:‬‬ ‫‪CREATE TABLE Info‬‬ ‫‪(InfoId int unique,‬‬ ‫‪InfoYear int default 1384,‬‬ ‫)‪InfoName char (50) NOT NULL‬‬

‫ﺗﻤﺮﻳﻦ‪:‬‬ ‫ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده داﻧﺸﮕﺎه را ﺑﻪ ﺻﻮرت زﻳﺮ در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪ ،‬ﻃﺮاﺣﻲ ﺑﻪ زﺑﺎن‬

‫‪SQL‬‬

‫آﻧﺮا ﻛﺎﻣﻞ ﻧﻤﺎﺋﻴﺪ‪:‬‬ ‫)‪Stud (S#, Sname, S -add, S -tel‬‬ ‫)‪Prof (P#, Pname, P -add, P -off‬‬ ‫)‪Crs (C#, Cname, unit‬‬ ‫)‪Enroll(S#, C#, Sec#, term, score‬‬ ‫)‪Sec (C#, Sec#, term, time, place, P#‬‬

‫‪ 2- 3- 3‬اﺻﻼح ﺳﺎﺧﺘﺎر ﺟﺪول‬ ‫ﻳﻜﻲ از ﻣﻠﺰوﻣﺎت اﺳﺎﺳﻲ در ﻣﻮرد ﺟﺪاول‪ ،‬اﻣﻜﺎن اﺻﻼًح ﺳﺎﺧﺘﺎر ﺟﺪاول و ﺣﺬف و‬ ‫اﺿﺎﻓﻪ ﻛﺮدن ﺳﺘﻮﻧﻬﺎي ﻣﺮﺑﻮط ﺑﻪ آن ﻣﻲ ﺑﺎﺷﺪ‪ .‬ﺑﺪﻳﻬﻲ اﺳﺖ ﻛﻪ در ﻣﻮاﻗﻌﻲ ﻻزم ﻣﻲ ﺷﻮد‬ ‫ﺗﺎ ﺳﺘﻮﻧﻬﺎي ﺟﺪﻳﺪي )ﺻﻔﺎت ﺧﺎﺻﻪ( ﺑﻪ ﺳﺎﺧﺘﺎر ﺟﺪوﻟﻲ ﻛﻪ از ﻗﺒﻞ ﻃﺮاﺣﻲ ﻛﺮده اﻳﻢ‬ ‫اﺿﺎﻓﻪ ﮔﺮدد ﻳﺎ ﺳﺘﻮن ﻫﺎﻳﻲ از ﺟﺪول ﻣﺬﻛﻮر ﺣﺬف ﮔﺮدد‪ .‬ﻫﻤﭽﻨﻴﻦ اﻳﻦ اﻣﻜﺎن ﻧﻴﺰ‬

‫آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪاي ‪157 SQL‬‬

‫وﺟﻮد دارد ﻛﻪ در ﻣﻮاردي ﺗﺸﺨﻴﺺ دﻫﻴﻢ ﻛﻪ ﻧﻮع داده ﻣﺮﺑﻮط ﺑﻪ ﻳﻚ ﺳﺘﻮن ﺑﺎﻳﺪ‬ ‫ﺗﻐﻴﻴﺮ ﻳﺎﺑﺪ‪ .‬ﺑﺮاي اﻳﻦ ﻣﻨﻈﻮر از دﺳﺘﻮر‬

‫‪ALTER TABLE‬‬

‫اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد ﻛﻪ ﺳﺎﺧﺘﺎر‬

‫ﻛﻠﻲ اﻳﻦ دﺳﺘﻮر در ذﻳﻞ آﻣﺪه اﺳﺖ‪:‬‬ ‫‪ALTER TABLE tablename‬‬ ‫} ‪{ ADD [COLUMN] column definition‬‬ ‫‪| { ALTER [COLUMN] column name‬‬ ‫}} ‪{ SET DEFAULT default option } | { DROP DEFAULT‬‬ ‫} ‪| { DROP [COLUMN] column name‬‬ ‫} ‪| { ADD table constraint definition‬‬ ‫;} ‪| { DROP CONSTRAINT constraint name‬‬

‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ در ﺑﺎﻻ ﻣﺸﺎﻫﺪه ﻣﻲ ﺷﻮد ﻟﻴﺴﺖ ﺗﻐﻴﻴﺮات ﻗﺎﺑﻞ اﻋﻤﺎل ﺑﺮ روي ﻳﻚ ﺟﺪول‬ ‫ﻋﺒﺎرﺗﻨﺪ از‪:‬‬ ‫•‬

‫اﻓﺰودن ﻳﻚ ﺳﺘﻮن ﺑﻪ ﺟﺪول‬

‫•‬

‫ﺣﺬف ﻳﻚ ﺳﺘﻮن از ﺟﺪول‬

‫•‬

‫اﻓﺰودن ﻳﻚ ﻣﺤﺪودﻳﺖ ﺑﻪ ﺟﺪول‬

‫•‬

‫ﺣﺬف ﻳﻚ ﻣﺤﺪودﻳﺖ از ﺟﺪول‬

‫•‬

‫اﻓﺰودن ﻣﻘﺪار اوﻟﻴﻪ ﺑﻪ ﻳﻚ ﺳﺘﻮن‬

‫•‬

‫ﺣﺬف ﻣﻘﺪار اوﻟﻴﻪ ﻳﻚ ﺳﺘﻮن‬

‫ﻣﻤﻜﻦ اﺳﺖ در اﻳﻨﺠﺎ اﻳﻦ ﺳﺌﻮال ﺑﻪ ذﻫﻦ ﺑﺮﺳﺪ ﻛﻪ ﭼﮕﻮﻧﻪ ﻣﻲ ﺗﻮان ﻧﻮع داده اي ﻳﻚ‬ ‫ﺳﺘﻮن را ﺗﻐﻴﻴﺮ داد‪ .‬در اﻳﻨﺠﺎ ﻻزم اﺳﺖ ﺑﻪ اﻳﻦ ﻧﻜﺘﻪ اﺷﺎره ﺷﻮد ﻛﻪ ﺗﻐﻴﻴﺮ ﻧﻮع داده اي‬ ‫ﻳﻚ ﺳﺘﻮن اﺳﺎﺳﺎً در ﺑﺴﻴﺎري از ﭘﺎﻳﮕﺎه ﻫﺎي داده در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻧﺸﺪه اﺳﺖ و اﻳﻦ ﻣﻬﻢ‬ ‫ﺑﻮاﺳﻄﻪ ﻧﻮع ﻗﺮار ﮔﺮﻓﺘﻦ ﻣﻘﺎدﻳﺮ ﻣﺮﺑﻮط ﺑﻪ ﺳﺘﻮن ﻫﺎ در ﻓﻀﺎي ﻓﻴﺰﻳﻜﻲ ﺣﺎﻓﻈﻪ ﻣﻲ ﺑﺎﺷﺪ‬ ‫ﺑﮕﻮﻧﻪ اﻳﻜﻪ ﺣﺘﻲ در ﺑﻌﻀﻲ ﭘﺎﻳﮕﺎه ﻫﺎي داده اﻣﻜﺎن ﺗﻐﻴﻴﺮ ﺗﺮﺗﻴﺐ ﺳﺘﻮنﻫﺎ در ﻳﻚ ﺟﺪول‬ ‫وﺟﻮد ﻧﺪارد‪ .‬اﻣﻜﺎن ﺗﻐﻴﻴﺮ ﻧﻮع داده ﻣﺮﺑﻮط ﺑﻪ ﻳﻚ ﺳﺘﻮن ﻓﻘﻂ در ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎه ﻫﺎي‬ ‫داده و ﺑﺼﻮرت ﻣﻨﻄﻘﻲ ﻃﺮاﺣﻲ ﺷﺪه اﺳﺖ‪ .‬ﺣﺎل در اداﻣﻪ ﺑﻪ ﻣﻨﻈﻮر آﺷﻨﺎﻳﻲ ﺑﻬﺘﺮ ﺑﺎ اﻳﻦ‬ ‫ﻧﻮع دﺳﺘﻮر ﭼﻨﺪ ﻣﺜﺎل ﻣﺨﺘﻠﻒ را ﻧﻤﺎﻳﺶ ﻣﻲ دﻫﻴﻢ‪ .‬ﻓﺮض ﻛﻨﻴﺪ ﻣﻲ ﺧﻮاﻫﻴﻢ ﺳﺘﻮﻧﻲ ﺑﻪ‬ ‫ﻧﺎم‬

‫‪fname‬‬

‫و از ﻧﻮع رﺷﺘﻪ اي را ﺑﻪ ﺟﺪوﻟﻲ ﺑﻪ ﻧﺎم‬

‫‪ SQL‬ﻣﺮﺑﻮﻃﻪ ﺑﻪ ﺷﺮح ذﻳﻞ ﺧﻮاﻫﺪ ﺑﻮد‪:‬‬

‫‪SalesPeople‬‬

‫اﺿﺎﻓﻪ ﻧﻤﺎﻳﻴﻢ‪ .‬ﻋﺒﺎرت‬

‫‪158‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫;)‪ALTER TABLE SalesPeople ADD fname char(10‬‬

‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲﻧﻤﺎﻳﻴﺪ ﻛﻠﻤﻪ ﻛﻠﻴﺪي ‪ COLUMN‬ﺑﻌﺪ از ﻛﻠﻤﻪ ‪ ADD‬ﻧﻮﺷﺘﻪ‬ ‫ﻧﺸﺪه اﺳﺖ‪ .‬در ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎهﻫﺎي داده اﺳﺘﻔﺎده از ﻛﻠﻤﻪ ﻛﻠﻴﺪي‬

‫‪COLUMN‬‬

‫در اﻳﻦ‬

‫ﺷﺮاﻳﻂ اﺟﺒﺎري ﻧﻤﻲﺑﺎﺷﺪ‪ ،‬ﺣﺎل آﻧﻜﻪ در ﺑﻌﻀﻲ دﻳﮕﺮ اﺟﺒﺎري اﺳﺖ‪ .‬ﺣﺎل ﺑﻪ ﻣﺜﺎل دﻳﮕﺮي‬ ‫ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ ﻛﻪ در آن ﻣﻘﺪار ﭘﻴﺶ ﻓﺮض ﺑﺮاي ﻳﻚ ﺳﺘﻮن ﭘﺎﻳﮕﺎهداده ﺗﻌﺮﻳﻒ ﻣﻲﺷﻮد‪.‬‬ ‫‪ALTER TABLE Salespeople‬‬ ‫‪ALTER COLUMN city‬‬ ‫;'‪ADD DEFAULT 'London‬‬

‫‪ 3- 3- 3‬ﺗﻐﻴﻴﺮ ﻧﻮع دادهﻫﺎي ﻳﻚ ﺳﺘﻮن ﺟﺪول‬ ‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ در ﺑﺎﻻ اﺷﺎره ﺷﺪ ﺗﻐﻴﻴﺮ ﻧﻮع داده ﻳﻚ ﺳﺘﻮن از ﺟﺪول در ﻫﺮ‬ ‫ﭘﺎﻳﮕﺎه داده اي اﻣﻜﺎن ﭘﺬﻳﺮ ﻧﻴﺴﺖ‪ .‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻨﻜﻪ اﻳﻦ دﺳﺘﻮر در ﺑﻌﻀﻲ ﭘﺎﻳﮕﺎهﻫﺎي‬ ‫داده ﻓﺮاﻫﻢ ﺷﺪه اﺳﺖ ﻟﺬا ﺷﻜﻞ دﺳﺘﻮر ﻣﺬﻛﻮر در ذﻳﻞ آﻣﺪه اﺳﺖ‪.‬‬ ‫‪ALTER TABLE tablename‬‬ ‫)> ‪MODIFY (< col -name > < new type‬‬

‫ﻣﺜﺎل‪ :‬اﻳﻦ دﺳﺘﻮر ﺗﻌﺪاد ﻛﺎراﻛﺘﺮﻫﺎي ﺻﻔﺖ درس را ﺑﻪ ‪ 40‬ﺗﻐﻴﻴﺮ ﻣﻲ دﻫﺪ‪.‬‬ ‫‪ALTER TABLE crs‬‬ ‫;))‪MODIFY (Cname char(40‬‬

‫ﺗﻮﺟﻪ‪ :‬ﺗﻐﻴﻴﺮ ﻧﻮع داده در اﻛﺜﺮ ‪ SQL‬ﻫﺎ ﻏﻴﺮ ﻣﺠﺎز اﺳﺖ و در ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎهﻫﺎي داده‬ ‫ﻗﺒﻞ از ﺗﺎﻳﻴﺪ ﻋﻤﻞ ﻣﺬﻛﻮر اﻗﺪام ﺑﻪ ﺑﺮرﺳﻲ ﻣﺤﺘﻮاي دادهﻫﺎي ﺳﺘﻮن ﻣﻮرد ﻧﻈﺮ ﻣﻲ ﮔﺮدد‬ ‫و در ﺻﻮرت ﻗﺎﺑﻞ ﻗﺒﻮل ﺑﻮدن ﻋﻤﻞ ﺗﺒﺪﻳﻞ ﻧﻮع اﻳﻦ درﺧﻮاﺳﺖ ﺗﺎﺋﻴﺪ ﻣﻲ ﮔﺮدد‪ .‬ﺑﻌﻨﻮان‬ ‫ﻣﺜﺎل ﺗﻐﻴﻴﺮ ﻧﻮع داده اي از ﻛﺎراﻛﺘﺮ ﺑﻪ ﻋﺪد ﻓﻘﻂ درﺻﻮرﺗﻴﻜﻪ ﺗﻤﺎﻣﻲ ﻣﻘﺎدﻳﺮ ﻳﻚ ﺳﺘﻮن از‬ ‫ﻧﻮع ﻋﺪد ﺑﺎﺷﻨﺪ اﻣﻜﺎن ﭘﺬﻳﺮ اﺳﺖ و ﭼﻨﺎﻧﭽﻪ ﺣﺘﻲ ﻳﻚ ﻣﻘﺪار ﺷﺎﻣﻞ ﺣﺮوف ﺑﺎﺷﺪ‪،‬‬ ‫اﻧﺠﺎم اﻳﻦ ﻛﺎر ﻏﻴﺮ ﻣﻤﻜﻦ اﺳﺖ‪.‬‬

‫‪ 4- 3- 3‬ﺣﺬف ﻳﻚ ﺟﺪول‬ ‫در ﻣﻮاردي ﻣﻤﻜﻦ اﺳﺖ ﻻزم ﺑﺎﺷﺪ ﻳﻚ ﺟﺪول از ﭘﺎﻳﮕﺎه داده ﺣﺬف ﮔﺮدد‪ .‬ﺑﺮاي اﻧﺠﺎم‬

‫آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪاي ‪159 SQL‬‬

‫اﻳﻨﻜﺎر دﺳﺘﻮر زﻳﺮ ﻣﻮﺟﻮد ﻣﻲﺑﺎﺷﺪ‪ .‬ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ در ﻫﻨﮕﺎم ﺣﺬف ﻳﻚ ﺟﺪول‬ ‫ﺑﺎﻳﺪ ﺑﺮرﺳﻲ ﮔﺮدد ﻛﻪ ﭼﻨﺎﻧﭽﻪ ﺟﺪاول دﻳﮕﺮي ﺑﻪ اﻳﻦ ﺟﺪول ﻣﺮﺗﺒﻂ ﺑﺎﺷﻨﺪ‪ ،‬ﭼﻪ ﻋﻤﻠﻲ‬ ‫ﺑﺎﻳﺪ ﺑﺮروي ﺟﺪاول ﻣﺮﺗﺒﻂ اﻧﺠﺎم ﮔﻴﺮد و آﻳﺎ اﺳﺎﺳﺎً اﻣﻜﺎن ﺣﺬف ﺟﺪول وﺟﻮد دارد ﻳﺎ‬ ‫ﺧﻴﺮ‪ .‬ﺷﻜﻞ ﻛﻠﻲ دﺳﺘﻮر ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح زﻳﺮ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫;] ‪DROP TABLE tablename [ RESTRICT | CASCADE‬‬

‫‪ -4‬دﺳﺘﻮرات ﭘﺮس و ﺟﻮ )ﻣﺸﺎﻫﺪه( دادهﻫﺎ‬ ‫ﻳﻜﻲ از ﻣﻬﻤﺘﺮﻳﻦ ﺧﻮاﺳﺘﻪ ﻫﺎي ﻛﺎرﺑﺮان ﻫﺮ ﭘﺎﻳﮕﺎه داده‪ ،‬اﻣﻜﺎن ﺑﺎزﻳﺎﺑﻲ داده ﻫﺎي ﺛﺒﺖ‬ ‫ﺷﺪه در ﺟﺪاول ﻣﻲ ﺑﺎﺷﺪ‪ .‬ﺑﻪ اﻳﻦ ﻣﻨﻈﻮر دﺳﺘﻮراﺗﻲ اراﺋﻪ ﺷﺪه اﻧﺪ ﻛﻪ اﻣﻜﺎن ﺑﺎزﻳﺎﺑﻲ‬ ‫ﺳﻄﺮﻫﺎ ﻳﺎ ﺳﺘﻮن ﻫﺎﻳﻲ از ﻳﻚ ﺟﺪول و ﻳﺎ ﭼﻨﺪ ﺟﺪول اﻃﻼﻋﺎﺗﻲ را ﻓﺮاﻫﻢ ﻣﻲآورﻧﺪ ﻛﻪ‬ ‫‪1‬‬

‫ﺑﻪ آﻧﻬﺎ اﺻﻄﻼﺣﺎ زﺑﺎن ﭘﺮس و ﺟﻮي داده ﻫﺎ ﻣﻲ ﮔﻮﻳﻨﺪ‪ .‬ﻣﻬﻤﺘﺮﻳﻦ دﺳﺘﻮر از اﻳﻦ ﻧﻮع‬ ‫دﺳﺘﻮرات دﺳﺘﻮر‬ ‫زﺑﺎن‬

‫‪SQL‬‬

‫‪SELECT‬‬

‫ﻣﻲ ﺑﺎﺷﺪ‪ .‬اﻳﻦ دﺳﺘﻮر ﻳﻜﻲ از ﭘﻴﭽﻴﺪه ﺗﺮﻳﻦ دﺳﺘﻮرات در‬

‫ﻣﻲ ﺑﺎﺷﺪ و ﺧﻮد ﺑﻪ ﺗﻨﻬﺎﻳﻲ ﺷﺎﻣﻞ دﺳﺘﻮرات ﻣﺘﻨﻮﻋﻲ ﻣﻲ ﺑﺎﺷﺪ‪ .‬ﺷﻜﻞ ﻛﻠﻲ‬

‫دﺳﺘﻮر ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫]‪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‬‬

‫‪160‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫راﺣﺘﻲ ﺑﻴﺸﺘﺮ ﺧﻮاﻧﻨﺪﮔﺎن‪ ،‬ﺳﻌﻲ ﻣﻲﻛﻨﻴﻢ در اﺑﺘﺪا ﻣﺜﺎﻟﻬﺎي ﺳﺎده ﺗﺮ در ﻣﻮرد اﻳﻦ دﺳﺘﻮر را‬ ‫ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار دﻫﻴﻢ و در اداﻣﻪ ﻫﻤﻴﻦ ﻓﺼﻞ در ﺧﺼﻮص ﺣﺎﻻت ﭘﻴﭽﻴﺪه ﺗﺮ اﻳﻦ‬ ‫دﺳﺘﻮر و ﻃﺮﻳﻘﻪ ﺑﺎزﻳﺎﺑﻲ دادهﻫﺎ از ﭼﻨﺪﻳﻦ ﺟﺪول اﻃﻼﻋﺎﺗﻲ را ﺷﺮح ﺧﻮاﻫﻴﻢ داد‪ .‬ﺣﺎﻟﺖ‬ ‫ﺳﺎده ﺷﺪه دﺳﺘﻮر ﻣﺬﻛﻮر ﺑﺼﻮرت زﻳﺮ ﻗﺎﺑﻞ ﻧﻤﺎﻳﺶ اﺳﺖ ﻛﻪ ﺑﻪ آن اﺻﻄﻼﺣﺎ‬

‫‪SFW‬‬

‫ﻧﻴﺰ‬

‫ﻣﻲﮔﻮﻳﻨﺪ ﻛﻪ ﺣﺮوف اول ﻫﺮ ﻗﺴﻤﺖ ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫… ‪SELECT column name ,‬‬ ‫‪FROM table name‬‬ ‫‪WHERE criteria‬‬

‫ﻛﻪ در آن‬

‫‪column name‬‬

‫ﻧﺎم ﺳﺘﻮن ﻫﺎ‪،‬‬

‫‪table name‬‬

‫ﻧﺎم ﺟﺪول و‬

‫‪criteria‬‬

‫ﺷﺮط ﻣﻮرد‬

‫ﻧﻈﺮ ﺑﺮاي اﻧﺘﺨﺎب و ﺑﺎزﻳﺎﺑﻲ رﻛﻮردﻫﺎ ﻣﻲ ﺑﺎﺷﺪ‪.‬‬ ‫در ﺣﺎﻟﺖ ﺑﺴﻴﺎر ﺳﺎده ﻣﻲﺗﻮان ﻓﺮض ﻛﺮد ﻛﻪ ﻣﻲﺧﻮاﻫﻴﻢ رﻛﻮردﻫﺎي ﻳﻚ ﺟﺪول‬ ‫)ﻣﺜﻼ ﺟﺪول اﻃﻼﻋﺎت ﭘﺮﺳﻨﻠﻲ ‪ (EMP‬را ﺑﺎزﻳﺎﺑﻲ ﻧﻤﺎﻳﻴﻢ‪ .‬ﻓﺮض ﻛﻨﻴﻢ ﺟﺪول ‪ EMP‬داراي‬ ‫ﺳﺎﺧﺘﺎر زﻳﺮ ﺑﺎﺷﺪ و ﺑﻐﻴﺮ از ﺻﻔﺖ ﺧﺎﺻﻪ‬

‫‪EMPNO‬‬

‫ﻛﻪ ﻛﻠﻴﺪ اﺻﻠﻲ ﻣﻲﺑﺎﺷﺪ ﺳﺎﻳﺮ ﻣﻘﺎدﻳﺮ‬

‫ﻣﻲﺗﻮاﻧﻨﺪ ﻣﻘﺪار ‪ NULL‬را ﺑﭙﺬﻳﺮﻧﺪ‪:‬‬ ‫ﻧﺎم ﺻﻔﺖ ﺧﺎﺻﻪ‬

‫‪Name‬‬

‫ﺷﻤﺎره ﭘﺮﺳﻨﻠﻲ‬

‫‪EMPNO‬‬

‫ﻧﺎم ﭘﺮﺳﻨﻞ‬

‫‪ENAME‬‬ ‫‪JOB‬‬

‫ﺷﻐﻞ‬

‫‪MGR‬‬

‫ﺷﻤﺎره ﻣﺪﻳﺮ‬ ‫ﺗﺎرﻳﺦ اﺳﺘﺨﺪام‬

‫‪HIREDATE‬‬

‫در ﻋﺒﺎرت ذﻳﻞ ﻣﻲﺧﻮاﻫﻴﻢ ﻛﻠﻴﻪ رﻛﻮردﻫﺎي ﺟﺪول را ﺑﺎزﻳﺎﺑﻲ ﻧﻤﺎﻳﻴﻢ‪ .‬ﻋﺒﺎرت ﻣﻮرد‬ ‫ﻧﻈﺮ ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲﺑﺎﺷﺪ‪:‬‬ ‫* ‪Select‬‬ ‫;‪From EMP‬‬

‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ در ﻋﺒﺎرت ﺑﺎﻻ ﻣﺸﺎﻫﺪه ﻣﻲ ﺷﻮد ﻋﻼﻣﺖ‬

‫*‬

‫ﺑﻪ ﻣﻌﻨﺎي اﻧﺘﺨﺎﺑﻲ‬

‫ﺗﻤﺎﻣﻲ ﺳﺘﻮن ﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﺳﻄﺮﻫﺎ ﻣﻲ ﺑﺎﺷﺪ‪ .‬اﻳﻦ دﺳﺘﻮر ﻣﻲ ﺗﻮاﻧﺪ ﺑﻪ ﺷﺮح ذﻳﻞ ﻧﻴﺰ‬ ‫ﺑﺎﺷﺪ‪:‬‬

‫آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪاي ‪161 SQL‬‬ ‫*‪Select EMP.‬‬ ‫; ‪From EMP‬‬

‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲﮔﺮدد در اﻳﻦ دﺳﺘﻮر ﻗﺒﻞ از اﺳﺘﻔﺎده از ﻋﻼﻣﺖ *‪ ،‬ﻧﺎم‬ ‫ﺟﺪول ﻧﻴﺰ ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ ﻛﻪ در اﻳﻦ ﻣﻮرد ﺑﻌﺪا ﺗﻮﺿﻴﺢ ﺧﻮاﻫﻴﻢ داد‪ .‬ﺣﺎل در اداﻣﻪ‬ ‫ﻓﺮض ﻛﻨﻴﻢ ﻣﻲﺧﻮاﻫﻴﻢ ﻓﻘﻂ ﺳﺘﻮنﻫﺎي ﺷﻤﺎره ﭘﺮﺳﻨﻠﻲ و ﻧﺎم ﭘﺮﺳﻨﻞ را ﺑﺮاي ﺗﻤﺎﻣﻲﭘﺮﺳﻨﻞ‬ ‫ﺑﺎزﻳﺎﺑﻲ ﻧﻤﺎﻳﻴﻢ‪ .‬ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲﺑﺎﺷﺪ‪:‬‬ ‫‪Select empno , ename‬‬ ‫; ‪From EMP‬‬

‫ﻣﻲﺗﻮاﻧﺴﺘﻴﻢ ﻗﺒﻞ از اﺳﺎﻣﻲﺳﺘﻮﻧﻬﺎ‪ ،‬ﻧﺎم ﺟﺪول را ﻧﻴﺰ ﺑﻜﺎر ﺑﺒﺮﻳﻢ ﻛﻪ از اﻳﻦ ﻛﺎر‬ ‫اﺟﺘﻨﺎب ﻛﺮدﻳﻢ‪ .‬ﺣﺎل ﻓﺮض ﻛﻨﻴﻢ ﻣﻲﺧﻮاﻫﻴﻢ ﺑﺪاﻧﻴﻢ ﻛﻪ اﮔﺮ ﺣﻘﻮق ﻫﺮ ﻳﻚ از ﭘﺮﺳﻨﻞ را‬ ‫‪ %10‬اﻓﺰاﻳﺶ دﻫﻴﻢ ﭼﻪ ﻣﻴﺰاﻧﻲ ﺣﻘﻮق ﺑﺮاي ﻫﺮ ﻳﻚ از ﭘﺮﺳﻨﻞ ﺧﻮاﻫﻴﻢ داﺷﺖ‪ .‬ﻋﺒﺎرت‬ ‫ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح زﻳﺮ ﺧﻮاﻫﺪ ﺑﻮد‪:‬‬ ‫‪Select empno,ename,sall * 0.1‬‬ ‫;‪From emp‬‬

‫ﭼﻨﺎﻧﭽﻪ ﺑﺨﻮاﻫﻴﻢ ﻋﺒﺎرت را واﺿﺢ ﺗﺮ ﺑﻴﺎن ﻛﻨﻴﻢ ﻻزم اﺳﺖ ﻛﻪ ﺑﺮاي ﻋﺒﺎرت‬ ‫‪0.1‬‬

‫ﻳﻚ ﻧﺎم ﻣﺴﺘﻌﺎر ﻣﺎﻧﻨﺪ‬

‫‪NEWSALL‬‬

‫* ‪sall‬‬

‫در ﻧﻈﺮ ﺑﮕﻴﺮﻳﻢ ﻛﻪ ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح زﻳﺮ‬

‫ﺧﻮاﻫﺪ ﺑﻮد‪.‬‬ ‫‪Select empno,ename,sall * 0.1 as newsall‬‬ ‫;‪From emp‬‬

‫ﺣﺎل ﺑﺮاي ﻣﺸﺨﺺ ﺷﺪن ﻋﺒﺎرت‬

‫‪WHERE‬‬

‫)ﺑﻴﺎن ﻛﻨﻨﺪه ﺷﺮط( ﻣﺜﺎل دﻳﮕﺮي را‬

‫ﻣﻄﺮح ﻣﻲﻛﻨﻴﻢ‪ .‬ﻓﺮض ﻛﻨﻴﻢ ﻣﻲﺧﻮاﻫﻴﻢ اﻃﻼﻋﺎت ﻛﺴﺎﻧﻲ را ﻣﺸﺎﻫﺪه ﻛﻨﻴﻢ ﻛﻪ ﻣﻴﺰان ﺣﻘﻮق‬ ‫آﻧﻬﺎ از ‪ 10000‬ﺗﻮﻣﺎن ﺑﻴﺸﺘﺮ ﺑﺎﺷﺪ‪ .‬ﺑﻪ ﻋﺒﺎرت زﻳﺮ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ‪.‬‬ ‫* ‪SELECT‬‬ ‫‪FROM emp‬‬ ‫; ‪WHERE sall > 10000‬‬

‫‪162‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫در اﻳﻦ ﻋﺒﺎرت ﺟﻠﻮي ﻛﻠﻤﻪ‬

‫‪WHERE‬‬

‫ﻋﺒﺎرت ﺷﺮط ﻣﻄﺮح ﺷﺪه اﺳﺖ‪ .‬ﭼﻨﺎﻧﭽﻪ‬

‫ﺻﺮﻓﺎ ﺑﻌﻀﻲ از ﺻﻔﺎت ﺧﺎﺻﻪ ﻣﻄﺮح ﺑﺎﺷﻨﺪ ﻣﻲﺗﻮان ﺑﺠﺎي اﺳﺘﻔﺎده از ﻋﻼﻣﺖ *‪،‬‬ ‫اﺳﺎﻣﻲﺳﺘﻮﻧﻬﺎ )ﺻﻔﺎت ﺧﺎﺻﻪ( را ﻧﻮﺷﺖ‪.‬‬ ‫ﻳﻜﻲ از ﻧﻜﺎت ﺑﺴﺎﻳﺮ ﻣﻬﻢ اﻳﻦ اﺳﺖ ﻛﻪ ﻻزم اﺳﺖ ﺗﺮﺗﻴﺐ ﺳﻪ ﻛﻠﻤﻪ‬ ‫‪FROM‬‬

‫و‬

‫‪WHERE‬‬

‫‪SELECT‬‬

‫و‬

‫رﻋﺎﻳﺖ ﺷﻮد‪ .‬ﭼﻨﺎﻧﭽﻪ ﺗﺮﺗﻴﺐ ﻣﺬﻛﻮر رﻋﺎﺑﺖ ﻧﮕﺮدد ﺳﻴﺴﺘﻢ ﺑﺎ ﭘﻴﻐﺎم‬

‫ﺧﻄﺎ ﻣﻮاﺟﻬﻪ ﻣﻲﮔﺮدد‪ .‬ﻫﻤﭽﻨﻴﻦ ﻣﻲﺗﻮان در ﻋﺒﺎرات‪ ،‬ﻛﻠﻤﻪ ‪ WHERE‬را در ﺻﻮرت ﻧﺒﻮدن‬ ‫ﺷﺮط ﺑﻜﺎر ﻧﺒﺮد‪ ،‬وﻟﻲ ﺣﺘﻤﺎ ﺑﺎﻳﺪ ﻛﻠﻤﺎت ﻛﻠﻴﺪي ‪ SELECT‬و ‪ FROM‬در ﻋﺒﺎرت ﺑﺎﺷﻨﺪ‪.‬‬ ‫ﺗﺬﻛﺮ‪ :‬در ﺑﻌﻀﻲ ﺷﺮاﻳﻂ اﻣﻜﺎن دارد ﻛﻪ ﻛﻪ ﻛﺎرﺑﺮ ﺑﺨﻮاﻫﺪ ﻣﻘﺪاري را در ﺳﻴﺴﺘﻢ‬ ‫ﻣﺤﺎﺳﺒﻪ ﻧﻤﺎﻳﺪ ﻛﻪ اﺻﻼً ارﺗﺒﺎﻃﻲ ﺑﺎ ﻫﻴﭻ ﺟﺪوﻟﻲ ﻧﺪارد‪ .‬از آﻧﺠﺎﻳﻴﻜﻪ ﻻزم اﺳﺖ ﺣﺘﻤﺎ‬ ‫ﺑﻌﺪ از ﻛﻠﻤﻪ‬

‫‪FROM‬‬

‫ﻧﺎم ﺟﺪول ذﻛﺮ ﮔﺮدد‪ ،‬ﻟﺬا در ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎه ﻫﺎي داده ﻳﻚ‬

‫ﺟﺪول ﻓﺮﺿﻲ ﺗﻌﺮﻳﻒ ﺷﺪه اﺳﺖ‪ .‬ﻣﺜﻼ در ﭘﺎﻳﮕﺎه داده‬

‫‪ORACLE‬‬

‫ﻧﺎم ﺟﺪول ﻓﺮﺿﻲ‬

‫‪ DUAL‬ﻣﻲ ﺑﺎﺷﺪ‪ .‬ﺑﻪ ﻋﺒﺎرت ذﻳﻞ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ‪:‬‬ ‫‪SELECT 50 * 147‬‬ ‫; ‪FROM DUAL‬‬

‫ﺗﺎ اﻳﻦ ﻣﺮﺣﻠﻪ از دﺳﺘﻮر‬

‫‪SELECT‬‬

‫ﺑﺼﻮرت ﺑﺴﻴﺎر ﺳﺎده ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﮔﺮﻓﺖ‪.‬‬

‫ﻗﺴﻤﺖﻫﺎي ﭘﻴﺸﺮﻓﺘﻪ ﺗﺮ اﻳﻦ دﺳﺘﻮر در اداﻣﻪ ﻫﻤﻴﻦ ﻓﺼﻞ ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﺪ ﮔﺮﻓﺖ‪.‬‬ ‫در اداﻣﻪ دﺳﺘﻮرات ﻛﺎر ﺑﺮ روي دادهﻫﺎ را ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻴﻢ داد‪.‬‬

‫‪ - 5‬دﺳﺘﻮرات ﻛﺎر ﺑﺮ روي دادهﻫﺎ‬ ‫ﻳﻜﻲ از ﺑﺪﻳﻬﻲ ﺗﺮﻳﻦ ﻧﻴﺎزﻫﺎ ﺑﺮاي ﻛﺎرﺑﺮان‪ ،‬وﺟﻮد اﻣﻜﺎن ﻛﺎر ﺑﺮ روي داده ﻫﺎ ﻣﻲ ﺑﺎﺷﺪ‬ ‫‪1‬‬

‫ﻛﻪ ﻣﺘﻨﺎﺳﺐ ﺑﺎ اﻳﻦ ﻧﻴﺎز دﺳﺘﻮراﺗﻲ ﺗﺤﺖ ﻋﻨﻮان زﺑﺎن ﻛﺎر ﺑﺎ داده ﻫﺎ ﻃﺮاﺣﻲ ﺷﺪه اﺳﺖ‪.‬‬ ‫اﻳﻦ ﻋﻤﻠﻴﺎت ﻣﻲ ﺗﻮاﻧﺪ ﺷﺎﻣﻞ ﻣﻮارد زﻳﺮ ﺑﺎﺷﺪ‪:‬‬ ‫•‬

‫‪- INSERT‬اﻓﺰودن رﻛﻮرد )ﻫﺎﻳﻲ( ﺑﻪ ﻳﻚ ﺟﺪول‬

‫•‬

‫‪- UPDATE‬اﺻﻼًح اﻃﻼﻋﺎت ﻣﻮﺟﻮد در ﻳﻚ ﺟﺪول‬

‫•‬

‫‪- DELETE‬ﺣﺬف رﻛﻮرد )ﻫﺎﻳﻲ( از ﺟﺪول‬

‫ﻫﺮ ﻳﻚ از اﻳﻦ ﻋﻤﻠﻴﺎت داراي دﺳﺘﻮرات ﺧﺎص ﺧﻮد ﻣﻲ ﺑﺎﺷﻨﺪ ﻛﻪ در اداﻣﻪ ﺑﻪ ﺷﺮح‬ ‫) ‪1. D at a M a ni p u l a t i o n La n gu a ge ( D M L‬‬

‫آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪاي ‪163 SQL‬‬

‫ﻫﺮ ﻳﻚ ﺧﻮاﻫﻴﻢ ﭘﺮداﺧﺖ‪.‬‬

‫‪ 1-5‬دﺳﺘﻮر‬

‫‪INSERT‬‬

‫اﻳﻦ دﺳﺘﻮر ﺑﻪ ﻣﻨﻈﻮر وارد ﻛﺮدن )اﻓﺰودن( رﻛﻮرد ﻳﺎ رﻛﻮردﻫﺎﻳﻲ ﺑﻪ ﻳﻚ ﺟﺪول‬ ‫ﺗﻌﺮﻳﻒ ﺷﺪه اﺳﺖ‪ .‬ﺷﻜﻞ ﻛﻠﻲ دﺳﺘﻮر ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫‪INSERT INTO table name‬‬ ‫] )… ‪[ (column name ,‬‬ ‫} )… ‪{ VALUES (value ,‬‬ ‫; ‪| sub query‬‬

‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ در دﺳﺘﻮر ﺑﺎﻻ ﻣﺸﺎﻫﺪه ﻣﻲﮔﺮدد‪ ،‬در اﻧﺘﻬﺎي دﺳﺘﻮر از ﻋﺒﺎرت‬

‫‪sub‬‬

‫‪ query‬اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ ﻛﻪ اﻳﻦ دﺳﺘﻮر ﺑﻪ ﻣﻨﻈﻮر اﻧﺘﺨﺎب ﭼﻨﺪﻳﻦ رﻛﻮرد از ﻳﻚ ﺟﺌﻮل و‬ ‫اﻓﺰودن ﻳﻜﺒﺎره آﻧﻬﺎ ﺑﻪ ﺟﺪول ﻣﺬﻛﻮر ﻣﻲﺑﺎﺷﺪ‪ .‬در اﺑﺘﺪا ﺑﺮاي آﺷﻨﺎﻳﻲ ﺧﻮاﻧﻨﺪﮔﺎن ﺑﺎ اﻳﻦ‬ ‫دﺳﺘﻮر‪ ،‬اﻓﺰودن ﻳﻚ رﻛﻮرد ﺑﻪ ﺟﺪول را ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲدﻫﻴﻢ‪ .‬در دﺳﺘﻮر ﺑﺎﻻ در‬ ‫اﺑﺘﺪا ﻧﺎم ﺟﺪول را ﻛﻪ ﻣﻲﺧﻮاﻫﻴﻢ ﻣﻘﺎدﻳﺮي را ﺑﻪ آن ﺑﻴﺎﻓﺰاﻳﻴﻢ وارد ﻣﻲﻛﻨﻴﻢ و ﺳﭙﺲ‬ ‫اﺳﺎﻣﻲﺳﺘﻮﻧﻬﺎﻳﻲ از رﻛﻮرد را ﻛﻪ ﻣﻲﺧﻮاﻫﻴﻢ ﻣﻘﺎدﻳﺮي را در آﻧﻬﺎ وارد ﻧﻤﺎﻳﻴﻢ را ﻧﻮﺷﺘﻪ و‬ ‫ﺳﭙﺲ ﻣﻘﺎدﻳﺮ ﻣﺮﺗﺒﻂ ﺑﺎ ﻫﺮ ﺳﺘﻮن را وارد ﻣﻲﻧﻤﺎﻳﻴﻢ‪ .‬ﺑﺮاي ﻣﺜﺎل ﻓﺮض ﻛﻨﻴﻢ ﻣﻲﺧﻮاﻫﻴﻢ در‬ ‫ﺟﺪوﻟﻲ ﺑﻨﺎم ‪ SalesPeople‬ﻛﻪ داراي ﭼﻬﺎر ﺳﺘﻮن ﻣﻲﺑﺎﺷﺪ‪ ،‬ﻳﻚ رﻛﻮرد ﺑﺎ ﻣﻘﺎدﻳﺮ ﻣﺸﺨﺼﻲ‬ ‫ذﻳﻞ وارد ﻧﻤﺎﻳﻴﻢ‪ .‬ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﻪ اﻳﻦ ﺷﺮح ﻣﻲﺑﺎﺷﺪ‪:‬‬ ‫‪INSERT INTO Salespeople‬‬ ‫;)‪VALUES (1001,'Peel','London', 12‬‬

‫ﺣﺎل ﻓﺮض ﻛﻨﻴﻢ ﻣﺜﻼ ﻧﻤﻲداﻧﻴﻢ ﻛﻪ ﺷﺨﺺ ﻣﺬﻛﻮر در ﺷﻬﺮ ﻟﻨﺪن اﻗﺎﻣﺖ دارد و‬ ‫ﻣﻲﺧﻮاﻫﻴﻢ رﻛﻮرد ﻣﺬﻛﻮر را وارد ﻧﻤﺎﻳﻴﻢ ﺑﺪون آﻧﻜﻪ ﻛﻘﺪاري ﺑﺮاي ﺻﻔﺖ ﺧﺎﺻﻪ ﺷﻬﺮ در‬ ‫ﻧﻈﺮ ﺑﮕﻴﺮﻳﻢ‪ .‬ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح زﻳﺮ ﻣﻲﺑﺎﺷﺪ‪:‬‬ ‫‪Insert Into salespeople‬‬ ‫;)‪Values (1001,'Peel', NULL, 12‬‬

‫ﺗﻮﺟﻪ‪ :‬ﺑﺮاي آﻧﺪﺳﺘﻪ از ﺳﺘﻮﻧﻬﺎﻳﻲ ﻛﻪ ﺑﻌﻨﻮان ﻛﻠﻴﺪ اﺻﻠﻲ ﻫﺴﺘﻨﺪ و ﻳﺎ اﻳﻨﻜﻪ ﺣﺘﻤﺎ ﺑﺎﻳﺪ‬ ‫ﻣﻘﺪاري )ﻏﻴﺮ از ‪ (NULL‬را داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪ ،‬ﻻزم اﺳﺖ ﻣﻘﺪاري در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﻮد‪ ،‬در‬ ‫ﻏﻴﺮ اﻳﻨﺼﻮرت اﻣﻜﺎن اﻓﺰودن رﻛﻮرد ﺟﺪﻳﺪ وﺟﻮد ﻧﺪارد‪.‬‬

‫‪164‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ ﺗﺮﺗﻴﺐ وارد ﻛﺮدن ﻣﻘﺎدﻳﺮ ﺑﻪ ﺗﺮﺗﻴﺐ ﺗﻌﺮﻳﻒ ﺳﺘﻮﻧﻬﺎ ﻓﺮض‬ ‫ﺷﺪه اﺳﺖ‪ .‬ﭼﻨﺎﻧﭽﻪ ﺑﺨﻮاﻫﻴﻢ ﺗﺮﺗﻴﺐ ورود ﻣﻘﺎدﻳﺮ ﺑﺮاي ﺳﺘﻮﻧﻬﺎ را ﺗﻐﻴﻴﺮ دﻫﻴﻢ و ﻳﺎ اﻳﻨﻜﻪ‬ ‫ﺻﺮﻓﺎ ﺑﺨﻮاﻫﻴﻢ ﺑﺠﺎي ﻗﺮار دادن ﻣﻘﺪار ‪ NULL‬ﺑﺮاي ﻳﻚ ﺳﺘﻮن‪ ،‬اﺻﻼً ﻧﺎم آن ﺳﺘﻮن را ﺑﻜﺎر‬ ‫ﻧﺒﺮﻳﻢ‪ ،‬ﻻزم اﺳﺖ ﻧﺎم ﺳﺘﻮﻧﻬﺎ ﺑﻪ ﺗﺮﺗﻴﺐ ﻣﻮرد ﻧﻈﺮ در ﺟﻠﻮي ﻧﺎم ﺟﺪول وارد ﺷﺪه و ﺳﭙﺲ‬ ‫ﺑﻪ ﻫﻤﺎن ﺗﺮﺗﻴﺐ‪ ،‬ﻣﻘﺎدﻳﺮ ﻣﺮﺗﺒﻂ وارد ﺷﻮﻧﺪ‪ .‬ﺑﺮاي ﺗﻮﺿﻴﺢ ﺑﻴﺸﺘﺮ ﻓﺮض ﻛﻨﻴﻢ ﺟﺪوﻟﻲ ﺑﻨﺎم‬ ‫‪Customers‬‬

‫دارﻳﻢ ﻛﻪ ﻓﻘﻂ ﻣﻲﺧﻮاﻫﻴﻢ در ﺳﺘﻮنﻫﺎي‬

‫‪city‬‬

‫و‬

‫‪cname‬‬

‫و‬

‫‪cnum‬‬

‫آن ﺟﺪول‬

‫ﻣﻘﺎدﻳﺮي را وارد ﻧﻤﺎﻳﻴﻢ‪ .‬ﺑﻪ ﻋﺒﺎرت ذﻳﻞ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ‪:‬‬ ‫)‪INSERT INTO Customers (city, cname, cnum‬‬ ‫;)‪VALUES ('London','Hoffman', 2001‬‬

‫ﺗﺎ اﻳﻦ ﻣﺮﺣﻠﻪ ﺻﺮﻓﺎ ﻳﻚ رﻛﻮرد ﺑﻪ ﺟﺪول وارد ﺷﺪه اﺳﺖ‪ .‬ﭼﻨﺎﻧﭽﻪ ﺑﺨﻮاﻫﻴﻢ‬ ‫ﺗﻌﺪادي رﻛﻮرد را از ﺟﺪول دﻳﮕﺮي اﻧﺘﺨﺎب و ﺑﻪ ﺟﺪول ﻣﺬﻛﻮر وارد ﻧﻤﺎﻳﻴﻢ‪ ،‬ﺑﺠﺎي‬ ‫اﺳﺘﻔﺎده از ﻛﻠﻤﻪ ‪ ،Values‬ﻻزم اﺳﺖ ﺗﺎ ﻳﻚ ﻋﺒﺎرت‬

‫‪Select‬‬

‫را وارد ﻧﻤﺎﻳﻴﻢ‪ .‬ﺑﺮاي روﺷﻦ‬

‫ﺷﺪن اﻳﻦ ﻣﻄﻠﺐ ﺑﻪ ﻋﺒﺎرت زﻳﺮ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ‪:‬‬ ‫‪INSERT INTO LondonStaff‬‬ ‫* ‪SELECT‬‬ ‫‪FROM salespeople‬‬ ‫;'‪Where city = 'London‬‬

‫ﺣﺎل ﻓﺮض ﻛﻨﻴﺪ ﻣﻲﺧﻮاﻫﻴﻢ ﺻﺮﻓﺎ دو ﺳﺘﻮن ﺑﻨﺎمﻫﺎي‬

‫‪FDate‬‬

‫و‬

‫‪Total‬‬

‫از ﺟﺪوﻟﻲ‬

‫ﺑﻨﺎم ‪ DayTotals‬را ﺑﺎ ﻣﻘﺎدﻳﺮ اﻧﺘﺨﺎب ﺷﺪه از ﺟﺪول دﻳﮕﺮي ﭘﺮ ﻛﻨﻴﻢ‪ .‬ﻣﺜﺎل زﻳﺮ ﺑﻴﺎﻧﮕﺮ اﻳﻦ‬ ‫ﻣﻄﻠﺐ ﻣﻲﺑﺎﺷﺪ‪:‬‬ ‫)‪Insert Into daytotals (fdate,total‬‬ ‫‪Select odate,income‬‬ ‫; ‪From orders‬‬

‫ﻧﻜﺘﻪ ﺑﺴﻴﺎر ﻣﻬﻢ در ﻧﻮﺷﺘﻦ اﻳﻦ ﻋﺒﺎرت اﻳﻦ اﺳﺖ ﻛﻪ ﺗﻌﺪاد ﺳﺘﻮﻧﻬﺎي اﻧﺘﺨﺎب ﺷﺪه در‬ ‫ﻋﺒﺎرت ‪ Select‬ﺑﺎﻳﺪ ﺑﺮاﺑﺮ ﺑﺎ ﺗﻌﺪاد ﺳﺘﻮن ﻫﺎي ﺟﺪول اﺻﻠﻲ ﺑﺎﺷﺪ‪.‬‬

‫‪ 2-5‬دﺳﺘﻮر‬

‫‪UPDATE‬‬

‫آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪاي ‪165 SQL‬‬

‫ﻳﻜﻲ از ﻣﻬﻤﺘﺮﻳﻦ ﻧﻴﺎز ﻫﺎي ﻛﺎرﺑﺮان‪ ،‬ﺗﻮاﻧﺎﻳﻲ اﻋﻤﺎل ﺗﻐﻴﻴﺮات در داده ﻫﺎﻳﻲ اﺳﺖ ﻛﻪ ﻗﺒﻼ‬ ‫در ﺳﻴﺴﺘﻢ وارد ﻛﺮده اﻧﺪ‪ .‬اﻳﻦ ﻧﻴﺎز ﻧﺎﺷﻲ از ﺗﻐﻴﻴﺮ داده ﻫﺎ و ﻳﺎ وادر ﻛﺮدن ﻣﻘﺪار ﺑﺮاي‬ ‫ﺳﺘﻮﻧﻬﺎﻳﻲ اﺳﺖ ﻛﻪ ﻗﺒﻼ ﻫﻴﭻ ﻣﻘﺪاري ﺑﺮاي آن در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻧﺸﺪه ﺑﻮد‪ .‬دﺳﺘﻮر‬ ‫‪UPDATE‬‬

‫ﺑﻪ ﻣﻨﻈﻮر اﻋﻤﺎل ﺗﻐﻴﻴﺮات در ﻣﻘﺎدﻳﺮ رﻛﻮردﻫﺎي ﺛﺒﺖ ﺷﺪه در ﺟﺪاول‬

‫ﻃﺮاﺣﻲ ﺷﺪه و ﺷﻜﻞ ﻛﻠﻲ آن ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫‪UPDATE table name‬‬ ‫‪SET { column name = { value expression‬‬ ‫‪| NULL‬‬ ‫… ‪| DEFAULT } } ,‬‬ ‫; ] } ‪[ { WHERE predicate‬‬

‫در اداﻣﻪ ﺑﺮاي ﺗﺸﺮﻳﺢ ﺑﻬﺘﺮ دﺳﺘﻮر ﻣﺬﻛﻮر ﻣﺜﺎﻟﻬﺎﻳﻲ آورده ﺷﺪه اﺳﺖ ﻛﻪ ﺣﺎﻻت‬ ‫ﻣﺨﺘﻠﻒ اﺳﺘﻔﺎده از دﺳﺘﻮر را ﻧﺸﺎن ﻣﻲدﻫﺪ‪ .‬در ﺳﺎده ﺗﺮﻳﻦ ﺣﺎﻟﺖ ﻓﺮض ﻛﻨﻴﺪ ﻣﻲﺧﻮاﻫﻴﻢ‬ ‫ﻣﻘﺪار ﺻﻔﺖ ﺧﺎﺻﻪ ‪ 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‬‬

‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲﻛﻨﻴﺪ ﻫﺮ ﻳﻚ از ﺻﻔﺎت ﺧﺎﺻﻪ ﺑﺎ ﻳﻚ ﻛﺎﻣﺎ از دﻳﮕﺮي ﺟﺪا‬ ‫ﺷﺪه اﺳﺖ‪ .‬ﺗﺎ اﻳﻦ ﻗﺴﻤﺖ از ﻛﺎر ﻣﻌﻤﻮﻻً ﻣﻘﺪار ﻳﻚ ﺻﻔﺖ ﺧﺎﺻﻪ را ﺗﻐﻴﻴﺮ دادهاﻳﻢ‪ .‬وﻟﻲ‬

‫‪166‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫اﻳﻦ اﻣﻜﺎن ﻧﻴﺰ وﺟﻮد دارد ﻛﻪ ﻣﻘﺪار ﺟﺪﻳﺪ‪ ،‬ﻋﺒﺎرﺗﻲ ﺷﺎﻣﻞ ﺻﻔﺎت ﺧﺎﺻﻪ ﻧﻴﺰ ﺑﺎﺷﺪ‪ .‬ﺑﺮاي‬ ‫ﻣﺜﺎل ﻣﻤﻜﻦ اﺳﺖ ﺑﺨﻮاﻫﻴﻢ ﻣﻘﺪار ﻳﻚ ﺻﻔﺖ ﺧﺎﺻﻪ را دو ﺑﺮاﺑﺮ ﻛﻨﻴﻢ‪.‬‬ ‫‪Update salespeople‬‬ ‫;‪SET comm = comm * 2‬‬

‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲﺷﻮد ﻣﻘﺪار ﺟﺪﻳﺪ در واﻗﻊ از ﭘﺮدازش ﺑﺮ روي ﻣﻘﺪار ﻗﺒﻠﻲ‬ ‫ﻫﻤﺎن ﺻﻔﺖ ﺧﺎﺻﻪ ﺑﺪﺳﺖ آﻣﺪه اﺳﺖ‪ .‬اﻳﻦ اﻣﻜﺎن وﺟﻮد دارد ﻛﻪ از ﻣﻘﺎدﻳﺮ ﺳﺎﻳﺮ ﺻﻔﺎت‬ ‫ﺧﺎﺻﻪ ﻧﻴﺰ اﺳﺘﻔﺎده ﺷﻮد‪ .‬ﺣﺎل ﻓﺮض ﻛﻨﻴﺪ ﻣﻲﺧﻮاﻫﻴﻢ ﻣﻘﺪار ﻳﻚ ﺻﻔﺖ ﺧﺎﺻﻪ را ﺗﺒﺪﻳﻞ‬ ‫ﺑﻪ ‪) NULL‬ﻣﻘﺪار ﻫﻴﭻ( ﻧﻤﺎﻳﻴﻢ‪ .‬ﻋﺒﺎرت زﻳﺮ ﻃﺮﻳﻘﻪ اﻧﺠﺎم اﻳﻦ ﻛﺎر را ﻧﺸﺎن ﻣﻲدﻫﺪ‪.‬‬ ‫‪UPDATE customers‬‬ ‫‪SET rating = NULL‬‬ ‫;'‪WHERE city = 'London‬‬

‫ﻋﻤﻞ ﺗﺒﺪﻳﻞ ﻳﻚ ﻣﻘﺪار ﺑﻪ‬

‫‪NULL‬‬

‫در واﻗﻊ ﺣﺬف ﻣﻘﺪار ﻳﻚ ﺳﺘﻮن از رﻛﻮرد‬

‫ﻣﻲﺑﺎﺷﺪ ﻛﻪ در اﻳﻨﺠﺎ ﺑﻪ آن ﺑﺮوز رﺳﺎﻧﻲ ﻣﻲﮔﻮﻳﻴﻢ‪ .‬ﻣﻔﻬﻮم ﺣﺬف ﻳﻚ ﻣﻘﺪار از ﻳﻚ ﺳﺘﻮن‬ ‫ﺑﺎ ﻣﻔﻬﻮم ﺣﺬف ﻳﻚ رﻛﻮرد )ﺳﻄﺮ( ﻣﺘﻔﺎوت ﻣﻲﺑﺎﺷﺪ‪ .‬در اداﻣﻪ دﺳﺘﻮر ‪ DELETE‬را ﺟﻬﺖ‬ ‫ﺣﺬف رﻛﻮردﻫﺎ ﺗﻮﺿﻴﺢ ﺧﻮاﻫﻴﻢ داد‪.‬‬

‫‪ 3-5‬دﺳﺘﻮر‬

‫‪DELETE‬‬

‫ﻣﻤﻜﻦ اﺳﺖ در ﻣﻮاﻗﻌﻲ ﻛﺎرﺑﺮان ﺑﺨﻮاﻫﻨﺪ رﻛﻮرد )ﻫﺎﻳﻲ( را از ﺟﺪول اﻃﻼﻋﺎﺗﻲ ﺣﺬف‬ ‫ﻧﻤﺎﻳﻨﺪ‪ .‬در واﻗﻊ ﻛﻞ اﻃﻼﻋﺎت ﻳﻚ رﻛﻮرد )و ﻧﻪ ﻓﻘﻂ ﺑﻌﻀﻲ ﺳﺘﻮن ﻫﺎ( ﺣﺬف ﺧﻮاﻫﺪ‬ ‫ﺷﺪ‪ .‬ﺑﺮاي اﻳﻦ ﻣﻨﻈﻮر دﺳﺘﻮر‬

‫‪DELETE‬‬

‫ﻃﺮاﺣﻲ ﺷﺪه اﺳﺖ‪ .‬ﺷﻤﺎي ﻛﻠﻲ اﻳﻦ دﺳﺘﻮر در‬

‫زﻳﺮ آﻣﺪه اﺳﺖ‪:‬‬ ‫‪DELETE FROM table name‬‬ ‫; } ‪{ WHERE predicate‬‬

‫ﺑﺮاي درك ﺑﻬﺘﺮ دﺳﺘﻮر‪ ،‬ﻣﺜﺎﻟﻬﺎﻳﻲ در ذﻳﻞ آﻣﺪه اﺳﺖ‪ .‬در اﺑﺘﺪا ﻻزم ﺑﺬﻛﺮ اﺳﺖ‬ ‫ﭼﻨﺎﻧﭽﻪ در ﻫﻨﮕﺎم اﺳﺘﻔﺎده از دﺳﺘﻮر ‪ ،DELETE‬ﺷﺮﻃﻲ آورده ﻧﺸﻮد ﺑﺪﻳﻦ ﻣﻌﻨﺎ اﺳﺖ ﻛﻪ‬ ‫ﻛﻠﻴﻪ اﻃﻼﻋﺎت ﻣﻮﺟﻮد در آن ﺟﺪول ﺣﺬف ﺷﻮد‪ .‬ﺑﺮاي ﻣﺜﺎل دﺳﺘﻮر ذﻳﻞ ﺑﻴﺎﻧﮕﺮ ﺣﺬف‬ ‫ﻛﻠﻴﻪ رﻛﻮردﻫﺎي ﻣﻮﺟﻮد در ﺟﺪول ‪ Customers‬ﻣﻲﺑﺎﺷﺪ‪.‬‬

‫آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪاي ‪167 SQL‬‬

‫;‪DELETE FROM customers‬‬

‫ﺣﺎل در ﻣﺜﺎﻟﻲ دﻳﮕﺮ ﻳﻚ ﻋﺒﺎرت ﺷﺮﻃﻲ ﺟﻬﺖ ﺗﻌﻴﻴﻦ رﻛﻮردﻫﺎي ﻣﻮرد ﻧﻈﺮ ﺟﻬﺖ‬ ‫ﺣﺬف ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪.‬‬ ‫‪DELETE FROM salespeople‬‬ ‫;‪WHERE snum = 1003‬‬

‫ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ ﻋﺒﺎرت ﺷﺮط ﻣﻲﺗﻮاﻧﺪ ﻳﻚ ﻳﺎ ﺗﻌﺪادي از رﻛﻮردﻫﺎ را در‬ ‫ﺑﺮﮔﻴﺮد‪ .‬ﺑﺎ اﻳﻦ وﺻﻒ دﺳﺘﻮر‬

‫ﺗﻮاﻧﺎﻳﻲ ﺣﺬف ﻳﻚ ﻳﺎ ﭼﻨﺪ رﻛﻮرد ﻳﺎ‬

‫‪DELETE‬‬

‫ﺗﻤﺎﻣﻲرﻛﻮردﻫﺎي ﻳﻚ ﺟﺪول را دارد‪.‬‬

‫‪ -6‬ﺟﺴﺘﺠﻮﻫﺎي ﭘﻴﺸﺮﻓﺘﻪ ﺑﺎ ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ‬

‫‪1‬‬

‫ﺗﺎ ﺑﺤﺎل ﻛﻠﻴﻪ ﻣﺜﺎل ﻫﺎي اراﺋﻪ ﺷﺪه در اﻳﻦ ﻓﺼﻞ ﺑﺮ اﺳﺎس ﻳﻚ ﺟﺪول ﻃﺮاﺣﻲ ﺷﺪه‬ ‫ﺑﻮدﻧﺪ‪ .‬ﻳﻜﻲ از اﻧﺘﻈﺎرات ﺑﺴﻴﺎر ﻣﻬﻢ ﻛﺎرﺑﺮان ﻳﻚ ﭘﺎﻳﮕﺎه داده‪ ،‬اﻣﻜﺎن ﺑﺎزﻳﺎﺑﻲ اﻃﻼﻋﺎت‬ ‫از ﺟﺪاول ﻣﺮﺗﺒﻂ ﺑﺎ ﻫﻢ ﻣﻲ ﺑﺎﺷﺪ‪ .‬ﺑﻪ اﻳﻦ ﻣﻨﻈﻮر ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ ﺑﻴﻦ ﺟﺪاول در زﺑﺎن‬ ‫‪SQL‬‬

‫در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ‪ .‬اﻳﻦ ﻋﻤﻠﮕﺮ در واﻗﻊ ﺟﺰﺋﻲ از دﺳﺘﻮر‬

‫‪SELECT‬‬

‫ﻣﻲ ﺑﺎﺷﺪ‪ .‬در واﻗﻊ ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ ﺑﺎﻋﺚ اﻳﺠﺎد ارﺗﺒﺎط ﺑﻴﻦ ﺟﺪاول ﺑﺮ اﺳﺎس ﻛﻠﻴﺪ اﺻﻠﻲ‬ ‫و ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ﺑﻴﻦ آﻧﻬﺎ ﻣﻲﺑﺎﺷﺪ‪ .‬اﻟﺒﺘﻪ در ﻣﻮاردي ﻧﻴﺰ ﻣﻤﻜﻦ اﺳﺖ ﻛﻪ ارﺗﺒﺎط ﺑﻴﻦ‬ ‫ﺟﺪاول ﺑﺮ اﺳﺎس ﻳﻚ ﻋﺒﺎرت ﺧﺎص ﻳﺎ ﻳﻚ ﺗﺮﻛﻴﺐ ﺷﺮﻃﻲ ﺑﺎﺷﺪ‪ .‬در ﺣﺎﻟﺖ ﻛﻠﻲ‬ ‫ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ ﺑﻪ دو ﺻﻮرت ﻣﻲ ﺗﻮاﻧﺪ ﺑﺎﺷﺪ‪:‬‬ ‫‪2‬‬

‫•‬

‫ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ داﺧﻠﻲ‬

‫•‬

‫ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ‬

‫‪3‬‬

‫اﻳﻦ ﻋﻤﻠﮕﺮﻫﺎ ﻫﺮﻳﻚ داراي اﻧﻮاع ﻣﺨﺘﻠﻔﻲ ﻣﻲ ﺑﺎﺷﺪ ﻛﻪ در اداﻣﻪ ﺑﻪ ﺷﺮح ﻫﺮ ﻳﻚ‬ ‫ﺧﻮاﻫﻴﻢ ﭘﺮداﺧﺖ‪:‬‬

‫‪1. J oi n‬‬ ‫‪2. In n e r Jo i n‬‬ ‫‪3. O u te r Jo i n‬‬

‫‪168‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪ 1-6‬ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ داﺧﻠﻲ‬ ‫اﻳﻦ ﻋﻤﻠﮕﺮ در واﻗﻊ ﻣﺘﺪاول ﺗﺮﻳﻦ ﻧﻮع ﭘﻴﻮﻧﺪ ﺑﻴﻦ دو ﺟﺪول ﻣﻲ ﺑﺎﺷﺪ ﻛﻪ ﺑﺮ اﺳﺎس آن‬ ‫ﺗﻤﺎﻣﻲ رﻛﻮردﻫﺎﻳﻲ از دو ﺟﺪول ﻛﻪ در ﺷﺮط ﺗﻌﺮﻳﻒ ﺷﺪه در ﭘﻴﻮﻧﺪ ﺻﺪق ﻣﻲﻛﻨﻨﺪ‪،‬‬ ‫ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ‪ .‬ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ اﮔﺮ ﺟﺪول )راﺑﻄﻪ( ﺳﻤﺖ ﭼﭗ در ﭘﻴﻮﻧﺪ‬ ‫را‬

‫‪R1‬‬

‫و ﺟﺪول ﺳﻤﺖ راﺳﺖ در ﭘﻴﻮﻧﺪ را‬

‫‪R2‬‬

‫ﺑﻨﺎﻣﻴﻢ‪ ،‬ﺻﺮﻓﺎ ﺗﻤﺎﻣﻲ رﻛﻮردﻫﺎﻳﻲ از دو‬

‫ﺟﺪول ﻛﻪ ﺷﺮط ﺗﻌﺮﻳﻒ ﺷﺪه در ﭘﻴﻮﻧﺪ در ﻣﻮرد آﻧﻬﺎ ﺻﺎدق ﺑﺎﺷﺪ‪ ،‬ﻣﻮرد ﺑﺎزﻳﺎﺑﻲ ﻗﺮار‬ ‫ﺧﻮاﻫﻨﺪ ﮔﺮﻓﺖ‪.‬‬ ‫‪R1 JOIN R2 ON criteria‬‬ ‫‪OR‬‬ ‫‪R1 INNER JOIN R2 ON criteria‬‬

‫اﺳﺘﻔﺎده از ﻋﺒﺎرت‬

‫‪Inner Join‬‬

‫ﺑﻪ اﻳﻦ ﻋﻠﺖ اﺳﺖ ﻛﻪ در ﺑﻌﻀﻲ از زﺑﺎنﻫﺎ اﻳﻦ ﻧﻮع‬

‫ﭘﻴﻮﻧﺪ را ﭘﻴﻮﻧﺪ داﺧﻠﻲ ﻣﻲﻧﺎﻣﻨﺪ‪ .‬ﺑﺮاي درك ﺑﻬﺘﺮ دو ﺟﺪول اﻃﻼﻋﺎت ﭘﺮﺳﻨﻞ‬

‫)‪(EMP‬‬

‫ﺳﺎﺧﺘﺎر ﺳﺎزﻣﺎﻧﻲ )‪ (DEPT‬را ﺑﻪ ﺻﻮرت آﻧﭽﻪ ﻛﻪ در زﻳﺮ آﻣﺪه اﺳﺖ در ﻧﻈﺮ ﻣﻲﮔﻴﺮﻳﻢ‪:‬‬ ‫ﺟﺪول ‪ 1- 8‬ﺟﺪول اﻃﻼﻋﺎت ﭘﺮﺳﻨﻞ‬

‫‪EMP‬‬

‫‪EMP‬‬ ‫‪DEPTNO‬‬

‫‪SAL‬‬

‫‪ENAME‬‬

‫‪EMPNO‬‬

‫‪20‬‬

‫‪800‬‬

‫‪SMITH‬‬

‫‪7369‬‬

‫‪30‬‬

‫‪1600‬‬

‫‪ALLEN‬‬

‫‪7499‬‬

‫‪30‬‬

‫‪1250‬‬

‫‪WARD‬‬

‫‪7521‬‬

‫‪20‬‬

‫‪2975‬‬

‫‪JONES‬‬

‫‪7566‬‬

‫‪30‬‬

‫‪1250‬‬

‫‪MARTIN‬‬

‫‪7654‬‬

‫‪30‬‬

‫‪2850‬‬

‫‪BLAKE‬‬

‫‪7698‬‬

‫‪10‬‬

‫‪2450‬‬

‫‪CLARK‬‬

‫‪7782‬‬

‫‪20‬‬

‫‪3000‬‬

‫‪SCOTT‬‬

‫‪7788‬‬

‫‪10‬‬

‫‪5000‬‬

‫‪KING‬‬

‫‪7839‬‬

‫‪30‬‬

‫‪1500‬‬

‫‪TURNER‬‬

‫‪7844‬‬

‫‪20‬‬

‫‪1100‬‬

‫‪ADAMS‬‬

‫‪7876‬‬

‫‪30‬‬

‫‪950‬‬

‫‪JAMES‬‬

‫‪7900‬‬

‫و‬

‫آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪاي ‪169 SQL‬‬ ‫‪20‬‬

‫‪3000‬‬

‫‪FORD‬‬

‫‪7902‬‬

‫‪10‬‬

‫‪1300‬‬

‫‪MILLER‬‬

‫‪7934‬‬

‫ﺟﺪول ‪ 2- 8‬ﺟﺪول اﻃﻼﻋﺎت ﺳﺎﺧﺘﺎر ﺳﺎزﻣﺎﻧﻲ‬

‫‪DEPT‬‬

‫‪DEPT‬‬ ‫‪LOC‬‬

‫‪DNAME‬‬

‫‪DEPTNO‬‬

‫‪NEW YORK‬‬

‫‪ACCOUNTING‬‬

‫‪10‬‬

‫‪DALLAS‬‬

‫‪RESEARCH‬‬

‫‪20‬‬

‫‪CHICAGO‬‬

‫‪SALES‬‬

‫‪30‬‬

‫‪BOSTON‬‬

‫‪OPERATIONS‬‬

‫‪40‬‬

‫ﺣﺎل ﻓﺮض ﻛﻨﻴﻢ ﻣﻲﺧﻮاﻫﻴﻢ دو ﺟﺪول ﻣﺬﻛﻮر را ﺑﺮ اﺳﺎس ﺻﻔﺖ ﺧﺎﺻﻪ‬

‫‪Deptno‬‬

‫ﺑﻪ ﻳﻜﺪﻳﮕﺮ ﭘﻴﻮﻧﺪ داده و ﺑﺒﻴﻨﻴﻢ ﻫﺮ ﻳﻚ از ﭘﺮﺳﻨﻞ در ﻛﺪام واﺣﺪ ﻣﺸﻐﻮل ﺑﻜﺎر ﻫﺴﺘﻨﺪ‪.‬‬ ‫ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲﺑﺎﺷﺪ‪:‬‬ ‫‪Select Emp.ename, Emp.deptno, Dept.dname‬‬ ‫‪From Emp Join Dept‬‬ ‫‪On emp.deptno = dept.deptno‬‬

‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﻼﺣﻈﻪ ﻣﻲﮔﺮدد دو ﺟﺪول‬ ‫‪Deptno‬‬

‫ﻛﻪ در ﺟﺪول‬

‫‪Dept‬‬

‫‪Emp‬‬

‫و‬

‫‪Dept‬‬

‫ﺑﻌﻨﻮان ﻛﻠﻴﺪ اﺻﻠﻲ و در ﺟﺪول‬

‫ﺑﺮ اﺳﺎس ﺻﻔﺖ ﺧﺎﺻﻪ‬

‫‪Emp‬‬

‫ﺑﻌﻨﻮان ﻛﻠﻴﺪ ﺧﺎرﺟﻲ‬

‫ﻣﻲﺑﺎﺷﺪ‪ ،‬ﺑﻪ ﻳﻜﺪﻳﮕﺮ ﭘﻴﻮﻧﺪ داده ﺷﺪهاﻧﺪ‪ .‬ﺑﺎ اﻳﻦ وﺻﻒ ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﻋﺒﺎرت ﻣﺬﻛﻮر‬ ‫ﺑﻪ ﺻﻮرت زﻳﺮ ﺧﻮاﻫﺪ ﺑﻮد‪:‬‬

‫ﺟﺪول ‪ 3- 8‬ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از‬ ‫‪DNAME‬‬ ‫‪RESEARCH‬‬

‫ﻋﺒﺎرت ‪SQL‬‬

‫‪DEPTNO‬‬ ‫‪20‬‬

‫‪ENAME‬‬ ‫‪SMITH‬‬

‫‪170‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫‪SALES‬‬

‫‪30‬‬

‫‪ALLEN‬‬

‫‪SALES‬‬

‫‪30‬‬

‫‪WARD‬‬

‫‪RESEARCH‬‬

‫‪20‬‬

‫‪JONES‬‬

‫‪SALES‬‬

‫‪30‬‬

‫‪MARTIN‬‬

‫‪SALES‬‬

‫‪30‬‬

‫‪BLAKE‬‬

‫‪ACCOUNTING‬‬

‫‪10‬‬

‫‪CLARK‬‬

‫‪RESEARCH‬‬

‫‪20‬‬

‫‪SCOTT‬‬

‫‪ACCOUNTING‬‬

‫‪10‬‬

‫‪KING‬‬

‫‪SALES‬‬

‫‪30‬‬

‫‪TURNER‬‬

‫‪RESEARCH‬‬

‫‪20‬‬

‫‪ADAMS‬‬

‫‪SALES‬‬

‫‪30‬‬

‫‪JAMES‬‬

‫‪RESEARCH‬‬

‫‪20‬‬

‫‪FORD‬‬

‫‪ACCOUNTING‬‬

‫‪10‬‬

‫‪MILLER‬‬

‫ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﻴﺪ ﻛﻪ ﻣﻲﺗﻮان ﻋﺒﺎرت ﺑﺎﻻ را ﺑﺪون اﺳﺘﻔﺎده از ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ ﻧﻴﺰ‬ ‫ﻧﻮﺷﺖ‪ .‬ﻧﺤﻮه ﻧﻮﺷﺘﻦ ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﺪون ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲﺑﺎﺷﺪ‪:‬‬ ‫‪Select Emp.ename, Emp.deptno, Dept.dname‬‬ ‫‪From Emp , Dept‬‬ ‫‪Where emp.deptno = dept.deptno‬‬

‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲﻛﻨﻴﺪ ﻣﻲﺗﻮان اﺳﺎﻣﻲﺟﺪاول ﻣﻮرد ﻧﻈﺮ را در ﺟﻠﻮي ﻛﻠﻤﻪ‬ ‫‪FROM‬‬

‫ﺑﻜﺎر ﺑﺮد‪ .‬ﺑﺎ اﻳﻦ وﺻﻒ ﻣﻲﺗﻮان ﺑﺪون ﻧﻴﺎز ﺑﻪ اﺳﺘﻔﺎده از ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ اﻗﺪام ﺑﻪ‬

‫ﺑﺮﻗﺮاري ارﺗﺒﺎط ﺑﻴﻦ دو ﻳﺎ ﭼﻨﺪ ﺟﺪول ﻧﻤﻮد‪ .‬وﻟﻲ ﺑﻬﺘﺮ اﺳﺖ از ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ اﺳﺘﻔﺎده‬ ‫ﮔﺮدد‪ .‬در ﻫﺮ ﺣﺎل ﻫﻨﮕﺎﻣﻴﻜﻪ ﻣﻲﺧﻮاﻫﻴﻢ از ﺑﻴﺶ از ﻳﻚ ﺟﺪول اﺳﺘﻔﺎده ﻧﻤﺎﻳﻴﻢ‪ ،‬ﻻزم اﺳﺖ‬ ‫ﻧﺎم ﺟﺪاول را ﻗﺒﻞ از ﻧﺎم ﺳﺘﻮنﻫﺎ )ﺻﻔﺎت ﺧﺎﺻﻪ( ﻣﻮرد ﻧﻈﺮ ﺑﻜﺎر ﺑﺒﺮﻳﻢ‪ .‬اﻳﻦ وﺿﻌﻴﺖ‬ ‫ﺑﻴﺸﺘﺮ زﻣﺎﻧﻲ اﻫﻤﻴﺖ ﭘﻴﺪا ﻣﻲﻛﻨﺪ ﻛﻪ ﺻﻔﺎت ﺧﺎﺻﻪ ﻫﻤﻨﺎم در ﺟﺪاول ﻣﻮرد ﭘﻴﻮﻧﺪ داﺷﺘﻪ‬ ‫ﺑﺎﺷﻴﻢ‪.‬‬ ‫ﺣﺎل ﻓﺮض ﻛﻨﻴﺪ ﻣﻲﺧﻮاﻫﻴﻢ ﺑﺠﺎي اﺳﺎﻣﻲﺟﺪاول از ﻧﺎمﻫﺎي ﻣﺴﺘﻌﺎر اﺳﺘﻔﺎده ﻧﻤﺎﻳﻴﻢ‪.‬‬ ‫ﻣﺜﺎل زﻳﺮ ﺑﻴﺎﻧﮕﺮ ﻧﺤﻮه ﭘﻴﺎده ﺳﺎزي اﻳﻦ وﺿﻌﻴﺖ ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪Select E.ename, E.deptno, D.dname‬‬ ‫‪From Emp E Join Dept D‬‬

‫آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪاي ‪171 SQL‬‬ ‫‪On E.deptno = D.deptno‬‬

‫اﻳﻦ وﺿﻌﻴﺖ ﺑﻴﺸﺘﺮ زﻣﺎﻧﻲ ﻧﻤﻮد ﭘﻴﺪا ﻣﻲﻛﻨﺪ ﻛﻪ ﺑﺨﻮاﻫﻴﻢ ﭼﻨﺪ ﺟﺪول ﺑﺎ‬ ‫اﺳﺎﻣﻲﻣﺨﺘﻠﻒ و ﻳﺎ ﻧﺴﺒﺘﺎ ﻃﻮﻻﻧﻲ را ﺑﻪ ﻳﻜﺪﻳﮕﺮ ﭘﻴﻮﻧﺪ ﺑﺰﻧﻴﻢ و ﻳﺎ اﻳﻨﻜﻪ در ﻣﻮاردي‬ ‫ﺑﺨﻮاﻫﻴﻢ ﻳﻚ ﺟﺪول را ﺑﺎ ﺧﻮدش ﭘﻴﻮﻧﺪ ﺑﺰﻧﻴﻢ‪.‬‬

‫ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ ﻃﺒﻴﻌﻲ‬

‫‪1‬‬

‫ﺣﺎل ﻣﻲ ﺧﻮاﻫﻴﻢ ﻋﺒﺎرت ﻣﺬﻛﻮر را ﺑﺮ اﺳﺎس ﻋﻤﻠﮕﺮ‬ ‫ذﻛﺮ اﺳﺖ ﻛﻪ ﻧﻮع ﭘﻴﻮﻧﺪ‬

‫‪Natural Join‬‬

‫‪Natural join‬‬

‫ﺑﻨﻮﻳﺴﻴﻢ‪ .‬ﻻزم ﺑﻪ‬

‫در ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎه ﻫﺎي داده ﻃﺮاﺣﻲ ﺷﺪه‬

‫اﺳﺖ و ﻣﻤﻜﻦ اﺳﺖ در ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎه ﻫﺎي داده اﻳﻦ ﻧﻮع ﭘﻴﻮﻧﺪ ﭘﺸﺘﻴﺒﺎﻧﻲ ﻧﺸﻮد‪ .‬ﻧﻮع‬ ‫‪Natural Join‬‬

‫ﺑﺮ اﻳﻦ اﺳﺎس ﻋﻤﻞ ﻣﻲ ﻛﻨﺪ ﻛﻪ ﻛﻠﻴﺪ ارﺗﺒﺎﻃﻲ را ﺑﺼﻮرت اﺗﻮﻣﺎﺗﻴﻚ از‬

‫دﻳﻜﺸﻨﺮي ﭘﺎﻳﮕﺎه داده ﻣﻲ ﺧﻮاﻧﺪ‪ .‬ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ در اﻳﻦ ﻧﻮع از ﭘﻴﻮﻧﺪ ﻧﻴﺎزي ﺑﻪ ﺗﻌﺮﻳﻒ‬ ‫ﺷﺮط ﭘﻴﻮﻧﺪ ﻧﻴﺴﺖ‪ .‬ﻣﺜﺎل زﻳﺮ ﺑﻴﺎﻧﮕﺮ اﻳﻦ وﺿﻌﻴﺖ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫‪Select Emp.ename, Emp.deptno, Dept.dname‬‬ ‫‪From Emp Natural Join Dept‬‬

‫‪ 3- 6‬ﻋﻤﻠﮕﺮﻫﺎي ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ‬

‫‪2‬‬

‫در ﺑﺴﻴﺎري از ﻣﻮارد ﻣﻤﻜﻦ اﺳﺖ ﺑﻌﻀﻲ ﻣﻘﺎدﻳﺮ ﺳﺘﻮﻧﻬﺎﻳﻲ ﻛﻪ ﻣﻲ ﺧﻮاﻫﻴﻢ ﺑﻪ ﻳﻜﺪﻳﮕﺮ‬ ‫ﭘﻴﻮﻧﺪ ﺑﺰﻧﻴﻢ‪ ،‬داراي ﻣﻘﺪار‬

‫‪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‬‬

‫‪172‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ ﻛﺎﻣﻞ‬

‫‪2‬‬

‫در اداﻣﻪ ﻫﺮ ﻳﻚ از ﭘﻴﻮﻧﺪﻫﺎي ﻣﺬﻛﻮر ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻨﺪ ﮔﺮﻓﺖ‪.‬‬

‫‪ 1- 3- 6‬ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ ﭼﭗ‬ ‫ﻫﺮ ﮔﺎه ﺑﺨﻮاﻫﻴﻢ در ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ارﺗﺒﺎط ﺑﻴﻦ دو ﺟﺪول‪ ،‬ﺗﻤﺎﻣﻲ رﻛﻮردﻫﺎي ﻣﻮرد‬ ‫ﻧﻈﺮ از ﺟﺪول ﺳﻤﺖ ﭼﭗ )ﺟﺪول اول( را اﻧﺘﺨﺎب ﻛﺮده و از ﺟﺪول ﺳﻤﺖ راﺳﺖ‬ ‫ﺻﺮﻓﺎ اﻧﺪﺳﺘﻪ از رﻛﻮردﻫﺎﻳﻲ ﻛﻪ ﺷﺮط ارﺗﺒﺎط ﺑﻴﻦ دو ﺟﺪول را دارﻧﺪ ﻧﻤﺎﻳﺶ ﺑﺪﻫﻴﻢ‪ ،‬از‬ ‫ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ ﭼﭗ اﺳﺘﻔﺎده ﻣﻲ ﻛﻨﻴﻢ‪ .‬ﺑﺪﻳﻬﻲ اﺳﺖ در ﭼﻨﻴﻦ ﺷﺮاﻳﻄﻲ ﺑﺮاي ﺑﻌﻀﻲ از‬ ‫رﻛﻮردﻫﺎي ﺟﺪول ﺳﻤﺖ ﭼﭗ‪ ،‬ﻫﻴﭻ ﻣﻘﺪاري از ﺟﺪول ﺳﻤﺖ راﺳﺖ ﻧﻤﻲ ﺗﻮان ﻳﺎﻓﺖ‪.‬‬ ‫ﺑﺎ اﻳﻦ اوﺻﺎف ﺑﺮاي اﻧﺪﺳﺘﻪ از ﺳﺘﻮﻧﻬﺎي اﻧﺘﺨﺎب ﺷﺪه از ﺟﺪول ﺳﻤﺖ راﺳﺖ ﻛﻪ‬ ‫ﻣﻘﺪاري ﻧﺪارﻧﺪ‪ ،‬ﻣﻘﺪار ‪ NULL‬در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬ ‫ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع ﻫﻤﺎن دو ﺟﺪول‬

‫‪EMP‬‬

‫و‬

‫‪DEPT‬‬

‫ﻛﻪ ﻛﻤﻲﻗﺒﻞ ﺗﺮ ﻣﻌﺮﻓﻲ‬

‫ﺷﺪﻧﺪ را ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲدﻫﻴﻢ‪ .‬ﺑﺪﻳﻦ ﻣﻨﻈﻮر ﺑﺎ اﺳﺘﻔﺎده از ﻋﺒﺎرت زﻳﺮ ﻣﻘﺪار‬

‫‪Deptno‬‬

‫ﻳﻜﻲ از رﻛﻮردﻫﺎي ﺟﺪول ‪ EMP‬را ﺑﺮاﺑﺮ ﺑﺎ ‪ NULL‬ﻗﺮار ﻣﻲدﻫﻴﻢ‪.‬‬ ‫‪Update emp‬‬ ‫‪set deptno = NULL‬‬ ‫;’‪where ename = ‘KING‬‬

‫ﺣﺎل ﺑﻪ ﻋﺒﺎرت زﻳﺮ ﻛﻪ در آن ﺟﺪول‬

‫‪DEPT‬‬

‫ﺑﻌﻨﻮان ﺟﺪول ﺳﻤﺖ راﺳﺖ ﭘﻴﻮﻧﺪ و‬

‫ﺟﺪول ‪ EMP‬ﺑﻌﻨﻮان ﺟﺪول ﺳﻤﺖ ﭼﭗ ﭘﻴﻮﻧﺪ ﻣﻲ ﺑﺎﺷﻨﺪ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ‪:‬‬ ‫‪Select e.ename , e.deptno , d.dname‬‬ ‫‪LEFT JOIN DEPT d From EMP e‬‬ ‫‪ON e.deptno = d.deptno‬‬

‫و ﻳﺎ‬ ‫‪Select e.ename , e.deptno , d.dname‬‬ ‫‪EMP e LEFTOUTER JOIN DEPT d From‬‬ ‫‪ON e.deptno = d.deptno‬‬

‫‪1. R i gh t O ut e r J o i n‬‬ ‫‪2. F u ll O u te r Jo i n‬‬

‫آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪاي ‪173 SQL‬‬

‫دو ﻋﺒﺎرت ﻣﺬﻛﻮر از ﻟﺤﺎظ ﻣﻌﻨﺎﻳﻲ ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﺑﺮاﺑﺮ ﻫﺴﺘﻨﺪ و ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از‬ ‫ﻋﺒﺎرت ﺑﺎﻻ ﺑﻪ ﺷﺮح ﺟﺪول ‪ 4-8‬ﺧﻮاﻫﺪ ﺑﻮد‪ .‬ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲﻛﻨﻴﺪ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ‬ ‫اﻳﻨﻜﻪ ﻣﻘﺪار ‪ deptno‬از ﺟﺪول ‪ EMP‬ﺑﺮاﺑﺮ ﺑﺎ ‪ NULL‬ﺷﺪه اﺳﺖ‪ ،‬ﻟﺬا ﻫﻴﭻ رﻛﻮرد ﻣﺘﻨﺎﻇﺮي‬ ‫ﺑﺎ ﺟﺪول ‪ DEPT‬وﺟﻮد ﻧﺪاﺷﺘﻪ و ﻣﻘﺪار ﺟﺎﻳﮕﺰﻳﻦ ﺑﺮاي ﺳﺘﻮﻧﻬﺎي ﻣﺮﺑﻮﻃﻪ ﺑﺮاﺑﺮ ﺑﺎ‬

‫‪NULL‬‬

‫ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫ﻣﻤﻜﻦ اﺳﺖ اﻳﻦ ﺳﺌﻮال ﻣﻄﺮح ﮔﺮدد ﻛﻪ ﭼﺮا ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﻪ دو ﺷﻜﻞ ﻣﺨﺘﻠﻒ‬ ‫ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ‪ .‬در ﭘﺎﺳﺦ ﺑﻪ اﻳﻦ ﺳﺌﻮال ﺑﺎﻳﺪ ﮔﻔﺖ ﻛﻪ در زﺑﺎن ‪ SQL‬اراﺋﻪ ﺷﺪه از ﺳﻮي‬ ‫‪ ANSI‬از ﻛﻠﻤﻪ ‪ Left Outer Join‬اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ‪ .‬وﻟﻲ در ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎهﻫﺎي داده اﻳﻦ‬ ‫ﻋﺒﺎرت ﺑﻪ ﺻﻮرت‬

‫‪Left Join‬‬

‫ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ‪ .‬ﺣﺘﻲ در ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎهﻫﺎي داده از‬

‫ﻋﻼﻣﺖ " ‪ " +‬ﺑﺠﺎي اﻳﻦ ﻋﺒﺎرت اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ‪.‬‬ ‫ﺟﺪول ‪ 4- 8‬ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﻋﺒﺎرت ‪ SQL‬ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ ﭼﭗ‬ ‫‪DEPTNO‬‬

‫‪DNAME‬‬

‫‪ENAME‬‬

‫‪RESEARCH‬‬

‫‪20‬‬

‫‪SMITH‬‬

‫‪SALES‬‬

‫‪30‬‬

‫‪ALLEN‬‬

‫‪SALES‬‬

‫‪30‬‬

‫‪WARD‬‬

‫‪RESEARCH‬‬

‫‪20‬‬

‫‪JONES‬‬

‫‪SALES‬‬

‫‪30‬‬

‫‪MARTIN‬‬

‫‪SALES‬‬

‫‪30‬‬

‫‪BLAKE‬‬

‫‪ACCOUNTING‬‬

‫‪10‬‬

‫‪CLARK‬‬

‫‪RESEARCH‬‬

‫‪20‬‬

‫‪SCOTT‬‬

‫‪SALES‬‬

‫‪30‬‬

‫‪TURNER‬‬

‫‪RESEARCH‬‬

‫‪20‬‬

‫‪ADAMS‬‬

‫‪SALES‬‬

‫‪30‬‬

‫‪JAMES‬‬

‫‪RESEARCH‬‬

‫‪20‬‬

‫‪FORD‬‬

‫‪ACCOUNTING‬‬

‫‪10‬‬

‫‪MILLER‬‬

‫‪KING‬‬

‫‪ 2- 3- 6‬ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ راﺳﺖ‬

‫‪174‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﻫﺮ ﮔﺎه ﺑﺨﻮاﻫﻴﻢ در ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ارﺗﺒﺎط ﺑﻴﻦ دو ﺟﺪول‪ ،‬ﺗﻤﺎﻣﻲ رﻛﻮردﻫﺎي ﻣﻮرد‬ ‫ﻧﻈﺮ از ﺟﺪول ﺳﻤﺖ راﺳﺖ )ﺟﺪول دوم( را اﻧﺘﺨﺎب ﻛﺮده و از ﺟﺪول ﺳﻤﺖ ﭼﭗ‬ ‫ﺻﺮﻓﺎ اﻧﺪﺳﺘﻪ از رﻛﻮردﻫﺎﻳﻲ ﻛﻪ ﺷﺮط ارﺗﺒﺎط ﺑﻴﻦ دو ﺟﺪول را دارﻧﺪ ﻧﻤﺎﻳﺶ ﺑﺪﻫﻴﻢ‪ ،‬از‬ ‫ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ راﺳﺖ اﺳﺘﻔﺎده ﻣﻲ ﻛﻨﻴﻢ‪ .‬ﺑﺪﻳﻬﻲ اﺳﺖ در ﭼﻨﻴﻦ ﺷﺮاﻳﻄﻲ ﺑﺮاي ﺑﻌﻀﻲ از‬ ‫رﻛﻮردﻫﺎي ﺟﺪول ﺳﻤﺖ راﺳﺖ ﭘﻴﻮﻧﺪ‪ ،‬ﻫﻴﭻ ﻣﻘﺪاري از ﺟﺪول ﺳﻤﺖ ﭼﭗ ﻧﻤﻲ ﺗﻮان‬ ‫ﻳﺎﻓﺖ‪ .‬ﺑﺎ اﻳﻦ اوﺻﺎف ﺑﺮاي اﻧﺪﺳﺘﻪ از ﺳﺘﻮﻧﻬﺎي اﻧﺘﺨﺎب ﺷﺪه از ﺟﺪول ﺳﻤﺖ ﭼﭗ‬ ‫ﭘﻴﻮﻧﺪ ﻛﻪ ﻣﻘﺪاري ﻧﺪارﻧﺪ‪ ،‬ﻣﻘﺪار ‪ NULL‬در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬ ‫ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع ﻫﻤﺎن دو ﺟﺪول‬

‫‪EMP‬‬

‫و‬

‫‪DEPT‬‬

‫ﻛﻪ ﻛﻤﻲﻗﺒﻞ ﺗﺮ ﻣﻌﺮﻓﻲ‬

‫ﺷﺪﻧﺪ را ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲدﻫﻴﻢ‪ .‬ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﻲداﻧﻴﺪ در ﺟﺪول ‪ DEPT‬ﻳﻚ رﻛﻮرد‬ ‫ﺑﺎ‬

‫‪deptno = 40‬‬

‫ﺻﻔﺖ ﺧﺎﺻﻪ‬ ‫‪DEPT‬‬

‫وﺟﻮد دارد‪ .‬وﻟﻲ ﻫﻴﭻ رﻛﻮردي در ﺟﺪول‬

‫‪deptno‬‬

‫‪EMP‬‬

‫وﺟﻮد ﻧﺪارد ﻛﻪ دﻣﻘﺪار‬

‫در آن ﺑﺮاﺑﺮ ﺑﺎ ‪ 40‬ﺑﺎﺷﺪ‪ .‬ﺣﺎل ﺑﻪ ﻋﺒﺎرت زﻳﺮ ﻛﻪ در آن ﺟﺪول‬

‫ﺑﻌﻨﻮان ﺟﺪول ﺳﻤﺖ ﭼﭗ ﭘﻴﻮﻧﺪ و ﺟﺪول‬

‫‪EMP‬‬

‫ﺑﻌﻨﻮان ﺟﺪول ﺳﻤﺖ راﺳﺖ‬

‫ﭘﻴﻮﻧﺪ ﻣﻲﺑﺎﺷﻨﺪ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ‪:‬‬ ‫‪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‬‬

‫ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﻋﺒﺎرت ﺑﺎﻻ ﺑﻪ ﺷﺮح ذﻳﻞ ﺧﻮاﻫﺪ ﺑﻮد‪:‬‬ ‫ﺟﺪول ‪ 5- 8‬ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﻋﺒﺎرت ‪ SQL‬ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ راﺳﺖ‬ ‫‪DNAME‬‬

‫‪DEPTNO‬‬

‫‪ENAME‬‬

‫‪ACCOUNTING‬‬

‫‪10‬‬

‫‪CLARK‬‬

‫‪ACCOUNTING‬‬

‫‪10‬‬

‫‪MILLER‬‬

‫‪RESEARCH‬‬

‫‪20‬‬

‫‪SMITH‬‬

‫‪RESEARCH‬‬

‫‪20‬‬

‫‪SCOTT‬‬

‫‪RESEARCH‬‬

‫‪20‬‬

‫‪ADAMS‬‬

‫‪RESEARCH‬‬

‫‪20‬‬

‫‪FORD‬‬

‫آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪاي ‪175 SQL‬‬ ‫‪RESEARCH‬‬

‫‪20‬‬

‫‪JONES‬‬

‫‪SALES‬‬

‫‪30‬‬

‫‪ALLEN‬‬

‫‪SALES‬‬

‫‪30‬‬

‫‪JAMES‬‬

‫‪SALES‬‬

‫‪30‬‬

‫‪TURNER‬‬

‫‪SALES‬‬

‫‪30‬‬

‫‪BLAKE‬‬

‫‪SALES‬‬

‫‪30‬‬

‫‪MARTIN‬‬

‫‪SALES‬‬

‫‪30‬‬

‫‪WARD‬‬

‫‪OPERATIONS‬‬

‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲﻛﻨﻴﺪ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻨﻜﻪ ﻣﻘﺪار ‪ deptno‬از ﺟﺪول ‪ EMP‬ﺑﺮاﺑﺮ‬ ‫ﺑﺎ‬

‫‪NULL‬‬

‫ﺷﺪه اﺳﺖ‪ ،‬ﻟﺬا ﻫﻴﭻ رﻛﻮرد ﻣﺘﻨﺎﻇﺮي ﺑﺎ ﺟﺪول‬

‫‪DEPT‬‬

‫وﺟﻮد ﻧﺪاﺷﺘﻪ و ﻣﻘﺪار‬

‫ﺟﺎﻳﮕﺰﻳﻦ ﺑﺮاي ﺳﺘﻮﻧﻬﺎي ﻣﺮﺑﻮﻃﻪ ﺑﺮاﺑﺮ ﺑﺎ ‪ NULL‬ﻣﻲﺑﺎﺷﺪ‪.‬‬

‫‪ 3- 3- 6‬ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ ﻛﺎﻣﻞ‬ ‫ﻗﺒﻞ از ﺗﻮﺿﻴﺢ اﻳﻦ ﻧﻮع از ﭘﻴﻮﻧﺪ ﻻزم اﺳﺖ ﺑﻪ اﻳﻦ ﻧﻜﺘﻪ ﻣﻬﻢ ﺗﻮﺟﻪ ﺷﻮد ﻛﻪ اﻳﻦ ﻧﻮع‬ ‫ﭘﻴﻮﻧﺪ ﻓﻘﻂ در ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎه ﻫﺎي داده ﻃﺮاﺣﻲ ﺷﺪه اﺳﺖ و در ﺑﺴﻴﺎري از‬ ‫ﭘﺎﻳﮕﺎه ﻫﺎي داده اﺻﻼً ﭼﻨﻴﻦ ﭘﻴﻮﻧﺪ وﺟﻮد ﻧﺪارد‪.‬‬ ‫ﻫﺮ ﮔﺎه ﺑﺨﻮاﻫﻴﻢ در ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ارﺗﺒﺎط ﺑﻴﻦ دو ﺟﺪول‪ ،‬ﺗﻤﺎﻣﻲرﻛﻮردﻫﺎي‬ ‫ﻣﻮرد ﻧﻈﺮ از ﻫﺮ دو ﺟﺪول ﭼﻪ آﻧﻬﺎﻳﻴﻜﻪ در ﺷﺮط ﭘﻴﻮﻧﺪ ﻫﺴﺘﻨﺪ و ﭼﻪ آﻧﻬﺎﻳﻴﻜﻪ در ﺷﺮط‬ ‫ﭘﻴﻮﻧﺪ ﺻﺎدق ﻧﻴﺴﺘﻨﺪ‪ ،‬در ﺧﺮوﺟﻲ ﺣﺎﺻﻞ ﺑﻴﺎﻳﻨﺪ‪ ،‬از اﻳﻦ ﻧﻮع ﭘﻴﻮﻧﺪ اﺳﺘﻔﺎده ﻣﻲﮔﺮدد‪ .‬ﺑﺪﻳﻬﻲ‬ ‫اﺳﺖ ﻛﻪ ﻫﺮ ﻳﻚ از ﻣﻘﺎدﻳﺮ ﺳﺘﻮﻧﻬﺎﻳﻲ ﻛﻪ در ﺷﺮط ﭘﻴﻮﻧﺪ ﺻﺎدق ﻧﺒﺎﺷﻨﺪ‪ ،‬ﺑﺎ ﻣﻘﺪار‬ ‫ﺟﺎﻳﮕﺰﻳﻦ ﺧﻮاﻫﻨﺪ ﺷﺪ‪ .‬ﺑﺮاي درك ﺑﻬﺘﺮ ﻣﻮﺿﻮع ﻫﻤﺎن دو ﺟﺪول‬

‫‪EMP‬‬

‫و‬

‫‪NULL‬‬

‫‪DEPT‬‬

‫ﻛﻪ‬

‫ﻛﻤﻲﻗﺒﻞ ﺗﺮ ﻣﻌﺮﻓﻲ ﺷﺪﻧﺪ را ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲدﻫﻴﻢ‪ .‬ﺑﺪﻳﻦ ﻣﻨﻈﻮر ﺑﺎ اﺳﺘﻔﺎده از ﻋﺒﺎرت‬ ‫زﻳﺮ ﻣﻘﺪار ‪ Deptno‬ﻳﻜﻲ از رﻛﻮردﻫﺎي ﺟﺪول ‪ EMP‬را ﺑﺮاﺑﺮ ﺑﺎ ‪ NULL‬ﻗﺮار ﻣﻲدﻫﻴﻢ‪.‬‬ ‫‪Update emp‬‬ ‫‪set deptno = NULL‬‬ ‫;’‪where ename = ‘KING‬‬

‫ﺣﺎل ﺑﻪ ﻋﺒﺎرت زﻳﺮ ﻛﻪ در آن ﺟﺪول‬

‫‪DEPT‬‬

‫ﺑﻌﻨﻮان ﺟﺪول ﺳﻤﺖ راﺳﺖ ﭘﻴﻮﻧﺪ و‬

‫ﺟﺪول ‪ EMP‬ﺑﻌﻨﻮان ﺟﺪول ﺳﻤﺖ ﭼﭗ ﭘﻴﻮﻧﺪ ﻣﻲﺑﺎﺷﻨﺪ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ‪:‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

176

Select e.ename , e.deptno , d.dname EMP e FULL OUTER JOIN DEPT d From ON e.deptno = d.deptno

‫ ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه‬.‫ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﻋﺒﺎرت ﺑﺎﻻ ﺑﻪ ﺷﺮح ذﻳﻞ ﺧﻮاﻫﺪ ﺑﻮد‬ ‫ ﻟﺬا دو‬،‫ ﺷﺪه اﺳﺖ‬NULL ‫ ﺑﺮاﺑﺮ ﺑﺎ‬EMP ‫ از ﺟﺪول‬deptno ‫ﻣﻲﻛﻨﻴﺪ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻨﻜﻪ ﻣﻘﺪار‬ .‫ ﻣﻲﺑﺎﺷﻨﺪ‬NULL ‫رﻛﻮرد در ﺧﺮوﺟﻲ ﺣﺎﺻﻞ داراي ﻣﻘﺎدﻳﺮ‬ ‫ ﭘﻴﻮﻧﺪ ﺧﺎرﺟﻲ ﻛﺎﻣﻞ‬SQL ‫ ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﻋﺒﺎرت‬6- 8 ‫ﺟﺪول‬ ENAME

DEPTNO

DNAME

SMITH

20

RESEARCH

ALLEN

30

SALES

WARD

30

SALES

JONES

20

RESEARCH

MARTIN

30

SALES

BLAKE

30

SALES

CLARK

10

ACCOUNTING

SCOTT

20

RESEARCH

TURNER

30

SALES

ADAMS

20

RESEARCH

JAMES

30

SALES

FORD

20

RESEARCH

MILLER

10

ACCOUNTING OPERATIONS

KING

‫ ﺳﺎﻳﺮ ﻋﻤﻠﮕﺮﻫﺎ در ﺟﺴﺘﺠﻮﻫﺎي ﭘﻴﺸﺮﻓﺘﻪ‬- 7 1

1. G ro u p B y

‫ ﻋﻤﻠﮕﺮ ﮔﺮوه ﺑﻨﺪي‬1- 7

‫آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪاي ‪177 SQL‬‬

‫ﻓﺮض ﻛﻨﻴﺪ ﻣﻲ ﺧﻮاﻫﻴﻢ رﻛﻮردﻫﺎي )ﺳﻄﺮﻫﺎ( ﻳﻚ ﺟﺪول را ﺑﺮ اﺳﺎس ﻣﻘﺎدﻳﺮ ﻳﻚ ﻳﺎ‬ ‫ﭼﻨﺪ ﺳﺘﻮن آن ﺟﺪول ﮔﺮوه ﺑﻨﺪي ﻧﻤﺎﻳﻴﻢ ﺑﮕﻮﻧﻪ اﻳﻜﻪ رﻛﻮردﻫﺎي ﻣﻮﺟﻮد در ﻫﺮ ﮔﺮوه‬ ‫داراي ﻳﻚ ﻣﻘﺪار ﻣﺸﺘﺮك از ﺳﺘﻮﻧﻬﺎي ﻣﻮرد ﻧﻈﺮ در ﮔﺮوه ﺑﻨﺪي ﺑﺎﺷﻨﺪ‪ .‬ﺑﺮاي اﻧﺠﺎم اﻳﻦ‬ ‫اﻣﺮ از ﻋﻤﻠﮕﺮ‬

‫‪GroupBy‬‬

‫رﻛﻮردﻫﺎي ﺟﺪول‬

‫‪EMP‬‬

‫اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد‪ .‬ﺑﺮاي ﻣﺜﺎل ﻓﺮض ﻛﻨﻴﺪ ﻣﻲ ﺧﻮاﻫﻴﻢ‬

‫را ﺑﺮ اﺳﺎس ﻣﻘﺎدﻳﺮ ﺻﻔﺖ ﺧﺎﺻﻪ )ﺳﺘﻮن(‬

‫‪deptno‬‬

‫ﮔﺮوه‬

‫ﺑﻨﺪي ﻧﻤﺎﻳﻴﻢ‪ .‬ﻋﺒﺎرت ﻣﻮرد ﻧﻈﺮ ﺑﻪ ﺷﺮح ذﻳﻞ ﺧﻮاﻫﺪ ﺑﻮد‪:‬‬ ‫* ‪Select‬‬ ‫‪From EMP‬‬ ‫‪Group By deptno‬‬

‫‪ 2- 7‬ﻋﻤﻠﮕﺮ ﻣﺮﺗﺐ ﺳﺎزي‬ ‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲ ﮔﺮدد ﻋﻤﻠﮕﺮ‬

‫‪Group By‬‬

‫اﻗﺪام ﺑﻪ دﺳﺘﻪ ﺑﻨﺪي رﻛﻮردﻫﺎ ﺑﺮ‬

‫اﺳﺎس ﻣﻘﺎدﻳﺮ ﻳﻚ )ﻳﺎ ﭼﻨﺪ( ﺳﺘﻮن ﻣﻲ ﻧﻤﺎﻳﺪ‪ .‬وﻟﻲ اﻳﻦ ﻋﻤﻠﮕﺮ ﻣﻨﻄﻘﺎً اﻟﺰام ﺑﻪ ﻣﺮﺗﺐ‬ ‫ﺳﺎزي ﻣﻘﺎدﻳﺮ ﺑﺼﻮرت ﺻﻌﻮدي ﻳﺎ ﻧﺰوﻟﻲ ﻧﻤﻲ ﻛﻨﺪ و ﺻﺮﻓﺎ ﮔﺮوه ﺑﻨﺪي را اﻧﺠﺎم‬ ‫ﻣﻲ دﻫﺪ‪ .‬ﺣﺎل اﮔﺮ ﻻزم ﺑﺎﺷﺪ ﺑﮕﻮﻧﻪ اي اﻗﺪام ﺑﻪ ﻣﺮﺗﺐ ﺳﺎزي ﺧﺮوﺟﻲ ﺑﻨﻤﺎﻳﻴﻢ ﻻزم‬ ‫اﺳﺖ از ﻋﻤﻠﮕﺮ ‪ ORDERBY‬اﺳﺘﻔﺎده ﮔﺮدد‪ .‬اﻳﻦ ﻋﻤﻠﮕﺮ ﺗﻮاﻧﺎﻳﻲ ﻣﺮﺗﺐ ﺳﺎزي رﻛﻮردﻫﺎ‬ ‫ﺑﻪ ﺻﻮرت ﺻﻌﻮدي و ﻧﺰوﻟﻲ دارد‪ .‬ﺑﺮاي اﻧﺘﺨﺎب ﻧﻮع ﻣﺮﺗﺐ ﺳﺎزي ﻳﻜﻲ از دو ﻋﻤﻠﮕﺮ‬ ‫زﻳﺮ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ‪:‬‬ ‫‪ASC‬‬

‫‪ :‬رﻛﻮردﻫﺎ را ﺑﺼﻮرت ﺻﻌﻮدي ﻣﺮﺗﺐ ﺳﺎزي ﻣﻲﻛﻨﺪ‬

‫‪DESC‬‬

‫‪ :‬رﻛﻮردﻫﺎ را ﺑﺼﻮرت ﻧﺰوﻟﻲ ﻣﺮﺗﺐ ﺳﺎزي ﻣﻲﻛﻨﺪ‬

‫ﺑﻪ ﻋﺒﺎرت زﻳﺮ ﻛﻪ رﻛﻮردﻫﺎي ﺟﺪول‬

‫‪EMP‬‬

‫را ﺑﺮ اﺳﺎس ﺻﻔﺖ ﺧﺎﺻﻪ‬

‫‪ename‬‬

‫و‬

‫ﺑﺼﻮرت ﺻﻌﻮدي ﻣﺮﺗﺐ ﻣﻲﻛﻨﺪ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ‪:‬‬ ‫* ‪Select‬‬ ‫‪From EMP‬‬ ‫‪ORDER BY ename ASC‬‬

‫ﺣﺎل ﻓﺮض ﻛﻨﻴﺪ ﻣﻲﺧﻮاﻫﻴﻢ رﻛﻮردﻫﺎي ﺟﺪول ﻣﺬﻛﻮر را ﺑﺮ اﺳﺎس دو ﺻﻔﺖ‬ ‫ﺧﺎﺻﻪ ﻣﺮﺗﺐ ﺳﺎزي ﻧﻤﺎﻳﻴﻢ‪ .‬ﻋﺒﺎرت زﻳﺮ ﺑﻴﺎﻧﮕﺮ ﻧﺤﻮه اﻧﺠﺎم اﻳﻦ ﻣﻮﺿﻮع ﻣﻲﺑﺎﺷﺪ‪:‬‬ ‫* ‪Select‬‬

‫‪178‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫‪From EMP‬‬ ‫‪ORDER BY deptno DESC , ename ASC‬‬

‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲﻧﻤﺎﻳﻴﺪ در ﻋﺒﺎرت ﻓﻮق اﺑﺘﺪا رﻛﻮردﻫﺎ ﺑﺮ اﺳﺎس ﻣﻘﺪار‬ ‫ﺻﻔﺖ ﺧﺎﺻﻪ ‪ deptno‬ﺑﺼﻮرت ﻧﺰوﻟﻲ ﻣﺮﺗﺐ ﺷﺪه و ﺳﭙﺲ ﺑﺮ اﺳﺎس ﺻﻔﺖ ﺧﺎﺻﻪ‬

‫‪ename‬‬

‫ﺑﺼﻮرت ﺻﻌﻮدي ﻣﺮﺗﺐ ﻣﻲﮔﺮدﻧﺪ‪.‬‬

‫‪ 3- 7‬ﺗﻮاﺑﻊ ﺗﺠﻤﻌﻲ‬ ‫ﻳﻜﻲ از ﻧﻴﺎزﻫﺎي ﻣﻌﻤﻮل ﻛﺎرﺑﺮان اﻧﺠﺎم ﻣﺤﺎﺳﺒﺎﺗﻲ ﺑﺮ روي ﺑﻌﻀﻲ ﺳﺘﻮﻧﻬﺎ ﻣﻲ ﺑﺎﺷﺪ‪.‬‬ ‫ﺑﻌﻨﻮان ﻣﺜﺎل ﻓﺮض ﻛﻨﻴﺪ ﻣﻲ ﺧﻮاﻫﻴﺪ ﻣﻴﺎﻧﮕﻴﻦ ﻧﻤﺮه داﻧﺶ آﻣﻮزان در ﻳﻚ ﻛﻼس ﺑﺮاي‬ ‫ﻳﻚ درس را ﺑﺪﺳﺖ آورﻳﺪ‪ .‬ﺑﺪﻳﻬﻲ اﺳﺖ ﻛﻪ اﻳﻦ ﻋﻤﻞ ﺑﺼﻮرت ﺳﺘﻮﻧﻲ اﻧﺠﺎم ﻣﻲ ﮔﻴﺮد‬ ‫و ﺑﺎ ﺳﺎﻳﺮ دﺳﺘﻮراﺗﻲ ﻛﻪ ﺗﺎ ﺑﺤﺎل ﮔﻔﺘﻪ اﻳﻢ ﻣﺘﻔﺎوت ﻣﻲ ﺑﺎﺷﺪ‪ .‬ﺗﻮاﺑﻌﻲ ﻛﻪ ﺑﺮ روي ﻣﻘﺎدﻳﺮ‬ ‫ﺳﺘﻮﻧﻬﺎ ﻋﻤﻞ ﻣﻲﻛﻨﻨﺪ را ﺗﻮاﺑﻊ ﺗﺠﻤﻌﻲ ﻣﻲ ﻧﺎﻣﻴﻢ‪ .‬ﻟﻴﺴﺘﻲ از ﻣﻌﺮوﻓﺘﺮﻳﻦ اﻳﻦ ﺗﻮاﺑﻊ ﺑﻪ‬ ‫ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﻨﺪ‪:‬‬ ‫‪COUNT‬‬

‫‪ :‬ﺗﻌﺪاد ﻣﻘﺎدﻳﺮ در ﻳﻚ ﺳﺘﻮن را اراﺋﻪ ﻣﻲدﻫﺪ‪.‬‬

‫‪SUM‬‬

‫‪ :‬ﺣﺎﺻﻞ ﺟﻤﻊ ﻣﻘﺎدﻳﺮ ﻳﻚ ﺳﺘﻮن را اراﺋﻪ ﻣﻲدﻫﺪ‪.‬‬

‫‪AVG‬‬

‫‪ :‬ﻣﻴﺎﻧﮕﻴﻦ ﻣﻘﺎدﻳﺮ ﻳﻚ ﺳﺘﻮن را اراﺋﻪ ﻣﻲدﻫﺪ‪.‬‬

‫‪MAX‬‬

‫‪ :‬ﺑﺎﻻﺗﺮﻳﻦ ﻣﻘﺪار در ﺑﻴﻦ ﻣﻘﺎدﻳﺮ ﻳﻚ ﺳﺘﻮن را اراﺋﻪ ﻣﻲدﻫﺪ‪.‬‬

‫‪MIN‬‬

‫‪ :‬ﭘﺎﻳﻴﻦ ﺗﺮﻳﻦ ﻣﻘﺪار در ﺑﻴﻦ ﻣﻘﺎدﻳﺮ ﻳﻚ ﺳﺘﻮن را اراﺋﻪ ﻣﻲدﻫﺪ‪.‬‬

‫ﻧﻜﺘﻪاي ﻛﻪ ﺑﺎﻳﺪ ﺑﺪان ﺗﻮﺟﻪ ﻛﺮد اﻳﻦ اﺳﺖ ﻛﻪ ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﺗﻮاﺑﻊ ﻣﺬﻛﻮر‬ ‫ﺑﺼﻮرت ﻳﻚ ﻣﻘﺪار ﻣﻲﺑﺎﺷﻨﺪ‪ .‬ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ ﻫﺮ ﭘﺎﻳﮕﺎهدادهاي ﻋﻼوه ﺑﺮ ﺗﻮاﺑﻊ‬ ‫ﻣﺬﻛﻮر‪ ،‬ﺗﻌﺪادي ﺗﺎﺑﻊ دﻳﮕﺮ ﻧﻴﺰ ﻃﺮاﺣﻲ ﻛﺮده اﺳﺖ‪ .‬ﺑﺮاي ﻣﺜﺎل در ﺑﻌﻀﻲ از ﭘﺎﻳﮕﺎهﻫﺎي داده‬ ‫ﺗﻮاﺑﻌﻲ ﺟﻬﺖ ﻣﺤﺎﺳﺒﻪ وارﻳﺎﻧﺲ و ﻳﺎ اﻧﺤﺮاف ﻣﻌﻴﺎر ﻃﺮاﺣﻲ ﺷﺪهاﻧﺪ‪ .‬ﺑﺮاي درك ﺑﻬﺘﺮ‬ ‫ﻣﻮﺿﻮع‪ ،‬ﺟﺪول ‪ EMP‬را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪ .‬ﻓﺮض ﻛﻨﻴﺪ ﻣﻲﺧﻮاﻫﻴﻢ ﺗﻌﺪاد ﭘﺮﺳﻨﻠﻲ ﻛﻪ ﻣﻘﺪار‬ ‫ﺻﻔﺖ ﺧﺎﺻﻪ ‪ deptno‬در آﻧﻬﺎ ﺑﺮاﺑﺮ ﺑﺎ ‪ 10‬ﺑﺎﺷﺪ را‪ ،‬ﺑﺪﺳﺖ آورﻳﻢ‪ .‬ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح‬ ‫ذﻳﻞ ﺧﻮاﻫﺪ ﺑﻮد‪:‬‬ ‫‪SELECT Count (*) as Tedad‬‬ ‫‪FROM EMP‬‬ ‫; ‪WHERE deptno = 10‬‬

‫آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪاي ‪179 SQL‬‬

‫ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح ذﻳﻞ ﺧﻮاﻫﺪ ﺑﻮد‪:‬‬ ‫‪TEDAD‬‬ ‫‪3‬‬

‫ﺣﺎل ﻓﺮض ﻛﻨﻴﺪ ﻣﻲﺧﻮاﻫﻴﻢ ﺑﺎﻻﺗﺮﻳﻦ و ﭘﺎﻳﻴﻦ ﺗﺮﻳﻦ ﻣﻴﺰان ﺣﻘﻮق ﭘﺮﺳﻨﻠﻲ ﻛﻪ ﻣﻘﺪار‬ ‫ﺻﻔﺖ ﺧﺎﺻﻪ ‪ deptno‬در آﻧﻬﺎ ﺑﺮاﺑﺮ ﺑﺎ ‪ 10‬ﺑﺎﺷﺪ را‪ ،‬ﺑﺪﺳﺖ آورﻳﻢ‪ .‬ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح‬ ‫ذﻳﻞ ﺧﻮاﻫﺪ ﺑﻮد‪:‬‬ ‫‪SELECT Max(sal) as maxval , Min(sal) as minval‬‬ ‫‪From EMP‬‬ ‫; ‪Where deptno =10‬‬

‫ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح ذﻳﻞ ﺧﻮاﻫﺪ ﺑﻮد‪:‬‬ ‫‪MINVAL‬‬

‫‪MAXVAL‬‬

‫‪1300‬‬

‫‪5000‬‬

‫ﺣﺎل ﻓﺮض ﻛﻨﻴﺪ ﻣﻲﺧﻮاﻫﻴﻢ ﺣﺪاﻗﻞ ﻣﻴﺎﻧﮕﻴﻦ ﺣﻘﻮق را ﺑﺮاي ﭘﺮﺳﻨﻞ ﺗﻌﺮﻳﻒ ﺷﺪه‬ ‫در ﺟﺪول ‪ EMP‬ﺑﺮ ﺣﺴﺐ ﺻﻔﺖ ﺧﺎﺻﻪ ‪ deptno‬ﺑﺪﺳﺖ آورﻳﻢ‪ .‬در اﻳﻦ ﺷﺮاﻳﻂ ﻻزم اﺳﺖ‬ ‫ﻋﻼوه ﺑﺮ اﺳﺘﻔﺎده از ﺗﻮاﺑﻊ ﺗﺠﻤﻌﻲ از‬

‫‪Group By‬‬

‫ﻧﻴﺰ اﺳﺘﻔﺎده ﻧﻤﻮد‪ .‬ﺑﻪ ﻋﺒﺎرت زﻳﺮ ﻛﻪ‬

‫ﺑﻴﺎﻧﮕﺮ اﻳﻦ درﺧﻮاﺳﺖ ﻣﻲﺑﺎﺷﺪ ﺗﻮﺟﻪ ﻛﻨﻴﺪ‪:‬‬ ‫‪Select deptno , Min(sal) as MinVal‬‬ ‫‪From emp‬‬ ‫‪Group by deptno‬‬

‫ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح ذﻳﻞ ﺧﻮاﻫﺪ ﺑﻮد‪:‬‬

‫‪ 4- 7‬ﻋﻤﻠﮕﺮ‬

‫‪HAVING‬‬

‫‪MINVAL‬‬

‫‪DEPTNO‬‬

‫‪1300‬‬

‫‪10‬‬

‫‪800‬‬

‫‪20‬‬

‫‪950‬‬

‫‪30‬‬

‫‪180‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﻲ داﻧﻴﺪ ﺗﺎﺑﺤﺎل از ﻋﻤﻠﮕﺮ‬ ‫ﻣﻲ ﻛﺮدﻳﻢ‪ .‬وﻟﻲ ﻋﻤﻠﮕﺮ‬

‫‪Where‬‬

‫‪WHERE‬‬

‫ﺑﺮاي ﺗﻌﻴﻴﻦ ﺷﺮاﻳﻂ اﺳﺘﻔﺎده‬

‫ﻓﻘﻂ ﻗﺎدر ﺑﻮد ﺑﺮ روي ﺳﺘﻮﻧﻬﺎ ﻋﻤﻞ ﻧﻤﺎﻳﺪ‪ ،‬ﺣﺎل آﻧﻜﻪ‬

‫ﮔﺎﻫﻲ ﻻزم اﺳﺖ ﻋﻤﻠﮕﺮ ﺗﻌﻴﻴﻦ ﺷﺮاﻳﻂ ﺑﺮروي ﺳﻄﺮﻫﺎ ﻋﻤﻞ ﻧﻤﺎﻳﺪ‪ .‬اﻳﻦ وﺿﻌﻴﺖ ﺑﻴﺸﺘﺮ‬ ‫زﻣﺎﻧﻲ رخ ﻣﻲدﻫﺪ ﻛﻪ ﺑﺨﻮاﻫﻴﻢ از‬

‫‪Group By‬‬

‫اﺳﺘﻔﺎده ﻧﻤﺎﻳﻴﻢ و ﻳﺎ اﻳﻨﻜﻪ ﺑﺨﻮاﻫﻴﻢ از‬

‫ﺗﻮاﺑﻊ ﺗﺠﻤﻌﻲ ﻛﻪ اﺳﺎﺳﺎً ﺑﺮ روي ﺳﻄﺮﻫﺎ ﻋﻤﻞ ﻣﻲ ﻛﻨﻨﺪ‪ ،‬اﺳﺘﻔﺎده ﻧﻤﺎﻳﻴﻢ‪ .‬در ﭼﻨﻴﻦ‬ ‫ﺷﺮاﻳﻄﻲ ﺑﺠﺎي اﺳﺘﻔﺎده از ﻛﻠﻤﻪ‬

‫‪Where‬‬

‫از ﻛﻠﻤﻪ‬

‫‪Having‬‬

‫اﺳﺘﻔﺎده ﻣﻲﻛﻨﻴﻢ‪ .‬ﺑﺮاي درك‬

‫ﺑﻬﺘﺮ ﻣﻮﺿﻮع ﺑﻪ ﻣﺜﺎل زﻳﺮ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ‪:‬‬ ‫‪Select deptno‬‬ ‫‪From emp‬‬ ‫‪Group By deptno‬‬ ‫‪Having COUNT (*) > 4‬‬

‫ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﻋﺒﺎرت ﺑﺎﻻ ﺑﻪ ﺷﺮح ذﻳﻞ ﺧﻮاﻫﺪ ﺑﻮد‪:‬‬ ‫‪DEPTNO‬‬ ‫‪20‬‬ ‫‪30‬‬

‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲﻧﻤﺎﻳﻴﺪ از آﻧﺠﺎﺋﻴﻜﻪ ﺗﻌﺪاد رﻛﻮردﻫﺎﻳﻲ ﻛﻪ در آﻧﻬﺎ ﻣﻘﺪار‬ ‫‪deptno‬‬

‫ﺑﺮاﺑﺮ ‪ 10‬ﺑﺎﺷﺪ‪ ،‬ﻛﻤﺘﺮ از ‪ 4‬ﺗﺎ ﻫﺴﺘﻨﺪ‪ ،‬ﻟﺬا رﻛﻮردي ﻛﻪ ﺑﻴﺎﻧﮕﺮ ﻣﻘﺪار ‪ 10‬در ﺳﺘﻮن‬

‫‪ deptno‬ﺑﺎﺷﺪ در ﺧﺮوﺟﻲ ﻣﺸﺎﻫﺪه ﻧﻤﻲﮔﺮدد‪ .‬ﻳﻜﻲ از ﻧﻜﺎت ﻣﻬﻢ در زﺑﺎن ‪ SQL‬اﻳﻦ اﺳﺖ‬ ‫ﻛﻪ ﻋﻤﻠﮕﺮﻫﺎي‬

‫‪Having‬‬

‫و‬

‫‪Where‬‬

‫ﻣﻲﺗﻮاﻧﻨﺪ ﺑﺼﻮرت ﺗﺮﻛﻴﺒﻲ در ﻳﻚ ﻋﺒﺎرت‬

‫‪SQL‬‬

‫ﻣﻮرد‬

‫اﺳﺘﻔﺎده ﻗﺮار ﮔﻴﺮﻧﺪ‪.‬‬

‫‪ 5- 7‬ﻋﻤﻠﮕﺮ‬

‫‪BETWEEN‬‬

‫ﻳﻜﻲ از وﻳﮋﮔﻲ ﻫﺎي ﻣﻮرد ﻧﻴﺎز ﻛﺎرﺑﺮان‪ ،‬اﻣﻜﺎن اﻧﺘﺨﺎب رﻛﻮردﻫﺎ ﺑﺮ اﺳﺎس ﻣﻘﺎدﻳﺮي‬ ‫اﺳﺖ ﻛﻪ در ﻳﻚ ﺑﺎزه ﻗﺮار داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪ .‬ﺑﺮاي ﻣﺜﺎل ﻓﺮض ﻛﻨﻴﺪ ﻟﻴﺴﺖ ﭘﺮﺳﻨﻠﻲ را‬ ‫ﺑﺨﻮاﻫﻴﻢ ﻛﻪ ﺣﻘﻮق آﻧﻬﺎ ﺑﻴﻦ ‪ 1000‬و‬

‫‪2000‬‬

‫ﺑﺎﺷﺪ‪ .‬ﻋﺒﺎرت زﻳﺮ ﻧﺤﻮه اﺳﺘﻔﺎده از دﺳﺘﻮر‬

‫‪ Between‬را ﻧﺸﺎن ﻣﻲ دﻫﺪ‪:‬‬ ‫‪Select ename ,Sal‬‬ ‫‪From EMP‬‬ ‫; ‪Where sal Between 1000 and 2000‬‬

‫آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪاي ‪181 SQL‬‬

‫ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﻋﺒﺎرت ﻣﺬﻛﻮر ﺑﻪ ﺷﺮح زﻳﺮ ﺧﻮاﻫﺪ ﺑﻮد‪:‬‬

‫‪ 6- 7‬ﻋﻤﻠﮕﺮ‬

‫‪SAL‬‬

‫‪ENAME‬‬

‫‪1600‬‬

‫‪ALLEN‬‬

‫‪1250‬‬

‫‪WARD‬‬

‫‪1250‬‬

‫‪MARTIN‬‬

‫‪1500‬‬

‫‪TURNER‬‬

‫‪1100‬‬

‫‪ADAMS‬‬

‫‪1300‬‬

‫‪MILLER‬‬

‫‪LIKE‬‬

‫در ﺑﻌﻀﻲ ﻣﻮارد ﻛﺎرﺑﺮان ﻧﻴﺎز دارﻧﺪ ﺗﺎ ﻋﺒﺎرﺗﻲ را در ﺑﻴﻦ ﻣﻘﺎدﻳﺮ ﻳﻚ ﺻﻔﺖ ﺧﺎﺻﻪ‬ ‫ﺟﺴﺘﺠﻮ ﻧﻤﺎﻳﻨﺪ‪ .‬اﻳﻦ وﺿﻌﻴﺖ ﺑﻴﺸﺘﺮ زﻣﺎﻧﻲ رخ ﻣﻲ دﻫﺪ ﻛﻪ ﻛﺎرﺑﺮان در ﺣﺎل ﻛﺎر ﺑﺎ‬ ‫ﻣﻘﺎدﻳﺮ رﺷﺘﻪ اي ﺑﺎﺷﻨﺪ‪ .‬در اﻳﻦ ﺷﺮاﻳﻂ از ﻋﻤﻠﮕﺮ ‪ Like‬اﺳﺘﻔﺎده ﻣﻲﻧﻤﺎﻳﻴﻢ‪.‬‬ ‫ﺑﺮاي ﻣﺜﺎل ﻓﺮض ﻛﻨﻴﺪ ﻣﻲﺧﻮاﻫﻴﻢ در ﺟﺪول‬ ‫ﺻﻔﺖ ﺧﺎﺻﻪ‬

‫‪ename‬‬

‫‪EMP‬‬

‫ﺑﻪ دﻧﺒﺎل اﻓﺮادي ﺑﮕﺮدﻳﻢ ﻛﻪ در‬

‫آﻧﻬﺎ ﻛﻠﻤﻪ ’‪ ‘AM‬ﺑﺎﺷﺪ‪ .‬ﻋﺒﺎرت زﻳﺮ ﻧﺤﻮه ﻧﻮﺷﺘﻦ ﭼﻨﻴﻦ درﺧﻮاﺳﺘﻲ‬

‫را ﻧﺸﺎن ﻣﻲدﻫﺪ‪:‬‬ ‫‪Select ename ,deptno, sal‬‬ ‫‪From emp‬‬ ‫' ‪' ; % AM % Where ename LIKE‬‬

‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲﻛﻨﻴﺪ ﻋﻼﻣﺖ " ‪ " %‬ﻧﺸﺎن ﻣﻲدﻫﺪ ﻛﻪ ﻛﻠﻤﻪ‬

‫“ ‪“ AM‬‬

‫ﻣﻲﺗﻮاﻧﺪ در ﺑﻴﻦ ﻣﻘﺎدﻳﺮ ﻣﻮﺟﻮد ﺑﺎﺷﺪ و ﻻزم ﻧﻴﺴﺖ ﺣﺘﻤﺎ در اﺑﺘﺪا ﻳﺎ اﻧﺘﻬﺎي آن ﻣﻘﺎدﻳﺮ‬ ‫ﺑﺎﺷﺪ‪ .‬ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﻋﺒﺎرت ﺑﺎﻻ ﺑﻪ ﺷﺮح زﻳﺮ ﺧﻮاﻫﺪ ﺑﻮد‪.‬‬ ‫‪SAL‬‬

‫‪DEPTNO‬‬

‫‪ENAME‬‬

‫‪1100‬‬

‫‪20‬‬

‫‪ADAMS‬‬

‫‪950‬‬

‫‪30‬‬

‫‪JAMES‬‬

‫‪182‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪ - 8‬اﺳﺘﻔﺎده از ﭘﺮس و ﺟﻮﻫﺎي ﺗﻮدرﺗﻮ‬

‫‪1‬‬

‫در ﺑﺴﻴﺎري از ﻣﻮارد ﻣﻘﺎدﻳﺮ ﻣﻮرد ﻧﻈﺮ در ﻋﺒﺎرت ‪ where‬ﺧﻮد ﺑﺼﻮرت ﻣﺸﺨﺺ ﻧﺒﻮده‬ ‫و ﺑﺮ اﺳﺎس ﻳﻚ ﻋﺒﺎرت ﭘﺮس و ﺟﻮس دﻳﮕﺮ ﺑﺪﺳﺖ ﻣﻲ اﻳﻨﺪ‪ .‬در ﭼﻨﻴﻦ ﺷﺮاﻳﻄﻲ ﻻزم‬ ‫اﺳﺖ ﺗﺎ ﺑﺠﺎي اﺳﺘﻔﺎده از ﻋﺒﺎرات ﺟﺪاﮔﺎﻧﻪ‪ ،‬از ﻋﺒﺎرات ﺗﻮدرﺗﻮ اﺳﺘﻔﺎده ﻛﺮد ﺗﺎ ﺧﺮوﺟﻲ‬ ‫ﻫﺮ ﻳﻚ از ﻋﺒﺎرات دروﻧﻲ ﺑﻌﻨﻮان ﻣﻘﺎدﻳﺮ ﻣﻮرد اﺳﺘﻔﺎده در ﻋﺒﺎرت ﺑﻴﺮوﻧﻲ ﺗﺮ در ﻧﻈﺮ‬ ‫ﮔﺮﻓﺘﻪ ﺷﻮد‪ .‬در اداﻣﻪ اﻧﻮاﻋﻲ از ﻋﺒﺎرات ﺗﻮدرﺗﻮ را ﻧﺸﺎن ﺧﻮاﻫﻴﻢ داد‪.‬‬

‫‪ 1- 8‬اﺳﺘﻔﺎده از زﻳﺮﭘﺮﺳﺶﻫﺎ ‪) 2‬ﭘﺮﺳﺶﻫﺎي ﻓﺮﻋﻲ(‬ ‫ﻳﻜﻲ از ﻧﻴﺎزﻫﺎي ﻛﺎرﺑﺮان اﻣﻜﺎن ﻃﺮح ﭘﺮﺳﺸﻲ درون ﭘﺮﺳﺶ دﻳﮕﺮ ﻣﻲ ﺑﺎﺷﺪ‪ .‬ﻫﺮ ﮔﺎه‬ ‫ﺑﺨﻮاﻫﻴﻢ ﭘﺮﺳﺸﻲ را درون ﭘﺮﺳﺸﻲ دﻳﮕﺮ ﻣﻄﺮح ﻧﻤﺎﻳﻴﻢ‪ ،‬ﺑﻪ آن زﻳﺮ ﭘﺮﺳﺶ ﻣﻲ ﮔﻮﻳﻨﺪ‪.‬‬ ‫ﺑﺪﻳﻬﻲ اﺳﺖ ﻛﻪ ﻫﺮ ﭘﺮﺳﺸﻲ ﭼﻪ ﺑﺼﻮرت ﭘﺮﺳﺶ ﺑﻴﺮوﻧﻲ ﺑﺎﺷﺪ و ﻳﺎ ﺑﺼﻮرت ﭘﺮﺳﺶ‬ ‫دروﻧﻲ‪ ،‬ﻻزم اﺳﺖ ﻛﻪ ﺑﺎ ﻋﺒﺎرت‬

‫‪Select‬‬

‫آﻏﺎز ﮔﺮدد‪ .‬زﻳﺮ ﭘﺮﺳﺶ ﻫﺎ ﻣﻌﻤﻮﻻً ﺑﻌﻨﻮان‬

‫ﻗﺴﻤﺘﻲ از ﻋﺒﺎرت ‪ Where‬ﺑﻜﺎر ﻣﻲروﻧﺪ‪.‬‬ ‫‪3‬‬

‫ﻋﺒﺎراﺗﻲ ﻛﻪ ﺑﺼﻮرت زﻳﺮﭘﺮﺳﺶ ﺑﺎﺷﻨﺪ ﻣﻌﻤﻮﻻً ﻣﻲﺗﻮاﻧﻨﺪ ﺑﺼﻮرت ﺗﻮدرﺗﻮ ﻧﻮﺷﺘﻪ‬ ‫ﺷﻮﻧﺪ‪ .‬در ﭼﻨﻴﻦ ﺷﺮاﻳﻄﻲ ﺑﺮاي اﺟﺮاي ﻫﺮ ﻋﺒﺎرت ﺑﻴﺮوﻧﻲ ﻻزم اﺳﺖ اﺑﺘﺪا ﻋﺒﺎرت‬ ‫ﺟﺴﺘﺠﻮي دروﻧﻲ ﻣﺤﺎﺳﺒﻪ ﺷﺪه و ﺳﭙﺲ ﻋﺒﺎرت ﺑﻴﺮوﻧﻲ ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﮔﻴﺮد‪ .‬ﺑﻪ ﺑﻴﺎﻧﻲ‬ ‫دﻳﮕﺮ ﻣﺴﻴﺮ ﺣﻞ در ﻋﺒﺎرات ﺗﻮدرﺗﻮ از دروﻧﻲ ﺗﺮﻳﻦ ﻋﺒﺎرت ﺑﻪ ﺳﻤﺖ ﺑﻴﺮوﻧﻲ ﺗﺮﻳﻦ ﻋﺒﺎرت‬ ‫ﺧﻮاﻫﺪ ﺑﻮد‪ .‬ﻋﺒﺎرت زﻳﺮ ﺑﻌﻨﻮان ﻧﻤﻮﻧﻪاي از اﻳﻦ ﻧﻮع ﭘﺮﺳﺶﻫﺎ ﻣﻲﺑﺎﺷﺪ‪:‬‬ ‫‪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‬‬

‫آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪاي ‪183 SQL‬‬

‫‪ 2- 8‬ﻋﻤﻠﮕﺮ‬

‫‪SAL‬‬

‫‪DEPTNO‬‬

‫‪ENAME‬‬

‫‪2975‬‬

‫‪20‬‬

‫‪JONES‬‬

‫‪2850‬‬

‫‪30‬‬

‫‪BLAKE‬‬

‫‪2450‬‬

‫‪10‬‬

‫‪CLARK‬‬

‫‪3000‬‬

‫‪20‬‬

‫‪SCOTT‬‬

‫‪5000‬‬

‫‪10‬‬

‫‪KING‬‬

‫‪3000‬‬

‫‪20‬‬

‫‪FORD‬‬

‫‪IN‬‬

‫ﻣﻌﻤﻮﻻً در زﻳﺮ ﭘﺮﺳﺶ ﻫﺎ ﺷﺮاﻳﻂ ﺑﮕﻮﻧﻪ اﻳﺴﺖ ﻛﻪ ﻛﺎرﺑﺮ ﻣﻲ ﺧﻮاﻫﺪ ﻣﻘﺪاري را از ﺑﻴﻦ‬ ‫ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﻣﻘﺎدﻳﺮ ﺑﺪﺳﺖ آورد‪ .‬ﺑﺮاي اﻳﻦ ﻣﻨﻈﻮر از ﻋﻤﻠﮕﺮ‬ ‫اﻳﻦ ﻋﻤﻠﮕﺮ ﺗﻘﺮﻳﺒﺎ ﺷﺒﻴﻪ ﺑﻪ ﻋﻤﻠﮕﺮ‬

‫‪Between‬‬

‫‪IN‬‬

‫اﺳﺘﻔﺎده ﻣﻲ ﮔﺮدد‪.‬‬

‫ﻣﻲ ﺑﺎﺷﺪ ﺑﺎ اﻳﻦ ﺗﻔﺎوت ﻛﻪ ﻣﻘﺪاري را‬

‫درون ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﻣﻘﺎدﻳﺮ ﻣﻮرد ﺟﺴﺘﺠﻮ ﻗﺮار ﻣﻲ دﻫﺪ‪ .‬ﻣﺜﺎل زﻳﺮ ﻧﻤﻮﻧﻪ اﻳﺴﺖ از‬ ‫ﻋﺒﺎراﺗﻲ ﻛﻪ ﺑﺪﻳﻦ ﺻﻮرت ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮﻧﺪ‪:‬‬

‫‪(Select empno‬‬ ‫‪From emp‬‬ ‫)‪Where sal >2000‬‬

‫‪Select ename,sal‬‬ ‫‪From emp‬‬ ‫‪Where empno IN‬‬

‫ﺧﺮوﺟﻲ ﺣﺎﺻﻞ از ﻋﺒﺎرت ﺑﺎﻻ ﺑﻪ ﺻﻮرت ﺟﺪول زﻳﺮ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫‪SAL‬‬

‫‪ENAME‬‬

‫‪2975‬‬

‫‪JONES‬‬

‫‪2850‬‬

‫‪BLAKE‬‬

‫‪2450‬‬

‫‪CLARK‬‬

‫‪3000‬‬

‫‪SCOTT‬‬

‫‪5000‬‬

‫‪KING‬‬

‫‪3000‬‬

‫‪FORD‬‬

‫‪184‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﻣﻤﻜﻦ اﺳﺖ اﻳﻦ ﺳﺌﻮال ﺑﻪ ذﻫﻦ ﺑﺮﺳﺪ ﻛﻪ ﻋﺒﺎرت ﻣﺬﻛﻮر را ﻣﻲﺗﻮان ﺑﺼﻮرﺗﻲ‬ ‫ﺳﺎدهﺗﺮ ﻧﻴﺰ ﻧﻮﺷﺖ ﻛﻪ در آن ﻧﻴﺎزي ﺑﻪ اﺳﺘﻔﺎده از ﻋﻤﻠﮕﺮ‬

‫‪IN‬‬

‫ﻧﺒﺎﺷﺪ‪ .‬در اﻳﻨﺠﺎ ﻻزم اﺳﺖ‬

‫ﮔﻔﺘﻪ ﺷﻮد ﻛﻪ ﻋﺒﺎرت ﻣﺬﻛﻮر ﻓﻘﻂ ﺟﻬﺖ ﻧﺸﺎن دادن ﻧﺤﻮه اﺳﺘﻔﺎده از ﻋﻤﻠﮕﺮ ‪ IN‬ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫ﻳﻜﻲ از ﻧﻜﺎت ﻛﻠﻴﺪي در اﺳﺘﻔﺎده از ﻋﻤﻠﮕﺮ ﻣﺬﻛﻮر اﻳﻦ اﺳﺖ ﻛﻪ ﺑﺎﻳﺪ زﻳﺮﭘﺮﺳﺶ‬ ‫ﺟﻠﻮي ﻋﻤﻠﮕﺮ ‪ IN‬ﺣﺘﻤﺎ داراي ﻳﻚ ﺳﺘﻮن ﻫﻤﻨﻮع ﺑﺎ ﺳﺘﻮن ﻣﻮرد ﭘﺮﺳﺶ ﺑﺎﺷﺪ و ﻧﻤﻲﺗﻮان‬ ‫در زﻳﺮﭘﺮﺳﺶ از ﻫﺮ ﺳﺘﻮﻧﻲ ﺑﻌﻨﻮان ﺧﺮوﺟﻲ اﺳﺘﻔﺎده ﻛﺮد‪.‬‬

‫‪ 3- 8‬ﻋﻤﻠﮕﺮ‬

‫‪EXISTS‬‬

‫ﻳﻜﻲ دﻳﮕﺮ از ﻋﺒﺎرات ﻣﻮرد اﺳﺘﻔﺎده در ﭘﺮس و ﺟﻮﻫﺎي ﺗﻮدرﺗﻮ‪ ،‬اﺳﺘﻔﺎده از ﻛﻠﻤﻪ‬ ‫ﻛﻠﻴﺪي‬

‫‪EXISTS‬‬

‫ﻣﻲ ﺑﺎﺷﺪ‪ .‬اﻳﻦ دﺳﺘﻮر ﻧﻴﺰ ﺗﺎ ﺣﺪودي ﺷﺒﻴﻪ ﺑﻪ ﻛﻠﻤﻪ ﻛﻠﻴﺪي‬

‫ﻣﻲ ﺑﺎﺷﺪ‪ .‬ﻣﻌﻤﻮﻻً از ﻋﻤﻠﮕﺮ‬

‫‪EXISTS‬‬

‫اﻳﻦ ﻋﻤﻠﮕﺮ ﻣﻲ ﺗﻮان در ﻗﺴﻤﺖ‬ ‫اﺳﺘﻔﺎده ﻛﺮد‪ .‬ﻋﻤﻠﮕﺮ‬

‫‪EXISTS‬‬

‫‪IN‬‬

‫ﺑﻪ ﻧﺪرت اﺳﺘﻔﺎده ﻣﻲﺷﻮد‪ .‬در ﻫﻨﮕﺎم اﺳﺘﻔﺎده از‬

‫‪Where‬‬

‫ﻋﺒﺎرت دروﻧﻲ از ﻣﻘﺎدﻳﺮ ﻋﺒﺎرت ﺑﻴﺮوﻧﻲ‬

‫ﺗﺎ ﺣﺪودي ﺑﺎ ﺳﺎﻳﺮ ﻋﻤﻠﮕﺮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﻋﺒﺎرات ﭘﺮس‬

‫و ﺟﻮي ﺗﻮدرﺗﻮ ﻣﺘﻔﺎوت ﻣﻲ ﺑﺎﺷﺪ‪ .‬زﻳﺮا ﺗﺮﻛﻴﺒﻲ از ﻣﻘﺎدﻳﺮ ﻣﺮﺑﻮط ﺑﻪ ﻋﺒﺎرات ﺑﻴﺮوﻧﻲ و‬ ‫دروﻧﻲ درون ﺷﺮط ﻋﺒﺎرات دروﻧﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮد‪ .‬ﺑﺮاي ﻣﺜﺎل ﺑﻪ ﻋﺒﺎرت زﻳﺮ ﺗﻮﺟﻪ‬ ‫ﻛﻨﻴﺪ‪ .‬ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻲ ﻛﻨﻴﺪ ﻣﻘﺪار ﺻﻔﺖ ﺧﺎﺻﻪ‬

‫‪STID‬‬

‫از راﺑﻄﻪ ﺑﻴﺮوﻧﻲ در‬

‫ﻗﺴﻤﺖ ‪ WHERE‬ﻋﺒﺎرت دروﻧﻲ ﻣﻮرد ﻣﻘﺎﻳﺴﻪ ﻗﺮار ﮔﺮﻓﺘﻪ اﺳﺖ‪.‬‬ ‫‪SELECT STNAME‬‬ ‫‪FROM STT‬‬ ‫* ‪WHERE EXISTS (SELECT‬‬ ‫‪FROM STCOT‬‬ ‫‪WHERE STCOT.STID = STT.STID‬‬ ‫)'‪AND COID = '1234‬‬

‫‪ - 9‬دﺳﺘﻮرات ﻛﻨﺘﺮل ﻣﺠﻮز دﺳﺘﺮﺳﻲ‬ ‫دﺳﺘﻮرات ﻛﻨﺘﺮل ﻛﻨﻨﺪه ﻣﺠﻮز دﺳﺘﺮﺳﻲ در ﭘﺎﻳﮕﺎه ﻫﺎي داده ﺑﻪ دو ﺻﻮرت ﻛﻠﻲ زﻳﺮ‬ ‫ﺗﻘﺴﻴﻢ ﻣﻲ ﺷﻮد‪:‬‬ ‫•‬

‫دﺳﺘﺮﺳﻲ ﺑﻪ دادهﻫﺎ‬

‫•‬

‫دﺳﺘﺮﺳﻲ ﺑﻪ اﻣﻜﺎﻧﺎت ﻣﺪﻳﺮﻳﺘﻲ‬

‫آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪاي ‪185 SQL‬‬

‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻨﻜﻪ ﺑﺤﺚ دﺳﺘﺮﺳﻲ ﺑﻪ اﻣﻜﺎﻧﺎت ﻣﺪﻳﺮﻳﺘﻲ در اﻳﻦ ﻗﺴﻤﺖ از ﻛﺘﺎب ﻣﻄﺮح‬ ‫ﻧﻴﺴﺖ‪ ،‬ﻟﺬا ﺻﺮﻓﺎ ﻛﻨﺘﺮل دﺳﺘﺮﺳﻲ ﺑﻪ داده ﻫﺎ ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮد‪ .‬دﺳﺘﻮرات‬ ‫ﻛﻨﺘﺮل ﻛﻨﻨﺪه دﺳﺘﺮﺳﻲ ﺑﻪ دادهﻫﺎ ﺑﻪ ﺷﺮح زﻳﺮ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫•‬ ‫•‬

‫‪1‬‬

‫دﺳﺘﻮر اﻋﻄﺎ اﺧﺘﻴﺎرات‬ ‫‪2‬‬

‫دﺳﺘﻮر ﻟﻐﻮ اﺧﺘﻴﺎرات‬

‫‪ 1- 9‬دﺳﺘﻮر اﻋﻄﺎ اﺧﺘﻴﺎرات‬ ‫ﺑﺮاي اﻋﻄﺎ اﻣﺘﻴﺎز از دﺳﺘﻮر‬

‫‪GRANT‬‬

‫اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد‪ .‬ﺷﻜﻞ ﻛﻠﻲ اﻳﻦ دﺳﺘﻮر ﺑﻪ ﺷﺮح‬

‫زﻳﺮ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫‪GRANT Privileges | ALL Privileges‬‬ ‫‪ON Object‬‬ ‫;]‪TO Users [WITH GRANT OPTION‬‬

‫در ﻗﺴﻤﺖ ‪ Privileges‬از ﻳﻜﻲ ﻳﺎ ﺗﺮﻛﻴﺒﻲ از ﻛﻠﻤﺎت زﻳﺮ اﺳﺘﻔﺎده ﻣﻲ ﮔﺮدد‪:‬‬ ‫‪INSERT‬‬ ‫‪DELETE‬‬ ‫‪UPDATE‬‬ ‫‪SELECT‬‬

‫در ﻗﺴﻤﺖ‬

‫‪Object‬‬

‫ﻳﻜﻲ از اﺷﻴﺎء ﻣﻮﺟﻮد در‬

‫‪Schema‬‬

‫ﻳﻚ ﻛﺎرﺑﺮ اﻧﺘﺨﺎب ﺷﺪه و در‬

‫ﻗﺴﻤﺖ ‪ 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‬‬

‫‪186‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪ 2- 9‬دﺳﺘﻮر ﻟﻐﻮ اﺧﺘﻴﺎرات‬ ‫ﺑﺮاي ﻟﻐﻮ اﻣﺘﻴﺎز از دﺳﺘﻮر‬

‫‪REVOKE‬‬

‫اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد‪ .‬ﺷﻜﻞ ﻛﻠﻲ اﻳﻦ دﺳﺘﻮر ﺑﻪ ﺷﺮح‬

‫زﻳﺮ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫‪REVOKE Privileges | ALL Privileges‬‬ ‫‪ON Object‬‬ ‫‪FROM Users‬‬

‫در ﻗﺴﻤﺖ ‪ Privileges‬از ﻳﻜﻲ ﻳﺎ ﺗﺮﻛﻴﺒﻲ از ﻛﻠﻤﺎت زﻳﺮ اﺳﺘﻔﺎده ﻣﻲ ﮔﺮدد‪:‬‬ ‫‪INSERT‬‬ ‫‪DELETE‬‬ ‫‪UPDATE‬‬ ‫‪SELECT‬‬

‫در ﻗﺴﻤﺖ‬ ‫ﻗﺴﻤﺖ‬

‫ﻳﻜﻲ از اﺷﻴﺎء ﻣﻮﺟﻮد در‬

‫‪Object‬‬

‫‪Users‬‬

‫‪Schema‬‬

‫ﻳﻚ ﻛﺎرﺑﺮ اﻧﺘﺨﺎب ﺷﺪه و در‬

‫ﻧﺎم ﻳﻜﻲ از ﻛﺎرﺑﺮان ﭘﺎﻳﮕﺎه داده اﻧﺘﺨﺎب ﻣﻲ ﮔﺮدد‪ .‬ﺑﺮاي درك ﺑﻬﺘﺮ‬

‫ﻣﻮﺿﻮع ﺑﻪ ﻋﺒﺎرات زﻳﺮ ﺗﻮﺟﻪ ﻛﻨﻴﺪ‪:‬‬ ‫‪Revoke select‬‬ ‫‪On DEPT‬‬ ‫;‪FROM ALI‬‬

‫‪ -10‬اﻣﻜﺎﻧﺎت و وﻳﮋﮔﻲﻫﺎي ‪ SQL2‬و‬

‫‪SQL3‬‬

‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﻮﺿﻴﺤﺎت اراﺋﻪ ﺷﺪه در ﺧﺼﻮص زﺑﺎن ‪ ،SQL‬در اداﻣﻪ درﺧﺼﻮص‬ ‫اﻣﻜﺎﻧﺎت و وﻳﮋﮔﻲ ﻫﺎي دو زﺑﺎن اﺳﺘﺎﻧﺪارد‬

‫‪SQL2‬‬

‫و‬

‫‪SQL3‬‬

‫ﺑﻪ اﺧﺘﺼﺎر ﻣﻄﺎﻟﺒﻲ ﺑﻴﺎن‬

‫ﺷﺪه اﺳﺖ‪.‬‬

‫‪ 1- 10‬اﻣﻜﺎﻧﺎت‬ ‫اﻳﻦ ﻧﺴﺨﻪ از‬

‫‪SQL2‬‬

‫‪SQL‬‬

‫در ﺳﺎل ‪ 1992‬ﻣﻴﻼدي ﺑﻪ ﻋﻨﻮان‬

‫‪SQL‬‬

‫اﻳﻦ ﻧﺴﺨﻪ در واﻗﻊ ﻧﺴﺨﻪ ﺗﺼﺤﻴﺢ ﺷﺪه و ﻛﺎﻣﻠﺘﺮ ﻧﺴﺨﻪ‬ ‫اﻣﻜﺎﻧﺎﺗﻲ ﺑﻪ ﻧﺴﺨﻪ‬

‫‪SQL1‬‬

‫اﺳﺘﺎﻧﺪارد ﻣﻌﺮﻓﻲ ﮔﺮدﻳﺪ‪.‬‬

‫‪SQL1‬‬

‫اﻓﺰوده ﺷﺪه و ﻳﺎ ﺑﻌﻀﻲ از دﺳﺘﻮرات‬

‫در اداﻣﻪ ﺗﻐﻴﻴﺮات اﻋﻤﺎل ﺷﺪه ﺑﻪ اﺧﺘﺼﺎر آﻣﺪه اﺳﺖ‪:‬‬

‫ﺑﻮد‪ .‬در اﻳﻦ دﺳﺘﻮر‬

‫‪SQL1‬‬

‫ﻛﺎﻣﻞ ﺗﺮ ﺷﺪﻧﺪ‪.‬‬

‫آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪاي ‪187 SQL‬‬ ‫•‬

‫اﻓﺰودن دﺳﺘﻮرات ﻣﺮﺑﻮط ﺑﻪ اﻳﺠﺎد‪ ،‬اﺻﻼًح و ﺣﺬف‬

‫•‬

‫ﺗﻜﻤﻴﻞ دﺳﺘﻮرات ﻣﺮﺑﻮط ﺑﻪ اﻳﺠﺎد و ﺣﺬف ﺟﺪول‬

‫•‬

‫اﻓﺰودن دﺳﺘﻮر اﺻﻼًح ﺟﺪول‬

‫•‬

‫اﻓﺰودن دﺳﺘﻮر ﺗﻌﺮﻳﻒ ﺟﺪول ﻣﻮﻗﺖ‬

‫•‬

‫اﻣﻜﺎن ﻧﻮﺷﺘﻦ ‪.Select‬از ﻳﻚ ‪ Select‬دﻳﮕﺮ‬

‫•‬

‫اﻣﻜﺎن ﻧﻮﺷﺘﻦ ‪ Select‬ﺑﻌﺪ از‬

‫•‬

‫ﺗﻜﻤﻴﻞ دﺳﺘﻮر‬

‫•‬

‫اﺻﻼًح و ﺗﻜﻤﻴﻞ ﻋﻤﻠﮕﺮﻫﺎي ﺧﺎص ﻣﺎﻧﻨﺪ ﻓﺮااﺟﺘﻤﺎع‪ ،‬اﺳﻜﺎﻟﺮ و‪...‬‬

‫•‬

‫اﻓﺰودن اﻣﻜﺎﻧﺎت ﺟﺎﻣﻌﻴﺘﻲ و اﻳﻤﻨﻲ و‪...‬‬

‫‪ 2-10‬اﻣﻜﺎﻧﺎت‬ ‫اﻳﻦ ﻧﺴﺨﻪ از‬

‫‪Domain‬‬

‫‪WHERE‬‬

‫‪JOIN‬‬

‫‪SQL3‬‬ ‫‪SQL‬‬

‫ﺑﺮاي ﻣﺤﻴﻂ ﻫﺎي‬

‫‪ORDBMS‬‬

‫ﭘﮋوﻫﺸﮕﺮان ﺑﻪ اﻳﻦ ﻧﺘﻴﺠﻪ رﺳﻴﺪﻧﺪ ﻛﻪ ﺗﻜﻨﻮﻟﻮژي ﻫﺎي‬

‫‪1‬‬

‫ﺗﻮﻟﻴﺪ ﺷﺪه اﺳﺖ‪ .‬در واﻗﻊ‬

‫‪RDBMS‬‬

‫و‬

‫‪OODBMS‬‬

‫ﻫﻴﭽﻴﻚ‬

‫ﺑﻪ ﺗﻨﻬﺎﻳﻲ ﻛﺎﻣﻞ ﻧﺒﻮده و ﺻﺮﻓﺎ ﺗﺮﻛﻴﺐ اﻳﻦ دو ﺗﻜﻨﻮﻟﻮژي ﭘﺎﺳﺨﮕﻮي ﻧﻴﺎزﻫﺎي آﺗﻲ‬ ‫ﺧﻮاﻫﺪ ﺑﻮد‪ .‬ﻟﺬا ﺗﺼﻤﻴﻢ ﮔﺮﻓﺘﻪ ﺷﺪ ﻧﺴﺨﻪ اي از‬

‫‪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‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

188

‫ﺗﻤﺮﻳﻨﺎت‬ ‫ راﺑﻄﻪ ﻫﺎي زﻳﺮ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‬:1 ‫ﺗﻤﺮﻳﻦ‬ Student (SID, Name, Major, Gradelevel, Age) Class (Name, Time, Room) Enrollment (Student Number, Class Name, Polition Number) Junior (Snum, Name, Major) Honor-Student (Number, Name, Interset) Facuity (FID, Name, Department) STUDENT SID 100 150 200 250 300 350 400 450

Name

J P B G B RU R J

Enrollment Student Num 100 150 200 250 300

Major

Hestory Acount Math Hestory Acount Math Acount Hestory

Class Name

BD445 BA200 BD445 CS250 CS150

Gradelevel G S G S S J F S

Polition Num 1 1 2 1 1

Age 21 19 50 50 41 20 18 24

189 SQL ‫آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪاي‬ 350 400 450

BA200 BF410 CS250

2 1 2

Class Name

BA200 BD445 BF410 CS150 CS250

Time F9 F3 F8 F3 F12

Room 110 213 213 314 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 Count (*) FROM Student SELECT Count (DISTINCT Major) FROM Student SELECT Major, Count(*) FROM Student Order By Major SELECT Major, Count(*) FROM Student GROUP By Major HAVING Count (*) > 2 SELECT Major, AVG(Age) FROM Student WHERE Gradelevel = 'S' GROUP By Major HAVING COUNT (*) > 1

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

190

SELECT Name FROM Student WHERE SID IN (SELECT Student Number FROM Enrollment WHERE Class Name = '445' )

:2 ‫ﺗﻤﺮﻳﻦ‬ ‫ ﺑﺮ‬، ‫ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻋﺮﺿﻪ ﻛﻨﻨﺪﮔﺎن ﻗﻄﻌﺎت و ﭘﺮوژهﻫﺎ ﺑﻪ ﺷﺮح زﻳﺮ ﺗﻨﻈﻴﻢ ﺷﺪه اﺳﺖ‬ ‫اﺳﺎس آﻧﻬﺎ ﺑﻪ ﺳﻮاﻻت ﻣﻄﺮح ﺷﺪه ﭘﺎﺳﺦ دﻫﻴﺪ ؟‬ S { S# , SNAME , STATUS , CITY } PRIMARY KEY { S# } P { P# , PNAME , COLOR , WEIGHT , CITY } PRIMARY KEY { P# } J { J# , JNAME , CITY } PRIMARY KEY { J# } SPJ { S# , P# , J# , QTY } PRIMARY KEY { S# , P# , J# } FOREIGN KEY { S# } REFRENCES S FOREIGN KEY { P# } REFRENCES P FOREIGN KEY { J# } REFRENCES J

‫ﺷﻤﺎره ﻗﻄﻌﺎﺗﻲ را ﻣﺸﺨﺺ ﻛﻨﻴﺪ ﻛﻪ ﺑﻴﺶ از ﻳﻚ ﻋﺮﺿﻪ ﻛﻨﻨﺪه آﻧﻬﺎ را ﻋﺮﺿﻪ ﻣﻲ ﻛﻨﻨﺪ؟‬ ‫ را ﻋﺮﺿﻪ ﻧﻤﻲ ﻛﻨﻨﺪ ؟‬P2 ‫اﺳﺎﻣﻲ ﻋﺮﺿﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ ﻛﻪ ﻗﻄﻌﻪ‬

‫آﺷﻨﺎﻳﻲ ﺑﺎ زﺑﺎن راﺑﻄﻪاي ‪191 SQL‬‬

‫ﻓﺼﻞ ‪۹‬‬ ‫ﻧﺮﻣﺎﻝ ﺳﺎﺯﻱ‬ ‫ﻫﺪف ﻛﻠﻲ‬ ‫در اﻳﻦ ﻓﺼﻞ اﺑﺘﺪا ﺗﻌﺮﻳﻔﻲ از راﺑﻄﻪ ﻧﺮﻣﺎل را اراﺋﻪ ﻛﺮده و ﻣﻌﺎﻳﺐ و ﻣﺰاﻳﺎي راﺑﻄﻪ ﻫﺎي‬ ‫ﻧﺮﻣﺎل و ﻏﻴﺮﻧﺮﻣﺎل را ﺑﻴﺎن ﺧﻮاﻫﻴﻢ ﻛﺮد‪ .‬ﺳﭙﺲ ﺑﺎ ﻣﻔﻬﻮم ﺗﺌﻮري واﺑﺴﺘﮕﻲ و در اداﻣﻪ‬ ‫ﻣﻔﺎﻫﻴﻢ ﺗﺌﻮري واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ‪ ،‬واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ و ﺣﺎﻟﺘﻬﺎي واﺑﺴﺘﮕﻲ آﺷﻨﺎ ﺧﻮاﻫﻴﻢ‬ ‫ﺷﺪ‪ .‬در اداﻣﻪ ﻣﻔﻬﻮم ﻧﺮﻣﺎل ﺳﺎزي و اﻧﻮاع ﺻﻮرت ﻫﺎي ﻧﺮﻣﺎل راﺑﻄﻪ ﻫﺎ را ﺑﻪ ﺗﻔﺼﻴﻞ‬ ‫ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻴﻢ داد‪.‬‬

‫ﻫﺪف رﻓﺘﺎري‬ ‫دراﻳﻦ ﻓﺼﻞ ﻋﻨﺎوﻳﻦ زﻳﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ‪:‬‬ ‫•‬

‫ﺗﻌﺮﻳﻒ راﺑﻄﻪ ﻧﺮﻣﺎل‬

‫•‬

‫ﻣﺰاﻳﺎ و ﻣﻌﺎﻳﺐ راﺑﻄﻪﻫﺎي ﻧﺮﻣﺎل‬

‫•‬

‫ﻣﺰاﻳﺎ و ﻣﻌﺎﻳﺐ راﺑﻄﻪﻫﺎي ﻏﻴﺮ ﻧﺮﻣﺎل‬

‫•‬

‫ﻣﻔﺎﻫﻴﻢ ﺗﺌﻮري واﺑﺴﺘﮕﻲ و اﻧﻮاع واﺑﺴﺘﮕﻲﻫﺎ‬

‫•‬

‫ﺣﺎﻟﺘﻬﺎي واﺑﺴﺘﮕﻲ‬

‫•‬

‫ﻧﻤﻮدار واﺑﺴﺘﮕﻲﻫﺎي ﺗﺎﺑﻌﻲ‬

‫•‬

‫ﺻﻮرتﻫﺎي ﻧﺮﻣﺎل‬

‫•‬

‫ﻓﺮاﻳﻨﺪ ﻧﺮﻣﺎل ﺳﺎزي‬

‫‪194‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪ -1‬ﺗﻌﺮﻳﻒ راﺑﻄﻪ ﻧﺮﻣﺎل‬ ‫ﻳﻜﻲ از ﻣﻬﻢ ﺗﺮﻳﻦ ﻣﺒﺎﺣﺚ در ﭘﺎﻳﮕﺎه ﻫﺎي داده راﺑﻄﻪ اي‪ ،‬ﺑﺤﺚ ﻧﺮﻣﺎل ﺳﺎزي راﺑﻄﻪ ﻫﺎ‬ ‫اﺳﺖ‪ .‬ﺣﺎل اﻳﻦ ﺳﺌﻮال ﺑﻪ ذﻫﻦ ﻣﻲ رﺳﺪ ﻛﻪ اﺻﻮﻻ راﺑﻄﻪ ﻧﺮﻣﺎل ﭼﻴﺴﺖ‪ .‬در اداﻣﻪ‬ ‫ﺗﻌﺎرﻳﻔﻲ از راﺑﻄﻪ ﻧﺮﻣﺎل را اراﺋﻪ ﻣﻲ ﻛﻨﻴﻢ‪.‬‬ ‫•‬

‫ﺗﻌﺮﻳﻒ اول‪ :‬راﺑﻄﻪ ﻧﺮﻣﺎل راﺑﻄﻪاي اﺳﺖ ﻛﻪ ﻣﻘﺎدﻳﺮ ﺗﻤﺎم ﺻﻔﺎﺗﺶ ﺗﺠﺰﻳﻪ ﻧﺸﺪﻧﻲ‬ ‫ﺑﺎﺷﻨﺪ‪.‬‬

‫•‬

‫ﺗﻌﺮﻳﻒ دوم‪ :‬راﺑﻄﻪ ﻧﺮﻣﺎل راﺑﻄﻪاي اﺳﺖ ﻛﻪ ﻣﻘﺎدﻳﺮ ﻫﻴﭽﻴﻚ از ﻣﻴﺪاﻧﻬﺎﻳﺶ‪ ،‬ﻳﻚ‬ ‫ﻣﻘﺪار راﺑﻄﻪاي ﺑﺎ ﻛﺎردﻳﻨﺎﻟﻴﺘﻲ ﺑﺰرﮔﺘﺮ از ﻳﻚ ﻧﺒﺎﺷﺪ‪.‬‬

‫در ﺗﻮﺻﻴﻒ ﺗﻌﺎرﻳﻒ ﺑﺎﻻ ﻣﻲ ﺗﻮان ﮔﻔﺖ ﻳﻚ ﻣﻘﺪار ﺳﺎده ﺗﺠﺰﻳﻪ ﻧﺸﺪﻧﻲ را ﻣﻲ ﺗﻮان ﻳﻚ‬ ‫ﻣﻘﺪار راﺑﻄﻪ اي از درﺟﻪ ﻳﻚ و ﻛﺎردﻳﻨﺎﻟﻴﺘﻲ ﻳﻚ داﻧﺴﺖ‪ .‬ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ در ﺑﺪﻧﻪ راﺑﻄﻪ‬ ‫ﻧﺮﻣﺎل‪ ،‬ﺻﻔﺖ ﺳﺎده ﻳﺎ ﻣﺮﻛﺐ ﭼﻨﺪ ﻣﻘﺪاري وﺟﻮد ﻧﺪارد و اﺻﻄﻼﺣﺎ ﻣﻲ ﮔﻮﻳﻴﻢ راﺑﻄﻪ‬ ‫ﻣﺴﻄﺢ اﺳﺖ‪ .‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﻌﺎرﻳﻒ ﺑﺎﻻ راﺑﻄﻪ ﻏﻴﺮ ﻧﺮﻣﺎل را ﻣﻲ ﺗﻮان ﺑﺼﻮرت زﻳﺮ‬ ‫ﺗﻮﺻﻴﻒ ﻛﺮد‪:‬‬ ‫راﺑﻄﻪ اي ﻛﻪ در آن ﻣﻘﺎدﻳﺮ ﺣﺪاﻗﻞ ﻳﻚ ﺻﻔﺖ‪ ،‬ﺧﻮد ﻣﻘﺎدﻳﺮ راﺑﻄﻪ اي ﺑﺎﺷﻨﺪ را‬ ‫راﺑﻄﻪ ﻏﻴﺮ ﻧﺮﻣﺎل ﮔﻮﻳﻴﻢ‪ .‬ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ راﺑﻄﻪ اي ﻛﻪ ﺣﺪاﻗﻞ ﻳﻚ ﺻﻔﺖ ﺳﺎده‬ ‫ﻳﺎ ﻣﺮﻛﺐ ﭼﻨﺪ ﻣﻘﺪاري داﺷﺘﻪ ﺑﺎﺷﺪ‪ ،‬راﺑﻄﻪ ﻏﻴﺮ ﻧﺮﻣﺎل اﺳﺖ‪.‬‬

‫‪ 1-1‬دﻻﻳﻞ ﻟﺰوم ﻧﺮﻣﺎل ﺑﻮدن راﺑﻄﻪ‬ ‫ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﻲ داﻧﻴﺪ ﻧﺮﻣﺎل ﺑﻮدن راﺑﻄﻪ دﻟﻴﻞ رﻳﺎﺿﻲ ﻧﺪارد و ﻣﻲ ﺗﻮان ﮔﻔﺖ ﺻﺮﻓﺎ‬ ‫ﺟﻨﺒﻪ ﺳﺎدﮔﻲ آن ﻣﻄﺮح اﺳﺖ‪ .‬ﺳﺎدﮔﻲ ﻋﻨﺼﺮ اﺳﺎﺳﻲ ﺳﺎﺧﺘﺎر راﺑﻄﻪ اي ﺧﻮد‬ ‫ﺳﺎدﮔﻲﻫﺎي زﻳﺮ را در ﺑﺮ دارد‪:‬‬ ‫•‬

‫ﺳﺎدﮔﻲ در ﻧﻤﺎﻳﺶ ﻇﺎﻫﺮي راﺑﻄﻪ‬

‫•‬

‫ﺳﺎدﮔﻲ دﺳﺘﻮرات زﺑﺎن‬

‫•‬

‫ﺳﺎدﮔﻲ اﺟﺮاي ﻋﻤﻠﻴﺎت در ﭘﺎﻳﮕﺎهداده‬

‫‪ 2-1‬ﻣﻌﺎﻳﺐ راﺑﻄﻪ ﻧﺮﻣﺎل‬ ‫راﺑﻄﻪ ﻧﺮﻣﺎل ﻣﻌﺎﻳﺒﻲ دارد ﻛﻪ ﺑﻪ ﺷﺮح ذﻳﻞ آﻣﺪه اﺳﺖ‪:‬‬

‫ﻧﺮﻣﺎل ﺳﺎزي ‪195‬‬ ‫•‬

‫ﺑﺮوز ﭘﺪﻳﺪه اﻓﺰوﻧﮕﻲ ﻛﻪ ﻣﻲﺗﻮاﻧﺪ ﻓﻴﺰﻳﻜﻲ ﻫﻢ ﺑﺎﺷﺪ‪.‬‬

‫•‬

‫ﻃﻮﻻﻧﻲ ﺗﺮ ﺷﺪن ﻛﻠﻴﺪ راﺑﻄﻪ‬

‫•‬

‫ﻋﺪم اﻣﻜﺎن ﻧﻤﺎﻳﺶ دادهﻫﺎي ﭘﻴﭽﻴﺪه‬

‫•‬

‫دﺷﻮاري در ﻧﻤﺎﻳﺶ ﻃﺒﻴﻌﻲ ﻣﻔﻬﻮم ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ‬

‫•‬

‫دﺷﻮاري در ﻧﻤﺎﻳﺶ ﻣﻔﻬﻮم وراﺛﺖ‬

‫‪ 3-1‬ﻣﺰاﻳﺎ و ﻣﻌﺎﻳﺐ راﺑﻄﻪ ﻏﻴﺮ ﻧﺮﻣﺎل‬ ‫راﺑﻄﻪ ﻏﻴﺮ ﻧﺮﻣﺎل ﻧﻴﺰ داراي ﻣﺰاﻳﺎﻳﻲ ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﺪ‬ ‫•‬

‫ﻛﺎﻫﺶ ﻣﻴﺰان اﻓﺰوﻧﮕﻲ‬

‫•‬

‫ﻛﻮﺗﺎه ﺷﺪن ﻛﻠﻴﺪ‬

‫•‬

‫اﻣﻜﺎن ﻧﻤﺎﻳﺶ دادهﻫﺎي ﭘﻴﭽﻴﺪه‬

‫•‬

‫دﺷﻮاري ﻛﻤﺘﺮ در ﻧﻤﺎﻳﺶ ﻣﻔﻬﻮم ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ‬

‫•‬

‫دﺷﻮاري ﻛﻤﺘﺮ در ﻧﻤﺎﻳﺶ ﻣﻔﻬﻮم وراﺛﺖ‬

‫•‬

‫اﻓﺰاﻳﺶ ﺳﺮﻋﺖ ﻋﻤﻠﻴﺎت )در ﺑﻌﻀﻲ ﻣﻮارد( در ﺑﺎزﻳﺎﺑﻲ دادهﻫﺎ‬

‫ﺑﺪﻳﻬﻲ اﺳﺖ ﻛﻪ در ﻛﻨﺎر اﻳﻦ ﻣﺰاﻳﺎ‪ ،‬راﺑﻄﻪ ﻏﻴﺮ ﻧﺮﻣﺎل ﺧﻮد ﻧﻴﺰ داراي ﻣﻌﺎﻳﺒﻲ ﻣﻲ ﺑﺎﺷﺪ‬ ‫ﻛﻪ اﻳﻦ ﻣﻌﺎﻳﺐ در ذﻳﻞ آﻣﺪه اﺳﺖ‪:‬‬ ‫•‬

‫ﭘﻴﭽﻴﺪﮔﻲ در ﻧﻤﺎﻳﺶ دادهﻫﺎ‬

‫•‬

‫ﭘﻴﭽﻴﺪﮔﻲ در ﻧﮕﺎرش دﺳﺘﻮرات‬

‫•‬

‫ﭘﻴﭽﻴﺪﮔﻲ در اﺟﺮاي دﺳﺘﻮرات‬

‫‪ -2‬ﻣﻔﺎﻫﻴﻢ ﺗﺌﻮري واﺑﺴﺘﮕﻲ‬

‫‪1‬‬

‫در ﺑﺤﺚ ﻧﺮﻣﺎل ﺳﺎزي راﺑﻄﻪﻫﺎ‪ ،‬ﺑﻪ ﻣﻔﺎﻫﻴﻢ ﺗﺌﻮري واﺑﺴﺘﮕﻲ ﻧﻴﺎز دارﻳﻢ‪ .‬در اﻳﻦ ﻗﺴﻤﺖ‬ ‫ﺑﺎ ﺑﺮﺧﻲ ﻣﻔﺎﻫﻴﻢ واﺑﺴﺘﮕﻲ آﺷﻨﺎ ﻣﻲ ﺷﻮﻳﻢ‪.‬‬

‫‪1. D e pe n d e n c y‬‬

‫‪196‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪ 1-2‬اﻧﻮاع واﺑﺴﺘﮕﻲﻫﺎ‬ ‫واﺑﺴﺘﮕﻲ داراي ﺣﺎﻻت ﻣﺨﺘﻠﻔﻲ اﺳﺖ ﻛﻪ در ذﻳﻞ آﻣﺪه اﺳﺖ‪:‬‬ ‫‪1‬‬

‫•‬

‫واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ‬

‫•‬

‫واﺑﺴﺘﮕﻲ ﭘﻴﻮﻧﺪي‬

‫•‬

‫واﺑﺴﺘﮕﻲ ﭼﻨﺪ ﻣﻘﺪاري‬

‫‪2‬‬ ‫‪3‬‬

‫‪ 1-1-2‬واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ‬ ‫ﻣﻬﻤﺘﺮﻳﻦ ﻧﻮع واﺑﺴﺘﮕﻲ واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ اﺳﺖ‪ .‬در ﺣﺎﻟﺖ ﻛﻠﻲ واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ را‬ ‫ﻣﻲ ﺗﻮان اﻳﻨﮕﻮﻧﻪ ﺗﻮﺻﻴﻒ ﻛﺮد‪:‬‬ ‫اﮔﺮ‬

‫‪A‬‬

‫و‬

‫‪B‬‬

‫دو ﺻﻔﺖ در ﺷﻤﺎي‬

‫‪R‬‬

‫ﺑﺎﺷﻨﺪ ‪ ،‬آﻧﮕﺎه واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ‬

‫ﺑﺮﻗﺮار اﺳﺖ ﺑﻪ ﺷﺮﻃﻲ ﻛﻪ ﺑﺮاي ﺗﻤﺎﻣﻲ راﺑﻄﻪ ﻫﺎ در‬

‫‪R‬‬

‫‪A → B‬‬

‫ﺑﻪ ازاي ﻫﺮ ﻣﻘﺪار‬

‫‪A‬‬

‫ﻓﻘﻂ ﻳﻚ ﻣﻘﺪار ‪ B‬وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬ ‫واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ را ﻣﻲ ﺗﻮان ﺑﺪﻳﻦ ﺻﻮرت ﻧﻴﺰ ﺗﻮﺻﻴﻒ ﻛﺮد‪:‬‬ ‫ﻓﺮض ﻣﻲ ﻛﻨﻴﻢ ﻛﻪ ‪ R‬ﻳﻚ ﻣﺘﻐﻴﺮ راﺑﻄﻪ اي و ‪ A‬و ‪ B‬دو زﻳﺮ ﻣﺠﻤﻮﻋﻪ دﻟﺨﻮاه از‬ ‫ﻣﺠﻤﻮﻋﻪ ﻋﻨﻮان‬

‫‪R‬‬

‫ﻳﻌﻨﻲ‬

‫ﭼﻨﻴﻦ ﻧﻤﺎﻳﺶ ﻣﻲ دﻫﻴﻢ‪:‬‬ ‫راﺑﻄﻪ اي‬

‫‪R‬‬

‫‪H‬‬

‫ﺑﺎﺷﻨﺪ‪ .‬ﻣﻲ ﮔﻮﻳﻴﻢ‬

‫‪A→ B‬‬

‫‪ ،‬ﺑﻪ ﻫﺮ ﻣﻘﺪار‬

‫‪A‬‬

‫‪B‬‬

‫ﺑﺎ‬

‫‪A‬‬

‫واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ دارد و‬

‫اﮔﺮ و ﻓﻘﻂ اﮔﺮ در ﻫﺮ ﻣﻘﺪار ﻣﻤﻜﻦ از ﻣﺘﻐﻴﺮ‬

‫ﻓﻘﻂ ﻳﻚ ﻣﻘﺪار‬

‫‪B‬‬

‫ﻣﺘﻨﺎﻇﺮ ﺑﺎﺷﺪ‪ .‬ﺑﻪ ﺑﻴﺎن دﻳﮕﺮ‬

‫اﮔﺮ ‪ t1‬و ‪ t2‬دو ﺗﺎﭘﻞ ﻣﺘﻤﺎﻳﺰ از ‪ R‬ﺑﺎﺷﻨﺪ‪ ،‬در اﻳﻨﺼﻮرت‬ ‫‪If t1.A = t2.A then t1.B = t2.B‬‬

‫‪ 2-1-2‬واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﻛﺎﻣﻞ‬ ‫‪A→B‬‬

‫را واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﻛﺎﻣﻞ‬

‫‪4‬‬

‫ﮔﻮﻳﻨﺪ اﮔﺮ‬

‫‪B‬‬

‫ﺑﻪ ﻫﻴﭻ زﻳﺮﻣﺠﻤﻮﻋﻪ از‬

‫‪A‬‬

‫واﺑﺴﺘﻪ‬

‫ﻧﺒﺎﺷﺪ‪ .‬واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ از وﻳﮋﮔﻲﻫﺎي ﻣﻌﻨﺎﻳﻲ ﺻﻔﺎت اﺳﺖ و ﺑﻪ ﺑﻴﺎن دﻳﮕﺮ ﻫﺮ‬ ‫‪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‬‬

‫ﻧﺮﻣﺎل ﺳﺎزي ‪197‬‬

‫واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﺑﻴﻦ دو ﺻﻔﺖ‪ ،‬ﻧﻤﺎﻳﺸﮕﺮ ﻳﻚ ﻗﺎﻋﺪه ﺳﻤﻨﺘﻴﻚ در ﺟﻬﺎن واﻗﻌﻲ اﺳﺖ‪.‬‬ ‫ﻣﺜﻼ وﻗﺘﻲ ﻣﻲ ﮔﻮﻳﻴﻢ‪:‬‬ ‫‪STID→STMJR‬‬

‫ﻣﻌﻨﺎﻳﺶ اﻳﻦ اﺳﺖ ﻛﻪ ﻳﻚ داﻧﺸﺠﻮ ﻓﻘﻂ درﻳﻚ رﺷﺘﻪ ﺗﺤﺼﻴﻞ ﻣﻲ ﻛﻨﺪ‪.‬‬

‫‪ 2-2‬ﺣﺎﻟﺘﻬﺎي واﺑﺴﺘﮕﻲ‬ ‫واﺑﺴﺘﮕﻲ داراي ﺣﺎﻻت ﻣﺨﺘﻠﻔﻲ ﻣﻲ ﺑﺎﺷﺪ ﻛﻪ در ذﻳﻞ ﻧﺎم ﺑﺮده ﺷﺪه اﻧﺪ‪:‬‬ ‫•‬

‫واﺑﺴﺘﮕﻲ ﺑﻪ ﻛﻠﻴﺪ‬

‫•‬

‫واﺑﺴﺘﮕﻲ ﺑﻪ ﺑﺨﺸﻲ از ﻛﻠﻴﺪ‬

‫•‬

‫واﺑﺴﺘﮕﻲ ﻏﻴﺮﻛﻠﻴﺪ ﺑﻪ ﻏﻴﺮﻛﻠﻴﺪ‬

‫•‬

‫واﺑﺴﺘﮕﻲ ﻣﻌﻜﻮس‬

‫•‬

‫ﻛﻠﻴﺪ ﻳﺎ ﺑﺨﺸﻲ از آن ﺑﻪ ﺻﻔﺖ ﻳﺎ ﺻﻔﺘﻬﺎي دﻳﮕﺮ واﺑﺴﺘﻪ ﺑﺎﺷﺪ‬

‫‪ 3-2‬ﺗﻌﺮﻳﻒ ‪﹢‬‬ ‫اﮔﺮ‬

‫‪F‬‬

‫‪F‬‬

‫ﻳﻚ ﻣﺠﻤﻮﻋﻪ از واﺑﺴﺘﮕﻲ ﻫﺎي ﺗﺎﺑﻌﻲ ﺑﺎﺷﺪ ‪ ،‬آﻧﮕﺎه ﻣﺠﻤﻮﻋﻪ ﺗﻤﺎم واﺑﺴﺘﮕﻲ ﻫﺎي‬

‫ﺗﺎﺑﻌﻲ ﻗﺎﺑﻞ اﺳﺘﺨﺮاج از آﻧﺮا ﻣﺠﻤﻮﻋﻪ ﭘﻮﺷﺸﻲ ‪ F‬ﻣﻲ ﻧﺎﻣﻨﺪ و ﺑﺎ ‪ F﹢‬ﻧﺸﺎن ﻣﻲ دﻫﻨﺪ‪.‬‬

‫روش ﻳﺎﻓﺘﻦ‪:F ﹢‬‬ ‫ﺑﺮاي ﻳﺎﻓﺘﻦ ‪ F+‬ﻋﻤﻠﻴﺎت زﻳﺮ را ﺑﻪ ﺗﺮﺗﻴﺐ اﻧﺠﺎم ﻣﻲ دﻫﻴﻢ‪:‬‬ ‫•‬

‫ﺑﺎزﺗﺎب‬

‫•‬

‫اﻓﺰاﻳﺸﻲ‬

‫•‬

‫اﻧﺘﻘﺎل‬

‫‪IF B ⊆ A THEN A → B‬‬ ‫‪IF A → B , C THEN AC → BC‬‬ ‫)) ﺗﻮﺟﻪ‪ C :‬ﺻﻔﺖ ﻣﻲﺑﺎﺷﺪ ((‬ ‫‪IF A → B , B → C THEN A → C‬‬

‫ﭼﻮن اﻋﻤﺎل اﻳﻦ ﻗﻮاﻋﺪ ﻣﺸﻜﻞ ﻣﻲ ﺑﺎﺷﺪ ‪ ،‬آﻧﻬﺎ را ﺑﻪ ﺻﻮرت ﺳﺎده ﺗﺮ ﺑﻴﺎن ﻣﻲﻛﻨﻴﻢ‪.‬‬

‫‪198‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫اﺟﺘﻤﺎع‬

‫•‬

‫ﺗﺠﺰﻳﻪ‬

‫•‬

‫ﺗﺮﻛﻴﺐ‬

‫‪IF A → B AND A → C THEN A → BC‬‬ ‫‪IF A → BC THEN A → B AND A → C‬‬ ‫‪IF A → B , C → D THEN AC → BD‬‬

‫ﺑﺎ اﻋﻤﺎل اﻳﻦ ﻗﻮاﻋﺪ ﺳﻌﻲ ﻣﻲ ﻛﻨﻴﻢ واﺑﺴﺘﮕﻲ ﻫﺎي ﺗﻜﺮاري را ﺣﺬف ﻧﻤﻮده و ﺑﻪ‬ ‫ﻣﺠﻤﻮﻋﻪ واﺑﺴﺘﮕﻲ ﻛﻤﻴﻨﻪ ﻳﺎ ﺑﻬﻴﻨﻪ ﺑﺮﺳﻴﻢ‪.‬‬ ‫ﻣﺜﺎل‪:‬‬ ‫} ‪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‬‬

‫‪ 4-2‬ﻧﻤﻮدار واﺑﺴﺘﮕﻲﻫﺎي ﺗﺎﺑﻌﻲ‬

‫‪1‬‬

‫ﺟﻬﺖ درك ﺑﻬﺘﺮ از واﺑﺴﺘﮕﻲﻫﺎ ‪ ،‬ﻧﻤﻮدار واﺑﺴﺘﮕﻲ ﻫﺎي ﺗﺎﺑﻌﻲ را رﺳﻢ ﻣﻲﻛﻨﻴﻢ‪ .‬ﻧﺤﻮه‬ ‫ﻧﻤﺎﻳﺶ ﻧﻤﻮدار واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﺑﺮاي راﺑﻄﻪ‬

‫‪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‬‬

‫ﻧﺮﻣﺎل ﺳﺎزي ‪199‬‬

‫روش اول‬ ‫‪STT‬‬

‫‪STNAME‬‬

‫‪STDEG‬‬ ‫‪STID‬‬ ‫‪STMJR‬‬

‫‪STDEID‬‬

‫روش دوم‬

‫‪STMJR,‬‬

‫)‪STDEID‬‬

‫‪STDEG,‬‬

‫‪STNAME,‬‬

‫‪(STID,‬‬

‫‪STT‬‬

‫‪ -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‬‬

‫‪200‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫ﺻﻮرت ﭘﻨﭽﻢ ﻧﺮﻣﺎل‬

‫‪1‬‬

‫اﻣﺮوزه دو ﻧﻮع دﻳﮕﺮ از ﺻﻮرت ﻫﺎي ﻧﺮﻣﺎل ﺗﻌﺮﻳﻒ ﺷﺪه اﻧﺪ ﻛﻪ اﻟﺒﺘﻪ در ﺷﺮاﻳﻂ ﺑﺴﻴﺎر‬ ‫ﺧﺎص رخ ﻣﻲ دﻫﻨﺪ‪ .‬اﻳﻦ دو ﺻﺮت ﻧﺮﻣﺎل ﻋﺒﺎرﺗﻨﺪ از‪:‬‬ ‫•‬

‫ﺻﻮرت ﻧﺮﻣﺎل ﻣﻴﺪان‪ -‬ﻛﻠﻴﺪي‬

‫•‬

‫ﺻﻮرت ﻧﺮﻣﺎل ﺗﺤﺪﻳﺪ‪ -‬اﺟﺘﻤﺎع‬

‫در اﻳﻨﺠﺎ ﻻزم اﺳﺖ ﺑﻪ ﻧﻜﺎت زﻳﺮ ﺗﻮﺟﻪ ﺷﻮد‪:‬‬ ‫•‬

‫ﭼﻨﺎﻧﭽﻪ راﺑﻄﻪاي در ﻫﺮ ﻳﻚ از ﺣﺎﻻت ﻧﺮﻣﺎل‪ ،‬ﺑﺼﻮرت ﻏﻴﺮﻧﺮﻣﺎل ﺑﺎﺷﺪ‪،‬‬ ‫ﻣﻲﮔﻮﻳﻴﻢ راﺑﻄﻪ در آن ﺳﻄﺢ داراي آﻧﻮﻣﺎﻟﻲ اﺳﺖ‪.‬‬

‫•‬

‫در واﻗﻊ ﻫﺸﺖ ﺻﻮرت ﻧﺮﻣﺎل ﻣﺬﻛﻮر ﻫﺮ ﻳﻚ از ﺳﻄﺢ ﻗﺒﻠﻲ ﺧﻮد ﻧﺮﻣﺎل ﺗﺮ‬ ‫ﻫﺴﺘﻨﺪ )ﺑﻐﻴﺮ از ‪ BCNF‬ﻛﻪ ﺷﺮاﻳﻂ ﺧﺎﺻﻲ دارد(‪.‬‬

‫•‬

‫ﻫﻤﭽﻨﻴﻦ ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ ﺻﻮرتﻫﺎي ‪ BCNF‬و ‪ 4NF‬و ‪ 5NF‬داراي ﺷﺮاﻳﻂ‬ ‫ﺧﺎﺻﻲ ﺑﻮده و ﺗﻘﺮﻳﺒﺎ ﭼﻨﺎﻧﭽﻪ راﺑﻄﻪ در ﻳﻜﻲ از اﻳﻦ ﺳﻪ ﺳﻄﻮح ﻧﺮﻣﺎل ﺑﺎﺷﺪ‪ ،‬در‬ ‫دو ﻣﻮرد دﻳﮕﺮ ﻧﻴﺰ ﻧﺮﻣﺎل ﺧﻮاﻫﺪ ﺑﻮد) اﻳﻦ ﻣﻮﺿﻮع ﻫﻤﻴﺸﮕﻲ ﻧﻴﺴﺖ(‪.‬‬

‫•‬

‫ﺣﺎﻻت ﺑﺎﻻﺗﺮ از‬

‫‪3NF‬‬

‫ﺷﺮاﻳﻂ ﺧﺎﺻﻲ ﻫﺴﺘﻨﺪ ﻛﻪ در ﺧﻴﻠﻲ از ﻣﻮاﻗﻊ اﺻﻼً رخ‬

‫ﻧﻤﻲدﻫﻨﺪ‪ .‬ﻟﺬا ﭼﻨﺎﻧﭽﻪ راﺑﻄﻪاي را ﺗﺎ ﺳﻄﺢ‬

‫‪3NF‬‬

‫ﻧﺮﻣﺎل ﻛﻨﻴﻢ‪ ،‬ﺑﻄﻮر ﻣﻌﻤﻮل‬

‫ﻣﻲﮔﻮﻳﻴﻢ ﻧﺮﻣﺎل ﺳﺎزي را اﻧﺠﺎم دادهاﻳﻢ‪ .‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﻌﺎرﻳﻒ ﺑﺎﻻ ﻣﻲﺗﻮان ﺳﻄﻮح‬ ‫ﻧﺮﻣﺎل ﺳﺎزي را ﺑﺼﻮرت ذﻳﻞ ﻧﺸﺎن داد‪:‬‬ ‫‪DKNF ∁ 5NF ∁ 4NF ∁ BCNF ∁ 3NF ∁ 2NF ∁ 1NF‬‬

‫‪ -4‬ﻓﺮاﻳﻨﺪ ﻧﺮﻣﺎل ﺳﺎزي‬

‫‪2‬‬

‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ داده ﻫﺎي ﻋﻤﻠﻴﺎﺗﻲ و ارﺗﺒﺎط ﺑﻴﻦ ﻣﻮﺟﻮدﻳﺘﻬﺎ‪ ،‬ﻻزم اﺳﺖ ﺗﺎ ﻗﺒﻞ از ﭘﻴﺎده‬ ‫ﺳﺎزي ﺟﺪاول ﻃﺮاﺣﻲ ﺷﺪه‪ ،‬آﻧﻬﺎ را ﻧﺮﻣﺎل ﺳﺎزي ﻧﻤﺎﻳﻴﻢ‪ .‬ﻣﺮاﺣﻞ ﻧﺮﻣﺎل ﺳﺎزي راﺑﻄﻪﻫﺎ‬ ‫ﺑﻪ ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﻨﺪ‪:‬‬

‫‪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‬‬

‫ﻧﺮﻣﺎل ﺳﺎزي ‪201‬‬ ‫•‬

‫ﻣﺮاﺣﻞ ﻧﺮﻣﺎل ﺳﺎزي‬

‫•‬

‫ﻣﺸﺨﺺ ﻛﺮدن ﺟﺪاول‬

‫•‬

‫ﺷﻨﺎﺳﺎﺋﻲ دادهﻫﺎ و ارﺗﺒﺎﻃﺸﺎن‬

‫•‬

‫رﺳﻢ ﻧﻤﻮدار واﺑﺴﺘﮕﻲ‬

‫•‬

‫ﻃﺮاﺣﻲ ﺟﺪاول اوﻟﻴﻪ‬

‫•‬

‫در ﻧﻈﺮ ﮔﺮﻓﺘﻦ واﺑﺴﺘﮕﻲﻫﺎ‬

‫•‬

‫اﻋﻤﺎل ﻓﺮﻣﻬﺎي ﻧﺮﻣﺎل‬

‫در اداﻣﻪ راﺑﻄﻪ ﻫﺎي ﻧﺮﻣﺎل را ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻴﻢ داد‪:‬‬

‫‪ 1-4‬راﺑﻄﻪ‬

‫‪1NF‬‬

‫راﺑﻄﻪ اي ‪1NF‬‬

‫اﺳﺖ ﻛﻪ‪:‬‬

‫•‬

‫ﻫﻤﻪ ﻛﻠﻴﺪﻫﺎي آن ﺗﻌﺮﻳﻒ ﺷﺪه ﺑﺎﺷﺪ‬

‫•‬

‫ﻫﻤﻪ ﺻﻔﺖﻫﺎي آن ﺑﻪ ﻛﻠﻴﺪ اﺻﻠﻲ واﺑﺴﺘﻪ ﺑﺎﺷﻨﺪ‬

‫•‬

‫ﺻﻔﺖﻫﺎي ﺗﺮﻛﻴﺒﻲ ﻧﺪاﺷﺘﻪ ﺑﺎﺷﻴﻢ‬

‫ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ راﺑﻄﻪ اي‬

‫‪1NF‬‬

‫اﺳﺖ اﮔﺮ و ﻓﻘﻂ اﮔﺮ ﻫﺮ ﺻﻔﺖ آن در ﻫﺮ ﺗﺎﭘﻞ‪ ،‬ﺗﻚ‬

‫ﻣﻘﺪاري ﺑﺎﺷﺪ )ﺻﻔﺖ ﭼﻨﺪ ﻣﻘﺪاري ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ(‪.‬‬ ‫ﻣﺜﺎل ‪ :1‬راﺑﻄﻪ‬

‫‪STCOR‬‬

‫را ﻛﻪ در آن‬

‫‪STID‬‬

‫و‬

‫‪COID‬‬

‫ﺗﻮاﻣﺎ ﻛﻠﻴﺪ اﺻﻠﻲ ﻫﺴﺘﻨﺪ را در‬

‫ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪:‬‬ ‫)‪STCOR (STID, COID, STNAME, GRADE, STMJR, STDEID‬‬ ‫‪STNAME‬‬ ‫‪STID‬‬ ‫‪STMJR‬‬

‫‪GRADE‬‬ ‫‪COID‬‬

‫‪STDEID‬‬

‫‪202‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﻣﺜﺎل ‪:2‬‬

‫} ‪CITY , QTY‬‬

‫‪ 2-4‬راﺑﻄﻪ‬

‫‪R = { S# , P# , STATUS ,‬‬

‫‪2NF‬‬

‫راﺑﻄﻪ اي ‪2NF‬‬

‫اﺳﺖ ﻛﻪ‬

‫•‬

‫‪ 1NF‬ﺑﺎﺷﺪ‬

‫•‬

‫ﺻﻔﺖﻫﺎي آن ﺑﻪ زﻳﺮ ﻣﺠﻤﻮﻋﻪﻫﺎي ﻛﻠﻴﺪ اﺻﻠﻲ واﺑﺴﺘﻪ ﻧﺒﺎﺷﺪ‬

‫ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ راﺑﻄﻪ اي‬

‫‪2NF‬‬

‫اﺳﺖ ﻛﻪ اوﻻ‬

‫‪1NF‬‬

‫ﺑﺎﺷﺪ و ﺛﺎﻧﻴﺎ ﺗﻤﺎم ﺻﻔﺎت ﻏﻴﺮ ﻛﻠﻴﺪ ﺑﺎ‬

‫ﻛﻠﻴﺪ اﺻﻠﻲ واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﻛﺎﻣﻞ داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪.‬‬ ‫ﻣﺜﺎل ‪:1‬‬ ‫‪STID‬‬ ‫‪GRADE‬‬ ‫‪COID‬‬

‫‪STNAME‬‬

‫‪STMJR‬‬

‫‪STDEID‬‬

‫‪STID‬‬

‫ﻧﺮﻣﺎل ﺳﺎزي ‪203‬‬

‫ﻣﺜﺎل ‪:2‬‬ ‫)‪mintopas , grade , time‬‬

‫‪R = (Std# , cr# , st.name , g/u , place ,‬‬

‫‪ 1NF‬ﻣﻲ ﺑﺎﺷﺪ ﺑﺮاي ‪ 2NF‬ﺑﻮدن‪:‬‬ ‫)‪R1=( Std# , cr# , grade‬‬ ‫)‪R2=( Std# , st.name , g/u‬‬ ‫)‪R3= (cr# , place , mintopas , time‬‬

‫ﺑﻌﺪ از اﻳﻨﻜﻪ ﺟﺪاول ﺷﻜﺴﺘﻪ ﺷﺪ ‪ ،‬ﺑﺎﻳﺪ‬

‫‪1NF‬‬

‫و‬

‫‪2NF‬‬

‫ﺑﻮدن ﻫﺮﻛﺪام از ﺟﺪاول‬

‫ﺑﺪﺳﺖ آﻣﺪه را ﺑﺮرﺳﻲ ﻛﻨﻴﺪ )ﻫﺮ ﺳﻪ ﺟﺪول ﺑﺪﺳﺖ آﻣﺪه ﻓﻮق ﻫﻢ‬

‫‪1NF‬‬

‫وﻫﻢ‬

‫‪2NF‬‬

‫ﻣﻲﺑﺎﺷﺪ(‪.‬‬

‫‪ 3-4‬راﺑﻄﻪ‬ ‫ﺟﺪوﻟﻲ‬

‫‪3NF‬‬

‫‪3NF‬‬

‫اﺳﺖ ﻛﻪ‬

‫•‬

‫در ‪ 2NF‬ﺑﺎﺷﺪ‬

‫•‬

‫واﺑﺴﺘﮕﻲ اﻧﺘﻘﺎﻟﻲ ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ )واﺑﺴﺘﮕﻲ ﻏﻴﺮ ﻛﻠﻴﺪ ﺑﻪ ﻏﻴﺮ ﻛﻠﻴﺪ (‬

‫ﺑﻪ ﺑﻴﺎﻧﻲ دﻳﮕﺮ راﺑﻄﻪ اي‬

‫‪3NF‬‬

‫اﺳﺖ اﮔﺮ و ﻓﻘﻂ اﮔﺮ‬

‫‪2NF‬‬

‫ﺑﺎﺷﺪ و ﻫﺮ ﺻﻔﺖ ﻏﻴﺮﻛﻠﻴﺪ ﺑﺎ‬

‫ﻛﻠﻴﺪ اﺻﻠﻲ‪ ،‬واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﺑﻲ واﺳﻄﻪ داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬ ‫ﻣﺜﺎل ‪:1‬‬ ‫‪STID‬‬ ‫‪GRADE‬‬ ‫‪COID‬‬

‫‪204‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫‪STDEID‬‬

‫‪STMJR‬‬

‫‪STMJR‬‬ ‫‪STID‬‬ ‫‪STNAME‬‬

‫‪ 4-4‬راﺑﻄﻪ‬ ‫راﺑﻄﻪ‬

‫‪BCNF‬‬

‫‪BCNF‬‬

‫ﺣﺎﻟﺖ ﺧﺎﺻﻲ از راﺑﻄﻪ ﻧﺮﻣﺎل اﺳﺖ و داراي ﺗﻌﺎرﻳﻒ ﻣﺘﻌﺪدي ﻣﻲ ﺑﺎﺷﺪ‬

‫ﻛﻪ در ذﻳﻞ آﻣﺪه اﺳﺖ‪:‬‬ ‫ﺗﻌﺮﻳﻒ اول‪:‬ﺟﺪوﻟﻲ ‪ BCNF‬اﺳﺖ ﻛﻪ‬ ‫•‬

‫در ‪ 3NF‬ﺑﺎﺷﺪ‬

‫•‬

‫واﺑﺴﺘﮕﻲ ﻣﻌﻜﻮس ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ )واﺑﺴﺘﮕﻲ ﻛﻠﻴﺪ ﺑﻪ ﻏﻴﺮ ﻛﻠﻴﺪ (‬

‫ﺗﻌﺮﻳﻒ دوم‪ :‬راﺑﻄﻪ اي‬

‫‪BCNF‬‬

‫اﺳﺖ اﮔﺮ و ﻓﻘﻂ اﮔﺮ در آن ﻫﺮ دﺗﺮﻣﻴﻨﺎن‪ ،‬ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ‬

‫ﺑﺎﺷﺪ‪.‬‬ ‫ﺗﻌﺮﻳﻒ ﺳﻮم‪ :‬راﺑﻄﻪ )‪ ،R(H‬ﺑﺎ ﻣﺠﻤﻮﻋﻪ واﺑﺴﺘﮕﻲ ﻫﺎي ﺗﺎﺑﻌﻲ ‪ ،F‬در‬ ‫ﺑﺮاي ﻫﺮ واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ‬

‫‪F+‬‬

‫ﺑﻪ ﺻﻮرت‬

‫‪A→B‬‬

‫ﻛﻪ در آن‬

‫‪BCNF‬‬

‫)‪A ∁ R(H‬‬

‫و‬

‫اﺳﺖ اﮔﺮ‬

‫)‪B ∁ R(H‬‬

‫اﺳﺖ‪ ،‬ﺣﺪاﻗﻞ ﻳﻜﻲ از دو ﺣﺎﻟﺖ زﻳﺮ ﺑﺮﻗﺮار ﺑﺎﺷﺪ‪:‬‬ ‫•‬

‫‪ A → B‬ﻳﻚ واﺑﺴﺘﮕﻲ ﻏﻴﺮ ﻣﻬﻢ ﺑﺎﺷﺪ ﻳﻌﻨﻲ‬

‫•‬

‫‪ A‬ﺳﻮﭘﺮ ﻛﻠﻴﺪ راﺑﻄﻪ ‪ R‬ﺑﺎﺷﺪ‬

‫‪B∁A‬‬

‫ﺗﻌﺮﻳﻒ ﭼﻬﺎرم‪ :‬راﺑﻄﻪ اي ‪ BCNF‬اﺳﺖ اﮔﺮ و ﻓﻘﻂ اﮔﺮ ﺳﻤﺖ ﭼﭗ ﻫﺮ واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ‬ ‫ﻣﻬﻢ و ﻛﺎﻫﺶ ﻧﺎﭘﺬﻳﺮ‪ ،‬ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ راﺑﻄﻪ ﺑﺎﺷﺪ‪.‬‬

‫‪ 5-4‬راﺑﻄﻪ‬

‫‪4NF‬‬

‫راﺑﻄﻪ اي ‪ 4NF‬اﺳﺖ اﮔﺮ‬ ‫•‬

‫‪ BCNF‬ﺑﺎﺷﺪ‬

‫•‬

‫در آن واﺑﺴﺘﮕﻲ ﭼﻨﺪ ﻣﻘﺪاري ﻣﻬﻢ وﺟﻮد ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬

‫ﻧﺮﻣﺎل ﺳﺎزي ‪205‬‬

‫ﻣﺸﻜﻞ آﻧﻮﻣﺎﻟﻲ در ﺳﻄﺢ‬

‫‪4NF‬‬

‫ﺑﺪﻳﻦ ﺻﻮرت اﺳﺖ ﻛﻪ ﮔﺎﻫﻲ دو راﺑﻄﻪاي ﻛﻪ از‬

‫ﻳﻜﺪﻳﮕﺮ ﻣﺠﺰا ﻫﺴﺘﻨﺪ را ﺑﻪ اﺷﺘﺒﺎه و ﺻﺮﻓﺎ ﺑﻮاﺳﻄﻪ اﻳﻨﻜﻪ ﻓﺮض ﻛﺮدهاﻳﻢ ﻣﻲﺗﻮاﻧﻴﻢ ﺗﺤﺖ‬ ‫ﻳﻚ راﺑﻄﻪ ﻗﺮار دﻫﻴﻢ‪ ،‬ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﺗﺮﻛﻴﺐ ﻣﻲﻛﻨﻴﻢ و ﺗﺤﺖ ﻋﻨﻮان ﻳﻚ راﺑﻄﻪ در ﭘﺎﻳﮕﺎهداده‬ ‫ﻗﺮار ﻣﻲدﻫﻴﻢ‪ .‬ﭘﺲ از ورود اﻃﻼﻋﺎت در راﺑﻄﻪ ﺟﺪﻳﺪ‪ ،‬اﻳﻦ راﺑﻄﻪ را ﺑﻪ دو راﺑﻄﻪ ﻗﺒﻠﻲ‬ ‫ﺗﺠﺰﻳﻪ ﻣﻲﻛﻨﻴﻢ و ﻃﺒﻴﻌﺘﺎ ﻣﻘﺎدﻳﺮ راﺑﻄﻪ ﻛﻠﻲ در د راﺑﻄﻪ ﺗﻘﺴﻴﻢ ﻣﻲﺷﻮﻧﺪ‪ .‬ﺣﺎل ﭼﻨﺎﻧﭽﻪ‬ ‫ﺑﺨﻮاﻫﻴﻢ دو راﺑﻄﻪ را ﺑﺎ ﻫﻢ ﺗﺮﻛﻴﺐ ﻛﻨﻴﻢ‪ ،‬ﺑﺎ ﺣﺬف ﺑﻌﻀﻲ از ﺗﺎﭘﻞﻫﺎ ﻣﻮاﺟﻪ ﻣﻲﺷﻮﻳﻢ‪ .‬اﻟﺒﺘﻪ‬ ‫اﻳﻦ ﺷﺮاﻳﻂ ﺑﺴﻴﺎر ﺧﺎص ﺑﻮده و اﻣﻜﺎن رﺧﺪاد آن ﻧﻴﺰ ﺑﺴﻴﺎر ﻛﻢ اﺳﺖ‪ .‬ﺑﺮاي ﻣﺜﺎل راﺑﻄﻪ‬ ‫زﻳﺮ را ﻛﻪ اﺷﺘﺒﺎﻫﺎ ﻧﺮﻣﺎل ﺷﺪه اﺳﺖ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪:‬‬ ‫)‪PSR(PRID,STID,RNUM‬‬ ‫‪RNUM‬‬

‫‪STID‬‬

‫‪PRID‬‬

‫‪R1‬‬ ‫‪R1‬‬ ‫‪R1‬‬ ‫‪R2‬‬ ‫‪R2‬‬ ‫‪R2‬‬ ‫‪R1‬‬ ‫‪R1‬‬

‫‪S2‬‬ ‫‪S1‬‬ ‫‪S3‬‬ ‫‪S2‬‬ ‫‪S1‬‬ ‫‪S3‬‬ ‫‪S2‬‬ ‫‪S6‬‬

‫‪Pr22‬‬ ‫‪Pr22‬‬ ‫‪Pr22‬‬ ‫‪Pr22‬‬ ‫‪Pr22‬‬ ‫‪Pr22‬‬ ‫‪Pr33‬‬ ‫‪Pr33‬‬

‫درج ﺗﺎﭘﻠﻲ ﻣﺎﻧﻨﺪ )‪ (Pr22,S8‬ﻋﻤﻼ ﺑﻪ ﻣﻔﻬﻮم درج دو ﺗﺎﭘﻞ در ﺟﺪول ‪ PSR‬ﺑﺼﻮرت‬ ‫زﻳﺮ ﺧﻮاﻫﺪ ﺑﻮد‪:‬‬ ‫)‪(Pr22,S8,R1‬‬ ‫)‪(Pr22,S8,R2‬‬

‫ﺣﺎل ﭼﻨﺎﻧﭽﻪ راﺑﻄﻪ ‪ PSR‬را ﻋﻤﻼ از اﺑﺘﺪا ﺑﺼﻮرت دو راﺑﻄﻪ ‪ PS‬و ‪ PR‬ﻣﺎﻧﻨﺪ زﻳﺮ در‬ ‫ﻧﻈﺮ ﺑﮕﻴﺮﻳﻢ دﻳﮕﺮ دﭼﺎر ﭼﻨﻴﻦ ﻣﺸﻜﻼﺗﻲ ﻧﺨﻮاﻫﻴﻢ ﺷﺪ‪.‬‬ ‫)‪PS(PRID,STID‬‬ ‫)‪PR(PRID,RNUM‬‬

‫‪ 6-4‬راﺑﻄﻪ‬

‫‪5NF‬‬

‫‪206‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫در ﻓﺮاﻳﻨﺪﻫﺎي ﻧﺮﻣﺎل ﺳﺎزي ﺗﺎ ﺳﻄﺢ ‪ ،4NF‬اﻟﮕﻮرﻳﺘﻢ ﻋﻤﻮﻣﻲ درﻫﺮ ﻣﺮﺣﻠﻪ ﻋﺒﺎرت ﺑﻮد‬ ‫از ﺗﺠﺰﻳﻪ راﺑﻄﻪ ﺑﻪ دو راﺑﻄﻪ ﻧﺮﻣﺎﻟﺘﺮ ﺑﻪ ﮔﻮﻧﻪ اﻳﻜﻪ ﺑﺎ ﭘﻴﻮﻧﺪ دو راﺑﻄﻪ‪ ،‬ﻫﻤﺎن راﺑﻄﻪ اﺻﻠﻲ‬ ‫ﺑﺪﺳﺖ ﻣﻲ آﻳﺪ‪ .‬اﻣﺎﻣﻤﻜﻦ اﺳﺖ در وﺿﻊ ﺧﺎﺻﻲ راﺑﻄﻪ را ﺑﻪ دو راﺑﻄﻪ ﺗﺠﺰﻳﻪ ﻛﻨﻴﻢ وﻟﻲ‬ ‫ﺑﺎ ﭘﻴﻮﻧﺪ دو راﺑﻄﻪ‪ ،‬راﺑﻄﻪ اوﻟﻴﻪ ﺑﺪﺳﺖ ﻧﻴﺎﻳﺪ‪ .‬ﺑﻪ ﻣﺜﺎل زﻳﺮ ﺗﻮﺟﻪ ﻛﻨﻴﺪ‪:‬‬ ‫)‪PRCODE (PRID, COID, DEID‬‬ ‫‪DEID‬‬

‫‪COID‬‬

‫‪D4‬‬ ‫‪D1‬‬ ‫‪D1‬‬ ‫‪D1‬‬

‫‪PRID‬‬ ‫‪Pr11‬‬ ‫‪Pr11‬‬ ‫‪Pr22‬‬ ‫‪Pr11‬‬

‫‪C1‬‬ ‫‪C3‬‬ ‫‪C1‬‬ ‫‪C1‬‬

‫ﺣﺎل اﻳﻦ راﺑﻄﻪ را ﺑﻪ دو راﺑﻄﻪ زﻳﺮ ﺗﺠﺰﻳﻪ ﻣﻲﻛﻨﻴﻢ‪ .‬ﭘﺲ راﺑﻄﻪﻫﺎي زﻳﺮ از ﺗﺠﺰﻳﻪ‬ ‫راﺑﻄﻪ ‪ PRCODE‬ﺑﺪﺳﺖ ﻣﻲآﻳﻨﺪ‪:‬‬ ‫)‪PRCO (PRID, COID‬‬ ‫)‪CODE (COID, DEID‬‬ ‫‪CODE‬‬ ‫‪DEID‬‬ ‫‪D4‬‬ ‫‪D1‬‬ ‫‪D1‬‬

‫‪PRCO‬‬ ‫‪COID‬‬ ‫‪C1‬‬ ‫‪C3‬‬ ‫‪C1‬‬

‫‪COID‬‬ ‫‪C1‬‬ ‫‪C3‬‬ ‫‪C1‬‬

‫‪PRID‬‬ ‫‪Pr11‬‬ ‫‪Pr11‬‬ ‫‪Pr22‬‬

‫ﺣﺎل ﭼﻨﺎﻧﭽﻪ دو راﺑﻄﻪ را ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﺗﺮﻛﻴﺐ ﻛﻨﻴﻢ در ﺧﺮوﺟﻲ ﺣﺎﺻﻞ ﻳﻚ رﻛﻮرد‬ ‫اﺿﺎﻓﻲ ﻣﺸﺎﻫﺪه ﻣﻲﮔﺮدد‪.‬‬ ‫‪Proc JOIN Code = XPRCODE‬‬ ‫‪DEID‬‬ ‫‪D4‬‬ ‫‪D1‬‬ ‫‪D1‬‬ ‫‪D4‬‬ ‫‪D1‬‬

‫‪COID‬‬ ‫‪C1‬‬ ‫‪C1‬‬ ‫‪C3‬‬ ‫‪C1‬‬ ‫‪C1‬‬

‫ﺑﻪ اﻳﻦ ﺷﺮاﻳﻂ آﻧﻮﻣﺎﻟﻲ در ﺳﻄﺢ‬

‫‪PRID‬‬ ‫‪Pr11‬‬ ‫‪Pr11‬‬ ‫‪Pr11‬‬ ‫‪Pr22‬‬ ‫‪Pr22‬‬ ‫‪5NF‬‬

‫→ رﻛﻮرد اﺿﺎﻓﻪ‬

‫ﻣﻲﮔﻮﻳﻨﺪ‪ .‬رﻓﻊ اﻳﻦ ﻣﻜﻞ ﺻﺮﻓﺎ ﺗﺎ ﻗﺒﻞ از‬

‫ورود دادهﻫﺎ ﻣﻤﻜﻦ ﺧﻮاﻫﺪ ﺑﻮد‪.‬‬ ‫ﺑﺎ اﻳﻦ وﺻﻒ‪ ،‬ﺗﻌﺮﻳﻒ راﺑﻄﻪ ‪ 5NF‬ﺑﻪ ﺷﺮح زﻳﺮ ﺧﻮاﻫﺪ ﺑﻮد‪:‬‬

‫ﻧﺮﻣﺎل ﺳﺎزي ‪207‬‬

‫راﺑﻄﻪاي‬

‫‪5NF‬‬

‫اﺳﺖ اﮔﺮ ﺗﻤﺎم واﺑﺴﺘﮕﻲﻫﺎي ﭘﻴﻮﻧﺪي آن ﻧﺎﺷﻲ از ﻛﻠﻴﺪﻫﺎي‬

‫ﻛﺎﻧﺪﻳﺪ آن ﺑﺎﺷﺪ‪ .‬ﺑﺎ اﻳﻦ وﺻﻒ اﮔﺮ ﺑﺘﻮاﻧﻴﻢ ﻳﻚ واﺑﺴﺘﮕﻲ ﭘﻴﻮﻧﺪي در راﺑﻄﻪ‬ ‫ﭘﻴﺪا ﻛﻨﻴﻢ ﻛﻪ در ﭘﺮﺗﻮﻫﺎﻳﺶ ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ‬

‫‪R‬‬

‫وﺟﻮد ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ‪ ،‬راﺑﻄﻪ‬

‫‪R‬‬

‫‪5Nf‬‬

‫ﻧﻴﺴﺖ‪.‬‬ ‫ﺗﻮﺟﻪ‪ :‬آﻧﻮﻣﺎﻟﻲ در ﺳﻄﻮح‬

‫‪4NF‬‬

‫و‬

‫‪5NF‬‬

‫ﺻﺮﻓﺎ در ﺷﺮاﻳﻂ ﺧﺎص و ﺑﺮاي ﻣﺤﻴﻄﻬﺎي‬

‫ﺧﺎص رخ ﻣﻲ دﻫﺪ و در ﺣﺎﻟﺖ ﻋﺎدي اﻳﻦ ﻧﻮع آﻧﻮﻣﺎﻟﻲ ﻫﺎ در ﻃﺮاﺣﻲ ﺳﺎﺧﺘﺎر اﻃﻼﻋﺎﺗﻲ‬ ‫ﺳﻴﺴﺘﻢ ﻫﺎ رخ ﻧﻤﻲ دﻫﺪ‪ .‬ﻟﺬا ﺑﻄﻮر ﻣﻌﻤﻮل اﮔﺮ ﺑﺘﻮاﻧﻴﻢ ﺳﺎﺧﺘﺎر اﻃﻼﻋﺎﺗﻲ ﺳﻴﺴﺘﻢ ﻣﻮرد‬ ‫ﻧﻈﺮ را ﺣﺪاﻛﺜﺮ ﺗﺎ ﺳﻄﺢ‬

‫‪3NF‬‬

‫و ﻳﺎ‬

‫‪BCNF‬‬

‫ﻧﺮﻣﺎل ﻛﻨﻴﻢ‪ ،‬اﺻﻄﻼﺣﺎ ﻣﻲ ﮔﻮﻳﻴﻢ ﻧﺮﻣﺎل‬

‫ﺳﺎزي ﻛﺎﻣﻞ اﻧﺠﺎم ﺷﺪه اﺳﺖ‪.‬‬

‫ﺗﻤﺮﻳﻨﺎت‬

‫‪208‬‬

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪ .1‬راﺑﻄﻪ ﻧﺮﻣﺎل را ﺗﻌﺮﻳﻒ ﻛﻨﻴﺪ‪.‬‬ ‫‪ .2‬ﻣﺰاﻳﺎ و ﻣﻌﺎﻳﺐ راﺑﻄﻪ ﻧﺮﻣﺎل را ﻧﺎم ﺑﺒﺮﻳﺪ‬ ‫‪ .3‬راﺑﻄﻪ ﻏﻴﺮ ﻧﺮﻣﺎل داراي ﭼﻪ ﻣﺰاﻳﺎ و ﻣﻌﺎﻳﺒﻲ ﺧﻮاﻫﺪ ﺑﻮد‬ ‫‪ .4‬اﻧﻮاع واﺑﺴﺘﮕﻲ را ﻧﺎم ﺑﺒﺮﻳﺪ‬ ‫‪ .5‬واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ را ﺗﻮﺿﻴﺢ دﻫﻴﺪ‬ ‫‪ .6‬ﺣﺎﻟﺖ ﻫﺎي واﺑﺴﺘﮕﻲ را ﻧﺎم ﺑﺒﺮﻳﺪ‬ ‫‪ .7‬ﺻﻮرت ﻫﺎي ﻧﺮﻣﺎل را ﻧﺎم ﺑﺒﺮﻳﺪ‬ ‫‪ .8‬ﺻﻮرت ﻧﺮﻣﺎل اول را ﺗﻮﺿﻴﺢ دﻫﻴﺪ‬ ‫‪ .9‬ﺻﻮرت ﻧﺮﻣﺎل ﺳﻮم ﺑﻪ ﭼﻪ ﺻﻮرت اﺳﺖ‬ ‫‪ .10‬ﺻﻮرت ﻧﺮﻣﺎل ‪ BCNF‬راﺷﺮح دﻫﻴﺪ‬ ‫‪ .11‬ﺻﻮرت ﻧﺮﻣﺎل ‪ 5NF‬ﭼﮕﻮﻧﻪ اﺳﺖ‬

‫ﻓﺼﻞ ‪۱۰‬‬ ‫ﻣﻌﻤﺎﺭﻱﻫﺎﻱ ﻣﺨﺘﻠﻒ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻩﺩﺍﺩﻩ‬ ‫ﻫﺪف ﻛﻠﻲ‬ ‫در اﻳﻦ ﻓﺼﻞ ﺑﻪ ﻣﻮﺿﻮع ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎه داده ﻫﺎ ﻣﻲ ﭘﺮدازﻳﻢ‪ .‬اﺑﺘﺪا ﻣﻌﻤﺎري ﻫﺎي‬ ‫ﻣﺘﻤﺮﻛﺰ ﭘﺎﻳﮕﺎه داده ﻫﺎ را ﺷﺮح داده و ﺳﭙﺲ وارد ﺑﺤﺚ ﻣﻌﻤﺎري ﻫﺎي ﻏﻴﺮ ﻣﺘﻤﺮﻛﺰ‬ ‫ﭘﺎﻳﮕﺎه داده ﻫﺎ ﻣﻲ ﺷﻮﻳﻢ‪ .‬در ﺑﺤﺚ ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎه ﻫﺎي داده ﻧﺎﻣﺘﻤﺮﻛﺰ‪ ،‬ﻣﻌﻤﺎري ﻫﺎﻳﻲ‬ ‫ﻣﺎﻧﻨﺪ ﻣﻌﻤﺎري ﻣﺸﺘﺮي‪ -‬ﺧﺪﻣﺘﮕﺰار‪ ،‬ﻣﻌﻤﺎري ﺗﻮزﻳﻊ ﺷﺪه‪ ،‬ﻣﻌﻤﺎري ﺑﺎ ﭘﺮدازش ﻣﻮازي‪،‬‬ ‫ﻣﻌﻤﺎري ﭼﻨﺪ ﭘﺎﻳﮕﺎﻫﻲ و ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﻫﻤﺮاه را ﺑﺎ ذﻛﺮ ﺗﻮﺿﻴﺤﺎت در ﻣﻮرد ﻫﺮ‬ ‫ﻳﻚ از اﻧﻮاع ﻣﻌﻤﺎري ﻫﺎي ﻣﺬﻛﻮر ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻴﻢ داد‪.‬‬

‫ﻫﺪف رﻓﺘﺎري‬ ‫دراﻳﻦ ﻓﺼﻞ ﻋﻨﺎوﻳﻦ زﻳﺮ ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ‪:‬‬ ‫•‬

‫ﻣﻌﻤﺎري ﻣﺘﻤﺮﻛﺰ‬

‫•‬

‫ﻣﻌﻤﺎري ﻧﺎﻣﺘﻤﺮﻛﺰ‬

‫•‬

‫ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﻣﺸﺘﺮي‪ -‬ﺧﺪﻣﺘﮕﺰار‬

‫•‬

‫ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﺗﻮزﻳﻊ ﺷﺪه‬

‫•‬

‫ﻣﻌﻤﺎري ﺑﺎ ﭘﺮدازش ﻣﻮازي‬

‫•‬

‫ﻣﻌﻤﺎري ﺑﺎ ﺣﺎﻓﻈﻪ ﻣﺸﺘﺮك‬

‫•‬

‫ﻣﻌﻤﺎري ﺑﺎ دﻳﺴﻚﻫﺎي ﻣﺸﺘﺮك‬

‫•‬

‫ﻣﻌﻤﺎري ﺑﻲ اﺟﺰا ﻣﺸﺘﺮك‬

‫‪ 210‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫ﻣﻌﻤﺎري ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‬

‫•‬

‫ﻣﻌﻤﺎري ﭼﻨﺪ ﭘﺎﻳﮕﺎﻫﻲ‬

‫•‬

‫ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﻫﻤﺮاه‬

‫‪ -1‬ﻣﻘﺪﻣﻪ‬ ‫ﻳﻜﻲ از ﻣﺒﺎﺣﺚ ﻣﻬﻢ و ﻛﻠﻴﺪي در ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎه داده‪ ،‬اﺟﺰاء ﺗﺸﻜﻴﻞ دﻫﻨﺪه و ﭘﻴﻜﺮ‬ ‫ﺑﻨﺪي ﻳﺎ ﻃﺮز ﺗﺮﻛﻴﺐ اﺟﺰاء ﺳﻴﺴﺘﻢ و ﭼﮕﻮﻧﮕﻲ ﺗﻌﺎﻣﻞ اﺟﺰاء ﺑﺎ ﻳﻜﺪﻳﮕﺮ اﺳﺖ‪ .‬در‬ ‫ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎه داده ﻫﺎ ﺣﺪاﻗﻞ ﻳﻚ ﭘﺎﻳﮕﺎه داده ﻫﺎ‪ ،‬ﻳﻚ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه داده ﻫﺎ‪،‬‬ ‫ﻳﻚ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ‪ ،‬ﻳﻚ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺑﺎ دﺳﺘﮕﺎهﻫﺎي ﺟﺎﻧﺒﻲ و ﺗﻌﺪادي ﺑﺮﻧﺎﻣﻪ ﻛﺎرﺑﺮدي و‬ ‫ﻛﺎرﺑﺮ وﺟﻮد دارﻧﺪ‪.‬‬ ‫ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎهدادهﻫﺎ ﺑﺴﺘﮕﻲ ﺑﻪ دو ﻋﻨﺼﺮ اﺻﻠﻲ ﺳﻴﺴﺘﻢ ﻳﻌﻨﻲ ﺳﺨﺖاﻓﺰار و‬ ‫ﻧﺮماﻓﺰار ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ دارد‪ .‬اﻟﺒﺘﻪ ﻋﻮاﻣﻞ دﻳﮕﺮي ﻫﻢ در ﻃﺮاﺣﻲ اﻳﻦ ﻣﻌﻤﺎري‬ ‫دﺧﺎﻟﺖ دارﻧﺪ ﻛﻪ اﻫﻢ اﻳﻦ ﻋﻮاﻣﻞ ﻋﺒﺎرﺗﻨﺪ از‪:‬‬ ‫•‬

‫ﻣﻮﻗﻌﻴﺖ ﺟﻐﺮاﻓﻴﺎﻳﻲ ﻛﺎرﺑﺮان‬

‫•‬

‫ﻧﻴﺎزﻫﺎي ﻛﺎرﺑﺮان‬

‫•‬

‫ﻣﺎﻫﻴﺖ ﭘﺮدازشﻫﺎ و ﺗﺮاﻛﻨﺶﻫﺎ‬

‫•‬

‫ﺗﻌﺪاد ﺗﺮاﻛﻨﺶﻫﺎ‬

‫•‬

‫ﺣﺠﻢ دادهﻫﺎي ذﺧﻴﺮه ﺷﺪﻧﻲ‬

‫•‬

‫ﻣﻮﻗﻌﻴﺖ ﻣﻜﺎﻧﻲ دادهﻫﺎ و ارﺗﺒﺎﻃﺎت ﺑﻴﻦ آﻧﻬﺎ‬

‫•‬

‫ﻣﺎﻫﻴﺖ ﻛﺎرﺑﺮدﻫﺎي ﻣﻮرد ﻧﻈﺮ‬

‫‪ -2‬اﻧﻮاع ﻣﻌﻤﺎري‬ ‫در اﺳﺎس دو ﻧﻮع ﻣﻌﻤﺎري ﺑﺮاي ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ وﺟﻮد دارد ﻛﻪ اﻳﻦ دو ﻣﻌﻤﺎري‬ ‫ﻋﺒﺎرﺗﻨﺪ از‪:‬‬ ‫•‬

‫ﻣﻌﻤﺎري ﻣﺘﻤﺮﻛﺰ‬

‫•‬

‫ﻣﻌﻤﺎري ﻧﺎ ﻣﺘﻤﺮﻛﺰ‬

‫ﻣﻌﻤﺎريﻫﺎي ﻣﺨﺘﻠﻒ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده ‪211‬‬

‫در اداﻣﻪ ﻫﺮ ﻳﻚ از اﻧﻮاع ﻣﻌﻤﺎري ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار ﺧﻮاﻫﻨﺪ ﮔﺮﻓﺖ‪.‬‬

‫‪ 1-2‬ﻣﻌﻤﺎري ﻣﺘﻤﺮﻛﺰ‬ ‫در اﻳﻦ ﻣﻌﻤﺎري ﻳﻚ ﭘﺎﻳﮕﺎه دادهﻫﺎ روي ﻳﻚ ﺳﻴﺴﺘﻢ ﻛﺎﻣﭙﻴﻮﺗﺮي و ﺑﺪون ارﺗﺒﺎط ﺑﺎ‬ ‫ﺳﻴﺴﺘﻢ ﻛﺎﻣﭙﻴﻮﺗﺮي دﻳﮕﺮ‪ ،‬اﻳﺠﺎد ﻣﻲ ﺷﻮد‪ .‬ﺳﺨﺖ اﻓﺰار اﻳﻦ ﺳﻴﺴﺘﻢ ﻣﻲ ﺗﻮاﻧﺪ ﻛﺎﻣﭙﻴﻮﺗﺮ‬ ‫ﺷﺨﺼﻲ ﻣﺘﻮﺳﻂ و ﻳﺎ ﺑﺰرگ ﺑﺎﺷﺪ و ﻃﺒﻌﺎ ﻗﺪرت‪ ،‬ﺗﻮاﻧﺶ و ﻛﺎراﻳﻲ ﺳﻴﺴﺘﻢ ﻧﻴﺰ‬ ‫ﻣﺘﻔﺎوت اﺳﺖ‪.‬‬

‫ﺷﻜﻞ ‪ 1-10‬ﻧﻤﺎﻳﺸﻲ از ﻣﻌﻤﺎري ﻣﺘﻤﺮﻛﺰ‬

‫ﺳﻴﺴﺘﻢ ﺑﺎ ﻣﻌﻤﺎري ﻣﺘﻤﺮﻛﺰ ﻛﻪ روي ﻳﻚ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺷﺨﺼﻲ اﻳﺠﺎد ﻣﻲﺷﻮد‪ ،‬ﺗﻚ‬ ‫ﻛﺎرﺑﺮي‪ ،‬ﺑﺮاي ﻛﺎرﺑﺮدﻫﺎي ﻛﻮﭼﻚ و ﺑﺎ اﻣﻜﺎﻧﺎت ﻣﺤﺪود اﺳﺖ و ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﻧﻴﺰ‬ ‫ﺗﻮاﻧﺶ ﭼﻨﺪاﻧﻲ ﻧﺪارد‪ .‬اﻣﺎ ﺳﻴﺴﺘﻢ ﻣﻌﻤﺎري ﻣﺘﻤﺮﻛﺰ روي ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎي ﻣﺘﻮﺳﻂ و ﺑﻪ وﻳﮋه‬ ‫ﺑﺰرگ ﻣﺘﺼﻞ ﺑﻪ ﺗﻌﺪاد زﻳﺎدي ﭘﺎﻳﺎﻧﻪ‪ ،‬ﻣﻲﺗﻮاﻧﺪ ﺳﻴﺴﺘﻢ ﻛﺎراﻳﻲ ﺑﺎﺷﺪ‪ .‬ﺷﻜﻞ ‪ 1-10‬ﻃﺮﺣﻲ‬ ‫از ﻣﻌﻤﺎري ﻣﺘﻤﺮﻛﺰ اراﺋﻪ ﺷﺪه اﺳﺖ‪.‬‬

‫‪ 2-2‬ﻣﻌﻤﺎري ﻧﺎﻣﺘﻤﺮﻛﺰ‬ ‫ﻣﻌﻤﺎري ﻧﺎ ﻣﺘﻤﺮﻛﺰ‪ ،‬ﺧﻮد داراي اﻧﻮاع ﻣﺨﺘﻠﻔﻲ اﺳﺖ از ﺟﻤﻠﻪ‪:‬‬ ‫•‬

‫ﻣﻌﻤﺎري ﻣﺸﺘﺮي‪ -‬ﺧﺪﻣﺘﮕﺰار‬

‫•‬

‫ﻣﻌﻤﺎري ﺗﻮزﻳﻊ ﺷﺪه‬

‫‪ 212‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ‫•‬

‫ﻣﻌﻤﺎري ﭼﻨﺪ ﭘﺎﻳﮕﺎﻫﻲ‬

‫•‬

‫ﻣﻌﻤﺎري ﺑﺎ ﭘﺮدازش ﻣﻮازي‬

‫•‬

‫ﻣﻌﻤﺎري ﻣﻮﺑﺎﻳﻞ‬

‫در اداﻣﻪ ﻫﺮ ﻳﻚ از اﻧﻮاع ﻣﻌﻤﺎري ﻫﺎي ﻏﻴﺮ ﻣﺘﻤﺮﻛﺰ را ﻣﻮرد ﺑﺤﺚ و ﺑﺮرﺳﻲ ﻗﺮار‬ ‫ﺧﻮاﻫﻴﻢ داد‪.‬‬

‫‪ 1-2-2‬ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﻣﺸﺘﺮي‪ -‬ﺧﺪﻣﺘﮕﺰار‬ ‫‪ 1-1-2-2‬ﺗﻌﺮﻳﻒ‬ ‫ﻣﻌﻤﺎري ﻣﺸﺘﺮي‪ -‬ﺧﺪﻣﺘﮕﺰار ﺗﻌﺮﻳﻒ واﺣﺪ و ﻣﻮرد ﭘﺬﻳﺮش ﻫﻤﮕﺎن ﻧﺪارد‪ .‬در ﻣﻌﻨﺎي‬ ‫ﻋﺎم ﻣﻲ ﺗﻮان اﻳﻦ ﻣﻌﻤﺎري را ﭼﻨﻴﻦ ﺗﻌﺮﻳﻒ ﻛﺮد‪:‬‬ ‫ﻫﺮ ﻣﻌﻤﺎري ﻛﻪ در آن ﻗﺴﻤﺘﻲ از ﭘﺮدازش را ﻳﻚ ﺑﺮﻧﺎﻣﻪ‪ ،‬ﺳﻴﺴﺘﻢ ﻳﺎ ﻣﺎﺷﻴﻦ‬ ‫اﻧﺠﺎم دﻫﺪ و اﻧﺠﺎم ﻗﺴﻤﺖ دﻳﮕﺮ از ﭘﺮدازش را از ﺑﺮﻧﺎﻣﻪ‪ ،‬ﺳﻴﺴﺘﻢ ﻳﺎ ﻣﺎﺷﻴﻦ‬ ‫دﻳﮕﺮ ﺑﺨﻮاﻫﺪ‪ ،‬ﻣﻌﻤﺎري ﻣﺸﺘﺮي‪ -‬ﺧﺪﻣﺘﮕﺰار ﻧﺎﻣﻴﺪه‬

‫ﻣﻲ ﺷﻮد‪.‬‬

‫در واﻗﻊ وﻇﺎﻳﻔﻲ ﻛﻪ ﺑﺎﻳﺪ " ﺳﻴﺴﺘﻢ" اﻧﺠﺎم دﻫﺪ ﺑﻪ دو دﺳﺘﻪ ﺗﻘﺴﻴﻢ ﻣﻲ ﺷﻮﻧﺪ‪:‬‬ ‫•‬

‫دﺳﺘﻪاي ﻛﻪ اﻧﺠﺎم آن ﺑﺮ ﻋﻬﺪه ﺧﺪﻣﺘﮕﺰار اﺳﺖ‬

‫•‬

‫دﺳﺘﻪاي ﻛﻪ ﺗﻮﺳﻂ ﻣﺸﺘﺮي اﻧﺠﺎم ﻣﻲﺷﻮد‪.‬‬

‫ﺑﺪﻳﻦ ﺗﺮﺗﻴﺐ ﻳﻚ ﻣﻌﻤﺎري دو ﺳﻄﺤﻲ دارﻳﻢ ﻛﻪ ﺑﺮﺧﻮرد ﺑﺎ ﭘﻴﭽﻴﺪﮔﻲ ﺳﻴﺴﺘﻢ ﻫﺎي‬ ‫)‪ (DBMS‬ﺟﺪﻳﺪ و ﻧﻴﺰ ﻣﺸﻜﻞ ﺗﻮزﻳﻊ را ﺗﺴﻬﻴﻞ ﻣﻲ ﻛﻨﺪ‪ .‬ﻣﺎﺷﻴﻦ در اﻳﻦ ﺗﻌﺮﻳﻒ در‬ ‫ﻣﻌﻨﺎي ﻋﺎم آن آﻣﺪه اﺳﺖ )ﻓﻴﺰﻳﻜﻲ ﻳﺎ ﻣﻨﻄﻘﻲ(‪ .‬ﺑﺎ اﻳﻦ ﺗﻌﺮﻳﻒ‪ ،‬در اﻳﻦ ﻣﻌﻤﺎري ﻳﻚ‬ ‫ﻣﺎﺷﻴﻦ )ﻳﺎ ﺳﻴﺴﺘﻢ ﻳﺎ ﺑﺮﻧﺎﻣﻪ( ﺧﺪﻣﺘﻲ را ﺑﻪ ﻣﺎﺷﻴﻦ )ﻳﺎ ﺳﻴﺴﺘﻢ ﻳﺎ ﺑﺮﻧﺎﻣﻪ( دﻳﮕﺮ اراﺋﻪ‬ ‫ﻣﻲ ﻛﻨﺪ‪ ،‬از اﻳﻦ رو ﺑﻪ اﻳﻦ ﻣﺎﺷﻴﻦ )ﻳﺎ ﺳﻴﺴﺘﻢ ﻳﺎ ﺑﺮﻧﺎﻣﻪ(‪ ،‬ﺧﺪﻣﺘﮕﺰار ﻣﻲ ﮔﻮﻳﻨﺪ‪.‬‬ ‫ﺑﻨﺎﺑﺮاﻳﻦ‪ ،‬ﻣﻨﻈﻮر از ﻣﻌﻤﺎري ﻣﺸﺘﺮي‪-‬ﺧﺪﻣﺘﮕﺰار آن ﻧﻮع از ﻣﻌﻤﺎري اﺳﺖ ﻛﻪ در آن‬ ‫ﻣﺴﺌﻮﻟﻴﺖ ﻫﺎ ﺑﻪ ﻃﻮر ﻣﻨﻄﻘﻲ ﺗﻘﺴﻴﻢ ﺷﺪه اﺳﺖ‪.‬‬ ‫ﺗﻮﺟﻪ‪ :‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻦ ﺗﻘﺴﻴﻢ ﻛﺎر‪ ،‬ﻣﻤﻜﻦ اﺳﺖ اﻳﻦ ﻣﻮﺿﻮع ﺑﻪ ذﻫﻦ ﺑﺮﺳﺪ ﻛﻪ ﺣﺘﻤﺎ‬ ‫ﺣﺪاﻗﻞ دو ﻛﺎﻣﭙﻴﻮﺗﺮ در اﻳﻦ ﻣﻌﻤﺎري وﺟﻮد دارد‪ .‬ﺣﺎل آﻧﻜﻪ ﻟﺰوﻣﺎ ﭼﻨﻴﻦ ﻧﻴﺴﺖ‪ ،‬دو‬

‫ﻣﻌﻤﺎريﻫﺎي ﻣﺨﺘﻠﻒ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده ‪213‬‬

‫ﺑﺮﻧﺎﻣﻪ‪ ،‬دو زﻳﺮ ﺳﻴﺴﺘﻢ از ﻳﻚ ﺳﻴﺴﺘﻢ ﻛﺎﻣﭙﻴﻮﺗﺮي و‪ ...‬ﻣﻲ ﺗﻮاﻧﻨﺪ ﺑﺎ ﻫﻢ ﺗﻘﺴﻴﻢ ﻛﺎر‬ ‫داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪ ....‬اﻣﺎ در ﻣﺤﻴﻂ ﻫﺎي ﺟﺪﻳﺪ‪ ،‬ﻣﻌﻤﻮﻻً ﺑﺎ ﺗﻌﺪادي ﻛﺎﻣﭙﻴﻮﺗﺮ ﺷﺨﺼﻲ‪،‬‬ ‫اﻳﺴﺘﮕﺎه ﻛﺎر‪ ،‬ﭼﺎﭘﮕﺮ‪ ،‬ﺧﺪﻣﺘﮕﺰار ﻓﺎﻳﻞ و ﺗﺠﻬﻴﺰات دﻳﮕﺮ‪ ،‬اﻳﺠﺎد ﻣﻲ ﺷﻮد‪.‬‬

‫‪ 2-1-2-2‬ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎﻫﻲ ﻣﺸﺘﺮي‪-‬ﺧﺪﻣﺘﮕﺰار‬ ‫در اﻳﻦ ﻣﻌﻤﺎري ﻣﻌﻤﻮﻻً دو ﮔﺮوه ﻛﺎﻣﭙﻴﻮﺗﺮ دارﻳﻢ‪ :‬ﮔﺮوه ﻣﺸﺘﺮي و ﮔﺮوه ﺧﺪﻣﺘﮕﺰار‪.‬‬ ‫ﺗﻤﺎم دادهﻫﺎ در ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎي ﺧﺪﻣﺘﮕﺰار ذﺧﻴﺮه ﻣﻲ ﺷﻮﻧﺪ و ﺗﻤﺎم ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﻛﺎرﺑﺮدي‬ ‫در ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎي ﻣﺸﺘﺮي اﺟﺮا ﻣﻲ ﺷﻮﻧﺪ‪ .‬در ﺷﻜﻞ ‪ 2-10‬ﻣﺜﺎﻟﻲ از ﻃﺮح ﺳﺎده ﺷﺪه‬ ‫اﻳﻦ ﻣﻌﻤﺎري ﺑﺎ ﻳﻚ ﻣﺸﺘﺮي و ﻳﻚ ﺧﺪﻣﺘﮕﺰار دﻳﺪه ﻣﻲﺷﻮد )ﮔﺎه ﻣﻮﺳﻮم ﺑﻪ ﻣﻌﻤﺎري‬ ‫دو ردﻳﻔﻲ‪ .‬اﻟﺒﺘﻪ ﻣﻌﻤﺎري ﺳﻪ ردﻳﻔﻲ )و از ﻧﻈﺮ ﺗﺌﻮرﻳﻚ‪،‬‬

‫‪n‬‬

‫ردﻳﻔﻲ‪ (n≥2 ،‬ﻫﻢ وﺟﻮد‬

‫دارد(‪.‬‬

‫ﺷﻜﻞ ‪ 2-10‬ﻣﻌﻤﺎري ﻣﺸﺘﺮي‪ -‬ﺧﺪﻣﺘﮕﺰار‬

‫ﻛﺎرﺑﺮ در ﻣﺎﺷﻴﻦ ﻣﺸﺘﺮي ﻣﻲﺗﻮاﻧﺪ از ﻃﺮﻳﻖ واﺳﻂ زﻣﺎﻧﻲ )ﻣﺜﻼ زﺑﺎن دادهاي ﻓﺮﻋﻲ(‬ ‫ﻳﺎ واﺳﻂﻫﺎي دﻳﮕﺮ ﻣﺜﻞ واﺳﻂ ﮔﺮاﻓﻴﻜﻲ‪ ،‬واﺳﻂ ﻓﺮﻣﻲو‪ ...‬ﻋﻤﻞ ﻛﻨﺪ‪ .‬در ﺷﻜﻞ ‪،3-10‬‬ ‫ﻋﻨﺎﺻﺮ ﻣﺤﻴﻂ ﻧﺮماﻓﺰاري اﻳﻦ ﻣﻌﻤﺎري ﺑﺎ ﻓﺮض وﺟﻮد ﻳﻚ‬ ‫اﻳﻦ ﺷﻜﻞ‪ ،‬واﺣﺪﻫﺎﻳﻲ از‬

‫‪RDBMS‬‬

‫‪RDBMS‬‬

‫دﻳﺪه ﻣﻲﺷﻮد‪ .‬در‬

‫در ﻣﺎﺷﻴﻦ ﻣﺸﺘﺮي و ﺑﻘﻴﻪ واﺣﺪﻫﺎي آن در ﻣﺎﺷﻴﻦ‬

‫ﺧﺪﻣﺘﮕﺰار ﻗﺮار دارﻧﺪ‪.‬‬ ‫ﺑﺮاي ﺗﺴﻬﻴﻞ ﺗﻤﺎس ﺑﻴﻦ ﻣﺸﺘﺮي و ﺧﺪﻣﺘﮕﺰار‪ ،‬اﺑﺰارﻫﺎﻳﻲ ﻣﺜﻞ‬

‫‪ODBC‬‬

‫و‬

‫‪JDBC‬‬

‫و‪ ...‬ﺗﻮﻟﻴﺪ ﺷﺪهاﻧﺪ‪ .‬اﻳﻦ اﺑﺰارﻫﺎ در اﺳﺎس واﺳﻂ ﺑﺮﻧﺎﻣﻪ ﻛﺎرﺑﺮدي ﻫﺴﺘﻨﺪ ﻛﻪ ﺑﻪ ﻣﺸﺘﺮيﻫﺎ‬ ‫اﻣﻜﺎن ﻣﻲدﻫﻨﺪ ﺗﺎ ﭘﺮﺳﺶﻫﺎ ﺑﻪ ﺻﻮرت اﺣﻜﺎم‬

‫‪SQL‬‬

‫ﺗﻮﻟﻴﺪ ﺷﺪه و ﺑﻪ ﻣﺎﺷﻴﻦ ﺧﺪﻣﺘﮕﺰار‬

‫ﻓﺮﺳﺘﺎده ﺷﻮﻧﺪ‪ .‬ﺑﺎ اﺳﺘﻔﺎده از اﻳﻦ واﺳﻂ اﺳﺘﺎﻧﺪه‪ ،‬ﻫﺮ ﻣﺎﺷﻴﻦ ﻣﺸﺘﺮي ﻣﻲﺗﻮاﻧﺪ ﺑﺎ ﻫﺮ ﻣﺎﺷﻴﻦ‬ ‫ﺧﺪﻣﺘﮕﺰار ﻣﺘﺼﻞ ﺑﺎﺷﺪ و ﻧﻴﺎز ﻧﻴﺴﺖ ﻛﻪ ﻣﺤﻴﻂ ﺳﻴﺴﺘﻤﻲدو ﻣﺎﺷﻴﻦ‪ ،‬ﻫﻤﮕﻦ ﺑﺎﺷﺪ‪ .‬در‬

‫‪ 214‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﺑﻌﻀﻲ از ﻛﺎرﺑﺮدﻫﺎ‪ ،‬ﻣﻤﻜﻦ اﺳﺖ واﺳﻄﻬﺎي ﺧﺎص در ﻣﺎﺷﻴﻦ ﻣﺸﺘﺮي وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ‬ ‫و ﺣﺘﻲ ﺧﻮد ﻣﺎﺷﻴﻦ ﻣﺸﺘﺮي ﻫﻢ ﻣﻲﺗﻮاﻧﺪ ﻣﺎﺷﻴﻦ ﺧﺎﺻﻲ ﺑﺎﺷﺪ‪.‬‬

‫ﺷﻜﻞ ‪ 3-10‬ﻳﻚ ﻃﺮح ﻣﻤﻜﻦ از اﺟﺰاء ﻧﺮماﻓﺰاري ﻣﻌﻤﺎري ﻣﺸﺘﺮي‪-‬ﺧﺪﻣﺘﮕﺰار‬

‫در ﺑﻌﻀﻲ از ﺳﻴﺴﺘﻢﻫﺎ‪ ،‬ﺗﻤﺎس ﻣﺸﺘﺮي ﺑﺎ ﺧﺪﻣﺘﮕﺰار از ﻃﺮﻳﻖ ﻓﺮاﺧﻮان دور اﻧﺠﺎم‬ ‫ﻣﻲﺷﻮد‪ .‬ﺗﻤﺎم ﻓﺮاﺧﻮانﻫﺎي دور از ﺳﻮي ﻣﺎﺷﻴﻦ ﻣﺸﺘﺮي‪ ،‬در ﻳﻚ )ﻳﺎ ﭼﻨﺪ( ﺗﺮﻛﻨﺶ در‬ ‫ﻣﺎﺷﻴﻦ ﺧﺪﻣﺘﮕﺰار ﺟﺎي داده ﻣﻲﺷﻮﻧﺪ ﺗﺎ در اﻳﻦ ﻣﺎﺷﻴﻦ اﺟﺮا ﺷﻮﻧﺪ‪ ،‬ﺑﻪ ﮔﻮﻧﻪاي ﻛﻪ اﮔﺮ‬ ‫ﺗﺮاﻛﻨﺶ ﺑﻪ ﻫﺮ دﻟﻴﻠﻲ‪ ،‬ﻃﺮد ﺷﻮد‪ ،‬ﺧﺪﻣﺘﮕﺰار ﻣﻲﺗﻮاﻧﺪ ﺗﺎﺛﻴﺮات اﺟﺮاي ﻫﺮ ﻳﻚ از‬ ‫ﻓﺮاﺧﻮانﻫﺎي دور را از ﺑﻴﻦ ﺑﺮده‪ ،‬ﭘﺎﻳﮕﺎهدادهﻫﺎ را ﺑﻪ وﺿﻊ ﺻﺤﻴﺢ ﻗﺒﻞ از اﺟﺮاي‬ ‫ﺗﺮاﻛﻨﺶ ﺑﺮﮔﺮداﻧﺪ‪.‬‬

‫ﻣﻌﻤﺎريﻫﺎي ﻣﺨﺘﻠﻒ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده ‪215‬‬

‫‪ 3-1-2-2‬ﻃﺮﺣﻬﺎي ﻣﻌﻤﺎري‬ ‫‪ 1- 3-1-2-2‬از ﻧﻈﺮ ﺗﻌﺪاد ﻣﺸﺘﺮي و ﺧﺪﻣﺘﮕﺰار‬ ‫از ﻧﻈﺮ ﺗﻌﺪاد ﻣﺸﺘﺮي و ﺧﺪﻣﺖ ﮔﺬار ﻃﺮﺣﻬﺎي زﻳﺮ وﺟﻮد دارﻧﺪ‪:‬‬ ‫•‬

‫ﻳﻚ ﻣﺸﺘﺮي‪ -‬ﻳﻚ ﺧﺪﻣﺘﮕﺰار‬

‫•‬

‫ﭼﻨﺪ ﻣﺸﺘﺮي‪ -‬ﻳﻚ ﺧﺪﻣﺘﮕﺰار‬

‫•‬

‫ﻳﻚ ﻣﺸﺘﺮي‪ -‬ﭼﻨﺪ ﺧﺪﻣﺘﮕﺰار‬

‫•‬

‫ﭼﻨﺪ ﻣﺸﺘﺮي‪ -‬ﭼﻨﺪ ﺧﺪﻣﺘﮕﺰار‬

‫‪ 2- 3-1-2-2‬از ﻧﻈﺮ ﭘﻴﻜﺮ ﺑﻨﺪي ﺳﺨﺖاﻓﺰاري‬ ‫از ﻧﻈﺮ ﭘﻴﻜﺮﺑﻨﺪي ﺳﺨﺖ اﻓﺰاري ‪ ،‬دو ﻧﻮع ﻣﻌﻤﺎري ﺑﻪ ﺷﺮح زﻳﺮ وﺟﻮد دارد‪:‬‬ ‫•‬

‫ﻣﻌﻤﺎري ﺣﻮل ﻛﺎﻣﭙﻴﻮﺗﺮ ﺑﺰرگ‬

‫•‬

‫ﻣﻌﻤﺎري ﺣﻮل ﺷﺒﻜﻪ‬

‫ﻣﻌﻤﺎري ﺣﻮل ﻛﺎﻣﭙﻴﻮﺗﺮ ﺑﺰرگ‬ ‫در اﻳﻦ ﻃﺮح‪ ،‬ﻣﺎﺷﻴﻦ ﺧﺪﻣﺘﮕﺰار ﻳﻚ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺑﺰرگ اﺳﺖ و ﭘﺎﻳﮕﺎه داده ﻫﺎ روي ﻫﻤﻴﻦ‬ ‫ﻛﺎﻣﭙﻴﻮﺗﺮ اﻳﺠﺎد و ﻣﺪﻳﺮﻳﺖ ﻣﻲﺷﻮد و ﺗﻌﺪادي ﻛﺎﻣﭙﻴﻮﺗﺮ ﺷﺨﺼﻲ‪ ،‬از ﺧﺪﻣﺎت ﭘﺎﻳﮕﺎﻫﻲ‬ ‫اﻳﻦ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺑﺰرگ اﺳﺘﻔﺎده ﻣﻲ ﻛﻨﻨﺪ‪ .‬ﻣﺜﺎﻟﻲ از ﻃﺮح اﻳﻦ ﻣﻌﻤﺎري در ﺷﻜﻞ ‪4-10‬‬ ‫ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪.‬‬

‫ﺷﻜﻞ ‪ 4-10‬ﻣﻌﻤﺎري ﻣﺸﺘﺮي‪ -‬ﺧﺪﻣﺘﮕﺰار ﺣﻮل ﻛﺎﻣﭙﻴﻮﺗﺮ ﺑﺰرگ‬

‫‪ 216‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﻣﻌﻤﺎري ﺣﻮل ﺷﺒﻜﻪ‬ ‫در اﻳﻦ ﻃﺮح‪ ،‬ﺗﻌﺪادي ﻛﺎﻣﭙﻴﻮﺗﺮ ﺷﺨﺼﻲ ﺑﻪ ﻋﻨﻮان ﺧﺪﻣﺘﮕﺰار و ﺗﻌﺪادي دﻳﮕﺮ ﺑﻪ‬ ‫ﻋﻨﻮان ﻣﺸﺘﺮي‪ ،‬از ﻃﺮﻳﻖ ﺷﺒﻜﻪ ﺑﻬﻢ ﻣﺮﺗﺒﻂ اﻧﺪ‪ .‬ﻳﻚ )ﻳﺎ ﺑﻴﺶ از ﻳﻚ( ﻛﺎﻣﭙﻴﻮﺗﺮ‬ ‫ﺷﺨﺼﻲ‪ ،‬ﺧﺪﻣﺘﮕﺰار ﭘﺎﻳﮕﺎه داده ﻫﺎﺳﺖ و ﺧﺪﻣﺘﮕﺰاران دﻳﮕﺮي ﻫﻢ ﻣﻲ ﺗﻮاﻧﻨﺪ وﺟﻮد‬ ‫داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪ .‬ﻣﺜﺎﻟﻲ از ﻃﺮح اﻳﻦ ﻣﻌﻤﺎري در ﺷﻜﻞ ‪ 5-10‬دﻳﺪه ﻣﻲ ﺷﻮد‪.‬‬

‫‪ 4-1-2-2‬ﻣﺰاﻳﺎي ﻣﻌﻤﺎري ﻣﺸﺘﺮي‪ -‬ﺧﺪﻣﺘﮕﺰار‬ ‫در ﻣﻘﺎﻳﺴﻪ ﺑﺎ ﻣﻌﻤﺎري ﻣﺘﻤﺮﻛﺰ‪ ،‬اﻳﻦ ﻧﻮع ﻣﻌﻤﺎري ﻣﺰاﻳﺎي زﻳﺮ را دارد‪:‬‬ ‫•‬

‫ﺗﻘﺴﻴﻢ ﭘﺮدازش‬

‫•‬

‫ﻛﺎﻫﺶ ﺗﺮاﻓﻴﻚ ﺷﺒﻜﻪ )در ﻣﻌﻤﺎري ﺣﻮل ﺷﺒﻜﻪ(‬

‫•‬

‫اﺳﺘﻘﻼل اﻳﺴﺘﮕﺎﻫﻬﺎي ﻛﺎر‬

‫•‬

‫اﺷﺘﺮاك دادهﻫﺎ‬

‫ﺷﻜﻞ ‪ 5-10‬ﻣﻌﻤﺎري ﻣﺸﺘﺮي‪ -‬ﺧﺪﻣﺘﮕﺰار ﺣﻮل ﺷﺒﻜﻪ‬

‫ﻣﻌﻤﺎريﻫﺎي ﻣﺨﺘﻠﻒ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده ‪217‬‬

‫‪ 2-2-2‬ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﺗﻮزﻳﻊ ﺷﺪه‬ ‫‪ 1-2-2-2‬ﺗﻌﺮﻳﻒ‬ ‫ﻣﺠﻤﻮﻋﻪ اي از داده ﻫﺎي ذﺧﻴﺮه ﺷﺪه‪ ،‬ﻛﻪ ﻣﻨﻄﻘﺎً ﺑﻪ ﻳﻚ ﺳﻴﺴﺘﻢ ﺗﻌﻠﻖ دارﻧﺪ‪ ،‬وﻟﻲ در‬ ‫ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎي ﻣﺨﺘﻠﻒ ﻛﻪ در ﻳﻚ ﻳﺎ ﺑﻴﺶ از ﻳﻚ ﺷﺒﻜﻪ ﺗﻮزﻳﻊ ﺷﺪه اﻧﺪ‪ ،‬ﻗﺮار ﮔﺮﻓﺘﻪ اﻧﺪ‪.‬‬ ‫ﻣﻲ ﺗﻮان ﮔﻔﺖ ﻛﻪ در اﻳﻦ ﻣﻌﻤﺎري ﺗﻌﺪادي ﭘﺎﻳﮕﺎه دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه روي‬ ‫ﻛﺎﻣﭙﻴﻮﺗﺮ ﻫﺎي ﻣﺨﺘﻠﻒ دارﻳﻢ ﻛﻪ از ﻧﻈﺮ ﻛﺎرﺑﺮان‪ ،‬ﭘﺎﻳﮕﺎه واﺣﺪي ﻫﺴﺘﻨﺪ‪ .‬ﺑﻪ ﺑﻴﺎن دﻳﮕﺮ‪،‬‬ ‫اﻳﻦ ﻣﻌﻤﺎري ﻣﺠﻤﻮﻋﻪ اي اﺳﺖ از ﭼﻨﺪ ﭘﺎﻳﮕﺎه داده ﻣﻨﻄﻘﺎً ﻳﻜﭙﺎرﭼﻪ )ﻣﺠﺘﻤﻊ(‪ ،‬وﻟﻲ ﺑﻪ‬ ‫ﻃﻮر ﻓﻴﺰﻳﻜﻲ ﺗﻮزﻳﻊ ﺷﺪه روي ﻳﻚ ﺷﺒﻜﻪ ﻛﺎﻣﭙﻴﻮﺗﺮي‪ .‬ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﻴﺪ ﻛﻪ در اﻳﻦ‬ ‫ﻣﻌﻤﺎري‪ ،‬در ﺳﻄﺢ ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ ﭘﺎﻳﮕﺎه‪ ،‬در آﻏﺎز ﻳﻚ ﭘﺎﻳﮕﺎه داده ﻫﺎي ﻳﻜﭙﺎرﭼﻪ‬ ‫دارﻳﻢ ﻛﻪ ﻃﺮاح ﺑﺮ اﺳﺎس ﻳﻚ اﺳﺘﺮاﺗﮋي ﺗﻮزﻳﻊ و ﻳﻚ ﻃﺮح ﺗﺨﺼﻴﺺ ﻣﺸﺨﺺ‪،‬‬ ‫داده ﻫﺎﻳﺶ را در ﭼﻨﺪ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺗﻮزﻳﻊ ﻣﻲﻛﻨﺪ‪ .‬ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎ ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﭼﻨﺎن ﻫﻤﻜﺎري‬ ‫دارﻧﺪ ﻛﻪ ﻫﺮ ﻛﺎرﺑﺮ ﻣﻲ ﺗﻮاﻧﺪ ﺑﻪ داده ﻫﺎي ﻣﻮرد ﻧﻴﺎزش در ﻫﺮ ﻛﺎﻣﭙﻴﻮﺗﺮ دﺳﺘﻴﺎﺑﻲ داﺷﺘﻪ‬ ‫ﺑﺎﺷﺪ ﺑﻪ ﮔﻮﻧﻪ اي ﻛﻪ اﻧﮕﺎر دادهﻫﺎ در ﻛﺎﻣﭙﻴﻮﺗﺮ ﺧﻮدش ذﺧﻴﺮه ﺷﺪه ﺑﺎﺷﻨﺪ‪.‬‬ ‫در اﻳﻦ ﻣﻌﻤﺎري ﻫﺮ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺧﻮد ﻳﻚ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎهدادهﻫﺎﺳﺖ ﻳﻌﻨﻲ‪:‬‬ ‫ﭘﺎﻳﮕﺎهدادهﻫﺎ‪ ،‬ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ و ﻣﺪﻳﺮ اﻧﺘﻘﺎل دادهﻫﺎ دارد‪ .‬اﺻﻄﻼﺣﺎ‬ ‫ﻣﻲﮔﻮﻳﻴﻢ ﺗﻌﺪادي‬

‫‪DBMS‬‬

‫ﻣﺤﻠﻲ دارﻳﻢ و ﺑﺮاي اﻳﺠﺎد ﻫﻤﺎﻫﻨﮕﻲ ﺑﻴﻦ اﻳﻦ ﺳﻴﺴﺘﻢﻫﺎي‬

‫ﻣﺤﻠﻲ‪ ،‬ﻋﻨﺼﺮ ﻧﺮماﻓﺰاري ﺧﺎﺻﻲ ﻛﻪ ﻧﻮﻋﻲ ﮔﺴﺘﺮش‬ ‫در ﻫﺮ ﻛﺎﻣﭙﻴﻮﺗﺮ‪ ،‬ﻳﻚ‬

‫‪DDBMS‬‬

‫دارﻳﻢ‪ ،‬ﻳﻌﻨﻲ ﻳﻚ‬

‫‪DBMS‬‬

‫‪DBMS‬‬

‫اﺳﺖ‪ ،‬ﻻزم اﺳﺖ‪ .‬در واﻗﻊ‬

‫ﺑﺎ ﺗﻮاﻧﺶ اﻳﺠﺎد و ﻣﺪﻳﺮﻳﺖ‬

‫ﭘﺎﻳﮕﺎهدادهﻫﺎي ﺗﻮزﻳﻊ ﺷﺪه‪ .‬ﺑﻨﺎﺑﺮﻳﻦ ﻧﻤﺎي ﻛﻠﻲ ﻫﺮ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺑﻪ ﺻﻮرﺗﻲ اﺳﺖ ﻛﻪ در ﺷﻜﻞ‬ ‫‪ 6-10‬دﻳﺪه ﻣﻲﺷﻮد‪.‬‬

‫ﺷﻜﻞ ‪ 6-10‬ﻧﻤﺎي ﻳﻚ ﻛﺎﻣﭙﻴﻮﺗﺮ در ﻣﻌﻤﺎري ﺗﻮزﻳﻊ ﺷﺪه‬

‫‪ 218‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎ از ﻃﺮﻳﻖ اﻣﻜﺎﻧﺎت ﺷﺒﻜﻪاي )ﻣﺤﻠﻲ‪ ،‬ﮔﺴﺘﺮده و ﻳﺎ ﻣﺘﺤﺮك( ﺑﻪ ﻫﻢ‬ ‫ﻣﺮﺗﺒﻂاﻧﺪ و ﻫﺮ ﻛﺎﻣﭙﻴﻮﺗﺮ اﺟﺰا و ﻋﻨﺎﺻﺮ ﺳﺨﺖاﻓﺰاري و ﻧﺮماﻓﺰاري ﺧﻮد را دارد‪ .‬اﻳﻦ‬ ‫اﺟﺰا و ﻋﻨﺎﺻﺮ ﻣﻲﺗﻮاﻧﻨﺪ ﻫﻤﮕﻦ ﻳﺎ ﻧﺎﻫﻤﮕﻦ ﺑﺎﺷﻨﺪ‪ .‬ﻣﺜﺎﻟﻲ از ﻃﺮح ﻛﻠﻲ اﻳﻦ ﻣﻌﻤﺎري‬ ‫درﺷﻜﻞ‪ 7-10‬دﻳﺪه ﻣﻲﺷﻮد‪ .‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﻌﺮﻳﻒ اﻳﻦ ﻧﻮع ﻣﻌﻤﺎري و ﻃﺮح ﻛﻠﻲ آن‪،‬‬ ‫وﻳﮋﮔﻴﻬﺎي اﻳﻦ ﺳﻴﺴﺘﻢ را ﻣﻲﺗﻮان ﭼﻨﻴﻦ ﺑﺮﺷﻤﺮد‪:‬‬ ‫•‬

‫ﻣﺠﻤﻮﻋﻪاي اﺳﺖ از دادهﻫﺎي ﻣﻨﻄﻘﺎً ﻣﺮﺗﺒﻂ و اﺷﺘﺮاﻛﻲ‬

‫•‬

‫ﺑﻌﺾ ﺑﺨﺸﻬﺎ ﻣﻤﻜﻦ اﺳﺖ ﺑﻄﻮر ﺗﻜﺮاري )در ﭼﻨﺪ ﻧﺴﺨﻪ( در ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎ ذﺧﻴﺮه‬ ‫ﺷﺪه ﺑﺎﺷﻨﺪ‪.‬‬

‫•‬

‫ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎ از ﻃﺮﻳﻖ ﻳﻚ ﺷﺒﻜﻪ ﺑﻬﻢ ﻣﺮﺗﺒﻂاﻧﺪ‪.‬‬

‫•‬

‫دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه در ﻫﺮ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺗﺤﺖ ﻛﻨﺘﺮل ﻳﻚ ‪ DBMS‬اﺳﺖ‪.‬‬

‫•‬

‫‪DBMS‬‬

‫در ﻫﺮ ﻛﺎﻣﭙﻴﻮﺗﺮ‪ ،‬ﻣﻲﺗﻮاﻧﺪ ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي ﻣﺤﻠﻲ‪ ،‬را ﺑﻄﻮر‬

‫اﺗﻮﻣﺎﺗﻴﻚ اﺟﺮا ﻛﻨﺪ‪.‬‬ ‫•‬

‫ﻫﺮ ‪ DBMS‬ﺣﺪاﻗﻞ در اﺟﺮاي ﻳﻚ ﺑﺮﻧﺎﻣﻪ ﻛﺎرﺑﺮدي ﺳﺮﺗﺎﺳﺮي ﻣﺸﺎرﻛﺖ دارد‪.‬‬

‫ﺷﻜﻞ ‪ 7-10‬ﻣﻌﻤﺎري ﺗﻮزﻳﻊ ﺷﺪه ﺑﺎ ﺳﻪ ﻛﺎﻣﭙﻴﻮﺗﺮ‬

‫ﻣﻌﻤﺎريﻫﺎي ﻣﺨﺘﻠﻒ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده ‪219‬‬

‫‪ 2-2-2-2‬ﭘﻴﻜﺮﺑﻨﺪي ﺳﺨﺖاﻓﺰاري‬ ‫ﮔﻔﺘﻴﻢ ﻛﻪ اﺟﺰاء ﺗﺸﻜﻴﻞ دﻫﻨﺪه اﻳﻦ ﻣﻌﻤﺎري ﻣﻲ ﺗﻮاﻧﻨﺪ ﻫﻤﮕﻦ ﻳﺎ ﻧﺎ ﻫﻤﮕﻦ ﺑﺎﺷﻨﺪ‪ ،‬ﺑﻪ‬ ‫وﻳﮋه از ﻧﻈﺮ ﺳﺨﺖ اﻓﺰاري‪ ،‬ﭘﻴﻜﺮﺑﻨﺪي ﻫﺎي ﮔﻮﻧﺎﮔﻮﻧﻲ ﭘﻨﺪاﺷﺘﻨﻲ اﺳﺖ‪ .‬در ﻣﺜﺎل ﺷﻜﻞ‬ ‫‪ 8-10‬دو ﭘﻴﻜﺮﺑﻨﺪي دﻳﺪه ﻣﻲﺷﻮد‪ .‬در اﻳﻦ ﻣﻌﻤﺎري اﺟﺰاء زﻳﺮ ﻣﻲ ﺗﻮاﻧﻨﺪ ﻫﻤﮕﻦ ﻳﺎ ﻧﺎ‬ ‫ﻫﻤﮕﻦ ﺑﺎﺷﻨﺪ‪:‬‬ ‫•‬

‫ﺳﺨﺖاﻓﺰار ﭘﺮدازﺷﮕﺮ‬

‫•‬

‫ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ‬

‫•‬

‫ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهداده )ﺑﻮﻳﮋه از ﻧﻈﺮ ﻣﺪل دادهاي و زﺑﺎن ﭘﺎﻳﮕﺎﻫﻲ(‬

‫•‬

‫ﭘﺮوﺗﻮﻛﻠﻬﺎي ﺷﺒﻜﻪ‬

‫•‬

‫ﺳﺨﺖاﻓﺰار ارﺗﺒﺎط‬

‫•‬

‫ﺳﺨﺖاﻓﺰار ذﺧﻴﺮه ﺳﺎزي‬

‫•‬

‫ﺗﺴﻬﻴﻼت و اﺑﺰارﻫﺎي )ﻧﺮماﻓﺰاري( ﺟﺎﻧﺒﻲ‬

‫ﺷﻜﻞ ‪ 8-10‬دو ﭘﻴﻜﺮﺑﻨﺪي ﺳﺨﺖاﻓﺰاري در ﻣﻌﻤﺎري ﺗﻮزﻳﻊ ﺷﺪه‬

‫‪ 220‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪ 3-2-2- 2‬ﻗﻮاﻋﺪ‬ ‫اﺻﻞ ﻣﻬﻢ در ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﺗﻮزﻳﻊ ﺷﺪه اﻳﻦ اﺳﺖ ﻛﻪ "ﺳﻴﺴﺘﻢ" ﺑﺎﻳﺪ ﺟﻨﺎن‬ ‫ﻋﻤﻞ ﻛﻨﺪ ﻛﻪ ﻛﺎرﺑﺮان دﻗﻴﻘﺎ ﻣﺜﻞ ﻣﺤﻴﻂ ﭘﺎﻳﮕﺎه داده ﻫﺎي ﻣﺘﻤﺮﻛﺰ ﻣﻌﻤﻮﻟﻲ از آن اﺳﺘﻔﺎده‬ ‫ﻛﻨﻨﺪ )و اﻳﻦ وﻳﮋﮔﻲ‪ ،‬ﻳﻜﻲ از ﺗﻔﺎوت ﻫﺎي اﻳﻦ ﻣﻌﻤﺎري ﺑﺎ ﻣﻌﻤﺎري ﻣﺸﺘﺮي‪ -‬ﺧﺪﻣﺘﮕﺰار‬ ‫اﺳﺖ(‪ .‬ﺑﺮاي رﻋﺎﻳﺖ اﻳﻦ اﺻﻞ ﻣﻬﻢ‪ ،‬در ﻫﺮ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﺗﻮزﻳﻊ ﺷﺪه ﻗﻮاﻋﺪي ﺑﺎﻳﺪ‬ ‫رﻋﺎﻳﺖ ﺷﻮﻧﺪ ﻛﻪ در واﻗﻊ اﻫﺪاف اﻳﻦ ﺳﻴﺴﺘﻢ ﻫﻢ ﻫﺴﺘﻨﺪ‪ .‬ﺑﺮﺧﻲ از اﻳﻦ ﻋﻮاﻣﻞ‬ ‫ﻋﺒﺎرﺗﻨﺪ از‪:‬‬ ‫•‬

‫ﺧﻮد ﻣﺨﺘﺎري ﻣﺤﻠﻲ )داﺧﻠﻲ(‬

‫•‬

‫ﺗﺪاوم ﻋﻤﻠﻴﺎت‬

‫•‬

‫ﻧﺎواﺑﺴﺘﮕﻲ ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎ ﺑﻪ ﻛﺎﻣﭙﻴﻮﺗﺮ اﺻﻠﻲ‬

‫•‬

‫ﻧﺎواﺑﺴﺘﮕﻲ ﺑﺮﻧﺎﻣﻪﻫﺎ ﺑﻪ ﻣﻜﺎن ذﺧﻴﺮه ﺳﺎزي دادهﻫﺎ‬

‫•‬

‫ﻧﺎواﺑﺴﺘﮕﻲ ﺑﺮﻧﺎﻣﻪﻫﺎ ﺑﻪ ﻃﺮز ﺟﺎﻳﺪﻫﻲ دادهﻫﺎ در ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎ‪.‬‬

‫•‬

‫ﭘﺮدازش ﭘﺮﺳﺸﻬﺎ ﺑﻪ ﮔﻮﻧﻪاي ﺗﻮزﻳﻊ ﺷﺪه‬

‫•‬

‫ﻧﺎواﺑﺴﺘﮕﻲ ﺑﺮﻧﺎﻣﻪﻫﺎ ﺑﻪ ﺳﺨﺖاﻓﺰار‬

‫•‬

‫ﻧﺎواﺑﺴﺘﮕﻲ ﺑﺮﻧﺎﻣﻪﻫﺎ ﺑﻪ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ‬

‫•‬

‫ﻧﺎواﺑﺴﺘﮕﻲ ﺑﺮﻧﺎﻣﻪﻫﺎ ﺑﻪ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ‬

‫•‬

‫ﻧﺎواﺑﺴﺘﮕﻲ ﺑﺮﻧﺎﻣﻪﻫﺎ ﺑﻪ ﺷﺒﻜﻪ‬

‫‪ 4-2-2-2‬ﻣﺰاﻳﺎ‬ ‫ﺑﺮﺧﻲ از ﻣﺰاﻳﺎي اﻳﻦ ﻣﻌﻤﺎري ﻋﺒﺎرﺗﺴﺖ از‪:‬‬ ‫•‬

‫ﺳﺎزﮔﺎري و ﻫﻤﺎﻫﻨﮕﻲ ﺑﺎ ﻣﺎﻫﻴﺖ ﺳﺎزﻣﺎنﻫﺎي ﻧﻮﻳﻦ‬

‫•‬

‫ﻛﺎراﻳﻲ ﺑﻴﺸﺘﺮ در ﭘﺮدازش دادهﻫﺎ ﺑﻪ وﻳﮋه در ﭘﺎﻳﮕﺎهدادهﻫﺎي ﺑﺰرگ‬

‫•‬

‫دﺳﺘﻴﺎﺑﻲ ﺑﻬﺘﺮ ﺑﻪ دادهﻫﺎ‬

‫•‬

‫اﺷﺘﺮاك دادهﻫﺎ‬

‫•‬

‫اﻓﺰاﻳﺶ ﭘﺮدازش ﻣﻮازي‬

‫•‬

‫ﻛﺎﻫﺶ ﻫﺰﻳﻨﻪ ارﺗﺒﺎﻃﺎت‬

‫•‬

‫ﺗﺴﻬﻴﻞ ﮔﺴﺘﺮش ﺳﻴﺴﺘﻢ‬

‫ﻣﻌﻤﺎريﻫﺎي ﻣﺨﺘﻠﻒ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده ‪221‬‬ ‫•‬

‫اﺳﺘﻔﺎده از ﭘﺎﻳﮕﺎهدادهﻫﺎي از ﻗﺒﻞ ﻣﻮﺟﻮد‬

‫‪ 5-2-2-2‬ﻣﻌﺎﻳﺐ‬ ‫اﻳﻦ ﻣﻌﻤﺎري ﻣﻌﺎﻳﺒﻲ ﻫﻢ دارد از ﺟﻤﻠﻪ‪:‬‬ ‫•‬

‫ﭘﻴﭽﻴﺪﮔﻲ ﻃﺮاﺣﻲ ﺳﻴﺴﺘﻢ‬

‫•‬

‫ﭘﻴﭽﻴﺪﮔﻲ ﭘﻴﺎده ﺳﺎزي‬

‫•‬

‫ﻛﺎﻫﺶ ﻛﺎراﻳﻲ در ﺑﺮﺧﻲ ﻣﻮارد‬

‫•‬

‫ﻫﺰﻳﻨﻪ ﺑﻴﺸﺘﺮ‬

‫•‬

‫ﻣﺼﺮف ﺣﺎﻓﻈﻪ ﺑﻴﺸﺘﺮ‬

‫‪ 3-2-2‬ﻣﻌﻤﺎري ﺑﺎ ﭘﺮدازش ﻣﻮازي‬ ‫اﻳﻦ ﻣﻌﻤﺎري ﺑﺎ ﺳﺎﺧﺖ و ﮔﺴﺘﺮش ﻣﺎﺷﻴﻦ ﻫﺎي ﻣﻮازي‪ ،‬ﺑﺮاي اﻳﺠﺎد ﭘﺎﻳﮕﺎه داده ﻫﺎي‬ ‫ﺧﻴﻠﻲ ﺑﺰرگ و ﻧﻴﺰ در ﺳﻴﺴﺘﻢ ﻫﺎﻳﻲ ﻛﻪ ﭼﻨﺪ ﻫﺰار ﺗﺮاﻛﻨﺶ در ﺛﺎﻧﻴﻪ را ﭘﺮدازش‬ ‫ﻣﻲ ﻛﻨﻨﺪ ‪ ،‬ﻣﻮرد ﺗﻮﺟﻪ ﻗﺮار ﮔﺮﻓﺖ‪ .‬ﮔﻮﻧﻪ ﮔﺴﺘﺮش ﻳﺎﻓﺘﻪ ﻣﻌﻤﺎري ﺗﻮزﻳﻊ ﺷﺪه اﺳﺖ و‬ ‫ﺑﺮاي ﺗﺎﻣﻴﻦ ﻛﺎراﻳﻲ ﺑﻴﺸﺘﺮ‪ ،‬دﺳﺘﻴﺎﺑﻲ ﭘﺬﻳﺮي ﺑﺎﻻ و ﮔﺴﺘﺮش ﭘﺬﻳﺮي ﺳﺮﻳﻊ ﻃﺮاﺣﻲ‬ ‫ﻣﻲ ﺷﻮد‪ .‬در اﻳﻨﮕﻮﻧﻪ ﺳﻴﺴﺘﻢﻫﺎ ﻣﻌﻤﻮﻻً ﺗﻌﺪاد زﻳﺎدي ﺗﺮاﻛﻨﺶ در ﺛﺎﻧﻴﻪ )ﺣﺪود ﭼﻨﺪ‬ ‫ﻫﺰار( و ﺑﻄﻮر ﻣﻮازي اﺟﺮا ﻣﻲ ﺷﻮﻧﺪ‪ .‬ﻣﻄﺎﻟﻌﻪ ﻣﺎﺷﻴﻦ ﻫﺎي ﻣﻮازي از ﺣﺪود اﻳﻦ درس‬ ‫ﺧﺎرج اﺳﺖ‪ ،‬ﺗﻨﻬﺎ اﺷﺎره ﻣﻲﺷﻮد ﻛﻪ ﻣﺎﺷﻴﻦ ﻣﻮازي ﺑﺮ اﺳﺎس ﻳﻜﻲ از دو ﻃﺮح ﻛﻠﻲ‬ ‫زﻳﺮ ﻃﺮاﺣﻲ و ﺗﻮﻟﻴﺪ ﻣﻲ ﺷﻮد‪:‬‬ ‫•‬

‫ﭼﻨﺪ ﭘﺮدازﻧﺪه ﻗﻮي )دو ﻳﺎ ﭼﻬﺎر در ﺣﺎل ﺣﺎﺿﺮ و ﮔﺎه ﺑﻴﺸﺘﺮ(‬

‫•‬

‫ﺗﻌﺪادي ﭘﺮدازﻧﺪه ﻛﻮﭼﻚ )ﮔﺎه ﭼﻨﺪ ﺳﻄﺮ ﻳﺎ ﺣﺘﻲ ﺑﻴﺸﺘﺮ(‬

‫در ﻣﺎﺷﻴﻦ ﺑﺎ ﭘﺮدازش ﻣﻮازي دو ﻫﺪف اﺳﺎﺳﻲ وﺟﻮد دارد‪:‬‬ ‫•‬

‫اﻓﺰاﻳﺶ ﺳﺮﻋﺖ )ﻛﺎراﻳﻲ(‪ ،‬ﻳﻌﻨﻲ اﻧﺠﺎم ﻳﻚ ﻛﺎر در زﻣﺎن ﻛﻤﺘﺮ‬

‫•‬

‫اﻓﺰاﻳﺶ ﻣﻘﻴﺎس ﻛﺎر )ﮔﺴﺘﺮش ﻛﺎر( ﻳﻌﻨﻲ اﻧﺠﺎم ﻛﺎرﻫﺎي ﺑﺰرگ ﺗﺮ در زﻣﺎن‬ ‫ﻛﻤﺘﺮ‪.‬‬

‫‪ 222‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪ 1-3-2-2‬ﻃﺮح ﻛﻠﻲ ﻣﻌﻤﺎري‬ ‫اﻳﻦ ﻣﻌﻤﺎري ﺑﻪ ﺻﻮرت ﻛﻠﻲ در ﺷﻜﻞ ‪ 9-10‬دﻳﺪه ﻣﻲ ﺷﻮد‪ .‬ﻣﻲ ﺑﻴﻨﻴﻢ ﻛﻪ در ﭼﻨﻴﻦ‬ ‫ﺳﻴﺴﺘﻤﻲ ‪ ،‬در اﺳﺎس ﺳﻪ واﺣﺪ اﺻﻠﻲ وﺟﻮد دارد‪:‬‬ ‫•‬

‫ﻣﺪﻳﺮ ﺗﻤﺎسﻫﺎي اﺟﺮاﻳﻲ ﻛﺎرﺑﺮان‬

‫•‬

‫ﻣﺪﻳﺮ درﺧﻮاﺳﺖﻫﺎ‬

‫•‬

‫ﻣﺪﻳﺮ دادهﻫﺎ‬

‫ﺷﻜﻞ ‪ 9-10‬ﻃﺮح ﻛﻠﻲ ﻣﻌﻤﺎري ﻣﻮازي‬

‫‪ 2-3-2-2‬ﻃﺮحﻫﺎ‬ ‫ﺑﺮاي اﻳﺠﺎد ﭘﺎﻳﮕﺎه دادهﻫﺎ ﺑﺎ ﻣﻌﻤﺎري ﭘﺮدازش ﻣﻮازي‪ ،‬ﺑﻪ ﻃﻮر ﻛﻠﻲ‪ ،‬ﭼﻬﺎر ﻣﺪل ﻳﺎ‬ ‫ﻃﺮح وﺟﻮد دارد‪:‬‬ ‫•‬

‫ﻣﻌﻤﺎري ﺑﺎ ﺣﺎﻓﻈﻪ ﻣﺸﺘﺮك‬

‫•‬

‫ﻣﻌﻤﺎري ﺑﺎ دﻳﺴﻚ ﻣﺸﺘﺮك‬

‫•‬

‫ﻣﻌﻤﺎري ﺑﻲ اﺟﺰاء ﻣﺸﺘﺮك‬

‫•‬

‫ﻣﻌﻤﺎري ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‬

‫ﻣﻌﻤﺎريﻫﺎي ﻣﺨﺘﻠﻒ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده ‪223‬‬

‫ﺑﺮاي اﻳﺠﺎد ﭘﺎﻳﮕﺎهدادهﻫﺎي ﻣﻮازي‪ ،‬ﻋﻼوه ﺑﺮ اﺳﺘﻔﺎده از ﻳﻜﻲ از اﻳﻦ ﻣﻌﻤﺎريﻫﺎ‪،‬‬ ‫روشﻫﺎﻳﻲ ﻧﻴﺰ ﺑﺮاي ﺟﺎﻳﺪﻫﻲ دادهﻫﺎ روي دﻳﺴﻚﻫﺎ و ﻳﺎ در ﺣﺎﻓﻈﻪﻫﺎي ﻧﻬﺎن و ﻧﻴﺰ ﺑﻬﻴﻨﻪ‬ ‫ﺳﺎزش ﭘﺮﺳﺶﻫﺎي ﻛﺎرﺑﺮان ﺑﻪ ﻛﺎر ﮔﺮﻓﺘﻪ ﻣﻲﺷﻮﻧﺪ‪ ،‬ﺑﻨﺎﺑﺮﻳﻦ ﺻﺮف وﺟﻮد ﻣﻌﻤﺎري‬ ‫ﻣﻮازي ﺑﺮاي اﻳﺠﺎد ﭘﺎﻳﮕﺎهدادهﻫﺎي ﻣﻮازي ﻛﺎﻓﻲ ﻧﻴﺴﺖ‪.‬‬

‫‪ 1-2-3-2-2‬ﻣﻌﻤﺎري ﺑﺎ ﺣﺎﻓﻈﻪ ﻣﺸﺘﺮك‬ ‫در اﻳﻦ ﻃﺮح‪ ،‬ﭘﺮدازﻧﺪهﻫﺎ ﺑﻪ ﺣﺎﻓﻈﻪ ﻣﺸﺘﺮك دﺳﺘﻴﺎﺑﻲ دارﻧﺪ‪ .‬ﻣﺰﻳﺖ اﻳﻦ ﻃﺮح اﻳﻦ‬ ‫اﺳﺖ ﻛﻪ ارﺗﺒﺎط ﺑﻴﻦ ﭘﺮدازﻧﺪه ﻫﺎ ﺑﻄﻮر ﻛﺎرا اﻧﺠﺎم ﻣﻲﺷﻮد‪ .‬زﻳﺮا ﭘﻴﺎم ﻫﺎي ﺑﻴﻦ‬ ‫ﭘﺮدازﻧﺪه ﻫﺎ ﺑﺎ ﻧﻮﺷﺘﻦ در ﺣﺎﻓﻈﻪ ﻣﺒﺎدﻟﻪ ﻣﻲ ﺷﻮد ﻛﻪ زﻣﺎن آن ﻛﻤﺘﺮ از ﻣﻴﻜﺮوﺛﺎﻧﻴﻪ اﺳﺖ‪.‬‬ ‫داده ﻫﺎي ذﺧﻴﺮه ﺷﺪه در ﺣﺎﻓﻈﻪ در اﺧﺘﻴﺎر ﻫﻤﻪ ﭘﺮدازﻧﺪهﻫﺎ ﻗﺮار دارﻧﺪ‪.‬‬

‫ﺷﻜﻞ ‪ 10-10‬ﻣﻌﻤﺎري ﺑﺎ ﺣﺎﻓﻈﻪ ﻣﺸﺘﺮك‬

‫ﻋﻴﺐ اﻳﻦ ﻣﻌﻤﺎري در اﻳﻦ اﺳﺖ ﻛﻪ ﻧﻤﻲﺗﻮان ﺑﻴﺶ از ‪ 32‬ﻳﺎ ‪ 64‬ﭘﺮدازﻧﺪه داﺷﺖ‪،‬‬ ‫زﻳﺮا اﺣﺘﻤﺎل ﺑﺮوز ﺗﻨﮕﻨﺎ در ﺑﺎزﺳﺎي ﺣﺎﻓﻈﻪاي ﻳﺎ ﺷﺒﻜﻪ ارﺗﺒﺎﻃﻲ اﻓﺰاﻳﺶ ﻣﻲﻳﺎﺑﺪ‪ .‬اﻟﺒﺘﻪ اﮔﺮ‬

‫‪ 224‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫در ﻫﺮ ﭘﺮدازﻧﺪه ﺣﺎﻓﻈﻪ ﻧﻬﺎن ﺑﺎاﻧﺪازه ﺑﺰرگ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ‪ ،‬دﻓﻌﺎت ﻣﺮاﺟﻌﻪ ﺑﻪ ﺣﺎﻓﻈﻪ‬ ‫اﺻﻠﻲ ﻛﺎﻫﺶ ﻣﻲﻳﺎﺑﺪ‪ ،‬ﻫﺮ ﭼﻨﺪ ﻧﻤﻲﺗﻮان ﻫﻤﻪ دادهﻫﺎ را در اﻳﻦ ﺑﺎﻓﺮﻫﺎ ﺟﺎي داد‪ .‬ﻃﺮح‬ ‫ﻛﻠﻲ اﻳﻦ ﻣﻌﻤﺎري در ﺷﻜﻞ ‪ 10-10‬ﻧﺸﺎن داده ﺷﺪه اﺳﺖ )در اﻳﻦ ﻃﺮح و ﻃﺮحﻫﺎي‬ ‫ﺑﻌﺪي ﻣﻌﻤﺎري ﻣﻮازي‪ P ،‬ﺑﻪ ﺟﺎي ﭘﺮدازﻧﺪه و ‪ M‬ﺑﻪ ﺟﺎي ﺣﺎﻓﻈﻪ اﺳﺖ(‪.‬‬

‫‪ 2-2-3-2-2‬ﻣﻌﻤﺎري ﺑﺎ دﻳﺴﻚﻫﺎي ﻣﺸﺘﺮك‬ ‫در اﻳﻦ ﻃﺮح‪ ،‬ﺗﻤﺎم ﭘﺮدازﻧﺪهﻫﺎ ﺑﻪ ﺗﻤﺎم دﻳﺴﻚ ﻫﺎ از ﻃﺮﻳﻖ ﺷﺒﻜﻪ ارﺗﺒﺎﻃﻲ دﺳﺘﻴﺎﺑﻲ‬ ‫دارﻧﺪ‪ .‬ﻫﺮ ﭘﺮدازﻧﺪه‪ ،‬ﺣﺎﻓﻈﻪ اﺧﺘﺼﺎﺻﻲ ﺧﻮد را دارد‪ .‬ﻣﺰاﻳﺎي اﻳﻦ ﻧﻮع ﻣﻌﻤﺎري ﺑﻪ‬ ‫ﺷﺮح ذﻳﻞ ﻣﻲ ﺑﺎﺷﺪ‪:‬‬ ‫•‬

‫ﻋﺪم ﺑﺮوز ﺗﻨﮕﻨﺎ در ﺑﺎسﻫﺎي ﺣﺎﻓﻈﻪ‬

‫•‬

‫ﺗﺴﻬﻴﻞ ﺗﺤﻤﻞ ﺧﺮاﺑﻲ‪ ،‬زﻳﺮا در ﺻﻮرت ﺧﺮاب ﺷﺪن ﻳﻚ ﭘﺮدازﻧﺪه ﻳﺎ ﺣﺎﻓﻈﻪ‪،‬‬ ‫ﭘﺮدازﻧﺪه دﻳﮕﺮ ﻣﻲﺗﻮاﻧﺪ ﻛﺎر را اداﻣﻪ دﻫﺪ‪ .‬ﻣﻲﺗﻮان از ﺳﻴﺴﺘﻢ ‪ RAID‬ﻫﻢ اﺳﺘﻔﺎده‬ ‫ﻛﺮد‪.‬‬

‫ﺷﻜﻞ ‪ 11-10‬ﻣﻌﻤﺎري ﺑﺎ دﻳﺴﻚﻫﺎي ﻣﺸﺘﺮك‬

‫ﻣﻌﻤﺎريﻫﺎي ﻣﺨﺘﻠﻒ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده ‪225‬‬

‫اﻳﻦ ﻣﻌﻤﺎري داراي ﻋﻴﻮﺑﻲ ﻧﻴﺰ اﺳﺖ ﻛﻪ ﻣﻬﻤﺘﺮﻳﻦ ﻋﻴﺐ آن دﺷﻮاري در ﮔﺴﺘﺮش‬ ‫ﺳﻴﺴﺘﻢ اﺳﺖ‪ ،‬زﻳﺮا ﺑﺎ اﻓﺰاﻳﺶ دﻳﺴﻚﻫﺎ و ﭘﺮدازﻧﺪهﻫﺎ‪ ،‬در ارﺗﺒﺎط ﺑﻴﻦ اﺟﺰا‪ ،‬ﺗﻨﮕﻨﺎ اﻳﺠﺎد‬ ‫ﻣﻲﺷﻮد و ﺳﺮﻋﺖ ارﺗﻘﺎ ﺑﻴﻦ آﻧﻬﺎ ﻛﺎﻫﺶ ﻣﻲﻳﺎﺑﺪ‪ .‬ﻃﺮح ﻛﻠﻲ اﻳﻦ ﺳﻴﺴﺘﻢ در ﺷﻜﻞ ‪11-10‬‬ ‫ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪.‬‬

‫‪ 3-2-3-2-2‬ﻣﻌﻤﺎري ﺑﻲ اﺟﺰا ﻣﺸﺘﺮك‬ ‫در اﻳﻦ ﻃﺮح‪ ،‬ﻫﺮ ﻣﺎﺷﻴﻦ‪ ،‬ﭘﺮدازﻧﺪه‪ ،‬ﺣﺎﻓﻈﻪ و دﻳﺴﻚ )ﻫﺎي( ﺧﻮد را دارد‪ .‬ﻳﻚ ﺷﺒﻜﻪ‬ ‫ارﺗﺒﺎﻃﻲ ﺑﺎ ﺳﺮﻋﺖ ﺑﺎﻻ اﻳﻦ ﻣﺎﺷﻴﻦ ﻫﺎ را ﺑﻪ ﻫﻢ ﻣﺮﺗﺒﻂ ﻣﻲ ﻛﻨﺪ‪ .‬ﻫﺮ ﻣﺎﺷﻴﻦ ﻧﻮﻋﻲ‬ ‫ﺧﺪﻣﺖ ﮔﺰار ﭘﺎﻳﮕﺎﻫﻲ اﺳﺖ‪ .‬در ﺷﻜﻞ ‪ ،12-10‬ﻃﺮح ﻛﻠﻲ اﻳﻦ ﻣﻌﻤﺎري دﻳﺪه ﻣﻲ ﺷﻮد‪.‬‬ ‫ﻣﺰﻳﺖ اﻳﻦ ﻧﻮع ﻣﻌﻤﺎري در ﺗﺴﻬﻴﻞ ﮔﺴﺘﺮش اﺳﺖ‪ .‬وﻟﻲ ﻋﻴﺐ اﻳﻦ ﻧﻮع ﻣﻌﻤﺎري در‬ ‫اﻳﻦ اﺳﺖ ﻛﻪ ﻫﺰﻳﻨﻪ ارﺗﺒﺎط و دﺳﺘﻴﺎﺑﻲ ﻫﺎي ﻏﻴﺮ ﻣﺤﻠﻲ زﻳﺎد اﺳﺖ‪.‬‬

‫ﺷﻜﻞ ‪ 12-10‬ﻣﻌﻤﺎري ﺑﻲ اﺟﺰاء ﻣﺸﺘﺮك‬

‫‪ 226‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪ 4-2-3-2-2‬ﻣﻌﻤﺎري ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‬ ‫در اﻳﻦ ﻃﺮح‪ ،‬وﻳﮋﮔﻲ ﻫﺎي ﺳﻪ ﻃﺮح ﭘﻴﺶ ﺑﺎ ﻫﻢ وﺟﻮد دارد‪ .‬در ﺑﺎﻻﺗﺮﻳﻦ ﺳﻄﺢ‬ ‫ﺳﻴﺴﺘﻢ‪ ،‬ﺗﻌﺪادي ﮔﺮه ﺑﺎ ﺷﺒﻜﻪ ارﺗﺒﺎﻃﻲ ﺑﻪ ﻫﻢ ﻣﺮﺗﺒﻂ اﻧﺪ و اﺟﺰا ﻣﺸﺘﺮك ﻧﺪارﻧﺪ‪ .‬ﭘﺲ‬ ‫در اﻳﻦ ﺳﻄﺢ‪ ،‬ﻣﻌﻤﺎري ﺑﻲ اﺷﺘﺮاك دارﻳﻢ‪ .‬ﻫﺮ ﮔﺮه ﺧﻮد ﻣﻲﺗﻮاﻧﺪ ﺗﻌﺪاد ﻛﻤﻲ ﭘﺮدازﻧﺪه‬ ‫ﺑﺎ ﺣﺎﻓﻈﻪ ﻣﺸﺘﺮك داﺷﺘﻪ ﺑﺎﺷﺪ ﻳﺎ ﻳﻚ ﺳﻴﺴﺘﻢ ﺑﺎ دﻳﺴﻚﻫﺎي ﻣﺸﺘﺮك ﺑﺎﺷﺪ‪ .‬ﺑﻨﺎﺑﺮﻳﻦ‬ ‫ﻳﻚ ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ از ﻣﻌﻤﺎريﻫﺎي ﭘﻴﺶ ﮔﻔﺘﻪ اﻳﺠﺎد ﻣﻲ ﺷﻮد‪ .‬ﻃﺮح ﻛﻠﻲ اﻳﻦ ﻣﻌﻤﺎري‬ ‫در ﺷﻜﻞ ‪ 13-10‬دﻳﺪه ﻣﻲ ﺷﻮد‪.‬‬

‫ﺷﻜﻞ ‪ 13-10‬ﻣﻌﻤﺎري ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‬

‫‪ 4-2-2‬ﻣﻌﻤﺎري ﭼﻨﺪ ﭘﺎﻳﮕﺎﻫﻲ‬ ‫اﻳﻦ ﻣﻌﻤﺎري ﻧﻮﻋﻲ ﻣﻌﻤﺎري ﻧﺎﻣﺘﻤﺮﻛﺰ اﺳﺖ ﻛﻪ در آن‪ ،‬ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎ ﺧﻮد ﻣﺨﺘﺎري‬ ‫ﻛﺎﻣﻞ دارﻧﺪ‪ .‬در ﺳﺎﻟﻬﺎي اﺧﻴﺮ ﮔﺮاﻳﺶ زﻳﺎدي ﺑﻪ اﻳﻦ ﻣﻌﻤﺎري اﻳﺠﺎد ﺷﺪه اﺳﺖ‪ .‬در‬ ‫اﻳﻦ ﻣﻌﻤﺎري‪ ،‬ﻣﻌﻤﻮﻻً ﭼﻨﺪ ﺳﻴﺴﺘﻢ ﺑﺎ ﻣﻌﻤﺎري ﺗﻮزﻳﻊ ﺷﺪه و ﻳﺎ ﭼﻨﺪ ﺳﻴﺴﺘﻢ ﺑﺎ‬ ‫ﻣﻌﻤﺎري ﻣﺘﻤﺮﻛﺰ از ﻗﺒﻞ وﺟﻮد دارد و ﻫﺮ ﺳﻴﺴﺘﻢ‪ ،‬روي ﻋﻤﻠﻴﺎت ﻣﺤﻠﻲ ﺧﻮد ﻛﻨﺘﺮل‬

‫ﻣﻌﻤﺎريﻫﺎي ﻣﺨﺘﻠﻒ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده ‪227‬‬

‫ﻛﺎﻣﻞ دارد‪ .‬اﻣﺎ ﺑﺮاي آﻧﻜﻪ ﻛﺎرﺑﺮان ﺑﺘﻮاﻧﻨﺪ ﻧﻴﺎزﻫﺎي اﻃﻼﻋﺎﺗﻲ ﺧﻮد را ﺗﺎﻣﻴﻦ ﻛﻨﻨﺪ‬ ‫ﺑﻲ آﻧﻜﻪ ﻣﺴﺘﻘﻴﻤﺎ ﺑﺎ اﺟﺰاء ﻣﻌﻤﺎري ﻣﺮﺗﺒﻂ ﺑﺎﺷﻨﺪ و در واﻗﻊ ﺑﺘﻮاﻧﻨﺪ از ﻳﻚ ﺳﻴﺴﺘﻢ‬ ‫ﭼﻨﺪ ﭘﺎﻳﮕﺎﻫﻲ ﺑﻬﺮه ﺑﺮداري ﻛﻨﻨﺪ‪ ،‬ﺑﻪ ﻳﻚ ﻻﻳﻪ ﻧﺮم اﻓﺰاري ﺧﺎﺻﻲ ﻧﻴﺎز اﺳﺖ‪ .‬اﻳﻦ ﻻﻳﻪ‬ ‫ﻧﺮم اﻓﺰاري اﻣﻜﺎن ﻣﻲ دﻫﺪ ﺗﺎ در ﻫﺮ ﺳﻴﺴﺘﻢ‪ ،‬ﻣﺪﻳﺮ ﭘﺎﻳﮕﺎه دادهﻫﺎ روي داده ﻫﺎي ﭘﺎﻳﮕﺎه‬ ‫ﺧﻮد ﻛﻨﺘﺮل ﻛﺎﻣﻞ داﺷﺘﻪ ﺑﺎﺷﺪ و ﻧﻴﺎزي ﺑﻪ ﻛﻨﺘﺮل ﻣﺘﻤﺮﻛﺰ ﻧﺒﺎﺷﺪ و در ﻋﻴﻦ ﺣﺎل‬ ‫ﺧﺪﻣﺎت ﻻزم ﺑﻪ ﻛﺎرﺑﺮان داده ﺷﻮد‪.‬‬ ‫اﻳﻦ ﻻﻳﻪ ﻧﺮماﻓﺰاري در ﺳﻄﺢ ﺑﺎﻻﺗﺮ از ‪DBMS‬ﻫﺎ و اﺣﻴﺎﻧﺎ ﺳﻴﺴﺘﻢﻫﺎي ﻓﺎﻳﻠﻴﻨﮓ‬ ‫ﻣﻮﺟﻮد در ﭘﻴﻜﺮ ﺑﻨﺪي ﺳﻴﺴﺘﻢ ﭼﻨﺪ ﭘﺎﻳﮕﺎﻫﻲ‪ ،‬ﻗﺮار دارد‪ .‬اﻳﻦ ﻻﻳﻪ ﭼﻨﺎن ﻋﻤﻞ ﻣﻲﻛﻨﺪ ﻛﻪ‬ ‫ﻛﺎرﺑﺮان ﺳﻴﺴﺘﻢﻫﺎي ﻣﺨﺘﻠﻒ‪ ،‬ﻣﺠﻤﻮﻋﻪ ﭘﺎﻳﮕﺎهﻫﺎ را ﺑﻪ ﺻﻮرت ﻳﻚ ﭘﺎﻳﮕﺎه واﺣﺪ ﻣﻲﺑﻴﻨﻨﺪ‪.‬‬ ‫واﺿﺢ اﺳﺖ ﻛﻪ در ﺳﻴﺴﺘﻢ ﭼﻨﺪ ﭘﺎﻳﮕﺎﻫﻲ‪ ،‬ﻳﻚ ﺷﻤﺎي ادراﻛﻲ ﺟﺎﻣﻊ )ﺳﺮاﺳﺮي( و در ﻫﺮ‬ ‫ﻳﻚ از ‪DBMS‬ﻫﺎ‪ ،‬ﻳﻚ ﺷﻤﺎي ادراﻛﻲ ﻣﺤﻠﻲ وﺟﻮد دارد )و ﻧﻴﺰ ﺷﻤﺎﻫﺎي دﻳﮕﺮ‪ ،‬ﻃﺒﻖ‬ ‫آﻧﭽﻪ ﻛﻪ در ﻣﻌﻤﺎري‬

‫‪ANSI‬‬

‫دﻳﺪﻳﻢ‪ .‬در ﭼﻨﻴﻦ ﺳﻴﺴﺘﻤﻲﻃﺒﻌﺎ ﺑﻪ ﻳﻚ ﻛﺎﺗﺎﻟﻮگ ﺟﺎﻣﻊ ﻧﻴﺎز‬

‫اﺳﺖ‪ .‬اﻳﻦ ﻣﻌﻤﺎري ﻋﻼوه ﺑﺮ ﻣﺸﻜﻼت ﺗﻜﻨﻴﻜﻲ ﻣﻮﺟﻮد در ﻳﻚ ﺳﻴﺴﺘﻢ ﺗﻮزﻳﻊ ﺷﺪه‪،‬‬ ‫ﻣﺸﻜﻼت ﺧﺎص ﺧﻮد را ﻧﻴﺰ دارد ﻛﻪ در اﻳﻨﺠﺎ از ذﻛﺮ آﻧﻬﺎ ﺧﻮدداري ﻣﻲ ﺷﻮد‪.‬‬

‫‪ 5-2-2‬ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﻫﻤﺮاه‬ ‫‪ 1-5-2-2‬ﺗﻌﺮﻳﻒ‬ ‫ﺑﺎ رﺷﺪ ﺳﺮﻳﻊ ﺗﻜﻨﻮﻟﻮژي ارﺗﺒﺎﻃﺎت‪ ،‬اﻳﻨﻚ دﻳﮕﺮ اﻧﺴﺎن ﻣﻲ ﺗﻮاﻧﺪ از ﻫﺮ ﺟﺎ‪ ،‬ﺑﻪ ﻫﺮ داده‬ ‫ذﺧﻴﺮه ﺷﺪه در ﻫﺮ ﺟﺎي دﻳﮕﺮ دﺳﺘﻴﺎﺑﻲ داﺷﺘﻪ ﺑﺎﺷﺪ‪ ،‬ﻫﺮ ﭼﻨﺪ ﻫﻨﻮز ﻣﺤﺪودﻳﺖ ﻫﺎﻳﻲ‬ ‫در اﻳﻦ ''داده ﻓﺮﺳﺘﻲ‪ -‬داده ﮔﻴﺮي'' وﺟﻮد دارد‪ .‬اﻣﺎ ﺗﺎ آﻧﺠﺎ ﻛﻪ ﺑﻪ ﺣﻴﻄﻪ داﻧﺶ و‬ ‫ﺗﻜﻨﻮﻟﻮژي ﭘﺎﻳﮕﺎه داده ﻫﺎ ﻣﺮﺑﻮط ﻣﻲ ﺷﻮد‪ ،‬ﻧﻮع ﻧﻮﻳﻨﻲ از ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه دادهﻫﺎ ﭘﺪﻳﺪ‬ ‫آﻣﺪه و در ﺣﺎل ﮔﺴﺘﺮش ﻳﺎﻓﺘﻦ اﺳﺖ‪ :‬ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده ﻫﺎي ﻫﻤﺮاه )ﺟﺎﺑﺠﺎ ﺷﻮﻧﺪه(‪.‬‬ ‫ﻣﺎ در ﻗﺴﻤﺘﻬﺎي ﻗﺒﻞ اﻧﻮاع ﻣﻌﻤﺎري ﻫﺎي ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ را دﻳﺪﻳﻢ‪ ،‬از ﺟﻤﻠﻪ ﻣﻌﻤﺎري‬ ‫ﻣﺸﺘﺮي‪-‬ﺧﺪﻣﺘﮕﺰار‪ .‬اﻣﺎ اﻳﻦ ﻣﻌﻤﺎري و ﺣﺘﻲ ﮔﻮﻧﻪ ﮔﺴﺘﺮده ﺗﺮ آن‪ ،‬ﻳﻌﻨﻲ ﻣﻌﻤﺎري‬ ‫ﭘﺎﻳﮕﺎه ﺗﻮزﻳﻊ ﺷﺪه‪ ،‬ﻫﻨﻮز ﻣﺸﻜﻼﺗﻲ از ﺟﻤﻠﻪ "ﻋﻤﻠﻲ ﻧﺒﻮدن در ﻫﻤﻪ ﺟﺎ"‪ ،‬اﻳﻤﻨﻲ‬ ‫ﺳﻴﺴﺘﻢ و داده ﻫﺎ‪ ،‬ﻫﺰﻳﻨﻪ و‪ ...‬دارﻧﺪ‪ .‬ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎهﻫﺎي ﻫﻤﺮاه راه ﺣﻠﻲ اﺳﺖ ﺑﺮاي‬ ‫ﺑﺮﺧﻲ از اﻳﻦ دﺷﻮاري ﻫﺎ‪ ،‬ﺑﻪ وﻳﮋه در ﻛﺎرﺑﺮدﻫﺎي ﺷﺨﺼﻲ‪.‬‬

‫‪ 228‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫‪ 2-5-2-2‬ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﻫﻤﺮاه‬ ‫در اﻳﻦ ﻣﻌﻤﺎري‪ ،‬ﻳﻚ ﻳﺎ ﺑﻴﺶ از ﻳﻚ ﻛﺎﻣﭙﻴﻮﺗﺮ ﻣﺘﻮﺳﻂ ﻳﺎ ﺑﺰرگ‪ ،‬ﻧﻘﺶ ﺧﺪﻣﺘﮕﺰار‬ ‫ﭘﺎﻳﮕﺎﻫﻲ را اﻳﻔﺎ ﻣﻲ ﻛﻨﺪ‪ .‬اﻳﻦ ﻛﺎﻣﭙﻴﻮﺗﺮ را ﺧﺪﻣﺘﮕﺰار ﻣﻴﺰﺑﺎن ﻣﻲ ﻧﺎﻣﻨﺪ‪ .‬ﻫﺮ ﻛﺎرﺑﺮ‪،‬‬ ‫ﻛﺎﻣﭙﻴﻮﺗﺮ ﻛﻮﭼﻚ ﻫﻤﺮاه ﺧﻮد را دارد )ﺑﺎ ﺧﻮد ﺣﻤﻞ ﻣﻲ ﻛﻨﺪ‪ :‬ﻧﻮﻋﻲ دﻓﺘﺮﻛﺎر ﻫﻤﺮاه(‪.‬‬ ‫در اﻳﻦ ﻛﺎﻣﭙﻴﻮﺗﺮ داده ﻫﺎي ﻋﻤﻠﻴﺎﺗﻲ و ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي ﻣﻮرد ﻧﻴﺎزش ذﺧﻴﺮه‬ ‫ﺷﺪه اﻧﺪ‪ .‬ﭘﺎﻳﮕﺎه داده ﻫﺎي ذﺧﻴﺮه ﺷﺪه در ﻛﺎﻣﭙﻴﻮﺗﺮ ﺧﺪﻣﺘﮕﺰار ﻣﻴﺰﺑﺎن‪ ،‬ﺣﺎوي داده ﻫﺎي‬ ‫ﭘﻮﻳﺎ اﺳﺖ‪ .‬ﺑﺪﻳﻦ ﺗﺮﺗﻴﺐ ﻛﺎرﺑﺮ ﻣﻲ ﺗﻮاﻧﺪ از ﻫﺮ ﺟﺎ‪ ،‬ﺑﺎ زﻳﺮ ﺳﻴﺴﺘﻢ ﺧﺪﻣﺘﮕﺰار ﭘﺎﻳﮕﺎﻫﻲ‬ ‫ﻣﺮﺗﺒﻂ ﺷﺪه و ﭘﺮدازش ﻫﺎي ﻣﻮرد ﻧﻈﺮش را اﻧﺠﺎم دﻫﺪ‪ .‬در اﻳﻦ ﺳﻴﺴﺘﻢ ﻟﺰوﻣﻲ ﻧﺪارد‬ ‫ﻛﻪ ﭘﺎﻳﮕﺎه ﻫﺎي ﻫﻤﺮاه و ﭘﺎﻳﮕﺎه ﻣﻴﺰﺑﺎن در ﻳﻚ ﺷﺒﻜﻪ ﺑﺎﺷﻨﺪ‪ .‬ارﺗﺒﺎط ﺑﻴﻦ "ﻫﻤﺮاه'' و‬ ‫ﻣﻴﺰﺑﺎن در ﺑﺎزهﻫﺎي زﻣﺎﻧﻲ ﻧﺎﻣﻨﻈﻢ و ﻣﻌﻤﻮﻻً ﻛﻮﺗﺎه ﺑﺮﭘﺎ ﻣﻲ ﮔﺮدد‪ .‬ﺑﻴﻦ ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎي‬ ‫ﻫﻤﺮاه‪ ،‬ﻣﮕﺮ در ﺷﺮاﻳﻂ ﺧﺎص‪ ،‬ﭼﻨﺪان ارﺗﺒﺎط ﺑﺮﻗﺮار ﻧﻤﻲ ﮔﺮدد‪.‬‬ ‫دو ﺟﻨﺒﻪ اﺳﺎﺳﻲ اﻳﻦ ﺳﻴﺴﺘﻢ ﻛﻪ ﺑﺎﻳﺪ در ﻃﺮاﺣﻲ و ﭘﻴﺎده ﺳﺎزي ﺑﻪ آن ﺗﻮﺟﻪ ﺷﻮد‬ ‫ﻋﺒﺎرﺗﻨﺪ از‪ :‬ﻣﺪﻳﺮﻳﺖ ﻛﺎراي ﭘﺎﻳﮕﺎﻫﻬﺎي ﻫﻤﺮاه و اﻳﺠﺎد ارﺗﺒﺎط ﭘﻮﻳﺎ و ﺳﺮﻳﻊ ﺑﻴﻦ‬ ‫ﭘﺎﻳﮕﺎﻫﻬﺎي ﻫﻤﺮاه و ﭘﺎﻳﮕﺎه ﻣﻴﺰﺑﺎن‪.‬‬

‫ﻣﻌﻤﺎريﻫﺎي ﻣﺨﺘﻠﻒ ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎه داده ‪229‬‬

‫ﺗﻤﺮﻳﻨﺎت‬ ‫‪ .1‬دو ﻧﻮع اﺻﻠﻲ ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎه دادهﻫﺎ را ﻧﺎم ﺑﺒﺮﻳﺪ؟‬ ‫‪ .2‬ﻣﻌﻤﺎري ﻣﺘﻤﺮﻛﺰ را ﺷﺮح دﻫﻴﺪ ؟‬ ‫‪ .3‬اﻧﻮاع ﻣﻌﻤﺎري ﻧﺎﻣﺘﻤﺮﻛﺰ را ﻧﺎم ﺑﺒﺮﻳﺪ ؟‬ ‫‪ .4‬ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﻣﺸﺘﺮي‪ -‬ﺧﺪﻣﺖ ﮔﺬار را ﺗﻮﺿﻴﺢ دﻫﻴﺪ ؟‬ ‫‪ .5‬ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﺗﻮزﻳﻊ ﺷﺪه را ﺗﻮﺿﻴﺢ دﻫﻴﺪ ؟‬ ‫‪ .6‬ﻣﺰاﻳﺎي ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﭘﺎﻳﮕﺎﻫﻲ ﺗﻮزﻳﻊ ﺷﺪه را ﻧﺎم ﺑﺒﺮﻳﺪ ؟‬ ‫‪ .7‬ﭼﻬﺎر ﻣﺪل ﻣﻌﻤﺎري ﺑﺎ ﭘﺮدازش ﻣﻮازي را ﻧﺎم ﺑﺒﺮﻳﺪ ؟‬ ‫‪ .8‬ﻣﻌﻤﺎري ﭘﺎﻳﮕﺎه داده ﻫﻤﺮاه را ﺗﻮﺿﻴﺢ دﻫﻴﺪ ؟‬

‫‪ 230‬ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

‫ﺿﻤﻴﻤﻪ ‪۱‬‬ ‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮﺍﻻﺕ‬ ‫ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪1‬‬ ‫‪ -1‬ﻛﺪاﻣﻴﻚ از ﻣﻮارد زﻳﺮ ﺑﻴﺎﻧﮕﺮ اﺧﺘﻼف ﺑﻴﻦ ﭘﺎﻳﮕﺎهدادهﻫﺎ و ﭘﺎﻳﮕﺎه ﺑﺼﻴﺮت‬ ‫)‪ (Knowledge Base‬ﻣﻲﺑﺎﺷﺪ ؟ )ﻛﺎرﺷﻨﺎﺳﻲ ارﺷﺪ‪ -‬آزاد‪(72‬‬ ‫‪ .1‬ﻫﺮ دو ﭘﺎﻳﮕﺎه از ﻳﻚ ﻧﻮع ﺑﻮده و ﻓﺮﻗﻲ ﺑﺎ ﻫﻢ ﻧﺪارﻧﺪ‪.‬‬ ‫‪ .2‬ﭘﺎﻳﮕﺎه ﺑﺼﻴﺮت دﻳﻨﺎﻣﻴﻚ وﻟﻲ ﭘﺎﻳﮕﺎهدادهﻫﺎاﻳﺴﺘﺎ )‪ ( static‬ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ .3‬ﭘﺎﻳﮕﺎهدادهﻫﺎ اﻏﻠﺐ ﺑﺎ زﺑﺎن ‪ SQL‬و ﭘﺎﻳﮕﺎه ﺑﺼﻴﺮت اﻏﻠﺐ ﺑﺎ زﺑﺎن ‪ QUEL‬ﻛﺪ‬ ‫ﻣﻲﺷﻮد‪.‬‬ ‫‪.4‬‬

‫ﻫﻴﭽﻜﺪام‬

‫‪ -2‬اﻃﻼﻋﺎت )‪ ( Information‬ﺑﻪ ﭼﻪ ﻣﻌﻨﻲ ﻣﻲﺑﺎﺷﺪ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ(‬ ‫‪ .1‬دادهﻫﺎﻳﻲ ﻛﻪ روي آﻧﻬﺎ ﻋﻤﻞ ﻣﻘﺎﻳﺴﻪاي ﺻﻮرت ﮔﻴﺮد‪.‬‬ ‫‪ .2‬دادهﻫﺎﻳﻲ ﻛﻪ روي آﻧﻬﺎ ﻋﻤﻞ ﻣﺤﺎﺳﺒﺎت ﺻﻮرت ﮔﻴﺮد‪.‬‬ ‫‪ .3‬دادهﻫﺎﻳﻲ ﻛﻪ ﺑﻪ ﻧﻤﺎﻳﺶ در آﻣﺪه ﺑﺎﺷﻨﺪ‪.‬‬ ‫‪.4‬‬

‫دادهﻫﺎﻳﻲ ﻛﻪ روي آﻧﻬﺎ ﻋﻤﻞ ﭘﺮدازش ﺻﻮرت ﮔﻴﺮد‪.‬‬

‫‪ -3‬داده ‪ +‬وﻳﮋﮔﻲ ‪+‬ﻣﻮﺟﻮدﻳﺖ =‪)....‬ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ ‪(80-‬‬ ‫‪ .1‬اﻃﻼع‬ ‫‪.2‬‬

‫ﭘﺮدازش‬

‫‪ .3‬ﭘﺮوﻧﺪه‬

‫‪ 232‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪.4‬‬

‫داﻧﺶ‬

‫‪ -4‬ﻛﺪام ﮔﺰﻳﻨﻪ در راﺑﻄﻪ ﺑﺎ ﻧﺴﻞ دوم ذﺧﻴﺮه و ﺑﺎزﻳﺎﺑﻲ اﻃﻼﻋﺎت ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬اﻳﻦ ﻧﺴﻞ ﺑﻪ ﻧﺴﻞ ﺷﻴﻮهﻫﺎي دﺳﺘﻴﺎﺑﻲ ﻣﻌﺮوف اﺳﺖ‪.‬‬ ‫‪ .2‬ﺗﻜﺮار ذﺧﻴﺮه ﺳﺎزي دراﻳﻦ ﻧﺴﻞ ﺑﺴﻴﺎر ﻛﺎﻫﺶ ﻳﺎﻓﺘﻪ‪.‬‬ ‫‪ .3‬ﺗﻐﻴﻴﺮ در رﺳﺎﻧﻪﻫﺎي ذﺧﻴﺮه ﺳﺎزي ﺑﺮ روي ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي ﺗﺎﺛﻴﺮ ﭼﻨﺪاﻧﻲ‬ ‫ﻧﺪارد‪.‬‬ ‫‪ .4‬دراﻳﻦ ﻧﺴﻞ از رﺳﺎﻧﻪﻫﺎي ﺑﺎ دﺳﺘﻴﺎﺑﻲ ﻣﺴﺘﻘﻴﻢ ﻣﺜﻞ دﻳﺴﻚ اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ‪.‬‬ ‫‪ -5‬ﻛﺪام ﺗﻌﺮﻳﻒ در راﺑﻄﻪ ﺑﺎ ))داده(( درﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬ﻧﻤﺎﻳﺶ واﻗﻌﻴﺎت‪ ،‬ﭘﺪﻳﺪهﻫﺎ‪ ،‬ﻣﻔﺎﻫﻴﻢ ﻳﺎ ﻣﻌﻠﻮﻣﺎت ﺑﻪ ﺻﻮرﺗﻲ ﺻﻮري و ﻣﻨﺎﺳﺐ‬ ‫ﺑﺮاي ﺑﺮﻗﺮاري ارﺗﺒﺎط‪ ،‬ﺗﻔﺴﻴﺮ ﻳﺎ ﭘﺮدازش ﺗﻮﺳﻂ اﻧﺴﺎن ﻳﺎ اﻣﻜﺎﻧﺎت ﺧﻮدﻛﺎر‬ ‫‪ .2‬از ﻧﻈﺮ ﺳﺎﺧﺘﺎري و از دﻳﺪﮔﺎه ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ‪ ،‬داده ﻋﺒﺎرت اﺳﺖ از ﻣﻘﺎدﻳﺮ‬ ‫ﺻﻔﺎت ﺧﺎﺻﻪ اﻧﻮاع ﻣﻮﺟﻮدﻳﺘﻬﺎ‬ ‫‪.3‬‬

‫ﻫﺮ دو ﮔﺰﻳﻨﻪ ‪ 1‬و ‪2‬‬

‫‪.4‬‬

‫اﻃﻼﻋﺎت ﻛﺎراﻛﺘﺮي ﻛﻪ وارد ﺳﻴﺴﺘﻢ دﺳﺘﻲ ﺷﺪه و ﺑﻪ آن ﻣﻌﻨﺎﻳﻲ ﻣﻨﺘﺴﺐ‬ ‫ﻣﻲﺷﻮد‪.‬‬

‫‪ -6‬ﻛﺪام ﻋﺒﺎرت درﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬داده ﻫﻤﺎن اﻃﻼﻋﺎت اﺳﺖ‪.‬‬ ‫‪ .2‬داده اﻃﻼﻋﺎت ﭘﺮدازش ﺷﺪه اﺳﺖ‪.‬‬ ‫‪ .3‬اﻃﻼﻋﺎت‪ ،‬داده ﭘﺮدازش ﺷﺪه اﺳﺖ‪.‬‬ ‫‪ .4‬اﻃﻼﻋﺎت ﻣﻘﺎدﻳﺮ ﺧﺎم اﺳﺖ‪.‬‬ ‫‪ Attribute -7‬ﻋﺒﺎرت اﺳﺖ از‪.....‬‬ ‫‪ .1‬ﻫﻤﺎن ﻣﻮﺟﻮدﻳﺖ اﺳﺖ‪.‬‬ ‫‪ .2‬ﺻﻔﺎت ﺧﺎﺻﻪ ﺗﻮﺿﻴﺤﻲ ﺑﺮاي ﻫﺮ ﻣﻮﺟﻮدﻳﺖ اﺳﺖ‪.‬‬ ‫‪ .3‬ﻫﻤﺎن رﻛﻮرد اﺳﺖ‪.‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪233‬‬

‫‪ .4‬ﺳﻄﺮﻫﺎي ﻳﻚ ﺟﺪول اﺳﺖ‪.‬‬ ‫‪ File System -8‬ﭼﻴﺴﺖ ؟‬ ‫‪ .1‬ﻫﻤﺎن ‪ DBMS‬اﺳﺖ‪.‬‬ ‫‪ .2‬ﺑﻪ ﺳﺎﺧﺘﺎر ﻛﻠﻲ ﻧﺎﻣﮕﺬاري‪ ،‬ذﺧﻴﺮه ﺳﺎزي و ﺳﺎزﻣﺎﻧﺪﻫﻲ ﻓﺎﻳﻠﻬﺎ در ﻳﻚ ﺳﻴﺴﺘﻢ‬ ‫ﻋﺎﻣﻞ ﮔﻔﺘﻪ ﻣﻲﺷﻮد‪.‬‬ ‫‪ .3‬اﻧﺒﺎرهاي ﺑﺮاي ﻳﻚ ﻣﺠﻤﻮﻋﻪ از ﻓﺎﻳﻠﻬﺎي دادهاي اﺳﺖ‪.‬‬ ‫‪.4‬‬

‫ﻫﺮ ﺳﻪ ﮔﺰﻳﻨﻪ‪.‬‬

‫‪ -9‬ﻛﺪام ﮔﺰﻳﻨﻪ از وﻳﮋﮔﻲ ﻫﺎي ﻧﺴﻞ اول ذﺧﻴﺮه و ﺑﺎزﻳﺎﺑﻲ اﻃﻼﻋﺎت ﻧﻴﺴﺖ ؟‬ ‫‪ .1‬ﻧﺴﺨﻪﻫﺎي ﻣﺘﻌﺪدي از ﻳﻚ ﻓﺎﻳﻞ ﻧﮕﻬﺪاري ﻣﻲﺷﻮد‪.‬‬ ‫‪ .2‬ﺳﺎﺧﺘﺎر ﻓﺎﻳﻞ ﻫﺎ ﺗﺮﺗﻴﺒﻲ اﺳﺖ‪.‬‬ ‫‪ .3‬ﭘﺮدازش در ﻣﺤﻴﻂ ﻫﺎي ﺑﻼدرﻧﮓ و ‪ Online‬ﻣﻲﺗﻮاﻧﺪ اﻧﺠﺎم ﺷﻮد‪.‬‬ ‫‪ .4‬ﻃﺮاﺣﻲ ﺳﺎﺧﺘﺎر ﻓﻴﺰﻳﻜﻲ ﻓﺎﻳﻠﻬﺎ ﻫﻢ‪ ،‬ﺑﺮ ﻋﻬﺪه ﻛﺎرﺑﺮ اﺳﺖ‪.‬‬ ‫‪ -10‬ﻛﺪام ﮔﺰﻳﻨﻪ در راﺑﻄﻪ ﺑﺎ ﺑﺎﻧﻚ ﻫﺎي اﻃﻼﻋﺎﺗﻲ و ﺑﺎﻧﻜﻬﺎي ﻣﻌﺮﻓﺖ ﺻﺤﻴﺢ اﺳﺖ ؟‬ ‫‪ .1‬ﺑﺎﻧﻚ ﻣﻌﺮﻓﺖ ﺣﺎوي ﺗﻌﺪاد زﻳﺎدي واﻗﻌﻴﺖ ﺳﺎده اﺳﺖ ﻛﻪ ﺑﻪ ﻃﻮر ﺻﺮﻳﺢ ﺑﻴﺎن‬ ‫ﺷﺪهاﻧﺪ‪ ،‬ﻫﻤﺮاه ﺑﺎ ﺗﻌﺪاد ﻛﻤﻲﻗﻮاﻋﺪ ﻋﺎم ﻛﻪ ﺑﻪ ﻃﻮر ﺿﻤﻨﻲ ﺑﻴﺎن ﻣﻲﺷﻮﻧﺪ‪.‬‬ ‫‪ .2‬ﺑﺎﻧﻚ ﻣﻌﺮﻓﺖ ﺣﺎوي ﻣﺠﻤﻮﻋﻪاي از واﻗﻌﻴﺖ ﻫﺎي ﺳﺎده و ﻗﻮاﻋﺪ ﻋﺎم ﻛﻪ ﺑﻪ ﻃﻮر‬ ‫ﺻﺮﻳﺢ ﺑﻴﺎن ﺷﺪهاﻧﺪ‪.‬‬ ‫‪ .3‬ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻣﺠﻤﻮﻋﻪاي اﺳﺖ از ﺗﻌﺪاد زﻳﺎدي واﻗﻌﻴﺖ ﺳﺎده ﻛﻪ ﺑﻪ ﻃﻮر‬ ‫ﺻﺮﻳﺢ ﺑﻴﺎن ﺷﺪهاﻧﺪ‪.‬ﻫﻤﺮاه ﺑﺎ ﺗﻌﺪاد ﻛﻤﻲﻗﻮاﻋﺪ ﻋﺎم ﻛﻪ ﺑﻪ ﻃﻮر ﺿﻤﻨﻲ ﺑﻴﺎن‬ ‫ﻣﻲﺷﻮﻧﺪ‪.‬‬ ‫‪3 .4‬و‪2‬‬ ‫‪ -11‬ﺟﺰء دادهﻫﺎ )‪ (Data Element‬ﭼﻴﺴﺖ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ‪(76-‬‬ ‫‪ .1‬ﻗﺴﻤﺘﻲ از اﻃﻼﻋﺎت اﺳﺖ‪.‬‬ ‫‪ .2‬ﻣﺤﻠﻲ ﻣﻮﻗﺖ ﺑﺮاي ﻳﻚ ﻣﻘﺪار اﻃﻼﻋﺎت اﺳﺖ‪.‬‬

‫‪ 234‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ .3‬ﻣﻘﺪاري اﺳﺖ ﻛﻪ در ﻓﻴﻠﺪ ذﺧﻴﺮه ﻣﻲﺷﻮد‪.‬‬ ‫‪ .4‬ﻫﺮ ﻣﻘﺪاري ﻣﻲﺗﻮاﻧﺪ ﺑﺎﺷﺪ‪.‬‬

‫ﭘﺎﺳﺦ ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪1‬‬ ‫‪ (2) -1‬ﭘﺎﻳﮕﺎه ﺑﺼﻴﺮت ﺑﻪ ﺗﺪرﻳﺞ ﺑﺮ ﺑﺼﻴﺮﺗﻬﺎﻳﺶ )‪ (Knowledge Base‬ﻣﻲاﻓﺰاﻳﺪ‪.‬‬ ‫‪ (4) -2‬داده ورودي ﺳﻴﺴﺘﻢ اﺳﺖ ﻛﻪ ﭘﺲ از ﭘﺮدازش ﺗﺒﺪﻳﻞ ﺑﻪ اﻃﻼﻋﺎت ﺷﺪه و از‬ ‫ﺳﻴﺴﺘﻢ ﺧﺎرج ﻣﻲﺷﻮد‪.‬‬ ‫‪(1) -3‬‬ ‫‪ (2) -4‬در ﻧﺴﻞ دوم ﺗﻜﺮار ذﺧﻴﺮه ﺳﺎزي ﻫﻨﻮز در ﺣﺪ ﻧﺴﺒﺘﺎ ﺑﺎﻻﻳﻲ وﺟﻮد دارد‪.‬‬ ‫‪ (3) -5‬ﮔﺰﻳﻨﻪ ‪ 4‬ﻛﺎﻣﻞ ﻧﻴﺴﺖ‪ .‬داده ﻫﺮ ﻧﻤﺎﻳﺸﻲ اﻋﻢ از ﻛﺎراﻛﺘﺮي ﻳﺎ ﻛﻤﻴﺘﻬﺎي آﻧﺎﻟﻮگ و ﻳﺎ‬ ‫ﻏﻴﺮه اﺳﺖ‪.‬ﻳﻌﻨﻲ ﻓﻘﻂ ﺑﻪ اﻃﻼﻋﺎت ﻛﺎراﻛﺘﺮي داده ﮔﻔﺘﻪ ﻧﻤﻲﺷﻮد و داده ﻣﻲﺗﻮاﻧﺪ وارد ﻫﺮ‬ ‫ﺳﻴﺴﺘﻤﻲﺷﻮد و ﻧﻪ ﻓﻘﻂ ﺳﻴﺴﺘﻢ دﺳﺘﻲ‪.‬‬ ‫‪(3) -6‬‬ ‫‪(2) -7‬‬ ‫‪(2) -8‬‬ ‫‪ (3) -9‬ﮔﺰﻳﻨﻪ ‪ 3‬از وﻳﮋﮔﻲ ﻫﺎي ﻧﺴﻞ دوم اﺳﺖ‪.‬‬ ‫‪(4) -10‬‬ ‫‪(2) -11‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪235‬‬

‫ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪2‬‬ ‫‪ -1‬ﺷﻜﻞ زﻳﺮ در ﻧﻤﻮدار ‪ ER‬ﭼﻪ ﻣﻔﻬﻮﻣﻲرا ﻣﻲرﺳﺎﻧﺪ ؟‬ ‫‪ .1‬ﻫﺮ اﺳﺘﺎد ﻓﻘﻂ و ﻓﻘﻂ ﻳﻚ درس )ﻧﻪ ﻛﻤﺘﺮ و ﻧﻪ ﺑﻴﺸﺘﺮ( و ﻫﺮ درس ﺗﻮﺳﻂ ﻳﻚ‬ ‫اﺳﺘﺎد اراﺋﻪ ﻣﻲﺷﻮد‪.‬‬ ‫‪ .2‬ﻫﺮ اﺳﺘﺎد ﻳﻚ درس و ﻫﺮ درس ﺗﻮﺳﻂ ﻳﻚ اﺳﺘﺎد اراﺋﻪ ﻣﻲﺷﻮد‪ .‬ﻣﻤﻜﻦ اﺳﺖ‬ ‫اﺳﺘﺎدي درﺳﻲ اراﺋﻪ ﻧﻜﻨﺪ‪.‬‬ ‫‪ .3‬ﻫﺮ اﺳﺘﺎد ﻳﻚ درس و ﻫﺮ درس ﺗﻮﺳﻂ ﻳﻚ اﺳﺘﺎد اراﺋﻪ ﻣﻲﺷﻮد‪.‬‬ ‫‪ .4‬ﻳﻚ اﺳﺘﺎد ﻳﻚ درس و ﻳﻚ درس ﺗﻮﺳﻂ ﻳﻚ اﺳﺘﺎد اراﺋﻪ ﻣﻲﺷﻮد‪ .‬وﻟﻲ ﻣﻤﻜﻦ‬ ‫اﺳﺖ اﺳﺘﺎد آن درس ﺗﻐﻴﻴﺮ ﻛﻨﺪ‪.‬‬ ‫‪ -2‬در ﻧﻤﻮدار ‪ EER‬ﻛﺪام ﮔﺰﻳﻨﻪ درﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬ﺻﻔﺖ ﻣﺸﺘﻖ را ﺑﺎ زﻳﺮ ﺧﻂ‪ ،‬ﺻﻔﺖ ﻛﻠﻴﺪي را ﺑﺎ ‪ 2‬ﺧﻂ و ﺻﻔﺖ ﭼﻨﺪ ﻣﻘﺪاري را‬ ‫ﺑﺎ ﺧﻂ ﭼﻴﻦ ﻧﺸﺎن ﻣﻲدﻫﻴﻢ‪.‬‬ ‫‪ .2‬ﺻﻔﺖ ﻣﺸﺘﻖ را ﺑﺎ ﺧﻂ ﭼﻴﻦ‪ ،‬ﺻﻔﺖ ﻣﺮﻛﺐ را ﺑﺎ زﻳﺮ ﺧﻂ و ﺻﻔﺖ واﺑﺴﺘﻪ را ﺑﺎ‬ ‫‪ 2‬ﺧﻂ ﻧﻤﺎﻳﺶ ﻣﻲدﻫﻴﻢ‪.‬‬ ‫‪ .3‬ﺻﻔﺖ ﻣﺸﺘﻖ را ﺑﺎ زﻳﺮ ﺧﻂ‪ ،‬ﺻﻔﺖ ﭼﻨﺪ ﻣﻘﺪاري را ﺑﺎ ‪ 2‬ﺧﻂ و ﺻﻔﺖ ﻛﻠﻴﺪي را‬ ‫ﺑﺎ ﺧﻂ ﭼﻴﻦ ﻧﺸﺎن ﻣﻲدﻫﻴﻢ‪.‬‬ ‫‪ .4‬ﺻﻔﺖ ﻣﺸﺘﻖ را ﺑﺎ ﺧﻂ ﭼﻴﻦ‪ ،‬ﺻﻔﺖ ﻛﻠﻴﺪي را ﺑﺎ زﻳﺮ ﺧﻂ و ﺻﻔﺖ ﭼﻨﺪ ﻣﻘﺪاري‬ ‫را ﺑﺎ ‪ 2‬ﺧﻂ ﻧﺸﺎن ﻣﻲدﻫﻴﻢ‪.‬‬ ‫‪ -3‬ﺑﻪ ارﺗﺒﺎط ﺑﻴﻦ ﻣﻮﺟﻮدﻳﺘﻬﺎ‪ ....‬ﮔﻮﻳﻨﺪ‪.‬‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪Entity‬‬ ‫‪Attribute‬‬ ‫‪Tuple‬‬ ‫‪ER‬‬

‫‪-4‬در ﻣﺪل راﺑﻄﻪاي ﻛﺪام ﻧﻮع ﺻﻔﺖ را ﻧﺪارﻳﻢ ؟‬ ‫‪ .1‬ﺻﻔﺖ ﻛﻠﻴﺪ‬ ‫‪ .2‬ﺻﻔﺖ ﭼﻨﺪ ﻣﻘﺪاري‬

‫‪ 236‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ .3‬ﺻﻔﺖ ﻣﺸﺘﻖ‬ ‫‪ .4‬ﻫﺮ ﺳﻪ را دارﻳﻢ‬ ‫‪ -5‬ﻛﺪام ﮔﺰﻳﻨﻪ در راﺑﻄﻪ ﺑﺎ ﻧﻤﻮدار ‪ EER‬زﻳﺮ ﺻﺎدق اﺳﺖ ؟‬ ‫‪ .1‬ﺑﻪ ﻣﺤﺾ ﺣﺬف داﻧﺸﺠﻮ از ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ‪ ،‬واﺑﺴﺘﮕﺎن او ﻧﻴﺰ ﺣﺬف ﺧﻮاﻫﻨﺪ‬ ‫ﺷﺪ‪.‬‬ ‫‪ .2‬واﺑﺴﺘﮕﺎن ﻳﻚ ﻣﻮﺟﻮدﻳﺖ ﻗﻮي ﻣﻲﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ .3‬ﻣﻮﺟﻮدﻳﺖ داﻧﺸﺠﻮ‪ ،‬ﻛﻠﻴﺪ اﺻﻠﻲ ﻣﻮﺟﻮدﻳﺖ واﺑﺴﺘﮕﺎن را ﺑﻪ ارث ﻣﻲﺑﺮد‪.‬‬ ‫‪ 2 .4‬و ‪1‬‬ ‫‪ -6‬ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬در ﻧﻤﻮدار ‪ ER‬ﻫﺮ ارﺗﺒﺎﻃﻲ ﺑﻴﻦ ﻣﻮﺟﻮدﻳﺘﻬﺎ داراي ﺳﻤﺎﻧﺘﻴﻚ ﺧﺎﺻﻲ اﺳﺖ‪.‬‬ ‫‪ .2‬ﺻﻔﺖ ﻣﺸﺘﻖ ﺻﻔﺘﻲ اﺳﺖ ﻛﻪ ﺑﻪ ﻛﻤﻚ ﺻﻔﺘﻬﺎي دﻳﮕﺮ ﻣﻲﺗﻮان آن را ﻣﺤﺎﺳﺒﻪ‬ ‫ﻛﺮد‪.‬‬ ‫‪ .3‬ﻣﻌﻨﺎي ﻧﻤﻮدار ‪ ER‬زﻳﺮ آن اﺳﺖ ﻛﻪ ارﺗﺒﺎط اﺳﺘﺎد اﺧﺘﻴﺎري اﺳﺖ‪.‬‬ ‫‪ .4‬ﻫﻴﭽﻜﺪام‬ ‫‪ -7‬ﺷﻜﻞ زﻳﺮ ﻧﻤﺎﻳﺎﻧﮕﺮ ﭼﻪ ﻧﻮع ارﺗﺒﺎﻃﻲ اﺳﺖ ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪existence dependency‬‬ ‫‪is-a‬‬ ‫‪cardinality‬‬ ‫‪connectivity‬‬

‫‪ -8‬ارﺗﺒﺎط ﺑﻴﻦ ﻣﻮﺟﻮدﻳﺘﻬﺎ ﻛﺪام اﺳﺖ ؟‬ ‫‪Attribute .1‬‬ ‫‪record .2‬‬ ‫‪ER .3‬‬ ‫‪entity .4‬‬ ‫‪ -9‬ﻣﻨﻈﻮر از ‪ Connection trap‬ﭼﻴﺴﺖ ؟‬

‫‪ .1‬اﺳﺘﻨﺘﺎج ﻧﺎدرﺳﺖ از ارﺗﺒﺎط ﺑﻴﻦ ﻣﻮﺟﻮدﻳﺘﻬﺎ‬ ‫‪ .2‬ارﺗﺒﺎﻃﺎت دو ﻃﺮﻓﻪ ﻧﺎدرﺳﺖ‬ ‫‪ .3‬ارﺗﺒﺎط ﻧﺎدرﺳﺖ ﻣﻴﺎن ﺳﻪ ‪entity‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪ .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‬ﻣﻲﺑﺎﺷﺪ‪.‬‬

‫‪237‬‬

‫‪ 238‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ .3‬ارﺗﺒﺎط ﺑﺎزﻳﻜﻦ ﺑﺎ ﮔﻞ ﺑﻪ ﺻﻮرت ‪ 1 :1‬ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ .4‬ﻧﺎﻣﺸﺨﺺ اﺳﺖ‪.‬‬

‫ﭘﺎﺳﺦ ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪2‬‬ ‫‪ (1) -1‬اﮔﺮ ﻋﻼﻣﺖ ﻧﻘﻄﻪ داﺧﻞ ﻣﺴﺘﻄﻴﻞ ﻣﻮﺟﻮدﻳﺖ ﺑﺎﺷﺪ ﻳﻌﻨﻲ ﺷﺮﻛﺖ در ارﺗﺒﺎط‬ ‫اﺟﺒﺎري اﺳﺖ‪.‬ﻳﻌﻨﻲ اﺳﺘﺎد ﻫﺎ ﻧﻤﻲﺗﻮاﻧﻨﺪ درس ﻧﺪﻫﻨﺪ‪.‬‬ ‫‪(4) -2‬‬ ‫‪(4) -3‬‬ ‫‪ (2) -4‬ﻣﺜﻼ ﺻﻔﺖ ﻣﺪرك ﺑﺮاي اﺳﺘﺎد ﭼﻨﺪ ﻣﻘﺪاري اﺳﺖ ﭼﺮا ﻛﻪ ﻣﻤﻜﻦ اﺳﺖ ﻳﻚ‬ ‫اﺳﺘﺎد ﭼﻨﺪ ﻣﺪرك داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬ ‫‪ (1) -5‬ﻣﻤﻜﻦ اﺳﺖ وﺟﻮد ﻳﻚ ﭘﺪﻳﺪه واﺑﺴﺘﻪ ﺑﻪ وﺟﻮد ﭘﺪﻳﺪه دﻳﮕﺮي ﺑﺎﺷﺪ‪ ،‬ﻳﻌﻨﻲ‬ ‫در ﺻﻮرت ﺣﺬف ﻋﻀﻮي از آن ﭘﺪﻳﺪه‪ ،‬ﻋﻀﻮﻫﺎي واﺑﺴﺘﻪ ﻫﻢ ﻻزم ﺑﺎﺷﺪ ﺑﻪ ﻃﻮر‬ ‫ﺧﻮدﻛﺎر ﺣﺬف ﺷﻮﻧﺪ‪.‬اﻳﻦ ﻧﻮع واﺑﺴﺘﮕﻲ را واﺑﺴﺘﮕﻲ وﺟﻮدي و ﭘﺪﻳﺪه واﺑﺴﺘﻪ را‬ ‫ﻣﻮﺟﻮدﻳﺖ ﺿﻌﻴﻒ ‪ weak entity‬ﻣﻲﻧﺎﻣﻨﺪ‪ .‬ﭘﺪﻳﺪه واﺑﺴﺘﻪ ﺑﺎﻳﺪ ﻛﻠﻴﺪ ﭘﺪﻳﺪه اﺻﻠﻲ‬ ‫را ﻛﻪ ﺑﻪ آن واﺑﺴﺘﻪ اﺳﺖ ﺑﻪ ارث ﺑﺒﺮد‪ .‬ﭘﺪﻳﺪه واﺑﺴﺘﻪ را ﺑﺎ دو ﻣﺴﺘﻄﻴﻞ ﺗﻮدرﺗﻮ‬ ‫ﻧﻤﺎﻳﺶ ﻣﻲدﻫﻴﻢ‪.‬‬ ‫‪ (3) -6‬ﻣﺸﺎرﻛﺖ ﻳﻚ ﻧﻮع ﻣﻮﺟﻮدﻳﺖ در ﻳﻚ ﻧﻮع ارﺗﺒﺎط را اﻟﺰاﻣﻲ)ﻳﺎ ﻛﺎﻣﻞ(‬ ‫ﻣﻲﮔﻮﺋﻴﻢ اﮔﺮ ﺗﻤﺎم ﻧﻤﻮﻧﻪﻫﺎي آن ﻧﻮع ﻣﻮﺟﻮدﻳﺖ در آن ﻧﻮع ارﺗﺒﺎط ﺷﺮﻛﺖ ﻛﻨﻨﺪ‪.‬‬ ‫در ﻏﻴﺮاﻳﻨﺼﻮرت ﻣﺸﺎرﻛﺖ ﻏﻴﺮ اﻟﺰاﻣﻲ)اﺧﺘﻴﺎري ﻳﺎ ﻧﺎﻛﺎﻣﻞ( اﺳﺖ‪.‬‬ ‫اﺟﺒﺎري_ اﻟﺰاﻣﻲ_ ﻛﺎﻣﻞ‬

‫=‬

‫اﺧﺘﻴﺎري _ ﻏﻴﺮ اﻟﺰاﻣﻲ_ﻧﺎﻛﺎﻣﻞ‬

‫‪Total participation‬‬

‫=‬

‫‪Partial participation‬‬

‫در ﺑﻌﻀﻲ ﻛﺘﺎﺑﻬﺎ ﻣﺸﺎرﻛﺖ اﻟﺰاﻣﻲرا ﺑﺎ دو ﺧﻂ ﻣﻮازي ﻛﻪ ﻣﻮﺟﻮدﻳﺖ را ﺑﻪ ارﺗﺒﺎط‬ ‫ﻣﺘﺼﻞ ﻣﻲﻛﻨﺪ ﻧﻤﺎﻳﺶ ﻣﻲدﻫﻨﺪ‪ .‬ﭘﺲ ﻣﺸﺎرﻛﺖ اﺳﺘﺎد در ﺗﺪرﻳﺲ اﻟﺰاﻣﻲاﺳﺖ‬ ‫ﻳﻌﻨﻲ ﻫﺮ اﺳﺘﺎد ﺣﺘﻤﺎ ﺣﺪاﻗﻞ ﺑﺎﻳﺪ ﻳﻚ درس را ﺗﺪرﻳﺲ ﻛﻨﺪ‪.‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪239‬‬

‫‪ (2) -7‬ارﺗﺒﺎﻃﺎﺗﻲ ﻛﻪ از ﻧﻤﺎد ﻣﺜﻠﺚ )ﻣﻔﻬﻮم ارث ﺑﺮي( اﺳﺘﻔﺎده ﻣﻲﻛﻨﻨﺪ‪ .‬ارﺗﺒﺎﻃﺎت‬ ‫))ﻫﺴﺖ(( ﻳﺎ ))‪ ((is-a‬ﻧﺎﻣﻴﺪه ﻣﻲﺷﻮﻧﺪ‪.‬‬ ‫‪(3) -8‬‬ ‫‪(1) -9‬‬ ‫‪ (3) -10‬ﺑﺎ ﺣﺬف اﺳﺘﺎد اﻃﻼﻋﺎت ﺧﺎﻧﻮاده او ﻧﻴﺰ ﺣﺬف ﻣﻲﮔﺮدد‪.‬‬ ‫‪(4) -11‬‬ ‫‪ (2) -12‬ﻣﻮﺟﻮدﻳﺖ ﺗﻚ ﺻﻔﺘﻲ ﻣﻲﺗﻮاﻧﺪ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﻣﺜﻼ ﺟﺪوﻟﻲ ﻛﻪ ﻓﻘﻂ‬ ‫ﻳﻚ ﺳﺘﻮن دارد‪.‬‬ ‫‪ (3) -13‬ﻓﻴﻠﺪ ﻛﻠﻴﺪ ﻧﻤﻲﺗﻮاﻧﺪ ﻣﻘﺪار ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ ﻳﻌﻨﻲ ﻧﻤﻲﺗﻮاﻧﺪ ‪ NULL‬ﺑﺎﺷﺪ‪.‬‬ ‫‪ (1) -14‬ﻳﻚ ﺑﺎزﻳﻜﻦ ﻣﻲﺗﻮاﻧﺪ ﭼﻨﺪ ﮔﻞ ﺑﺰﻧﺪ وﻟﻲ ﻫﺮ ﮔﻞ ﺗﻮﺳﻂ ﻳﻚ ﺑﺎزﻳﻜﻦ زده‬ ‫ﻣﻲﺷﻮد‪.‬‬

‫‪ 240‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪3‬‬ ‫‪ -1‬ﻣﺰاﻳﺎي ﻳﻚ ﭘﺎﻳﮕﺎهدادهﻫﺎ )‪ (Data Base‬ﻧﺴﺒﺖ ﺑﻪ ﻓﺎﻳﻠﻬﺎي ﻣﺘﻌﺎرف ﭼﻴﺴﺖ ؟‬ ‫)ﻛﺎرﺷﻨﺎﺳﻲ ارﺷﺪ ‪-‬آزاد ‪(72‬‬ ‫‪2 .1‬و‪4‬‬ ‫‪ .2‬ﻛﻨﺘﺮل ﺣﺴﺎب ﺷﺪه ﻣﻘﺪار اﻓﺰوﻧﮕﻲ در ﭘﺎﻳﮕﺎهدادهﻫﺎ‬ ‫‪ .3‬اﻃﻤﻴﻨﺎن از ﺻﺤﺖ دادهﻫﺎ )‪ (Data Validation‬ﻛﻤﺘﺮ ﻣﻮرد ﻧﻴﺎز ﺧﻮاﻫﺪ ﺑﻮد‪.‬‬ ‫‪ .4‬دﺳﺘﻴﺎﺑﻲ ﻣﺸﺘﺮك ﺑﻪ دادهﻫﺎ‬ ‫‪ -2‬ﻛﺪاﻣﻴﻚ از ﻣﻮارد زﻳﺮ ﺟﺰء وﻇﺎﻳﻒ ‪ DBA‬ﻧﻤﻲﺑﺎﺷﺪ ؟) ﻛﺎرﺷﻨﺎﺳﻲ ارﺷﺪ‪-‬آزاد‪(72‬‬ ‫‪ .1‬ﻧﻮﺷﺘﻦ ‪ Data Dictionary‬ﺑﺮاي ﭘﺎﻳﮕﺎهدادهﻫﺎ‬ ‫‪ .2‬ﻧﻈﺎرت ﺑﺮ ﻋﻤﻠﻜﺮد ﭘﺎﻳﮕﺎهدادهﻫﺎ )‪( Performance Monitoring‬‬ ‫‪ .3‬ﺗﻬﻴﻪ روﻳﻪﻫﺎ و اﺳﺘﺮاﺗﮋي ﺗﻬﻴﻪ ‪ Backup‬و ﻧﺤﻮه اﺣﻴﺎي ﭘﺎﻳﮕﺎهدادهﻫﺎ‬ ‫‪ .4‬ﺗﻬﻴﻪ ‪ schema‬ﺑﺮاي ﭘﺎﻳﮕﺎهدادهﻫﺎ‬ ‫‪ -3‬در ﻳﻚ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎهدادهﻫﺎ )‪ ( DBMS‬ﻛﺪاﻣﻴﻚ از اﻣﻜﺎﻧﺎت زﻳﺮ ﺟﺰء‬ ‫ﻋﻨﺎﺻﺮ اﺻﻠﻲ ﺗﺸﻜﻴﻞ دﻫﻨﺪه ‪ DBMS‬ﻣﺤﺴﻮب ﻧﻤﻲﺷﻮﻧﺪ‪) :‬ﻛﺎرﺷﻨﺎﺳﻲ ارﺷﺪ‪-‬دوﻟﺘﻲ‪(72‬‬ ‫‪ .1‬اﻣﻜﺎن ﭘﺮدازش زﺑﺎن ﻃﺒﻴﻌﻲ ﺑﺮاي ﻛﺎر ﺑﺎ ﭘﺎﻳﮕﺎه‬ ‫‪ .2‬اﻣﻜﺎن ﻛﺎر ﺑﺎ دادهﻫﺎ ﺑﻪ ﻛﻤﻚ ﻳﻚ ‪(Data Sublanguage) DSL‬‬

‫‪ .3‬اﻣﻜﺎن ﺗﺎﻣﻴﻦ ﺟﻤﻌﻴﺖ و ﺑﻲ ﻧﻘﺼﻲ )‪ (integrity‬ﭘﺎﻳﮕﺎه‬ ‫‪ .4‬اﻣﻜﺎن ﺗﺎﻣﻴﻦاﻳﻤﻨﻲ ﭘﺎﻳﮕﺎه‬ ‫‪ -4‬دو ﻣﺮﺣﻠﻪ از ﻣﺮاﺣﻞ ﻃﺮاﺣﻲ ﻳﻚ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻋﺒﺎرﺗﻨﺪ از ﻃﺮاﺣﻲ ادراﻛﻲ‬ ‫)‪ ( Conceptual Design‬و ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ )‪ (Logical Design‬اﻳﻦ دو ﭼﻪ ﺗﻔﺎوت‬ ‫اﺳﺎﺳﻲ ﺑﺎ ﻫﻢ دارﻧﺪ ؟ )ﻛﺎرﺷﻨﺎﺳﻲ ارﺷﺪ‪-‬دوﻟﺘﻲ ‪(75‬‬ ‫‪ .1‬ﻃﺮاﺣﻲ ادراﻛﻲ ﺑﻪ ﻣﺪل ﺧﺎﺻﻲ ﻣﺮﺑﻮط ﻣﻲﺷﻮد و ﭘﺲ از اﻧﺘﺨﺎب ﻣﺪل ﺻﻮرت‬ ‫ﻣﻲﮔﻴﺮد وﻟﻲ ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ ﺑﻪ ﻣﺪل ﺧﺎﺻﻲ ﺑﺴﺘﮕﻲ ﻧﺪارد‪.‬‬ ‫‪ .2‬ﻃﺮاﺣﻲ ادراﻛﻲ ﻣﻜﻤﻞ ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ اﺳﺖ و ﭘﺲ از آن اﻧﺠﺎم ﻣﻲﮔﻴﺮد‪.‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪241‬‬

‫‪ .3‬ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ ﺑﻪ ﺻﻮرت ﻛﻠﻲ ﺑﻪ ﺳﻴﺴﺘﻢ ﻣﻲﻧﮕﺮد و ﺑﺎ روﺷﻬﺎﻳﻲ ﻣﺎﻧﻨﺪ ‪ER‬‬

‫اﻧﺠﺎم ﻣﻲﮔﻴﺮد‪.‬‬ ‫‪ .4‬ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ ﺑﻪ ﻣﺪل ﺧﺎﺻﻲ ﻣﺮﺑﻮط ﻣﻲﺷﻮد و ﭘﺲ از اﻧﺘﺨﺎب ﻣﺪل ﺻﻮرت‬ ‫ﻣﻲﮔﻴﺮد وﻟﻲ ﻃﺮاﺣﻲ ادراﻛﻲ ﺑﻪ ﻣﺪل ﺧﺎﺻﻲ ﺑﺴﺘﮕﻲ ﻧﺪارد‪.‬‬ ‫‪ -5‬ﻓﺮق زﺑﺎﻧﻬﺎي ﭘﺮس و ﺟﻮي )‪ (Query‬روﻳﻪاي )‪ (Procedural‬و ﻧﺎروﻳﻪاي )‪Non-‬‬

‫‪ (procedural‬اﻳﻦ اﺳﺖ ﻛﻪ‪:‬‬ ‫‪ .1‬در زﺑﺎﻧﻬﺎي ﻧﺎروﻳﻪاي ﻛﺎرﺑﺮ )‪ (user‬ﭼﮕﻮﻧﮕﻲ ﺑﻪ ﻋﻴﻨﻴﺖ )‪ (materalize‬در‬ ‫آوردن دﻳﺪش را ﺗﺼﺮﻳﺢ ﻣﻲﻛﻨﺪ و ﺑﻪ ﻃﻮر ﺿﻤﻨﻲ آﻧﭽﻪ را ﻛﻪ ﻣﻲﺧﻮاﻫﺪ‪ ،‬ﺑﻴﺎن‬ ‫ﻣﻲﻛﻨﺪ وﻟﻲ در زﺑﺎن ﻫﺎي روﻳﻪاي ﺑﺮ ﻋﻜﺲ اﺳﺖ‪.‬‬ ‫‪ .2‬در زﺑﺎن ﻫﺎي ﻧﺎروﻳﻪاي ﻛﺎرﺑﺮ ﻓﻘﻂ آﻧﭽﻪ را ﻛﻪ ﻣﻲﺧﻮاﻫﺪ ﺗﺼﺮﻳﺢ ﻣﻲﻛﻨﺪ‪ ،‬در‬ ‫ﺣﺎﻟﻲ ﻛﻪ در زﺑﺎن ﻫﺎي روﻳﻪاي ﺑﻪ ﻋﻼوه ﺑﺎﻳﺪ ﭼﮕﻮﻧﮕﻲ ﺑﻪ ﻋﻴﻨﻴﺖ در آوردن‬ ‫دﻳﺪش را ﻧﻴﺰ ﺑﻴﺎن ﻧﻤﺎﻳﺪ‪.‬‬ ‫‪ .3‬اﺳﺎﺳﺎً ﺑﺎ ﻫﻢ ﻓﺮﻗﻲ ﻧﺪارﻧﺪ‪.‬‬ ‫‪ .4‬در زﺑﺎﻧﻬﺎي روﻳﻪاي ﻛﺎرﺑﺮ ﻓﻘﻂ آﻧﭽﻪ را ﻛﻪ ﻣﻲﺧﻮاﻫﺪ‪ ،‬ﺗﺼﺮﻳﺢ ﻣﻲﻛﻨﺪ در‬ ‫ﺣﺎﻟﻴﻜﻪ در زﺑﺎﻧﻬﺎي ﻧﺎروﻳﻪاي ﺑﻪ ﻋﻼوه ﺑﺎﻳﺪ ﭼﮕﻮﻧﮕﻲ ﺑﻪ ﻋﻴﻨﻴﺖ در آوردن‬ ‫دﻳﺪش را ﻧﻴﺰ ﺑﻴﺎن ﻧﻤﺎﻳﺪ‪.‬‬ ‫‪ -6‬ﻛﺪاﻣﻴﻚ از ﻣﻮارد زﻳﺮ از ﻋﻨﺎﺻﺮ اﺻﻠﻲ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ اﺳﺖ ؟ )ﻣﺴﺎﺑﻘﺎت‬ ‫آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ‪(76-‬‬ ‫‪ .1‬اﺷﺘﺮاك ﻣﻨﺎﺑﻊ‬ ‫‪ .2‬اﻣﻨﻴﺖ دادهﻫﺎ‬ ‫‪ .3‬ﭘﺮوژهﻫﺎ‬ ‫‪ .4‬ﺳﺨﺖاﻓﺰار‬ ‫‪ DBMS -7‬ﭼﻴﺴﺖ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ‪(76-‬‬

‫‪ 242‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ .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‬ﮔﺰارش از ﻛﺎرﻛﻨﺎن ﻳﻚ ﺑﺨﺶ ﺳﺎزﻣﺎن‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪243‬‬

‫‪ -2‬ﺛﺒﺖ ﻧﺎم ﺑﺨﺶ ﻫﺎي ﻳﻚ ﺳﺎزﻣﺎن‬ ‫‪ -3‬ﻣﺤﺪودﻳﺖ ﺗﻌﺪاد ﻛﺎرﻣﻨﺪان ﻳﻚ ﺑﺨﺶ‬ ‫‪ -4‬ﺛﺒﺖ و ﮔﺰارش ﻣﻘﺪار ﺳﺎﻋﺎت اﺿﺎﻓﻪ ﻛﺎري ﻫﺮ ﻛﺎرﻣﻨﺪ‬ ‫‪ -12‬ﻛﺪام ﺗﻌﺮﻳﻒ ﺑﺮاي ‪ DBMS‬ﻛﺎﻣﻠﺘﺮ اﺳﺖ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ‪ 77‬و‪(80‬‬ ‫‪ -1‬ﻧﺮماﻓﺰار ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﺟﻬﺖ ﻛﺎر و اﻧﺠﺎم ﻋﻤﻠﻴﺎت روي‬ ‫دادهﻫﺎ‬ ‫‪ -2‬ﻧﺮماﻓﺰاري ﺑﺮاي ارﺗﺒﺎط ﺑﻴﻦ ﻛﺎرﺑﺮان و ﻓﺎﻳﻠﻬﺎ در ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ‬ ‫‪ -3‬ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ ﻣﺨﺼﻮص ﺑﺎﻧﻜﻬﺎي اﻃﻼﻋﺎﺗﻲ‬ ‫‪ -4‬ﻧﺮماﻓﺰاري ﺑﺮاي ﻣﺪﻳﺮﻳﺖ دادهﻫﺎ در ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ‬ ‫‪-13‬ﻛﺪاﻣﻴﻚ ﺗﻌﺮﻳﻒ دﻳﻜﺸﻨﺮي دادهﻫﺎ )‪(catalog‬‬

‫در ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻣﻲﺑﺎﺷﺪ ؟‬

‫)ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ ‪ 77-‬و‪(80‬‬ ‫‪ -1‬ﻳﻚ ﺑﺎﻧﻚ ﺷﺎﻣﻞ ﻣﺸﺨﺼﺎت ﻛﺎرﺑﺮان ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ‬ ‫‪ -2‬ﻳﻚ ﺑﺎﻧﻚ ﻛﻪ ﻣﺸﺨﺼﺎت ﺳﺎﻳﺮ ﺑﺎﻧﻜﻬﺎي اﻃﻼﻋﺎﺗﻲ در آن وﺟﻮد دارد‬ ‫‪ -3‬ﻳﻚ ﺑﺎﻧﻚ ﺷﺎﻣﻞ ﻣﺸﺨﺼﺎت دادهﻫﺎي ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ‬ ‫‪ -4‬ﻳﻚ ﺑﺎﻧﻚ ﺷﺎﻣﻞ ﻣﺸﺨﺼﺎت ﺻﻔﺎت ﺧﺎﺻﻪ در ﻳﻚ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ‬ ‫‪ DDL -14‬ﭼﻴﺴﺖ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ ‪(77‬‬ ‫‪ -1‬زﺑﺎﻧﻲ اﺳﺖ ﺑﺮاي ﻧﻮﺷﺘﻦ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ‬ ‫‪ -2‬زﺑﺎﻧﻲ اﺳﺖ ﺑﺮاي ﺗﻌﺮﻳﻒ دادهﻫﺎ‬ ‫‪ -3‬زﺑﺎﻧﻲ اﺳﺖ ﺑﺮاي ﻛﺎر در ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ‬ ‫‪ -4‬زﺑﺎﻧﻲ اﺳﺖ ﺑﺮاي دﺳﺘﻜﺎري دادهﻫﺎ‬ ‫‪ -15‬ﻛﺪاﻣﻴﻚ از ﻣﻮارد زﻳﺮ از اﺟﺰاي ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ اراﺋﻪ ﺷﺪه ﺗﻮﺳﻂ‬ ‫‪ ANSI‬ﻧﻴﺴﺖ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ‪( 78-‬‬ ‫‪ -1‬ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﺑﺎﻧﻚ اﻃﻼﻋﺎت )‪(DBMS‬‬ ‫‪ -2‬زﺑﺎن ﻓﺮﻋﻲ دادهاي )‪(DSL‬‬

‫‪ 244‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬ ‫‪ -3‬ﭘﻴﺶ ﻛﺎﻣﭙﺎﻳﻠﺮ )‪(Precompiler‬‬ ‫‪ -4‬زﺑﺎن ﻣﻴﺰﺑﺎن )‪(HL‬‬

‫‪ -16‬در ﭘﺎﻳﮕﺎهدادهﻫﺎ‪ ،‬ﺑﺎ ﻛﺎﻫﺶ اﻓﺰوﻧﮕﻲ دادهﻫﺎ ﻧﺘﻴﺠﻪ ﺣﺎﺻﻞ ﻛﺪام اﺳﺖ ؟ )ﻣﺴﺎﺑﻘﺎت‬ ‫آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ ‪(78-‬‬ ‫‪ -1‬اﺳﺘﻘﻼل دادهﻫﺎ‬ ‫‪ -2‬اﻣﻨﻴﺖ دادهﻫﺎ )‪(security‬‬ ‫‪ -3‬ﻛﺎﻫﺶ ﻧﺎﺳﺎزﮔﺎري دادهﻫﺎ )‪(Inconsistency‬‬

‫‪ -4‬اﺷﺘﺮاك دادهﻫﺎ‬ ‫‪ -17‬ﻛﺪاﻣﻴﻚ از ﻣﻮارد زﻳﺮ ﺟﺰء وﻇﺎﻳﻒ ‪ DBMS‬ﻣﺤﺴﻮب ﻧﻤﻲﺷﻮد ؟ )ﻣﺴﺎﺑﻘﺎت‬ ‫آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ‪(78-‬‬ ‫‪ -1‬ﺗﺒﺪﻳﻞ اﺣﻜﺎم ‪ /‬ﺷﻤﺎي ادراﻛﻲ ﺑﻪ ﺳﻄﺢ داﺧﻠﻲ و ﺑﺎﻟﻌﻜﺲ‬ ‫‪ -2‬ﺗﻌﻴﻴﻦ و ﻣﺤﺎﺳﺒﻪ ﻃﻮل ﺑﻼك‪ ،‬آدرس ﻓﻴﺰﻳﻜﻲ رﻛﻮردﻫﺎ واﻧﺪازه ﺑﺎﻓﺮ‬ ‫‪ -3‬ﺷﻨﺎﺳﺎﻳﻲ ﻛﺎرﺑﺮ و ﺗﺸﺨﻴﺺ اﺟﺎزه دﺳﺘﺮﺳﻲ آن ﺑﻪ ﭘﺎﻳﮕﺎهداده )‪(DB‬‬

‫‪ -4‬ﺑﺮرﺳﻲ درﺧﻮاﺳﺖ ﻛﺎرﺑﺮ از ﻧﻈﺮ ﺻﺤﺖ ﮔﺮاﻣﺮي )‪ (Syntax‬آن‬ ‫‪ -18‬ﻳﻚ ﺳﻴﺴﺘﻢ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﺷﺎﻣﻞ ﭼﻪ ﻣﻮاردي ﻣﻲﺑﺎﺷﺪ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي‬ ‫ﻓﻨﻲ ‪(78-‬‬ ‫‪ -1‬دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه‪ -‬ﻛﺎرﺑﺮان‪ DBMS -‬و ﺳﺨﺖاﻓﺰار‬ ‫‪ -2‬دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه‪ DBMS -‬و ‪DBA‬‬ ‫‪ -3‬دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه‪ -‬ﻛﺎرﺑﺮان‪AM -‬‬

‫‪ -4‬دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه‪ -‬ﻛﺎرﺑﺮان‪ AM -‬و ﺳﺨﺖاﻓﺰار‬ ‫‪integrity-19‬‬

‫ﺑﻪ ﻋﻨﻮان ﻳﻜﻲ از اﻣﺘﻴﺎزات ‪ database‬ﺑﻪ ﭼﻪ ﻣﻌﻨﺎﺳﺖ ؟ )ﻣﺴﺎﺑﻘﺎت‬

‫آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ‪(79-‬‬ ‫‪ -1‬ﻛﺎﻫﺶ اﻓﺰوﻧﮕﻲ دادهﻫﺎ و ﭘﺎﻳﮕﺎهدادهﻫﺎ‬ ‫‪ -2‬ﺻﺤﺖ دادهﻫﺎ و ﭘﺮدازش ﻫﺎ و ﭘﻴﺮوي از ﻗﻮاﻋﺪ ﺳﻴﺴﺘﻢ‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪245‬‬

‫‪ -3‬ﻣﺤﺎﻓﻈﺖ دادهﻫﺎ در ﺑﺮاﺑﺮ ﺧﻄﺮات‬ ‫‪ -4‬ﭘﺮﻫﻴﺰ از ﻧﺎﻫﻤﺨﻮاﻧﻲ دادهﻫﺎ در ﭘﺎﻳﮕﺎهدادهﻫﺎ‬ ‫‪ -20‬ﻃﺮاح ﺑﺎﻧﻚ‪ ،‬از دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه در ﺑﺎﻧﻚ ﭼﮕﻮﻧﻪ دﻳﺪي در ﺑﺎﻻﺗﺮﻳﻦ ﺳﻄﺢ‬ ‫اﻧﺘﺰاﻋﻲ دارد ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ ‪(80-‬‬ ‫‪ -1‬ادراﻛﻲ‬ ‫‪ -2‬ﺧﺎرﺟﻲ‬ ‫‪ -3‬داﺧﻠﻲ‬ ‫‪ -4‬ﻓﻴﺰﻳﻜﻲ‬ ‫‪ -21‬ﻛﺪاﻣﻴﻚ از ﻣﻮارد زﻳﺮ ﺟﺰء وﻳﮋﮔﻲ ﻫﺎي ﺑﺎﻧﻚ اﺳﺖ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي‬ ‫ﻓﻨﻲ ‪(80-‬‬ ‫‪ -1‬اﻣﻜﺎن اﺳﺘﻔﺎده از ﺑﺎزﻳﺎﺑﻲ اﺳﺘﻨﺘﺎﺟﻲ‬ ‫‪ -2‬اﻣﻜﺎن ﭘﺮدازش دﺳﺘﻮرات ﻛﺎرﺑﺮ ﺑﻪ زﺑﺎن ﻃﺒﻴﻌﻲ‬ ‫‪ -3‬اﺳﺘﻔﺎده ﻫﻤﺰﻣﺎن و اﺷﺘﺮاﻛﻲ از دادهﻫﺎ‬ ‫‪ -4‬ﭘﺪﻳﺪه ﻧﺎﺳﺎزﮔﺎري دادهﻫﺎ‬ ‫‪ -22‬ﻛﺪام ﮔﺰﻳﻨﻪ از اﺟﺰاء ﻣﻌﻤﺎري ﺳﻴﺴﺘﻢ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ در ‪ ANSI‬ﻧﻤﻲﺑﺎﺷﺪ ؟‬ ‫‪Mapping -1‬‬ ‫‪MSD -2‬‬ ‫‪HL -3‬‬ ‫‪DSL -4‬‬ ‫‪ -23‬ﻣﻨﻈﻮر از ‪ CASE‬در ﭘﺎﻳﮕﺎهدادهﻫﺎ ﭼﻴﺴﺖ ؟‬

‫‪ -1‬اﺑﺰار ﻛﻤﻜﻲ در ﻃﺮاﺣﻲ و ﭘﻴﺎده ﺳﺎزي ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ‬ ‫‪ -2‬ﺣﺎﻻت ﻣﺨﺘﻠﻒ ﭘﻴﺎده ﺳﺎزي ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ‬ ‫‪ -3‬ﻳﻜﻲ از ﺳﺎﺧﺘﺎرﻫﺎي راﺑﻄﻪاي‪ ،‬ﺷﺒﻜﻪاي ﻳﺎ ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‬ ‫‪ -4‬ﺣﺎﻟﺖ ﺧﺎﺻﻲ ﻛﻪ ﻣﻤﻜﻦ اﺳﺖ ﺑﺎﻧﻚ ﺑﻪ ﺣﺎﻟﺖ آﻧﻮﻣﺎﻟﻲ ﺑﺮﺳﺪ‬ ‫‪ -24‬ﭼﻬﺎر ﻛﻨﺘﺮﻟﻲ ﻛﻪ ﺑﺎﻳﺪ روي ﺗﻤﺎﻣﻲﺗﺮاﻛﻨﺶ ﻫﺎي ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ اﻋﻤﺎل ﮔﺮدد ﺗﺎ‬ ‫ﺻﺤﺖ و ﺟﺎﻣﻌﻴﺖ آن ﺗﻀﻤﻴﻦ ﺷﻮد‪ ،‬ﻛﺪاﻣﻨﺪ ؟‬

‫‪ 246‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬ ‫‪data dictionary -isolation-security atomicity- -1‬‬ ‫‪isolation -anomaly-integrity durability- -2‬‬ ‫‪atomicity -isolation-consistency durability- -3‬‬ ‫‪consistency -data dictionary-security anomaly- -4‬‬

‫‪ -25‬در ﻛﺎﺗﺎﻟﻮگ ﺳﻴﺴﺘﻢ ﻛﺪام ﮔﺰﻳﻨﻪ وﺟﻮد دارد ؟‬ ‫‪ -1‬ﻧﺎم ﻣﻮﺟﻮدﻳﺘﻬﺎ و ارﺗﺒﺎﻃﺎت ﺑﻴﻦ آﻧﻬﺎ‬ ‫‪ -2‬ﺷﻤﺎي ادراﻛﻲ‬ ‫‪ -3‬ﺷﻤﺎﻫﺎي ﺧﺎرﺟﻲ ﻛﺎرﺑﺮان‪-‬ﺳﺎﺧﺘﺎر ﻓﻴﺰﻳﻜﻲ ﺑﺎﻧﻚ‬ ‫‪ -4‬ﻫﺮ ﺳﻪ‬ ‫‪-26‬ﻣﻨﻈﻮر از ‪ DML‬ﭼﻴﺴﺖ ؟‬ ‫‪ -1‬اﺣﻜﺎم ﻛﺎر ﺑﺎ )ﭘﺮدازش( دادهﻫﺎ‬ ‫‪ -2‬اﺣﻜﺎم ﻛﻨﺘﺮﻟﻲ‬ ‫‪ -3‬اﺣﻜﺎم ﺗﻌﺮﻳﻒ دادهﻫﺎ‬ ‫‪ -4‬ﻫﻴﭽﻜﺪام‬ ‫‪ -27‬ﺗﺼﻮﻳﺮ ادراﻛﻲ ﻳﻌﻨﻲ‪:‬‬ ‫‪ -1‬دﻳﺪ ‪ DBA‬از ﻛﻞ ﺑﺎﻧﻚ‬ ‫‪ -2‬دﻳﺪ ﻛﺎرﺑﺮ از ﻛﻞ ﺑﺎﻧﻚ‬ ‫‪ -3‬دﻳﺪ ‪ DBA‬از ﺑﺨﺸﻲ از ﺑﺎﻧﻚ‬ ‫‪ -4‬دﻳﺪ ﻛﺎرﺑﺮ از ﺑﺨﺸﻲ از ﺑﺎﻧﻚ‬ ‫‪ -28‬ﻛﺪام ﮔﺰﻳﻨﻪ از ﻣﻌﺎﻳﺐ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻧﻴﺴﺖ ؟ )آزﻣﺎﻳﺸﻲ‪ -‬ﻛﺎوﺷﻜﺮان‪(80 -‬‬ ‫‪ -1‬در ﺻﻮرت ﻋﺪم ﻛﻨﺘﺮل ﻣﻨﺎﺳﺐ ﻣﻤﻜﻦ اﺳﺖ ﺟﺎﻣﻌﻴﺖ دادهﻫﺎ ﺑﻪ ﺧﻄﺮ اﻓﺘﺪ‪.‬‬ ‫‪ -2‬ﺳﺮﺑﺎرﻫﺎي ﻛﺎراﻳﻲ ﻣﻤﻜﻦ اﺳﺖ زﻳﺎد ﺑﺎﺷﺪ‪.‬‬ ‫‪ -3‬ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﭘﻴﭽﻴﺪه ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ -4‬در ﺻﻮرت ﻋﺪم ﻛﻨﺘﺮل ﻣﻨﺎﺳﺐ ﻣﻤﻜﻦ اﺳﺖ اﻣﻨﻴﺖ ﺑﻪ ﺧﻄﺮ ﺑﻴﻔﺘﺪ‪.‬‬ ‫‪ -29‬ﻛﺪام ﮔﺰﻳﻨﻪ در راﺑﻄﻪ ﺑﺎ ﺗﺮاﻛﻨﺶ ﻫﺎ ﻧﺎدرﺳﺖ اﺳﺖ ؟‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪247‬‬

‫‪ -1‬ﺗﺮاﻛﻨﺶ ﻫﺎ اﺗﻤﻲﻫﺴﺘﻨﺪ ﻳﻌﻨﻲاﻳﻨﻜﻪ ﻳﺎ ﺑﻪ ﻃﻮر ﻛﺎﻣﻞ اﺟﺮاء ﻣﻲﺷﻮﻧﺪ ﻳﺎ اﺻﻼً اﺟﺮاء‬ ‫ﻧﻤﻲﺷﻮﻧﺪ ﺣﺘﻲ اﮔﺮ ﺳﻴﺴﺘﻢ در وﺳﻂ ﻛﺎر ﺧﺮاب ﺷﻮد‪.‬‬ ‫‪ -2‬ﺗﺮاﻛﻨﺶ ﻳﻚ واﺣﺪ ﻣﻨﻄﻘﻲ از ﻛﺎر اﺳﺖ و ﻣﻌﻤﻮﻻً ﺷﺎﻣﻞ ﭼﻨﺪﻳﻦ ﻋﻤﻞ ﺑﺎﻧﻚ‬ ‫اﻃﻼﻋﺎﺗﻲ اﺳﺖ‪.‬‬ ‫‪ -3‬ﻋﻤﻞ ‪ COMMIT‬ﭘﻴﺎم ﻣﻮﻓﻘﻴﺖ اﻧﺠﺎم ﺗﺮاﻛﻨﺶ را ارﺳﺎل ﻣﻲﻛﻨﺪ‪.‬‬ ‫‪ -4‬ﻋﻤﻞ ‪ ROLLBACK‬ﺑﺎﻋﺚ ﻣﻲﺷﻮد ﻋﻤﻠﻴﺎت از اول دوﺑﺎره ﺗﻜﺮار ﺷﻮد‪.‬‬ ‫‪ -30‬ﻛﺪام ﮔﺰﻳﻨﻪ از وﻇﺎﻳﻒ ‪ DDL‬اﺳﺖ ؟‬ ‫‪ -1‬ﺳﺎﺧﺘﺎر دادهﻫﺎ‬ ‫‪ -2‬ﺗﻌﺮﻳﻒ ﻓﻴﻠﺪ ﻫﺎ‬ ‫‪ -3‬ﻣﺤﻞ ﻓﺎﻳﻠﻬﺎ‬ ‫‪ -4‬ﻫﻤﻪ ﮔﺰﻳﻨﻪﻫﺎ‬ ‫‪ -31‬ﻣﺪﻳﺮان داده )‪( DA‬وﻇﻴﻔﻪ ﺷﺎن ﭼﻴﺴﺖ ؟‬ ‫‪ -1‬ﻛﻨﺘﺮل ‪database‬‬

‫‪ -2‬ﻛﻨﺘﺮل ‪ DBMS‬و دادهﻫﺎ‬ ‫‪ -3‬اﺟﺮاي ‪database‬‬ ‫‪ -4‬اﺳﺘﻔﺎده از ‪database‬‬

‫‪ -32‬ﻛﺪام ﮔﺰﻳﻨﻪ ﺑﺮاي ﺗﻮﺿﻴﺢ دﻳﺘﺎﺑﻴﺲ ﻛﺎﻣﻠﺘﺮ اﺳﺖ ؟‬ ‫‪ -1‬ﺑﻴﺎن ﻛﻨﻨﺪه ﻓﺎﻳﻠﻬﺎي دادهاي اﺳﺖ‬ ‫‪ -2‬ﺑﻴﺎن ﻛﻨﻨﺪه ﺟﺪاول و ﺻﻔﺎت ﺧﺎﺻﻪ اﺳﺖ‬ ‫‪ -3‬ﻳﻚ ﻧﻮع زﺑﺎن ﭘﺮدازﺷﻲ ﺟﻬﺖ ﻣﺪﻳﺮﻳﺖ دادهاي اﺳﺖ‬ ‫‪ -4‬ﺑﻴﺎن ﻛﻨﻨﺪه ﻣﻮﺟﻮدﻳﺘﻬﺎ‪ ،‬ﺻﻔﺎت ﺧﺎﺻﻪ و ارﺗﺒﺎط ﺑﻴﻦ ﻣﻮﺟﻮدﻳﺘﻬﺎ اﺳﺖ‬ ‫‪ -33‬ﻛﺪام ﮔﺰﻳﻨﻪ ﺗﻌﺮﻳﻒ ﻛﺎﻣﻠﺘﺮي از ‪ DBMS‬را اراﺋﻪ ﻣﻲﻛﻨﺪ ؟‬ ‫‪ -1‬ﻫﻤﺎن دﻳﺘﺎﺑﻴﺲ اﺳﺖ‪.‬‬ ‫‪ -2‬راﺑﻂ ﺑﻴﻦ دﻳﺘﺎﺑﻴﺲ و ﻛﺎرﺑﺮ اﺳﺖ‪.‬‬

‫‪ 248‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ -3‬ﺟﻬﺖ ﺗﻌﺮﻳﻒ و ﻛﺎر ﺑﺎ دﻳﺘﺎﺑﻴﺲ اﺳﺘﻔﺎده ﻣﻲﺷﻮد‪.‬‬ ‫‪2 -4‬و‪3‬‬ ‫‪ -34‬ﻣﻨﻈﻮر از ‪ DBMS Environment‬ﻛﺪام اﺳﺖ ؟‬ ‫‪Procedure-People -Data -Software -Hardware -1‬‬ ‫‪User -Software -Hardware -2‬‬ ‫‪Database -Software - Hardware -3‬‬ ‫‪Hardware-Software -People -Data -4‬‬

‫‪ DML -35‬ﭼﻴﺴﺖ ؟‬ ‫‪ -1‬زﺑﺎﻧﻲ ﺟﻬﺖ ﭘﺮس و ﺟﻮي دادهﻫﺎ‬ ‫‪ -2‬زﺑﺎﻧﻲ ﺟﻬﺖ ﮔﺰارش ﮔﻴﺮي‬ ‫‪2 - 3‬و‪1‬‬ ‫‪ -4‬زﺑﺎﻧﻲ ﺟﻬﺖ ﺗﻌﺮﻳﻒ دادهﻫﺎ‬ ‫‪ DDL -36‬ﭼﻴﺴﺖ ؟‬ ‫‪ -1‬ﺑﺮاي اﻧﺠﺎم اﻋﻤﺎل ﻣﺤﺎﺳﺒﺎﺗﻲ اﺳﺘﻔﺎده ﻣﻲﺷﻮد‪.‬‬ ‫‪ -2‬ﺑﺮاي درج دادهﻫﺎ و ﺑﻪ روز رﺳﺎﻧﻲ آﻧﻬﺎ اﺳﺘﻔﺎده ﻣﻲﮔﺮدد‪.‬‬ ‫‪ -3‬ﺻﻔﺎت ﻣﺸﺨﺼﻪ و ﺧﺼﻮﺻﻴﺎت دﻳﺘﺎﺑﻴﺲ را ﺗﻌﺮﻳﻒ ﻣﻲﻛﻨﺪ‪.‬‬ ‫‪ -4‬ﻫﻤﺎن ‪ DML‬ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ -37‬ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ -1‬ﻳﻜﻲ از ﻣﺰاﻳﺎي ‪ DBMS‬اﻳﺠﺎد ﻣﺤﺪودﻳﺘﻬﺎي اﻣﻨﻴﺘﻲ اﺳﺖ‪.‬‬ ‫‪ Database -2‬ﻣﺠﻤﻮﻋﻪاي از ﭼﻨﺪ رﻛﻮرد اﺳﺖ‪.‬‬ ‫‪ External view -3‬دﻳﺪ ﻃﺮاح ﺑﺎﻧﻚ اﺳﺖ‪.‬‬ ‫‪ End user -4‬اﻓﺮادي ﻫﺴﺘﻨﺪ ﻛﻪ از دﻳﺘﺎﺑﻴﺲ اﺳﺘﻔﺎده ﻣﻲﻛﻨﻨﺪ‪.‬‬ ‫‪-38‬در ﻣﺪل ‪ ANSI / SPARC‬ﻛﺪام دﻳﺪ ﻣﺮﺑﻮط ﺑﻪ دادهﻫﺎ و ﻧﮕﺮﺷﻲ ﺑﺮ ﻣﺤﺪودﻳﺘﻬﺎي‬ ‫ﺳﻴﺴﺘﻢ اﺳﺖ ؟‬ ‫‪External Level -1‬‬ ‫‪Conceptual level -2‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬ ‫‪-3‬‬

‫‪249‬‬

‫‪Internal‬‬

‫‪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‬اﺷﺘﺮاك دادهﻫﺎ‬

‫‪ 250‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ -43‬ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ -1‬ﻳﻚ ﺳﻴﺴﺘﻢ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﺷﺎﻣﻞ ﻣﻮارد روﺑﺮو اﺳﺖ‪ :‬دادهﻫﺎي ذﺧﻴﺮه ﺷﺪه‪،‬‬ ‫ﻛﺎرﺑﺮان‪ ،DBMS ،‬ﺳﺨﺖاﻓﺰار‬ ‫‪ DBMS -2‬زﺑﺎﻧﻲ اﺳﺖ ﺑﺮاي ﺗﻌﺮﻳﻒ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ‬ ‫‪ DBMS -3‬ﻧﺮماﻓﺰار ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﺟﻬﺖ ﻛﺎر و اﻧﺠﺎم ﻋﻤﻠﻴﺎت‬ ‫روي دادهﻫﺎ ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ DBMS -4‬ﻣﻴﻬﻤﺎن ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ اﺳﺖ‪.‬‬ ‫‪ -44‬در ﻛﺪاﻣﻴﻚ از اﻧﻮاع ارﺗﺒﺎط ﺑﻴﻦ ‪ DBMS‬ﺑﺎ ﺳﺎﻳﺮ ﻋﻨﺎﺻﺮ ﻧﺮماﻓﺰاري ﻣﺤﻴﻂ‪ ،‬اﻣﻜﺎن‬ ‫اﺷﺘﺮاﻛﻲ‬ ‫ﺷﺪن دادهﻫﺎ ﺑﺮاي ﺑﺮﻧﺎﻣﻪﻫﺎ وﺟﻮد ﻧﺪارد ؟‬ ‫‪ -1‬ﻳﻚ ‪ DBMS‬ﺑﺮاي ﻫﺮ ﺑﺮﻧﺎﻣﻪ ﻛﺎرﺑﺮدي وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬ ‫‪ -2‬ﻳﻚ ‪ DBMS‬ﺗﺤﺖ ﻛﻨﺘﺮل ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬ ‫‪ -3‬ﺑﺮﻧﺎﻣﻪﻫﺎ ﺗﺤﺖ ﻛﻨﺘﺮل ‪ DBMS‬اﺟﺮاء ﺷﻮﻧﺪ‪.‬‬ ‫‪ -4‬ﻫﻴﭽﻜﺪام‪.‬‬ ‫‪ -45‬ﻛﺪاﻣﻴﻚ از ﻣﻮارد زﻳﺮ از وﻇﻠﻴﻒ ‪ DBMS‬ﻧﻤﻲﺑﺎﺷﺪ ؟‬ ‫‪ -1‬ﺑﺮﻗﺮاري اﻣﻨﻴﺖ‬ ‫‪ -2‬ﺗﺎﻣﻴﻦ اﻣﻜﺎن ﺗﻌﺮﻳﻒ واﻳﺠﺎد ﺑﺎﻧﻚ‬ ‫‪ -3‬ﺑﺎزﻳﺎﺑﻲ و ﺑﻬﻨﮕﺎم ﺳﺎزي ﺑﺎﻧﻚ‬ ‫‪ -4‬ﺗﺎﻣﻴﻦ اﻣﻜﺎن ﻛﻨﺘﺮل ﺟﺎﻣﻌﻴﺖ ﺑﺎﻧﻚ‬ ‫‪ DSL -46‬ﭼﻪ ﻧﻮع زﺑﺎﻧﻲ اﺳﺖ ؟‬ ‫‪Procedural -1‬‬ ‫‪Declarative -2‬‬ ‫‪OOP -3‬‬ ‫‪Non-structured -4‬‬ ‫‪ -47‬اﻟﮕﻮي ‪ ANSI / SPARC‬ﭼﻴﺴﺖ ؟‬

‫‪ -1‬راﺑﻄﻪ ﺑﻴﻦ ﻣﻮﺟﻮدﻳﺘﻬﺎ را ﺑﻴﺎن ﻣﻲﻛﻨﺪ‪.‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪251‬‬

‫‪ -2‬اﺟﺘﻤﺎﻋﻲ از دﻳﺪﮔﺎﻫﻬﺎي ﻣﺠﺰاي ﻛﺎرﺑﺮان اﺳﺖ‪.‬‬ ‫‪ -3‬اﺟﺘﻤﺎﻋﻲ از دﻳﺪﮔﺎﻫﻬﺎي اﻧﺒﺎرﺷﻲ و اﺟﺘﻤﺎع دﻳﺪﮔﺎه ﻛﺎرﺑﺮان و دﻳﺪﮔﺎﻫﻬﺎي‬ ‫ﻣﺠﺰاي ﻛﺎرﺑﺮان اﺳﺖ‪.‬‬ ‫‪ -4‬اﺟﺘﻤﺎﻋﻲ از دﻳﺪﮔﺎﻫﻬﺎي اﻧﺒﺎرﺷﻲ و ﻣﺠﺰاي ﻛﺎرﺑﺮان اﺳﺖ‪.‬‬ ‫‪ -48‬ﻣﺠﺘﻤﻊ ﺑﻮدن ﻋﺒﺎرت اﺳﺖ از‪:‬‬ ‫‪ -1‬ﺟﻤﻊ ﭘﺬﻳﺮي ﻧﺮماﻓﺰارﻫﺎي ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ‬ ‫‪ -2‬وﺣﺪت ﭼﻨﺪﻳﻦ ﻓﺎﻳﻞ اﻃﻼﻋﺎﺗﻲ ﻣﺠﺰا ﺑﺎ اﻣﻜﺎن ﺗﻜﺮار ﺗﻜﻨﻴﻜﻲ اﻃﻼﻋﺎت‬ ‫‪ -3‬وﺣﺪت ﭼﻨﺪﻳﻦ ﻓﺎﻳﻞ اﻃﻼﻋﺎﺗﻲ ﻣﺠﺰا ﺑﻮدن ﻫﺮﮔﻮﻧﻪ ﺗﻜﺮاري‬ ‫‪ -4‬وﺣﺪت ﭼﻨﺪﻳﻦ رﻛﻮرد ﺣﺬف ﺷﺪه‬ ‫‪ schema -49‬ﻳﻚ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻋﺒﺎرت اﺳﺖ از‪:‬‬ ‫‪ -1‬ﺗﺸﺮﻳﺢ ‪DBMS‬‬ ‫‪ -2‬ﺗﺸﺮﻳﺢ دﻳﺘﺎﺑﻴﺲ ﺑﺮاي ‪DBMS‬‬

‫‪ -3‬ﺗﺸﺮﻳﺢ دادهﻫﺎ‬ ‫‪ -4‬ﻣﻌﺮﻓﻲ ﻛﺎرﺑﺮان‬ ‫‪ -50‬ﻣﻨﻈﻮر از ‪ View‬در ﻣﺪل ‪ ANSI‬ﭼﻴﺴﺖ ؟‬ ‫‪ -1‬دادهﻫﺎي دﻳﺪه ﺷﺪه در ﺑﺎﻧﻜﻬﺎي اﻃﻼﻋﺎﺗﻲ‬ ‫‪ -2‬ﻧﻤﺎﺋﻲ از اﻃﻼﻋﺎت ﻣﻮرد ﻧﻴﺎز ﻃﺮاح‬ ‫‪ -3‬ﻣﺸﺎﻫﺪه دادهﻫﺎ ﺑﻪ ﻫﻤﺎن ﺷﻜﻞ ﻛﻪ در ﻫﺮ ﺳﻄﺢ ﻣﺸﺎﻫﺪه ﻣﻲﺷﻮد‪.‬‬ ‫‪ -4‬ﻧﻤﺎﺋﻲ از دادهﻫﺎي ﻣﻮرد ﻧﻴﺎز در ‪DBMS‬‬

‫‪ -51‬دﻳﺪ داﺧﻠﻲ ﻋﺒﺎرت اﺳﺖ از‪:‬‬ ‫‪ -1‬ﺷﻤﺎي ﻣﺮﺑﻮط ﺑﻪ اﺳﺘﻔﺎده از ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ‬ ‫‪ -2‬ﺷﻤﺎي ﻧﺤﻮه ذﺧﻴﺮه دادهﻫﺎ در ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ‬ ‫‪ -3‬ﺷﻤﺎي ﻣﺮﺑﻮط ﺑﻪ ﻛﺎرﺑﺮان‬ ‫‪ -4‬ﺷﻤﺎي ﻣﺮﺑﻮط ﺑﻪ ﻓﺎﻳﻠﻬﺎ‪ ،‬ﺳﻜﺘﻮرﻫﺎ و ﺷﻴﺎرﻫﺎ‬

‫‪ 252‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ -52‬ﻛﺪام ﮔﺰﻳﻨﻪ در راﺑﻄﻪ ﺑﺎ ﻓﺮﻫﻨﮓ دادهﻫﺎ درﺳﺖ اﺳﺖ ؟‬ ‫‪ DBMS -1‬اﻣﻜﺎﻧﺎت ﻓﺮﻫﻨﮓ دادهﻫﺎ را ﻓﺮاﻫﻢ ﻣﻲﺳﺎزد و ﻳﻚ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﺑﺮاي‬ ‫ﺳﻴﺴﺘﻢ اﺳﺖ‪.‬‬ ‫‪ DBMS -2‬اﻣﻜﺎﻧﺎت ﻓﺮﻫﻨﮓ دادهﻫﺎ را ﻓﺮاﻫﻢ ﻣﻲﺳﺎزد و ﻳﻚ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﺑﺮاي‬ ‫ﻛﺎرﺑﺮان اﺳﺖ‪.‬‬ ‫‪ -3‬ﻓﺮﻫﻨﮓ دادهﻫﺎ ﺗﻮﺿﻴﺤﺎﺗﻲ در ﻣﻮرد ﺟﺪاول ﺑﻪ ﻛﺎرﺑﺮ ﻣﻲدﻫﺪ‪.‬‬ ‫‪ -4‬ﻓﺮﻫﻨﮓ دادهﻫﺎ ﻳﻜﻲ از اﻣﻜﺎﻧﺎﺗﻲ اﺳﺖ ﻛﻪ ‪ DBA‬در اﺧﺘﻴﺎر دﻳﺘﺎﺑﻴﺲ ﻗﺮار ﻣﻲدﻫﺪ‪.‬‬ ‫‪ -53‬ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ -1‬در اﻛﺜﺮ ﻧﺮماﻓﺰارﻫﺎي ﭘﺎﻳﮕﺎهدادهﻫﺎ ﺑﺮاي ذﺧﻴﺮه ﺳﺎزي اﻃﻼﻋﺎت ﻳﻚ ‪ entity‬از‬ ‫ﺟﺪول اﺳﺘﻔﺎده ﻣﻲﺷﻮد‪.‬‬ ‫‪ END USER -2‬ﻧﮕﻬﺪارﻧﺪﮔﺎن ﻣﺤﻴﻂ ‪ DBMS‬ﻣﻲﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ DBMS -3‬اﻣﻜﺎﻧﺎت ﻓﺮﻫﻨﮓ دادهﻫﺎ را ﻓﺮاﻫﻢ ﺳﺎﺧﺘﻪ و ﻳﻚ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﺑﺮاي‬ ‫ﺳﻴﺴﺘﻢ ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ -4‬از ﻣﺰاﻳﺎي ﭘﺎﻳﮕﺎهداده ﻧﺴﺒﺖ ﺑﻪ ﻓﺎﻳﻠﻬﺎي ﻣﻌﻤﻮﻟﻲ ﻣﻲﺗﻮان ﻛﻨﺘﺮل ﺣﺴﺎب ﺷﺪه‬ ‫ﻣﻘﺪار اﻓﺰوﻧﮕﻲ واﺷﺘﺮاك دادهﻫﺎ را ﻧﺎم ﺑﺮد‪.‬‬ ‫‪-54‬ﻛﺪام ﮔﺰﻳﻨﻪ درﺳﺖ اﺳﺖ ؟‬ ‫‪ -1‬ﻣﺠﺘﻤﻊ ﺑﻮدن ﻳﻌﻨﻲ وﺣﺪت ﭼﻨﺪﻳﻦ ﻓﺎﻳﻞ اﻃﻼﻋﺎﺗﻲ ﻣﺠﺰا ﺑﻮدن ﻫﺮ ﮔﻮﻧﻪ ﺗﻜﺮاري‬ ‫‪ -2‬ﻛﻮﭼﻜﺘﺮﻳﻦ واﺣﺪ دادهﻫﺎي ﻣﻔﻬﻮﻣﻲرا ))دادهﻫﺎي ﺗﺠﺰﻳﻪ ﭘﺬﻳﺮ (( ﮔﻮﻳﻨﺪ‪.‬‬ ‫‪ -3‬دﻳﺘﺎﺑﻴﺲ ﻣﺠﻤﻮﻋﻪاي از رﻛﻮردﻫﺎي ﺗﻜﺮاري اﺳﺖ‪.‬‬ ‫‪ -4‬ﻣﺤﺪودﻳﺘﻬﺎي ﺟﺎﻣﻌﻴﺘﻲ‪ ،‬ﺷﻤﺎي ﻫﺮ راﺑﻄﻪ و اﻃﻼﻋﺎت اﻣﻨﻴﺘﻲ ﺗﻮﺳﻂ ‪ DDL‬ﺗﻌﻴﻴﻦ‬ ‫ﻣﻲﮔﺮدد‪.‬‬ ‫‪ -55‬ﻛﺪام ﮔﺰﻳﻨﻪ درﺳﺖ اﺳﺖ ؟‬ ‫‪ -1‬ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎه اﻃﻼﻋﺎﺗﻲ از ﻣﺤﻞ ﻓﻴﺰﻳﻜﻲ رﻛﻮردﻫﺎ ﺑﺮ روي رﺳﺎﻧﻪ‬ ‫ذﺧﻴﺮه ﺳﺎزي ﺧﺒﺮ دارد‪.‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪253‬‬

‫‪ Pre-compiler -2‬در ﺑﺎﻧﻜﻬﺎي اﻃﻼﻋﺎﺗﻲ دﺳﺘﻮرﻫﺎي ﺑﺎﻧﻜﻲ را ﺑﻪ دﺳﺘﻮرﻫﺎي زﺑﺎن‬ ‫ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺗﺒﺪﻳﻞ ﻣﻲﻛﻨﺪ‪.‬‬ ‫‪ -3‬ﻛﻠﻴﻪ اﻃﻼﻋﺎت ﺳﻴﺴﺘﻤﻲاز دﻳﺪ ﺧﺎرﺟﻲ‪ ،‬ادراﻛﻲ و داﺧﻠﻲ درون ‪ DBMS‬ﻗﺮار‬ ‫دارد‪.‬‬ ‫‪ -4‬ﻛﺎﺗﺎﻟﻮگ ﺳﻴﺴﺘﻢ ﻓﻘﻂ ﺑﺎ دﺳﺘﻮرات ‪ DML‬ﻗﺎﺑﻞ ﺗﻐﻴﻴﺮ اﺳﺖ‪.‬‬ ‫‪-56‬ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ External view .1‬ﺳﻄﺢ ﻣﺸﺎﻫﺪات ﻣﺠﺰاي ﻛﺎرﺑﺮان را ﺑﻴﺎن ﻣﻲﻛﻨﺪ‪.‬‬ ‫‪ host language .2‬ﻳﻚ زﺑﺎن ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ اﺳﺖ‪.‬‬ ‫‪ .3‬ﻧﮕﺎﺷﺖ ﺧﺎرﺟﻲ ‪ /‬ﻣﻔﻬﻮﻣﻲﻛﻠﻴﺪ اﺳﺘﻘﻼل ﻣﻨﻄﻘﻲ دادهﻫﺎﺳﺖ‪.‬‬ ‫‪ .4‬در اﺳﺘﻘﻼل ﻓﻴﺰﻳﻜﻲ ﻃﺮاح در ﺗﻐﻴﻴﺮات ﺳﻄﺢ داﺧﻠﻲ ‪ /‬ادراﻛﻲ آزاد اﺳﺖ‪.‬‬ ‫‪ -57‬اﺳﺘﻘﻼل ﻣﻨﻄﻘﻲ ﺷﺎﻣﻞ ﻛﺪام ﻣﻮرد ﻧﻤﻲﺑﺎﺷﺪ ؟‬ ‫‪ .1‬ﺗﻌﺮﻳﻒ ﻳﻚ راﺑﻄﻪ ﺟﺪﻳﺪ در ﺷﻤﺎ‬ ‫‪ .2‬ﺗﺒﺪﻳﻞ ﻳﻚ راﺑﻄﻪ ﺑﻪ دو راﺑﻄﻪ ﻛﻮﭼﻜﺘﺮ‬ ‫‪ .3‬ﺟﺎﻳﮕﺰﻳﻨﻲ ﻳﻚ راﺑﻄﻪ از ﺷﻤﺎ‬ ‫‪1 .4‬و‪2‬‬ ‫‪ -58‬ﺧﺎﺻﻴﺖ ‪ isolation‬در ﺗﺮاﻛﻨﺶ ﻫﺎ ﺑﻪ ﭼﻨﺪ ﻣﻔﻬﻮم ﻣﻲﺑﺎﺷﺪ ؟‬ ‫‪ .1‬ﻫﺮ ﺗﺮاﻛﻨﺶ اﮔﺮ ﺑﻪ ﺗﻨﻬﺎﻳﻲ اﺟﺮاء ﺷﻮد ﺑﺎﻧﻚ را از ﺣﺎﻟﺘﻲ ﺻﺤﻴﺢ ﺑﻪ ﺣﺎﻟﺖ‬ ‫ﺻﺤﻴﺢ دﻳﮕﺮي ﻣﻨﺘﻘﻞ ﻣﻲﺳﺎزد‪.‬‬ ‫‪ .2‬اﺛﺮ ﺗﺮاﻛﻨﺶ ﻫﺎي ﻫﻢ روﻧﺪ روي ﻳﻜﺪﻳﮕﺮ ﭼﻨﺎن اﺳﺖ ﻛﻪ اﻧﮕﺎر ﻫﺮ ﻛﺪام در اﻧﺰوا‬ ‫اﻧﺠﺎم ﻣﻲﺷﻮد‪.‬‬ ‫‪ .3‬ﻛﻨﺘﺮل ‪ isolation‬ﺗﻮﺳﻂ واﺣﺪ ‪ recovery management‬ﺻﻮرت ﻣﻲﮔﻴﺮد‪.‬‬ ‫‪ .4‬ﺗﺮاﻛﻨﺶ ﻫﺎ ﻣﻤﻜﻦ اﺳﺖ اﺛﺮ ﻣﺨﺮب ﺑﺮ روي ﻫﻢ داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ -59‬دو ﻧﻮع ﭘﺎﻳﺎن ﺑﺮاي ﺗﺮاﻛﻨﺶ ﻫﺎ ﻋﺒﺎرﺗﻨﺪ از‪:‬‬ ‫‪Abort , Commit .1‬‬ ‫‪Run , ready .2‬‬ ‫‪Abort , Retry .3‬‬

‫‪ 254‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬ ‫‪Commit , Success .4‬‬ ‫‪ -60‬ﻫﻤﺨﻮاﻧﻲ ﻳﺎ ﺳﺎزﮔﺎري )‪ (Consistency‬ﺑﺮاي ﺗﺮاﻛﻨﺶ ﻫﺎ ﺑﻪ ﭼﻪ ﻣﻌﻨﺎﺳﺖ ؟‬

‫‪ .1‬ﻫﺮ ﺗﺮاﻛﻨﺶ اﮔﺮ ﺑﻪ ﺗﻨﻬﺎﻳﻲ اﺟﺮاء ﺷﻮد ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ را از ﺣﺎﻟﺘﻲ ﺻﺤﻴﺢ ﺑﻪ‬ ‫ﺣﺎﻟﺖ ﺻﺤﻴﺢ دﻳﮕﺮ ﻣﻨﺘﻘﻞ ﻣﻲﻛﻨﺪ‪.‬‬ ‫‪ .2‬در ﺗﺮاﻛﻨﺶ ﺑﺎﻳﺪ ﺗﻤﺎﻣﻲﻗﻮاﻧﻴﻦ ﺟﺎﻣﻌﻴﺖ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ را رﻋﺎﻳﺖ ﻛﻨﺪ‪.‬‬ ‫‪1 .3‬و‪2‬‬ ‫‪ .4‬ﻫﻴﭽﻜﺪام‬ ‫‪ -61‬ﺧﺎﺻﻴﺖ اﺗﻤﻲﺑﻮدن ﺑﺮاي ﺗﺮاﻛﻨﺶ ﻫﺎ ﺑﻪ ﭼﻪ ﻣﻔﻬﻮم ﻣﻲﺑﺎﺷﺪ ؟‬ ‫‪ .1‬ﺗﻤﺎم دﺳﺘﻮرات ﻳﻚ ﺗﺮاﻛﻨﺶ ﻳﺎ ﺑﺎﻳﺪ اﺟﺮاء ﺷﻮد و ﻳﺎ ﻫﻴﭽﻜﺪام از آﻧﻬﺎ ﻧﺒﺎﻳﺪ اﺟﺮاء‬ ‫ﺷﻮد‪.‬‬ ‫‪ .2‬ﺗﺮاﻛﻨﺶ ﻣﻲﺗﻮاﻧﺪ وﺳﻂ ﻛﺎر ﻟﻐﻮ ﮔﺮدد و ﻧﻴﺎزي ﺑﻪ ﺗﺮﻣﻴﻢ دادهﻫﺎ دراﻳﻨﺤﺎﻟﺖ‬ ‫ﻧﻴﺴﺖ‪.‬‬ ‫‪ .3‬ﺗﺮاﻛﻨﺶ ﺑﺎﻳﺪ ﻛﺎﻣﻞ اﺟﺮاء ﺷﻮد و ﻫﻴﭽﮕﺎه ﻧﻤﻲﺗﻮاﻧﺪ وﺳﻂ ﻛﺎر ﻟﻐﻮ ﮔﺮدد‪.‬‬ ‫‪ .4‬ﺗﺮاﻛﻨﺶ در ﻛﻞ ﺑﺎﻧﻚ ﺑﺎﻳﺪ ﺻﻮرت ﮔﺮﻓﺘﻪ و ﻧﻴﺎزي ﺑﻪ ﻟﻐﻮ ﻛﺮدن آن ﻧﻴﺴﺖ‪.‬‬ ‫‪ -62‬ﻛﺪام اﻋﻤﺎل ﺗﻮﺳﻂ واﺣﺪ ‪ Recovery management‬ﺻﻮرت ﻣﻲﮔﻴﺮد ؟‬ ‫‪ .1‬ﻳﻜﭙﺎرﭼﮕﻲ‬ ‫‪ .2‬ﭘﺎﻳﺎﺋﻲ‬ ‫‪ .3‬ﻫﻤﺨﻮاﻧﻲ‬ ‫‪1 .4‬و‪2‬‬ ‫‪ -63‬ﺧﺎﺻﻴﺖ ﭘﺎﻳﺎﺋﻲ )‪ (durability‬در ﺗﺮاﻛﻨﺸﻬﺎ ﺑﻪ ﭼﻪ ﻣﻌﻨﺎﺳﺖ ؟‬ ‫‪ .1‬ﺗﺮاﻛﻨﺸﻬﺎﺋﻲ ﻛﻪ ﺑﻪ ﻣﺮﺣﻠﻪ ‪ Commit‬رﺳﻴﺪهاﻧﺪ ﺑﻪ ﺻﻮرت اﺗﻔﺎﻗﻲ ﺣﺬف‬ ‫ﻧﻤﻲﺷﻮﻧﺪ‪.‬‬ ‫‪ .2‬ﺗﺮاﻛﻨﺸﻬﺎﺋﻲ ﻛﻪ ﺑﻪ ﻣﺮﺣﻠﻪ ‪ Commit‬رﺳﻴﺪهاﻧﺪ اﺛﺮﺷﺎن ﻣﺎﻧﺪﻧﻲ ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ .3‬ﺗﺮاﻛﻨﺸﻬﺎﺋﻲ ﻛﻪ ﺑﻪ ﻣﺮﺣﻠﻪ ‪ Commit‬رﺳﻴﺪهاﻧﺪ ﺣﺘﻲ در ﺻﻮرت زﻟﺰﻟﻪ ﻳﺎ آﺗﺶ‬ ‫ﺳﻮزي ﻧﺒﺎﻳﺴﺘﻲ از ﺑﻴﻦ ﺑﺮوﻧﺪ‪.‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪255‬‬

‫‪ .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‬ﻧﺒﺎﺷﺪ‪.‬‬

‫‪ 256‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ .2‬زﺑﺎن ‪ DSL‬ﻣﻲﺗﻮاﻧﺪ ﻣﺴﺘﻘﻞ از ‪ HL‬ﺑﺎﺷﺪ‪.‬‬ ‫‪ .3‬زﺑﺎن ‪ HL‬ﻳﻜﻲ از زﺑﺎﻧﻬﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﻣﺘﻌﺎرف اﺳﺖ‪.‬‬ ‫‪ .4‬ﻫﺮ ﺳﻪ ﮔﺰﻳﻨﻪ‬ ‫‪ -69‬ﮔﺰﻳﻨﻪ ﺻﺤﻴﺢ ﻛﺪام اﺳﺖ ؟‬ ‫‪ .1‬ﻳﻚ ﻛﺎرﺑﺮ ﻣﻲﺗﻮاﻧﺪ ﭼﻨﺪ دﻳﺪ داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬ ‫‪ .2‬ﭼﻨﺪ ﻛﺎرﺑﺮ ﻣﻲﺗﻮاﻧﻨﺪ ﻳﻚ دﻳﺪ ﻣﺸﺘﺮك داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ .3‬ﻣﺠﻤﻮﻋﻪ دﻳﺪﻫﺎي ﻛﺎرﺑﺮان را ﺳﻄﺢ ﺧﺎرﺟﻲ ﻣﻲﻧﺎﻣﻨﺪ‪.‬‬ ‫‪ .4‬ﻫﺮ ﺳﻪ ﮔﺰﻳﻨﻪ‬ ‫‪ -70‬ﭼﻪ ﻧﻮع ﺳﺨﺖاﻓﺰاري در ﭘﺎﻳﮕﺎهدادهﻫﺎ وﺟﻮد دارد ؟‬ ‫‪ .1‬ذﺧﻴﺮه ﺳﺎزي‬ ‫‪ .2‬ارﺗﺒﺎﻃﻲ‬ ‫‪ .3‬ﭘﺮدازﺷﻲ‬ ‫‪ .4‬ﻫﺮ ﺳﻪ ﮔﺰﻳﻨﻪ‬

‫ﭘﺎﺳﺦ ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪3‬‬ ‫‪ (1) -1‬در ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ اﻃﻤﻴﻨﺎن از ﺻﺤﺖ دادهﻫﺎ ﺑﺴﻴﺎر ﻣﻬﻢ اﺳﺖ‪ .‬ﻛﺎﻫﺶ اﻓﺰوﻧﮕﻲ و‬ ‫دﺳﺘﻴﺎﺑﻲ ﻣﺸﺘﺮك از ﻣﺰاﻳﺎي ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ اﺳﺖ‪.‬‬ ‫‪ Data Dictionary (1) -2‬ﺗﻮﺳﻂ ﺧﻮد‪ DBMS‬ﺳﺎﺧﺘﻪ و ﺑﻪ روز در ﻣﻲآﻳﺪ‪) .‬ﺑﻪ ﺻﻮرت‬ ‫ﺧﻮدﻛﺎر(‬ ‫‪(1) -3‬‬ ‫‪ (1) -4‬در ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ ﻣﺪل ﻣﻮرد اﺳﺘﻔﺎده )راﺑﻄﻪاي‪ -‬ﺷﺒﻜﻪاي‪ -‬ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ( ﻣﻬﻢ‬ ‫ﻧﻴﺴﺖ و ﺷﻤﺎي ﻛﻠﻲ ﻣﺜﻼ ﺑﺎ ﻧﻤﻮدار ‪ ER‬ﺗﺮﺳﻴﻢ ﻣﻲﺷﻮد‪ .‬اﻣﺎ ﻃﺮاﺣﻲ ادراﻛﻲ ﺑﺴﺘﮕﻲ ﺑﻪ‬ ‫ﻣﺪل ﻣﻮرد اﺳﺘﻔﺎده دارد‪.‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪257‬‬

‫‪ (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‬‬

‫‪ 258‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ (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‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪259‬‬

‫‪ (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‬ﻣﺠﺘﻤﻊ ﺑﻮدن ﻳﻌﻨﻲ وﺣﺪت ﭼﻨﺪﻳﻦ ﻓﺎﻳﻞ اﻃﻼﻋﺎﺗﻲ ﻣﺠﺰا ﺑﺎ ﻫﺮ ﮔﺮوه‬ ‫ﺗﻜﺮاري‬

‫‪ 260‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫ﮔﺰﻳﻨﻪ ‪ :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‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪261‬‬

‫‪(4) -69‬‬ ‫‪(4) -70‬‬

‫ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪4‬‬ ‫‪ -1‬در ﻛﺪام ﻣﺪل ﭘﺎﻳﮕﺎهدادهﻫﺎ‪ ،‬ﻣﺠﻤﻮﻋﻪاي ﻣﺮﺗﺐ از درﺧﺘﻬﺎ دارﻳﻢ ﻛﻪ در آن ﻓﺮزﻧﺪي‬ ‫ﺑﺪون ﭘﺪر وﺟﻮد ﻧﺪارد ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ‪(80-‬‬

‫‪ 262‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ .1‬راﺑﻄﻪاي‬ ‫‪ .2‬ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‬ ‫‪ .3‬ﺷﺒﻜﻪاي‬ ‫‪ .4‬ﻟﻴﺴﺖ ﻣﻌﻜﻮس‬ ‫‪ -2‬ﻛﺪاﻣﻴﻚ از ﻣﻮارد زﻳﺮ‪ ،‬ﺟﺰو وﻳﮋﮔﻴﻬﺎي ﺳﺎﺧﺘﺎر دادهاي ﻣﺪل ﺷﺒﻜﻪاي اﺳﺖ ؟‬ ‫)ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ‪(79-‬‬ ‫‪ .1‬اﺻﻞ وﺣﺪت ﻋﻤﻠﮕﺮ‪ ،‬در ﻳﻚ ﻋﻤﻞ واﺣﺪ رﻋﺎﻳﺖ ﻣﻲﺷﻮد‪.‬‬ ‫‪ .2‬از دﻳﺪ ﻛﺎرﺑﺮ داراي وﺿﻮح اﺳﺖ‪.‬‬ ‫‪ .3‬ﺑﺮاي ﻣﺤﻴﻂ ﻫﺎي داراي ارﺗﺒﺎﻃﺎت ﻳﻚ ﺑﻪ ﭼﻨﺪ دوﺳﻮﻳﻪ‪ ،‬ﻣﺪل ﻣﻨﺎﺳﺒﻲ ﻧﻤﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ .4‬در ﻋﻤﻠﻴﺎت ذﺧﻴﺮه ﺳﺎزي آﻧﻮﻣﺎﻟﻲ ﻧﺪارد‪.‬‬ ‫‪ -3‬ﻛﺪاﻣﻴﻚ از ﻣﻮارد زﻳﺮ ﺟﺰء ﻣﺪﻟﻬﺎي ﭘﺎﻳﮕﺎه اﻃﻼﻋﺎﺗﻲ ﻧﻴﺴﺘﻨﺪ ؟)ﻣﺴﺎﺑﻘﺎت‬ ‫آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ و ﺣﺮﻓﻪاي‪(78 -‬‬ ‫‪ .1‬ﻣﺪل راﺑﻄﻪاي‬ ‫‪ .2‬ﻣﺪل ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‬ ‫‪ .3‬ﻣﺪل اﻃﻼﻋﺎﺗﻲ‬ ‫‪ .4‬ﻣﺪل ﺷﺒﻜﻪاي‬ ‫‪ -4‬ﺷﻜﻞ زﻳﺮ از ﻛﺪام ﻣﺪل ﺑﺮﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ و‬ ‫ﺣﺮﻓﻪاي‪( 77 -‬‬ ‫‪ -1‬راﺑﻄﻪاي‬ ‫‪ -2‬ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‬ ‫‪ -3‬ﺷﺒﻜﻪاي‬ ‫‪ -4‬ﺑﺎﻧﻜﻲ‬ ‫‪ -5‬ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ‪(77-‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪263‬‬

‫‪ -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‬ﻣﻄﺮح اﺳﺖ‪ ،‬ﻻزم اﺳﺖ‪.‬‬

‫‪ 264‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ -2‬در ﻧﻈﺮ ﮔﺮﻓﺘﻦ ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﺑﻪ ﻣﻌﻨﺎﻳﻲ ﻛﻪ در ‪ CODASYL‬ﻣﻄﺮح اﺳﺖ‪ ،‬ﻛﺎﻓﻲ‬ ‫اﺳﺖ‪.‬‬ ‫‪ -3‬ﺑﻴﺶ از دو ﻣﺠﻤﻮﻋﻪ ﺑﻪ ﻣﻌﻨﺎﻳﻲ ﻛﻪ در ‪ CODASYL‬ﻣﻄﺮح اﺳﺖ ﻻزم ﻧﻴﺴﺖ‪.‬‬ ‫‪ -4‬در ﻧﻈﺮ ﮔﺮﻓﺘﻦ ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﺑﻪ ﻣﻌﻨﺎﻳﻲ ﻛﻪ در ‪ CODASYL‬ﻣﻄﺮح اﺳﺖ ﻛﺎﻓﻲ‬ ‫اﺳﺖ وﻟﻲ ﺑﻬﺘﺮ اﺳﺖ ﻃﺮاﺣﻲ را ﺑﺎ دو ﻣﺠﻤﻮﻋﻪ اﻧﺠﺎم داد‪.‬‬ ‫‪ -9‬ﻛﺪام ﮔﺰﻳﻨﻪ در راﺑﻄﻪ ﺑﺎ ﻣﺪل ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ درﺳﺖ ﻧﻤﻲﺑﺎﺷﺪ ؟‬ ‫‪ -1‬ﻫﺮ ﮔﺮه ﭘﺪر ﻣﻲﺗﻮاﻧﺪ ﭼﻨﺪﻳﻦ ﻓﺮزﻧﺪ داﺷﺘﻪ ﺑﺎﺷﺪ وﻟﻲ ﻫﺮ ﻓﺮزﻧﺪ ﻓﻘﻂ ﻳﻚ ﭘﺪر‬ ‫دارد‪.‬‬ ‫‪ -2‬اﻳﻦ ﻣﺪل در ﻋﻤﻠﻴﺎت ﺣﺬف و ﺑﻬﻨﮕﺎم ﺳﺎزي آﻧﻮﻣﺎﻟﻲ دارد‪.‬‬ ‫‪ -3‬اﮔﺮ ﭘﺮس و ﺟﻮﺋﻲ را ﻗﺮﻳﻨﻪ ﻛﻨﻴﻢ ﻫﻤﻮاره روﻳﻪ ﭘﺎﺳﺨﮕﻮﻳﻲ ﻧﻴﺰ ﺑﻪ ﻫﻤﺎن ﺻﻮرت‬ ‫ﻗﺮﻳﻨﻪ ﻣﻲﺷﻮد‪.‬‬ ‫‪ -4‬اﻳﻦ ﻣﺪل در ﻋﻤﻠﻴﺎت درج داراي آﻧﻮﻣﺎﻟﻲ اﺳﺖ‪.‬‬ ‫‪ -10‬ﻛﺪام ﮔﺰﻳﻨﻪ در راﺑﻄﻪ ﺑﺎ ﻣﺪل ﺷﺒﻜﻪاي درﺳﺖ ﻧﻤﻲﺑﺎﺷﺪ ؟‬ ‫‪ -1‬دراﻳﻦ ﺳﺎﺧﺘﺎر ﻳﻚ ﻧﻤﻮﻧﻪ رﻛﻮرد ﻋﻀﻮ ﻣﻲﺗﻮاﻧﺪ ﻋﻀﻮ دو ﻣﺎﻟﻚ ﻣﺘﻤﺎﻳﺰ ﺑﺎﺷﺪ‪.‬‬ ‫‪ -2‬ﻋﻤﻞ ﺑﺎزﻳﺎﺑﻲ ﺳﺎده ﺗﺮ از ﻣﺪل ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ اﺳﺖ‪.‬‬ ‫‪ -3‬اﻳﻦ ﻣﺪل در ﻋﻤﻠﻴﺎت درج و ﺣﺬف آﻧﻮﻣﺎﻟﻲ ﻧﺪارد‪.‬‬ ‫‪ -4‬اﻳﻦ ﻣﺪل در ﻋﻤﻠﻴﺎت ﺑﻬﻨﮕﺎم ﺳﺎزي آﻧﻮﻣﺎﻟﻲ ﻧﺪارد‪.‬‬ ‫‪ -11‬ﻛﺪام ﮔﺰﻳﻨﻪ ﺑﻴﺎﻧﮕﺮ ﺗﺼﻮﻳﺮ ادراﻛﻲ ﻋﺎم اﺳﺖ ؟‬ ‫‪NIAM , EER -1‬‬

‫‪ -2‬ﺷﺒﻜﻪاي‪ -‬ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‪ -‬ﺟﺪوﻟﻲ‬ ‫‪ -3‬راﺑﻄﻪ‪ -‬ﺟﺪول‬ ‫‪ -4‬ﻣﻌﻤﺎري ‪ANSI‬‬

‫‪ -12‬ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ راﺑﻄﻪاي ﻋﺒﺎرت اﺳﺖ از‪:‬‬ ‫‪ -1‬ﺑﺎﻧﻜﻲ اﺳﺖ ﻛﻪ در آن ﻫﺮ ﮔﻮﻧﻪ ﺗﻜﺮار ﻫﻤﺮاه ﺑﺎ ﺟﺪاول دﻳﺪه ﻣﻲﺷﻮد‪.‬‬ ‫‪ -2‬ﺑﺎﻧﻜﻲ اﺳﺖ ﻛﻪ در ﻣﻘﺎدﻳﺮش ﻗﺎﺑﻞ ﺗﺠﺰﻳﻪاﻧﺪ‪.‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪265‬‬

‫‪ -3‬ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ اﺳﺖ ﻛﻪ ﺑﻪ ﻋﻨﻮان ﻣﺠﻤﻮﻋﻪاي از رواﺑﻂ و ﺟﺪاول در ﻧﻈﺮ‬ ‫ﮔﺮﻓﺘﻪ ﻣﻲﺷﻮد‪.‬‬ ‫‪ -4‬ﻫﻴﭽﻜﺪام‪.‬‬ ‫‪ -13‬ﻛﺪام ﮔﺰﻳﻨﻪ درﺳﺖ اﺳﺖ ؟‬ ‫‪ -1‬ﺳﻴﺴﺘﻢ راﺑﻄﻪاي داراي ﺳﺎﺧﺘﺎر ﻓﻴﺰﻳﻜﻲ اﺳﺖ‪.‬‬ ‫‪ -2‬ﺳﻴﺴﺘﻢ راﺑﻄﻪاي داراي ﺳﺎﺧﺘﺎر ﻣﻨﻄﻘﻲ اﺳﺖ‪.‬‬ ‫‪ -3‬ﺳﻴﺴﺘﻢ راﺑﻄﻪاي داراي ﺳﺎﺧﺘﺎر ﻣﻨﻄﻘﻲ و ﻓﻴﺰﻳﻜﻲ اﺳﺖ‪.‬‬ ‫‪ -4‬ﻫﻴﭽﻜﺪام‪.‬‬ ‫‪ -14‬ﻛﺪام ﮔﺰﻳﻨﻪ ﺟﺰو ﻣﺪﻟﻬﺎي دادهاي اﺳﺖ ؟‬ ‫‪-1‬‬ ‫‪-2‬‬ ‫‪-3‬‬ ‫‪-4‬‬

‫‪Entity Relation Ship‬‬ ‫‪Record- based data Model‬‬ ‫‪Networking Model‬‬ ‫‪Semantic Model‬‬

‫‪ -15‬ﻛﺪام ﻋﺒﺎرت ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ -1‬ﺑﺮاي ﻣﺪﻟﻴﻨﮓ ارﺗﺒﺎﻃﺎت ﻳﻚ ﺑﻪ ﭼﻨﺪ ﻳﻜﺴﻮﻳﻪ ﺑﻴﻦ اﻧﻮاع ﻣﻮﺟﻮدﻳﺘﻬﺎ ﺳﺎﺧﺘﺎر‬ ‫ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ﻣﻨﺎﺳﺒﺘﺮ اﺳﺖ‪.‬‬ ‫‪ -2‬در ﺳﺎﺧﺘﺎر ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ‪ ،‬آﻧﻮﻣﺎﻟﻲ در ﻋﻤﻠﻴﺎت ذﺧﻴﺮه ﺳﺎزي وﺟﻮد دارد‪.‬‬ ‫‪ -3‬زﻣﺎن ﭘﺎﺳﺨﮕﻮﻳﻲ ﺑﻪ ﭘﺮس و ﺟﻮﻫﺎ در ﻣﺪل راﺑﻄﻪاي ﺑﺴﻴﺎر ﻛﻢ اﺳﺖ‪.‬‬ ‫‪ -4‬ﺳﺎﺧﺘﺎر ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ داراي ﻳﻚ روﻳﻪ ﭘﺎﺳﺨﮕﻮﻳﻲ واﺣﺪ ﺑﺮاي ﭘﺮس و ﺟﻮﻫﺎي‬ ‫ﻗﺮﻳﻨﻪ ﻧﻤﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ -16‬ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ -1‬اﺻﻞ وﺣﺪت ﻋﻤﻠﮕﺮ‪ ،‬در ﻳﻚ ﻋﻤﻞ واﺣﺪ )ﻣﺜﻼ درج( در ﻣﺪل ﺷﺒﻜﻪاي رﻋﺎﻳﺖ‬ ‫ﻣﻲﺷﻮد‪.‬‬ ‫‪ -2‬در ﻣﺪل ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ﻣﺴﻴﺮ ﻣﻨﻄﻘﻲ ﻫﻤﻴﺸﻪ از رﻳﺸﻪ و از ﺑﺎﻻ ﺑﻪ ﭘﺎﻳﻴﻦ اﺳﺖ‪.‬‬ ‫‪ -3‬در ﻣﺪل راﺑﻄﻪاي ﺑﺎﻧﻚ دادهﻫﺎ از دﻳﺪ ﻛﺎرﺑﺮ از ﺗﻌﺪادي ﺟﺪول ﺗﺸﻜﻴﻞ ﺷﺪه‬ ‫اﺳﺖ‪.‬‬

‫‪ 266‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ -4‬در ﻣﺪل ﺷﺒﻜﻪاي ﻫﺮ ﻓﺮزﻧﺪ ﻣﻲﺗﻮاﻧﺪ داراي ﺑﻴﺶ از ﻳﻚ ﭘﺪر ﺑﺎﺷﺪ‪.‬‬ ‫‪ -17‬ﻛﺪام ﮔﺰﻳﻨﻪ در راﺑﻄﻪ ﺑﺎ ﺧﺼﻮﺻﻴﺎت ﻣﺪل ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ -1‬ﺧﺎص ﻣﺤﻴﻂ ﻫﺎﻳﻲ اﺳﺖ ﻛﻪ در آﻧﻬﺎ ارﺗﺒﺎط ﻫﺎي ﻳﻚ ﺑﻪ ﭼﻨﺪ ﻳﻚ ﺳﻮﻳﻪ وﺟﻮد‬ ‫دارد‪.‬‬ ‫‪ -2‬ﻗﺪﻳﻤﻲﺗﺮﻳﻦ ﺳﺎﺧﺘﺎر داده ﻳﻲ در ﺳﻄﺢ اﻧﺘﺰاﻋﻲ ﺑﺮاي ﻃﺮاﺣﻲ ﺑﺎﻧﻚ اﺳﺖ‪.‬‬ ‫‪ -3‬در ﻋﻤﻠﻴﺎت ذﺧﻴﺮه ﺳﺎزي آﻧﻮﻣﺎﻟﻲ دارد‪.‬‬ ‫‪ -4‬ﺑﺮاي ﭘﺎﺳﺨﮕﻮﺋﻲ ﺑﻪ ﭘﺮس و ﺟﻮﻫﺎي ﻗﺮﻳﻨﻪ روﻳﻪﻫﺎي ﭘﺎﺳﺨﮕﻮﻳﻲ ﻗﺮﻳﻨﻪ دارد‪.‬‬ ‫‪ -18‬ﻛﺪام ﮔﺰﻳﻨﻪ در راﺑﻄﻪ ﺑﺎ ﺧﺼﻮﺻﻴﺎت ﻣﺪل ﺷﺒﻜﻪاي ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ -1‬ﻋﻤﻠﮕﺮ ﺑﺎزﻳﺎﺑﻲ ﺧﺎﺻﻴﺖ ﺗﻘﺎرن دارد‪.‬‬ ‫‪ -2‬در ﻋﻤﻠﻴﺎت ذﺧﻴﺮه ﺳﺎزي آﻧﻮﻣﺎﻟﻲ دارد‪.‬‬ ‫‪ -3‬از ﻣﻔﻬﻮم رﻳﺎﺿﻲ ﻣﺠﻤﻮﻋﻪ ي ﻛﻮداﺳﻴﻠﻲ اﺳﺘﻔﺎده ﻣﻴﻜﻨﺪ‪.‬‬ ‫‪ -4‬ﺑﺮاي ﻣﺤﻴﻂ ﻫﺎي داراي ارﺗﺒﺎط ﻳﻚ ﺑﻪ ﭼﻨﺪ دوﺳﻮﻳﻪ ﻣﺪل ﻣﻨﺎﺳﺒﻲ اﺳﺖ‪.‬‬ ‫‪ -19‬دو ﻣﺮﺣﻠﻪ از ﻣﺮاﺣﻞ ﻃﺮاﺣﻲ ﻳﻚ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻋﺒﺎرﺗﻨﺪ از ﻃﺮاﺣﻲ ادراﻛﻲ‬ ‫‪ Conceptual Design‬و ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ‪Logical Design‬اﻳﻦ دو ﭼﻪ ﺗﻔﺎوت اﺳﺎﺳﻲ ﺑﺎ‬ ‫ﻫﻢ دارﻧﺪ ؟ )ﻛﺎرﺷﻨﺎﺳﻲ ارﺷﺪ‪ -‬دوﻟﺘﻲ ‪(75‬‬ ‫‪ -1‬ﻃﺮاﺣﻲ ادراﻛﻲ ﺑﻪ ﻣﺪل ﺧﺎﺻﻲ ﻣﺮﺑﻮط ﻣﻲﺷﻮد و ﭘﺲ از اﻧﺘﺨﺎب ﻣﺪل ﺻﻮرت‬ ‫ﻣﻲﮔﻴﺮد وﻟﻲ ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ ﺑﻪ ﻣﺪل ﺧﺎﺻﻲ ﺑﺴﺘﮕﻲ ﻧﺪارد‪.‬‬ ‫‪ -2‬ﻃﺮاﺣﻲ ادراﻛﻲ ﻣﻜﻤﻞ ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ اﺳﺖ و ﭘﺲ از آن اﻧﺠﺎم ﻣﻲﮔﻴﺮد‪.‬‬ ‫‪ -3‬ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ ﺑﻪ ﺻﻮرت ﻛﻠﻲ ﺑﻪ ﺳﻴﺴﺘﻢ ﻣﻲﻧﮕﺮد و ﺑﺎ روﺷﻬﺎﻳﻲ ﻣﺎﻧﻨﺪ ‪ER‬‬

‫اﻧﺠﺎم ﻣﻲﮔﻴﺮد‪.‬‬ ‫‪ -4‬ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ ﺑﻪ ﻣﺪل ﺧﺎﺻﻲ ﻣﺮﺑﻮط ﻣﻲﺷﻮد و ﭘﺲ از اﻧﺘﺨﺎب ﻣﺪل ﺻﻮرت‬ ‫ﻣﻲﮔﻴﺮد وﻟﻲ ﻃﺮاﺣﻲ ادراﻛﻲ ﺑﻪ ﻣﺪل ﺧﺎﺻﻲ ﺑﺴﺘﮕﻲ ﻧﺪارد‪.‬‬ ‫‪ -20‬ﺟﻬﺖ ﭘﻴﺎده ﺳﺎزي ﻳﻚ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻛﺪام ﻓﻌﺎﻟﻴﺖ در اوﻟﻮﻳﺖ ﻗﺮار دارد ؟‬ ‫)ﻛﺎرﺷﻨﺎﺳﻲ ﻧﺎﭘﻴﻮﺳﺘﻪ‪ -‬آزاد ‪(80‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪267‬‬

‫‪ -1‬ﻃﺮاﺣﻲ ﻣﺪل دادهﻫﺎ ﺑﻪ ﺻﻮرت ﻣﻨﻄﻘﻲ‬ ‫‪ -2‬ﻃﺮاﺣﻲ ﻣﺪل دادهﻫﺎ ﺑﻪ ﺻﻮرت ﻓﻴﺰﻳﻜﻲ‬ ‫‪ -3‬ﻃﺮاﺣﻲ ﻣﺪل دادهﻫﺎ ﺑﻪ ﺻﻮرت ﻓﻴﺰﻳﻜﻲ و ﻣﻨﻄﻘﻲ‬ ‫‪ -4‬ﻫﻴﭽﻜﺪام‬ ‫‪ -21‬ﭼﺮا ﻣﺪل ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ آﻧﻮﻣﺎﻟﻲ دارد ؟‬ ‫‪ -1‬ﭼﻮن در ﻫﻨﮕﺎم اﺻﻼًح ﻋﻤﻞ ﺑﻬﻨﮕﺎم ﺳﺎزي ﺑﺎﻳﺪ ﻣﻨﺘﺸﺮ ﺷﻮﻧﺪه ﺑﺎﺷﺪ‪.‬‬ ‫‪ -2‬ﭼﻮن ﻫﻨﮕﺎم درج ﺑﺎﻳﺪ رﻛﻮرد ﭘﺪر را داﺷﺘﻪ ﺑﺎﺷﻴﻢ ﺗﺎ ﺑﺘﻮاﻧﻴﻢ ﻓﺮزﻧﺪ را درج ﻛﻨﻴﻢ‪.‬‬ ‫‪ -3‬ﭼﻮن در ﻋﻤﻞ ﺣﺬف‪ ،‬ﻣﻤﻜﻦ اﺳﺖ اﻃﻼﻋﺎت ﻧﺎﺧﻮاﺳﺘﻪ دﻳﮕﺮي ﻧﻴﺰ ﺣﺬف ﮔﺮدد‪.‬‬ ‫‪ -4‬ﻫﺮ ﺳﻪ ﮔﺰﻳﻨﻪ‬

‫ﭘﺎﺳﺦ ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪4‬‬ ‫‪(2) -1‬‬ ‫‪ (4) -2‬ﻣﺪل ﺷﺒﻜﻪاي در ﻋﻤﻠﻴﺎت درج‪ ،‬ﺣﺬف و ﺑﻬﻨﮕﺎم ﺳﺎزي آﻧﻮﻣﺎﻟﻴﻬﺎي ﻣﺪل ﺳﻠﺴﻠﻪ‬ ‫ﻣﺮاﺗﺒﻲ را ﻧﺪارد‪.‬اﻳﻦ ﻣﺪل از دﻳﺪ ﻛﺎرﺑﺮ واﺿﺢ ﻧﻴﺴﺖ‪ .‬ﻣﺪل ﺷﺒﻜﻪاي ﺑﺮاي ﻧﻤﺎﻳﺶ ارﺗﺒﺎﻃﺎت‬ ‫دوﺳﻮﻳﻪ ﻣﻨﺎﺳﺐ ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪(3) -3‬‬ ‫‪ (2) -4‬ﻣﺪل ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ﻣﺸﺎﺑﻪ ﺷﻜﻞ ﻳﻚ درﺧﺖ ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ (4) -5‬ﻣﻔﺎﻫﻴﻢ ﻣﺠﻤﻮﻋﻪ در ﻣﺪل راﺑﻄﻪاي اﺳﺘﻔﺎده ﻣﻲﮔﺮدد‪.‬‬ ‫‪(2) -6‬‬ ‫‪ (4) -7‬ﻣﻤﻜﻦ اﺳﺖ وﺟﻮد ﻳﻚ ﭘﺪﻳﺪه واﺑﺴﺘﻪ ﺑﻪ وﺟﻮد ﭘﺪﻳﺪهاي دﻳﮕﺮ ﺑﺎﺷﺪ‪ .‬ﻣﺜﻼ ﺑﻪ‬ ‫ﻣﺤﺾ ﺣﺬف داﻧﺸﺠﻮ از ﺑﺎﻧﻚ داﻧﺸﮕﺎه )ﺑﺮ اﺛﺮ ﻓﺎرغ اﻟﺘﺤﺼﻴﻠﻲ ﻳﺎ اﺧﺮاج ﺷﺪن( واﺑﺴﺘﮕﺎن‬ ‫اوﻧﻴﺰ )ﻣﺜﻞ ﻫﻤﺴﺮ و ﻓﺮزﻧﺪ(از ﺳﻴﺴﺘﻢ ﻛﻤﻚ ﻫﺰﻳﻨﻪ ﺑﺎﻳﺪ ﺣﺬف ﺷﻮﻧﺪ‪ .‬دراﻳﻦ ﺣﺎل ﭘﺪﻳﺪه‬ ‫واﺑﺴﺘﻪ را ﻣﻮﺟﻮدﻳﺖ ﺿﻌﻴﻒ )‪ (weak entity‬ﻣﻲﻧﺎﻣﻨﺪ‪.‬‬ ‫‪(2) -8‬‬

‫‪ 268‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ (3) -9‬ﻣﻨﻈﻮر از آﻧﻮﻣﺎﻟﻲ )‪ (anomaly‬ﻳﻌﻨﻲ وﺟﻮد دﺷﻮاري در اﻧﺠﺎم ﻳﻚ ﻋﻤﻞ ﺧﺎص و‬ ‫ﻳﺎ ﻋﺪم اﻣﻜﺎن اﻧﺠﺎم ﻋﻤﻞ و ﻳﺎ ﺑﺮوز ﻋﻮارض ﻧﺎﻣﻄﻠﻮب در ﭘﻲ اﻧﺠﺎم ﻋﻤﻞ‪.‬‬ ‫‪ (2) -10‬ﻋﻤﻞ ﺑﺎزﻳﺎﺑﻲ در ﻣﺪل ﺷﺒﻜﻪاي ﭘﻴﭽﻴﺪه ﺗﺮ از ﻣﺪل ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪(1) -11‬‬ ‫‪(3) -12‬‬ ‫‪(2) -13‬‬ ‫‪(2) -14‬‬ ‫‪(3) -15‬‬ ‫‪ (1) -16‬اﺻﻞ وﺣﺪت ﻋﻤﻠﮕﺮ در ﻣﺪل ﺷﺒﻜﻪاي رﻋﺎﻳﺖ ﻧﻤﻲﺷﻮد‪ .‬ﻣﺜﻼ ﺑﺮاي درج از دو‬ ‫ﻋﻤﻠﮕﺮ ‪ connect‬و ‪ store‬ﻣﻲﺗﻮان اﺳﺘﻔﺎده ﻛﺮد‪ store .‬ﺑﺮاي درج ﻧﻤﻮﻧﻪ رﻛﻮرد و ‪connect‬‬

‫ﺑﺮاي ﺑﺮﻗﺮاري ﭘﻴﻮﻧﺪ ﺑﻴﻦ ﻧﻤﻮﻧﻪ رﻛﻮرد ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ (4) -17‬ﻣﺪل ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ ﺑﺮاي ﭘﺎﺳﺨﮕﻮﺋﻲ ﺑﻪ ﭘﺮس و ﺟﻮﻫﺎي ﻗﺮﻳﻨﻪ‪ ،‬روﻳﻪﻫﺎي‬ ‫ﭘﺎﺳﺨﮕﻮﻳﻲ ﻗﺮﻳﻨﻪ ﻧﺪارد‪.‬‬ ‫‪ (2) -18‬ﻣﺪل ﺷﺒﻜﻪاي در ﻋﻤﻠﻴﺎت ذﺧﻴﺮه ﺳﺎزي آﻧﻮﻣﺎﻟﻲ ﻧﺪارد‪.‬‬ ‫‪(1) -19‬در ﻃﺮاﺣﻲ ﻣﻨﻄﻘﻲ ﻣﺪل ﻣﻮرد اﺳﺘﻔﺎده )راﺑﻄﻪاي‪ -‬ﺷﺒﻜﻪاي‪ -‬ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﻲ( ﻣﻬﻢ‬ ‫ﻧﻴﺴﺖ و ﺷﻤﺎي ﻛﻠﻲ ﻣﺜﻼ ﺑﺎ ﻧﻤﻮدار ‪ ER‬ﺗﺮﺳﻴﻢ ﻣﻲﺷﻮد‪ .‬اﻣﺎ ﻃﺮاﺣﻲ ادراﻛﻲ ﺑﺴﺘﮕﻲ ﺑﻪ‬ ‫ﻣﺪل ﻣﻮرد اﺳﺘﻔﺎده دارد‪.‬‬ ‫‪(1) -20‬‬ ‫‪(4) -21‬‬

‫ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪5‬‬ ‫‪ -1‬ﻛﻠﻴﺪ اﺻﻠﻲ ﭼﻴﺴﺖ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ‪( 76 -‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪269‬‬

‫‪ .1‬ﺑﺮاي ﻣﺮﺗﺐ ﺳﺎزي اﻃﻼﻋﺎت ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ اﺳﺘﻔﺎده ﻣﻲﺷﻮد‪.‬‬ ‫‪ .2‬ﺗﺮﻛﻴﺒﻲ از اﺟﺰاي دادهاي اﺳﺖ ﻛﻪ ﻣﻬﻢ و ﻛﻠﻴﺪي ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ .3‬ﺟﺰء دادهاي اﺳﺖ ﻛﻪ ﻣﺤﻞ دﻗﻴﻖ رﻛﻮرد را ﻣﺸﺨﺺ ﻣﻲﻛﻨﺪ‪.‬‬ ‫‪ .4‬ﻛﺎرﺑﺮان ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﺑﻮﺳﻴﻠﻪ آن ﺑﺎ ﺑﺎﻧﻚ ارﺗﺒﺎط ﺑﺮﻗﺮار ﻣﻲﻛﻨﻨﺪ‪.‬‬ ‫‪ -2‬ﻛﻠﻴﺪ اﺻﻠﻲ ﭼﻴﺴﺖ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ‪( 77 -‬‬ ‫‪ .1‬ﺟﺰء دادهاي اﺳﺖ ﻛﻪ ﻣﺤﻞ رﻛﻮرد ﻣﻮرد ﻧﻈﺮ ﻣﺎ را ﻣﺸﺨﺺ ﻣﻲﻛﻨﺪ‪.‬‬ ‫‪ .2‬ﺗﺮﻛﻴﺒﻲ از ﭼﻨﺪ ﺟﺰء داده اﺳﺖ‪.‬‬ ‫‪ .3‬ﺑﺎ آن ﻣﻲﺗﻮان اﻃﻼﻋﺎت را ﻣﺮﺗﺐ ﺳﺎزي و ‪ sort‬ﻧﻤﻮد‪.‬‬ ‫‪ .4‬راﺑﻄﻪاي اﺳﺖ ﺑﻴﻦ ﻛﺎرﺑﺮ و ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ‪.‬‬ ‫‪ -3‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻣﻔﺎﻫﻴﻢ ﻛﻠﻴﺪ در ﺳﻴﺴﺘﻢ ﻫﺎي راﺑﻄﻪاي ﻛﺪام ﮔﺰﻳﻨﻪ ﻣﺼﺪاق ﻧﺪارد ؟‬ ‫)ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ‪(78 -‬‬ ‫‪ .1‬ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﻳﻜﻲ از ﻛﻠﻴﺪﻫﺎي اﺻﻠﻲ اﺳﺖ ﻛﻪ ﻃﺮاح آن را ﺑﻪ ﻋﻨﻮان ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ‬ ‫ﺑﺮ ﻣﻲﮔﺰﻳﻨﺪ‪.‬‬ ‫‪ .2‬ﻛﻠﻴﺪ اﺻﻠﻲ ﻳﻜﻲ از ﻛﻠﻴﺪ ﻫﺎي ﻛﺎﻧﺪﻳﺪ اﺳﺖ ﻛﻪ ﻃﺮاح آن را ﺑﻪ ﻋﻨﻮان ﻛﻠﻴﺪ اﺻﻠﻲ‬ ‫ﺑﺮ ﻣﻲﮔﺰﻳﻨﺪ‪.‬‬ ‫‪ .3‬ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﻫﺮ زﻳﺮ ﻣﺠﻤﻮﻋﻪاي از ﻋﻨﺎﺻﺮ راﺑﻄﻪ اﺳﺖ ﻛﻪ ﻳﻜﺘﺎ ﺑﻮده و ﻛﻬﻴﻨﮕﻲ‬ ‫ﻳﺎاﻳﺠﺎز )‪ ( minimality‬داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬ ‫‪ .4‬ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ﻛﻠﻴﺪي اﺳﺖ ﻛﻪ در راﺑﻄﻪ دﻳﮕﺮ ﻛﻠﻴﺪ اﺻﻠﻲ ﺑﺎﺷﺪ‪.‬‬ ‫‪ -4‬درﺟﻪ راﺑﻄﻪ در ﺑﺎﻧﻚ ﻣﺪل راﺑﻄﻪاي ﭼﻴﺴﺖ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ‪(78 -‬‬ ‫‪ .1‬ﺑﻪ ﻣﻘﺎدﻳﺮ ﻳﻚ ﺻﻔﺖ ﺧﺎﺻﻪ ﮔﻔﺘﻪ ﻣﻲﺷﻮد‪.‬‬ ‫‪ .2‬ﺑﻪ ﻣﻴﺪان ﻣﻘﺎدﻳﺮ ﻳﻚ ﺻﻔﺖ ﺧﺎﺻﻪ ﮔﻔﺘﻪ ﻣﻲﺷﻮد‪.‬‬ ‫‪ .3‬ﺗﻌﺪاد ﺗﺎﭘﻠﻬﺎي راﺑﻄﻪ اﺳﺖ‪.‬‬ ‫‪ .4‬ﺗﻌﺪاد ﺻﻔﺎت ﺧﺎﺻﻪ ﻣﻮﺟﻮدﻳﺖ اﺳﺖ‪.‬‬

‫‪ 270‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ -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‬ﺻﻔﺘﻲ اﺳﺖ در ﻳﻚ راﺑﻄﻪ ﻛﻪ در راﺑﻄﻪ دﻳﮕﺮ ﻛﻠﻴﺪ اﺻﻠﻲ ﻳﺎ‬ ‫ﻓﺮﻋﻲ اﺳﺖ‪.‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪271‬‬

‫‪-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‬ﺗﺸﻜﻴﻞ ﻳﺎﻓﺘﻪ اﺳﺖ‪.‬‬

‫‪ 272‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ -14‬ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ﭼﻴﺴﺖ ؟‬ ‫‪ .1‬اﻣﻜﺎن ﭘﻴﻮﻧﺪ دادن راﺑﻄﻪﻫﺎي ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ را ﻣﻲدﻫﺪ‪.‬‬ ‫‪ .2‬اﻣﻜﺎن رﺟﻮع از راﺑﻄﻪاي ﺑﻪ راﺑﻄﻪ دﻳﮕﺮ را ﻣﻲدﻫﺪ‪.‬‬ ‫‪ .3‬اﻣﻜﺎن ﺧﺎرج ﺷﺪن از راﺑﻄﻪاي را ﻣﻲدﻫﺪ‪.‬‬ ‫‪2 .4‬و‪1‬‬ ‫‪ -15‬ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬ﺳﻴﺴﺘﻢ راﺑﻄﻪاي داراي ﺳﺎﺧﺘﺎر ﻣﻨﻄﻘﻲ اﺳﺖ‪.‬‬ ‫‪ .2‬ﺟﺪول ﻣﺸﺘﻖ )‪ (drived table‬راﺑﻄﻪاي اﺳﺖ ﻛﻪ از ﺟﺪول دﻳﮕﺮ اﺧﺬ ﮔﺮدﻳﺪه‬ ‫اﺳﺖ‪.‬‬ ‫‪ .3‬در راﺑﻄﻪ ﻫﻤﻪ ﻣﻘﺎدﻳﺮ ﺻﻔﺎت ﺧﺎﺻﻪ ﻗﺎﺑﻞ ﺗﺠﺰﻳﻪ ﻣﻲﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ .4‬ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ راﺑﻄﻪاي ﺑﻪ ﻋﻨﻮان ﻣﺠﻤﻮﻋﻪاي از رواﺑﻂ و ﺟﺪوﻟﻬﺎ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ‬ ‫ﻣﻲﺷﻮد‪.‬‬ ‫‪ -16‬ﭼﻪ راﺑﻄﻪاي ﺑﻴﻦ ﻛﻠﻴﺪ ﻫﺎي اﺻﻠﻲ و ﺧﺎرﺟﻲ در ﻳﻚ ﭘﺎﻳﮕﺎه اﻃﻼﻋﺎﺗﻲ ﺑﺎﻳﺪ وﺟﻮد‬ ‫داﺷﺘﻪ ﺑﺎﺷﺪ ؟ )ﻛﺎرﺷﻨﺎﺳﻲ ﻧﺎﭘﻴﻮﺳﺘﻪ‪ -‬آزاد ‪(80‬‬ ‫‪ .1‬در زﻣﺎﻧﻲ ﻛﻪ راﺑﻄﻪاي ﺑﻴﻦ دو ﺟﺪول ﺑﻪ وﺟﻮد ﻣﻲآﻳﺪ‪ ،‬ﺟﺪول ﭘﺪر دراﻳﻦ ارﺗﺒﺎط‬ ‫ﺑﻪ ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ﺑﺴﺘﮕﻲ دارد و ﺟﺪول ﻓﺮزﻧﺪ ﺑﻪ ﻛﻠﻴﺪ اﺻﻠﻲ ﺑﺴﺘﮕﻲ ﺧﻮاﻫﺪ‬ ‫داﺷﺖ‪.‬‬ ‫‪ .2‬در زﻣﺎﻧﻲ ﻛﻪ راﺑﻄﻪاي ﺑﻴﻦ دو ﺟﺪول ﺑﻪ وﺟﻮد ﻣﻲآﻳﺪ‪ ،‬ﺟﺪول ﭘﺪر دراﻳﻦ ارﺗﺒﺎط‬ ‫ﺑﻪ ﻛﻠﻴﺪ اﺻﻠﻲ ﺑﺴﺘﮕﻲ دارد و ﺟﺪول ﻓﺮزﻧﺪ ﺑﻪ ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ﺑﺴﺘﮕﻲ ﺧﻮاﻫﺪ‬ ‫داﺷﺖ‪.‬‬ ‫‪ .3‬ﺳﺘﻮن دادهﻫﺎي ﻛﻠﻴﺪ اﺻﻠﻲ در ﺟﺪول ﺷﺎﻣﻞ ﺳﺘﻮن ﻛﻠﻴﺪﻫﺎي ﺧﺎرﺟﻲ ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ .4‬ﻫﻴﭻ راﺑﻄﻪاي ﺑﻴﻦ ﻛﻠﻴﺪ اﺻﻠﻲ و ﺧﺎرﺟﻲ وﺟﻮد ﻧﺪارد‪.‬‬ ‫‪ -17‬ﻛﺪاﻣﻴﻚ از اﻗﻼم زﻳﺮ ﺑﻬﺘﺮﻳﻦ ﺗﻌﺮﻳﻒ ﺑﻪ ﻋﻨﻮان ﻳﻚ ﺷﺨﺺ‪ ،‬ﻣﻜﺎن ﭼﻴﺰ ﻳﺎ ﻣﻔﻬﻮم از‬ ‫دادهﻫﺎي ﺟﻤﻊ آوري ﺷﺪهاﻧﺪ ؟ )ﻛﺎرﺷﻨﺎﺳﻲ ﻧﺎﭘﻴﻮﺳﺘﻪ‪ -‬آزاد ‪(80‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪273‬‬

‫‪ .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‬ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ‬

‫‪ 274‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ -21‬زﻣﺎﻧﻲ ﻛﻪ در ﺣﺎل ﻣﻄﺎﻟﻌﻪ ﻣﺠﻤﻮﻋﻪاي از ﻧﻴﺎزﻫﺎي ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ در ﺣﺎل ﻃﺮاﺣﻲ‬ ‫ﻫﺴﺘﻴﻢ ﺑﻬﺘﺮﻳﻦ روش ﺑﺮاي ﻣﺸﺨﺺ ﻧﻤﻮدن ﻣﻮﺟﻮدﻳﺖ )‪ ( Entity‬ﻫﺎ ﻛﺪام اﺳﺖ ؟‬ ‫)ﻛﺎرﺷﻨﺎﺳﻲ ﻧﺎﭘﻴﻮﺳﺘﻪ‪ -‬آزاد ‪( 80‬‬ ‫‪ .1‬ﺑﻪ دﻧﺒﺎل اﻓﻌﺎل ﺟﻤﻼت ﺑﺎﺷﻴﻢ و از آﻧﻬﺎ ﺑﺮاي ﺗﻌﺮﻳﻒ ‪ Entity‬اﺳﺘﻔﺎده ﻛﻨﻴﻢ‪.‬‬ ‫‪ .2‬ﺑﻪ دﻧﺒﺎل اﺳﺎﻣﻲو ﻧﺎﻣﻬﺎي ﻣﺨﺘﻠﻒ ﺑﺎﺷﻴﻢ و از آﻧﻬﺎ ﺑﺮاي ﺗﻌﺮﻳﻒ ‪ Entity‬ﻫﺎ‬ ‫اﺳﺘﻔﺎده ﻛﻨﻴﻢ‪.‬‬ ‫‪ .3‬ﺑﻪ دﻧﺒﺎل ﺻﻔﺖ ﻫﺎ در ﺟﻤﻼت ﺑﺎﺷﻴﻢ و از آﻧﻬﺎ ﺑﺮاي ﺗﻌﺮﻳﻒ ‪ Entity‬ﻫﺎ اﺳﺘﻔﺎده‬ ‫ﻛﻨﻴﻢ‪.‬‬ ‫‪ .4‬ﻫﻤﻪ اﻗﻼم ﻓﻮق درﺳﺖ اﺳﺖ‪.‬‬ ‫‪ -22‬ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬ﻳﻚ ‪ DBMS‬ﻛﺎﻣﻼ راﺑﻄﻪاي )‪( Fully relational‬اﺳﺖ اﮔﺮ ﺳﺎﺧﺘﺎر آن‬ ‫ﺟﺪوﻟﻲ )‪ (tabolar‬ﺑﻮده و ﻣﺤﺪودﻳﺘﻬﺎي ﺟﺎﻣﻌﻴﺘﻲ را رﻋﺎﻳﺖ ﻛﻨﺪ‪.‬‬ ‫‪ .2‬در ﻳﻚ راﺑﻄﻪ ﻳﻚ ﺻﻔﺖ ﻏﻴﺮ ﻛﻠﻴﺪ‪ ،‬ﻫﻴﭻ ارﺗﺒﺎﻃﻲ ﺑﺎ ﻛﻠﻴﺪ اﺻﻠﻲ ﻧﺪارد‪.‬‬ ‫‪ .3‬ﻣﻨﺤﺼﺮ ﺑﻪ ﻓﺮد ﺑﻮدن و ﻏﻴﺮ ﻗﺎﺑﻞ ﻛﺎﻫﺸﻲ از وﻳﮋﮔﻴﻬﺎي ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ اﺳﺖ‪.‬‬ ‫‪ .4‬اﺧﺘﺼﺎص ﻳﻚ ﻛﻠﻴﺪ ﻧﺸﺎﻧﮕﺮ ﻳﻚ ﻋﺎﻣﻞ ﻣﺤﺪود ﻛﻨﻨﺪه در ﺟﻬﺎن واﻗﻌﻲ ﭘﺎﻳﮕﺎهداده‬ ‫اﺳﺖ‪.‬‬ ‫‪ -23‬ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬راﺑﻄﻪ داراي ﻳﻚ ﻋﻨﻮان و ﻳﻚ ﺑﺪﻧﻪ اﺳﺖ‪.‬‬ ‫‪ .2‬راﺑﻄﻪ داراي ﻣﺠﻤﻮﻋﻪاي از ﻛﻠﻴﺪﻫﺎي ﻛﺎﻧﺪﻳﺪ اﺳﺖ‪.‬‬ ‫‪ .3‬در ﻣﻮرد ﻣﺘﻐﻴﺮﻫﺎي راﺑﻄﻪاي ﭘﺎﻳﻪ )‪( Base Relational‬دﻗﻴﻘﺎ ﻳﻜﻲ از ﻛﻠﻴﺪﻫﺎي‬ ‫ﻛﺎﻧﺪﻳﺪ ﺑﺎﻳﺪ ﺑﻪ ﻋﻨﻮان ﻛﻠﻴﺪ اﺻﻠﻲ اﻧﺘﺨﺎب ﺷﻮد‪.‬‬ ‫‪ .4‬راﺑﻄﻪ ﭘﺎﻳﻪاي ﺑﺮ ﺣﺴﺐ رواﺑﻂ ﭘﺎﻳﻪاي دﻳﮕﺮ ﻣﺤﺎﺳﺒﻪ ﻣﻲﺷﻮد‪.‬‬ ‫‪ -24‬ﻫﻨﮕﺎم ﺗﻌﺮﻳﻒ ﻳﻚ راﺑﻄﻪ ﭘﺎﻳﻪ )‪ ( Base relation‬ﻛﺪام ﮔﺰﻳﻨﻪ درﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬ﺣﺪاﻗﻞ ﻳﻚ ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ وﺟﻮد دارد‪.‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪ .2‬ﻣﻲﺗﻮاﻧﺪ ﻛﻠﻴﺪ اﺻﻠﻲ وﺟﻮد ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬ ‫‪ .3‬ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ وﺟﻮد ﻧﺪارد‪.‬‬ ‫‪ .4‬ﺑﺎﻳﺪ ﺣﺘﻤﺎ ﻛﻠﻴﺪ ﺧﺎرﺟﻲ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬ ‫‪ -25‬دو راﺑﻄﻪ ﺑﻪ ﺷﺮﻃﻲ ﺳﺎزﮔﺎرﻧﺪ ﻛﻪ‪....‬‬ ‫‪ .1‬داراي ﻣﺠﻤﻮﻋﻪاي از اﺳﺎﻣﻲو ﺻﻔﺎت ﻳﻜﺴﺎن ﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ .2‬ﺻﻔﺎت ﺧﺎﺻﻪ ﻣﺘﻨﺎﻇﺮﺷﺎن ﺑﺮ روي داﻣﻨﻪ ﻳﻜﺴﺎﻧﻲ ﺗﻌﺮﻳﻒ ﺷﺪه ﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ .3‬ﺗﻌﺪاد ﺳﻄﺮ و ﺳﺘﻮﻧﻬﺎي ﻳﻜﺴﺎﻧﻲ داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪.‬‬ ‫‪2 .4‬و‪1‬‬ ‫‪ -26‬ﻛﻠﻴﺪ ﺧﺎرﺟﻲ‪....‬‬ ‫‪ .1‬در ﻳﻚ راﺑﻄﻪ ﻓﻴﻠﺪ ﻣﻌﻤﻮﻟﻲ و در راﺑﻄﻪ دﻳﮕﺮ ﻛﻠﻴﺪ اﺻﻠﻲ اﺳﺖ‪.‬‬ ‫‪ .2‬ﻓﻴﻠﺪي ﻣﺸﺘﺮك ﺑﻴﻦ دو ﻳﺎ ﭼﻨﺪ راﺑﻄﻪ ﻛﻪ در ﭘﻴﻮﻧﺪ راﺑﻄﻪ اﺳﺘﻔﺎده ﻣﻲﮔﺮدد‪.‬‬ ‫‪2 .3‬و‪1‬‬ ‫‪ .4‬ﻫﻤﺎن ﻛﻠﻴﺪ ﻓﺮﻋﻲ اﺳﺖ‪.‬‬ ‫‪ -27‬ﻛﻠﻴﺪ ﺟﺪول زﻳﺮ ﻛﺪام اﺳﺖ ؟‬ ‫‪(A,C) .1‬‬ ‫‪( B) . 2‬‬ ‫‪( A) . 3‬‬ ‫‪(B,C) .4‬‬ ‫‪ -28‬ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬راﺑﻄﻪ زﻳﺮ ﻣﺠﻤﻮﻋﻪاي از ﺿﺮب ﻛﺎرﺗﺰﻳﻦ ﭼﻨﺪ داﻣﻨﻪ اﺳﺖ‪.‬‬ ‫‪ .2‬داﻣﻨﻪﻫﺎي راﺑﻄﻪ ﻟﺰوﻣﺎ ﻣﺘﻤﺎﻳﺰ ﻧﻤﻲﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ .3‬در ﻃﻮل ﺣﻴﺎت ﺟﺪول‪ Extention ،‬ﺛﺎﺑﺖ و ‪ Interntion‬ﻣﺘﻐﻴﺮ اﺳﺖ‪.‬‬ ‫‪ .4‬راﺑﻄﻪ از ‪ Heading‬و ‪ Body‬ﺗﺸﻜﻴﻞ ﻳﺎﻓﺘﻪ اﺳﺖ‪.‬‬

‫‪275‬‬

‫‪ 276‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪)) -29‬ﺗﻤﺎم اﻃﻼﻋﺎت ﻣﻮﺟﻮد در ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻓﻘﻂ ﺑﻪ ﻳﻚ روش ﻧﻤﺎﻳﺶ داده‬ ‫ﻣﻲﺷﻮﻧﺪ‪ ،‬ﻳﻌﻨﻲ ﺑﻪ ﺻﻮرت ﻣﻘﺎدﻳﺮي در ﻣﻮﻗﻌﻴﺘﻬﺎي ﺳﺘﻮﻧﻲ از ﺳﻄﺮﻫﺎي ﺟﺪول ((‪.‬اﻳﻦ‬ ‫ﺟﻤﻠﻪ ﻛﺪام ﻗﺎﻋﺪه اﺳﺖ ؟‬ ‫‪ .1‬ﻗﺎﻋﺪه ﺟﺎﻣﻌﻴﺖ ارﺟﺎﻋﻲ‬ ‫‪ .2‬ﻗﺎﻋﺪه اﻃﻼﻋﺎت‬ ‫‪ .3‬ﻗﺎﻋﺪه درون راﺑﻄﻪاي‬ ‫‪ .4‬ﻗﺎﻋﺪه ﺑﺮون راﺑﻄﻪاي‬ ‫ﭘﺎﺳﺦ ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪5‬‬ ‫‪(3) -1‬‬ ‫‪(1) -2‬‬ ‫‪ (1) -3‬ﺗﻮﺟﻪ ﻛﻨﻴﺪ ﻛﻠﻴﺪ اﺻﻠﻲ ﻳﻜﻲ از ﻛﻠﻴﺪﻫﺎي ﻛﺎﻧﺪﻳﺪ اﺳﺖ ﻧﻪاﻳﻨﻜﻪ ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﻳﻜﻲ‬ ‫از ﻛﻠﻴﺪﻫﺎي اﺻﻠﻲ ﺑﺎﺷﺪ‪.‬‬ ‫‪(4) -4‬‬ ‫‪ (1) -5‬ﺗﺮﺗﻴﺐ ﺗﺎﭘﻠﻬﺎ )رﻛﻮردﻫﺎ( در ﺟﺪول ﻣﻬﻢ ﻧﻴﺴﺖ‪.‬‬ ‫‪(4) -6‬‬ ‫‪ (2) -7‬ﺟﺎﻣﻌﻴﺖ درون راﺑﻄﻪاي ﻳﻌﻨﻲ ﻫﺮ راﺑﻄﻪاي ﺑﻪ ﺗﻨﻬﺎﻳﻲ ﺻﺤﻴﺢ ﻣﻲﺑﺎﺷﺪ‪ .‬ﻣﺜﻼ ﻋﻀﻮ‬ ‫ﺗﻜﺮاري ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ و ﻛﻠﻴﺪﻫﺎﻳﺶ درﺳﺖ ﺑﺎﺷﻨﺪ‪ .‬ﺟﺎﻣﻌﻴﺖ داﻣﻨﻪاي ﻫﺮ دو ﮔﺰﻳﻨﻪ‪ 1‬و ‪ 3‬را‬ ‫در ﺑﺮ ﻣﻲﮔﻴﺮد‪.‬‬ ‫‪ Super key (1) -8‬ﻫﺮ ﺗﺮﻛﻴﺒﻲ از ﺻﻔﺘﻬﺎﺳﺖ ﻛﻪ ﺧﺎﺻﻴﺖ ﻛﻠﻴﺪ داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬اﻳﻦ ﺗﻨﻬﺎ‬ ‫ﻧﻮع ﻛﻠﻴﺪ اﺳﺖ ﻛﻪ ﻛﻤﻴﻨﻪ ﻧﻴﺴﺖ ﻳﻌﻨﻲ زﻳﺮ ﻣﺠﻤﻮﻋﻪاي از آن ﻫﻢ ﻣﻤﻜﻦ اﺳﺖ ﻛﻠﻴﺪ ﺑﺎﺷﺪ‪.‬‬ ‫‪(2) -9‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪277‬‬

‫‪ (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‬‬

‫‪ 278‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪(4) -25‬‬ ‫‪(3) -26‬‬ ‫‪ (1) -27‬ﻛﻠﻴﺪ ﺑﺎﻳﺪ ﻳﻜﺘﺎ ﺑﺎﺷﺪ‪ .‬زﻳﺮ ﺳﺘﻮن ‪ B‬دو ﺗﺎ ‪ K‬وﺟﻮد دارد‪ .‬زﻳﺮ ﺳﺘﻮن ‪ A‬دو ﺗﺎ ‪t‬‬ ‫وﺟﻮد دارد‪ .‬زﻳﺮ ﺟﻔﺖ ﺳﺘﻮن )‪( B,C‬دو ﺗﺎ )‪ (K,S‬وﺟﻮد دارد‪.‬‬ ‫‪ (3) -28‬ﺑﻪ ﺑﺴﻂ ﻳﻚ ﺟﺪول در ﻫﺮ ﻟﺤﻈﻪ ‪ Extention‬و ﺑﻪ ﻧﺎم و ﻣﺠﻤﻮﻋﻪ ﺻﻔﺎت‬ ‫راﺑﻄﻪ ﭼﻜﻴﺪه راﺑﻄﻪ ﻳﺎ ‪ Intention‬ﮔﻔﺘﻪ ﻣﻲﺷﻮد ﻳﻌﻨﻲ اﺳﻢ ﺟﺪول ﺑﻪ ﻫﻤﺮاه ‪heading‬‬ ‫ﺑﺮاﺑﺮ ‪ intention‬اﺳﺖ‪ .‬در ﻃﻮل ﺣﻴﺎت ﻳﻚ ﺟﺪول ‪ Extextion‬ﻣﺘﻐﻴﺮ وﻟﻲ‬ ‫‪ Intention‬ﺛﺎﺑﺖ اﺳﺖ‪.‬‬ ‫‪(2) -29‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪279‬‬

‫ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪6‬‬ ‫‪ -1‬ﭘﻴﻮﻧﺪ ﻃﺒﻴﻌﻲ دو ﺟﺪول زﻳﺮ ﭼﻨﺪ ﺳﻄﺮ و ﭼﻨﺪ ﺳﺘﻮن دارد ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي‬ ‫ﻓﻨﻲ‪( 79 -‬‬ ‫‪s‬‬

‫‪sp‬‬ ‫ﺗﻌﺪاد ‪Qty‬‬

‫‪P#‬‬

‫‪S#‬‬

‫‪city‬‬

‫‪sname‬‬

‫‪S#‬‬

‫‪300‬‬

‫‪P1‬‬

‫‪S1‬‬

‫ﺗﻬﺮان‬

‫ﻓﻦ آوران‬

‫‪S1‬‬

‫‪200‬‬

‫‪P2‬‬

‫‪S1‬‬

‫ﺗﺒﺮﻳﺰ‬

‫اﻳﺮان ﻗﻄﻌﻪ‬

‫‪S2‬‬

‫‪400‬‬

‫‪P3‬‬

‫‪S1‬‬

‫ﺗﺒﺮﻳﺰ‬

‫ﭘﻮﻻدﻳﻦ‬

‫‪S3‬‬

‫‪300‬‬

‫‪P1‬‬

‫‪S2‬‬

‫‪400‬‬

‫‪P2‬‬

‫‪S2‬‬

‫‪200‬‬

‫‪P2‬‬

‫‪S3‬‬

‫‪ 18 .1‬ﺳﻄﺮ و ‪ 6‬ﺳﺘﻮن‬ ‫‪ 18 .2‬ﺳﻄﺮ و ‪ 9‬ﺳﺘﻮن‬ ‫‪ 9 .3‬ﺳﻄﺮ و ‪ 6‬ﺳﺘﻮن‬ ‫‪ 6 .4‬ﺳﻄﺮ و ‪ 5‬ﺳﺘﻮن‬ ‫‪ -2‬ﻋﺒﺎرت ‪ A JOIN B‬را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪ .‬اﮔﺮ ﺗﻤﺎم ﺻﻔﺎت ﺧﺎﺻﻪ ‪ A‬و ‪ B‬ﻳﻜﺴﺎن ﺑﺎﺷﻨﺪ‬ ‫ﻋﺒﺎرت ﻓﻮق ﻣﻌﺎدل ﻛﺪام ﻋﺒﺎرت زﻳﺮ اﺳﺖ ؟ )ﻣﺴﺎﺑﻘﺎت آﻣﻮزﺷﻜﺪهﻫﺎي ﻓﻨﻲ‪( 79 -‬‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪A UNION B‬‬ ‫‪A MINUS B‬‬ ‫‪A INTERSECT B‬‬ ‫‪A TIMES B‬‬

‫‪ -3‬دو ﺟﺪول زﻳﺮ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ ﺳﭙﺲ ﺑﮕﻮﺋﻴﺪ در ﻧﺘﻴﺠﻪ اﻟﺤﺎق آﻧﻬﺎ ﺗﻮﺳﻂ دﺳﺘﻮر‬ ‫داده ﺷﺪه‪ ،‬ﻛﻠﻴﺪ اﺻﻠﻲ ﭼﻪ ﻣﻲﺷﻮد ؟‬

‫‪ 280‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬ ‫‪DEPT‬‬

‫‪EMP‬‬ ‫‪SALARY‬‬

‫‪DEPT#‬‬

‫‪ENAME‬‬

‫‪EMP#‬‬

‫‪BUDGET‬‬

‫‪DNAME‬‬

‫‪DEPT‬‬ ‫‪#‬‬

‫‪40K‬‬

‫‪D1‬‬

‫‪Lopez‬‬

‫‪E1‬‬

‫‪10M‬‬

‫‪Marketing‬‬

‫‪D1‬‬

‫‪42K‬‬

‫‪D1‬‬

‫‪Cheng‬‬

‫‪E2‬‬

‫‪12M‬‬

‫‪30K‬‬

‫‪D2‬‬

‫‪Finzi‬‬

‫‪E3‬‬

‫‪5M‬‬

‫‪Developme‬‬ ‫‪nt‬‬ ‫‪Research‬‬

‫‪D2‬‬

‫‪35K‬‬

‫‪D2‬‬

‫‪Saito‬‬

‫‪E4‬‬

‫‪D3‬‬

‫‪Join:‬‬ ‫‪DEPT and EMP over DEPT#‬‬ ‫‪DEPT# .1‬‬ ‫‪EMP# .2‬‬ ‫‪BUDGET .3‬‬ ‫‪EMP# , DEPT# .4‬‬ ‫‪ -4‬در ﺟﺪول ‪ EMP‬در ﺗﺴﺖ ﻗﺒﻠﻲ‪ ،‬ﻛﻠﻴﺪ ﺧﺎرﺟﻲ ﻛﺪام اﺳﺖ ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬

‫‪EMP#‬‬ ‫‪SALARY‬‬ ‫‪DEPT#‬‬

‫‪ .4‬ﻫﻴﭽﻜﺪام‪ .‬ﭼﻮن ‪ D1‬و ‪ D2‬ﺗﻜﺮار ﺷﺪهاﻧﺪ‪ DEPT# ،‬ﻧﻤﻲﺗﻮاﻧﺪ ﻛﻠﻴﺪ ﺧﺎرﺟﻲ‬ ‫ﺑﺎﺷﺪ‪.‬‬ ‫‪ -5‬ﺗﻘﺎﺿﺎي زﻳﺮ در ﻣﻮرد ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻋﺮﺿﻪ ﻛﻨﻨﺪﮔﺎن و ﻗﻄﻌﺎت ﭼﻪ ﻛﺎري اﻧﺠﺎم‬ ‫ﻣﻲدﻫﺪ؟‬ ‫;}‪Result: = (( S join SP) where P# ' p2' ) { S# , city‬‬

‫‪ .1‬ﺷﻬﺮ ﻋﺮﺿﻪ ﻛﻨﻨﺪهاي را ﻣﻲدﻫﺪ ﻛﻪ ﻗﻄﻌﻪ ‪ p2‬را ﺳﺎﺧﺘﻪ اﺳﺖ‪.‬‬ ‫‪ .2‬ﺷﻤﺎره ﻋﺮﺿﻪ ﻛﻨﻨﺪه و ﺷﻬﺮ ﻋﺮﺿﻪ ﻛﻨﻨﺪهاي را ﻛﻪ ﻗﻄﻌﻪ ‪ p2‬را ﺗﻮﻟﻴﺪ ﻣﻲﻛﻨﺪ‪،‬‬ ‫ﺑﺎزﻳﺎﺑﻲ ﻣﻲﻛﻨﺪ‪.‬‬ ‫‪ .3‬ﺷﻤﺎره ﻋﺮﺿﻪ ﻛﻨﻨﺪهاي را ﻣﻲدﻫﺪ ﻛﻪ ﻗﻄﻌﻪ ‪ p2‬در ﻫﻤﺎن ﺷﻬﺮ آن ﺗﻮﻟﻴﺪ ﺷﺪه‬ ‫اﺳﺖ‪.‬‬ ‫‪ .4‬ﻫﻴﭽﻜﺪام‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫ﺗﺬﻛﺮ‪ :‬ﺳﻪ ﺟﺪول ﺗﻬﻴﻪ ﻛﻨﻨﺪه‬

‫)‪S (S# , Sname , City‬‬

‫‪281‬‬

‫و ﻗﻄﻌﻪ‬

‫)‪ P (P# , Pname , Color , City‬و ﻣﺤﻤﻮﻟﻪ )‪ SP ( S# , P# , Qty‬را در ﻧﻈﺮ ﮔﺮﻓﺘﻪ و‬ ‫ﺑﻪ ‪ 4‬ﺳﻮال زﻳﺮ ﭘﺎﺳﺦ دﻫﻴﺪ‪.‬‬ ‫‪ -6‬ﻛﺪام ﮔﺰﻳﻨﻪ ﺷﻤﺎره ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎن و ﻗﻄﻌﺎت ﺗﻮﻟﻴﺪي آﻧﻬﺎ را ﭼﺎپ ﻣﻲﻛﻨﺪ ﺑﻪ ﺷﺮط آﻧﻜﻪ‬ ‫ﻗﻄﻌﻪ ﺗﻮﻟﻴﺪي آﻧﻬﺎ ﺑﻴﺸﺘﺮ از ‪ 200‬ﻋﺪد ﺑﺎﺷﺪ ؟‬ ‫‪.1‬‬

‫))‪Π s#, p# ( σ Qty >200 (SP‬‬

‫‪.2‬‬

‫))‪Π s#, p# ( σ Qty >200 (S∞ P‬‬

‫‪.3‬‬

‫))‪σ Qty >200 (Π s#, p# (SP‬‬

‫‪1,3 .4‬‬ ‫‪ -7‬در راﺑﻄﻪ ﺑﺎ دو دﺳﺘﻮر زﻳﺮ ﻛﺪام ﮔﺰﻳﻨﻪ درﺳﺖ اﺳﺖ ؟‬ ‫))‪) Π s# , p# ( σ Qty >200 ( SP‬ب‬

‫و )‪ ) σ p# = p1 (S∞ SP‬اﻟﻒ‬

‫‪ .1‬اﻳﻦ دو دﺳﺘﻮر دﻗﻴﻘﺎ ﻣﻌﺎدل ﻳﻜﺪﻳﮕﺮﻧﺪ و ﻫﻴﭻ ارﺟﺤﻴﺘﻲ ﻧﺴﺒﺖ ﺑﻪ ﻫﻢ ﻧﺪارﻧﺪ‪.‬‬ ‫‪ .2‬اﻳﻦ دو دﺳﺘﻮر ﻣﻌﺎدل ﻧﻴﺴﺘﻨﺪ‪.‬‬ ‫‪ .3‬اﻳﻦ دو دﺳﺘﻮر ﻣﻌﺎدﻟﻨﺪ وﻟﻲ ب ﻛﺎراﺗﺮ و ﺑﻬﻴﻨﻪ ﺗﺮ از اﻟﻒ اﺳﺖ‪.‬‬ ‫‪ .4‬اﻳﻦ دو دﺳﺘﻮر ﻣﻌﺎدﻟﻨﺪ وﻟﻲ اﻟﻒ ﻛﺎراﺗﺮ و ﺑﻬﻴﻨﻪ ﺗﺮ از ب اﺳﺖ‪.‬‬ ‫‪ -8‬ﻛﺪام ﮔﺰﻳﻨﻪ اﺳﺎﻣﻲﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎن ﻗﻄﻌﻪ ‪ p2‬را ﻣﻲدﻫﺪ ؟‬ ‫‪.1‬‬

‫))‪Π sname ( σp# = p2 (S∞ P‬‬

‫‪.2‬‬

‫))‪Π sname ( σp# = p2 (S∞ SP‬‬

‫‪.3‬‬

‫))‪σp# = p2 (Π sname (P∞ SP‬‬

‫‪.4‬‬

‫))‪σp# = p2 (Π sname (P∞ S‬‬

‫‪ -9‬دﺳﺘﻮر زﻳﺮ ﭼﻪ ﻣﻲﻛﻨﺪ ؟‬ ‫)‪Π sname ( Π s# ((Π p# ( σ color = ' red' ( P )) ∞ SP ) ∞ S‬‬

‫‪ .1‬ﺷﻤﺎره اﺳﺎﻣﻲﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﻗﻄﻌﺎت ﻗﺮﻣﺰ رﻧﮓ را ﺗﻮﻟﻴﺪ ﻛﺮدهاﻧﺪ‪.‬‬ ‫‪ .2‬ﺷﻤﺎره و اﺳﺎﻣﻲﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺷﻤﺎره ﻗﻄﻌﻪ آﻧﻬﺎ ﻣﻮﺟﻮد ﺑﻮده و‬ ‫رﻧﮓ آﻧﻬﺎ ﻗﺮﻣﺰ ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ .3‬اﺳﺎﻣﻲﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﻳﻚ ﻗﻄﻌﻪ ﻗﺮﻣﺰ رﻧﮓ ﺗﻬﻴﻪ ﻣﻲﻛﻨﻨﺪ‪.‬‬

‫‪ 282‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ .4‬اﺳﺎﻣﻲﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲﻳﺎﺑﺪ ﻛﻪ ﺣﺪاﻗﻞ ﻳﻚ ﻗﻄﻌﻪ ﻗﺮﻣﺰ رﻧﮓ ﺗﻬﻴﻪ ﻣﻲﻛﻨﻨﺪ‪.‬‬ ‫‪ -10‬ﻛﺪام ﻋﻤﻠﮕﺮ ﻫﺎ را ﻣﻲﺗﻮان ﺑﻮﺳﻴﻠﻪ ﻋﻤﻠﮕﺮ ﻫﺎي دﻳﮕﺮ در ﺟﺒﺮ راﺑﻄﻪاي ﺷﺒﻴﻪ ﺳﺎزي‬ ‫ﻛﺮد؟‬ ‫‪ .1‬ﺗﻘﺴﻴﻢ‪ -‬اﺟﺘﻤﺎع‪ -‬ﭘﻴﻮﻧﺪ‬ ‫‪ .2‬اﺷﺘﺮاك‪ -‬ﺿﺮب دﻛﺎرﺗﻲ‪ -‬ﺟﺎﻳﮕﺰﻳﻨﻲ‬ ‫‪ .3‬اﺷﺘﺮاك‪ -‬ﺗﻘﺴﻴﻢ‪ -‬ﭘﻴﻮﻧﺪ ﻃﺒﻴﻌﻲ‬ ‫‪ .4‬ﺿﺮب دﻛﺎرﺗﻲ‪ -‬ﺗﻘﺴﻴﻢ‪ -‬اﺟﺘﻤﺎع‬ ‫‪ -11‬ﻛﺪام ﻓﺮﻣﻮل در ﺟﺒﺮ راﺑﻄﻪاي ﻧﺎدرﺳﺖ اﺳﺖ ؟ )‪ σ‬ﻧﻤﺎد ﻋﻤﻠﮕﺮ ﮔﺰﻳﻨﺶ ﻳﺎ ‪select‬‬

‫ﻣﻲﺑﺎﺷﺪ(‬ ‫‪.1‬‬ ‫‪.2‬‬

‫‪A×B = B ×A‬‬ ‫)‪σ p( A ∩ B ) = σ p (A) ∩ σ p (B‬‬

‫‪.3‬‬

‫)‪A ∩ B = B -( B-A‬‬

‫‪.4‬‬

‫)‪σ p( B-A ) = σ p (b) -σ p (a‬‬

‫‪ -12‬اﮔﺮ ‪ A‬و ‪ B‬دو راﺑﻄﻪ ﺑﺎﺷﻨﺪ‪ ،‬ﻛﻠﻴﺪ اﺻﻠﻲ ‪ A MINUS B‬ﭼﻪ ﻣﻲﺷﻮد ؟‬ ‫‪ .1‬ﻛﻠﻴﺪ اﺻﻠﻲ ‪A‬‬ ‫‪ .2‬ﻛﻠﻴﺪ اﺻﻠﻲ ‪B‬‬ ‫‪ .3‬ﻛﻠﻴﺪ اﺻﻠﻲ‪A ∩ B‬‬ ‫‪.4‬‬

‫ﻛﻠﻴﺪ اﺻﻠﻲ ‪A U B‬‬

‫‪ -13‬اﮔﺮ ‪ Divide by‬را ﺑﻪ ﺻﻮرت ﺳﻪ ﻋﻤﻠﻮﻧﺪي در ﻧﻈﺮ ﺑﮕﻴﺮﻳﻢ‪ ،‬ﻛﺪام ﻓﺮﻣﻮل در ﺟﺒﺮ‬ ‫راﺑﻄﻪاي ﺻﺤﻴﺢ اﺳﺖ ؟‬ ‫‪.1‬‬

‫‪( A Divide by B ) TIMES B ≥ A‬‬

‫‪.2‬‬

‫‪( A Divide by B ) TIMES B ≠ A‬‬

‫‪.3‬‬

‫‪( A Divide by B ) TIMES B ≤ A‬‬

‫‪.4‬‬

‫‪( A Divide by B ) TIMES B = A‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪283‬‬

‫‪ -14‬راﺑﻄﻪ داراي ﻣﺠﻤﻮﻋﻪاي از ﺻﻔﺎت )ﻋﻨﻮان( و ﻣﺠﻤﻮﻋﻪاي از ﭼﻨﺪ ﺗﺎﻳﻲ ﻫﺎ )ﭘﻴﻜﺮ(‬ ‫اﺳﺖ‪ .‬راﺑﻄﻪ ‪ DEE‬ﻣﺠﻤﻮﻋﻪاي ﺧﺎﻟﻲ از ﭼﻨﺪ ﺗﺎﻳﻲ ﻫﺎﺳﺖ‪ .‬راﺑﻄﻪ ‪ DUM‬ﻧﻴﺰ ﻣﺠﻤﻮﻋﻪاي‬ ‫ﺧﺎﻟﻲ از ﺻﻔﺎت ﻣﻲﺑﺎﺷﺪ‪ .‬ﺣﺎل ﻛﺪام ﮔﺰﻳﻨﻪ درﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬ﻋﻀﻮ ﺧﻨﺜﻲ در ﺣﺴﺎب ﻣﻌﻤﻮﻟﻲ ﻋﺪد ﻳﻚ اﺳﺖ )‪ .(n * 1 = 1 * n = n‬در ﺟﺒﺮ‬ ‫راﺑﻄﻪاي ﻣﻌﺎدل ﻋﺪد ‪ 1‬راﺑﻄﻪ ‪ DEE‬اﺳﺖ و دارﻳﻢ ‪R TIMES DEE=DEE‬‬ ‫‪TIMES R=R‬‬

‫‪ .2‬ﻋﻀﻮ ﺻﻔﺮ در ﺣﺴﺎب داراي ﺧﺎﺻﻴﺖ ‪ n*0=0*n=0‬اﺳﺖ در ﺟﺒﺮ راﺑﻄﻪاي‬ ‫ﻣﻌﺎدل ﻋﺪد ﺻﻔﺮ راﺑﻄﻪ ‪ DUM‬ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ .3‬ﻫﺮ دو ﮔﺰﻳﻨﻪ‬ ‫‪ .4‬ﻫﻴﭽﻜﺪام‬ ‫‪ -15‬ﻛﺪام ﻋﻤﻠﮕﺮ در ﺟﺒﺮ راﺑﻄﻪاي ﭘﺎﻳﻪاي ﻧﻤﻲﺑﺎﺷﺪ و ﺑﻪ ﻛﻤﻚ ﺳﺎﻳﺮ ﻋﻤﻠﮕﺮ ﻫﺎ ﻣﻲﺗﻮان‬ ‫آن را ﺷﺒﻴﻪ ﺳﺎزي ﻛﺮد ؟‬ ‫‪ .1‬ﭘﻴﻮﻧﺪ ﻃﺒﻴﻌﻲ )‪ Join‬ﻳﺎ∞ (‬ ‫‪ .2‬ﺿﺮب دﻛﺎرﺗﻲ )× ﻳﺎ ‪(TIMES‬‬ ‫‪ .3‬ﺗﻔﺎﺿﻞ )‪ MINUS‬ﻳﺎ ‪(-‬‬

‫‪1 .4‬و‪3‬‬ ‫‪ -16‬در ﺟﺪول زﻳﺮ‬ ‫‪DEPT‬‬ ‫‪Budjet‬‬

‫‪D name‬‬

‫‪D#‬‬

‫‪10‬‬

‫‪M‬‬

‫‪D1‬‬

‫‪20‬‬

‫‪D‬‬

‫‪D2‬‬

‫‪5‬‬

‫‪R‬‬

‫‪D3‬‬

‫ﻧﺘﻴﺠﻪ دﺳﺘﻮر زﻳﺮ ﭼﻴﺴﺖ ؟‬ ‫‪Project:‬‬ ‫‪DEPT over D# , Budjet‬‬

‫‪ 284‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ 2 .1‬ﺻﻔﺖ ﺧﺎﺻﻪ و ﻫﻴﭻ ﺗﺎﭘﻞ‬ ‫‪ .2‬ﻫﻴﭻ ﺗﺎﭘﻞ و ‪ 2‬ﺻﻔﺖ ﺧﺎﺻﻪ‬ ‫‪ 2 .3‬ﺻﻔﺖ ﺧﺎﺻﻪ و ‪ 3‬ﺗﺎﭘﻞ‬ ‫‪ 2 .4‬ﺗﺎﭘﻞ و ‪ 3‬ﺻﻔﺖ ﺧﺎﺻﻪ‬ ‫‪ -17‬ﻛﺪام ﻋﻤﻠﮕﺮ در ﺟﺒﺮ راﺑﻄﻪاي وﺟﻮد دارد‪ ،‬وﻟﻲ ﻣﻤﻜﻦ اﺳﺖ در ﺑﻌﻀﻲ از ﺑﺎﻧﻜﻬﺎي‬ ‫اﻃﻼﻋﺎﺗﻲ ﭘﻴﺎده ﺳﺎزي ﻧﺸﺪه ﺑﺎﺷﺪ ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬

‫‪Join‬‬ ‫‪Subtract‬‬ ‫‪Add‬‬

‫‪ .4‬ﻫﺮ ﺳﻪ ﮔﺰﻳﻨﻪ‬ ‫‪ -18‬ﻓﺮض ﻛﻨﻴﺪ ﺟﺪول داﻧﺸﻜﺪه ﺑﻪ ﺻﻮرت زﻳﺮ ﺷﺎﻣﻞ )) ﺷﻤﺎره‪ ،‬ﻧﺎم داﻧﺸﻜﺪه و ﺷﻬﺮ ((‬ ‫ﺑﺎﺷﺪ‪:‬‬ ‫) ‪Clg ( clg# , clgname , city‬‬

‫و ﺟﺪول درس ﺷﺎﻣﻞ ))ﺷﻤﺎره درس‪ ،‬ﻧﺎم درس‪ ،‬ﺗﻌﺪاد واﺣﺪ و ﺷﻤﺎره داﻧﺸﻜﺪه اراﺋﻪ‬ ‫دﻫﻨﺪ (( ﺑﺎﺷﺪ‪:‬‬ ‫)‪Crs ( c# , c name , unit , clg#‬‬

‫ﺣﺎل ﺑﻪ ﻛﻤﻚ دﺳﺘﻮرات ﺟﺒﺮ راﺑﻄﻪاي‪ ،‬درﺳﻬﺎﻳﻲ ﻛﻪ ﺗﻮﺳﻂ ﻫﻤﻪ داﻧﺸﻜﺪهﻫﺎ اراﺋﻪ‬ ‫ﻣﻲﺷﻮﻧﺪ را ﺑﺪﻫﻴﺪ‪.‬‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪Clg Join Crs giving temp ; select temp where cname ALL‬‬ ‫‪Project clg [ clg#]Giving temp ; Crs Divideby temp‬‬ ‫‪Clg join crs giving temp ; select cname‬‬ ‫‪Project clg [ clg#] Giving temp ; clg join crs join temp divideby‬‬ ‫‪cname‬‬

‫‪ -19‬ﺣﺎﺻﻞ ﻋﺒﺎرت زﻳﺮ ﻛﺪام اﺳﺖ ؟‬ ‫)‪R2 (C‬‬

‫‪DIV‬‬

‫)‪R1(A , B , C‬‬

‫‪C1‬‬

‫‪c1‬‬

‫‪b1‬‬

‫‪a1‬‬

‫‪C3‬‬

‫‪c3‬‬

‫‪b1‬‬

‫‪a1‬‬

‫‪c2‬‬

‫‪b2‬‬

‫‪a2‬‬

‫‪c1‬‬

‫‪b1‬‬

‫‪a3‬‬

‫‪c3‬‬

‫‪b1‬‬

‫‪a3‬‬

285

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

.1

R3(A , B) a1

b1

a3

b1

.2 R3(A , B) a2

b2

.3

R3(A , B , C) a1 a3 a1 a3

b1 b1 b1 b1

c1 c1 c3 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 a2

b1 b2

c1 c2

.2

R3 ( A) a2

.3

R3(A) a1

.4

‫‪ 286‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬ ‫)‪R3(A , B‬‬ ‫‪b1‬‬ ‫‪b2‬‬

‫‪c1‬‬ ‫‪c2‬‬

‫‪ -21‬ﺷﻤﺎره ﻗﻄﻌﺎﺗﻲ را ﺑﺪﻫﻴﺪ ﻛﻪ ﺗﻮﺳﻂ ﻫﻤﻪ ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎن ﺗﻬﻴﻪ ﺷﺪهاﻧﺪ‪.‬‬ ‫‪.1‬‬

‫‪Temp ←Π s#‬‬ ‫‪sp ÷ Temp‬‬

‫‪.2‬‬

‫)‪Temp ←Π s#(S‬‬ ‫)‪Π p# ( sp ÷ Temp‬‬

‫‪.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‬آﻫﻦ‬

‫ﻗﺮﻣﺰ‬

‫‪300‬‬

‫‪P1‬‬

‫ﻣﺲ‬

‫ﺳﺒﺰ‬

‫‪400‬‬

‫‪ P2‬ﺗﺒﺮﻳﺰ اﻳﺮان ﻗﻄﻌﻪ‬ ‫ﻓﻦ آوران‬

‫‪ .2‬آﻫﻦ‬

‫ﻗﺮﻣﺰ‬

‫‪300‬‬

‫‪P1‬‬

‫ﺗﻬﺮان‬

‫آﻫﻦ‬

‫ﻗﺮﻣﺰ‬

‫‪300‬‬

‫‪P1‬‬

‫ﺗﺒﺮﻳﺰ اﻳﺮان ﻗﻄﻌﻪ‬

‫آﻫﻦ‬

‫ﻗﺮﻣﺰ‬

‫‪300‬‬

‫‪P1‬‬

‫ﻓﻦ آوران‬

‫ﺗﻬﺮان‬

‫‪S1‬‬ ‫‪S2‬‬ ‫‪S1‬‬ ‫‪S2‬‬ ‫‪S1‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪ .3‬ﻣﺲ‬

‫ﺳﺒﺰ‬

‫‪200‬‬

‫‪ P2‬ﺗﺒﺮﻳﺰ‬

‫ﭘﻮﻻدﻳﻦ‬

‫‪287‬‬

‫‪S3‬‬

‫‪ .4‬ﻫﻴﭽﻜﺪام‬ ‫‪ -24‬اﮔﺮ راﺑﻄﻪ ‪ A‬از درﺟﻪ ‪ n‬ﺑﺎﺷﺪ‪ ،‬ﭼﻨﺪ ﺗﺼﻮﻳﺮ ﻣﺨﺘﻠﻒ از ‪ A‬وﺟﻮد دارد ؟‬ ‫‪.1‬‬

‫! )‪(n-1‬‬

‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫!‪n‬‬ ‫‪2ⁿ‬‬ ‫‪2n‬‬

‫‪ -25‬ﺧﺎﺻﻴﺖ ﺑﺴﺘﻪ ﺑﻮدن )‪ ( closure‬ﺑﻪ ﭼﻪ ﻣﻌﻨﺎﺳﺖ ؟‬ ‫‪ .1‬ﺧﺮوﺟﻲ ﻫﺮ ﻋﻤﻠﮕﺮ راﺑﻄﻪاي‪ ،‬ﻳﻚ راﺑﻄﻪ اﺳﺖ‪.‬‬ ‫‪ .2‬اﻟﺤﺎق دو راﺑﻄﻪ راﺑﻄﻪاي ﺟﺎﻣﻌﺘﺮ از ﻫﺮ دو ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ .3‬ﺿﺮب دﻛﺎرﺗﻲ دو راﺑﻄﻪ ﻣﺠﻤﻮﻋﻪ ﻣﺎدر ﻫﺮ دو ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ .4‬اﺟﺘﻤﺎع دو راﺑﻄﻪ در ﻫﺮ ﺣﺎل اﻣﻜﺎن ﭘﺬﻳﺮ اﺳﺖ‪.‬‬ ‫‪ -26‬ﻛﺪام ﻋﻤﻠﮕﺮﻫﺎي ﺟﺒﺮ راﺑﻄﻪاي ﺑﻪ ﻋﻤﻠﻮﻧﺪﻫﺎي ﺳﺎزﮔﺎر ﻧﻴﺎز دارﻧﺪ ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬

‫‪U‬‬ ‫‪−‬‬ ‫∞‬

‫‪1 .4‬و‪2‬‬ ‫‪ -27‬ﺟﺒﺮ راﺑﻄﻪاي‪....‬‬ ‫‪ .1‬ﻳﻚ زﺑﺎن اﺟﺮاﻳﻲ ﺑﺮاي ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ راﺑﻄﻪاي اﺳﺖ‪.‬‬ ‫‪ .2‬ﻫﻤﺎن ‪ SQL‬اﺳﺖ‪.‬‬ ‫‪ .3‬زﺑﺎﻧﻲ از ﻧﺴﻞ ﭼﻬﺎرم )‪ ( 4GL‬ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ .4‬ﺑﻪ ‪ DBMS‬ﻣﻲﮔﻮﻳﺪ ﭼﮕﻮﻧﻪ ﻳﻚ راﺑﻄﻪ ﺟﺪﻳﺪ از ﻳﻚ ﻳﺎ ﭼﻨﺪ راﺑﻄﻪ ﺳﺎﺧﺘﻪ ﺷﻮد‪.‬‬ ‫‪ -28‬زﺑﺎﻧﻲ داراي اﻛﻤﺎل راﺑﻄﻪاي اﺳﺖ ﻛﻪ‪....‬‬ ‫‪ .1‬ﺣﺪاﻗﻞ ﻫﻤﺘﻮان ﺑﺎ ﺟﺒﺮ راﺑﻄﻪاي ﺑﺎﺷﺪ‪.‬‬ ‫‪ .2‬ﺣﺪاﻛﺜﺮ ﻫﻤﺘﻮان ﺑﺎ ﺟﺒﺮ راﺑﻄﻪاي ﺑﺎﺷﺪ‪.‬‬ ‫‪ .3‬ﻫﺮ راﺑﻄﻪاي ﻛﻪ ﺑﺎ ﻋﺒﺎرات ﺟﺒﺮ راﺑﻄﻪاي ﻗﺎﺑﻞ ﺗﻌﺮﻳﻒ اﺳﺖ‪ ،‬ﺗﻮﺳﻂ آم زﺑﺎن ﻧﻴﺰ‬ ‫ﺗﻌﺮﻳﻒ ﺷﺪﻧﻲ ﺑﺎﺷﺪ‪.‬‬

‫‪ 288‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪1 .4‬و‪3‬‬ ‫‪ -29‬ﻛﺪام ﻓﺮﻣﻮل ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪.1‬‬

‫)‪A∩ B = A− ( A− B‬‬

‫‪.2‬‬ ‫‪.3‬‬

‫‪A ∞ B ≠ B∞ A‬‬ ‫‪A∞ B = σ ( A∩ b)× A‬‬

‫‪A ∞B = B∞ A .4‬‬ ‫‪ X U Y -30‬دو ﺟﺪول زﻳﺮ ﭼﻨﺪ ﺳﻄﺮ و ﭼﻨﺪ ﺳﺘﻮن دارد ؟‬ ‫‪Y‬‬

‫ﺷﻬﺮ ﺗﻮﻟﺪ‬

‫ﻣﻌﺪل‬

‫ﺷﻤﺎره‬

‫ﻧﺎم‬

‫ﺗﻬﺮان‬

‫‪17‬‬

‫‪123‬‬

‫ﻋﻠﻲ‬

‫ﺗﺒﺮﻳﺰ‬

‫‪15‬‬

‫‪574‬‬

‫ﺟﻮاد‬

‫ﺷﻬﺮ ﺗﻮﻟﺪ‬

‫ﻣﻌﺪل‬

‫ﺷﻤﺎره‬

‫ﻧﺎم‬

‫ﺗﻬﺮان‬

‫‪17‬‬

‫‪123‬‬

‫ﻋﻠﻲ‬

‫ﺗﻬﺮان‬

‫‪17‬‬

‫‪934‬‬

‫ﻣﺠﻴﺪ‬

‫‪X‬‬

‫‪ 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‬اﺗﻔﺎﻗﻲ اﺳﺖ و ﻧﻤﻲﺗﻮان ﮔﻔﺖ‪.‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪289‬‬

‫‪ -32‬اﮔﺮ ‪ A‬راﺑﻄﻪاي ﺑﺎ ﺻﻔﺎت ‪ B , Y , X‬راﺑﻄﻪاي دﻳﮕﺮ ﺑﺎ ﺻﻔﺖ ﺧﺎﺻﻪ ‪ X‬ﺑﺎﺷﺪ‪ ،‬ﻛﺪام‬ ‫ﮔﺰﻳﻨﻪ ﻣﻌﺎدل ﻋﺒﺎرت ‪ A÷ B‬ﻣﻲﺑﺎﺷﺪ ؟‬ ‫‪.1‬‬

‫) ] ‪A [ Y ]− ( A− [ X‬‬

‫‪.2‬‬

‫] ‪A [ Y ]−(( A [ Y ]× B)− A ) [ Y‬‬

‫‪.3‬‬

‫] ‪A [ X ]−(( A [ X ]× B)− A ) [ X‬‬

‫‪.4‬‬

‫) ] ‪A [ X ]− ( A− B [ X‬‬

‫‪ -33‬ﺑﺎ در ﻧﻈﺮ ﮔﺮﻓﺘﻦ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎن و ﻗﻄﻌﺎت‪ ،‬ﻛﺪام دﺳﺘﻮر ﻣﺸﺨﺼﺎت‬ ‫ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺗﻤﺎم ﻗﻄﻌﺎت را ﻋﺮﺿﻪ ﻛﺮدهاﻧﺪ ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪SP ( S# , P# ) divided by P (P#) Join S‬‬ ‫‪(SP Join S) Minus P‬‬ ‫‪SP ( S# , P# ) divided by P (P#) Union S‬‬ ‫‪(SP Join P) Minus S‬‬

‫‪ -34‬ﺑﺎ در ﻧﻈﺮ ﮔﺮﻓﺘﻦ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎن و ﻗﻄﻌﺎت‪ ،‬ﻛﺪام دﺳﺘﻮر ﻣﺸﺨﺼﺎت‬ ‫ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﻗﻄﻌﻪ ‪ P3‬را ﺗﻬﻴﻪ ﻧﻤﻲﻛﻨﻨﺪ ؟‬ ‫‪.1‬‬

‫]])‪[Π S# ( S ∞ SP)U [ σp#< >'p3'(SP‬‬

‫‪.2‬‬

‫‪[Π S#( S) − σp#< >'p3'(SP ) ] ∞ S‬‬

‫‪.3‬‬

‫‪[Π S#( S) − ( Π S#( σp#= 'p3'(SP ))) ] ∞ S‬‬

‫‪ .4‬ﻫﻴﭽﻜﺪام‬ ‫‪ -35‬دو راﺑﻄﻪ ‪ x‬و ‪ y‬زﻳﺮ را در ﻧﻈﺮ ﮔﺮﻓﺘﻪ و ﺑﮕﻮﺋﻴﺪ ‪ x times y‬ﭼﻨﺪ ﺳﻄﺮ ﺧﻮاﻫﺪ‬ ‫داﺷﺖ ؟‬

‫‪20 .1‬ﺳﻄﺮ‬ ‫‪ 15 .2‬ﺳﻄﺮ‬ ‫‪ 9 .3‬ﺳﻄﺮ‬

‫‪y‬‬

‫‪x‬‬

‫‪e‬‬

‫‪a‬‬

‫‪a‬‬ ‫‪f‬‬ ‫‪g‬‬

‫‪b‬‬ ‫‪c‬‬ ‫‪d‬‬ ‫‪m‬‬

‫‪ 290‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ 25 .4‬ﺳﻄﺮ‬ ‫‪ -36‬ﭘﻴﻮﻧﺪ ﻃﺒﻴﻌﻲ دو ﺟﺪول زﻳﺮ ﭼﻨﺪ ﺳﻄﺮ و ﺳﺘﻮن ﺧﻮاﻫﺪ داﺷﺖ ؟‬ ‫‪Q‬‬

‫‪M‬‬

‫‪P‬‬

‫‪N‬‬

‫‪M‬‬

‫‪x‬‬

‫‪a‬‬

‫‪P1‬‬

‫‪m‬‬

‫‪a‬‬

‫‪y‬‬

‫‪b‬‬

‫‪P2‬‬

‫‪n‬‬

‫‪b‬‬

‫‪z‬‬

‫‪c‬‬

‫‪P3‬‬

‫‪k‬‬

‫‪c‬‬

‫‪u‬‬

‫‪d‬‬

‫‪P4‬‬

‫‪4 , 4 .1‬‬ ‫‪5 , 4 .2‬‬ ‫‪3 , 3 .3‬‬ ‫‪4 , 3 .4‬‬ ‫‪ -37‬ﻛﺪاﻣﻴﻚ از ﻋﻤﻠﮕﺮﻫﺎي زﻳﺮ در ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﺑﺮ روي ﺟﺪاول ﻛﺎر ﻣﻲﻛﻨﻨﺪ‬ ‫؟)ﻛﺎرﺷﻨﺎﺳﻲ ﻧﺎﭘﻴﻮﺳﺘﻪ‪ -‬آزاد ‪(80‬‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬

‫‪Join‬‬ ‫‪Add‬‬ ‫‪Subtract‬‬

‫‪ .4‬ﻫﻴﭽﻜﺪام‬ ‫‪ -38‬ﺟﺪول ﺳﻤﺖ ﭼﭙﻲ ﺑﺎ ﭼﻪ دﺳﺘﻮري ﺗﺒﺪﻳﻞ ﺑﻪ ﺟﺪول ﺳﻤﺖ راﺳﺘﻲ ﻣﻲﺷﻮد ؟‬ ‫‪GRM‬‬

‫‪Weight‬‬

‫‪P#‬‬

‫‪Weight‬‬

‫‪P‬‬ ‫‪P#‬‬

‫‪15000‬‬

‫‪15‬‬

‫‪P1‬‬

‫‪15‬‬

‫‪P1‬‬

‫‪13000‬‬

‫‪13‬‬

‫‪P2‬‬

‫‪13‬‬

‫‪P2‬‬

‫‪18000‬‬

‫‪18‬‬

‫‪P3‬‬

‫‪18‬‬

‫‪P3‬‬

‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬

‫‪extend P Add ( weight * 1000) AS GRM‬‬ ‫‪Add P ( weight * 1000) AS GRM‬‬ ‫‪P Union weight * 1000 AS GRM‬‬

‫‪ .4‬ﻫﻴﭽﻜﺪام‬ ‫‪ -39‬در ﺷﻜﻞ زﻳﺮ ‪ DEND‬ﻣﻘﺴﻮم‪ MED ،‬ﻣﻴﺎﻧﺠﻲ و ‪ DOR‬ﻣﻘﺴﻮم ﻋﻠﻴﻪ اﺳﺖ‪ .‬ﺣﺎﺻﻞ‬ ‫دﺳﺘﻮر ‪ DEND DIVIDEBY DOR PER MED‬ﻛﺪام ﮔﺰﻳﻨﻪ اﺳﺖ ؟‬ ‫‪DOR:‬‬

‫‪MED:‬‬

‫‪DEND:‬‬

291

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬ 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

S# S1 S2

.1

P# P1 P3

.2 P# P1 P3

.3 S# S1 S2

.4 S# S1 S4

‫ﺟﺪول ﺑﺎﺷﺪ ﺧﺮوﺟﻲ ﭼﻪ ﻣﻲﺷﻮد ؟‬

P# P1

DOR

‫ در ﺗﺴﺖ ﻗﺒﻠﻲ اﮔﺮ‬-40

‫‪ 292‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪.1‬‬ ‫‪S#‬‬ ‫‪S1‬‬ ‫‪S4‬‬

‫‪.2‬‬ ‫‪S#‬‬ ‫‪S1‬‬ ‫‪S2‬‬

‫‪.3‬‬ ‫‪P#‬‬ ‫‪P1‬‬ ‫‪P3‬‬

‫‪.4‬‬ ‫‪S#‬‬ ‫‪S1‬‬ ‫‪S2‬‬ ‫‪S3‬‬ ‫‪S4‬‬

‫‪ -41‬در ﺟﺒﺮ راﺑﻄﻪاي )‪ A−(A− B‬ﻣﻌﺎدل ﻛﺪام اﺳﺖ ؟‬ ‫‪.1‬‬

‫)‪A−(B− A‬‬

‫‪.2‬‬ ‫‪.3‬‬

‫‪A∩B‬‬ ‫)‪B−(B− A‬‬

‫‪3,2 .4‬‬ ‫ﭘﺎﺳﺦ ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪6‬‬ ‫‪ (4) -1‬ﭘﻴﻮﻧﺪ ﻃﺒﻴﻌﻲاﻳﻦ دو ﺟﺪول ﺑﻪ ﺻﻮرت زﻳﺮ ﻣﻲﺷﻮد‪:‬‬ ‫‪city‬‬

‫‪Sname‬‬

‫ﺗﻌﺪاد‬

‫‪P#‬‬

‫‪S#‬‬

‫ﺗﻬﺮان‬

‫ﻓﻦ آوران‬

‫‪300‬‬

‫‪P1‬‬

‫‪S1‬‬

‫ﺗﻬﺮان‬

‫ﻓﻦ آوران‬

‫‪200‬‬

‫‪P2‬‬

‫‪S1‬‬

‫ﺗﻬﺮان‬

‫ﻓﻦ آوران‬

‫‪400‬‬

‫‪P3‬‬

‫‪S1‬‬

‫ﺗﺒﺮﻳﺰ‬

‫اﻳﺮان ﻗﻄﻌﻪ‬

‫‪300‬‬

‫‪P1‬‬

‫‪S2‬‬

‫ﺗﺒﺮﻳﺰ‬

‫اﻳﺮان ﻗﻄﻌﻪ‬

‫‪400‬‬

‫‪P2‬‬

‫‪S2‬‬

‫ﺗﺒﺮﻳﺰ‬

‫ﭘﻮﻻدﻳﻦ‬

‫‪200‬‬

‫‪P2‬‬

‫‪S3‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪293‬‬

‫‪ (3) -2‬ﻣﻨﻈﻮر از ‪ INTERSECT‬ﻫﻤﺎن اﺷﺘﺮاك ∩ و ﻣﻨﻈﻮر از ‪ TIMES‬ﻫﻤﺎن ﺿﺮب‬ ‫دﻛﺎرﺗﻲ × ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ (2) -3‬ﻧﺘﻴﺠﻪ اﻟﺤﺎق دو ﺟﺪول داده ﺷﺪه ﺑﻪ ﺻﻮرت زﻳﺮ اﺳﺖ‪:‬‬ ‫‪SALARY‬‬ ‫‪40K‬‬ ‫‪42K‬‬ ‫‪30K‬‬ ‫‪35K‬‬

‫‪ENAME‬‬ ‫‪Lopez‬‬ ‫‪Cheng‬‬ ‫‪Finzi‬‬ ‫‪Saito‬‬

‫‪EMP#‬‬ ‫‪E1‬‬ ‫‪E2‬‬ ‫‪E3‬‬ ‫‪E4‬‬

‫‪BUDGET‬‬ ‫‪10M‬‬ ‫‪10M‬‬ ‫‪12M‬‬ ‫‪12M‬‬

‫‪DNAME‬‬ ‫‪Marketing‬‬ ‫‪Marketing‬‬ ‫‪Development‬‬ ‫‪Development‬‬

‫‪DEPT#‬‬ ‫‪D1‬‬ ‫‪D1‬‬ ‫‪D2‬‬ ‫‪D2‬‬

‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺟﺪول ﻓﻮق روﺷﻦ اﺳﺖ ﻛﻪ ﺳﺘﻮن ‪ 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‬از داﺧﻠﻲ ﺗﺮﻳﻦ ﭘﺮاﻧﺘﺰ دﺳﺘﻮرات را اﺟﺮاء ﻛﻨﻴﺪ‪.‬‬

‫‪ 294‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫ﺷﻤﺎره ﻗﻄﻌﺎت ﻗﺮﻣﺰ رﻧﮓ را ﻣﻲدﻫﺪ‪:‬‬

‫)‪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‬ﺧﺮوﺟﻲ ﺑﻪ ﺷﻜﻞ زﻳﺮ اﺳﺖ‪:‬‬

‫‪(2) -17‬‬

‫‪Budjet‬‬

‫‪D#‬‬

‫‪10‬‬ ‫‪20‬‬ ‫‪5‬‬

‫‪D1‬‬ ‫‪D2‬‬ ‫‪D3‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪295‬‬

‫‪ (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‬‬

‫‪ 296‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪(4) -28‬‬ ‫‪(3) -29‬‬ ‫‪(1) -30‬‬ ‫‪ X ∩ Y‬ﻳﻚ ﺳﻄﺮ و ‪ 4‬ﺳﺘﻮن ﺧﻮاﻫﺪ داﺷﺖ‪.‬‬ ‫‪ X-Y‬ﻧﻴﺰ ﻳﻚ ﺳﻄﺮ و ‪ 4‬ﺳﺘﻮن ﺧﻮاﻫﺪ داﺷﺖ‪.‬‬ ‫‪XUY‬‬ ‫ﺷﻬﺮ ﺗﻮﻟﺪ‬

‫ﻣﻌﺪل‬

‫ﺷﻤﺎره‬

‫ﻧﺎم‬

‫ﺗﻬﺮان‬

‫‪17‬‬

‫‪123‬‬

‫ﻋﻠﻲ‬

‫ﺗﻬﺮان‬

‫‪17‬‬

‫‪934‬‬

‫ﻣﺠﻴﺪ‬

‫ﺗﺒﺮﻳﺰ‬

‫‪15‬‬

‫‪574‬‬

‫ﺟﻮاد‬

‫ﺗﻬﺮان‪ ،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‬ﻧﺘﻴﺠﻪ ﭘﻴﻮﻧﺪ ﻃﺒﻴﻌﻲ ﺑﻪ ﺷﻜﻞ زﻳﺮ اﺳﺖ‪:‬‬ ‫‪Q‬‬ ‫‪x‬‬ ‫‪y‬‬ ‫‪z‬‬

‫‪P‬‬ ‫‪P1‬‬ ‫‪P2‬‬ ‫‪P3‬‬

‫‪N‬‬ ‫‪m‬‬ ‫‪n‬‬ ‫‪k‬‬

‫‪M‬‬ ‫‪a‬‬ ‫‪b‬‬ ‫‪c‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪297‬‬

‫‪ (1) -37‬در ﺟﺒﺮ راﺑﻄﻪاي ﻋﻤﻠﮕﺮ ‪ Join‬ﻳﺎ ﭘﻴﻮﻧﺪ را دارﻳﻢ‪ .‬ﻫﻤﭽﻨﻴﻦ ﻋﻤﻠﮕﺮ ﻫﺎي اﺷﺘﺮاك‬ ‫و اﺟﺘﻤﺎع و ﺗﻔﺎﺿﻞ )‪ Minus‬ﻳﺎ ‪ (Subtract‬را ﻧﻴﺰ دارﻳﻢ‪ .‬وﻟﻲ ﻋﻤﻠﮕﺮ ‪ Add‬ﻳﺎ ﺟﻤﻊ را‬ ‫ﻧﺪارﻳﻢ‪ .‬در اﻛﺜﺮ ﻧﺮماﻓﺰارﻫﺎي ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻋﻤﻠﮕﺮ ﺗﻔﺎﺿﻞ ﭘﻴﺎده ﺳﺎزي ﻧﺸﺪه اﺳﺖ وﻟﻲ‬ ‫ﻋﻤﻠﮕﺮ ﭘﻴﻮﻧﺪ در ﺗﻤﺎﻣﻲآﻧﻬﺎ وﺟﻮد دارد‪.‬‬ ‫‪ (1) -38‬دﺳﺘﻮر ‪ extend‬ﺑﺮاي اﺿﺎﻓﻪ ﻛﺮدن ﺳﺘﻮن ﺑﻪ ﻳﻚ ﺟﺪول اﺳﺘﻔﺎده ﻣﻲﺷﻮد‪.‬‬ ‫‪ (4) -39‬ﻳﻌﻨﻲ ﻛﺪام ‪ S#‬ﻫﺎ ﻫﻢ ‪ p2‬و ﻫﻢ ‪ p4‬را ﺗﻬﻴﻪ ﻛﺮدهاﻧﺪ‪.‬‬ ‫‪(2) -40‬‬ ‫‪(4) -41‬‬

‫ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪7‬‬ ‫‪ -1‬اﮔﺮ ‪ p‬و ‪ q‬ﻳﻚ و ف ﺑﺎﺷﻨﺪ ﻣﻌﺎدل ﻋﺒﺎرت زﻳﺮ ﻛﺪام اﺳﺖ ؟‬ ‫‪IF p THEN q END IF‬‬ ‫‪P AND (NOT q) .1‬‬ ‫‪IF NOT p then NOT q .2‬‬ ‫‪(NOT p) OR q .3‬‬

‫‪ .4‬ﻣﻌﺎدل ﻧﺪارد‪.‬‬ ‫‪ -2‬اﮔﺮ ‪ ST‬و ‪ CO‬و‪ STCO‬ﻣﺘﻐﻴﻴﺮﻫﺎي ﺗﺎﭘﻠﻲ راﺑﻄﻪﻫﺎي ‪ STT‬و ‪ COT‬و ‪STCOT‬‬

‫ﺑﺎﺷﻨﺪ آﻧﮕﺎه ﻋﺒﺎرت زﻳﺮ در ﺣﺴﺎب راﺑﻄﻪاي ﺗﺎﭘﻠﻲ ﭼﻪ ﻣﻲﻛﻨﺪ ؟‬ ‫‪ST(ST.STID=STCO.STID AND‬‬ ‫;)’‪STCO.COID=‘COM111‬‬

‫‪(ST.STID,ST.STDEG)WHERE EXISTS‬‬

‫‪ 298‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ .1‬ﺷﻤﺎره داﻧﺸﺠﻮﻳﻲ و دوره ﺗﺤﺼﻴﻠﻲ آﻧﻬﺎﻳﻲ ﻛﻪ درس ‪ COM111‬را اﻧﺘﺨﺎب‬ ‫ﻛﺮدهاﻧﺪ‪ ،‬ﻣﻲدﻫﺪ‪.‬‬ ‫‪ .2‬ﺷﻤﺎره داﻧﺸﺠﻮﻳﻲ و ﺷﻤﺎره درس اﻓﺮادي را ﻣﻲدﻫﺪ ﻛﻪ درس ‪ COM111‬را‬ ‫اﻧﺘﺨﺎب ﻛﺮدهاﻧﺪ‪.‬‬ ‫‪ .3‬ﺳﻄﺢ ﺗﺤﺼﻴﻠﻲ داﻧﺸﺠﻮﻳﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ درس ‪ COM111‬را اﻧﺘﺨﺎب ﻛﺮدهاﻧﺪ‪.‬‬ ‫‪ .4‬اﻳﻦ دﺳﺘﻮر ﻏﻠﻂ اﺳﺖ‪.‬‬ ‫‪ -3‬ﻛﺪام ﮔﺰﻳﻨﻪ در ﺣﺴﺎب راﺑﻄﻪاي ﺗﺎﭘﻠﻲ ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬ﻋﺒﺎرت ‪ ST.STID‬ﻣﺠﻤﻮﻋﻪ ﺗﻤﺎم ﺷﻤﺎره داﻧﺸﺠﻮﻳﺎن در راﺑﻄﻪ ‪ STT‬را ﻣﻲدﻫﺪ‪.‬‬ ‫‪ .2‬ﻋﺒﺎرت ‪ ST‬ﻋﻨﻮان ﺟﺪول ‪ ST‬را ﻣﻲدﻫﺪ‪.‬‬ ‫‪ .3‬ﻋﺒﺎرت )‪ (STCO.STID,STCO.GRADE‬ﺷﻤﺎره داﻧﺸﺠﻮﻳﺎن و ﻧﻤﺮه آﻧﻬﺎ از‬ ‫راﺑﻄﻪ ‪ STCOT‬را ﻣﻲدﻫﺪ‪.‬‬ ‫‪ .4‬ﻋﺒﺎرت ;'‪ (CO.COID AS CONUM)WHERE COTYPE='P‬ﺷﻤﺎره‬ ‫درﺳﻬﺎي ﻋﻤﻠﻲ ) ﻋﻤﻠﻲ = '‪ ( 'P‬از راﺑﻄﻪ ‪ COT‬را ﻣﻲدﻫﺪ‪.‬‬ ‫‪ -4‬ﻛﺪام دﺳﺘﻮر در ﺣﺴﺎب راﺑﻄﻪاي ﺗﺎﭘﻠﻲ ﻋﻨﻮان درﺳﻬﺎﻳﻲ را ﻣﻲدﻫﺪ ﻛﻪ داﻧﺸﺠﻮ ﺑﺎ‬ ‫ﺷﻤﺎره ‪ 1234‬اﻧﺘﺨﺎب ﻛﺮده اﺳﺖ ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬

‫‪COTITLE WHERE EXISTS STCO (STCO.COID=CO.COID AND‬‬ ‫;)'‪STCO.STID='1234‬‬ ‫;'‪COTITLE WHERE STCO.STID='1234‬‬ ‫‪COTITLE WHERE STCO.COID=CO.COID AND STCO‬‬ ‫;'‪.STID='1234‬‬

‫‪ .4‬ﻫﻴﭽﻜﺪام‬ ‫‪ -5‬ﻛﺪام ﻋﺒﺎرت در ﺣﺴﺎب راﺑﻄﻪاي ﺗﺎﭘﻠﻲ ﺷﻤﺎره و ﻧﺎم درﺳﻬﺎي دو واﺣﺪي را ﻣﻲدﻫﺪ ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫;'‪CO.COID,CO.COTITLE WHERE EXISTS CO.CREDIT='2‬‬ ‫;'‪CO.COID,CO.COTITLE WHERE CO.CREDIT='2‬‬ ‫;‪CO.CREDIT='2' FORALL WHERE CO. COID,CO.COTITLE‬‬ ‫;'‪CO.COID,CO.COTITLE FORALLWHERE CO.CREDIT='2‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪299‬‬

‫‪ -6‬ﻋﺒﺎرت زﻳﺮ در ﺣﺴﺎب راﺑﻄﻪاي ﺗﺎﭘﻠﻲ ﻧﺎم داﻧﺸﺠﻮﻳﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺣﺪاﻗﻞ ﻳﻚ‬ ‫درس ﻋﻤﻠﻲ را اﻧﺘﺨﺎب ﻛﺮده ﺑﺎﺷﻨﺪ‪ .‬ﻛﺪام ﮔﺰﻳﻨﻪ ﻓﺮم ﻣﻌﺎدل ﭘﻴﺸﻮﻧﺪي )‪ (Prenex‬آن‬ ‫اﺳﺖ؟‬ ‫‪ST.STNAME WHERE EXISTS STCO (ST.STID=STCO.STID AND‬‬ ‫;))'‪EXISTS CO (CO.COID = STCO.COID AND CO.COTYPE='P‬‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬

‫‪ST.STNAME EXISTS WHERE (ST.STID=STID AND CO.COID‬‬ ‫;)'‪=STCO.COID AND CO.COTYPE='P‬‬ ‫‪ST.STNAME‬‬ ‫‪WHERE‬‬ ‫‪NOT‬‬ ‫‪FORALL‬‬ ‫‪STCO(ST.STID=STCO.STID AND CO(CO.COID=STCO.COID‬‬ ‫;))'‪AND CO.COTYPE='P‬‬ ‫=‪ST.STNAME WHERE EXISTS STCO (EXISTS CO (ST.STID‬‬ ‫‪STCO.STID‬‬ ‫‪AND‬‬ ‫‪CO.‬‬ ‫‪COID=STCO.COID‬‬ ‫‪AND‬‬ ‫;))'‪CO.COTYPE='P‬‬

‫‪ .4‬ﻫﻴﭽﻜﺪام‬ ‫‪ -7‬ﺧﺮوﺟﻲ ﻋﺒﺎرت زﻳﺮ در ﺣﺴﺎب راﺑﻄﻪاي ﺗﺎﭘﻠﻲ ﭼﻴﺴﺖ ؟‬ ‫‪ST.STNAME WHERE NOT EXISTS STCO (STCO.STID=ST.STID AND‬‬ ‫)'‪STCO.COID='COM333‬‬ ‫‪ .1‬اﺳﺎﻣﻲداﻧﺸﺠﻮﻳﺎﻧﻲ ﻛﻪ درس ﺷﻤﺎره ‪ COM333‬را اﻧﺘﺨﺎب ﻧﻜﺮدهاﻧﺪ و ﺷﻤﺎره‬

‫آﻧﻬﺎ در ﺟﺪول ‪ STCOT‬ﻧﻴﺴﺖ‪.‬‬ ‫‪ .2‬اﺳﺎﻣﻲو ﺷﻤﺎره داﻧﺸﺠﻮﻳﺎﻧﻲ ﻛﻪ درس ﺷﻤﺎره ‪ COM333‬را اﻧﺘﺨﺎب ﻛﺮدهاﻧﺪ‪.‬‬ ‫‪ .3‬اﺳﺎﻣﻲداﻧﺸﺠﻮﻳﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ درس ﺷﻤﺎره ‪ COM333‬را اﻧﺘﺨﺎب ﻧﻜﺮدهاﻧﺪ‪.‬‬ ‫‪ .4‬ﺗﻤﺎﻣﻲاﺳﺎﻣﻲداﻧﺸﺠﻮﻳﺎﻧﻲ ﻛﻪ درس ﺷﻤﺎره ‪ COM333‬را اﻧﺘﺨﺎب ﻛﺮدهاﻧﺪ‪.‬‬ ‫‪ -8‬ﻋﺒﺎرت زﻳﺮ در ﺣﺴﺎب راﺑﻄﻪاي ﺗﺎﭘﻠﻲ ﭼﻪ ﻣﻲﻛﻨﺪ ؟ )‪ bs‬ﻳﻌﻨﻲ دوره ﻛﺎرﺷﻨﺎﺳﻲ(‬ ‫‪CO.COTITLE WHERE FORALL ST (EXISTS‬‬ ‫‪STCO(STCO.STID=ST.STID AND STCO.COID=CO.COID AND‬‬ ‫;))'‪ST.STDEG='bs‬‬

‫‪ .1‬اﻳﻦ ﻋﺒﺎرت ﻧﺎدرﺳﺖ اﺳﺖ واﻳﺮاد دارد‪.‬‬ ‫‪ .2‬ﻋﻨﻮان درﺳﻬﺎﻳﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺗﻤﺎم داﻧﺸﺠﻮﻳﺎن دوره ﻛﺎرﺷﻨﺎﺳﻲ ﻛﻪ ﺷﻤﺎرهﻫﺎي‬ ‫ﻳﻜﺴﺎن دارﻧﺪ آﻧﻬﺎ را اﻧﺘﺨﺎب ﻛﺮده ﺑﺎﺷﻨﺪ‪.‬‬

‫‪ 300‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ .3‬ﺷﻤﺎره درس و ﺷﻤﺎره داﻧﺸﺠﻮﻳﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺗﻤﺎم درﺳﻬﺎي ﻛﺎرﺷﻨﺎﺳﻲ را‬ ‫ﮔﺬراﻧﺪه ﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ .4‬ﻋﻨﻮان درﺳﻬﺎﻳﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺗﻤﺎم داﻧﺸﺠﻮﻳﺎن دوره ﻛﺎرﺷﻨﺎﺳﻲ آﻧﻬﺎ را اﻧﺘﺨﺎب‬ ‫ﻛﺮده ﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ -9‬اﮔﺮ ﻣﺘﻐﻴﺮ ﻣﻴﺪاﻧﻲ ‪ CO‬ﺑﺮ روي ﻓﻴﻠﺪ ‪ COID‬ﺗﻌﺮﻳﻒ ﺷﺪه ﺑﺎﺷﺪ‪ ،‬در ﺣﺴﺎب راﺑﻄﻪاي‬ ‫ﻣﻴﺪاﻧﻲ دﺳﺘﻮر زﻳﺮ ﭼﻪ ﻣﻲﻛﻨﺪ ؟‬ ‫;)'‪CO WHERE COT (COID: CO,CODEID:'D111‬‬

‫‪ .1‬ﺷﻤﺎره درﺳﻬﺎي ﮔﺮوه آﻣﻮزﺷﻲ '‪ 'D111‬را ﻣﻲدﻫﺪ‪.‬‬ ‫‪ .2‬ﺷﻤﺎره درﺳﻬﺎ و ﺷﻤﺎره ﮔﺮوه آﻣﻮزﺷﻲ درﺳﻬﺎﻳﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺷﻤﺎره آﻧﻬﺎ‬ ‫‪ D111‬ﺑﺎﺷﺪ‪.‬‬ ‫‪ .3‬ﮔﺮوه آﻣﻮزﺷﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺷﻤﺎره درس آن ‪ D111‬ﺑﺎﺷﺪ‪.‬‬ ‫‪ .4‬ﺗﻤﺎم ﮔﺮوهﻫﺎﻳﻲ را ﻣﻲدﻫﺪ ﻛﻪ درس ‪ D111‬را اراﺋﻪ ﻛﺮدهاﻧﺪ‪.‬‬ ‫‪ -10‬اﮔﺮ ﻣﺘﻐﻴﺮ ﻣﻴﺪاﻧﻲ ‪ CO‬ﺑﺮ روي ﻓﻴﻠﺪ ‪ COID‬و ﻣﺘﻐﻴﺮ ﻣﻴﺪاﻧﻲ ‪ ST‬ﺑﺮ روي ﻓﻴﻠﺪ ‪STID‬‬

‫و ﻣﺘﻐﻴﺮ ‪ CRED‬ﺑﺮ روي ﻓﻴﻠﺪ ‪ CREDIT‬ﺗﻌﺮﻳﻒ ﺷﺪه ﺑﺎﺷﻨﺪ ﻛﺪام ﮔﺰﻳﻨﻪ در ﺣﺴﺎب‬ ‫راﺑﻄﻪاي ﻣﻴﺪاﻧﻲ ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬ﻋﺒﺎرت ‪ CO‬ﻣﺠﻤﻮﻋﻪ ﺷﻤﺎره ﻫﻤﻪ درﺳﻬﺎ را ﻧﺸﺎن ﻣﻲدﻫﺪ‪.‬‬ ‫‪ .2‬ﻋﺒﺎرت ) ‪ ST WHERE STT (STID: ST‬ﻣﺠﻤﻮﻋﻪ ﺷﻤﺎره داﻧﺸﺠﻮﻳﺎن ﻣﻮﺟﻮد‬ ‫در راﺑﻄﻪ ‪ STT‬را ﻧﺸﺎن ﻣﻲدﻫﺪ‪.‬‬ ‫‪ .3‬دﺳﺘﻮر زﻳﺮ ﺷﻤﺎره درﺳﻬﺎي ﻳﻚ واﺣﺪي از ﮔﺮوه آﻣﻮزﺷﻲ ‪ D222‬را ﻣﻲدﻫﺪ‪:‬‬ ‫‪CO WHERE EXISTS CRED (CRED='1' AND COT (COID:‬‬ ‫)'‪CO,CREDIT:CRED,CODEID='D222‬‬

‫‪ .4‬ﻫﻴﭽﻜﺪام‬ ‫‪ -11‬دﺳﺘﻮر زﻳﺮ در ﺣﺴﺎب راﺑﻄﻪاي ﻣﻴﺪاﻧﻲ ﭼﻪ ﻣﻲﻛﻨﺪ ؟‬ ‫‪STNAM WHERE EXISTS ST (STT(STID:ST,STNAME:STNAM) AND‬‬ ‫))'‪NOT STCOT (STID: ST,COID:'COM333‬‬ ‫‪ .1‬ﻧﺎم داﻧﺸﺠﻮﻳﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ درس ‪ COM333‬را اﻧﺘﺨﺎب ﻧﻜﺮدهاﻧﺪ‪.‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪301‬‬

‫‪ .2‬ﻧﺎم داﻧﺸﺠﻮﻳﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ از درس ‪ COM333‬اﻓﺘﺎدهاﻧﺪ‪.‬‬ ‫‪ .3‬ﻣﺸﺨﺼﺎت داﻧﺸﺠﻮﻳﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺣﺪاﻗﻞ درس ‪ COM333‬را اﻧﺘﺨﺎب‬ ‫ﻛﺮدهاﻧﺪ‪.‬‬ ‫‪ .4‬ﻧﺎم داﻧﺸﺠﻮﻳﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺗﻤﺎم درﺳﻬﺎي ﻫﻢ ﮔﺮوه ﺑﺎ ‪ COM333‬را اﻧﺘﺨﺎب‬ ‫ﻧﻜﺮدهاﻧﺪ‪.‬‬ ‫‪ -12‬ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬ﻗﺪرت ﺟﺒﺮ راﺑﻄﻪاي ﺑﺎ ﺣﺴﺎب راﺑﻄﻪاي ﻳﻜﺴﺎن اﺳﺖ‪.‬‬ ‫‪ .2‬ﺣﺴﺎب راﺑﻄﻪاي ﺑﺎ ﺣﺴﺎب راﺑﻄﻪ ي ﺗﺎﭘﻠﻲ از ﻗﺪرت ﻣﺤﺎﺳﺒﺎﺗﻲ ﻣﺴﺎوي‬ ‫ﺑﺮﺧﻮردارﻧﺪ‪.‬‬ ‫‪ .3‬ﺣﺴﺎب راﺑﻄﻪاي ﻣﺒﺘﻨﻲ ﺑﺮ ﺷﺎﺧﻪاي از زﻳﺎﺿﻴﺎت ﺑﻪ ﻧﺎم ‪Predicate calculus‬‬

‫ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ .4‬ﺟﺒﺮ راﺑﻄﻪاي ﺗﻮﺻﻴﻔﻲ اﺳﺖ در ﺣﺎﻟﻲ ﻛﻪ ﺣﺴﺎب راﺑﻄﻪاي دﺳﺘﻮري اﺳﺖ‪.‬‬

‫ﭘﺎﺳﺦ ﺗﺴﺘﻬﺎي ﺳﺮي ‪7‬‬ ‫‪ (3) -1‬در رﻳﺎﺿﻴﺎت ﻣﻲداﻧﻴﻢ ﻛﻪ ‪p→ q = NOT p OR q‬‬

‫‪(1) -2‬‬ ‫‪ (2) -3‬ﻋﺒﺎرت ‪ ST‬ﺗﻤﺎم راﺑﻄﻪ ‪ STT‬را ﻣﻲدﻫﺪ‪) .‬ﺗﻤﺎم ﺗﺎﭘﻠﻬﺎي آن را(‬ ‫‪(1) -4‬‬ ‫‪ (2) -5‬ﺗﻮﺟﻪ ﻛﻨﻴﺪ ﻛﻪ وﻗﺘﻲ اﻃﻼﻋﺎت ﻓﻘﻂ در ﻳﻚ ﺟﺪول اﺳﺖ از ﺳﻮرﻫﺎي ‪ EXISTS‬ﻳﺎ‬ ‫‪ FORALL‬اﺳﺘﻔﺎده ﻧﻤﻲﺷﻮد‪.‬‬ ‫‪(3) -6‬‬

‫‪ 302‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪(3) -7‬‬ ‫‪(4) -8‬‬ ‫‪(1) -9‬‬ ‫‪(4) -10‬‬ ‫‪(1) -11‬‬ ‫‪ (4) -12‬ﺣﺴﺎب راﺑﻄﻪاي ﺗﻮﺻﻴﻔﻲ ﻳﺎ ﻧﺎروﻳﻪاي اﺳﺖ وﻟﻲ ﺟﺒﺮ راﺑﻄﻪاي دﺳﺘﻮري ﻳﺎ‬ ‫روﻳﻪاي اﺳﺖ‪.‬‬

‫ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪8‬‬ ‫‪ SQL -1‬ﭼﻴﺴﺖ ؟‬ ‫‪ .1‬ﻳﻚ زﺑﺎن ﻗﻮي اﺳﺖ ﺑﺮاياﻳﺠﺎد و دﺳﺘﺮﺳﻲ ﺑﻪ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ‬ ‫‪ .2‬ﻳﻚ ﺑﺮﻧﺎﻣﻪ ﻛﺎرﺑﺮدي اﺳﺖ ﻛﻪ از ‪ DBMS‬ﻓﺮﻣﺎن ﻣﻲﮔﻴﺮد‪.‬‬ ‫‪ .3‬ﻗﺴﻤﺘﻲ از ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ اﺳﺖ و ﻣﺨﺼﻮص دﺳﺘﻜﺎري دادهﻫﺎ ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ DDL .4‬و ‪ DML‬روي ﻫﻢ ‪ SQL‬را ﻣﻲﺳﺎزﻧﺪ‪.‬‬ ‫‪ -2‬ﻛﺪام دﺳﺘﻮر ‪ SQL‬ﻧﻤﻲﺗﻮاﻧﺪ ﺑﺎﻋﺚ ﺑﻪ وﺟﻮد آﻣﺪن ﻧﺎﺳﺎزﮔﺎري در دادهﻫﺎ ﺷﻮد ؟‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪303‬‬

‫‪INSERT‬‬ ‫‪DELETE‬‬ ‫‪UPDATE‬‬ ‫‪SELECT‬‬

‫‪ -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‬‬

‫‪ 304‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬ ‫‪Where S. S# = SP.S# AND SP.P# = P.P#‬‬

‫‪ .4‬ﻫﻴﭽﻜﺪام‬ ‫‪ -5‬ﻣﻨﻈﻮر از ‪ SQL‬ﭼﻴﺴﺖ ؟‬ ‫‪ .1‬زﺑﺎن ﭘﺮس و ﺟﻮي ﺳﺎﺧﺖ ﻳﺎﻓﺘﻪ اﺳﺖ‪.‬‬ ‫‪ .2‬زﺑﺎن ﻓﺮﻋﻲ دادهاي اﺳﺖ‪.‬‬ ‫‪ .3‬زﺑﺎن دادهاي ﻣﺴﺘﻘﻞ اﺳﺖ‪.‬‬ ‫‪ .4‬ﻫﻤﺎن زﺑﺎن ﻣﻴﺰﺑﺎن اﺳﺖ‪.‬‬ ‫‪ -6‬دﺳﺘﻮر ﻣﻘﺎﺑﻞ ﻧﺎم ﭼﻪ اﻓﺮادي را ﭼﺎپ ﻣﻲﻛﻨﺪ ؟‬ ‫‪Select name‬‬ ‫‪From T‬‬ ‫"‪%‬رﺿﺎ ‪where name like"%‬‬

‫) ﻓﺮض ﻛﻨﻴﺪ ‪ T‬ﺟﺪوﻟﻲ اﺳﺖ ﻛﻪ ﻳﻜﻲ از ﺳﺘﻮن ﻫﺎي آن ﻧﺎم )‪ ( name‬ﻣﻲﺑﺎﺷﺪ‪( .‬‬ ‫‪ .1‬اﻓﺮادي را ﭼﺎپ ﻣﻲﻛﻨﺪ ﻛﻪ ))رﺿﺎ(( در ﻧﺎم آﻧﻬﺎ آﻣﺪه اﺳﺖ‪.‬‬ ‫‪ .2‬اﻓﺮادي را ﻛﻪ اﺳﻢ آﻧﻬﺎ ))رﺿﺎ(( ﺑﺎﺷﻨﺪ ﭼﺎپ ﻣﻲﻛﻨﺪ‪.‬‬ ‫‪ .3‬اﻓﺮادي را ﻛﻪ اﺳﻢ ﻓﺎﻣﻴﻞ آﻧﻬﺎ ))رﺿﺎ(( اﺳﺖ ﻓﻘﻂ ﭼﺎپ ﻣﻲﻛﻨﺪ‪.‬‬ ‫‪ .4‬اﻓﺮادي را ﻛﻪ اﺳﻢ ﻳﺎ اﺳﻢ ﻓﺎﻣﻴﻞ آﻧﻬﺎ ))رﺿﺎ(( اﺳﺖ ﭼﺎپ ﻣﻲﻛﻨﺪ‪.‬‬ ‫‪ -7‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ دو ﺟﺪول ‪ S‬و ‪ T‬ﻛﺪام دﺳﺘﻮر ﺑﺎﻋﺚ ﻧﻤﺎﻳﺶ ﺧﺮوﺟﻲ زﻳﺮ ﻣﻲﺷﻮد ؟‬ ‫ﺧﺮوﺟﻲ‬

‫‪:‬‬

‫‪Name‬‬

‫‪T: Name‬‬

‫‪S:Name‬‬

‫‪Able‬‬

‫‪Able‬‬

‫‪Able‬‬

‫‪Charlie‬‬

‫‪Baker‬‬

‫‪Bravo‬‬

‫‪Exitor‬‬

‫‪Charlie‬‬

‫‪Charlie‬‬

‫‪Goober‬‬

‫‪Exitor‬‬

‫‪Decon‬‬

‫‪Falconer‬‬

‫‪Exitor‬‬

‫‪Fuber‬‬

‫‪Goober‬‬

‫‪Goobar‬‬

‫‪.1‬‬ ‫‪.2‬‬

‫; ‪Select * From S union select * From T‬‬ ‫; ‪Select * From S Minus select * From T‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪305‬‬

‫; ‪Select * From S,T where S.Name = T.name‬‬ ‫; ‪Select * From S Intersect select * From T‬‬

‫‪ -8‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ دو ﺟﺪول ‪ S‬و ‪ T‬ﻛﺪام دﺳﺘﻮر ﺧﺮوﺟﻲ زﻳﺮ را ﻣﻲدﻫﺪ ؟‬ ‫ﺧﺮوﺟﻲ‬

‫‪:‬‬

‫‪Name‬‬

‫‪T: Name‬‬

‫‪S:Name‬‬

‫‪Bravo‬‬

‫‪Able‬‬

‫‪Able‬‬

‫‪Decon‬‬

‫‪Baker‬‬

‫‪Bravo‬‬

‫‪Charlie‬‬

‫‪Charlie‬‬

‫‪Dean‬‬

‫‪Decon‬‬

‫‪Exitor‬‬

‫‪Exitor‬‬

‫‪Falconer‬‬

‫‪Goober‬‬

‫‪Fuber‬‬ ‫‪Goobar‬‬

‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫; ‪* From S‬‬ ‫; ‪* From S‬‬ ‫; ‪* From T‬‬ ‫; ‪* From S‬‬

‫‪Select * From T Intersect select‬‬ ‫‪Select * From T Minus select‬‬ ‫‪Select * From S Minus select‬‬ ‫‪Select * From T Union select‬‬

‫‪ -9‬در ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﻋﺮﺿﻪ ﻛﻨﻨﺪﮔﺎن و ﻗﻄﻌﺎت ﻧﺘﻴﺠﻪ ﻧﻬﺎﻳﻲ دﺳﺘﻮر ﺷﺒﻪ ‪ SQL‬زﻳﺮ‬ ‫ﭼﻴﺴﺖ؟‬ ‫‪CREATE VIEW V AS‬‬ ‫; }‪((S JOIN SP) where P# = 'P2') {S# , city‬‬ ‫; }‪Result: = ( V where city = 'london') {s#‬‬

‫‪ .1‬ﺷﻤﺎره ﻋﺮﺿﻪ ﻛﻨﻨﺪه را ﺑﺮاي ﻋﺮﺿﻪ ﻛﻨﻨﺪﮔﺎن ﻟﻨﺪن ﻛﻪ ﻗﻄﻌﻪ ‪ P2‬را ﺗﻮﻟﻴﺪ‬ ‫ﻣﻲﻛﻨﻨﺪ‪ ،‬ﻣﻲدﻫﺪ‪.‬‬ ‫‪ .2‬ﺷﻤﺎره ﻋﺮﺿﻪ ﻛﻨﻨﺪه را ﺑﺮاي ﻋﺮﺿﻪ ﻛﻨﻨﺪﮔﺎن ﺳﺎﻛﻦ ﺷﻬﺮ ﻟﻨﺪن‪ ،‬ﻣﻲدﻫﺪ‪.‬‬ ‫‪ .3‬ﺷﻤﺎره ﻋﺮﺿﻪ ﻛﻨﻨﺪه را ﺑﺮاي ﻋﺮﺿﻪ ﻛﻨﻨﺪﮔﺎن ﺗﻮﻟﻴﺪ ﻛﻨﻨﺪه ﻗﻄﻌﻪ ‪ ،P2‬ﻣﻲدﻫﺪ‪.‬‬ ‫‪ .4‬ﺷﻬﺮ و ﺷﻤﺎره ﻋﺮﺿﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﻗﻄﻌﻪ اﻧﺒﺎر ﺷﺪه در ﺷﻬﺮ ﻟﻨﺪن را‬ ‫ﺗﻮﻟﻴﺪ ﻛﺮدهاﻧﺪ‪.‬‬ ‫‪ -10‬دﺳﺘﻮر روﺑﺮو در ‪ SQL‬ﭼﻪ ﻣﻲﻛﻨﺪ ؟‬ ‫* ‪Select‬‬ ‫‪From SP‬‬

‫‪ 306‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ .1‬ﺗﻤﺎم ﺟﺪول ‪ SP‬را ﭼﺎپ ﻣﻲﻛﻨﺪ‪.‬‬ ‫‪ .2‬اﻳﻦ دﺳﺘﻮر ﻏﻠﻂ اﺳﺖ ﭼﻮن ﻗﺴﻤﺖ ‪ where‬ﻧﺪارد‪.‬‬ ‫‪ .3‬ﻧﺎم ﺗﻤﺎم ﻓﻴﻠﺪﻫﺎي ﺟﺪول ‪ SP‬را ﭼﺎپ ﻣﻲﻛﻨﺪ‪.‬‬ ‫‪ .4‬ﻛﻞ اﻃﻼﻋﺎت ﺳﺘﻮن ﻫﺎي اول و آﺧﺮ ﺟﺪول را ﭼﺎپ ﻣﻲﻛﻨﺪ‪.‬‬ ‫‪ -11‬دﺳﺘﻮر زﻳﺮ ﭼﻪ ﻣﻲﻛﻨﺪ ؟‬ ‫‪Select S.*, P. * from S, P‬‬

‫‪ .1‬ﺗﻤﺎم ﺳﻄﺮﻫﺎ و ﺳﺘﻮﻧﻬﺎي دو ﺟﺪول ‪ S‬و ‪ P‬را زﻳﺮ ﻫﻢ ﭼﺎپ ﻣﻲﻛﻨﺪ‪.‬‬ ‫‪ .2‬دو ﺟﺪول ‪ S‬و ‪ P‬را ﺑﻪ ﻃﻮر ﻛﺎﻣﻞ ﻛﻨﺎر ﻫﻢ ﭼﺎپ ﻣﻲﻛﻨﺪ‪.‬‬ ‫‪ .3‬ﺿﺮب ﻛﺎرﺗﺰﻳﻦ دو ﺟﺪول ‪ S‬و ‪ P‬را ﻣﻲدﻫﺪ‪.‬‬ ‫‪ .4‬ﭘﻴﻮﻧﺪ ﻃﺒﻴﻌﻲ دو ﺟﺪول ‪ S‬و ‪ P‬را ﻣﻲدﻫﺪ‪.‬‬ ‫‪ -12‬دﺳﺘﻮر زﻳﺮ ﭼﻪ ﻣﻲﻛﻨﺪ ؟‬ ‫‪Select S# from S‬‬ ‫)‪Where city = (select city from S where S# = S1‬‬ ‫‪ .1‬ﺷﻤﺎره ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺗﻬﻴﻪ ﻛﻨﻨﺪه ‪ S1‬ﻗﻄﻌﺎت ﺧﻮد را در آن اﻧﺒﺎر‬

‫ﻛﺮده اﺳﺖ‪.‬‬ ‫‪ .2‬ﺷﻤﺎره ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ در ﻫﻤﺎن ﺷﻬﺮي ﺳﺎﻛﻦ ﺑﺎﺷﻨﺪ ﻛﻪ ‪ S1‬ﺳﺎﻛﻦ‬ ‫اﺳﺖ‪.‬‬ ‫‪ .3‬اﻳﻦ ﻃﺮز ﻧﻮﺷﺘﻦ اﺻﻼً در ‪ SQL‬ﻗﺎﺑﻞ ﻗﺒﻮل ﻧﻴﺴﺖ‪.‬‬ ‫‪ .4‬ﺷﻬﺮ ﻫﺎﻳﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺗﻬﻴﻪ ﻛﻨﻨﺪه ‪ S1‬در آن ﺟﺎ ﺷﻌﺒﻪ دارد‪.‬‬ ‫‪ -13‬ﺑﺎ ﻛﺪام دﺳﺘﻮر ‪ SQL‬زﻳﺮ ﻣﻲﺗﻮان ﻃﻮل ﻓﻴﻠﺪ رﺷﺘﻪاي را از ‪ 30‬ﺑﻪ ‪ 40‬اﻓﺰاﻳﺶ داد ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬

‫…‪Alter table … Modify‬‬ ‫… ‪Alter table … Add‬‬ ‫…‪Alter table … Replace‬‬

‫‪ .4‬اﻳﻨﻜﺎر ﺑﺎاﻳﻦ دﺳﺘﻮر اﻣﻜﺎن ﭘﺬﻳﺮ ﻧﻤﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ -14‬اﮔﺮ ‪ teacher‬ﻧﺎم ﺟﺪول ﻣﺸﺨﺼﺎت اﺳﺎﺗﻴﺪ و ‪ Sec‬ﺟﺪول ﮔﺮوه درس ) ﺷﺎﻣﻞ‬ ‫ﻓﻴﻠﺪﻫﺎي ﺷﻤﺎره درس‪ ،‬ﺷﻤﺎره داﻧﺸﺠﻮ‪ ،‬ﻧﺎم اﺳﺘﺎد و ﻧﻤﺮه ( و ﻧﻴﺰ ‪ tname‬ﻧﺎم اﺳﺘﺎد ﺑﺎﺷﺪ‪،‬‬ ‫آﻧﮕﺎه دﺳﺘﻮر ‪ SQL‬زﻳﺮ ﭼﻪ ﻣﻲﻛﻨﺪ ؟‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪307‬‬

‫‪Select * from teacher where tname in‬‬ ‫‪( select tname from sec where score = 10 And tname‬‬ ‫;)) " ﺑﻬﺘﺎش "و "اﻣﻴﺮي "( ‪not in‬‬

‫‪ .1‬ﻣﺸﺨﺼﺎت اﺳﺎﺗﻴﺪ اﻣﻴﺮي و ﺑﻬﺘﺎش ﻛﻪ ﻧﻤﺮه ‪ 10‬ﻧﺪادهاﻧﺪ را ﻣﻲدﻫﺪ‪.‬‬ ‫‪ .2‬ﻣﺸﺨﺼﺎت اﺳﺎﺗﻴﺪي را ﻣﻲدﻫﺪ ﻛﻪ داﻧﺸﺠﻮﻳﺎن آﻧﻬﺎ از ﺗﻤﺎم دروس ‪ 10‬ﮔﺮﻓﺘﻪاﻧﺪ‬ ‫) ﺑﻪ ﺟﺰ ﺑﻬﺘﺎش و اﻣﻴﺮي (‬ ‫‪ .3‬ﻣﺸﺨﺼﺎت اﺳﺎﺗﻴﺪي ﺑﻪ ﺟﺰ اﻣﻴﺮي و ﺑﻬﺘﺎش ﻛﻪ ﻧﻤﺮه ‪ 10‬دادهاﻧﺪ را ﻧﻤﺎﻳﺶ‬ ‫ﻣﻲدﻫﺪ‪.‬‬ ‫‪ .4‬ﻣﺸﺨﺼﺎت اﺳﺎﺗﻴﺪي را ﻣﻲدﻫﺪ ﻛﻪ ﺑﻪ داﻧﺸﺠﻮﻳﺎﻧﻲ درس دادهاﻧﺪ ﻛﻪ ﻧﻤﺮه ‪10‬‬ ‫ﮔﺮﻓﺘﻪاﻧﺪ وﻟﻲ ﺟﺰو ﺷﺎﮔﺮدان ﺑﻬﺘﺎش و اﻣﻴﺮي ﻧﻤﻲﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ -15‬ﻛﺪام ﮔﺰﻳﻨﻪ درﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬در ‪ SQL‬ﺑﺮاي اﻧﺠﺎم ﻳﻚ ﻋﻤﻞ راه ﺣﻞ ﻫﺎي ﻣﺘﻌﺪدي وﺟﻮد دارد واﻳﻦ ﻳﻜﻲ از‬ ‫ﻣﻬﻤﺘﺮﻳﻦ ﻣﺰاﻳﺎي ‪ SQL‬اﺳﺖ‪.‬‬ ‫‪ .2‬ﻫﺮﮔﺎه ﭘﺮس و ﺟﻮﺋﻲ را در ‪ SQL‬ﻫﻢ ﺑﺘﻮان ﺑﺎ ﭘﻴﻮﻧﺪ ﺟﺪاول اﻧﺠﺎم داد و ﻫﻢ ﺑﺎ‬ ‫‪ Select‬ﻣﺘﺪاﺧﻞ ﺑﺮاي ﺑﺎﻻﺑﺮدن ﻛﺎراﻳﻲ ﺑﻬﺘﺮ اﺳﺖ از ‪ Select‬ﻣﺘﺪاﺧﻞ اﺳﺘﻔﺎده‬ ‫ﻛﻨﻴﻢ‪.‬‬ ‫‪ .3‬در ‪ SQL‬ﺗﺎﺑﻊ )*( ‪ Count‬ﺳﻄﺮﻫﺎي ‪ NULL‬را ﻧﻤﻲﺷﻤﺎرد‪.‬‬ ‫‪ .4‬در دﺳﺘﻮر ‪ select‬ﺑﻪ ﺟﺎي ‪ between‬ﻣﻲﺗﻮان از ‪ AND‬و ﺑﻪ ﺟﺎي ‪ IN‬ﻣﻲﺗﻮان از‬ ‫‪ OR‬اﺳﺘﻔﺎده ﻛﺮد‪.‬‬ ‫‪ -16‬ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ SQL .1‬ﻳﻚ زﺑﺎن ﻣﺒﺪل اﺳﺖ ﻳﻌﻨﻲ ﻳﻚ ﻳﻪ ﭼﻨﺪ راﺑﻄﻪ را ﺑﻪ ﻋﻨﻮان ورودي ﻗﺒﻮل‬ ‫ﻣﻲﻛﻨﺪ و ﻧﺘﻴﺠﻪ ﻋﻤﻠﻴﺎت روي آﻧﻬﺎ ﻫﻤﻮاره ﻳﻚ راﺑﻄﻪ اﺳﺖ‪.‬‬ ‫‪ .2‬ﺟﺒﺮ راﺑﻄﻪاي ﺧﺎﺻﻴﺖ ))ﺑﺴﺘﻪ ﺑﻮدن(( دارد‪ .‬ﻳﻌﻨﻲ ﻋﻤﻠﻮﻧﺪ ﻫﺎ راﺑﻄﻪ اﺳﺖ و‬ ‫ﻧﺘﻴﺠﻪ ﻧﻴﺰ راﺑﻄﻪ ﻣﻲﺑﺎﺷﺪ‪.‬‬

‫‪ 308‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ .3‬ﺑﻪ ﺧﺎﻃﺮ ﺑﺴﺘﻪ ﺑﻮدن ‪ SQL‬و ﺟﺒﺮ راﺑﻄﻪاي ﻣﻲﺗﻮان ﻣﺤﺎﺳﺒﺎت ﺗﻮدرﺗﻮ در ﻫﺮ دو‬ ‫داﺷﺖ‪.‬‬ ‫‪ SQL .4‬ﻳﻚ زﺑﺎن ‪ procedural‬ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ -17‬ﻛﺪاﻣﻴﻚ از زﺑﺎن ﻫﺎي ﻧﺴﻞ زﻳﺮ‪ ،‬در ﺟﻬﺖ ﺗﻘﻠﻴﺪ زﺑﺎن ﻃﺒﻴﻌﻲ اﺳﺖ ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪3GL‬‬ ‫‪4GL‬‬ ‫‪Access‬‬ ‫‪SGL‬‬

‫‪ -18‬ﺑﺮاي اﻳﺠﺎد ﺟﺪول ﭘﺎﻳﻪ از ﭼﻪ دﺳﺘﻮري در ‪ SQL‬اﺳﺘﻔﺎده ﻣﻲﻛﻨﻴﻢ ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪create table‬‬ ‫‪create dbms‬‬ ‫‪struct table‬‬ ‫‪struct dbms‬‬

‫‪ -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‬وﺿﻌﻴﺖ ﺗﻮﻟﻴﺪﻛﻨﻨﺪﮔﺎن ﺳﺎﻛﻦ ﺷﻬﺮ ﺗﻬﺮان را ﺳﻪ ﺑﺮاﺑﺮ ﻣﻲﻛﻨﺪ‪.‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪309‬‬

‫‪ .3‬وﺿﻌﻴﺖ ﺗﻮﻟﻴﺪﻛﻨﻨﺪﮔﺎن ﺳﺎﻛﻦ ﺷﻬﺮ ﺗﻬﺮان را ﺑﺮاﺑﺮ ﻋﺪد ‪ 3‬ﻣﻲﻛﻨﺪ‪.‬‬ ‫‪ .4‬ﺷﻬﺮﻫﺎﻳﻲ ﻛﻪ وﺿﻌﻴﺖ ﺳﻪ ﺑﺮاﺑﺮ ﺗﻬﺮان دارﻧﺪ را ﺑﻪ روز در ﻣﻲآورد‪.‬‬ ‫‪ -21‬اﮔﺮ ‪ S‬ﻳﻚ دﻳﺪ ﺑﺮ روي ﺟﺪول ﭘﺎﻳﻪاي ‪ A‬ﺑﺎﺷﺪ‪ ،‬ﺑﺮاي آﻧﻜﻪ ﻫﺮ ﮔﻮﻧﻪ اﺻﻼًﺣﻲ روي‬ ‫دﻳﺪ ‪ S‬ﻣﺠﺎز ﺑﺎﺷﺪ ﻛﺪام ﻣﺤﺪودﻳﺖ ﺑﺎﻳﺪ رﻋﺎﻳﺖ ﺷﻮد ؟‬ ‫‪ .1‬دﻳﺪ‪ S‬ﺑﺎﻳﺪ ﺗﻤﺎم ﻓﻴﻠﺪﻫﺎي ‪ NULL‬ﺟﺪول ‪ A‬را داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬ ‫‪ .2‬دﻳﺪ ‪ S‬ﺑﺎﻳﺪ ﺷﺎﻣﻞ ﻛﻠﻴﺪ اﺻﻠﻲ ﺟﺪول ‪ A‬ﺑﺎﺷﺪ‪.‬‬ ‫‪ .3‬دﻳﺪ ‪ S‬ﺑﺎﻳﺪ ﺷﺎﻣﻞ ﻛﻠﻴﺪ ﻓﺮﻋﻲ ﺟﺪول ‪ A‬ﺑﺎﺷﺪ‪.‬‬ ‫‪ .4‬ﻫﻴﭻ ﺷﺮط ﺧﺎﺻﻲ ﺑﺮاياﻳﻦ ﻣﻮﺿﻮع ﻻزم ﻧﻤﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ -22‬اﮔﺮ ﻋﺒﺎرﺗﻲ را ﺑﺨﻮاﻫﻴﻢ‪ ،‬ﻛﻪ ﺑﺎ ‪ ABC‬ﺷﺮوع ﻣﻲﺷﻮﻧﺪ از ﻛﺪام ﮔﺰﻳﻨﻪ اﺳﺘﻔﺎده ﻣﻲﻛﻨﻴﻢ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪ -23‬دو‬

‫‪starting ABC‬‬ ‫‪like ABC%‬‬ ‫‪like ABC$‬‬ ‫*‪like ABC‬‬ ‫ﺟﺪول )‪ S (x , y , z , w‬و )'‪ S'(x , y , z' , w‬را در ﻧﻈﺮ ﮔﺮﻓﺘﻪ و ﺑﮕﻮﺋﻴﺪ ﭘﺲ از‬

‫اﺟﺮاي دﺳﺘﻮر زﻳﺮ‪ ،‬دﻳﺪ ‪ V‬ﭼﻪ ﺳﺘﻮﻧﻬﺎﻳﻲ ﺧﻮاﻫﺪ داﺷﺖ ؟‬ ‫‪Create View V AS‬‬ ‫)'‪(Select x,y from S) union (select x,y from S‬‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫) '‪V (x , y , z , w , z' , w‬‬ ‫) ‪V (z' , w‬‬ ‫) '‪V (z , w , z' , w‬‬ ‫) ‪V (x , y‬‬

‫‪ -24‬در ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎن و ﻗﻄﻌﺎت‪ ،‬ﻛﺪام دﺳﺘﻮر ﺷﻤﺎره ﻗﻄﻌﻪ ﺗﻤﺎم ﻗﻄﻌﺎﺗﻲ‬ ‫را ﻛﻪ ﺗﻮﺳﻂ ﺑﻴﺶ از ﻳﻚ ﺗﻮﻟﻴﺪ ﻛﻨﻨﺪه ﺗﻬﻴﻪ ﺷﺪهاﻧﺪ را ﻣﻲدﻫﺪ ؟‬ ‫‪select P# from SP group by S# having count (*)>1 .1‬‬ ‫‪select P# from P ,SP where count (*)>1 .2‬‬ ‫‪select P# from SP group by P# having count (*)>1 .3‬‬ ‫‪select P# from S,P,SP where count (*)>1 .4‬‬ ‫‪ -25‬ﺟﺪول ‪ y‬داراي ﺳﺘﻮن ﻫﺎي ‪ price‬و ‪ code‬ﻣﻲﺑﺎﺷﺪ‪ .‬ﻛﺪام دﺳﺘﻮر ﺷﻤﺎره ﻛﺎﻻﺋﻲ ﻛﻪ‬

‫ﺑﺎﻻﺗﺮﻳﻦ ﻗﻴﻤﺖ را دارد‪ ،‬ﭼﺎپ ﻣﻲﻛﻨﺪ ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬

‫)‪select code from y where price = (select max(price)from y‬‬ ‫)‪select code from y where price = max(price‬‬ ‫‪2,1‬‬

‫‪ 310‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬ ‫‪.4‬‬

‫)‪select code from y first , y second where price = max(price‬‬

‫‪ -26‬در راﺑﻄﻪ ﺑﺎ دﻳﺪ ﺗﻌﺮﻳﻒ ﺷﺪه زﻳﺮ ﻛﺪام ﮔﺰﻳﻨﻪ درﺳﺖ ﻣﻲﺑﺎﺷﺪ ؟ )ﺟﺪول ﭘﺎﻳﻪاي ‪R‬‬

‫داراي ﺳﺘﻮﻧﻬﺎي ‪ x , y , z‬ﻣﻲﺑﺎﺷﺪ (‬ ‫) ‪Create view K(x , y ,w‬‬ ‫)‪AS select x , y , sum (z‬‬ ‫‪From R‬‬

‫‪ .1‬در دﻳﺪ ‪ K‬ﻣﻲﺗﻮان ﻋﻤﻠﻴﺎت ذﺧﻴﺮه ﺳﺎزي را اﻧﺠﺎم داد وﻟﻲ اﺳﺘﻘﻼل دادهاي‬ ‫ﻧﻘﺾ ﻣﻲﺷﻮد‪.‬‬ ‫‪ .2‬ﭼﻮن ‪ select‬ﻗﺴﻤﺖ ‪ where‬ﻧﺪارد ﻋﻤﻠﻴﺎت ذﺧﻴﺮه ﺳﺎزي ﻋﻮﻟﺮض ﻧﺎﻣﻄﻠﻮب‬ ‫ﺧﻮاﻫﺪ داﺷﺖ‪.‬‬ ‫‪ .3‬در دﻳﺪ ‪ k‬ﻧﻤﻲﺗﻮان ﻋﻤﻠﻴﺎت ذﺧﻴﺮه ﺳﺎزي را اﻧﺠﺎم داد‪.‬‬ ‫‪ .4‬در دﻳﺪ ‪ k‬ﻣﻲﺗﻮان ﻋﻤﻠﻴﺎت ذﺧﻴﺮه ﺳﺎزي را اﻧﺠﺎم داد‪.‬‬ ‫‪ -27‬دﺳﺘﻮر زﻳﺮ در ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎن و ﻗﻄﻌﺎت ﭼﻪ ﻣﻲﻛﻨﺪ ؟‬ ‫‪Select distinct S.city ,P.city‬‬ ‫‪From (S Join SP using S# ) Join P using P#‬‬

‫‪ .1‬ﺗﻤﺎم زوج ﺷﻬﺮﻫﺎﻳﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺗﻬﻴﻪ ﻛﻨﻨﺪه ﺷﻬﺮ اول‪ ،‬ﻗﻄﻌﻪاي را ﺗﻬﻴﻪ ﻣﻲﻛﻨﺪ‬ ‫ﻛﻪ در ﺷﻬﺮ دوم اﻧﺒﺎر ﺷﺪه اﺳﺖ‪.‬‬ ‫‪ .2‬ﺗﻤﺎم زوج ﺷﻬﺮﻫﺎﻳﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺗﻬﻴﻪ ﻛﻨﻨﺪه و ﻣﺤﻞ اﻧﺒﺎر ﻳﻜﻲ اﺳﺖ‪.‬‬ ‫‪ .3‬ﺗﻤﺎم زوج ﺷﻬﺮﻫﺎﻳﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺗﻬﻴﻪ ﻛﻨﻨﺪه ﺷﻬﺮ دوم‪ ،‬ﻗﻄﻌﻪاي را ﺗﻬﻴﻪ ﻣﻲﻛﻨﺪ‬ ‫ﻛﻪ در ﺷﻬﺮ اول اﻧﺒﺎر ﺷﺪه اﺳﺖ‪.‬‬ ‫‪ .4‬ﺗﻤﺎم زوج ﺷﻬﺮﻫﺎﻳﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺗﻬﻴﻪ ﻛﻨﻨﺪه و ﻣﺤﻞ اﻧﺒﺎر ﻳﻜﻲ ﻧﺒﺎﺷﻨﺪ‪.‬‬ ‫‪ -28‬دﺳﺘﻮر زﻳﺮ ﭼﻪ ﻣﻲﻛﻨﺪ ؟‬ ‫‪Select sname from S‬‬ ‫)‪Where S# not in (select S# from SP‬‬

‫‪ .1‬ﻧﺎم ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺗﻤﺎم ﻗﻄﻌﺎت را ﺗﻬﻴﻪ ﻣﻲﻛﻨﻨﺪ‪.‬‬ ‫‪ .2‬ﻧﺎم ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﻫﻴﭻ ﻗﻄﻌﻪاي را ﺗﻬﻴﻪ ﻧﻤﻲﻛﻨﻨﺪ‪.‬‬ ‫‪ .3‬اﻳﻦ دﺳﺘﻮر ﻏﻠﻂ اﺳﺖ‪.‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪.4‬‬

‫‪311‬‬

‫ﻧﺎم ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺣﺪاﻗﻞ ﻳﻚ ﻗﻄﻌﻪ را ﺗﻬﻴﻪ ﻛﺮدهاﻧﺪ‪.‬‬

‫‪ -29‬ﻛﺪام ﮔﺰﻳﻨﻪ درﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬دﺳﺘﻮر ‪select S# from SP Group by S# having Count (S#)>3‬‬

‫ﺷﻤﺎره ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﺑﻴﺸﺘﺮ از ‪ 3‬ﻗﻄﻌﻪ ﺗﻬﻴﻪ ﻣﻲﻛﻨﻨﺪ‪.‬‬ ‫‪ .2‬دﺳﺘﻮر ‪select S# from SP Group by S# having AVG (Qty)>200‬‬

‫ﺷﻤﺎره ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﻣﻴﺎﻧﮕﻴﻦ ﻗﻄﻌﻪ ﺗﻬﻴﻪ ﺷﺪه آﻧﻬﺎ ﺑﻴﺸﺘﺮ از ‪ 200‬ﺑﺎﺷﺪ‪.‬‬ ‫‪ .3‬ﻫﻴﭽﻜﺪام‬ ‫‪ .4‬ﻫﺮ دو‬ ‫‪ -30‬ﺟﺪول داﻧﺸﺠﻮ )‪ (stud‬ﺷﺎﻣﻞ دو ﺳﺘﻮن ﻧﺎم )‪ ( Sname‬و ﻣﻌﺪل )‪ ( m‬ﻣﻲﺑﺎﺷﺪ‪ .‬ﻛﺪام‬ ‫دﺳﺘﻮر ﻧﺎم داﻧﺸﺠﻮﻳﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﻣﻌﺪل آﻧﻬﺎ از ﻣﻴﺎﻧﮕﻴﻦ ﻫﻤﻪ ﻣﻌﺪل ﻫﺎ ﺑﻴﺸﺘﺮ اﺳﺖ ؟‬ ‫‪Select Sname from stud where m> AVG (m) .1‬‬ ‫‪Select Sname from stud where m> (select AVG (m) from stud) .2‬‬

‫‪ .3‬ﻫﻴﭽﻜﺪام‬

‫‪ .4‬ﻫﺮدو‬ ‫‪ -31‬ﻛﺪام دﺳﺘﻮر ﺳﻄﺮﻫﺎﻳﻲ از ﺟﺪول ‪ S‬را ﻣﻲدﻫﺪ ﻛﻪ ﺳﺘﻮن ‪ city‬آن ﻧﺎﺷﻨﺎﺧﺘﻪ‬ ‫ﻧﻤﻲﺑﺎﺷﺪ؟‬ ‫‪select * from S where city is not NULL .1‬‬ ‫‪select * from S where not (city is NULL) .2‬‬ ‫‪2,1 .3‬‬ ‫‪select * from S where city = not NULL .4‬‬ ‫‪Group by -32‬در ‪ SQL‬ﭘﻴﺎده ﺳﺎزي ﻛﺪام ﻋﻤﻠﮕﺮ در ﺟﺒﺮ راﺑﻄﻪاي اﺳﺖ ؟‬ ‫‪Restrict .1‬‬ ‫‪Summarize .2‬‬ ‫‪extend .3‬‬ ‫‪union .4‬‬ ‫‪ -33‬ﻋﻤﻠﮕﺮ ‪ IN‬در ‪ SQL‬ﻣﻌﺎدل ﻛﺪام ﻋﻤﻠﮕﺮ اﺳﺖ ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪=ANY‬‬ ‫‪
‫‪ 312‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ -34‬ﻛﺪام ﻧﻮع ﺟﺪول ﻫﻤﻮاره ﻗﺎﺑﻞ دﺳﺘﺮﺳﻲ اﺳﺖ وﻟﻲ ﻣﻤﻜﻦ اﺳﺖ ﺑﻬﻨﮕﺎم ﺳﺎزي در آن‬ ‫اﻣﻜﺎن ﭘﺬﻳﺮ ﻧﺒﺎﺷﺪ ؟‬ ‫‪ .1‬ﺟﺪول اﺻﻠﻲ‬ ‫‪ .2‬ﺟﺪول ﻣﺠﺎزي‬ ‫‪ .3‬ﺟﺪول ﻣﻮﻗﺘﻲ‬ ‫‪ .4‬ﻫﺮﺳﻪ ﮔﺰﻳﻨﻪ‬ ‫‪ -35‬ﻳﻚ ﺳﻴﺴﺘﻢ ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ را ﻛﺎﻣﻼ راﺑﻄﻪاي )‪ ( Fully relational‬ﮔﻮﻳﻴﻢ اﮔﺮ‪:‬‬ ‫‪ .1‬ﻣﺒﺘﻨﻲ ﺑﺮ ﻣﻔﺎﻫﻴﻢ و ﺳﺎﺧﺘﺎر راﺑﻄﻪاي ﺑﻮده و در ‪ DSL‬آن‪ ،‬ﻫﻤﺎن زﺑﺎن ﺟﺒﺮ‬ ‫راﺑﻄﻪاي ﺑﺎﺷﺪ‪.‬‬ ‫‪ .2‬ﻣﺒﺘﻨﻲ ﺑﺮ ﻣﻔﺎﻫﻴﻢ و ﺳﺎﺧﺘﺎر راﺑﻄﻪاي ﺑﻮده و در ‪ DSL‬آن‪ ،‬ﻫﻤﺎن زﺑﺎن ﻣﺤﺎﺳﺒﺎت‬ ‫راﺑﻄﻪاي ﺑﺎﺷﺪ‪.‬‬ ‫‪ .3‬ﻣﺒﺘﻨﻲ ﺑﺮ ﻣﻔﺎﻫﻴﻢ و ﺳﺎﺧﺘﺎر راﺑﻄﻪاي ﺑﻮده و در ‪ DSL‬آن ﺣﺪاﻗﻞ ﻫﻢ ﺗﻮان زﺑﺎن‬ ‫ﻣﺤﺎﺳﺒﺎت راﺑﻄﻪاي ﺑﺎﺷﺪ‪.‬‬ ‫‪ .4‬ﻣﺒﺘﻨﻲ ﺑﺮ ﻣﻔﺎﻫﻴﻢ و ﺳﺎﺧﺘﺎر راﺑﻄﻪاي ﺑﻮده و در ‪ DSL‬آن ﺣﺪاﻗﻞ ﻫﻢ ﺗﻮان زﺑﺎن‬ ‫ﺟﺒﺮ راﺑﻄﻪاي ﺑﺎﺷﺪ‪.‬‬ ‫ﭘﺎﺳﺦ ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪8‬‬ ‫‪ SQL (1) -1‬زﺑﺎن ﭘﺮس و ﺟﻮي ﺳﺎﺧﺘﻴﺎﻓﺘﻪ و ﻗﻮي ﺑﺮاياﻳﺠﺎد‪ ،‬ﺟﺴﺘﺠﻮ و دﺳﺘﻜﺎري‬ ‫دادهﻫﺎي ﻳﻚ ﺑﺎﻧﻚ ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ (4) -2‬دﺳﺘﻮر ‪ select‬ﻓﻘﻂ ﺑﺮاي ﺟﺴﺘﺠﻮ در ﺑﺎﻧﻚ اﺳﺖ و ﺗﻐﻴﻴﺮي را در آناﻳﺠﺎد‬ ‫ﻧﻤﻲﻛﻨﺪ‪ .‬ﺗﻨﻬﺎ دﺳﺘﻮراﺗﻲ ﻛﻪ ﺑﺎﻋﺚ ﺗﻐﻴﻴﺮ در ﺑﺎﻧﻚ ﻣﻲﺷﻮﻧﺪ ﻣﻲﺗﻮاﻧﻨﺪ اﺣﺘﻤﺎﻻ ﺑﺎﻋﺚ‬ ‫ﻧﺎﺳﺎزﮔﺎري دادهﻫﺎ ﺷﻮﻧﺪ‪ .‬دﺳﺘﻮر ‪ INSERT‬ﺑﺮاي درج‪ DELETE ،‬ﺑﺮاي ﺣﺬف و‬ ‫‪ UPDATE‬ﺑﺮاي ﺗﻐﻴﻴﺮ اﺳﺖ‪.‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪313‬‬

‫‪ (2) -3‬ﺷﺮط ﺟﻠﻮي ‪ Where‬ﻣﻲﮔﻮﻳﻴﺪ ﺷﻬﺮ ﻫﺮ ﺳﻪ )ﺗﻮﻟﻴﺪﻛﻨﻨﺪه‪-‬ﻗﻄﻌﻪ و ﭘﺮوژه( ﺑﺎﻳﺪ‬ ‫ﻳﻜﻲ ﺑﺎﺷﺪ‪.‬‬ ‫‪(3) -4‬‬ ‫‪ (1) -5‬اﻟﺒﺘﻪ ﻇﺎﻫﺮا ﮔﺰﻳﻨﻪ ‪ 2‬ﻧﻴﺰ درﺳﺖ ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ (1) -6‬ﺑﻪ ﺟﺎي ﻋﻼﻣﺖ ‪ %‬ﻫﺮ ﻛﺎراﻛﺘﺮ ﻳﺎ ﻣﺠﻤﻮﻋﻪاي از ﻛﺎراﻛﺘﺮﻫﺎ ﻣﻲﺗﻮاﻧﺪ ﻗﺮار ﮔﻴﺮد ﻣﺜﻞ‬ ‫* ﻣﻮﺟﻮد در ‪DOS‬‬ ‫‪ (4) -7‬اﮔﺮ ﺗﻮﺟﻪ ﻛﻨﻴﺪ ﺧﺮوﺟﻲ اﺷﺘﺮاك ﺑﻴﻦ دو ﺳﺘﻮن ‪ Name‬در دو ﺟﺪول ‪ S‬و ‪T‬‬

‫ﻣﻲﺑﺎﺷﺪ ﺑﺮاي ﻳﺎﻓﺘﻦ اﺷﺘﺮاك دو ﺟﺪول از ‪ Intersect‬اﺳﺘﻔﺎده ﻣﻲﻛﻨﻴﻢ‪.‬‬ ‫‪ (3) -8‬اﮔﺮ ﺗﻮﺟﻪ ﻛﻨﻴﺪ ﺧﺮوﺟﻲ ﺗﻔﺎﺿﻞ ‪ S-T‬ﻣﻲﺑﺎﺷﺪ ﻳﻌﻨﻲ ﭼﻪ ﻧﺎم ﻫﺎﻳﻲ در ﺟﺪول ‪S‬‬

‫ﻫﺴﺖ ﻛﻪ در ﺟﺪول ‪ T‬ﻧﻴﺴﺖ‪.‬‬ ‫‪ (1) -9‬اوﻟﻴﻦ ﻗﺪم در ﭘﺮدازشاﻳﻦ ﺗﻘﺎﺿﺎاﻳﻦ اﺳﺖ ﻛﻪ ﻋﺒﺎرﺗﻲ ﻛﻪ ‪ V‬را ﺗﻌﺮﻳﻒ ﻣﻲﻛﻨﺪ ﺑﻪ‬ ‫ﺟﺎي ‪ V‬ﻗﺮار دﻫﻴﻢ‪:‬‬ ‫)} ‪((((S JION SP) where P# = 'P2') {S# , City‬‬ ‫}‪Where city = 'London') {S#‬‬

‫اﻳﻦ ﻋﺒﺎرت ﺑﻪ ﺻﻮرت زﻳﺮ ﺧﻼﺻﻪ ﻣﻲﺷﻮد‪:‬‬ ‫‪((S Where city = 'London') Join‬‬ ‫}‪(SP Where P# = 'P2')) {S#‬‬

‫‪(1) -10‬‬ ‫‪(3) -11‬‬ ‫‪ (2) -12‬اﺑﺘﺪا ‪ select‬داﺧﻠﻲ اﺟﺮا ﺷﺪه و ﺷﻬﺮ ‪ S1‬را ﻣﻲدﻫﺪ و ﺳﭙﺲ ‪ select‬ﺑﻴﺮوﻧﻲ‬ ‫اﺟﺮا ﻣﻲﺷﻮد و ﺗﻬﻴﻪ ﻛﻨﻨﺪﮔﺎﻧﻲ را ﻣﻲدﻫﺪ ﻛﻪ ﻫﻤﺸﻬﺮي ‪ S1‬ﻣﻲﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ (1) -13‬ﻣﺜﻼ‬ ‫‪(3) -14‬‬ ‫‪(4) -15‬‬

‫))‪ALTER table student Modify (Lname char (40‬‬

‫‪ 314‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫ﮔﺰﻳﻨﻪ ‪ :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‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪315‬‬

‫‪(4) -29‬‬ ‫‪ (2) -30‬ﺑﺎﻳﺪ ﺗﻮﺟﻪ داﺷﺖ ﻛﻪ ﮔﺰﻳﻨﻪ ‪ 1‬ﻧﺎدرﺳﺖ اﺳﺖ و ﺟﻮاب ﻏﻠﻄﻲ ﻣﻲدﻫﺪ‪ .‬ﭼﺮا ﻛﻪ‬ ‫ﺗﺎ ﻫﺮ ﺟﺎي ﺟﺪول ﻛﻪ ﭘﻴﺶ ﻣﻲرود‪ ،‬ﻣﻘﺪار ﺗﺪرﻳﺠﻲ )‪ AVG(m‬ﻋﺪدي ﻏﻠﻂ را ﻧﺸﺎن‬ ‫ﻣﻲدﻫﺪ در ﺻﻮرﺗﻲ ﻛﻪ اﮔﺮ ﻣﺜﻼ داﻧﺸﺠﻮي ﺳﻄﺮ دﻫﻢ ﻣﻌﺪﻟﺶ ازاﻳﻦ ﻋﺪد ﺑﻴﺸﺘﺮ ﺑﺎﺷﺪ‪ ،‬در‬ ‫ﺧﺮوﺟﻲ ﻇﺎﻫﺮ ﻣﻲﺷﻮد‪ .‬در ﮔﺰﻳﻨﻪ ‪ 2‬اﺑﺘﺪا ‪ select‬داﺧﻠﻲ اﺟﺮاء ﺷﺪه و ﻧﺘﻴﺠﻪ آن ﻛﻪ ﻳﻚ‬ ‫ﻋﺪد اﺳﺖ اﺳﺘﺨﺮاج ﻣﻲﮔﺮدد‪.‬‬ ‫‪ (3) -31‬ﺗﻮﺟﻪ ﻛﻨﻴﺪ ﻛﻪ دو ﻋﺒﺎرت زﻳﺮ ﻣﻌﺎدل ﻳﻜﺪﻳﮕﺮﻧﺪ‪:‬‬ ‫) ‪ > is NULL‬ﻧﺎم ﺳﺘﻮن < ( ‪NOT‬‬

‫‪ > is not NULL‬ﻧﺎم ﺳﺘﻮن <‬

‫‪(2) -32‬‬ ‫‪(1) -33‬‬ ‫‪(2) -34‬‬ ‫‪(1) -35‬‬

‫ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪9‬‬ ‫‪ -1‬ﻛﺪام ﮔﺰﻳﻨﻪ در راﺑﻄﻪ ﺑﺎ ))واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ (( درﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬ﺻﻔﺖ ﺧﺎﺻﻪ ‪ Y‬از راﺑﻄﻪ ‪ R‬ﺑﺎ ﺻﻔﺖ ﺧﺎﺻﻪ ‪ X‬از راﺑﻄﻪ ‪ R‬واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ‬ ‫ﻛﺎﻣﻞ دارد‪ ،‬اﮔﺮ ‪ Y‬ﺑﺎ ‪ X‬واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ داﺷﺘﻪ ﺑﺎﺷﺪ وﻟﻲ ﺑﺎ ﻫﻴﭻ ﻳﻚ از زﻳﺮ‬ ‫ﻣﺠﻤﻮﻋﻪﻫﺎي ‪ X‬واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬ ‫‪ .2‬ﺻﻔﺖ ﺧﺎﺻﻪ ‪ Y‬از راﺑﻄﻪ ‪ R‬ﺑﺎ ﺻﻔﺖ ﺧﺎﺻﻪ ‪ X‬از راﺑﻄﻪ ‪ R‬واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ دارد‬ ‫اﮔﺮ و ﻓﻘﻂ اﮔﺮ در ﻃﻮل ﺣﻴﺎت راﺑﻄﻪ ﺑﻪ ﻫﺮ ﻣﻘﺪار ‪ X‬ﺣﺪاﻗﻞ ﻳﻚ ﻣﻘﺪار ‪Y‬‬

‫ﻣﺘﻨﺎﻇﺮ ﺑﺎﺷﺪ‪.‬‬

‫‪ 316‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ .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‬‬

‫ﻛﺪام واﺑﺴﺘﮕﻲ از آن ﻗﺎﺑﻞ اﺳﺘﻨﺘﺎج اﺳﺖ ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬

‫‪ACF→DG‬‬ ‫‪AC→DE‬‬ ‫‪EF→G‬‬

‫‪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‬ﻫﻢ ارزﻧﺪ‪.‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪317‬‬

‫‪ G .2‬و ‪ F‬ﻫﻢ ارز ﻧﻴﺴﺘﻨﺪ‪.‬‬ ‫‪ G .3‬ﻣﺠﻤﻮﻋﻪ ﻛﻤﻴﻨﻪ ‪ F‬ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ F .4‬ﻣﺠﻤﻮﻋﻪ ﺑﻬﻴﻨﻪ ‪ G‬ﻣﻲﺑﺎﺷﺪ‪.‬‬ ‫‪ -7‬ﻛﺪام ﮔﺰﻳﻨﻪ درﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬ﺑﺮاي ﻫﺮ ﻣﺠﻤﻮﻋﻪ از ‪ FD‬ﻫﺎ‪ ،‬ﺣﺪاﻛﺜﺮ ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﻫﻢ ارز وﺟﻮد دارد ﻛﻪ‬ ‫ﻛﺎﻫﺶ ﻧﺎﭘﺬﻳﺮ اﺳﺖ‪.‬‬ ‫‪ .2‬ﺑﺮاي ﻫﺮ ﻣﺠﻤﻮﻋﻪ از ‪ FD‬ﻫﺎ‪ ،‬ﺣﺪاﻗﻞ ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﻫﻢ ارز وﺟﻮد دارد ﻛﻪ‬ ‫ﻛﺎﻫﺶ ﻧﺎﭘﺬﻳﺮ اﺳﺖ‪.‬‬ ‫‪ .3‬ﺑﺮاي ﻫﺮ ﻣﺠﻤﻮﻋﻪ از ‪ FD‬ﻫﺎ‪ ،‬دﻗﻴﻘﺎ و ﻓﻘﻂ ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﻫﻢ ارز وﺟﻮد دارد ﻛﻪ‬ ‫ﻛﺎﻫﺶ ﻧﺎﭘﺬﻳﺮ اﺳﺖ‪.‬‬ ‫‪ .4‬ﻫﻴﭽﻜﺪام‬ ‫‪ -8‬اﮔﺮ ﺑﺮاي راﺑﻄﻪ }‪ R= { A,B,C,D,E,F,G,H,I,J‬واﺑﺴﺘﮕﻲ ﻫﺎي زﻳﺮ را داﺷﺘﻪ ﺑﺎﺷﻴﻢ‬ ‫ﻛﺪام ﮔﺰﻳﻨﻪ درﺳﺖ ﺧﻮاﻫﺪ ﺑﻮد ؟‬ ‫}‪F= {ABC→E ,AB→G , B→F , C→J , CJ→I , G→H‬‬ ‫‪ F .1‬ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﻛﺎﻫﺶ ﭘﺬﻳﺮ اﺳﺖ و }‪ {A,B,C,D‬ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ اﺳﺖ‪.‬‬

‫‪ F .2‬ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﻛﺎﻫﺶ ﻧﺎﭘﺬﻳﺮ اﺳﺖ و }‪ {A,B,C,D‬ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ اﺳﺖ‪.‬‬ ‫‪ F .3‬ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﻛﺎﻫﺶ ﻧﺎﭘﺬﻳﺮ اﺳﺖ و }‪ {A,B,C,D,G‬ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ اﺳﺖ‪.‬‬ ‫‪ F .4‬ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﻛﺎﻫﺶ ﭘﺬﻳﺮ اﺳﺖ و }‪ {A,B,C‬ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ اﺳﺖ‪.‬‬ ‫‪ -9‬راﺑﻄﻪ ‪ TIMETABLE‬را ﺑﺎ ﺻﻔﺎت زﻳﺮ در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪:‬‬ ‫دوره زﻣﺎﻧﻲ در روز )‪ 1‬ﺗﺎ ‪P =( 8‬‬ ‫ﺷﻤﺎره درس = ‪L‬‬

‫ﻧﺎم ﻣﻌﻠﻢ =‪T‬‬

‫و‬

‫ﺷﻤﺎره روز ﻫﻔﺘﻪ = ‪D‬‬ ‫ﺷﻤﺎره ﻛﻼس = ‪C‬‬

‫ﻓﺮض ﻛﻨﻴﺪ ﻫﺮ درس در دوره ﺧﺎﺻﻲ )‪ (D,P‬اراﺋﻪ ﻣﻲﺷﻮد و ﺷﻤﺎره دروس ﻣﻨﺤﺼﺮ ﺑﻪ‬ ‫ﻓﺮد ﻣﻲﺑﺎﺷﻨﺪ‪ .‬ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪاﻳﻦ راﺑﻄﻪ ﻛﺪام اﺳﺖ ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬

‫‪L‬‬ ‫‪DPC‬‬ ‫‪DPT‬‬

‫‪ 318‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ .4‬ﻫﺮﺳﻪ ﮔﺰﻳﻨﻪ‬ ‫‪ -10‬ﻣﺠﻤﻮﻋﻪ ﻛﺎﻫﺶ ﻧﺎﭘﺬﻳﺮ ﻣﺠﻤﻮﻋﻪ واﺑﺴﺘﮕﻲ زﻳﺮ ﻛﺪام اﺳﺖ ؟‬ ‫}‪F={A→D , A→C , CD→B , AD→C‬‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫}‪{CD→B , AD→C‬‬ ‫}‪{A→D , A→C , AD→C‬‬ ‫}‪{A→D , CD→B , AD→C‬‬ ‫} ‪{A→D , A→C , CD→B‬‬

‫‪ -11‬از ﻣﺠﻤﻮﻋﻪ ‪ FD‬زﻳﺮ ﻛﺪام راﺑﻄﻪ را ﻧﻤﻲﺗﻮان اﺳﺘﻨﺘﺎج ﻛﺮد ؟‬ ‫}‪F= {A→D, CD→B , AD→C‬‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪C→B‬‬ ‫‪A→B‬‬ ‫‪A→C‬‬ ‫‪A→CD‬‬

‫‪ -12‬ﻛﺪام ﮔﺰﻳﻨﻪ درﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬ﺑﻪ ﻣﺠﻤﻮﻋﻪ ﺗﻤﺎم واﺑﺴﺘﮕﻲ ﻫﺎي اﺳﺘﻨﺘﺎج ﺷﺪه‪ ،‬ﻣﺠﻤﻮﻋﻪ ﭘﻮﺷﺸﻲ ﻣﻲﮔﻮﺋﻴﻢ‪.‬‬ ‫‪ .2‬اﮔﺮ ﻣﺠﻤﻮﻋﻪ ﭘﻮﺷﺸﻲ دو ﻣﺠﻤﻮﻋﻪ ‪ FD‬ﺑﺎ ﻫﻢ ﺑﺮاﺑﺮ ﺑﺎﺷﻨﺪ آﻧﮕﺎه دو ﻣﺠﻤﻮﻋﻪ‬ ‫واﺑﺴﺘﮕﻲ ﺑﺎ ﻫﻢ ﻣﻌﺎدﻟﻨﺪ‪.‬‬ ‫‪ .3‬ﻗﻮاﻧﻴﻦ ‪ 3‬ﮔﺎﻧﻪ آرﻣﺴﺘﺮاﻧﮓ ﺑﺮاي ﺑﺪﺳﺖ آوردن ﻣﺠﻤﻮﻋﻪ ﭘﻮﺷﺸﻲ ﻛﺎﻓﻲ اﺳﺖ‪.‬‬ ‫‪ .4‬ﻫﺮ ﺳﻪ ﮔﺰﻳﻨﻪ‬ ‫‪ -13‬ﻧﻤﻮدار واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ‪:‬‬ ‫‪ .1‬ﻧﻤﻮداري اﺳﺖ ﻛﻪ ﺟﺪاول را ﺗﺠﺰﻳﻪ ﻣﻲﻛﻨﺪ‪.‬‬ ‫‪ .2‬ﻧﻤﻮداري اﺳﺖ ﻛﻪ ﺷﺮوع ﻛﺎر آن ﺑﺎ ﻛﻠﻴﺪﻫﺎي ﻛﺎﻧﺪﻳﺪ اﺳﺖ‪.‬‬ ‫‪ .3‬ﻧﻤﻮداري اﺳﺖ ﻛﻪ ﺷﺮوع ﻛﺎر آن ﺑﺎ ﻛﻠﻴﺪﻫﺎي ﺧﺎرﺟﻲ اﺳﺖ‪.‬‬ ‫‪ .4‬ﻧﻤﻮداري اﺳﺖ ﻛﻪ واﺑﺴﺘﮕﻲ ﺑﻪ ﻛﻠﻴﺪ ﺧﺎرﺟﻲ را ﻧﻤﺎﻳﺶ ﻣﻲدﻫﺪ‪.‬‬ ‫‪ -14‬واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﺑﺪﻳﻬﻲ ﻛﺪام اﺳﺖ ؟‬ ‫‪ .1‬اﮔﺮ ﺳﻤﺖ ﭼﭗ آن‪ ،‬زﻳﺮ ﻣﺠﻤﻮﻋﻪاي از ﺳﻤﺖ راﺳﺖ ﺑﺎﺷﺪ‪.‬‬ ‫‪ .2‬اﮔﺮ ﺳﻤﺖ ﭼﭗ آن ﻗﺎﺑﻞ ﺗﺠﺰﻳﻪ ﺷﺪن ﻧﺒﺎﺷﺪ‪.‬‬ ‫‪ .3‬اﮔﺮ ﺳﻤﺖ راﺳﺖ آن ﻓﻘﻂ ﻳﻚ ﺻﻔﺖ ﺧﺎﺻﻪ ﺑﺎﺷﺪ‪.‬‬ ‫‪ .4‬اﮔﺮ ﺳﻤﺖ راﺳﺖ آن‪ ،‬زﻳﺮ ﻣﺠﻤﻮﻋﻪاي از ﺳﻤﺖ ﭼﭗ ﺑﺎﺷﺪ‪.‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪319‬‬

‫‪ -15‬در راﺑﻄﻪ }‪ R = {A,B,C,D,E,F,G‬ﺑﺎ ‪ FD‬ﻫﺎي زﻳﺮ ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﻛﺪام اﺳﺖ ؟‬ ‫}‪F= {D→A , E→B , A→B , AB→EFC‬‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫)‪(A,B,D‬‬ ‫)‪(D‬‬ ‫)‪(D,G‬‬ ‫)‪(B,D,E‬‬

‫‪ -16‬ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬در راﺑﻄﻪ ﺗﻤﺎم ﻛﻠﻴﺪ‪ ،‬ﺑﻴﻦ اﺟﺰاي ﻛﻠﻴﺪ ﻣﻲﺗﻮاﻧﺪ واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ وﺟﻮد داﺷﺘﻪ‬ ‫ﺑﺎﺷﺪ‪.‬‬ ‫‪ .2‬اﮔﺮ ‪ K‬ﺳﻮﭘﺮ ﻛﻠﻴﺪ راﺑﻄﻪ ‪ R‬ﺑﺎﺷﺪ آﻧﮕﺎه ﻣﺠﻤﻮﻋﻪ ﻋﻨﻮان ‪ R‬ﺑﺎ ‪ K‬واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ‬ ‫دارد‪.‬‬ ‫‪ .3‬از ‪ AB→C‬در ﺣﺎﻟﺖ ﻛﻠﻲ ﻧﻤﻲﺗﻮان ﻧﺘﻴﺠﻪ ﮔﺮﻓﺖ ﻛﻪ ‪ B→C‬و‪A→C‬‬

‫‪ FD .4‬ﻫﺎ ﻣﺤﺪودﻳﺖ ﺟﺎﻣﻌﻴﺖ را ﻧﺸﺎن ﻣﻲدﻫﻨﺪ‪.‬‬ ‫‪ -17‬راﺑﻄﻪ )‪ REL(X,Y,Z‬را در ﻧﻈﺮ ﻣﻲﮔﻴﺮﻳﻢ‪ .‬ﻛﺪام ﻳﻚ از ﮔﺰارهﻫﺎي زﻳﺮ ﻧﺎدرﺳﺖ‬ ‫اﺳﺖ؟‬ ‫‪ .1‬اﮔﺮ ‪ X→Y‬و ‪ Y→X‬دارﻳﻢ‪X→Z:‬‬

‫‪ .2‬راﺑﻄﻪ ‪ REL‬ﺣﺎﺻﻞ ‪ JOIN‬دو راﺑﻄﻪ )‪ REL1(X,Y‬و )‪ REL2(X,Z‬اﺳﺖ اﮔﺮ و‬ ‫ﻓﻘﻂ اﮔﺮ داﺷﺘﻪ ﺑﺎﺷﻴﻢ‪X→Y :‬‬ ‫‪ .3‬اﮔﺮ ‪ Y→X‬و‪ Z→X‬دارﻳﻢ‪(Y,Z)→X :‬‬ ‫‪ .4‬اﮔﺮ ‪ X→Y‬و‪ X→Z‬دارﻳﻢ‪X→(Y,Z) :‬‬

‫ﭘﺎﺳﺦ ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪9‬‬ ‫‪(1) -1‬ﺻﻔﺖ ﺧﺎﺻﻪ ‪ Y‬از راﺑﻄﻪ ‪ R‬ﺑﺎ ﺻﻔﺖ ﺧﺎﺻﻪ ‪ X‬از راﺑﻄﻪ ‪ R‬واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ دارد و‬ ‫ﻣﻲﻧﻮﻳﺴﻴﻢ ‪ R.X→R.Y‬اﮔﺮ و ﻓﻘﻂ اﮔﺮ در ﻃﻮل ﺣﻴﺎت راﺑﻄﻪ ﺑﻪ ﻫﺮ ﻣﻘﺪار از ‪ X‬در راﺑﻄﻪ‬ ‫دﻗﻴﻘﺎ ﻳﻚ ﻣﻘﺪار ‪ Y‬از راﺑﻄﻪ ‪ R‬ﻣﺘﻨﺎﻇﺮ ﺑﺎﺷﺪ‪.‬‬ ‫‪ (4) -2‬اﺑﺘﺪا ‪ FOPT‬را ﺑﺪﺳﺖ ﻣﻲآورﻳﻢ‪:‬‬ ‫‪AF→BE AF→B , AF→E‬‬

‫‪ 320‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬ ‫‪FC→DE  FC→D , FC→E‬‬ ‫‪F→CD F→C , F→D‬‬ ‫‪F→C , FC→DE  F→DE F→D , F→E‬‬ ‫‪F→C , C→A  F→A‬‬ ‫‪F→A , FA→B  F→B‬‬ ‫‪F→A , FA→E  F→E‬‬ ‫}‪FOPT = {F→A,F→B,F→C,F→D,F→E,D→E,C→A‬‬ ‫ﭘﺲ ‪ F‬ﻫﻤﻪ ﺻﻔﺘﻬﺎي دﻳﮕﺮ ﺑﻪ ﺟﺰ‪ G‬را ﻣﻲدﻫﺪ ﭘﺲ )‪ (F,G‬ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ اﺳﺖ‪.‬اﻳﻦ ﻛﻠﻴﺪ‬

‫ﻣﻨﺤﺼﺮ ﺑﻪ ﻓﺮد اﺳﺖ زﻳﺮا ﻫﻴﭻ ﺻﻔﺘﻲ ‪ F‬و ‪ G‬را ﻧﻤﻲدﻫﺪ‪ .‬ﻳﻌﻨﻲ در ﻫﺮ ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ دﻳﮕﺮ‬ ‫وﺟﻮداﻳﻦ دو ﺻﻔﺖ ﻻزم اﺳﺖ‪.‬‬ ‫‪ (3) -3‬در ﮔﺰﻳﻨﻪ ‪ 1‬در ‪ A→BC‬ﺳﻤﺖ راﺳﺖ ﻳﻚ ﺻﻔﺖ ﺗﻨﻬﺎ ﻧﻴﺴﺖ‪.‬‬ ‫در ﮔﺰﻳﻨﻪ ‪A→B , AB→C  A→C :2‬‬

‫ﻳﻌﻨﻲ ﺳﻤﺖ ﭼﭗ ﻗﺎﺑﻞ ﻛﺎﻫﺶ اﺳﺖ‪.‬‬

‫در ﮔﺰﻳﻨﻪ ‪ A→A :4‬ﻗﺎﺑﻞ ﺣﺬف ﺷﺪن اﺳﺖ و ﻋﻀﻮ زاﺋﺪي اﺳﺖ‪.‬‬ ‫‪(1) -4‬‬ ‫‪A→BC  A→B , A→C‬‬ ‫‪A→B , AB→C  A→C‬‬ ‫‪A→C , AC→D , A→D‬‬ ‫}‪ F={A→B , A→C , B→C , A→B , A→C , A→D‬‬ ‫}‪F={A→B , A→C , B→C , A→D‬‬

‫از آﻧﺠﺎ ﻛﻪ‪:‬‬ ‫ﭘﺲ‬

‫‪A→B , B→C  A→C‬‬ ‫}‪Fmin = {A→B , B→C , A→D‬‬

‫‪(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‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫ﻣﺠﻤﻮﻋﻪ ﻛﺎﻫﺶ ﭘﺬﻳﺮ اﺳﺖ ﭼﺮا ﻛﻪ‬

‫‪321‬‬

‫‪C → J , CJ→I  C→I‬‬

‫}‪ {A,B,C,D,G,J‬ﻳﻚ ﻓﻮق ﻛﻠﻴﺪ اﺳﺖ )ﻣﺠﻤﻮﻋﻪاي از ﺗﻤﺎم ﺻﻔﺎﺗﻲ ﻛﻪ در ﺳﻤﺖ ﭼﭗ‬ ‫‪ FD‬ﻫﺎ وﺟﻮد دارد (‪ .‬ﺑﻪ دﻟﻴﻞ وﺟﻮد ‪ C →J‬ﻣﻲﺗﻮاﻧﻴﻢ ‪ J‬را از ﻣﺠﻤﻮﻋﻪ ﻓﻮق ﺣﺬف ﻛﻨﻴﻢ‪.‬‬ ‫ﺑﻪ دﻟﻴﻞ وﺟﻮد ‪ AB→G‬ﻣﻲﺗﻮاﻧﻴﻢ ‪ G‬را از ﻣﺠﻤﻮﻋﻪ ﺣﺬف ﻛﻨﻴﻢ‪.‬ﭼﻮن ‪ A‬و ‪ B‬و ‪ C‬و‪D‬‬

‫ﻫﻴﭽﻜﺪام در ﺳﻤﺖ راﺳﺖ ‪ FD‬ﻫﺎ ﻇﺎﻫﺮ ﻧﺸﺪهاﻧﺪ ﭘﺲ }‪ {A,B,C,D‬ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ اﺳﺖ‪.‬‬ ‫‪(4) -9‬‬ ‫‪L→T , L→C , L→D , L→P‬‬

‫اﮔﺮ ﻣﺜﻼ ﺑﮕﻮﺋﻴﻢ اﺳﺘﺎد اﻛﺒﺮي ﺳﻪ ﺷﻨﺒﻪ ‪ 8‬ﺗﺎ ‪ 10‬ﺻﺒﺢ‪ ،‬آﻧﮕﺎه ﺷﻤﺎره درس و ﺷﻤﺎره ﻛﻼس‬ ‫او ﻣﺸﺨﺺ ﻣﻲﮔﺮدد ﭘﺲ ‪ .DPT→CL‬ﻫﻤﭽﻨﻴﻦ اﮔﺮ ﻣﺜﻼ ﺑﮕﻮﺋﻴﻢ ﺳﻪ ﺷﻨﺒﻪ ‪ 8‬ﺗﺎ ‪ 10‬ﺻﺒﺢ‬ ‫ﻛﻼس ﺷﻤﺎره ‪ ،215‬آﻧﮕﺎه ﻧﺎم اﺳﺘﺎد و ﺷﻤﺎره درس ﺗﻌﻴﻴﻦ ﻣﻲﮔﺮدد‪ ،‬ﭘﺲ ‪DPC→TL‬‬

‫‪(4) -10‬‬ ‫‪A→D , AD→C  A→C‬‬ ‫} ‪Fmin = { A→D , A→C , CD→B‬‬

‫‪(1) -11‬‬ ‫‪A→D , AD→C  A→C‬‬ ‫‪A→D , A→C  A→CD‬‬ ‫‪A→CD , CD→B  A→B‬‬

‫‪(4) -12‬‬ ‫‪(2) -13‬‬ ‫‪ (4) -14‬ﻣﺜﻼ ‪ AB→A‬ﮔﺰﻳﻨﻪﻫﺎي ‪ 2‬و ‪ 3‬وﻳﮋﮔﻲ ﻫﺎي واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﻛﻤﻴﻨﻪ را ﺑﻴﺎن‬ ‫ﻣﻲﻛﻨﻨﺪ‪.‬‬ ‫‪(3) -15‬‬ ‫‪D→A , A→B  D→B ,‬‬ ‫‪D→A , D→BD→AB‬‬ ‫‪D→AB , AB→EFC  D→E , D→F , D→C‬‬

‫‪ (1) -16‬در راﺑﻄﻪ ﺗﻤﺎم ﻛﻠﻴﺪ‪ ،‬ﺑﻴﻦ اﺟﺰاي ﻛﻠﻴﺪ واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ وﺟﻮد ﻧﺪارد‪.‬‬ ‫‪(2) -17‬‬

‫‪ 322‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪10‬‬ ‫‪ -1‬ﻓﺮض ﻛﻨﻴﺪ ﻟﻴﺴﺘﻲ از درس ﻫﺎي داﻧﺸﺠﻮﻳﺎن در اﺧﺘﻴﺎر دارﻳﻢ ﻛﻪ از ﺳﺘﻮﻧﻬﺎي زﻳﺮ‬ ‫ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ‪:‬‬ ‫ﺗﻌﺪاد واﺣﺪ‬

‫ﻧﺎم درس‬

‫ﻛﺪ درس‬

‫ﻧﺎم داﻧﺸﺠﻮ‬

‫ﻛﺪ داﻧﺸﺠﻮ‬

‫ﻫﺮ داﻧﺸﺠﻮ ﻣﻤﻜﻦ اﺳﺖ ﭼﻨﺪﻳﻦ درس داﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬اﮔﺮ ﺑﺨﻮاﻫﻴﻢ اﻳﻦ اﻃﻼﻋﺎت را در ﻳﻚ‬ ‫ﺑﺎﻧﻚ اﻃﻼﻋﺎﺗﻲ ﺑﻪ ﮔﻮﻧﻪ اي ذﺧﻴﺮه ﻛﻨﻴﻢ ﻛﻪ ﺣﺪاﻗﻞ ﺗﻜﺮار اﻃﻼﻋﺎت را داﺷﺘﻪ ﺑﺎﺷﻴﻢ ﺣﺪاﻗﻞ‬ ‫ﺑﻪ ﭼﻨﺪ ﺟﺪول )‪ (table‬ﻧﻴﺎز دارﻳﻢ ؟‬ ‫‪1 .1‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪323‬‬

‫‪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‬ﻓﻘﻂ در درج ﻣﻤﻜﻦ اﺳﺖ آﻧﻮﻣﺎﻟﻲ داﺷﺘﻪ ﺑﺎﺷﻴﻢ‪.‬‬

‫‪ 324‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ .2‬ﻓﻘﻂ در ﺣﺬف ﻣﻤﻜﻦ اﺳﺖ آﻧﻮﻣﺎﻟﻲ داﺷﺘﻪ ﺑﺎﺷﻴﻢ‪.‬‬ ‫‪ .3‬در ﺣﺬف و ﺑﻬﻨﮕﺎم ﺳﺎزي ﻣﻤﻜﻦ اﺳﺖ آﻧﻮﻣﺎﻟﻲ داﺷﺘﻪ ﺑﺎﺷﻴﻢ‪.‬‬ ‫‪ .4‬در درج ‪ ،‬ﺣﺬف و ﺑﻬﻨﮕﺎم ﺳﺎزي ﻣﻤﻜﻦ اﺳﺖ آﻧﻮﻣﺎﻟﻲ داﺷﺘﻪ ﺑﺎﺷﻴﻢ‪.‬‬ ‫‪ -6‬ﻛﺪام ﺗﻌﺮﻳﻒ در راﺑﻄﻪ ﺑﺎ ﺻﻮرﺗﻬﺎي ﻧﺮﻣﺎل ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬راﺑﻄﻪاي ﻧﺮﻣﺎل اﺳﺖ ﻛﻪ ﺗﻤﺎم ﻣﻘﺎدﻳﺮ ﺻﻔﺎت ﺧﺎﺻﻪ اش اﺗﻮﻣﻴﻚ ﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ .2‬راﺑﻄﻪاي ‪ 3NF‬اﺳﺖ اﮔﺮ و ﻓﻘﻂ اﮔﺮ ﺻﻔﺎت ﺧﺎﺻﻪ ﻏﻴﺮ ﻛﻠﻴﺪ ﻣﺘﻘﺎﺑﻼ ﺑﻪ ﻳﻜﺪﻳﮕﺮ‬ ‫ﻧﺎواﺑﺴﺘﻪ ﺑﺎﺷﻨﺪ و ﻫﻤﭽﻨﻴﻦ ﺑﺎ ﻛﻠﻴﺪ اﺻﻠﻲ راﺑﻄﻪ ‪ ،‬واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﻛﺎﻣﻞ داﺷﺘﻪ‬ ‫ﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ .3‬راﺑﻄﻪاي ‪ 2NF‬اﺳﺖ اﮔﺮ و ﻓﻘﻂ اﮔﺮ ‪ 1NF‬ﺑﺎﺷﺪ و ﻫﻤﭽﻨﻴﻦ اﮔﺮ ﺻﻔﺎت ﺧﺎﺻﻪ‬ ‫ﻏﻴﺮ ﻛﻠﻴﺪ ﻣﺘﻘﺎﺑﻼ ﺑﻪ ﻳﻜﺪﻳﮕﺮ ﻧﺎواﺑﺴﺘﻪ ﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ .4‬راﺑﻄﻪاي ‪ 3NF‬اﺳﺖ اﮔﺮ و ﻓﻘﻂ اﮔﺮ ‪ 2NF‬ﺑﻮده و ﻫﺮ ﺻﻔﺖ ﺧﺎﺻﻪ ﻏﻴﺮ ﻛﻠﻴﺪ ﺑﻪ‬ ‫ﻃﻮر ﻣﺴﺘﻘﻴﻢ )ﺑﻲ واﺳﻄﻪ( ﺑﺎ ﻛﻠﻴﺪ اﺻﻠﻲ واﺑﺴﺘﮕﻲ داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬ ‫‪ -7‬ﻛﺪام ﮔﺰﻳﻨﻪ ﻗﻀﻴﻪ ﻫﻴﺚ )‪ (Heath‬را ﺑﻴﺎن ﻣﻲ ﻛﻨﺪ ؟ )راﺑﻄﻪ ‪ R‬را ﺑﺎ ﺳﻪ ﺻﻔﺖ ﺧﺎﺻﻪ‬ ‫‪ A‬و ‪ B‬و ‪ C‬در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ (‬ ‫‪ .1‬اﮔﺮ ‪ R.A→R.B‬ﻫﻤﻴﺸﻪ ﻣﻲ ﺗﻮان اﻳﻦ راﺑﻄﻪ را ﺑﻪ دو راﺑﻄﻪ )‪ R2(A,C‬و‬ ‫)‪ R1(A,B‬ﺗﺠﺰﻳﻪ ﻛﺮد ﺑﻪ ﻧﺤﻮي ﻛﻪ ﮔﻤﺸﺪﮔﻲ اﻃﻼﻋﺎت ﭘﻴﺶ ﻧﻴﺎﻳﺪ‪.‬‬ ‫‪ .2‬اﮔﺮ‪ R.A→R.B‬و ‪ R.A→R.C‬ﻣﻲ ﺗﻮان اﻳﻦ راﺑﻄﻪ را ﺑﻪ راﺑﻄﻪ )‪ R2(A,C‬و‬ ‫)‪ R1(A,B‬ﺗﺠﺰﻳﻪ ﻛﺮد‪.‬‬ ‫‪ .3‬اﮔﺮ ‪ R.A→R.B‬ﻫﻤﻴﺸﻪ ﻣﻲ ﺗﻮان اﻳﻦ راﺑﻄﻪ را ﺑﻪ دو راﺑﻄﻪ )‪ R2(A,C‬و‬ ‫)‪ R1(A,B‬ﺗﺠﺰﻳﻪ ﻛﺮد وﻟﻲ ﻣﻤﻜﻦ اﺳﺖ ﮔﻤﺸﺪﮔﻲ اﻃﻼﻋﺎت ﭘﻴﺶ آﻳﺪ‪.‬‬ ‫‪ R.A→R.B .4‬و ‪ R.A→R.C‬ﻣﻤﻜﻦ اﺳﺖ ﻧﺘﻮان اﻳﻦ راﺑﻄﻪ را ﺑﻪ دو راﺑﻄﻪ‬ ‫)‪ R2(A,C‬و )‪ R1(A,B‬ﺗﺠﺰﻳﻪ ﻛﺮد‪.‬‬ ‫‪ -8‬در ﻛﺪام ﻣﻮرد زﻳﺮ ‪ 3NF‬ﻣﻄﻠﻮﺑﺘﺮﻳﻦ ﺻﻮرت ﻧﻴﺴﺖ ؟‬ ‫‪ .1‬وﻗﺘﻲ راﺑﻄﻪ داراي ﭼﻨﺪ ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﺑﺎﺷﺪ‪.‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪325‬‬

‫‪ .2‬وﻗﺘﻲ ﻛﻪ ﻛﻠﻴﺪﻫﺎي ﻛﺎﻧﺪﻳﺪ راﺑﻄﻪ ﻣﺮﻛﺐ ﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ .3‬وﻗﺘﻲ ﻛﻪ ﻛﻠﻴﺪﻫﺎي ﻛﺎﻧﺪﻳﺪ ﺑﺎ ﻳﻜﺪﻳﮕﺮ اﺷﺘﺮاك ﺻﻔﺖ ﺧﺎﺻﻪ داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ .4‬ﻫﺮ ﺳﻪ ﻣﻮرد‪.‬‬ ‫‪ -9‬در ﻛﺪام ﺣﺎﻟﺖ ﺟﺪول ‪ 3NF‬ﻣﻤﻜﻦ اﺳﺖ ﻣﺸﻜﻞ داﺷﺘﻪ ﺑﺎﺷﺪ ؟‬ ‫‪ .1‬ﺟﺪول داراي ﺣﺪاﻗﻞ دو ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﺑﺎﺷﺪ‪.‬‬ ‫‪ .2‬ﻛﻠﻴﺪﻫﺎي ﻛﺎﻧﺪﻳﺪ ﺗﺮﻛﻴﺒﻲ ﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ .3‬ﻛﻠﻴﺪﻫﺎي ﻛﺎﻧﺪﻳﺪ ﺗﺮﻛﻴﺒﻲ ‪ ،‬ﺻﻔﺘﻬﺎي ﻣﺸﺘﺮﻛﻲ داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ .4‬وﻗﺘﻲ ﻛﻪ ﻫﺮ ﺳﻪ ﺷﺮط ﻓﻮق ﺑﺮﻗﺮار ﺑﺎﺷﺪ‪.‬‬ ‫‪ -10‬ﻛﺪام ﮔﺰﻳﻨﻪ اﻫﺪاف ﻛﻠﻲ ﻧﺮﻣﺎل ﺳﺎزي را ﺑﻴﺎن ﻧﻤﻲ ﻛﻨﺪ ؟‬ ‫‪ .1‬رﻋﺎﻳﺖ ﻗﻮاﻋﺪ ﺟﺎﻣﻌﻴﺘﻲ‬ ‫‪ .2‬ﻛﺎﻫﺶ اﻓﺰوﻧﮕﻲ‬ ‫‪ .3‬ﻛﺎﻫﺶ ﺳﺮﺑﺎر ﺳﻴﺴﺘﻢ و ﺳﺎده ﻛﺮدن دﻳﺪ ﻛﺎرﺑﺮ‬ ‫‪ .4‬ﻛﺎﻫﺶ ﺑﻌﻀﻲ از آﻧﻮﻣﺎﻟﻲ ﻫﺎ‬ ‫‪ -11‬ﻛﺪام ﮔﺰﻳﻨﻪ درﺳﺖ اﺳﺖ ؟‬ ‫‪.1‬‬

‫راﺑﻄﻪ ‪ R‬در ﺳﻄﺢ ‪ 3NF‬اﺳﺖ اﮔﺮ و ﻓﻘﻂ اﮔﺮ ‪ 2NF‬ﺑﺎﺷﺪ و ﻫﺮ ﺻﻔﺖ ﻏﻴﺮ ﻛﻠﻴﺪ‬ ‫ﺑﺎ ﻛﻠﻴﺪ اﺻﻠﻲ واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﻛﺎﻣﻞ داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬

‫‪ .2‬راﺑﻄﻪ‪ R‬در ﺳﻄﺢ ‪ 3NF‬اﺳﺖ اﮔﺮ و ﻓﻘﻂ اﮔﺮ ‪ 2NF‬ﺑﺎﺷﺪ و ﺻﻔﺎت ﻏﻴﺮ ﻛﻠﻴﺪ آن‬ ‫ﻣﺘﻘﺎﺑﻼ ﺑﻪ ﻳﻜﺪﻳﮕﺮ ﻧﺎواﺑﺴﺘﻪ ﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ .3‬راﺑﻄﻪ‪ R‬در ﺳﻄﺢ ‪ 3NF‬اﺳﺖ اﮔﺮ و ﻓﻘﻂ اﮔﺮ ‪ 2NF‬ﺑﺎﺷﺪ و واﺑﺴﺘﮕﻲ اﻧﺘﻘﺎﻟﻲ‬ ‫)‪ (transitive‬ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬ ‫‪2 .4‬و‪3‬‬ ‫‪ -12‬ﺻﻔﺖ ﻋﻤﺪه ‪ Prime Attribute‬ﻛﺪام اﺳﺖ ؟‬ ‫‪ .1‬ﺻﻔﺘﻲ ﻛﻪ ﺟﺰء ﺗﺸﻜﻴﻞ دﻫﻨﺪه ﻛﻠﻴﺪ ﺑﺎﺷﺪ‪.‬‬ ‫‪ .2‬ﻫﻤﺎن ﺻﻔﺖ ﻏﻴﺮ ﻛﻠﻴﺪ اﺳﺖ‪.‬‬

‫‪ 326‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ .3‬ﻫﻤﺎن ﻛﻠﻴﺪ اﺳﺖ‪.‬‬ ‫‪ .4‬ﻫﻴﭽﻜﺪام‬ ‫‪ -13‬ﻛﺪام ﮔﺰﻳﻨﻪ ﻧﺎدرﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬ﻣﻤﻜﻦ اﺳﺖ در ﻣﺮﺣﻠﻪ ‪ 2NF‬ﻛﺮدن ﻳﻚ راﺑﻄﻪ ‪ ،‬راﺑﻄﻪ ‪ 1NF‬ﺑﻪ ﺑﻴﺶ از دو راﺑﻄﻪ‬ ‫ﺗﺠﺰﻳﻪ ﺷﻮد‪.‬‬ ‫‪ .2‬ﻳﻚ ﺻﻔﺖ ﻏﻴﺮ ﻛﻠﻴﺪ ﻣﻤﻜﻦ اﺳﺖ ﺑﺘﻮاﻧﺪ ﺑﺎ ﻳﻚ ﺻﻔﺖ ﻏﻴﺮ ﻛﻠﻴﺪ دﻳﮕﺮ واﺑﺴﺘﮕﻲ‬ ‫ﺗﺎﺑﻌﻲ ﻧﺎﺗﺎم )ﻏﻴﺮ ﻛﺎﻧﻞ (داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬ ‫‪ .3‬در راﺑﻄﻪ دو ﮔﺎﻧﻲ )ﺑﺎﻳﻨﺮي( ‪ BCNF‬اﺳﺖ‪.‬‬ ‫‪ .4‬ﻫﻴﭽﻜﺪام‬ ‫‪ -14‬ﺗﻌﺮﻳﻒ ‪ BCNF‬ﻛﺪام اﺳﺖ ؟‬ ‫‪ .1‬راﺑﻄﻪاي ‪ BCNF‬اﺳﺖ اﮔﺮ در آن ﻫﺮ دﺗﺮﻣﻴﻨﺎن ‪ ،‬ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ ﺑﺎﺷﺪ‪.‬‬ ‫‪ .2‬راﺑﻄﻪ ‪ R‬در ‪ BCNF‬اﺳﺖ ﻫﺮﮔﺎه ﻳﻚ واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﺑﻪ ﺻﻮرت ‪) A→B‬اﻳﻦ‬ ‫واﺑﺴﺘﮕﻲ ﻧﺎﻣﻬﻢ ﻧﺒﺎﺷﺪ( در ﻣﺠﻤﻮﻋﻪ ‪ FD‬ﻫﺎي ‪ R‬وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ‪ A ،‬ﺳﻮﭘﺮ‬ ‫ﻛﻠﻴﺪ ‪ R‬ﺑﺎﺷﺪ‪.‬‬ ‫‪ .3‬راﺑﻄﻪاي ‪ BCNF‬اﺳﺖ اﮔﺮ و ﻓﻘﻂ اﮔﺮ ﺳﻤﺖ ﭼﭗ ﻫﺮ ‪ FD‬ﻣﻬﻢ و ﻛﺎﻫﺶ ﻧﺎﭘﺬﻳﺮ‬ ‫‪ ،‬ﻛﻠﻴﺪ ﻛﺎﻧﺪﻳﺪ راﺑﻄﻪ ﺑﺎﺷﺪ‪.‬‬ ‫‪ .4‬ﻫﺮ ﺳﻪ ﮔﺰﻳﻨﻪ‬ ‫‪ -15‬راﺑﻄﻪ )‪ R(SID,CID,PID‬ﻳﻌﻨﻲ )ﺷﻤﺎره اﺳﺘﺎد ‪ ،‬ﺷﻤﺎره درس ‪ ،‬ﺷﻤﺎره داﻧﺸﺠﻮ (‪ R‬را‬ ‫در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪ .‬ﻗﻮاﻋﺪ ﺳﻤﺎﻧﺘﻴﻚ زﻳﺮ در اﻳﻦ راﺑﻄﻪ وﺟﻮد دارد‪ :‬اﻟﻒ ( ﻳﻚ داﻧﺸﺠﻮ ‪ ،‬ﻳﻚ‬ ‫درس را ﺑﺎ ﻳﻚ اﺳﺘﺎد اﻧﺘﺨﺎب ﻣﻲ ﻛﻨﺪ‪ .‬ب( ﻳﻚ اﺳﺘﺎد ﻳﻚ درس را ﺗﺪرﻳﺲ ﻣﻲ ﻛﻨﺪ‪ .‬ج(‬ ‫ﻳﻚ درس ﺗﻮﺳﻂ ﭼﻨﺪ اﺳﺘﺎد ﺗﺪرﻳﺲ ﻣﻲ ﺷﻮد‪ .‬اﻳﻦ راﺑﻄﻪ در ﭼﻪ ﺳﻄﺢ ﻧﺮﻣﺎل ﺑﻮدن ﻗﺮار‬ ‫دارد ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪2NF‬‬ ‫‪3NF‬‬ ‫‪BCNF‬‬ ‫‪4NF‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪327‬‬

‫‪ -16‬راﺑﻄﻪاي ‪ 2NF‬اﺳﺖ ﻛﻪ‪:‬‬ ‫‪ 1NF .1‬ﺑﻮده و ﺻﻔﺘﻬﺎي آن ﺑﻪ زﻳﺮ ﻣﺠﻤﻮﻋﻪ ﻫﺎي ﻛﻠﻴﺪ اﺻﻠﻲ واﺑﺴﺘﮕﻲ ﻧﺪاﺷﺘﻪ‬ ‫ﺑﺎﺷﺪ‪.‬‬ ‫‪ 1NF .2‬ﺑﻮده و واﺑﺴﺘﮕﻲ اﻧﺘﻘﺎﻟﻲ )ﺗﻌﺪي( ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬ ‫‪1 .3‬و‪2‬‬ ‫‪ .4‬ﻫﻴﭽﻜﺪام‬ ‫‪ -17‬در راﺑﻄﻪ }‪ ، R={A,B,C,D‬ﻣﺠﻤﻮﻋﻪ ‪ FD‬ﻫﺎي زﻳﺮ را دارﻳﻢ‪:‬‬ ‫‪A→D , D→B , A→C‬‬

‫ﺳﻄﺢ ﻧﺮﻣﺎل ﺑﻮدن اﻳﻦ راﺑﻄﻪ و ﺗﺠﺰﻳﻪ ﻣﻄﻠﻮب آن ﻛﺪام اﺳﺖ ؟‬ ‫‪.1‬‬

‫‪R1(D,B) ، R2(A,D,C} ، 3NF‬‬

‫‪.2‬‬

‫‪R1(A,D) ، R2(A,B,C} ، BCNF‬‬

‫‪.3‬‬

‫‪R1(A,C,D) ، R2(A,D} ، 3NF‬‬

‫‪.4‬‬

‫‪R1(D,B) ، R2(A,C,D} ، 2NF‬‬

‫‪ -18‬ﺑﺎ ﺣﺬف ﻛﻠﻴﺪ واﺑﺴﺘﻪ ‪ ،‬ﭼﻪ ﺻﻮرﺗﻲ از ﻓﺮم ﻧﺮﻣﺎل اﻳﺠﺎد ﻣﻲ ﺷﻮد ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪1NF‬‬ ‫‪2NF‬‬ ‫‪3NF‬‬ ‫‪4NF‬‬

‫‪ -19‬ﺑﺎ ﺣﺬف اﺑﺮ ﻛﻠﻴﺪ ‪ ،‬ﭼﻪ ﺻﻮرﺗﻲ از ﻓﺮم ﻧﺮﻣﺎل اﻳﺠﺎد ﻣﻲ ﺷﻮد ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪1NF‬‬ ‫‪2NF‬‬ ‫‪3NF‬‬ ‫‪4NF‬‬

‫‪ -20‬ﺟﺎﻣﻊ ﺗﺮﻳﻦ ﻧﺮﻣﺎل ﺳﺎزي ﺑﺮ ﻣﺒﻨﺎي واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﺗﻮﺳﻂ ﻛﺪام ﺻﻮرت ﻧﺮﻣﺎل اراﺋﻪ‬ ‫ﻣﻲ ﺷﻮد ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪1NF‬‬ ‫‪2NF‬‬ ‫‪3NF‬‬ ‫‪BCNF‬‬

‫‪ -21‬ﺑﺎ ﺣﺬف واﺑﺴﺘﮕﻲ ﻫﺎي ﭼﻨﺪ ﻣﻘﺪاري )‪ (MVD‬ﭼﻪ ﺻﻮرﺗﻲ از ﻓﺮم ﻧﺮﻣﺎل اﻳﺠﺎد ﻣﻲ‬ ‫ﺷﻮد ؟‬

‫‪ 328‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪2NF‬‬ ‫‪3NF‬‬ ‫‪4NF‬‬ ‫‪BCNF‬‬

‫‪ -22‬در ﺗﺒﺪﻳﻞ‪ ............‬ﺑﻪ‪ .............‬آن را ﭼﻨﺎن ﺑﻪ ﭘﺮﺗﻮﻫﺎﻳﻲ ﺗﺠﺰﻳﻪ ﻣﻲ ﻛﻨﻴﻢ ﻛﻪ ﺗﻤﺎم‬ ‫واﺑﺴﺘﮕﻲ ﻫﺎي ﭘﻴﻮﻧﺪي ﻛﻪ از ﻛﻠﻴﺪﻫﺎي ﻛﺎﻧﺪﻳﺪ ﻧﺎﺷﻲ ﻧﻤﻲ ﺷﻮد ﺣﺬف ﮔﺮدد‪.‬‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪3NF-2NF‬‬ ‫‪4NF-3NF‬‬ ‫‪BCNF-3NF‬‬ ‫‪5NF-4NF‬‬

‫‪ -23‬ﺑﺮاي اﻳﻨﻜﻪ ﻳﻚ ﭘﺎﻳﮕﺎهداده اي راﺑﻄﻪاي ﺑﺘﻮاﻧﺪ ﺑﻪ درﺳﺘﻲ در ﻧﺮماﻓﺰار ﻣﺘﺪاول ﻃﺮاﺣﻲ‬ ‫ﺷﻮد ‪ ،‬آن ﭘﺎﻳﮕﺎهداده ﻫﺎ ﺑﺎﻳﺪ ﺣﺪاﻗﻞ ﺑﺮ اﺳﺎس ﭼﻪ ﻓﺮم ﻧﺮﻣﺎل )‪ (Normal Form‬ﻗﺮار‬ ‫ﮔﺮﻓﺘﻪ ﺑﺎﺷﺪ ؟‬ ‫‪ .1‬اول‬ ‫‪ .2‬دوم‬ ‫‪ .3‬ﺳﻮم‬ ‫‪ .4‬ﭼﻬﺎرم‬ ‫‪ -24‬اﮔﺮ ﺟﺪوﻟﻲ ﻳﻚ ﻓﻴﻠﺪ داﺷﺘﻪ ﺑﺎﺷﺪ ﻛﻪ ﺑﺴﺘﮕﻲ ﺑﻪ ﻗﺴﻤﺘﻲ از ﻛﻠﻴﺪ اﺻﻠﻲ داﺷﺘﻪ ‪ ،‬اﻳﻦ‬ ‫ﻧﻜﺘﻪ ﻧﻘﺾ ﻛﺪاﻣﻴﻚ از ﻗﻮاﻧﻴﻦ ﻓﺮم ﻧﺮﻣﺎل اﺳﺖ ؟‬ ‫‪ .1‬ﻓﺮم اول ﻧﺮﻣﺎل‬ ‫‪ .2‬ﻓﺮم دوم ﻧﺮﻣﺎل‬ ‫‪ .3‬ﻓﺮم ﺳﻮم ﻧﺮﻣﺎل‬ ‫‪ .4‬ﻓﺮم ﭼﻬﺎرم ﻧﺮﻣﺎل‬ ‫‪ -25‬اﮔﺮ ‪ 2‬ﻓﻴﻠﺪ ﻏﻴﺮ ﻛﻠﻴﺪي ﺑﺮ ﻳﻜﺪﻳﮕﺮ ﺑﺴﺘﮕﻲ داﺷﺘﻪ ﺑﺎﺷﻨﺪ ‪ ،‬اﻳﻦ ﻧﻘﺾ ﻛﺪاﻣﻴﻚ از‬ ‫ﻗﻮاﻧﻴﻦ ﻓﺮم ﻫﺎي ﻧﺮﻣﺎل اﺳﺖ ؟‬ ‫‪ .1‬اوﻟﻴﻦ ﻓﺮم ﻧﺮﻣﺎل‬ ‫‪ .2‬دوﻣﻴﻦ ﻓﺮم ﻧﺮﻣﺎل‬ ‫‪ .3‬ﺳﻮﻣﻴﻦ ﻓﺮم ﻧﺮﻣﺎل‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪329‬‬

‫‪ .4‬ﭼﻬﺎرﻣﻴﻦ ﻓﺮم ﻧﺮﻣﺎل‬ ‫‪ -26‬ﺑﻪ ﻃﻮر ﻛﻠﻲ ﭼﮕﻮﻧﻪ ﺗﺎﺛﻴﺮي از ﻋﻤﻠﻴﺎت ﻧﺮﻣﺎﻟﻴﺰه ﻛﺮدن ﺑﺮ روي ﻛﺎرﻛﺮد ﺑﺎﻧﻚ‬ ‫اﻃﻼﻋﺎﺗﻲ ﺑﻪ وﺟﻮد ﻣﻲ آﻳﺪ ؟‬ ‫‪ .1‬اﻧﻌﻄﺎف ﻛﻤﺘﺮي در ذﺧﻴﺮه ﺳﺎزي داده ﻫﺎ دارد‪.‬‬ ‫‪ .2‬اﻧﻌﻄﺎف ﺑﻴﺸﺘﺮي در ذﺧﻴﺮه ﺳﺎزي داده ﻫﺎ دارد‪.‬‬ ‫‪ .3‬اﻧﻌﻄﺎﻓﻲ در ذﺧﻴﺮه ﺳﺎزي داده ﻫﺎ ﻧﺪارد‪.‬‬ ‫‪ .4‬ﻫﻴﭽﻜﺪام‬ ‫‪-27‬وﻗﺘﻲ در ﻳﻚ ﺟﺪول ﺗﻌﺪادي ﺳﺘﻮن ﺑﺮاي ذﺧﻴﺮه ﺳﺎزي ﻣﻮردﻫﺎي ﻣﺨﺘﻠﻒ از ﻳﻚ داده‬ ‫وﺟﻮد دارد ﻣﺎﻧﻨﺪ …‪ phonenumber1 , phonenumber 2 ,‬اﻳﻦ ﻧﻜﺘﻪ ﻛﺪام ﻳﻚ از ﻣﻮارد‬ ‫ﻓﺮﻣﻬﺎي ﻧﺮﻣﺎل را ﻧﻘﺾ ﻣﻲ ﻛﻨﺪ ؟‬ ‫‪ .1‬ﻓﺮم اول ﻧﺮﻣﺎل‬ ‫‪ .2‬ﻓﺮم دوم ﻧﺮﻣﺎل‬ ‫‪ .3‬ﻓﺮم ﺳﻮم ﻧﺮﻣﺎل‬ ‫‪ .4‬ﻓﺮم ﭼﻬﺎرم ﻧﺮﻣﺎل‬ ‫‪ -28‬ﭼﻪ دﻟﻴﻠﻲ دارد ﻛﻪ اﻃﻼﻋﺎت ﻳﻚ ﭘﺎﻳﮕﺎه اﻃﻼﻋﺎﺗﻲ را ﺑﻴﻦ ﭼﻨﺪﻳﻦ ﻓﺎﻳﻞ ﺗﻮزﻳﻊ ﻧﻤﺎﺋﻴﻢ؟‬ ‫‪ .1‬ﺑﺮاي ﺟﻠﻮﮔﻴﺮي از ﺧﺮاﺑﻲ داده ﻫﺎ‬ ‫‪ .2‬ﺑﺮاي اﻳﻨﻜﻪ در ﺑﺎﻧﻜﻬﺎي ﺑﺰرگ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ دﭼﺎر ﻣﺸﻜﻞ ﻧﺸﻮد‪.‬‬ ‫‪ .3‬ﺑﺮاي ﻣﺪﻳﺮﻳﺖ ﺑﻬﺘﺮ داده ﻫﺎ‬ ‫‪ .4‬ﺑﺮاي ﺑﻬﺒﻮد ﺳﺮﻋﺖ دﺳﺘﻴﺎﺑﻲ ﺑﻪ داده ﻫﺎ‬ ‫‪ -29‬ﺟﺪول در‪ ....‬اﺳﺖ ﻛﻪ اﻟﻒ( ﻫﻤﻪ ﻛﻠﻴﺪﻫﺎي آن ﺗﻌﺮﻳﻒ ﺷﺪه ﺑﺎﺷﻨﺪ ب( ﺗﻤﺎم‬ ‫ﺻﻔﺘﻬﺎي آن ﺑﻪ ﻛﻠﻴﺪ اﺻﻠﻲ واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ داﺷﺘﻪ ﺑﺎﺷﻨﺪ ج( ﺻﻔﺘﻬﺎي آن از داﻣﻨﻪ ﺗﻮدرﺗﻮ‬ ‫)‪ (nested domain‬ﻧﺒﺎﺷﻨﺪ‪.‬‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪1NF‬‬ ‫‪2NF‬‬ ‫‪3NF‬‬ ‫‪4NF‬‬

‫‪ 330‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ -30‬در ﻛﺪام ﻓﺮم ﻧﺮﻣﺎل واﺑﺴﺘﮕﻲ اﻧﺘﻘﺎﻟﻲ )‪ (transitive‬وﺟﻮد ﻧﺪارد ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪2NF‬‬ ‫‪3NF,2NF‬‬ ‫‪4NF,3NF‬‬ ‫‪2NF‬‬

‫‪ -31‬ﺟﺪول داﻧﺸﺠﻮ )‪ (Stud‬در ﻳﻚ ﻣﻮﺳﺴﻪ آﻣﻮزﺷﻲ ﻛﻮﭼﻚ ﻛﻪ داﻧﺸﺠﻮي ﻫﻤﻨﺎم ﻧﺪارد‬ ‫را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪:‬‬ ‫)‪Stud (S# , Sname , address , avg‬‬ ‫‪S#‬ﺷﻤﺎره داﻧﺸﺠﻮ ‪ Sname ،‬ﻧﺎم داﻧﺸﺠﻮ ‪ Address ،‬آدرس داﻧﺸﺠﻮ و ‪ avg‬ﻣﻌﺪل اﺳﺖ‪.‬‬

‫اﻳﻦ ﺟﺪول ﺣﺪاﻛﺜﺮ در ﭼﻪ ﺳﻄﺢ ﻧﺮﻣﺎل ﻗﺮار دارد ؟‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫‪2NF‬‬ ‫‪3NF‬‬ ‫‪1NF‬‬ ‫‪BCNF‬‬

‫‪ -32‬ﻛﺪام ﮔﺰﻳﻨﻪ در راﺑﻄﻪ ﺑﺎ ﻧﺮﻣﺎل ﺳﺎزي درﺳﺖ اﺳﺖ ؟‬ ‫‪ .1‬اﮔﺮ ﻃﺮاح ﺗﺸﺨﻴﺺ دﻫﺪ ﻛﻪ ﺗﺠﺰﻳﻪ ﻳﻚ ﺟﺪول ﻫﺮ ﭼﻨﺪ اﻓﺰوﻧﮕﻲ ﻫﻢ داﺷﺘﻪ‬ ‫ﺑﺎﺷﺪ ‪ ،‬ﺑﺎﻋﺚ ﭘﺎﺋﻴﻦ آﻣﺪن ﺳﺮﻋﺖ اﻛﺜﺮ ﭘﺮس و ﺟﻮﻫﺎ ﻣﻲ ﺷﻮد ‪ ،‬ﻣﺠﺎز اﺳﺖ از‬ ‫ﻧﺮﻣﺎﻟﺘﺮ ﺳﺎزي آن ﺻﺮف ﻧﻈﺮ ﻛﻨﺪ‪.‬‬ ‫‪ .2‬رواﺑﻂ ‪ 3NF‬ي ﻛﻪ ﻣﻲ ﺗﻮاﻧﻨﺪ ﺗﺒﺪﻳﻞ ﺑﻪ ‪ BCNF‬ﺷﻮﻧﺪ را ﺣﺘﻤﺎ ﺑﺎﻳﺪ ‪ BCNF‬ﻛﺮد‬ ‫‪ .3‬در ﺗﺠﺰﻳﻪ راﺑﻄﻪ ‪ 3NF‬ﺑﻪ رواﺑﻂ ‪ BCNF‬ﻫﻴﭽﮕﺎه اﻃﻼﻋﺎت و ﻳﺎ واﺑﺴﺘﮕﻲﻫﺎﻳﻲ‬ ‫ﮔﻢ ﻧﻤﻲ ﺷﻮد‪.‬‬ ‫‪ .4‬ﻫﺮ ﺳﻪ ﮔﺰﻳﻨﻪ‬ ‫‪ -33‬ﺟﺪول زﻳﺮ ﺣﺪاﻛﺜﺮ در ﭼﻪ ﺳﻄﺢ ﻧﺮﻣﺎﻟﻲ ﻗﺮار دارد ؟‬ ‫ﻧﺎن ﻛﺘﺎب‬

‫ﻧﺎم درس‬

‫ﺷﻬﺮ داﻧﺸﻜﺪه‬

‫ﻧﺎم داﻧﺸﻜﺪه‬

‫ﻧﺎم اﺳﺘﺎد‬

‫ﻫﺮﺑﺮت ﺷﻴﻠﺪ‬

‫ﺑﺮﻧﺎﻣﻪ ﺳﺎزي‬

‫ﺗﻬﺮان‬

‫ﻛﺎﻣﭙﻴﻮﺗﺮ‬

‫اﻣﻴﺮي‬

‫ﻫﺮﺑﺮت ﺷﻴﻠﺪ‬

‫ﺑﺮﻧﺎﻣﻪ ﺳﺎزي‬

‫اراك‬

‫ﺑﺮق‬

‫اﻣﻴﺮي‬

‫ﻟﻴﭗ ﺷﻮﺗﺰ‬

‫ﺳﺎﺧﺘﻤﺎن داده‬

‫ﺗﻬﺮان‬

‫ﻛﺎﻣﭙﻮﺗﺮ‬

‫اﻣﻴﺮي‬

‫ﻟﻴﭗ ﺷﻮﺗﺰ‬

‫ﺳﺎﺧﺘﻤﺎن داده‬

‫اراك‬

‫ﺑﺮق‬

‫اﻣﻴﺮي‬

‫دﻳﺖ‬

‫ﭘﺎﻳﮕﺎهداده‬

‫ﺗﻬﺮان‬

‫ﻛﺎﻣﭙﻴﻮﺗﺮ‬

‫اﻣﻴﺮي‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬ ‫ﭘﺎﻳﮕﺎهداده‬

‫دﻳﺖ‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬

‫اراك‬

‫ﺑﺮق‬

‫‪331‬‬

‫اﻣﻴﺮي‬

‫‪2NF‬‬ ‫‪3NF‬‬ ‫‪BCNF‬‬ ‫‪4NF‬‬

‫ﭘﺎﺳﺦ ﺗﺴﺖ ﻫﺎي ﺳﺮي ‪10‬‬ ‫‪ (2) -1‬اﻳﻦ ﺳﻪ ﺟﺪول ﻋﺒﺎرﺗﻨﺪ از‪:‬‬ ‫ﺟﺪول ‪ :1‬ﺟﺪول داﻧﺸﺠﻮ‪ :‬ﺷﺎﻣﻞ ﻓﻴﻠﺪﻫﺎي ﻛﺪ داﻧﺸﺠﻮ و ﻧﺎم داﻧﺸﺠﻮ‬ ‫ﺟﺪول‪ :2‬ﺟﺪول درس‪ :‬ﺷﺎﻣﻞ ﻓﻴﻠﺪﻫﺎي ﻛﺪ درس ‪ ،‬ﻧﺎم درس و ﺗﻌﺪاد واﺣﺪ‬ ‫ﺟﺪول ‪ :3‬ﺟﺪول داﻧﺸﺠﻮ‪ -‬درس‪ :‬ﺷﺎﻣﻞ ﻓﻴﻠﺪﻫﺎي ﻛﺪ داﻧﺸﺠﻮ و ﻛﺪﻫﺎي درس‬ ‫‪ (2) -2‬از آﻧﺠﺎ ﻛﻪ ﻧﺮﻣﺎل ﺗﺮ ﺳﺎزي ﺑﺎﻋﺚ ﺗﺠﺰﻳﻪ ﺟﺪاول ﻣﻲ ﺷﻮد ﮔﺎﻫﻲ اوﻗﺎت ﺑﺮاي‬ ‫ﺑﺎزﻳﺎﺑﻲ ﻧﻴﺎز ﺑﻪ ﭘﻴﻮﻧﺪ ﻣﺠﺪد اﻳﻦ ﺟﺪاول دارﻳﻢ ﻛﻪ ﺑﺎﻋﺚ اﻓﺰاﻳﺶ ﺳﺮﺑﺎر ﺳﻴﺴﺘﻢ ﻣﻲ ﮔﺮدد‪.‬‬ ‫‪ (2) -3‬ﺗﺴﻬﻴﻞ ﭘﻴﺎده ﺳﺎزي دﻳﺪ ﻛﺎرﺑﺮ از اﻫﺪاف ﻛﻠﻲ ﻓﺮآﻳﻨﺪ ﻧﺮﻣﺎل ﺳﺎزي زﻳﺮا در ﺑﺮﺧﻲ‬ ‫ﻣﻮاﻗﻊ اﻳﻦ ﻛﺎر ﺑﺎﻋﺚ ﻣﺸﻜﻞ ﺗﺮ ﺷﺪن ﭘﻴﺎده ﺳﺎزي دﻳﺪ ﻛﺎرﺑﺮ ﻧﻴﺰ ﻣﻲ ﺷﻮد‪.‬‬ ‫‪ (3) -4‬ﻫﻤﻴﺸﻪ ﭘﺲ از ﺗﺠﺰﻳﻪ ﻳﻚ راﺑﻄﻪ ﺑﻪ دو راﺑﻄﻪ و ﭘﻴﻮﻧﺪ ﻣﺠﺪد راﺑﻄﻪ ﻫﺎي ﺣﺎﺻﻠﻪ‬ ‫ﻟﺰوﻣﺎ ﺑﻪ راﺑﻄﻪ ﻧﺨﺴﺘﻴﻦ ﻧﻤﻲ رﺳﻴﻢ‪.‬‬ ‫‪ (4) -5‬در راﺑﻄﻪ ‪ 2NF‬ﻣﻤﻜﻦ اﺳﺖ آﻧﻮﻣﺎﻟﻴﻬﺎﻳﻲ در درج ‪ ،‬ﺣﺬف و ﺑﻬﻨﮕﺎم ﺳﺎزي داﺷﺘﻪ‬ ‫ﺑﺎﺷﻴﻢ‪.‬‬ ‫‪ (3) -6‬ﮔﺰﻳﻨﻪ ﻫﺎي ‪ 1‬و ‪ 2‬درﺳﺖ ﻣﻲ ﺑﺎﺷﻨﺪ‪ .‬راﺑﻄﻪاي ‪ 2NF‬اﺳﺖ اﮔﺮ و ﻓﻘﻂ اﮔﺮ ‪1NF‬‬

‫ﺑﺎﺷﺪ و ﻫﺮ ﺻﻔﺖ ﺧﺎﺻﻪ ﻏﻴﺮ ﻛﻠﻴﺪ ﺑﺎ ﻛﻠﻴﺪ اﺻﻠﻲ واﺑﺴﺘﮕﻲ ﺗﺎﺑﻌﻲ ﻛﺎﻣﻞ داﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬ﺗﻮﺟﻪ‬ ‫ﻛﻨﻴﺪ ﺗﻌﺮﻳﻒ ﮔﺰﻳﻨﻪ ‪ 4‬ﺑﺮاي ‪ 3NF‬ﻣﻌﺎدل ﺗﻌﺮﻳﻒ ﮔﺰﻳﻨﻪ ‪ 2‬ﻣﻲ ﺑﺎﺷﺪ‪.‬‬ ‫‪(1) -7‬‬ ‫‪(4) -8‬‬ ‫‪(4) -9‬‬

‫‪ 332‬ﭘﺎﻳﮕﺎه داده ﻫﺎ‬

‫‪ (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‬‬

‫ﻣﺠﻤﻮﻋﻪ ﺳﺌﻮاﻻت‬

‫‪333‬‬

‫‪ (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‬ﻣﻲ ﺗﻮان آن را ﺑﻪ دو ﺟﺪول زﻳﺮ‬ ‫ﺗﺠﺰﻳﻪ ﻛﺮد‪:‬‬ ‫ﻧﺎم ﻛﺘﺎب‬

‫ﻧﺎم درس‬

‫ﻧﺎم اﺳﺘﺎد‬

‫ﺷﻬﺮ داﻧﺸﻜﺪه‬

‫ﻧﺎم داﻧﺸﻜﺪه‬

‫ﻧﺎم اﺳﺘﺎد‬

‫ﻫﺮﺑﺮت ﺷﻴﻠﺪ‬

‫ﺑﺮﻧﺎﻣﻪ ﺳﺎزي‬

‫اﻣﻴﺮي‬

‫ﺗﻬﺮان‬

‫ﻛﺎﻣﭙﻴﻮﺗﺮ‬

‫اﻣﻴﺮي‬

‫ﻟﻴﭗ ﺷﻮﺗﺰ‬

‫ﺳﺎﺧﺘﻤﺎن داده‬

‫اﻣﻴﺮي‬

‫اراك‬

‫ﺑﺮق‬

‫اﻣﻴﺮي‬

‫دﻳﺖ‬

‫ﭘﺎﻳﮕﺎهداده‬

‫اﻣﻴﺮي‬

۲ ‫ﺿﻤﻴﻤﻪ‬ SQL 99 _ BNF BNF Grammar for ISO/IEC 9075:1999 Database Language SQL (SQL-99) ======================================================= --p Note that this version of this file includes the corrections from ISO 9075:1999/Cor.1:2000. --/p --p The plain text version of this grammar is --##
sql-99.bnf . --/p --hr --h2 Key SQL Statements and Fragments --/h2 --bl --li ALTER DOMAIN --li ALTER TABLE --li CLOSE cursor --li Column definition --li COMMIT WORK --li CONNECT --li CREATE ASSERTION --li CREATE CHARACTER SET --li CREATE COLLATION --li CREATE DOMAIN --li CREATE FUNCTION --li CREATE PROCEDURE --li CREATE SCHEMA --li CREATE TABLE --li CREATE TRANSLATION --li CREATE TRIGGER --li CREATE VIEW --li Data type --li DEALLOCATE PREPARE --li DECLARE cursor --li DECLARE LOCAL TEMPORARY TABLE --li DELETE --li DESCRIBE --li DESCRIPTOR statements --li DISCONNECT

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

336

--li EXECUTE --li EXECUTE IMMEDIATE --li FETCH cursor --li FROM clause --li GET DIAGNOSTICS --li GRANT --li GROUP BY clause --li HAVING clause --li INSERT --li Literals --li OPEN cursor --li ORDER BY clause --li PREPARE --li REVOKE --li ROLLBACK WORK --li SAVEPOINT --li Search condition --li SELECT --li SET CATALOG --li SET CONNECTION --li SET CONSTRAINTS --li SET NAMES --li SET SCHEMA --li SET SESSION AUTHORIZATION --li SET TIME ZONE --li SET TRANSACTION --li SQL Client MODULE --li UPDATE --li Value expression --li WHERE clause --/bl --hr --h2 Identifying the version of SQL in use --/h2 --p This material (starting with ) is defined in section 6.3 "Object Identifier for Database Language SQL" of ISO/IEC 9075-1:1999 (SQL Framework). It is used to express the capabilities of an implementation. The package names are identifiers such as 'PKG001', equivalent to 'Enhanced datetime facilities', as defined in the informative Annex B to SQL Framework. Each such package identifies a number of features that are provided when the SQL object identifier claims to provide the package. --/p ::= ::= ::=iso | 1 | iso 1 ::=standard | 0 | standard 0 ::=9075 ::= ::= <1987> | <1989> | <1992> | <1999> <1987>::=0 | edition1987 0 <1989>::= <1989 base> <1989 package> <1989 base>::=1 | edition1989 1 <1989 package>::= | ::=0 | IntegrityNo 0 ::=1 | IntegrityYes 1 <1992>::=2 | edition1992 2 <1999>::=3 | edition1999 3 ::=

337 SQL 99 _ BNF ::= | | ::=0 | Low 0 ::=1 | Intermediate 1 ::=2 | High 2 ::= --p --small --i The parenthesized (i) and (n) are italic in the SQL standard. It is not clear exactly what this should look like, despite all the Information. However, it is also not important; this is not really a part of the SQL language per se. Note that the package numbers are PKG001 to PKG009, for example. We still have to devise a mechanism to persuade bnf2yacc.pl to ignore this information. --/i --/small --/p ::= ... ::= | ::=0 | Part-(n)No 0 ::=!! (as specified in ISO/IEC 9075-(n)) ::= | ::= ::=3 | sqlcli1999 3 ::= ::=4 | sqlpsm1999 4 ::= | ::=1 | moduleyes 1 ::=0 | moduleno 0 ::= --p --small --i The original used sqlbindings199x, but the x should clearly be a 9. --/i --/small --/p ::=5 | sqlbindings1999 5 ::= | ::=1 | directyes 1 ::=0 | directno 0 ::= | ... ::=0 | embeddedno 0 ::= | | | | | | ::=1 | embeddedAda 1 ::=2 | embeddedC 2 ::=3 | embeddedCOBOL 3 ::=4 | embeddedFortran 4 ::=5 | embeddedMUMPS 5 ::=6 | embeddedPascal 6 ::=7 | embeddedPLI 7 --hr --h2 Basic Definitions of Characters Used, Tokens, Symbols, Etc.

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

338

--/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 ::= ::= | | ::= | ::= 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 ::= 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 ::=0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 ::= | | | | | | | | | | | | | | | | | | | | | | | | | ::=!! (See the Syntax Rules) ::=" ::=% ::=& ::=' ::=( ::=) ::=* ::=+ ::=, ::=::=. ::=/ ::=: ::=; ::= <

339 SQL 99 _ BNF ::== ::=> ::=? ::=[ ::=] ::=^ ::=_ ::=| ::={ ::=} --hr --h2 Literal Numbers, Strings, Dates and Times --/h2 --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= [ ] [ ] [ ... ] ... ::= MODULE [ ] [ ] ::= ::= ::= | ::= --p --small --i modified per ISO 9075:1999/Cor.1:2000(E). --/i --/p --p --i also rationalized by removing curly brackets around because they are unnecessary and inconsistent with other places where '...' modifies a single non-terminal. --/i --/small --/small --/p ::= [ ... ] ::= | ::=!! (See the Syntax Rules) ::=!! (See the Syntax Rules) ::= | | | | | | |

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

340

| ::=!! (See the Syntax Rules) ::=!! (See the Syntax Rules) ::=!! (See the Syntax Rules) ::=!! (See the Syntax Rules) ::=!! (See the Syntax Rules) ::=!! (See the Syntax Rules) ::=!! (See the Syntax Rules) ::= ::= ... ::= | ::=!! (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 ::= ::=NAMES ARE ::= | | ::= ::=[ ] ::=[ ] ::= ::= ::= [ { | }... ] ::= ::= | ::= ::= ::=LANGUAGE ::=ADA | C | COBOL | FORTRAN | MUMPS | PASCAL | PLI | SQL ::= SCHEMA | AUTHORIZATION | SCHEMA AUTHORIZATION ::= ::= | ::= ::= ::= ::=PATH ::= [ { }... ] ::= ::= TRANSFORM GROUP { | } ::= ::= ::= [ { }... ] ::= FOR TYPE ::=

341 SQL 99 _ BNF ::= ::=[ ] ::= ::= DECLARE LOCAL TEMPORARY TABLE
[ ON COMMIT
ROWS ]
::= ::=[ ] ::= | MODULE
::=
[ {
}... ]
::= |
| | | ::= { | } [ ] [ ] [ ... ] [ ] ::= --hr --h2 Data Types --/h2 ::= | | | | ::= [ CHARACTER SET ] | | | | | | | ::= CHARACTER [ ] | CHAR [ ] | CHARACTER VARYING | CHAR VARYING | VARCHAR | CHARACTER LARGE OBJECT [ ] | CHAR LARGE OBJECT [ ] | CLOB [ ] ::= ::= ... ::= [ ] | ::=K | M | G ::= ...

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

342

::= NATIONAL CHARACTER [ ] | NATIONAL CHAR [ ] | NCHAR [ ] | NATIONAL CHARACTER VARYING | NATIONAL CHAR VARYING | NCHAR VARYING | NATIONAL CHARACTER LARGE OBJECT [ ] | NCHAR LARGE OBJECT [ ] | NCLOB [ ] ::= BINARY LARGE OBJECT [ ] | BLOB [ ] ::= BIT [ ] | BIT VARYING ::= | ::= NUMERIC [ [ ] ] | DECIMAL [ [ ] ] | DEC [ [ ] ] | INTEGER | INT | SMALLINT ::= ::= ::= FLOAT [ ] | REAL | DOUBLE PRECISION ::=BOOLEAN ::= DATE | TIME [
::= ::= ::=ARRAY ::= | --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 ::= ::= | ::= ::= ::=DEFAULT ::= | | USER | CURRENT_USER | CURRENT_ROLE | SESSION_USER | SYSTEM_USER | CURRENT_PATH | --hr --h2 Literals --/h2 ::= | ::=[ ] ::= | ::= | ::= [ [ ] ] | ::= E ::=

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

344

::= ::=[ ] ::= | | | | | | | ::= [ ] [ ... ] [ { [ ... ] }... ] ::= ::= | ::=!! (See the Syntax Rules.) --p --small --i The rule consists of two immediately adjacent marks with no spaces. As usual, this would be best handled in the lexical analyzer, not in the grammar. --/i --/small --/p ::= ::={ | }... ::= | ::= [ ... ] ::= [ ... ] ::= | ::=!! (See the Syntax Rules) --p --small --i The rule included '!! (See the Syntax Rules)'. This probably says something about the and needing to be adjacent characters rather than adjacent tokens. --/i --/small --/p ::= ::= ::=[ { | }... ] ::= ::=!! (See the Syntax Rules) ::= N [ ... ] [ { [ ... ] }... ] ::= B [ ... ] [ { [ ... ] }... ] ::=0 | 1 ::= X [ ... ] [ { [ ... ] }... ]

345 SQL 99 _ BNF ::= | A | B | C | D | E | F | a | b | c | d | e | f ::= X [ { }... ] [ { [ { }... ] }... ] ::= |
[ ] ::= ::= [ { }... ] ::=FULL | PARTIAL | SIMPLE ::= [ ] | [ ] ::=ON UPDATE ::=ON DELETE ::=CHECK --hr --h2 Search Condition --/h2 ::= ::= | OR ::= | AND ::=[ NOT ] ::= [ IS [ NOT ] ] ::= | | ::= | | | | | | | | | | | | ::= ::= | ::= | ::= |

346

347 SQL 99 _ BNF ::= | | | | | CURRENT_DEFAULT_TRANSFORM_GROUP | CURRENT_PATH | CURRENT_ROLE | CURRENT_TRANSFORM_GROUP_FOR_TYPE | CURRENT_USER | SESSION_USER | SYSTEM_USER | USER | VALUE ::= [ ] ::= ::=[ INDICATOR ] ::= ::= ::= [ { }... ] ::= | | | | | | | | ::= | | ::= | | ::=[ ] ::= | ::= | ::= ::= | | | | | | | | | |

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

348

| | | | | ::= | ::= | ::= | MODULE ::= COUNT | | ::= [ ] ::= ::=AVG | MAX | MIN | SUM | EVERY | ANY | SOME | COUNT ::=DISTINCT | ALL ::=GROUPING --hr --h2 Queries --/h2 ::= ::= ::=[ ] ::=WITH [ RECURSIVE ] ::= [ { }... ] ::= [ ] AS [ ] ::= ::= ::= | | ::= SEARCH SET ::= DEPTH FIRST BY | BREADTH FIRST BY ::= [ { }... ] --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= [ ] ::= ::=ASC | DESC ::= ::= CYCLE SET TO

349 SQL 99 _ BNF DEFAULT USING ::= [ { }... ] ::= ::= ::= ::= ::= ::= | ::= | UNION [ ALL | DISTINCT ] [ ] | EXCEPT [ ALL | DISTINCT ] [ ] ::= | INTERSECT [ ALL | DISTINCT ] [ ] ::= | ::= |
| ::=SELECT [ ]
[ { ::= | ::= [ ] ::=[ AS ] ::= | ::= [ { }... ] ::= ::=
::= [ ] [ ] [ ] ::=FROM
::=
[ {
}... ]
::=
|
::=
[ [ AS ] [ ] ] | [ AS ] [ ] | [ AS ] [ ] | [ AS ] [ ] | [ [ AS ] [ ] ] |
::=
| ::= ::= ::=
::= ::=LATERAL ::= UNNEST [ WITH ORDINALITY ]

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

350

::= ::=ONLY
::= | | | ::=
CROSS JOIN
::=
[ ] JOIN
::=INNER | [ OUTER ] ::=LEFT | RIGHT | FULL ::= | ::=ON ::=USING ::= ::=
NATURAL [ ] JOIN
::=
UNION JOIN
::=WHERE --p --small --i Rules from to modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::=GROUP BY ::= [ { }...] ::= | | | | ::= [ ] ::=ROLLUP ::= [ { }... ] ::=CUBE ::=GROUPING SETS ::= [ { }... ] ::= | | | | ::= | ::= ::= ::=HAVING
::=VALUES ::= [ { }... ] ::=TABLE
--hr --h2 Query expression components --/h2 ::= | ::= CORRESPONDING [ BY ] ::= ::= |

351 SQL 99 _ BNF ::= | ::= NULLIF | COALESCE { }... ::= | ::=CASE ... [ ] END ::= ::=WHEN THEN ::= ::= | NULL ::= ::=ELSE ::=CASE ... [ ] END ::=WHEN THEN ::=CAST AS ::= | ::= | --p --small --i to modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= TREAT AS ::= ::= ::= [ ] ::= ::=-> ::= [[{ }... ] ] ::= | | ::= AS ::= | | | | | ::=DEREF ::= ::= ::= | | ::= ::= ARRAY ::= [ { }... ] ::= ::= ::= ::=||

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

352

::= ::= ::=[ ] ::= ::= ::= | ::= [ ] ::= ::= AS [ ] --p --small --i It is not remotely clear why this was needed in this grammar. --/i --i added per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= ::= [ ] --p --small --i Note that must be a pair of characters with no intervening space, not a pair of colon symbols separated by arbitrary white space. Normally, the lexical analyzer would return as a symbol. --/i --/small --/p ::= ::=NEW ::= | | | | | ::= | ::= POSITION IN ::= | | ::= | ::= ::= [ ] ::= | ::= | | ::= | |

353 SQL 99 _ BNF | | | | |

::= SUBSTRING FROM [ FOR ] ::= ::= --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= SUBSTRING SIMILAR ESCAPE ::= ::={ UPPER | LOWER } ::= CONVERT USING ::= ::= TRANSLATE USING ::= ::=TRIM ::=[ [ ] [ ] FROM ] ::=LEADING | TRAILING | BOTH ::= ::= ::= OVERLAY PLACING FROM [ FOR ] ::= SPECIFICTYPE ::= ::= | | ::= SUBSTRING FROM [ FOR ] ::= | ::= ::= ::= | ::=TRIM ::=[ [ ] [ ] FROM ] ::= ::= ::= OVERLAY PLACING FROM [ FOR ] ::= ::= SUBSTRING FROM

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

354

[ FOR ] ::= | ::= ::= ::= | ::= POSITION IN ::= EXTRACT FROM ::= |
| --p --small --i Previously, the expression in curly braces was not in square brackets. --/i --i Consequently, every had to have at least two items in it. --/i --/small --/p ::= [ { }... ] ::= | ::= [ NOT ] LIKE [ ESCAPE ] ::= ::= ::= [ NOT ] LIKE [ ESCAPE ] ::= ::= ::= ::= IS [ NOT ] NULL ::=
::= | ::=ALL

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

356

::=SOME | ANY ::=EXISTS
::=UNIQUE
::= MATCH [ UNIQUE ] [ SIMPLE | PARTIAL | FULL ]
::= OVERLAPS ::= ::= ::= [ NOT ] SIMILAR TO [ ESCAPE ] ::= --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 used in 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 ::= | ::= | ::= | | ::= | | | ::= | ::=!! (See the Syntax Rules) ::=!! (See the Syntax Rules) ::= | ... | ... | ::= | ::= --hr ::= IS DISTINCT FROM ::= ::= ::= IS [ NOT ] OF

357 SQL 99 _ BNF ::= [ { }... ] ::= | ::= ::=ONLY ::= ::=TRUE | FALSE | UNKNOWN --hr --h2 More about constraints --/h2 ::= [ [ NOT ] DEFERRABLE ] | [ NOT ] DEFERRABLE [ ] ::=INITIALLY DEFERRED | INITIALLY IMMEDIATE
::= [ ]
[ ]
::= | | --p --small --i The standard documents UNIQUE ( VALUE ) but there is no explanation of why that is different from the UNIQUE VALUE used here. --/i --/small --/p ::= | UNIQUE VALUE ::= ::= FOREIGN KEY ::= ::=LIKE
::= REF IS ::= ::=SYSTEM GENERATED | USER GENERATED | DERIVED ::= WITH OPTIONS ::= [ ] [ ] [ ... ] [ ]
::=PRESERVE | DELETE --hr --h2 Module contents --/h2 ::= | | ::= DECLARE [ ] [ ] CURSOR [ ] [ ] FOR ::=

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬ ::=[ ] ::=MODULE ::=SENSITIVE | INSENSITIVE | ASENSITIVE ::=SCROLL | NO SCROLL ::=WITH HOLD | WITHOUT HOLD ::=WITH RETURN | WITHOUT RETURN ::= [ ] [ ] ::=ORDER BY ::=FOR { READ ONLY | UPDATE [ OF ] } --hr --h2 SQL Procedures --/h2 ::= PROCEDURE ::= --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= ::= [ { }... ] ::= | ::= [ ] ::=AS LOCATOR ::=SQLSTATE ::= ::= | | | | | | | --hr --h2 SQL Schema Definition Statements --/h2 ::= | --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= |
|

358

359 SQL 99 _ BNF | | | | | | | | | | | | | | ::= CREATE SCHEMA [ ] [ ... ] ::= | AUTHORIZATION | AUTHORIZATION ::= ::= | | | ::= DEFAULT CHARACTER SET ::= --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::=
| | | | | | | | | | | | | |
::= CREATE [
] TABLE
[ ON COMMIT
ROWS ]
::= TEMPORARY ::=GLOBAL | LOCAL
::=


‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

360

| OF [ ] [
] ::=UNDER ::= ::=
::= CREATE [ RECURSIVE ] VIEW
AS [ WITH [ ] CHECK OPTION ] ::= | ::=[ ] ::= ::=OF [][] ::=UNDER
::= [ ] [ { }... ] ::= ::= WITH OPTIONS ::=CASCADED | LOCAL ::= CREATE DOMAIN [ AS ] [ ] [ ... ] [ ] ::= [ ] [ ] ::= CREATE CHARACTER SET [ AS ] [ ] ::=GET ::= CREATE COLLATION FOR FROM [ ] ::= ::=NO PAD | PAD SPACE ::= CREATE TRANSLATION FOR TO FROM ::= ::= ::= | ::= ::= --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= SPECIFIC | [ FOR ] --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= ROUTINE | FUNCTION | PROCEDURE

361 SQL 99 _ BNF | [ INSTANCE | STATIC | CONSTRUCTOR ] METHOD ::= ::= [ ] ::= ::= [ [ { }... ] ] ::= CREATE ASSERTION CHECK [ ] ::= CREATE TRIGGER ON
[ REFERENCING ] ::= ::=BEFORE | AFTER ::=INSERT | DELETE | UPDATE [ OF ] ::= ::= ... ::= OLD [ ROW ] [ AS ] | NEW [ ROW ] [ AS ] | OLD TABLE [ AS ] | NEW TABLE [ AS ] ::= ::= ::= ::= ::= [ FOR EACH { ROW | STATEMENT } ] [ WHEN ] ::= | BEGIN ATOMIC { }... END ::=CREATE TYPE --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= [ ] [ AS ] [ ] [ ] [ ] [ ] [ ] ::=UNDER ::= ::= | ::= [ { }... ] ::= ::= [ ] [ ] [ ] ::= ::= ::=INSTANTIABLE | NOT INSTANTIABLE ::=FINAL | NOT FINAL

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

362

::= | | ::=REF USING ::=[ ] [ ] ::= CAST SOURCE AS REF WITH ::= ::= CAST REF AS SOURCE WITH ::= ::=REF FROM ::= [ { }...] ::=REF IS SYSTEM GENERATED ::=[ ] [ ] ::= CAST SOURCE AS DISTINCT WITH ::= ::= CAST DISTINCT AS SOURCE WITH ::= ::= [ { }... ] ::= | ::= [ SELF AS RESULT ] [ SELF AS LOCATOR ] [ ] --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= [ INSTANCE | STATIC | CONSTRUCTOR ] METHOD [ SPECIFIC ] ::= [ [ { }... ] ] ::= [ ] [ ] [ RESULT ] ::=IN | OUT | INOUT ::= ::= [ ] ::=RETURNS [ ] ::= [ ] ::=CAST FROM ::= [ ] --p --small --i added per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::=[ ] ::= ...

363 SQL 99 _ BNF --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= | | | | ::=PARAMETER STYLE ::=SQL | GENERAL ::=DETERMINISTIC | NOT DETERMINISTIC ::= NO SQL | CONTAINS SQL | READS SQL DATA | MODIFIES SQL DATA ::= RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT ::=OVERRIDING ::= | ::=CREATE ::= PROCEDURE ::=[ ... ] --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= | | SPECIFIC | | | | ::= DYNAMIC RESULT SETS ::= ::= | ::= --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= EXTERNAL [ NAME ] [ ] [ ] [ ] ::= |

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

364

::= EXTERNAL SECURITY DEFINER | EXTERNAL SECURITY INVOKER | EXTERNAL SECURITY IMPLEMENTATION DEFINED ::=CREATE ::= { | } ::= FUNCTION [ ] ::=STATIC DISPATCH --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= [ INSTANCE | STATIC | CONSTRUCTOR ] METHOD [ ] FOR ::= | ::= GRANT TO [ { }... ] [ WITH HIERARCHY OPTION ] [ WITH GRANT OPTION ] [ GRANTED BY ] ::= ON ::=ALL PRIVILEGES | [ { }... ] ::= SELECT | SELECT | SELECT | DELETE | INSERT [ ] | UPDATE [ ] | REFERENCES [ ] | USAGE | TRIGGER | UNDER | EXECUTE ::= ::= [ { }... ] ::= [ TABLE ]
| DOMAIN | COLLATION | CHARACTER SET | MODULE | TRANSLATION | TYPE | ::=PUBLIC | ::=CURRENT_USER | CURRENT_ROLE ::= GRANT [ { }... ] TO [ { }... ] [ WITH ADMIN OPTION ] [ GRANTED BY ] ::=

365 SQL 99 _ BNF ::=CREATE ROLE [ WITH ADMIN ] ::= | ::= CREATE CAST AS WITH [ AS ASSIGNMENT ] ::= ::= --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= CREATE ORDERING FOR ::= | ::=EQUALS ONLY BY ::= | | ::=RELATIVE WITH ::= ::=MAP WITH ::= ::=STATE [ ] ::=ORDER FULL BY --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= CREATE { TRANSFORM | TRANSFORMS } FOR ... ::= ::= [ ] ::= | ::=TO SQL WITH ::= ::=FROM SQL WITH ::= --hr --h2 SQL Schema Manipulation Statements --/h2 ::= | | | | | | | | | | | | |

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

366

| | | | | | | ::=DROP SCHEMA ::=CASCADE | RESTRICT ::=ALTER TABLE
::= | | | | ::=ADD [ COLUMN ] ::=ALTER [ COLUMN ] ::= | | | ::=SET ::=DROP DEFAULT ::=ADD ::=DROP SCOPE ::=DROP [ COLUMN ] ::=ADD
::=DROP CONSTRAINT ::=DROP TABLE
::=DROP VIEW
::= ALTER ::= ... ::= | | | | | NAME ::=RESTRICT ::=DROP ::= DROP CAST AS ::= | ::= REVOKE [ ] FROM [ { }... ] [ GRANTED BY ] ::=GRANT OPTION FOR | HIERARCHY OPTION FOR ::= REVOKE [ADMIN OPTION FOR] [{ }...] FROM [ { }... ] [ GRANTED BY ]

367 SQL 99 _ BNF ::= ::=DROP ROLE ::=ALTER DOMAIN ::= | | | ::=SET ::=DROP DEFAULT ::=ADD ::=DROP CONSTRAINT ::=DROP DOMAIN ::=DROP CHARACTER SET ::=DROP COLLATION ::=DROP TRANSLATION ::=DROP ASSERTION ::=DROP TRIGGER ::=ALTER TYPE ::= | | | | ::=ADD ATTRIBUTE ::=DROP ATTRIBUTE RESTRICT ::=ADD ::=ADD --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::=DROP RESTRICT --p --small --i added per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= SPECIFIC METHOD | [ INSTANCE | STATIC | CONSTRUCTOR ] METHOD [ ] ::=DROP TYPE --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= DROP ORDERING FOR --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

368

--/small --/p ::= DROP { TRANSFORM | TRANSFORMS } FOR ::=ALL | ::= --hr --h2 SQL Data Manipulation Statements --/h2 ::= | | | ::= SELECT [ ]
| [ ONLY ]
::=

369 SQL 99 _ BNF DELETE FROM [ WHERE ] ::= INSERT INTO ::=
::= | | ::= [ ] [ ] ::= ::= [ ] [ ] ::=OVERRIDING USER VALUE | OVERRIDING SYSTEM VALUE ::= VALUES ::= [ { }... ] ::= | ::= | [ ROW ] ::= | ::= | ::=DEFAULT ::= [ { }... ] ::=DEFAULT VALUES ::= UPDATE SET WHERE CURRENT OF ::= [ { }... ] ::= | --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= | ::= ::= | ::= ::= | ::= UPDATE SET [ WHERE ] --hr --h2 SQL Control Statements --/h2

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

370

::= | | | | | | | | | | | ::=CALL ::=RETURN ::= | NULL --hr --h2 Transaction Management --/h2 ::= | | | | | | ::= START TRANSACTION [ { }...] ::= | | ::=ISOLATION LEVEL ::= READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE ::=READ ONLY | READ WRITE ::=DIAGNOSTICS SIZE ::= ::=SET [ LOCAL ] ::= TRANSACTION [ { }... ] ::= SET CONSTRAINTS { DEFERRED | IMMEDIATE } ::=ALL | [ { }... ] ::=SAVEPOINT --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= ::= ::= | | |

371 SQL 99 _ BNF | ::=RELEASE SAVEPOINT ::=COMMIT [ WORK ] [ AND [ NO ] CHAIN ] ::=ROLLBACK [ WORK ] [ AND [ NO ] CHAIN ] [ ] ::=TO SAVEPOINT --hr --h2 Connection Management --/h2 ::= | | ::=CONNECT TO ::= [ AS ] [ USER ] | DEFAULT ::= ::= ::= ::=SET CONNECTION ::=DEFAULT | ::=DISCONNECT ::= | ALL | CURRENT --hr --h2 Session Attributes --/h2 ::= | | | | | | | | ::= SET SESSION AUTHORIZATION ::=SET ROLE ::= | NONE ::=SET TIME ZONE ::= | LOCAL ::= SET SESSION CHARACTERISTICS AS ::= [ { }... ] ::= ::= | | ::=GET DIAGNOSTICS ::= | ::= [ { }... ] ::= ::= NUMBER | MORE | COMMAND_FUNCTION | COMMAND_FUNCTION_CODE | DYNAMIC_FUNCTION | DYNAMIC_FUNCTION_CODE

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

372

| ROW_COUNT | TRANSACTIONS_COMMITTED | TRANSACTIONS_ROLLED_BACK | TRANSACTION_ACTIVE ::= EXCEPTION [ { }... ] ::= ::= ::= 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 ::= ::= ::= --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= | ::= ::= | ::= | | |

373 SQL 99 _ BNF | | | | ::= | --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= ABSOLUTE | ACTION | ADD | AFTER | ALL | ALLOCATE | ALTER | AND | ANY | ARE | ARRAY | AS | ASC | ASSERTION | AT | AUTHORIZATION | BEFORE | BEGIN | BETWEEN | BINARY | BIT | BLOB | BOOLEAN | BOTH | BREADTH | BY | CALL | CASCADE | CASCADED | CASE | CAST | CATALOG | CHAR | CHARACTER | CHECK | CLOB | CLOSE | COLLATE | COLLATION | COLUMN | COMMIT | CONDITION | CONNECT | CONNECTION | CONSTRAINT | CONSTRAINTS | CONSTRUCTOR | CONTINUE | CORRESPONDING | CREATE | CROSS | CUBE | CURRENT|CURRENT_DATE| CURRENT_DEFAULT_TRANSFORM_GROUP | CURRENT_TRANSFORM_GROUP_FOR_TYPE | CURRENT_PATH | CURRENT_ROLE | CURRENT_TIME | CURRENT_TIMESTAMP | CURRENT_USER | CURSOR | CYCLE | DATA | DATE | DAY | DEALLOCATE | DEC | DECIMAL | DECLARE | DEFAULT | DEFERRABLE | DEFERRED | DELETE | DEPTH | DEREF | DESC | DESCRIBE | DESCRIPTOR | DETERMINISTIC | DIAGNOSTICS | DISCONNECT | DISTINCT | DO | DOMAIN | DOUBLE | DROP | DYNAMIC | EACH | ELSE | ELSEIF | END | END-EXEC | EQUALS | ESCAPE | EXCEPT | EXCEPTION | EXEC | EXECUTE | EXISTS | EXIT | EXTERNAL | FALSE | FETCH | FIRST | FLOAT | FOR | FOREIGN | FOUND | FROM | FREE | FULL | FUNCTION | GENERAL | GET | GLOBAL | GO | GOTO | GRANT | GROUP | GROUPING | HANDLE | HAVING | HOLD | HOUR | IDENTITY | IF | IMMEDIATE | IN | INDICATOR | INITIALLY | INNER | INOUT | INPUT | INSERT | INT | INTEGER | INTERSECT | INTERVAL | INTO | IS | ISOLATION | JOIN | KEY | LANGUAGE | LARGE | LAST | LATERAL | LEADING | LEAVE | LEFT | LEVEL | LIKE | LOCAL | LOCALTIME | LOCALTIMESTAMP | LOCATOR | LOOP | MAP | MATCH | METHOD | MINUTE | MODIFIES | MODULE | MONTH | NAMES | NATIONAL | NATURAL | NCHAR | NCLOB | NESTING | NEW | NEXT | NO | NONE | NOT | NULL | NUMERIC | OBJECT | OF | OLD | ON | ONLY | OPEN | OPTION | OR | ORDER | ORDINALITY | OUT | OUTER | OUTPUT | OVERLAPS | PAD | PARAMETER | PARTIAL | PATH | PRECISION | PREPARE | PRESERVE | PRIMARY | PRIOR | PRIVILEGES | PROCEDURE | PUBLIC

‫ﭘﺎﻳﮕﺎه دادهﻫﺎ‬

374

| READ | READS | REAL | RECURSIVE | REDO | REF | REFERENCES REFERENCING | RELATIVE | RELEASE | REPEAT | RESIGNAL | RESTRICT | RESULT RETURN | RETURNS | REVOKE | RIGHT | ROLE | ROLLBACK | ROLLUP | ROUTINE | ROW | ROWS | SAVEPOINT | SCHEMA | SCROLL | SEARCH | SECOND | SECTION SELECT | SESSION | SESSION_USER | SET | SETS | SIGNAL | SIMILAR | SIZE | SMALLINT | SOME | SPACE | SPECIFIC | SPECIFICTYPE | SQL SQLEXCEPTION | SQLSTATE | SQLWARNING | START | STATE | STATIC | SYSTEM_USER | TABLE | TEMPORARY | THEN | TIME | TIMESTAMP | TIMEZONE_HOUR | TIMEZONE_MINUTE | TO | TRAILING TRANSACTION | TRANSLATION | TREAT | TRIGGER | TRUE | UNDER | UNDO | UNION | UNIQUE | UNKNOWN | UNNEST | UNTIL UPDATE | USAGE | USER | USING | VALUE | VALUES | VARCHAR | VARYING | VIEW | WHEN | WHENEVER | WHERE | WHILE | WITH | WITHOUT | WORK WRITE | YEAR | ZONE --p --small --i modified per ISO 9075:1999/Cor.1:2000(E) --/i --/small --/p ::= ABS | ADA | ADMIN | ASENSITIVE | ASSIGNMENT | ASYMMETRIC ATOMIC | ATTRIBUTE | AVG | BIT_LENGTH | C | CALLED | CARDINALITY | CATALOG_NAME | CHAIN CHAR_LENGTH | CHARACTERISTICS | CHARACTER_LENGTH CHARACTER_SET_CATALOG | CHARACTER_SET_NAME | CHARACTER_SET_SCHEMA | CHECKED CLASS_ORIGIN | COALESCE | COBOL | COLLATION_CATALOG | COLLATION_NAME COLLATION_SCHEMA | COLUMN_NAME | COMMAND_FUNCTION COMMAND_FUNCTION_CODE | COMMITTED | CONDITION_IDENTIFIER | CONDITION_NUMBER CONNECTION_NAME | CONSTRAINT_CATALOG | CONSTRAINT_NAME CONSTRAINT_SCHEMA | CONTAINS | CONVERT | COUNT | CURSOR_NAME | DATETIME_INTERVAL_CODE | DATETIME_INTERVAL_PRECISION DEFINED | DEFINER | DEGREE | DERIVED | DISPATCH | EVERY | EXTRACT | FINAL | FORTRAN | G | GENERATED | GRANTED | HIERARCHY | IMPLEMENTATION | INSENSITIVE | INSTANCE | INSTANTIABLE INVOKER

| |

| |

| |

|

|

| | | | | | | |

|

375 SQL 99 _ BNF | 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 ::= | |