ما المقصود بتقسيم قاعدة البيانات؟

تقسيم قاعدة البيانات عبارة عن عملية تخزين قاعدة بيانات كبيرة على أجهزة متعددة. يمكن لجهاز واحد، أو خادم قاعدة بيانات واحد، تخزين كمية محدودة فقط من البيانات ومعالجتها. تقسيم قاعدة البيانات يتغلب على هذا القيد عن طريق تقسيم البيانات إلى أجزاءٍ أصغر، تسمى "أجزاء من البيانات"، وتخزينها عبر العديد من خوادم قواعد البيانات. وعادةً ما تحتوي جميع خوادم قواعد البيانات على نفس التقنيات الأساسية، وتعمل معًا لتخزين كميات كبيرة من البيانات ومعالجتها.

لماذا تعتبر عملية تقسيم قاعدة البيانات مهمة؟

مع نمو التطبيق، يزداد عدد مستخدمي التطبيق وكمية البيانات التي يخزنها بمرور الوقت. تصبح قاعدة البيانات عنق الزجاجة إذا أصبح حجم البيانات كبيرًا جدًا وحاول عدد كبير جدًا من المستخدمين استخدام التطبيق لقراءة المعلومات أو حفظها في وقت واحد. يبطئ التطبيق ويؤثر على تجربة العملاء. تعد عملية تقسيم قاعدة البيانات إحدى الطرق لحل هذه المشكلة لأنها تتيح المعالجة المتوازية لمجموعات البيانات الأصغر عبر الأجزاء.

ما هي فوائد تقسيم قاعدة البيانات؟

تستخدم المؤسسات مشاركة قاعدة البيانات للحصول على الفوائد التالية:

تحسين وقت الاستجابة

يستغرق استرداد البيانات وقتًا أطول في قاعدة بيانات واحدة كبيرة. يحتاج نظام إدارة قاعدة البيانات إلى البحث في العديد من الصفوف لاسترداد البيانات الصحيحة. على النقيض من ذلك، تحتوي شظايا البيانات على صفوف أقل من قاعدة البيانات بأكملها. لذلك، يستغرق الأمر وقتًا أقل لاسترداد معلومات محددة، أو تشغيل استعلام، من قاعدة بيانات مشتركة. 

تجنب انقطاع الخدمة بالكامل

إذا فشل الكمبيوتر الذي يستضيف قاعدة البيانات، يفشل التطبيق الذي يعتمد على قاعدة البيانات أيضًا. يمنع تقسيم قاعدة البيانات هذا عن طريق توزيع أجزاء من قاعدة البيانات على أجهزة كمبيوتر مختلفة. فشل أحد أجهزة الكمبيوتر لا يؤدي إلى إيقاف تشغيل التطبيق لأنه يمكن أن يعمل مع شظايا وظيفية أخرى. غالبًا ما يتم إجراء التقسيم جنبًا إلى جنب مع النسخ المتماثل للبيانات عبر الأجزاء. لذلك، إذا أصبحت قطعة واحدة غير متوفرة، فيمكن الوصول إلى البيانات واستعادتها من قطعة بديلة.

توسيع النطاق بكفاءة

تستهلك قاعدة البيانات المتنامية المزيد من موارد الحوسبة وتصل في النهاية إلى سعة التخزين. يمكن للمؤسسات استخدام تقسيم قاعدة البيانات لإضافة المزيد من موارد الحوسبة لدعم توسيع قاعدة البيانات. يمكنهم إضافة شظايا جديدة في وقت التشغيل دون إيقاف تشغيل التطبيق للصيانة.

كيف يعمل تقسيم قاعدة البيانات؟

تقوم قاعدة البيانات بتخزين المعلومات في مجموعات بيانات متعددة تتكون من أعمدة وصفوف. تقسيم قاعدة البيانات يقسم مجموعة بيانات واحدة إلى أقسام أو شظايا. تحتوي كل قطعة على صفوف فريدة من المعلومات التي يمكنك تخزينها بشكل منفصل عبر أجهزة كمبيوتر متعددة، تسمى العقد. تعمل جميع الأجزاء على عقد منفصلة ولكنها تشارك مخطط قاعدة البيانات الأصلية أو تصميمها. 

على سبيل المثال، قد تبدو قاعدة بيانات غير مشتركة تحتوي على مجموعة بيانات لسجلات العملاء هكذا.

معرف العميل

الاسم

الولاية

1

جوان

كاليفورنيا

2

جين

واشنطن

3

باولو

