لماذا لا تدعم قواعد بيانات NoSQL المعاملات في كثير من الأحيان - وكيف يمكنك حلها
نشرت: 2022-11-21تعتبر المعاملات جزءًا مهمًا من أي نظام قاعدة بيانات ، حيث توفر طريقة لضمان تكامل البيانات واتساقها في مواجهة التحديثات المتزامنة. ومع ذلك ، لا تدعم جميع قواعد البيانات المعاملات. على وجه الخصوص ، لا توفر قواعد بيانات NoSQL في كثير من الأحيان أي طريقة لإجراء المعاملات. يمكن أن يكون هذا مشكلة كبيرة للتطبيقات التي تتطلب دعم المعاملات ، حيث يمكن أن يؤدي إلى تلف البيانات وعدم الاتساق. ومع ذلك ، هناك بعض الحلول التي يمكن استخدامها لتوفير دعم المعاملات لقواعد بيانات NoSQL. في هذه المقالة ، سوف نلقي نظرة على ماهية المعاملات ، ولماذا لا تدعمها قواعد بيانات NoSQL في كثير من الأحيان ، وكيف يمكنك التغلب على هذا القيد.
دلالات المعاملات لحلول NoSQL أخف من تلك الخاصة بقاعدة البيانات العلائقية ، لكنها لا تزال توفر عمليات ذرية على مستوى ما. إذا كنت تعرف كيفية استخدام Node.js أو Ruby / Rack ، فيمكنك إنشاء نموذج صغير بسرعة على Heroku.com. يؤسفني أن أبلغكم أنني لم أقم بتنفيذ هذا بأي شكل من الأشكال. إذا كان سيتم تنفيذ معاملة ، يجب أن تكون قادرة على تحقيق خصائص ACID. تعمل غالبية أدوات NoSQL على تقليل معايير الاتساق في العمليات من أجل تحقيق التسامح مع الخطأ وتوافر النطاق. من الجيد استخدام قواعد بيانات SQL / ACID ، مثل VoltDB ، الموجودة في الذاكرة ، والموجهة نحو الأعمدة ، والموزعة. يمكن استخدام " المعاملات المتفائلة " لإنجاز ذلك ، لكنني أعتقد أنه يجب عليك فهم الضمانات الذرية لتطبيق قاعدة البيانات (على سبيل المثال ، عدد الكلمات التي يجب أن أكتبها وأقرأها في صف واحد) قبل المتابعة.
وفقًا لبعض منتديات المناقشة ، هناك بعض معاملات HBase الجارية على الإنترنت ، إذا كان هذا هو ما تبحث عنه. يوجد بشكل عام نوعان من قواعد بيانات NoSQL: المفتاح / القيمة ومخازن البيانات الموزعة ، وكلاهما يتم تنفيذهما في RDBMS المفضل لديك ويمكن الاحتفاظ بهما بمساعدة DBA الخاص بك وبمرونة NoSQL وأدائها. إذا كان حل NoSQL يتضمن المقارنة والمطابقة ، فيمكنك استخدام المعاملات المتفائلة فوقها.
بالنسبة لقواعد بيانات NoSQL ، كانت هذه المرة مهمة بشكل خاص: كانت المخاطر أعلى ، وقد حان الوقت أخيرًا لتنفيذ المعاملات الموزعة. حتى ذلك الحين ، كانت المعاملات تتم عادةً على خادم واحد ثم يتم نسخها إلى بقية الكتلة بنفس الطريقة كما كان من قبل.
لماذا النص غير جيد للمعاملات؟
لا يتم تنفيذ معاملات ACID بواسطة قواعد بيانات NoSQL. في تطبيقات اليوم ، هذه الخصائص ليست سهلة الاستخدام في المعاملات التي يجب إجراؤها باستخدام NoSQL. البيانات المنظمة غير مدعومة من قبلها ، ولا تستخدم لغة استعلام منظمة.
يسمح استخدام قواعد بيانات NoSQL في التطوير للمطورين بتحقيق نفس المستوى من التزامن دون تحويل الهياكل في الذاكرة إلى هياكل علائقية. علاوة على ذلك ، في حين أنها توفر مستوى عالٍ من أمان البيانات ، فمن الأهمية بمكان أن تقوم مؤسسات تكنولوجيا المعلومات الحديثة بذلك. لا يمكن أتمتة عملية التجزئة ، التي تفصل قواعد البيانات الكبيرة للغاية إلى أجزاء أصغر يمكن إدارتها ، بواسطة كل قاعدة بيانات. عند استخدام قواعد بيانات NoSQL ، يتم تقسيم البيانات عبر عقد متعددة وبالتالي يمكن الوصول إليها بشكل أكثر كفاءة ، مما يؤدي إلى الوصول الانتقائي لمجموعات البيانات الأكبر مع قوة حوسبة أكبر. تتطلب التطبيقات الحديثة ، التي تتطلب مستوى عالٍ من قابلية التوسع والموثوقية والتوافر من قواعد البيانات ، مستوى عالٍ من الموثوقية وقابلية التوسع من قواعد البيانات العلائقية. يمكن التغلب على عيوب NoSQL باستخدام مجموعة متنوعة من الاستراتيجيات لتطبيقات اليوم.
يتطلب اختيار قاعدة بيانات NoSQL المناسبة لاحتياجاتك مجموعة متنوعة من الاعتبارات. تتضمن هذه القائمة عوامل مثل نوع البيانات التي تحتاجها ، ومستوى الموثوقية التي تطلبها ، ومقدار السرعة وقابلية التوسع التي تحتاجها. تعد MongoDB و Cassandra و Redis من أكثر قواعد بيانات NoSQL شيوعًا. كل من قواعد البيانات هذه لديها مجموعة نقاط القوة والضعف الخاصة بها ، لذلك يجب عليك اختيار أفضل واحد لك. لا توجد ضمانات بأن قواعد بيانات NoSQL ستكون الخيار الأفضل لاحتياجاتك. أحد العوائق الأساسية لقواعد بيانات NoSQL هو أنها غير قادرة أصلاً على دعم ميزات الموثوقية الموجودة في قواعد البيانات العلائقية. من بين خصائص الموثوقية ، والذرية ، والاتساق ، والعزلة ، والمتانة كلها مهمة. إذا كنت بحاجة إلى إجراء معاملات ، فإن MongoDB ليست أفضل قاعدة بيانات لك. هناك عدد أقل وأقل من التطبيقات التي تتطلب معاملات ، ولكن بعضها يتطلب معاملات لتحديث مستندات / مجموعات متعددة في هذه الحالة ، يجب تجنب MongoDB لأنه مطلوب من قبل الفريق. من الأهمية بمكان مراعاة عدد من العوامل عند تحديد قاعدة بيانات NoSQL ، بما في ذلك نوع البيانات التي تعمل بها ، ومستوى الموثوقية الذي تطلبه ، وأداء قاعدة البيانات وقابليتها للتوسع. MongoDB و Cassandra و Redis ليست سوى عدد قليل من قواعد بيانات NoSQL المتاحة اليوم.
لماذا لا ينصح Mongodb بالبيانات المالية
لماذا لا ينبغي استخدام MongoDB للبيانات المالية؟
بسبب نقص دعم المعاملات ، لا ينصح باستخدام MongoDB في البيانات المالية. من الأهمية بمكان لموثوقية البيانات والاتساق لإجراء المعاملات. المعاملات مطلوبة لضمان الاتساق أو المزامنة مع قاعدة البيانات ، ولكن لا يتم تنفيذها دائمًا.
حامض المعاملة Nosql
لا تدعم قواعد بيانات NoSQL المعاملات بالطريقة نفسها التي تدعمها قواعد البيانات العلائقية. هذا يعني أنه لا يمكنك الاعتماد على خصائص ACID للمعاملات عند استخدام قاعدة بيانات NoSQL. ومع ذلك ، تدعم بعض قواعد بيانات NoSQL بعض ميزات المعاملات ، مثل العمليات الذرية.
قد تقدم قواعد بيانات Nosql المختلفة مستويات مختلفة من دعم المعاملات.
قد تقدم قواعد بيانات Nosql المختلفة مستويات مختلفة من دعم المعاملات. على سبيل المثال ، قد تقدم بعض قواعد البيانات دعمًا كاملاً للمعاملات ، بينما قد تقدم قواعد أخرى دعمًا محدودًا فقط. يمكن أن يكون هذا عاملاً مهمًا يجب مراعاته عند اختيار قاعدة بيانات Nosql.
يتم نمذجة البيانات من وجهة نظر موجهة للكائنات بدلاً من تخزينها في قاعدة بيانات علائقية حتى يتمكن المطورون من فهم التمييز بين قواعد البيانات القائمة على الكائنات وقواعد البيانات العلائقية بشكل أفضل. تخلصت قواعد البيانات الموجهة للمستندات (على سبيل المثال ، MarkLogic و MongoDB و CouchDB) تمامًا من عدم تطابق المعاوقة هذا. عيب قواعد بيانات NoSQL هو أنها لا توفر مثل هذه القدرات من حيث المرونة وقابلية التوسع. من الناحية العملية ، تتضح أهمية خصائص حمض الهيدروكلوريك من خلال كيفية تطبيقها أو معالجتها من قبل السوق. تعد MarkLogic ، قاعدة بيانات NoSQL ، أحد الأمثلة على قاعدة بيانات NoSQL ، وسننظر في كيفية مساعدتها في المعاملات متعددة العبارات في Java. MarkLogic هي قاعدة بيانات NoSQL موجهة للمستندات. من الممكن إجراء تسلسل للكائنات إلى تنسيق محايد اللغة وذاتي الوصف دون الحاجة إلى المرور عبر التعيينات المعقدة.
في المثال التالي ، يتم استخدام JAXB لتقديم POJO إلى MarkLogic من أجل الثبات. مع خصائص حمض MarkLogic ، يعكس المخزون عملية شراء (في شكل تخفيض المخزون) عند شراء عنصر. تؤدي قاعدة البيانات هذه المهمة باعتبارها عملية الكل أو لا شيء من وجهة نظرها. نظرًا لأن هذه المعاملة عبارة عن معاملة متعددة كشوف الحساب ، يقوم MarkLogic بإنشاء قفل على مستوى المستند عن طريق إجراء عمليات قراءة للمرة الأولى. إذا قمنا بتشغيل البرنامج أعلاه بنجاح ، فسوف نتلقى طلبًا به ثلاثة عناصر بالإضافة إلى تحديثات لعناصر المخزون لتقليل عدد العناصر. عندما يتم تشغيل البرنامج مرة أخرى ، يمكننا فرض استثناء (وإن كان زائفًا إلى حد ما) للمعاملة من خلال الادعاء بعدم وجود مخزون. نتيجة لذلك ، عندما نحبط المعاملة بالكامل في هذه الحالة ، نتلقى الخطأ التالي.
عندما نقرأ كائنًا بقصد تحديثه ، يجب أن نتأكد من أن بعض مؤشرات الترابط الأخرى لا تغير حالتها قبل أن نتمكن من إنهاء العملية. لا يتم تأمين عملية القراءة بشكل ضمني عند إخراجها خارج سياق المعاملة لضمان ذلك. لإكمال المهمة ، يجب أن تعمل باستخدام كائن DocumentDescriptor. نحن نؤمن بالقفل المتفائل لأننا واثقون من أنه عند إجراء تحديث لاحق ، لن يتغير نظام التشغيل الخاص بنا. ليس من غير المألوف حدوث انتهاك للعزل في هذا المبنى ؛ ومع ذلك ، إذا كانت هناك مشكلة ، فيجب التحقيق فيها. ستقوم MarkLogic بتتبع الإصدارات المحدثة وإرسال بريد إلكتروني إلينا في حالة التغلب عليها. هدف خادم MarkLogic هو توفير إمكانات قوية بطريقة يمكن للمطورين استخدامها دون التضحية بأي من ميزاته. لا تتردد في تصفح الموقع للحصول على معلومات إضافية حول هذه المواضيع وغيرها. يرجى الاطلاع على صفحة GitHub للحصول على مثال المعاملة متعددة كشوفات الحساب المستخدم في هذه المقالة.
لماذا تعتبر Mongodb أفضل قاعدة بيانات للمستندات
تعد قواعد بيانات المستندات خيارًا رائعًا للتطبيقات التي تخزن الكثير من البيانات. قاعدة بيانات المستندات الأكثر شيوعًا على هذا الكوكب هي MongoDB.
يعد مخزن القيمة الرئيسية مفيدًا للتطبيقات التي تتطلب تخزين البيانات في نموذج بيانات بسيط. المتاجر ذات القيمة الرئيسية مثل Redis هي من بين أكثر المتاجر شعبية.
تعد قواعد البيانات ذات التوجه العمدي خيارًا ممتازًا إذا كنت تحتاج إلى جداول لتخزين البيانات. MySQL هي قاعدة البيانات الأعمدة الأكثر استخدامًا.
يمكن تخزين البيانات في الرسوم البيانية من خلال استخدام قواعد بيانات الرسم البياني. إنها قاعدة بيانات الرسم البياني الأكثر شيوعًا وواحدة من أكثر قواعد بيانات NoSQL شيوعًا.
معاملات منغودب
في MongoDB ، المعاملة هي وحدة عمل واحدة تتكون من عملية واحدة أو أكثر في قاعدة البيانات. تعتبر المعاملات مفيدة لضمان تكامل البيانات وللتأكد من معالجة البيانات بالترتيب الذي تتوقعه.
يوفر MongoDB نوعين من المعاملات:
1. العمليات الفردية: هذه هي أكثر أنواع المعاملات شيوعًا وتستخدم لتحديث مستند واحد أو إدراجه أو حذفه.
2. المعاملات متعددة المستندات: يمكن لهذه المعاملات تحديث أو إدراج أو حذف مستندات متعددة وهي مفيدة لضمان معالجة البيانات بترتيب معين.
لبدء معاملة ، يمكنك استخدام طريقة db.collection.startTransaction (). تأخذ هذه الطريقة بعض المعلمات التي تتيح لك تحديد الاهتمام بالقراءة وكتابة الاهتمام بالمعاملة. يحدد قلق القراءة كيف يجب أن يقرأ MongoDB البيانات الخاصة بالمعاملة ، ويحدد قلق الكتابة كيف يجب على MongoDB كتابة البيانات للمعاملة.
بمجرد بدء المعاملة ، يمكنك تشغيل أي عملية تقوم بتشغيلها عادةً على قاعدة البيانات. ستكون جميع العمليات التي تقوم بتشغيلها ضمن المعاملة جزءًا من نفس وحدة العمل.
لإجراء معاملة ، يمكنك استخدام طريقة db.collection.commitTransaction (). ستكتب هذه الطريقة جميع التغييرات التي أجريتها في المعاملة إلى قاعدة البيانات.
إذا كنت ترغب في إحباط معاملة ، يمكنك استخدام طريقة db.collection.abortTransaction (). ستعمل هذه الطريقة على التراجع عن جميع التغييرات التي أجريتها في المعاملة.
يشير مصطلح المعاملة إلى مجموعات منطقية من العمليات التي تعالج عملية واحدة أو أكثر في قاعدة بيانات ، مثل قراءة أو كتابة مستندات متعددة. تُستخدم الحركات لإنشاء عملية موحدة من خلال التجميع معًا وعزل عبارات متعددة. يتم استخدام ذرية قاعدة البيانات وعزلها لتحقيق التوافق مع ACID. في MongoDB ، هناك نوعان من واجهات برمجة التطبيقات لمعالجة المعاملات. بالإضافة إلى كونها أول واجهة برمجة تطبيقات (API) ، تحتوي واجهة برمجة التطبيقات الأساسية على بنية مشابهة لتلك الخاصة بقاعدة البيانات العلائقية. الخيار الثاني هو استخدام معالجة معاملات MongoDB. عادة ما تتم كتابة المعاملة وتنفيذها باستخدام إحدى طرق واجهة برمجة التطبيقات المحددة في برنامج تشغيل MongoDB المناسب للغة التطبيق.
يعد إنشاء جلسة في MongoDB الخطوة الأولى نحو إنشاء معاملة. تنقسم طريقة startTransaction () إلى جزأين: readConern و writeConcern. تضمن هذه الخيارات الحفاظ على مزامنة البيانات في حالة الالتزام بأغلبية الالتزام في الوقت الفعلي. إذا كان هناك خطأ ، سيتم إلغاء المعاملة ؛ يرجى الاطلاع على القائمة المرفقة لمزيد من المعلومات. في هذا الصدد ، يمكننا توظيف مؤلفين قيد التشغيل. يتم إدارة المؤلفين بواسطتنا. في هذه الجلسة ، سنعيد النتائج السابقة مع الإضافة الخاصة بنا ، لذا اتصل بـ find () الآن.
يحدد هذا الدليل المعاملات بالإضافة إلى أفضل حالات الاستخدام لها في MongoDB. مررنا خلال عملية جلسة المعاملات في MongoDB من الناحية المفاهيمية أيضًا. إذا كنت تريد معرفة المزيد حول MongoDB و Prisma ، فقد أنشأنا دليل البدء من نقطة الصفر أو كيفية الإضافة إلى دليل مشروع موجود. يتضمن استخدام MongoDB للمعاملات عددًا من أفضل الممارسات. تتم حماية بيانات المعاملات من حالات قاعدة البيانات غير الصالحة بواسطة معاملات متوافقة مع ACID. بمجرد بدء المعاملة ، تأكد من تحسينها لتظل تعمل لمدة 60 ثانية. يجب ألا يتجاوز عدد العمليات 1000 مستند في المعاملة.
ضمانات المعاملات الذرية لـ MongoDB تجعلها خيارًا ممتازًا للتطبيقات التي تتطلب اتساق البيانات وتكامل البيانات. علاوة على ذلك ، تعد المعاملات مكونًا رئيسيًا لمعيار ACID ، وهو أمر ضروري للتطبيقات التي تتطلب الوصول المستمر إلى البيانات.
قوة Mongodb: المعاملات
يمكن تنفيذ المعاملات متعددة الصفحات باستخدام MongoDB ، قاعدة بيانات NoSQL. يمكن استخدام المعاملات للتأكد من أن عمليات القراءة والكتابة المتعددة لوثائق متعددة من مجموعة واحدة أو مجموعات متعددة تكون ذرية. بالإضافة إلى المعاملات ، من الممكن استخدامها لضمان الذرية عبر عمليات ومجموعات وقواعد بيانات ومستندات وشظايا متعددة. حقيقة أن MongoDB دائمًا ما توفر الذرية تجعلها أداة ممتازة للمعاملات . تتعامل MongoDB مع المعاملات بمعدل 250 مليون معاملة في الثانية.
معاملات قاعدة بيانات Oracle Nosql
معاملة Oracle NoSQL Database هي مجموعة من عمليات القراءة والكتابة التي يتم إجراؤها كوحدة واحدة. تكون جميع عمليات الكتابة في المعاملة مرئية لجميع القراءات التي تحدث بعد تنفيذ المعاملة. يمكن أن تمتد المعاملة على عدة مفاتيح وعناصر بيانات.
قواعد بيانات نوصل: متى يتم استخدامها ومتى يجب تجنبها
من ناحية أخرى ، قد تكون قاعدة بيانات NoSQL خيارًا أفضل للمؤسسات التي تحتاج إلى تخزين كميات كبيرة من البيانات غير المهيكلة أو لديها بيانات منظمة أقل. لا تدعم قاعدة بيانات NoSQL دعم المعاملات ، على عكس قاعدة البيانات التقليدية. قد لا يكون هذا هو الخيار الأفضل للأنظمة التي تحتاج إلى حفظ الكثير من البيانات وتبحث عن طريقة متسقة لتخزينها وإدارتها.
قواعد بيانات نوصل
قواعد بيانات Nosql هي قواعد بيانات لا تستخدم بنية قاعدة بيانات SQL التقليدية. بدلاً من ذلك ، يستخدمون بنية أكثر مرونة يمكن تحجيمها بسهولة أكبر لتلبية احتياجات التطبيقات الحديثة.
يتم تخزين البيانات الموجودة في قاعدة بيانات NoSQL في المستندات بدلاً من الجداول. لقد تم تصميمها لتكون مرنة وقابلة للتطوير وقادرة على الاستجابة لاحتياجات العمل الحديثة في غضون دقائق. تعد قواعد بيانات المستندات ومخازن القيمة الرئيسية وقواعد البيانات ذات الأعمدة العريضة وقواعد بيانات الرسم البياني بعض أنواع قواعد بيانات NoSQL المتاحة. تتبنى مؤسسات 2000 العالمية بسرعة قواعد بيانات NoSQL لتشغيل تطبيقاتها ذات المهام الحرجة. الاتجاهات الخمسة المذكورة أعلاه هي من بين أصعب التحديات التقنية التي تواجهها معظم قواعد البيانات العلائقية. نظرًا لنموذج البيانات الثابتة لقواعد البيانات العلائقية ، فإنها تشكل عائقًا رئيسيًا أمام التطوير السريع. تعرف NoSQL نموذج التطبيق على أنه مجموعة فرعية من نموذج البيانات.
نمذجة البيانات باستخدام NoSQL ليست ثابتة. التنسيق الفعلي لتخزين البيانات في قاعدة بيانات موجهة للمستندات هو JSON. علاوة على ذلك ، هذا يلغي استخدام أطر عمل ORM ويبسط تطوير التطبيقات. لغة الاستعلام N1QL التي تم تقديمها حديثًا (تُنطق بالنيكل) هي امتداد قوي لـ SQL و JSON لـ Couchbase Server 4.0. المنتج ليس فقط قادرًا على دعم عبارات SELECT / FROM / WHERE القياسية ، ولكنه يدعم أيضًا التجميع (GROUP BY) والفرز (SORT BY) والصلات (LEFT OUTER / INNER) والمزيد. تتميز قواعد بيانات NoSQL بمستوى عالٍ من الكفاءة التشغيلية وبنية التوسع. أصبح توفر الخدمات مشكلة حيث يتفاعل المزيد من العملاء مع الشركات عبر الإنترنت من خلال تطبيقات الويب والأجهزة المحمولة.
يمكن نشر قواعد بيانات NoSQL وتهيئتها بسهولة. تم تصميمها خصيصًا للقراءة والكتابة والتخزين. وهي تعمل على نطاق واسع ، بما في ذلك إدارة ومراقبة التجمعات ذات الأحجام المختلفة. يتم توزيع قاعدة بيانات NoSQL عبر عدة مراكز بيانات ويمكن نسخها دون الحاجة إلى برامج منفصلة. يمكن استخدامه أيضًا لتمكين التعافي الفوري من الكوارث عبر أجهزة توجيه الأجهزة ، مما يلغي الحاجة إلى انتظار التطبيق لانتظار قاعدة البيانات لاكتشاف مشكلة وإجراء الاسترداد الخاص بها. مع تقدم قواعد بيانات NoSQL ، يمكنك إنشاء تطبيقات الويب والجوال وإنترنت الأشياء التي تعمل على منصات متعددة.
تعد قواعد بيانات NoSQL مفيدة نظرًا لقابليتها للتوسع والنسخ المتماثل والمرونة. على الرغم من أدائهم العالي ، إلا أنهم قادرون على التعامل مع كمية كبيرة من البيانات دون فقدان الأداء. علاوة على ذلك ، فهي مثالية للتطبيقات التي تحتاج إلى تخزين النصوص والصور والبيانات المنظمة بتنسيقات متنوعة.
مزايا قواعد بيانات Nosql
هناك العديد من المزايا لقواعد بيانات NoSQL مقارنة بقواعد البيانات العلائقية التقليدية ، بما في ذلك الأداء الأسرع والمرونة الأكبر. من الممكن تخزين البيانات التي يصعب ملاءمتها مع النموذج العلائقي ، مثل دفق الفيديو أو منشورات الوسائط الاجتماعية. كما أنها أكثر كفاءة عندما يتعلق الأمر باستعلام البيانات لأنها لا تتطلب نفس مستوى المخططات وتخطيط البيانات مثل قواعد البيانات العلائقية.
المعاملات الحمضية
عندما يتعلق الأمر بتحديد خصائص المعاملة ، يتم تعريف اختصار ACID بأربع خصائص رئيسية: الذرية والاتساق والعزلة والمتانة. يمكن تعريف المعاملة في قاعدة البيانات على أنها واحدة مع خصائص ACID هذه ، ويمكن تعريف نظام المعاملات على أنه واحد مع خصائص ACID المطبقة على تخزين البيانات.
تعد مجموعة الخصائص المعروفة باسم ACID (الذرية والاتساق والعزل والمتانة) مكونًا مهمًا في معاملات قاعدة البيانات لأنها مجموعة الخصائص التي يجب الحفاظ عليها حتى في حالة حدوث أخطاء أو انقطاع في الطاقة وما إلى ذلك. المعاملات هي عنصر أساسي لتغييرات قاعدة البيانات. عند تطوير التطبيقات الموزعة ، من الأهمية بمكان فهم معاملات ACID. يستخدم DBMS طريقتين للذرية. قبل تطبيق أي تغييرات ، تتم كتابة ملف السجل على الخادم. في المقابل ، يفترض الأسلوب الثاني أن قاعدة البيانات مقسمة إلى كتل ذات طول ثابت تُعرف بالصفحات. أثناء إجراء المعاملة ، توجد نسختان من الصفحة - الصفحة الحالية وصفحة الظل.
يتم تنفيذ المعاملات بترتيب تسلسلي في خاصية العزل لتجنب مخاطر الحالات غير المتسقة. يتم خداع العملاء بواسطة أنظمة DBMS من خلال الوهم بأن المعاملات تتم على أساس مستمر ، مما يسمح لهم بالتفكير بشأن الحالة في نهاية المعاملة. قد يجد العملاء أنه من الأسهل انتظار المعاملات ذات الفترات الطويلة لأن البعض قد يستغرق وقتًا طويلاً. يسمح نظام DBMS للمعاملات بالتداخل فقط عند تنفيذ سلسلة من المعاملات في نفس الوقت ، مما ينتج عنه جداول تم إنشاؤها بواسطة المعاملة. يتم تنفيذ العملية على نفس عنصر البيانات من خلال معاملات متعددة ، أحدها عبارة عن عملية كتابة. يصف قسم الذرية بعض الأساليب الأكثر شيوعًا لتحقيق الذرية والمتانة.
أهمية الامتثال للأحماض
لكي تعمل معاملات قاعدة البيانات بسلاسة وموثوقية ، يجب أن تنجح دائمًا أو تفشل بطرق يمكن التنبؤ بها ويمكن الاعتماد عليها. ACID هو مصطلح يستخدم لوصف الخصائص الأربعة الأساسية والأكثر أهمية للمعاملة: الذرية والاتساق والعزلة والمتانة. يُقال إن المعاملات التي تفي بهذه المتطلبات متوافقة مع حامض ACID.