You are on page 1of 126

‫ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬

‫‪Database‬‬

‫أ ‪ .‬ا ﯾﻣﺎ ن ا ﻟ ﺑﻧﺎ‬


‫‪Part 1‬‬

‫اﻟﺷﻛر اﻟﻣوﺻول ﻟﻸﺳﺗﺎذة ﺳوزان ﺟﺳﺗﻧﯾﮫ‬


‫اﻟﻤﺼﺪر واﻟﻤﺮﺟﻊ‬

‫ﻣذﻛرة ) ﻗواﻋد اﻟﺑﯾﺎﻧﺎت( ﻟدﻛﺗور ﺑدر اﻟدﯾن ﻋﺛﻣﺎن‬ ‫‪u‬‬


‫ﺳﻠﯾﻣﺎن‬
‫ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬

‫ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ‪Database‬‬ ‫‪u‬‬

‫ﺑﺒﺴﺎطﺔ ﻋﺒﺎرة ﻋﻦ ﻣﻠﻒ أو ﻣﺴﺘﻮدع ﺿﺨﻢ ﯾﻤﻜﻦ ﻓﯿﮫ ﺗﺮﺗﯿﺐ اﻟﻤﻌﻠﻮﻣﺎت اﻟﺘﻲ ﻧﺮﯾﺪ ﺗﺨﺰﯾﻨﮭﺎ ﺑﺸﻜﻞ‬
‫ﻣﺮﺗﺐ و ﻣﻨﻈﻢ‪ ،‬و ﯾﻤﻜﻦ اﺳﺘﺮﺟﺎع ھﺬه اﻟﻤﻌﻠﻮﻣﺎت و اﻟﺘﻌﺪﯾﻞ ﻋﻠﯿﮭﺎ ﻓﻲ أي وﻗﺖ‪ .‬و ﺑﺎﻟﺘﺎﻟﻲ ﻓﺈن‬
‫أھﻤﯿﺘﮭﺎ ﺗﻜﻤﻦ ﺑﺄﻧﻚ ﺗﺴﺘﻄﯿﻊ ﻣﻌﺎﻟﺠﺔ و ﺗﺨﺰﯾﻦ ﺑﯿﺎﻧﺎت اﻟﻤﺴﺘﺨﺪﻣﯿﻦ ﻓﻲ ﻣﻜﺎن واﺣﺪ و ﺑﻜﻞ ﺳﮭﻮﻟﺔ‪.‬‬

‫اﻟﺒﺮاﻣﺞ اﻟﻤﺴﺘﺨﺪﻣﺔ ‪:‬‬


‫‪Microsoft Access , Microsoft Visual Studio‬‬
‫اﻟﻔﺮق ﺑﯿﻦ اﻟﺒﯿﺎﻧﺎت اﻟﻤﻌﻠﻮﻣﺎت‬

‫اﻟﺒﯿﺎﻧﺎت‪ :‬ھﻲ ﻣﺠﻤﻮﻋﺔ ﻻ ﻣﻌﻨﻰ ﻟﮭﺎ ﻣﻦ اﻷرﻗﺎم واﻟﻜﻠﻤﺎت واﻟﺤﻘﺎﺋﻖ اﻟﺨﺎم اﻟﺘﻲ ﺗﺤﺘﺎج ﻟﻤﻌﺎﻟﺠﺔ ﻻﺳﺘﺨﻼص اﻟﻤﻌﻨﻰ أو اﻟﻤﻌﻠﻮﻣﺔ‪.‬‬
‫اﻟﻤﻌﻠﻮﻣﺎت‪ :‬ھﻲ ﺗﻨﻈﯿﻢ اﻟﺒﯿﺎﻧﺎت و‪ /‬أو ﺗﺤﻠﯿﻠﮭﺎ ﻟﺘﺤﻮﯾﻠﮭﺎ ﻟﺘﺼﺒﺢ ﻣﻌﻠﻮﻣﺎت‪.‬‬
‫ﺗﻌﺮﯾﻔﺎت‬

‫‪ u‬ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬
‫ھﻲ ﻣﺠﻤﻮﻋﺔ ﻋﻨﺎﺻﺮ اﻟﺒﯿﺎﻧﺎت اﻟﻤﻨﻄﻘﯿّﺔ اﻟﻤﺮﺗﺒﻄﺔ ﻣﻊ ﺑﻌﻀﮭﺎ اﻟﺒﻌﺾ ﺑﻌﻼﻗﺔ ﻣﻌﯿﻨﺔ‪ ،‬وﺗﺘﻜّﻮن ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ﻣﻦ ﺟﺪول واﺣﺪ أو أﻛﺜﺮ‪ ،‬وﯾﺘﻜﻮن اﻟﺠﺪول‬
‫ﻣﻦ ﺳﺠﻞ ) ﺻﻒ ‪ ( Record‬أو أﻛﺜﺮ‪ ،‬وﯾﺘﻜﻮن اﻟﺴﺠﻞ ﻣﻦ ﺣﻘﻞ ) ﻋﺎﻣﻮد ‪ ( Field‬أو أﻛﺜﺮ‪.‬‬

‫‪ u‬ﻧﻈﻢ ﻣﻠﻔﺎت اﻟﺒﯿﺎﻧﺎت )‪ (File Systems‬ھﻮ اﺳﺘﺨﺪام اﻟﻤﻠﻔﺎت ﻓﻲ ﺗﺨﺰﯾﻦ اﻟﺒﯿﺎﻧﺎت‪) .‬ﻗﺒﻞ وﺟﻮد ‪.(DB System‬‬
‫‪ u‬أدى اﺳﺘﺨﺪام اﻟﻤﻠﻔﺎت اﻟﻰ ظﮭﻮر ﺑﻌﺾ اﻟﻤﺸﺎﻛﻞ واﻟﻌﯿﻮب ﻣﺜﻞ اﻟﺘﻜﺮار ‪)Atomicity of updates ،‬ﻋﻤﻠﯿﺔ ﺗﺤﻮﯾﻞ ﻣﺒﻠﻎ ﻣﺎﻟﻲ اﻣﺎ أن ﺗﺘﻢ‬
‫ﻛﺎﻣﻠﺔ أو ﻻ ﺗﺘﻢ(‪ ) Concurrent access by multiple users ،‬ﺣﺴﺎب ﺑﻨﻜﻲ ﻣﺸﺘﺮك وﺗﻢ اﻟﺴﺤﺐ ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ(‪.‬‬
‫‪ u‬ﻣﺘﻰ ﻧﺴﺘﺨﺪﻣﮭﺎ؟ ﻓﻲ ﺣﺎل ﻛﺎﻧﺖ اﻟﺒﯿﺎﻧﺎت ﺑﺴﯿﻄﺔ وﻻ ﺗﺤﺘﺎج ﻟﺘﻐﯿﯿﺮ‪ ،‬ﻻ ﺗﺤﺘﺎج اﻟﻰ ﻣﺴﺎﺣﺔ ﺗﺨﺰﯾﻦ ﻋﺎﻟﯿﺔ‪ ،‬ﻻ ﯾﻮﺟﺪ أﻛﺜﺮ ﻣﻦ ﻣﺴﺘﺨﺪم ﯾﻘﻮﻣﻮن‬
‫ﺑﺎﺳﺘﺨﺪام اﻟﺒﯿﺎﻧﺎت ﺑﻨﻔﺲ اﻟﻮﻗﺖ‪.‬‬
‫ﻧﻈﺎم إدارة ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ‪DBMS‬‬

‫ﻧﻈﺎم إدارة ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬ ‫‪u‬‬

‫‪ Database Management System u‬اﻟﺬي ﯾُﺨﺘﺼﺮ داﺋﻤﺎ ً ﺑـ ‪.DBMS‬‬


‫‪ u‬ھﻮ ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺒﺮاﻣﺞ اﻟﺘﻲ ﺗﺪﯾﺮ وﺗﺘﺤﻜﻢ ﺑﻌﻤﻠﯿﺔ ﺗﺨﺰﯾﻦ و اﺳﺘﺮﺟﺎع اﻟﺒﯿﺎﻧﺎت وﺗﻮﻓﺮ إﻣﻜﺎﻧﯿﺔ ﻗﯿﺎم‬
‫ﻋﺪد ﻛﺒﯿﺮ ﻣﻦ اﻟﻤﺴﺘﺨﺪﻣﯿﻦ ﻣﻦ اﻟﻮﺻﻮل واﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺒﯿﺎﻧﺎت ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‪.‬‬
‫‪ u‬ﻣﻦ ﺧﻼﻟﮭﺎ ‪:‬‬
‫‪ .1‬ﻧﻌﺮف )‪ (Meta data-data about data‬ﻗﺎﻣوس اﻟﺑﯾﺎﻧﺎت‪،‬‬
‫ﺑﯾﺎﻧﺎت ﺗﺻف اﻟﺑﯾﺎﻧﺎت اﻟﻣﺧزﻧﺔ وﺻﻔﺎ دﻗﯾﻘﺎ‪.‬‬
‫ﻧﺒﻨﻲ )ﻧﺨﺮن اﻟﺒﯿﺎﻧﺎت(‬ ‫‪.1‬‬

‫ﻧﺴﺘﺨﺪم اﻟﺒﯿﺎﻧﺎت )‪(Delete, update, retrieve‬‬ ‫‪.2‬‬


‫ﻣﻜﻮﻧﺎت ﻧﻈﺎم ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬

‫‪.1‬اﻟﻤﻜﻮﻧﺎت اﻟﻤﺎدﯾﺔ ‪ :Hardware‬ﺗﺸﻤﻞ ﺟﻤﯿﻊ اﻷﺟﮭﺰة اﻟﻤﺎدﯾﺔ ﻓﻲ اﻟﻨﻈﺎم ﻣﺜﻞ اﻟﺤﺎﺳﺒﺎت‪ ،‬اﻷﺟﮭﺰة اﻟﻄﺮﻓﯿﺔ‪ ،‬اﻟﻄﺎﺑﻌﺎت‪...‬اﻟﺦ‬
‫‪ .2‬اﻟﺒﺮﻣﺠﯿﺎت ‪ :Software‬أﻧﻈﻤﺔ اﻟﺘﺸﻐﯿﻞ‪ ،‬ﺑﺮاﻣﺞ إدارة ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻣﺜﻞ ‪Oracle‬‬
‫‪ .3‬اﻟﻤﺴﺘﺨﺪﻣﻮن ‪ :Users‬اﻷﺷﺨﺎص اﻟﺬﯾﻦ ﯾﻘﻮﻣﻮن ﺑﺎﻟﻌﻤﻞ ﻓﻲ ﺑﯿﺌﺔ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت وھﻢ ﻣﺪﯾﺮ اﻟﻨﻈﺎم‪ ،‬ﻣﺼﻤﻢ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‪ ،‬اﻟﻤﺒﺮﻣﺠﻮن وﻣﺤﻠﻠﻮ اﻟﻨﻈﻢ‬
‫‪ .4‬اﻹﺟﺮاءات واﻟﻌﻤﻠﯿﺎت ‪ :‬اﻟﻘﻮاﻧﯿﻦ واﻟﺘﻌﻠﯿﻤﺎت اﻟﺘﻲ ﺗﺤﻜﻢ ﻋﻤﻞ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ﺑﺸﻜﻞ ﺻﺤﯿﺢ‪.‬‬
‫‪.5‬اﻟﺒﯿﺎﻧﺎت‪ :‬وھﻲ أھﻢ ﻣﻜﻮﻧﺎت اﻟﻨﻈﺎم ﺣﯿﺚ ﺗﺸﻤﻞ ﻣﺠﻤﻮﻋﺔ اﻟﺤﻘﺎﺋﻖ اﻟﻤﺨﺰﻧﺔ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‪.‬‬

‫ﻣﺎ اﻟﻔﺮق ﺑﯿﻦ ﻣﺤﻠﻞ اﻟﻨﻈﻢ واﻟﻤﺒﺮﻣﺞ؟‬


‫ﻛﻞ ﻣﺒﺮﻣﺞ ﻣﺤﻠﻞ واﻟﻌﻜﺲ ﻏﯿﺮ ﺻﺤﯿﺢ وﻣﻦ ﻣﮭﺎم اﻟﻤﺤﻠﻞ ﺗﺤﻠﯿﻞ اﻟﻨﻈﺎم اﻟﻘﺎﺋﻢ‪ ،‬ﺗﺤﺪﯾﺪ ﻣﺘﻄﻠﺒﺎت اﻟﻨﻈﺎم اﻟﺠﺪﯾﺪ وﺗﺼﻤﯿﻢ اﻟﺒﺮاﻣﺞ ﻟﻠﻨﻈﺎم اﻟﺠﺪﯾﺪ‪.‬‬
‫أﻧﻮاع ﻧﻈﻢ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬

‫اﻟﻤﺴﻄﺤﺔ‪ :‬ھﻲ ﻋﺒﺎرة ﻋﻦ ﺟﺪول واﺣﺪ ﻓﻘﻂ ﻓﯿﮫ ﻛﺎﻓﺔ اﻟﺤﻘﻮل اﻟﻤﻄﻠﻮﺑﺔ وﺗﺘﻤﯿﺰ ﺑﺴﺮﻋﺔ ﺗﻨﻔﯿﺬ وﺗﺼﻤﯿﻢ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‪ ،‬وﻟﻜﻦ ﻣﻦ ﺳﻠﺒﯿﺎﺗﮭﺎ إﻋﺎدة‬ ‫‪.1‬‬
‫ادﺧﺎل ﺑﯿﺎﻧﺎت أي ﻋﻨﺼﺮ ﯾﺘﻜﺮر أﻛﺜﺮ ﻣﻦ ﻣﺮة ﻣﻤﺎ ﯾﺆدي اﻟﻰ اﺳﺘﻨﺰاف اﻟﺴﻌﺎت اﻟﺘﺨﺰﯾﻨﯿﺔ وزﯾﺎدة اﻷﺧﻄﺎء ﻟﻜﺜﺮة اﻟﺘﻜﺮار‪ ،‬وﺗﻌﺪ ﺑﻄﯿﺌﺔ ﻓﻲ اﻟﺒﺤﺚ‬
‫واﻻﺳﺘﺮﺟﺎع واﻻﺳﺘﻌﻼم وﻏﯿﺮه‪.‬‬
‫‪ .2‬اﻟﻨﻮع اﻟﮭﺮﻣﻲ‪ :‬اﻻرﺗﺒﺎط ﺑﯿﻦ اﻟﺴﺠﻼت ﯾﻜﻮن ﻋﻦ طﺮﯾﻖ اﻟﻤﺆﺷﺮات )رﺑﻂ ﻓﯿﺰﯾﺎﺋﻲ( وﻟﻠﻮﺻﻮل ﻷي ﺳﺠﻞ )ﺳﻮاء ﻟﻺﺿﺎﻓﺔ‪ ،‬اﻻﺳﺘﻌﻼم‪ ،‬اﻟﺤﺬف أو‬
‫اﻟﺘﻌﺪﯾﻞ( ﻻ ﺑﺪ ﻣﻦ اﻟﺒﺪء ﻣﻦ اول اﻟﺴﺠﻞ )اﻟﺠﺬر( ﺣﺘﻰ ﺗﺼﻞ اﻟﻰ أي ﺳﺠﻞ ﺗﺮﯾﺪه‪.‬‬
‫أﻧﻮاع ﻧﻈﻢ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬

‫‪ .3‬اﻟﻨﻮع اﻟﺸﺒﻜﻲ‪ :‬ﻓﻲ ھﺬا اﻟﻨﻮع ﯾﻤﻜﻦ اﻟﻮﺻﻮل ﻷي ﺳﺠﻞ ﻣﻦ أي ﻧﻘﻄﺔ‪ ،‬ﺣﯿﺚ أن ﻛﻞ ﺳﺠﻞ ﻟﮫ ﻋﻨﻮان ﻣﺤﺪد وﯾﺤﺘﻮي ﻋﻠﻰ ﻣﺆﺷﺮ ﯾﺸﯿﺮ اﻟﻰ ﻋﻨﺎوﯾﻦ‬
‫ﺟﻤﯿﻊ اﻟﺴﺠﻼت اﻟﻤﺮﺗﺒﻄﺔ ﺑﮭﺬا اﻟﺴﺠﻞ‪.‬‬

‫* اﻟﻨﻮع اﻟﮭﺮﻣﻲ واﻟﺸﺒﻜﻲ ﻗﻮاﻋﺪ ﺑﯿﺎﻧﺎت ﻏﯿﺮ ﻋﻼﺋﻘﯿﺔ ﺣﯿﺚ أﻧﮫ ﻻ ﯾﻮﺟﺪ ﻋﻼﻗﺎت )ﺟﺪاول( وﺟﻤﯿﻊ اﻟﺮواﺑﻂ ﺑﯿﻦ ﺳﺠﻼﺗﮭﺎ رواﺑﻂ ﻓﯿﺰﯾﺎﺋﯿﺔ وﻟﯿﺴﺖ‬
‫ﻣﻨﻄﻘﯿﺔ‪ ،‬ﺗﻤﺘﺎز ﺑﺎﻟﺴﺮﻋﺔ اﻟﻔﺎﺋﻘﺔ ﺣﯿﺚ وﺟﻮد اﻟﻤﺆﺷﺮات وﻟﻜﻦ ﻋﯿﺒﮭﺎ ھﻮ اﻟﺘﻌﻘﯿﺪ ﻓﻲ اﻟﺘﺼﻤﯿﻢ‪.‬‬
‫أﻧﻮاع ﻧﻈﻢ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬

‫‪ .4‬اﻟﻧوع اﻟﻌﻼﺋﻘﻲ‪ :‬وﯾﻘﺻد ﺑﮭﺎ اﻟﻌﻼﻗﺎت ﺑﯾن اﻟﺟداول اﻟﻣﺧﺗﻠﻔﺔ واﻟﻌﻼﻗﺔ ﻣﻣﻛن أن ﺗﻛون ﻋﺑﺎرة ﻋن ﺟدول )ﺻﻔوف وأﻋﻣدة( أو ﻗد ﺗﻛون ﺣﻘل ﻓﻲ ﺟدول‪.‬‬
‫ذات ﺗﻛﻠﻔﺔ ﻣرﺗﻔﻌﺔ ﻓﻲ اﻟﺗﺻﻣﯾم وﺗﻛﻠﻔﺔ ﻣﻧﺧﻔﺿﺔ ﻓﻲ اﻟﺻﯾﺎﻧﺔ واﻟﺗطوﯾر‪.‬‬
‫ﻣﻮاﺻﻔﺎت ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﻤﺜﺎﻟﯿﺔ‬

‫اﺧﺗﺻﺎر اﻟﺑﯾﺎﻧﺎت‪.‬‬ ‫‪u‬‬

‫زﯾﺎدة ﻛﻔﺎءة ﺗﻧظﯾم وإدارة اﻟﺑﯾﺎﻧﺎت‪.‬‬ ‫‪u‬‬

‫اﻟﺗواﺟد اﻟﻣﺳﺗﻣر ‪Availability‬‬ ‫‪u‬‬

‫ﺿﻣﺎن ﻋﻣل أﺟﮭزة اﻟﺣﺎﺳب اﻵﻟﻲ دون أن ﺗﺗﻌطل وﻓﻲ ﺣﺎل ﺣدوث أي ﻋطل ﯾﺟب أن ﯾﻛون ھﻧﺎك ‪Backup‬‬
‫اﻟﺗﻛﺎﻣل واﻟﺗﻣﺎﺳك ‪Integrity‬‬ ‫‪u‬‬

‫ﺗﻌﻧﻲ ان ﻛﺎﻓﺔ ﺣﻘول وﺳﺟﻼت ﻛﺎﻓﺔ اﻟﺟداول ﺗﻌﻣل ﻣﻊ ﺑﻌﺿﮭﺎ اﻟﺑﻌض )ﻷﻧﮫ ﯾوﺟد ﺑﯾﻧﮭﺎ ﻋﻼﻗﺎت( ﺑﺷﻛل ﻣﺗﻧﺎﻏم وﺑﺷﻛل ﯾﺣد ﻣن أﺧطﺎء ادﺧﺎل اﻟﺑﯾﺎﻧﺎت‪.‬‬
‫اﻟﻘﯾﺎس ‪Scalability‬‬ ‫‪u‬‬

‫ﻗﺎﺑﻠﯾﺔ اﻟﺗوﺳﻊ‪ ،‬أي ﻗدرة اﻟﻧظﺎم ﻋﻠﻰ اﻟﺗﻌﺎﻣل ﺑﻛﻔﺎءة ﻣﻊ اﻟﻛم اﻟﻣﺗزاﯾد ﻣن أﻋداد اﻟﻣﺳﺗﺧدﻣﯾن‪ ،‬أي اﻟﻘدرة ﻋﻠﻰ اﻟﺗﻼؤم ﻣﻊ ﺗزاﯾد أﻋداد اﻟﻣﺳﺗﺧدﻣﯾن‪.‬‬
‫دورة ﺣﯿﺎة ﻧﻈﺎم ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬

‫ﺗﺣدﯾد اﻟﮭدف ﻣن اﻟﻧظﺎم‬ ‫•‬


‫ﺗﺣدﯾد ﻣﺗطﻠﺑﺎت اﻟﻧظﺎم‬ ‫•‬
‫ﺗﺣﻠﯾل وﺿﻊ ﺧرﯾطﺔ ﻟﻠﻧظﺎم‬ ‫•‬
‫ﺗﺻﻣﯾم وﺑرﻣﺟﺔ اﻟﻧظﺎم‬ ‫•‬
‫اﺧﺗﺑﺎر اﻟﻧظﺎم‬ ‫•‬
‫ﺗوﺛﯾق اﻟﻧظﺎم‬ ‫•‬
‫اﻟﺘﻌﺮف ﻋﻠﻰ دورة ﺣﯿﺎة ﻧﻈﺎم ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ﺑﻄﺮﯾﻘﺔ ﻣﻔﺼﻠﺔ‬

‫اﻟدراﺳﺔ اﻟﻣﺑدﺋﯾﺔ ﻟﻠﻧظﺎم ﺗﺣدﯾد اﻟﮭدف و اﻟﻣﺗطﻠﺑﺎت ﻟﻠﻧظﺎم‪.‬‬ ‫‪.1‬‬


‫ﺗﺣﻠﯾل وﺗﺻﻣﯾم ﻗﺎﻋدة اﻟﺑﯾﺎﻧﺎت ﻋن طرﯾق ﺛﻼﺛﺔ ﻧﻣﺎذج‪:‬‬ ‫‪.2‬‬
‫أ‪ .‬اﻟﻧﻣوذج اﻟﺧﺎرﺟﻲ )ﻣرﺣﻠﺔ اﻟﺗﺣﻠﯾل(‪ :‬ﻏﯾر ﻣرﺗﺑط ﺑﺎﻷﺟﮭزة أو اﻟﺑراﻣﺞ ﯾﺻف اﻟﺑﯾﺎﻧﺎت اﻟﻣطﻠوﺑﺔ‪ ،‬ﺗﺣدﯾد اﻟﺗﻘﺎرﯾر‬
‫واﻻﺳﺗﻌﻼﻣﺎت اﻟﻣطﻠوﺑﺔ‪.‬‬
‫ب‪ .‬اﻟﻧﻣوذج اﻟﻣﻔﺎھﯾﻣﻲ )ﻣرﺣﻠﺔ اﻟﺗﺻﻣﯾم(‪ :‬وﺻف دﻗﯾق ﻟﻛﺎﻓﺔ اﻟﻣﺗطﻠﺑﺎت ﻋن طرﯾق رﻣوز ﻗﯾﺎﺳﯾﺔ ﻣﺗﻔق ﻋﻠﯾﮭﺎ ﻓﻲ ﻗواﻋد‬
‫اﻟﺑﯾﺎﻧﺎت‪.‬‬
‫ج‪ .‬اﻟﻧﻣوذج اﻟداﺧﻠﻲ )ﺑرﻣﺟﺔ اﻟﻧظﺎم(‪ :‬ﻣرﺗﺑط ﺑﺎﻷﺟﮭزة واﻟﺑراﻣﺞ ﻟﺗﻧﻔﯾذ ﻗﺎﻋدة اﻟﺑﯾﺎﻧﺎت ﻋﻠﻰ اﻷﺟﮭزة واﻟﺣﺻول ﻋﻠﻰ اﻟﻧﺗﺎﺋﺞ‬
‫اﻟﻣطﻠوﺑﺔ‪.‬‬
‫ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬
‫‪Database‬‬

‫أ ‪ .‬ا ﯾﻣﺎ ن ا ﻟ ﺑﻧﺎ‬


‫‪Part 2‬‬

‫اﻟﺷﻛر اﻟﻣوﺻول ﻟﻸﺳﺗﺎذة ﺳوزان ﺟﺳﺗﻧﯾﮫ‬


‫اﻟﻤﺤﺎور‪:‬‬

‫اﻟﻣﺣﺎور ‪:‬‬
‫◄ ﻧﻣوذج ﻋﻼﻗﺔ اﻟﻛﯾﺎﻧﺎت‬
‫◄اﻟﻛﯾﺎﻧﺎت و اﻟﺻﻔﺎت و اﻟﻌﻼﻗﺎت‬
‫◄ﻣﺧطط اﻟﻛﯾﺎﻧﺎت واﻟﻌﻼﻗﺎت‬
ER Diagram
‫ﻧﻤﻮذج ﻋﻼﻗﺔ اﻟﻜﯿﺎﻧﺎت‬
‫‪Entity Relationship Model‬‬

‫ھو أﺣد اﻷﺳﺎﻟﯾب اﻟﺷﺎﺋﻌﺔ ﻟوﺿﻊ ﺗﺻور ﻟﻘﺎﻋدة اﻟﺑﯾﺎﻧﺎت اﻟﻌﻼﺋﻘﯾﺔ‪.‬‬ ‫‪u‬‬

‫ﯾﺗﻌﻣد اﻟﻧﻣوذج ﻋﻠﻰ ﺛﻼﺛﺔ ﻣﻛوﻧﺎت رﺋﯾﺳﯾﺔ‪:‬‬ ‫‪u‬‬

‫اﻟﻛﯾﺎﻧﺎت )‪(Entities‬‬ ‫‪.1‬‬

‫اﻟﺻﻔﺎت )‪(Attributes‬‬ ‫‪.2‬‬

‫اﻟﻌﻼﻗﺎت ھﻲ اﻟرواﺑط ﺑﯾن ﻋدد ﻣن اﻟﻛﯾﺎﻧﺎت )‪(Relations‬‬ ‫‪.3‬‬

‫ھو ﻋﺑﺎرة ﻋن ﻧﻣوذج ﻟﺗﻣﺛﯾل ﻛﯾﺎﻧﺎت اﻟﻧظﺎم وﺻﻔﺎﺗﮭﺎ وﻛﯾﻔﯾﺔ ارﺗﺑﺎط ھذه اﻟﻛﯾﺎﻧﺎت ﻣﻊ ﺑﻌﺿﮭﺎ ﺑﺎﺳﺗﺧدام رﻣوز رﺳوﻣﯾﺔ‪.‬‬ ‫‪u‬‬
‫اﻟﻜﯿﺎن ‪Entity‬‬

‫اﻟﻛﯾﺎن ھو ﻋﺑﺎرة ﻋن ﻛﺎﺋن أو ﺷﻲء ﻣﺣط اﻻھﺗﻣﺎم ﻓﻲ اﻟﻧظﺎم وﻋﻠﯾﻧﺎ ﺑﺟﻣﻊ وﺗﺳﺟﯾل اﻟﺑﯾﺎﻧﺎت ﻋن ھذا اﻟﻛﯾﺎن ﻣﺛﻼ اﻟﻣرﯾض‪ ،‬اﻟطﺑﯾب‪،‬‬ ‫‪u‬‬
‫اﻟدواء ﺗﻌﺗﺑر ﻛﯾﺎﻧﺎت ﻣﮭﻣﺔ ﻓﻲ ﻗﺎﻋدة ﺑﯾﺎﻧﺎت اﻟﻣﺳﺗﺷﻔﻰ‪ ،‬وﻓﻲ أﻏﻠب اﻟﺣﺎﻻت ﯾﻛون اﺳم اﻟﻛﯾﺎن اﺳم ﻣﻔرد‪.‬‬
‫اﻟطﺑﯾب‬ ‫ﯾرﻣز ﻟﮭﺎ ﺑﻣﺳﺗطﯾل ﯾﺣﺗوي ﻋﻠﻰ اﺳم اﻟﻛﯾﺎن‪.‬‬ ‫‪u‬‬

‫ﻛل ﻛﯾﺎن ﻟﮫ ﺧﺻﺎﺋص )ﺻﻔﺎت( ﻣﻣﯾزة‪.‬‬ ‫‪u‬‬

‫ﯾﻣﺛل اﻟﻛﯾﺎن ﺑﺟدول ﻓﻲ ﻗﺎﻋدة اﻟﺑﯾﺎﻧﺎت اﻟﻌﻼﺋﻘﯾﺔ‪.‬‬ ‫‪u‬‬

‫ﻻ ﯾﺳﻣﺢ ﺑﺗﻛرار اﻟﺳﺟﻼت )اﻟﺻﻔوف( ﻓﯾﮭﺎ‪.‬‬ ‫‪u‬‬

‫ﻟوﺟود اﻟﻛﯾﻧوﻧﺔ ﻧوﻋﺎن‪:‬‬ ‫‪u‬‬

‫‪ .1‬ﻓﯾزﯾﺎﺋﻲ )ﻣﻠﻣوس(‪ :‬طﺎﻟب‪ ،‬ﺳﯾﺎرة‪.‬‬


‫‪ .2‬ﻣﻔﮭوﻣﻲ )ﻏﯾر ﻣﻠﻣوس(‪ :‬اﻟﻣﻘرر‪ ،‬اﻟﺷﻌﺑﺔ‪.‬‬
‫أﻧواع اﻟﻛﯾﻧوﻧﺎت‪ :‬ﻗوﯾﺔ وﺿﻌﯾﻔﺔ )ﺷرح ﻣﻔﺻل ﻻﺣﻘﺎ(‪.‬‬ ‫‪u‬‬
‫اﻟﺼﻔﺎت )اﻟﺨﺼﺎﺋﺺ( ‪Attributes‬‬

‫ﻛل ﻛﯾﺎن ﻟﮫ ﺧﺻﺎﺋص ﻣﻣﯾزة وھﻲ اﻟﻣﻌﻠوﻣﺎت اﻟواﺟب ﺗﺧزﯾﻧﮭﺎ ﻋن ﻛﺎﺋن ﻣﻌﯾن‪.‬‬ ‫‪u‬‬

‫ﺗﻣﺛل ﺑﺄﻋﻣدة اﻟﺟدول ﻓﻲ ﻗﺎﻋدة اﻟﺑﯾﺎﻧﺎت اﻟﻌﻼﺋﻘﯾﺔ)اﻟﺣﻘول(‪.‬‬ ‫‪u‬‬

‫وﻟﻛل ﺻﻔﺔ ﯾﺟب أن ﻧﺣدد ﻣﺟﺎل اﻟﻘﯾم )‪ (Domain‬وھو ﻣﺟﻣوﻋﺔ اﻟﻘﯾم ﻟﮭذه اﻟﺻﻔﺔ ﻓﻣﺛﻼ اﻟرﻗم اﻷﻛﺎدﯾﻣﻲ ﯾﺟب أن‬ ‫‪u‬‬
‫ﯾﻛون ﻋددا ﺻﺣﯾﺣﺎ ﻣن ﻋﺷر ﺧﺎﻧﺎت‪.‬‬
‫ﯾرﻣز ﻟﻠﺻﻔﺔ ﺑﺎﻟﺷﻛل اﻟﺑﯾﺿﺎوي وﺗرﺑط ﻣﻊ اﻟﻛﯾﺎن ﺑواﺳطﺔ ﺧط ﻣﺳﺗﻘﯾم‪.‬‬ ‫‪u‬‬
‫أﻧﻮاع اﻟﺨﺼﺎﺋﺺ ‪Attributes types‬‬

‫‪ .1‬ﺧﺎﺻﯾﺔ ﺑﺳﯾطﺔ ‪Simple Attribute‬‬


‫ﻻ ﯾﻣﻛن ﺗﺟزﺋﺗﮭﺎ ﻣﺛل رﻗم اﻟطﺎﻟب‪ ،‬اﻟﺟﻧس وﺗﺎرﯾﺦ اﻟﻣﯾﻼد‬ ‫‪Ø‬‬
‫ﻣرﻛﺑﺔ‬
‫‪ .2‬ﺧﺎﺻﯾﺔ ﻣرﻛﺑﺔ ‪Composite Attribute‬‬
‫ﯾﻣﻛن ﺗﺟزﺋﺗﮭﺎ ﻣﺛل اﻻﺳم اﻷول واﻻﺳم اﻟﺛﺎﻧﻲ واﺳم اﻟﻌﺎﺋﻠﺔ‪.‬‬ ‫‪Ø‬‬

‫‪ .3‬ﺧﺎﺻﯾﺔ وﺣﯾدة ‪Single-Valued Attribute‬‬


‫ﺻﻔﺎت ﺗﺣﺗوي ﻗﯾﻣﺔ واﺣدة ﻣﺛل رﻗم اﻟﺳﯾﺎرة‬ ‫‪Ø‬‬

‫‪ .4‬ﺧﺎﺻﯾﺔ ﻣﺗﻌددة اﻟﻘﯾم ‪Multiple-Valued Attribute‬‬


‫ﻣﺗﻌددة اﻟﻘﯾم‬ ‫ﺻﻔﺎت ﺗﺣﺗوي ﻋﻠﻰ ﻋدة ﻗﯾم ﻛﺄن ﯾﻛون ﻟﻠﺷﺧص أﻛﺛر ﻣن رﻗم ھﺎﺗف‬ ‫‪u‬‬
‫أﻧﻮاع اﻟﺨﺼﺎﺋﺺ ‪Attributes types‬‬

‫‪ .5‬ﺧﺎﺻﯾﺔ ﻣﺷﺗﻘﺔ ‪Derived Attribute‬‬


‫ھﻲ ﺧﺎﺻﯾﺔ ﻟﻛﯾﺎن ﯾﻣﻛن اﺳﺗﻧﺗﺎﺟﮭﺎ أو ﺣﺳﺎﺑﮭﺎ ﻣن ﺧﺻﺎﺋص أﺧرى أو ﻣن طﺑﯾﻌﺔ ﻋﻼﻗﺔ ھذا اﻟﻛﯾﺎن ﺑﻛﯾﺎﻧﺎت‬ ‫‪u‬‬
‫أﺧرى‪ .‬ﻧﺎﺗﺞ ﻣن ﻋﻣﻠﯾﺔ ﺣﺳﺎﺑﯾﺔ ﻟﺣﻘﻠﯾن ﻣﺛل ﻋﻣر اﻟﻣﺗدرب ﯾﻣﻛن ﺣﺳﺎﺑﮫ ﻋﻠﻰ أﻧﮫ اﻟﻔرق ﺑﯾن ﺗﺎرﯾﺦ اﻟﻣﯾﻼد‬
‫واﻟﺗﺎرﯾﺦ اﻟﺣﺎﻟﻲ‪.‬‬
‫‪ .6‬اﻟﺧﺎﺻﯾﺔ اﻟﻣﻔﺗﺎح ‪Key Attribute‬‬

‫اﻟﻣﻔﺗﺎح‬ ‫ﺻﻔﺔ ﺗﻌرف اﻟﻛﯾﻧوﻧﺔ وﻗﯾﻣﺗﮭﺎ وﺣﯾدة ﻻ ﺗﺗﻛرر‪ ،‬ﯾﺟب ﺗﺣدﯾدھﺎ داﺋﻣﺎ‪.‬‬ ‫‪u‬‬

‫ﻗد ﺗﻛون ﺻﻔﺔ واﺣدة أو اﻛﺛر ﻣن ﺻﻔﺔ ﻣﺟﺗﻣﻌﺔ ﻣﻌﺎ‪).‬ﻣﺛﺎل ﺗرﻗﯾم اﻟﺳﯾﺎرات ﻓﻲ اﻟوﻻﯾﺎت اﻟﻣﺗﺣدة رﻗم اﻟﺳﯾﺎرة‬ ‫‪u‬‬
‫ﻣﻣﻛن أن ﯾﺗﻛرر ﻓﻲ أﻛﺛر ﻣن وﻻﯾﺔ رﻗم اﻟﺳﯾﺎرة ‪ +‬رﻗم اﻟوﻻﯾﺔ )اﻟﻣﻔﺗﺎح(‬
‫ﻗد ﺗﻛون ھﻧﺎك اﻛﺛر ﻣن ﺻﻔﺔ ﺗﺻﻠﺢ ﻻن ﺗﻛون اﻟﺻﻔﺔ اﻟﻣﻔﺗﺎح ﻓﻧﺧﺗﺎر واﺣدة ﻣﻧﮭﺎ‪.‬‬ ‫‪u‬‬

‫‪ .7‬اﻟﺧﺎﺻﯾﺔ اﻟوﺻﻔﯾﺔ ‪Descriptive Attribute‬‬


‫ﺧﺎﺻﯾﺔ ﺗوﺿﻊ ﻋﻠﻰ اﻟﻌﻼﻗﺔ ﻧﻔﺳﮭﺎ )ﺷرح ﻣﻔﺻل ﻻﺣﻘﺎ(‬ ‫‪u‬‬
‫أﻧﻮاع اﻟﺨﺼﺎﺋﺺ ‪Attributes types‬‬

‫‪ .8‬اﻟﺧﺎﺻﯾﺔ اﻟﻣﻌﻘدة ‪Complex Attribute‬‬


‫اﻟﺷﺎرع‬ ‫اﻟﻣدﯾﻧﺔ‬
‫‪Composite + Mutli-Valued‬‬ ‫‪u‬‬
‫اﻟﻌﻧوان‬
‫ﻣﺛﺎل‪ :‬ﻟﻛل ﻣوظف أﻛﺛر ﻣن ﻋﻧوان وﻛل ﻋﻧوان ﻟﮫ أﻛﺛر ﻣن ﻗﯾﻣﺔ‬
‫اﻟﺣﻲ‬

‫ﯾﺟب ادﺧﺎل ﻗﯾﻣﺔ ﻟﻛل ﺧﺎﺻﯾﺔ وﻟﻛن ﻓﻲ ﺑﻌض اﻟﺣﺎﻻت ﯾﺗم ﺗﺧزﯾن ‪ Null‬وﻟﮭﺎ ﺛﻼث ﻣﻌﺎﻧﻲ‬ ‫ﻗﯾم اﻟﺧﺻﺎﺋص‪:‬‬
‫‪) Not Applicable‬ﻏﯾر ﻣﺗطﺎﺑق(‪ :‬ھذا اﻟﻌﻧﺻر ﻟﯾس ﻟدﯾﮫ ھذه اﻟﺧﺎﺻﯾﺔ‪.‬‬ ‫‪.1‬‬

‫‪) Missing‬ﻣﻔﻘودة( ‪ :‬ھذا اﻟﻌﻧﺻر ﺗﻧطﺑق ﻋﻠﯾﮫ اﻟﺧﺎﺻﯾﺔ ﻟﻛن اﻟﻣﻌﻠوﻣﺔ ﻏﯾر ﻣﺗوﻓرة ﻟدي ﻓﺗﺧزن ‪ Null‬ﺣﺗﻰ ﺗﺻﻠﻧﻲ اﻟﻣﻌﻠوﻣﺔ‪.‬‬ ‫‪.2‬‬

‫‪) Unknown‬ﻏﯾر ﻣﻌروﻓﺔ(‪ :‬ﻏﯾر ﻣﻌروف ھل ھذا اﻟﻌﻧﺻر ﺗﻧطﺑق ﻋﻠﯾﮫ اﻟﺧﺎﺻﯾﺔ أم ﻻ )ﻏﯾر ﻣﺗطﺎﺑق أو ﻣﻔﻘودة(‪.‬‬ ‫‪.3‬‬
‫اﻟﻌﻼﻗﺎت ‪Relationships‬‬

‫ھﻲ اﻟراﺑط أو اﻟﻌﻼﻗﺔ ﻣﺎ ﺑﯾن اﻟﻛﯾﺎﻧﺎت واﺳﻣﮭﺎ ﯾﺟب أن ﯾﻌﺑر ﻋن ﻛﯾﻔﯾﺔ ھذا اﻟﺗراﺑط وﯾﻛون ﻏﺎﻟﺑﺎ ﻋﻠﻰ ﺷﻛل ﻓﻌل ﻣﺿﺎرع أو ﻣﺑﻧﻲ ﻟﻠﻣﺟﮭول‬ ‫‪u‬‬
‫ﻟﻠﻌﻼﻗﺔ ﻣﺛل ‪ :‬ﯾدرس‪ ،‬ﯾﺳﺟل‪ ،‬ﯾرﺷد‪.‬‬
‫ﯾرﻣز ﻟﮭﺎ ﺑﺷﻛل ﻣﻌﯾن ﯾﺣﺗوي ﻋﻠﻰ اﺳم اﻟﻌﻼﻗﺔ‪.‬‬ ‫‪u‬‬

‫ﻟﻛل ﻋﻼﻗﺔ درﺟﺔ ﺗﺷﺎرﻛﯾﺔ ﺗﺑﯾن ﻣﻘدار اﻟﺗﺷﺎرك ﻣﺎ ﺑﯾن اﻟﻛﯾﺎﻧﺎت )ﻋدد اﻻرﺗﺑﺎطﺎت اﻟﻣﺳﻣوح ﻋﻣﻠﮭﺎ ﺑﯾن اﻟﻛﯾﺎﻧﺎت(‪.‬‬ ‫‪u‬‬
‫أﻧﻮاع اﻟﻌﻼﻗﺎت اﻟﺘﺸﺎرﻛﯿﺔ )ﻋﻼﻗﺎت اﻻرﺗﺒﺎط ‪(Association‬‬

‫واﺣد ﻣﻘﺎﺑل واﺣد‪ :‬رأس ﺑرأس أو ‪(One-to-One) 1:1‬‬ ‫‪.1‬‬


‫ﻛل ﻋﻧﺻر ﯾﺳﻣﺢ ﻟﮫ ﺑﺄن ﯾﺷﺎرك ﻓﻘط ﻣﻊ ﻋﻧﺻر واﺣد ﻣن اﻟﻛﯾﻧوﻧﺔ اﻟﻣﻘﺎﺑﻠﺔ واﻟﻌﻛس ﺻﺣﯾﺢ‪.‬‬ ‫‪u‬‬

‫ﻛل ﺳﺟل ﻓﻲ ﺟدول ﯾﻘﺎﺑل ﺳﺟل واﺣد ﻓﻘط ﻓﻲ اﻟﺟدول اﻵﺧر‪.‬‬ ‫‪u‬‬
‫أﻧﻮاع اﻟﻌﻼﻗﺎت اﻟﺘﺸﺎرﻛﯿﺔ )ﻋﻼﻗﺎت اﻻرﺗﺒﺎط ‪(Association‬‬

‫‪ .2‬واﺣد ﻣﻘﺎﺑل ﻣﺟﻣوﻋﺔ ‪ -‬رأس ﺑﺄطراف أو ‪ (One-to-Many) 1:M‬أو ﯾرﻣز ﻟﮭﺎ ‪1:N‬‬
‫ﻛل ﻋﻧﺻر ﯾﺳﻣﺢ ﻟﮫ أن ﯾﺷﺎرك ﻣﻊ ﻣﺟﻣوﻋﺔ ﻣن اﻟﻌﻧﺎﺻر ﺑﺎﻟﻛﯾﻧوﻧﺔ اﻟﻣﻘﺎﺑﻠﺔ‪.‬‬ ‫‪u‬‬

‫ﻗﯾﻣﺔ ﻓﻲ اﻟﺟدول اﻷول ﺗﻘﺎﺑل ﻗﯾﻣﺔ ﻓﻲ اﻟﺟدول اﻟﺛﺎﻧﻲ وأن اﻟﻘﯾﻣﺔ ﻓﻲ اﻟﺟدول اﻟﺛﺎﻧﻲ ﯾﻣﻛن أن ﯾﻘﺎﺑﻠﮭﺎ ﻗﯾﻣﺔ أو أﻛﺛر ﻓﻲ اﻟﺟدول اﻷول‪.‬‬ ‫‪u‬‬
‫أﻧﻮاع اﻟﻌﻼﻗﺎت اﻟﺘﺸﺎرﻛﯿﺔ )ﻋﻼﻗﺎت اﻻرﺗﺒﺎط ‪(Association‬‬

‫‪ .3‬ﻣﺟﻣوﻋﺔ ﻣﻘﺎﺑل ﻣﺟﻣوﻋﺔ ‪ -‬أطراف ﺑﺄطراف أو ‪ – (Many-to-Many) M:M‬أو ﯾرﻣز ﻟﮭﺎ ‪N:M‬‬
‫ﻛل ﻋﻧﺻر)ﻣن اﻟطرﻓﯾن( ﯾﺳﻣﺢ ﻟﮫ أن ﯾﺷﺎرك ﻣﻊ ﻣﺟﻣوﻋﺔ ﻣن اﻟﻌﻧﺎﺻر ﺑﺎﻟﻛﯾﻧوﻧﺔ اﻟﻣﻘﺎﺑﻠﺔ‪.‬‬ ‫‪u‬‬

‫ﻗﯾﻣﺔ ﻓﻲ اﻟﺟدول اﻷول ﺗﻘﺎﺑل ﻗﯾﻣﺔ أو أﻛﺛر ﻓﻲ اﻟﺟدول اﻟﺛﺎﻧﻲ وأن اﻟﻘﯾﻣﺔ ﻓﻲ اﻟﺟدول اﻟﺛﺎﻧﻲ ﯾﻣﻛن أن ﯾﻘﺎﺑﻠﮭﺎ ﻗﯾﻣﺔ أو أﻛﺛر ﻓﻲ‬ ‫‪u‬‬
‫اﻟﺟدول اﻷول‪.‬‬
‫اﻟﻌﻼﻗﺎت ‪Relationships‬‬

‫درﺟﺎت اﻟﻌﻼﻗﺔ‪:‬‬ ‫‪u‬‬


‫ﻣﺨﻄﻂ ﻋﻼﻗﺔ اﻟﻜﯿﺎﻧﺎت‬
‫‪Entity Relationship diagram‬‬

‫ﺗﺣوﯾل اﻟﻧﻣوذج اﻟﻌﻼﺋﻘﻲ اﻟﻰ ﻣﺧطط ﻋﻼﻗﺔ اﻟﻛﯾﺎﻧﺎت‬ ‫‪u‬‬


‫ﻣﺨﻄﻂ ﻋﻼﻗﺔ اﻟﻜﯿﺎﻧﺎت‬
Entity Relationship Diagram

:‫ﻣﺛﺎل‬ u
‫اﻟﻤﺮاﺟﻊ‪:‬‬

‫‪Database Design for Mere Mortals, Michael J.‬‬ ‫‪u‬‬


‫‪Hernandez‬‬
‫ﻛﺗﺎب ﻣﻔﺎھﯾم ﻗواﻋد اﻟﺑﯾﺎﻧﺎت اﻟﻌﻼﺋﻘﯾﺔ ﺗﺄﻟﯾف ﻓﮭد اﻟﻘﺎﺳم‬ ‫‪u‬‬

‫ﻣذﻛرة ) ﻗواﻋد اﻟﺑﯾﺎﻧﺎت( ﻟدﻛﺗور ﺑدر اﻟدﯾن ﻋﺛﻣﺎن ﺳﻠﯾﻣﺎن‬ ‫‪u‬‬


‫ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬
‫‪Database‬‬

‫أ ‪ .‬ا ﯾﻣﺎ ن ا ﻟ ﺑﻧﺎ‬


‫‪Part 3‬‬

‫اﻟﺷﻛر اﻟﻣوﺻول ﻟﻸﺳﺗﺎذة ﺳوزان ﺟﺳﺗﻧﯾﮫ‬


‫اﻟﻤﺤﺎور‬

‫اﻟﻣﺣﺎور ‪:‬‬
‫أﻧواع اﻟﻣﺷﺎرﻛﺔ ‪Participation Types‬‬ ‫‪u‬‬

‫اﻟﻛﯾﻧوﻧﺔ اﻟﻘوﯾﺔ واﻟﺿﻌﯾﻔﺔ ‪Strong and Weak Entities‬‬ ‫‪u‬‬

‫اﻟﺧﺎﺻﯾﺔ اﻟوﺻﻔﯾﺔ ‪Descriptive Attribute‬‬ ‫‪u‬‬

‫ﻣﺛﺎل ﺗطﺑﯾﻘﻲ ﻟﺑﻧﺎء ﻣﺧطط اﻟﻌﻼﻗﺎت واﻟﻛﯾﺎﻧﺎت‬ ‫‪u‬‬


‫ﻧﻮع اﻟﻤﺸﺎرﻛﺔ ‪Participation Type‬‬

‫ﻧوع اﻟﻣﺷﺎرﻛﺔ وھﻲ ﻟﺗﺣدﯾد ﻣﺎ اذا ﻛﺎن وﺟود اﻟﻛﺎﺋن ‪ entity‬ﯾﻌﺗﻣد ﻋﻠﻰ ﻋﻼﻗﺔ ﺗرﺑطﮫ ﺑﻛﺎﺋن اﺧر ﻋﺑر ﻧوع اﻟﻌﻼﻗﺔ‬

‫‪.2‬ﻣﺷﺎرﻛﺔ ﺟزﺋﯾﺔ)‪(Partial Participation‬‬ ‫‪.1‬ﻣﺷﺎرﻛﺔ ﻛﻠﯾﺔ )‪(Total Participation‬‬


‫ھﻲ ﺗﺣدد أن ﻛل ﻛﯾﺎن ﻓﻲ ﻣﺟﻣوﻋﺔ اﻟﻛﯾﺎﻧﺎت ﻗد ﯾﺷﺎرك أو ﻻ‬ ‫‪u‬‬ ‫ھﻲ ﺗﺣدد أن ﻛل ﻛﯾﺎن ﻓﻲ ﻣﺟﻣوﻋﺔ اﻟﻛﯾﺎﻧﺎت ﯾﺟب أن ﯾﺷﺎرك‬ ‫‪u‬‬
‫ﯾﺷﺎرك ﻓﻲ اﻟﻌﻼﻗﺔ )اﻟﻣﺷﺎرﻛﺔ ﻟﯾﺳت ﺷرط(‪.‬‬ ‫إﺟﺑﺎرﯾًﺎ ﻓﻲ ﻋﻼﻗﺔ واﺣد ﻋﻠﻰ اﻷﻗل ﻓﻲ اﻟﻌﻼﻗﺔ‪.‬‬
‫ﺿﺎ اﺳم اﻟﻣﺷﺎرﻛﺔ اﻻﺧﺗﯾﺎرﯾﺔ‪.‬‬
‫ﻟﮭذا اﻟﺳﺑب ‪ ،‬ﯾ ُطﻠق ﻋﻠﯾﮭﺎ أﯾ ً‬ ‫‪u‬‬ ‫ﻻ ﯾﻣﻛن ان ﺗﺣﺗوي ﻋﻠﻰ ﻗﯾﻣﺔ ﺧﺎﻟﯾﺔ ﻟﻠﺧﺎﺻﯾﺔ ﻣن ﺟﮭﺔ‬ ‫‪u‬‬
‫اﻟﻣﺷﺎرﻛﺔ اﻟﻛﻠﯾﺔ‬
‫ﯾﺗم ﺗﻣﺛﯾل اﻟﻣﺷﺎرﻛﺔ اﻟﺟزﺋﯾﺔ ﺑﺎﺳﺗﺧدام ﺧط واﺣد ﯾرﺑط‬ ‫‪u‬‬
‫اﻟﻛﯾﺎﻧﺎت اﻟﻣرﺗﺑطﺔ ﺑﮭذه اﻟﻌﻼﻗﺔ‪.‬‬ ‫ﺿﺎ اﺳم اﻟﻣﺷﺎرﻛﺔ اﻹﻟزاﻣﯾﺔ‪.‬‬
‫ﻟﮭذا اﻟﺳﺑب ‪ ،‬ﯾ ُطﻠق ﻋﻠﯾﮭﺎ أﯾ ً‬ ‫‪u‬‬

‫ﯾﺗم ﺗﻣﺛﯾل إﺟﻣﺎﻟﻲ اﻟﻣﺷﺎرﻛﺔ ﺑﺎﺳﺗﺧدام ﺧط ﻣزدوج ﯾرﺑط‬ ‫‪u‬‬


‫اﻟﻛﯾﺎﻧﺎت اﻟﻣرﺗﺑطﺔ ﺑﮭذه اﻟﻌﻼﻗﺔ‪.‬‬
‫ﻧﻮع اﻟﻤﺸﺎرﻛﺔ ‪Participation Type‬‬

‫‪.2‬ﻣﺷﺎرﻛﺔ ﺟزﺋﯾﺔ)‪(Partial Participation‬‬ ‫‪.1‬ﻣﺷﺎرﻛﺔ ﻛﻠﯾﺔ )‪(Total Participation‬‬


‫ﻣﺛﺎل‪ :‬اذا اﻓﺗرﺿﻧﺎ ان ﻗﺎﻧون اﻟﺷرﻛﺔ ﯾﻧص ﻋﻠﻰ ان‬ ‫‪u‬‬ ‫ﻣﺛﺎل‪ :‬اذا اﻓﺗرﺿﻧﺎ ان ﻗﺎﻧون اﻟﺷرﻛﺔ ﯾﻧص ﻋﻠﻰ ان‬ ‫‪u‬‬

‫ﻛل ﻗﺳم ﻟﮫ ﻣوظف واﺣد ﯾدﯾره‬ ‫‪-‬‬ ‫ﻛل ﻗﺳم ﯾﺟب أن ﯾﻌﻣل ﺑﮫ ﻋدد ﻣن اﻟﻣوظﻔﯾن‬ ‫‪-‬‬

‫ﻻ ﯾوﺟد ﻣوظف ﻣدﯾر ﻷﻛﺛر ﻣن ﻗﺳم‬ ‫‪-‬‬ ‫ﻻ ﯾوﺟد ﻣوظف ﯾﻌﻣل ﻓﻲ اﻛﺛر ﻣن ﻗﺳم‬ ‫‪-‬‬

‫ﯾوﺟد ﻣوظﻔﯾن ﻻ ﯾدﯾرون أي أﻗﺳﺎم‬ ‫‪-‬‬ ‫ﻻ ﯾوﺟد ﻣوظف دون ان ﯾﻌﻣل ﺑﻘﺳم‪.‬‬ ‫‪-‬‬

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


‫اﻟﻣوظف‬ ‫ﯾدﯾر‬ ‫ﻗﺳم‬ ‫اﻟﻣوظف‬ ‫ﯾﻌﻣل‬ ‫اﻟﻘﺳم‬
‫اﻟﻜﯿﻨﻮﻧﺔ اﻟﻘﻮﯾﺔ واﻟﻜﯿﻨﻮﻧﺔ اﻟﻀﻌﯿﻔﺔ‬
‫‪Strong and Weak Entities‬‬
‫اﻟﻛﯾﻧوﻧﺔ اﻟﺿﻌﯾﻔﺔ‬
‫‪ .1‬ﻛﯾﻧوﻧﺔ ﻗوﯾﺔ ‪ :‬ﻛﯾﺎﻧﺎت اﻟﺗﻲ ﻻ ﯾﻌﺗﻣد وﺟودھﺎ ﻋﻠﻰ ﻛﯾﻧوﻧﺔ اﺧرى وﻟﮭﺎ ﺧﺎﺻﯾﺔ ﺗﻌﺗﺑر ﻣﻔﺗﺎح أﺳﺎﺳﻲ )ﻟﮭﺎ ﻗﯾﻣﺔ وﺣﯾدة ﻻ‬ ‫‪u‬‬
‫ﺗﺗﻛرر( ‪.‬‬
‫‪ .2‬ﻛﯾﻧوﻧﺔ ﺿﻌﯾﻔﺔ ‪ :‬ﻛﯾﺎﻧﺎت ﻻ ﺗﻛون ﻣﺳﺗﻘﻠﺔ ﺑذاﺗﮭﺎ ﻓﻲ اﻟﻧظﺎم‪ ،‬أي أن وﺟودھﺎ ﯾﻌﺗﻣد ﻋﻠﻰ وﺟود ﻛﯾﺎن‬ ‫‪u‬‬

‫اﻟﻌﻼﻗﺔ‬ ‫أﺧر‪ ،‬ﻻ ﯾوﺟد ﻟﮭﺎ ﺧﺎﺻﯾﺔ ﺗﻌﺗﺑر ﻣﻔﺗﺎح أﺳﺎﺳﻲ‪.‬‬


‫ﻟﻠﻛﯾﻧوﻧﺔ‬
‫اﻟﺿﻌﯾﻔﺔ‬

‫ﻣﺛﺎل‪ :‬ﻗروض اﻟﺑﻧك وﺳدادھﺎ ﻋﻠﻰ دﻓﻌﺎت‪ .‬ﯾوﺟد ﻟدﯾﻧﺎ ﻛﯾﻧوﻧﺗﺎن ھﻣﺎ اﻟﻘرض و اﻟدﻓﻌﺎت‪.‬‬ ‫‪u‬‬

‫) ﻛﯾﻧوﻧﺔ ﻗوﯾﺔ ﻟﮭﺎ ﺧﺎﺻﯾﺔ ﻣﻔﺗﺎح(‬ ‫ﻛﯾﻧوﻧﺔ اﻟﻘرض ﺧﺻﺎﺋﺻﮭﺎ رﻗم اﻟﻘرض وﻣﺑﻠﻎ اﻟﻘرض‪.‬‬ ‫‪u‬‬

‫ﻛﯾﻧوﻧﺔ اﻟدﻓﻌﺎت ﺧﺻﺎﺋﺻﮭﺎ رﻗم اﻟدﻓﻌﺔ‪ ،‬ﻣﺑﻠﻎ اﻟدﻓﻌﺔ‪ ،‬ﺗﺎرﯾﺦ اﻟدﻓﻌﺔ‪) .‬ﻛﯾﻧوﻧﺔ ﺿﻌﯾﻔﺔ ﻻ ﯾوﺟد ﻟﮭﺎ ﺧﺎﺻﯾﺔ ﻣﻔﺗﺎح ﻛل‬ ‫‪u‬‬
‫اﻟﺧﺻﺎﺋص ﻣﻣﻛن أن ﺗﺗﻛرر ﻗﯾﻣﺗﮭﺎ(‪ .‬ﻧﻣﯾزھﺎ ﺑﺎﻟرﺳم ﻋن طرﯾق رﺳﻣﮭﺎ داﺧل ﻣﺳﺗطﯾل ﻣزدوج‪.‬‬
‫اﻟﻜﯿﻨﻮﻧﺔ اﻟﻤﻌﺮﻓﺔ ‪Identifying Entity‬‬

‫اﻟﻛﯾﻧوﻧﺔ اﻟﻣﻌرﻓﺔ‬ ‫‪u‬‬

‫اﻟﻛﯾﻧوﻧﺔ اﻟﺿﻌﯾﻔﺔ ﯾﺟب أن ﯾﻛون ﻟﮭﺎ ﻛﯾﻧوﻧﺔ ﻣﻌرﻓﺔ‪ .‬وأﻣﯾزھﺎ ﺑﺎﻟرﺳم ﻋن طرﯾق رﺳم اﻟﻌﻼﻗﺔ ﺑﯾن اﻟﻛﯾﻧوﻧﺔ اﻟﺿﻌﯾﻔﺔ‬
‫واﻟﻛﯾﻧوﻧﺔ اﻟﻣﻌرﻓﺔ ﺑﺎﺳﺗﺧدام ﺷﻛل ﻣﻌﯾن ﻣزدوج‪ .‬اﻟﻛﯾﻧوﻧﺔ اﻟﺿﻌﯾﻔﺔ وﺟودھﺎ ﯾﻌﺗﻣد ﻋﻠﻰ اﻟﻣﺷﺎرﻛﺔ اﻟﻛﻠﯾﺔ ﻓﻲ اﻟﻌﻼﻗﺔ ﻣﻊ‬
‫اﻟﻛﯾﻧوﻧﺔ اﻟﻣﻌرﻓﺔ‪.‬‬
‫ﻣﺜﺎل‬

‫اﻟﻣﻔﺗﺎح ﻟﻛﯾﻧوﻧﺔ اﻟدﻓﻌﺎت ﯾﺻﺑﺢ رﻗم اﻟﻘرض ‪ +‬رﻗم اﻟدﻓﻌﺔ ﺣﯾث أن رﻗم اﻟدﻓﻌﺔ ﻟﻠﻘرض اﻟواﺣد ﻻ ﯾﺗﻛرر‪.‬‬ ‫‪u‬‬

‫وﻓﻲ ھذه اﻟﺣﺎﻟﺔ ﯾﺗم اﺧﺗﯾﺎر اﻟﻣﻔﺗﺎح اﻟرﺋﯾﺳﻲ ﻟﻠﻛﯾﺎن اﻟرﺋﯾﺳﻲ ﻣﻊ ﺻﻔﺔ ﻣن ﺻﻔﺎت اﻟﺗﺎﺑﻊ ﻣﺛل )رﻗم اﻟدﻓﻌﺔ( ﻟﺗﺷﻛل ﻣﻔﺗﺎﺣﺎ‬ ‫‪u‬‬
‫رﺋﯾﺳﯾﺎ ﻟﻠﻛﯾﺎن اﻟﺗﺎﺑﻊ و ﯾوﺿﻊ ﺗﺣﺗﮫ ﺧط ﻣﺗﻘطﻊ‪.‬‬

‫اﻟﻛﯾﻧوﻧﺔ اﻟﺿﻌﯾﻔﺔ ﻣﻣﻛن أن ﺗﺷﺎرك ﺑﺄﻛﺛر ﻣن ﻋﻼﻗﺔ ﻣﻊ أﻛﺛر ﻣن ﻛﯾﻧوﻧﺔ وﻟﻛن ﻟﯾس ﺑﺎﻟﺿرورة ان ﺗﻛون ﺟﻣﯾﻊ‬ ‫‪u‬‬
‫اﻟﻌﻼﻗﺎت ﻣﻌرﻓﺔ ﻟﮭﺎ )ﻋﻼﻗﺔ ﻣﻌرﻓﺔ واﺣدة ﺗﻛﻔﻲ(‪.‬‬
‫اﻟﺨﺎﺻﯿﺔ اﻟﻮﺻﻔﯿﺔ ‪Descriptive Attribute‬‬

‫ﺧﺎﺻﯾﺔ ﺗوﺿﻊ ﻋﻠﻰ اﻟﻌﻼﻗﺔ ﺑﯾن اﻟﻛﯾﻧوﻧﺎت وﻟﯾس ﻋﻠﻰ اﻟﻛﯾﻧوﻧﺔ ﻧﻔﺳﮭﺎ‪.‬‬
‫ﻣﺛﺎل‪ :‬ﺧﺎﺻﯾﺔ ﻋدد ﺳﺎﻋﺎت اﻟﻌﻣل ﻟﻠﻌﻼﻗﺔ )ﯾﻌﻣل ﻓﻲ( ﺑﯾن ﻛﯾﻧوﻧﺔ اﻟﻣوظف وﻛﯾﻧوﻧﺔ اﻟﻣﺷروع‪ .‬ﺣﯾث أن ﻧوع اﻟﻌﻼﻗﺔ‬
‫ﻣﺟﻣوﻋﺔ ﻟﻣﺟﻣوﻋﺔ‪.‬‬
‫‪ -‬اذا وﺿﻌﻧﺎ ﺧﺎﺻﯾﺔ ﻋدد ﺳﺎﻋﺎت اﻟﻌﻣل ﻟﻛﯾﻧوﻧﺔ اﻟﻣوظف ھذا ﯾﻌﻧﻲ أن ھذا اﻟﻣوظف ﯾﻌﻣل ﻧﻔس ﻋدد ﺳﺎﻋﺎت اﻟﻌﻣل‬ ‫‪u‬‬
‫ﻷي ﻣﺷروع‪.‬‬
‫‪ -‬اذا وﺿﻌت ﻟﻛﯾﻧوﻧﺔ اﻟﻣﺷروع ھذا ﯾﻌﻧﻲ أن ﻛل اﻟﻣوظﻔﯾن اﻟﻌﺎﻣﻠﯾن ﻓﻲ ﻣﺷروع ﻣﻌﯾن ﻧﻔس ﻋدد اﻟﺳﺎﻋﺎت‪.‬‬ ‫‪u‬‬

‫‪ -‬وﺿﻌﮭﺎ ﻋﻠﻰ اﻟﻌﻼﻗﺔ ﯾﻌﻧﻲ أن ﻛل ﻣوظف ﯾﻌﻣل ﻋدد ﺳﺎﻋﺎت ﻣﺧﺗﻠﻔﺔ ﻋن اﻟﻣوظف اﻵﺧر وﻣﺧﺗﻠﻔﺔ ﻣن ﻣﺷروع‬ ‫‪u‬‬
‫ﻵﺧر‪.‬‬
‫ﻋدد اﻟﺳﺎﻋﺎت‬

‫‪M‬‬ ‫ﯾﻌﻣل‬ ‫‪M‬‬


‫اﻟﻣﺷروع‬ ‫اﻟﻣوظف‬
‫ﻓﻲ‬
‫اﻟﺨﺎﺻﯿﺔ اﻟﻮﺻﻔﯿﺔ ‪Descriptive Attribute‬‬

‫ﻣﺛﺎل‪ :‬ﺧﺎﺻﯾﺔ اﻟﺳﻌر ﻟﻠﻌﻼﻗﺔ )ﯾﺑﯾﻊ( ﺑﯾن ﻛﯾﻧوﻧﺔ اﻟﺻﯾدﻟﯾﺔ وﻛﯾﻧوﻧﺔ اﻟدواء‪ .‬ﺣﯾث أن ﻧوع اﻟﻌﻼﻗﺔ ﻣﺟﻣوﻋﺔ ﻟﻣﺟﻣوﻋﺔ‪.‬‬
‫‪ -‬اذا وﺿﻌت ﺧﺎﺻﯾﺔ اﻟﺳﻌر ﻟﻛﯾﻧوﻧﺔ اﻟﺻﯾدﻟﯾﺔ ھذا ﯾﻌﻧﻲ أن ﻛل اﻷدوﯾﺔ ﻓﻲ اﻟﺻﯾدﻟﯾﺔ ﻟﮭﺎ ﻧﻔس اﻟﺳﻌر‪.‬‬ ‫‪u‬‬

‫‪ -‬اذا وﺿﻌت ﻟﻛﯾﻧوﻧﺔ اﻟدواء ھذا ﯾﻌﻧﻲ أن ﺳﻌر اﻟدواء ﺛﺎﺑت ﻓﻲ ﺟﻣﯾﻊ اﻟﺻﯾدﻟﯾﺎت‪.‬‬ ‫‪u‬‬

‫‪ -‬وﺿﻌﮭﺎ ﻋﻠﻰ اﻟﻌﻼﻗﺔ ﯾﻌطﻲ ﺣرﯾﺔ ﻟﻠﺻﯾدﻟﯾﺎت ﺑﺎﻟﺗﺳﻌﯾر‪ .‬ﺑﻣﻌﻧﻰ ﺳﻌر اﻟدواء ﯾﺧﺗﻠف ﻣن ﺻﯾدﻟﯾﺔ ﻷﺧرى‪.‬‬ ‫‪u‬‬

‫اﻟﺳﻌر‬

‫‪M‬‬ ‫‪M‬‬
‫اﻟﺻﯾدﻟﯾﺔ‬ ‫ﺗﺑﯾﻊ‬ ‫اﻟدواء‬

‫ﻣﻼﺣظﺔ‪ :‬ﯾﺟب ﻓﮭم اﻟوﺻف ﺟﯾدا ﻟوﺿﻊ اﻟﺧﺎﺻﯾﺔ ﻓﻲ اﻟﻣﻛﺎن اﻟﻣﻧﺎﺳب‬


‫ﺣﺎﻻت ﯾﻤﻜﻦ ﻓﯿﮭﺎ ﺗﺤﺮﯾﻚ اﻟﺨﺎﺻﯿﺔ اﻟﻮﺻﻔﯿﺔ ﻣﻦ اﻟﻌﻼﻗﺔ ﻟﻠﻜﯿﻨﻮﻧﺔ‬

‫‪ .1‬ﻓﻲ ﻋﻼﻗﺔ ‪ 1 : 1‬ﻧﺳﺗطﯾﻊ ﻧﻘل اﻟﺧﺎﺻﯾﺔ اﻟوﺻﻔﯾﺔ ﺑﺎﺗﺟﺎه اﻟﻣﺷﺎرﻛﺔ اﻟﻛﻠﯾﺔ‪) .‬ﻋﻠﻠﻲ(‬
‫ﻣﺛﺎل ‪ :‬ﺧﺎﺻﯾﺔ ﺗﺎرﯾﺦ ادارة اﻟﻘﺳم ﻟﻠﻌﻼﻗﺔ ﯾدﯾر ﺑﯾن ﻛﯾﻧوﻧﺔ اﻟﻣوظف وﻛﯾﻧوﻧﺔ ﻗﺳم‪ .‬ﻧوع اﻟﻌﻼﻗﺔ واﺣد ﻣﻘﺎﺑل واﺣد‪.‬‬ ‫‪u‬‬
‫اﻟﻣﺷﺎرﻛﺔ ﺟزﺋﯾﺔ ﻣن طرف اﻟﻣوظف )ﻟﯾس ﻛل ﻣوظف ﻣدﯾر( وﻛﻠﯾﺔ ﻣن ﺟﮭﺔ اﻟﻘﺳم )ﻛل ﻗﺳم ﯾﺟب أن ﯾﻛون ﻟﮫ ﻣدﯾر‬
‫أي ﯾﺟب أن ﯾﺷﺎرك ﺑﺎﻟﻌﻼﻗﺔ(‪ .‬ﻓﻲ ھذه اﻟﺣﺎﻟﺔ ﯾﺗم ﻧﻘل اﻟﺧﺎﺻﯾﺔ اﻟوﺻﻔﯾﺔ )ﺗﺎرﯾﺦ إدارة اﻟﻘﺳم( ﻟﻛﯾﻧوﻧﺔ اﻟﻘﺳم ﻷﻧﮫ ﻓﻲ‬
‫ﺣﺎل ﺗم ﻧﻘﻠﮫ ﻟﻛﯾﻧوﻧﺔ اﻟﻣوظف ﺳﯾﺗم ﺗﺧزﯾن ﻗﯾﻣﺔ ‪ Null‬ﻷي ﻣوظف ﻟﯾس ﺑﻣدﯾر‪.‬‬

‫‪ .2‬ﻓﻲ ﻋﻼﻗﺔ ‪ 1:M‬واﺣد ﻣﻘﺎﺑل ﻣﺟﻣوﻋﺔ ﻧﺳﺗطﯾﻊ ﻧﻘل اﻟﺧﺎﺻﯾﺔ اﻟوﺻﻔﯾﺔ ﺑﺎﺗﺟﺎه اﻟﻣﺟﻣوﻋﺔ‪.‬‬

‫‪ .3‬ﻻ ﯾﻣﻛن ﻧﻘل اﻟﺧﺎﺻﯾﺔ اﻟوﺻﻔﯾﺔ ﻓﻲ اﻟﻌﻼﻗﺔ ﻣﺟﻣوﻋﺔ ﻣﻘﺎﺑل ﻣﺟﻣوﻋﺔ ‪.M:M‬‬
‫اﻟﺨﺼﺎﺋﺺ اﻟﻤﺨﺘﻠﻔﺔ ﻟﻠﻌﻼﻗﺎت‬

‫اﺳﻢ ﯾﻮﺿﺢ اﻻرﺗﺒﺎط ﺑﯿﻦ أطﺮاف اﻟﻌﻼﻗﺔ‪.‬‬ ‫‪u‬‬

‫درﺟﺔ اﻟﻌﻼﻗﺔ )أﺣﺎدﯾﮫ‪ -‬ﺛﻨﺎﺋﯿﺔ ‪ -‬ﺛﻼﺛﯿﺔ(‪.‬‬ ‫‪u‬‬

‫ﻧﻮع اﻟﻌﻼﻗﺔ )‪(1:1 – 1:M – M-N‬‬ ‫‪u‬‬

‫ﻧﻮع اﻟﻤﺸﺎرﻛﺔ )ﻛﻠﯿﺔ أو ﺟﺰﺋﯿﺔ(‬ ‫‪u‬‬

‫ﻗﺪ ﯾﻮﺟﺪ ﻋﻨﺎﺻﺮ وﺻﻒ ﻟﻠﻌﻼﻗﺔ ﻛﻤﺎ ھﻮ اﻟﺤﺎل ﻣﻊ ﻛﯿﻨﻮﻧﺎت اﻟﺒﯿﺎﻧﺎت وھﻲ ﺗﺼﻒ ﺧﺎﺻﯿﺔ ﻟﻠﻌﻼﻗﺔ ﻧﻔﺴﮭﺎ‪.‬‬ ‫‪u‬‬

‫ﯾﻤﻜﻦ ﺗﺤﺪﯾﺪ أﻛﺜﺮ ﻣﻦ ﻋﻼﻗﮫ ﺑﯿﻦ ﻛﯿﻨﻮﻧﺘﯿﻦ‪.‬‬ ‫‪u‬‬

‫ﯾﻤﻜﻦ أن ﺗﻜﻮن اﻟﻌﻼﻗﺔ ﻓﻲ ﺷﻜﻞ ﻛﯿﻨﻮﻧﺔ وذﻟﻚ ﻋﻨﺪ ﻣﻌﺎﻟﺠﺔ اﻟﻌﻼﻗﺎت ﻣﻦ اﻟﻨﻮع ﻣﺘﻌﺪد ﻟـ ﻣﺘﻌﺪد وﺗﻌﺮف ﺑﺎﺳﻢ‬ ‫‪u‬‬
‫‪Associative entity‬‬
‫ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ ﻟﺒﻨﺎء ﻣﺨﻄﻂ اﻟﻌﻼﻗﺎت واﻟﻜﯿﺎﻧﺎت‬
‫اﻟﺨﻄﻮة اﻷوﻟﻰ ﺗﺤﺪﯾﺪ ﻣﺘﻄﻠﺒﺎت اﻟﻨﻈﺎم‬

‫ﻣطﻠوب إﻧﺷﺎء ﻧظﺎم ﻗﺎﻋدة ﺑﯾﺎﻧﺎت ﻟﺷرﻛﺔ ﻣﺎ وﺳوف ﻧﺑدأ ﺑﻌﻣل ﻣﺧطط ﻋﻼﻗﺔ اﻟﻛﯾﺎﻧﺎت )‪(ERD‬ﻟﮭذه اﻟﺷرﻛﺔ ﺑﻔرض أن ﻣﺗطﻠﺑﺎﺗﮭﺎ ﻛﻣﺎ‬ ‫‪u‬‬
‫ﯾﻠﻲ‪:‬‬
‫اﻟﺷرﻛﺔ ﻣﻘﺳﻣﺔ إﻟﻰ أﻗﺳﺎم و ﻛل ﻗﺳم ﻟﮫ رﻗم و اﺳم وﺣﯾد أي ﻻ ﯾﺗﻛرر‪.‬‬ ‫‪.1‬‬

‫ﯾوﺟد ﻟﻛل ﻗﺳم ﻣوظف ﻣﻌﯾن ﯾدﯾره وﻣن اﻟﻣﮭم ﻣﻌرﻓﺔ ﺗﺎرﯾﺦ ﺑداﯾﺔ إدارﺗﮫ ﻟﮭذا اﻟﻘﺳم‪.‬‬ ‫‪.2‬‬

‫اﻟﻘﺳم ﯾﻣﻛن أن ﯾﻛون ﻟﮫ أﻛﺛر ﻣن ﻣﻛﺎن‪.‬‬ ‫‪.3‬‬

‫ﯾﺟب اﻻﺣﺗﻔﺎظ ﺑﺑﯾﺎﻧﺎت اﻟﻣوظف واﻟﺗﻲ ﺗﺷﻣل رﻗﻣﮫ )وھو رﻗم وﺣﯾد ﻻ ﯾﺗﻛرر( واﺳﻣﮫ وﻧوﻋﮫ وﻋﻧواﻧﮫ وﺗﻠﯾﻔوﻧﮫ وراﺗﺑﮫ اﻟﺷﮭري‪.‬‬ ‫‪.4‬‬

‫اﻟﻣوظف ﯾﺟب أن ﯾﻌﻣل ﺑﻘﺳم واﺣد ﻣﺣدد وﻣن اﻟﻣﮭم ﻣﻌرﻓﺔ ﻋدد اﻟﻣوظﻔﯾن ﺑﻛل ﻗﺳم ‪.‬‬ ‫‪.5‬‬

‫ﯾﺟب أن ﯾﻌﻣل اﻟﻣوظف ﻓﻲ ﻣﺷروع واﺣد ﻋﻠﻰ اﻷﻗل واﻟذي ﻟﮫ رﻗم وﺣﯾد ﻻ ﯾﺗﻛرر وﻣن اﻟﻣﮭم ﺟدا ً ﻣﻌرﻓﺔ ﻋدد اﻟﺳﺎﻋﺎت اﻷﺳﺑوﻋﯾﺔ‬ ‫‪.6‬‬
‫اﻟﺗﻲ ﯾﻌﻣﻠﮭﺎ ﻛل ﻣوظف ﻓﻲ ﻛل ﻣﺷروع‪.‬‬
‫اﻟﻤﺮﺣﻠﺔ اﻟﺜﺎﻧﯿﺔ ھﻲ ﻣﺮﺣﻠﺔ اﻟﺘﺼﻤﯿﻢ ورﺳﻢ ﻧﻤﻮذج اﻟﻜﯿﺎن واﻟﻌﻼﻗﺔ‬
‫اﻟﺮاﺑﻄﺔ ﺗﻤﺮ ﺑﺨﻤﺲ ﺧﻄﻮات ھﻲ‬

‫ﺗﺤﺪﯾﺪ اﻟﻜﯿﺎﻧﺎت‪.‬‬ ‫‪.1‬‬

‫ﺗﺤﺪﯾﺪ اﻟﺼﻔﺎت أو اﻟﺨﺼﺎﺋﺺ ﻟﮭﺬه اﻟﻜﯿﺎﻧﺎت وﻓﻲ ھﺬه اﻟﻤﺮﺣﻠﺔ ﻻﺑﺪ ﻣﻦ ﺗﺤﺪﯾﺪ اﻟﺼﻔﺔ اﻟﺘﻲ ﺗﻌﺪ ﻣﻔﺘﺎح أﺳﺎﺳﻲ ﻟﮭﺬا اﻟﻜﯿﺎن‪.‬‬ ‫‪.2‬‬

‫رﺑﻂ اﻟﻜﯿﺎﻧﺎت ﺑﻌﻼﻗﺎت‪.‬‬ ‫‪.3‬‬

‫ﺗﺤﺪﯾﺪ ﻧﻮع ھﺬه اﻟﻌﻼﻗﺎت ‪.‬‬ ‫‪.4‬‬

‫ﺗﺤﺪﯾﺪ ﻧﻮع اﻟﻤﺸﺎرﻛﺔ‪.‬‬ ‫‪.5‬‬


‫اﻟﺤ ﻞ‬

‫ﯾﺘﻢ ﺗﺤﺪﯾﺪ اﻟﻜﯿﺎﻧﺎت واﻟﺨﺼﺎﺋﺺ ﺑﻨﺎء ﻋﻠﻰ اﻟﻤﻌﻠﻮﻣﺎت اﻟﺴﺎﺑﻖ ﻋﺮﺿﮭﺎ ﺣﯿﺚ ﻧﻼﺣﻆ وﺟﻮد ﻣﻔﺮدات ﻛﺜﯿﺮة‬ ‫‪.1‬‬

‫ﺗﻢ اﺧﺘﯿﺎر ﺧﺎﺻﯿﺔ أو أﻛﺜﺮ ﻣﻦ ﺧﺼﺎﺋﺺ اﻟﻜﯿﺎن ﺗﺼﻠﺢ أن ﺗﻜﻮن ﻣﻔﺘﺎح ﻟﻜﻞ ﻛﯿﺎن ﺑﺎﻟﺠﺪول‪.‬‬ ‫‪.2‬‬

‫ﻣﻔﺗﺎح اﻟﻛﯾﺎن‬ ‫اﻟﺧﺻﺎﺋص‬ ‫اﻟﻛﯾﺎن‬


‫رﻗم اﻟﻣوظف‬ ‫ﻣرﺗب –ﻋﻧوان –ﺗﺎرﯾﺦ اﻟﻣﯾﻼد –ﻧوع –اﺳم –رﻗم اﻟﻣوظف‬ ‫"ﻣوظف"‬

‫رﻗم اﻟﻘﺳم أو اﺳم‬ ‫رﻗم اﻟﻘﺳم –اﺳم –ﻣﻛﺎن –ﻋدد اﻟﻣوظﻔﯾن‬ ‫"ﻗﺳم"‬

‫رﻗم اﻟﻣﺷروع‬ ‫ﻣوﻗﻊ –اﺳم –رﻗم اﻟﻣﺷروع‬ ‫"ﻣﺷروع"‬


‫اﻟﺤ ﻞ‬

‫ﺧﺎﺻﯾﺔ "ﻋدد اﻟﺳﺎﻋﺎت "واﻟﺗﻲ ﯾﻘﺻد ﺑﮭﺎ ﻋدد ﺳﺎﻋﺎت اﻟﻌﻣل اﻷﺳﺑوﻋﯾﺔ ﻟﻣوظف ﻣﻌﯾن ﻓﻲ ﻣﺷروع ﻣﻌﯾن ﻻ ﯾﻣﻛن‬ ‫‪u‬‬
‫اﻋﺗﺑﺎرھﺎ ﺧﺎﺻﯾﺔ ﻟﻛﯾﺎن "ﻣوظف "وﻻ ﺧﺎﺻﯾﺔ ﻟﻛﯾﺎن "ﻣﺷروع "وﻟﻛﻧﮭﺎ ﺗﻌﺗﺑر ﺧﺎﺻﯾﺔ ﻟﻌﻼﻗﺔ ﻋﻣل ﻣوظف ﻣﻌﯾن‬
‫ﺑﻣﺷروع ﻣﻌﯾن‪ .‬وﻟذﻟك ﻟم ﺗﻛﺗب ﺑﺎﻟﺟدول اﻟﺳﺎﺑق‪.‬‬

‫ﺧﺎﺻﯾﺔ "ﺗﺎرﯾﺦ اﻟﺑداﯾﺔ" واﻟﺗﻲ ﯾﻘﺻد ﺑﮭﺎ ﺗﺎرﯾﺦ ﺑداﯾﺔ إدارة ﻣوظف ﻣﻌﯾن ﻟﻘﺳم ﻣﻌﯾن ﻻ ﯾﻣﻛن اﻋﺗﺑﺎرھﺎ ﺧﺎﺻﯾﺔ ﻟﻛﯾﺎن‬ ‫‪u‬‬
‫"ﻣوظف "وﻻ ﺧﺎﺻﯾﺔ ﻟﻛﯾﺎن "ﻗﺳم "وﻟﻛﻧﮭﺎ ﺗﻌﺗﺑر ﺧﺎﺻﯾﺔ ﻟﻌﻼﻗﺔ إدارة ﻣوظف ﻣﻌﯾن ﻟﻘﺳم ﻣﻌﯾن‪ .‬ﻟذﻟك ﻟم ﺗﻛﺗب ﺑﺎﻟﺟدول‬
‫اﻟﺳﺎﺑق‪.‬‬
‫اﻟﺤ ﻞ‬

‫ﺗﺣدﯾد اﻟﻌﻼﻗﺎت ﺑﯾن اﻟﻛﯾﺎﻧﺎت وﺧﺻﺎﺋﺻﮭﺎ‪:‬‬ ‫‪u‬‬

‫ﺗﺣدﯾد ﻧوع اﻟﻌﻼﻗﺔ‬ ‫‪.1‬‬

‫ﺗﺣدﯾد ﻧوع اﻟﻣﺷﺎرﻛﺔ‬ ‫‪.2‬‬

‫ﺧﺻﺎﺋص اﻟﻌﻼﻗﺔ و ﯾﻘﺻد ﺑﮭﺎ اﻟﺧﺻﺎﺋص اﻟﺗﻲ ﺗﺻف ﻋﻼﻗﺔ ﻣﻌﯾﻧﺔ وﻻ ﺗﺻف أي ﻛﯾﺎن ﻓﻲ اﻟﻌﻼﻗﺔ‪.‬‬ ‫‪u‬‬

‫ﻣﺛل‪ :‬ﺧﺎﺻﯾﺔ ﻋدد ﺳﺎﻋﺎت اﻟﻌﻣل ﻟﻠﻣوظف ﻓﻲ ﻣﺷروع ﻓﮭﻲ ﺗﺻف ﻋﻼﻗﺔ ﻋﻣل ﻣوظف ﻣﻌﯾن ﻓﻲ ﻣﺷروع ﻣﻌﯾن ﻻ ﯾﻣﻛن‬
‫ﻣﻧطﻘﯾﺎ ً اﻋﺗﺑﺎرھﺎ ﺧﺎﺻﯾﺔ ﻟﻛﯾﺎن "ﻣوظف "وﻻ ﺧﺎﺻﯾﺔ ﻟﻛﯾﺎن "ﻣﺷروع‪".‬‬

‫ﻋدد اﻟﺳﺎﻋﺎت‬

‫‪M‬‬ ‫ﯾﻌﻣل‬ ‫‪M‬‬


‫اﻟﻣﺷروع‬ ‫اﻟﻣوظف‬
‫ﻓﻲ‬
‫اﻟﺤ ﻞ‬

‫ﺗﺣدﯾد اﻟﻌﻼﻗﺎت اﻟﻣوﺟودة ﺑﺎﻟﻧظﺎم‪:‬‬


‫ﺑﯾن ﻛﯾﺎن "ﻣوظف "وﻛﯾﺎن "ﻗﺳم "ﯾوﺟد ﻋﻼﻗﺗﯾن ھﻣﺎ‪:‬‬ ‫‪u‬‬

‫أ‪-‬ﻋﻼﻗﺔ "ﯾﻌﻣل ﻓﻲ ﻗﺳم"‬


‫ب‪-‬ﻋﻼﻗﺔ "ﯾدﯾر ﻗﺳم"‬
‫ﺑﯾن ﻛﯾﺎن "ﻣوظف "وﻛﯾﺎن "ﻣﺷروع "ﺗوﺟد ﻋﻼﻗﺔ واﺣدة وھﻰ ﻋﻼﻗﺔ "ﯾﻌﻣل ﻓﻲ ﻣﺷروع‬ ‫‪u‬‬

‫اﻟﻤﺸﺎرﻛﺔ اﻟﻜﻠﯿﺔ ﻟﻠﻜﯿﺎن‬ ‫ﺧﺼﺎﺋﺺ اﻟﻌﻼﻗﺔ‬ ‫ﻧﻮع اﻟﻌﻼﻗﺔ‬ ‫اﻟﻜﯿﺎن اﻵﺧﺮ‬ ‫اﻟﻜﯿﺎن اﻷول‬ ‫اﺳﻢ اﻟﻌﻼﻗﺔ‬

‫ﻣﻮظﻒ وﻗﺴﻢ‬ ‫ﻻ ﯾﻮﺟﺪ‬ ‫رأس ﺑﺄطﺮاف ﻣﻦ ﻧﺎﺣﯿﺔ ﻗﺴﻢ‬ ‫ﻗﺴﻢ‬ ‫ﻣﻮظﻒ‬ ‫ﯾﻌﻤﻞ ﻓﻲ ﻗﺴﻢ‬
‫ﻗﺴﻢ ﻓﻘﻂ‬ ‫ﺗﺎرﯾﺦ اﻟﺒﺪاﯾﺔ‬ ‫رأس ﺑﺮأس‬ ‫ﻗﺴﻢ‬ ‫ﻣﻮظﻒ‬ ‫ﯾﺪﯾﺮ ﻗﺴﻢ‬
‫ﻣﻮظﻒ وﻣﺸﺮوع‬ ‫ﻋﺪد اﻟﺴﺎﻋﺎت‬ ‫أطﺮاف ﺑﺄطﺮاف‬ ‫ﻣﺸﺮوع‬ ‫ﻣﻮظﻒ‬ ‫ﯾﻌﻤﻞ ﻓﻲ ﻣﺸﺮوع‬
‫اﻟﻤﺮاﺟﻊ‪:‬‬

‫‪Database Design for Mere Mortals, Michael‬‬ ‫‪u‬‬


‫‪J. Hernandez‬‬
‫ﻛﺘﺎب ﻣﻔﺎھﯿﻢ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت اﻟﻌﻼﺋﻘﯿﺔ ﺗﺄﻟﯿﻒ ﻓﮭﺪ اﻟﻘﺎﺳﻢ‬ ‫‪u‬‬

‫ﻣﺬﻛﺮة ) ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت( ﻟﺪﻛﺘﻮر ﺑﺪر اﻟﺪﯾﻦ ﻋﺜﻤﺎن ﺳﻠﯿﻤﺎن‬ ‫‪u‬‬


‫ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬
‫‪Database‬‬

‫أ ‪ .‬ا ﯾﻣﺎ ن ا ﻟ ﺑﻧﺎ‬


‫‪Part 4‬‬

‫اﻟﺷﻛر اﻟﻣوﺻول ﻟﻸﺳﺗﺎذة ﺳوزان ﺟﺳﺗﻧﯾﮫ‬


‫اﻟﻤﺤﺎور‬

‫اﻟﻣﺣﺎور ‪:‬‬
‫ﺧطوات ﺑﻧﺎء ﻗﺎﻋدة اﻟﺑﯾﺎﻧﺎت‬ ‫‪u‬‬

‫أﻣﺛﻠﺔ ﺗطﺑﯾﻘﯾﺔ‬ ‫‪u‬‬


‫دورة ﺣﯿﺎة ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت )‪DBLC (Database Life Cycle‬‬

‫إن ﻋﻣﻠﯾﺔ ﺗطوﯾر ﻗﺎﻋدة اﻟﺑﯾﺎﻧﺎت ﺗﻣر ﺑﻣﺟﻣوﻋﺔ ﻣن اﻟﻣراﺣل‪ ،‬ھذه اﻟﻣراﺣل اﻟﻣﺗﺗﺎﻟﯾﺔ ﺗﺳﻣﻰ ﺑدورة ﺣﯾﺎة ﻗﺎﻋدة اﻟﺑﯾﺎﻧﺎت‪ .‬ھذه اﻟﻣراﺣل أو دورة اﻟﺣﯾﺎة ﺗﻣر‬
‫ﺑﺻورة ﻣﺗزاﻣﻧﺔ ﺿﻣن ﻣراﺣل دورة ﺣﯾﺎة ﻧظﺎم اﻟﻣﻌﻠوﻣﺎت‪ ،‬ﺗﺗﻛون ‪:‬‬

‫ﺗﺣدﯾد اﻟﻣواﺻﻔﺎت واﻟﻣﺗطﻠﺑﺎت اﻟﺧﺎﺻﺔ ﺑﻘﺎﻋدة اﻟﺑﯾﺎﻧﺎت‪ ،‬وھﻲ ﻣرﺣﻠﺔ ﺟزﺋﯾﺔ ﺿﻣن ﺟﻣﻊ ﻣواﺻﻔﺎت وﻣﺗطﻠﺑﺎت ﻧظﺎم اﻟﻣﻌﻠوﻣﺎت ﻓﻲ ﻣرﺣﻠﺔ اﻟﺗﺣﻠﯾل‪.‬‬ ‫‪.1‬‬

‫إﻋداد ﻗﺎﻋدة اﻟﺑﯾﺎﻧﺎت اﻷوﻟﯾﺔ )‪ ،(conceptual Database‬ﯾﺗم ﺗﺻﻣﯾم ﻧﻣوذج اوﻟﻲ ﻟﻠﺑﯾﺎﻧﺎت ﺑواﺳطﺔ ﻣﺧططﺎت اﻟﻛﯾﺎن‪-‬اﻟﻌﻼﻗﺔ )‪(ER-D‬‬ ‫‪.2‬‬

‫ﺗﺼﻤﯿﻢ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﻤﻨﻄﻘﯿﺔ ‪ :Logical Database‬ﺗﺤﻮﯾﻞ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻷوﻟﯿﺔ أو ﻣﺨﻄﻂ اﻟﻰ ﻣﺨﻄﻂ اﻻﺳﻜﯿﻤﺎ ‪Database‬‬ ‫‪.3‬‬

‫‪ Schema‬وذﻟﻚ ﺑﺎﺗﺒﺎع ﻗﻮاﻋﺪ اﻟﺘﺤﻮﯾﻞ ‪Mapping Rules‬‬

‫ﺗﺤﺴﯿﻦ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﻤﻨﻄﻘﯿﺔ ‪ :‬ﺑﺘﻄﺒﯿﻖ ﻗﻮاﻋﺪ اﻟﺘﻄﺒﯿﻊ ‪ Normalization‬اﻟﺘﻲ ﺗﮭﺪف اﻟﻰ ﺗﻘﻠﯿﻞ ﺗﻜﺮارﯾﺔ اﻟﺒﯿﺎﻧﺎت ﻣﻦ اﺟﻞ رﻓﻊ ﻛﻔﺎءة ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬ ‫‪.4‬‬

‫ﺗﻨﻔﯿﺬ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﻔﯿﺰﯾﺎﺋﯿﺔ ‪ :Physical Database‬ﯾﺘﻢ ﻛﺘﺎﺑﺔ اﻛﻮاد اﻧﺸﺎء ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ﯾﺤﺪد ﻓﯿﮭﺎ اﻟﺠﺪاول واﻟﺤﻘﻮل واﻟﻤﻔﺎﺗﯿﺢ وﺑﺎﻗﻲ ﺷﺮوط‬ ‫‪.5‬‬

‫ﺗﺼﻤﯿﻢ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ﺛﻢ ﺗﻨﻔﯿﺬ ذﻟﻚ ﺿﻤﻦ ﻧﻈﺎم ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﻤﻨﺎﺳﺒﺔ )‪(Access, Oracle, MySQL‬‬
‫ﺧﻄﻮات ﺑﻨﺎء ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت‪:‬‬
‫ﺗﻤﺮﯾﻦ ‪ :1‬ﻗﻮﻣﻲ ﺑﺘﺤﻠﯿﻞ اﻟﻤﺨﻄﻂ واﺳﺘﻨﺘﺠﻲ اﻟﻜﯿﺎﻧﺎت‪ ،‬اﻟﺨﺼﺎﺋﺺ‪،‬‬
‫اﻟﻤﻔﺘﺎح اﻷﺳﺎﺳﻲ ﻟﻜﻞ ﻛﯿﺎن‪ ،‬اﻟﻌﻼﻗﺎت وﻧﻮع اﻟﻤﺸﺎرﻛﺔ‬
‫اﻟﺤ ﻞ‬
‫ﺗﺎﺑﻊ ﺗﻤﺮﯾﻦ ‪ :1‬ﺣﺪدي ﻣﺪى ﺻﺤﺔ اﻟﻌﺒﺎرات اﻟﺘﺎﻟﯿﺔ ﻣﻦ اﻟﺮﺳﻢ ﻣﻊ‬
‫ذﻛﺮ اﻟﺴﺒﺐ ﻓﻲ ﻛﻞ ﺣﺎﻟﺔ‬

‫)ﺧطﺄ )ﻧوع اﻟﻌﻼﻗﺔ ‪((1:M‬‬ ‫ﯾﻣﻛن أن ﯾﻛون ﻟﻠﻛﺎﺗب أﻛﺛر ﻣن ﻧﺎﺷر‪.‬‬ ‫‪.1‬‬

‫) ﺻﺣﯾﺣﺔ – ﺧﺎﺻﯾﺔ ﻣﺗﻌددة(‬ ‫اﻟﻛﺗﺎب ﯾﻣﻛن أن ﯾﻛون ﻟﮫ أﻛﺛر ﻣن ﻣؤﻟف‪.‬‬ ‫‪.2‬‬

‫)ﺧطﺄ ﻧوع اﻟﻌﻼﻗﺔ ‪(M:M‬‬ ‫ﻻ ﯾﻣﻛن ﺗواﺟد ﻧﺳﺦ ﻣن ﻛﺗﺎب ﻣﻌﯾن ﻓﻲ أﻛﺛر ﻣن ﻓرغ‪.‬‬ ‫‪.3‬‬

‫)ﺧطﺄ‪-‬ﺧﺎﺻﯾﺔ وﺻﻔﯾﺔ ﺗﺻف اﻟﻌﻼﻗﺔ(‬ ‫ﺧﺎﺻﯾﺔ ﻋدد ﻧﺳﺦ اﻟﻛﺗﺎب ھﻲ ﺧﺎﺻﯾﺔ ﺗﺻف اﻟﻛﯾﺎن ﻛﺗﺎب‪.‬‬ ‫‪.4‬‬

‫)ﺧطﺄ‪ -‬ﻧوع اﻟﻣﺷﺎرﻛﺔ ﻛﻠﯾﺔ(‬ ‫ﯾﻣﻛن وﺟود ﻧﺳﺦ ﻣن ﻛﺗﺎب ﻟﮫ ﻧﺎﺷر وﻟﻛن ﻻ ﯾوﺟد ﻓﻲ أي ﻓرع‪.‬‬ ‫‪.5‬‬

‫)ﺧطﺄ – ﻧوع اﻟﻣﺷﺎرﻛﺔ ﻛﻠﯾﺔ(‬ ‫ﯾﻣﻛن وﺟود ﻧﺳﺦ ﻣن ﻛﺗﺎب ﻣﻌﯾن ﻓﻲ ﻓرع أو أﻛﺛر وﻟﯾس ﻟﮫ ﻧﺎﺷر‪.‬‬ ‫‪.6‬‬
‫ﺗﻤﺮﯾﻦ‪ :2‬ﻗﻮﻣﻲ ﺑﺮﺳﻢ ﻣﺨﻄﻂ ﻋﻼﻗﺔ اﻟﻜﯿﺎﻧﺎت اﻟﺨﺎص ﺑﺠﺰء ﻣﻦ ﻧﻈﺎم‬
‫ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت أﺣﺪ اﻟﺒﻨﻮك واﻟﺬي ﻣﺘﻄﻠﺒﺎﺗﮫ ﻛﺎﻟﺘﺎﻟﻲ‬
‫ﯾﺣﺗﻔظ اﻟﺑﻧك ﺑﺑﯾﺎﻧﺎت ﻋن ﻋﻣﻼﺋﮫ ﺗﺷﻣل اﻟرﻗم اﻟﻘوﻣﻲ ﻟﻠﻌﻣﯾل وھو رﻗم وﺣﯾد واﺳﻣﮫ وﻋﻧواﻧﮫ وﺗﻠﯾﻔوﻧﮫ‪.‬‬ ‫‪u‬‬

‫ﯾﻣﻛن ﻟﻠﻌﻣﯾل أن ﯾﻛون ﻟﮫ أﻛﺛر ﻣن ﺣﺳﺎب واﻟذي ﻟﮫ رﻗم وﺣﯾد ورﺻﯾد وﻧوع‪.‬‬ ‫‪u‬‬

‫ﯾﻣﻛن ﻟﻠﺣﺳﺎب اﻟواﺣد أن ﯾﻛون ﺣﺳﺎب ﻣﺷﺗرك ﻷﻛﺛر ﻣن ﻋﻣﯾل‪.‬‬ ‫‪u‬‬

‫ﯾﻣﻛن ﻟﻠﻌﻣﯾل اﻟﺣﺻول ﻋﻠﻰ أﻛﺛر ﻣن ﻗرض واﻟذي ﻟﮫ رﻗم وﺣﯾد وﻧوع وﻗﯾﻣﺔ‪.‬‬ ‫‪u‬‬

‫ﯾﻣﻛن ﻷﻛﺛر ﻣن ﻋﻣﯾل أن ﯾﺷﺗرﻛوا ﻓﻲ ﻗرض واﺣد‪.‬‬ ‫‪u‬‬

‫ﻻ ﯾﺷﺗرط اﻟﺣﺻول ﻋﻠﻰ ﻗرض أن ﯾﻛون ﻟﻠﻌﻣﯾل ﺣﺳﺎب ﺑﺎﻟﺑﻧك‪.‬‬ ‫‪u‬‬

‫ﻻ ﯾﺷﺗرط ﻟﻌﻣل اﻟﺣﺳﺎب ﺑﺎﻟﺑﻧك اﻟﺣﺻول ﻋﻠﻰ أي ﻗرض‪.‬‬ ‫‪u‬‬


‫اﻟﺤ ﻞ‬
‫اﻟﺤ ﻞ‬
‫ﺗﻤﺮﯾﻦ ‪ :3‬ﻗﻮﻣﻲ ﺑﺮﺳﻢ ﻣﺨﻄﻂ ﻋﻼﻗﺔ اﻟﺒﯿﺎﻧﺎت ﻟﻤﺨﺰن ﺷﺮﻛﺔ‬
‫ﻣﻌﯿﻨﺔ ﻣﺘﻄﻠﺒﺎﺗﮫ ﻛﺎﻟﺘﺎﻟﻲ‬

‫ﯾﺣﺗﻔظ اﻟﻣﺧزن ﺑﺑﯾﺎﻧﺎت ﻋن اﻷﺻﻧﺎف ﺗﺷﻣل ﻛود اﻟﺻﻧف وھو ﻛود وﺣﯾد ﻻ ﯾﺗﻛرر‪ ،‬اﺳﻣﮫ‪ ،‬رﺻﯾد اﻟﺑداﯾﺔ اﻟﺧﺎص ﺑﮫ‪ ،‬ﺣد‬ ‫‪u‬‬
‫إﻋﺎدة اﻟطﻠب اﻟﺧﺎص ﺑﮫ‪ ،‬اﻟرﺻﯾد اﻟﺣﺎﻟﻲ ﻟﮫ ﺑﺎﻟﻣﺧزن‪ ،‬أﺳﻣﺎء اﻟﻣوردﯾن ﻟﮭذا اﻟﺻﻧف‪.‬‬
‫ﻛل ﻣورد ﻟﮫ ﻛود وﺣﯾد‪ ،‬اﺳم‪ ،‬ﻋﻧوان‪ ،‬ﺗﻠﯾﻔون وﯾﻘوم ﺑﺗورﯾد أﺻﻧﺎف ﻣﻌﯾﻧﺔ‪.‬‬ ‫‪u‬‬

‫ﻛل ﺻﻧف ﯾﺟب أن ﯾﻘوم ﺑﺗورﯾده ﻣورد ﻣﻌﯾن وﻻ ﯾوﺟد أﻛﺛر ﻣن ﻣورد ﻟﻧﻔس اﻟﺻﻧف‪.‬‬ ‫‪u‬‬

‫ﻋﻧد ﺗورﯾد أي ﺻﻧف ﻣن ﻗﺑل اﻟﻣورد اﻟﻣﺧﺗص ﻣن اﻟﻣﮭم ﻣﻌرﻓﺔ ﺗﺎرﯾﺦ اﻟﺗورﯾد واﻟﻛﻣﯾﺔ اﻟﻣوردة‪.‬‬ ‫‪u‬‬

‫ﺑﺎﻟﻧﺳﺑﺔ ﻟﻠﻌﻣﻼء اﻟذﯾن ﯾﺗم اﻟﺻرف ﻟﮭم ﯾﺟب اﻻﺣﺗﻔﺎظ ﺑﺑﯾﺎﻧﺎت ﻛل ﻋﻣﯾل واﻟﺗﻲ ﺗﺷﻣل ﻛود اﻟﻌﻣﯾل وھو ﻛود وﺣﯾد ﻻ ﯾﺗﻛرر‪،‬‬ ‫‪u‬‬
‫اﺳﻣﮫ‪ ،‬ﻋﻧواﻧﮫ‪ ،‬ﺗﻠﯾﻔوﻧﮫ‪.‬‬
‫ﯾﻣﻛن وﺟود ﻋﻣﯾل ﯾﻘوم ﺑﺻرف أﻛﺛر ﻣن ﺻﻧف واﻟﺻﻧف اﻟواﺣد ﯾﻣﻛن أن ﯾﻧﺻرف ﻷﻛﺛر ﻣن ﻋﻣﯾل‪.‬‬ ‫‪u‬‬
‫اﻟﺤ ﻞ‬
‫اﻟﺤ ﻞ‬
‫ﺗﻤﺮﯾﻦ ‪:4‬‬

‫ارﺳﻣﻲ ﻣﺧطط ﻋﻼﻗﺔ اﻟﻛﯾﺎﻧﺎت اﻟﻼزم ﻟﺗﻣﺛﯾل ﺑﯾﺎﻧﺎت اﻟﻣرﺿﻰ ﻓﻲ أﺣد اﻟﻣﺳﺗﺷﻔﯾﺎت واﻷطﺑﺎء اﻟﻣﻌﺎﻟﺟون‬
‫ﻣﺷﺗﻣﻼ رﻗم اﻟﻣرﯾض‪ ،‬اﺳﻣﮫ‪ ،‬رﻗم اﻟﻐرﻓﺔ اﻟﻣﻘﯾم ﻓﯾﮭﺎ‪ ،‬رﻗم اﻟﺗﺣوﯾﻠﺔ ﻟﻠﻐرﻓﺔ‪ ،‬ﻋدد اﻷﺳرة ﺑﮭﺎ‪ ،‬واﺳم ورﻗم‬
‫اﻟدواء اﻟﻣﺻروف ﻟﮫ وﻛذﻟك رﻗم اﻟطﺑﯾب‪ ،‬اﺳﻣﮫ‪ ،‬ﺗﻠﯾﻔوﻧﮫ وﺗﺧﺻﺻﮫ‪.‬‬

‫اﻟﻛﯾﺎﻧﺎت وﺧﺻﺎﺋﺻﮭﺎ‪:‬‬
‫اﻟﻣرﯾض )رﻗم اﻟﻣرﯾض‪ ،‬اﺳﻣﮫ‪ ،‬رﻗم اﻟﻐرﻓﺔ‪ ،‬رﻗم اﻟﺗﺣوﯾﻠﺔ(‬
‫اﻟطﺑﯾب )رﻗم اﻟطﺑﯾب‪ ،‬اﺳﻣﮫ‪ ،‬اﻟﺗﺧﺻص‪ ،‬اﻟﺗﻠﯾﻔون(‬
‫اﻟدواء )رﻗم اﻟدواء‪ ،‬اﺳﻣﮫ(‬
‫اﻟﻐرﻓﺔ )رﻗم اﻟﻐرﻓﺔ‪ ،‬ﻋدد اﻷﺳرة(‬
‫اﻟﺤ ﻞ‬
‫اﻟﻤﺮاﺟﻊ‬

‫‪Database Design for Mere Mortals,‬‬ ‫‪u‬‬


‫‪Michael J. Hernandez‬‬
‫ﻛﺗﺎب ﻣﻔﺎھﯾم ﻗواﻋد اﻟﺑﯾﺎﻧﺎت اﻟﻌﻼﺋﻘﯾﺔ ﺗﺄﻟﯾف ﻓﮭد اﻟﻘﺎﺳم‬ ‫‪u‬‬

‫ﻣذﻛرة ) ﻗواﻋد اﻟﺑﯾﺎﻧﺎت( ﻟدﻛﺗور ﺑدر اﻟدﯾن ﻋﺛﻣﺎن ﺳﻠﯾﻣﺎن‬ ‫‪u‬‬


‫ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬
‫‪Database‬‬

‫أ ‪ .‬ا ﯾﻣﺎ ن ا ﻟ ﺑﻧﺎ‬

‫‪Part 5‬‬

‫اﻟﺷﻛر اﻟﻣوﺻول ﻟﻸﺳﺗﺎذة ﺳوزان ﺟﺳﺗﻧﯾﮫ‬


‫اﻟﻤﺤﺎور‪:‬‬

‫اﻟﻣﺣﺎور‪:‬‬
‫أﻧواع اﻟﻣﻔﺎﺗﯾﺢ ‪Key Types‬‬ ‫‪u‬‬

‫ﺗﺣوﯾل ‪ ER‬اﻟﻰ ﻣﺧطط ﻗﺎﻋدة اﻟﺑﯾﺎﻧﺎت)اﻟﺟداول(‪Database Schema‬‬ ‫‪u‬‬

‫أﻣﺛﻠﺔ ﺗطﺑﯾﻘﯾﺔ‬ ‫‪u‬‬


‫أﻧﻮاع اﻟﻤﻔﺎﺗﯿﺢ ‪Key types‬‬

‫رﻗم اﻟزﺑون‬
‫‪ u‬أﻧواع اﻟﻣﻔﺎﺗﯾﺢ‬
‫‪ : Super Key‬ﻧﺣدد ﻣﺟﻣوﻋﺔ اﻟﺧﺻﺎﺋص اﻟﺗﻲ ﻟﮭﺎ ﻗﯾم ‪ unique‬ﻗد ﺗﻛون ﺧﺎﺻﯾﺔ واﺣدة او أﻛﺛر‪ ،‬ﻻ‬ ‫‪.1‬‬
‫ﺗﻘﺑل اﻟﺗﻛرار‪ ،‬ﻻ ﺗﻘﺑل ﻗﯾم ﻏﯾر ﻣﻌرﻓﺔ‪.‬‬
‫‪ :Candidate Key‬ﻧﺧﺗﺎر ﻣن اﻟـ ‪ Super Keys‬ﻣﻔﺎﺗﯾﺢ ﻣرﺷﺣﺔ ﻷن ﺗﻛون ‪– Primary Key‬‬ ‫‪.2‬‬
‫ﻧﺧﺗﺎر ﺻﺎﺣﺑﺔ اﻷﻗل ﻋدد ﻣن اﻟﺧﺻﺎﺋص‪.‬‬
‫‪PK‬‬ ‫‪ .3‬اﻟﻣﻔﺗﺎح اﻟرﺋﯾﺳﻲ ‪ :(Primary Key) PK‬ﻧﺧﺗﺎر واﺣد ﻣن اﻟـ ‪ Candidate Keys‬ﺣﺗﻰ ﯾﻣﺛل اﻟـ‬
‫‪ PK‬ﻟﻠﺟدول )ﺧﺎﺻﯾﺔ ﻻ ﺗﻘﺑل اﻟﺗﻛرار‪ ،‬وﻻ ﺗﻘﺑل ﻗﯾم ﻏﯾر ﻣﻌرﻓﺔ(‪.‬‬
‫‪) Alternative key .4‬اﻟﻣﻔﺗﺎح اﻟﺛﺎﻧوي(‪ :‬ﻋﺑﺎرة ﻋن ﺧﺎﺻﯾﺔ أو ﺧﺻﺎﺋص ﯾﻣﻛن اﺳﺗﺧداﻣﮭﺎ ﻻﺧﺗﯾﺎر‬
‫ﺳﺟﻼت ﻣﻌﯾﻧﺔ ﻣن ﺑﯾن اﻟﺳﺟﻼت اﻟﻣوﺟودة ﻓﻲ اﻟﻛﯾﺎن وﺗﺳﺗﺧدم ﻟﻐﺎﯾﺎت اﻻﺳﺗرﺟﺎع‪.‬‬
‫‪ .5‬اﻟﻣﻔﺗﺎح اﻷﺟﻧﺑﻲ ‪ :(Foreign Key) FK‬ھو ‪ PK‬ﻓﻲ ﺟدول آﺧر وھو طرﯾﻘﺔ ﻟرﺑط اﻟﺟداول ﺑﺑﻌﺿﮭﺎ‪.‬‬
‫ﯾﻘﺑل اﻟﺗﻛرار‪ ،‬ﯾﻘﺑل اﻟﻘﯾم ﻏﯾر اﻟﻣﻌرﻓﺔ‪ ،‬داﺋﻣﺎ ﻣوﺟود ﻓﻲ اﻟﻌﻼﻗﺎت ﻣن ﻧوع ‪1:M‬‬
‫‪ .6‬اﻟﻣﻔﺗﺎح اﻟﻣرﻛب‪ :‬ھو ﻋﺑﺎرة ﻋن أﻛﺛر ﻣن ﺣﻘل ﻓﻲ ﺟدول ﻣﺣﺗواھم ﻣﻌﺎ ﻣﺟﺗﻣﻌﯾن ﻻ ﯾﺗﻛرر وﯾﻛون ﻓرﯾد ﻟﻛل‬
‫ﺳﺟل ﻓﻲ ﺣﯾن ان ﻛل ﺣﻘل ﯾﻣﻛن ان ﯾﺗﻛرر ﻣﻧﻔردا‬
‫ﻣﺨﻄﻂ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ‪Database Schema‬‬

‫ﻋﻣل ﻧﻣوذج ﻗﺎﻋدة اﻟﺑﯾﺎﻧﺎت اﻟﻌﻼﺋﻘﯾﺔ وھو ﻋﺑﺎرة ﻋن رﺳم )ﻣﺧطط( ﻣﺳﺗﻧﺗﺞ ﻣن اﻟـ ‪ ERD‬ﯾﻌﺑر ﻋن ﺟداول ﻗﺎﻋدة اﻟﺑﯾﺎﻧﺎت واﻟﻌﻼﻗﺎت ﺑﯾﻧﮭﺎ‬ ‫‪u‬‬
‫وھذا اﻟﻣﺧطط ھو ﻣﺎ ﯾﺗم ﺗﻧﻔﯾذه ﻋﻠﻰ اﻟﺣﺎﺳب اﻵﻟﻲ ﺑﺎﺳﺗﺧدام أﺣد ﺗطﺑﯾﻘﺎت ﻧظم إدارة ﻗواﻋد اﻟﺑﯾﺎﻧﺎت‪.‬‬
‫ﺗﺗم ﻋﻣﻠﯾﺔ ﺗﺣوﯾل ﻣﺧطط ‪ ERD‬ﺑﺗطﺑﯾق ﻣﺟﻣوﻋﺔ ﻣن اﻟﺧطوات اﻟﺑﺳﯾطﺔ اﻟﺗﻲ ﺗﺳﻣﻰ ﺧوارزﻣﯾﺔ اﻟﺗﺣوﯾل )ﻗواﻧﯾن اﻟﺗﺣوﯾل(‬ ‫‪u‬‬

‫ﺧوارزﻣﯾﺔ اﻟﺗﺣوﯾل ‪) Mapping Algorithm‬ﻗواﻧﯾن اﻟﺗﺣوﯾل اﻟﻰ ﻣﺧطط ﻗﺎﻋدة اﻟﺑﯾﺎﻧﺎت ‪(Database Schema‬‬ ‫‪u‬‬

‫ﻗواﻧﯾن ﺗﺣوﯾل اﻟﻛﯾﻧوﻧﺔ اﻟﻘوﯾﺔ واﻟﺿﻌﯾﻔﺔ‪.‬‬ ‫‪.1‬‬


‫ﻗواﻧﯾن ﺗﺣوﯾل اﻟﻌﻼﻗﺎت‪ :‬اﻟﻌﻼﻗﺔ ‪ 1:1‬و ‪ 1:M‬و ‪.M:M‬‬ ‫‪.2‬‬

‫ﻗواﻧﯾن ﺗﺣوﯾل اﻟﺧﺎﺻﯾﺔ ﻣﺗﻌددة اﻟﻘﯾم واﻟﻣرﻛﺑﺔ واﻟﻣﺷﺗﻘﺔ‪.‬‬ ‫‪.3‬‬

‫ﻗواﻧﯾن ﺗﺣوﯾل ﻋﻼﻗﺔ ذات اﻟدرﺟﺔ اﻟﺛﻼﺛﯾﺔ واﻻﺣﺎدﯾﺔ‪.‬‬ ‫‪.4‬‬


‫ﻗﻮاﻧﯿﻦ ﺗﺤﻮﯾﻞ اﻟﻜﯿﻨﻮﻧﺔ اﻟﻘﻮﯾﺔ‬

‫اﻟﻛﯾﻧوﻧﺔ اﻟﻘوﯾﺔ ‪ :‬ﺗﺣول اﻟﻰ ﺟدول وﺧﺻﺎﺋﺻﮭﺎ ھﻲ أﻋﻣدة ھذا اﻟﺟدول‪.‬‬


‫وﻧﺣدد اﻟﺻﻔﺔ اﻟﺗﻲ ﺗﻣﺛل اﻟﻣﻔﺗﺎح اﻷﺳﺎﺳﻲ ﺑوﺿﻊ ﺧط أﺳﻔل ﻣﻧﮭﺎ‪.‬‬ ‫‪u‬‬
‫ﻗﻮاﻧﯿﻦ ﺗﺤﻮﯾﻞ اﻟﻜﯿﻨﻮﻧﺔ اﻟﻀﻌﯿﻔﺔ‬

‫اﻟﻛﯾﻧوﻧﺔ اﻟﺿﻌﯾﻔﺔ ‪ :‬ﺗﺣول اﻟﻰ ﺟدول‬


‫وﺧﺻﺎﺋﺻﮭﺎ ھﻲ أﻋﻣدة ھذا اﻟﺟدول ﻣﻊ إﺿﺎﻓﺔ اﻟﻣﻔﺗﺎح اﻟرﺋﯾﺳﻲ ﻟﻠﻛﯾﻧوﻧﺔ اﻟﻣﻌرﻓﺔ‪.‬‬ ‫‪u‬‬

‫اﻟﻣﻔﺗﺎح اﻷﺳﺎﺳﻲ ﻓﻲ اﻟﺟدول ھو ﻋﺑﺎرة ﻋن اﻟﻣﻔﺗﺎح اﻟﺟزﺋﻲ اﻟﺧﺎص ﺑﺎﻟﻛﯾﻧوﻧﺔ اﻟﺿﻌﯾﻔﺔ واﻟﻣﻔﺗﺎح اﻟرﺋﯾﺳﻲ ﻟﻠﻛﯾﻧوﻧﺎت‬ ‫‪u‬‬
‫اﻟﻣﻌرﻓﺔ )ﻗد ﺗﻛون ﻛﯾﻧوﻧﺔ واﺣدة ﻣﻌرﻓﺔ او أﻛﺛر(‪.‬‬

‫رﻗم اﻟﻣوظف‬ ‫ا ﻻ ﺳم‬ ‫اﻟﺳن‬ ‫اﻟﺟﻧس‬ ‫اﺑن‬


‫ﻗﻮاﻧﯿﻦ ﺗﺤﻮﯾﻞ اﻟﻌﻼﻗﺔ ‪1:1‬‬

‫اﻟﻌﻼﻗﺔ واﺣد ﻣﻘﺎﺑل واﺣد ‪ :‬ﺗﺣول اﻟﻰ ﻣﻔﺗﺎح أﺟﻧﺑﻲ ‪ Foreign Key‬وﻟﯾس ﻟﺟدول وﯾﻌﺗﻣد اﻟﺗﺣوﯾل ﻋﻠﻰ ﻧوع اﻟﻣﺷﺎرﻛﺔ‪.‬‬
‫ﻋﻣﻠﯾﺔ اﻟﺗﺣوﯾل ﺗﺗم وﻓق ﻋدة ﺧﯾﺎرات اﺷﮭرھﺎ ﺧﯾﺎر ﯾﺳﻣﻰ ﺑطرﯾﻘﺔ اﻟﻣﻔﺗﺎح اﻷﺟﻧﺑﻲ‪ ،‬وﻓﯾﮭﺎ ﯾﺗم إﺿﺎﻓﺔ اﻟﻣﻔﺗﺎح اﻟرﺋﯾﺳﻲ‬ ‫‪u‬‬
‫ﻻﺣد اﻟﺟدوﻟﯾن اﻟﻰ اﻟﺟدول اﻻﺧر ﻛﻣﻔﺗﺎح اﺟﻧﺑﻲ‪.‬‬
‫اذا ﻛﺎﻧت اﻟﻣﺷﺎرﻛﺔ ﺟزﺋﯾﺔ ﻣن ﻛﻼ اﻟﻛﯾﻧوﻧﺗﯾن أو ﻛﻠﯾﺔ ﻣن ﻛﻼ اﻟﻛﯾﻧوﻧﺗﯾن‪ :‬ﻧﻘوم ﺑﺈﻧﺷﺎء ﺟدول ﻟﻛل ﻛﯾﻧوﻧﺔ وﻧﺳﺗﺧدم طرﯾﻘﺔ‬ ‫‪.1‬‬
‫اﻟﻣﻔﺗﺎح أﺟﻧﺑﻲ‬
‫ﻧﺿﯾف ﺻﻔﺔ اﻟﻌﻼﻗﺔ )اﻟﻌﻼﻗﺔ اﻟوﺻﻔﯾﺔ( ‪ +‬اﻟﻣﻔﺗﺎح اﻷﺳﺎﺳﻲ ﻹﺣدى اﻟﻛﯾﻧوﻧﺎت )ﯾﺿﺎف ﻛﻣﻔﺗﺎح أﺟﻧﺑﻲ( ﻟﺟدول اﻟﻛﯾﻧوﻧﺔ‬ ‫‪u‬‬
‫اﻟﻣﻘﺎﺑﻠﺔ‪.‬‬
‫ﻗﻮاﻧﯿﻦ ﺗﺤﻮﯾﻞ اﻟﻌﻼﻗﺔ ‪1:1‬‬

‫‪ .2‬اذا ﻛﺎﻧت اﻟﻣﺷﺎرﻛﺔ ﺟزﺋﯾﺔ ﻣن ﺟﮭﺔ اﺣدى اﻟﻛﯾﻧوﻧﺎت وﻛﻠﯾﺔ ﻣن ﺟﮭﺔ اﻟﻛﯾﻧوﻧﺔ اﻟﻣﻘﺎﺑﻠﺔ ‪ :‬ﻧﻘوم ﺑﺈﻧﺷﺎء ﺟدول ﺑﺈﻧﺷﺎء ﻟﻛل‬
‫ﻛﯾﻧوﻧﺔ وﻧﺳﺗﺧدم طرﯾﻘﺔ اﻟﻣﻔﺗﺎح أﺟﻧﺑﻲ‬
‫ﻧﺿﯾف ﺻﻔﺔ اﻟﻌﻼﻗﺔ )اﻟﻌﻼﻗﺔ اﻟوﺻﻔﯾﺔ( ‪ +‬اﻟﻣﻔﺗﺎح اﻷﺳﺎﺳﻲ ﻣن ﺟﮭﺔ اﻟﻣﺷﺎرﻛﺔ اﻟﺟزﺋﯾﺔ )ﯾﺿﺎف ﻛﻣﻔﺗﺎح اﺟﻧﺑﻲ( اﻟﻰ‬ ‫‪u‬‬
‫ﺟدول اﻟﻛﯾﻧوﻧﺔ ﺟﮭﺔ اﻟﻣﺷﺎرﻛﺔ اﻟﻛﻠﯾﺔ‪.‬‬
‫ﻗﻮاﻧﯿﻦ ﺗﺤﻮﯾﻞ اﻟﻌﻼﻗﺔ ‪1:M‬‬

‫اﻟﻌﻼﻗﺔ واﺣد ﻣﻘﺎﺑل ﻣﺟﻣوﻋﺔ‪ :‬ﺗﺣول اﻟﻌﻼﻗﺔ اﻟﻰ ﻣﻔﺗﺎح أﺟﻧﺑﻲ ‪ Foreign Key‬وﻟﯾس ﻟﺟدول‪ .‬ﯾﺗم اﻧﺷﺎء ﺟدول ﻟﻛل ﻛﯾﻧوﻧﺔ‪.‬‬

‫ﻻ ﯾﻌﺗﻣد اﻟﺗﺣوﯾل ﻋﻠﻰ ﻧوع اﻟﻣﺷﺎرﻛﺔ واﻧﻣﺎ ﯾﻌﺗﻣد ﻋﻠﻰ اﻟﻌﻼﻗﺔ ﻧﻔﺳﮭﺎ‪.‬‬ ‫‪u‬‬

‫ﻧﺿﯾف ﺻﻔﺔ اﻟﻌﻼﻗﺔ )اﻟوﺻﻔﯾﺔ( ‪ +‬اﻟﻣﻔﺗﺎح اﻷﺳﺎﺳﻲ ﻟﻛﯾﻧوﻧﺔ ﺟﮭﺔ واﺣد )ﯾﺿﺎف ﻛﻣﻔﺗﺎح أﺟﻧﺑﻲ( اﻟﻰ ﺟدول ﻛﯾﻧوﻧﺔ ﺟﮭﺔ ﻣﺗﻌدد‪.‬‬ ‫‪u‬‬
‫ﻗﻮاﻧﯿﻦ ﺗﺤﻮﯾﻞ اﻟﻌﻼﻗﺔ ‪M:M‬‬

‫اﻟﻌﻼﻗﺔ ﻣﺟﻣوﻋﺔ ﻣﻘﺎﺑل ﻣﺟﻣوﻋﺔ‪ :‬ﺗﺣول اﻟﻌﻼﻗﺔ ﻟﺟدول‪ .‬ﺑﻣﻌﻧﻰ ﻓﻲ ھذا اﻟﻧوع‬
‫ﻣن اﻟﻌﻼﻗﺎت ﯾﺗم اﺳﺗﺣداث ﺟدول ﺟدﯾد‪ ،‬ﻓﯾﻛون اﻟﻧﺎﺗﺞ ﻣن ھذه اﻟﻌﻼﻗﺔ ﺛﻼﺛﺔ‬
‫ﺟداول‪ ،‬ﺟدوﻟﯾن ﻟﺗﻣﺛﯾل اﻟﻛﯾﺎﻧﯾن اﻟﻣرﺗﺑطﯾن ﺑﺎﻟﻌﻼﻗﺔ و ﺟدول ﻟﻠﻌﻼﻗﺔ‪.‬‬

‫أﻋﻣدة ھذا اﻟﺟدول ھﻲ ﺻﻔﺔ اﻟﻌﻼﻗﺔ ‪ +‬اﻟﻣﻔﺗﺎح اﻷﺳﺎﺳﻲ ﻟﻠﻛﯾﻧوﻧﺔ‬ ‫‪u‬‬


‫اﻷوﻟﻰ)ﻛﻣﻔﺗﺎح أﺟﻧﺑﻲ( ‪ +‬اﻟﻣﻔﺗﺎح اﻷﺳﺎﺳﻲ ﻟﻠﻛﯾﻧوﻧﺔ اﻟﺛﺎﻧﯾﺔ )ﻛﻣﻔﺗﺎح‬
‫أﺟﻧﺑﻲ(‪.‬‬

‫اﻟﻣﻔﺗﺎح اﻷﺳﺎﺳﻲ ﻟﻠﺟدول اﻟﺟدﯾد ھو ﻣﻔﺗﺎح اﻟﻛﯾﻧوﻧﺔ اﻷوﻟﻰ ‪ +‬ﻣﻔﺗﺎح‬ ‫‪u‬‬


‫اﻟﻛﯾﻧوﻧﺔ اﻟﺛﺎﻧﯾﺔ‬
‫ﻗﻮاﻧﯿﻦ ﺗﺤﻮﯾﻞ اﻟﺨﺎﺻﯿﺔ ﻣﺘﻌﺪدة اﻟﻘﯿﻢ‬

‫اﻟﺧﺎﺻﯾﺔ ﻣﺗﻌددة اﻟﻘﯾم‪ :‬ﺗﺣول اﻟﻰ ﺟدول‪ .‬أﻋﻣدة ھذا اﻟﺟدول ھﻲ اﻟﺧﺎﺻﯾﺔ ﻣﺗﻌددة اﻟﻘﯾم ‪ +‬اﻟﺧﺎﺻﯾﺔ اﻟﻣﻔﺗﺎح ﻟﻠﻛﯾﻧوﻧﺔ‬ ‫‪u‬‬
‫اﻟﺗﺎﺑﻌﺔ ﻟﮭﺎ اﻟﺧﺎﺻﯾﺔ ﻣﺗﻌددة اﻟﻘﯾم‪ .‬واﻟﻣﻔﺗﺎح اﻷﺳﺎﺳﻲ ﻟﻠﺟدول ھو اﻟﺣﻘﻠﯾن ﻣﻌﺎ‪.‬‬

‫‪No‬‬ ‫‪phone‬‬
‫ﻗﻮاﻧﯿﻦ ﺗﺤﻮﯾﻞ اﻟﺼﻔﺎت اﻟﻤﺮﻛﺒﺔ واﻟﻤﺸﺘﻘﺔ‬

‫اﻟﺻﻔﺎت اﻟﻣرﻛﺑﺔ ﻓﺗﺗﺣول إﻟﻰ ﺻﻔﺎت ﺑﺳﯾطﺔ‪ ،‬ﻓﻲ ﺣﻘول ﻋﺎدﯾﺔ ﻛﻣﺎ ﻓﻲ اﻟﺷﻛل ادﻧﺎه‪:‬‬ ‫‪u‬‬

‫اﻟﺻﻔﺎت ذات اﻟﻘﯾم اﻟﻣﺷﺗﻘﺔ ﺗﻠﻐﻰ ﻣن اﻟﺟدول‪ ،‬ﻷﻧﮭﺎ ﺻﻔﺎت ﻗﺎﺑﻠﺔ ﻟﻼﺷﺗﻘﺎق ﻣن ﺻﻔﺎت أﺧرى ﻓﻼ داﻋﻲ ﻟوﺟودھﺎ‪.‬‬ ‫‪u‬‬
‫ﻗﻮاﻧﯿﻦ ﺗﺤﻮﯾﻞ اﻟﻌﻼﻗﺔ ذات اﻟﺪرﺟﺔ اﻟﺜﻼﺛﯿﺔ‬

‫ﻋﻼﻗﺔ ذات درﺟﺔ ﺛﻼﺛﯾﺔ ‪ :‬ﺗﺣول اﻟﻰ ﺟدول وﻻ ﯾﻌﺗﻣد اﻟﺗﺣوﯾل ﻋﻠﻰ ﻧوع اﻟﻣﺷﺎرﻛﺔ وﻻ ﻋﻠﻰ ﻧوع اﻟﻌﻼﻗﺔ‪.‬‬
‫أﻋﻣدة ھذا اﻟﺟدول ھﻲ ﺻﻔﺔ اﻟﻌﻼﻗﺔ ‪ +‬ﻣﻔﺗﺎح اﻟﻛﯾﻧوﻧﺔ اﻷوﻟﻰ )ﻛﻣﻔﺗﺎح اﺟﻧﺑﻲ( ‪ +‬ﻣﻔﺗﺎح اﻟﻛﯾﻧوﻧﺔ اﻟﺛﺎﻧﯾﺔ )ﻛﻣﻔﺗﺎح أﺟﻧﺑﻲ(‪ +‬ﻣﻔﺗﺎح‬ ‫‪u‬‬
‫اﻟﻛﯾﻧوﻧﺔ اﻟﺛﺎﻟﺛﺔ )ﻛﻣﻔﺗﺎح أﺟﻧﺑﻲ(‪.‬‬
‫اﻟﻣﻔﺗﺎح اﻷﺳﺎﺳﻲ ﻟﻠﺟدول اﻟﺟدﯾد ھو اﻟﻣﻔﺎﺗﯾﺢ اﻷﺟﻧﺑﯾﺔ اﻟﺛﻼث )ﻣﻔﺗﺎح ﻛﯾﻧوﻧﺔ ‪ + 1‬ﻣﻔﺗﺎح ﻛﯾﻧوﻧﺔ ‪ + 2‬ﻣﻔﺗﺎح ﻛﯾﻧوﻧﺔ ‪.(3‬‬ ‫‪u‬‬

‫ﯾﻣﻛن أن ﻧﺳﺗﻧﺗﺞ ﻧوع اﻟﻌﻼﻗﺔ ﻣن اﻟﺟدول ﺑﻌدد اﻟـ ‪.Foreign Keys‬‬ ‫‪u‬‬
‫ﻗﻮاﻧﯿﻦ ﺗﺤﻮﯾﻞ اﻟﻌﻼﻗﺔ ذات اﻟﺪرﺟﺔ اﻷﺣﺎدﯾﺔ‬
‫اﻟ رﻗم‬
‫ﻣﻘ‬
‫رر‬
‫ﻋﻼﻗﺔ ذات درﺟﺔ اﺣﺎدﯾﺔ‪ :‬ﯾﻌﺗﻣد اﻟﺗﺣوﯾل ﻋﻠﻰ ﻧوع اﻟﻌﻼﻗﺔ‬
‫اﻟﻣﻘرر‬
‫‪ -‬اذا ﻛﺎﻧت واﺣد ﻣﻘﺎﺑل واﺣد ﺗﺣول ﻟﻣﻔﺗﺎح أﺟﻧﺑﻲ‪.‬‬ ‫‪.1‬‬

‫‪ -‬اذا ﻛﺎﻧت واﺣد ﻣﻘﺎﺑل ﻣﺟﻣوﻋﺔ ﺗﺣول ﻟﻣﻔﺗﺎح أﺟﻧﺑﻲ‪.‬‬ ‫‪.2‬‬

‫‪ -‬اذا ﻛﺎﻧت ﻣﺟﻣوﻋﺔ ﻣﻘﺎﺑل ﻣﺟﻣوﻋﺔ ﺗﺣول ﻟﺟدول‪.‬‬ ‫‪.3‬‬

‫‪M‬‬ ‫ﻣﺗطﻠب‬ ‫‪N‬‬


‫رﻗم اﻟﻣﻘرر ‪2‬‬ ‫رﻗم اﻟﻣﻘرر ‪1‬‬ ‫رﻗم اﻟﻣﻘرر‬
‫ﺳﺎﺑق‬
‫‪102‬‬ ‫‪101‬‬ ‫‪101‬‬
‫‪103‬‬ ‫‪101‬‬ ‫‪102‬‬
‫‪102‬‬ ‫‪102‬‬ ‫‪103‬‬
‫ﻣﺜﺎل ﺗﻮﺿﯿﺤﻲ‪ :‬ﺗﺤﻮﯾﻞ ﻣﺨﻄﻂ اﻟﻜﯿﺎﻧﺎت اﻟﻰ ﺟﺪاول‬
‫ﺣﻮﻟﻲ ﻧﻤﻮذج ‪ ERD‬اﻟﺘﺎﻟﻲ اﻟﻰ ﻣﺨﻄﻂ اﻟﻜﯿﻨﻮﻧﺎت واﻟﻌﻼﻗﺎت‬

‫ﺣل اﻟﺗﻣﺎرﯾن ﺻﻔﺣﺔ ‪ 58‬و ‪ 59‬ﺑﺎﻟﻣﻠزﻣﺔ‬ ‫‪u‬‬


‫اﻟﻤﺮاﺟﻊ‪:‬‬

‫‪Database Design for Mere Mortals,‬‬ ‫‪u‬‬


‫‪Michael J. Hernandez‬‬
‫ﻛﺗﺎب ﻣﻔﺎھﯾم ﻗواﻋد اﻟﺑﯾﺎﻧﺎت اﻟﻌﻼﺋﻘﯾﺔ ﺗﺄﻟﯾف ﻓﮭد اﻟﻘﺎﺳم‬ ‫‪u‬‬

‫ﻣذﻛرة ) ﻗواﻋد اﻟﺑﯾﺎﻧﺎت( ﻟدﻛﺗور ﺑدر اﻟدﯾن ﻋﺛﻣﺎن ﺳﻠﯾﻣﺎن‬ ‫‪u‬‬


‫ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬
‫‪Database‬‬

‫أ ‪ .‬ا ﯾﻣﺎ ن ا ﻟ ﺑﻧﺎ‬


‫‪Part 6‬‬

‫‪Normalization‬‬

‫اﻟﺷﻛر اﻟﻣوﺻول ﻟﻸﺳﺗﺎذة ﺳوزان ﺟﺳﺗﻧﯾﮫ‬


:‫اﻟﻤﺤﺎور‬

: ‫اﻟﻣﺣﺎور‬
Normalization (Formal Analysis of Tables) ‫اﻟﺗطﺑﯾﻊ‬ u

‫ﻣﺷﺎﻛل اﻟﺑﯾﺎﻧﺎت‬ u

‫أﻧواع اﻟﺗطﺑﯾﻊ‬ u

Step 1: 1NF (First Normal Form) u


Step 2: 2NF (Second Normal Form) u
Step 3: 3NF (Third Normal Form) u
‫)‪Normalization (Formal Analysis of Tables‬‬

‫‪) Normalization u‬اﻟﺗطﺑﯾﻊ(‪ :‬ھو ﻋﻣﻠﯾﺔ ﺗﻧظﯾم اﻟﺑﯾﺎﻧﺎت ﺑﻛﻔﺎءة ﻓﻲ ﻗﺎﻋدة ﺑﯾﺎﻧﺎت‪.‬‬
‫‪ u‬ھﻧﺎك ھدﻓﺎن ﻟﻌﻣﻠﯾﺔ اﻟﺗطﺑﯾﻊ‪:‬‬
‫‪ u‬اﻟﺗﺧﻠص ﻣن اﻟﺑﯾﺎﻧﺎت اﻟﻣﻛررة )ﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ‪ ،‬ﺗﺧزﯾن اﻟﺑﯾﺎﻧﺎت ﻧﻔﺳﮭﺎ ﻓﻲ أﻛﺛر ﻣن ﺟدول واﺣد(‬
‫‪ u‬واﻟﺗﺄﻛﯾد ﻋﻠﻰ أن ﺗﺑﻌﯾﺔ اﻟﺑﯾﺎﻧﺎت ﻣﻧطﻘﯾﺔ )ﻓﻘط ﺗﺧزﯾن اﻟﺑﯾﺎﻧﺎت ذات اﻟﺻﻠﺔ ﻓﻲ ﺟدول(‪.‬‬

‫ﻛﻼ ھذﯾن اﻟﮭدﻓﯾن ﯾﺳﺗﺣﻘﺎن ‪ ،‬ﺣﯾث إﻧﮭﻣﺎ ﯾﻘﻠﻼن ﻣﻘدار اﻟﻣﺳﺎﺣﺔ اﻟﺗﻲ ﺗﺳﺗﮭﻠﻛﮭﺎ ﻗﺎﻋدة اﻟﺑﯾﺎﻧﺎت وﯾﺿﻣﻧﺎن‬
‫ﺗﺧزﯾن اﻟﺑﯾﺎﻧﺎت ﻣﻧطﻘﯾﺎ ً‪.‬‬
‫ﻣﺸﺎﻛﻞ اﻟﺒﯿﺎﻧﺎت‬
‫)‪Step 1: 1 NF (First Normal Form‬‬

‫‪ u‬ﺣﺗﻰ ﯾﺣﻘق ﺟدوﻟﻲ ﺷرط ال ‪ 1NF‬ﯾﺟب أن‪:‬‬


‫‪ u‬ﻛﻞ ﺧﺎﺻﯿﺔ ﯾﺠﺐ أن ﺗﻜﻮن ‪ atomic‬ﺑﻤﻌﻨﻰ ﻟﮭﺎ ﻗﯿﻤﺔ واﺣﺪة ﻻ ﺗﺘﺠﺰأ‪.‬‬
‫‪ u‬ﻛﻞ ﺟﺪول ﯾﺠﺐ ان ﯾﺤﺘﻮي ﻋﻠﻰ ﻣﻔﺘﺎح أﺳﺎﺳﻲ‪.‬‬
‫‪ u‬ﻛﻞ ﻋﺎﻣﻮد ﻟﮫ اﺳﻢ ﻓﺮﯾﺪ )أي ﻻ ﯾﻮﺟﺪ ﻋﺎﻣﻮدﯾﻦ ﺑﻨﻔﺲ اﻻﺳﻢ(‪.‬‬
‫‪ u‬ﯾﻌﺘﻤﺪ ﻋﻠﻰ ﺣﺬف اﻟﻤﺠﻤﻮﻋﺎت اﻟﺘﻜﺮارﯾﺔ )ﺗﺧﻠص ﻣن اﻷﻋﻣدة اﻟﻣﻛررة ﻣن ﻧﻔس اﻟﺟدول(‪.‬‬

‫‪ u‬اذن ﯾﺟب أن ﯾﺧﻠو اﻟﺟدول ﻣن اﻟﺧﺻﺎﺋص اﻟﻣﻌﻘدة‪ ،‬ﻣﺗﻌددة اﻟﻘﯾم واﻟﻣرﻛﺑﺔ‪.‬‬

‫‪ u‬اذا ﻛﺎن ﻟﺪﯾﻨﺎ ﺧﺎﺻﯿﺔ ﻣﺮﻛﺒﺔ ﻧﻘﻮم ﺑﻌﻤﻞ ﻋﻤﻮد ﻣﻨﻔﺼﻞ ﻟﻜﻞ ﺟﺰء ﻣﻦ اﻟﺨﺎﺻﯿﺔ‪ .‬أﻣﺎ اﻟﺨﺎﺻﯿﺔ اﻟﻤﻌﻘﺪة وﻣﺘﻌﺪدة اﻟﻘﯿﻢ‬
‫ﻓﻨﻘﻮم ﺑﻌﻤﻞ ﺟﺪول ﺟﺪﯾﺪ ﻟﮭﺎ ﻛﻤﺎ درﺳﻨﺎ ﺳﺎﺑﻘﺎ‪.‬‬
‫)‪Step 1: 1 NF (First Normal Form‬‬

‫‪ Ø‬ھذا اﻟﺟدول ﻟﯾس ﺑﺎﻟـ ‪1NF‬‬


‫‪ -‬رﻗم اﻟﮭﺎﺗف ﺧﺎﺻﯾﺔ ﻣﺗﻌددة اﻟﻘﯾم‪ ،‬ﻟﮭﺎ أﻛﺛر ﻣن ﻗﯾﻣﺔ ﺣﯾث أن اﻟﻣوظف اﻟواﺣد ﻣﻣﻛن أن ﯾﻛون ﻟﮫ أﻛﺛر ﻣن رﻗم‪.‬‬
‫‪ -‬ﻋﻧوان اﻟﺳﻛن ﺧﺎﺻﯾﺔ ﻣرﻛﺑﺔ ﻣﺟزﺋﺔ ﻷﻛﺛر ﻣن ﻗﯾﻣﺔ‪.‬‬
‫)‪Step 1: 1 NF (First Normal Form‬‬

‫ﻟﺗﺣوﯾﻠﮭﺎ ﻟﻠـ ‪1NF‬‬ ‫‪u‬‬


‫اﻟﺧﺎﺻﯾﺔ اﻟﻣرﻛﺑﺔ ﯾﺗم ﻋﻣل ﻋﻣود ﻣﻧﻔﺻل ﻟﻛل ﺟزء ﻣن اﻟﺧﺎﺻﯾﺔ ﺑﯾﻧﻣﺎ اﻟﺧﺎﺻﯾﺔ ﻣﺗﻌددة اﻟﻘﯾم ﻓﻠﮭﺎ ‪ 3‬ﺣﻠول‪:‬‬ ‫‪u‬‬

‫ﺣل ‪ :1‬ھو اﻟﺣل اﻷﻓﺿل واﻟﻣﺗﺑﻊ‪ ،‬ﻓﺻل اﻟﺧﺎﺻﯾﺔ اﻟﻣﺗﻌددة اﻟﻘﯾم )رﻗم اﻟﮭﺎﺗف( ﺑﺟدول ﻣﻧﻔﺻل ﻣﻊ اﻟﻣﻔﺗﺎح اﻻﺳﺎﺳﻲ‬ ‫‪u‬‬

‫)ﺟدول ‪ (1‬رﻗم اﻟﻣوظف – اﻻﺳم اﻷول‪ -‬اﻻﺳم اﻷﺧﯾر – اﻟدوﻟﺔ – اﻟﻣﺣﺎﻓظﺔ – اﻟﻣﻧطﻘﺔ‬
‫)ﺟدول‪ (2‬رﻗم اﻟﻣوظف – اﻟﺟوال‬

‫ﺣل ‪ :2‬ﻧﺟﻌل رﻗم اﻟﻣوظف ‪ +‬رﻗم اﻟﮭﺎﺗف ﻣﻔﺗﺎح أﺳﺎﺳﻲ‬ ‫‪u‬‬

‫)ﺟدول ‪ (1‬رﻗم اﻟﻣوظف – اﻟﺟوال ‪ -‬اﻻﺳم اﻷول ‪ -‬اﻻﺳم اﻷﺧﯾر – اﻟدوﻟﺔ – اﻟﻣﺣﺎﻓظﺔ – اﻟﻣﻧطﻘﺔ‬
‫ﻣﺷﻛﻠﺔ ھذا اﻟﺣل ﺗﻛرار اﻟﺑﯾﺎﻧﺎت ﺗﺗﻛرر ﺟﻣﯾﻊ ﺑﯾﺎﻧﺎت اﻟﻣوظف ﻟﻛل رﻗم ھﺎﺗف‪.‬‬
‫)‪Step 1: 1 NF (First Normal Form‬‬

‫ﻣﺛﺎل‪ : 2‬اﻟﺧﺎﺻﯾﺔ ﻣﺗﻌددة اﻟﻘﯾم‬ ‫‪u‬‬


‫ﻣﻛﺎن اﻟﻘﺳم ﺧﺎﺻﯾﺔ ﻣﺗﻌددة اﻟﻘﯾم ﺣﯾث أن‬ ‫‪u‬‬
‫اﻟﻘﺳم اﻟواﺣد ﻟﮫ أﻛﺛر ﻣن ﻣﻛﺎن‪ .‬ﻣﻣﺎ أدى اﻟﻰ‬
‫اﻟﺗﻛرار ﻓﻲ اﻟﺟدول وﺧرق ﻟﺧﺎﺻﯾﺔ اﻟﻣﻔﺗﺎح‬
‫اﻷﺳﺎﺳﻲ )ﻗﯾﻣﺔ اﻟﺣﻘل وﺣﯾدة ﻻ ﺗﺗﻛرر(‪.‬‬
‫اﻟﺣل اﻷﻓﺿل ھو اﻧﺷﺎء ﺟدول ﺟدﯾد‬
‫ﻟﻠﺧﺎﺻﯾﺔ اﻟﻣﺗﻌددة وأﻋﻣدة ھذا اﻟﺟدول ھﻲ‬
‫اﻟﺧﺎﺻﯾﺔ اﻟﻣﺗﻌددة و اﻟﻣﻔﺗﺎح اﻷﺳﺎﺳﻲ‬
‫ﻟﻠﻛﯾﻧوﻧﺔ اﻟﺗﺎﺑﻌﺔ ﻟﮭﺎ ھذه اﻟﺧﺎﺻﯾﺔ‪.‬‬
‫)‪Step 1: 1 NF (First Normal Form‬‬

‫اذا اﺳﺗطﻌﻧﺎ ﺗﺣدﯾد أﻛﺑر ﻋدد ﻣن اﻷرﻗﺎم اﻟﻣﻣﻛﻧﺔ ﻟﻠﻣوظف ﻓﻧﻘوم ﺑﻌﻣل أﻋﻣدة ﻣﺳﺎوﯾﺔ ﻟﻌدد اﻷرﻗﺎم‬ ‫ﺣ ل ‪:3‬‬ ‫‪u‬‬
‫ﻣﺷﻛﻠﺔ ھذا اﻟﺣل ‪) Null Values .1‬ﻟﻠﻣوظﻔﯾن اﻟذﯾن ﻟدﯾﮭم رﻗم ھﺎﺗف واﺣد ﻓﻘط(‬ ‫‪u‬‬

‫‪ .2‬ﻓﻲ ﺣﺎل اﺣﺗﺟﻧﺎ إﺿﺎﻓﺔ رﻗم ھﺎﺗف ﺟدﯾد ﻓﯾﺟب ﻋﻣل ﺗﺣدﯾث ﻟﺗﻌرﯾف اﻟﺑﯾﺎﻧﺎت ﻹﺿﺎﻓﺔ ﻋﻣود ﺟدﯾد‬
‫)‪Step 1: 1 NF (First Normal Form‬‬

‫ﻣﺛﺎل ‪ :3‬اﻟﺧﺎﺻﯾﺔ اﻟﻣرﻛﺑﺔ‬ ‫‪u‬‬


‫ﻟدﯾﻧﺎ ﻛﯾﻧوﻧﺔ اﻟﻣوظف واﺣدى ﺧﺻﺎﺋﺻﮭﺎ ھﻲ اﺳم اﻟﻣوظف اﻟﻣﻛون ﻣن اﻻﺳم اﻷول و اﻻﺳم اﻷﺧﯾر‪.‬‬

‫ﻣﺛﺎل‪ :‬اﻟﺧﺎﺻﯾﺔ اﻟﻣﻌﻘدة )ﻣرﻛﺑﺔ ‪ +‬ﻣﺗﻌددة اﻟﻘﯾم(‬ ‫‪u‬‬


‫ﻛﯾﻧوﻧﺔ اﻟﻣوظف ﻟدﯾﮭﺎ ﺧﺎﺻﯾﺔ اﻟﻣﺷﺎرﯾﻊ وھﻲ ﺧﺎﺻﯾﺔ ﻣﻌﻘدة‪ .‬اﻟﻣﺷﺎرﯾﻊ ﻟﮭﺎ ﺳﺎﻋﺎت و رﻗم اﻟﻣﺷروع )ﻣرﻛﺑﺔ( وﻛل ﻣوظف‬
‫ﻟدﯾﮫ أﻛﺛر ﻣن ﻣﺷروع )ﻣﺗﻌددة اﻟﻘﯾم(‪.‬‬
‫)‪Step 1: 1 NF (First Normal Form‬‬

‫ﻟدﯾﻧﺎ ﺗﻛرار ﺑﺳﺑب اﻟﺧﺎﺻﯾﺔ اﻟﻣﻌﻘدة‬ ‫‪u‬‬


‫واﻟﺣل ﻋﻣل ﺟدول ﺟدﯾد ﻟﻠﺧﺎﺻﯾﺔ‬
‫اﻟﻣﻌﻘدة أﻋﻣدة ھذا اﻟﺟدول ھﻲ‬
‫اﻟﺧﺎﺻﯾﺔ اﻟﻣﻌﻘدة ‪ +‬اﻟﻣﻔﺗﺎح اﻷﺳﺎﺳﻲ‬
‫ﻟﻠﻛﯾﻧوﻧﺔ اﻟﺗﺎﺑﻌﺔ ﻟﮭﺎ اﻟﺧﺎﺻﯾﺔ اﻟﻣﻌﻘدة‪.‬‬
‫ﻣﻔﺎھﯿﻢ ﻟﻔﮭﻢ اﻟـ ‪2NF‬‬

‫‪ : Prime Attribute‬ﺧﺎﺻﯾﺔ ﻣﻔﺗﺎح أو ﺟزء ﻣن ﻣﻔﺗﺎح‪) .‬ﻣﻔﺗﺎﺣﯾﺔ(‬ ‫‪u‬‬

‫‪ :Not prime Attribute‬ﺧﺎﺻﯾﺔ ﻟﯾﺳت ﻣﻔﺗﺎح وﻻ ﺟزء ﻣن ﻣﻔﺗﺎح‪).‬ﻏﯾر ﻣﻔﺗﺎﺣﯾﺔ(‬ ‫‪u‬‬

‫‪ :Full Functional Dependency‬ارﺗﺑﺎط اﻟﺣﻘل ‪ Not prime‬ارﺗﺑﺎط ﻛﻠﻲ ﺑﺎﻟﻣﻔﺗﺎح اﻷﺳﺎﺳﻲ‪ .‬ﺑﻣﻌﻧﻰ ﯾﻌﺗﻣد ﻋﻠﻰ‬ ‫‪u‬‬
‫اﻟﻣﻔﺗﺎح اﻷﺳﺎﺳﻲ ﻛﻛل وﻟﯾس ﻋﻠﻰ ﺟزء ﻣﻧﮫ‪.‬‬
‫‪ :Partial Functional Dependency‬ارﺗﺑﺎط اﻟﺣﻘل ‪ Not prime‬ارﺗﺑﺎط ﺟزﺋﻲ ﺑﺎﻟﻣﻔﺗﺎح اﻷﺳﺎﺳﻲ‪ .‬ﺑﻣﻌﻧﻰ ﯾﻌﺗﻣد‬ ‫‪u‬‬
‫ﻋﻠﻰ ﺟزء ﻣن اﻟﻣﻔﺗﺎح اﻷﺳﺎﺳﻲ وﻟﯾس ﻋﻠﻰ اﻟﻣﻔﺗﺎح اﻷﺳﺎﺳﻲ ﻛﻛل‪.‬‬

‫ﻣﻼﺣظﺔ‪ :‬اذا ﻛﺎن اﻟﻣﻔﺗﺎح اﻷﺳﺎﺳﻲ ﺣﻘل واﺣد ﻓﻘط اذن أﻛﯾد ﻋﻧدي ‪Full Functional Dependency‬‬ ‫‪u‬‬
‫)‪Step 2: 2NF (Second Normal Form‬‬

‫ﺣﺗﻰ ﯾﺣﻘق ﺟدوﻟﻲ ﺷرط ال ‪ 2NF‬ﯾﺟب أن‪:‬‬ ‫‪u‬‬

‫ﯾﻛون اﻟﺟدول ﺑﺎل ‪1NF‬‬ ‫‪u‬‬

‫ﯾﻛون ﻟدي ‪ Full Functional Dependency‬ﻟﺟﻣﯾﻊ اﻟﺣﻘول ال ‪ ) Not prime‬ﻛل اﻻﻋﻣدة اﻟﻐﯾر‬ ‫‪u‬‬
‫ﻣﻔﺗﺎﺣﯾﺔ ﺗﻌﺗﻣد ﻋﻠﻰ ﻣﻔﺗﺎح أﺳﺎﺳﻲ(‪.‬‬
‫)اﻟﻐﺎء اﻻﻋﺗﻣﺎدﯾﺔ اﻟﺟزﺋﯾﺔ(‬ ‫‪u‬‬

‫ﻣﺛﺎل‬ ‫‪u‬‬

‫رﻗم اﻟﻣوظف ﺧﺎﺻﯾﺔ ‪ , prime‬رﻗم اﻟﻣﺷروع ﺧﺎﺻﯾﺔ ‪prime‬‬


‫ﺳﺎﻋﺎت اﻟﻌﻣل ﺧﺎﺻﯾﺔ ‪not prime‬‬
‫ﻣن ﯾﺣدد ﺳﺎﻋﺎت اﻟﻌﻣل؟‬
‫ﺗﺣدد ﻋن طرﯾق رﻗم اﻟﻣوظف ورﻗم اﻟﻣﺷروع وﻟﯾس ﺑواﺣد دون اﻵﺧر اذن ﻋﻧدي ‪ .Full FD‬اذن ﺟدوﻟﻲ ﺑﺎل‪. 2NF‬‬
‫ﻣﺛﺎل ﺗوﺿﯾﺣﻲ‬
‫ﻣﺜﺎل‬

‫ﻟﻧﻔرض أن ‪:‬‬ ‫‪u‬‬

‫ﺳﺎﻋﺎت اﻟﻌﻣل ﺗﻌﺗﻣد اﻋﺗﻣﺎد ﻛﻠﻲ ﻋﻠﻰ اﻟﻣﻔﺗﺎح اﻷﺳﺎﺳﻲ‪.‬‬ ‫‪u‬‬

‫اﺳم اﻟﻣوظف ﯾﻣﻛن ﺗﺣدﯾده ﻓﻘط ﻣن رﻗم اﻟﻣوظف‪.‬‬ ‫‪u‬‬

‫اﺳم اﻟﻣﺷروع وﻣوﻗﻌﮫ ﯾﻣﻛن ﺗﺣدﯾده ﻣن رﻗم اﻟﻣﺷروع ﻓﻘط‪.‬‬ ‫‪u‬‬

‫اذن ﺟدوﻟﻧﺎ ﻟﯾس ﺑﺎل ‪ .2NF‬اﻟﺣل‪:‬‬ ‫‪u‬‬

‫اﺳم اﻟﻣوظف‬ ‫رﻗم اﻟﻣوظف‬


‫ﺗﻤﺮﯾﻦ‬
‫)‪Step 3: 3NF (Third Normal Form‬‬

‫ﺣﺗﻰ ﯾﺣﻘق ﺟدوﻟﻲ ﺷرط ال ‪ 3NF‬ﯾﺟب أن‪:‬‬ ‫‪u‬‬

‫ﯾﻛون ﺟدوﻟﻲ ﺑﺎل ‪.2NF‬‬ ‫‪u‬‬

‫ﯾﻌﺗﻣد ﻋﻠﻰ ﻣﺑدأ اﻟﻐﺎء اﻻﻋﺗﻣﺎد اﻻﻧﺗﻘﺎﻟﻲ ‪ . Transitive Dependency‬ﺑﻣﻌﻧﻰ أﻧﮫ ﻻ ﯾﺟوز أن ﯾﻛون ﻟدي ﺣﻘل‬ ‫‪u‬‬
‫ﻏﯾر ﻣﻔﺗﺎح )‪ (non-prime‬ﯾﻌﺗﻣد ﻋﻠﻰ )ﯾﻣﻛن ﺗﺣدﯾده ﻣن ﺧﻼل( ﺣﻘل ﻏﯾر ﻣﻔﺗﺎح )‪ (non-prime‬آﺧر‪.‬‬

‫‪A‬‬ ‫‪B‬‬ ‫‪C‬‬


‫اﻻﻋﺗﻣﺎد اﻻﻧﺗﻘﺎﻟﻲ‬
Step 3: 3NF (Third Normal Form)

‫اﻻﻋﺗﻣﺎد اﻻﻧﺗﻘﺎﻟﻲ‬
Step 3: 3NF (Third Normal Form)
Step 3: 3NF (Third Normal Form)
‫اﻟﻤﺮاﺟﻊ‪:‬‬

‫‪Database Design for Mere Mortals, Michael‬‬ ‫‪u‬‬


‫‪J. Hernandez‬‬
‫ﻛﺘﺎب ﻣﻔﺎھﯿﻢ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت اﻟﻌﻼﺋﻘﯿﺔ ﺗﺄﻟﯿﻒ ﻓﮭﺪ اﻟﻘﺎﺳﻢ‬ ‫‪u‬‬

‫ﻣﺬﻛﺮة ) ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت( ﻟﺪﻛﺘﻮر ﺑﺪر اﻟﺪﯾﻦ ﻋﺜﻤﺎن ﺳﻠﯿﻤﺎن‬ ‫‪u‬‬


‫ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬
‫‪Database‬‬

‫أ‪ .‬اﯾﻣﺎن اﻟﺑﻧﺎ‬


‫‪Part 7‬‬

‫‪Relational Algebra‬‬

‫اﻟﺷﻛر اﻟﻣوﺻول ﻟﻸﺳﺗﺎذة ﺳوزان ﺟﺳﺗﻧﯾﮫ‬


‫اﻟﻤﺤﺎور‬

‫اﻟﺟﺑر اﻟﻌﻼﺋﻘﻲ ‪Relational Algebra‬‬


‫ﻋﻣﻠﯾﺎت اﻟﻣﺟﻣوﻋﺎت‬ ‫‪u‬‬
‫‪ u‬اﻻﺗﺣﺎد ‪UNION‬‬
‫‪ u‬اﻟﻔرق ‪DIFFERENCE‬‬
‫‪ u‬اﻟﺗﻘﺎطﻊ ‪INTERSECTION‬‬

‫ﻋﻣﻠﯾﺎت ﻗواﻋد اﻟﺑﯾﺎﻧﺎت‬ ‫‪u‬‬


‫‪ u‬اﻻﻧﺗﻘﺎء ‪SELECTION‬‬
‫‪ u‬اﻟﻌرض ‪PROJECTION‬‬
‫‪ u‬اﻟدﻣﺞ ‪JOIN‬‬
‫اﻟﺠﺒﺮ اﻟﻌﻼﺋﻘﻲ ‪Relational Algebra‬‬

‫اﻟﺟﺑر اﻟﻌﻼﺋﻘﻲ ھو ﻧظﺎم رﯾﺎﺿﻲ ﯾﺳﺗﺧدم ﻟوﺻف وﻣﻌﺎﻟﺟﺔ اﻟﺑﯾﺎﻧﺎت وﯾﺗﻛون ﻣن ﻣﺟﻣوﻋﺔ ﻋﻣﻠﯾﺎت واﻟﺗﻲ‬ ‫‪u‬‬
‫ﺗﻌﻣل ﻋﻠﻰ ﻋﻼﻗﺔ أو أﻛﺛر‪.‬‬
‫اﻟﺟﺑر اﻟﻌﻼﺋﻘﻲ ﻟﻐﺔ ﻧظرﯾﺔ ﻏﯾر إﺟراﺋﯾﺔ‪.‬‬ ‫‪u‬‬

‫اﻟﺑﻧﺎء اﻷﺳﺎﺳﻲ ﻟﻠﺟﺑر اﻟﻌﻼﺋﻘﻲ ﯾﺗﻛون ﻣن ‪:‬‬ ‫‪u‬‬


‫اﻟﻌﻼﻗﺎت‬ ‫‪u‬‬

‫اﻟﻌﻣﻠﯾﺎت ﻋﻠﻰ اﻟﻌﻼﻗﺎت‬ ‫‪u‬‬

‫ﻛل ﻣن اﻟﻣﻌﺎﻣﻼت واﻟﻌﻣﻠﯾﺎت واﻟﻧﺗﺎﺋﺞ ﻋﺑﺎرة ﻋن ﻋﻼﻗﺎت وﻻ ﺗﺗﻐﯾر ﻋن اﻟﻣﺟﻣوﻋﺎت اﻷﺻﻠﯾﺔ‪.‬‬ ‫‪u‬‬
‫ﻋﻤﻠﯿﺎت اﻟﺠﺒﺮ اﻟﻌﻼﺋﻘﻲ‬

‫ﯾﻣﻛن ﺗﺻﻧﯾف ﻋﻣﻠﯾﺎت اﻟﺟﺑر اﻟﻌﻼﺋﻘﻲ اﻟﻰ‬ ‫‪u‬‬


‫ﻋﻣﻠﯾﺎت اﻟﻣﺟﻣوﻋﺎت‬ ‫‪u‬‬
‫‪ u‬اﻻﺗﺣﺎد ‪UNION‬‬
‫‪ u‬اﻟﻔرق ‪DIFFERENCE‬‬
‫‪ u‬اﻟﺗﻘﺎطﻊ ‪INTERSECTION‬‬

‫ﻋﻣﻠﯾﺎت ﻗواﻋد اﻟﺑﯾﺎﻧﺎت )ﻟﻌﻣل اﺳﺗﻌﻼم ﻣﻌﯾن(‬ ‫‪u‬‬


‫‪ u‬اﻻﻧﺗﻘﺎء ‪SELECTION‬‬
‫‪ u‬اﻟﻌرض ‪PROJECTION‬‬
‫‪ u‬اﻟدﻣﺞ ‪JOIN‬‬

‫اﻟﻌﻣﻠﯾﺎت اﻟﺗﻲ ﺗطﺑق ﻋﻠﻰ ﻋﻼﻗﺔ واﺣدة ﻓﻘط ھﻲ اﻻﻧﺗﻘﺎء واﻟﻌرض أﻣﺎ اﻟﺑﻘﯾﮫ ﺗطﺑق ﻋﻠﻰ ﻋﻼﻗﺗﯾن أو أﻛﺛر‬ ‫‪u‬‬
‫ﻧﺎﺗﺞ ﻋﻤﻠﯿﺎت اﻟﺠﺒﺮ اﻟﻌﻼﺋﻘﻲ‬

‫ﻧﺎﺗﺞ ﻋﻣﻠﯾﺎت اﻟﺟﺑر اﻟﻌﻼﺋﻘﻲ ‪:‬‬ ‫‪u‬‬


‫‪ u‬اﻟﻌﻣﻠﯾﺎت اﻟﺗﻲ ﺗطﺑق ﻋﻠﻰ ﻋﻼﻗﺔ واﺣدة ﻓﻘط‪ ،‬وﯾﻛون اﻟﻧﺎﺗﺞ ﻋﻼﻗﺔ واﺣدة ﺟدﯾدة‪ ،‬واﻟﻌﻼﻗﺔ اﻷﺻﻠﯾﺔ‬
‫ﺗﺑﻘﻰ ﻛﻣﺎ ھﻲ ﻻ ﺗﺗﺄﺛر‪.‬‬
‫‪ u‬اﻟﻌﻣﻠﯾﺎت اﻟﺗﻲ ﺗطﺑق ﻋﻠﻰ ﻋﻼﻗﺗﯾن او اﻛﺛر وﯾﻛون اﻟﻧﺎﺗﺞ ﻋﻼﻗﺔ واﺣدة ﺟدﯾدة‪ ،‬واﻟﻌﻼﻗﺎت اﻷﺻﻠﯾﺔ‬
‫ﺗﺑﻘﻰ ﻛﻣﺎ ھﻲ ﻻ ﺗﺗﺄﺛر‪.‬‬
‫اﻻﺗﺤﺎد ‪Union‬‬

‫اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ‬ ‫رﻣﺰ اﻟﻌﻤﻠﯿﺔ‬ ‫اﺳﻢ اﻟﻌﻤﻠﯿﺔ‬


‫‪XUY‬‬ ‫‪U‬‬ ‫اﻻﺗﺤﺎد ‪Union‬‬

‫اﻻﺗﺤﺎد ‪ :‬اذا ﻛﺎن ﻟﺪﯾﻨﺎ ﺟﺪول ‪ x‬و ﺟﺪول ‪ . y‬ﻓﺎﺗﺤﺎد ‪ x‬ﻣﻊ ‪ y‬ھﻮ ﺟﺪول او ﻋﻼﻗﺔ ﺟﺪﯾﺪة ﯾﻮﺟﺪ ﻓﯿﮫ ﻛﻞ أﺳﻄﺮ ‪ x‬وﻛﻞ أﺳﻄﺮ ‪y‬‬ ‫‪u‬‬
‫ﺑﺸﺮط ﻋﺪم اﻟﺘﻜﺮار‪ .‬أي اﻟﻌﻼﻗﺔ اﻟﺠﺪﯾﺪة ﺗﺤﺘﻮي ﻋﻠﻰ ﻛﻞ ﺳﺠﻼت اﻟﻌﻼﻗﺘﯿﻦ وﻟﻜﻦ ﺑﺪون ﺗﻜﺮار)إزاﻟﺔ اﻟﺴﺠﻼت اﻟﻤﺘﻜﺮرة ﺑﯿﻨﮭﻢ(‬
‫اﻻﺗﺤﺎد ﻋﻤﻠﯿﺔ ﺗﺒﺎدﻟﯿﺔ‬ ‫‪u‬‬

‫ﻋﺪد اﻟﺨﺼﺎﺋﺺ ﯾﻜﻮن ﻣﺘﺴﺎوي‪.‬‬ ‫‪u‬‬


‫اﻻﺗﺤﺎد ‪Union‬‬
‫اﻟﺘﻘﺎطﻊ ‪INTERSECTION‬‬

‫اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ‬ ‫رﻣﺰ اﻟﻌﻤﻠﯿﺔ‬ ‫اﺳﻢ اﻟﻌﻤﻠﯿﺔ‬


‫‪yՈ x‬‬ ‫‪Ո‬‬ ‫اﻟﺘﻘﺎطﻊ ‪INTERSECTION‬‬

‫اﻟﺘﻘﺎطﻊ‪ :‬اذا ﻛﺎن ﻟﺪﯾﻨﺎ ﺟﺪول ‪ x‬وﺟﺪول ‪ y‬ﻓﺘﻘﺎطﻊ اﻟﺠﺪوﻟﯿﻦ ھﻮ ﺟﺪول او ﻋﻼﻗﺔ ﺟﺪﯾﺪة ﻓﯿﮫ اﻷﺳﻄﺮ اﻟﻤﺸﺘﺮﻛﺔ‬ ‫‪u‬‬
‫ﺑﯿﻦ اﻟﺠﺪوﻟﯿﻦ‪.‬‬
‫اﻟﺘﻘﺎطﻊ ﻋﻤﻠﯿﺔ ﺗﺒﺎدﻟﯿﺔ‬ ‫‪u‬‬

‫ﻋﺪد اﻟﺨﺼﺎﺋﺺ ﯾﻜﻮن ﻣﺘﺴﺎوي‬ ‫‪u‬‬


INTERSECTION ‫اﻟﺘﻘﺎطﻊ‬
‫اﻟﻔﺮق ‪DIFFERENCE‬‬

‫اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ‬ ‫رﻣﺰ اﻟﻌﻤﻠﯿﺔ‬ ‫اﺳﻢ اﻟﻌﻤﻠﯿﺔ‬


‫‪X - Y OR Y-X‬‬ ‫‪-‬‬ ‫اﻟﻔﺮق ‪DIFFERENCE‬‬

‫اﻟﻔﺮق ‪ :‬اذا ﻛﺎن ﻟﺪﯾﻨﺎ ﺟﺪول ‪ x‬و ﺟﺪول ‪ y‬ﻓﺎن ‪ x-y‬ﺗﺨﺘﻠﻒ ﻋﻦ ‪y-x‬‬ ‫‪u‬‬

‫‪ x-y‬ﺗﻌﻨﻲ اﻟﺼﻔﻮف )اﻟﺴﺠﻼت( اﻟﻤﻮﺟﻮدة ﻓﻲ ﺟﺪول ‪ x‬وﻏﯿﺮ ﻣﻮﺟﻮد ﻓﻲ ﺟﺪول ‪) .y‬ﺟﻤﯿﻊ اﻟﺒﯿﺎﻧﺎت اﻟﻐﯿﺮ ﻣﺸﺘﺮﻛﺔ ﻣﻊ اﻟـ ‪(Y‬‬ ‫‪u‬‬

‫ﺑﯿﻨﻤﺎ ‪ y-x‬ﺗﻌﻨﻲ اﻟﺼﻔﻮف )اﻟﺴﺠﻼت( اﻟﻤﻮﺟﻮدة ﻓﻲ ﺟﺪول ‪ y‬وﻏﯿﺮ ﻣﻮﺟﻮد ﻓﻲ ﺟﺪول ‪) .x‬ﺟﻤﯿﻊ اﻟﺒﯿﺎﻧﺎت اﻟﻐﯿﺮ ﻣﺸﺘﺮﻛﺔ ﻣﻊ اﻟـ ‪(x‬‬ ‫‪u‬‬

‫اﻟﻔﺮق ﻋﻤﻠﯿﺔ ﻏﯿﺮ ﺗﺒﺎدﻟﯿﺔ‪.‬‬ ‫‪u‬‬

‫ﻋﺪد اﻟﺨﺼﺎﺋﺺ ﻣﺘﺴﺎوي‪.‬‬ ‫‪u‬‬


DIFFERENCE ‫اﻟﻔﺮق‬
RUS R-S RՈS
‫اﻻﻧﺘﻘﺎء ‪Select‬‬

‫اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ‬ ‫رﻣز اﻟﻌﻣﻠﯾﺔ‬ ‫اﺳم اﻟﻌﻣﻠﯾﺔ‬


‫‪σ‬‬ ‫اﻟ ﺷ ر ط‬ ‫)اﺳم اﻟﺟدول(‬ ‫‪σ‬‬ ‫اﻻﻧﺗﻘﺎء ‪Select‬‬

‫وﺗﻌﻧﻲ ﻣن اﻟﺟدول اﻟﻣذﻛور اﺳﻣﮫ ﻗم ﺑﺎﺧﺗﯾﺎر اﻟﺻﻔوف اﻟﺗﻲ ﺗﺣﻘق اﻟﺷرط‪ .‬واﻟﻧﺎﺗﺞ ھوﺟدول او ﻋﻼﻗﺔ ﺟدﯾدة ﯾﻌرض ﻓﯾﮭﺎ ﺑﯾﺎﻧﺎت‬ ‫‪u‬‬
‫ﻛﺎﻣل اﻟﺻﻔوف اﻟذي ﯾﺣﻘق اﻟﺷرط‪.‬‬
‫اﻟﺷرط ﯾﺣﺗوي ﻋﻠﻰ أﺣد رﻣوز ﻋﻣﻠﯾﺎت اﻟﻣﻘﺎرﻧﺔ ) >‪ ( <>،=،>=،<=،<،‬ﺑﺎﻹﺿﺎﻓﺔ إﻟﻰ‪:‬‬ ‫‪u‬‬
‫‪ u‬اﺳم ﺣﻘل ﻣوﺟود ف اﻟﻌﻼﻗﺔ‪.‬‬
‫‪ u‬اﺳم ﺣﻘل ﻣوﺟود أو ﻗﯾﻣﺔ ﺛﺎﺑﺗﺔ‪.‬‬
‫اذا ﻟم ﯾﺗم ﺑﺗﺣدﯾد ﺷرط اﻟﻧﺎﺗﺞ ھو ﻛﺎﻣل اﻟﺟدول‪.‬‬ ‫‪u‬‬
‫اﻻﻧﺘﻘﺎء ‪Select‬‬
‫اﻻﻧﺘﻘﺎء ‪Select‬‬
‫اﻟﻌرض ‪PROJECTION‬‬

‫اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ‬ ‫رﻣز اﻟﻌﻣﻠﯾﺔ‬ ‫اﺳم اﻟﻌﻣﻠﯾﺔ‬


‫‪π‬‬ ‫(ا ﺳ ﻣ ﺎ ء ا ﻷ ﻋ ﻣ د ة‬ ‫) اﺳم اﻟﺟدول‬ ‫‪π‬‬ ‫اﻟﻌرض ‪Project‬‬

‫اﻟﻌرض ‪ :‬ھو اﺧﺗﯾﺎر ﻷﻋﻣدة ﻣﻌﯾﻧﺔ ﻣن اﻟﺟدول‪ .‬ﻓﺎن ﻧﺎﺗﺞ ﻋﻣﻠﯾﺔ اﻟﻌرض ﺟدول او ﻋﻼﻗﺔ ﺟدﯾدة ﺗﺣﺗوي‬ ‫‪u‬‬
‫ﻓﻘط ﻋﻠﻰ اﻟﺧﺻﺎﺋص )اﻻﻋﻣدة( اﻟﻣﺣددة‪.‬‬
‫ﺗﻛون ﺑﻧﻔس اﻟﺗرﺗﯾب اﻟﻣﺣدد ودون ﺗﻛرار ﻟﻠﺳﺟﻼت‬ ‫‪u‬‬

‫ﯾﺟب وﺿﻊ ﻓﺎﺻﻠﺔ ﻋﻧد ﻛﺗﺎﺑﺔ أﻛﺛر ﻣن اﺳم ﻋﺎﻣود‬ ‫‪u‬‬


PROJECTION ‫اﻟﻌﺮض‬
‫اﻟدﻣﺞ ‪Join‬‬

‫اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ‬ ‫رﻣز اﻟﻌﻣﻠﯾﺔ‬ ‫اﺳم اﻟﻌﻣﻠﯾﺔ‬

‫اﺳم اﻟﺟدول اﻷول ∞ اﺳم اﻟﺟدول اﻟﺛﺎﻧﻲ‬ ‫∞‬ ‫اﻟدﻣﺞ ‪join‬‬

‫‪ u‬اﻟدﻣﺞ ‪ :‬ﻟﺟﻣﻊ ﺑﯾﺎﻧﺎت ﺟدوﻟﯾن ﻓﻲ ﺟدول واﺣد‪ .‬ﺣﺗﻰ ﺗﺗم ﻋﻣﻠﯾﺔ اﻟدﻣﺞ ﯾﺟب أن ﯾﻛون ﻟدﯾﻧﺎ ﺣﻘل ﻣﺷﺗرك )اﻟﻣﻔﺎﺗﯾﺢ(‬
‫ﻣﺎ ﺑﯾن اﻟﺟدوﻟﯾن‪.‬‬
‫ﻧﺎﺗﺞ ﻋﻣﻠﯾﺔ اﻟدﻣﺞ ﻋﻼﻗﺔ ﺟدﯾدة ﺗﺣﺗوي ﻋﻠﻰ ﺧﺻﺎﺋص اﻟﻌﻼﻗﺗﯾن ﺑدون ﺗﻛرار ﻟﻠﺣﻘل اﻟﻣﺷﺗرك ﺑﯾن اﻟﺟدوﻟﯾن‪.‬‬ ‫‪u‬‬

‫اﻟﺣﻘل اﻟﻣﺷﺗرك‪ :‬ﻣﻔﺗﺎح أﺳﺎﺳﻲ ﻓﻲ ﺟدول ﺳﯾﻛون ﻣﻔﺗﺎح أﺟﻧﺑﻲ ﻓﻲ اﻟﺟدول اﻵﺧر‪.‬‬ ‫‪u‬‬

‫ﻋﻣﻠﯾﺔ اﻟدﻣﺞ ﺗﺑﺎدﻟﯾﺔ‪.‬‬ ‫‪u‬‬


‫ﻣﺛﺎل‬
‫ﺳؤال‪ :‬ﻣن اﻟﺟداول اﻟﺗﺎﻟﯾﺔ ﻗوﻣﻲ ﺑﺎﻻﺳﺗﻌﻼم ﻋن أﺳﻣﺎء اﻟطﻼب و ﻣﺟﺎﻻت اﻟﻣﺷﺎرﯾﻊ ﻷي ﻣﺷروع رﻗﻣﮫ أﻛﺑر ﻣن ‪31‬‬ ‫‪u‬‬
‫اﻟﻤﺮاﺟﻊ‪:‬‬

‫‪Database Design for Mere Mortals, Michael‬‬ ‫‪u‬‬


‫‪J. Hernandez‬‬
‫ﻛﺘﺎب ﻣﻔﺎھﯿﻢ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت اﻟﻌﻼﺋﻘﯿﺔ ﺗﺄﻟﯿﻒ ﻓﮭﺪ اﻟﻘﺎﺳﻢ‬ ‫‪u‬‬

‫ﻣﺬﻛﺮة ) ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت( ﻟﺪﻛﺘﻮر ﺑﺪر اﻟﺪﯾﻦ ﻋﺜﻤﺎن ﺳﻠﯿﻤﺎن‬ ‫‪u‬‬

You might also like