شارد (بنية قاعدة البيانات)
تُعرف شظية قاعدة البيانات ، أو ببساطة الشظية ، بأنها تقسيم أفقي للبيانات داخل قاعدة بيانات أو محرك بحث . ويمكن تخزين كل شظية على خادم قاعدة بيانات منفصل لتوزيعها على عدة خوادم.
قد تبقى بعض البيانات في قاعدة البيانات موجودة في جميع الأجزاء، [ أ ] بينما تُخزَّن بيانات أخرى في جزء واحد فقط. في مثل هذه الحالات، يعمل كل جزء كمصدر وحيد لمجموعة البيانات الخاصة به. [ 1 ]
بنية قاعدة البيانات
التقسيم الأفقي هو مبدأ تصميم قواعد البيانات حيث يتم تخزين صفوف جدول قاعدة البيانات بشكل منفصل، بدلاً من تقسيمها إلى أعمدة (كما هو الحال في التطبيع والتقسيم الرأسي ، بدرجات متفاوتة). يشكل كل قسم جزءًا من شارد، والذي قد يكون بدوره موجودًا على خادم قاعدة بيانات منفصل أو في موقع فعلي منفصل.
تُوفر عملية التقسيم الأفقي للبيانات مزايا عديدة. فبما أن الجداول تُقسّم وتُوزّع على خوادم متعددة، يقلّ إجمالي عدد الصفوف في كل جدول ضمن كل قاعدة بيانات. وهذا بدوره يُقلّل من حجم الفهرس ، مما يُحسّن أداء البحث عمومًا. يُمكن وضع جزء قاعدة البيانات على جهاز منفصل، كما يُمكن وضع أجزاء متعددة على أجهزة متعددة. وهذا يُتيح توزيع قاعدة البيانات على عدد كبير من الأجهزة، مما يُحسّن الأداء بشكل ملحوظ. إضافةً إلى ذلك، إذا كان تقسيم قاعدة البيانات يعتمد على تجزئة واقعية للبيانات (مثل: العملاء الأوروبيون مقابل العملاء الأمريكيين)، فقد يكون من الممكن استنتاج انتماء البيانات إلى الجزء المناسب بسهولة وبشكل تلقائي، والاستعلام فقط عن الجزء ذي الصلة. [ 2 ]
في الواقع، يُعدّ تجزئة البيانات عملية معقدة. فعلى الرغم من تطبيقها منذ زمن طويل عبر البرمجة اليدوية (خاصةً عندما يكون للصفوف تجميع واضح، كما في مثال منطقة العميل أعلاه)، إلا أن هذا النهج غالبًا ما يكون غير مرن. ثمة رغبة في دعم التجزئة تلقائيًا، سواءً من خلال إضافة دعم برمجي لها، أو من خلال تحديد العناصر المرشحة للتجزئة بشكل منفصل. التجزئة المتسقة هي تقنية تُستخدم في التجزئة لتوزيع الأحمال الكبيرة على عدة خدمات وخوادم أصغر. [ 3 ]
عند استخدام الحوسبة الموزعة لتوزيع الحمل بين عدة خوادم (سواءً لأسباب تتعلق بالأداء أو الموثوقية)، قد يكون أسلوب التجزئة مفيدًا أيضًا. في العقد الثاني من الألفية، برزت تجزئة سعة التنفيذ ، بالإضافة إلى تجزئة البيانات التقليدية ، كنهج محتمل لمعالجة تحديات الأداء وقابلية التوسع في تقنية سلاسل الكتل . [ 4 ] [ 5 ]
اقترحت أعمال أكاديمية حديثة بروتوكولات مثل سيربيروس لمعالجة مسألة الذرية عبر الأجزاء من خلال دمج الإجماع عبر أجزاء متعددة، مما يسمح للمعاملات بالتأثير على أقسام متعددة في وقت واحد دون الحاجة إلى قفل عالمي. [ 6 ]
بالمقارنة مع التقسيم الأفقي
يقسم التقسيم الأفقي جدولًا واحدًا أو أكثر حسب الصف، عادةً ضمن مثيل واحد من المخطط وخادم قاعدة البيانات. وقد يوفر ميزة بتقليل حجم الفهرس (وبالتالي جهد البحث)، شريطة وجود طريقة واضحة وقوية وضمنية لتحديد القسم الذي سيُعثر فيه على صف معين، دون الحاجة إلى البحث في الفهرس أولًا؛ على سبيل المثال، الحالة الكلاسيكية لجدولي ' CustomersEast' و' CustomersWest'، حيث يشير الرمز البريدي بالفعل إلى مكان وجود الصف.
تُوسّع تقنية التجزئة هذا النهج، حيث تُقسّم الجدول أو الجداول ذات الصلة بنفس الطريقة، ولكن عبر نسخ متعددة محتملة من المخطط. ومن مزاياها إمكانية توزيع عبء البحث عن الجدول المُقسّم الكبير على خوادم متعددة (منطقية أو فعلية)، بدلاً من توزيعه على فهارس متعددة على خادم منطقي واحد فقط.
يتطلب تقسيم البيانات على عدة خوادم معزولة أكثر من مجرد تقسيم أفقي بسيط. ستنخفض المكاسب المتوقعة في الكفاءة إذا تطلب الاستعلام عن قاعدة البيانات الوصول إلى عدة خوادم لمجرد استرجاع جدول أبعاد بسيط . لذا، يتجاوز التجزئة مجرد التقسيم، إذ يشمل توزيع الجداول الكبيرة القابلة للتقسيم على الخوادم، بينما تُنسخ الجداول الأصغر حجمًا بالكامل على كل خادم. [ 7 ]
ولهذا السبب أيضاً يرتبط التجزئة ببنية لا تشارك فيها البيانات - فبمجرد تجزئتها، يمكن أن توجد كل جزء في مثيل مخطط منطقي منفصل، أو خادم قاعدة بيانات فعلي، أو مركز بيانات ، أو منطقة جغرافية. وتهدف التجزئة إلى تقليل الحاجة إلى الوصول بين الأجزاء عن طريق تقسيم البيانات عبر أجزاء مستقلة. [ 8 ]
يُسهّل هذا الأمر عملية النسخ عبر خوادم متعددة (على عكس التقسيم الأفقي البسيط). كما أنه مفيد للتوزيع العالمي للتطبيقات، حيث قد تُصبح روابط الاتصال بين مراكز البيانات عائقًا في حال عدم القيام بذلك. [ 9 ]
هناك أيضًا حاجة إلى آلية إشعار ونسخ متماثل بين مثيلات المخطط، بحيث تظل الجداول غير المقسمة متزامنة قدر الإمكان وفقًا لمتطلبات التطبيق. يُعد هذا خيارًا معماريًا معقدًا في الأنظمة المجزأة: تتراوح الأساليب بين جعل هذه الجداول للقراءة فقط فعليًا (مع تحديثات نادرة ومجمعة)، إلى جداول مكررة ديناميكيًا (على حساب تقليل بعض مزايا التوزيع للتجزئة)، والعديد من الخيارات بينهما. [ 10 ]
التطبيقات
- توفر Altibase بنية تجزئة مشتركة (من جانب العميل ومن جانب الخادم) شفافة لتطبيقات العميل.
- يدعم Apache HBase التجزئة التلقائية. [ 11 ]
- تدعم أدوات قاعدة بيانات Azure SQL المرنة تجزئة البيانات لتمكين توسيع نطاق طبقة بيانات التطبيق وتقليصها. [ 12 ]
- يدعم نظام ClickHouse ، وهو نظام إدارة قواعد بيانات OLAP مفتوح المصدر، التجزئة.
- يدعم Couchbase التجزئة التلقائية والشفافة.
- يدعم برنامج CUBRID التجزئة منذ الإصدار 9.0.
- ميزة تقسيم البيانات في Db2 (MPP) ، وهي ميزة تقسيم قاعدة البيانات التي لا تعتمد على مشاركة البيانات، تعمل على عقد منفصلة.
- تدعم خدمة قواعد البيانات العلائقية الموزعة (DRDS) التابعة لشركة Alibaba Cloud تجزئة قواعد البيانات والجداول، [ 13 ] وقد تم استخدامها في أحداث واسعة النطاق مثل يوم العزاب . [ 14 ]
- يدعم Elasticsearch ، وهو خادم بحث مؤسسي، التجزئة. [ 15 ]
- يُعدّ eXtreme Scale مخزن بيانات مفتاح/قيمة في الذاكرة متعدد العمليات ( مخزن بيانات NoSQL ) يستخدم التجزئة لتحقيق قابلية التوسع عبر العمليات لكل من البيانات والمعالجة المتوازية على نمط MapReduce . [ 16 ]
- يدعم Hibernate التجزئة، لكنه لم يشهد تطوراً يذكر منذ عام 2007. [ 17 ] [ 18 ]
- يدعم نظام IBM Informix تجزئة البيانات منذ الإصدار 12.1 xC1 كجزء من تقنية MACH11. وقد أضاف الإصدار 12.10 xC2 توافقًا كاملًا مع برامج تشغيل MongoDB، مما يسمح بدمج جداول قواعد البيانات العلائقية التقليدية ومجموعات NoSQL مع الحفاظ على تجزئة البيانات، وآليات تجاوز الأعطال، وخصائص ACID. [ 19 ] [ 20 ]
- يدعم Kdb+ التجزئة منذ الإصدار 2.0.
- يدعم محرك التخزين MariaDB Spider توحيد الجداول، والتجزئة، ومعاملات XA، ومصادر بيانات ODBC. وقد تم تضمينه في خادم MariaDB منذ الإصدار 10.0.4. [ 21 ]
- أدخلت MonetDB ، وهي مخزن أعمدة مفتوح المصدر ، خاصية التجزئة للقراءة فقط في إصدارها الصادر في يوليو 2015. [ 22 ]
- يدعم MongoDB التجزئة منذ الإصدار 1.6. [ 23 ]
- يدعم نظام MySQL Cluster التجزئة التلقائية والشفافة عبر العقد القياسية، مما يسمح بتوسيع نطاق استعلامات القراءة والكتابة، دون الحاجة إلى تغييرات في التطبيق. [ 24 ]
- يدعم MySQL Fabric (جزء من أدوات MySQL) التجزئة. [ 25 ]
- تجزئة قاعدة بيانات أوراكل منذ الإصدار 12c الإصدار 2 وفي سطر واحد: الجمع بين مزايا التجزئة والقدرات المعروفة لقاعدة بيانات أوراكل متعددة النماذج الجاهزة للاستخدام المؤسسي. [ 26 ]
- تدعم قاعدة بيانات Oracle NoSQL التجزئة التلقائية والتوسع المرن عبر الإنترنت للمجموعات.
- يدعم OrientDB التجزئة منذ الإصدار 1.7.
- يدعم Solr ، وهو منصة بحث مؤسسية، التجزئة. [ 27 ]
- يستخدم ScyllaDB التجزئة لكل نواة داخل الخادم وعبر جميع العقد في المجموعة.
- يستخدم Spanner ، وهو قاعدة بيانات موزعة طورتها جوجل، أجزاءً عبر آلات حالة Paxos متعددة للتوسع إلى أعداد كبيرة من الأجهزة ومراكز البيانات والصفوف. [ 28 ]
- SQLAlchemy ORM ، أداة ربط البيانات لأجزاء لغة البرمجة بايثون . [ 29 ]
- يدعم SQL Server التجزئة منذ إصدار SQL Server 2005 باستخدام أدوات خارجية. [ 30 ]
- تسوّق شركة Teradata نظام إدارة قواعد البيانات المتوازية الضخمة على أنه مستودع بيانات .
- يستخدم تصميم Vault للعملات المشفرة تقنية التجزئة لتقليل البيانات المطلوبة للانضمام إلى الشبكة والتحقق من المعاملات، مما يحسن قابلية التوسع. [ 31 ]
- يدعم نظام Vitess ، وهو نظام تجميع قواعد البيانات مفتوح المصدر، تجزئة البيانات لـ MySQL وهو مشروع تابع لمؤسسة الحوسبة السحابية الأصلية . [ 32 ]
- ShardingSphere هو نظام لتجميع قواعد البيانات يوفر تجزئة البيانات والمعاملات الموزعة وإدارة قواعد البيانات الموزعة، وهو مشروع تابع لمؤسسة برمجيات أباتشي (ASF). [ 33 ]
العيوب
قد يؤدي تجزئة جدول قاعدة البيانات قبل تحسينه محليًا إلى تعقيد غير ضروري. يُنصح عمومًا بالتجزئة عندما تثبت استراتيجيات التحسين الأخرى عدم كفايتها. [ 34 ] ويمكن أن ينتج عن التعقيد الإضافي لتجزئة قاعدة البيانات العديد من التحديات المحتملة. [ 35 ]
- تعقيد لغة SQL: قد يحتاج المطورون إلى كتابة استعلامات SQL أكثر تعقيدًا للتعامل مع منطق التجزئة
- متطلبات برمجية إضافية: قد تفشل البرامج التي تقوم بتقسيم البيانات وموازنتها وتنسيقها والحفاظ على سلامتها أو تتسبب في حدوث أخطاء.
- نقطة فشل واحدة : يمكن أن يؤثر تلف أو فشل جزء واحد بسبب مشاكل في الشبكة أو الأجهزة أو النظام على سلامة مجموعة البيانات بأكملها.
- تعقيد خادم تجاوز الفشل : يجب على خوادم تجاوز الفشل الاحتفاظ بنسخ من جميع أجزاء قاعدة البيانات.
- تعقيد النسخ الاحتياطية : يجب تنسيق النسخ الاحتياطية لقاعدة البيانات الخاصة بالأجزاء الفردية مع النسخ الاحتياطية للأجزاء الأخرى.
- التعقيد التشغيلي: تصبح مهام مثل إضافة أو إزالة الفهارس، أو تعديل الأعمدة، أو تغيير المخطط أكثر صعوبة في بيئة مجزأة.
أصل الكلمة
في سياق قواعد البيانات، يُعتقد أن مصطلح "الشظية" مشتق من أحد مصدرين: نظام "البيانات المنسوخة عالية التوافر" التابع لشركة كمبيوتر كوربوريشن أوف أمريكا ، [ 36 ] والذي استخدم أجهزة زائدة لتسهيل نسخ البيانات بدلاً من التقسيم الأفقي، أو لعبة تقمص الأدوار الجماعية عبر الإنترنت Ultima Online الصادرة عام 1997. [ 37 ] [ 38 ]
تذكر ريتشارد غاريوت ، مبتكر لعبة Ultima Online ، أن مصطلح "البيئة الافتراضية" ظهر أثناء تطوير اللعبة، وتحديدًا عند إنشاء نظام بيئي افتراضي ذاتي التنظيم. كان بإمكان اللاعبين التفاعل وجمع موارد اللعبة عبر الإنترنت، مما أدى إلى اختلال توازن النظام. [ 38 ] ولمعالجة هذه المشكلة، قام فريق التطوير بتقسيم قاعدة اللاعبين العالمية إلى جلسات متعددة، وأضاف جزءًا من الربط الخيالي للعبة Ultima Online بنهاية الجزء الأول Ultima I: The First Age of Darkness ، حيث أدت هزيمة خصمها مونداين أيضًا إلى إنشاء "شظايا" من الكون المتعدد . وفر هذا التعديل لفريق غاريوت الأساس الخيالي اللازم لتبرير إنشاء نسخ من البيئة الافتراضية. تمت إزالة هذه الميزة لاحقًا بعد عدة أشهر من الاختبار. [ 38 ]
انظر أيضاً
ملحوظات
- ↑ عادةً ما تدعم البيانات مثل جداول الأبعاد .
مراجع
- ↑ سادالاج، برامود جيه؛ فاولر، مارتن (2012). "4: نماذج التوزيع". NoSQL Distilled . بيرسون للتعليم. ISBN 978-0321826626.
- ↑ راهول روي (28 يوليو 2008). "شارد - تصميم قاعدة البيانات" .
- ↑ ريس، إريك. "التجزئة للشركات الناشئة" .
- ↑ وانغ، غانغ؛ شي، تشيجي جيري؛ نيكسون، مارك؛ هان، سونغ (21 أكتوبر 2019). "SoK" . وقائع المؤتمر الأول لجمعية ACM حول التطورات في التقنيات المالية . الصفحات 41-61 . doi : 10.1145/3318041.3355457 . ISBN 9781450367325. S2CID 204749727 .
- ↑ يو، مينغتشاو؛ صحرائي، سعيد؛ نيكسون، مارك؛ هان، سونغ (18 يوليو 2020). "SoK: التجزئة على سلسلة الكتل". وقائع المؤتمر الأول لجمعية ACM حول التطورات في التقنيات المالية . الصفحات 114-134 . doi : 10.1145/3318041.3355457 . ISBN 9781450367325. S2CID 204749727 .
- ↑ هيلينغز، جيلي؛ سادوغي، محمد (2021). "سيربيروس: معالجة معاملات بسيطة متعددة الأجزاء ومقاومة للأخطاء البيزنطية" (ملف PDF) . وقائع مؤسسة VLDB . 14 (11): 2230-2243 . doi : 10.14778/3476249.3476274 .
- ↑ "تجزئة قواعد البيانات: مفاهيم وأمثلة" . MongoDB . تم الاطلاع عليه بتاريخ 20 مارس 2026 .
- ↑ "فهم تجزئة قواعد البيانات" . دروس مجتمع DigitalOcean . 16 مارس 2022. تاريخ الاطلاع: 9 أكتوبر 2025.
تُجسّد أجزاء قواعد البيانات بنية "لا شيء مشترك". وهذا يعني أن الأجزاء مستقلة؛ فهي لا تتشارك أي بيانات أو موارد.
- ↑ "دليل التوسع الأفقي مقابل التوسع الرأسي" . MongoDB . تم الاطلاع عليه بتاريخ 20 مارس 2026 .
- ↑ "التجزئة - دليل قاعدة البيانات - وثائق MongoDB" . www.mongodb.com . تم الاطلاع عليه بتاريخ 20 مارس 2026 .
- ↑ "Apache HBase – Apache HBase™ Home" . hbase.apache.org .
- ↑ "تقديم معاينة Elastic Scale لقاعدة بيانات Azure SQL" . azure.microsoft.com . 2 أكتوبر 2014.
- ↑ " مركز مساعدة علي بابا كلاود - تعريف السحابة وشرح الخدمات السحابية - علي بابا كلاود" . www.alibabacloud.com
- ↑ " التركيز على قواعد البيانات الإلكترونية واسعة النطاق - علي بابا كلاود" . www.alibabacloud.com
- ↑ "تخصيص أجزاء الفهرس | دليل Elasticsearch [ 7.13 ] | Elastic" . www.elastic.co .
- ↑ "مستندات IBM" .
- ↑ "شظايا السبات" . 2007-02-08.
- ↑ "شظايا السبات" . مؤرشف من الأصل بتاريخ 16-12-2008 . تم الاطلاع عليه بتاريخ 30-03-2011 .
- ↑ "استعلامات الشبكة الجديدة لـ Informix" . مؤرشف من الأصل بتاريخ 10-06-2015 . تم الاطلاع عليه بتاريخ 07-10-2013 .
- ↑ "دعم قواعد بيانات NoSQL في Informix (تخزين JSON، واجهة برمجة تطبيقات Mongo DB)" . 24 سبتمبر 2013.
- ↑ "العنكبوت" . قاعدة معارف MariaDB . تم الاسترجاع في 2022-12-20 .
- ↑ "إصدار قاعدة بيانات المال (MonetDB) لشهر يوليو 2015" . 31 أغسطس 2015.
- ↑ "تجزئة MongoDB" . MongoDB . تم الاسترجاع في 20 مارس 2026 .
- ↑ "ميزات وفوائد مجموعة MySQL" . 2012-11-23.
- ↑ "دليل البدء السريع لتجزئة MySQL Fabric" .
- ↑ "تجزئة أوراكل" . أوراكل . 24-05-2018 . تم الاسترجاع في 10-07-2021 .
- ↑ "DistributedSearch - SOLR - Apache Software Foundation" . cwiki.apache.org .
- ↑ كوربيت، جيمس سي؛ دين، جيفري؛ إبستين، مايكل؛ فايكس، أندرو؛ فروست، كريستوفر؛ فورمان، جيه جيه؛ غيماوات، سانجاي؛ غوباريف، أندريه؛ هايزر، كريستوفر؛ هوتشيلد، بيتر؛ هسيه، ويلسون؛ كانثاك، سيباستيان؛ كوجان، يوجين؛ لي، هونغي؛ لويد، ألكسندر؛ ميلنيك، سيرجي؛ مواورا، ديفيد؛ ناغل، ديفيد؛ كوينلان، شون؛ راو، راجيش؛ روليغ، ليندسي؛ سايتو، ياسوشي؛ شيمانياك، ميشال؛ تايلور، كريستوفر؛ وانغ، روث؛ وودفورد، ديل. "سبانر: قاعدة بيانات جوجل الموزعة عالميًا" (ملف PDF) . وقائع مؤتمر OSDI 2012. تم الاطلاع عليه بتاريخ 24 فبراير 2014 .
- ↑ "sqlalchemy/sqlalchemy" . 9 يوليو 2021 – عبر GitHub.
- ↑ "خيارات التقسيم والتجزئة لـ SQL Server و SQL Azure" . infoq.com .
- ↑ "عملة مشفرة أسرع وأكثر كفاءة" . أخبار معهد ماساتشوستس للتكنولوجيا . 24 يناير 2019. تاريخ الاسترجاع : 30 يناير 2019 .
- ↑ "Vitess" . vitess.io .
- ↑ "ShardingSphere" . shardingsphere.apache.org .
- ↑ كليمان، مارتن (2017). تصميم التطبيقات كثيفة البيانات . ISBN 9781449373320.
- ↑ "تجزئة قواعد البيانات: مفاهيم وأمثلة" . MongoDB . تم الاطلاع عليه بتاريخ 20 مارس 2026 .
- ↑ سارين، ديويت وروزنبرغ، نظرة عامة على نظام SHARD: نظام للبيانات المنسوخة عالية التوافر ، التقرير الفني CCA-88-01، شركة كمبيوتر كوربوريشن الأمريكية، مايو 1988
- ↑ كوستر، راف (2009-01-08). "هل جاءت "تجزئة" قواعد البيانات من جامعة أوريغون؟" . موقع راف كوستر الإلكتروني . تم الاطلاع عليه بتاريخ 2015-01-17 .
- 1 2 3 "ألتيما أونلاين: البيئة الافتراضية | قصص الحرب" . فيديوهات آرس تكنيكا . 21 ديسمبر 2017.
روابط خارجية
- تقسيم البيانات
- أنظمة إدارة قواعد البيانات
- أنماط تصميم البرمجيات