أريزونا

4

وانغ

جورجيا

يتضمن التقسيم فصل صفوف مختلفة من المعلومات عن الجدول وتخزينها على أجهزة مختلفة، كما هو موضح أدناه.

كمبيوتر أ

معرف العميل

الاسم

الولاية

1

جوان

كاليفورنيا

2

جين

واشنطن

كمبيوتر ب

معرف العميل

الاسم

الولاية

3

باولو

أريزونا

4

وانغ

جورجيا

المقاطع

تسمى قطع البيانات المقسمة شظايا منطقية. يُطلق على الجهاز الذي يقوم بتخزين الجزء المنطقي شظية فعلية أو عقدة قاعدة بيانات. يمكن أن تحتوي الشظية المادية على شظايا منطقية متعددة. 

مفتاح شارد

يستخدم مطورو البرامج مفتاح شارد لتحديد كيفية تقسيم مجموعة البيانات. يحدد عمود في مجموعة البيانات صفوف مجموعة البيانات معًا لتشكيل جزء. يختار مصممو قاعدة البيانات مفتاحًا شارد من عمود موجود أو ينشئون مفتاحًا جديدًا.

بنية لا شيء مشترك

تعمل عملية تقسيم قاعدة البيانات على بنية لا شيء مشترك. حيث يعمل كل جزء مادية بشكل مستقل ولا يدرك الأجزاء الأخرى. فقط الأجزاء المادية التي تحتوي على البيانات التي تطلبها ستعالج البيانات بالتوازي من أجلك. 

تقوم طبقة البرامج بتنسيق تخزين البيانات والوصول إليها من هذه الأجزاء المتعددة. على سبيل المثال، تحتوي بعض أنواع تقنية قواعد البيانات على ميزات مشاركة تلقائية مضمنة. يمكن لمطوري البرامج أيضًا كتابة كود التقسيم في تطبيقهم لتخزين أو استرداد المعلومات من الشظية أو الأجزاء الصحيحة. 

ما هي طرق تقسيم قاعدة البيانات؟

تطبق طرق تقسيم قاعدة البيانات قواعد مختلفة على مفتاح شارد لتحديد العقدة الصحيحة لصف بيانات معين. فيما يلي بنى مشتركة للقسمة

تقسيم قائم على النطاق

التقسيم القائم على النطاق، أو التقسيم الديناميكي، يقسم صفوف قاعدة البيانات بناءً على نطاق من القيم. ثم يقوم مصمم قاعدة البيانات بتعيين مفتاح شارد للنطاق المعني. على سبيل المثال، يقوم مصمم قاعدة البيانات بتقسيم البيانات وفقًا للأبجدية الأولى في اسم العميل على النحو التالي. 

 

الاسم

مفتاح شارد

يبدأ بـ A إلى I

A

يبدأ من J إلى S

B

يبدأ بحرف T إلى Z

C

 

عند كتابة سجل عميل إلى قاعدة البيانات، يحدد التطبيق مفتاح الشارد الصحيح عن طريق التحقق من اسم العميل. ثم يطابق التطبيق المفتاح مع العقدة الفعلية ويخزن الصف على هذا الجهاز. وبالمثل، يقوم التطبيق بإجراء مطابقة عكسية عند البحث عن سجل معين.

الحسنات والسيئات

اعتمادًا على قيم البيانات، يمكن أن يؤدي التقسيم المستند إلى النطاق إلى التحميل الزائد للبيانات على عقدة مادية واحدة. في مثالنا، قد يحتوي الجزء A (الذي يحتوي على أسماء تبدأ بـ A إلى I) على عدد أكبر بكثير من صفوف البيانات من الجزء C (الذي يحتوي على أسماء تبدأ بـ T إلى Z). ومع ذلك، فمن الأسهل تنفيذها.

تقسيم مجزأ

يقوم التقسيم المجزأة بتعيين مفتاح شارد لكل صف من قاعدة البيانات باستخدام صيغة رياضية تسمى دالة التجزئة. تأخذ وظيفة التجزئة المعلومات من الصف وتنتج قيمة تجزئة. يستخدم التطبيق قيمة التجزئة كمفتاح شارد ويخزن المعلومات في الجزء المادي المقابل.

يستخدم مطورو البرامج التجزئة المجزأة لتوزيع المعلومات بالتساوي في قاعدة بيانات بين شظايا متعددة. على سبيل المثال، يفصل البرنامج سجلات العملاء إلى جزأين بقيم تجزئة بديلة 1 و 2. 

