ايه معناها اذا قاعدة بيانات متوافقة مع ACID؟
Context:في علوم الكمبيوتر، ACID (atomicity, consistency, isolation, durability) هو مجموعة من خصائص معاملات قاعدة البيانات المقصودة لضمان صحة البيانات على الرغم من الأخطاء وفشل الطاقة وغيرها من الحوادث. في سياق قواعد البيانات، بيتقال على تسلسل عمليات قاعدة البيانات اللي بترضي خصائص ACID (واللي ممكن تتصور على إنها عملية منطقية واحدة على البيانات) إنها معاملة. مثلًا، نقل الأموال من حساب بنكي واحد لآخر، حتى لو كان بيحتوي على تغييرات متعددة زي خصم حساب واحد وإيداع حساب تاني، هو معاملة واحدة.  في سنة ١٩٨٣، اخترع أندرياس روتر وتيو هيردر الاختصار ACID، بناءً على عمل جيم جراي اللي قبل كده اللي سمي الذرية والاتساق والمتانة، بس مش العزلة، لما كان بيحدد مفهوم المعاملات. الخصائص الأربع دي هي الضمانات الرئيسية لنموذج المعاملات، واللي أثر على جوانب كتير من تطوير أنظمة قواعد البيانات.  حسب غراي وروتر، نظام إدارة المعلومات لشركة آي بي إم دعم معاملات أكيد في وقت مبكر من سنة 1973 (على الرغم من إن الاختصار اتعمل بعد كده).  الذرية المقالة الرئيسية: Atomicity (أنظمة قواعد البيانات) في الغالب بتتكون المعاملات من بيانات كتير. بتضمن الذرية إن كل معاملة بتتعامل على إنها "وحدة" واحدة، واللي إما تنجح تمامًا أو تفشل تمامًا: إذا فشل أي من البيانات اللي بتشكل معاملة في إكمالها، فستفشل المعاملة كلها وتبقى قاعدة البيانات بدون تغيير. يجب على النظام الذري يضمن الذرية في كل موقف، بما في ذلك انقطاع التيار الكهربائي، الأخطاء، والانهيارات. ضمان الذرية بيمنع تحديثات قاعدة البيانات من الحدوث جزئيًا بس، واللي ممكن يسبب مشاكل أكبر من رفض السلسلة بأكملها. نتيجة كده، مش ممكن يتم ملاحظة المعاملة بتكون جارية من قبل عميل قاعدة بيانات تاني. في لحظة ما، ما حصلش لحد دلوقتي، وفي اللحظة التانية، حصل بالفعل بالكامل (أو ما حصلش حاجة لو تم إلغاء الصفقة في طريقها).  اتساق المقالة الرئيسية: اتساق (أنظمة قواعد البيانات) بتضمن الاتساق إن المعاملة ممكن فقط تجلب قاعدة البيانات من حالة متسقة واحدة إلى أخرى، مع الحفاظ على عدم التغيرات في قاعدة البيانات: أي بيانات مكتوبة في قاعدة البيانات يجب أن تكون صالحة وفقًا لجميع القواعد المحددة، بما في ذلك القيود والسلسلات والمحفزات وأي مزيج منها. ده بيمنع فساد قاعدة البيانات عن طريق معاملة غير قانونية. النزاهة المرجعية بتضمن العلاقة بين المفتاح الأساسي والمفتاح الأجنبي.  العزلة المقالة الرئيسية: عزل (أنظمة قواعد البيانات) في الغالب بيتم تنفيذ المعاملات بشكل متزامن (مثلاً، عدة معاملات بتقرأ وتكتب في جدول في نفس الوقت). بتضمن العزلة إن التنفيذ المتزامن للمعاملات بيخلي قاعدة البيانات في نفس الحالة اللي كانت هتحصل عليها لو تم تنفيذ المعاملات بالتسلسل. العزلة هي الهدف الرئيسي لمراقبة التزامن؛ حسب مستوى العزلة المستخدمة، ممكن تكون آثار المعاملة اللي مش كاملة مش مرئية للمعاملات التانية.  استدامة المقالة الرئيسية: استدامة (أنظمة قواعد البيانات) المتانة بتضمن إنه بعد ما يتم الالتزام بالمعاملة، هيبقى الالتزام فيها حتى في حالة فشل النظام (زي انقطاع الكهرباء أو الانهيار). عادةً بيعني ده إن المعاملات اللي اتعملت (أو تأثيراتها) بتتسجل في الذاكرة اللي مش متطايرة.
ACID هو اختصار لـ Atomicity، Consistency، Isolation، و Durability. الذرية بتعني إن الإجراءات بتتحدث إما بالكامل أو مش بتتحدث إطلاقاً؛ ما فيش كتابة جزئية أو موقف بيتم فيه إنهاء جزء من الإجراء فقط. بالنسبة لقاعدة بيانات، يعني دا إنه لو كانت البيانات مكتوبة في معاملة واحدة، فإن تلك المعاملة إما بتكمل بالكامل أو بتفشل بالكامل من غير أن تترك أي بيانات في حالة جزئية أو فاسدة. التوافق يعني إن المعاملات بتأخذ الحالة من حالة صالحة إلى حالة صالحة أخرى، من غير طريقة للدخول في حالة غير صالحة. العزلة بتعني إن القراءات/الكتابة المتعددة لنفس قاعدة البيانات مش بتتداخل مع بعضها وبتقدر تمضي من غير القلق بشأن آثار عمل تاني بيحصل. المتانة بتعني إن الحالة بتبقى مستمرة من خلال الإخفاقات والإغلاق، مثلًا إن الحالة بتبقى في التخزين الدائم.