You are on page 1of 36

SlideShare Explore Search You

Upload
Login
Signup

Search

Home
Technology
Education
More Topics

For Uploaders

Get Started

Tips & Tricks

Tools

Search
‫ّﺪة ﻣﺴﻌﻌﺘﻮﯾﺎت وھﻌﻌﻲ‪ :‬ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت‪ ،‬اﻟﺠﺪول‪،‬‬
‫​ ﯾﻤﻜﻌﻌﻦ أن ﯾﺘﻌﻌﻢ اﻟﻘﻔﺎل ﻋﻠﻰ ﻋ‬
‫​‪ ١.٤‬ﻣﺴﺘﻮﯾﺎت اﻟﻘﻔﺎل‪:‬‬
‫​‬ ‫‪...‬‬
‫ع‪...‬‬ ‫ع‬
‫​‬ ‫ع‬
‫​‬ ‫ﺗﺒﻖ ﻋﻰ ﻧﻒ ﻋﺲ اﻟﻤﺸﻜﻠﺔ اﻟﻤﻮﺟﻮدة ف ﻋﻲ اﻟﻤﺲ ﻋﺘﻮى اﻟﺲ ﻋﺎﺑﻖ‪ ،‬أي ﻓﯿﻢ ﻋﺎ إذا ﻛﺎن ھﻨﺎك‬
‫​‬
‫ّﺪة‬
‫​ م‪...‬‬ ‫​ وھﻌﻮ أﺳﻌﻠﻮب أﻗﻌﻞ ﺗﻘﯿﯿﺪا ﻣﻌﻦ اﻟﻤﺴﻌﺘﻮﯾﺎت اﻟﺴﻌﺎﺑﻘﺔ ﻓﻌﻲ اﻟﻘﻔﻌﻞ‪ ،‬ﺑﺤﯿﻌﺚ ﯾﺴﻌﻤﺢ ﻟﻌ‬
‫اﻟﻘﻔﻞ ﻋﻠﻰ ﻣﺴﺘﻮى اﻟﺴﻄﺮ ‪:Row Locking‬‬
‫​ اﻟﺮﻏﻌﻢ ﻣﻌﻦ ذﻟﻚ‪ -‬ﻧﺎدرا ﻣﻌﺎ ﯾﺘﻌﻢ اﺳﻌﺘﺨﺪام ھﺬ‪...‬‬
‫وھﻌﻮ أﻛﺜﻌﺮ أﻧﻮاع ﻣﺴﻌﺘﻮﯾﺎت اﻟﻘﻔﻌﻞ ﻣﻞءﻣﻌﺔ ﻟﻠﺒﯿﺌﺔ ﻣﺘﻌﺪدة اﻟﻤﺴﻌﺘﺨﺪﻣﯿﻦ وﻟﻜﻌﻦ ‪-‬ﻋﻠﻰ‬
‫ﻣﻘﻔﻮل‪...‬‬ ‫ع‬
‫​‬ ‫ع‬
‫​‬ ‫​ﻋﻨﺺ ﻋﺮ ﻣﻌﻠﻮﻣﺎت‬
‫​‬ ‫​وذﻟﻚ ﻋﻦ ﻋﺪ اﻧﺘﻈﺎر ﻣﻨﺎﻗﻠﺔ ‪x‬‬
‫اﻟﻘﻔﺎل اﻟﻤﺘﺒﺎدل ‪:Dead Lock‬‬

‫​‪ -‬ل ﯾﻤﻜﻌﻦ أن ﯾﺘﻌﻢ إﺟﺮاء أي ﻋﻤﻠﯿﻌﺔ ﺗﺤﺮﯾﻌﺮ ﻗﻔﻌﻞ ﻣﻌﻦ ﻗﺒﻌﻞ أي ﻋﻤﻠﯿﻌﺔ ﺣﺠﻌﺰ ﻗﻔﻌﻞ ﻓﻌﻲ‬ ‫‪...‬‬
‫​ ع‬
‫​ ع‬
‫ع‬ ‫​ ع‬
‫​‬ ‫​ ع‬
‫‪​...‬ﯾﺘﻌﻢ ﻣﻨﻌﻊ ﺣﺼﻌﻮل إﻗﻔﺎل ﻣﺘﺒﺎدل ﻣﻌﻦ ﺧﻠﻞ رﻓﻌﺾ ﻣﻨﻌﺢ ﻗﻔﻌﻞ ﻟﻤﻨﺎﻗﻠﺔ إذا ﻣﻌﺎ وﺟﻌﺪ‬
‫ﻣﺜﻞ ﺣﺎﻟﺖ اﻟﻘﻔﺎل اﻟﻤﺘﺒﺎدل‪.‬‬ ‫​أﺧﻄﺎء ﻧﺎﺟﻤﺔ ﻋﻦ اﻟﻤﻨﺎﻗﻠﺖ ‪:Transaction‬‬
‫​‬ ‫‪...‬‬
‫ّﺪة ﻧﺴﺦ ﻣﻦ ﺳﺠﻞ اﻟﻤﻨﺎﻗﻠﺖ ﺗﺤﺴﺒﺎ ﻟﻠﻤﺸﺎﻛﻞ اﻟﺘﻲ ﯾﻤﻚ‪...‬‬
‫​ ﺗﺄﻣﯿﻦ ﻋ‬
‫وھﻮ أﺳﻠﻮب ﺗﺘﺒﻌﮫ اﻟﻌﺪﯾﺪ ﻣﻦ أﻧﻈﻤﺔ إدارة ﻗﻮاﻋﺪ اﻟﻤﻌﻄﯿﺎت وذﻟﻚ ﻣﻦ ﺧﻠﻞ‬
http://www.service- architecture.com/database/articles/concurrency_control_and_lock ing.html ...
Upcoming SlideShare

Loading in …5
×
8 of 27

Lecture7 Transactionmanagement
Concurrencycontrol
4,604 views
4,433 views

Share
Like
Download
guest800d4
Follow
2 11 0

Published on Jan 22, 2009

Published in: Technology

2 Comments
8 Likes
Statistics
Notes

Full Name
Comment goes here.
12 hours ago Delete Reply Spam Block
Are you sure you want to Yes No
Your message goes here

Share your thoughts…


Post

m7mdrs
nice
3 years ago Reply
Are you sure you want to Yes No
Your message goes here

asmooal
good slide
6 years ago Reply
Are you sure you want to Yes No
Your message goes here

Mustafa ali , programmer at smart way company at Aletehadiya insurance


1 day ago

‫ اﻟﺸﻤﻮخ ﻋﺰﻣﺎن‬, --
6 months ago
‫ﻣﺮﻛﺰ آﯾﺘﻚ ﻟﻠﺘﺪرﯾﺐ واﻟﺘﺄھﯿﻞ ‪ +‬ﺟﺎﻣﻌﺔ اﻟﻌﻠﻮم واﻟﺘﻜﻨﻮﻟﻮﺟﯿﺎ ‪Mohammed Hamood Naji at‬‬
‫‪7 months ago‬‬

‫‪MAS-Adnan MAS-Adnan , System Analist at MAS Technology‬‬


‫‪1 year ago‬‬

‫‪Nabulsi Ozil‬‬
‫‪1 year ago‬‬

‫‪Show More‬‬
‫‪No Downloads‬‬
‫‪Views‬‬
‫‪Total views‬‬
‫‪4,604‬‬
‫‪On SlideShare‬‬
‫‪0‬‬
‫‪From Embeds‬‬
‫‪0‬‬
‫‪Number of Embeds‬‬
‫‪6‬‬
‫‪Actions‬‬
‫‪Shares‬‬
‫‪13‬‬
‫‪Downloads‬‬
‫‪264‬‬
‫‪Comments‬‬
‫‪2‬‬
‫‪Likes‬‬
‫‪8‬‬
‫‪Embeds 0‬‬
‫‪No embeds‬‬

‫‪No notes for slide‬‬

‫‪Lecture7 Transactionmanagement Concurrencycontrol‬‬