الاسم

قيمة الهاش

جوان

1

جين

2

باولو

1

وانغ

2

الحسنات والسيئات

على الرغم من أن التجزئة المجزأة تؤدي إلى توزيع البيانات بالتساوي بين الأجزاء المادية، إلا أنها لا تفصل قاعدة البيانات بناءً على معنى المعلومات. لذلك، قد يواجه مطورو البرامج صعوبات في إعادة تعيين قيمة التجزئة عند إضافة المزيد من الأجزاء المادية إلى بيئة الحوسبة. 

تقسيم المجلد

يستخدم تقسيم المجلد جدول بحث لمطابقة معلومات قاعدة البيانات مع الجزء المادي المقابل. يشبه جدول البحث جدولًا في جدول بيانات يربط عمود قاعدة البيانات بمفتاح شارد. على سبيل المثال، يعرض الرسم البياني التالي جدول بحث لألوان الملابس.

اللون

مفتاح شارد

أزرق

A

أحمر

B

أصفر 

C

أسود

D

عندما يقوم أحد التطبيقات بتخزين معلومات الملابس في قاعدة البيانات، فإنه يشير إلى جدول البحث. إذا كان الفستان أزرق، يقوم التطبيق بتخزين المعلومات في الجزء المقابل. 

الحسنات والسيئات

يستخدم مطورو البرامج تقسيم الدليل لأنه مرن. كل شارد هو تمثيل هادف لقاعدة البيانات ولا يقتصر على النطاقات. ومع ذلك، يفشل تقسيم الدليل إذا كان جدول البحث يحتوي على معلومات خاطئة. 

التقسيم الجغرافي

يقسم التقسيم الجغرافي ويخزن معلومات قاعدة البيانات وفقًا للموقع الجغرافي. فمثلا، يستخدم موقع التعارف خدمة قاعدة بيانات لتخزين معلومات العملاء من مدن مختلفة على النحو التالي. 

الاسم

مفتاح شارد

جوان

كاليفورنيا

جين

واشنطن

باولو

أريزونا

يستخدم مطورو البرامج المدن كمفاتيح شارد. يقومون بتخزين معلومات كل عميل في أجزاء مادية تقع جغرافيًا في المدن المعنية. 

الحسنات والسيئات

يتيح التقسيم الجغرافي للتطبيقات استرداد المعلومات بشكل أسرع نظرًا للمسافة الأقصر بين الشظية والعميل الذي يقدم الطلب. إذا كانت أنماط الوصول إلى البيانات تعتمد في الغالب على الجغرافيا، فإن هذا يعمل بشكل جيد. ومع ذلك، يمكن أن يؤدي التقسيم الجغرافي أيضًا إلى توزيع غير متساوٍ للبيانات. 

كيفية تحسين تقسيم قاعدة البيانات لتوزيع البيانات بشكل متساوٍ

عندما يحدث الحمل الزائد للبيانات على شظايا مادية محددة على الرغم من أن البعض الآخر لا يزال أقل من التحميل، فإنه يؤدي إلى نقاط اتصال قاعدة البيانات. تعمل النقاط الساخنة على إبطاء عملية الاسترجاع في قاعدة البيانات، مما يؤدي إلى هزيمة الغرض من مشاركة البيانات. 

يمكن أن يؤدي اختيار المفتاح الصلب الجيد إلى توزيع البيانات بالتساوي عبر أجزاء متعددة. عند اختيار مفتاح shard، يجب على مصممي قواعد البيانات مراعاة العوامل التالية. 

Cardinality 

يصف Cardinality القيم المحتملة لمفتاح شارد. وهو يحدد الحد الأقصى لعدد القطع الممكنة في قواعد بيانات منفصلة موجهة نحو الأعمدة. على سبيل المثال، إذا اختار مصمم قاعدة البيانات حقل بيانات نعم/لا كمفتاح شارد، فإن عدد القطع يقتصر على اثنين.

التكرار

التكرار هو احتمال تخزين معلومات محددة في جزء معين. على سبيل المثال، يختار مصمم قاعدة البيانات العمر كمفتاح شارد لموقع ويب للياقة البدنية. قد تدخل معظم السجلات في العقد للمشتركين الذين تتراوح أعمارهم بين 30 و 45 عامًا وتؤدي إلى نقاط اتصال لقاعدة البيانات. 

تغيير أحادي

