User:Mohammad.taradeh/sandbox

NOSQL

=ملخص=

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

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

=ألمقدمة=

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

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

مقدمة حول قواعد البيانات NoSQL'''

تسارع استعمال قواعد البيانات اللاعلائقية بشكل كبير بسبب قوة وسرعة ادائها،وامكانيتها على التوسع بشكل سلس، وبسبب سهولة الوصول اليها [2]. احد الفروقات الرئيسية بين قواعد البيانات العلائقية واللاعلائقية هو ان الثانية تستخدم لمعالجة البيانات الغير منظمة، بخلاف نظيرتها التي تتعامل فقط مع البيانات المنظمة [3]. هذا يعني ان قواعد البيانات اللاعلائقية لا تتعامل او تحتوي على جدول منظم التركيب كما هو الحال في الانظمة التلقيدية. لقد انشئ هذا النوع من قواعد البيانات لحل المشاكل التي تم ذكرها في القسم السابق مثل: سهولة التوسع وسرعة المعالجة وتحمل كميرة هائلة من البيانات. البداية كانت بانشاء معالجات من قبل الشركات الكبيرى مثل جوجل لحل مشاكل خاصة بها، بحيث انها لم تكن مفتوحة المصدر وغير متاحة للمجان [4]. ادى نجاح هذه الانظمة من قبل الشركات الكبيرة بداية نشوء انظمة اخرى مفتوحة المصدر مثل كساندرا ومونجو ودينامو [5].

ميزات قواعد البينانات NoSQL

لهذا النوع من معالجات البيانات ميزات عديدة مقارنة بقيرنتها العلائقية. احد اهم الفروقات بينهما هو ان اللاعلائقية تتعامل مع جدول يتسم ببساطة البناء [2] ، فخلاف لقواعد البيانات العلائقية; فهي ليست مبنية على مخطط ثابت، بينما تجد البنية التحتية المكونة لها هو مخزن بسيط مكون من مفتاح وقيمة، وبامكان المستخدم الوصول لتلك القيمة عن طريق معرفة ذلك المفتاح. تعدد انواع المخازن لتنقسم الى: مخازن مفتاح وقيمة، ومخازن الملفات ومخازن الاعمدة ومخازن الجراف …الخ.

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

عيوب قواعد البيانات NoSQL

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

نظرة عامة حول قواعد بيانات NoSQL

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

انواع المخازن في قواعد بيانات NoSQL


 * 1) مخزن المفتاح والقيمة: في مخزن المفتاح والقيمة، يتم استخدام جدول تجزئة فيه مفتاح فريد يشير إلى القيمة. ويمكن تجميع المفاتيح في مجموعات [3]. بعض التطبيقات لمخزن المفتاح توفر آليات التخزين المؤقت لاستردادها لاحقا، الذي يعزز كثيرا من سرعة الاداء والبحث.  والمفتاح هو كل ما يلزم للوصول إلى القيم المخزنة في قاعدة البيانات. يتم تخزين البيانات في شكل سلسلة، JSON أو BLOB  (الأجسام الكبيرة بسيطة). واحدة من أكبر العيوب في هذا النوع هو عدم الاتساق في مستوى قاعدة البيانات. هذا يمكن أن يحسن عن طريق عمل اضافي من قبل المطورين والمبرمجين ، ولكن كما ذكرت من قبل، فإن ذلك يضيف المزيد من التعقيد والوقت. وNoSQL الأكثر شهرة  التي بنيت على مخزن من نوع المفتاح والقيمة هي DynamoDB الذي تم تطويره من قبل شركة امازون.
 * 2) مخزن الوثائق:  مخزن الوثائق هي على غرار مخزن المفتاح والقيمة . حيث أنها خالية من المخطط المسبق والبنية الثابتة. غير أن هناك اختلافات بين كلا النوعين. في مخزن الوثيقة، القيم عبارة عن وثيقة او ملف مشفر او مرمز  مثل XML، JSON. أيضا  الاستعلامات  ممكنة وسريعة جدا على الملفات او اللوثائق من خلال هذا النوع. لكن هناك ايضا نقاط ضعف مشتركة بين مخزن الوثائق ومخزن المفتاح والقيمة.فكلاهما تفتقر إلى الثبات على مستوى قاعدة البيانات، الأمر الذي يجعل الطريق مسدود امام التطبيقات التي تعتمد على المزيد من الموثوقية والاتساق. اما قاعدة البيانات الاكثر شهرة التي تعتمد على الملفات كقيمة هي MongoDB.
 * 3) مخزن العمود: في قواعد البينانات المبنية على مخزن العمود ، يتم تخزين البيانات في الأعمدة بدلا من الصفوف، وهو ما تم العثور عليه في قواعد البيانات NoSQL [4  [ . تتميز مخازن العمود بسرعة الوصول للبيانات المخزنة سواء كان بالقراءة او الكتابة. في هذا النوع تكون جميع الصفوف  التي تنتمي لعمود  واحد مخزنة كوحدة واحدة.  وهذا يؤثر على سرعة الوصول أثناء عمليات القراءة / الكتابة.  ويستخدم المفتاح للتحديد إلى عدد من الأعمدة في  قاعدة البيانات، إحدى قواعد البيانات الأكثر شعبية التي تستخدم مخزن  العمود هي HBase وكاساندرا [4].
 * 4) مخزن الجراف: في قاعدة NoSQL الجراف، يستخدم هيكل الجراف لتمثيل البيانات [7] ، [8]. يتكون الجراف من حواف والعقد. رسميا، رسم بياني عبارة عن مجموعة مترابطة  من أزواج متماثلة للاشياء التي عادة ما تكون ممثلة بمعادلة رياضية، في حين ان مجموعة الحواف والقمم والروابط بينهما يسمى الجراف [9]. تستخدم قواعد بيانات من نوع جراف في الشبكات الاجتماعية  مثل فيسبوك وتويتر [10] ، [11 ، فإنها في الواقع اقتراح. اكثر التطبيقات شعبية على هذا النوع هو infiniteGraph

أنظمة إدارة قواعد البيانات NoSQL

وبعد المناقشة لفترة وجيزة لبعض من اكثر قواعد بيانات NoSQL شعبية، هناك أكثر من عشرة أنواع من تطبيقات NoSQL. MongoDB هو قاعدة بيانات من نوع مخزن الوثيقة [ 13].

كساندرا

كاساندرا هي قاعدة البيانات التي وضعتها الفيسبوك [13]. الهدف من وراء تصميم كاساندرا كان لإنشاء قاعدة بيانات لا يوجد بها نقطة واحدة قابلة للفشل. كاساندرا هي في معظمها قاعدة بيانات مبنية على مخزن العمود. بعض الدراسات [4] ، [14] تشير الا ان كاساندرا هي نظام هجين مستوحاة منBigTable المطور من قبل جوجل، ويتحقق ذلك من خلال توفير نظام القيم الأساسية التي يجب ان تتوفر في قاعدة البيانات، تم تصميم كاساندرا لتخزين كميات ضخمة من البيانات الموزعة عبر العقد المختلفة.

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

مونجو MongoDB

مونجو هي قاعدة بيانات مبنية على مخزن الوثائق، مبرمجمة على لغة سي بلس بلس [13] ، مما يعني أنه يخزن القيم على شكل ملفات.

. وفيما يلي مجموعة ملامح وجدت في قاعدة بيانات مونجو:  القطع: Sharding هو تقسيم البيانات بين أجهزة متعددة (العقد). والذي يختلف عما وجدت في كاساندرا، حيث يتم توزيع العقد بشكل متناظر. 2. مونجو لغة الاستعلام: كما نوقش في وقت سابق، يستخدم MongoDB API سهلة لجلب بعض الوثائق من قاعدة بيانات، 3. تطبيقات: في MongoDB، هناك مجموعة من خوادم تسمى أجهزة التوجيه. كل واحد يعمل كخادم لعميل واحد أو أكثر. وبالمثل، فإن المجموعة هي مجموعة من العقد أو ملقمات.

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

الفهرسة في NoSQL هي عملية ربط موقع البيانات بمفتاح خاص مثل القاموس المكون من مفتاح وقيمة [16]. هناك اكثر من نوع فهرسة تستعمل في قواعد بيانات NoSQL. في هذا القسم سوف يتم عرض هذه الانواع، مثل شجرة ب وشجرة أ وشجرة او2.

شجرة ب

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

شجرة ت

بنية البيانات المستعملة في تصميم هذا النوع من تجميع من خصائص وادوات مستعملة في عدة انواع من شجرات المعلومات المعروفة في بنية المعلومات [20] ، تتميز بخاصية التوازن الذاتي في عمليات البحث، على نقيض شجرة ب التي لا تتميز بالاتزان الذاتي، وكل عقدة تحتوي على عدد مختلف من العقد، لكن في شجرة ت كل عقدة تخزن اكثر من مفتاح وقيمة، بحيث ان القيمة هي مؤشر يشير الى عقد اخرى، وهذا يزيد من كفائة البحث والتخزين، كما ويحافظ على الكثير من المساحة على القرص او الذاكرة المؤقتة [21],[20]

الخاتمة

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

المراجع

[1] N. ليفيت، "هل nosql قواعد البيانات ترقى إلى مستوى وعودهم؟" كمبيوتر، المجلد. 43، لا. 2، ص. 12-14، 2010. (بالانجليزية)

[2] D.-h. LU وX.-b. HE، "تحليل قاعدة بيانات nosql" العلوم والتكنولوجيا في غرب الصين، المجلد. 2، ص. 009، 2011. (بالانجليزية)

[3] BG Tudorica وC. بوكور، "مقارنة بين عدة قواعد البيانات nosql مع التعليقات والملاحظات، "في Roedunet المؤتمر الدولي (RoEduNet)، 2011 10. IEEE، 2011، ص 1-5. (بالانجليزية)

[4] F. تشانغ، J. عميد، S. Ghemawat، WC هسيه، DA الاك، M. الجحور، T. شاندرا، A. Fikes، وRE جروبر، "Bigtable: نظام التخزين الموزعة البيانات المهيكلة" المعاملات ACM على أنظمة الحاسوب (جان الخيارات التقنية)، المجلد. 26، لا. 2، ص. 4، 2008. (بالانجليزية)

[5] W. Naheman وJ. وي "، مراجعة لقواعد البيانات nosql والأداء اختبار على hbase "، في علوم الميكاترونيك، كهرباء الهندسة والحاسب الآلي (MEC)، وقائع الدولية 2013 مؤتمر حول. IEEE، 2013، ص. 2304-2309. (بالانجليزية)

[6] Y. لى، Y. سوي، وC. تساو، "العلاقات التكميلية والمشابك على مفهوم في قواعد البيانات العلائقية، "في الدلالة، المعرفة والشبكة 2009. SKG 2009. الدولي الخامس مؤتمر حول. IEEE، 2009، ص. 152-159. (بالانجليزية)

[7] R. الزوايا وC. جوتيريز "، مسح قاعدة بيانات الرسم البياني نماذج "استطلاعات ACM الحاسبات (CSUR)، المجلد. 40، لا. 1، ص. 1، 2008. (بالانجليزية)

[8] RT فيلدينغ وRN تايلور، "التصميم المبدئي للالعمارة الويب الحديثة "المعاملات ACM على الإنترنت تكنولوجيا (TOIT)، المجلد. 2، لا. 2، ص 115-150، 2002. (بالانجليزية)

[9] أولا روبنسون، J. ويبر، وE. Eifrem وقواعد البيانات الرسم البياني. " أورايلي وسائل الإعلام، وشركة "، 2013. (بالانجليزية)

[10] R. كاتل "SQL قابلة للوالبيانات nosql مخازن،" ACM SIGMOD سجل، المجلد. 39، لا. 4، ص. 12-27، 2011. (بالانجليزية)

[11] J. هان، E. هايهونغ، G. لو، وJ. دو "المسح على nosql قاعدة بيانات "، في الحوسبة والتطبيقات الواسعة الانتشار (ICPCA)، 2011 المؤتمر الدولي 6TH جرا. IEEE، 2011، ص. 363-366. (بالانجليزية)

[12] د. KARGER، E. ليمان، T. ليتون، R. Panigrahy، M. ليفين، وD. لوين "تجزئة المتسقة والأشجار العشوائية: الموزعة بروتوكولات التخزين المؤقت لتخفيف البقع الساخنة في العالم الشبكة "في وقائع ACM السنوية التاسعة والعشرين ندوة حول نظرية الحوسبة. ACM، 1997، ص. 654-663. (بالانجليزية)

[13] E. هيويت، كاساندرا: دليل قاطع. "أوريلي وسائل الإعلام، وشركة "، 2010. (بالانجليزية)

[14] G. DeCandia، D. Hastorun، M. Jampani، G. Kakulapati،A. لاكشمان، A. Pilchin، S. موزس، P. Vosshall،وW. فوجيلز، "دينامو: الأمازون المتاحة للغاية keyvalue مخزن "في ACM SIGOPS أنظمة التشغيل الاستعراضي،المجلد. 41، لا. 6. ACM، 2007، ص. 205-220. (بالانجليزية)

[15] M. سلي، A. أغاروال، وM. Kwiatkowski "، والتوفير: قابلة للتنفيذ الخدمات عبر اللغة، "الفيسبوك الأبيض ورقة، المجلد. 5، لا. 8، 2007. (بالانجليزية)

[16] TJ يمان وMJ كاري، "دراسة الهياكل مؤشر لأنظمة إدارة قواعد البيانات الذاكرة الرئيسية "، في بروك. VLDB، 1986. (بالانجليزية)

[17] د. كومر "، الموجودة في كل مكان ب شجرة" مسوح ACM الحاسبات(CSUR)، المجلد. 11، لا. 2، ص 121-137، 1979. (بالانجليزية)

[18] R. باير وE. McCreight، تنظيم وصيانة الكبيرة أمر الفهارس. الوثاب، 2002. (بالانجليزية)

[19] I.-H. لي، S.-G. مخبأ لي، وJ. شيم "جعل تي الأشجار واعية على المعالجات السلع. "J. المشاة. الخيال العلمي. المهندس،المجلد. 27، لا. 1، ص 143-161، 2011. (بالانجليزية)

[20] K.-R. تشوي وK.-C. كيم، "T * -tree: ذاكرة الرئيسية هيكل الرقم القياسي قاعدة البيانات للتطبيقات في الوقت الحقيقي، "في الحقيقي الوقت نظم الحاسبات والتطبيقات، 1996. وقائع، ورشة العمل الدولية الثالثة حول. IEEE، 1996، ص.81-88. (بالانجليزية)

[21] J. يندستروم، "T الارتباط الشجرة: الرئيسي بنية مؤشر الذاكرة مع التحكم التزامن والانتعاش "، في وقائع الثالث مؤتمر حول مؤتمر IASTED الدولي: التقدم

في علوم الحاسب الآلي والتكنولوجيا، ACST، المجلد. 7، 2007، ص. 533-538. (بالانجليزية)

[22] د. أوهين-Kwofie، EJ أوتو، وG. Nimako، "O2-شجرة: A سريع مؤشر المقيمين الذاكرة لتخزين البيانات nosql، "في الحوسبة علوم والهندسة (CSE)، 2012 IEEE 15 مؤتمر دولي حول. IEEE، 2012، ص. 50-57 (بالانجليزية)