‫​ ‪1. 1.‬‬‫​‪Transaction Management and‬‬ ‫​ اﻟﻔﺼﻞ اﻟﺴﺎﺑﻊ‪ :‬إدارة اﻟﻤﻨﺎﻗﻠﺖ واﻟﺘﺤﻜﻢ اﻟﻤﺘﺰاﻣﻦ‬
‫​‬ ‫اﻟﻤﺎدة‪ :‬ﺗﺼﻤﯿﻢ ﻗﻮاﻋﺪ اﻟﻤﻌﻄﯿﺎت ‪DBAR‬‬
‫​‬‫​ع‬
‫​‬ ‫​ ﻣﻨﺎﻗﻠﺔ ‪ ،transaction‬ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت ‪ ،database‬ﻧﻈﺎم إدارة ﻗﻮاع ﻋﻌﻌﻌﻌﻌﻌﺪ ﻣﻌﻄﯿﺎت‬ ‫​ اﻟﻜﻠﻤﺎت اﻟﻤﻔﺘﺎﺣﯿﺔ‪:‬‬
‫‪Concurrency Control‬‬
‫​‬‫ّﻌﺔ‬‫ّﻌﺴﺎق اﻟﻤﻌﻄﯿﺎت ‪ ،data consistency‬اﻟﻜﺘﻠﯿ‬ ‫​ اﺗ‬
‫‪،DBMS‬ﺻﺤﺔ اﻟﻤﻌﻄﯿﺎت ‪ ،data correctness‬ﺗﻜﺎﻣﻞ اﻟﻤﻌﻄﯿﺎت ‪،data integration‬‬
‫​‬‫​ اﻟﺘﺴﻌﺎق ‪ ،consistency‬اﻟﻌﺰل ‪ ،Isolation‬ﺗﺄﻛﯿﻌﺪ اﻟﺘﻐﯿﯿﺮات ‪ ،COMMIT‬اﻟﺘﺮاﺟﻌﻊ ﻋﻌﻦ‬
‫​‬ ‫‪،atomicity‬اﻟﺴﻌﺘﻤﺮارﯾﺔ ‪،durability‬‬
‫​‬‫​‪ ،concurrent‬اﻟﻤﺠﺪول‬
‫​‬ ‫​ع‬
‫​‬ ‫​ اﻟﺘﻐﯿﯿﺮات ‪ ،ROLLBACK‬س ﻋﻌﻌﺠﻞ اﻟﻤﻨﺎﻗﻠﺖ ‪record‬‬ ‫​ع‬ ‫​ع‬‫‪،log‬اﻟﺘﺤﻚ ﻋﻌﻌﻢ اﻟﻤﺘﺰام ﻋﻌﻌﻦ‬
‫​‪ ،scheduled‬ﺧﻮارزﻣﯿﺎت اﻟﻘﻔﻌﻌﻌﻞ ‪ ،lock algorithms‬ﺑﺮوﺗﻮﻛﻮﻟﺖ اﻟﺨﺘﺎم‬ ‫​‪control‬‬
‫​‬ ‫‪،concurrency‬اﻟﺘﻨﻔﯿﻌﻌﻌﺬ اﻟﻤﺘﺰاﻣﻌﻌﻌﻦ ‪execution‬‬
‫​‬
‫​‪ ،exclusive lock‬ﺑﺮوﺗﻮﻛﻮل اﻟﻘﻔﺎل‬ ‫​‪protocols‬‬
‫​‬ ‫​‪ ،timestamp-based‬ﻗﻔﻌﻌﻌﻞ ﻣﺸﺘﺮك ‪lock‬‬
‫​‬ ‫​‪ ،shared‬ﻗﻔﻌﻌﻌﻞ ﺣﺼﻌﻌﻌﺮي‬
‫​‬ ‫اﻟﺰﻣﻨﯿﻌﻌﻌﺔ‬
‫​‬
‫​‬‫​ اﻟﻘﻔﺎل اﻟﻤﺘﺒﺎدل ‪ ،dead lock‬ﺧﺘﻌﻌﻢ زﻣﻨﻌﻌﻲ ‪ ،timestamp‬ﻧﻈﺎم اﻟﺘﻌﺎﻓﻌﻌﻲ ‪recovery‬‬
‫​‬ ‫ﻋﻠﻰ ﻣﺮﺣﻠﺘﯿﻦ ‪،two-phase locking protocol‬‬
‫​ اﻟﻤﻨﺎﻗﻠﺖ‬ ‫​ع‬‫​‪ ،Multiplexing‬ﺧﺎزﻧﺎت ﻗﻮاﻋﻌﻌﻌﺪ‬ ‫​ع‬
‫​‬ ‫​ع‬‫‪،system‬اﻟﻨﺴﻌﻌﺦ اﻟﺤﺘﯿﺎطﻌﻌﻲ ﻟﻠﻤﻌﻄﯿﺎت ‪ ،data backup‬ﺑﺮوﺗﻮﻛﻮل ﻛﺘﺎﺑﻌﻌﺔ ﺳﻌﻌﺠﻞ‬
‫​ ﯾﺘﻢ ﻓﻲ‬‫​ ﻣﻠﺨﺺ‪:‬‬ ‫​ اﻟﻤﻌﻄﯿﺎت ‪ ،Memory Buffers‬ﻧﻘﺎط اﺧﺘﺒﺎر ﻗﻮاﻋﺪ اﻟﻤﻌﻄﯿﺎت ‪.Checkpoints‬‬ ‫​ع‬ ‫ً‪ ،‬ﺳﻌﻌﻌﺠﻠﺖ ﻣﻨﺎﻗﻠﺖ ﻣﻜﺮرة ‪Log‬‬ ‫أول‬
‫​ ﯾﺘﻌﺮف اﻟﻄﺎﻟﺐ‬ ‫​ أھﺪاف ﺗﻌﻠﯿﻤﯿﺔ‪:‬‬
‫​ ﺑﯿﻨﮭﺎ ﻓﻲ أﻧﻈﻤﺔ إدارة ﻗﻮاﻋﺪ اﻟﻤﻌﻄﯿﺎت‪.‬‬
‫ھﺬا اﻟﻔﺼﻞ اﻟﺘﻌﺮف ﻋﻠﻰ اﻟﻤﻨﺎﻗﻠﺖ وﻛﯿﻒ ﺗﺘﻢ إدارة ﻋﻤﻠﯿﺔ اﻟﻤﺰاﻣﻨﺔ ﻓﯿﻤﺎ‬
‫​‪1‬‬ ‫​ •ﻛﯿﻒ ﺗﺘﻢ إدارة ﻣﻨﺎﻗﻠﺖ ﻗﻮاﻋﺪ اﻟﻤﻌﻄﯿﺎت؟‬
‫​‬ ‫​ •ﻣﺎ ھﻲ اﻟﻤﻨﺎﻗﻠﺔ وﻣﺎ ھﻲ ﺧﺼﺎﺋﺼﮭﺎ؟‬ ‫​ﻓﻲ ھﺬا اﻟﻔﺼﻞ ﻋﻠﻰ ﻣﺎ ﯾﻠﻲ‪:‬‬
‫​ •ﻛﯿﻒ ﺗﺘﻢ إدارة ‪2. 2.‬‬‫​ •ﻣﺎ ھﻲ طﺮاﺋﻖ اﻟﻘﻔﻞ وﻛﯿﻒ ﯾﻌﻤﻞ؟‬ ‫​ ﻗﻮاﻋﺪ اﻟﻤﻌﻄﯿﺎت؟‬ ‫•ﻣﺎ ھﻮ اﻟﺘﺤﻜﻢ اﻟﻤﺘﺰاﻣﻦ وﻣﺎ ھﻮ اﻟﺪور اﻟﺬي ﯾﻠﻌﺒﮫ ﻓﻲ ﺗﺤﻘﯿﻖ ﺗﻜﺎﻣﻞ‬
‫​‪2‬‬ ‫​اﻟﺘﻌﺎﻓﻲ ﻓﻲ ﺻﯿﺎﻧﺔ ﻗﻮاﻋﺪ اﻟﻤﻌﻄﯿﺎت؟‬
‫​‬
‫​ اﻟﺘﻲ اﺳﺘﻌﺮﺿﻨﺎھﺎ ﻓﻲ اﻟﻤﺤﺎﺿﺮات اﻟﺴﺎﺑﻘﺔ‪3. 3. ،‬‬ ‫​ ﺑﻔﺮض أﻧﻨﻌﺎ اﺳﻌﺘﻄﻌﻨﺎ ﺗﺼﻌﻤﯿﻢ ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ﻧﻈﺎﻣﯿﻌﺔ ﺑﺎﺳﻌﺘﺨﺪام اﻟﺪوات واﻟﻤﻨﮭﺠﯿﺎت‬ ‫​‪.1‬ﻣﻘﺪﻣﺔ‪:‬‬
‫​​‬
‫ع‬ ‫​ع‬ ‫​ع‬ ‫​ع‬ ‫​ع‬ ‫​ ﻧﻈﺎم إدارة ﻗﻮاﻋﻌﻌﺪ ﺑﯿﺎﻧﺎت ﻣﻌﻌﺎ‪ .‬ﺗﺼﻌﻌﺒﺢ ھﺬه اﻟﻘﺎﻋﺪة ﺑﻌﻌﻌﺪ اﻟﻘﯿﺎم ﺑﺠﻤﯿﻌﻌﻊ ﻋﻤﻠﯿﺎت‬ ‫ﺛﻢ ﻗﻤﻨﺎ ﺑﺘﻨﻔﯿﺬ ھﺬا اﻟﺘﺼﻤﯿﻢ ﺑﺎﺳﺘﺨﺪام‬
‫​ واﻟﺘﻌﻲ ﺗﺘﻨﺎﻗﻌﺾ أﺣﯿﺎﻧﺎ‬ ‫​ ﺗﺆدي ھﺬه اﻟﺠﺎھﺰﯾﺔ إﻟﻰ ظﮭﻮر اﻟﻌﺪﯾﺪ ﻣﻦ اﻟﻤﻮر اﻟﺘﻲ ﯾﻨﺒﻐﻲ أﺧﺬھﺎ ﺑﻌﯿﻦ اﻟﻌﺘﺒﺎر‬ ‫اﻟﺼﯿﺎﻧﺔ ﺟﺎھﺰة ﻟﻠﻌﻤﻞ ‪.operational‬‬
‫​أي ﺿﻤﺎن‬ ‫​ ﻋﻠﻰ ﺣﺎﻟﺔ ﻣﺘﻮاﻓﻘﻌﺔ أو ﻣﺘﺴﻌﻘﺔ ﻟﻘﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ‪consistent state‬‬ ‫ﻣﻌﻊ اﻟﻐﺎﯾﻌﺔ اﻟﮭﻌﻢ ﻓﻌﻲ ﻋﻤﻌﻞ ﻗﻮاﻋﻌﺪ اﻟﺒﯿﺎﻧﺎت وھﻌﻲ اﻟﻤﺤﺎﻓﻈﻌﺔ‬
‫​ •ﻣﻌﺎﻟﺞ ﻋﺔ اﻟﺨﻄﺎء اﻟﻤﺨﺘﻠﻒ ﻋﺔ اﻟﺖ ﻋﻲ ﯾﻤﻚ ﻋﻦ أن ﺗﺤﺺ ﻋﻞ أﺛﻨﺎء اﻟﻌﻢ ﻋﻞ ﻣﺚ ﻋﻞ‬
‫​‬ ‫​ ﻣﻦ ھﺬه اﻟﻤﻮر‪:‬‬ ‫​ وﺳﻠﻤﺔ وﺗﻜﺎﻣﻞ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺨﺰﻧﺔ‪.‬‬ ‫ﺻﻌﺤﺔ‬
‫​ •اﻟﺘﻨﻔﯿﺬ اﻟﻤﺘﺰاﻣﻦ‬ ‫​‪.Software Failure‬‬ ‫​ أﻋﻄﺎل اﻟﺘﺠﮭﯿﺰات ‪Failure‬‬
‫​‬ ‫​وأﻋﻄﺎل اﻟﻨﻈﻌﻌﻌﻌﻢ اﻟﺒﺮﻣﺠﯿﻌﻌﻌﻌﺔ‬ ‫​‪Hardware‬‬ ‫​ع‬
‫​‬ ‫​ع‬‫​ع‬ ‫​ع‬ ‫​ع‬‫​ع‬ ‫ع‬
‫​ اﻟﻤﻨﺎﻗﻠﺔ ھﻌﻲ ﻣﺠﻤﻮﻋﻌﺔ ﻣﻌﻦ اﻟﺘﻌﻠﯿﻤﺎت اﻟﺒﺮﻣﺠﯿﻌﺔ اﻟﺘﻌﻲ‬ ‫​‪ .1‬ﺗﻌﺮﯾﻒ اﻟﻤﻨﺎﻗﻠﺔ‪:‬‬ ‫​‪.2‬اﻟﻤﻨﺎﻗﻠﺖ ‪:Transactions‬‬
‫​‬ ‫ﻟﻤﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻌﻤﻠﯿﺎت ﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت‪.‬‬
‫​‬
‫​ اﻟﻤﻌﻄﯿﺎت‪ ،‬وﯾﺠﺮي‬ ‫​ ﻣﺘﻜﺎﻣﻌﻞ)‪ ،‬ﯾﻤﻜﻌﻦ ﻟﮭﺬه اﻟﺘﻌﻠﯿﻤﺎت أن ﺗﻘﻮم ﺑﺎﻟﺘﻌﺪﯾﻌﻞ أو اﻟﻮﺻﻌﻮل إﻟﻰ ﻣﺠﻤﻮﻋﻌﺔ ﻣﻌﻦ‬ ‫ً (ﺑﺸﻜﻌﻞ‬ ‫ﯾﺘﻌﻢ ﺗﻨﻔﯿﺬھﻌﺎ ﺳﻌﻮﯾﺔ‬
‫​ ﺗﻌﺘﻌﻌﺒﺮ اﻟﻤﻨﺎﻗﻠﺔ وﺣﺪة ﻋﻤﻌﻌﻞ ﻣﻨﻄﻘﯿﻌﻌﺔ‪ ،‬إم ﻏﺎ أن ﺗﺖ ﻏﻢ‬ ‫​ ﻣﺘﻮاﻓﻘﺔ أﺧﺮى‪.‬‬ ‫ﺑﻮاﺳﻌﻌﻄﺘﮭﺎ ﻧﻘﻌﻌﻞ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ﻣﻌﻌﻦ ﺣﺎﻟﺔ ﻣﺘﻮاﻓﻘﻌﻌﺔ إﻟﻰ ﺣﺎﻟﺔ‬
‫​ واﻟﻤﻨﺎﻗﻠﺔ اﻟﻨﺎﺟﺤﻌﺔ ھﻌﻲ‬ ‫ً‪.‬‬
‫ّف ﻣﻨﺎﻗﻠﺔ أو أن ﯾﻜﻮن ﻣﻘﺒﻮل‬ ‫​ ﺑﺎﻟﻜﺎﻣﻐﻞ‪ .‬ﺑﺎﻟﺘﺎﻟﻲ ﻓﺎﻟﺤﻌﻞ اﻟﻮﺳﻌﯿﻂ ل ﯾﻤﻜﻌﻦ أن ﯾﻌﺮ‬ ‫​غ‬ ‫​غ‬ ‫​غ‬ ‫​غ‬ ‫ﺑﺎﻟﻜﺎم ﻏﻞ أو أن ﺗﻠﻎ ﻏﻰ‬
‫ّﻌﺴﻘﺔ إذا ﻣﻌﺎ‬ ‫ّﻌﺴﻘﺔ أﺧﺮى‪ - ،‬ﯾﻘﺎل ﻋﻌﻦ ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت ﺑﺄﻧﮭﻌﺎ ﻣﺘ‬ ‫​ إﻟﻰ ﺣﺎﻟﺔ ﻣﺘ‬ ‫ّﻌﺴﻘﺔ ‪consistent‬‬ ‫اﻟﺘﻌﻲ ﺗﻨﻘﻌﻞ ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت ﻣﻌﻦ ﺣﺎﻟﺔ ﻣﺘ‬
‫​ ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت ﯾﻨﺒﻐﻲ ﻋﻠﻰ اﻟﻤﻨﺎﻗﻠﺔ‬ ‫ّﻌﻌﺴﺎق‬ ‫​ ﺗﺤﻘﻌﻌﻖ ﻛﺎﻓﻌﻌﺔ ﺷﺮوط ﺗﻜﺎﻣﻌﻌﻞ اﻟﻤﻌﻄﯿﺎت‪ -‬ﺑﺎﻟﺘﺎﻟﻲ‪ ،‬وﻟﻀﻤﺎن اﻟﺤﻔﺎظ ﻋﻠﻰ اﺗ‬ ‫​ع‬‫​ع‬ ‫​ ﻋﻊ‬‫​ع‬ ‫​ع‬‫ﻛﺎﻧﻌﺖ‬
‫​‪3‬‬ ‫ّﺴﻘﺔ‪.‬‬
‫​‬ ‫ّﺔ ﻣﺘ‬‫​أن ﺗﻨﻄﻠﻖ اﻋﺘﻤﺎدا ﻋﻠﻰ ﺣﺎﻟﺔ أوﻟﯿ‬
‫‪4.‬‬ ‫​ ‪4.‬‬‫​ ﻧﻠﺤﻆ ﻣﻦ اﻟﻤﺨﻄﻂ أﻧﻨﺎ ﻧﻘﻮم ﺑﺘﺨﺰﯾﻦ ﺣﺴﺎب اﻟﺰﺑﻮن ﻓﻲ ﺟﺪول ‪;quot‬زﺑﻮن‪ ;quot‬ﺑﺤﯿﺚ ﺗﺘﻢ‬ ‫ﻣﺜﺎل‪ :‬ﻣﺴﺘﻮدع ﻟﻠﺒﻀﺎﺋﻊ ﯾﺘﻌﺎﻣﻞ ﻣﻊ زﺑﺎﺋﻦ وﺑﺎﻋﺔ‪.‬‬
‫​ ﻋﻤﻠﻲ ﻋﺔ دف ﻋﻊ؛ وﯾﻊ ﻋﺒﺮ اﻟﺠﺪول ‪;quot‬س ﻋﺠﻞ ﻣﻌﺎﻣﻠﺖ‬ ‫زﯾﺎدة ذﻟﻚ اﻟﺤﻘﻞ ﻛﻠﻤﺎ ﺗﻤﺖ ﻋﻤﻠﯿﺔ إﺿﺎﻓﺔ ﻟﺬﻟﻚ اﻟﺤﺴﺎب‪ ،‬ﻛﻤﺎ ﯾﺘﻢ إﻧﻘﺎﺻﮫ ﻋﻨﺪ ﻛﻞ‬
‫​‬‫​ وﻋﻤﻠﯿﺎت اﻟﺒﯿﻌﻊ اﻟﺘﻌﻲ ﻗﺎم ﺑﮭﻌﺎ زﺑﻮن ﻣﻌﯿﻌﻦ‪ ،‬ﻓﮭﻌﻮ إذا ﻋﺒﺎرة ﻋﻌﻦ ﺳﻌﺠﻞ‬ ‫​ع‬ ‫​ع‬ ‫​ع‬‫​ع‬‫​ع‬ ‫​ع‬ ‫اﻟﺰﺑﻮن‪ ;quot‬ع ﻋﻦ ﻛﺎف ﻋﺔ ﻋﻤﻠﯿﺎت اﻟﺸﺮاء‬
‫​ ﺑﺤﯿﻌﺚ ﻧﻔﺘﺮض أن اﻟﺰﺑﻮن‬ ‫​ ﺳﻌﻨﻨﺎﻗﺶ ﻓﯿﻤﻌﺎ ﯾﻠﻲ ﺳﻌﯿﺮ أﺣﺪاث (ﺳﻌﯿﻨﺎرﯾﻮ) ﻣﻌﯿﻌﻦ ﻟﻜﻌﻲ ﻧﻔﮭﻌﻢ ﻣﺎذا ﺗﻌﻨﻌﻲ اﻟﻤﻨﺎﻗﻠﺔ‪،‬‬ ‫​ ﻣﻨﺎﻗﻠﺖ اﻟﺰﺑﻮن‪.‬‬‫‪LOG‬ﻟﻜﺎﻓﻌﺔ‬
‫​ •ﺗﺨﺰﯾﻦ ﻓﺎﺗﻮرة ﺟﺪﯾﺪة ﻟﻠﺰﺑﻮن؛‬
‫​‬ ‫​ ﺣﺴﺎﺑﮫ‪ .‬ﯾﻤﻜﻦ اﻟﺘﻌﺒﯿﺮ ﻋﻦ ھﺬه اﻟﻤﻨﺎﻗﻠﺔ ﻛﻤﺎ ﯾﻠﻲ‪:‬‬ ‫ﯾﻘﻮم ﺑﺸﺮاء ﻣﻨﺘﻌﺞ ﻣﻌﯿﻌﻦ ﺛﻌﻢ ﯾﺪﻓﻌﻊ ﺛﻤﻌﻦ ذﻟﻚ اﻟﻤﻨﺘﻌﺞ ﻣﻌﻦ‬
‫​ •إﺿﺎﻓﺔ ﺳﻄﺮ ﺟﺪﯾﺪ‬ ‫​ •ﺗﻌﺪﯾﻞ رﺻﯿﺪ اﻟﺰﺑﻮن؛‬ ‫​ •إﻧﻘﺎص ﻛﻤﯿﺔ اﻟﻤﻮاد اﻟﻤﺘﻮاﻓﺮة ﻓﻲ اﻟﻤﺴﺘﻮدع ﺑﻤﺎ ﯾﻌﺎدل ﻛﻤﯿﺔ اﻟﻄﻠﺐ؛‬ ‫•ﺗﺨﺰﯾﻦ طﻠﺒﯿﺔ ﺟﺪﯾﺪة ﻟﻠﺒﺎﺋﻊ؛‬
‫​‪4‬‬ ‫​ •ﯾﻨﺒﻐﻲ ﺗﺄﻛﯿﺪ اﻟﺘﻐﯿﺮات‪.‬‬
‫​‬ ‫​إﻟﻰ ﺳﺠﻞ اﻟﻤﻌﺎﻣﻠﺖ؛‬
‫‪5.‬‬ ‫​ ﻟﻨﻔﺘﺮض أن ﻧﻈﺎم إدارة ﻗﻮاﻋﻌﺪ اﻟﻤﻌﻄﯿﺎت ﻗﻌﺪ ﻧﻔﻌﺬ ‪5.‬‬ ‫إذا ﺗﺘﻜﻮن اﻟﻤﻨﺎﻗﻠﺔ ﻓﻲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻣﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﻋﺒﺎرات اﻟﻀﺎﻓﺔ واﻟﺘﺤﺪﯾﺚ‪.‬‬
‫​ اﻟﺰﺑﻮن)‪ ،‬ﺑﺎﻟﺘﺎﻟﻲ ﻧﻜﻮن ﻗﺪ ﻗﻤﻨﺎ‬ ‫ً (أي ﻋﻨﺪ ﺗﻌﺪﯾﻞ رﺻﯿﺪ‬ ‫​ أن اﻟﺘﯿﺎر اﻟﻜﮭﺮﺑﺎﺋﻲ ﻗﺪ اﻧﻘﻄﻊ أﺛﻨﺎء ﺗﻨﻔﯿﺬ اﻟﻌﻤﻠﯿﺔ اﻟﺮاﺑﻌﺔ ﻣﺜﻞ‬ ‫اﻟﻌﻤﻠﯿﺎت اﻟﺜﻠﺜﻌﺔ اﻟﻮﻟﻰ ﻓﻘﻌﻂ و‬
‫​ع‬
‫​‬ ‫​ع‬ ‫​ع‬ ‫​ اﻟﻤﻮﺟﻮدة ﻓﻌﻲ اﻟﻤﺴﻌﺘﻮدع وﻟﻜﻌﻦ دون ﺗﺤﺪﯾﻌﺚ رﺻﻌﯿﺪ اﻟﺰﺑﻮن أو ﺗﺴﻌﺠﯿﻞ اﻟﻌﻤﻠﯿﺎت‬ ‫ﺑﺈﺿﺎﻓﺔ ﻓﺎﺗﻮرة وطﻠﺒﯿﺔ‪ ،‬ﻛﻤﺎ ﺗﻢ إﻧﻘﺎص ﻛﻤﯿﺔ اﻟﻤﻮاد‬
‫ّﺴﻘﺔ‬‫​ ﻣﻨﺎﺳﺐ ﻓﺈن ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت ﺳﺘﺼﺒﺢ ﻏﯿﺮ ﻣﺘ‬ ‫​ اﻟﺘﻌﻌﻲ ﺗﻤﻌﻌﺖ‪ .‬ﺑﺎﻟﺘﺎﻟﻲ ﻓﺈذا ﻟﻢ ﯾﻜﻌﻌﻦ ﻟﻨﻈﺎم إدارة ﻗﻮاﻋﻌﻌﺪ اﻟﻤﻌﻄﯿﺎت ﻧﻈﺎم اﺳﻌﻌﺘﺮﺟﺎع‬ ‫​ع‬ ‫​ع‬
‫ع‬
‫​‬‫​أو ‪SQL‬‬ ‫​ ﻛﻨﻈﺎم ‪Oracle‬‬ ‫​ع‬‫​ ﻋﻊ‬ ‫​ع‬‫​ع‬ ‫​ع‬ ‫​ ﺗﺪﻋﻌﻢ اﻟﻌﺪﯾﻌﺪ ﻣﻌﻦ أﻧﻮاع أﻧﻈﻤﻌﺔ إدارة ﻗﻮاﻋﻌﺪ اﻟﻤﻌﻄﯿﺎت إدارة ﻣﻨﺎﺳﻌﺒﺔ ﻟﻠﻤﻨﺎﻗﻠﺖ‪،‬‬ ‫وﻏﯿﺮ ﻣﺘﻤﺎﺳﻜﺔ‪.‬‬
‫​ ﺗﺘﻤﯿﺰ اﻟﻤﻨﺎﻗﻠﺖ ﺑﺄرﺑﻌﺔ ﺧﺼﺎﺋﺺ رﺋﯿﺴﯿﺔ ﺗﺪﻋﻰ‬ ‫​‪ .٢‬ﺧﺼﺎﺋﺺ اﻟﻤﻨﺎﻗﻠﺖ‪:‬‬ ‫​ ﻣﻦ اﻟﺪارة‪.‬‬
‫​‬ ‫​ھﺬا اﻟﻨﻮع‬ ‫​‪2‬ﻓﻲ ﺣﯿﻦ ل ﯾﺪﻋﻢ ‪MS Access‬‬ ‫‪Server‬أو ‪DB‬‬
‫​ واﺣﺪة‪،‬‬ ‫​ وھﻌﻲ ﺗﻌﻨﻌﻲ وﺟﻮب ﺗﻨﻔﯿﻌﺬ ﻛﺎﻓﻌﺔ أﺟﺰاء اﻟﻤﻨﺎﻗﻠﺔ ‪-‬أي طﻠﺒﺎت ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت‪ -‬ﻛﻜﺘﻠﺔ‬ ‫ّﺔ ‪:Atomicity‬‬ ‫​ اﻟﻜﺘﻠﯿ‬
‫‪ ،ACID properties‬وھﻲ‪:‬‬
‫​ أﺧﺮى‪ -‬ﯾﻨﺒﻐﻌﻲ اﻟﺘﻌﺎﻣﻌﻞ ﻣﻌﻊ اﻟﻤﻨﺎﻗﻠﺔ ﻋﻠﻰ أﻧﮭﻌﺎ ﻛﺘﻠﺔ ﻋﻤﻌﻞ‬ ‫ﻓﺈذا ﻟﻢ ﯾﺘﻌﻢ ﺗﻨﻔﯿﺬھﻌﺎ ﺑﺎﻟﻜﺎﻣﻌﻞ ﻓﯿﻨﺒﻐﻌﻲ اﻟﺘﺮاﺟﻌﻊ ﻋﻨﮭﻌﺎ ﺑﺎﻟﻜﺎﻣﻌﻞ‪- ،‬أو ﺑﻄﺮﯾﻘﻌﺔ‬
‫​ ﯾﺤﺎﻓﻆ ﺗﻨﻔﯿﺬ اﻟﻤﻨﺎﻗﻠﺔ اﻟﻮﺣﯿﺪة (أي ﻋﻨﺪﻣﺎ ل ﺗﻮﺟﺪ ﻣﻨﺎﻗﻠﺔ أﺧﺮى‬ ‫​ اﻟﺘﺴﺎق أو اﻟﺘﻮاﻓﻖ ‪:Consistency‬‬ ‫​ ﻟﻠﺘﺠﺰﺋﺔ‪.‬‬‫ﻣﻨﻄﻘﯿﻌﺔ وﺣﯿﺪة وﻏﯿﻌﺮ ﻗﺎﺑﻠﺔ‬
‫​‪5‬‬ ‫​ اﻟﺘﺎﻟﻲ ظﺎھﺮة ﺗﺰاﻣﻦ اﻟﻤﻨﺎﻗﻠﺖ‪:‬‬
‫​‬ ‫​ إﺑﻘﺎء ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت ﺻﻌﺤﯿﺤﺔ (ﻣﺘﺴﻌﻘﺔ‪ ،‬ﻣﺘﻤﺎﺳﻌﻜﺔ‪ ،‬أو ﻣﺘﻨﺎﻏﻤﻌﺔ)‪ .‬ﯾﻮﺿﻌﺢ اﻟﺸﻜﻌﻞ‬ ‫​ﻣﺘﺰاﻣﻨﺔ ﻣﻌﮭﺎ) ﻋﻠﻰ‬
‫‪6.‬‬ ‫​ أﻧﻌﮫ ل ﯾﻤﻜﻌﻦ اﺳﻌﺘﺨﺪام ﻣﻌﻄﯿﺎت ﻣﻌﻦ ‪6.‬‬ ‫​ ﯾﻤﻜﻦ أن ﯾﺴﻤﺢ اﻟﻨﻈﺎم ﺑﺘﻨﻔﯿﺬ ﻋﺪة ﻣﻨﺎﻗﻠﺖ ﺗﻨﻔﯿﺬا ﻣﺘﺰاﻣﻨﺎ‪ ،‬وﺑﻤﻌﺰل ﻋﻦ ﺑﻌﻀﮭﺎ‪ .‬أي‬ ‫اﻟﻌﺰل ‪:Isolation‬‬
‫ّ‬
‫​ وھﻌﻲ ﺗﻌﻨﻌﻲ اﺳﻌﺘﻤﺮارﯾﺔ اﺗﻌﺴﺎق ﻗﺎﻋﺪة‬ ‫​ اﻟﺴﺘﻤﺮارﯾﺔ ‪:Durability‬‬ ‫​ ﺗﺴﺘﺨﺪم ﺗﻠﻚ اﻟﻤﻌﻄﯿﺎت‪.‬‬ ‫ﻗﺒﻌﻞ ﻣﻨﺎﻗﻠﺔ ﻣﻌﺎ إذا ﻣﻌﺎ ﻛﺎن ھﻨﺎك ﻣﻨﺎﻗﻠﺔ أﺧﺮى‬
‫​ع‬
‫​‬ ‫​ع‬ ‫​ع‬ ‫​ع‬ ‫​ع‬ ‫​ع‬‫​ع‬ ‫ّﻌﺴﻘﺔ أﺧﺮى ل ﯾﻤﻜﻌﻦ‬ ‫ّﻌﺴﻘﺔ إﻟﻰ ﺣﺎﻟﺔ ﻣﺘ‬ ‫​ أن ﺗﻨﺘﻘﻌﻞ ﺑﻌﻌﺪ ﺗﻨﻔﯿﻌﺬ اﻟﻤﻨﺎﻗﻠﺔ ﻣﻌﻦ ﺣﺎﻟﺔ ﻣﺘ‬ ‫اﻟﻤﻌﻄﯿﺎت‪ ،‬أي أن ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت ﯾﻨﺒﻐﻌﻲ‬
‫​ ﻟﺘﻜﻌﻦ ﻟﺪﯾﻨﻌﺎ اﻟﻤﻨﺎﻗﻠﺔ اﻟﺘﻌﻲ‬ ‫​ ﻣﺜﺎل‪:‬‬ ‫​ اﻟﻘﺎﻋﺪة‪.‬‬
‫​ ﻋﻊ‬ ‫​ع‬‫​ع‬‫​ع‬ ‫​ع‬ ‫​ع‬ ‫ﻓﻘﺪاﻧﮭﻌﺎ ﺣﺘﻌﻰ وﻟﻮ ﻓﺸﻌﻞ اﻟﻨﻈﺎم ﻛﻜﻌﻞ‪ .‬أي أن اﻟﺘﻐﯿﯿﺮات اﻟﻨﺎﺗﺠﻌﺔ ﺗﺼﻌﺒﺢ ﺟﺰءا ﻣﻌﻦ‬
‫​‪005‬‬ ‫​‪5.‬‬
‫​‬ ‫​(‪Read(B‬‬
‫​‬ ‫​‪4.‬‬
‫​‬ ‫​(‪Write(A‬‬
‫​‬ ‫​‪3.‬‬
‫​‬ ‫​‪A := A - 005‬‬
‫​‬ ‫​‪2.‬‬
‫​‬ ‫​(‪Read(A‬‬
‫​‬ ‫​‪1.‬‬
‫​‬ ‫​‪:B‬‬
‫​‬ ‫​إﻟﻰ ﺣﺴﻌﺎب‬
‫​‬ ‫ﺗﺴﻌﻤﺢ ﺑﺘﺤﻮﯾﻌﻞ ﻣﺒﻠﻎ ‪ ٠٠٥‬ﻟﯿﺮة ﻣﻌﻦ ﺣﺴﻌﺎب ‪A‬‬
‫​‪6‬‬ ‫​ ﯾﺠﺐ أن ﯾﺤﻘﻖ اﻟﺘﻨﻔﯿﺬ اﻟﺨﺼﺎﺋﺺ اﻟﺘﺎﻟﯿﺔ‪:‬‬
‫​‬ ‫​(‪Write(B‬‬ ‫​‪6.‬‬
‫​‬ ‫​‪B := B +‬‬
‫​‬
‫‪7.‬‬ ‫​ ل ﯾﺘﻢ ﺗﻔﻌﯿﻞ ‪7.‬‬ ‫​ ﻛﻜﺘﻠﺔ واﺣﺪة ﻓﺈذا ﺣﺼﻞ ﺧﻄﺄ أﺛﻨﺎء اﻟﺘﻨﻔﯿﺬ ﻓﻲ ﻣﺮﺣﻠﺔ ﻣﺎ‪،‬‬ ‫•اﻟﻜﺘﻠﯿﻌﺔ‪ :‬ﯾﺘﻌﻢ ﺗﻨﻔﯿﻌﺬ ﺟﻤﯿﻌﻊ اﻟﻌﻤﻠﯿﺎت اﻟﻤﺘﻀﻤﻨﻌﺔ ﻓﻌﻲ اﻟﻤﻨﺎﻗﻠﺔ‬
‫​ •اﻟﻌﺰل‪:‬‬ ‫​ ﺑﻌﺪ ﺗﻨﻔﯿﺬ اﻟﻤﻨﺎﻗﻠﺔ‪.‬‬
‫​ع‬ ‫​ع‬ ‫​ع‬ ‫​ع‬‫​ •اﻟﺘﺴﻌﺎق‪ :‬ل ﯾﺘﻐﻲ ﻋﺮ ﻣﺠﻤﻮع اﻟﺤﺴﻌﺎﺑﯿﻦ اﻟﻤﺼﻌﺮﻓﯿﯿﻦ ‪A, B‬‬ ‫اﻟﻌﻤﻠﯿﺎت اﻟﺘﻲ أﺟﺮﯾﺖ ﻗﺒﻞ ھﺬه اﻟﻤﺮﺣﻠﺔ‪.‬‬
‫​ اﻟﻤﻨﺎﻗﻠﺔ ﻟﻦ ﺗﺘﻌﺎﻣﻞ ﻣﻊ‬ ‫​ اﻟﻤﻌﻄﯿﺎت اﻟﻤﻌﺪﻟﺔ ﺑﯿﻌﻌﻌﻌﻌﻦ اﻟﺨﻄﻮﺗﯿﻌﻌﻌﻌﻌﻦ ‪ ٣‬و ‪ .٦‬ﻓﺈن ھﺬه‬ ‫ﻋﻨﻌﻌﻌﻌﺪ اﻟﺴﻌﻌﻌﻌﻤﺎح ﺑﺘﻨﻔﯿﻌﻌﻌﻌﺬ ﻣﻨﺎﻗﻠﺔ أﺧﺮى ﺗﺤﺘﺎج إﻟﻰ‬
‫​ ﺣﺘﻰ وﻟﻮ ﺗﻌﺮﺿﺖ اﻟﻘﺎﻋﺪة‬ ‫​ •اﻟﺴﻌﺘﻤﺮارﯾﺔ‪ :‬اﻟﺘﻌﺪﯾﻠﺖ اﻟﻨﺎﺗﺠﻌﺔ ﻣﻌﻦ ﺗﻨﻔﯿﻌﺬ اﻟﻤﻨﺎﻗﻠﺔ ﺗﺒﻘﻌﻰ‬ ‫​ﻋﻠﻰ ﺣﺎﻟﮫ)‪.‬‬ ‫​‪ ٠٠٥‬و ‪B‬‬ ‫​أﻗﻞ ﺑﻊ‬
‫​‬ ‫اﻟﻤﻌﻄﯿﺎت اﻟﻨﺘﻘﺎﻟﯿﺔ (أي ‪A‬‬
‫​ ﺗﺄﻛﯿﺪ اﻟﺘﻐﯿﯿﺮات ‪:COMMIT‬‬
‫​‬ ‫​اﻟﻤﻨﺎﻗﻠﺖ ﻣﻦ ﺧﻠﻞ ﺗﻌﻠﯿﻤﺘﯿﻦ أﺳﺎﺳﯿﺘﯿﻦ ھﻤﺎ‪:‬‬ ‫​ ﺗﺪﻋﻢ ﻟﻐﺔ ‪SQL‬‬ ‫​‪ .٣‬إدارة اﻟﻤﻨﺎﻗﻠﺖ ﺑﺎﺳﺘﺨﺪام ﻟﻐﺔ ‪:SQL‬‬ ‫إﻟﻰ أﻋﻄﺎل‪.‬‬
‫​‬
‫​ ﻋﻨﺪﻣﻌﺎ‬ ‫​ اﻟﺘﺮاﺟﻊ ﻋﻦ اﻟﺘﻐﯿﯿﺮات ‪:ROLLBACK‬‬ ‫​ اﻟﻤﻌﻄﯿﺎت‪.‬‬ ‫ﻋﻨﺪﻣﺎ ﯾﺘﻢ ﺗﻨﻔﯿﺬ ھﺬه اﻟﺘﻌﻠﯿﻤﺔ ﻓﺈﻧﮫ ﯾﺘﻢ ﺗﺨﺰﯾﻦ ﻛﺎﻓﺔ اﻟﺘﻐﯿﺮات اﻟﺘﻲ ﺗﻤﺖ ﻋﻠﻰ ﻗﺎﻋﺪة‬
‫ّﻌﻌﺴﻘﺔ‬ ‫​ ﻋﻠﻰ ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت‪ ،‬واﻟﻌﻮدة إﻟﻰ آﺧﻌﻌﺮ ﺣﺎﻟﺔ ﻣﺘ‬ ‫ﯾﺘﻌﻢ ﺗﻨﻔﯿﻌﺬ ھﺬه اﻟﺘﻌﻠﯿﻤﻌﺔ ﻓﺈﻧﻌﮫ ﯾﺘﻌﻢ اﻟﺘﺮاﺟﻌﻊ ﻋﻌﻦ ﻛﺎﻓﻌﺔ اﻟﺘﻐﯿﺮات اﻟﺘﻌﻲ ﺣﺼﻌﻠﺖ‬
‫​ ﺗﺴﻌﺘﺨﺪم أﻧﻈﻤﻌﺔ إدارة ﻗﻮاﻋﻌﺪ اﻟﻤﻌﻄﯿﺎت ﺳﻌﺠﻞ اﻟﻤﻨﺎﻗﻠﺖ‬ ‫​‪ .٤‬ﺳﺠﻞ اﻟﻤﻨﺎﻗﻠﺖ ‪:Log Record‬‬ ‫​‪.(commit‬‬
‫​‬ ‫ﺗﻌﻌﻢ اﻟﻮﺻﻌﻌﻮل إﻟﯿﮭﻌﻌﺎ (آﺧﻌﻌﺮ‬
‫​‬
‫ّﺴﻘﺔ ﺳﺎﺑﻘﺔ‬ ‫​ ﻓﻲ اﺳﺘﺮﺟﺎع ﺣﺎﻟﺖ ﻣﺘ‬ ‫ّﻌﺮ ﻓﯿﮭﻌﺎ ﺣﺎﻟﺔ ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت‪ ،‬ﻣﻤﻌﺎ ﯾﺴﻌﺎﻋﺪ‬ ‫​ اﻟﻌﻤﻠﯿﺎت اﻟﺘﻌﻲ ﺗﻘﻮم ﺑﮭﻌﺎ اﻟﻤﻨﺎﻗﻠﺖ وﺗﻐﯿ‬ ‫ﻟﻜﻌﻲ ﺗﺘﺒﻌﻊ ﻣﺴﻌﯿﺮ ﻛﺎﻓﻌﺔ‬
‫​‪7‬‬ ‫​إذ ﯾﻤﻜﻦ أن‬
‫​‬ ‫​ﺑﺎﺳﺘﺨﺪام اﻟﻌﺒﺎرة ‪.ROLLBACK‬‬
‫‪8.‬‬ ‫​ ﻛﻤﺎ ﯾﻤﻜﻦ أن ‪8.‬‬ ‫​ أو ﻓﺸﻞ ﻓﻲ اﻟﺸﺒﻜﺔ أو ﻓﻲ اﻟﻘﺮص اﻟﺼﻠﺐ‪.‬‬ ‫ّﺳﺎق ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت ﻛﻔﺸﻞ ﻏﯿﺮ ﻣﺘﻮﻗﻊ ﻓﻲ اﻟﻨﻈﺎم‬ ‫ﺗﺆﺛﺮ ﺑﻌﺾ اﻟﻤﺸﺎﻛﻞ ﻋﻠﻰ ات‬
‫​وﻟﻜﻌﻦ ﻟﻢ ﯾﺘﻌﻢ ﺑﻌﻌﺪ ﻛﺘﺎﺑﺘﮭﻌﺎ إﻟﻰ اﻟﻘﺮص اﻟﺼﻌﻠﺐ‪ ،‬ﻛﻤﻌﺎ‬ ‫​ اﻟﺘﻌﻠﯿﻤﻌﺔ ‪COMMIT‬‬ ‫ﺗﻘﻮم ﺗﻠﻚ اﻟﻨﻈﻤﺔ ﺑﺘﺄﻛﯿﺪ ﺑﻌﺾ اﻟﻤﻨﺎﻗﻠﺖ اﻟﺘﻲ ﺗﻢ ﺗﺄﻛﯿﺪھﺎ ﺑﺎﺳﺘﺨﺪام‬
‫​ •ﺗﻔﺼﯿﻞ ﺣﻮل ﻛﻞ طﻠﺐ ﻗﺎﻋﺪة‬ ‫​ •إﺷﺎرة إﻟﻰ ﺑﺪاﯾﺔ اﻟﻤﻨﺎﻗﻠﺔ؛‬‫​ ﯾﺤﺘﻮي اﻟﺴﺠﻞ ﻋﻠﻰ اﻟﻤﻌﻠﻮﻣﺎت اﻟﺘﺎﻟﯿﺔ‪:‬‬ ‫​‪ ١.٤‬ﻣﺤﺘﻮﯾﺎت اﻟﺴﺠﻞ‪:‬‬ ‫​‪.Oracle‬‬
‫​‬ ‫ﻓﻌﻲ ﻧﻈﺎم‬
‫​‬
‫​ •اﻟﻘﯿﻢ اﻟﺴﺎﺑﻘﺔ‬ ‫​ •اﺳﻢ اﻟﻐﺮض اﻟﻤﺘﺄﺛﺮ ﺑﺘﻠﻚ اﻟﻌﻤﻠﯿﺔ (اﻟﺠﺪول)؛‬ ‫​ •ﻧﻮع اﻟﻌﻤﻠﯿﺔ اﻟﻤﻨﻔﺬة (إﺿﺎﻓﺔ‪ ،‬ﺣﺬف‪ ،‬ﺗﻌﺪﯾﻞ)؛‬ ‫ﻣﻌﻄﯿﺎت ﻣﺤﺘﻮى ﻓﻲ اﻟﻤﻨﺎﻗﻠﺔ؛‬
‫​‪ ٢.٤‬ﺧﺼﺎﺋﺺ اﻟﺴﺠﻞ‪:‬‬
‫​‬ ‫​ •إﺷﺎرة إﻟﻰ ﻧﮭﺎﯾﺔ اﻟﻤﻨﺎﻗﻠﺔ‪.‬‬
‫​‬ ‫​ •ﻣﺆﺷﺮات إﻟﻰ اﻟﻘﯿﻢ اﻟﺴﺎﺑﻘﺔ واﻟﻠﺤﻘﺔ‪ ،‬أي ﻣﺪاﺧﻞ ﺳﺠﻠﺖ اﻟﻤﻨﺎﻗﻠﺔ؛‬ ‫واﻟﻠﺤﻘﺔ ﻟﻠﺤﻘﻮل اﻟﻤﺘﻐﯿﺮة؛‬
‫ً‬
‫​ ﻋﻠﻰ ﻧﻈﺎم إدارة ﻗﻮاﻋﺪ اﻟﻤﻌﻄﯿﺎت‪ ،‬وﻟﻜﻦ ﯾﻤﻜﻦ ﺗﺨﻄﻲ ذﻟﻚ ﻣﻘﺎرﻧﺔ‬ ‫ﻧﻠﺤﻆ ﻣﻤﺎ ﺳﺒﻖ أن ﺑﻨﺎء واﺳﺘﺨﺪام اﻟﺴﺠﻞ ﯾﻤﻜﻦ أن ﯾﺰﯾﺪ ﻣﻦ اﻟﻌﺐء اﻟﻤﻔﺮوض‬
‫​ اﻟﻤﻌﻄﯿﺎت‬ ‫​ ﯾﻌﺘﻌﺒﺮ اﻟﺴﻌﺠﻞ ﺑﺤﻌﺪ ذاﺗﻌﮫ‪ ،‬ﻗﺎﻋﺪة ﻣﻌﻄﯿﺎت ﯾﺘﻌﻢ إدارﺗﮭﻌﺎ ﻣﻌﻦ ﻗﺒﻌﻞ ﻧﻈﺎم إدارة ﻗﻮاﻋﻌﺪ‬ ‫​ ﯾﻤﻜﻦ اﻟﺤﺼﻮل ﻋﻠﯿﮭﺎ ﻣﻨﮫ؛‬ ‫ﺑﺎﻟﻤﻨﻔﻌﺔ اﻟﺘﻲ‬
‫​ اﻟﺘﻌﻌﻲ ﺗﺘﻌﺮض ﻟﮭﻌﻌﺎ ﻗﻮاﻋﻌﻌﺪ اﻟﻤﻌﻄﯿﺎت ﻛﻔﺸﻌﻌﻞ اﻟﻘﺮص اﻟﺼﻌﻌﻠﺐ‬ ‫ّض ﺑﺎﻟﺘﺎﻟﻲ إﻟﻰ ﻛﺎﻓﻌﻌﺔ اﻟﺨﻄﺎر‬ ‫ﻛﺄﯾﻌﻌﺔ ﻗﺎﻋﺪة ﻣﻌﻄﯿﺎت أﺧﺮى‪ ،‬وھﻌﻌﻮ ﻣﻌﺮ‬
‫​ﻋﻠﻰ ﺑﻌﻌﺾ‬
‫​‬ ‫​ ﯾﻘﻮم ﻧﻈﺎم إدارة ﻗﻮاﻋﻌﺪ اﻟﻤﻌﻄﯿﺎت ﺑﺎﺳﻌﺘﺪﻋﺎء ﺗﻌﻠﯿﻤﻌﺔ ‪ROLLBACK‬‬ ‫​ ﺑﺎﻟﻤﺴﺎﺣﺔ واﻣﺘﻞء ﺳﻌﺔ اﻟﻘﺮص‪.‬‬ ‫أو ﻣﺸﺎﻛﻌﻌﻞ ﺗﺘﻌﻠﻖ‬
‫​ ﻣﻨﺘﺞ‬‫​ ﻓﯿﻤﻌﺎ ﯾﻠﻲ ﻋﺮض ﻟﻠﺴﻌﺠﻞ اﻟﺬي ﯾﻌﻌﺒﺮ ﻋﻌﻦ اﻟﻤﻨﺎﻗﻠﺔ اﻟﺘﻌﻲ ﺗﻌﻢ ﻓﯿﮭﻌﺎ ﺷﺮاء ﻣﺎدﺗﯿﻌﻦ ﻣﻌﻦ‬ ‫أﺟﺰاء اﻟﺴﺠﻞ أي ﻋﻠﻰ اﻟﻤﻨﺎﻗﻠﺖ ﻏﯿﺮ اﻟﻤﻨﺘﮭﯿﺔ‪.‬‬
‫​‪8‬‬ ‫​ﻣﻌﯿﻦ وﺗﻌﺪﯾﻞ ﻟﺤﺴﺎب اﻟﺰﺑﻮن‪.‬‬
‫​‬
‫‪9.‬‬ ‫​ﻋﻦ اﻟﺪارة ‪9.‬‬ ‫​ ﯾﻌﺒﺮ اﻟﺘﺤﻜﻌﻢ اﻟﻤﺘﺰاﻣﻦ ‪Concurrency Control‬‬ ‫​‪ .١‬ﺗﻌﺮﯾﻒ اﻟﺘﺤﻜﻢ اﻟﻤﺘﺰاﻣﻦ‪:‬‬ ‫​‪.3‬اﻟﺘﺤﻜﻢ اﻟﻤﺘﺰاﻣﻦ ‪:Concurrency Control‬‬
‫​‬
‫​‪.User DBMS‬‬
‫​‬ ‫​ع‬
‫​‬ ‫​ع‬‫​ع‬ ‫​ع‬ ‫​ اﻟﻤﺘﺰام ﻋﻦ ﻟﻠﻤﻨﺎﻗﻠﺖ ف ﻋﻲ ﻧﻈﺎم إدارة ﻗﻮاع ﻋﺪ ﻣﻌﻄﯿﺎت ﻣﺘﻌﺪد اﻟﻤﺲ ﻋﺘﺨﺪﻣﯿﻦ ‪Multi‬‬ ‫واﻟﺸﺮاف ﻋﻠﻰ اﻟﺘﻨﻔﯿﻌﺬ‬
‫ّﺴﺎق اﻟﻤﻌﻄﯿﺎت‪.‬‬
‫​‬ ‫ّﺪة ﻣﺴﺘﺨﺪﻣﯿﻦ وذﻟﻚ ﻟﻀﻤﺎن ﺗﻜﺎﻣﻞ واﺗ‬ ‫​ﻋ‬ ‫ﯾﻌﺘﻌﺒﺮ اﻟﺘﺤﻜﻌﻢ اﻟﻤﺘﺰاﻣﻌﻦ ﻣﮭﻤﺎ ﺟﺪا وﺧﺎﺻﻌﺔ ﻓﻌﻲ ﺑﯿﺌﺔ ﻗﺎﻋﺪة ﻣﻌﻄﯿﺎت ﺗﺸﺎرﻛﯿﻌﺔ ﺑﯿﻌﻦ‬
‫​و‬‫​‪Lost‬‬ ‫​ ﻟﻠﻤﻨﺎﻗﻠﺖ وھﻲ‪:‬‬
‫​‬ ‫ً ﻟﻠﺘﻨﻔﯿﺬ اﻟﻤﺘﺰاﻣﻦ‬‫​ ھﻨﺎك ﺛﻠﺜﺔ أﻧﻮاع رﺋﯿﺴﯿﺔ ﻣﻦ اﻟﻤﺸﺎﻛﻞ اﻟﺘﻲ ﯾﻤﻜﻦ أن ﺗﺤﺪث ﻧﺘﯿﺠﺔ‬ ‫​‪ .٢‬ﻣﺸﺎﻛﻞ اﻟﺘﻨﻔﯿﺬ اﻟﻤﺘﺰاﻣﻦ ﻟﻠﻤﻨﺎﻗﻠﺖ‪:‬‬
‫​و ﻣﺸﻜﻠﺔ اﻟﻘﺮاءة اﻟﻤﺘﺴﺨﺔ ‪.Dirty‬‬
‫​‬ ‫​‪Uncommitted updates‬‬ ‫​ ﻣﺸﻜﻠﺔ اﻟﺘﻌﺪﯾﻠﺖ اﻟﻀﺎﺋﻌﻌﻌﻌﻌﺔ ‪updates‬‬
‫​‬ ‫ّﻛﺪة‬‫ﻣﺸﻜﻠﺔ اﻟﺘﻌﺪﯾﻠﺖ ﻏﯿﻌﻌﻌﻌﺮ اﻟﻤﺆ‬
‫​ ﺗﺤﺼﻌﻌﻞ ﻣﺸﻜﻠﺔ اﻟﺘﻌﺪﯾﻠﺖ اﻟﻀﺎﺋﻌﻌﻌﺔ ﻋﻨﺪﻣﻌﻌﺎ ﺗﻘﻮم ﻣﻨﺎﻗﻠﺘﺎن ﺑﺈﺟﺮاء ﻣﺠﻤﻮﻋﻌﻌﺔ ﻣﻌﻌﻦ‬
‫​‬ ‫​‪ ١.٢‬ﻣﺸﻜﻠﺔ اﻟﺘﻌﺪﯾﻠﺖ اﻟﻀﺎﺋﻌﺔ ‪:Lost updates‬‬ ‫‪read‬‬
‫​‬
‫​‪1‬ﺗﻘﻮم ﺑﺸﺮاء ‪ 001‬وﺣﺪة ﻣﻦ ﻣﻨﺘﺞ‬ ‫​‪T‬‬ ‫​ ﻟﻨﻔﺘﺮض وﺟﻮد اﻟﻤﻨﺎﻗﻠﺘﯿﻦ اﻟﺘﺎﻟﯿﺘﯿﻦ‪:‬‬
‫​‬ ‫​ ﻣﺜﺎل‪:‬‬‫اﻟﺘﻌﺪﯾﻠﺖ ﻋﻠﻰ ﻧﻔﺲ اﻟﺤﻘﻞ ﻓﻲ ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت ﺑﺸﻜﻞ ﻣﺘﺰاﻣﻦ‪.‬‬
‫​‪9‬‬ ‫​‪2‬ﺗﻘﻮم ﺑﺒﯿﻊ ‪ 03‬وﺣﺪة ﻣﻦ ﻧﻔﺲ اﻟﻤﻨﺘﺞ‪.‬‬
‫​‬ ‫​‪T‬‬ ‫​ﻣﻌﯿﻦ؛‬
‫​‬
‫‪10.‬‬ ‫​ وﻟﻜﻦ ﻟﻨﻔﺘﺮض ‪10.‬‬ ‫​ اﻟﺘﺎﻟﻲ اﻟﺘﻨﻔﯿﺬ اﻟﻤﺘﺴﻠﺴﻞ ﻟﻠﻤﻨﺎﻗﻠﺘﯿﻦ‪:‬‬ ‫وأن ﺟﺪول اﻟﻤﻨﺘﻌﻌﺞ ﯾﺤﺘﻮي ﻋﻠﻰ ‪ 53‬وﺣﺪة ﻣﻌﻌﻦ ذﻟﻚ اﻟﻤﻨﺘﻌﻌﺞ ﺣﺎﻟﯿﺎ‪ .‬ﯾﻮﺿﻌﻌﺢ اﻟﺸﻜﻌﻌﻞ‬
‫​ ﻧﻠﺤﻌﻆ أﻧﻌﮫ ﻓﻌﻲ اﻟﺨﻄﻮة رﻗﻌﻢ ‪ /5/‬ﻣﻌﻦ اﻟﺠﺪول اﻟﺴﻌﺎﺑﻖ ﻗﻌﺪ‬ ‫​ ﺑﺄي ﺗﻌﺪﯾﻞ‬‫​‪1‬ﻟﻢ ﺗﻘﻢ‬‫​‪T‬‬ ‫​ اﻟﻤﻨﺎﻗﻠﺔ‬
‫​‬ ‫​ ﻛﺄن‬‫أن اﻟﺘﻨﻔﯿﺬ اﻟﺴﺎﺑﻖ ﻟﻠﻤﻨﺎﻗﻠﺘﯿﻦ ﻗﺪ ﺗﻢ ﻛﻤﺎ ﯾﻠﻲ‪:‬‬
‫ّ‬
‫​‪ ٢.٢‬ﻣﺸﻜﻠﺔ اﻟﺘﻌﺪﯾﻠﺖ ﻏﯿﺮ اﻟﻤﺆﻛﺪة‬ ‫​‪2‬وﻛﺎﻧﺖ اﻟﻨﺘﯿﺠﺔ ﺿﯿﺎع ﻓﻲ اﻟﺘﻌﺪﯾﻠﺖ‪.‬‬
‫​‬ ‫​‪1‬و ‪T‬‬ ‫​ ﺑﺎﻟﺘﺰاﻣﻦ ﺑﯿﻦ اﻟﻤﻨﺎﻗﻠﺘﯿﻦ ‪T‬‬ ‫ﺣﺼﻌﻠﺖ ﻣﺸﻜﻠﺔ ﺗﺘﻌﻠﻖ‬
‫​ ﺗﻘﻮم اﻟﻮﻟﻰ ﺑﺎﻟﺘﺮاﺟﻌﻊ‬ ‫َﻌﺬ ﻣﻨﺎﻗﻠﺘﺎن ﺑﺸﻜﻌﻞ ﻣﺘﺰاﻣﻌﻦ ﺑﺤﯿﻌﺚ‬ ‫ّﻛﺪة ﻋﻨﺪﻣﻌﺎ ﺗ‬
‫ُﻨﻔ‬ ‫​ ﺗﺤﺼﻌﻞ ظﺎھﺮة اﻟﺘﻌﺪﯾﻠﺖ ﻏﯿﻌﺮ اﻟﻤﺆ‬ ‫‪:Uncommited updates‬‬
‫​ ﻣﺜﺎل‪:‬‬
‫​‬ ‫​ ﻣﻦ ﻗﺒﻞ اﻟﻮﻟﻰ‪ ،‬ﻣﻤﺎ ﯾﮭﺪد ﺧﺎﺻﯿﺔ اﻟﻌﺰل اﻟﺘﻲ ﯾﺠﺐ أن ﺗﺘﺤﻘﻖ ﻓﻲ اﻟﻤﻨﺎﻗﻠﺖ‪.‬‬ ‫ﻋﻌﻦ اﻟﺘﻨﻔﯿﻌﺬ ﺑﻌﻌﺪ أن ﺗﻘﻮم اﻟﺜﺎﻧﯿﻌﺔ ﺑﻘﺮاءة اﻟﻤﻌﻄﯿﺎت اﻟﻤﻜﺘﻮﺑﻌﺔ‬
‫​‪01‬‬ ‫​‪1‬ﺗﻘﻮم ﺑﺸﺮاء ‪ 001‬وﺣﺪة ﻣﻦ ﻣﻨﺘﺞ ﻣﻌﯿﻦ؛‬
‫​‬ ‫​‪T‬‬ ‫​ﺳﻨﻄﺒﻖ ﻧﻔﺲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻟﻨﺸﺮح ﻣﻦ ﺧﻠﻠﮫ ﻛﯿﻒ ﯾﻤﻜﻦ أن ﺗﻘﻊ ھﺬه اﻟﻤﺸﻜﻠﺔ‪:‬‬
‫​‬
‫‪11.‬‬ ‫​ اﻟﺘﺎﻟﻲ ‪11.‬‬ ‫​ وأن ﺟﺪول اﻟﻤﻨﺘﻌﻌﺞ ﯾﺤﺘﻮي ﻋﻠﻰ ‪ 53‬وﺣﺪة ﻣﻌﻌﻦ ذﻟﻚ اﻟﻤﻨﺘﻌﻌﺞ ﺣﺎﻟﯿﺎ‪ .‬ﯾﻮﺿﻌﻌﺢ اﻟﺸﻜﻌﻌﻞ‬ ‫​‪2‬ﺗﻘﻮم ﺑﺒﯿﻊ ‪ 03‬وﺣﺪة ﻣﻦ ﻧﻔﺲ اﻟﻤﻨﺘﺞ‪.‬‬ ‫​‪T‬‬
‫​ ﻟﺤﻌﻆ أﻧﻌﮫ ﻓﻌﻲ اﻟﺨﻄﻮة‬ ‫​ ﺗﻌﺪﯾﻠﺘﮭﺎ‬
‫​‪1‬أﻛﺪت‬ ‫​‪T‬‬ ‫​ اﻟﻤﻨﺎﻗﻠﺔ‬
‫​‬ ‫​ ﻛﺄن‬ ‫​ وﻟﻜﻦ ﻟﻨﻔﺘﺮض أن اﻟﺘﻨﻔﯿﺬ اﻟﺴﺎﺑﻖ ﻟﻠﻤﻨﺎﻗﻠﺘﯿﻦ ﻗﺪ ﺗﻢ ﻛﻤﺎ ﯾﻠﻲ‪:‬‬ ‫اﻟﺘﻨﻔﯿﺬ اﻟﻤﺘﺴﻠﺴﻞ ﻟﻠﻤﻨﺎﻗﻠﺘﯿﻦ‪:‬‬
‫​‪٣.٢‬‬ ‫ّﻛﺪة‪.‬‬
‫​‬ ‫​‪2‬وﻛﺎﻧﺖ اﻟﻨﺘﯿﺠﺔ ﻗﺮاءة ﻣﻌﻄﯿﺎت ﻏﯿﺮ ﻣﺆ‬ ‫​‪1‬و ‪T‬‬ ‫​ ﺑﺎﻟﺘﺰاﻣﻦ ﺑﯿﻦ اﻟﻤﻨﺎﻗﻠﺘﯿﻦ ‪T‬‬‫رﻗﻌﻢ ‪ /4/‬ﻣﻌﻦ اﻟﺠﺪول اﻟﺴﻌﺎﺑﻖ ﻗﻌﺪ ﺣﺼﻌﻠﺖ ﻣﺸﻜﻠﺔ ﺗﺘﻌﻠﻖ‬
‫​ع‬
‫​‬ ‫​ع‬ ‫​ع‬ ‫​ع‬ ‫​ﻋﻨﺪم ﻋﻌﺎ ﺗﻘﻮم ﻣﻨﺎﻗﻠﺔ م ﻋﻌﺎ ﺑﻘﺮاءة‬ ‫​ ﺗﺤﺺ ﻋﻌﻞ ظﺎھﺮة اﻟﻘﺮاءة اﻟﻤﺘﺲ ﻋﻌﺨﺔ ‪dirty read‬‬ ‫ﻣﺸﻜﻠﺔ اﻟﻘﺮاءة اﻟﻤﺘﺴﺨﺔ ‪:Dirty read‬‬
‫​‪11‬‬ ‫​ ﻣﺜﺎل‪:‬‬
‫​‬ ‫​ اﻟﻘﺮاءة ﯾﻤﻜﻦ أن ﺗﺤﺼﻞ ﻗﺒﻞ أو ﺑﻌﺪ اﻟﺘﻐﯿﯿﺮ‪.‬‬ ‫​ﻣﺠﻤﻮﻋﻌﺔ ﻣﻌﻄﯿﺎت أﺛﻨﺎء ﻗﯿﺎم ﻣﻨﺎﻗﻠﺖ أﺧﺮى ﺑﺘﺤﺪﯾﻌﺚ ﺗﻠﻚ اﻟﻤﻌﻄﯿﺎت‪ ،‬وﺑﺎﻟﺘﺎﻟﻲ ﻓﺈن‬
‫‪12.‬‬ ‫​ ﻓﻌﻲ اﻟﺠﺪول ‪;quot‬ﻣﻨﺘﻌﺞ‪ ،;quot‬ﺑﯿﻨﻤﻌﺎ ‪12.‬‬ ‫​ع‬ ‫​ع‬ ‫​‪1‬ﺗﻘﻮم ﺑﺤﺲ ﻋﻌﺎب ﻣﺠﻤﻮع ﻛﻤﯿﺎت ﻛﺎف ﻋﻌﺔ اﻟﻤﻨﺘﺠﺎت اﻟﻤﻮﺟﻮدة‬ ‫ﻟﻨﻔﺘﺮض أن اﻟﻤﻨﺎﻗﻠﺔ ‪T‬‬
‫​ ﻟﻨﻔﺘﺮض اﻟﻦ وﺟﻮد اﻟﻘﯿﻢ اﻟﺘﺎﻟﯿﺔ ﻓﻲ ﺟﺪول‬ ‫​ ﻣﺤﺪدﯾﻦ ﻣﻦ ذﻟﻚ اﻟﺠﺪول‪.‬‬ ‫​‪2‬ﺑﻨﻔﻌﺲ اﻟﻮﻗﻌﺖ ﺑﺘﺤﺪﯾﻌﺚ ﻛﻤﯿﻌﺔ ﻣﻨﺘﺠﯿﻌﻦ‬ ‫ﺗﻘﻮم اﻟﻤﻨﺎﻗﻠﺔ ‪T‬‬
‫​ ﺗﺤﺪﺛﺎن ﻓﻌﻲ اﻟﻤﻌﻄﯿﺎت ﺑﺤﯿﻌﺚ‬ ‫ّ‬ ‫​ ﻧﻠﺤﻌﻆ ﻣﻌﻦ اﻟﺠﺪول أن اﻟﻤﺠﻤﻮع ﻗﺒﻌﻞ اﻟﺘﻌﺪﯾﻌﻞ ﯾﺴﻌﺎوي ‪ ،29‬وﻟﻜﻌﻦ ﯾﻮﺟﻌﺪ ﻣﻨﺎﻗﻠﺘﺎن‬ ‫‪;quot‬ﻣﻨﺘﺞ‪:;quot‬‬
‫​ اﻟﺨﺮى ‪ 01‬وﺣﺪات أﯾﻀﺎ ﻣﻦ اﻟﻤﻨﺘﺞ ‪ ،85‬ﻓﺒﺎﻟﺘﺎﻟﻲ ﯾﻨﺒﻐﻲ أن ﯾﻜﻮن اﻟﻤﺠﻤﻮع ﻣﺴﺎوﯾﺎ‬
‫​‬ ‫ﺗﻀﯿﻌﻒ إﺣﺪاھﻤﻌﺎ ‪ 01‬وﺣﺪات إﻟﻰ اﻟﻤﻨﺘﻌﺞ ‪ 64‬وﺗﻨﻘﻌﺺ‬
‫​‪1‬اﻟﺘﻌﻌﻲ ﺗﻘﻮم‬
‫​‬ ‫​ ﻧﻠﺤﻌﻌﻆ ﻓﻌﻌﻲ اﻟﺨﻄﻮة رﻗﻌﻌﻢ ‪ /7/‬ﻣﻌﻌﻦ اﻟﺠﺪول اﻟﺴﻌﻌﺎﺑﻖ أن اﻟﻤﻨﺎﻗﻠﺔ ‪T‬‬ ‫​ ﻟﻨﻔﺘﺮض اﻟﻦ اﻟﺴﯿﻨﺎرﯾﻮ اﻟﺘﺎﻟﻲ‪:‬‬ ‫ﻟﻠﻘﯿﻤﺔ ‪ 29‬أﯾﻀﺎ‪.‬‬
‫​ اﻟﺨﻄﻮة رﻗﻌﻢ ‪ /8/‬إﻟﻰ اﻟﺨﻄﻮة رﻗﻌﻢ ‪ /11/‬ﺗﺘﻌﻢ‬ ‫ﺑﺘﻄﻌﺒﯿﻖ اﻟﺘﺎﺑﻌﻊ اﻟﺘﺠﻤﯿﻌﻌﻲ ﻗﻌﺪ ﻗﺮأت ﻗﯿﻤﻌﺔ ﻛﻤﯿﻌﺔ اﻟﻤﻨﺘﻌﺞ ‪ 85‬ﻗﺒﻌﻞ اﻟﺘﺤﺪﯾﻌﺚ‪ ،‬ﺛﻌﻢ ﻣﻌﻦ‬
‫​‪21‬‬ ‫ّﻌﺴﺎق ﻓﻌﻲ‬
‫​‬ ‫​‪2‬وﺗﺨﺰﯾﻌﻦ اﻟﻘﯿﻤﻌﺔ اﻟﺠﺪﯾﺪة‪ ،‬ﻣﻤﻌﺎ ﯾﺆدي إﻟﻰ ﺣﺎﻟﺔ ﻋﺪم اﺗ‬ ‫​ ﻗﺒﻌﻞ اﻟﻤﻨﺎﻗﻠﺔ ‪T‬‬‫​ﻋﻤﻠﯿﻌﺔ ﺗﺤﺪﯾﻌﺚ ﻗﯿﻤﻌﺔ اﻟﻤﻨﺘﻌﺞ ‪ 85‬ﻣﻌﻦ‬
‫‪13.‬‬ ‫​‪13. .٣‬‬ ‫​ ﻣﺨﺎﻟﻔﺔ ﻟﻤﺤﺘﻮﯾﺎت ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت اﻟﻔﻌﻠﯿﺔ‪.‬‬
‫​‬ ‫​‪1‬أي ﻧﺘﯿﺠﻌﺔ ﺗﻨﻔﯿﻌﺬ اﻟﺘﺎﺑﻌﻊ اﻟﺘﺠﻤﯿﻌﻌﻲ‪-‬‬ ‫ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت‪ ،‬ﻟﻦ ﻧﺘﯿﺠﻌﺔ ﺗﻨﻔﯿﻌﺬ اﻟﻤﻨﺎﻗﻠﺔ ‪– T‬‬
‫ٍﺬ ﯾﻨﺒﻐﻌﻲ‬ ‫​ ﻧﻔﻌﺲ اﻟﻤﻌﻄﯿﺎت‪ ،‬ﻋﻨﺪﺋ‬ ‫ّﺪة ﻣﻨﺎﻗﻠﺖ ﺑﺎﺳﻌﺘﺨﺪام‬ ‫​ ﺗﻈﮭﻌﺮ ﻣﺸﻜﻠﺔ اﻟﺘﻀﺎرب ﺑﯿﻌﻦ اﻟﻤﻨﺎﻗﻠﺖ ﺑﻮﺿﻮح ﻋﻨﺪﻣﻌﺎ ﺗﻘﻮم ﻋ‬ ‫اﻟﻤﺠﺪول ‪:Schedule‬‬
‫​ ﻛﯿﻒ‬ ‫​ ﯾﺴﻌﻤﺢ ﻟﻜﻌﻞ اﻟﻤﻨﺎﻗﻠﺖ ﺑﺎﺳﻌﺘﺨﺪام اﻟﻤﻌﻄﯿﺎت ﺑﺸﻜﻌﻞ ﺳﻌﻠﯿﻢ‪ .‬وﯾﻮﺿﻌﺢ اﻟﺸﻜﻌﻞ اﻟﺘﺎﻟﻲ‬ ‫ﺣﻌﻞ ﺗﻠﻚ اﻟﻤﺸﻜﻠﺔ ﻣﻌﻦ ﺧﻠﻞ ﺗﺤﺪﯾﻌﺪ ﺗﺮﺗﯿﻌﺐ ﻣﻌﯿﻌﻦ‬
‫​ ﯾﺪﻋﻰ اﻟﺘﺮﺗﯿﺐ اﻟﻤﻨﻄﻘﻲ اﻟﺬي ﯾﺘﻢ ﻓﯿﮫ ﺗﻨﻔﯿﺬ ﺗﻌﻠﯿﻤﺎت اﻟﻤﻨﺎﻗﻠﺖ اﻟﻤﺘﺰاﻣﻨﺔ ﺑﺎﻟﻤﺠﺪول‬
‫​‬ ‫ﯾﻤﻜﻦ أن ﯾﺤﺪث اﻟﺘﻀﺎرب ﻓﻲ اﻟﻤﻌﻄﯿﺎت ﻓﯿﻤﺎ ﺑﯿﻦ اﻟﻤﻨﺎﻗﻠﺖ‪:‬‬
‫​ ﺟﻤﯿﻌﻊ اﻟﻤﻨﺎﻗﻠﺖ‪ ،‬وﺑﻨﻔﻌﺲ اﻟﺘﺮﺗﯿﻌﺐ اﻟﺬي ﺗﻈﮭﻌﺮ ﻓﯿﻌﮫ‬ ‫(اﻟﺘﺮﺗﯿﻌﺐ اﻟﺰﻣﻨﻌﻲ ﻟﻠﺘﻨﻔﯿﻌﺬ)‪ ،‬وﯾﺠﻌﺐ أن ﯾﺤﺘﻮي ﻋﻠﻰ ﺟﻤﯿﻌﻊ اﻟﺘﻌﻠﯿﻤﺎت اﻟﻤﻮﺟﻮدة ﻓﻌﻲ‬
‫​ اﻟﻤﻨﺎﻗﻠﺔ‬
‫​إﻟﻰ اﻟﺤﺴﻌﺎب ‪،B‬‬ ‫​‪1‬واﻟﺘﻌﻲ ﺗﻘﻮم ﺑﺘﺤﻮﯾﻌﻞ ‪ $٠٥‬ﻣﻌﻦ اﻟﺤﺴﻌﺎب ‪A‬‬ ‫​ ﻟﺘﻜﻌﻦ ﻟﺪﯾﻨﻌﺎ اﻟﻤﻨﺎﻗﻠﺔ ‪T‬‬‫​ أﻣﺜﻠﺔ‪:‬‬
‫​ ﻋﻠﻰ ﺣﺪا‪.‬‬ ‫ھﺬه اﻟﺘﻌﻠﯿﻤﺎت ﻓﻌﻲ ﻛﻌﻞ ﻣﻨﺎﻗﻠﺔ‬
‫​‪31‬‬ ‫​ ﻧﺴﻤﻲ اﻟﻤﺠﺪول اﻟﺘﺎﻟﻲ ﺑﺎﻟﺘﺴﻠﺴﻠﻲ ‪:serial schedule‬‬
‫​‬ ‫​إﻟﻰ اﻟﺤﺴﺎب ‪.B‬‬ ‫​‪2‬ﺗﻘﻮم ﺑﺘﺤﻮﯾﻞ ‪ %٠١‬ﻣﻦ رﺻﯿﺪ اﻟﺤﺴﺎب ‪A‬‬ ‫​‪T‬‬
‫‪14.‬‬ ‫​‪14. 41‬‬ ‫​ ﻋﻠﻰ ‪:A+B‬‬
‫​‬ ‫​أﻣﺎ اﻟﻤﺠﺪول اﻟﺘﺎﻟﻲ ﻓﮭﻮ ﻟﯿﺲ ﺗﺴﻠﺴﻠﯿﺎ وﻟﻜﻨﮫ ﯾﻜﺎﻓﺊ اﻟﺴﺎﺑﻖ‪ ،‬ﺣﯿﺚ ﯾﺤﺎﻓﻆ اﻟﺜﻨﺎن‬
‫‪15.‬‬ ‫​ ‪15.‬‬ ‫​ ﯾﻌﺎﻟﺞ ﻧﻈﺎم إدارة ﻗﻮاﻋﻌﻌﺪ اﻟﻤﻌﻄﯿﺎت ﺗﻠﻚ اﻟﻤﺸﻜﻠﺔ ﻣﻌﻌﻦ ﺧﻠﻞ ﺑﺮﻧﺎﻣﻌﻌﺞ ﺧﺎص ﯾﻘﻮم‬ ‫أﻣﺎ اﻟﻤﺠﺪول اﻟﺘﺎﻟﻲ ﻓﻞ ﯾﺤﺎﻓﻆ ﻋﻠﻰ اﻟﻤﺠﻤﻮع ‪:A+B‬‬
‫​ اﻟﻤﻨﺎﻗﻠﺖ وﺑﺎﻟﺘﺎﻟﻲ ﺗﺠﺎﻧﻌﻌﻌﻌﻌﻌﻌﻌﻌﻌﻌﺲ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬ ‫ﺑﺈدارة ﺗﺮﺗﯿﻌﻌﺐ ﺗﻨﻔﯿﻌﻌﺬ اﻟﻤﻨﺎﻗﻠﺖ اﻟﻤﺘﺰاﻣﻨﻌﻌﺔ ﺑﺤﯿﻌﻌﺚ ﯾﻀﻤﻌﻌﻦ ﺗﺤﻘﻌﻌﻖ ﺗﺴﻌﻌﻠﺴﻞ وﻋﺰل‬
‫​ ﯾﻀﻤﻌﻦ اﻟﻘﻔﻌﻞ اﻟﺴﻌﺘﺨﺪام‬ ‫​‪ .٤‬اﻟﻘﻔﺎل ‪:Locks‬‬ ‫​ وطﺮاﺋﻖ ﺧﺎﺻﺔ ﻛﺨﻮارزﻣﯿﺎت اﻟﻘﻔﻞ أو طﺮاﺋﻖ اﻟﺨﺘﺎم اﻟﺰﻣﻨﯿﺔ‪.‬‬
‫​‬ ‫وذﻟﻚ ﺑﺎﻟﻌﺘﻤﺎد ﻋﻠﻰ ﺧﻮارزﻣﯿﺎت‬
‫​ أن ﺗﻘﻮم ﻣﻨﺎﻗﻠﺔ ﻣﻌﺎ ﺑﻘﻔﻌﻞ ﻣﻌﻄﯿﺎت ﻣﻌﯿﻨﻌﺔ ﺑﺤﯿﻌﺚ ﺗﻤﻨﻌﻊ ﻣﻨﺎﻗﻠﺖ أﺧﺮى ﻣﻌﻦ‬ ‫اﻟﺤﺼﻌﺮي ﻟﻠﻤﻌﻄﯿﺎت ﻣﻌﻦ ﻗﺒﻌﻞ ﻣﻨﺎﻗﻠﺔ ﻣﻌﯿﻨﻌﺔ‪ ،‬ﺣﯿﻌﺚ ﯾﻤﻜﻌﻦ‬
‫ّﻰ ﻣﻦ‬ ‫​ ﺗﺖ ﻋﻢ إدارة اﻟﻘﻔﺎل م ﻋﻦ ﺧﻠﻞ ﺑﺮﻧﺎم ﻋﺞ ﺧﺎص ﯾﺘﻮﻟ‬ ‫​ ﻋﻠﻰ ﺗﻠﻚ اﻟﻤﻌﻄﯿﺎت إﻟﻰ أن ﯾﺘﻢ ﺗﺤﺮﯾﺮ اﻟﻘﻔﻞ ﻣﻦ ﻗﺒﻞ اﻟﻤﻨﺎﻗﻠﺔ اﻟﺘﻲ وﺿﻌﺘﮫ‪.‬‬ ‫اﻟﺤﺼﻌﻮل‬
‫ّﺪة ﻣﺴﻌﻌﻌﻌﺘﻮﯾﺎت‪ :‬ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت‪،‬‬
‫​‬ ‫​ اﻟﻤﻨﺎﻗﻠﺖ‪ .‬وﯾﻤﻜﻌﻌﻌﻌﻦ أن ﯾﺘﻌﻌﻌﻌﻢ اﻟﻘﻔﺎل ﻋﻠﻰ ﻋ‬ ‫​ع‬ ‫​ع‬‫​ع‬ ‫​ع‬ ‫​ع‬ ‫​ع‬ ‫​ع‬ ‫ﻋﺢ اﻟﻘﻒ ﻋﻞ أو اس ﻋﺘﺮداده م ﻋﻦ‬
‫​‪51‬‬ ‫​اﻟﺠﺪول‪ ،‬اﻟﺼﻔﺤﺔ‪ ،‬اﻟﺴﻄﺮ‪ ،‬اﻟﺤﻘﻞ‪.‬‬
‫​‬
‫‪16.‬‬ ‫​ اﻟﻘﻔﻞ ‪16.‬‬ ‫​ اﻟﺼﻔﺤﺔ‪ ،‬اﻟﺴﻄﺮ‪ ،‬اﻟﺤﻘﻞ‪.‬‬ ‫ّﺪة ﻣﺴﻌﻌﺘﻮﯾﺎت وھﻌﻌﻲ‪ :‬ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت‪ ،‬اﻟﺠﺪول‪،‬‬ ‫​ ﯾﻤﻜﻌﻌﻦ أن ﯾﺘﻌﻌﻢ اﻟﻘﻔﺎل ﻋﻠﻰ ﻋ‬ ‫​‪ ١.٤‬ﻣﺴﺘﻮﯾﺎت اﻟﻘﻔﺎل‪:‬‬
‫​ ﯾﺘﻌﻢ ﻓﻌﻲ ھﺬا اﻟﻤﺴﻌﺘﻮى ﻗﻔﻌﻞ ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت ﻛﻜﻌﻞ ﻣﻌﻊ ﻛﺎﻓﻌﺔ ﺟﺪاوﻟﮭﻌﺎ وﻣﻨﺤﮭﻌﺎ‬
‫​‬ ‫ﻋﻠﻰ ﻣﺴﺘﻮى ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت ‪:Database Locking‬‬
‫​ ﯾﻤﻜﻌﻦ ھﻨﻌﺎ أن ﻧﺴﻌﺘﻨﺘﺞ‬ ‫​ اﻟﻤﻌﻄﯿﺎت رﯾﺜﻤﺎ ﯾﺘﻢ ﺗﺤﺮﯾﺮ اﻟﻘﻔﻞ‪.‬‬ ‫ﻟﻤﻨﺎﻗﻠﺔ ﻣﻌﯿﻨﻌﻌﺔ ﻓﻌﻌﻲ ﺣﯿﻌﻌﻦ ﺗﻤﻨﻌﻌﻊ ﻛﺎﻓﻌﻌﺔ اﻟﻤﻨﺎﻗﻠﺖ اﻟﺨﺮى ﻣﻌﻌﻦ اﻟﻮﻟﻮج إﻟﻰ ﻗﺎﻋﺪة‬
‫​ ﻗﻮاﻋﻌﺪ اﻟﻤﻌﻄﯿﺎت ﻣﺘﻌﺪدة اﻟﻤﺴﻌﺘﺨﺪﻣﯿﻦ وﺧﺎﺻﻌﺔ إذا ﻣﻌﺎ أﺧﺬﻧﻌﺎ ﺑﻌﯿﻌﻦ اﻟﻌﺘﺒﺎر‬ ‫ﻋﺪم ﻓﻌﺎﻟﯿﻌﺔ ھﺬا اﻟﻨﻮع ﻣﻌﻦ ﻣﺴﻌﺘﻮﯾﺎت اﻟﻘﻔﻌﻞ ﻓﻌﻲ ﻧﻈﻌﻢ إدارة‬
‫​ اﻟﻘﻔﻞ ﻋﻠﻰ‬ ‫​ ﯾﻮﺿﺢ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﻛﯿﻒ ﯾﺘﻢ إﺟﺮاء اﻟﻘﻔﻞ ﻋﻠﻰ ﻣﺴﺘﻮى ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت‪:‬‬ ‫​ اﻟﺸﺪﯾﺪ اﻟﺬي ﯾﻤﻜﻦ أن ﯾﻨﺘﺞ ﻛﻠﻤﺎ ازدادت اﻟﻤﻨﺎﻗﻠﺖ‪.‬‬ ‫اﻟﺒﻄﻊء‬
‫​ اﻟﺠﺪول إذا ﻣﺎ‬ ‫ُﻤﻨﻌﻊ ﻣﻨﺎﻗﻠﺔ ﻣﻌﺎ ﻣﻌﻦ دﺧﻮل ذﻟﻚ‬ ‫​ ﯾﺘﻌﻢ ﻓﻌﻲ ھﺬا اﻟﻤﺴﻌﺘﻮى ﻗﻔﻌﻞ ﺟﺪول ﺑﺎﻟﻜﺎﻣﻌﻞ ﺑﺤﯿﻌﺚ ﺗ‬ ‫ﻣﺴﺘﻮى اﻟﺠﺪول ‪:Table Locking‬‬
‫​‪61‬‬ ‫​ﻛﺎﻧﺖ ھﻨﺎك ﻣﻨﺎﻗﻠﺔ أﺧﺮى ﺗﺴﺘﺨﺪم ﻣﻌﻄﯿﺎت ﻣﻨﮫ‪.‬‬
‫​‬
‫‪17.‬‬ ‫​ اﻟﻌﺪﯾﺪ ﻣﻦ اﻟﻤﻨﺎﻗﻠﺖ اﻟﺘﻲ ‪17.‬‬ ‫​ع‬ ‫​ع‬‫​ع‬ ‫​ع‬ ‫​ع‬ ‫​ع‬ ‫ﺗﺒﻖ ﻋﻰ ﻧﻒ ﻋﺲ اﻟﻤﺸﻜﻠﺔ اﻟﻤﻮﺟﻮدة ف ﻋﻲ اﻟﻤﺲ ﻋﺘﻮى اﻟﺲ ﻋﺎﺑﻖ‪ ،‬أي ﻓﯿﻢ ﻋﺎ إذا ﻛﺎن ھﻨﺎك‬
‫​ اﻟﻘﻔﻞ ﻋﻠﻰ ﻣﺴﺘﻮى اﻟﺼﻔﺤﺔ ‪:Page‬‬
‫​‬ ‫​ ﯾﻮﺿﺢ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﻛﯿﻒ ﯾﺘﻢ إﺟﺮاء اﻟﻘﻔﻞ ﻋﻠﻰ ﻣﺴﺘﻮى اﻟﺠﺪول‪:‬‬ ‫ﺗﺤﺎول وﻟﻮج ﻧﻔﺲ اﻟﺠﺪول ﻓﻲ آن واﺣﺪ‪.‬‬
‫​ ﯾﻌﺘﻌﻌﺒﺮ ھﺬا‬ ‫​ ﻋﻨﺪﻣﺎ ﯾﺘﻢ طﻠﺒﮭﺎ ﻣﻦ ﻣﻨﺎﻗﻠﺔ ﻗﻔﻞ ﻣﻌﯿﻨﺔ‪.‬‬ ‫​ ﯾﻘﺼﺪ ﺑﺎﻟﺼﻔﺤﺔ‪ ،‬اﻟﻜﺘﻠﺔ ﻣﻦ اﻟﻘﺮص‪ .‬ﯾﺘﻢ ﻓﻲ ھﺬا اﻟﻤﺴﺘﻮى ﻗﻔﻞ اﻟﺼﻔﺤﺔ ﺑﺎﻟﻜﺎﻣﻞ‬ ‫‪Locking‬‬
‫​ اﻟﻤﺴﻌﺘﺨﺪﻣﯿﻦ‪ ،‬وﻟﻜﻌﻦ ﺗﺘﻤﺜﻌﻞ ﺳﻌﯿﺌﺎﺗﮫ ﺑﺄن اﻟﺼﻌﻔﺤﺔ ﯾﻤﻜﻌﻦ أن ﺗﺤﺘﻮي‬ ‫اﻟﻨﻮع ﻣﻌﻌﻦ اﻟﻘﻔﺎل ﻣﻨﺎﺳﻌﻌﺒﺎ ﻟﺒﯿﺌﺔ ﻧﻈﻌﻌﻢ إدارة ﻗﻮاﻋﻌﻌﺪ اﻟﻤﻌﻄﯿﺎت ﻣﺘﻌﺪدة‬
‫​ ﻣﻦ أﺳﻄﺮ ﻣﻌﯿﻨﺔ ل ﯾﺘﻢ اﺳﺘﺨﺪاﻣﮭﺎ ﻣﻦ ﻗﺒﻞ‬ ‫​ اﻟﺴﻄﺮ وﺑﺎﻟﺘﺎﻟﻲ ﻓﺈن ﻗﻔﻞ ﻛﻞ اﻟﺼﻔﺤﺔ ﯾﻤﻜﻦ أن ﯾﺆدي إﻟﻰ ﺣﺮﻣﺎن ﻣﻨﺎﻗﻠﺖ أﺧﺮى‬ ‫ﻋﻠﻰ اﻟﻌﺪﯾﻌﺪ ﻣﻌﻦ‬
‫​‪71‬‬ ‫​ ﯾﻮﺿﺢ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﻛﯿﻒ ﯾﺘﻢ إﺟﺮاء اﻟﻘﻔﻞ ﻋﻠﻰ ﻣﺴﺘﻮى اﻟﺼﻔﺤﺔ‪:‬‬
‫​‬ ‫​اﻟﻤﻨﺎﻗﻠﺔ اﻟﺘﻲ طﻠﺒﺖ اﻟﻘﻔﻞ‪.‬‬
‫‪18.‬‬ ‫​ ﻣﻨﺎﻗﻠﺖ ‪18.‬‬ ‫ّﺪة‬
‫​ وھﻌﻮ أﺳﻌﻠﻮب أﻗﻌﻞ ﺗﻘﯿﯿﺪا ﻣﻌﻦ اﻟﻤﺴﻌﺘﻮﯾﺎت اﻟﺴﻌﺎﺑﻘﺔ ﻓﻌﻲ اﻟﻘﻔﻌﻞ‪ ،‬ﺑﺤﯿﻌﺚ ﯾﺴﻌﻤﺢ ﻟﻌ‬ ‫اﻟﻘﻔﻞ ﻋﻠﻰ ﻣﺴﺘﻮى اﻟﺴﻄﺮ ‪:Row Locking‬‬
‫​ ت ﻋﻌﺒﺮز‬ ‫​ اﻟﺴﻄﺮ ﻓﻲ ﻧﻔﺲ اﻟﺼﻔﺤﺔ‪.‬‬ ‫​ع‬ ‫​ ﻋﻊ‬‫​ع‬ ‫​ع‬‫​ع‬ ‫ّﺪة أس ﻋﻄﺮ ﻣﺨﺘﻠﻒ ﻋﺔ ف ﻋﻲ ﺟﺪول ﻣﻌﻲ ﻋﻦ ﺣﺖ ﻋﻰ وﻟﻮ ﻛﺎن ﻋﺖ ﺗﻠﻚ‬ ‫ﺑﺎﻟﻮﻟﻮج إﻟﻰ ﻋ‬
‫​ اﻟﻤﻔﺮوﺿﺔ ﻋﻠﻰ ﻛﻞ ﺳﻄﺮ ﻣﻦ أﺳﻄﺮ‬ ‫​ع‬ ‫​ع‬ ‫​ع‬ ‫​ع‬ ‫​ع‬ ‫​ع‬ ‫ً‬
‫س ﻋﻌﯿﺌﺎت ھﺬه اﻟﻄﺮﯾﻖ ﻋﻌﺔ م ﻋﻌﻦ ﺧﻠﻞ اﻟﻌﺐ ﻋﻊء اﻟﻤﺘﻮﻟﺪ ﻧﺘﯿﺠﺔ ﻟﻜﺜﺮة اﻟﻤﻌﺎﻟﺞ ﻋﻌﺔ‬
‫​‪81‬‬ ‫​ اﻟﻘﻔﻞ ﻋﻠﻰ ﻣﺴﺘﻮى اﻟﺤﻘﻞ‪:‬‬
‫​‬ ‫​ ﯾﻮﺿﺢ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﻛﯿﻒ ﯾﺘﻢ إﺟﺮاء اﻟﻘﻔﻞ ﻋﻠﻰ ﻣﺴﺘﻮى اﻟﺴﻄﺮ‪:‬‬ ‫​اﻟﺠﺪاول‪.‬‬
‫‪19.‬‬ ‫​ اﻟﺮﻏﻌﻢ ﻣﻌﻦ ذﻟﻚ‪ -‬ﻧﺎدرا ﻣﻌﺎ ﯾﺘﻌﻢ اﺳﻌﺘﺨﺪام ھﺬه ‪19.‬‬ ‫وھﻌﻮ أﻛﺜﻌﺮ أﻧﻮاع ﻣﺴﻌﺘﻮﯾﺎت اﻟﻘﻔﻌﻞ ﻣﻞءﻣﻌﺔ ﻟﻠﺒﯿﺌﺔ ﻣﺘﻌﺪدة اﻟﻤﺴﻌﺘﺨﺪﻣﯿﻦ وﻟﻜﻌﻦ ‪-‬ﻋﻠﻰ‬
‫​ اﻟﻘﻔﻞ‬‫​‪ ٢.٤‬أﻧﻤﺎط اﻟﻘﻔﺎل ‪:Locks Modes‬‬ ‫ً‬
‫​ اﻟﻤﺘﻮﻟﺪ ﻋﻠﻰ اﻟﺤﺎﺳﺐ ﻧﺘﯿﺠﺔ ﻟﺘﻄﺒﯿﻘﮭﺎ‪.‬‬
‫​‬ ‫​ ﻋﻊ‬‫​ ﻋﻊ‬ ‫​ع‬ ‫​ع‬‫​ع‬ ‫​ع‬‫اﻟﻄﺮﯾﻘﻌﺔ وذﻟﻚ ﻟﻠﻌﺒﻊء اﻟﻜﻌﺒﯿﺮ ﺟﺪا‬
‫​ع‬
‫​‬ ‫​ع‬ ‫​ع‬ ‫​ع‬ ‫​ع‬ ‫​ﻋﻠﻰ ﺑﯿﺎﻧﺎت ‪ ،Q‬ﻓﺈن ‪Ti‬‬ ‫​ﻋﻠﻰ ﻗﻔﻌﻌﻞ ﺣﺼﻌﻌﺮي (ﯾﺮﻣﻌﻌﺰ ﺑﻌﻌﻊ ‪(X‬‬ ‫​ إذا ﺣﺼﻌﻌﻠﺖ ﻣﻨﺎﻗﻠﺔ ‪Ti‬‬ ‫اﻟﺤﺼﺮي ‪:Exclusive Lock‬‬
‫​ﻋﻠﻰ‬ ‫​ﻋﻠﻰ ﻗﻔﻌﻌﻌﻞ ﻣﺸﺘﺮك (ﯾﺮﻣﻌﻌﻌﺰ ﺑﻌﻌﻌﻊ ‪(S‬‬ ‫​ إذا ﺣﺼﻌﻌﻌﻠﺖ ﻣﻨﺎﻗﻠﺔ ‪Ti‬‬ ‫​ اﻟﻘﻔﻞ اﻟﻤﺸﺘﺮك ‪:Shared Lock‬‬ ‫ﺗﺴﺘﻄﯿﻊ اﻟﻘﺮاءة واﻟﻜﺘﺎﺑﺔ ﻋﻠﻰ ‪.Q‬‬
‫​ ﯾﻤﻨﺢ اﻟﻘﻔﻞ اﻟﻤﺸﺘﺮك ﻋﻠﻰ ﻋﻨﺼﺮ إﻟﻰ أﯾﺔ ﻣﻨﺎﻗﻠﺔ ﺗﺮﯾﺪ ﻗﺮاءة ذﻟﻚ اﻟﻌﻨﺼﺮ‬ ‫​ ﺗﺴﺘﻄﯿﻊ اﻟﻘﺮاءة ول ﺗﺴﺘﻄﯿﻊ اﻟﻜﺘﺎﺑﺔ ﻋﻠﻰ ‪.Q‬‬ ‫ﺑﯿﺎﻧﺎت ‪ ،Q‬ﻓﺈن ‪Ti‬‬
‫​ ﻋﻠﻰ ﻋﻨﺼﺮ إﻟﻰ ﻣﻨﺎﻗﻠﺔ ﻣﺎ‪ ،‬إذا وﻓﻘﻂ إذا ﻟﻢ ﯾﻜﻦ ﻋﻠﻰ‬ ‫​ وﺟﺪ ﻋﻠﻰ اﻟﻌﻨﺼﺮ ﻗﻔﻞ ﻣﺸﺘﺮك ﻣﻦ ﻗﺒﻞ ﻣﻨﺎﻗﻠﺔ أﺧﺮى‪ .‬ﺑﯿﻨﻤﺎ ﯾﻤﻨﺢ اﻟﻘﻔﻞ اﻟﺤﺼﺮي‬ ‫ﺣﺘﻰ وﻟﻮ‬
‫​ﺣﯿﻌﺚ ﻣﻌﻦ اﻟﻤﻤﻜﻌﻦ‬ ‫​ اﻟﻨﺘﻈﺎر اﻟﻠﻨﮭﺎﺋﻲ ‪:Live Lock‬‬ ‫​‪ ٣.٤‬ﺑﻌﺾ ﻣﺸﺎﻛﻞ اﻟﻘﻔﺎل‪:‬‬ ‫​ ﻧﻤﻂ‪ .‬ﯾﻌﺒﺮ اﻟﺠﺪول اﻟﺘﺎﻟﻲ ﻋﻦ ذﻟﻚ‪:‬‬
‫​‬ ‫ذﻟﻚ اﻟﻌﻨﺼﺮ أي ﻗﻔﻞ ﻣﻦ أي‬
‫​ اﻟﺬي ﯾﻘﻮم اﻟﻨﻈﺎم ﺑﺤﺠﺰه‬ ‫​‪2‬ﻋﻤﻠﮫ ﯾﻘﻮم ﺑﺘﺤﺮﯾﻌﺮ ‪A‬‬ ‫​اﻟﻤﺤﺠﻮز ﻟﺘﻨﻔﯿﻌﺬ اﻟﻤﻨﺎﻗﻠﺔ ‪2 ،T‬وﻋﻨﺪﻣﻌﺎ ﯾﻨﮭﻌﻲ ‪T‬‬ ‫​ ﻋﻨﺼﻌﺮ ﻣﺜﻌﻞ ‪A‬‬ ‫ً ﻋﻠﻰ‬ ‫​‪1‬ﻗﻔﻞ‬ ‫أن ﯾﻄﻠﺐ ‪T‬‬
‫​‪1‬ﯾﻨﺘﻈﻌﺮ‬ ‫​ وھﻜﺬا ﯾﻤﻜﻌﻦ أن ﯾﻤﻨﻌﺢ اﻟﻘﻔﻌﻞ ﺑﻌﻌﺪ ذﻟﻚ ﻟﻌﻊ ‪4 ... ،T‬ﻧﻠﺤﻌﻆ أن ‪T‬‬ ‫​‪3‬اﻟﺘﻌﻌﻲ طﻠﺒﻌﻌﺖ اﻟﻘﻔﻌﻌﻞ ﻋﻠﯿﻌﻌﮫ أﺛﻨﺎء ﺗﻨﻔﯿﻌﻌﺬ ‪2،T‬‬ ‫ﻟﻠﻤﻨﺎﻗﻠﺔ ‪T‬‬
‫​‪91‬‬ ‫​ ﻧﮭﺎﺋﻲ ﻟﻠﺤﺼﻮل ﻋﻠﻰ ﻗﻔﻞ ﻟﻦ اﻟﻨﻈﺎم ﯾﻔﻀﻞ ﻓﻲ ﻛﻞ ﻣﺮة ﻣﻨﺎﻗﻠﺔ أﺧﺮى‪.‬‬
‫​‬ ‫​ﺑﺸﻜﻌﻞ ل‬
‫‪20.‬‬ ‫​ ﻣﻘﻔﻮل ﻣﻦ ﻣﻨﺎﻗﻠﺔ ‪ ،y‬اﻟﺘﻲ ﺑﺪورھﺎ ﺗﻨﺘﻈﺮ ﻋﻨﺼﺮ ‪20.‬‬ ‫​ع‬‫​ع‬ ‫​ﻋﻨﺺ ﻋﺮ ﻣﻌﻠﻮﻣﺎت‬ ‫​وذﻟﻚ ﻋﻦ ﻋﺪ اﻧﺘﻈﺎر ﻣﻨﺎﻗﻠﺔ ‪x‬‬ ‫اﻟﻘﻔﺎل اﻟﻤﺘﺒﺎدل ‪:Dead Lock‬‬
‫​;‪T‬‬
‫​‬ ‫​;‪T1 : Lock A; Lock B; ………; UnLock A; UnLock B‬‬
‫​‬ ‫​ ﻟﺘﻜﻦ ﻟﺪﯾﻨﺎ اﻟﻤﻨﺎﻗﻠﺘﺎن اﻟﺘﺎﻟﯿﺘﺎن‪:‬‬
‫​‬ ‫​ ﻣﺜﺎل‪:‬‬‫ﻣﻌﻠﻮﻣﺎت ﻣﻘﻔﻮل ﻣﻦ اﻟﻤﻨﺎﻗﻠﺔ ‪.x‬‬
‫​ وﺑﻔﺮض أن اﻟﻤﻨﺎﻗﻠﺘﯿﻦ ﺗﺒﺪآن اﻟﺘﻨﻔﯿﺬ ﻓﻲ وﻗﺖ واﺣﺪ‪ ،‬ﻧﺠﺪ أﻧﮭﻤﺎ ﺳﺘﻨﺘﻈﺮان‬ ‫‪٢ : Lock B; Lock A; ………; UnLock B; UnLock A‬‬
‫​‪ ٤.٤‬ﺑﺮوﺗﻮﻛﻮل اﻟﻘﻔﺎل ﻋﻠﻰ ﻣﺮﺣﻠﺘﯿﻦ ‪Two-Phase Locking‬‬
‫​‬ ‫​ ﻧﮭﺎﺋﻲ‪ .‬وﺳﻨﺘﺤﺪث ﺑﺎﻟﺘﻔﺼﯿﻞ ﻋﻦ ھﺬه اﻟﻈﺎھﺮة ﻓﻲ اﻟﻔﻘﺮات اﻟﻠﺤﻘﺔ‪.‬‬
‫​‬ ‫ﺑﺸﻜﻞ ل‬
‫​ طﺮﯾﻘﺔ‬ ‫​ اﻟﻘﻔﺎل ﺗﺴﺒﻖ ﻛﻞ ﻋﻤﻠﯿﺎت ﺗﺤﺮﯾﺮ اﻟﻘﻔﺎل‪.‬‬ ‫​ ﻧﻘﻮل ﻋﻦ ﻣﻨﺎﻗﻠﺔ أﻧﮭﺎ ﺗﺤﻘﻖ ﺑﺮوﺗﻮﻛﻮل اﻟﻘﻔﺎل ﻋﻠﻰ ﻣﺮﺣﻠﺘﯿﻦ إذا ﻛﺎﻧﺖ ﻛﻞ ﻋﻤﻠﯿﺎت‬ ‫​‪:Protocol‬‬
‫​ ﻛﺎﻓﻌﻌﺔ‬ ‫​وﻓﯿﮭﻌﻌﺎ ﺗﻘﻮم اﻟﻤﻨﺎﻗﻠﺔ ﺑﻄﻠﺐ‬ ‫​ ‪ -‬اﻟﻤﺮﺣﻠﺔ اﻟﺼﻌﻌﺎﻋﺪة (ﻣﺮﺣﻠﺔ اﻟﻨﻤﻌﻌﻮ ‪(growing phase‬‬ ‫​ ﯾﺘﻜﻮن ﻣﻦ ﻣﺮﺣﻠﺘﯿﻦ رﺋﯿﺴﯿﺘﯿﻦ ھﻤﺎ‪:‬‬ ‫اﻟﻌﻤﻞ‪:‬‬
‫​ ﻋﻨﺼﻌﺮ ﻣﻌﻄﯿﺎت‪ ،‬إﻟﻰ أن ﺗﺼﻌﻞ اﻟﻤﻨﺎﻗﻠﺔ إﻟﻰ ﻧﻘﻄﻌﺔ اﻟﻘﻔﻌﻞ‪،‬‬ ‫اﻟﻘﻔﺎل ﻋﻠﻰ اﻟﻤﻌﻄﯿﺎت اﻟﺘﻌﻌﻲ ﺗﺤﺘﺎﺟﮭﻌﻌﺎ وﺑﺪون إﺟﺮاء أي ﻋﻤﻠﯿﻌﻌﺔ ﺗﺤﺮﯾﻌﻌﺮ ﻟﻲ‬
‫​واﻟﺖ ﻋﻲ‬ ‫​ ‪ -‬اﻟﻤﺮﺣﻠﺔ اﻟﮭﺎﺑﻂ ﻋﺔ (ﻣﺮﺣﻠﺔ اﻟﺘﻘﻠﺺ ‪(shrinking phase‬‬ ‫​ أن اﻟﻤﻨﺎﻗﻠﺔ ﻗﺪ اﻧﺘﮭﺖ ﻣﻦ ﻣﺮﺣﻠﺔ طﻠﺐ اﻟﻘﻔﺎل‪.‬‬ ‫وھﻌﻮ ﻣﺼﻌﻄﻠﺢ ﯾﺪل ﻋﻠﻰ‬
‫​ اﻟﻤﻨﺎﻗﻠﺔ ﺑﺤﺠﺰ أي ﻗﻔﻞ ﺟﺪﯾﺪ‪.‬‬
‫​‬ ‫​ ﺑﺘﺤﺮﯾﺮ ﻛﺎﻓﺔ اﻟﻘﻔﺎل اﻟﺘﻲ ﻛﺎﻧﺖ ﻗﺪ ﺣﺠﺰﺗﮭﺎ‪ ،‬ﺑﺤﯿﺚ ﯾﺘﻢ ذﻟﻚ ﻣﻦ دون أن ﺗﻘﻮم ﺗﻠﻚ‬ ‫​ع‬ ‫​ع‬‫​ع‬ ‫ﺗﻘﻮم ﻓﯿﮫ ﻋﺎ اﻟﻤﻨﺎﻗﻠﺔ‬
‫​‪02‬‬ ‫​ ‪ -‬ل ﯾﻤﻜﻦ أن ﺗﺘﻀﺎرب أﻗﻔﺎل ﻣﻨﺎﻗﻠﺘﯿﻦ‪.‬‬
‫​‬ ‫​ﯾﻀﻤﻦ ﺑﺮوﺗﻮﻛﻮل اﻟﻘﻔﺎل ﻋﻠﻰ ﻣﺮﺣﻠﺘﯿﻦ ﺗﺤﻘﻖ ﻣﺎ ﯾﻠﻲ‪:‬‬
‫‪21.‬‬ ‫​ ‪ -‬ل ﺗﺘﺄﺛﺮ اﻟﻤﻌﻄﯿﺎت ﺣﺘﻰ ﯾﺘﻢ ‪21.‬‬ ‫​ ﻧﻔﺲ اﻟﻤﻨﺎﻗﻠﺔ‪.‬‬ ‫‪ -‬ل ﯾﻤﻜﻌﻦ أن ﯾﺘﻌﻢ إﺟﺮاء أي ﻋﻤﻠﯿﻌﺔ ﺗﺤﺮﯾﻌﺮ ﻗﻔﻌﻞ ﻣﻌﻦ ﻗﺒﻌﻞ أي ﻋﻤﻠﯿﻌﺔ ﺣﺠﻌﺰ ﻗﻔﻌﻞ ﻓﻌﻲ‬
‫​ ﯾﺤﺪث اﻟﻘﻔﺎل اﻟﻤﺘﺒﺎدل‬ ‫​‪ ٥.٤‬اﻟﻘﻔﺎل اﻟﻤﺘﺒﺎدل ‪:Dead Lock‬‬ ‫​ ﯾﻮﺿﺢ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﻣﻔﮭﻮم ﺑﺮوﺗﻮﻛﻮل اﻟﻘﻔﻞ ﻋﻠﻰ ﻣﺮﺣﻠﺘﯿﻦ‪:‬‬
‫​‬ ‫ﺣﺠﺰ ﻛﺎﻓﺔ أﻗﻔﺎل اﻟﻤﻨﺎﻗﻠﺔ‪.‬‬
‫​‪1‬ﺗﻘﻮم‬ ‫​‪T‬‬ ‫​ ﻟﯿﻜﻦ ﻟﺪﯾﻨﺎ اﻟﻤﻨﺎﻗﻠﺘﺎن اﻟﺘﺎﻟﯿﺘﺎن‪:‬‬
‫​‬ ‫​ ﻣﺜﺎل‪:‬‬‫​ ﻋﻦ ﻋﻨﺼﺮ ﻣﻌﻄﯿﺎت ﻣﻌﯿﻦ‪.‬‬ ‫ﻋﻨﺪﻣﻌﺎ ﺗﻨﺘﻈﻌﺮ ﻣﻨﺎﻗﻠﺘﺎن ﻛﻌﻞ ﻣﻨﮭﻤﻌﺎ اﻟﺨﺮى ﻟﻜﻌﻲ ﺗﺤﺮر ﻗﻔﻠﮭﻌﺎ‬
‫​‪1‬‬ ‫​ ﻓﺈذا ﻟﻢ ﺗﺤﺮر‬ ‫​وﻋﻨﺼﺮ اﻟﻤﻌﻄﯿﺎت ‪.X‬‬ ‫​‪2‬ﺗﻘﻮم ﺑﺎﻟﻮﻟﻮج إﻟﻰ ﻋﻨﺼﺮ اﻟﻤﻌﻄﯿﺎت ‪Y‬‬ ‫​‪T‬‬ ‫​وﻋﻨﺼﺮ اﻟﻤﻌﻄﯿﺎت ‪.Y‬‬
‫​‬ ‫ﺑﺎﻟﻮﻟﻮج إﻟﻰ ﻋﻨﺼﺮ اﻟﻤﻌﻄﯿﺎت ‪X‬‬
‫​ل ﯾﻤﻚ ﻋﻌﻌﻦ ﻟﻠﻤﻨﺎﻗﻠﺔ‬ ‫​‪2‬ﻗﻔﻠﮫ ﻋﻌﻌﺎ ﻋﻠﻰ اﻟﻌﻨﺺ ﻋﻌﻌﺮ ‪X‬‬ ‫​ ﻟﻢ ﺗﺤﺮر ‪T‬‬ ‫​‪2‬أن ﺗﺒﺪأ‪ ،‬وﺑﺎﻟﻤﺜﻌﻞ‪ ،‬إذا‬ ‫​ل ﯾﻤﻜﻌﻦ ﻟﻠﻤﻨﺎﻗﻠﺔ ‪T‬‬ ‫‪T‬ﻗﻔﻠﮭﻌﺎ ﻋﻠﻰ اﻟﻌﻨﺼﻌﺮ ‪Y‬‬
‫​ ھﻨﺎك ﻋﺪة ﺗﻘﻨﯿﺎت أﺳﺎﺳﯿﺔ ﺗﺴﺘﺨﺪم ﻟﻠﺘﺤﻜﻢ ﺑﺎﻟﻘﻔﺎل اﻟﻤﺘﺒﺎدل‪:‬‬
‫​‬ ‫​ اﻟﻘﻔﺎل اﻟﻤﺘﺒﺎدل أﯾﻀﺎ ﺗﺴﻤﯿﺔ ‪;quot‬اﻟﻌﻨﺎق اﻟﻤﻤﯿﺖ‪.;quot‬‬ ‫​ع‬ ‫​ع‬ ‫​ع‬ ‫​‪1‬أن ﺗﺒﺪأ‪ .‬ﯾﻄﻠﻖ ﻋﻠﻰ‬ ‫‪T‬‬
‫​‪12‬‬ ‫​ﻣﻨﻊ ﺣﺼﻮل اﻟﻘﻔﺎل اﻟﻤﺘﺒﺎدل ‪:Deadlock Prevention‬‬
‫​‬
‫‪22.‬‬ ‫​ اﺣﺘﻤﺎل ﺣﺼﻮل إﻗﻔﺎل ﻣﺘﺒﺎدل‪22. ،‬‬ ‫​ع‬ ‫​ع‬ ‫​ع‬ ‫​ع‬‫​ع‬ ‫​ع‬‫​ع‬ ‫​ع‬‫​ع‬ ‫ﯾﺘﻌﻢ ﻣﻨﻌﻊ ﺣﺼﻌﻮل إﻗﻔﺎل ﻣﺘﺒﺎدل ﻣﻌﻦ ﺧﻠﻞ رﻓﻌﺾ ﻣﻨﻌﺢ ﻗﻔﻌﻞ ﻟﻤﻨﺎﻗﻠﺔ إذا ﻣﻌﺎ وﺟﻌﺪ‬
‫​ اﻛﺘﺸﺎف اﻟﻘﻔﺎل اﻟﻤﺘﺒﺎدل ‪:Deadlock‬‬
‫​‬ ‫​ اﻟﻤﻨﺎﻗﻠﺔ‪ ،‬وﺑﻌﺪ ذﻟﻚ ﯾﺘﻢ إﻋﺎدة ﺟﺪوﻟﺔ ﺗﻠﻚ اﻟﻤﻨﺎﻗﻠﺔ ﻟﻠﺘﻨﻔﯿﺬ‪.‬‬ ‫ﻛﻤﺎ ﯾﺘﻢ اﻟﺘﺮاﺟﻊ ﻋﻦ ﻛﺎﻓﺔ اﻟﺘﻐﯿﺮات اﻟﺘﻲ أﺟﺮﺗﮭﺎ ﺗﻠﻚ‬
‫​ ﻣﺘﺒﺎدل‪ ،‬ﻓﺈذا ﺗﻢ رﺻﺪ إﺣﺪاھﺎ ﻓﺈﻧﮫ ﯾﻘﻮم‬ ‫​ع‬ ‫​ع‬ ‫​ ﯾﻘﻮم ﻧﻈﺎم إدارة ﻗﻮاع ﻋﻌﺪ اﻟﻤﻌﻄﯿﺎت –وﺑﺸﻚ ﻋﻌﻞ دوري‪ -‬ﺑﺎﺧﺘﺒﺎر وﺟﻮد ﺣﺎﻟﺖ إﻗﻔﺎل‬ ‫‪Detection‬‬
‫​ وﯾﺘﻌﻢ اﻟﺘﺮاﺟﻌﻊ ﻋﻌﻦ اﻟﺘﻐﯿﺮات اﻟﺘﻌﻲ أﺟﺮﺗﮭﻌﺎ ﻓﻌﻲ ﺳﻌﺒﯿﻞ ﺣﻌﻞ ﻣﺸﻜﻠﺔ اﻟﻘﻔﺎل اﻟﻤﺘﺒﺎدل‬
‫​‬ ‫ﺑﺎﺧﺘﯿﺎر ﻣﻨﺎﻗﻠﺔ ﻣﺎ ﻟﺘﻜﻮن ‪;quot‬اﻟﻀﺤﯿﺔ ‪quot;victim‬‬
‫​ ﯾﺘﻌﻢ ﺗﺠﻨﻌﺐ ﺣﺼﻌﻮل ﺣﺎﻟﺖ إﻗﻔﺎل ﻣﺘﺒﺎدل إذا ﻣﻌﺎ ﻗﺎﻣﻌﺖ اﻟﻤﻨﺎﻗﻠﺔ ﺑﺎﺳﻌﺘﺤﻀﺎر‬ ‫​ ﺗﺠﻨﺐ اﻟﻘﻔﺎل اﻟﻤﺘﺒﺎدل ‪:Deadlock Avoidance‬‬ ‫اﻟﻤﺘﻮﻟﺪة‪.‬‬
‫​ ﺗﻌﺘﻤﻌﻌﺪ اﺳﻌﻌﺘﺮاﺗﯿﺠﯿﺔ اﺧﺘﯿﺎر طﺮﯾﻘﻌﻌﺔ اﻟﺘﺤﻜﻌﻌﻢ ﺑﺎﻟﻘﻔﺎل اﻟﻤﺘﺒﺎدل ﻋﻠﻰ ﺑﯿﺌﺔ ﻧﻈﺎم إدارة‬
‫​‬ ‫​ ﻛﺎﻓﺔ اﻟﻘﻔﺎل اﻟﺘﻲ ﺗﺤﺘﺎﺟﮭﺎ ﻗﺒﻞ اﻟﺒﺪء ﺑﺎﻟﺘﻨﻔﯿﺬ‪.‬‬ ‫وﺗﺠﮭﯿﻌﺰ‬
‫​ اﺳﺘﺨﺪام طﺮﯾﻘﺔ اﻛﺘﺸﺎف اﻟﻘﻔﺎل اﻟﻤﺘﺒﺎدل ھﻮ اﻟﺤﻞ‬ ‫ً ﻧﺴﻌﻌﻌﻌﻌﻌﺒﯿﺎ ﯾﻜﻮن‬ ‫ﻗﻮاﻋﻌﻌﻌﻌﻌﻌﺪ اﻟﻤﻌﻄﯿﺎت‪ ،‬ﻓﺈذا ﻛﺎن اﺣﺘﻤﺎل ﺣﺪوث إﻗﻔﺎل ﻣﺘﺒﺎدل ﻗﻠﯿﻞ‬
‫​ ﺣﺎﻟﺔ ﻧﻈﺎم ﺑﻄﯿﻊء اﻟﺴﻌﺘﺠﺎﺑﺔ ﻓﺈن‬ ‫ٍﺬ ﺳﺘﻜﻮن طﺮﯾﻘﺔ ﻣﻨﻊ ﺣﺼﻮل اﻟﻘﻔﺎل اﻟﻤﺘﺒﺎدل ھﻲ اﻟﻨﺴﺐ‪ ،‬وﻓﻲ‬ ‫​ ﻛﺒﯿﺮا ﻧﺴﺒﯿﺎ ﻓﻌﻨﺪﺋ‬
‫اﻟﻨﺴﺐ‪ ،‬أﻣﺎ إذا ﻛﺎن اﻟﺤﺘﻤﺎل‬
‫​ ﯾﻌﺘﻤﻌﺪ ﻣﻔﮭﻮم‬ ‫​‪:Protocols‬‬ ‫​‪ .٥‬ﺑﺮوﺗﻮﻛﻮﻟﺖ اﻟﺨﺘﺎم اﻟﺰﻣﻨﯿﺔ ‪Timestamp-Based‬‬
‫​‬ ‫ً‪.‬‬
‫​‬ ‫​ ﺗﻔﻀﯿﻞ‬ ‫طﺮﯾﻘﻌﺔ ﺗﺠﻨﻌﺐ اﻟﻘﻔﺎل اﻟﻤﺘﺒﺎدل ﺳﻌﺘﻜﻮن اﻟﻜﺜﻌﺮ‬
‫​ ﺗﺘﻤﯿﺰ أﺧﺘﺎم اﻟﺰﻣﻦ ﺑﺨﺎﺻﺘﯿﻦ أﺳﺎﺳﯿﺘﯿﻦ‬ ‫​ ﺑﺄﺳﻠﻮب آﺧﺮ‪ -‬ﺑﺨﺘﻤﮭﺎ زﻣﻨﯿﺎ‪.‬‬ ‫ّف وﺣﯿﻌﺪ ﺧﺎص ﺑﮭﻌﺎ‪- ،‬أو‬ ‫اﻟﺨﺘﻌﻢ ﺑﺎﻟﺰﻣﻌﻦ ﻋﻠﻰ رﺑﻌﻂ ﻛﻌﻞ اﻟﻤﻨﺎﻗﻠﺔ ﺑﻤﻌﺮ‬
‫​ اﻟﻤﻨﺎﻗﻠﺔ‬
‫​ أي أن ﻗﯿﻤﻌﺔ ﺧﺘﻌﻢ اﻟﺰﻣﻌﻦ ﺗﺰداد ﺑﺎﺳﻌﺘﻤﺮار‪ .‬وﺗﻤﻠﻚ اﻟﻌﻤﻠﯿﺎت اﻟﺘﻌﻲ ﺗﻨﺘﻤﻌﻲ إﻟﻰ ﻧﻔﻌﺲ‬ ‫ھﻤﺎ اﻟﻮﺣﺪاﻧﯿﺔ‪ ،‬أي ﻋﺪم اﻟﺘﻜﺮار‪ ،‬واﻟﺘﺰاﯾﺪﯾﺔ‪،‬‬
‫​‪22‬‬ ‫​ﻧﻔﻌﺲ اﻟﺨﺘﻌﻢ اﻟﺰﻣﻨﻌﻲ‪ ،‬ﻓﺈذا ﻣﻌﺎ ﺗﻀﺎرﺑﻌﺖ ﻣﻨﺎﻗﻠﺘﺎن ﻣﻌﻊ ﺑﻌﻀﮭﻤﻌﺎ‪ ،‬ﯾﻘﻮم ﻧﻈﺎم‬
‫​‬
‫‪23.‬‬ ‫ّﺪھﺎ ﻣﻦ ‪23.‬‬ ‫​ ﺛﻢ ﯾﺴﻨﺪ إﻟﯿﮭﺎ ﺧﺘﻤﺎ زﻣﻨﯿﺎ ﺟﺪﯾﺪا وﯾﻌ‬ ‫إدارة ﻗﻮاﻋﻌﺪ اﻟﻤﻌﻄﯿﺎت ﺑﺎﺧﺘﯿﺎر اﻟﻀﺤﯿﻌﺔ ﻟﯿﺘﺮاﺟﻌﻊ ﻋﻌﻦ ﻛﺎﻓﻌﺔ اﻟﺘﻐﯿﺮات اﻟﺘﻌﻲ ﻗﺎﻣﻌﺖ ﺑﮭﻌﺎ‬
‫​ ﺑﺄﻣﺮﯾﻌﻦ أﺳﻌﺎﺳﯿﯿﻦ‬ ‫​ع‬‫​ ﻋﻊ‬ ‫​ع‬ ‫​ع‬ ‫​ع‬ ‫​ ﺗﺘﺠﻠﻰ ﻣﺲ ﻋﺎوئ طﺮاﺋﻖ اﻟﺨﺘﺎم اﻟﺰﻣﻨﻲ ﻋﺔ ف ﻋﻲ اﻟﺘﺤﻚ ﻋﻢ ﺑﺎﻟﺘﻨﻔﻲ ﻋﺬ اﻟﻤﺘﺰام ﻋﻦ ﻟﻠﻤﻨﺎﻗﻠﺖ‬ ‫ﺟﺪﯾﺪ ﻟﻠﺘﻨﻔﯿﺬ‪.‬‬
‫​ ﺗﺤﺘﺎﺟﮭﻐﺎ‪ ،‬ذﻟﻚ ﻟﻦ ﻛﻌﻞ ﺣﻘﻌﻞ ﻓﻌﻲ ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت ﺳﻌﯿﺘﻄﻠﺐ ﺣﻘﻠﻲ أﺧﺘﺎم زﻣﻨﯿﻌﺔ‬
‫​‬ ‫ھﻤﻌﺎ اﻟﻌﺒﻎء اﻟﻤﺘﻮﻟﺪ ﻋﻨﮭﻐﺎ واﻟﺬاﻛﺮة اﻟﻀﺎﻓﯿﻐﺔ اﻟﺘﻐﻲ‬
‫​ ﻧﻈﺎم‬‫​‪ .١‬ﺗﻌﺮﯾﻒ‪:‬‬ ‫​‪.4‬ﻧﻈﺎم اﻟﺘﻌﺎﻓﻲ ‪:Recovery System‬‬
‫​‬ ‫إﺿﺎﻓﯿﯿﻦ أﺣﺪھﻤﺎ ﻟﺘﺨﺰﯾﻦ آﺧﺮ زﻣﻦ ﻗﺮاءة واﻟﺨﺮ ﻟﺘﺨﺰﯾﻦ آﺧﺮ زﻣﻦ ﺗﻌﺪﯾﻞ‪.‬‬
‫​‬
‫​ﻟﮭﺎ ﻗﺒﻞ ﺣﺼﻮل‬ ‫​ إﻟﻰ آﺧﺮ ﺣﺎﻟﺔ ﻣﺘﺴﻘﺔ ‪consistent state‬‬ ‫​ھﻌﻌﻮ اﻟﻨﻈﺎم اﻟﻘﺎدر ﻋﻠﻰ إﻋﺎدة ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬ ‫اﻟﺘﻌﺎﻓﻌﻌﻲ ‪Recovery System‬‬
‫​ اﻟﻤﻌﻄﯿﺎت ﻓﻲ اﻟﺤﺎﻟﺖ اﻟﺘﻲ ﯾﻤﻜﻦ‬ ‫​ﻟﺴﻌﺘﺮداد‬ ‫​ ﯾﺴﻌﺘﻄﯿﻊ ﻧﻈﺎم اﻟﺘﻌﺎﻓﻌﻲ ﺗﺤﻘﯿﻌﻖ ذﻟﻚ ﺑﺎﺳﻌﺘﺨﺪام ﻧﺴﻌﺦ اﺣﺘﯿﺎطﯿﻌﺔ ‪Backup‬‬ ‫​ﻓﯿﮭﺎ‪.‬‬ ‫اﻟﺨﻄﺄ ‪Failure‬‬
‫​ ھﻌﻲ ﺗﻠﻚ اﻟﺨﻄﺎء اﻟﻤﺘﻮﻟﺪة ﻋﻌﻦ‬ ‫​ أﺧﻄﺎء ﺑﺮﻣﺠﯿﺔ ‪:Software‬‬ ‫​‪ .٢‬ﺗﺼﻨﯿﻒ اﻟﺨﻄﺎء ‪:Failure classification‬‬ ‫أن ﺗﺤﺼﻞ ﻓﯿﮭﺎ ﻣﺸﺎﻛﻞ أو أﺧﻄﺎء‪.‬‬
‫​‬
‫​ ﻛﺎﻟﺨﻄﺎء‬ ‫​ أﺧﻄﺎء ﻋﺘﺎدﯾﺔ ‪:Hardware‬‬ ‫​ اﻟﻤﻌﻄﯿﺎت أو اﻟﺘﻄﺒﯿﻘﺎت اﻟﺨﺮى أو اﻟﻔﯿﺮوﺳﺎت‪.‬‬ ‫اﻟﺒﺮاﻣﻌﺞ‪ ،‬ﻛﺄﻧﻈﻤﻌﺔ اﻟﺘﺸﻐﯿﻌﻞ أو أﻧﻈﻤﻌﺔ إدارة ﻗﻮاﻋﻌﺪ‬
‫​ اﻟﺨﻄﺎء واﻟﺴﻐﻐﺘﺜﻨﺎءات اﻟﻨﺎﺗﺠﻐﻐﺔ ﻋﻐﻐﻦ اﻟﺘﻄﻐﻐﺒﯿﻘﺎت ‪Programming‬‬
‫​‬ ‫اﻟﻤﺘﻮﻟﺪة ﻋﻦ اﻟﺬاﻛﺮة أو ﻓﺸﻞ اﻟﻘﺮص اﻟﺼﻠﺐ أو ﺑﻌﺾ ﻗﻄﺎﻋﺎﺗﮫ ‪...‬اﻟﺦ‪.‬‬
‫​‪32‬‬ ‫ً؛‬
‫​‬ ‫​ ﻋﻠﻰ ﺻﻔﺮ ﻣﺜﻞ‬ ‫​ ﻛﺎﻟﺨﻄﺎء اﻟﻨﺎﺗﺠﻌﺔ ﻋﻌﻦ ﺳﻌﻮء اﻟﺴﻌﺘﺨﺪام ﻣﻌﻦ ﻗﺒﻌﻞ اﻟﻤﺴﻌﺘﺨﺪﻣﯿﻦ‪ ،‬ﻛﻤﺸﻜﻠﺔ اﻟﻘﺴﻌﻤﺔ‬ ‫​‪:Exemption‬‬ ‫​‬
‫‪24.‬‬ ‫​ ﻛﺎﻟﻔﯿﻀﺎﻧﺎت أو اﻟﺤﺮاﺋﻖ أو اﻟﺰﻟﺰل أو ‪24.‬‬ ‫​ أﺧﻄﺎء ﺧﺎرﺟﯿﺔ ‪:External‬‬ ‫​ ﻣﺜﻞ ﺣﺎﻟﺖ اﻟﻘﻔﺎل اﻟﻤﺘﺒﺎدل‪.‬‬ ‫أﺧﻄﺎء ﻧﺎﺟﻤﺔ ﻋﻦ اﻟﻤﻨﺎﻗﻠﺖ ‪:Transaction‬‬
‫​ •ﻧﺴﺦ ﻛﺎﻣﻞ ﻟﻘﺎﻋﺪة‬ ‫ّﺪة ﻣﺴﺘﻮﯾﺎت وھﻲ‪:‬‬ ‫​ ﯾﻤﻜﻦ أن ﯾﺘﻢ ﻧﺴﺦ اﻟﻤﻌﻄﯿﺎت ﻋﻠﻰ ﻋ‬ ‫​‪ .٣‬ﻣﺴﺘﻮﯾﺎت اﻟﻨﺴﺦ اﻟﺤﺘﯿﺎطﻲ ‪:Backup‬‬ ‫اﻟﺴﺮﻗﺎت وﻏﯿﺮھﺎ‪.‬‬
‫​‬
‫​ ﺗﺤﺪﯾﺚ‬ ‫​ •ﻧﺴﻌﺦ اﻟﺘﻐﯿﺮات ﻓﻘﻌﻂ ‪ ،Differential backup of the database‬أي ﯾﺘﻌﻢ‬ ‫اﻟﻤﻌﻄﯿﺎت ﻛﻜﻞ ‪.Full backup of the database‬‬
‫​ ﯾﻨﺒﻐﻲ اﻟﺤﺘﻔﺎظ ﺑﺎﻟﻨﺴﺦ‬ ‫​ •ﺣﻔﻆ ﺳﺠﻞ اﻟﻤﻨﺎﻗﻠﺖ ‪.Backup of the transaction log only‬‬ ‫آﺧﺮ ﻧﺴﺨﺔ اﺣﺘﯿﺎطﯿﺔ ﺑﺎﻟﻤﻌﻄﯿﺎت اﻟﺠﺪﯾﺪة اﻟﻤﺘﻐﯿﺮة‪.‬‬
‫​‪ .٤‬إدارة‬ ‫​ ﺗﺄﻣﯿﻨﮭﺎ ﻣﻦ اﻟﺨﻄﺎر اﻟﻤﺨﺘﻠﻔﺔ ﻛﺎﻟﺤﺮاﺋﻖ أو اﻟﺴﺮﻗﺎت أو اﻟﻔﯿﻀﺎﻧﺎت‪ ...‬اﻟﺦ‪.‬‬
‫​‬ ‫اﻟﺤﺘﯿﺎطﯿﺔ ﻓﻲ ﻣﻜﺎن آﻣﻦ‪ ،‬ﻏﺎﻟﺒﺎ ﻓﻲ ﻣﺒﻨﻰ آﺧﺮ‪ ،‬ﻛﻤﺎ ﯾﻨﺒﻐﻲ‬
‫​ ﯾﻌﺘﻤﻌﺪ ھﺬا اﻟﺒﺮوﺗﻮﻛﻮل‬ ‫ًل‪:‬‬‫​ ﺑﺮوﺗﻮﻛﻮل ﻛﺘﺎﺑﺔ ﺳﺠﻞ اﻟﻤﻨﺎﻗﻠﺖ أو‬ ‫​‪ ١.٤‬أﻧﻮاع اﻟﺴﺘﺮاﺗﯿﺠﯿﺎت اﻟﻤﺘﺒﻌﺔ ﻓﻲ إدارة ﺗﻌﺎﻓﻲ اﻟﻤﻨﺎﻗﻠﺖ‪:‬‬ ‫اﻟﺘﻌﺎﻓﻲ ﻓﻲ اﻟﻤﻨﺎﻗﻠﺖ‪:‬‬
‫​‬
‫​ﻗﺒﻌﻞ أن ﯾﺘﻌﻢ ﺗﺨﺰﯾﻌﻦ ﺗﻠﻚ‬ ‫​ اﻟﻤﻨﺎﻗﻠﺖ‪ -‬ﻓﻌﻲ ﺳﻌﺠﻞ اﻟﻤﻨﺎﻗﻠﺖ ‪Log records‬‬ ‫ﻋﻠﻰ اﺳﻌﺘﺮاﺗﯿﺠﯿﺔ اﻟﺘﺄﻛﻌﺪ ﻣﻌﻦ ﺗﺨﺰﯾﻌﻦ اﻟﺘﻐﯿﺮات ‪-‬اﻟﺘﻌﻲ ﺗﻘﻮم ﺑﮭﻌﺎ‬
‫​ ﺳﺠﻠﺖ ﻣﻨﺎﻗﻠﺖ ﻣﻜﺮرة‬ ‫​ اﻟﻤﻌﻄﯿﺎت‪.‬‬ ‫ّﻌﻌﺴﻘﺔ ﻓﻌﻌﻲ ﻗﺎﻋﺪة‬ ‫​ ﻓﻌﻠﯿﺎ‪ ،‬ﻣﻤﻌﻌﺎ ﯾﻀﻤﻌﻌﻦ إﻣﻜﺎﻧﯿﻌﻌﺔ اﻟﺘﺮاﺟﻌﻌﻊ ﻋﻌﻌﻦ اﻟﺨﻄﺎء إﻟﻰ ﺣﺎﻟﺔ ﻣﺘ‬ ‫اﻟﺘﻐﯿﺮات‬
‫​‪42‬‬ ‫​‪:Multiplexing Log‬‬
‫​‬
‫‪25.‬‬ ‫ّﺪة ﻧﺴﺦ ﻣﻦ ﺳﺠﻞ اﻟﻤﻨﺎﻗﻠﺖ ﺗﺤﺴﺒﺎ ﻟﻠﻤﺸﺎﻛﻞ اﻟﺘﻲ ﯾﻤﻜﻦ أن ‪25.‬‬ ‫​ ﺗﺄﻣﯿﻦ ﻋ‬‫وھﻮ أﺳﻠﻮب ﺗﺘﺒﻌﮫ اﻟﻌﺪﯾﺪ ﻣﻦ أﻧﻈﻤﺔ إدارة ﻗﻮاﻋﺪ اﻟﻤﻌﻄﯿﺎت وذﻟﻚ ﻣﻦ ﺧﻠﻞ‬
‫​ ﺗﺴﻌﻌﺘﺨﺪم ﻣﻌﻈﻌﻌﻢ أﻧﻈﻤﻌﻌﺔ إدارة ﻗﻮاﻋﻌﻌﺪ اﻟﻤﻌﻄﯿﺎت ﺧﺎزﻧﺎت‬ ‫​ ﺧﺎزﻧﺎت ﻗﻮاﻋﺪ اﻟﻤﻌﻄﯿﺎت ‪:Memory Buffers‬‬ ‫​ اﻟﻘﺮص اﻟﺼﻠﺐ‪.‬‬ ‫ﺗﺤﺼﻞ ﻋﻠﻰ‬
‫​ اﻟﻤﻨﺎﻗﻠﺖ ﺑﺈﺟﺮاء اﻟﺘﻌﺪﯾﻠﺖ ﻋﻠﻰ‬ ‫​ ﺗﺤﺘﻮي اﻟﻤﻌﻄﯿﺎت اﻟﺘﻌﻲ ﯾﺘﻌﻢ ﺗﻐﯿﯿﺮھﻌﺎ أو ﺗﻌﺪﯾﻠﮭﻌﺎ ﻣﻌﻦ ﻗﺒﻌﻞ اﻟﻤﻨﺎﻗﻠﺖ ﺑﺤﯿﻌﺚ ﺗﻘﻮم ﺗﻠﻚ‬ ‫ﻓﻌﻌﻲ اﻟﺬاﻛﺮة اﻟﺮﺋﯿﺴﻌﻌﯿﺔ‬
‫​ اﻟﺘﻌﺎﻣﻌﻞ ﻣﻌﻊ اﻟﺬاﻛﺮة اﻟﺮﺋﯿﺴﻌﯿﺔ أﺳﻌﺮع ﺑﻜﺜﯿﻌﺮ ﻣﻨﻌﮫ ﻓﻌﻲ اﻟﻘﺮص اﻟﺼﻌﻠﺐ‪ -‬ﺑﻌﻌﺪ ذﻟﻚ ﯾﺘﻌﻢ‬
‫​‬ ‫اﻟﻤﻌﻄﯿﺎت وﺗﺨﺰﯾﻨﮭﻌﺎ ﻓﻌﻲ ﺗﻠﻚ اﻟﺨﺎزﻧﺎت ‪-‬وذﻟﻚ ﻟﻦ‬
‫​ وھﻌﻲ اﻟﻌﻤﻠﯿﻌﺔ اﻟﺘﻌﻲ ﯾﻘﻮم ﻣﻌﻦ ﺧﻠﻠﮭﻌﺎ‬ ‫​ ﻧﻘﺎط اﻟﺨﺘﺒﺎر ‪:Checkpoints‬‬ ‫ﻧﺴﺦ ﺗﻠﻚ اﻟﻤﻌﻄﯿﺎت إﻟﻰ اﻟﻘﺮص اﻟﺼﻠﺐ‪ ،‬ﻣﻤﺎ ﯾﺴﺎھﻢ ﻓﻲ ﺗﺤﺴﯿﻦ اﻟﺪاء‪.‬‬
‫​ ﺑﺈﯾﻘﺎف‬‫​إﻟﻰ اﻟﻘﺮص اﻟﺼﻌﻠﺐ‪ ،‬ﺑﺤﯿﻌﺚ ﯾﻘﻮم ﻧﻈﺎم إدارة ﻗﻮاﻋﻌﺪ اﻟﻤﻌﻄﯿﺎت‬ ‫​ اﻟﻤﻌﻄﯿﺎت ‪buffers‬‬ ‫ﻧﻈﺎم إدارة ﻗﻮاﻋﻌﺪ اﻟﻤﻌﻄﯿﺎت ﺑﻜﺘﺎﺑﻌﺔ ﺧﺎزﻧﺎت‬
‫​‪ ٢.٤‬إﺟﺮاﺋﯿﺎت اﻟﺘﻌﺎﻓﻲ‬ ‫​ ﺗﺨﺰﯾﻦ ھﺬا اﻟﺠﺮاء ﻓﻲ ﺳﺠﻞ اﻟﻤﻨﺎﻗﻠﺖ‪.‬‬
‫​‬ ‫ﻛﺎﻓﻌﺔ اﻟﻤﻨﺎﻗﻠﺖ رﯾﺜﻤﻌﺎ ﯾﻨﺘﮭﻌﻲ ﻣﻌﻦ إﺟﺮاء ﻛﺘﺎﺑﻌﺔ ﻧﻘﻄﻌﺔ اﻟﺨﺘﺒﺎر‪ .‬ﻛﻤﺎ وﯾﺘﻌﻢ أﯾﻀﺎ‬
‫​ ھﻌﻲ ﻋﺒﺎرة ﻋﻌﻦ إﺟﺮاﺋﯿﻌﺔ ﻟﻠﺘﻌﺎﻓﻌﻲ ﺗﻌﺘﻤﻌﺪ ﻋﻠﻰ‬ ‫​ اﻟﻜﺘﺎﺑﺔ اﻟﻤﺆﺟﻠﺔ أو اﻟﺘﻌﺪﯾﻞ اﻟﻤﺆﺟﻞ ‪:Deferred Modification‬‬ ‫‪:Recovery Procedures‬‬
‫​ اﻟﻤﻨﺎﻗﻠﺔ ﻓﻲ اﻟﺬاﻛﺮة‬
‫​ (اﻟﻔﯿﺰﯾﺎﺋﯿﻌﺔ) ﺑﺸﻜﻌﻞ ﻣﺒﺎﺷﻌﺮ أﺛﻨﺎء ﺗﻨﻔﯿﻌﺬ اﻟﻤﻨﺎﻗﻠﺖ‪ ،‬ﺑﺤﯿﻌﺚ ﯾﺘﻌﻢ ﺗﺴﻌﺠﯿﻞ ﺟﻤﯿﻌﻊ ﺗﻌﺪﯾﻠﺖ‬ ‫ﻓﻜﺮة ﻋﺪم ﺗﻌﺪﯾﻌﻞ ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت‬
‫​ ﻧﻌﻌﺒﯿﻦ ﻓﯿﻤﻌﻌﺎ ﯾﻠﻲ ﺳﻌﻌﺮدا ﻟﺨﻄﻮات اﺳﻌﻌﺘﺮﺟﺎع اﻟﻤﻌﻄﯿﺎت (اﻟﺘﻌﺎﻓﻌﻌﻲ) ﻓﻌﻌﻲ ﻧﻈﺎم إدارة‬
‫​‬ ‫وﺗﺄﺟﯿﻞ ﺟﻤﯿﻊ ﻋﻤﻠﯿﺎت اﻟﻜﺘﺎﺑﺔ ﺣﺘﻰ ﻧﮭﺎﯾﺔ اﻟﻤﻨﺎﻗﻠﺔ‪.‬‬
‫ّﻋﻌﻌﻔﺔ ﻓﻌﻌﻌﻲ‬ ‫​ﻣﻌﺮ‬ ‫​‪.1‬اﻟﺘﻌﺮف ﻋﻠﻰ آﺧﻌﻌﻌﺮ ﻧﻘﻄﻌﻌﻌﺔ اﺧﺘﺒﺎر ‪checkpoint‬‬ ‫ﻗﻮاﻋﺪ اﻟﻤﻌﻄﯿﺎت ﯾﺴﺘﺨﺪم اﻟﻜﺘﺎﺑﺔ اﻟﻤﺆﺟﻠﺔ أو اﻟﺘﻌﺪﯾﻞ اﻟﻤﺆﺟﻞ‪:‬‬
‫​‬
‫​ وذﻟﻚ ﻟﻦ اﻟﻤﻌﻄﯿﺎت اﻟﺘﻲ ﻏﯿﺮﺗﮭﺎ ﻗﺪ ﺗﻢ ﺗﺨﺰﯾﻨﮭﺎ‬ ‫​ﻗﺒﻞ ﻧﻘﻄﺔ اﻟﺨﺘﺒﺎر‪،‬‬‫​‪.2‬إھﻤﺎل ﻛﺎﻓﺔ اﻟﻤﻨﺎﻗﻠﺖ اﻟﺘﻲ ﺗﻢ ﺗﺄﻛﯿﺪھﺎ ‪committed‬‬ ‫​ اﻟﻤﻨﺎﻗﻠﺖ‪.‬‬
‫​‬ ‫ﺳﻌﻌﻌﺠﻞ‬
‫​‪52‬‬ ‫​ﺑﺎﻟﺘﺄﻛﯿﺪ‪.‬‬
‫​‬
‫​‪.4‬إھﻤﺎل ﻛﺎف ﻋﺔ اﻟﻤﻨﺎﻗﻠﺖ ﻏﻲ ﻋﺮ ‪26. 26.‬‬ ‫​ اﻟﻘﺪم إﻟﻰ اﻟﺤﺪث‪.‬‬
‫​‬ ‫​‪.3‬إﻋﺎدة ﺗﻨﻔﯿﻌﺬ ﻛﺎﻓﻌﺔ اﻟﻤﻨﺎﻗﻠﺖ اﻟﻤﺆﻛﺪة واﻟﺘﻌﻲ ﺗﻤﻌﺖ ﺑﻌﻌﺪ ﻧﻘﻄﻌﺔ اﻟﺨﺘﺒﺎر ﻣﻌﻦ‬
‫​واﻟﺘﻌﻲ ﺗﻤﻌﺖ أو ﯾﺘﻌﻢ ﺗﻨﻔﯿﺬھﻌﺎ ﺑﻌﻌﺪ ﻧﻘﻄﻌﺔ اﻟﺨﺘﺒﺎر‪ ،‬ﻟﻨﻌﮫ ﻣﻌﻦ‬
‫​‬ ‫​‪rolled back‬‬ ‫​ع‬
‫​‬ ‫​ع‬ ‫​ع‬ ‫​ع‬‫​أو اﻟﻤﺘﺮاج ﻋﻊ ﻋﻨﮫ ﻋﺎ‬ ‫اﻟﻤﺆﻛﺪة ‪uncommitted‬‬
‫​ ھﻌﻌﻲ ﻋﺒﺎرة‬ ‫​ اﻟﻜﺘﺎﺑﺔ اﻟﻤﺒﺎﺷﺮة أو اﻟﺘﻌﺪﯾﻞ اﻟﻤﺒﺎﺷﺮ ‪:Immediate Modification‬‬ ‫اﻟﻤﺆﻛﺪ ﺑﺄﻧﮫ ﻟﻢ ﯾﺘﻢ ﺗﺨﺰﯾﻦ ﺗﻐﯿﯿﺮاﺗﮭﺎ ﻓﻲ ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت‪.‬‬
‫​ ﻧﻌﻌﺒﯿﻦ ﻓﯿﻤﻌﻌﺎ ﯾﻠﻲ‬ ‫​ (اﻟﻔﯿﺰﯾﺎﺋﯿﺔ) ﺑﺸﻜﻞ ﻣﺒﺎﺷﺮ أﺛﻨﺎء ﺗﻨﻔﯿﺬ اﻟﻤﻨﺎﻗﻠﺖ‪.‬‬
‫ﻋﻌﻌﻦ إﺟﺮاﺋﯿﻌﻌﺔ ﻟﻠﺘﻌﺎﻓﻌﻌﻲ ﺗﻌﺘﻤﻌﻌﺪ ﻋﻠﻰ ﻓﻜﺮة ﺗﻌﺪﯾﻌﻌﻞ ﻗﺎﻋﺪة اﻟﻤﻌﻄﯿﺎت‬
‫​ ﻗﻮاﻋﺪ اﻟﻤﻌﻄﯿﺎت ﯾﺴﺘﺨﺪم اﻟﻜﺘﺎﺑﺔ اﻟﻤﺒﺎﺷﺮة أو اﻟﺘﻌﺪﯾﻞ اﻟﻤﺒﺎﺷﺮ‪:‬‬
‫​‬ ‫ﺳﻌﻌﺮدا ﻟﺨﻄﻮات اﺳﻌﻌﺘﺮﺟﺎع اﻟﻤﻌﻄﯿﺎت (اﻟﺘﻌﺎﻓﻌﻌﻲ) ﻓﻌﻌﻲ ﻧﻈﺎم إدارة‬
‫​‪.2‬إھﻤﺎل ﻛﺎﻓﻌﺔ اﻟﻤﻨﺎﻗﻠﺖ اﻟﺘﻌﻲ ﺗﻌﻢ ﺗﺄﻛﯿﺪھﻌﺎ ﻗﺒﻌﻞ‬ ‫​ اﻟﻤﻨﺎﻗﻠﺖ‪.‬‬
‫​‬ ‫ّﻋﻌﻌﻔﺔ ﻓﻌﻌﻌﻲ ﺳﻌﻌﻌﺠﻞ‬ ‫​ﻣﻌﺮ‬ ‫​‪.1‬اﻟﺘﻌﺮف ﻋﻠﻰ آﺧﻌﻌﻌﺮ ﻧﻘﻄﻌﻌﻌﺔ اﺧﺘﺒﺎر ‪checkpoint‬‬
‫​‪.3‬إﻋﺎدة ﺗﻨﻔﯿﻌﺬ ﻛﺎﻓﻌﺔ اﻟﻤﻨﺎﻗﻠﺖ اﻟﻤﺆﻛﺪة واﻟﺘﻌﻲ ﺗﻤﻌﺖ ﺑﻌﻌﺪ ﻧﻘﻄﻌﺔ اﻟﺨﺘﺒﺎر‬ ‫​ اﻟﻤﻌﻄﯿﺎت اﻟﺘﻲ ﻏﯿﺮﺗﮭﺎ ﻗﺪ ﺗﻢ ﺗﺨﺰﯾﻨﮭﺎ ﺑﺎﻟﺘﺄﻛﯿﺪ‪.‬‬
‫​‬ ‫ﻧﻘﻄﻌﺔ اﻟﺨﺘﺒﺎر‪ ،‬وذﻟﻚ ﻟﻦ‬
‫​ ﯾﺘﻌﻢ ﺗﻨﻔﯿﺬھﻌﺎ ﺑﻌﻌﺪ ﻧﻘﻄﻌﺔ اﻟﺨﺘﺒﺎر‪،‬‬ ‫​‪.4‬ﻣﻌﻦ أﺟﻌﻞ ﻛﺎﻓﻌﺔ اﻟﻤﻨﺎﻗﻠﺖ ﻏﯿﻌﺮ اﻟﻤﺆﻛﺪة أو اﻟﻤﺘﺮاﺟﻌﻊ ﻋﻨﮭﻌﺎ واﻟﺘﻌﻲ ﺗﻤﻌﺖ أو‬ ‫​ اﻟﻘﺪم إﻟﻰ اﻟﺤﺪث‪.‬‬
‫​‬ ‫ﻣﻌﻦ‬
‫​ اﻟﺤﺪث إﻟﻰ اﻟﻘﺪم أي ﺑﺘﺮﺗﯿﺐ‬ ‫​ ﺑﺎﺳﺘﺨﺪام اﻟﻘﯿﻢ اﻟﻤﺨﺰﻧﺔ ﻓﻲ ﺳﺠﻞ اﻟﻤﻨﺎﻗﻠﺖ‪ ،‬وﺑﺤﯿﺚ ﯾﺘﻢ اﻟﺘﺮاﺟﻊ ﻣﻦ‬ ‫ﯾﻨﺒﻐﻌﻲ أن ﯾﺘﻌﻢ اﻟﺘﺮاﺟﻌﻊ ﻋﻨﮭﻌﺎ ﺑﺎﻟﻜﺎﻣﻌﻞ‬
‫​‪Concurrency Control and Recovery in:‬‬
‫​‬ ‫​•‬
‫​‬ ‫​‪Article: Concurrency&Transaction&Recovery.doc‬‬
‫​‬ ‫​ اﻟﻤﺮاﺟﻊ‪:‬‬
‫​‬ ‫ﻣﻌﺎﻛﺲ‪.‬‬
‫​•‬
‫​‬ ‫​‪Introduction to Concurrency Control:‬‬
‫​‬ ‫​‪http://research.microsoft.com/pubs/ccontrol/‬‬
‫​‬ ‫​•‬
‫​‬ ‫‪Database Systems‬‬
‫​‬
‫​‪62‬‬ ‫​•‬
‫​‬ ‫​‪Concurrency control and locking:‬‬
‫​‬ ‫​‪http://www.agiledata.org/essays/concurrencyControl.html‬‬
‫​‬ ‫​‬
‫‪27. 27. http://www.service- architecture.com/database/articles/concurrency_control_and_lock ing.html 27‬‬

‫‪Recommended‬‬

‫‪Solving Business Problems‬‬

‫‪Sales Skills Fundamentals‬‬

‫‪Excel 2013 Essential Training‬‬

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


‫‪Fida Kadun‬‬
Business Process
guest800d4

Lecture10 Objectorienteddatabasesystems
guest800d4

Lecture5 Normalization
guest800d4

Lecture2 Datamodeling
guest800d4

Lecture6 Databasedesign
guest800d4

Lecture4 Erd
guest800d4

ENGLISH
English
Français
Español
Português (Brasil)
Deutsch

English
Español
Português
Français
Deutsch

About
Dev & API
Blog
Terms
Privacy
Copyright
Support

LinkedIn Corporation © 2016

Share Clipboard

Email

Enter email addresses


Add a message
From
Send
Email sent successfully..

Facebook
Twitter
LinkedIn
Google+

Link

Public clipboards featuring this slide

No public clipboards found for this slide

×
Save the most important slides with Clipping

Clipping is a handy way to collect and organize the most important slides from a presentation. You
can keep your great finds in clipboards organized around topics.

Start clipping
No thanks. Continue to download.

Select another clipboard

Looks like you’ve clipped this slide to already.

Search for a clipboard

Create a clipboard

You just clipped your first slide!


Clipping is a handy way to collect important slides you want to go back to later. Now customize the name of a
clipboard to store your clips.

Name* Best of Slides


Description Add a brief description so others know what your Clipboard is about.
Visibility
Others can see my Clipboard
Cancel Save
Save this document

You might also like