التغيير الأحادي هو معدل تغيير مفتاح شارد. يؤدي مفتاح الشارد المتزايد أو المتناقص بشكل أحادي إلى وحدات غير متوازنة من البيانات. على سبيل المثال، تُقسَّم قاعدة بيانات الملاحظات إلى ثلاثة أجزاء مادية مختلفة على النحو التالي:

  • يخزن شارد A تعليقات العملاء الذين قاموا بعمليات شراء من 0 إلى 10.
  • يخزن شارد B التعليقات من العملاء الذين أجروا 11-20 عملية شراء.
  • يخزن شارد C التعليقات من العملاء الذين أجروا 21 عملية شراء أو أكثر.

ومع نمو الأعمال، يقوم العملاء بأكثر من 21 عملية شراء أو أكثر. فيخزن التطبيق ملاحظاتهم في شارد C. ينتج عن هذا جزء غير متوازن لأن الشارد C يحتوي على سجلات ملاحظات أكثر من الجزئين الأخريين.

ما هي بدائل تقسيم قاعدة البيانات؟

مشاركة قاعدة البيانات هي استراتيجية قياس أفقية تخصص عقدًا أو أجهزة كمبيوتر إضافية لمشاركة عبء العمل الخاص بالتطبيق. تستفيد المؤسسات من القياس الأفقي بسبب بنيته المتسامحة مع الأخطاء. عند فشل أحد أجهزة الكمبيوتر، يستمر الآخرون في العمل دون انقطاع. يعمل مصممو قواعد البيانات على تقليل وقت التوقف عن طريق نشر الأجزاء المنطقية عبر خوادم متعددة. 

ومع ذلك، فإن التقسيم هو واحد من بين العديد من استراتيجيات توسيع قاعدة البيانات الأخرى. استكشف بعض التقنيات الأخرى وافهم كيفية مقارنتها.

تحجيم عمودي

يزيد القياس الرأسي من قوة الحوسبة لجهاز واحد. على سبيل المثال، يضيف فريق تكنولوجيا المعلومات وحدة المعالجة المركزية وذاكرة الوصول العشوائي وقرص ثابت إلى خادم قاعدة بيانات للتعامل مع حركة المرور المتزايدة. 

مقارنة بين تقسيم قاعدة البيانات والقياس الرأسي

يعد القياس الرأسي أقل تكلفة، ولكن هناك حد لموارد الحوسبة التي يمكنك قياسها رأسيًا. وفي الوقت نفسه، فإن التقسيم، وهو استراتيجية تحجيم أفقي، أسهل في التنفيذ. على سبيل المثال، يقوم فريق تكنولوجيا المعلومات بتثبيت أجهزة كمبيوتر متعددة بدلاً من ترقية أجهزة الكمبيوتر القديمة.

الاستنساخ

النسخ المتماثل هو تقنية تقوم بعمل نسخ طبق الأصل من قاعدة البيانات وتخزينها عبر أجهزة كمبيوتر مختلفة. يستخدم مصممو قواعد البيانات النسخ المتماثل لتصميم نظام إدارة قواعد بيانات علائقية متسامح مع الأخطاء. عند فشل أحد أجهزة الكمبيوتر التي تستضيف قاعدة البيانات، تظل النسخ المتماثلة الأخرى قيد التشغيل. النسخ المتماثل هو ممارسة شائعة في أنظمة الحوسبة الموزعة.

مقارنة بين تقسيم قاعدة البيانات والنسخ المتماثل

لا تنشئ مشاركة قاعدة البيانات نسخًا من نفس المعلومات. بدلاً من ذلك، يقوم بتقسيم قاعدة بيانات واحدة إلى أجزاء متعددة وتخزينها على أجهزة كمبيوتر مختلفة. على عكس النسخ المتماثل، لا يؤدي تقسيم قاعدة البيانات إلى توفر كبير. يمكن استخدام التقسيم جنبًا إلى جنب مع النسخ المتماثل لتحقيق كل من الحجم والتوافر العالي.

في بعض الحالات، قد يتكون تقسيم قاعدة البيانات من نسخ متماثلة لمجموعات بيانات محددة. على سبيل المثال، قد يقوم متجر البيع بالتجزئة الذي يبيع المنتجات للعملاء الأمريكيين والأوروبيين بتخزين نسخ طبق الأصل من جداول تحويل الحجم على أجزاء مختلفة لكلا المنطقتين. يمكن للتطبيق استخدام النسخ المكررة من جدول التحويل لتحويل حجم القياس دون الوصول إلى خوادم قاعدة البيانات الأخرى. 

التقسيم

