You are on page 1of 80

‫اﻟﻤﺆﻟﻒ‬

‫ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ‬
‫ﻣﺪرس ﺣﺎﺳﻮب ﺗﻘﻨﻲ‬
‫آﻠﻴﺔ ﻣﺠﺘﻤﻊ اﻟﻤﺮأة ﺑﺮام اﷲ‬

‫‪June 23, 2003‬‬


‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫اﻹهﺪاء‬
‫إﻟﻰ أﻣﺘﻲ اﻹﺳﻼﻣﻴﺔ ‪ ،‬ﻋﻠﻬﺎ ﺗﺪرك أن ﺳﺒﺐ ﻋﺰﺗﻨﺎ هﻮ اﻹﺳﻼم‪ ،‬وأن اﻹﺳﻼم ﻟﻦ ﻳﻄﺒﻖ إﻻ ﺑﻮﺟﻮد‬
‫دوﻟﺔ اﻟﺨﻼﻓﺔ اﻟﺮاﺷﺪة اﻟﻘﺎدﻣﺔ ﺑﺈذن اﷲ‪....‬‬
‫إﻟﻰ روح واﻟﺪي اﻟﻔﻘﻴﺪ اﻟﻤﺮﺑﻲ اﻟﻔﺎﺿﻞ اﻟﻤﺮﺣﻮم إﺳﺤﻖ اﻟﻄﻴﻄﻲ‪ ...‬ﻗﺪوﺗﻲ و ﻣﻨﺎري ﻓﻲ اﻟﺤﻴﺎة‪...‬‬
‫إﻟﻰ أﻣﻲ اﻟﺸﻤﻌﺔ اﻟﺘﻲ ﻻ ﺗﻨﻄﻔﺊ ﻟﺘﻨﻴﺮ ﻟﻲ اﻟﺪرب‪....‬‬
‫إﻟﻰ آﻞ ﻣﻦ ﺳﺎهﻢ ﻓﻲ أﻧﺠﺎز هﺬا اﻟﺠﻬﺪ اﻟﻤﺘﻮاﺿﻊ‪...‬‬

‫‪1‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫اﻟﻤﻘﺪﻣﺔ‬
‫ﻣﻊ اﻟﺘﻄﻮر اﻟﻌﻠﻤﻲ اﻟﺬي ﻧﺸﻬﺪﻩ ﻓﻲ اﻟﻘﺮن اﻟﺤ ﺎدي و اﻟﻌ ﺸﺮﻳﻦ‪ ،‬أﺧ ﺬت اﻟﻤﻌﺮﻓ ﺔ‬
‫اﻹﻧ ﺴﺎﻧﻴﺔ ﺑﺎﻷﺗ ﺴﺎع و اﻟﺘ ﻀﺨﻢ اﻷﻓﻘ ﻲ و اﻟﻌﻤ ﻮدي‪ ،‬وﻇﻬ ﺮت اﻟﺘﻄﺒﻴﻘ ﺎت اﻟﻌﻠﻤﻴ ﺔ اﻟﺘ ﻲ‬
‫ﺗﺤﺘﺎج إﻟﻰ اﻻﺣﺘﻔﺎظ ﺑﺎﻟﺒﻴﺎﻧﺎت اﻟﻤﻌﺮﻓﻴﺔ ﺑﺸﻜﻞ ﺳﻠﻴﻢ ﻣﻦ اﺟﻞ اﻷﺟﻴﺎل اﻟﻘﺎدﻣﺔ‪.‬‬
‫ﻓﻤﻦ ﻣﺸﺮوع اﻟﺨﺎرﻃﺔ اﻟﺠﻴﻨﻴﺔ ﻟﻠﺒ ﺸﺮ)‪ ،(GNOME‬إﻟ ﻰ ﻣ ﺸﺮوع اﻟﻤﻌﻠﻮﻣ ﺎت‬
‫اﻟﺠﻐﺮاﻓﻴﺔ)‪ ،(GIS‬إﻟﻰ اﻻﺳﺘﻌﻤﺎﻻت اﻟﻌﺼﺮﻳﺔ ﻣﻦ ﻣﺜﻞ اﻟﺘﺠ ﺎرة اﻻﻟﻜﺘﺮوﻧﻴ ﺔ‪ ،‬و أﻧﻈﻤ ﺔ‬
‫اﻻﺗ ﺼﺎﻻت‪ ،‬وﺳ ﺠﻼت اﻟﻬﻮاﺗ ﻒ و اﻟﻤ ﻮﻇﻔﻴﻦ‪ ،‬وﻧﻈ ﺮًا ﻟﻠﺘ ﻀﺨﻢ اﻟﻬﺎﺋ ﻞ ﻓ ﻲ ﺣﺠ ﻢ‬
‫اﻟﻤﻌﻠﻮﻣ ﺎت و ﻧﻮﻋﻬ ﺎ أﺻ ﺒﺢ هﻨﺎﻟ ﻚ ﺿ ﺮورة ﻣﻠﺤ ﺔ ﻟﻌﻤﻠﻴ ﺎت و اﻟﻔ ﺮز و اﻟﺤﻔ ﻆ و‬
‫اﻻﺳﺘﺮﺟﺎع ﻓﻲ اﻟﻤﻜﺎن و اﻟﺰﻣﺎن اﻟﻤﻨﺎﺳﺒﻴﻦ ﺑﺎﻟﺪﻗﺔ واﻟﺴﺮﻋﺔ واﻟﺘﻜﻠﻔﺔ اﻟﻤﻨﺎﺳ ﺒﺔ‪ ،‬ﻇﻬ ﺮت‬
‫اﻟﺤﺎﺟﺔ إﻟﻰ اﺳﺘﺨﺪام ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت و ﺗﻄﺒﻴﻘﺎﺗﻬﺎ‪.‬‬
‫وﻣﻊ ﺗﻮﻓﺮ ﺑﻌﺾ اﻟﻤﺮاﺟﻊ اﻟﻌﺮﺑﻴﺔ ﻓﻲ ﺗﺪرﻳﺲ ﻗﻮاﻋ ﺪ اﻟﺒﻴﺎﻧ ﺎت و أﺳﺎﺳ ﻴﺎﺗﻬﺎ‪ ،‬إﻻ‬
‫إﻧﻨ ﻲ وﺑﻌ ﺪ اﻹﻃ ﻼع ﻋﻠﻴﻬ ﺎ ﻣ ﻦ ﺧ ﻼل اﻟﺘ ﺪرﻳﺲ ﺑﻬ ﺎ ﻓ ﻲ آﻠﻴ ﺔ ﻣﺠﺘﻤ ﻊ اﻟﻤ ﺮﺁة ﺑ ﺎﻟﻄﻴﺮة‪،‬‬
‫وﺟ ﺪت اﻟﻜﺜﻴ ﺮ ﻣ ﻦ اﻟﻤﻌﻠﻮﻣ ﺎت اﻟﻘﺪﻳﻤ ﺔ و اﻟﻨﺎﻗ ﺼﺔ ﻓ ﻲ ه ﺬﻩ اﻟﻤﺮاﺟ ﻊ‪ ،‬ﻓﻠ ﺬﻟﻚ أﺻ ﺒﺤﺖ‬
‫اﻟﺤﺎﺟﺔ ﻣﺎﺳﺔ إﻟﻰ ﻣﺎدة ﻧﻈﺮﻳﺔ ﻣﺴﺎﻋﺪة ﻟﻬﺬﻩ اﻟﻤﺮاﺟﻊ‪ ،‬ﺗﻌﻮض اﻟ ﻨﻘﺺ ﻓ ﻲ ﻣﻌﻠﻮﻣﺎﺗﻬ ﺎ و‬
‫ﺗﺤﺪث اﻟﻘﺪﻳﻢ ﻓﻴﻬﺎ‪.‬‬
‫ﻓﻠﺬﻟﻚ آﺎن هﺬا اﻟﺠﻬﺪ اﻟﻤﺘﻮاﺿﻊ‪ ،‬و أرﺟﻮ اﷲ اﻟﻌﻠﻲ اﻟﻘﺪﻳﺮ أن ﻳﺠﻌﻠﻪ ﻓ ﻲ ﻣﻴ ﺰان‬
‫ﺣﺴﻨﺎﺗﻲ‪ ،‬و أن ﻳﺴﺘﻔﻴﺪ ﻣﻨﻪ ﻃﻼﺑﻨﺎ وﻃﺎﻟﺒﺎﺗﻨﺎ اﻷﻋﺰاء آﻞ اﻻﺳﺘﻔﺎدة‪.‬‬
‫م‪ .‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ‬

‫‪2‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﺟﺪول اﻟﻤﺤﺘﻮﻳﺎت‬
‫‪1‬‬ ‫اﻹهﺪاء‬

‫‪2‬‬ ‫اﻟﻤﻘﺪﻣﺔ‬

‫‪3‬‬ ‫ﺟﺪول اﻟﻤﺤﺘﻮﻳﺎت‬

‫‪7‬‬ ‫اﻟﻮﺣﺪة اﻷوﻟﻰ‪ :‬أﺳﺎﺳﻴﺎت ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت وﺗﻄﻮرهﺎ ﺗﺎرﻳﺨﻴﺎ‬


‫‪7‬‬ ‫اﻷهﺪاف اﻟﻌﺎﻣﺔ ﻟﻠﻮﺣﺪة‪:‬‬

‫‪7‬‬ ‫ﻣﺎ هﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ؟‬


‫‪7‬‬ ‫اﻟﺘﻮﺟﻬﺎت اﻟﺴﺎﺑﻘﺔ )‪:(previous approaches‬‬
‫‪7‬‬ ‫ﻣﺎ هﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ؟‬
‫‪8‬‬ ‫ﺑﻴﺌﺔ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‪:‬‬

‫‪8‬‬ ‫ﻣﺎ هﻲ أﻃﺮاف ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت؟‬


‫‪8‬‬ ‫اﻟﻤﺴﺘﺨﺪﻣﻮن ) ‪:(Users‬‬ ‫‪1.‬‬
‫‪8‬‬ ‫اﻟﺒﺮاﻣﺞ ) ‪:(Software S/W‬‬ ‫‪.2‬‬
‫‪9‬‬ ‫اﻟﺒﻴﺎﻧﺎت)‪:(Data‬‬ ‫‪.3‬‬
‫‪9‬‬ ‫اﻟﻤﻌﺪات )‪(Hardware‬‬ ‫‪4.‬‬

‫‪9‬‬ ‫ﺧﻄﻮات ﺗﺼﻤﻴﻢ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت )‪(Design process‬‬

‫‪9‬‬ ‫أﻓﻀﻠﻴﺔ)‪ (Advantages‬ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ﻋﻠﻰ ﻧﻈﺎم اﻟﻤﻠﻔﺎت اﻟﻘﺪﻳﻢ‬

‫‪10‬‬ ‫ﻓﻮاﺋﺪ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت) ‪(Benefits‬‬

‫‪10‬‬ ‫ﻣﺴﺎوئ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪11‬‬ ‫أﻧﻮاع أﻧﻈﻤﺔ إدارة ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت)‪(DBMS‬‬


‫‪11‬‬ ‫ﻣﻦ ﻧﺎﺣﻴﺔ اﻟﻤﺴﺘﺨﺪﻣﻴﻦ‪:‬‬
‫‪11‬‬ ‫ﻣﻦ ﻧﺎﺣﻴﺔ اﻟﺘﻮزﻳﻊ اﻟﺠﻐﺮاﻓﻲ‪:‬‬
‫‪11‬‬ ‫ﻣﻦ ﻧﺎﺣﻴﺔ ﺧﻄﺔ اﻟﺒﻴﺎﻧﺎت)‪(Data Models‬‬
‫‪12‬‬ ‫ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻬﺮﻣﻴﺔ )‪(Hierarchical Model‬‬ ‫‪1.‬‬
‫‪12‬‬ ‫ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﺸﺒﻜﻴﺔ )‪(Network Model‬‬ ‫‪.2‬‬
‫‪13‬‬ ‫ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻌﻼﺋﻘﻴﺔ )‪:(Relational DB Model‬‬ ‫‪.3‬‬

‫‪14‬‬ ‫هﻴﻜﻠﻴﺔ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت )‪(Architecture of a DB system‬‬

‫‪15‬‬ ‫اﺳﺘﻘﻼﻟﻴﺔ اﻟﺒﻴﺎﻧﺎت )‪(DI: Data Independance‬‬

‫‪16‬‬ ‫أﺳﺌﻠﺔ اﻟﻮﺣﺪة‪:‬‬

‫‪17‬‬ ‫اﻟﻮﺣﺪة اﻟﺜﺎﻧﻴﺔ‪ :‬اﻟﺘﺨﺰﻳﻦ اﻟﻔﻴﺰﻳﺎﺋﻲ ﻟﻘﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت) ‪(DB STORAGE‬‬


‫‪17‬‬ ‫اﻷهﺪاف اﻟﻌﺎﻣﺔ ﻟﻠﻮﺣﺪة‪:‬‬

‫‪3‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪17‬‬ ‫واﺳﻄﺎت اﻟﺘﺨﺰﻳﻦ )‪(Storage Devices‬‬

‫‪19‬‬ ‫ﻋﻤﻠﻴﺔ اﻟﺤﺼﻮل ﻋﻠﻰ ﺳﺠﻞ ﻣﻌﻴﻦ‬

‫‪21‬‬ ‫ﺗﻨﻈﻴﻢ اﻟﻤﻠﻔﺎت) ‪(File organization‬‬


‫‪21‬‬ ‫أﻧﻮاع اﻟﺴﺠﻼت‪:‬‬
‫‪21‬‬ ‫ﻣﻦ ﻧﺎﺣﻴﺔ اﻟﻄﻮل)‪:(Length‬‬ ‫‪.1‬‬
‫‪22‬‬ ‫ﻣﻦ ﻧﺎﺣﻴﺔ اﻟﺘﻮزﻳﻊ)‪:(Spanning‬‬ ‫‪.2‬‬

‫‪22‬‬ ‫ﻃﺮق ﺗﻨﻈﻴﻢ اﻟﻤﻠﻔﺎت‬


‫‪22‬‬ ‫اﻟﻤﻠﻔﺎت ﻏﻴﺮ اﻟﻤﺮﺗﺒﺔ )‪(Heap File Unordered‬‬ ‫‪.1‬‬
‫‪23‬‬ ‫اﻟﻤﻠﻔﺎت اﻟﻤﺮﺗﺒﺔ )‪(Ordered Files‬‬ ‫‪.2‬‬
‫‪24‬‬ ‫ﺑﺎﺳﺘﺨﺪام ﻃﺮﻳﻘﺔ اﻟﻤﺰج)‪:(Hashing Techniques‬‬ ‫‪.3‬‬
‫‪24‬‬ ‫اﻟﻤﺰج اﻟﺪاﺧﻠﻲ)‪:(Internal Hashing‬‬ ‫‪1.‬‬
‫‪25‬‬ ‫اﻟﻤﺰج اﻟﺨﺎرﺟﻲ)‪:(External Hashing‬‬ ‫‪2.‬‬

‫‪26‬‬ ‫اﻟﻔﻬﺎرس وﺗﺮاآﻴﺐ اﻟﻮﺻﻮل )‪(Indexes and Access Structure‬‬

‫‪27‬‬ ‫اﻟﻔﻬﺎرس اﻟﺜﺎﺑﺘﺔ اﻟﻤﻔﺮدة)‪:(Static single Index‬‬


‫‪27‬‬ ‫اﻟﻔﻬﺎرس اﻟﺮﺋﻴﺴﻴﺔ)‪.(Primary Index‬‬ ‫‪1.‬‬
‫‪28‬‬ ‫اﻟﻔﻬﺎرس اﻟﺜﺎﻧﻮﻳﺔ)‪.(Secondary Index‬‬ ‫‪2.‬‬
‫‪28‬‬ ‫ﺑﺪون ﺗﻜﺮار)‪:(Not-repeated‬‬ ‫‪.1‬‬
‫‪29‬‬ ‫وﺟﻮد ﺗﻜﺮار)‪:(repeated‬‬ ‫‪.2‬‬
‫‪29‬‬ ‫اﻷﻓﻀﻠﻴﺎت و اﻟﺴﻴﺌﺎت ﻟﻠﻔﻬﺮس‬

‫‪30‬‬ ‫أﺳﺌﻠﺔ اﻟﻮﺣﺪة‪:‬‬

‫اﻟﻮﺣﺪة اﻟﺜﺎﻟﺜﺔ‪ :‬ﺗﺼﻤﻴﻢ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻌﻼﺋﻘﻴﺔ )‪(RELATIONAL DATABASE DESIGN‬‬


‫‪31‬‬
‫‪31‬‬ ‫اﻷهﺪاف اﻟﻌﺎﻣﺔ ﻟﻠﻮﺣﺪة‪:‬‬

‫‪31‬‬ ‫ﺧﻄﻮات ﺗﺼﻤﻴﻢ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت)‪(Database Design Steps‬‬

‫‪32‬‬ ‫ﻧﻤﻮذج اﻟﻌﻼﻗﺎت و اﻟﻜﻴﻨﻮﻧﺎت )‪(E-R Model‬‬


‫‪32‬‬ ‫اﻟﻜﻴﺎﻧﺎت)‪.(Entities‬‬ ‫‪1.‬‬
‫‪32‬‬ ‫ﻧﻮﻋﻴﺔ آﻴﺎن)‪:(Entity Type‬‬ ‫‪2.‬‬
‫‪33‬‬ ‫ﻣﺠﻤﻮﻋﺔ آﻴﺎن)‪ :(Entity Set‬اﻟﻌﻨﺎﺻﺮ‬ ‫‪.3‬‬
‫‪33‬‬ ‫أﻧﻮاع اﻟﺨﺼﺎﺋﺺ)‪(Types of Attributes‬‬ ‫‪.5‬‬
‫‪34‬‬ ‫ﻣﺠﺎل اﻟﺨﺎﺻﻴﺔ)‪(Domain of Attribute‬‬ ‫‪.6‬‬
‫‪34‬‬ ‫اﻟﻌﻼﻗﺎت اﻟﻤﺸﺘﺮآﺔ)‪(Relationships‬‬ ‫‪.7‬‬
‫‪34‬‬ ‫اﻟﺪرﺟﺔ ﻟﻠﻌﻼﻗﺔ اﻟﻤﺸﺘﺮآﺔ)‪:(Relationship Degree‬‬ ‫‪.8‬‬
‫‪34‬‬ ‫رﺳﻢ ﻧﻤﻮذج ‪:E-R Model‬‬
‫‪37‬‬ ‫اﻟﻀﻮاﺑﻂ اﻟﺒﻨﺎﺋﻴﺔ ) ‪(Structural Constraints‬‬
‫‪37‬‬ ‫ﻧﻮﻋﻴﺔ اﻟﻜﻴﺎﻧﺎت اﻟﻀﻌﻴﻔﺔ)‪(WE: Weak Entity type‬‬

‫‪39‬‬ ‫ﻣﺜﺎل آﺎﻣﻞ ﻋﻠﻰ ﻧﻤﻮذج اﻟﻌﻼﻗﺎت اﻟﻜﻴﻨﻮﻧﺎت)ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻟﺠﺎﻣﻌﺔ(‬


‫اﻟﻤﻄﻠﻮب‪40 :‬‬
‫‪40‬‬ ‫ﺧﻄﻮات اﻟﺤﻞ‪:‬‬

‫‪42‬‬ ‫اﻟﻨﻤﻮذج اﻟﻌﻼﺋﻘﻲ)‪(Relational Model‬‬

‫‪4‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪42‬‬ ‫اﻟﻌﻼﻗﺔ )‪:(Relation‬‬ ‫‪1.‬‬


‫‪43‬‬ ‫اﻟﻤﺠﺎل)‪:(Domain‬‬ ‫‪2.‬‬
‫‪43‬‬ ‫درﺟﺔ اﻟﻌﻼﻗﺔ)‪:(Relation Degree‬‬ ‫‪3.‬‬
‫‪44‬‬ ‫ﺟﻮهﺮﻳﺔ اﻟﻌﻼﻗﺔ )‪:(Relation Cardinality‬‬ ‫‪4.‬‬
‫‪44‬‬ ‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت اﻟﻌﻼﺋﻘﻴﺔ)‪(Relational DB‬‬ ‫‪.5‬‬

‫‪44‬‬ ‫ﺿﻮاﺑﻂ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻌﻼﺋﻘﻴﺔ )‪(Relational Db Constraints‬‬


‫‪44‬‬ ‫ﺿﻮاﺑﻂ اﻟﻤﺠﺎل)‪(Domain Constraints‬‬ ‫‪1.‬‬
‫‪44‬‬ ‫ﺿﻮاﺑﻂ اﻟﻤﻔﺎﺗﻴﺢ)‪:(Key Constraints‬‬ ‫‪.2‬‬
‫‪44‬‬ ‫اﻟﻤﻔﺎﺗﻴﺢ اﻟﺮﺋﻴﺴﻴﺔ )‪.(PK: Primary Key‬‬ ‫أ‪-‬‬
‫‪45‬‬ ‫اﻟﻤﻔﺘﺎح اﻟﻐﺮﻳﺐ) ‪:(Foreign Key‬‬ ‫ب‪-‬‬
‫‪46‬‬ ‫اﻟﻘﻮاﻋﺪ اﻟﻀﺒﻄﻴﺔ )‪:(Constraints Rules‬‬ ‫‪.3‬‬
‫‪46‬‬ ‫ﺻﺤﺔ اﻟﻜﻴﺎن )‪:(Entity Integrity‬‬ ‫أ‪-‬‬
‫‪46‬‬ ‫ﺻﺤﺔ اﻟﺘﻮزﻳﻊ )‪:(Referential Integrity‬‬ ‫ب‪-‬‬

‫‪46‬‬ ‫ﺗﺤﻮﻳﻞ ﻧﻤﻮذج اﻟﻌﻼﻗﺎت و اﻟﻜﻴﻨﻮﻧﺎت إﻟﻰ اﻟﻨﻤﻮذج اﻟﻌﻼﺋﻘﻲ )‪(ER To Relational‬‬

‫‪49‬‬ ‫أﺳﺌﻠﺔ اﻟﻮﺣﺪة‪:‬‬

‫‪51‬‬ ‫اﻟﻮﺣﺪة اﻟﺮاﺑﻌﺔ‪ :‬اﻟﺘﻄﺒﻴﻊ)‪(NORMALIZATION‬‬


‫‪51‬‬ ‫اﻷهﺪاف اﻟﻌﺎﻣﺔ ﻟﻠﻮﺣﺪة‪:‬‬

‫‪51‬‬ ‫اﻹﻋﺘﻤﺎدات اﻟﻮﻇﻴﻔﻴﺔ ) ‪(FD: Functional Dependencies‬‬

‫‪52‬‬ ‫ﻧﻤﺎذج اﻟﺘﻄﺒﻴﻊ‬


‫‪52‬‬ ‫ﺗﻌﺮﻳﻒ اﻟﺘﻄﺒﻴﻊ‪:‬‬
‫‪53‬‬ ‫ﻧﻤﺎذج اﻟﺘﻄﺒﻴﻊ اﻟﻤﻮﺟﻮدة‪:‬‬
‫‪53‬‬ ‫ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻷول )‪:(1NF‬‬ ‫)‪(1‬‬
‫‪54‬‬ ‫ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻧﻲ)‪:(2NF‬‬ ‫)‪(2‬‬
‫‪55‬‬ ‫ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻟﺚ) ‪:(3NF‬‬ ‫)‪(3‬‬
‫‪55‬‬ ‫ﻧﻤﻮذج ﺗﻄﺒﻴﻊ ﺑﻮﻳﺲ آﻮد) ‪:(BCNF: Boyce-Codd Normal Form‬‬ ‫)‪(4‬‬
‫‪56‬‬ ‫ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻧﻲ)‪ (2NF‬ﺣﺴﺐ ﺑﻮﻳﺲ آﻮد‪:‬‬ ‫)‪(5‬‬
‫‪56‬‬ ‫ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻟﺚ)‪ (3NF‬ﺣﺴﺐ ﺑﻮﻳﺲ آﻮد‪:‬‬ ‫)‪(6‬‬
‫‪56‬‬ ‫ﻧﻤﻮذج ﺑﻮﻳﺲ آﻮد اﻟﻤﻌﺪل‪:‬‬ ‫)‪(7‬‬

‫‪57‬‬ ‫أﺳﺌﻠﺔ اﻟﻮﺣﺪة‪:‬‬

‫‪58‬‬ ‫اﻟﻮﺣﺪة اﻟﺨﺎﻣﺴﺔ‪ :‬ﻟﻐﺔ اﻻﺳﺘﻌﻼم اﻟﺒﻨﻴﻮﻳﺔ )‪(SQL‬‬

‫‪58‬‬ ‫اﻷهﺪاف اﻟﻌﺎﻣﺔ ﻟﻠﻮﺣﺪة‪:‬‬

‫‪58‬‬ ‫ﻣﻘﺪﻣﺔ‪:‬‬

‫‪59‬‬ ‫ﻗﺼﺔ ‪:SQL‬‬

‫‪60‬‬ ‫ﻣﺎ هﻲ ﻟﻐﺔ ‪ SQL‬؟‬


‫‪60‬‬ ‫اﻟﻌﻼﻗﺔ ﺑﻴﻦ ‪ SQL‬و ﺑﻴﻦ اﻟﺠﺒﺮ اﻟﻌﻼﺋﻘﻲ‬
‫‪61‬‬ ‫ﺟﻤﻞ ﺗﻌﺮﻳﻒ اﻟﺒﻴﺎﻧﺎت)‪ (DDL‬و ﺟﻤﻞ ﻣﻌﺎﻟﺠﺔ اﻟﺒﻴﺎﻧﺎت)‪ (DML‬ﻓﻲ ﻟﻐﺔ ‪SQL‬‬

‫‪62‬‬ ‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻟﺸﺮآﺔ)‪:(Company Database‬‬

‫‪5‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪63‬‬ ‫ﺟﻤﻠﺔ اﻻﺧﺘﻴﺎر ٍ(‪(SELECT‬‬


‫‪63‬‬ ‫أﻗﺴﺎم ﺟﻤﻠﺔ ‪ SELECT‬اﻟﺮﺋﻴﺴﻴﺔ‬
‫‪64‬‬ ‫ﻗﺴﻢ اﻻﺧﺘﻴﺎر)‪(Select clause‬‬ ‫‪.1‬‬
‫‪65‬‬ ‫ﻗﺴﻢ اﻟﺸﺮط)‪(Where clause‬‬ ‫‪.2‬‬
‫‪65‬‬ ‫ﻗﺴﻢ ﻣﺼﺪر اﻟﺒﻴﺎﻧﺎت)‪(from clause‬‬ ‫‪.3‬‬
‫‪67‬‬ ‫ﻣﻌﺎﻟﺠﺔ اﻟﺴﻼﺳﻞ اﻟﺮﻣﺰﻳﺔ )‪(String Operations‬‬
‫‪68‬‬ ‫ﺗﺮﺗﻴﺐ اﻟﻨﺘﺎﺋﺞ )‪(Ordering Results‬‬
‫‪68‬‬ ‫اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ )‪(Aggregate Functions‬‬

‫‪70‬‬ ‫ﺟﻤﻞ اﻟﺘﻐﻴﻴﺮ ﻋﻠﻰ اﻟﺒﻴﺎﻧﺎت )‪(Date changing‬‬


‫‪70‬‬ ‫إﺿﺎﻓﺔ ﺳﺠﻼت)‪(Insert Into‬‬
‫‪70‬‬ ‫ﺣﺬف ﺳﺠﻼت)‪(delete‬‬
‫‪71‬‬ ‫ﺗﻌﺪﻳﻞ اﻟﺴﺠﻼت)‪(Update‬‬

‫‪71‬‬ ‫ﺟﻤﻞ ﺗﻌﺮﻳﻒ اﻟﺒﻴﺎﻧﺎت )‪(DDL‬‬


‫‪71‬‬ ‫ﺟﻤﻠﺔ )‪(Create‬‬
‫‪72‬‬ ‫ﺟﻤﻠﺔ اﻧﺸﺄ اﻟﺠﺪاول )‪( Create Table‬‬
‫‪72‬‬ ‫ﺟﻤﻠﺔ ﺣﺬف اﻟﺠﺪاول )‪( Drop Table‬‬
‫‪73‬‬ ‫ﺟﻤﻠﺔ ﺗﻐﻴﻴﺮ اﻟﺘﺼﻤﻴﻢ ﻟﺠﺪاول )‪( Alter Table‬‬
‫‪73‬‬ ‫ﺟﻤﻠﺔ اﻧﺸﺄ ﻓﻬﺮس ﺑﻴﺎﻧﺎت )‪( Create Index‬‬
‫‪73‬‬ ‫ﺟﻤﻠﺔ اﻧﺸﺄ ﻣﻈﻬﺮ ﺑﻴﺎﻧﺎت )‪( Create View‬‬

‫‪74‬‬ ‫أﺳﺌﻠﺔ اﻟﻮﺣﺪة‪:‬‬

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

‫‪76‬‬ ‫ﻣﻠﺤﻖ‪ :‬ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ﻟﺸﺮآﺔ‬

‫‪6‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫اﻟﻮﺣﺪة اﻷوﻟﻰ‪ :‬أﺳﺎﺳﻴﺎت ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت وﺗﻄﻮرهﺎ ﺗﺎرﻳﺨﻴﺎ‬

‫اﻷهﺪاف اﻟﻌﺎﻣﺔ ﻟﻠﻮﺣﺪة‪:‬‬


‫أن ﻳﺘﻌﺮف اﻟﻄﺎﻟﺐ‪/‬ة ﻋﻠﻰ‪:‬‬
‫‪ .1‬اﻟﻄﺮق اﻟﺴﺎﺑﻘﺔ ﻓﻲ ﺗﻨﻈﻴﻢ اﻟﺒﻴﺎﻧﺎت‪.‬‬
‫‪ .2‬ﺗﻌﺮﻳﻒ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت و ﺑﻴﺌﺘﻬﺎ‪.‬‬
‫‪ .3‬أﻃﺮاف ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‪.‬‬
‫‪ .4‬أﻓﻀﻠﻴﺎت وﻓﻮاﺋﺪ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‪.‬‬
‫‪ .5‬أﻧﻮاع أل‪.DBMS‬‬
‫‪ .6‬ﻧﻤﺎذج أﻧﻈﻤﺔ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‪:‬‬
‫‪ .i‬ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻬﺮﻣﻴﺔ‪.‬‬
‫‪ .ii‬ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﺸﺒﻜﻴﺔ‪.‬‬
‫‪ .iii‬ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻌﻼﺋﻘﻴﺔ‪.‬‬
‫‪ .7‬ﻣﻘﺎرﻧﺔ ﺑﻴﻦ اﻟﻨﻤﺎذج اﻟﻤﺨﺘﻠﻔﺔ ﻷﻧﻈﻤﺔ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬
‫‪ .8‬هﻴﻜﻠﻴﺔ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻌﻼﺋﻘﻴﺔ‪.‬‬
‫‪ .9‬اﺳﺘﻘﻼﻟﻴﺔ اﻟﺒﻴﺎﻧﺎت‪.‬‬
‫‪ .10‬اﻟﻤﻨﺎﻇﺮ)‪.(Views‬‬

‫ﻣﺎ هﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ؟‬

‫اﻟﺘﻮﺟﻬﺎت اﻟﺴﺎﺑﻘﺔ )‪:(previous approaches‬‬

‫‪ .1‬ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻴﺪوﻳﺔ ) ‪ :(manual DB‬ﻣﺜﻞ ﺑﻄﺎﻗﺎت اﻟﻤﻜﺘﺒﺔ ﻟﺬﻟﻚ ﻳﻮﺟﺪ‬


‫ﻣﺸﺎآﻞ‪.‬‬

‫اﻟﻌﻨﻮان‬ ‫اﻟﻤﺆﻟﻒ‬ ‫اﻟﻤﻮﺿﻮع‬


‫………… ‪Data‬‬ ‫………… ‪Data‬‬ ‫………… ‪Data‬‬
‫‪………….‬‬ ‫‪………….‬‬ ‫‪………….‬‬

‫‪ .2‬أﻧﻈﻤﺔ اﻟﻤﻠﻔﺎت اﻟﻘﺪﻳﻤﺔ ) ‪.(traditional filling System‬‬

‫‪ .3‬ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻤﺤﻮﺳﺒﺔ )‪ ,(computerized DB‬وهﻲ اﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ اﻟﻮﻗﺖ‬


‫اﻟﺤﺎﺿﺮ‪.‬‬

‫ﻣﺎ هﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ؟‬

‫‪7‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت هﻲ ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت )اﻟﺒﻴﺎﻧ ﺎت( اﻟﻤﺘﺮاﺑﻄ ﺔ‪ ,‬واﻟﺘ ﻲ‬


‫ﺗ ﺴﺠﻞ وﻟﻬ ﺎ ﻣﻌﻨ ﻰ ﻣﻔﻬ ﻮم‪ .‬أﻧﻬ ﺎ ﺗ ﺼﻤﻢ وﺗﺒﻨ ﻰ وﺗﻌﺒ ﺄ ﺑﺎﻟﺒﻴﺎﻧ ﺎت ﻟﻬ ﺪف ﻣﻌ ﻴﻦ‪ ,‬وﻟﻬ ﺎ ﻣ ﺴﺘﺨﺪﻣﻮهﺎ‬
‫وﺑﺮاﻣﺠﻬﺎ اﻟﺘﻄﺒﻴﻘﻴﺔ‪.‬‬
‫ﺑﻴﺌﺔ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‪:‬‬

‫‪Users /programmers‬‬
‫‪Operating System‬‬

‫‪Application progs / Queries‬‬

‫‪DBMS‬‬
‫‪S/W‬‬ ‫‪To process Query/program‬‬

‫‪S/W‬‬ ‫‪To access stored data‬‬

‫‪System Cataloge( Mata Data) :‬‬


‫ﻳﺤﺘﻮي ﻋﻠﻰ هﻴﻜﻠﻴﺔ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ‪.‬‬
‫‪System‬‬ ‫‪DB‬‬
‫‪Catalogue‬‬

‫ﻣﺎ هﻲ أﻃﺮاف ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت؟‬

‫‪ .1‬اﻟﻤﺴﺘﺨﺪﻣﻮن ) ‪:(Users‬‬
‫أ‪ -‬اﻟﻤﺴﺘﺨﺪﻣﻮن اﻟﻄﺮﻓﻴﻮن ) ‪:(end users‬‬
‫أﺳﺘﻌﻼم وﺗﺤﺪﻳﺚ ) إدﺧﺎل‪ ,‬ﺣﺬف‪ ,‬ﺗﻐﻴﻴﺮ ( ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‪.‬‬
‫ب‪ -‬اﻟﻤﺒﺮﻣﺠﻮن ﻟﻠﺒﺮاﻣﺞ اﻟﺘﻄﺒﻴﻘﻴﺔ ) ‪:(application programs‬‬
‫واﺟﻬﺎت اﻟﺘﻄﺒﻴﻖ‪ ,‬اﻻﺳﺘﻌﻼﻣﺎت‪ ,‬واﻟﺒﺮﻣﺠﺔ‪.‬‬
‫ج‪ -‬ﻣﺼﻤﻢ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت) ‪:( DA or db designer‬‬
‫ﺗﺤﻠﻴﻞ اﻟﻨﻈﻢ و دراﺳﺘﻬﺎ‪.‬‬
‫د‪ -‬ﻣﺸﺮف ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ) ‪:(( DBA) Database Administrator‬‬
‫ﻳﻌﻄﻲ اﻹﻣﻜﺎﻧﻴﺎت اﻟﻤﺘﺎﺣﺔ ﻟﻜﻞ ﻣﺴﺘﺨﺪم وﺗﺸﻤﻞ اﻟﺤﻤﺎﻳﺔ‪ ,‬اﻟﺒﺮاﻣﺞ‬
‫)‪ ,(Software‬واﻟﻤﻌﺪات ) ‪.( hardware‬‬

‫‪ .2‬اﻟﺒﺮاﻣﺞ ) ‪:(Software S/W‬‬


‫‪ .1‬اﻟﺒﺮاﻣﺞ اﻟﺘﻄﺒﻴﻘﻴﺔ‪.‬‬

‫‪8‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪ .2‬ﺑﺮﻧﺎﻣﺞ إدارة ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ) ‪:((DBMS )Database Management System‬‬


‫وهﻮ ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺒﺮاﻣﺞ اﻟﺘﻲ ﺗﻤﻜﻦ اﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﻣﻦ أﻧﺸﺎء واﻟﻤﺤﺎﻓﻈﺔ ﻋﻠﻰ‬
‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‪-:‬‬
‫أ‪ -‬ﺗﻌﺮﻳﻒ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ) اﻟﺘﺮآﻴﺐ‪ ,‬أﻧﻮاع اﻟﺒﻴﺎﻧﺎت‪ ,‬واﻟﺸﺮح (‪.‬‬
‫ب‪ -‬ﺑﻨﺎء ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت )اﻟﺤﻔﺎظ ﻋﻠﻰ اﻟﺘﻌﺮﻳﻒ اﻟﺜﺎﻧﻮي (‪.‬‬
‫ج‪ -‬اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت)اﻹﺳﺘﻌﻼﻣﺎت‪ ,‬اﻟﺘﻘﺎرﻳﺮ(‪.‬‬

‫‪ .3‬اﻟﺒﻴﺎﻧﺎت)‪:(Data‬‬
‫ﻣﺠﻤﻮﻋﻪ ﻣﻦ اﻟﺤﻘﺎﺋﻖ اﻟﻤﺮﺗﺒﻄﺔ ﻣﻊ ﺑﻌﻀﻬﺎ اﻟﺒﻌﺾ ﺑﻄﺮﻳﻘﻪ ﻣﺮﺗﺒﺔ‪ ,‬وﺗﻜﻮن إﻣﺎ ﺧﺎﺻﺔ أو‬
‫ﻋﺎﻣﻪ )أآﺜﺮ ﻣﻦ ﻣﺴﺘﺨﺪم(‪.‬‬

‫‪ .4‬اﻟﻤﻌﺪات )‪(Hardware‬‬
‫أ‪.‬اﻟﺘﺨﺰﻳﻦ اﻟﺜﺎﻧﻮي‬
‫ب‪.‬اﻟﺘﻌﺒﻴﺮ اﻟﻔﻴﺰﻳﺎﺋﻲ ﻋﻦ اﻟﻤﻌﻠﻮﻣﺎت‬
‫‪DBM: database machine‬‬

‫ﺧﻄﻮات ﺗﺼﻤﻴﻢ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت )‪(Design process‬‬


‫‪ .1‬ﻣﺼﻤﻢ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ]‪[Data administrator not DBA‬‬
‫ﻳﻘﻮم ﺑﺠﻤﻊ اﻟﺤﻘﺎﺋﻖ ﺣﻮل اﻟﻤﺸﻜﻠﺔ‪.‬‬

‫‪ .2‬ﺗﻌﺮﻳﻒ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‪:‬‬


‫أ‪ .‬ﺗﻌﺮﻳﻒ اﻟﺠﺪاول‪.‬‬
‫ب‪ .‬ﺗﻌﺮﻳﻒ اﻟﺤﻘﻮل ﻟﻜﻞ ﺟﺪول‪.‬‬
‫ت‪ .‬ﺗﻌﺮﻳﻒ أﻧﻮاع اﻟﺒﻴﺎﻧﺎت )‪ (Data types‬ﻟﻜﻞ ﺣﻘﻞ‪.‬‬
‫ث‪ .‬اﻟﻀﻮاﺑﻂ ﻋﻠﻰ اﻟﺤﻘﻮل )‪.(Field constraints‬‬
‫ج‪ .‬اﻟﻀﻮاﺑﻂ ﻋﻠﻰ اﻟﻌﻼﻗﺎت)‪ (relation constraints‬ﻟﻠﻤﺤﺎﻓﻈﺔ ﻋﻠﻰ ﺻﺤﺔ‬
‫اﻟﻤﻌﻠﻮﻣﺎت )‪.(Data Integrity‬‬

‫‪ .3‬ﺑﻨﺎء ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪:‬‬


‫إدﺧﺎل اﻟﻤﻌﻠﻮﻣﺎت‪.‬‬

‫‪ .4‬اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت)‪(Manipulation‬‬


‫اﺳﺘﻌﻼﻣﺎت و ﺗﺤﺪﻳﺚ)‪.(update‬‬

‫أﻓﻀﻠﻴﺔ)‪ (Advantages‬ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ﻋﻠﻰ ﻧﻈﺎم اﻟﻤﻠﻔﺎت اﻟﻘﺪﻳﻢ‬

‫‪ .1‬ﻃﺒﻴﻌﺔ اﻟﻮﺻﻒ اﻟﺬاﺗﻲ ﻟﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت) ‪.(system catalogue‬‬

‫‪9‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪ .2‬اﺳﺘﻘﻼﻟﻴﺔ اﻟﺒﻴﺎﻧﺎت )‪:(Data Independence‬‬


‫‪ .1‬ﻓﻴﺰﻳﺎﺋﻴﺎ)‪:(Physically‬‬
‫اﻟﺒﺮاﻣﺞ اﻟﺘﻄﺒﻴﻘﻴﺔ ﻻ ﺗﻌﺘﻤﺪ ﻋﻠﻰ اﻟﺘﻌﺮﻳﻒ اﻟﻔﻴﺰﻳﺎﺋﻲ ﻟﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‪.‬‬
‫‪ .2‬ﻣﻨﻄﻘﻴﺎ )‪: (Logically‬‬
‫ﺗ ﺼﻤﻴﻢ ﻗﺎﻋ ﺪة اﻟﺒﻴﺎﻧ ﺎت )‪ (DB‬ﻣ ﺴﺘﻘﻞ ﻋ ﻦ ﻧ ﻮع ﻧﻈ ﺎم إدارة ﻗﻮاﻋ ﺪ اﻟﺒﻴﺎﻧ ﺎت‬
‫)‪(DBMS‬اﻟﻤ ﺴﺘﺨﺪم‪ .‬وﻟﻜ ﻦ ﻓ ﻲ ﻧﻈ ﺎم اﻟﻤﻠﻔ ﺎت اﻟﻘ ﺪﻳﻢ ﻳﺠ ﺐ أن ﻳﻌ ﺮف آ ﻞ ﻧ ﻮع ﺑﻴﺎﻧ ﺎت‬
‫ﻣﺴﺘﺨﺪم وﻧﻘﻄﺔ اﻟﺒﺪاﻳﺔ واﻟﻨﻬﺎﻳﺔ ﻟﻪ‪.‬‬
‫‪ .3‬ﺗﺪﻋﻢ ﻋﺪة ﻣﻨﺎﻇﺮ ﻟﻠﺒﻴﺎﻧﺎت ) ‪.(Multiple views‬‬
‫‪ .4‬ﺗﺪﻋﻢ اﻷﻧﻈﻤﺔ ﻣﺘﻌﺪدة اﻟﻤﺴﺘﺨﺪﻣﻴﻦ‪.‬‬

‫ﻓﻮاﺋﺪ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت) ‪(Benefits‬‬


‫‪ .1‬اﻟﺴﺮﻋﺔ‪ ,‬اﻟﺪﻗﺔ‪ ,‬ﺣﻔﻆ اﻟﻤﺴﺎﺣﺔ )‪.(save coding‬‬
‫‪ .2‬اﻟﺘﺤﻜﻢ ﺑﻤﻘﺪار اﻟﻤﻌﻠﻮﻣﺎت اﻟﺘﻲ ﻻ ﺣﺎﺟﻪ ﻟﻬﺎ‪:‬‬
‫‪by DBMS(Controlling Redundancy ).‬‬
‫‪ .3‬اﻟﺘﺨﻠﺺ ﻣﻦ ﻋﺪم اﻟﺘﻮاﻓﻖ ) ‪(Inconsistency‬ﺑﺎﺳﺘﺨﺪام ﺗﻌﻤﻴﻢ اﻟﺘﻐﻴﻴﺮات ﻋﻠﻰ آﻞ‬
‫اﻟﻌﻼﻗﺎت‪.‬‬
‫‪ .4‬ﻓﺮض ﺿﻮاﺑﻂ ﺻﺤﺔ) ﺗﻜﺎﻣﻞ ( اﻟﻤﻌﻠﻮﻣﺎت)‪(Enforcing Integrity Constraints‬‬
‫وﺗﺸﻤﻞ هﺬﻩ اﻟﻀﻮاﺑﻂ‪:‬‬
‫أ‪ .‬اﻟﻀﻮاﺑﻂ ﻋﻠﻰ اﻟﺒﻴﺎﻧﺎت‪.‬‬
‫ب‪ .‬اﻟﺘﻜﺎﻣﻞ اﻟﻀﺒﻄﻲ )‪: (referential integrity‬‬
‫ﺑﺎﺳﺘﺨﺪام اﻟﻤﻔﺎﺗﻴﺢ ) ‪ : ( PK,FK‬ﺣﻴﺚ‬
‫‪).‬اﻟﻤﻔﺘﺎح اﻟﺮﺋﻴﺴﻲ( ‪PK: Primary Key‬‬
‫‪).‬اﻟﻤﻔﺘﺎح اﻟﻐﺮﻳﺐ( ‪FK: Foreign Key‬‬
‫ج‪ .‬اﻟﺘﻔﺮد ﻓﻲ اﻟﻘﻴﻤﺔ )‪ : (uniqueness‬ﻣﺜﻞ اﻟﻤﻔﺘﺎح اﻟﺮﺋﻴﺴﻲ‪ ,‬رﻗﻢ اﻟﻄﺎﻟﺐ وﺣﻴﺪ‬
‫ﻟﻜﻞ ﻃﺎﻟﺐ‪.‬‬

‫‪ .5‬ﻓﺮض اﻟﻤﻮاﺻﻔﺎت و اﻟﻤﻘﺎﻳﻴﺲ اﻟﻌﻠﻤﻴﺔ ) ‪ :(standards‬ﻣﺜﻞ إﻧﺸﺎء اﻟﺘﻘﺎرﻳﺮ ﻋﻦ اﻟﺒﻴﺎﻧﺎت‬


‫ﺑﺸﻜﻞ ﻗﻴﺎﺳﻲ‪.‬‬
‫‪ .6‬اﻟﺤﻔﻆ ﻟﻠﻨﺴﺨﺔ اﻹﺿﺎﻓﻴﺔ و اﻻﺳﺘﻌﺎدة ﻓﻲ ﺣﺎل ﺣﺪوث ﻣﺸﺎآﻞ ) ‪backup and recovery‬‬
‫(‪.‬‬
‫‪ .7‬اﻟﺤﻤﺎﻳﺔ و ﺗﺤﺪﻳﺪ اﻹﻣﻜﺎﻧﻴﺎت ﻟﻜﻞ ﻣﺴﺘﺨﺪم‪ ,‬ﻋﻦ ﻃﺮﻳﻖ اﺳﻢ اﻟﻤﺴﺘﺨﺪم وآﻠﻤﺔ اﻟﺴﺮ‪.‬‬

‫ﻣﺴﺎوئ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﻣﻊ أن ﻓﻮاﺋﺪ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ﺟﻤﺔ‪ ,‬إﻻ أن ﻟﻬﺎ ﺑﻌﺾ اﻟﻤﺴﺎوئ اﻟﺠﺎﻧﺒﻴﺔ‪:‬‬
‫‪ .1‬اﻟﺘﻜﺎﻟﻴﻒ اﻟﻜﺒﻴﺮة ﻋﻠﻰ اﻟﻤﻌﺪات و اﻟﺒﺮاﻣﺞ و اﻟﺒﺸﺮ‪.‬‬
‫‪ .2‬ﺗﺤﺘﺎج إﻟﻰ ﻣﻌﺪات ﻗﻮﻳﺔ‪.‬‬

‫‪10‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫أﻧﻮاع أﻧﻈﻤﺔ إدارة ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت)‪(DBMS‬‬

‫ﻣﻦ ﻧﺎﺣﻴﺔ اﻟﻤﺴﺘﺨﺪﻣﻴﻦ‪:‬‬

‫أ‪ .‬ﻣﺴﺘﺨﺪم واﺣﺪ)‪.(Single User‬‬


‫ب‪ .‬ﻣﺘﻌﺪد اﻟﻤﺴﺘﺨﺪﻣﻴﻦ )‪.(Multi-User‬‬

‫ﻣﻦ ﻧﺎﺣﻴﺔ اﻟﺘﻮزﻳﻊ اﻟﺠﻐﺮاﻓﻲ‪:‬‬

‫أ‪ .‬أﻧﻈﻤﺔ إدارة ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻤﺮآﺰﻳﺔ )‪.(Centralized DBMS‬‬


‫ب‪ .‬أﻧﻈﻤﺔ إدارة ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻤﻮزﻋﺔ )‪.(Distributed DBMS‬‬

‫ﻣﻦ ﻧﺎﺣﻴﺔ ﺧﻄﺔ اﻟﺒﻴﺎﻧﺎت)‪(Data Models‬‬


‫ﺗﻌ ﺮف ﺧﻄ ﺔ اﻟﺒﻴﺎﻧ ﺎت)‪ (Data Model or schema‬ﺑﺄﻧﻬ ﺎ ﻣﺠﻤﻮﻋ ﺔ ﻣ ﻦ اﻟﻤﻔ ﺎهﻴﻢ اﻟﺘ ﻲ‬
‫ﺗﺴﺘﺨﺪم ﻓﻲ وﺻﻒ ﺗﺮآﻴﺐ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‪.‬‬
‫وهﻲ أﻳﻀﺎ ﻋﺒﺎرة ﻋﻦ ﺗﻌﺮﻳﻒ ﻟﻌﻤﻠﻴﺎت اﻟﻤﺴﺘﺨﺪم اﻟﻤﻤﻜﻨﺔ ﻋﻠﻰ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‪.‬‬

‫ﻓﻤﻦ ﻧﺎﺣﻴﺔ ﺧﻄﺔ اﻟﺒﻴﺎﻧﺎت ﻳﻮﺟﺪ هﻨﺎﻟﻚ ﺛﻼﺛﺔ أﻧﻮاع ﻣﻦ أﻧﻈﻤﺔ إدارة ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‪:‬‬
‫‪ .1‬أﻧﻈﻤﺔ إدارة ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻬﺮﻣﻴﺔ )‪.(Hierarchical DBMS‬‬
‫‪ .2‬أﻧﻈﻤﺔ إدارة ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﺸﺒﻜﻴﺔ )‪.(Network DBMS‬‬
‫‪ .3‬أﻧﻈﻤﺔ إدارة ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻌﻼﺋﻘﻴﺔ )‪.(Relational DBMS‬‬

‫‪11‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪ .1‬ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻬﺮﻣﻴﺔ )‪(Hierarchical Model‬‬

‫أﻗﺪم أﻧﻮاع أﻧﻈﻤﺔ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‪،‬وﻓﻲ هﺬﻩ اﻟﺨﻄﺔ ﺗﺮﺗﺒﻂ اﻟﺒﻴﺎﻧﺎت ﻣﺜﻞ اﻟﻔﺮوع ﻟﻠﺸﺠﺮة ﻣﻊ‬
‫اﻟﺸﺠﺮة ﻧﻔﺴﻬﺎ ‪،‬ﺑﺤﻴﺚ أن اﻟﺴﺠﻼت ﺗﺮﺗﺒﻂ ﺑﻄﺮﻳﻘﺔ ﻋﻼﻗﺔ اﻟﻮاﻟﺪ ﻟﻠﻮﻟﺪ‪.‬‬

‫)‪Parent and child relationships (1ÆN‬‬


‫ﻣﺜﺎل‪ :‬اﻷب ﻟﻪ ﻋﺪة أوﻻد‬
‫ﻣﺜﺎل ﻋﻠﻰ ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت هﺮﻣﻴﺔ‪:‬‬
‫اﻟﺪاﺋﺮة‬

‫‪---‬‬ ‫‪----‬‬ ‫‪Parent‬‬


‫‪---‬‬ ‫رﻗﻢ‬ ‫اﻟﺒﻨﺎﻳﺔ اﺳﻢ‬ ‫‪----‬‬

‫‪1‬‬

‫‪N‬‬ ‫‪Childs‬‬ ‫‪N‬‬

‫اﻟﻤﺴﺎﻗﺎت‬ ‫اﻟﻄﻼب‬

‫رﻗﻢ‬ ‫اﻟﻤﺴﺘﻮى اﺳﻢ‬ ‫ﻋﺪد‬ ‫رﻗﻢ‬ ‫اﺳﻢ‬ ‫ﻋﻤﺮ‬ ‫‪----‬‬


‫اﻟﺴﺎﻋﺎت‬

‫ﻣﻦ أهﻢ اﻟﺸﺮآﺎت اﻟﺘﻲ ﻋﻤﻠﺖ ﻋﻠﻰ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻬﺮﻣﻴ ﺔ‪ ،‬ه ﻲ ﺷ ﺮآﺔ ‪ IBM‬وآ ﺎن اﺳ ﻢ‬
‫اﻟﻤﻨ ﺘﺞ ‪ IMS‬ﻓ ﻲ ﻋ ﺎم ‪ 1960‬وآﺎﻧ ﺖ ﺗ ﺴﺘﺨﺪم ﻟﻐ ﺔ ‪ COBOL‬ﻓ ﻲ ﻋﻤﻠﻴ ﺎت اﻻﺳ ﺘﻌﻼم‬
‫واﻟﺘﺠﺪﻳﺪ‪.‬‬

‫‪ .2‬ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﺸﺒﻜﻴﺔ )‪(Network Model‬‬

‫ﻃﻮرت ﻋﻠﻰ أﺳﺎس ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻬﺮﻣﻴﺔ‪ ،‬ﻟﺘﻤﺜﻴ ﻞ اﻟﻤﻌﻠﻮﻣ ﺎت اﻟﺘ ﻲ ﻟ ﻪ ﺧﺎﺻ ﻴﺔ ﻻ ﺗ ﺴﻤﺢ‬
‫ﺑﺘﻤﺜﻴﻠﻬﺎ ﺑﻌﻼﻗﺔ اﻷب واﻻﺑﻦ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻬﺮﻣﻴﺔ‪.‬‬
‫ﺗﻤﺜﻞ اﻟﺴﺠﻼت ﺑﺸﻜﻞ ﻧﻮﻋﻴﺔ ﺳﺠﻼت واﻟﻌﻼﻗﺎت ﺑﺸﻜﻞ ﻣﺠﻤﻮﻋﺔ‪.‬‬
‫أﻧﻮاع اﻟﻌﻼﻗﺎت اﻟﻤﺴﻤﻮح ﺑﻬﺎ‪:‬‬
‫‪1Æ1, 1ÆN, MÆN‬‬
‫ﻃﻮرت ﺑﻮاﺳﻄﺔ ﻣﺆﺗﻤﺮ‪:‬‬
‫)‪CODASYL (Common Data System Language‬‬
‫ﻣﺜﺎل ﻋﻠﻰ ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ﺷﺒﻜﻴﺔ‪:‬‬

‫‪12‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪Student‬‬
‫‪Course‬‬

‫‪Course‬‬
‫‪Set-type‬‬ ‫‪offering‬‬

‫‪Section‬‬

‫‪Grade-report‬‬

‫‪Student grade‬‬

‫ﻣﻦ أهﻢ اﻟﺸﺮآﺎت و ﻣﻨﺘﺠﺎﺗﻬﺎ‪IBM (IDMS/R), DEC ( DBMS) :‬‬

‫وﻟﻜﻦ هﺬان اﻟﻨﻮﻋﺎن ﻣﻦ أﻧﻈﻤﺔ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ﻻ ﺗﺴﺘﺨﺪم ﻓﻲ هﺬﻩ اﻷﻳﺎم وإﻧﻤﺎ اﻟﻤﺴﻴﻄﺮ‬
‫ﻋﻠﻰ ﺳﻮق ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت هﻮ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻌﻼﺋﻘﻴﺔ‪.‬‬

‫‪ .3‬ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻌﻼﺋﻘﻴﺔ )‪:(Relational DB Model‬‬

‫أﺧﺘﺮﻋﻬﺎ ‪ Codd‬ﻋﺎم ‪.1971‬‬


‫ﻟﻐﺔ ‪ SQL, PL-SQL‬هﻲ ﻟﻐﺔ اﻻﺳﺘﻌﻼم ﻓﻲ هﺬﻩ اﻟﺨﻄﺔ ﻟﻠﺒﻴﺎﻧﺎت‪.‬‬
‫‪Relation‬‬
‫‪Student‬‬ ‫‪Course‬‬
‫‪Takes course‬‬
‫‪Name No. Age‬‬ ‫‪--------‬‬ ‫‪No.‬‬ ‫‪Name Hours ----------‬‬

‫‪Relationship‬‬ ‫‪Attribute‬‬

‫هﻲ اﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ اﻷﺳﻮاق ﺣﺎﻟﻴﺎ وﻣﻦ اﻷﻣﺜﻠﺔ ﻋﻠﻴﻬﺎ‪:‬‬


‫‪Access, Oracle, FoxPro, SQL SERVER‬‬

‫‪13‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫هﻴﻜﻠﻴﺔ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت )‪(Architecture of a DB system‬‬

‫‪..........‬‬

‫)‪ (1‬اﻟﻤﺴﺘﻮى اﻟﺨﺎرﺟﻲ‬


‫ﻣﻨﻈﺮ) ن(‬ ‫ﻣﻨﻈﺮ)‪(1‬‬
‫‪DBMS‬‬
‫‪..........‬‬ ‫)اﻟﻤﺴﺘﺨﺪﻣﻮن(‬

‫اﻟﺘﻮﻓﻴﻖ ﻣﺎ ﺑﻴﻦ اﻟﻤﺴﺘﻮى اﻟﻤﻨﻄﻘﻲ و اﻟﺨﺎرﺟﻲ‬

‫)‪Conceptual Schema(model‬‬ ‫)‪ (2‬اﻟﻤﺴﺘﻮى اﻟﻤﻨﻄﻘﻲ‬


‫اﻟﻤﺴﺘﻮى اﻟﻤﻨﻄﻘﻲ‬ ‫)ﻣﺴﺘﺨﺪﻣﻲ اﻟﻤﺠﺘﻤﻊ(‬
‫)اﻟﻤﺒﺮﻣﺠﻴﻦ و اﻟﻤﺼﻤﻤﻴﻦ(‬
‫اﻟﺘﻮﻓﻴﻖ ﻣﺎ ﺑﻴﻦ اﻟﻤﺴﺘﻮى اﻟﻤﻨﻄﻘﻲ و اﻟﺪاﺧﻠﻲ‬

‫‪Internal Schema‬‬
‫اﻟﻤﺴﺘﻮى اﻟﺪاﺧﻠﻲ‬
‫)‪ (3‬اﻟﻤﺴﺘﻮى اﻟﺪاﺧﻠﻲ‬
‫)ﻣﻨﻈﺮ اﻟﺘﺨﺰﻳﻦ(‬

‫‪System‬‬
‫‪Catalog‬‬ ‫‪DB‬‬

‫اﻟﻠﻐﻪ اﻟﻤﺴﺘﺨﺪﻣﻪ آﻤﺎ ﻗﻠﻨﺎ هﻲ ‪(Structured Query Language ) SQL‬‬


‫وﺗﻘﺴﻢ إﻟﻰ ﻧﻮﻋﻴﻦ ‪-:‬‬
‫‪ : (Data Definition Language ) DDL .1‬ﻟﻐﺔ ﺗﻌﺮﻳﻒ اﻟﺒﻴﺎﻧﺎت‪.‬‬
‫‪ : (Data manipulation Language) DML .2‬ﻟﻐﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺒﻴﺎﻧﺎت‪.‬‬

‫اﻣﺜﻠﺔ ﻋﻠﻰ اﻟﻤﺴﺘﻮﻳﺎت اﻟﺜﻼث‬


‫‪ .1‬اﻟﻤﺴﺘﻮى اﻟﺨﺎرﺟﻲ‪:‬‬
‫ﺑﺈﺳﺘﺨﺪام ‪:(DML)SQL‬‬
‫‪Create view saddress‬‬
‫‪As‬‬
‫‪Select SNo ,address‬‬
‫‪From student‬‬

‫‪14‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪ .2‬اﻟﻤﺴﺘﻮى اﻟﻤﻨﻄﻘﻲ‬
‫ﺑﺎﺳﺘﺨﺪام ‪:(DDL) SQL‬‬
‫‪Create table student‬‬
‫‪SNo char(8),‬‬
‫‪Sname char(20),‬‬
‫‪Dept#,‬‬
‫‪Primary key SNo,‬‬
‫;‪Foreign key Dept# refers dept table‬‬

‫‪ .3‬اﻟﻤﺴﺘﻮى اﻟﺪاﺧﻠﻲ‬
‫اﻟﺘﺨﺰﻳﻦ اﻟﺪاﺧﻠﻲ‬
‫‪Stored student rec 40 Byte‬‬
‫;)‪SNo Type = Byte (8), offset (6‬‬
‫‪...‬‬
‫…‬

‫اﺳﺘﻘﻼﻟﻴﺔ اﻟﺒﻴﺎﻧﺎت )‪(DI: Data Independance‬‬

‫‪DI‬‬

‫ﻓﻴﺰﻳﺎﺋﻴﺎ‬ ‫ﻣﻨﻄﻘﻴﺎ‬

‫اﻟﺘﻌﺮﻳﻔﺎت‬
‫اﺳﺘﻘﻼﻟﻴﺔ اﻟﺒﻴﺎﻧﺎت‪:‬‬
‫اﻟﻘﺪرة ﻋﻠﻰ اﻟﺘﻐﻴﺮ ﻓﻲ ﺧﻄﺔ اﺣﺪ اﻟﻤﺴﺘﻮﻳﺎت ﺑﺪون اﻟﺘﺄﺛﻴﺮ ﻋﻠﻰ اﻟﻤﺴﺘﻮﻳﺎت اﻟﺘﻲ أﻋﻠﻰ ﻣﻨﻬﺎ‪.‬‬

‫اﺳﺘﻘﻼﻟﻴﺔ اﻟﺒﻴﺎﻧﺎت ﻣﻨﻄﻘﻴ ًﺎ)‪(Logical DI‬‬


‫اﻟﻘﺪرة ﻋﻠﻰ اﻟﺘﻐﻴﺮ ﻓﻲ اﻟﺨﻄﺔ اﻟﻤ ﺴﺘﻮى اﻟﻤﻨﻄﻘ ﻲ ﺑ ﺪون اﻟﺤﺎﺟ ﺔ ﻟﻠﻘﻴ ﺎم ﺑﺄﻳ ﺔ ﺗﻐﻴ ﺮات أﺧ ﺮى‬
‫ﻟﻠﻤﺴﺘﻮى اﻟﺨﺎرﺟﻲ‬

‫اﺳﺘﻘﻼﻟﻴﺔ اﻟﺒﻴﺎﻧﺎت ﻓﻴﺰﻳﺎﺋﻴ ًﺎ )‪(physical DI‬‬


‫اﻟﻘ ﺪرة ﻋﻠ ﻰ اﻟﺘﻐﻴ ﺮ ﻓ ﻲ ﺧﻄ ﺔ اﻟﻤ ﺴﺘﻮى اﻟ ﺪاﺧﻠﻲ ﺑ ﺪون اﻟﺤﺎﺟ ﺔ ﻟﻠﻘﻴ ﺎم ﺑﺄﻳ ﺔ ﺗﻐﻴ ﺮات أﺧ ﺮى‬
‫ﻋﻠﻰ ﻟﻤﺴﺘﻮى اﻟﻤﻨﻄﻘﻲ أو اﻟﺨﺎرﺟﻲ‪.‬‬

‫‪15‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫أﺳﺌﻠﺔ اﻟﻮﺣﺪة‪:‬‬

‫س‪ ((1‬ﺑﻴﻦ ﻣﺎ هﻮ اﻟﺘﻌﺮﻳﻒ ﻟﻜﻞ ﻣﻦ اﻟﻤﻔﺎهﻴﻢ اﻟﺘﺎﻟﻴﺔ ‪:‬‬


‫‪ (1‬ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‪.‬‬
‫‪ (2‬ﻣﺸﺮف ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‪.‬‬
‫‪ (3‬اﺳﺘﻘﻼﻟﻴﺔ اﻟﺒﻴﺎﻧﺎت اﻟﻤﻨﻄﻘﻴﺔ‪.‬‬

‫س‪ ((2‬ﺑ ﻴﻦ ﻣ ﺎ اﻟﻤﻘ ﺼﻮد ﺑﺨﻄ ﺔ اﻟﺒﻴﺎﻧ ﺎت)‪ (Data Model‬و اﺷ ﺮﺣﻲ أﻧ ﻮاع أﻧﻈﻤ ﺔ إدارة ﻗﻮاﻋ ﺪ‬
‫اﻟﺒﻴﺎﻧﺎت ﻣﻦ ﻧﺎﺣﻴﺔ ﺧﻄﺔ اﻟﺒﻴﺎﻧﺎت ﻣﻊ ذآﺮ ﻣﻴﺰات و ﺳﻴﺌﺎت آﻞ ﻧﻈﺎم؟‬

‫س‪((3‬ادرس اﺣﺪ اﻟ ﺸﺮآﺎت اﻟﺘ ﻲ ﺗﺤﺘ ﻮي آ ﻞ اﻟ ﺪواﺋﺮ و اﻟﻤ ﻮﻇﻔﻴﻦ وﻣ ﺸﺎرﻳﻊ وﺑ ﻴﻦ ﻓﻴ ﻪ اﻟﻤ ﺴﺘﻮﻳﺎت‬
‫ﻟﺘﻤﺜﻴﻞ اﻟﺒﻴﺎﻧﺎت اﻟﺜﻼث ) اﻟﺨﺎرﺟﻴﺔ واﻟﻤﻨﻄﻘﻴﺔ واﻟﺪاﺧﻠﻴﺔ(‪.‬‬

‫‪16‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫اﻟﻮﺣﺪة اﻟﺜﺎﻧﻴﺔ‪ :‬اﻟﺘﺨﺰﻳﻦ اﻟﻔﻴﺰﻳﺎﺋﻲ ﻟﻘﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت) ‪DB‬‬


‫‪(Storage‬‬
‫اﻷهﺪاف اﻟﻌﺎﻣﺔ ﻟﻠﻮﺣﺪة‪:‬‬
‫أن ﻳﺘﻌﺮف اﻟﻄﺎﻟﺐ‪/‬ة ﻋﻠﻰ‪:‬‬
‫‪ .1‬واﺳﻄﺎت اﻟﺘﺨﺰﻳﻦ )‪ (Storage Devices‬و ﻋﻤﻠﻴﺔ اﻟﺤﺼﻮل ﻋﻠﻰ ﺳﺠﻞ ﻣﻌﻴﻦ ﻣﻨﻬﺎ‪.‬‬
‫‪ .2‬ﺗﻨﻈﻴﻢ اﻟﻤﻠﻔﺎت) ‪ (File organization‬وأﻧﻮاع اﻟﺴﺠﻼت‪ :‬ﻣﻦ ﻧﺎﺣﻴﺔ اﻟﻄﻮل واﻟﺘﻮزﻳﻊ‪.‬‬
‫‪ .3‬ﻃﺮق ﺗﻨﻈﻴﻢ اﻟﻤﻠﻔﺎت‪ :‬ﻏﻴﺮ اﻟﻤﺮﺗﺒﺔ و اﻟﻤﺮﺗﺒﺔ و ﺑﺎﺳﺘﺨﺪام ﻃﺮﻳﻘﺔ اﻟﻤﺰج‪.‬‬
‫‪ .4‬اﻟﻔﻬﺎرس وﺗﺮاآﻴﺐ اﻟﻮﺻﻮل وأﻧﻮاﻋﻬﺎ‪.‬‬
‫‪ .5‬اﻷﻓﻀﻠﻴﺎت و اﻟﺴﻴﺌﺎت ﻟﻠﻔﻬﺮس‪.‬‬

‫واﺳﻄﺎت اﻟﺘﺨﺰﻳﻦ )‪(Storage Devices‬‬

‫ﻳﻮﺟﺪ ﻧﻮﻋﻴﻦ ﻣﻦ اﻟﺘﺨﺰﻳﻦ‪:‬‬

‫أ‪ .‬اﻟﺘﺨﺰﻳﻦ اﻟﺮﺋﻴﺴﻲ)‪(primary storage‬‬


‫ﻳﻤﺘﺎز ﺑﺄﻧﻪ ﻣﺆﻗﺖ)‪ ،(volatile‬ﻳﻌﻨﻲ ﻋﻨﺪ اﻧﻄﻔﺎء اﻟﺠﻬﺎز ﺗﻀﻴﻊ اﻟﺒﻴﺎﻧﺎت‬
‫ب‪ .‬اﻟﺘﺨﺰﻳﻦ اﻟﺜﺎﻧﻮي)‪(Secondary Storage‬‬

‫)اﻷﻗﺮاص( ‪1. Disks‬‬ ‫‪ (Direct access).‬وﺻﻮل ﻣﺒﺎﺷﺮ ‪Æ‬‬


‫)اﻷﺷﺮﻃﺔ( ‪2. Tapes‬‬ ‫‪ (Sequential access).‬وﺻﻮل ﺗﺘﺎﺑﻌﻲ ‪Æ‬‬

‫اﻟﺸﻜﻞ اﻟﻤﺮﺳﻮم ﻳﻤﺜﻞ ﺷﻜﻞ اﻟﻘﺮص اﻟﺼﻠﺐ وآﻴﻔﻴﺔ ﻋﻤﻠﻪ‪:‬‬

‫‪Actuator‬‬
‫)ﻣﺤﺚ(‬

‫‪Motor‬‬
‫‪17‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫وﻟﻜﻦ ﺳﺮﻋﺔ اﻟﻮﺻﻮل ﻋﻠﻰ اﻷﻗﺮاص ﻟﻴﺴﺖ وﺻﻮﻻ ﻋﺸﻮاﺋﻴﺎ ﻓﻌﻠﻴﺎ ﺑﺴﺒﺐ وﺟﻮد ﺑﻌﺾ‬
‫أوﻗﺎت اﻟﺘﺄﺧﻴﺮ اﻟﺘﺎﻟﻴﺔ‪:‬‬
‫أ‪ .‬وﻗﺖ اﻟﺒﺤﺚ )‪ :(seek time‬وهﻮ اﻟﻮﻗﺖ اﻟﺬي ﻳﺤﺘﺎﺟﻪ اﻟﻤﺤﺚ)‪ (Actuator‬ﻟﻠﻮﺻﻮل‬
‫إﻟﻰ اﻷﺳﻄﻮاﻧﺔ)‪ (Cylinder‬اﻟﻤﻄﻠﻮﺑﺔ‪.‬‬
‫ب‪ .‬وﻗﺖ اﻟﺪوران)‪ :(Rotation Time‬وهﻮ اﻟﻮﻗﺖ اﻟﺬي ﻳﺤﺘﺎﺟﻪ اﻟﻘﺮص ﺣﺘﻰ ﻳﻠﻒ إﻟﻰ‬
‫اﻟﻘﻄﺎع اﻟﻤﻄﻠﻮب‪.‬‬
‫ج‪ .‬وﻗﺖ اﻟﻨﻘﻞ)‪ :(Transfer Time‬وﻗﺖ اﻟﻨﻘﻞ ﻟﻠﺒﻴﺎﻧﺎت إﻟﻰ اﻟﺬاآﺮة اﻟﺮﺋﻴﺴﻴﺔ‪.‬‬

‫ﻣﺠﻤﻮع هﺬﻩ اﻷوﻗﺎت ﻳﺴﻤﻰ وﻗﺖ اﻟﻮﺻﻮل)‪.(Access Time‬‬

‫ﻻ ﻣﺒﺎﺷﺮًا)‪ ،(Direct Access‬وﻟﻴﺲ و‬


‫وﻟﺬﻟﻚ ﻳﺴﻤﻰ اﻟﻮﺻﻮل إﻟﻰ اﻟﻘﺮص اﻟﺼﻠﺐ وﺻﻮ ً‬
‫ﻻ ﻋﺸﻮاﺋﻴًﺎ آﻤﺎ هﻮ ﻓﻲ اﻟﺬاآﺮة اﻟﺮﺋﻴﺴﻴﺔ ﻟﻠﺤﺎﺳﻮب‪.‬‬
‫ﺻﻮ ً‬

‫ﻣﻼﺣﻈﺔ‪:‬‬

‫ﻳﺴﺘﻄﻴﻊ رأس اﻟﻘﺮاءة وﻓﻲ اﻟﻤﺮة اﻟﻮاﺣﺪة ﻗﺮاءة آﺘﻠﺔ ﺑﻴﺎﻧﺎت آﺎﻣﻠ ﺔ )‪،(Block or sector‬‬
‫وﻳﻀﻌﻬﺎ ﻓﻲ ﻣﻜﺎن ﻓ ﻲ اﻟ ﺬاآﺮة اﻟﺮﺋﻴ ﺴﻴﺔ ﻳ ﺴﻤﻰ ‪ ،Buffer‬ﺣﻴ ﺚ أن آ ﻞ و ﺣ ﺪة ﺳ ﻌﺔ داﺧ ﻞ أل‬
‫‪ Buffer‬ﺗﺘﺴﻊ ﻟﻜﺘﻠﺔ واﺣﺪة آﻤﺎ هﻮ ﻣﺒﻴﻦ ﻓﻲ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‪:‬‬

‫ﻳﻘﺮأ آﺘﻠﺔ آﺎﻣﻠﺔ‬

‫‪Buffer‬‬
‫اﻟﻘﺮص‬
‫|‬
‫|‬
‫|‬

‫آﻞ ﻣﻜﺎن ﻳﺘﺴﻊ ﻟﻜﺘﻠﺔ واﺣﺪة‬

‫ﻣﻊ اﻟﻌﻠﻢ أن ﺣﺠﻢ اﻟﻜﺘﻠﺔ ﺛﺎﺑﺖ ﻟﻠﻘﺮص اﻟﻮاﺣﺪ‪.‬‬

‫‪18‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﻋﻤﻠﻴﺔ اﻟﺤﺼﻮل ﻋﻠﻰ ﺳﺠﻞ ﻣﻌﻴﻦ‬

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


‫‪DBMS‬‬

‫ﻳﻄﻠﺐ ﺳﺠﻞ ﻣﻌﻴﻦ‬ ‫إرﺟﺎع اﻟﺴﺠﻞ اﻟﻤﻄﻠﻮب‬

‫ﻣﻨﻈﻢ اﻟﻤﻠﻔﺎت‬
‫‪File Manger‬‬

‫أﺟﺰاء ﻣﻦ ﻧﻈﺎم اﻟﺘﺸﻐﻴﻞ‬


‫ﻳﻄﻠ ﺐ اﻟﻜﺘ ﻞ اﻟﺘ ﻲ‬ ‫إرﺟﺎع اﻟﻜﺘﻞ اﻟﻤﻌﻨﻴ ﺔ‬
‫ﺗﺤﺘﻮي اﻟﻤﻠﻒ‬ ‫و ﺣﻔﻈﻬ ﺎ ﻓ ﻲ أل‬
‫‪Buffer‬‬

‫ﻣﻨﻈﻢ اﻟﻘﺮص‬
‫‪Disk Manger‬‬

‫ﻳﻘ ﻮم ﺑﻌﻤﻠﻴ ﺎت إدﺧ ﺎل و‬ ‫اﻟﻘﺮاءة ﻣﻦ اﻟﻘﺮص‬


‫إﺧﺮاج ﻋﻠﻰ اﻟﻘﺮص‬

‫اﻟﻘﺮص‬
‫‪Disk‬‬

‫ﻻ ﻧﻨﺴﻰ ﺑﺎن اﻟﻤﻠﻒ هﻮ ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺴﺠﻼت و أﻳﻀﺎ اﻟﻤﻠﻒ ﻗﺪ ﻳﻜﻮن‬


‫ﻣﺤﻔﻮﻇًﺎ ﻋﻠﻰ آﺘﻠﺔ أو ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻜﺘﻞ‪.‬‬

‫ﻣﺜﺎل‪:‬‬
‫ﻟﻨﻔﺮض أن ﻋﻨﺪﻧﺎ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻟﺸﺮآﺔ اﺳﺘﻴﺮاد ﺗﺤﺘﻮي ﻋﻠﻰ ﺛﻼﺛﺔ ﺟﺪاول‪ ,‬و هﺬﻩ اﻟﺠﺪاول هﻲ‬
‫ﺟﺪول اﻟﻤﻮرد )‪ ،(Supplier‬ﺟﺪول اﻟﻘﻄﻊ )‪ ،(Parts‬وﺟﺪول اﻟﻤﻮرد‪-‬اﻟﻘﻄﻊ )‪ .(SP‬آﻤﺎ هﻮ‬
‫ﻣﻮﺿﺢ ﻓﻲ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‪:‬‬

‫‪19‬‬
2003 ‫ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ‬.‫م‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

(1) Supplier (S):


S# Sname address
S1 ABC .…
S2 ABE …
S3 .
. .
. .
. .

(2) Parts (P):


P# Partnam color
P1 screen .…
P2 pins …
P33 CD
. .
. .
. .

(3) SP:
S# P# QTY
S1 P1 200
S1 P2 300
S2 P1 400
S3 P3 500

:‫و ﻳﻤﻜﻦ ﺗﻤﺜﻴﻞ اﻟﺘﺨﺰﻳﻦ ﻋﻠﻰ اﻟﻘﺮص آﺎﻟﺘﺎﻟﻲ‬

20
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫اﻟﻤﺆﺷﺮات‬
‫‪S1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬
‫‪S2‬‬ ‫‪2‬‬ ‫‪S1‬‬ ‫‪S2‬‬
‫‪-‬‬ ‫‪-‬‬
‫‪-‬‬ ‫‪-‬‬
‫‪-‬‬ ‫‪-‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪5‬‬
‫‪-‬‬ ‫‪-‬‬ ‫‪S3‬‬ ‫‪P1‬‬ ‫‪P2‬‬
‫‪-‬‬ ‫‪-‬‬

‫‪6‬‬ ‫‪7‬‬ ‫‪8‬‬


‫‪P3‬‬ ‫‪S1P1‬‬ ‫‪S2P2‬‬

‫‪9‬‬ ‫‪10‬‬ ‫‪11‬‬


‫‪FREE‬‬ ‫‪FREE‬‬ ‫‪FREE‬‬

‫وﻟﻜﻦ ﺑﻌﺪ ﻓﺘﺮة ﻣﻦ اﻟﺤﺬف واﻹﺿﺎﻓﺔ ﺗﺼﺒﺢ اﻟﺒﻴﺎﻧﺎت ﻣﺒﻌﺜﺮة‪ ,‬وﻟﺬﻟﻚ ﻧﺴﺘﺨﺪم‬
‫اﻟﻤﺆﺷﺮات)‪ (Pointers‬ﻣﻦ أﺟﻞ اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﻮﺻﻮل اﻟﻤﺒﺎﺷﺮ‪.‬‬

‫ﺗﻨﻈﻴﻢ اﻟﻤﻠﻔﺎت) ‪(File organization‬‬

‫اﻟﻤﻠﻒ‬
‫ﻳﺤﺘﻮي‬

‫ﻳﺤﺘﻮي‬ ‫ﻳﺘﺒﻊ‬
‫ﻣﺠﻤﻮﻋﺔ ﻣﻦ‬ ‫ﻧﻮﻋﻴﺔ ﺳﺠﻞ‬ ‫ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺴﺠﻼت‬
‫اﻟﺤﻘﻮل)‪(Fields‬‬ ‫ﻣﺨﺰﻧﺔ ﻓﻲ‬
‫ﻳﺘﺒﻊ‬
‫ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻜﺘﻞ‬
‫ﻧﻮﻋﻴﺔ ﺑﻴﺎﻧﺎت‬

‫أﻧﻮاع اﻟﺴﺠﻼت‪:‬‬

‫‪ .1‬ﻣﻦ ﻧﺎﺣﻴﺔ اﻟﻄﻮل)‪:(Length‬‬


‫أ‪ .‬ﺛﺎﺑﺘﺔ اﻟﻄﻮل‪.‬‬
‫ب‪ .‬ﻣﺘﻐﻴﺮة اﻟﻄﻮل‪.‬‬

‫‪21‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪ .2‬ﻣﻦ ﻧﺎﺣﻴﺔ اﻟﺘﻮزﻳﻊ)‪:(Spanning‬‬


‫أ‪ .‬ﺳﺠﻼت ﻗﺎﺑﻠﺔ ﻟﻠﺘﻮزﻳﻊ )‪.(Spanned records‬‬
‫ب‪ .‬ﺳﺠﻼت ﻏﻴﺮ ﻗﺎﺑﻠﺔ ﻟﻠﺘﻮزﻳﻊ )‪.(Unspanned records‬‬

‫ﺗﻌﺮﻳﻒ‪:‬‬

‫ﻣﻌﺎﻣﻞ اﻟﺘﻜﺘﻞ )‪:(blocking factor‬‬


‫ﻣﺴﺎﺣﺔ اﻟﻜﺘﻠﺔ ﺑﺎﻟﺒﺎﻳﺖ‬ ‫=‬ ‫‪B‬‬ ‫ﻣﻌﺎﻣﻞ اﻟﺘﻜﺘﻞ)‪= (BF‬‬
‫ﻣﺴﺎﺣﺔ اﻟﺴﺠﻞ ﺑﺎﻟﺒﺎﻳﺖ‬ ‫‪R‬‬

‫ﻣﺜﺎل‪:‬‬

‫ﻻ ﻋﻠﻰ ﺳﺠﻼت ﺛﺎﺑﺘﺔ اﻟﻄﻮل‪ ،‬وﻣﺴﺎﺣﺔ اﻟﺴﺠﻞ اﻟﻮاﺣﺪ هﻲ ‪ 100‬ﺑﺎﻳﺖ‪ ،‬وﻟﻨﺄﺧﺬ ﻣﺴﺎﺣﺔ‬
‫ﻟﻨﺄﺧﺬ ﻣﺜﺎ ً‬
‫اﻟﻜﺘﻠﺔ اﻟﻮاﺣﺪة ﺗﺴﺎوي ‪ 1‬آﻴﻠﻮﺑﺎﻳﺖ = ‪ 1024‬ﺑﺎﻳﺖ‪ ،‬و ﻟﻨﺄﺧﺬ اﻟﺤﺎﻟﺘﻴﻦ اﻟﺘﺎﻟﻴﺘﻴﻦ‪:‬‬
‫)‪ (1‬ﻓﻲ ﺣﺎﻟﺔ أن ﺗﻜﻮن اﻟﺴﺠﻼت ﻗﺎﺑﻠﺔ ﻟﻠﺘﻮزﻳﻊ‪:‬‬
‫‪1024‬‬
‫= ‪BF‬‬ ‫‪= 10.24 Re cord / Block‬‬
‫‪100‬‬
‫)‪ (2‬ﻓﻲ ﺣﺎﻟﺔ أن ﺗﻜﻮن اﻟﺴﺠﻼت ﻏﻴﺮ ﻗﺎﺑﻠﺔ ﻟﻠﺘﻮزﻳﻊ‪:‬‬
‫⎥ ‪⎢1024‬‬
‫⎢ = ‪BF‬‬ ‫‪= 10 Re cord / Block‬‬
‫⎦⎥ ‪⎣ 100‬‬
‫ﻧﻌﻨﻲ ﺑﺘﻨﻈﻴﻢ اﻟﻤﻠﻔﺎت‪:‬‬
‫اﻟﻄﺮﻳﻘﺔ اﻟﺘﻲ ﺑﻮاﺳﻄﺘﻬﺎ ﺗﻨﻈﻢ اﻟﺴﺠﻼت ﻓ ﻲ اﻟﺘﺨ ﺰﻳﻦ‪ ،‬و ه ﻲ ﺗﻌﺘﻤ ﺪ ﻋﻠ ﻰ ﻃﺮﻳﻘ ﺔ اﻟﻮﺻ ﻮل‬
‫ﻓﻲ اﻟﺒﺤﺚ و اﻹدﺧﺎل و اﻟﺘﻐﻴﻴﺮ و اﻟﺤﺬف‪.‬‬

‫ﻃﺮق ﺗﻨﻈﻴﻢ اﻟﻤﻠﻔﺎت‬

‫‪ .1‬اﻟﻤﻠﻔﺎت ﻏﻴﺮ اﻟﻤﺮﺗﺒﺔ )‪(Heap File Unordered‬‬


‫ﺗﺨﺰن اﻟﺴﺠﻼت ﺑﻨﻔﺲ اﻟﺘﺮﺗﻴﺐ اﻟﺬي ﺗﺪﺧﻞ ﺑﻪ‪ ،‬وﻳﺴﻢ هﺬا اﻟﻨﻮع ﻣﻦ اﻟﺘﻨﻈﻴﻢ‪:‬‬
‫‪FCFS: First Come First Served.‬‬
‫ﻣﺜﺎل‪:‬‬

‫ﻟﻮ أدﺧﻠﻨﺎ اﻟﺴﺠﻼت ﺑﺎﻷرﻗﺎم اﻟﺘﺎﻟﻴﺔ)ﺗﻤﺜﻞ اﻟﻤﻔﺘﺎح اﻟﺮﺋﻴﺴﻲ ‪ PK‬ﻟﻠﺴﺠﻼت(‪:‬‬

‫‪22‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪100, 200, 310, 400, 500, 300, 600, 201, 320, 210‬‬
‫‪100‬‬ ‫ﺳﺘﺮﺗﺐ ﻓﻲ اﻟﻜﺘﻞ آﻢ هﻮ ﻣﻮﺿﺢ ﻓﻲ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‪:‬‬
‫‪b1‬‬ ‫‪200‬‬
‫‪310‬‬
‫‪400‬‬

‫‪500‬‬
‫‪b2‬‬ ‫‪300‬‬
‫‪600‬‬
‫‪201‬‬

‫‪320‬‬
‫اﻷﻓﻀﻠﻴﺎت‪:‬‬
‫‪b3‬‬ ‫‪210‬‬
‫)‪ (1‬إدﺧﺎل ﺑﺴﻴﻂ‪.‬‬
‫اﻟﺴﻴﺌﺎت‪:‬‬
‫)‪ (1‬اﻻﺳﺘﺮﺟﺎع )اﻟﺒﺤﺚ ﻣﻦ اﻟﻨﻮع اﻟﺘﺘﺎﺑﻌﻲ اﻟﺨﻄﻲ( ﻳﺄﺧﺬ وﻗﺖ ﻃﻮﻳﻞ‪.‬‬
‫)‪ (2‬ﻓﻲ ﺣﺎﻟﺔ اﻟﺤﺬف ﺳﺘﻈﻬﺮ ﻣﺴﺎﺣﺎت ﻓﺎرﻏﺔ ﻏﻴﺮ ﻣﺴﺘﻐﻠﺔ‪.‬‬
‫وﻧﺤﻞ ﻣﺸﻜﻠﺔ اﻟﺤﺬف ﺑﺈﺿﺎﻓﺔ ﺑﺖ إﺿﺎﻓﻴﺔ ﺗﻤﺜﻞ ﻋﻤﻠﻴﺔ اﻟﺤﺬف آﺎﻟﺘﺎﻟﻲ‪:‬‬
‫‪ = 0‬ﻏﻴﺮ ﻣﺤﺬوف‬ ‫‪ =1‬ﻣﺤﺬوف‬
‫وﺑﻌﺪ اﻻﻧﺘﻬﺎء ﻣﻦ اﻟﻌﻤﻞ ﻧﻘﻮم ﺑﺈﻋﺎدة ﺗﺮﺗﻴﺐ اﻟﺴﺠﻼت‪.‬‬

‫‪ .2‬اﻟﻤﻠﻔﺎت اﻟﻤﺮﺗﺒﺔ )‪(Ordered Files‬‬

‫ﺗﺨﺰن اﻟﺴﺠﻼت ﺑﺤﺴﺐ ارﻗﺎﻣﻬﺎ‪ ،‬أي ﻳﻮﺟﺪ ﺑﻬﺎ ﺗﺮﺗﻴﺐ ﺑﺤﺴﺐ اﻟﺒﻴﺎﻧﺎت‪.‬‬

‫ﻣﺜﺎل‪:‬‬

‫ﻟﻮ أدﺧﻠﻨﺎ اﻟﺴﺠﻼت ﺑﺎﻷرﻗﺎم اﻟﺘﺎﻟﻴﺔ)ﺗﻤﺜﻞ اﻟﻤﻔﺘﺎح اﻟﺮﺋﻴﺴﻲ ‪ PK‬ﻟﻠﺴﺠﻼت(‪:‬‬


‫‪100, 110,109‬‬
‫ﺳﺘﺮﺗﺐ ﻓﻲ اﻟﻜﺘﻞ آﻢ هﻮ ﻣﻮﺿﺢ ﻓﻲ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‪:‬‬

‫‪100‬‬ ‫‪100‬‬ ‫‪100‬‬


‫‪b1‬‬ ‫‪b1‬‬ ‫‪110‬‬ ‫‪b1‬‬ ‫‪109‬‬
‫‪110‬‬

‫‪23‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫اﻷﻓﻀﻠﻴﺎت‪:‬‬
‫)‪ (1‬اﻟﺒﺤﺚ ﻟﻪ ﻓﺎﻋﻠﻴﺔ ﻋﺎﻟﻴﺔ‪ ،‬ﺑﺤﻴﺚ ﻧﺴﺘﻄﻴﻊ اﺳﺘﺨﺪام اﻟﺒﺤﺚ اﻟﺜﻨﺎﺋﻲ ﻋﻠﻰ اﻟﻤﻔﺘﺎح‬
‫اﻟﺮﺋﻴﺴﻲ‪ ,‬وﺑﺴﺮﻋﺔ‪:‬‬
‫)‪ : Log2 (N‬ﺑﺤﻴﺚ أن ‪ N‬هﻲ ﻋﺪد اﻟﺴﺠﻼت‪.‬‬
‫اﻟﺴﻴﺌﺎت‪:‬‬
‫)‪ (1‬اﻹدﺧﺎل و اﻟﺤﺬف ﻳﺄﺧﺬان وﻗﺘًﺎ ﻃﻮﻳﻼً‪ ،‬ﺑﺤﻴﺚ ﻧﺤﺘﺎج إﻟﻰ ﺗﻐﻴﻴﺮ اﻟﻤﻮاﻗﻊ)‪(Shift‬‬
‫ﻣﻦ أﺟﻞ اﻟﺘﺮﺗﻴﺐ‪.‬‬
‫)‪ (2‬اﻟﺒﺤﺚ ﺑﺎﺳﺘﺨﺪام ﻣﻔﺘﺎح ﻏﻴﺮ اﻟﺮﺋﻴﺴﻲ‪ ،‬ﺗﻜﻮن اﻟﺴﺠﻼت ﻏﻴﺮ ﻣﺮﺗﺒﺔ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻪ‪.‬‬
‫وﻧﺤﻞ ﻣﺸﻜﻠﺔ اﻹدﺧﺎل واﻟﺤﺬف ﺑﺎﺳﺘﺨﺪام ﻓﻜﺮة اﻟﻜﺘﻞ اﻻﻧﺘﻘﺎﻟﻴﺔ)‪.(Transaction Blocks‬‬
‫وﻓﻲ أﺧﺮ اﻟﻴﻮم ﻳﺘﻢ إدﺧﺎﻟﻬﺎ أو ﺣﺬﻓﻬﺎ ﻣﻦ آﺘﻞ اﻟﺘﺨﺰﻳﻦ اﻟﺤﻘﻴﻘﻴﺔ‪.‬‬

‫‪ .3‬ﺑﺎﺳﺘﺨﺪام ﻃﺮﻳﻘﺔ اﻟﻤﺰج)‪:(Hashing Techniques‬‬

‫و ﻳﻮﺟﺪ هﻨﺎﻟﻚ ﻧﻮﻋﻴﻦ ﻣﻦ ﻃﺮق اﻟﻤﺰج اﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‪ ،‬هﻲ اﻟﻤﺰج اﻟﺪاﺧﻠﻲ‬
‫و اﻟﻤﺰج اﻟﺨﺎرﺟﻲ‪:‬‬
‫‪ .1‬اﻟﻤﺰج اﻟﺪاﺧﻠﻲ)‪:(Internal Hashing‬‬

‫‪0‬‬
‫وﻧﻘﺼﺪ ﺑﻪ اﻟﻄﺮﻳﻘﺔ اﻟﺘﻲ ﺗﺪﺧﻞ ﺑﻬﺎ اﻟﺴﺠﻼت ﻋﻠﻰ اﻟﻜﺘﻠﺔ ﺑﺎﺳﺘﺨﺪام‬
‫‪b1‬‬ ‫‪1‬‬ ‫أﻗﺘﺮان اﻟﻤﺰج اﻟﺘﺎﻟﻲ‪:‬‬
‫‪2‬‬
‫‪h(k ) = k mod M + 1‬‬
‫‪3‬‬
‫‪.‬‬ ‫ﺑﺤﻴﺚ إن‪:‬‬
‫‪.‬‬ ‫‪ :k‬ﻗﻴﻤﺔ اﻟﻤﻔﺘﺎح اﻟﺮﺋﻴﺴﻲ‪.‬‬
‫‪.‬‬
‫‪ :mod‬ﺑﺎﻗﻲ اﻟﻘﺴﻤﺔ‪.‬‬
‫‪M-1‬‬
‫‪ :M‬ﻋﺪد اﻟﺴﺠﻼت اﻟﺘﻲ ﺗﺴﺘﻄﻴﻊ اﻟﻜﺘﻠﺔ ﺗﺨﺰﻳﻨﻬﺎ‪.‬‬

‫اﻟﻤﻮﻗﻊ‬ ‫اﻷﻓﻀﻠﻴﺎت‪:‬‬
‫)‪ (1‬اﻟﻮﺻﻮل اﻟﻤﺒﺎﺷﺮ ﻟﻠﺒﻴﺎﻧﺎت )‪.(Direct Access‬‬
‫اﻟﺴﻴﺌﺎت‪:‬‬

‫‪24‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫)‪ (1‬اﻟﺘﻀﺎرب)‪ ،(collisions‬وﻧﻘﺼﺪ ﺑﻬﺎ أن ﻳﺄﺗﻲ ﺳﺠﻼن ﻓﻲ ﻧﻔﺲ اﻟﻤﻮﻗﻊ‪.‬‬


‫)‪ (2‬ﻏﻴﺮ ﻣﺮﺗﺒﺔ ﻟﻠﻤﻔﺎﺗﻴﺢ ﻏﻴﺮ اﻟﻤﻔﺘﺎح اﻟﺮﺋﻴﺴﻲ‪.‬‬
‫)‪ (3‬إﻳﻀ ًﺎ ﻧﺤﺘﺎج ﻟﺤﺠﺰ اﻟﻤﺴﺎﺣﺔ ﻟﻠﻤﻠﻒ ﻗﺒﻞ اﻟﺘﺨﺰﻳﻦ وذﻟﻚ ﻳﺴﺒﺐ ﺿﻴﺎع)‪(Waste‬‬
‫ﻓﻲ اﻟﻤﺴﺎﺣﺔ اﻟﻤﻮﺟﻮدة ﻋﻠﻰ اﻟﻘﺮص‪.‬‬
‫‪ .2‬اﻟﻤﺰج اﻟﺨﺎرﺟﻲ)‪:(External Hashing‬‬
‫وﻧﻘﺼﺪ ﺑﻪ اﻟﻄﺮﻳﻘﺔ اﻟﺘﻲ ﻳﺘﻢ ﺑﻮاﺳﻄﺘﻬﺎ ﺗﻮزﻳﻊ اﻟﺴﺠﻼت ﻋﻠﻰ اﻟﻜﺘﻞ‪ ،‬آﻤﺎ هﻮ ﻣﻮﺿﺢ ﻓﻲ‬
‫اﻟﺮﺳﻢ‪ ،‬وﻟﺬﻟﻚ هﻨﺎﻟﻚ وﺻﻮل ﻣﺒﺎﺷﺮ‪:‬‬
‫ﻋﻨﻮان اﻟﻜﺘﻠﺔ‬ ‫‪:‬‬
‫‪1‬‬
‫‪2‬‬ ‫‪b1‬‬ ‫‪Disk‬‬
‫‪3‬‬
‫‪b2‬‬
‫‪4‬‬
‫رﻗﻢ اﻟﺴﺠﻞ‬ ‫‪b3‬‬

‫ﻣﺜﺎل‪:‬‬
‫ﻟﻨﻔﺮض أن ﻟﺪﻳﻨﺎ اﻟﺴﺠﻼت اﻟﺘﺎﻟﻴﺔ و ﻧﺮﻳﺪ أن ﻧﺪﺧﻠﻬﺎ ﻓﻲ اﻟﻜﺘﻞ )ﺑﺤﻴﺚ أن اﻟﻜﺘﻠﺔ اﻟﻮاﺣﺪة‬
‫ﺗﺘﺴﻊ ل ‪ 9‬ﺳﺠﻼت(‪:‬‬
‫‪25, 27, 37, 40, 113, 17.‬‬
‫‪b1‬‬ ‫‪b2‬‬ ‫‪b3‬‬
‫‪1‬‬ ‫‪27‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫وآﺎن ﻋﻨﺪﻧﺎ أﻗﺘﺮاﻧﺎ اﻟﻤﺰج اﻟﺘﺎﻟﻴﻴﻦ‪:‬‬
‫‪2‬‬ ‫‪2‬‬ ‫‪37‬‬ ‫‪2‬‬ ‫‪ .1‬اﻟﻤﺴﺘﻮى اﻟﺪاﺧﻠﻲ‪:‬‬
‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬
‫‪4‬‬ ‫‪4‬‬ ‫‪4‬‬
‫‪h1 ( k ) = k mod 9 + 1‬‬
‫‪5‬‬ ‫‪5‬‬ ‫‪40‬‬ ‫‪5‬‬
‫‪6‬‬ ‫‪6‬‬ ‫‪6‬‬ ‫‪113‬‬ ‫‪ .2‬اﻟﻤﺴﺘﻮى اﻟﺨﺎرﺟﻲ‪:‬‬
‫‪7‬‬ ‫‪7‬‬ ‫‪7‬‬
‫‪h 2 ( k ) = k mod 3 + 1‬‬
‫‪8‬‬ ‫‪8‬‬ ‫‪25‬‬ ‫‪8‬‬
‫‪9‬‬ ‫‪9‬‬ ‫‪9‬‬ ‫‪17‬‬
‫ﻓﺄن اﻟﺴﺠﻼت ﺳﺘﺪﺧﻞ إﻟﻰ اﻟﻜﺘﻞ‬
‫ﺑﺎﻟﺸﻜﻞ اﻟﻤﻮﺿﺢ إﻟﻰ اﻟﻴﺴﺎر‪:‬‬

‫ﻣﺜﺎل‪:‬‬
‫أوﺟﺪ أﻗﺘﺮاﻧﺎت اﻟﻤﺰج اﻟﺪاﺧﻠﻴﺔ و اﻟﺨﺎرﺟﻴﺔ ﻟﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت اﻟﺘﻲ ﺗﺤﺘﻮي ﻋﻠﻰ‬
‫ﺟﺪول)ﻣﻠﻒ(‪ ،‬ﺑﺤﻴﺚ أن هﺬا اﻟﻤﻠﻒ ﻳﺤﺘﻮي ﻋﻠﻰ ‪ 4000‬ﺳﺠﻞ‪ ،‬و ﺣﺠﻢ اﻟﺴﺠﻞ اﻟﻮاﺣﺪة هﻲ‬

‫‪25‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪ 100‬ﺑﺎﻳﺖ‪ ،‬و اﻟﻜﺘﻠﺔ اﻟﻮاﺣﺪة ﻓﻲ اﻟﻘﺮص اﻟﺼﻠﺐ ﺗﺘﺴﻊ ل ‪ 4‬آﻴﻠﻮﺑﺎﻳﺖ‪ ،‬ﻣﻊ اﻟﻌﻠﻢ ﺑﺄن اﻟﺴﺠﻼت‬
‫ﻣﻦ اﻟﻨﻮع ﻏﻴﺮ اﻟﻘﺎﺑﻞ ﻟﻠﺘﻮزﻳﻊ‪.‬‬
‫اﻟﺤﻞ‪:‬‬
‫⎥ ‪⎢ 4 × 1024‬‬
‫⎢ = ‪BF‬‬ ‫‪= 40 Re cord / Block‬‬
‫⎦⎥ ‪⎣ 100‬‬
‫‪4000 Re cord‬‬
‫= ‪Number of Blocks needed‬‬ ‫‪= 100 Block‬‬
‫‪40 Re cord / Block‬‬

‫‪h 1 ( k ) = k mod 40 + 1‬‬ ‫‪ .1‬اﻟﻤﺴﺘﻮى اﻟﺪاﺧﻠﻲ‪:‬‬

‫‪h 2 ( k ) = k mod 100 + 1‬‬ ‫‪ .2‬اﻟﻤﺴﺘﻮى اﻟﺨﺎرﺟﻲ‪:‬‬

‫اﻟﻔﻬﺎرس وﺗﺮاآﻴﺐ اﻟﻮﺻﻮل )‪(Indexes and Access Structure‬‬

‫اﻟﻔﻬﺎرس ﻋﺎدة ﺗﺴﺘﺨﺪم ﻹﺳﺮاع اﻟﺒﺤﺚ ﻓﻲ ﻣﻠﻒ ﺑﻴﺎﻧﺎت ﺑﺎﻻﻋﺘﻤﺎد ﻋﻠﻰ ﻗﻴﻢ ﻣﻌﻴﻨﺔ )ﻣﻔﺎﺗﻴﺢ(‪.‬‬

‫ﺗﻌﺮﻳﻒ‪:‬‬
‫اﻟﻔﻬﺮس‪:‬‬
‫هﻮ ﻋﺒﺎرة ﻋﻦ ﺗﺮآﻴﺐ ﺑﻴﺎﻧﺎت‪ ،‬ﻳﻌﺮف ﻋﻠﻰ أﺳﺎس اﺣﺪ اﻟﺤﻘﻮل ) أو ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺤﻘﻮل (‬
‫ﺗﺴﻤﻰ ﺣﻘﻞ اﻟﻔﻬﺮﺳﺔ)‪ (Indexing Filed‬وﺣﻘﻞ أﺧﺮ ﻳﺴﻤﻰ اﻟﻤﺆﺷﺮ)‪ ،(Pointer‬ﺣﻴﺚ ﻳﺆﺷﺮ ﻋﻠﻰ‬
‫آﺘﻠﺔ ﻣﻌﻴﻨﺔ أو ﺳﺠﻞ ﻣﻌﻴﻦ‪.‬‬
‫‪Indexing Field‬‬ ‫‪100‬‬ ‫‪-----‬‬
‫‪Pointers‬‬ ‫‪110‬‬ ‫‪-----‬‬ ‫‪b1‬‬
‫‪100‬‬ ‫‪120‬‬ ‫‪-----‬‬
‫‪205‬‬ ‫‪-‬‬ ‫‪-‬‬
‫‪300‬‬ ‫‪-‬‬ ‫‪-‬‬
‫‪-‬‬ ‫‪-‬‬
‫‪200‬‬ ‫‪-----‬‬
‫‪-‬‬ ‫‪-‬‬
‫‪-‬‬ ‫‪205‬‬ ‫‪-----‬‬ ‫‪b2‬‬
‫‪-‬‬ ‫‪-‬‬ ‫‪-----‬‬
‫‪-‬‬ ‫‪-‬‬ ‫‪-‬‬
‫‪-‬‬ ‫‪-‬‬
‫اﻟﻔﻬﺮس‬
‫‪Index‬‬ ‫‪300‬‬ ‫‪-----‬‬
‫‪301‬‬ ‫‪-----‬‬ ‫‪b3‬‬
‫‪-‬‬ ‫‪-----‬‬
‫‪-‬‬ ‫‪-‬‬
‫‪-‬‬ ‫‪-‬‬
‫ﻣﻠﻔﺎت اﻟﺒﻴﺎﻧﺎت)‪(Data Files‬‬

‫‪26‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﻳﻮﺟﺪ ﻧﻮﻋﻴﻦ ﻣﻦ اﻟﻔﻬﺎرس ‪:‬‬


‫‪ .1‬ﻓﻬﺎرس ﺛﺎﺑﺘﺔ)‪:(Static Index‬‬
‫وهﻲ ﻧﻮﻋﺎن ‪.Single, multiple‬‬
‫‪ .2‬ﻓﻬﺎرس ﻣﺘﻐﻴﺮة)‪:(Dynamic Index‬‬
‫وﻓﻲ هﺬا اﻟﻤﺴﺎق ﺳﻨﺪرس اﻟﻔﻬﺎرس اﻟﺜﺎﺑﺘﺔ ﻓﻘﻂ ﻣﻦ اﻟﻨﻮع اﻟﻤﻔﺮدة )‪.(single‬‬

‫اﻟﻔﻬﺎرس اﻟﺜﺎﺑﺘﺔ اﻟﻤﻔﺮدة)‪:(Static single Index‬‬


‫وهﻲ ﺛﻼﺛﺔ اﻧﻮاع‪:‬‬
‫‪ .1‬اﻟﻔﻬﺎرس اﻟﺮﺋﻴﺴﻴﺔ)‪.(Primary Index‬‬
‫‪ .2‬اﻟﻔﻬﺎرس اﻟﺜﺎﻧﻮﻳﺔ)‪.(Secondary Index‬‬
‫‪ .3‬اﻟﻔﻬﺎرس اﻟﻌﻨﻘﻮدﻳﺔ) ‪.(clustering‬‬
‫وﺳﻨﺄﺧﺬهﺎ ﺑﺸﻲء ﻣﻦ اﻟﺘﻔﺼﻴﻞ‪.‬‬
‫‪ .1‬اﻟﻔﻬﺎرس اﻟﺮﺋﻴﺴﻴﺔ)‪.(Primary Index‬‬
‫ه ﻲ ﻋﺒ ﺎرة ﻋ ﻦ ﻓﻬ ﺮس ﻣﺒﻨ ﻲ ﻋﻠ ﻰ أﺳ ﺎس ﻣﻠ ﻒ ﻣ ﻨﻈﻢ وﻣﺮﺗ ﺐ ﺗﺮﺗﻴﺒ ًﺎ ﺗ ﺼﺎﻋﺪﻳًﺎ ﺑﺎﻟﻨ ﺴﺒﺔ‬
‫ﻟﻠﻤﻔﺘﺎح اﻟﺮﺋﻴﺴﻲ)‪ (Primary Key‬وﻳﺤﺘﻮي اﻟﻔﻬﺮس ﻋﻠﻰ ﺣﻘﻠﻴﻦ‪:‬‬
‫‪a) Indexing field.‬‬
‫‪b) A pointer to block that includes the record.‬‬
‫وهﻨﺎك ﺷﻜﻠﻴﻦ ﻟﻪ‪:‬‬
‫أ‪ -‬ﻓﻬﺎرس ﻏﻴﺮ ﻣﻀﻐﻮﻃﺔ)‪ :(Non-densew54t6‬آﻞ ﻣﺆﺷﺮ ﻳﺆﺷﺮ ﻋﻠﻰ آﺘﻠﺔ واﺣﺪة‪.‬‬
‫ب‪ -‬ﻓﻬﺎرس ﻣﻀﻐﻮﻃﺔ‪ :‬آﻞ ﻣﺆﺷﺮ ﻳﺆﺷﺮ ﻋﻠﻰ ﺳﺠﻞ واﺣﺪ‪.‬‬
‫ﻣﺜﺎل‪:‬‬
‫ﻟﻨﻔﺮض أن ﻟ ﺪﻳﻨﺎ ﻣﻠ ﻒ ﺑﻴﺎﻧ ﺎت ﻳﺤﺘ ﻮي ﻋﻠ ﻰ ‪ 30000‬ﺳ ﺠﻞ‪ ،‬ﻣﺤﻔ ﻮظ ﻋﻠ ﻰ ﻗ ﺮص ﺳ ﻌﺔ اﻟﻜﺘﻠ ﺔ‬
‫اﻟﻮاﺣﺪة ﻓﻴﻪ ‪ 1024‬ﺑﺎﻳﺖ‪ ،‬آﻞ ﺳﺠﻞ هﻮ ﻣﻦ اﻟﻨﻮع اﻟﺜﺎﺑﺖ اﻟﻐﻴ ﺮ ﻗﺎﺑ ﻞ ﻟﻠﺘﻮزﻳ ﻊ وﺑﺤﻴ ﺚ ﻣ ﺴﺎﺣﺘﻪ ه ﻲ‬
‫‪ 100‬ﺑﺎﻳﺖ وﻣﻊ اﻟﻌﻠﻢ أن ﺳﺠﻞ اﻟﻔﻬﺮس ﻳﺤﺘﺎج إﻟﻰ ‪ 15‬ﺑﺎﻳﺖ‪.‬‬
‫اﺣﺴﺐ آﻢ ﻧﺤﺘﺎج ﻣﻦ اﻟﻮﻗﺖ ﻓﻲ ﺣﺎﻟﺔ‪:‬‬
‫‪ (1‬ﻋﺪم وﺟﻮد اﻟﻔﻬﺮس؟‬
‫‪ (2‬ﻋﻨﺪ اﺳﺘﺨﺪام اﻟﻔﻬﺮس ﻏﻴﺮ ﻣﻀﻐﻮط؟‬
‫‪ (3‬ﻋﻨﺪ اﺳﺘﺨﺪام اﻟﻔﻬﺮس ﻣﻀﻐﻮط؟‬

‫اﻟﺤﻞ‪:‬‬
‫‪ (1‬ﻋﺪم وﺟﻮد اﻟﻔﻬﺮس؟‬

‫‪1024‬‬
‫≅ ‪ 10‬ﺳﺠﻼت ‪/‬آﺘﻠﺔ‬ ‫⇐ ﻋﺪد اﻟﺴﺠﻼت ‪/‬آﺘﻠﺔ اﻟﺒﻴﺎﻧﺎت=‬
‫‪10‬‬

‫‪27‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪30000‬‬
‫‪ 3000‬آﺘﻠﺔ‬ ‫=‬ ‫⇐ ﻋﺪد اﻟﻜﺘﻠﺔ اﻟﻤﻄﻠﻮﺑﺔ‬
‫‪10‬‬

‫⇐ ﺑﺎﺳﺘﺨﺪام اﻟﺒﺤﺚ اﻟﺜﻨﺎﺋﻲ‬


‫‪Estimated Time=Log2 (3000) =12 block access‬‬

‫‪ (2‬ﻋﻨﺪ اﺳﺘﺨﺪام اﻟﻔﻬﺮس ﻏﻴﺮ ﻣﻀﻐﻮط؟‬


‫‪1024‬‬
‫≅ ‪ 68‬ﺳﺠﻞ ﻓﻬﺮﺳﺔ ‪/‬آﺘﻠﺔ‬ ‫⇐ ﻋﺪد اﻟﺴﺠﻼت ‪/‬آﺘﻠﺔ اﻟﻔﻬﺮﺳﺔ=‬
‫‪15‬‬

‫⇐ ﻧﺤﺘﺎج إﻟﻰ ‪ 3000‬ﺳﺠﻞ ﻓﻬﺮﺳﺔ = ﻋﺪد آﺘﻞ اﻟﺒﻴﺎﻧﺎت‪.‬‬

‫‪3000‬‬
‫= ‪ 45‬آﺘﻠﺔ‬ ‫⇐ ﻋﺪد اﻟﻜﺘﻠﺔ اﻟﻤﻄﻠﻮﺑﺔ ﻟﻠﻔﻬﺮس=‬
‫‪68‬‬

‫⇐ ﺑﺎﺳﺘﺨﺪام اﻟﺒﺤﺚ اﻟﺜﻨﺎﺋﻲ‬


‫‪Estimated Time= Log2 (45) +1 =6+1=7 Block Access‬‬

‫‪ (3‬ﻋﻨﺪ اﺳﺘﺨﺪام اﻟﻔﻬﺮس ﻣﻀﻐﻮط؟‬

‫⇐ ﻧﺤﺘﺎج إﻟﻰ ‪ 30000‬ﺳﺠﻞ ﻓﻬﺮﺳﺔ = ﻋﺪد ﺳﺠﻼت اﻟﺒﻴﺎﻧﺎت‪.‬‬

‫⇐ آﻞ آﺘﻠﺔ ﻓﻬﺮﺳﺔ = ‪ 68‬ﺳﺠﻞ ﻓﻬﺮﺳﺔ‪.‬‬


‫‪30000‬‬
‫= ‪ 442‬آﺘﻠﺔ‪.‬‬ ‫⇐ ﻋﺪد اﻟﻜﺘﻠﺔ اﻟﻤﻄﻠﻮﺑﺔ ﻟﻠﻔﻬﺮس=‬
‫‪68‬‬
‫⇐ ﺑﺎﺳﺘﺨﺪام اﻟﺒﺤﺚ اﻟﺜﻨﺎﺋﻲ‬
‫‪Estimated Time= Log2 (442) =9 Block Access‬‬

‫⇐ ﻓﻜﻤﺎ ﻧﺮى اﺳﺘﺨﺪام اﻟﻔﻬﺮس أﺳﺮع ﻋﻤﻠﻴﺔ اﻟﺒﺤﺚ إﻟﻰ ﻟﻀﻌﻒ ﺗﻘﺮﻳﺒﺎ)‪ ،(7-12‬و اﻟﻔﻬﺮ س اﻟﻐﻴﺮ‬
‫ﻣﻀﻐﻮط أﺳﺮع ﻣﻦ اﻟﻤﻀﻐﻮط‪.‬‬

‫‪ .2‬اﻟﻔﻬﺎرس اﻟﺜﺎﻧﻮﻳﺔ)‪.(Secondary Index‬‬


‫هﻮ ﻋﺒﺎرة ﻋﻦ ﻣﻠﻒ ﻣﺮﺗﺐ‪ ،‬و ﻳﺤﺘﻮي ﺣﻘﻠﻴﻦ‪ ،‬اﻟﺤﻘﻞ اﻷول هﻮ ﻋﺒﺎرة ﻋﻦ أﺣﺪ‬
‫ﺣﻘﻮل اﻟﺒﻴﺎﻧﺎت اﻟﻤﻮﺟﻮدة و اﻟﻐﻴﺮ ﻣﺮﺗﺒﺔ‪ ،‬و اﻟﺤﻘﻞ اﻟﺜﺎﻧﻲ هﻮ ﻋﺒﺎرة ﻋﻦ ﻣﺆﺷﺮ ﻋﻠﻰ آﺘﻠﺔ)ﻏﻴﺮ‬
‫ﻣﻀﻐﻮط( أو ﺳﺠﻞ )ﻣﻀﻐﻮط(‪.‬‬
‫وهﺬا اﻟﻨﻮع ﻣﻦ اﻟﻔﻬﺎرس ﻳﺄﺗﻲ ﻋﻠﻰ ﺣﺎﻟﺘﻴﻦ‪ ،‬ﺗﺒﻌًﺎ ﻟﻨﻮع ﺣﻘﻞ اﻟﻔﻬﺮﺳﺔ‪:‬‬
‫‪ .1‬ﺑﺪون ﺗﻜﺮار)‪:(Not-repeated‬‬

‫‪28‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﻣﺜﻞ اﺳﺘﺨﺪام اﺳﻢ اﻟﻤﻮﻇﻒ آﺤﻘﻞ ﻓﻬﺮﺳﺔ‪ ،‬ﻓﻬﻮ ﺣﻘﻞ ﻻ ﻳﺘﻜﺮر‪ ،‬وﻟﻜﻦ ﻟﻴﺲ هﻮ ‪،PK‬‬
‫وﻳﻌﺎﻣﻞ ﺗﻘﺮﻳﺒ ًﺎ ﻧﻔﺲ ﻣﻌﺎﻣﻠﺔ اﻟﻔﻬﺮس اﻟﺮﺋﻴﺴﻲ‪.‬‬

‫‪ .2‬وﺟﻮد ﺗﻜﺮار)‪:(repeated‬‬
‫ﻣﺜﻞ اﻟﺮﻗﻢ ﻟﻠﺪاﺋﺮة ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻄﺎﻟﺐ‪ ،‬ﺣﻴﺚ ﻳﻜﻮن أآﺜﺮ ﻣﻦ ﻃﺎﻟﺐ ﻓﻲ داﺋﺮة واﺣﺪة‪ ،‬وﻧﺮﻳﺪ أن‬
‫ﻧﺒﺤﺚ ﺑﺤﺴﺐ رﻗﻢ اﻟﺪاﺋﺮة‪.‬‬
‫وﻧﺤﻞ ﻣﺸﻜﻠﺔ اﻟﺘﻜﺮار ﺑﺎﺳﺘﺨﺪام ﻓﻜﺮة اﻟﻜﺘﻞ اﻻﻧﺘﻘﺎﻟﻴﺔ آﻤﺎ هﻮ ﻣﻮﺿﺢ ﻓﻲ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‪:‬‬

‫‪DNO‬‬ ‫‪100‬‬ ‫‪-----‬‬


‫‪110‬‬ ‫‪-----‬‬ ‫‪b1‬‬
‫‪1‬‬ ‫‪120‬‬ ‫‪-----‬‬
‫‪2‬‬ ‫‪-‬‬ ‫‪-‬‬
‫‪3‬‬ ‫‪-‬‬ ‫‪-‬‬
‫‪4‬‬ ‫‪-‬‬
‫‪200‬‬ ‫‪-----‬‬
‫‪-‬‬ ‫‪-‬‬ ‫آﺘﻠﺔ أﻧﺘﻘﺎﻟﻴﺔ‬
‫‪-‬‬ ‫‪205‬‬ ‫‪-----‬‬ ‫‪b2‬‬
‫‪-‬‬ ‫‪-‬‬ ‫‪-----‬‬
‫‪-‬‬ ‫‪-‬‬ ‫‪-‬‬
‫‪-‬‬ ‫‪-‬‬
‫اﻟﻔﻬﺮس‬
‫‪Index‬‬ ‫‪300‬‬ ‫‪-----‬‬
‫‪301‬‬ ‫‪-----‬‬ ‫‪b3‬‬
‫ﻋﻠ ﻰ ﻓ ﺮض آ ﻮن اﻟﻄﻠﺒ ﺔ‬ ‫‪-‬‬ ‫‪-----‬‬
‫‪301 ،200 ،100‬‬
‫‪-‬‬ ‫‪-‬‬
‫ﻳﺘﺒﻌﻮن اﻟﺪاﺋﺮة رﻗﻢ واﺣﺪ‪.‬‬
‫‪-‬‬ ‫‪-‬‬
‫ﻣﻠﻔﺎت اﻟﺒﻴﺎﻧﺎت)‪(Data Files‬‬

‫اﻷﻓﻀﻠﻴﺎت و اﻟﺴﻴﺌﺎت ﻟﻠﻔﻬﺮس‬


‫اﻷﻓﻀﻠﻴﺎت)‪:(Advantages‬‬
‫)‪ (1‬ﻋﻤﻠﻴﺔ اﻟﺒﺤﺚ ﺑﺎﺳﺘﺨﺪام اﻟﺒﺤﺚ أﺳﺮع‪.‬‬
‫اﻟﺴﻴﺌﺎت)‪:(Disadvantages‬‬
‫)‪ (1‬اﻟﺘﺠﺪﻳﺪ ﻓﻲ ﻣﻠﻔﺎت اﻟﺒﻴﺎﻧﺎت ﻳﺤﺘﺎج إﻟﻰ اﻟﺘﺠﺪﻳﺪ أﻳﻀًﺎ ﻓﻲ اﻟﻔﻬﺮس‪.‬‬
‫)‪ (2‬ﺿﻴﺎع ﻓﻲ اﻟﻤﺴﺎﺣﺔ‪.‬‬

‫‪29‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫أﺳﺌﻠﺔ اﻟﻮﺣﺪة‪:‬‬

‫س‪ ((1‬ﺑﻴﻦ ﻣﺎ هﻮ اﻟﺘﻌﺮﻳﻒ ﻟﻜﻞ ﻣﻦ اﻟﻤﻔﺎهﻴﻢ اﻟﺘﺎﻟﻴﺔ ‪:‬‬


‫‪ (4‬اﻟﻤﺰج اﻟﺨﺎرﺟﻲ‪.‬‬
‫‪ (5‬اﻟﻔﻬﺮس‪.‬‬
‫س‪ ((2‬ﻟﻨﻔﺮض أن ﻟﺪﻳﻨﺎ ﻣﻠﻒ ﺑﻴﺎﻧﺎت ﻳﺤﺘﻮي ﻋﻠﻰ ‪ 55000‬ﺳﺠﻞ ﻣﺤﻔﻮﻇﺔ ﻋﻠﻰ ﻗﺮص ﺳﻌﺔ اﻟﻜﺘﻠﺔ‬
‫اﻟﻮاﺣﺪة ﻓﻴﻪ هﻲ)‪ , (1024 byte‬آﻞ ﺳﺠﻞ هﻮ ﻣﻦ اﻟﻨﻮع اﻟﺜﺎﺑﺖ اﻟﻐﻴﺮ ﻗﺎﺑﻞ ﻟﻠﺘﻮزﻳﻊ ‪ ,‬و ﺑﺤﻴﺚ‬
‫ﻣﺴﺎﺣﺘﻪ هﻲ)‪ (50 byte‬ﻣﻊ اﻟﻌﻠﻢ أن ﺳﺠﻞ اﻟﻔﻬﺮس ﻳﺤﺘﺎج إﻟﻰ )‪.(20 byte‬‬
‫أﺣﺴﺐ آﻢ ﻧﺤﺘﺎج ﻣﻦ اﻟﻮﻗﺖ ﻓﻲ ﺣﺎﻟﺔ‪:‬‬
‫‪ (1‬ﻋﺪم اﺳﺘﺨﺪام اﻟﻔﻬﺮس)‪(index‬؟‬
‫‪ (2‬ﺑﺎﺳﺘﺨﺪام اﻟﻔﻬﺮس ﻣﻦ اﻟﻨﻮع اﻟﻤﻀﻐﻮط)‪(Dense‬؟‬
‫س‪ ((3‬ﻗﺎرن ﺑﻴﻦ اﻟﻤﻠﻔﺎت اﻟﻤﺮﺗﺒﺔ و اﻟﻐﻴﺮ ﻣﺮﺗﺒﺔ آﻄﺮﻳﻘﺘﻴﻦ ﻟﺘﻨﻈﻴﻢ اﻟﻤﻠﻔﺎت؟‬

‫‪30‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫اﻟﻮﺣﺪة اﻟﺜﺎﻟﺜﺔ‪ :‬ﺗﺼﻤﻴﻢ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻌﻼﺋﻘﻴﺔ ) ‪Relational‬‬


‫‪(Database Design‬‬
‫اﻷهﺪاف اﻟﻌﺎﻣﺔ ﻟﻠﻮﺣﺪة‪:‬‬
‫أن ﻳﺘﻌﺮف اﻟﻄﺎﻟﺐ‪/‬ة ﻋﻠﻰ‪:‬‬
‫‪ .1‬ﺧﻄﻮات ﺗﺼﻤﻴﻢ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‪.‬‬
‫‪ .2‬ﻧﻤﻮذج اﻟﻌﻼﻗﺎت و اﻟﻜﻴﻨﻮﻧﺎت‪.‬‬
‫‪ .3‬رﺳﻢ ﻧﻤﻮذج‪.‬‬
‫‪ .4‬اﻟﻀﻮاﺑﻂ اﻟﺒﻨﺎﺋﻴﺔ‪.‬‬
‫‪ .5‬اﻟﻨﻤﻮذج اﻟﻌﻼﺋﻘﻲ‪.‬‬
‫‪ .6‬ﺿﻮاﺑﻂ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻌﻼﺋﻘﻴﺔ‪.‬‬
‫‪ .7‬ﺗﺤﻮﻳﻞ ﻧﻤﻮذج اﻟﻌﻼﻗﺎت و اﻟﻜﻴﻨﻮﻧﺎت إﻟﻰ اﻟﻨﻤﻮذج اﻟﻌﻼﺋﻘﻲ‪.‬‬

‫ﺧﻄﻮات ﺗﺼﻤﻴﻢ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت)‪(Database Design Steps‬‬


‫ﻳﻤﺮ اﻟﺘﺼﻤﻴﻢ ﺑﺎﻟﺨﻄﻮات اﻟﺘﺎﻟﻴﺔ‪:‬‬
‫)‪ (1‬ﺟﻤﻊ اﻟﻤﺘﻄﻠﺒﺎت و ﺗﺤﻠﻴﻠﻬﺎ )‪.(Requirements collection and analysis‬‬

‫‪Output‬‬ ‫اﻟﻨﻈﺎم‬ ‫‪Input‬‬


‫اﻟﻤﺨﺮﺟﺎت‬ ‫‪System‬‬ ‫اﻟﻤﺪﺧﻼت‬

‫)‪ (2‬اﻟﺘﺼﻤﻴﻢ اﻟﻤﻨﻄﻘﻲ ﻟﻘﺎﻋﺪة اﻟﺒﻴﺎﻧ ﺎت )‪ ،(Conceptual DB Design‬وﻳ ﺘﻢ ﺑﺈﺣ ﺪى‬


‫اﻟﻄﺮق اﻟﺘﺎﻟﻴﺔ‪:‬‬
‫( اﻟﻨﻤ ﻮذج اﻟﻌ ﺎﻟﻲ اﻟﻤ ﺴﺘﻮى‪ ،‬وه ﻮ ﻧﻤ ﻮذج اﻟﻌﻼﻗ ﺎت و اﻟﻜﻴﻨﻮﻧ ﺎت ) ‪E-R‬‬
‫‪ .(Model‬وﻳﺘﻤﻴﺰ ﺑﺎﻟﺴﻬﻮﻟﺔ ﻓﻲ اﻟﻌﻤﻞ وﻟﻜﻦ ﻻ ﻳﻌﻄﻲ ﺗﺼﻤﻴﻤﺎ ﻣﻄﺒﻌًﺎ‪.‬‬
‫( ﺑﺎﺳﺘﺨﺪام وﺳﻴﻠﺔ اﻟﺘﻄﺒﻴﻊ)‪ ،(Normalization‬و ﻳﺘﻤﻴ ﺰ ﺑ ﺼﻌﻮﺑﺔ اﻟﻌﻤ ﻞ‪،‬‬
‫وﻟﻜﻦ ﻳﻌﻄﻲ ﺗﺼﻤﻴﻤًﺎ ﻣﻄﺒﻌﺎً‪ ،‬أي ﺑﺪون وﺟﻮد ﻣﺸﺎآﻞ‪.‬‬
‫)‪ (3‬اﻟﺘﻨﻔﻴﺬ اﻟﻔﻌﻠﻲ ﻟﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﺑﺎﺳ ﺘﺨﺪام إﺣ ﺪى أﻧﻈﻤ ﺔ ﻗﻮاﻋ ﺪ اﻟﺒﻴﺎﻧ ﺎت اﻟﺘﺠﺎرﻳ ﺔ‪ .‬و‬
‫اﻟﺬي ﻳﺸﻤﻞ‪:‬‬
‫( اﻟﺘﺤﻮﻳ ﻞ ﻣ ﻦ اﻟﺘ ﺼﻤﻴﻢ اﻟﻤﻨﻄﻘ ﻲ إﻟ ﻰ اﻟﻨﻤ ﻮذج اﻟﻌﻼﺋﻘ ﻲ) ‪Mapping to‬‬
‫‪.(the Relational model‬‬
‫( ﺗﻠﺒﻴ ﺔ اﻟﻤﺘﻄﻠﺒ ﺎت اﻟﻔﻌﻠﻴ ﺔ‪ :‬و اﻟﺘ ﻲ ﺗ ﺸﻤﻞ اﻟﻨﻤ ﺎذج )‪ ،(Forms‬و‬
‫اﻻﺳﺘﻌﻼﻣﺎت اﻟﺪاﺋﻤﺔ)‪ ،(Queries‬وواﺟﻬﺎت اﻟﺘﻄﺒﻴﻖ)‪.(Interfaces‬‬

‫‪31‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫)‪ (4‬اﻟﺘ ﺼﻤﻴﻢ اﻟﻔﻴﺰﻳ ﺎﺋﻲ ﻟﻘﺎﻋ ﺪة اﻟﺒﻴﺎﻧ ﺎت)‪ ،(Physical DB Design‬و اﻟ ﺬي ﻳ ﺸﻤﻞ‬
‫ﺗ ﺼﻤﻴﻢ ﻃ ﺮق ﺗﻨﻈ ﻴﻢ اﻟﻤﻠﻔ ﺎت‪ .‬و ﺗﺮاآﻴ ﺐ اﻟﻮﺻ ﻮل اﻟﺘ ﻲ ﻣﻨﻬ ﺎ‬
‫اﻟﻔﻬﺎرس)‪.(Indexes‬‬
‫ﻟﻘﺪ ﻏﻄﻴﻨﺎ اﻟﻨﻘﻄﺔ رﻗﻢ )‪ (4‬ﻓﻲ اﻟﻮﺣﺪة اﻟﺜﺎﻧﻴﺔ وﺳﻨﺒﺪأ ﺑﺘﻐﻄﻴﺔ اﻟﻨﻘﻄﺔ )‪ (2‬ﻓﻲ هﺬﻩ اﻟﻮﺣﺪة‪.‬‬
‫وﻋﻠﻰ ﻓﺮض وﺟﻮد أﻓﻜﺎر اﻟﻨﻘﻄﺔ اﻷوﻟﻰ ﻋﻨﺪ اﻟﻄﺎﻟﺐ‪.‬‬

‫ﻧﻤﻮذج اﻟﻌﻼﻗﺎت و اﻟﻜﻴﻨﻮﻧﺎت )‪(E-R Model‬‬


‫‪E-R Model : Entity Relationships Model‬‬
‫اﻟﺬي ﻳﺘﻜﻮن ﻣﻦ ‪:‬‬
‫)‪ (1‬اﻟﻜﻴﺎﻧﺎت)‪ (Entities‬واﻟﺘﻲ ﻟﻬﺎ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺨﺼﺎﺋﺺ) ‪Properties or‬‬
‫‪.(Attributes‬‬
‫)‪ (2‬اﻟﻌﻼﻗﺎت اﻟﻤﺸﺘﺮآﺔ)‪ (Relationships‬ﺑﻴﻦ هﺬﻩ اﻟﻜﻴﺎﻧﺎت‪.‬‬
‫وﺳﻨﻘﻮم ﺑﺴﺮد ﺑﻌﺾ اﻟﺘﻌﺮﻳﻔﺎت اﻟﻼزﻣﺔ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﻧﻤﻮذج اﻟﻌﻼﻗﺎت اﻟﻜﻴﻨﻮﻧﺎت‪.‬‬

‫ﺗﻌﺮﻳﻔﺎت‪:‬‬
‫‪ .1‬اﻟﻜﻴﺎﻧﺎت)‪.(Entities‬‬
‫اﻟﻜﻴﺎن هﻮ ﻋﺒﺎرة ﻋﻦ ﺷﺊ ﻣﻮﺟﻮد ﻓﻲ اﻟﻮاﻗﻊ‪ ،‬وﻳﺘﻤﻴﺰ‬

‫‪Entity‬‬ ‫ﺑﻮﺟﻮد ﻣﺴﺘﻘﻞ‪ .‬و اﻟﻜﻴﺎﻧﺎت ﻧﻮﻋﺎن ‪:‬‬


‫اﻓﺘﺮاﺿﻴﺔ)‪ ،(Virtual‬و ﺣﻘﻴﻘﻴﺔ )‪ .(physical‬آﻤﺎ هﻮ‬
‫ﻣﻮﺿﺢ ﻓﻲ اﻟﺮﺳﻢ اﻟﻤﺮاﻓﻖ اﻟﺘﺎﻟﻲ‪:‬‬
‫‪Physical‬‬ ‫‪Virtual‬‬
‫‪Person‬‬ ‫‪Project‬‬
‫‪Car‬‬ ‫‪Department‬‬ ‫آﻞ آﻴﺎن ﻳﻮﺻﻒ ﺑﻤﺠﻤﻮﻋﺔ ﻣﻦ‬
‫اﻟﺨﺼﺎﺋﺺ)‪.(Attributes‬‬

‫ﻣﺜﺎل آﻴﺎن اﻟﻤﻮﻇﻒ)‪ ،(Employee‬ﻟﻪ اﻟﺨﺼﺎﺋﺺ‪ :‬اﻷﺳﻢ)‪ ،(Ename‬رﻗﻢ‬


‫اﻟﻬﻮﻳﺔ)‪ ،(ENO‬اﻟﻌﻤﺮ)‪ ،(Age‬اﻟﺮاﺗﺐ)‪.(Salary‬‬
‫‪ .2‬ﻧﻮﻋﻴﺔ آﻴﺎن)‪:(Entity Type‬‬
‫هﻲ ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻜﻴﺎﻧﺎت ﻟﻬﺎ ﻧﻔﺲ اﻟﺨﺼﺎﺋﺺ‪.‬‬
‫ﻣﺜﺎل‪ :‬ﻧﻮﻋﻴﺔ اﻟﻜﻴﺎن اﻟﻤﻮﻇﻒ)‪ ،(Employee‬ﻳﺘﺒﻌﻬﺎ اﻟﻜﻴﺎﻧﺎت اﻟﺘﺎﻟﻴﺔ‪:‬‬

‫‪32‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫)‪e1(A,20,10,-------------‬‬
‫)‪e2(B,---------------------‬‬
‫)‪e3(C,---------------------‬‬
‫‪-‬‬
‫‪-‬‬
‫)‪en(-----------------------‬‬

‫ﺑﺤﻴﺚ أن ‪ e1,e2,e3,-----,en‬ﺗﺘﺒﻊ ﻧﻮﻋﻴﺔ اﻟﻜﻴﺎن ﻣﻮﻇﻒ)‪.(Employee‬‬

‫‪ .3‬ﻣﺠﻤﻮﻋﺔ آﻴﺎن)‪ :(Entity Set‬اﻟﻌﻨﺎﺻﺮ‬


‫هﻲ ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻜﻴﺎﻧﺎت اﻹﻓﺮادﻳﺔ)‪ (single Entities‬اﻟﺘﻲ ﺗﺘﺒﻊ ﻣﺠﻤﻮﻋﺔ‬
‫ﻣﻦ ﺣﺎﻻت ﺣﺼﻮل اﻟﻨﻮع‪.‬‬
‫ﻣﺜﺎل‪ :‬ﻓﻲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ‪ e1,e2,e3,-----,en‬ﺗﻤﺜﻞ ﻣﺠﻤﻮﻋﺔ اﻟﻜﻴﺎن ﻣﻮﻇﻒ‬
‫)‪.(Employee‬‬

‫‪ .4‬اﻟﺨﺼﺎﺋﺺ اﻟﻤﻔﺘﺎﺣﻴﺔ)‪:(Key Attributes‬‬


‫هﻲ اﻟﺨﺼﺎﺋﺺ اﻟﺘﻲ ﺗﺘﻤﻴﺰ ﺑﻮﺟﻮد ﻗﻴﻤﺔ ﻓﺮﻳﺪة )‪ (Unique‬ﻓﻲ ﻣﺠﻤﻮﻋﺔ اﻟﻜﻴﺎن‪.‬‬
‫ﻣﺜﺎل‪ :‬ﻓﻲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ رﻗﻢ هﻮﻳﺔ اﻟﻤﻮﻇﻒ)‪ (ENO‬هﻮ ﺧﺎﺻﻴﺔ ﻣﻔﺘﺎﺣﻴﺔ ﻷﻧﻪ‪:‬‬
‫) ‪e 1 ( ENO ) ≠ e 2 ( ENO ) ≠ e 3 ( ENO ) ≠ − − − ≠ e n ( ENO‬‬

‫‪ .5‬أﻧﻮاع اﻟﺨﺼﺎﺋﺺ)‪(Types of Attributes‬‬


‫)‪ (1‬ﺧﺼﺎﺋﺺ إﻓﺮادﻳﺔ اﻟﻘﻴﻤﺔ)‪:(Single Value‬‬
‫ﻣﺜﻞ‪ :‬ﺗﺎرﻳﺦ اﻟﻤﻴﻼد‪ ،‬اﻟﻌﻤﺮ‬
‫)‪ (2‬ﺧﺼﺎﺋﺺ ﻣﺘﻌﺪدة اﻟﻘﻴﻤﺔ)‪:(Multi valued‬‬
‫ﻣﺜﻞ‪} :‬اﻷﻣﺎآﻦ{‪} ،‬اﻟﻠﻮن{‬
‫)‪ (3‬ﺧﺼﺎﺋﺺ ﺑﺴﻴﻄﺔ أو ﻧﻮوﻳﺔ)‪:(simple or atomic‬‬
‫ﻣﺜﻞ‪ :‬اﻟﻌﻤﺮ‬
‫)‪ (4‬ﺧﺼﺎﺋﺺ ﻣﺮآﺒﺔ)‪:(Composite‬‬

‫‪33‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﻣﺜﻞ‪:‬‬

‫ﺗﺎرﻳﺦ اﻟﻤﻴﻼد‬ ‫اﻟﻌﻨﻮان‬ ‫اﻻﺳﻢ‬

‫اﻟﺸﻬﺮ اﻟﺴﻨﺔ‬ ‫اﻟﻴﻮم‬ ‫اﻟﻤﺪﻳﻨﺔ‬ ‫اﻟﻤﻨﻄﻘﺔ‬ ‫أﺧﻴﺮ‬ ‫أول‬


‫)‪ (5‬ﺧﺼﺎﺋﺺ ﻣﺸﺘﻘﺔ)‪:(derived‬‬
‫ﻣﺜﻞ‪:‬اﻟﻌﻤﺮ)اﻟﺘﺎرﻳﺦ اﻟﺤﺎﻟﻲ‪-‬اﻟﺘﺎرﻳﺦ ﻟﻠﻮﻻدة(‬
‫)‪ (6‬ﺧﺼﺎﺋﺺ ﻗﺪ ﻻ ﻳﻜﻮن ﻟﻬﺎ ﻗﻴﻤﺔ)‪:(May Be NULL‬‬
‫‪Null‬‬ ‫ﻣﺜﻞ‪ :‬رﻗﻢ اﻟﻬﺎﺗﻒ‬

‫ﻏﻴﺮ ﻣﻘﺒﻮﻟﺔ‬ ‫ﻏﻴﺮ ﻣﻌﺮﻓﺔ‬


‫‪ .6‬ﻣﺠﺎل اﻟﺨﺎﺻﻴﺔ)‪(Domain of Attribute‬‬
‫هﻲ ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ اﻟﻘﻴﻢ اﻟﺘﻲ ﻣﻦ اﻟﻤﻤﻜﻦ أن ﺗﺴﺘﺨﺪم آﻘﻴﻤﺔ ﻟﻠﺨﺎﺻﻴﺔ‪.‬‬
‫ﻣﺜﺎل‪ :‬اﻟﺮاﺗﺐ ﻟﻠﻤﻮﻇﻒ )‪ (salary‬ﻳﺘﺮاوح ﺑﻴﻦ )‪1000‬ﺷﻴﻜﻞ و ‪ 5000‬ﺷﻴﻜﻞ(‪.‬‬

‫‪ .7‬اﻟﻌﻼﻗﺎت اﻟﻤﺸﺘﺮآﺔ)‪(Relationships‬‬
‫اﻟﻌﻼﻗﺔ اﻟﻤﺸﺘﺮآﺔ ‪ R‬ﺑﻴﻦ ‪ n‬آﻴﺎﻧﺎت ُﺗ َﻌﺮِف ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻻرﺗﺒﺎﻃﺎت ﺑﻴﻦ هﺬﻩ اﻟﻜﻴﺎﻧﺎت‪.‬‬
‫‪ =R‬ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﺣﺎﻻت اﻟﺤﺼﻮل )‪.(ri‬‬
‫)‪R= set of Instances (ri‬‬
‫‪ .8‬اﻟﺪرﺟﺔ ﻟﻠﻌﻼﻗﺔ اﻟﻤﺸﺘﺮآﺔ)‪:(Relationship Degree‬‬

‫اﻟﺪرﺟﺔ ﻟﻠﻌﻼﻗﺔ اﻟﻤﺸﺘﺮآﺔ= ﻋﺪد اﻟﻜﻴﺎﻧﺎت اﻟﻤﺸﺘﺮآﺔ ﻓﻲ اﻟﻌﻼﻗﺔ‬

‫‪n‬‬ ‫ﺛﻼﺛﻴﺔ ‪ternary‬‬ ‫ﺛﻨﺎﺋﻴﺔ ‪binary‬‬


‫‪More than‬‬ ‫‪3 entites‬‬ ‫‪2 entites‬‬
‫‪3‬‬

‫رﺳﻢ ﻧﻤﻮذج ‪:E-R Model‬‬

‫‪34‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﻧﺮﻣﺰ ﻟﻠﻜﻴﺎن ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‪:‬‬


‫‪entity type‬‬

‫وﻟﻠﻌﻼﻗﺔ اﻟﻤﺸﺘﺮآﺔ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‪:‬‬

‫‪Relationship‬‬
‫‪type‬‬

‫ﺑﻌﺾ اﻟﺮﻣﻮز اﻷﺧﺮى اﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ ‪E-R Model:‬‬

‫‪Derived‬‬
‫‪Attribute‬‬
‫‪Attribute‬‬

‫‪Multi-valued‬‬
‫‪Attribute‬‬
‫‪Composite‬‬
‫‪A‬‬ ‫‪attribute‬‬

‫‪Key attribute‬‬

‫ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻤﺜﺎل اﻟﻤﻮﺟﻮد ﻓﻲ اﻟﻤﻠﺤﻖ)ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ﻟﺸﺮآﺔ(‪ :‬ﻋﻨﺪﻧﺎ ﺛﻼث ﺣﺎﻻت‪:‬‬


‫)‪ (1‬اﻟﺤﺎﻟﺔ اﻷوﻟﻰ‪:‬‬

‫‪EMP‬‬ ‫‪Works For‬‬ ‫‪Dept‬‬

‫‪e1‬‬ ‫‪d1‬‬
‫‪r1‬‬
‫‪e2‬‬ ‫‪d2‬‬
‫‪e3‬‬ ‫‪r2‬‬ ‫‪d3‬‬

‫‪e4‬‬ ‫‪r3‬‬ ‫‪-‬‬

‫‪e5‬‬ ‫‪-‬‬
‫‪r4‬‬
‫‪-‬‬ ‫‪-‬‬
‫‪-‬‬ ‫‪r-5‬‬ ‫‪-‬‬
‫‪-‬‬ ‫‪-‬‬ ‫‪-‬‬
‫‪-‬‬ ‫‪-‬‬ ‫‪-‬‬

‫‪N‬‬ ‫‪:‬‬ ‫‪1‬‬

‫‪35‬‬
2003 ‫ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ‬.‫م‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫وﻧﻌﺒﺮ ﻋﻨﻬﺎ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬


ENO
Works
EMP For Dept

N 1 DNO
Name

:‫( اﻟﺤﺎﻟﺔ اﻟﺜﺎﻧﻴﺔ‬2)


EMP Works on Project

e1 p1
r1
e2 p2
e3 r2 p3
e4 r3 -
e5 -
r4
- -
- r-5 -
- - -
- - -

M : N

‫وﻧﻌﺒﺮ ﻋﻨﻬﺎ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬


ENO
Works
EMP On Project

M N PNO
Name

:‫( اﻟﺤﺎﻟﺔ اﻟﺜﺎﻟﺜﺔ‬3)


EMP Mgr Dept

e1 d1
r1
e2 d2
e3 r2 d3
e4 r3 -
e5 -
- -
- 1 : 1 -
- -
- -

36
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫وﻧﻌﺒﺮ ﻋﻨﻬﺎ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬


‫‪ENO‬‬
‫‪Mgr‬‬
‫‪EMP‬‬ ‫‪Dept‬‬

‫‪1‬‬ ‫‪1‬‬ ‫‪DNO‬‬


‫‪Name‬‬

‫اﻟﻀﻮاﺑﻂ اﻟﺒﻨﺎﺋﻴﺔ ) ‪(Structural Constraints‬‬


‫وهﻲ ﻧﻮﻋﺎن‪:‬‬

‫‪):‬ﻧﺴﺒﺔ اﻟﺠﻮهﺮﻳﺔ ﻟﻠﻌﻼﻗﺔ اﻟﻤﺸﺘﺮآﺔ(‪1. Cardinality Ratio‬‬


‫وﺗﻌﺮف ﺑﺄﻧﻬﺎ ﻋﺪد ﺣﺎﻻت اﻟﺤﺼﻮل ﻟﻠﻌﻼﻗﺔ اﻟﻤﺸﺘﺮآﺔ اﻟﺘﻲ ﻳﺴﺘﻄﻴﻊ اﻟﻜﻴﺎن اﻻرﺗﺒﺎط‬
‫ﺑﻬﺎ‪.‬‬
‫وﻳﻤﻜﻦ أن ﺗﻜﻮن أﺣﺪى اﻟﺤﺎﻻت اﻟﺘﺎﻟﻴﺔ‪:‬‬
‫رأس ﺑﺮأس‬ ‫واﺣﺪ‪-‬ﻟﻮاﺣﺪ‬ ‫‪1:1‬‬
‫رأس ﺑﺄﻃﺮاف‬ ‫واﺣﺪ‪-‬ﻟﻤﺘﻌﺪد‬ ‫‪1:N‬‬
‫أﻃﺮاف ﺑﺄﻃﺮاف‬ ‫ﻣﺘﻌﺪد‪-‬ﻣﺘﻌﺪد‬ ‫‪M:N‬‬
‫أﻃﺮاف ﺑﺮأس‬ ‫ﻣﺘﻌﺪد‪-‬واﺣﺪ‬ ‫‪N:1‬‬

‫‪):‬اﻻرﺗﺒﺎط(‪2. Participation‬‬
‫وﺗﻌﺮف ﺑﺄﻧﻬﺎ ﺗﺒﻴﺎن هﻞ أن وﺟﻮد اﻟﻜﻴﺎن ﻳﻌﺘﻤﺪ ﻋﻠﻰ وﺟﻮد آﻴﺎن أﺧﺮ ﺑﻮاﺳﻄﺔ اﻟﻌﻼﻗﺔ‬
‫اﻟﻤﺸﺘﺮآﺔ‪.‬‬
‫وﻗﺪ ﺗﻜﻮن آﺎﻣﻠﺔ أو ﺟﺰﺋﻴﻪ‪:‬‬

‫)‪ (1‬آﺎﻣﻠﺔ)‪:(FULL‬‬
‫وﺗﻌﻨﻲ أﻧﻪ إذا آﺎن هﻨﺎﻟﻚ آﻴﺎﻧﺎن ‪ : S, F‬آﻞ ﺣﺎﻟﺔ ﺣﺼﻮل ﻟﻠﻜﻴﺎن )‪ (F‬ﻳﺠﺐ أن ﺗﺮﺗﺒﻂ‬
‫ﺑﺤﺎﻟﺔ ﺣﺼﻮل ﻟﻠﻜﻴﺎن )‪(S‬‬
‫)‪ (2‬ﺟﺰﺋﻴﺔ)‪:(Partial‬‬
‫و ﺗﻌﻨﻲ أﻧﻪ ﻟﻴﺲ ﺷﺮﻃﺎ أن ﻳﻜﻮن ﻟﻜﻞ ﺣﺎﻟﺔ ﺣﺼﻮل ﻟﻠﻜﻴﺎن )‪ (F‬أن ﺗﺮﺗﺒﻂ ﺑﺤﺎﻟﺔ ﺣﺼﻮل‬
‫ﻟﻠﻜﻴﺎن )‪(S‬‬

‫آﺎﻣﻠﺔ)‪(FULL‬‬

‫ﺟﺰﺋﻴﺔ)‪(Partial‬‬

‫ﻧﻮﻋﻴﺔ اﻟﻜﻴﺎﻧﺎت اﻟﻀﻌﻴﻔﺔ)‪(WE: Weak Entity type‬‬


‫هﻲ اﻟﻜﻴﺎﻧﺎت اﻟﺘﻲ ﺗﻜﻮن ﻣﺮﺗﺒﻄﺔ ﺑﻨﻮﻋﻴﺔ آﻴﺎن ﻣﻌﻴﻨﺔ أﺧﺮى وﻳﻜﻮن هﺬا اﻻرﺗﺒﺎط ﻣﻦ ﺧﻼل‬
‫ﺑﻌﺾ اﻟﺨﺼﺎﺋﺺ‪.‬‬

‫‪37‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﻧﻮﻋﻴﺔ اﻟﻜﻴﺎن اﻷﺧﺮى ﻧﺴﻤﻴﻬﺎ اﻟﻜﻴﺎن اﻟﻤﺎﻟﻚ أو اﻟﻤﻔﺴﺮ)‪.(OE: Owner Entity‬‬


‫اﻟﻌﻼﻗﺔ اﻟﻤﺸﺘﺮآﺔ ﺑﻴﻦ اﻟﻜﻴﺎن اﻟﻀﻌﻴﻒ و اﻟﻜﻴﺎن اﻟﻤﻔﺴﺮ ﺗﺴﻤﻰ اﻟﻌﻼﻗﺔ اﻟﻤﻔﺴﺮة) ‪IR:‬‬
‫‪.(Identifying Relationship‬‬
‫آﻞ ﺣﺎﻟﺔ ﺣﺼﻮل ﻟﻠﻜﻴﺎن اﻟﻀﻌﻴﻒ ﺗﻌﺘﻤﺪ ﻓﻲ وﺟﻮدهﺎ ﻋﻠﻰ ﺣﺎﻟﺔ ﺣﺼﻮل ﻟﻠﻜﻴﺎن‬
‫اﻟﻤﻔﺴﺮ)‪.(OE‬‬
‫اﻟﻤﻔﺘﺎح ﻟﻠﻜﻴﺎن اﻟﻀﻌﻴﻒ ﻻ ﻳﺴﻤﻰ ﻣﻔﺘﺎح رﺋﻴﺴﻲ وﻟﻜﻦ ﻳﺴﻤﻰ اﻟﻤﻔﺘﺎح اﻟﺠﺰﺋﻲ) ‪Partial‬‬
‫‪.(Key‬‬

‫ﻧﺮﻣﺰ ﻟﻠﻜﻴﺎن اﻟﻀﻌﻴﻒ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‪:‬‬


‫‪Weak entity type‬‬

‫وﻟﻠﻌﻼﻗﺔ اﻟﻤﺸﺘﺮآﺔ اﻟﻤﻔﺴﺮة ﺑﺎﻟﺸﻜﻞ‬


‫اﻟﺘﺎﻟﻲ‪:‬‬

‫‪IR‬‬

‫‪A‬‬

‫‪Partial Key attribute‬‬ ‫و ﻟﻠﻤﻔﺘﺎح اﻟﺠﺰﺋﻲ ﺑﺎﻟﺮﻣﺰ‪:‬‬

‫ﻣﺜﺎل‪:‬‬
‫)‪ (1‬آﻞ ﻣﻮﻇﻒ)‪ (EMP‬ﻳﻤﻜﻦ أن ﻳﻜﻮن ﻟﻪ ﻣﻌﺎﻟﻴﻦ)‪ ،(Dependant‬وﻟﻜﻦ آﻞ ﻣﻌﺎل‬
‫ﻳﺠﺐ أن ﻳﻜﻮن ﺗﺎﺑﻌًﺎ)‪ (Weak‬ﻟﻤﻮﻇﻒ ﻣﻌﻴﻦ‪:‬‬

‫‪ENO‬‬ ‫‪Age‬‬

‫‪Dependant‬‬
‫‪EMP‬‬ ‫‪Own‬‬

‫‪OE‬‬ ‫‪1‬‬ ‫‪N‬‬ ‫‪WE‬‬


‫‪Name‬‬
‫‪IR‬‬

‫)‪ (2‬آﻞ ﻣﺴﺎق)‪ (Course‬ﻳﻤﻜﻦ أن ﻳﻜﻮن ﻟﻪ ﺷﻌﺐ)‪ ،(Section‬وﻟﻜﻦ آﻞ ﺷﻌﺒﺔ ﻳﺠﺐ‬


‫أن ﺗﻜﻮن ﺗﺎﺑﻌ ًﺔ)‪ (Weak‬ﻟﻤﺴﺎق ﻣﻌﻴﻦ‪:‬‬

‫‪38‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪CNO‬‬

‫‪Section‬‬
‫‪Course‬‬ ‫‪Offers‬‬

‫‪OE‬‬ ‫‪1‬‬ ‫‪N‬‬ ‫‪WE‬‬


‫‪Sno‬‬
‫‪IR‬‬

‫)‪ (3‬آﻞ ﺑﻨﻚ)‪ (Bank‬ﻳﻤﻜﻦ أن ﻳﻜﻮن ﻟﻪ ﻓﺮوع)‪ ،(Branch‬وﻟﻜﻦ آﻞ ﻓﺮع ﻟﺒﻨﻚ ﻳﺠﺐ‬
‫أن ﻳﻜﻮن ﺗﺎﺑﻌ ًﺎ)‪ (Weak‬ﻟﺒﻨﻚ ﻣﻌﻴﻦ‪:‬‬

‫‪Name‬‬

‫‪Branck‬‬
‫‪Bank‬‬ ‫‪Have‬‬

‫‪OE‬‬ ‫‪1‬‬ ‫‪N‬‬ ‫‪WE‬‬


‫‪Bcode‬‬
‫‪IR‬‬

‫آﻤﺎ ﻧﻼﺣﻆ ﻓﺄن اﻟﻌﻼﻗﺔ اﻟﻤﻔﺴﺮة هﻲ ﻣﻦ ﻧﻮع)‪ (1:N‬و ﻟﻬﺎ ارﺗﺒﺎط آﺎﻣﻞ ﻣﻦ ﺟﻬﺔ اﻟﻜﻴﺎن‬
‫اﻟﻀﻌﻴﻒ‪.‬‬
‫ﻣﻼﺣﻈﺔ ﻋﻠﻰ ﻧﻤﻮذج اﻟﻌﻼﻗﺎت و اﻟﻜﻴﻨﻮﻧﺎت ‪:‬‬
‫ﺑﻌ ﺾ اﻟﻌﻼﻗ ﺎت اﻟﻤ ﺸﺘﺮآﺔ ﻗ ﺪ ﻳﻜ ﻮن ﻟﻬ ﺎ ﺧ ﺼﺎﺋﺺ‪ ،‬ﻣﺜ ﻞ ان اﻟﻤﻮﻇ ﻒ ﻳﻌﻤ ﻞ ﻋﻠ ﻰ‬
‫ﻣﺸﺮوع ﻣﻌﻴﻦ ﺑﻌﺪد ﺳﺎﻋﺎت ﻣﻌﻴﻨﺔ)‪:(Hours‬‬

‫‪ENO‬‬
‫‪Works‬‬
‫‪EMP‬‬ ‫‪On‬‬ ‫‪Project‬‬

‫‪M‬‬ ‫‪N‬‬ ‫‪PNO‬‬


‫‪Name‬‬
‫‪Hours‬‬

‫ﻣﺜﺎل آﺎﻣﻞ ﻋﻠﻰ ﻧﻤﻮذج اﻟﻌﻼﻗﺎت اﻟﻜﻴﻨﻮﻧﺎت)ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻟﺠﺎﻣﻌﺔ(‬


‫ﺑﺎﻷﺧﺬ ﺑﻌﻴﻦ اﻻﻋﺘﺒﺎر اﻟﻤﺠﻤﻮﻋﺔ اﻟﺘﺎﻟﻴﺔ ﻣﻦ اﻟﻤﺘﻄﻠﺒﺎت ﻟﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻟﺠﺎﻣﻌﺔ‪ ،‬اﻟﺘﻲ‬
‫ﺗﺴﺘﺨﺪم ﻟﻤﺘﺎﺑﻌﺔ ﺳﺠﻼت اﻟﻄﻠﺒﺔ‪:‬‬
‫)‪ (1‬ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻄﺎﻟﺐ)‪ ،(student‬اﻟﺠﺎﻣﻌﺔ ﺗﻬﺘﻢ ﺑﺎﻟﺒﻴﺎﻧﺎت اﻟﺘﺎﻟﻴﺔ‪:‬‬
‫‪Student name, Number, Social Security Number (SSN), current address‬‬
‫‪and phone, permanent address and phone, birth date, sex, Class(freshman,‬‬

‫‪39‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪Sophomore,---,graduate), major department, minor department(if any),‬‬


‫‪and degree program (B.A, B.S, ---, PhD).‬‬
‫ﻣﻊ اﻟﻌﻠﻢ أن ﺑﻌﺾ ﺑﺮاﻣﺞ اﻟﺘﻄﺒﻴﻖ ﺗﺤﺘﺎج ﻟﻠﻮﺻﻮل إﻟﻰ اﻟﻤﺪﻳﻨﺔ أو اﻟﺪوﻟﺔ أو اﻟﺮﻣﺰ اﻟﺒﺮﻳﺪي‬
‫ﻟﻠﻄﺎﻟﺐ‪ ،‬و أﻳﻀًﺎ اﻻﺳﻢ اﻷﺧﻴﺮ ﻟﻠﻄﺎﻟﺐ‪ .‬أﻳﻀًﺎ ﻧﻌﺮف ﺑﺎن ‪ SSN, Student Number‬ﻟﻬﺎ ﻗﻴﻢ‬
‫ﻓﺮﻳﺪة ﻟﻜﻞ ﻃﺎﻟﺐ‪.‬‬
‫)‪ (2‬ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﺪاﺋﺮة)‪ ،(Department‬ﺗﻮﺻﻒ ﺑﺎﻟﺘﺎﻟﻴﺔ‪:‬‬
‫‪Name, Department code, Office number, office phone, and collage.‬‬
‫أﻳﻀ ًﺎ ﻧﻌﺮف ﺑﺎن ‪ Code, name‬ﻟﻬﺎ ﻗﻴﻢ ﻓﺮﻳﺪة ﻟﻜﻞ داﺋﺮة‪.‬‬
‫)‪ (3‬ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻤﺴﺎق)‪ ،(Course‬ﺗﻮﺻﻒ ﺑﺎﻟﺘﺎﻟﻴﺔ‪:‬‬
‫‪Course Number, Number of Semester Hours, level, offering department.‬‬
‫أﻳﻀ ًﺎ ﻧﻌﺮف ﺑﺎن ‪ Course number‬ﻟﻬﺎ ﻗﻴﻢ ﻓﺮﻳﺪة ﻟﻜﻞ ﻣﺴﺎق‪.‬‬
‫)‪ (4‬ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﺸﻌﺒﺔ)‪ ،(Section‬ﺗﻮﺻﻒ ﺑﺎﻟﺘﺎﻟﻴﺔ‪:‬‬
‫‪Instructor, Semester, Year, Course, and Section Number.‬‬
‫أﻳﻀ ًﺎ ﻧﻌﺮف رﻗﻢ اﻟﺸﻌﺒﺔ ﻳﻔﺮق ﺑﻴﻦ اﻟﺸﻌﺐ اﻟﻤﺨﺘﻠﻔﺔ ﻟﻠﻤﺴﺎق اﻟﻤﻌﻨﻲ اﻟﺬي ﻳﺪرس ﻓﻲ ﻓﺼﻞ و ﺳﻨﺔ‬
‫ﻣﻌﻨﻴﺔ‪.‬‬
‫)‪ (5‬ﺗﻘﺮﻳﺮ اﻟﻌﻼﻣﺎت ﻟﻠﻄﺎﻟﺐ‪ ،‬ﻳﺤﺘﻮي ﻋﻠﻰ ﻃﺎﻟﺐ‪ ،‬ﺷﻌﺒﺔ‪ ،‬وﻋﻼﻣﺔ آﺘﺎﺑﻴﺔ)ﺟﻴﺪ‪،‬ﺟﻴﺪ‬
‫ﺟﺪاً‪ ،‬ﻣﻤﺘﺎز(‪ ،‬وﻋﻼﻣﺔ رﻗﻤﻴﺔ)‪.(----،88،99‬‬
‫اﻟﻤﻄﻠﻮب‪:‬‬
‫ﺻﻤﻢ ﻧﻤﻮذج اﻟﻌﻼﻗﺎت و اﻟﻜﻴﻨﻮﻧﺎت ﻟﻬﺬا اﻟﺘﻄﺒﻴﻖ‪ ،‬وأرﺳﻤﻪ‪ ،‬ﻋﻴﻦ اﻟﺨﺼﺎﺋﺺ اﻟﻤﻔﺘﺎﺣﻴﺔ‪ ،‬ﻟﻜﻞ‬
‫ﻧﻮﻋﻴﺎت آﻴﺎﻧﺎت‪ ،‬و اﻟﻀﻮاﺑﻂ اﻟﺒﻨﺎﺋﻴﺔ ﻋﻠﻰ آﻞ ﻋﻼﻗﺔ ﻣﺸﺘﺮآﺔ‪ ،‬ﻻﺣﻆ وﺟﻮد أي ﻣﺘﻄﻠﺒﺎت ﻏﻴﺮ‬
‫ﻼ‪:‬‬
‫ﻣﺬآﻮرة و اﻋﻤﻞ ﻣﺎ هﻮ ﻣﻄﻠﻮب ﻟﻴﻜﻮن هﺬا اﻟﻮﺻﻒ آﺎﻣ ً‬

‫ﺧﻄﻮات اﻟﺤﻞ‪:‬‬
‫ﺗﺤﻠﻴﻞ اﻟﺒﻴﺎﻧﺎت‪.‬‬ ‫أ‪-‬‬
‫ب‪ -‬اﺳﺘﺨﺮاج اﻟﻜﻴﺎﻧﺎت و اﻟﺨﺼﺎﺋﺺ)‪:(Entity Type, Attrbutes‬‬
‫‪1. Student:‬‬
‫‪Sname, SNO, SSN, …………………………….‬‬
‫‪2. Dept:‬‬

‫‪40‬‬
2003 ‫ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ‬.‫م‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

Dname, Dcode, office_NO, office_phone, collage.


3. Course: OE
CNO, Hours, Level.
4. Section: WE
Instructor, semester, year, SECTno.
‫ﻼ‬
ً ‫ ﻗﻢ ﺑﺮﺳﻤﻪ آﺎﻣ‬،‫ اﻟﺮﺳﻤﺔ اﻟﺘﺎﻟﻴﺔ ﺗﻤﺜﻞ ﺟﺰأ ﻣﻦ اﻟﻨﻤﻮذج‬،(E-R Model) ‫ ﻧﺮﺳﻢ ﻧﻤﻮذج‬-‫ج‬
:‫ﻋﻠﻰ ورﻗﺔ آﺘﻤﺮﻳﻦ‬

Major
In
DNO
1 N SNO

Dept Student

1 Minor
N
1 In

Offer Grade
NO Grade
report

N
CNO

Section
Course cs
1 N Sectno

semester Year

41
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫اﻟﻨﻤﻮذج اﻟﻌﻼﺋﻘﻲ)‪(Relational Model‬‬

‫اﻟﻨﻈﺎم اﻟﻌﻼﺋﻘﻲ هﻮ اﻷﺳﺎس ﻟﻘﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻌﻼﺋﻘﻴﺔ)ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺠﺪاول وﻋﻼﻗﺎت‬


‫ﺑﻴﻨﻬﺎ(‪.‬‬
‫ﻣﺨﺘﺮع اﻟﻨﻈﺎم اﻟﻌﻼﺋﻘﻲ هﻮ آﻮد)‪ (Codd‬ﻓﻲ ﻋﺎم ‪.1970‬‬

‫ﺗﻌﺮﻳﻔﺎت‪:‬‬

‫‪ .1‬اﻟﻌﻼﻗﺔ )‪:(Relation‬‬
‫هﻲ ﻋﺒﺎرة ﻋﻦ ﺣﻘﻴﻘﺔ)‪ (Fact‬ﺗﻤﺜﻞ آﻴﺎن أو ﻋﻼﻗﺔ ﻣﺸﺘﺮآﺔ)‪.(Relationship‬‬
‫أﻣﺜﻠﺔ‪:‬‬
‫)‪ (1‬اﻟﻄﺎﻟﺐ‪.Student( No, Name, Address,…) :‬‬
‫)‪ (2‬اﻟﻌﻼﻗﺔ اﻟﻤﺸﺘﺮآﺔ ﻳﻌﻤﻞ ﻋﻠﻰ)‪:(Works on‬‬

‫‪ENO‬‬
‫‪Works‬‬
‫‪EMP‬‬ ‫‪On‬‬ ‫‪Project‬‬

‫‪M‬‬ ‫‪N‬‬ ‫‪PNO‬‬


‫‪Name‬‬
‫‪Hours‬‬

‫ﺗﺤﻮل إﻟﻰ ﻋﻼﻗﺔ ‪.Works_on(Eno,Pno,Hours) :‬‬

‫اﻟﻌﻼﻗﺔ )‪ :(Relation‬هﻲ ﺗﻤﺜﻞ اﻟﺠﺪول )‪ ،(Table‬ﺑﺘﺤﻮﻻت اﻟﻤﻔﺎهﻴﻢ اﻟﺘﺎﻟﻴﺔ‪:‬‬


‫‪) Æ‬ﺧﺎﺻﻴﺔ(‪Attribute‬‬ ‫‪).‬ﻋﻤﻮد رأﺳﻲ(‪Column Headers‬‬
‫)ﻋﻨﺼﺮ(‪Tuple‬‬ ‫‪Æ‬‬ ‫‪).‬ﺻﻒ(‪Row‬‬
‫)اﻟﻤﺠﺎل(‪Domain‬‬ ‫‪Æ‬‬ ‫‪).‬ﻧﻮﻋﻴﺔ اﻟﺒﻴﺎﻧﺎت(‪Data Type‬‬

‫اﻟﻌﻼﻗﺔ ﻣﻜﻮﻧﺔ ﻣﻦ اﻟﺘﺎﻟﻴﺔ‪:‬‬


‫)‪ (1‬رأس )‪:(Heading‬‬
‫ﻳﺘﻜﻮن ﻣﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺤﻘﻮل )‪ ،(A1………. An‬ﺑﺤﻴﺚ ان آﻞ ﺣﻘﻞ ﻣﻦ اﻟﺤﻘﻮل ﻳﺘﺒﻊ‬
‫ﻣﺠﺎل ﻣﻌﻴﻦ )‪.(Di‬‬

‫‪42‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫)‪ (2‬ﺟﺴﻢ)‪:(Body‬‬
‫ﻳﺘﻜﻮن ﻣﻦ ﻣﺠﻤﻮﻋﺔ ﻣﺘﻐﻴﺮة ﻣﻊ اﻟﺰﻣﻦ ﻣﻦ اﻟﻌﻨﺎﺻﺮ)‪ (Tuples‬أو اﻟﺼﻔﻮف‬
‫)‪ ،(Rows‬ﺣﻴﺚ أن آﻞ ﺻﻒ ﻳﺘﻜﻮن ﻣﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺨﺼﺎﺋﺺ‪.‬‬
‫ﺧﺼﺎﺋﺺ اﻟﻌﻼﻗﺔ‪:‬‬
‫آﻤﺎ ﻗﻠﻨﺎ‪ ،‬اﻟﻌﻼﻗﺔ هﻲ ﻣﺠﻤﻮﻋﺔ )‪ ،(Set‬و ﺗﺄﺧﺬ ﺟﻤﻴﻊ اﻟﺨﺼﺎﺋﺺ ﻟﻠﻤﺠﻤﻮﻋﺔ اﻟﺮﻳﺎﺿﻴﺔ اﻟﺘﺎﻟﻴﺔ‪:‬‬
‫)‪ (1‬ﻻ ﻳﺸﺘﺮط ﻓﻲ اﻟﻌﻼﻗﺔ ﺗﺮﺗﻴﺐ اﻟﻌﻨﺎﺻﺮ)‪.(Tuples‬‬
‫)‪ (2‬اﻟﺤﻘﻮل ﻟﻠﻌﻨﺼﺮ ﻻ ﻳﺸﺘﺮط ﻓﻴﻬﺎ اﻟﺘﺮﺗﻴﺐ‪.‬‬
‫)‪ (3‬ﻻ ﻳﺠﻮز ﺗﻜﺮار اﻟﻌﻨﺎﺻﺮ‪.‬‬
‫)‪ (4‬آﻞ ﻋﻨﺼﺮ ﻳﺤﺘﻮي ﻋﻠﻰ ﻗﻴﻤﺔ واﺣﺪة ﻟﻜﻞ ﺣﻘﻞ‪ ،‬ﻻ ﻳﺠﻮز أن ﻳﻜﻮن هﻨﺎﻟﻚ ﺣﻘﻮل‬
‫ﻣﺘﻌﺪدة اﻟﻘﻴﻤﺔ‪.‬‬
‫‪ .2‬اﻟﻤﺠﺎل)‪:(Domain‬‬
‫اﻟﻤﺠﺎل هﻮ ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋ ﺔ ﻣ ﻦ اﻟﻘ ﻴﻢ اﻻﻓﺮادﻳ ﺔ اﻟﻨﻮوﻳ ﺔ‪ ،‬ﺑﺤﻴ ﺚ أن آ ﻞ ه ﺬﻩ اﻟﻘ ﻴﻢ ﻣ ﻦ‬
‫ﻧﻔ ﺲ اﻟﻨ ﻮع‪ ،‬وآ ﻞ ﻣﺠ ﺎل ﻟ ﻪ أﺳ ﻢ ﻣﺠ ﺎل)‪ (Domain Name‬و ﻧﻮﻋﻴ ﺔ ﺑﻴﺎﻧ ﺎت) ‪Data‬‬
‫‪ (Type‬و ﺷﻜﻞ )‪:(Format‬‬
‫‪Each Domain Æ Name, Data Type, Format.‬‬
‫ﻣﺜﺎل‪:‬‬
‫رﻗﻢ اﻟﻄﺎﻟﺐ‪ :‬رﻗﻢ ﺻﺤﻴﺢ‪ 1 ،‬ﺣﺘﻰ ‪ ،999999‬أول رﻗﻤﻴﻦ ﻳﻤﺜﻼن اﻟﺴﻨﺔ واﻟﺒﻘﻴﺔ اﻟﻄﺎﻟﺐ ﻓﻲ‬
‫هﺬﻩ اﻟﺴﻨﺔ‪.‬‬
‫اﻟﻤﺠﺎل اﻟﻤﺮآﺐ)‪:(Composite domain‬‬
‫ﻣﺠﻤﻮﻋ ﺔ ﻣﺮآﺒ ﺔ ﻣ ﻦ ﻋ ﺪة ﻣﺠ ﺎﻻت ﺑ ﺴﻴﻄﺔ)‪،(Collection of Simple Domains‬‬
‫ﻣﺜﺎل‪:‬‬
‫)‪. Bdate(Day(1-31), Month(1-12), Year‬‬ ‫ﺗﺎرﻳﺦ اﻟﻤﻴﻼد‪:‬‬

‫‪ .3‬درﺟﺔ اﻟﻌﻼﻗﺔ)‪:(Relation Degree‬‬


‫ﺗﻤﺜﻞ ﻋﺪد اﻟﺨﺼﺎﺋﺺ اﻟﺤﻘﻮل ﻓﻲ اﻟﻌﻼﻗﺔ و ﺗﻜﻮن ﻋﺎدة ﺛﺎﺑﺘﺔ ﻣﻊ اﻟﺰﻣﻦ‪:‬‬
‫‪No of attributes in the relation, fixed with time.‬‬

‫‪43‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪ .4‬ﺟﻮهﺮﻳﺔ اﻟﻌﻼﻗﺔ )‪:(Relation Cardinality‬‬


‫ﺗﻤﺜﻞ ﻋﺪد اﻟﻌﻨﺎﺻﺮ ﻓﻲ اﻟﻌﻼﻗﺔ و ﺗﻜﻮن ﻋﺎدة ﻣﺘﻐﻴﺮة ﻣﻊ اﻟﺰﻣﻦ‪:‬‬
‫‪No of Tuples (Rows) in the relation, Varies with time.‬‬

‫‪ .5‬ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت اﻟﻌﻼﺋﻘﻴﺔ)‪(Relational DB‬‬


‫ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ﺗﺘﻜﻮن ﻣ ﻦ ﻣﺠﻤﻮﻋ ﺔ ﻣﺘﻐﻴ ﺮة ﻣ ﻊ اﻟ ﺰﻣﻦ ﻣ ﻦ اﻟﻌﻼﻗ ﺎت)‪ (Relations‬ذات درﺟ ﺔ‬
‫ﻋﻼﻗﺔ ﻣﻌﻴﻨﺔ‪ ،‬أﻧﻬﺎ ﺗﻌﺘﻤﺪ ﻋﻠﻰ اﻟﻨﻤﻮذج اﻟﻌﻼﺋﻘﻲ و اﻟﺬي ﻳﻌﺘﺒﺮ ﻧﻤﻮذج ﺑﻴﺎﻧﺎت ﻣﻨﻄﻘﻲ‪:‬‬
‫}‪Relational DB= S { R1, R2, R3,-------------, Rn‬‬
‫ﺑﺤﻴﺚ أن ﻟﻜﻞ ﻣﻦ )‪ (,….. Rn1R‬ﺧﻄﺔ ﻋﻼﺋﻘﻴ ﺔ )ﺣﻘ ﻮل( ‪ ،‬ﻣ ﻊ ﻣﺠﻤﻮﻋ ﺔ ﻣ ﻦ ﺿ ﻮاﺑﻂ ﺻ ﺤﺔ‬
‫اﻟﻤﻌﻠﻮﻣﺎت )‪.(Integrity Constraints‬‬

‫ﺿﻮاﺑﻂ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻌﻼﺋﻘﻴﺔ )‪(Relational Db Constraints‬‬

‫‪ .1‬ﺿﻮاﺑﻂ اﻟﻤﺠﺎل)‪(Domain Constraints‬‬


‫ﺗﺘﻤﺜﻞ ﺑﺎن آﻞ ﻗﻴﻤﺔ ﻟﻜﻞ ﺣﻘ ﻞ ‪ A‬ﻳﺠ ﺐ ان ﺗﻜ ﻮن ﻗﻴﻤﺘ ﻪ ﺗﺘﺒ ﻊ ﻣﺠ ﺎل ﻣﻌ ﻴﻦ ‪ ،D‬و آ ﻞ ﻣﺠ ﺎل‬
‫ﻳﺠﺐ أن ﻳﺘﺒﻊ ﻧﻮﻋﻴﺔ ﺑﻴﺎﻧﺎت ﻣﻌﻴﻨﺔ)‪.(Data Type‬‬
‫‪ .2‬ﺿﻮاﺑﻂ اﻟﻤﻔﺎﺗﻴﺢ)‪:(Key Constraints‬‬
‫ﺗﺘﻤﺜﻞ هﺬﻩ اﻟﻀﻮاﺑﻂ ﻓﻲ اﻟﺸﻴﺌﻴﻴﻦ اﻟﺘﺎﻟﻴﻴﻦ‪:‬‬
‫اﻟﻤﻔﺎﺗﻴﺢ اﻟﺮﺋﻴﺴﻴﺔ )‪.(PK: Primary Key‬‬ ‫أ‪-‬‬
‫ب‪ -‬اﻟﻤﻔﺎﺗﻴﺢ اﻟﻐﺮﻳﺒﺔ )‪.(FK: Foreign Key‬‬

‫اﻟﻤﻔﺎﺗﻴﺢ اﻟﺮﺋﻴﺴﻴﺔ )‪.(PK: Primary Key‬‬ ‫أ‪-‬‬


‫ﻓﻲ اﻟﻌﻼﻗﺔ ‪: R‬‬
‫}‪Relation R { A1, A2, A3,-------------, An‬‬
‫ﺗﻌﺘﺒﺮ اﻟﻤﺠﻤﻮﻋﺔ‪ K‬اﻟﺘﻲ هﻲ ﻣﺠﻤﻮﻋﺔ ﻓﺮﻋﻴﺔ ﻣﻦ ‪:R‬‬
‫}‪R { Ai, Aj, -------------, Ak‬‬

‫ﺗﻌﺘﺒﺮ ﻣﻔﺘﺎح ﻣﺮﺷﺢ )‪ (Candidate key‬ﻟﻠﻌﻼﻗﺔ ‪ R‬إذا ﺣﻘﻘﺖ اﻟﺸﺮوط اﻟﺘﺎﻟﻴﺔ‪:‬‬

‫‪44‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫)‪ (1‬ﻗﺎﻋﺪة اﻹﻓﺮادﻳﺔ)‪:(Uniqueness Rule‬‬


‫أي اﻟﺤﻘﻮل ﻟﻬﺎ ﻗﻴﻢ ﻓﺮﻳﺪة‪ ،‬و ﺑﺎﻟﺸﻜﻞ اﻟﺮﻳﺎﺿﻲ‪:‬‬

‫‪Ti [S k ] ≠ T j [S k ] For All i ≠ j‬‬


‫أذا آ ﺎن اﻟﺤﻘ ﻞ أو ﻣﺠﻤﻮﻋ ﺔ اﻟﺤﻘ ﻮل )‪ (Sk‬ﺗﺤﻘ ﻖ ﻗﺎﻋ ﺪة اﻷﻓﺮادﻳ ﺔ ‪ ،‬ﻳﻜ ﻮن اﻟﻤﻔﺘ ﺎح ﻓ ﺎﺋﻖ‬
‫)‪.(Super key‬‬
‫)‪ (2‬ﻗﺎﻋﺪة اﻟﺘﻘﻠﻴﻞ)‪:(Minimality Rule‬‬
‫ﺗﻌﻨﻲ ﺣﺬف أي ﺣﻘﻞ ‪ A‬ﻣﻦ اﻟﻤﻔﺘﺎح اﻟﻔﺎﺋﻖ‪ ،‬ﻳﺘﺮك ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺤﻘﻮل اﻟﺘﻲ ﻟﻴﺴﺖ ﻣﻔﺘﺎح‬
‫ﻟﻠﻌﻼﻗﺔ‪.‬‬
‫إذا آ ﺎن اﻟﺤﻘ ﻞ أو ﻣﺠﻤﻮﻋ ﺔ اﻟﺤﻘ ﻮل ﺗﺤﻘ ﻖ ﻗﺎﻋ ﺪة اﻹﻓﺮادﻳ ﺔ و اﻟﺘﻘﻠﻴ ﻞ ﻳ ﺴﻤﻰ ﻣﻔﺘ ﺎح‬
‫ﻣﺮﺷﺢ)‪.(Candidate Key‬‬
‫ﻓﻲ اﻟﻨﻬﺎﻳﺔ ﺳﻴﻜﻮن ﻋﻨﺪﻧﺎ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻤﻔﺎﺗﻴﺢ اﻟﻤﺮﺷ ﺤﺔ‪ ،‬ﻳﺠ ﺐ ان ﻧﺨﺘ ﺎر أﺣ ﺪاهﺎ آﻤﻔﺘ ﺎح‬
‫رﺋﻴﺴﻲ ﻟﻠﻌﻼﻗﺔ ‪.R‬‬

‫ب‪ -‬اﻟﻤﻔﺘﺎح اﻟﻐﺮﻳﺐ) ‪:(Foreign Key‬‬


‫ﺣﻘ ﻞ أو ﻣﺠﻤﻮﻋ ﺔ ﻣ ﻦ اﻟﺤﻘ ﻮل )‪ (Fk‬ﻓ ﻲ اﻟﻌﻼﻗ ﺔ ‪ ،R1‬ه ﻲ ﻣﻔﺘ ﺎح ﻏﺮﻳ ﺐ ﻟﻠﻌﻼﻗ ﺔ ‪،R2‬‬
‫آﺎﻟﺘﺎﻟﻲ‪:‬‬

‫) ‪D ( FK‬‬ ‫) ‪D ( PK‬‬
‫‪R1‬‬ ‫‪R2‬‬
‫)‪ (1‬اﻟﺤﻘﻮل ﻓﻲ ‪ FK‬ﻟﻬﺎ ﻧﻔﺲ اﻟﻤﺠﺎل ﻟﻠﻤﻔﺘﺎح اﻟﺮﺋﻴﺴﻲ ﻓﻲ اﻟﻌﻼﻗﺔ اﻷﺧﺮى‪.‬‬
‫)‪ (2‬اﻟﻘﻴﻢ ﻟﻠﻤﻔﺘﺎح اﻟﻐﺮﻳﺐ ‪ FK‬ﻓﻲ أﺣﺪ اﻟﻌﻨﺎﺻﺮ ‪ T1‬ﻓﻲ اﻟﻌﻼﻗﺔ اﻷوﻟﻰ‪ ،‬ﻳﺠﺐ أن ﺗﻜﻮن أﻣﺎ‪:‬‬
‫أ‪ .‬ﻗﻴﻢ ﻟﻠﻤﻔﺘﺎح اﻟﺮﺋﻴﺴﻲ )‪ (PK‬ﻓﻲ اﻟﻌﻼﻗﺔ ‪ R2‬ﻓﻲ أﺣﺪى اﻟﻌﻨﺎﺻﺮ ‪.T2‬‬
‫ب‪ .‬ﺑﺪون ﻗﻴﻤﺔ )‪.(NULL Value‬‬
‫و ﺑﺎﻟﺸﻜﻞ اﻟﺮﻳﺎﺿﻲ‪:‬‬

‫‪45‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫] ‪T1 [FK ] = T2 [PK‬‬


‫‪⇒ T1 [R1 ] ⎯Re‬‬ ‫] ‪⎯→ T2 [R2‬‬
‫‪⎯fers‬‬
‫‪or T1 [FK ] = NULL‬‬

‫‪ .3‬اﻟﻘﻮاﻋﺪ اﻟﻀﺒﻄﻴﺔ )‪:(Constraints Rules‬‬

‫ﺻﺤﺔ اﻟﻜﻴﺎن )‪:(Entity Integrity‬‬ ‫أ‪-‬‬


‫ﻻ ﻳﺠﻮز أن ﺗﻜﻮن أﺣﺪ اﻟﺤﻘﻮل ﻓﻲ اﻟﻤﻔﺘﺎح اﻟﺮﺋﻴﺴﻲ ﺑﺪون ﻗﻴﻤﺔ )‪.(NULL‬‬

‫ب‪ -‬ﺻﺤﺔ اﻟﺘﻮزﻳﻊ )‪:(Referential Integrity‬‬


‫ﻓﻲ اﻟﻌﻼﻗﺔ ‪ R2‬اﻟﺘﻲ ﺗﺤﺘﻮي ﻋﻠ ﻰ ﻣﻔﺘ ﺎح ﻏﺮﻳ ﺐ)‪ ،(FK‬اﻟ ﺬي ﻳﻤﺜ ﻞ ﻣﻔﺘ ﺎح رﺋﻴ ﺴﻲ )‪ ،(PK‬ﻓ ﻲ‬
‫اﻟﻌﻼﻗﺔ ‪ ، R1‬ﻳﺠﺐ أن ﺗﻜﻮن آﻞ ﻗﻴﻤﺔ ﻟﻠﻤﻔﺘﺎح اﻟﻐﺮﻳﺐ إﻣﺎ‪:‬‬
‫‪ .1‬ﺗﺴﺎوي ﻗﻴﻤﺔ اﻟﻤﻔﺘﺎح اﻟﺮﺋﻴﺴﻲ ﻓﻲ إﺣﺪى اﻟﻌﻨﺎﺻﺮ ﻟﻠﻌﻼﻗﺔ ‪.R1‬‬
‫‪ .2‬أو ﺑﺪون ﻗﻴﻤﺔ)‪.(NULL‬‬

‫ﺗﺤﻮﻳﻞ ﻧﻤﻮذج اﻟﻌﻼﻗﺎت و اﻟﻜﻴﻨﻮﻧﺎت إﻟﻰ اﻟﻨﻤﻮذج اﻟﻌﻼﺋﻘﻲ ) ‪ER To‬‬


‫‪(Relational‬‬

‫ﻳﺘﻢ ﺗﺤﻮﻳﻞ ﻧﻤﻮذج اﻟﻌﻼﻗﺎت و اﻟﻜﻴﻨﻮﻧﺎت اﻟﻰ اﻟﻨﻤﻮذج اﻟﻌﻼﺋﻘﻲ ﻋﺒﺮ اﻟﺨﻄﻮات اﻟﺘﺎﻟﻴﺔ‪:‬‬
‫• اﻟﻜﻴﺎﻧﺎت اﻟﻌﺎدﻳﺔ)‪:(Regular Entities‬‬
‫‪ o‬آ ﻞ آﻴ ﺎن ﻋ ﺎدي ‪ S‬ﻳﺤ ﻮل إﻟ ﻰ ﺟ ﺪول‪ R.‬و ﻧﺠﻌ ﻞ آ ﻞ اﻟﺨ ﺼﺎﺋﺺ اﻟﺒ ﺴﻴﻄﺔ و‬
‫اﻷﻗﺴﺎم اﻟﺒﺴﻴﻄﺔ ﻟﻠﺨﺼﺎﺋﺺ اﻟﻤﺮآﺒﺔ آﺤﻘﻮل ﻓﻲ اﻟﺠﺪول ‪.R‬‬
‫‪ o‬اﻟﻤﻔﺘﺎح اﻟﻤﺮﺷﺢ ﻟﻠﺠﺪول اﻟﻨﺎﺗﺞ ‪ R‬هﻮ اﻟﻤﻔﺘﺎح اﻟﺮﺋﻴﺴﻲ ﻟﻠﻜﻴﺎن ‪.S‬‬

‫• اﻟﻜﻴﺎﻧﺎت اﻟﻀﻌﻴﻔﺔ)‪:(Week Entities‬‬


‫‪ o‬آﻞ آﻴﺎن ﺿ ﻌﻴﻒ ‪ S‬ﻣﻤﻠ ﻮك ﻟﻠﻜﻴ ﺎن اﻟﻤﺎﻟ ﻚ ‪ T‬ﻳﺤ ﻮل إﻟ ﻰ ﺟ ﺪول ‪ .R‬و ﻧﺠﻌ ﻞ آ ﻞ‬
‫اﻟﺨﺼﺎﺋﺺ اﻟﺒﺴﻴﻄﺔ و اﻷﻗﺴﺎم اﻟﺒ ﺴﻴﻄﺔ ﻟﻠﺨ ﺼﺎﺋﺺ اﻟﻤﺮآﺒ ﺔ آﺤﻘ ﻮل ﻓ ﻲ اﻟﺠ ﺪول‬

‫‪46‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪ .R‬آﻤﺎ وﻧﺠﻌﻞ آﻞ اﻟﺨ ﺼﺎﺋﺺ اﻟﺒ ﺴﻴﻄﺔ و اﻷﻗ ﺴﺎم اﻟﺒ ﺴﻴﻄﺔ ﻟﻠﺨ ﺼﺎﺋﺺ اﻟﻤﺮآﺒ ﺔ‬
‫ﻟﻠﻌﻼﻗﺔ اﻟﻤﺸﺘﺮآﺔ اﻟﻤﻌﺮﻓﺔ)‪ (IR‬آﺤﻘﻮل ﻓﻲ اﻟﺠﺪول ‪.R‬‬
‫‪ o‬اﻟﻤﻔﺘ ﺎح اﻟﻤﺮﺷ ﺢ ﻟﻠﺠ ﺪول اﻟﻨ ﺎﺗﺞ ‪ R‬ه ﻮ ﻋﺒ ﺎرة ﻋ ﻦ ﻣﺮآ ﺐ ﻣ ﻦ اﻟﻤﻔﺘ ﺎح اﻟﺠﺰﺋ ﻲ‬
‫ﻟﻠﻜﻴﺎن اﻟﻀﻌﻴﻒ ‪ S‬ﻣﻊ اﻟﻤﻔﺘﺎح اﻟﺮﺋﻴﺴﻲ ﻟﻠﻜﻴﺎن اﻟﻤﺎﻟﻚ ‪.T‬‬
‫‪ o‬ﻧﺠﻌﻞ اﻟﺠﺰء اﻟﻤﻤﺜﻞ ﻟﻠﻜﻴﺎن اﻟﻤﺎﻟ ﻚ ﻓ ﻲ اﻟﻤﻔﺘ ﺎح اﻟﻤﺮﺷ ﺢ ﻣﻔﺘﺎﺣ ًﺎ ﻏﺮﻳﺒ ًﺎ ﻳﻌ ﻮد ﻋﻠ ﻰ‬
‫اﻟﻤﻔﺘﺎح اﻟﺮﺋﻴﺴﻲ ﻟﻠﺠﺪول اﻟﺬي ﻳﻤﺜﻞ اﻟﻜﻴﺎن اﻟﻤﺎﻟﻚ‪.‬‬

‫• اﻟﻌﻼﻗ ﺎت اﻟﻤ ﺸﺘﺮآﺔ اﻟﺜﻨﺎﺋﻴ ﺔ ﻣ ﻦ ﻧ ﻮع ﻣﺘﻌ ﺪد اﻟ ﻰ ﻣﺘﻌ ﺪد) ‪Many-Many‬‬


‫‪:(Relationships‬‬
‫‪ o‬آﻞ ﻋﻼﻗﺔ ﻣ ﺸﺘﺮآﺔ ﻣ ﻦ ﻧ ﻮع ﻣﺘﻌ ﺪد إﻟ ﻰ ﻣﺘﻌ ﺪد ‪ S‬ﺑ ﻴﻦ اﻟﻜﻴ ﺎﻧﻴﻦ )‪ (T1,T2‬ﺗﺤ ﻮل‬
‫إﻟ ﻰ ﺟ ﺪول ‪ .R‬آﻤ ﺎ وﻧﺠﻌ ﻞ آ ﻞ اﻟﺨ ﺼﺎﺋﺺ اﻟﺒ ﺴﻴﻄﺔ و اﻷﻗ ﺴﺎم اﻟﺒ ﺴﻴﻄﺔ‬
‫ﻟﻠﺨﺼﺎﺋﺺ اﻟﻤﺮآﺒﺔ ﻟﻠﻌﻼﻗﺔ اﻟﻤﺸﺘﺮآﺔ ‪ S‬آﺤﻘﻮل ﻓﻲ اﻟﺠﺪول ‪.R‬‬
‫‪ o‬اﻟﻤﻔﺘﺎح اﻟﻤﺮﺷﺢ ﻟﻠﺠﺪول اﻟﻨﺎﺗﺞ ‪ R‬هﻮ ﻋﺒﺎرة ﻋﻦ ﻣﺮآﺐ ﻣ ﻦ اﻟﻤﻔﺘ ﺎﺣﻴﻦ اﻟﺮﺋﻴ ﺴﻴﻴﻦ‬
‫ﻟﻠﻜﻴﺎﻧﻴﻦ اﻟﻤﺸﺘﺮآﻴﻦ ﻓﻲ اﻟﻌﻼﻗﺔ‪.‬‬
‫‪ o‬ﻧﺠﻌ ﻞ اﻟﺠ ﺰﺋﻴﻦ اﻟﻤﻤﺜﻠ ﻴﻦ ﻟﻠﻜﻴ ﺎﻧﻴﻦ اﻟﻤ ﺸﺘﺮآﻴﻦ ﻓ ﻲ اﻟﻌﻼﻗ ﺔ ﻓ ﻲ اﻟﻤﻔﺘ ﺎح اﻟﻤﺮﺷ ﺢ‬
‫ﻣﻔﺘ ﺎﺣﻴﻦ ﻏ ﺮﻳﺒﻴﻦ ﻳﻌ ﻮدان ﻋﻠ ﻰ اﻟﻤﻔﺘ ﺎح اﻟﺮﺋﻴ ﺴﻲ ﻟﻠﺠ ﺪول اﻟ ﺬي ﻳﻤﺜ ﻞ آ ﻞ واﺣ ﺪ‬
‫ﻣﻨﻬﻤﺎ‪.‬‬

‫‪One-Many‬‬ ‫• اﻟﻌﻼﻗ ﺎت اﻟﻤ ﺸﺘﺮآﺔ اﻟﺜﻨﺎﺋﻴ ﺔ ﻣ ﻦ ﻧ ﻮع واﺣ ﺪ اﻟ ﻰ ﻣﺘﻌ ﺪد)‬


‫‪:(Relationships‬‬
‫‪ o‬آﻞ ﻋﻼﻗﺔ ﻣﺸﺘﺮآﺔ ﻣﻦ ﻧﻮع واﺣﺪ إﻟﻰ ﻣﺘﻌﺪد ‪ S‬ﺑﻴﻦ اﻟﻜﻴﺎﻧﻴﻦ )‪ ،(T1,T2‬ﺑﺤﻴﺚ أن‬
‫‪ T1‬ﻣ ﻦ ﺟﻬ ﺔ اﻟﻮاﺣ ﺪ و ‪ T2‬ﻣ ﻦ ﺟﻬ ﺔ ﻣﺘﻌ ﺪد‪ ،‬وﺑﺤﻴ ﺚ أن )‪ (R1,R2‬اﻟﺠ ﺪوﻟﻴﻦ‬
‫اﻟﺬﻳﻦ ﻳﻤﺜﻼن اﻟﻜﻴﺎﻧﻴﻦ)‪.(T1,T2‬‬
‫ﻼ ﻓ ﻲ اﻟﺠ ﺪول ‪ .R2‬وﻧﺠﻌ ﻞ ه ﺬا اﻟﺤﻘ ﻞ‬‫‪ o‬ﻧﺠﻌﻞ اﻟﻤﻔﺘ ﺎح اﻟﺮﺋﻴ ﺴﻲ ﻟﻠﺠ ﺪول ‪ R1‬ﺣﻘ ً‬
‫)أو ﻣﺠﻤﻮﻋ ﺔ اﻟﺤﻘ ﻮل( ﻣﻔﺘﺎﺣ ﺎ ً ﻏﺮﻳﺒ ًﺎ ﻳﻌ ﻮد ﻋﻠ ﻰ اﻟﻤﻔﺘ ﺎح اﻟﺮﺋﻴ ﺴﻲ ﻟﻠﻌﻼﻗ ﺔ ‪.R1‬‬
‫آﻤ ﺎ وﻧﺠﻌ ﻞ آ ﻞ اﻟﺨ ﺼﺎﺋﺺ اﻟﺒ ﺴﻴﻄﺔ و اﻷﻗ ﺴﺎم اﻟﺒ ﺴﻴﻄﺔ ﻟﻠﺨ ﺼﺎﺋﺺ اﻟﻤﺮآﺒ ﺔ‬
‫ﻟﻠﻌﻼﻗﺔ اﻟﻤﺸﺘﺮآﺔ ‪ S‬آﺤﻘﻮل ﻓﻲ اﻟﺠﺪول ‪.R2‬‬

‫‪One-One‬‬ ‫• اﻟﻌﻼﻗ ﺎت اﻟﻤ ﺸﺘﺮآﺔ اﻟﺜﻨﺎﺋﻴ ﺔ ﻣ ﻦ ﻧ ﻮع واﺣ ﺪ اﻟ ﻰ واﺣ ﺪ)‬


‫‪:(Relationships‬‬

‫‪ o‬آﻞ ﻋﻼﻗﺔ ﻣﺸﺘﺮآﺔ ﻣﻦ ﻧﻮع واﺣ ﺪ إﻟ ﻰ واﺣ ﺪ ‪ S‬ﺑ ﻴﻦ اﻟﻜﻴ ﺎﻧﻴﻦ )‪ ،(T1,T2‬وﺑﺤﻴ ﺚ‬
‫أن )‪ (R1,R2‬اﻟﺠﺪوﻟﻴﻦ اﻟﺬﻳﻦ ﻳﻤﺜﻼن اﻟﻜﻴﺎﻧﻴﻦ)‪.(T1,T2‬‬
‫ﻼ ‪ .R1‬ﻧﺠﻌ ﻞ اﻟﻤﻔﺘ ﺎح‬
‫‪ o‬ﻧﻨﻈ ﺮ إن آ ﺎن اﻻرﺗﺒ ﺎط آﺎﻣ ﻞ ﻣ ﻦ أﺣ ﺪى اﻟﺠﻬ ﺎت ﻓﻘ ﻂ ﻣ ﺜ ً‬
‫ﻼ ﻓ ﻲ اﻟﺠ ﺪول ‪ .R1‬وﻧﺠﻌ ﻞ ه ﺬا اﻟﺤﻘ ﻞ )أو ﻣﺠﻤﻮﻋ ﺔ‬ ‫اﻟﺮﺋﻴ ﺴﻲ ﻟﻠﺠ ﺪول ‪ R2‬ﺣﻘ ً‬
‫اﻟﺤﻘﻮل( ﻣﻔﺘﺎﺣﺎ ً ﻏﺮﻳﺒًﺎ ﻳﻌﻮد ﻋﻠﻰ اﻟﻤﻔﺘﺎح اﻟﺮﺋﻴ ﺴﻲ ﻟﻠﻌﻼﻗ ﺔ ‪ .R2‬آﻤ ﺎ وﻧﺠﻌ ﻞ آ ﻞ‬

‫‪47‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫اﻟﺨﺼﺎﺋﺺ اﻟﺒﺴﻴﻄﺔ و اﻷﻗﺴﺎم اﻟﺒﺴﻴﻄﺔ ﻟﻠﺨ ﺼﺎﺋﺺ اﻟﻤﺮآﺒ ﺔ ﻟﻠﻌﻼﻗ ﺔ اﻟﻤ ﺸﺘﺮآﺔ ‪S‬‬
‫آﺤﻘﻮل ﻓﻲ اﻟﺠﺪول ‪.R1‬‬
‫‪ o‬أﻣ ﺎ أن آ ﺎن اﻻرﺗﺒ ﺎط ﺟﺰﺋ ﻲ أو آﺎﻣ ﻞ ﻣ ﻦ اﻟﺠﻬﺘ ﻴﻦ‪ .‬ﻧﻜ ﻮن ﻣﺨﻴ ﺮﻳﻦ ﻓ ﻲ اﺧﺘﻴ ﺎر‬
‫اﻟﻤﻔﺘﺎح اﻟﻐﺮﻳﺐ ﻣﻦ ‪ R1‬أو ‪ .R2‬وﻧﻘﻮم ﺑﻨﻔﺲ اﻟﺸﻲء ﻓﻲ اﻟﺨﻄﻮة اﻟﺴﺎﺑﻘﺔ‪.‬‬

‫• اﻟﻌﻼﻗﺎت اﻟﻤﺸﺘﺮآﺔ اﻟﺜﻼﺛﻴﺔ أو أآﺜﺮ‪:‬‬

‫‪ o‬آﻞ ﻋﻼﻗﺔ ﻣﺸﺘﺮآﺔ ﺛﻼﺛﻴﺔ أو أآﺜﺮ ‪ S‬ﺑﻴﻦ اﻟﻜﻴﺎﻧﺎت )‪ (T1…Tn‬ﺗﺤﻮل إﻟﻰ ﺟﺪول‬
‫‪ .R‬آﻤﺎ وﻧﺠﻌﻞ آﻞ اﻟﺨ ﺼﺎﺋﺺ اﻟﺒ ﺴﻴﻄﺔ و اﻷﻗ ﺴﺎم اﻟﺒ ﺴﻴﻄﺔ ﻟﻠﺨ ﺼﺎﺋﺺ اﻟﻤﺮآﺒ ﺔ‬
‫ﻟﻠﻌﻼﻗﺔ اﻟﻤﺸﺘﺮآﺔ ‪ S‬آﺤﻘﻮل ﻓﻲ اﻟﺠﺪول ‪.R‬‬
‫‪ o‬اﻟﻤﻔﺘﺎح اﻟﻤﺮﺷ ﺢ ﻟﻠﺠ ﺪول اﻟﻨ ﺎﺗﺞ ‪ R‬ه ﻮ ﻋﺒ ﺎرة ﻋ ﻦ ﻣﺮآ ﺐ ﻣ ﻦ اﻟﻤﻔ ﺎﺗﻴﺢ اﻟﺮﺋﻴ ﺴﻴﺔ‬
‫ﻟﻠﻜﻴﺎﻧﺎت اﻟﻤﺸﺘﺮآﺔ ﻓﻲ اﻟﻌﻼﻗﺔ‪.‬‬
‫‪ o‬ﻧﺠﻌﻞ اﻷﺟﺰاء اﻟﻤﻤﺜﻠﺔ ﻟﻠﻜﻴﺎﻧﺎت اﻟﻤﺸﺘﺮآﺔ ﻓﻲ اﻟﻌﻼﻗﺔ ﻓ ﻲ اﻟﻤﻔﺘ ﺎح اﻟﻤﺮﺷ ﺢ ﻣﻔ ﺎﺗﻴﺢ‬
‫ﻏﺮﻳﺒﺔ ﺗﻌﻮد ﻋﻠﻰ اﻟﻤﻔﺘﺎح اﻟﺮﺋﻴﺴﻲ ﻟﻠﺠﺪول اﻟﺬي ﻳﻤﺜﻞ آﻞ واﺣﺪ ﻣﻨﻬﺎ‪.‬‬

‫• اﻟﺨﺼﺎﺋﺺ ﻣﺘﻌﺪدة اﻟﻘﻴﻤﺔ)‪:(Multi-valued Attributes‬‬


‫‪ o‬اﻟﺨﺎﺻﻴﺔ ﻣﺘﻌﺪدة اﻟﻘﻴﻤﺔ ‪ s‬ﻓﻲ اﻟﻜﻴﺎن ‪ .S‬ﺗﺤﻮل إﻟﻰ ﺟﺪول ‪ R‬ﻳﺘﻜﻮن ﻣﻦ ﺣﻘﻠﻴﻦ هﻤﺎ‬
‫اﻟﺨﺎﺻ ﻴﺔ ﺑﺎﻹﺿ ﺎﻓﺔ إﻟ ﻰ اﻟﻤﻔﺘ ﺎح اﻟﺮﺋﻴ ﺴﻲ ﻟﻠﺠ ﺪول اﻟ ﺬي ﻳﻤﺜ ﻞ اﻟﻜﻴ ﺎن ‪ S‬آﻤﻔﺘ ﺎح‬
‫ﻏﺮﻳﺐ ﻳﻌﻮد ﻋﻠﻴﻪ‪.‬‬
‫‪ o‬اﻟﻤﻔﺘﺎح اﻟﻤﺮﺷﺢ ﻟﻠﺠﺪول اﻟﻨﺎﺗﺞ ‪ R‬هﻮ ﻋﺒﺎرة ﻋﻦ ﻣﺮآﺐ ﻣﻦ اﻟﺤﻘﻠﻴﻦ‪.‬‬

‫‪48‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫أﺳﺌﻠﺔ اﻟﻮﺣﺪة‪:‬‬

‫س‪ ((1‬ﺑﻴﻦ ﻣﺎ هﻮ اﻟﺘﻌﺮﻳﻒ ﻟﻜﻞ ﻣﻦ اﻟﻤﻔﺎهﻴﻢ اﻟﺘﺎﻟﻴﺔ ‪:‬‬


‫‪ .1‬اﻟﻜﻴﺎن‪ ,‬اﻟﺨﺼﺎﺋﺺ‪ ,‬اﻟﻌﻨﺎﺻﺮ‪.‬‬
‫‪ .2‬اﻟﻤﺠﺎل ﻟﻠﺨﺎﺻﻴﺔ)‪.(Domain of attribute‬‬
‫‪ .3‬اﻟﻌﻼﻗﺔ )‪.(Relation‬‬
‫‪ .4‬ﺧﺎﺻﻴﺔ ﻣﺘﻌﺪدة اﻟﻘﻴﻤﺔ)‪.(Multi valued Attribute‬‬
‫‪ .5‬اﻟﻌﻼﻗﺔ اﻟﻤﺸﺘﺮآﺔ)‪.(Relationship‬‬
‫‪ .6‬اﻟﻤﻔﺘﺎح اﻟﻤﺮﺷﺢ)‪.(Candidate key‬‬
‫‪ .7‬ﺻﺤﺔ اﻟﺘﻮزﻳﻊ)‪.(Referential Integrity‬‬

‫س‪((2‬ﻗﺎرن ﺑﻴﻦ اﻟﻜﻴﺎن اﻟﻀﻌﻴﻒ)‪ (Week Entity‬و اﻟﻜﻴﺎن اﻟﻌﺎدي)‪(Regular Entity‬؟‬

‫س‪ ((3‬ﺑﺎﻷﺧﺬ ﺑﻌﻴﻦ اﻻﻋﺘﺒﺎر اﻟﻤﺠﻤﻮﻋﺔ اﻟﺘﺎﻟﻴﺔ ﻣﻦ اﻟﻤﺘﻄﻠﺒﺎت ل ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ﻟﻌﻴﺎدة‬
‫ﻃﺒﻴﺐ)‪ ,(Clinic‬اﻟﺘﻲ ﺗﺴﺘﺨﺪم ﻟﺘﺘﺒﻊ وﺿﻊ اﻟﻤﺮﺿﻰ )‪ (sick‬و اﻷدوﻳﺔ)‪:(Drugs‬‬
‫ف ﺑﺮﻗﻢ اﻟﻤﺮﻳﺾ)‪ ،(sick number‬اﺳﻢ اﻟﻤﺮﻳﺾ)‪ ،(Sickname‬ﻋﻤﺮﻩ‪،‬‬ ‫‪ 9‬اﻟﻤﺮﻳﺾ ﻳُﻌ َﺮ ْ‬
‫ﺟﻨﺴﻪ‪ ،‬رﻗﻢ اﻟﻬﺎﺗﻒ‪ ،‬اﻟﻌﻨﻮان‪ .‬ﺑﺤﻴﺚ أن رﻗﻢ اﻟﻤﺮﻳﺾ ﻓﺮﻳﺪ اﻟﻘﻴﻤﺔ‪.‬‬
‫‪ 9‬اﻟﺪواء ﻳﻌﺮف ﺑﺎﻟﺘﺎﻟﻴﺔ‪ :‬اﺳﻢ اﻟﺪواء)‪ ، (Drug Number‬رﻗﻢ اﻟﺪواء)‪,(Drug number‬‬
‫ﺗﺎرﻳﺦ اﻟﺸﺮاء‪ ،‬ﺗﺎرﻳﺦ اﻻﻧﺘﻬﺎء‪ .‬ﺑﺤﻴﺚ أن أﺳﻢ اﻟﺪواء و رﻗﻤﻪ ﻓﺮﻳﺪ اﻟﻘﻴﻤﺔ‪.‬‬
‫‪ 9‬اﻟﻄﺒﻴﺐ)‪ (Doctor‬و ﻳﻌﺮف ﺑﺎﻟﺘﺎﻟﻴﺔ‪:‬أﺳﻢ اﻟﻄﺒﻴﺐ)‪ ،(Doctor name‬رﻗﻢ‬
‫اﻟﻄﺒﻴﺐ)‪ ،(Doctor number‬اﻟﺮاﺗﺐ‪ ،‬ﺗﺎرﻳﺦ ﺑﺪاﻳﺔ اﻟﻌﻤﻞ‪ .‬ﺑﺤﻴﺚ أن رﻗﻢ اﻟﻄﺒﻴﺐ ﻓﺮﻳﺪ‬
‫اﻟﻘﻴﻤﺔ‪.‬‬
‫‪ 9‬ﻣﻊ اﻟﻌﻠﻢ أن اﻟﻤﺮﻳﺾ ﻳﻌﺎﻟﺞ ﻋﻨﺪ ﻃﺒﻴﺐ واﺣﺪ ﻟﻠﻤﺮض)‪ (Disease‬اﻟﻮاﺣﺪ‪ ،‬وﻳﻜﻮن ﻟﻪ‬
‫ﺗﺎرﻳﺦ أﺧﺮ ﻣﺮاﺟﻌﺔ)‪ . ( Last Visit‬وأﻳﻀًﺎ ﻣﻊ اﻟﻌﻠﻢ أن اﻟﻄﺒﻴﺐ ﻗﺪ ﻳﺼﺮف اﻟﺪواء‬
‫ﻟﻠﻤﺮﻳﺾ‪ ،‬وﻳﺄﺧﺬ اﻟﻤﺮﻳﺾ اﻟﺪواء ﺑﻮﺻﻔﺔ ﻣﻌﻴﻨﺔ)‪.(usage‬‬
‫اﻟﻤــﻄـــﻠـــــــﻮب‪:‬‬
‫ﺑﺎﻻﻋﺘﻤﺎد ﻋﻠﻰ اﻟﻤﺘﻄﻠﺒﺎت اﻟﻤﺬآﻮرة ﺁﻧﻔﺎ‪:‬‬
‫‪ .1‬ﺻﻤﻢ ﻧﻤﻮذج اﻟﻌﻼﻗﺎت و اﻟﻜﻴﻨﻮﻧﺎت)‪ (ER-Model‬ﻟﻬﺪا اﻟﺘﻄﺒﻴﻖ و ارﺳﻤﻴﻪ‪ .‬ﻋﻴﻨﻲ‬
‫اﻟﺨﺼﺎﺋﺺ اﻟﻤﻔﺘﺎﺣﻴﺔ ﻟﻜﻞ ﻧﻮﻋﻴﺎت آﻴﺎن‪ ,‬و اﻟﻀﻮاﺑﻂ اﻟﺒﻨﺎﺋﻴﺔ ﻋﻠﻰ آﻞ ﻋﻼﻗﺔ ﻣﺸﺘﺮآﺔ‬
‫ﻼ ﻣﻊ ذآﺮ ذﻟﻚ‪.‬‬ ‫‪ ،‬و أﺿﻴﻒ ﻣﺎ هﻮ ﻣﻄﻠﻮب ﻟﺠﻌﻞ اﻟﻮﺻﻒ آﺎﻣ ً‬
‫‪ .2‬ﺣﻮل ﻧﻤﻮذج أل)‪ (ER-Model‬إﻟﻰ اﻟﻨﻤﻮذج اﻟﻌﻼﺋﻘﻲ)‪ ،(Relational Model‬ﻣﻊ‬
‫ﺗﺤﺪﻳﺪ ﺿﻮاﺑﻂ اﻟﻤﻔﺎﺗﻴﺢ)‪(FK and PK‬‬

‫س‪ ((4‬ﺑﺎﻷﺧﺬ ﺑﻌﻴﻦ اﻻﻋﺘﺒﺎر اﻟﻤﺠﻤﻮﻋﺔ اﻟﺘﺎﻟﻴﺔ ﻣﻦ اﻟﻤﺘﻄﻠﺒﺎت ل ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ﻟﻤﻜﺘﺒﺔ)‪,(Library‬‬
‫اﻟﺘﻲ ﺗﺴﺘﺨﺪم ﻟﺘﺘﺒﻊ وﺿﻊ اﻟﻜﺘﺐ)‪ (Book‬و أﻋﺎرﺗﻬﺎ)‪:(Loan details‬‬
‫ف ﺑﺮﻗﻢ اﻟﻜﺘﺎب)‪ ،(Book number‬ﻋﻨﻮان اﻟﻜﺘﺎب)‪ , (Title‬و وﺻﻒ‬ ‫‪ 9‬اﻟﻜﺘﺎب ﻳُﻌ َﺮ ْ‬
‫اﻟﻜﺘﺎب)‪ ،(Description‬ﺑﺤﻴﺚ أن رﻗﻢ اﻟﻜﺘﺎب ﻓﺮﻳﺪ اﻟﻘﻴﻤﺔ وﻓﻲ اﻟﻤﻜﺘﺒﺔ ﻗﺪ ﻳﻜﻮن ﻋﺪة‬
‫ﻧﺴﺦ ﻣﻦ اﻟﻜﺘﺎب‪.‬‬
‫‪ 9‬آﻞ آﺘﺎب ﻟﻪ ﻧﺎﺷﺮ)‪ (Publisher‬ﻳﻌﺮف ﺑﺎﻟﺘﺎﻟﻴﺔ‪ :‬اﺳﻢ اﻟﻨﺎﺷﺮ)‪(Name‬‬
‫وﻋﻨﻮان)‪ ،(Address‬ورﻗﻢ اﻟﻬﺎﺗﻒ)‪ .(Phone Number‬ﺑﺤﻴﺚ أن أﺳﻢ اﻟﻨﺎﺷﺮ ﻓﺮﻳﺪ‬
‫اﻟﻘﻴﻤﺔ‪.‬‬

‫‪49‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪ 9‬آﻞ آﺘﺎب ﻟﻪ ﻋﺪة ﻣﺆﻟﻔﻴﻦ)‪ (Authors‬ﻋﻠﻰ اﻷآﺜﺮ‪ ،‬و ﻳﻌﺮﻓﻮن ﺑﺎﻟﺘﺎﻟﻴﺔ‪:‬رﻗﻢ‬


‫اﻟﻤﺆﻟﻒ)‪ ،(Author ID‬اﺳﻢ اﻟﻤﺆﻟﻒ)‪ (Name‬واﻟﻌﻨﻮان اﻟﺒﺮﻳﺪ اﻹﻟﻜﺘﺮوﻧﻲ)‪.(Email‬‬
‫ﺑﺤﻴﺚ أن رﻗﻢ اﻟﻤﺆﻟﻒ ﻓﺮﻳﺪ اﻟﻘﻴﻤﺔ‪.‬‬
‫‪ 9‬اﻟﻤﺴﺘﻌﻴﺮ ﻟﻠﻜﺘﺎب)‪ (Borrower‬ﻳﻌﺮف ﺑﺎﻟﺘﺎﻟﻴﺔ‪ :‬أﺳﻢ اﻟﻤﺴﺘﻌﻴﺮ) ‪ ,(Name‬ﻋﻨﻮان‬
‫اﻟﻤﺴﺘﻌﻴﺮِ(‪ ،(Address‬و رﻗﻢ اﻟﻬﺎﺗﻒ )‪ .( .(Phone Number‬ﺑﺤﻴﺚ أن أﺳﻢ اﻟﻨﺎﺷﺮ‬
‫ﻓﺮﻳﺪ اﻟﻘﻴﻤﺔ‪ .‬ﻣﻊ اﻟﻌﻠﻢ أن اﻟﻤﺴﺘﻌﻴﺮ ﻳﺴﺘﻄﻴﻊ اﺳﺘﻌﺎرة أآﺜﺮ ﻣﻦ آﺘﺎب ﻣﻦ اﻟﻤﻜﺘﺒﺔ‪ ,‬ﻟﻔﺘﺮة‬
‫زﻣﻨﻴﺔ ﻣﻌﻴﻨﺔ واﻟﺘﻲ ﺗﺒﺪأ ﺑﺘﺎرﻳﺦ أﻻﺳﺘﻌﺎرة)‪ (Borrowing Date‬و ﺗﻨﺘﻬﻲ ﺑﺘﺎرﻳﺦ‬
‫اﻹﻋﺎدة)‪.(Date Due‬‬
‫اﻟﻤــﻄـــﻠـــــــﻮب‪:‬‬
‫ﺑﺎﻻﻋﺘﻤﺎد ﻋﻠﻰ اﻟﻤﺘﻄﻠﺒﺎت اﻟﻤﺬآﻮرة ﺁﻧﻔﺎ‪:‬‬
‫‪ .1‬ﺻﻤﻢ ﻧﻤﻮذج اﻟﻌﻼﻗﺎت و اﻟﻜﻴﻨﻮﻧﺎت)‪ (ER-Model‬ﻟﻬﺪا اﻟﺘﻄﺒﻴﻖ و ارﺳﻤﻴﻪ‪ .‬ﻋﻴﻨﻲ‬
‫اﻟﺨﺼﺎﺋﺺ اﻟﻤﻔﺘﺎﺣﻴﺔ ﻟﻜﻞ ﻧﻮﻋﻴﺎت آﻴﺎن‪ ,‬و اﻟﻀﻮاﺑﻂ اﻟﺒﻨﺎﺋﻴﺔ ﻋﻠﻰ آﻞ ﻋﻼﻗﺔ ﻣﺸﺘﺮآﺔ‬
‫ﻼ ﻣﻊ ذآﺮ ذﻟﻚ‪.‬‬‫‪ ،‬و أﺿﻴﻒ ﻣﺎ هﻮ ﻣﻄﻠﻮب ﻟﺠﻌﻞ اﻟﻮﺻﻒ آﺎﻣ ً‬
‫‪ .2‬ﺣﻮل ﻧﻤﻮذج أل)‪ (ER-Model‬إﻟﻰ اﻟﻨﻤﻮذج اﻟﻌﻼﺋﻘﻲ)‪ ،(Relational Model‬ﻣﻊ‬
‫ﺗﺤﺪﻳﺪ ﺿﻮاﺑﻂ اﻟﻤﻔﺎﺗﻴﺢ)‪(FK and PK‬‬

‫‪50‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫اﻟﻮﺣﺪة اﻟﺮاﺑﻌﺔ‪ :‬اﻟﺘﻄﺒﻴﻊ)‪(Normalization‬‬


‫اﻷهﺪاف اﻟﻌﺎﻣﺔ ﻟﻠﻮﺣﺪة‪:‬‬
‫أن ﻳﺘﻌﺮف اﻟﻄﺎﻟﺐ‪/‬ة ﻋﻠﻰ‪:‬‬
‫‪ .1‬اﻹﻋﺘﻤﺎدات اﻟﻮﻇﻴﻔﻴﺔ‬
‫‪ .2‬ﻧﻤﺎذج اﻟﺘﻄﺒﻴﻊ‪.‬‬
‫‪ .3‬ﻣﻔﻬﻮم اﻟﺘﻄﺒﻴﻊ‬
‫‪ .4‬ﻧﻤﺎذج اﻟﺘﻄﺒﻴﻊ اﻟﻤﻮﺟﻮدة‪:‬‬
‫)‪ (1‬ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻷول‪.‬‬
‫)‪ (2‬ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻧﻲ‪.‬‬
‫)‪ (3‬ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻟﺚ‪.‬‬
‫)‪ (4‬ﻧﻤﻮذج ﺗﻄﺒﻴﻊ ﺑﻮﻳﺲ آﻮد‪.‬‬
‫)‪ (5‬ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻧﻲ)‪ (NF2‬ﺣﺴﺐ ﺑﻮﻳﺲ آﻮد‪.‬‬
‫)‪ (6‬ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻟﺚ)‪ (NF3‬ﺣﺴﺐ ﺑﻮﻳﺲ آﻮد‪.‬‬
‫)‪ (7‬ﻧﻤﻮذج ﺑﻮﻳﺲ آﻮد اﻟﻤﻌﺪل‪.‬‬

‫اﻹﻋﺘﻤﺎدات اﻟﻮﻇﻴﻔﻴﺔ ) ‪(FD: Functional Dependencies‬‬

‫هﻲ ﻋﺒﺎرة ﻋﻦ ﺿﺎﺑﻂ ﺑﻴﻦ ﻣﺠﻤﻮﻋﺘﻴﻦ ﻣﻦ اﻟﺤﻘﻮل‪:‬‬


‫ﻣﺜﺎل‪ :‬ﻋﻠﻰ ﻓﺮض وﺟﻮد اﻟﻌﻼﻗﺔ ‪:R‬‬
‫}‪R {A1, A2,……….., An‬‬

‫‪R‬‬
‫‪A1‬‬ ‫‪A2‬‬ ‫‪............................ An‬‬

‫اﻻﻋﺘﻤﺎد اﻟﻮﻇﻴﻔﻲ ‪ ، X → Y :‬ﻳﻌﻨﻲ‬


‫( ‪ X‬ﺗﺆدي إﻟﻰ ‪.Y‬‬
‫( ‪ X‬ﺗﺤﺪد ﻗﻴﻤﺔ‪ Y‬أو أن ‪Y‬ﺗﻌﺘﻤﺪ ﻋﻠﻰ ‪.X‬‬
‫( ‪ X, Y‬ﻣﺠﻤﻮﻋﺔ ﺟﺰﺋﻴﺔ ﻣﻦ ‪( R ⊇ X , Y ) R‬‬
‫‪ X‬ﺗﺆدي إﻟﻰ‪ Y‬ﻳﻌﻨﻲ أﻧﻬﺎ ﻋﺒﺎرة ﻋﻦ ﺿﺎﺑﻂ ﻋﻠﻰ اﻟﻌﻨﺎﺻﺮ اﻟﻤﺤﺘﻤﻠﺔ اﻟﺘﻲ ﺗﻤﺜﻞ ﺣﺎﻟﺔ ﺣﺼﻮل ﻟﻠﻌﻼﻗﺔ‪.‬‬
‫وﺑﺎﻟﺸﻜﻞ اﻟﺮﻳﺎﺿﻲ‪:‬‬

‫ﻷي ﻣﻦ اﻟﻌﻨﺎﺻﺮ ‪ T1, T2‬ﻓﻲ ‪R‬ﺑﺤﻴﺚ أن‪:‬‬


‫]‪T1 [x] =T2 [x‬‬
‫ﻳﺠﺐ أن ﻳﻜﻮن هﻨﺎﻟﻚ ]‪T1[y]=T2[y‬‬
‫ﺑﺤﻴﺚ أن ‪X → Y‬‬

‫ﺳﺆال ‪:‬‬
‫ﻣﺘﻰ ﻳﻜﻮن اﻻﻋﺘﻤﺎد آﺎﻣﻼ؟‬
‫اﻟﺤﻞ‪:‬‬
‫ﻓﻲ ﺣﺎﻟﺔ وﺟﻮد اﻟﻤﻔﺘﺎح اﻟﺮﺋﻴﺴﻲ آﻤﺤﺪد‪.‬‬

‫‪51‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫اﺳﺘﻨﺘﺎﺟﺎت‪:‬‬
‫إذا آﺎن ‪ X → Y‬ﻓﻼ ﻳﻌﻨﻲ ذﻟﻚ أن ‪. Y → X‬‬
‫إذا آﺎﻧﺖ ‪ X‬ﻣﻔﺘﺎح ﻣﺮﺷﺢ )‪ ،(Candidate Key‬وآﺎﻧﺖ ‪ ، X → Y‬ﻓﺈن ‪ Y‬ﻳﻤﻜﻦ أن ﺗﻜﻮن أي‬
‫ﻣﺠﻤﻮﻋﺔ ﺟﺰﺋﻴﺔ ﻓﻲ ‪. R‬‬
‫ﻣﺜﺎل‪:‬‬
‫ﻟﺪﻳﻨﺎ اﻟﻌﻼﻗﺔ اﻟﺘﺎﻟﻴﺔ اﻟﺘﻲ ﺗﺤﺘﻮي ﻋﻠﻰ ﺧﺼﺎﺋﺺ ﻣﻦ أآﺜﺮ ﻣﻦ آﻴﺎن‪:‬‬

‫‪SSN‬‬ ‫‪PNO‬‬ ‫‪Hours‬‬ ‫‪EName‬‬ ‫‪Pname‬‬ ‫‪Plocation‬‬

‫‪FD1 : SSN → Ename‬‬


‫‪FD 2 : PNO → Pname, Plocation‬‬
‫‪FD 3 : SSN , PNO → Hours‬‬
‫‪FD 4 : SSN , PNO → Ename‬‬
‫ﻣﻼﺣﻈﺔ ‪ FD3 :‬إﻋﺘﻤﺎد آﻠﻲ ‪.‬‬
‫‪ FD4 :‬إﻋﺘﻤﺎد ﺟﺰﺋﻲ ‪.‬‬
‫ﺳﺆال‪:‬‬
‫آﻴﻒ ﻳﻤﻜﻦ اﺳﺘﺨﺮاج اﻻﻋﺘﻤﺎدات اﻟﻮﻇﻴﻔﻴﺔ ﻓﻲ اﻟﻌﻼﻗﺔ؟‬
‫إﻣﺎ ﺑﺎﺳﺘﺨﺪام اﻟﻤﺘﻄﻠﺒﺎت اﻟﻤﻮﺟﻮدة أو آﺎن ﻟﺪﻳﻨﺎ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻌﻨﺎﺻﺮ أو اﻟﺒﻴﺎﻧﺎت ﺗﺴﺘﺨﺮج ﻣﻨﻬﺎ اﻹﻋﺘﻤﺎدات‬
‫اﻟﻮﻇﻴﻔﻴﺔ‪ ،‬و ﻳﺠﺐ أن ﻳﺘﻮﻓﺮ اﻟﺘﺎﻟﻴﺔ ﻓﻲ ‪: X → Y‬‬
‫)‪ X (1‬ﻳﺤﺐ أن ﺗﺆدي إﻟﻰ ‪ Y‬ﻓﻲ آﻞ اﻟﻌﻨﺎﺻﺮ ‪.‬‬
‫)‪ (2‬إذا آﺎﻧﺖ ‪ X‬ﻋﺒﺎرة ﻋﻦ ﻣﻔﺘﺎح رﺋﻴﺴﻲ أو ﻣﻔﺘﺎح ﻣﺮﺷﺢ ﻟﻠﻌﻼﻗﺔ ‪ R‬إذن ‪ X‬ﺗﺆدي إﻟﻰ آﻞ‬
‫اﻟﻌﻨﺎﺻﺮ‪:‬‬
‫; ‪X → all other attributes‬‬
‫وﻟﺬﻟﻚ ﻧﺴﻤﻲ ‪ X‬ﻓﻲ هﺬﻩ اﻟﺤﺎﻟﺔ اﻟﻤﺤﺪد)‪.(Determinate‬‬

‫ﻧﻤﺎذج اﻟﺘﻄﺒﻴﻊ‬

‫ﺗﻌﺮﻳﻒ اﻟﺘﻄﺒﻴﻊ‪:‬‬
‫إن اﻟﻌﻼﻗﺔ ﺗﺴﻤﻰ ﻋﻼﻗﺔ ﻣﻄﺒﻌﺔ )‪ (normalized‬إذا ﺣﻘﻘﺖ اﻟﺸﺮوط ﻟﻨﻤﻮذج ﺗﻄﺒﻴﻊ‪.‬‬

‫‪52‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﻧﻤﺎذج اﻟﺘﻄﺒﻴﻊ اﻟﻤﻮﺟﻮدة‪:‬‬

‫‪ .1‬ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻷول )‪.(1NF:First Normal Form‬‬


‫‪ .2‬ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻧﻲ)‪.(2NF‬‬
‫‪ .3‬ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻟﺚ)‪.(3NF‬‬
‫ﺑﻮﻳﺲ آﻮد)‪.(BCNF‬‬ ‫‪.4‬‬
‫ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺮاﺑﻊ )‪.(4NF‬‬ ‫‪.5‬‬
‫‪ .6‬ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺨﺎﻣﺲ)‪.(5NF‬‬
‫ﻧﻘﻮل ﻋﻼﻣﺔ ﻣﻄﺒﻌﺔ ﻋﻠﻰ اﻟﻨﻤﻮذج اﻷول إذا ﺣﻘﻘﺖ ﺷﺮوط اﻟﻨﻤﻮذج اﻷول‪ .‬و اﻟﻌﻼﻗﺔ ﻣﻄﺒﻌﺔ ﻋﻠﻰ‬
‫اﻟﻨﻤﻮذج اﻟﺜﺎﻧﻲ إذا ﺣﻘﻘﺖ ﺷﺮوط اﻟﻨﻤﻮذج اﻷول و اﻟﺜﺎﻧﻲ‪.‬وهﻜﺬا‪...‬‬

‫)‪ (1‬ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻷول )‪:(1NF‬‬


‫اﻟﻌﻼﻗ ﺔ ﺗﻜ ﻮن ﻣﺤﻘﻘ ﺔ ﻟﻨﻤ ﻮذج اﻟﺘﻄﺒﻴ ﻊ اﻷول إذا آ ﺎن آ ﻞ ﻋﻨ ﺼﺮ ﻓ ﻲ اﻟﻌﻼﻗ ﺔ)اﻟﺠ ﺪول(‬
‫ﻳﺤﺘﻮي ﻋﻠﻰ ﻗﻴﻤﺔ واﺣﺪة ﻟﻜﻞ ﺣﻘﻞ‪.‬‬
‫‪No. multi valued attributes.‬‬
‫‪No. composite attributes.‬‬
‫ﻣﺜﺎل‪:‬‬

‫‪Dept‬‬
‫‪DNO‬‬ ‫‪Dname‬‬ ‫‪Major‬‬ ‫‪Dlocations‬‬

‫آﻤﺎ ﻧﻌﺮف ﻓﺄن ﻣﻮاﻗﻊ اﻟﺪاﺋﺮة )‪ (Dlocations‬هﻲ ﻣﺘﻌﺪد اﻟﻘﻴﻤﺔ و ﻟﺬﻟﻚ هﺬﻩ‬
‫اﻟﻌﻼﻗﺔ ﻟﻴﺴﺖ ﻣﺤﻘﻘﺔ ﻟﻨﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻷول‪ ،‬وﺣﺘﻰ ﻧﺤﻮل هﺬﻩ اﻟﻌﻼﻗﺔ إﻟﻰ ﻋﻼﻗﺔ ﺗﻨﻄﺒﻖ ﻋﻠﻴﻪ‬
‫)‪ ،(1NF‬ﻧﻘﻮم ﺑﻌﻤﻠﻴﺔ اﻟﺘﻘﺴﻴﻢ )‪ ،(Decomposition‬ﻟﻬﺬﻩ اﻟﻌﻼﻗﺔ إﻟﻰ ﻋﻼﻗﺘﻴﻦ آﺎﻟﺘﺎﻟﻲ‪:‬‬

‫‪Dept‬‬
‫‪DNO‬‬ ‫‪Dname‬‬ ‫‪Major‬‬ ‫‪Dlocations‬‬

‫‪Dept_locations‬‬
‫‪DNO‬‬ ‫‪Dlocations‬‬

‫‪53‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﻣﺜﺎل ‪:‬‬
‫‪Sp‬‬
‫‪S#‬‬ ‫‪P#‬‬ ‫‪City‬‬ ‫‪Status‬‬ ‫‪Qty‬‬
‫‪S1‬‬ ‫‪p1‬‬ ‫‪London‬‬ ‫‪20‬‬ ‫‪100‬‬
‫‪S1‬‬ ‫‪p2‬‬ ‫‪London‬‬ ‫‪20‬‬ ‫‪250‬‬
‫‪S2‬‬ ‫‪p1‬‬ ‫‪Rome‬‬ ‫‪10‬‬ ‫‪50‬‬
‫‪S2‬‬ ‫‪p3‬‬ ‫‪Rome‬‬ ‫‪10‬‬ ‫‪60‬‬
‫‪S3‬‬ ‫‪p1‬‬ ‫‪Rome‬‬ ‫‪10‬‬ ‫‪70‬‬
‫‪S3‬‬ ‫‪p4‬‬ ‫‪Rome‬‬ ‫‪10‬‬ ‫‪130‬‬
‫‪S4‬‬ ‫‪p1‬‬ ‫‪London‬‬ ‫‪50‬‬ ‫‪100‬‬
‫ﻣﻦ ﺧﻼل دراﺳﺔ اﻟﺒﻴﺎﻧﺎت اﻟﺘﺎﻟﻴﺔ ﻳﻤﻜﻦ اﻟﺤﺼﻮل ﻋﻠﻰ‬
‫;‪FD1: cityÆstatus‬‬
‫;‪FD2: s#, P# Æ QTY‬‬
‫;‪FD3: S# Æ city, status‬‬
‫هﺬا اﻟﻤﺜﺎل ﻳﻨﻄﺒﻖ ﻋﻠﻰ ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻷول‪.‬‬
‫ﻣﻼﺣﻈﺔ ‪:‬ﻣﺸﺎآﻞ اﻟﺘﺤﺪﻳﺚ‪update anomalies :‬‬

‫هﻲ ﺗﻠﻚ اﻟﻤﺸﺎآﻞ اﻟﺘﻲ ﺗﻈﻬﺮ ﻋﻨﺪ إﺿﺎﻓﺔ ﻋﻨﺎﺻﺮ ﺟﺪﻳﺪة إﻟﻰ اﻟﻌﻼﻗﺔ ) ‪(relation‬‬
‫وﻋﻤﻠﻴﺎت اﻟﺘﺤﺪﻳﺚ و اﻟﺘﻲ ﺗﺸﻤﻞ اﻹﺿﺎﻓﺔ و اﻟﺤﺬف و اﻟﺘﺠﺪﻳﺪ و ﻟﺬﻟﻚ ﻳﺠﺐ اﻷﺧﺬ ﺑﻌﻴﻦ اﻻﻋﺘﺒﺎر‬
‫ﺗﻠﻚ اﻟﻤﺸﺎآﻞ ﻓﻲ ﺗﺤﺪﻳﺪ اﻹﻋﺘﻤﺎدات اﻟﺘﻄﺒﻴﻘﻴﺔ اﻟﻤﻨﺎﺳﺒﺔ ﻟﺘﻠﻚ اﻟﻌﻼﻗﺔ‪.‬‬

‫)‪ (2‬ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻧﻲ)‪:(2NF‬‬


‫اﻟﻌﻼﻗﺔ ﺗﻜﻮن ﻋﻠﻰ ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻧﻲ إذا آﺎن‪:‬‬
‫‪ 2NF .1‬ﻳﺠﺐ أن ﻳﻨﻄﺒﻖ ﻋﻠﻰ ‪.1NF‬‬
‫‪ .2‬آﻞ ﺣﻘﻞ ﻏﻴﺮ ﻣﻔﺘﺎﺣﻲ )‪ (non key‬ﻏﻴﺮ ﻗﺎﺑﻞ ﻟﻠﺘﻘﺴﻴﻢ ﻋﻠﻰ اﻟﻤﻔﺘﺎح اﻟﻤﺮﺷﺢ ﻟﺘﻠﻚ اﻟﻌﻼﻗﺔ ‪.‬‬
‫أي اﻟﺤﻘﻞ ﻳﻌﺘﻤﺪ اﻋﺘﻤﺎدًا آﻠﻴًﺎ ﻋﻠﻰ اﻟﻤﻔﺘﺎح اﻟﻤﺮﺷﺢ‪.‬‬
‫ﻣﺜﺎل‬
‫اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻻ ﻳﻨﻄﺒﻖ ﻋﻠﻰ هﺬا اﻟﻨﻤﻮذج ﻷن ‪ QTY‬ﺗﻌﺘﻤﺪ ﻓﻘﻂ ﻋﻠﻰ ‪S#,P#‬‬
‫ﻟﻜﻦ ‪ city , status‬ﺗﻌﺘﻤﺪ ﻓﻘﻂ ﻋﻠﻰ ‪ s#‬و ﻧﺤﻞ اﻟﻤﺸﻜﻠﺔ ﺑﺒﻨﺎء ﻋﻼﻗﺔ ﺟﺪﻳﺪة ‪.‬‬
‫‪S‬‬
‫‪S#‬‬ ‫‪City‬‬ ‫‪Status‬‬
‫‪2NF‬‬
‫‪Sp‬‬
‫‪S#‬‬ ‫‪P#‬‬ ‫‪Qty‬‬

‫‪54‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫اﻹﻋﺘﻤﺎدات اﻟﺠﺪﻳﺪة‪:‬‬
‫‪).‬اﻋﺘﻤﺎد آﻠﻲ( ;‪QTY ÆS#,P#‬‬
‫)أﻋﺘﻤﺎد ﺟﺰﺋﻲ( ;‪City, status ÆS#‬‬
‫;‪City Æ status‬‬

‫ﻣﻼﺣﻈﺔ‪:‬‬

‫اﻟﺘﻘﺴﻴﻢ ﻳﺠﺐ أن ﻳﻜﻮن ﻣﺴﺘﺮﺟﻊ ) ﻳﻤﻜﻦ اﻟﺘﺮاﺟﻊ ﻋﻨﻪ ( ‪reversible.‬‬

‫)‪ (3‬ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻟﺚ) ‪:(3NF‬‬


‫اﻟﻌﻼﻗﺔ ‪ R‬ﺗﻜﻮن ﻋﻠﻰ ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻟﺚ إذا‪:‬‬
‫‪ .1‬آﺎﻧﺖ ﻋﻠﻰ ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻧﻲ‪.‬‬
‫‪ .2‬ﻟﻜﻞ ﺣﻘﻞ ﻏﻴﺮ ﻣﻔﺘﺎﺣﻲ )ﻟﻴﺲ ﻣﻔﺘﺎح رﺋﻴﺴﻲ أو ﺟﺰء ﻣﻦ اﻟﻤﻔﺘﺎح اﻟﺮﺋﻴﺴﻲ () ‪Nun prime‬‬
‫‪ .(or Non Key‬ﻳﺠﺐ أﻻ ﺗﻜﻮن ﺗﻌﺘﻤﺪ إﻧﺘﻘﺎﻟﻴًﺎ ﻋﻠﻰ اﻟﻤﻔﺘﺎح اﻟﺮﺋﻴﺴﻲ‪.‬‬

‫ﻓﻲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ )ﻳﻮﺟﺪ اﻋﺘﻤﺎد اﻧﺘﻘﺎﻟﻲ( ﺗﺤﻞ هﺬﻩ اﻟﻤﺸﻜﻠﺔ آﺎﻟﺘﺎﻟﻲ‪:‬‬

‫‪City‬‬
‫‪City‬‬ ‫‪Status‬‬
‫‪S‬‬
‫‪S#‬‬ ‫‪City‬‬
‫‪3NF‬‬
‫‪Sp‬‬
‫‪S#‬‬ ‫‪P#‬‬ ‫‪Qty‬‬

‫)‪ (4‬ﻧﻤﻮذج ﺗﻄﺒﻴﻊ ﺑﻮﻳﺲ آﻮد) ‪:(BCNF: Boyce-Codd Normal Form‬‬


‫اﻟﻌﻼﻗﺔ ‪ R‬ﺗﻜﻮن ﻋﻠﻰ ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ ﺑﻮﻳﺲ آﻮد إذا‪:‬‬
‫‪ .1‬ﺗﻨﻄﺒﻖ ﻋﻠﻰ ‪.3NF‬‬
‫‪ .2‬إذا آﺎﻧﺖ اﻟﻤﺤﺪدات اﻟﻮﺣﻴﺪة هﻲ اﻟﻤﻔﺎﺗﻴﺢ اﻟﻤﺮﺷﺤﺔ‪:‬‬
‫‪⇒ X → Y , X must be Candidate Key.‬‬

‫‪55‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﻣﺜﺎل‪:‬‬

‫‪R‬‬
‫‪S#‬‬ ‫‪Sname‬‬ ‫‪City‬‬ ‫‪Status‬‬

‫‪: Candidate key or Super Key‬‬


‫هﺬا اﻟﻤﺜﺎل ﻳﻨﻄﺒﻖ ﻋﻠﻰ ‪.BCNF‬‬

‫اﻟﺘﻌﺪﻳﻼت ﻋﻠﻰ ‪ 3NF,2NF‬ﻣﻦ ﻗﺒﻞ ﺑﻮﻳﺲ و آﻮد‪:‬‬

‫ﻗﺎم اﻟﻌﻠﻤﺎن ﺑﻮﻳﺲ وآﻮد ﺑﺘﻄﻮﻳﺮ ﻣﻔﺎهﻴﻢ ﻧﻤﺎذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻧﻲ و اﻟﺜﺎﻟﺚ ﻟﻴﺸﻤﻞ ﻣﻔﻬﻮم‬
‫اﻟﻤﻔﺎﺗﻴﺢ اﻟﻤﺮﺷﺤﺔ وﻟﻴﺲ ﻓﻘﻂ ﻣﻔﻬﻮم اﻟﻤﻔﺘﺎح اﻟﺮﺋﻴﺴﻲ‪ ،‬آﺎﻟﺘﺎﻟﻲ‪:‬‬

‫)‪ (5‬ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻧﻲ)‪ (2NF‬ﺣﺴﺐ ﺑﻮﻳﺲ آﻮد‪:‬‬


‫اﻟﻌﻼﻗﺔ ﺗﻜﻮن ﻋﻠﻰ ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻧﻲ إذا آﺎن‪:‬‬
‫‪ .1‬ﻳﺠﺐ أن ﻳﻨﻄﺒﻖ ﻋﻠﻰ ‪.1NF‬‬
‫‪ .2‬إذا آﺎﻧﺖ ﻟﻜﻞ ﺧﺎﺻﻴﺔ ﻏﻴﺮ ﻣﻔﺘﺎﺣﻴﺔ )‪ (Non Prime‬ﻓﻲ اﻟﻌﻼﻗﺔ ‪ R‬ﻳﺠﺐ أن ﺗﻜﻮن ﺗﻌﺘﻤﺪ‬
‫آﻠﻴًﺎ ﻋﻠﻰ آﻞ اﻟﻤﻔﺎﺗﻴﺢ اﻟﻤﺮﺷﺤﺔ اﻟﻤﻮﺟﻮدة ﻓﻲ ‪.R‬‬
‫ﻣﺜﺎل‪:‬‬
‫أذا آﺎﻧﺖ ‪ X, Y‬اﻟﻤﻔﺘﺎﺣﻴﻦ اﻟﻤﺮﺷﺤﺎن‪ ،‬وآﺎﻧﺖ ‪ A‬أي ﺣﻘﻞ ﻏﻴﺮ ﻣﻔﺘﺎﺣﻲ ﻓﺄن‪:‬‬
‫‪⇒X → A &Y → A‬‬
‫)‪ (6‬ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻟﺚ)‪ (3NF‬ﺣﺴﺐ ﺑﻮﻳﺲ آﻮد‪:‬‬
‫اﻟﻌﻼﻗﺔ ‪ R‬ﺗﻜﻮن ﻋﻠﻰ ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻟﺚ إذا‪:‬‬
‫‪ .1‬آﺎﻧﺖ ﻋﻠﻰ ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻧﻲ‪.‬‬
‫إذا آﺎن ﻟﻜﻞ اﻹﻋﺘﻤﺎدات اﻟﺘﻄﺒﻴﻘﻴﺔ ﻓﻲ اﻟﻌﻼﻗﺔ ‪:R‬‬ ‫‪.2‬‬
‫‪X→A‬‬
‫إذا آﺎﻧﺖ ‪ X‬هﻲ ﻣﻔﺘﺎح ﻓﺎﺋﻖ ﻓﻲ ‪ ،R‬ﻓﺈن ‪ A‬هﻲ ﺧﺎﺻﻴﺔ ﻣﻔﺘﺎﺣﻴﺔ ) ﻣﻔﺘﺎح رﺋﻴﺴﻲ أو ﺟﺰء ﻣﻔﺘﺎح رﺋﻴﺴﻲ (‪.‬‬

‫)‪ (7‬ﻧﻤﻮذج ﺑﻮﻳﺲ آﻮد اﻟﻤﻌﺪل‪:‬‬


‫اﻟﻌﻼﻗﺔ ‪ R‬ﺗﻜﻮن ﻋﻠﻰ ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ ﺑﻮﻳﺲ آﻮد إذا‪:‬‬
‫‪ .3‬آﺎﻧﺖ ﻋﻠﻰ ﻧﻤﻮذج اﻟﺘﻄﺒﻴﻊ اﻟﺜﺎﻟﺚ‪.‬‬
‫إذا آﺎن ﻟﻜﻞ اﻹﻋﺘﻤﺎدات اﻟﺘﻄﺒﻴﻘﻴﺔ ﻓﻲ اﻟﻌﻼﻗﺔ ‪R:‬‬ ‫‪.4‬‬
‫‪X→A‬‬
‫ﻳﺠﺐ أن ﺗـﻜﻮن ﻋﻠﻰ اﻷﻗﻞ ﻣﻔﺘﺎح ﻓﺎﺋﻖ)‪.(Super Key‬‬

‫‪56‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫أﺳﺌﻠﺔ اﻟﻮﺣﺪة‪:‬‬

‫س‪ ((1‬هﻞ اﻟﻌﻼﻗﺔ اﻟﺘﺎﻟﻴﺔ ﺗﺤﻘﻖ ﻧﻤﻮذج ﺑﻮﻳﺲ آﻮد اﻟﻤﻌﺪل ؟ وﻟﻤﺎذا؟‬
‫‪R‬‬
‫‪S#‬‬ ‫‪Sname‬‬ ‫‪City‬‬ ‫‪Status‬‬

‫‪57‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫اﻟﻮﺣﺪة اﻟﺨﺎﻣﺴﺔ‪ :‬ﻟﻐﺔ اﻻﺳﺘﻌﻼم اﻟﺒﻨﻴﻮﻳﺔ )‪(SQL‬‬

‫اﻷهﺪاف اﻟﻌﺎﻣﺔ ﻟﻠﻮﺣﺪة‪:‬‬

‫‪ .1‬أن ﺗﻌَﺮف اﻟﻄﺎﻟﺒﺔ ﻟﻐﺔ اﻻﺳﺘﻌﻼم اﻟﺒﻨﻴﻮﻳﺔ)‪.(SQL‬‬


‫‪ .2‬أن ﺗﻤﻴﺰ اﻟﻄﺎﻟﺒﺔ ﺑﻴﻦ ‪SQL‬وﻟﻐﺎت اﻟﻤﺴﺘﻮى اﻟﻌﺎﻟﻲ اﻷﺧﺮى‪.‬‬
‫‪ .3‬أن ﺗﺤﺪد اﻟﻄﺎﻟﺒﺔ اﻟﻌﻼﻗﺔ ﺑﻴﻦ ‪SQL‬وﺑﻴﻦ اﻟﺠﺒﺮ اﻟﻌﻼﺋﻘﻲ‪.‬‬
‫‪ .4‬أن ﺗﻔﺮق ﺑﻴﻦ ﺟﻤﻞ ﺗﻌﺮﻳﻒ اﻟﺒﻴﺎﻧﺎت)‪ (DDL‬وﺟﻤﻞ ﻣﻌﺎﻟﺠﺔ اﻟﺒﻴﺎﻧﺎت)‪.(DML‬‬
‫‪ .5‬أن ﺗﻜﺘﺐ اﻟﻄﺎﻟﺒﺔ اﺳﺘﻌﻼﻣﺎت ﺑﺮﻣﺠﻴﺔ ﺑﺎﺳﺘﺨﺪام اﻟﺠﻤﻞ اﻟﺘﺎﻟﻴﺔ ﺑﺸﻜﻞ ﺻﺤﻴﺢ ﺑﻨﺴﺒﺔ ‪:%100‬‬
‫• اﻻﺧﺘﻴﺎر ‪SELECT‬‬
‫• اﻹدﺧﺎل ‪.Insert into‬‬
‫• اﻟﺘﻌﺪﻳﻞ و اﻟﺤﺬف ‪.DELETE/UPDATE‬‬
‫• اﻧﺸﺄ وﺗﻐﻴﻴﺮ اﻟﺠﺪاول ‪CREATE/DROP/Alter‬‬
‫• أﻧﺸﺎ ﻓﻬﺮس ‪.Create Index‬‬
‫• أﻧﺸﺎ ﻣﻈﻬﺮ ﺑﻴﺎﻧﺎت ‪.Create View‬‬
‫ﻣﻘﺪﻣﺔ‪:‬‬
‫ﻓﻲ ه ﺬﻩ اﻟﻮﺣ ﺪة ﻧﻬ ﺪف إﻟ ﻰ ﺗﻌﻠﻴﻤ ﻚ أﺳ ﺲ ﻗﻮاﻋ ﺪ اﻟﺒﻴﺎﻧ ﺎت اﻟﻌﻼﺋﻘﻴ ﺔ ‪Relational Data‬‬
‫‪ Bases‬وآﻴﻔﻴ ﺔ اﻟ ﺘﺤﻜﻢ ﺑﻬ ﺎ ﻋ ﻦ ﻃﺮﻳ ﻖ ﻟﻐ ﺔ ‪ SQL‬اﻟﺒ ﺴﻴﻄﺔ‪ ،‬ﺗﻤﻜﻨ ﻚ ﻟﻐ ﺔ ‪ SQL‬ﻣ ﻦ إدارة ﻗﻮاﻋ ﺪ‬
‫اﻟﺒﻴﺎﻧﺎت ﺑﺸﻜﻞ آﺎﻣﻞ وإﺟﺮاء ﺟﻤﻴﻊ اﻟﻌﻤﻠﻴﺎت اﻟﻘﻴﺎﺳﻴﺔ آﺈﻧﺸﺎء اﻟﺠﺪاول وﺗﻌﺒﺌﺘﻬﺎ ﺑﺎﻟﺒﻴﺎﻧﺎت‪ ،‬أو إﺟ ﺮاء‬
‫اﻻﺳﺘﻌﻼﻣﺎت ﻋﻠﻴﻬﺎ وآﺬﻟﻚ اﻟﺮﺑﻂ ﺑﻴﻦ اﻟﺠﺪاول اﻟﻤﺨﺘﻠﻔﺔ‪.‬‬
‫ﺳﺘﺘﻢ آﺎﻓﺔ اﻟﺘﻤﺎرﻳﻦ واﻷﻣﺜﻠ ﺔ ﺑﺎﺳ ﺘﺨﺪام ﻗﺎﻋ ﺪة اﻟﺒﻴﺎﻧ ﺎت ﻟ ﺸﺮآﺔ)‪ ،(company.mdb‬ﺣﻴ ﺚ‬
‫أﻧﻬﺎ ﺳﺘﻌﻄﻰ ﻟﻜﻞ ﻃﺎﻟﺒﺔ ﻣﻊ ﺑﺪاﻳﺔ اﻟﺘﺪرﻳﺲ ﻟﻬﺬﻩ اﻟﻮﺣﺪة‪.‬‬
‫ﺳﻨﺘﺒﻊ ﻃﺮﻳﻘﺔ اﻟﺘﻌﻠﻢ ﺑﺎﺳﺘﺨﺪام اﻷﻣﺜﻠﺔ‪ ،‬ﻷﻧﻬﺎ اﻟﻄﺮﻳﻘﺔ اﻷﻣﺜﻞ ﻟﺪراﺳﺔ ﻟﻐﺎت اﻟﺒﺮﻣﺠ ﺔ ﺑﺎﻟ ﺸﻜﻞ‬
‫اﻷوﻓﻰ‪ ،‬و ﺑﺴﺮﻋﺔ‪.‬‬

‫‪58‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﻗﺼﺔ ‪:SQL‬‬

‫ﺗﺒﺪأ ﻗﺼﺔ ‪ SQL‬ﻣﻊ ﺑﺪاﻳﺔ اﻟﻨﻤﻮذج اﻟﻌﻼﺋﻘﻲ ﻟﻘﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ﻣﻦ ﺧ ﻼل ورﻗ ﺔ ﺑﺤﺜﻴ ﺔ أﻋ ﺪّهﺎ‬
‫‪ E.F.Codd‬ﺳ ﻨﺔ ‪ 1970‬ﺣ ﻴﻦ اﺷ ﺘﻐﺎﻟﻪ ﻓ ﻲ ﻣﺨﺘﺒ ﺮ أﺑﺤ ﺎث ‪ IBM‬ﻓ ﻲ ﺳ ﺎن ﺧﻮزﻳ ﻪ ‪ .‬وﻓ ﻲ ﺳ ﻨﺔ‬
‫‪ 1974‬ﻗﺎم ‪ D. Chamberlin‬ﻣﻦ ﻧﻔﺲ اﻟﻤﺨﺘﺒ ﺮ ﺑﺘﻮﺻ ﻴﻒ ﻟﻐ ﺔ ﺳ ﻤّﻴﺖ ' ‪Structured English‬‬
‫‪ ، 'Language Query‬أو ‪ . SEQUEL‬ﺛ ﻢ أﻋ ﺪّت ﻧ ﺴﺨﺔ ﻣﻨﻘﺤ ﺔ ﺳ ﻨﺔ ‪ 1976‬ﻋﺮﻓ ﺖ ﺑﺎﺳ ﻢ‬
‫‪ ، SEQUEL/2‬وﻟﻜﻦ ﺳﺮﻋﺎن ﻣﺎ ﺗ ّﻢ ﺗﻐﻴﻴﺮ اﻻﺳﻢ اﻟ ﻰ ‪ SQL‬ﻷﺳ ﺒﺎب ﻗﺎﻧﻮﻧﻴ ﺔ )ذﻟ ﻚ ﻷﻧ ﻪ وﺟ ﺪ ان‬
‫ﻧﻔﺲ اﻻﺳﻢ ﻗﺪ ﺳﺒﻖ ﺗﺨﺼﻴﺼﻪ واﺳﺘﺨﺪاﻣﻪ ﻣ ﻦ ﻗﺒ ﻞ ﺁﺧ ﺮﻳﻦ( ‪ .‬وﺑ ﺮﻏﻢ ﻣ ﻦ أن اﻟﻌﺪﻳ ﺪ ﻣ ﻦ اﻷﻓ ﺮاد ﻻ‬
‫ﻳﺰاﻟﻮا ﻳﻨﻄﻘﻮن ‪ SQL‬ﺑـ '‪ ، 'see-quel‬إﻻ أن اﻟﻨﻄﻖ اﻟﺮﺳﻤﻲ ﻟﻬﺎ هﻮ '‪. 's-q-l‬‬

‫ﺑﻌﺪ ذﻟﻚ ﻗﺎﻣﺖ ‪ IBM‬ﺑﺈﻧﺘﺎج ﻣﺠﺴّﻢ ﻟﻨﻈﺎم إدارة ﻗﻮاﻋ ﺪ ﺑﻴﺎﻧ ﺎت ‪ DBMS‬أﺳ ﻤﺘﻪ ‪System‬‬
‫‪ ، R‬أﺳ ﺲ ﻋﻠ ﻰ ﻟﻐ ﺔ ‪ ، SEQUEL/2‬وآ ﺎن اﻟﻐ ﺮض ﻣ ﻦ ه ﺬا اﻟﻤﺠ ﺴّﻢ ه ﻮ اﺧﺘﺒ ﺎر ﻣ ﺪى ﻓﻌﺎﻟﻴ ﺔ‬
‫وﺟﺪوى اﻟﻨﻤﻮذج اﻟﻌﻼﺋﻘﻲ‪ .‬ﻓﻜﺎن ﺑﺠﺎﻧﺐ اﻟﻨﺠﺎﺣﺎت اﻟﺘﻲ ﺗﺤﻘّﻘﺖ ﻓﺈن إﺣ ﺪى أه ﻢ اﻟﻨﺘ ﺎﺋﺞ اﻟﺘ ﻲ راﻓﻘ ﺖ‬
‫هﺬا اﻟﻤﺸﺮوع هﻮ ﺗﻄﻮﻳﺮ ‪. SQL‬‬

‫ﻋﻤﻮﻣﺎ ﻓﺈن ﺟ ﺬور ‪ SQL‬ﺗﻨﺒﺜ ﻖ ﻣ ﻦ ﻟﻐ ﺔ ‪ SQUARE‬أي ) ‪Specifying Queries as‬‬


‫‪ ، ( Expression Relational‬واﻟﺘ ﻲ ﺳ ﺒﻘﺖ ﻣ ﺸﺮوع ‪ . System R‬ﺣﻴ ﺚ ﺗ ّﻢ ﺗ ﺼﻤﻴﻢ‬
‫‪ SQUARE‬ﻟﺘﻜﻮن ﻟﻐﺔ ﺑﺤﺚ ﺗﻘﻮم ﺑﺘﻨﻔﻴﺬ ﻋﻤﻠﻴﺎت ﺟﺒﺮ ﻋﻼﺋﻘﻴﺔ ﺑﻮاﺳﻄﺔ ﺟﻤﻞ إﻧﻜﻠﻴﺰﻳﺔ‪.‬‬

‫ﻓ ﻲ أواﺧ ﺮ اﻟ ﺴﺒﻌﻴﻨﺎت ﻗﺎﻣ ﺖ اﻟﻤﺆﺳ ﺴﺔ اﻟﺘ ﻲ ﺗﻌ ﺮف اﻵن ﺑﺎوراآ ﻞ ‪ORACLE‬‬


‫‪ Corporation‬ﺑﺈﻧﺘﺎج ﻧﻈﺎم ﻗﺎﻋﺪة ﺑﻴﺎﻧ ﺎت ‪ ، ORACLE‬وآﺎﻧ ﺖ ﺗﻘﺮﻳﺒ ﺎ أول ﻣﻨ ﺘﺞ ﺗﺠ ﺎري ﻟﻨﻈ ﺎم‬
‫إدارة ﻗﻮاﻋﺪ ﺑﻴﺎﻧﺎت ﻋﻼﺋﻘﻲ ﻣﺒﻨﻲ ﻋﻠﻰ ‪ . SQL‬ﺗﺒﻌﻪ ﺑﻌ ﺪ ذﻟ ﻚ ﺑﻘﻠﻴ ﻞ ‪ INGRES‬ﻣ ﻊ ﻟﻐ ﺔ اﺳﺘﻔ ﺴﺎر‬
‫ﺗﺴﻤﻰ ‪ QUEL‬واﻟﺘﻲ ﺑﺮﻏﻢ إﻧﻬﺎ آﺎﻧﺖ اآﺜﺮ هﻴﻜﻠﻴﺔ ﻣﻦ ‪ SQL‬إﻻ أﻧﻬﺎ اﻗﻞ ﺷﺒﻬﺎ ﺑﺎﻹﻧﻜﻠﻴﺰﻳﺔ‪ .‬إﻻ أﻧﻪ‬
‫ﺳ ﺨﺖ ﻟﻐ ﺔ ‪ SQL‬آﻠﻐ ﺔ ﻣﻌﺘﻤ ﺪة ﻟﻘﻮاﻋ ﺪ اﻟﺒﻴﺎﻧ ﺎت ﺗ ﻢ ﺗﺤﻮﻳ ﻞ ‪ INGRES‬إﻟ ﻰ ﻧﻈ ﺎم إدارة‬
‫ﻋﻨ ﺪﻣﺎ ﺗﺮ ّ‬
‫ﻗﻮاﻋﺪ ﺑﻴﺎﻧﺎت‪ DBMS‬ﻣﺒﻨﻲ ﻋﻠﻰ ‪. SQL‬‬

‫أﻣﺎ ‪ IBM‬ﻓﻘﺪ ﻗﺎﻣﺖ ﺑﺈﻧﺘ ﺎج أول ﻧﻈ ﺎم إدارة ﻗﻮاﻋ ﺪ ﺑﻴﺎﻧ ﺎت ﻋﻼﺋﻘ ﻲ ﻟﻬ ﺎ ‪ RDBMS‬أﺳ ﻤﺘﻪ‬
‫‪ SQL/DS‬ﻟﺒﻴﺌ ﺔ ﺗ ﺸﻐﻴﻞ ‪ ، DOS/VSE‬و ﻟﺒﻴﺌ ﺔ ﺗ ﺸﻐﻴﻞ ‪ VM/CMS‬وذﻟ ﻚ ﻓ ﻲ ﺳ ﻨﺘﻲ ‪ 1981‬و‬
‫‪ 1982‬ﻋﻠﻰ اﻟﺘﻮاﻟﻲ ‪ ،‬ﺛﻢ ﻓﻴﻤﺎ ﺑﻌﺪ ﻟﺒﻴﺌﺔ ﺗﺸﻐﻴﻞ ‪ MVS‬ﻓﻲ ‪ 1983‬وﻋﺮف ﺑﺎﺳﻢ ‪. DB2‬‬

‫ﻓ ﻲ ﻋ ﺎم ‪ 1982‬ﺑ ﺪأ اﻟﻤﻌﻬ ﺪ اﻟﻘ ﻮﻣﻲ اﻷﻣﺮﻳﻜ ﻲ ﻟﻠﻤﻮاﺻ ﻔﺎت )‪ (ANSI‬ﺑﺎﻟﻌﻤ ﻞ ﻋﻠ ﻰ ﻟﻐ ﺔ‬


‫ﻗﻮاﻋ ﺪ ﺑﻴﺎﻧ ﺎت ﻋﻼﺋﻘﻴ ﺔ )‪ (RDL‬ﺑﺎﻻﻋﺘﻤ ﺎد ﻋﻠ ﻰ ورﻗ ﺔ ﺗ ﺼﻮّر ﻗ ﺪّﻣﺘﻬﺎ ‪ . IBM‬ﺛ ﻢ اﻟﺘﺤﻘ ﺖ ﻣﻨﻈﻤ ﺔ‬
‫‪ ISO‬ﻟﻬﺬا اﻟﻌﻤﻞ وﻗﺎﻣﺎ ﺳﻮﻳّﺎ ﺑﺘﺤﺪﻳﺪ ﻣﻮاﺻﻔﺔ ‪ ) . SQL‬ﺗﻢ إﺳﻘﺎط اﺳ ﻢ ‪ RDL‬ﻓ ﻲ ‪ ، 1984‬و أﻋﻴ ﺪ‬
‫ﺻﻴﺎﻏﺔ ﻣﺴﻮدة اﻟﻤﻮاﺻﻔﺔ ﺑﺸﻜﻞ ﻳﺸﺒﻪ اﻟﺘﻲ ﻋﻠﻴﻪ ‪ SQL‬اﻵن‪(.‬‬

‫و ﻗﺪ ﺟﻮﺑﻬﺖ اﻟﻤﻮاﺻﻔﺔ اﻟﻤﺒﺪﺋﻴﺔ ﻣﻦ أﻳﺰو ‪ ISO‬اﻟﺘﻲ ﻧﺸﺮت ﺳﻨﺔ ‪ ، 1987‬ﺑﺎﻟﻌﺪﻳﺪ ﻣ ﻦ اﻻﻧﺘﻘ ﺎدات ؛‬
‫ﻓﻘﺪ ﺻﺮّح "دﻳﺖ" ‪ - Date‬وهﻮ ﺑﺎﺣﺚ ﻟﻪ ﺗﺄﺛﻴﺮﻩ ﻓﻲ هﺬا اﻟﻤﺠﺎل ‪ -‬ﺑﺄن ﺧﺼﺎﺋﺼﺎ ﻣﻬﻤ ﺔ ﻣﺜ ﻞ ﻗﻮاﻋ ﺪ‬
‫اﻟﺘﻜﺎﻣﻞ اﻟﻤﺮﺟﻌ ﻲ وﻋﻤﻠﻴ ﺎت ﻋﻼﺋﻘﻴ ﺔ ﻣﻌﻴﻨ ﺔ ﻗ ﺪ ﺗ ﻢ ﺷ ﻄﺒﻬﺎ ﻣ ﻦ اﻟﻤﻮاﺻ ﻔﺔ‪ ،‬آﻤ ﺎ أﺷ ﺎر إﻟ ﻰ أن اﻟﻠﻐ ﺔ‬
‫آﺎﻧﺖ ﺗﻀﺞ ﺑﺎﻟﻤﺮادﻓ ﺎت ‪ ،‬أي وﺟ ﻮد أآﺜ ﺮ ﻣ ﻦ ﻃﺮﻳﻘ ﺔ ﻟﻜﺘﺎﺑ ﺔ ﻧﻔ ﺲ اﻻﺳﺘﻔ ﺴﺎر ‪ .‬و ﻗ ﺪ آﺎﻧ ﺖ ﻣﻌﻈ ﻢ‬
‫اﻻﻧﺘﻘﺎدات ﺻﺤﻴﺤﺔ ‪ ،‬و ﺗﻢ أﺧﺬهﺎ ﻓﻲ اﻻﻋﺘﺒﺎر ﻣﻦ ﻗﺒﻞ اﻟﺠﻬﺎت اﻟﻤﺨﺘﺼﺔ ﺑﺎﻟﻤﻮاﺻ ﻔﺎت ﻗﺒ ﻞ إﺻ ﺪار‬
‫اﻟﻤﻮاﺻﻔﺔ ‪ .‬و ﻗﺪ ﺗﻘﺮر إن اﻷﻣﺮ اﻷآﺜﺮ ﺿ ﺮورة ه ﻮ إﺻ ﺪار ﻣﻮاﺻ ﻔﺔ ﺑﺄﺳ ﺮع وﻗ ﺖ ﻣﻤﻜ ﻦ و ذﻟ ﻚ‬

‫‪59‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﻹرﺳﺎء ﻗﺎﻋﺪة ﻋﺎﻣﺔ ﺗﻜﻮن أﺳﺎﺳﺎ ﻟﺘﻄﻮﻳﺮ اﻟﻠﻐﺔ ‪ ،‬ﺑﺪﻻ ﻣﻦ اﻻﻧﺘﻈﺎر ﺣﺘ ﻰ ذﻟ ﻚ اﻟﻴ ﻮم اﻟ ﺬي ﻳُﻤﻜ ﻦ ﻓﻴ ﻪ‬
‫اﻹﺟﻤﺎع ﻋﻠﻰ آﻞ اﻟﺨﺼﺎﺋﺺ اﻟﺘﻲ ﻳﺸﻌﺮ اﻟﻨﺎس ﺑﻀﺮورة وﺟﻮدهﺎ ‪.‬‬

‫ﻓﻲ ‪ 1992‬أﺻﺪرت اﻳﺰو أول ﻣﺮاﺟﻌﺔ ﻣﻬﻤﺔ ﻟﻤﻮاﺻ ﻔﺔ ‪ SQL‬وﻳ ﺸﺎر إﻟﻴﻬ ﺎ ﻋ ﺎدة ﺑﺎﺳ ﻢ ‪ SQL2‬أو‬
‫‪ ، SQL-92‬وﺑﺮﻏﻢ ﻣﻦ إن ﺑﻌﺾ اﻟﺨﺼﺎﺋﺺ ﻗﺪ ﺗﻢ ﺗﺤﺪﻳﺪهﺎ ﻷول ﻣﺮة ﻓﻲ ه ﺬﻩ اﻟﻤﻮاﺻ ﻔﺔ ؛ إﻻ أن‬
‫ﻣﻌﻈﻤﻬﺎ ﻗﺪ ﺳﺒﻖ ﺗﻨﻔﻴﺬهﺎ ﺑﺸﻜﻞ أو ﺁﺧﺮ ﻓﻲ اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﻤﻨﺘﺠﺎت‪.‬‬

‫و ﺗﺒﻘﻰ هﻨﺎك ﺑﻌﺾ اﻟﺨ ﺼﺎﺋﺺ واﻟﻤﺰاﻳ ﺎ اﻟﺘ ﻲ ﻳ ﻀﻴﻔﻬﺎ ﻣ ﺼﻨﻌﻮ ﻧﻈ ﻢ ‪ SQL‬واﻟﺘ ﻲ ﺗ ﺴﻤﻰ‬
‫ﻣﻠﺤﻘﺎت ‪ ، extensions‬ه ﺬﻩ اﻟﻤﻠﺤﻘ ﺎت ﺗ ﺸﻜﻞ ﻟﻬﺠ ﺎت ‪ dialect‬ﻣﺨﺘﻠﻔ ﺔ ﺗﺒﺘﻌ ﺪ ﺑﻤ ﺮور اﻟﻮﻗ ﺖ ﻋ ﻦ‬
‫ﻟﻐ ﺔ اﻟﻤﻮاﺻ ﻔﺔ اﻷﺻ ﻠﻴﺔ‪ .‬وﺑ ﺮﻏﻢ ذﻟ ﻚ ﻳﻮﺟ ﺪ اﻵن اﺗﺠ ﺎﻩ ﻗ ﻮي ﻟﻠﻌﻤ ﻞ ﻋﻠ ﻰ ﺗﻮﺣﻴ ﺪ ﻣﻮاﺻ ﻔﺎت ﻟﻐ ﺔ‬
‫‪. SQL‬‬

‫و اﻵن وﺑ ﺮﻏﻢ إن ‪ SQL‬ه ﻮ ﺗ ﺼﻮّر أﺑﺪﻋﺘ ﻪ أﺻ ﻼ ‪ IBM‬؛ ﻓ ﺎن أهﻤﻴ ﺔ ه ﺬﻩ اﻟﻠﻐ ﺔ ﺣ ّﺜ ﺖ‬


‫اﻟﻌﺪﻳ ﺪ ﻣ ﻦ اﻟﻤ ﺼﻨﻌﻴﻦ اﻵﺧ ﺮﻳﻦ آ ﻲ ﻳﻘﻮﻣ ﻮا ﺑ ﺼﻨﻊ إﻧﺘﺎﺟ ﺎﺗﻬﻢ اﻟﺨﺎﺻ ﺔ ‪ ،‬ﻓﺎﺻ ﺒﺢ ﻋ ﺪد اﻟﻤﻨﺘﺠ ﺎت‬
‫اﻟﻤﺘﻮﻓﺮة اﻟﻴﻮم ﺑﺎﻟﻤﺌﺎت ‪.‬‬

‫ﻣﺎ هﻲ ﻟﻐﺔ ‪ SQL‬؟‬

‫„ ﻟﻐﺔ اﻻﺳﺘﻌﻼم اﻟﺒﻨﻴﻮﻳﺔ)‪(Structured Query Language‬‬


‫‰ ﻟﻐﺔ ﺑﺮﻣﺠﻴﺔ ﺧﺎﺻﺔ ﺗﺴﺘﺨﺪم ﻓﻲ‪:‬‬
‫„ ﺑﻨﺎء ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻌﻼﺋﻘﻴﺔ)ﺑﻨﺎء ﺟﺪاول‪ ،‬ﺣﺬف ﺟﺪاول‪..... ،‬اﻟﺦ(‬
‫„ ﻣﻌﺎﻟﺠ ﺔ اﻟﺒﻴﺎﻧ ﺎت ﻓ ﻲ ﻗﻮاﻋ ﺪ اﻟﺒﻴﺎﻧ ﺎت اﻟﻌﻼﺋﻘﻴ ﺔ )اﺧﺘﻴ ﺎر ﺑﻴﺎﻧ ﺎت‪ ,‬إدﺧ ﺎل‬
‫ﺑﻴﺎﻧﺎت‪...‬اﻟﺦ(‬
‫„ ﺗﺘﻤﻴﺰ ‪ SQL‬ﻋﻦ ﻟﻐﺎت اﻟﻤﺴﺘﻮى اﻟﻌﺎﻟﻲ ﻓ ﻲ أﻧﻬ ﺎ ﻟﻐ ﺔ ﺧﺎﺻ ﺔ ﺑﻨ ﻮع ﻣﻌ ﻴﻦ ﻣ ﻦ اﻟﺘﻄﺒﻴﻘ ﺎت‬
‫وهﻮ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻌﻼﺋﻘﻴﺔ‬

‫اﻟﻌﻼﻗﺔ ﺑﻴﻦ ‪ SQL‬و ﺑﻴﻦ اﻟﺠﺒﺮ اﻟﻌﻼﺋﻘﻲ‬

‫„ اﻟﺠﺒﺮ اﻟﻌﻼﺋﻘﻲ ﺗﻤﺜﻞ اﻷﺳﺎس اﻟﺮﻳﺎﺿﻲ ﻟﻠﻐﺔ ‪SQL‬‬


‫„ ‪ SQL‬ﺑﻨﻴﺖ ﻋﻠﻰ أﺳﺎس اﻟﻌﻤﻠﻴﺎت اﻟﺘﻲ ﺗﻄﺒﻖ ﻋﻠﻰ اﻟﻤﺠﻤﻮﻋﺎت و اﻟﻌﻼﻗﺎت‪ ,‬وﻟﻜﻦ ﻣﻊ‬
‫ﺑﻌﺾ اﻟﺘﻐﻴﻴﺮات و اﻟﺘﺤﺴﻴﻨﺎت‬
‫„ ﺳﻨﺄﺗﻲ إﻟﻰ ذآﺮ اﻟﻌﻼﻗﺔ ﺑﻴﻨﻬﺎ ﻋﻨﺪ ﺷﺮح اﻟﺠﻤﻞ ﻓﻲ ‪SQL‬‬

‫‪60‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﺟﻤﻞ ﺗﻌﺮﻳﻒ اﻟﺒﻴﺎﻧﺎت)‪ (DDL‬و ﺟﻤﻞ ﻣﻌﺎﻟﺠﺔ اﻟﺒﻴﺎﻧﺎت)‪ (DML‬ﻓﻲ ﻟﻐﺔ ‪SQL‬‬

‫„ ﺟﻤﻞ ﺗﻌﺮﻳﻒ اﻟﺒﻴﺎﻧﺎت)‪(Data Definition Language‬‬


‫‰ ﺗﺨﺘﺺ ﺑﺘﻌﺮﻳﻒ اﻟﺠﺪاول و اﻟﺤﻘﻮل و اﻟﻌﻼﻗﺎت ﺑﻴﻦ اﻟﺠﺪاول ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫‰ أﻣﺜﻠﺔ‪CREATE, DROP, ALTER:‬‬
‫„ ﺟﻤﻞ ﻣﻌﺎﻟﺠﺔ اﻟﺒﻴﺎﻧﺎت)‪(Data Manipulation Language‬‬
‫‰ ﺗﺨﺘﺺ ﺑﺎﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺒﻴﺎﻧﺎت ﻣﻦ اﺧﺘﻴﺎر‪ ،‬ﺣﺬف‪ ،‬ﺗﻌﺪﻳﻞ‪ ،‬أو اﺿﺎﻓﺔ‬
‫‰ أﻣﺜﻠﺔ‪SELECT, INSERT INTO, DELETE, UPDATE:‬‬

‫‪61‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻟﺸﺮآﺔ)‪:(Company Database‬‬

‫„ ﺳﺘﻜﻮن هﺬﻩ اﻟﻘﺎﻋﺪة ﻟﻠﺒﻴﺎﻧﺎت هﻲ أﺳﺎس اﻟﺘﻤﺎرﻳﻦ و اﻷﻣﺜﻠﺔ ﻓﻲ هﺬﻩ اﻟﻮﺣﺪة‪ ،‬ﻧﻈﺮا ﻟﻜﻮﻧﻬﺎ‬
‫ﺗﻤﻜﻨﻨﺎ ﻣﻦ ﺗﻄﺒﻴﻖ آﺎﻓﺔ أﻧﻮاع اﻻﺳﺘﻌﻼﻣﺎت ﻋﻠﻴﻬﺎ‪.‬‬
‫„ و إﻟﻴﻜﻢ اﻟﻨﻤﻮذج اﻟﻌﻼﺋﻘﻲ ﻟﻬﺎ‪:‬‬

‫ﺷﻜﻞ ‪ :1‬ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ﻟﺸﺮآﺔ‬

‫„ ﺳﻴﺤﺼﻞ آﻞ ﻃﺎﻟﺐ ﻋﻠﻰ ﻧﺴﺨﺔ ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‪ ،‬ﻋﻠﻰ ﺷﻜﻞ ﻣﻠﻒ ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ﻟﻨﻈﺎم‬
‫إدارة ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت )‪ ،(Microsoft Access‬ﺑﺎﻻﺳﻢ )‪.(Company.mdb‬‬
‫„ ﻟﻠﺤﺼﻮل ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎت ﺣﻮل آﻴﻔﻴﺔ آﺘﺎﺑﺔ اﻻﺳﺘﻌﻼﻣﺎت ﻓﻲ ‪ Access‬ﻳﺮﺟﻰ اﻟﺮﺟﻮع إﻟﻰ‬
‫دوﺳﻴﺔ ‪ ،Microsoft access‬اﻟﻤﻌﻄﻴﺔ ﻣﻦ ﻗﺒﻞ أﺳﺘﺎذ اﻟﻤﺴﺎق‪ ،‬ودراﺳﺔ وﺣﺪة أﻧﺸﺎء‬
‫اﻻﺳﺘﻌﻼﻣﺎت‬

‫‪62‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﺟﻤﻠﺔ اﻻﺧﺘﻴﺎر ٍ(‪(SELECT‬‬

‫„ اﻟﺸﻜﻞ اﻟﻌﺎم ﻟﻬﺎ‪:‬‬

‫„ ﺗﻤﺎﺛﻞ ﻓﻲ اﻟﺠﺒﺮ اﻟﻌﻼﺋﻘﻲ‪:‬‬

‫„ اﻟﻨﺎﺗﺞ ﻟﻌﻤﻠﻴﺔ اﻻﺧﺘﻴﺎر هﻮ ﻋﻼﻗﺔ)ﺟﺪول(‬

‫أﻗﺴﺎم ﺟﻤﻠﺔ ‪ SELECT‬اﻟﺮﺋﻴﺴﻴﺔ‬

‫‪1. Select clause‬‬


‫‪2. From clause‬‬
‫‪3. Where clause‬‬
‫„ ﺳﻴﺘﻢ اﻟﺤﺪﻳﺚ ﻋﻦ آﻞ ﻗﺴﻢ ﻣﻦ هﺬا اﻷﻗﺴﺎم ﺑﺈﺳﻬﺎب ﻓﻲ اﻟﺼﻔﺤﺎت اﻟﺘﺎﻟﻴﺔ‪.‬‬
‫„ هﻨﺎﻟﻚ أﻗﺴﺎم أﺧﺮى ﺳﻨﺘﺤﺪث ﻋﻨﻬﺎ ﻻﺣﻘ ًﺎ‪.‬‬

‫‪63‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪ .1‬ﻗﺴﻢ اﻻﺧﺘﻴﺎر)‪(Select clause‬‬

‫„ ﺗﻤﺎﺛﻞ ﻋﻤﻠﻴﺔ اﻹﺳﻘﺎط)‪ (project‬ﻓﻲ اﻟﺠﺒﺮ اﻟﻌﻼﺋﻘﻲ‬


‫‰ ﻣﺜﺎل‪:‬‬
‫‪Select fname‬‬
‫‪From Employee‬‬ ‫ﺗﻤﺜﻞ‬ ‫)‪Π fname (Employee‬‬

‫„ وﺟﻮد * ﺗﻌﻨﻲ اﺧﺘﻴﺎر آﻞ اﻟﺤﻘﻮل ﻣﻦ اﻟﺠﺪول اﻟﻤﻄﻠﻮب ﻣﺜﺎل‪:‬‬

‫* ‪Select‬‬
‫‪From Employee‬‬

‫„ ﻟﻐﺔ ‪ SQL‬ﺗﺴﻤﺢ ﺑﺎﻟﺘﻜﺮارات ﻓﻲ اﻟﺠﺪاول وﻓﻲ اﻟﻨﺘﺎﺋﺞ ﻟﻼﺳﺘﻌﻼم‬


‫„ ﻟﻤﻨﻊ اﻟﺘﻜﺮارات ﻣﻦ اﻟﺤﺼﻮل ﻧﻀﻴﻒ آﻠﻤﺔ)‪ (distinct‬ﺑﺠﺎﻧﺐ آﻠﻤﺔ ‪Select‬‬

‫‪Select distinct salary‬‬ ‫ﺗﻌﻨﻲ‪ :‬اﺳﺘﺨﺮج رواﺗﺐ ﺟﻤﻴﻊ اﻟﻤﻮﻇﻔﻴﻦ ﺑﺪون ﺗﻜﺮار ﻟﻠﺮواﺗﺐ اﻟﻤﺘﺴﺎوﻳﺔ‬
‫;‪From Employee‬‬

‫„ اﻟﻜﻠﻤﺔ ‪ all‬ﺗﻌﻤﻞ ﻋﻜﺲ ﻋﻤﻞ ‪distinct‬‬

‫‪Select all salary‬‬ ‫ﺗﻌﻨﻲ‪ :‬اﺳﺘﺨﺮج رواﺗﺐ ﺟﻤﻴﻊ اﻟﻤﻮﻇﻔﻴﻦ ﻣﻊ اﻟﺘﻜﺮار ﻟﻠﺮواﺗﺐ اﻟﻤﺘﺴﺎوﻳﺔ‬
‫;‪From Employee‬‬ ‫أن وﺟﺪ‬

‫„ آﻠﻤﺔ ‪ select‬ﻗﺪ ﻳﺄﺗﻲ ﺑﻌﺪهﺎ ﻋﻤﻠﻴﺎت ﺣﺴﺎﺑﻴﺔ ﻋﻠﻰ اﻟﺤﻘﻮل )‪(+,*,-, /‬‬

‫‪64‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‰ ﻣﺜﺎل‪:‬‬

‫‪Select ssn, salary*1.1‬‬ ‫ﺗﻌﻨﻲ ‪ :‬اﺳﺘﺨﺮج أرﻗﺎم و رواﺗﺐ ﺟﻤﻴﻊ اﻟﻤﻮﻇﻔﻴﻦ ﻣﻊ زﻳﺎدة ﻣﻘﺪارهﺎ ‪%10‬‬
‫;‪From Employee‬‬

‫‪ .2‬ﻗﺴﻢ اﻟﺸﺮط)‪(Where clause‬‬

‫„ ﻣﺎ ﻳﺄﺗﻲ ﺑﻌﺪ آﻠﻤﺔ ‪ where‬ﻳﻤﺜﻞ اﻟﺸﺮط ﻋﻠﻰ اﺳﺘﺨﺮاج اﻟﺒﻴﺎﻧﺎت‬


‫‰ ﻣﺜﺎل‪:‬‬

‫‪Select ssn, salary‬‬ ‫ﺗﻌﻨﻲ ‪ :‬اﺳﺘﺨﺮج أرﻗﺎم و رواﺗﺐ ﺟﻤﻴﻊ اﻟﻤﻮﻇﻔﻴﻦ‬


‫‪From Employee‬‬ ‫اﻟﺬآﻮر‬
‫;”‪Where sex=“M‬‬

‫„ ﻳﻤﻜﻦ اﺳﺘﺨﺪام أدوات اﻟﺮﺑﻂ اﻟﻤﻨﻄﻘﻴﺔ)‪ (And, Or, not‬ﻟﺮﺑﻂ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺸﺮوط‬
‫‪Select ssn, salary‬‬ ‫ﺗﻌﻨﻲ ‪ :‬اﺳﺘﺨﺮج أرﻗﺎم و رواﺗﺐ ﺟﻤﻴﻊ اﻟﻤﻮﻇﻔﻴﻦ‬
‫‪From Employee‬‬ ‫اﻟﺬآﻮر ورواﺗﺒﻬﻢ أآﺒﺮ ﻣﻦ ‪25000‬‬
‫;‪Where sex=“M” and salary>25000‬‬

‫„ ﻳﻤﻜﻦ اﺳﺘﺨﺪام آﻠﻤﺔ )‪ (Between….and….‬ﻟﺘﺒﺴﻴﻂ اﻟﺸﺮط‬


‫‰ ﻣﺜﺎل‪:‬‬

‫‪Select ssn‬‬ ‫ﺗﻌﻨﻲ ‪ :‬اﺳﺘﺨﺮج أرﻗﺎم ﺟﻤﻴﻊ اﻟﻤﻮﻇﻔﻴﻦ و ﻟﻬﻢ راﺗﺐ‬


‫‪From Employee‬‬ ‫أآﺒﺮ ﻣﻦ ‪ 25000‬و اﻗﻞ ﻣﻦ ‪40000‬‬
‫;‪Where salary between 25000 and 40000‬‬

‫‪ .3‬ﻗﺴﻢ ﻣﺼﺪر اﻟﺒﻴﺎﻧﺎت)‪(from clause‬‬

‫„ ﺗﻤﺜﻞ ﻋﻤﻠﻴﺔ اﻟﻀﺮب اﻟﻜﺎرﺗﻴﺰي ﻓﻲ اﻟﺠﺒﺮ اﻟﻌﻼﺋﻘﻲ‬

‫‪65‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‰ ﻣﺜﺎل‪:‬‬

‫‪Select ssn, dnumber‬‬ ‫اﻟﻨﺘﺎج ﻳﻜﻮن ﺟﺪول ﻳﺘﻜﻮن ﻣﻦ ﻣﺠﻤﻮع ﺣﻘﻮل‬


‫;‪From Employee, department‬‬ ‫اﻟﺠﺪوﻟﻴﻦ)‪(Employee, Department‬‬

‫„ ﺗﻤﺜﻞ ﻋﻤﻠﻴﺔ اﻟﺪﻣﺞ)‪ (Join‬ﻓﻲ اﻟﺠﺒﺮ اﻟﻌﻼﺋﻘﻲ إذا آﺎن اﻟﺸﺮط ﻳﺤﺘﻮي ﻋﻠﻰ ﺗﺴﺎوي ﻟﻠﻤﻔﺘﺎح‬
‫اﻟﺮﺋﻴﺴﻲ واﻟﻤﻔﺘﺎح اﻟﻐﺮﻳﺐ ﻟﻠﺠﺪوﻟﻴﻦ‪.‬‬

‫‪Select ssn, dnumber‬‬


‫‪From Employee, department‬‬
‫;‪Where Employee.dno = Department.dnumber‬‬

‫„ ﻳﻤﻜﻦ ﺗﻤﺜﻴﻞ ﻋﻤﻠﻴﺔ اﻟﺪﻣﺞ)‪ (Join‬آﻤﺎ ﻓﻲ اﻟﺠﺒﺮ اﻟﻌﻼﺋﻘﻲ ﺑﻄﺮﻳﻘﺔ أﺧﺮى‪ ،‬ﺑﺎﺳﺘﺨﺪام أﻣﺎ‪:‬‬
‫‰ ‪Inner Join‬‬
‫‰ ‪Left Outer Join‬‬
‫‰ ‪Right Outer Join‬‬
‫ﺑﺎﻹﺿﺎﻓﺔ إﻟﻰ ﺷﺮط اﻟﺪﻣﺞ ﻓﻲ ﺟﺰء ﻣﺼﺪر اﻟﺒﻴﺎﻧﺎت‪.‬‬
‫‰ ﻣﺜﺎل‪:‬‬

‫‪Select ssn, dnumber‬‬


‫;‪From Employee Inner Join department on Dno=Dnumber‬‬

‫„ إﻋﺎدة اﻟﺘﺴﻤﻴﺔ ﻟﺤﻘﻞ‬


‫‰ ﻣﺜﺎل‪:‬‬

‫‪Select ssn, salary*1.1 As newsalary‬‬


‫;‪From Employee‬‬

‫‪66‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫„ إﻋﺎدة اﻟﺘﺴﻤﻴﺔ ﻟﻠﺠﺪول‬


‫‰ ﻣﺜﺎل‪:‬‬

‫‪Select ssn, dnumber‬‬


‫‪From Employee as E, department as D‬‬
‫;‪Where E.dno = D.dnumber‬‬

‫ﻣﻌﺎﻟﺠﺔ اﻟﺴﻼﺳﻞ اﻟﺮﻣﺰﻳﺔ )‪(String Operations‬‬

‫„ ﻟﻐﺔ ‪ SQL‬ﺗﺤﺘﻮي ﺣﺮوف ﺑﺪﻳﻠﺔ )‪ (Wild-Cards‬ﻳﻤﻜﻦ اﺳﺘﺨﺪاﻣﻬﺎ ﻓﻲ ﻋﻤﻠﻴﺎت اﻟﻤﻘﺎرﻧﺔ‬


‫ﻋﻠﻰ اﻟﺴﻼﺳﻞ اﻟﺮﻣﺰﻳﺔ‪ ،‬وهﺬﻩ اﻟﺤﺮوف اﻟﺒﺪﻳﻠﺔ هﻲ‪:‬‬
‫„ ﺣﺮوف ﺗﺤﻞ ﻣﺤﻞ ﻋﺪد ﻣﻦ اﻟﺤﺮوف ﻏﻴﺮ ﻣﻌﺮوف‪ ،‬وﻧﺴﺘﺨﺪم اﻟﺮﻣﺰ )*( ﻟﻬﺬا‬
‫اﻟﻐﺮض‪.‬‬
‫„ ﺣﺮوف ﺗﺤﻞ ﻣﺤﻞ ﺣﺮف واﺣﺪ ﻏﻴﺮ ﻣﻌﺮوف‪ ،‬وﻧﺴﺘﺨﺪم اﻟﺮﻣﺰ )?( ﻟﻬﺬا اﻟﻐﺮض‪.‬‬
‫„ ﻧﺴﺘﺨﺪم أدوات اﻟﺘﻨﺼﻴﺺ )" "(‪ ،‬ﻟﻺﺣﺎﻃﺔ ﺑﺎﻟﺴﻼﺳﻞ اﻟﺮﻣﺰﻳﺔ‪ ،‬ﻧﺴﺘﺨﺪم اﻟﺮﻣﺰ‬
‫)‪ (# #‬ﻟﻺﺣﺎﻃﺔ ﺑﺎﻟﺘﻮارﻳﺦ و اﻟﻮﻗﺖ‪.‬‬
‫„ وآﻤﺎ ﻧﻼﺣﻆ ﻓﺎن هﺬﻩ اﻟﺤﺮوف ﺗﺸﺒﻪ ﻓﻲ ﻋﻤﻠﻬﺎ‪ ،‬ﻋﻤﻠﻴﺔ اﻟﺒﺤﺚ ﻋﻦ اﻟﻤﻠﻔﺎت ﻓﻲ‬
‫‪.Windows‬‬
‫„ ﻳﺠﺐ اﺳﺘﺨﺪام آﻠﻤﺔ ‪ LIKE‬ﻓﻲ اﻟﺸﺮط إذا اﺳﺘﺨﺪﻣﺖ اﻟﺤﺮوف اﻟﺒﺪﻳﻠﺔ‬
‫‰ أﻣﺜﻠﺔ‪:‬‬

‫‪Select fname‬‬ ‫ﺗﻌﻨﻲ‪ :‬اﺳﺘﺨﺮج اﺳﻤﺎء اﻟﻤﻮﻇﻔﻴﻦ اﻟﺬﻳﻦ ﻋﻨﻮاﻧﻬﻢ‬


‫‪From Employee‬‬ ‫ﻳﺤﺘﻮي آﻠﻤﺔ ‪.Houston‬‬
‫;"*‪Where Address like "*Houston‬‬

‫‪Select fname‬‬ ‫ﺗﻌﻨﻲ‪ :‬اﺳﺘﺨﺮج اﺳﻤﺎء اﻟﻤﻮﻇﻔﻴﻦ‪ ،‬اﻟﺬﻳﻦ اﺳﻤﺎءهﻢ‬


‫‪From Employee‬‬ ‫ﺗﺘﻜﻮن ﻣﻦ ‪ 5‬أﺣﺮف ‪ ،‬و اﻟﺤﺮف اﻟﺜﺎﻧﻲ ﻣﻨﻬﺎ هﻮ‬
‫;"???‪Where fname like "?a‬‬ ‫ﺣﺮف ‪. a‬‬

‫‪67‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪Select fname‬‬ ‫ﺗﻌﻨﻲ‪ :‬اﺳﺘﺨﺮج أﺳﻤﺎء اﻟﻤﻮﻇﻔﻴﻦ‪ ،‬اﻟﺬﻳﻦ ﺗﻮارﻳﺦ‬


‫‪From Employee‬‬ ‫ﻣﻴﻼدهﻢ ﺗﺘﺮاوح ﺑﻴﻦ ﻋﺎم ‪ 70‬و ‪.90‬‬
‫‪Where bdate Between #1/1/70# and‬‬
‫;‪#1/1/90#‬‬

‫‪Select fname‬‬ ‫ﺗﻌﻨﻲ‪ :‬اﺳﺘﺨﺮج أﺳﻤﺎء اﻟﻤﻮﻇﻔﻴﻦ اﻟﺬﻳﻦ أﺳﻤﺎﺋﻬﻢ ﺗﺒﺪأ‬


‫‪From Employee‬‬ ‫ﺑﺈﺣﺪى اﻟﺤﺮوف اﻟﺘﺎﻟﻴﺔ‪:‬‬
‫;"*]‪Where fname like "[A-M‬‬ ‫‪A, B, C… M‬‬

‫ﺗﺮﺗﻴﺐ اﻟﻨﺘﺎﺋﺞ )‪(Ordering Results‬‬

‫„ ﻧﺴﺘﺨﺪم اﻟﺠﻤﻠﺔ اﻟﺒﺮﻣﺠﻴﺔ )‪ ،(Order By‬ﻣﻦ أﺟﻞ ﺗﺮﺗﻴﺐ اﻟﻌﻨﺎﺻﺮ اﻟﻨﺎﺗﺠﺔ ﻣﻦ اﻻﺳﺘﻌﻼم‬
‫ب‪:‬‬
‫وﻳﺠﺐ أن ﺗﺘﺒﻊ هﺬﻩ اﻟﺠﻤﻞ ِ‬
‫„ ﺣﻘﻞ اﻟﺘﺮﺗﻴﺐ)‪.(Ordering Field‬‬
‫„ ﻧﻮع اﻟﺘﺮﺗﻴﺐ‪ ،‬ﺗﺼﺎﻋﺪي)‪ (asc‬أم ﺗﻨﺎزﻟﻲ )‪.(desc‬‬
‫‰ أﻣﺜﻠﺔ‪:‬‬
‫‪Select fname, Lname‬‬ ‫ﺗﻌﻨﻲ‪ :‬اﺳﺘﺨﺮج اﻷﺳﻤﺎء اﻷوﻟﻰ و اﻷﺧﻴﺮة‬
‫‪From Employee‬‬ ‫ﻟﻠﻤﻮﻇﻔﻴﻦ‪ ،‬ورﺗﺐ اﻟﻨﺎﺗﺞ ﺑﺤﺴﺐ اﻻﺳﻢ اﻷول‬
‫;‪Order by fname asc‬‬ ‫ﺗﺼﺎﻋﺪﻳًﺎ‪.‬‬

‫‪Select fname, Lname‬‬ ‫ﺗﻌﻨﻲ‪ :‬اﺳﺘﺨﺮج اﻷﺳﻤﺎء اﻷوﻟﻰ و اﻷﺧﻴﺮة‬


‫‪From Employee‬‬ ‫ﻟﻠﻤﻮﻇﻔﻴﻦ‪ ،‬ورﺗﺐ اﻟﻨﺎﺗﺞ ﺑﺤﺴﺐ اﻻﺳﻢ اﻷﺧﻴﺮ‬
‫;‪Order by Lname desc‬‬ ‫ﺗﻨﺎزﻟﻴًﺎ‪.‬‬

‫‪Select fname, Lname, salary‬‬ ‫ﺗﻌﻨﻲ‪ :‬اﺳﺘﺨﺮج اﻷﺳﻤﺎء اﻷوﻟﻰ و اﻷﺧﻴﺮة و‬


‫‪From Employee‬‬ ‫اﻟﺮواﺗﺐ ﻟﻠﻤﻮﻇﻔﻴﻦ‪ ،‬ورﺗﺐ اﻟﻨﺎﺗﺞ ﺑﺤﺴﺐ اﻟﺮاﺗﺐ‬
‫;‪Order by salary asc, fname desc‬‬ ‫ﺗﺼﺎﻋﺪﻳﺎً‪ ،‬و إذا ﺗﺴﺎوى اﻟﺮاﺗﺐ‪ ،‬رﺗﺒﻪ ﺑﺤﺴﺐ اﻻﺳﻢ‬
‫اﻷول ﺗﻨﺎزﻟﻴًﺎ‬

‫اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ )‪(Aggregate Functions‬‬

‫„ هﺬﻩ اﻟﻌﻤﻠﻴﺎت ﺗﻄﺒﻖ ﻋﻠﻰ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻘﻴﻢ ﻟﺤﻘﻞ ﻓﻲ ﻋﻼﻗﺔ ﻣﻌﻴﻨﺔ ‪ ،‬و ُﺗﺮ ِ‬
‫ﺟﻊ ﻗﻴﻤﺔ واﺣﺪة‪.‬‬

‫‪68‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫„ وهﺬﻩ اﻟﻌﻤﻠﻴﺎت هﻲ‪:‬‬


‫‪1. avg( ) : Average value.‬‬
‫‪2. min( ) : minimum value.‬‬
‫‪3. max( ) : maximum value.‬‬
‫‪4. sum( ) : sum of values.‬‬
‫‪5. count( ): number of values.‬‬
‫„ ﻋﻨﺪ اﺳﺘﺨﺪام هﺬﻩ اﻟﻌﻤﻠﻴﺎت ﻣﻊ ﺣﻘﻮل ﻋﺎدﻳﺔ‪ ،‬ﻳﺠﺐ اﺳﺘﺨﺪام اﻟﺠﻤﻠﺔ اﻟﺒﺮﻣﺠﻴﺔ اﻟﺘﺠﻤﻴﻊ‬
‫ﺑﺤﺴﺐ )‪ ،(group by‬وﻳﻜﻮن ﻣﻌﺎﻣﻞ ‪ group by‬هﻮ ﺗﻠﻚ اﻟﺤﻘﻮل اﻟﻌﺎدﻳﺔ‪.‬‬
‫„ اﻟﺸﺮط ﻋﻠﻰ ‪ group by‬ﻳﻜﻮن ﺑﺎﺳﺘﺨﺪام ﺟﻤﻠﺔ )‪ ،(Having‬وﺗﺄﺧﺬ ﻧﻔﺲ اﻟﺸﺮوط ﻟﺠﻤﻞ‬
‫‪.where‬‬
‫‰ أﻣﺜﻠﺔ‪:‬‬

‫‪Select max(salary),‬‬ ‫ﺗﻌﻨﻲ‪ :‬أﺳﺘﺨﺮج أﻋﻠﻰ و اﻗﻞ راﺗﺐ‪ ،‬و ﻣﻌﺪل اﻟﺮواﺗﺐ‬
‫)‪min(salary),avg(salary‬‬ ‫ﻣﻦ ﺟﺪول اﻟﻤﻮﻇﻔﻴﻦ‪.‬‬
‫‪From Employee‬‬

‫)*( ‪Select count‬‬ ‫ﺗﻌﻨﻲ‪ :‬أﺳﺘﺨﺮج ﻋﺪد اﻟﺴﺠﻼت ﻓﻲ ﺟﺪول اﻟﻤﻮﻇﻔﻴﻦ‪.‬‬


‫‪From Employee‬‬ ‫ﻣﻊ ﻣﻼﺣﻈﺔ أن ‪ count‬ﺗﻌﺪد اﻟـﺴﻄﻮر‬
‫وﺗﻌــــــﺪد ﻣــــــﻦ ﺿــــــﻤﻨﻬﺎ اﻟﻘــــــﻴﻢ‬
‫اﻟﻔﺎرﻏﺔ)‪(NULL‬‬

‫‪Select fname, lname‬‬ ‫ﺗﻌﻨﻲ‪ :‬اﺳﺘﺨﺮج اﻻﺳﻢ اﻷول و اﻷﺧﻴ ﺮ ﻟﻜ ﻞ اﻟﻤ ﻮﻇﻔﻴﻦ‬
‫‪From Employee‬‬ ‫اﻟﺬﻳﻦ ﻟﻬﻢ ﻣﻌﺎﻟﻴﻦ أو أآﺜﺮ‪.‬‬
‫‪Where (select count (*) from dependent‬‬ ‫ﻣــــﻊ ﻣﻼﺣﻈــــﺔ اﺳــــﺘﺨﺪام ﻓﻜــــﺮة‬
‫;‪Where ssn=Essn)>=2‬‬ ‫اﻻﺳــــﺘﻌﻼم اﻟﻤﺘــــﻀﻤﻦ) ‪Nested‬‬
‫‪.(Query‬‬

‫)‪Select dno, count (*), avg(salary‬‬ ‫ﺗﻌﻨ ﻲ‪ :‬ﻟﻜ ﻞ داﺋ ﺮة‪ ،‬اﺳ ﺘﺨﺮج رﻗ ﻢ اﻟ ﺪاﺋﺮة‪ ،‬وﻋ ﺪد‬
‫‪From Employee‬‬ ‫اﻟﻤﻮﻇﻔﻴﻦ ﻓﻴﻬﺎ‪ ،‬وﻣﻌﺪل رواﺗﺐ ﻣﻮﻇﻔﻴﻬﺎ‪.‬‬
‫‪Where dno <> NULL‬‬ ‫ﻣﻊ ﻣﻼﺣﻈـﺔ اﺳـﺘﺨﺪام أداة اﻟﻤﻘﺎرﻧـﺔ‬
‫;‪Group by Dno‬‬ ‫>< و ﺗﻌﻨﻲ ﻻ ﻳﺴﺎوي‪.‬‬

‫)*( ‪Select pnumber, pname, count‬‬ ‫ﺗﻌﻨ ﻲ‪ :‬ﻟﻜ ﻞ ﻣ ﺸﺮوع ﻳﻌﻤ ﻞ ﺑ ﻪ أآﺜ ﺮ ﻣ ﻦ ﻣ ﻮﻇﻔﻴﻦ‪،‬‬
‫‪From works_on, project‬‬ ‫أﺳ ﺘﺨﺮج اﺳ ﻢ اﻟﻤ ﺸﺮوع و رﻗﻤ ﻪ‪ ،‬وﻋ ﺪد اﻟﻤ ﻮﻇﻔﻴﻦ‬
‫‪Where pno=pnumber‬‬ ‫اﻟﺬﻳﻦ ﻳﻌﻤﻠﻮن ﺑﻪ‪.‬‬
‫‪Group by pnumber, pname‬‬
‫;‪Having count (*)>2‬‬

‫‪69‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫)*( ‪Select dname, count‬‬ ‫ﺗﻌﻨ ﻲ‪ :‬ﻟﻜ ﻞ داﺋ ﺮة ﻓﻴﻬ ﺎ أآﺜ ﺮ ﻣ ﻦ ﺧﻤ ﺴﺔ ﻣ ﻮﻇﻔﻴﻦ‪،‬‬
‫‪From Employee, Department‬‬ ‫أﺳ ﺘﺨﺮج اﺳ ﻢ اﻟ ﺪاﺋﺮة‪ ،‬و ﻋ ﺪد اﻟﻤ ﻮﻇﻔﻴﻦ اﻟ ﺬﻳﻦ‬
‫‪Where Dnumber=Dno and salary>40,000‬‬ ‫ﻳﺤﺼﻠﻮن ﻋﻠﻰ رواﺗﺐ ﺗﺰﻳﺪ ﻋﻦ ‪40, 000‬‬
‫‪and dno IN ( Select Dno from Employee‬‬
‫‪Group by dno‬‬ ‫ﻣﻊ ﻣﻼﺣﻈﺔ اﺳﺘﺨﺪام آﻠﻤﺔ ‪ IN‬و اﻟﺘﻲ ﺗﻌﻨﻲ ه ﻞ أن‬
‫)‪Having count (*)>5‬‬ ‫‪ Dno‬أﺣﺪى اﻟﻨﺘﺎﺋﺞ ﻟﻼﺳﺘﻌﻼم اﻟﻤﺘﻀﻤﻦ‪.‬‬
‫;‪Group by dname‬‬

‫ﺟﻤﻞ اﻟﺘﻐﻴﻴﺮ ﻋﻠﻰ اﻟﺒﻴﺎﻧﺎت )‪(Date changing‬‬

‫„ وﺗﺸﻤﻞ اﻟﺠﻤﻞ اﻟﺘﺎﻟﻴﺔ‪:‬‬


‫‪1. Insert into‬‬
‫‪2. update‬‬
‫‪3. delete‬‬

‫„ وﺳﻨﻼﺣﻆ ﻣﻦ ﺧﻼل اﻷﻣﺜﻠﺔ ﻋﻠﻴﻬﺎ ﻣﺪي اﻟﺘﺸﺎﺑﻪ ﺑﻴﻨﻬﺎ و ﺑﻴﻦ ﺟﻤﻠﺔ اﻻﺧﺘﻴﺎر)‪(select‬‬

‫إﺿﺎﻓﺔ ﺳﺠﻼت)‪(Insert Into‬‬


‫„ وﺗﺴﺘﺨﺪم ﻣﻦ اﺟﻞ إﺿﺎﻓﺔ ﺳﺠﻼت ﺟﺪﻳﺪة إﻟﻰ ﺟﺪول ﻣﻌﻴﻦ‪:‬‬
‫‰ أﻣﺜﻠﺔ‪:‬‬
‫‪Insert into department‬‬ ‫ﺗﻌﻨﻲ‪ :‬ادﺧﻞ اﻟﺴﺠﻞ اﻟﻤﻮﺟﻮد ﺑﻌﺪ آﻠﻤﺔ ‪ values‬إﻟﻰ‬
‫)'‪Values (6,'R&D','999998544','1/1/2002‬‬ ‫ﺟﺪول اﻟﺪاﺋﺮة‪ ،‬ﺑﻨﻔﺲ ﺗﺮﺗﻴﺐ اﻟﺤﻘﻮل اﻟﻤﻮﺟﻮد ﻓﻲ‬
‫اﻟﺘﺼﻤﻴﻢ ﻟﻠﺠﺪول‬

‫‪Insert into department (dname, dnmuber,‬‬ ‫ﺗﻌﻨﻲ‪ :‬ادﺧﻞ اﻟﺴﺠﻞ اﻟﻤﻮﺟﻮد ﺑﻌﺪ آﻠﻤﺔ ‪ values‬إﻟﻰ‬
‫)‪mgrssn, mgrstartdate‬‬ ‫ﺟﺪول اﻟﺪاﺋﺮة‪ ،‬ﺑﻨﻔﺲ ﺗﺮﺗﻴﺐ اﻟﺤﻘﻮل اﻟﻤﻮﺟﻮد ﻓﻲ‬
‫)'‪Values ('R&D', 6,'999998544','1/1/2002‬‬ ‫اﻻﺳﺘﻌﻼم‪.‬‬

‫ﺣﺬف ﺳﺠﻼت)‪(delete‬‬
‫„ وﺗﺴﺘﺨﺪم ﻣﻦ اﺟﻞ ﺣﺬف ﺳﺠﻼت ﻣﻦ ﺟﺪول ﻣﻌﻴﻦ‪:‬‬

‫‪70‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫„ ﻳﺠﺐ أن ﺗﺴﺘﺨﺪم ﺑﺤﺬر ﺷﺪﻳﺪ ﻷن اﺳﺘﺨﺪاﻣﻬﺎ ﺑﺸﻜﻞ ﺧﺎﻃﺌﻰ‪ ،‬ﻗﺪ ﻳﺆدي إﻟﻰ ﻓﻘﺪان اﻟﺒﻴﺎﻧﺎت‪.‬‬
‫‰ أﻣﺜﻠﺔ‪:‬‬
‫‪Delete from Employee‬‬ ‫ﺗﻌﻨﻲ‪ :‬اﺣﺬف ﺳﺠﻞ اﻟﻤﻮﻇﻒ اﻟﺬي رﻗﻤﻪ‬
‫;"‪Where ssn="123456789‬‬ ‫‪123456789‬‬

‫‪Delete from Employee‬‬ ‫ﺗﻌﻨﻲ‪ :‬أﺣﺬف ﺳﺠﻼت اﻟﻤﻮﻇﻔﻴﻦ اﻟﺬﻳﻦ ﻳﻌﻤﻠﻮن ﻓﻲ‬
‫‪Where Dno in (Select dnumber from‬‬ ‫اﻟﺪاﺋﺮة اﻟﺘﻲ ﺗﺴﻤﻰ ‪.Research‬‬
‫;) "‪department where dname="Research‬‬

‫ﺗﻌﺪﻳﻞ اﻟﺴﺠﻼت)‪(Update‬‬
‫„ وﺗﺴﺘﺨﺪم ﻣﻦ اﺟﻞ ﺗﻌﺪﻳﻞ ﺑﻴﺎﻧﺎت ﻣﻌﻴﻨﺔ ﻓﻲ ﺳﺠﻼت ﻣﻦ ﺟﺪول ﻣﻌﻴﻦ‪:‬‬
‫‰ أﻣﺜﻠﺔ‪:‬‬
‫‪Update Employee‬‬ ‫ﺗﻌﻨﻲ‪ :‬أﺿﻒ زﻳﺎدة ﺑﻤﻘﺪار‪ %10‬ﻋﻠﻰ رواﺗﺐ‬
‫‪Set salary=salary*1.1‬‬ ‫اﻟﻤﻮﻇﻔﻴﻦ اﻟﺬﻳﻦ ﻳﻌﻤﻠﻮن ﻓﻲ اﻟﺪاﺋﺮة رﻗﻢ ‪.5‬‬
‫;‪Where dno=5‬‬

‫ﺟﻤﻞ ﺗﻌﺮﻳﻒ اﻟﺒﻴﺎﻧﺎت )‪(DDL‬‬

‫„ ﻣﻼﺣﻈﺔ‪ :‬هﺬﻩ اﻟﺠﻤﻞ ﻏﻴﺮ ﻣﺪﻋﻮﻣﺔ ﻓﻲ ‪ ، Access‬وﺗﺴﺘﺨﺪم ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻜﺒﻴﺮة‬


‫ﻣﺜﻞ أوراآﻞ‪ ،SQL Server ،‬وﻏﻴﺮهﺎ‪.‬‬

‫ﺟﻤﻠﺔ )‪(Create‬‬

‫„ وﺗﺄﺗﻲ ﻋﻠﻰ ﺛﻼﺛﺔ أﺷﻜﺎل‪:‬‬


‫‪1. Create table‬‬
‫‪2. Create index‬‬
‫‪3. Create view‬‬

‫‪71‬‬
2003 ‫ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ‬.‫م‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

( Create Table) ‫ﺟﻤﻠﺔ اﻧﺸﺄ اﻟﺠﺪاول‬

،‫ و اﻟﻀﻮاﺑﻂ ﻋﻠﻰ اﻟﺤﻘﻮل‬،‫ ﻣﻊ ﺗﻌﺮﻳﻒ أﻧﻮاع اﻟﺒﻴﺎﻧﺎت‬،‫„ وﺗﺴﺘﺨﺪم ﻟﺘﻌﺮﻳﻒ ﺟﺪول‬


.‫واﻟﻌﻼﻗﺎت ﺑﻴﻦ اﻟﺠﺪاول‬
:‫ ﻻوراآﻞ‬SQL+ ‫‰ ﻣﺜﺎل ﺑﺄﺳﺘﺨﺪام‬

Create Table Employee ‫ اﺑﻨﻲ ﺟﺪول اﻟﻤﻮﻇﻔﻴﻦ‬:‫ﺗﻌﻨﻲ‬


(
Fname varchar(20) not NULL,
SSN char (9) not NULL default "111111111",
Bdate Date,
Salary Decimal (10,2),
Dno Int default 1,
Supssn char (9),
Primary key (SSN),
Unique (Fname),
Foreign key (Dno) references department
(Dnumber) on Delete set NULL on update
cascade,
Foreign key (Supssn) references employee
(SSN) on Delete set NULL on update cascade,
);

( Drop Table) ‫ﺟﻤﻠﺔ ﺣﺬف اﻟﺠﺪاول‬

Drop Table Dept_Loc cascade; ‫ و وزع‬Dept_Loc ‫ أﺣﺬف اﻟﺠﺪول‬:‫ﺗﻌﻨﻲ‬


‫اﻟﺘﺄﺛﻴﺮات ﻣﻦ اﻟﺤﺬف ﻋﻠﻰ اﻟﺠﺪاول‬
‫اﻟﻤﺮﺗﺒﻄﺔ‬

72
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﺟﻤﻠﺔ ﺗﻐﻴﻴﺮ اﻟﺘﺼﻤﻴﻢ ﻟﺠﺪاول )‪( Alter Table‬‬

‫‪Alter Table Employee Add jobtitle‬‬ ‫ﺗﻌﻨﻲ‪ :‬أﺿﻒ اﻟﺤﻘﻞ ‪ jobtitle‬اﻟﻰ ﺟﺪول‬
‫;)‪char(10‬‬ ‫اﻟﻤﻮﻇﻔﻴﻦ‪.‬‬

‫;‪Alter Table Employee drop bdate‬‬ ‫ﺗﻌﻨﻲ‪ :‬أﺣﺬف اﻟﺤﻘﻞ ‪ bdate‬ﻣﻦ ﺟﺪول‬
‫اﻟﻤﻮﻇﻔﻴﻦ‪.‬‬

‫ﺟﻤﻠﺔ اﻧﺸﺄ ﻓﻬﺮس ﺑﻴﺎﻧﺎت )‪( Create Index‬‬

‫‪Create index EmpIDX on Emp(fname asc,‬‬ ‫ﺗﻌﻨﻲ‪ :‬أﻧﺸﺎء ﻓﻬﺮس ﺑﺎﺳﻢ ‪ EmpIDX‬ﻋﻠﻰ‬
‫)‪bdate‬‬ ‫اﻟﺤﻘﻮل ‪ fname‬و ‪ ، bdate‬ﻣﻊ ﺗﺮﺗﻴﺐ‬
‫اﻟﻔﻬﺮس ﺑﺤﺴﺐ اﻷﺳﻢ اﻻول ﻓﻲ ﺟﺪول‬
‫اﻟﻤﻮﻇﻔﻴﻦ‪.‬‬

‫ﺟﻤﻠﺔ اﻧﺸﺄ ﻣﻈﻬﺮ ﺑﻴﺎﻧﺎت )‪( Create View‬‬


‫„ وﺗﺴﺘﺨﺪم ﻟﺘﻌﺮﻳﻒ ﺟﺪول وهﻤﻲ)‪.(Virtual Table‬‬

‫‪Create view EmpFullName on select‬‬ ‫ﺗﻌﻨﻲ‪ :‬أﻧﺸﺎء ﻣﻈﻬﺮ ﺑﻴﺎﻧﺎت ﻣﻦ ﺟﺪول‬


‫;‪fname, minit, lname from Employee‬‬ ‫اﻟﻤﻮﻇﻔﻴﻦ ﻳﺤﺘﻮي ﻋﻠﻰ اﻟﺤﻘﻮل‪ fname :‬و‬
‫‪ Minit‬و ‪ .lname‬وﺳﻤﻴﻪ ‪EmpFullName‬‬

‫‪73‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫أﺳﺌﻠﺔ اﻟﻮﺣﺪة‪:‬‬

‫‪ .1‬ﻗﺎرن ﻣﻦ ﺧﻼل ﺟﺪول ﺑﻴﻦ ﺟﻤﻠﺔ ‪ SELECT‬ﻓﻲ اﻟﺠﺒﺮ اﻟﻌﻼﺋﻘﻲ و ﻓﻲ ‪ SQL‬؟‬


‫‪ .2‬وﺿﺢ اﻟﻔﺮق ﺑﻴﻦ ﺟﻤﻞ ‪ DDL‬و ‪ DML‬ﻓﻲ ‪ SQL‬ﻣﻦ ﺧﻼل ﺛﻼﺛﺔ ﻧﻘﺎط ؟‬
‫ﺑﺎﻷﺧﺬ ﺑﻌﻴﻦ اﻻﻋﺘﺒﺎر اﻟﺠﺪاول اﻟﺘﺎﻟﻴﺔ اﻟﺘﻲ ﺗﻤﺜﻞ ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ﻟﻤﺴﺘﺸﻔﻰ)‪:(Hospital‬‬

‫ﺷﻜﻞ ‪ :2‬ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ﻟﻤﺴﺘﺸﻔﻰ‬


‫أﺟﻴﺐ ﻋﻠﻰ اﻷﺳﺌﻠﺔ اﻟﺘﺎﻟﻴﺔ ﺑﺎﺳﺘﺨﺪام ﻟﻐﺔ اﻻﺳﺘﻌﻼم اﻟﺒﻨﻴﻮﻳﺔ )‪:(SQL‬‬
‫‪ .3‬ﺻﻤﻢ اﺳﺘﻌﻼم ﺗﺤﺪﻳﺪ ﻳﻘﻮم ﺑﻌﺮض أﺳﻤﺎء اﻟﻤﺮﺿﻰ ﺑﺤﺴﺐ اﻟﺠﻨﺲ‪.‬‬

‫‪ .4‬ﺻﻤﻢ اﺳﺘﻌﻼم ﻳﻌﺮض ﺳﺠﻼت اﻷﻃﺒﺎء ذوي اﻟﺮواﺗﺐ اﻟﺘﻲ ﺗﺘﺮاوح ﺑﻴﻦ ‪ 2000‬و ‪.3000‬‬

‫‪ .5‬ﺻﻤﻢ اﺳﺘﻌﻼم ﺑﻜﻞ اﻟﻤﺮﺿﻰ اﻟﻤﺼﺎﺑﻴﻦ ﺑﻤﺮض اﻟﻘﻠﺐ)‪ (Heart‬ﻣﻊ ﻋﺮض أﺳﻢ اﻟﻄﺒﻴﺐ‬
‫اﻟﻤﻌﺎﻟﺞ وآﻞ أدوﻳﺔ اﻟﻌﻼج‪.‬‬

‫‪ .6‬ﺻﻤﻢ اﺳﺘﻌﻼم ﻳﻌﺮض ﻗﺎﺋﻤﺔ ﺑﺴﺠﻼت اﻷدوﻳﺔ اﻟﺘﺎﻟﻔﺔ) اﻟﺘﻲ اﻧﺘﻬﻰ ﺗﺎرﻳﺨﻬﺎ(‪.‬‬

‫‪ .7‬اآﺘﺐ اﻷﺟﺮاء اﻟﻼزم ﻟﺒﻨﺎء ﺟﺪول )‪.(medical_record‬‬

‫‪ .8‬اﺳﺘﺨﺮج ﻋﺪد اﻟﻤﺮﺿﻰ اﻟﻤﺼﺎﺑﻴﻦ ﺑﻤﺮض اﻟﺴﻜﺮي)‪.(sugary‬‬

‫‪74‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫اﻟﻤﺮاﺟﻊ‬

‫‪ .1‬ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت و أدارﺗﻬﺎ‪ ،‬ﺟﺎﻣﻌﺔ اﻟﻘﺪس اﻟﻤﻔﺘﻮﺣﺔ‪ ،‬اﻟﻄﺒﻌﺔ اﻷوﻟﻰ ‪.1997‬‬

‫‪ .2‬اﻟﻄﻴﻄ ﻲ‪ ،‬ﺟﻌﻔ ﺮ‪ ,Microsoft Access ,2001‬ﻣ ﺪرس ﺣﺎﺳ ﻮب ﺗﻘﻨ ﻲ‪ ،‬ﺧﻄ ﺔ ﺛﻨﺎﺋﻴ ﺔ‪ ،‬آﻠﻴ ﺔ‬
‫اﻟﻌﻠﻮم اﻟﺘﺮﺑﻮﻳﺔ وآﻠﻴﺔ ﻣﺠﺘﻤﻊ اﻟﻤﺮﺁة‪.‬‬

‫‪ .3‬اﻟﻄﻴﻄ ﻲ‪ ،‬ﺟﻌﻔ ﺮ‪ ,‬أﺛ ﺮ ﺗﻄ ﻮﻳﺮ وﺣ ﺪة اﻟﺒﺮﻣﺠ ﺔ ﺑﻠﻐ ﺔ اﻻﺳ ﺘﻌﻼم اﻟﺒﻨﻴﻮﻳ ﺔ)‪ (SQL‬ﻋﻠ ﻰ ﺗﺤ ﺼﻴﻞ‬
‫اﻟﻄﺎﻟﺒﺎت ﺿﻤﻦ ﻣﺴﺎق ﻣﻌﺎﻟﺠ ﺔ ﻗﻮاﻋ ﺪ اﻟﺒﻴﺎﻧ ﺎت‪ ,‬ﻣ ﺪرس ﺣﺎﺳ ﻮب ﺗﻘﻨ ﻲ‪ ،‬ﺑﺤ ﺚ أﺟﺮاﺋ ﻲ ﺿ ﻤﻦ‬
‫دورة اﻟﺘﺮﺑﻴﺔ ﻓﻲ أﺛﻨﺎء اﻟﺨﺪﻣﺔ اﻟﺘﻲ ﻳﻌﻘﺪهﺎ ﻣﻌﻬﺪ اﻟﺘﺮﺑﻴﺔ – اﻷﻧﺮوا‪ ،‬آﻠﻴﺔ اﻟﻌﻠ ﻮم اﻟﺘﺮﺑﻮﻳ ﺔ وآﻠﻴ ﺔ‬
‫ﻣﺠﺘﻤﻊ اﻟﻤﺮﺁة‪ ،‬ﺗﻤﻮز ‪.2002‬‬

‫‪ .4‬ﻧﻈﻢ إدارة ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت و ﺗﻄﺒﻴﻘﺎﺗﻬﺎ‪ ،‬ﻣﻮﺳﻮﻋﺔ دﻟﺘﺎ آﻤﺒﻴﻮﺗﺮ‪.‬‬

‫‪5. Elmsari & Navathe (2000), Fundamentals of Databases Systems,‬‬


‫‪Third Edition.‬‬

‫‪6. Silberschatz, Korth, (1997), Database Systems Concepts.‬‬

‫‪75‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫ﻣﻠﺤﻖ‪ :‬ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ﻟﺸﺮآﺔ‬

‫‪76‬‬
‫م‪.‬ﺟﻌﻔﺮ اﻟﻄﻴﻄﻲ ‪2003‬‬ ‫اﻟﻤﻮﺟﺰ ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪77‬‬
Resume for Jafar Titi Tuesday, April 04, 2006

Jafar Ishaq Titi ‫ﺟﻌﻔﺮ اﺳﺤﻖ ﻃﻴﻄﻲ‬


RWTC, Al-Tereh Street, Ramallah, P.O.Box 214
jafart@gmail.com

Profile M.S. degree in Scientific Computing. B.S. degree majoring in Electrical Engineering
and minor in Computer Science, in addition holds a diploma in education. Also a
Skilled research engineer and programmer, Experienced computer technical
instructor. And an Expert web designer.

Education M.S. Scientific Computing, Birzeit University/ Palestine February 2005


B.S. Electrical Engineering, Birzeit University/ Palestine
Major: Electrical Engineering(Light Current) September 2000
Minor: Computer Science
Diploma in education, Education Faculty/UNRWA
August 2003
Vocational training instruction

Publications Master’s of Science Thesis


Jafar I. Titi, Simulation, Analysis, and Advanced Control of Selected Nonlinear Dynamic Systems,
December 2004.
Invited Paper/Presentation
Jafar I. Titi, Haithem Abu-Rub, “Comparative Analysis of Fuzzy and PI Sensorless Control Systems
of Induction Motor Using Power Measurement”, CPE’05 conference, Gdynia, Poland, June 2005.
Books and Course Materials
Jafar I. Titi, Fundamentals of Database Systems, RWTC, UNRWA, June 2003.

Educational sciences Faculty and Ramallah women Training


Career History Center, UNRWA, Ramallah, Palestine(http://www.rwtc.edu) Sept 2000-current
Computer Technical Instructor
• Teaching courses of computer science; Cisco Networking CCNA,
Database, Data Structure, Software Engineering, Web Design,
Macromedia Flash and other Desktop Application Courses.
• Supervises several innovative Graduation Projects for the computer
department students.
• Helping revise curriculum and graduation requirements for students in
computer section to better prepare them for the job market.
• Teaching Courses of computer science for ESF Students.
• Teaching Community short-term courses in computer field.
• RWTC/ESF Website Designer and master.

Al-Quds Open University, Ramallah, Palestine (http://www.qou.edu) Oct. 2005-current


Computer Academic Lecturer, Communications and IT dept.
Saffa club, Saffa, Ramallah, Palestine Aug 2005-Jan 2006

Teahing a 70 hour web Design Course includes: Process And


Specifications for Web Design, html, FrontPage, Flash, image editing,
SQL server, asp.
ClaraNET ISP, London, UK (http://www.claranet.com) 1999

Page 1 of 2
Resume for Jafar Titi Tuesday, April 04, 2006

Web Designer
• UNIX (FreeBSD), Apache Web Server, Bind DNS server, MTA Mail
Server, and X-Windows server administration.
• Internet project that includes web interface for a Database, MySQL
Database server, Perl language, Html.
Computer Center, Birzeit University, Palestine March 1998- March 1999
Support Team Member
• Network connections (hardware & software).
• Installing various computer hardware & software.
• Computer hardware & software maintenance.

Awards • Dean’s Honor List for 6 semesters, Msc. Scientific Computing, Birzeit.
• Dean's Honor List for two semesters, Electrical Engineering, Birzeit
University.
• Summer training grant: ClaraNET ISP, London, UK

Professional • Palestine and Jordan Engineers Associations, Electrical Engineering Div. Sept. 2000
Memberships • Certified Computer Network Associate (CCNA) Cisco Academy Instructor July 2002
• International Computing Driving License (ICDL) Certified Instructor. May 2003

Skills and • Programming Languages: C++, Pascal, VB, FORTRAN, SQL, Assembly, and Matlab.
Interests • Web design and HTML programming: Java and VB (applet's and scripts), working
with Visual Editors of HTML, ASP, Flash animations.
• Operating systems: DOS, Win3.x/95/98/ME/XP/WindowsNT, and UNIX (FreeBSD,
Linux).
• Applications: MS Office, AutoCAD, MathCAD, and Photoshop, Macromedia flash,
Visio Technical, and others.

Projects and • Presentation and defense for the Master Thesis: A novel and inexpensive method to
Seminars develop and assess sensorless control schemes of induction motors. The proposed systems
operate without speed sensor; the rotor angular speed is calculated in different ways. The
methods are applied to field oriented control principle. Fuzzy logic controller used for
speed control. A comprehensive analysis and comparative study of several relationships of
rotor angular speed presented.
• Several computer simulation programs in the field of scientific computing.
• Designer and webmaster for a complete Website for RWTC.
• B.Sc. Graduation Project: Design of a complete Barcode generation machine: - Design
of a computer controlled automated production line, includes printing labels, design of an
input-output computer card, and database programming.
• Programming of a portion of an operating system (Virtual Memory Management): Object-
Oriented C++.
• A database program for the registration office in Birzeit University Using Ms Access.
• Design of several computer systems using OrCAD. Suggested improvements on the
CSMA/CD Protocol, Ethernet collision problems. Ethernet Technology: a complete
overview, and future. Design of an Automatic Controller of water level in a tank, Types of
memory, digital families.

Languages Arabic (Native), English (Excellent), and Hebrew (Fair).

Page 2 of 2

You might also like