التقسيم هو عملية تقسيم جدول قاعدة البيانات إلى مجموعات متعددة. يتم تصنيف التقسيم إلى نوعين: 

  • التقسيم الأفقي يقسم قاعدة البيانات حسب الصفوف.
  • ينشئ التقسيم الرأسي أقسامًا مختلفة من أعمدة قاعدة البيانات. 

مقارنة بين تقسيم قاعدة البيانات وتقسيمها

تقسيم قاعدة البيانات يشبه التقسيم الأفقي. تقسم كلتا العمليتين قاعدة البيانات إلى مجموعات متعددة من الصفوف الفريدة. يقوم التقسيم بتخزين جميع مجموعات البيانات في نفس الكمبيوتر، لكن تقسيم قاعدة البيانات ينشرها عبر أجهزة كمبيوتر مختلفة.

ما هي تحديات تقسيم قاعدة البيانات؟

قد تواجه المؤسسات هذه التحديات عند تنفيذ تقسيم قاعدة البيانات.

نقاط اتصال البيانات

تصبح بعض الأجزاء غير متوازنة بسبب التوزيع غير المتكافئ للبيانات. على سبيل المثال، تتلقى قطعة مادية واحدة تحتوي على أسماء عملاء تبدأ بـ A بيانات أكثر من غيرها. ستستخدم هذه القطعة المادية موارد حوسبة أكثر من غيرها.

الحل

يمكنك توزيع البيانات بالتساوي باستخدام مفاتيح شارد المثلى. بعض مجموعات البيانات مناسبة بشكل أفضل للتقسيم من غيرها.

صعوبة التشغيل

يؤدي تقسيم قاعدة البيانات إلى صعوبة في التشغيل. فبدلاً من إدارة قاعدة بيانات واحدة، يتعين على المطورين إدارة عقد قاعدة بيانات متعددة. وعندما يقومون باسترداد المعلومات، يجب على المطورين الاستعلام عن عدة شظايا ودمج أجزاء المعلومات معًا. يمكن أن تؤدي عمليات الاسترجاع هذه إلى تعقيد التحليلات.

الحل

في مجموعة قواعد بيانات AWS، تم أتمتة إعداد قاعدة البيانات وعملياتها إلى حد كبير. هذا يجعل العمل مع بنية قاعدة بيانات مشتركة مهمة أكثر بساطة.

تكاليف البنية التحتية

تدفع المؤسسات المزيد مقابل تكاليف البنية الأساسية عند إضافة المزيد من أجهزة الكمبيوتر كأجزاء مادية. يمكن أن تزداد تكاليف الصيانة إذا قمت بزيادة عدد الأجهزة في مركز البيانات المحلي.

الحل

يستخدم المطورون Amazon Elastic Compute Cloud (Amazon EC2) لاستضافة وتوسيع نطاق الأجزاء في السحابة. يمكنك توفير المال باستخدام البنية التحتية الافتراضية التي تديرها AWS بالكامل.

صعوبة التطبيق

لا تحتوي معظم أنظمة إدارة قواعد البيانات على ميزات مشاركة مضمنة. وهذا يعني أنه يجب على مصممي قواعد البيانات ومطوري البرامج تقسيم قاعدة البيانات وتوزيعها وإدارتها يدويًا.

الحل

يمكنك ترحيل بياناتك إلى قواعد بيانات AWS المناسبة المصممة لهذا الغرض، والتي تحتوي على العديد من الميزات المضمنة التي تدعم القياس الأفقي.

كيف يمكن لـ AWS المساعدة في تقسيم قاعدة البيانات؟

AWS عبارة عن نظام أساسي عالمي لإدارة البيانات يمكنك استخدامه لبناء استراتيجية بيانات حديثة. باستخدام AWS، يمكنك اختيار قاعدة البيانات المناسبة المصممة لهذا الغرض، وتحقيق الأداء على نطاق واسع، وتشغيل قواعد البيانات المُدارة بالكامل، والاعتماد على التوافر والأمان العاليين.

ابدأ بإدارة البيانات على AWS من خلال إنشاء حساب AWS اليوم.

الخطوات التالية في AWS

تحقق من الموارد الإضافية المتعلقة بالمنتج
تعلّم المزيد حول خدمات قواعد البيانات 
سجّل للحصول على حساب مجاني

الاطلاع على خدمات قواعد البيانات المجانية

التسجيل 
بدء الإنشاء في وحدة التحكم

بدء الإنشاء في وحدة إدارة تحكم AWS.

تسجيل الدخول