اذهب إلى المحتوى

أنواع قواعد البيانات وأهم مميزاتها واستخداماتها


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

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

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

ما هي قواعد البيانات؟

قبل أن نتعرف على أنواع قواعد البيانات المختلفة دعنا نعرف في البداية ما معنى البيانات وما هي قاعدة البيانات وما أهميتها.

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

وتحتاج قاعدة البيانات إلى نظام خاص لإدارتها وهو ما يعرف بنظام إدارة قواعد البيانات Database Management System أو اختصارًا DBMS كي يسمح لنا بالاتصال المباشر مع قاعدة البيانات وتخزين البيانات فيها أو استخراج البيانات المخزنة فيها أو ما يعرف بالاستعلام عن البيانات Query بالإضافة إلى معالجتها من تحديث وحذف ونقل …إلخ.

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

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

هناك أنواع مختلفة من قواعد البيانات تعتمد على خصائص البيانات التي تخزنها وطريقة تخزين هذه البيانات ومن أهم أنواع قواعد البيانات التي يحتاج المبرمج لفهمها:

  1. قواعد البيانات العلاقية Relational Databases
  2. قواعد البيانات غير العلاقية Non-Relational Databases
  3. قواعد البيانات كائنية التوجه Object Oriented Databases
  4. قواعد البيانات السحابية Cloud Databases
  5. قواعد البيانات المركزية Centralized Databases
  6. قواعد البيانات الموزعة Distributed Databases

سنتعرف في الفقرات التالية على شرح مفصل عن كل نوع من هذه الأنواع وأهم مميزاتها وحالات استخدامها.

1. قواعد البيانات العلاقية SQL

قاعدة بيانات علائقية.png

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

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

كي تتعامل مع البيانات المخزنة في قواعد البيانات العلاقية تحتاج لاستخدام لغة الاستعلام الهيكلية SQL وهي عبارة عن لغة برمجة قياسية تستخدم للتخاطب مع قاعدة البيانات العلاقية وتخزين البيانات فيها ومعالجتها وصيانتها.

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

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

من أبرز الأمثلة على قواعد البيانات العلاقية نذكر:

2. قواعد البيانات غير العلاقية NoSQL

قاعدة بيانات غير علائقية.png

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

هذه القيود دفعت لظهور نوع جديد من أنواع قواعد البيانات عرف باسم قواعد البيانات غير العلاقية Non-Relational Database أو ما يعرف بقواعد بيانات Not Only SQL أو اختصارًا NoSQL كي تلائم مجموعات البيانات الكبيرة بشكل أفضل وسميت بهذا الاسم لأنها لا تخزن البيانات على شكل جداول فحسب بل تعتمد على طرق وأساليب مختلفة سنتعرف عليها بعد قليل، وهي قادرة على التعامل مع مشكلات الأداء في البيانات الضخمة big data وتستطيع تحليل ومعالجة كمٍّ هائل من البيانات بمرونة وكفاءة عالية.

فقواعد البيانات غير العلاقية NoSQL Databases هي نوع من أنواع قواعد البيانات المستخدمة لتخزين مجموعة ضخمة من البيانات التي تتميز يكونها غير متجانسة وغير مرتبطة مع بعضها البعض وهي تعرف باسم البيانات غير المهيكلة Unstructured Data وهي بيانات يصعب الاحتفاظ بها في جداول لها مخطط ثابت ومنظم.

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

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

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

ومن أبرز الأمثلة على قواعد بيانات غير علاقية نذكر:

  • Redis
  • MongoDB
  • Oracle NoSQL
  • HBase
  • Neo4j
  • OrientDB
  • RavenDB
  • Amazon S3
  • Cassandra

توفر قواعد البيانات غير العلائقية عدة تنسيقات أو طرق لتخزين ونمذجة البيانات كالتالي:

  • قواعد بيانات المفاتيح والقيمة A key-value database: وهي أبسط أنواع قواعد البيانات غير العلاقية وتعتمد على تخزين كل عنصر على شكل خاصية أو مفتاح وقيمة مرتبطة به الأمر الذي يسهل استرداد المعلومات منها من خلال استعلامات بسيطة، ومثال عليها Redis و DynanoDB.

  • قواعد بيانات المستندات Document databases: نوع من أنواع قواعد البيانات المستخدمة لتخزين البيانات من مختلف الأنواع سواء كانت سلاسل نصية أو أرقام أو قيم منطقية أو مصفوفات أو كائنات بشكل مستندات بتنسيق JSON، وهذا النوع يساعد المطورين في تخزين البيانات باستخدام نفس تنسيق نموذج المستندات المستخدم في الشيفرات البرمجية للتطبيقات. ويعد MongoDB مثالًا شهيرًا عليها.

  • قواعد بيانات المخطط البياني Graph Databases: يستخدم هذا النوع لتخزين كميات هائلة من البيانات ضمن رسم بياني مكون من عقد تخزن كيانات البيانات وروابط تعبر عن العلاقات بين هذه العقد، من الأمثلة عليه قواعد البيانات Neo4j و Janusgraph ومن أبرز تطبيقاتها مواقع التواصل الاجتماعي التي تربط المستخدمين فيما بينهم وتقترح الصداقات المناسبة بناء على هذه الروابط.

  • قواعد بيانات الأعمدة Column Store Database يعرف هذا النوع كذلك باسم مخزن العمود العريض Wide column store وهو طريقة مشابهة لتمثيل البيانات في قواعد البيانات العلائقية إلا أن البيانات تخزن في جداول مكونة من صفوف وأعمدة عريضة أو ديناميكية قابلة للتوسع وتوفر قدرة تخزين إضافية فليس من الضروري أن يكون لكل صف نفس مجموعة الأعمدة، وتناسب أنواع محددة من البيانات مثل ملفات تعريف المستخدمين. ومن الأمثلة عليها Cassandra و HBase.

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

3. قواعد البيانات كائنية التوجه

قاعدة بيانات كائنية التوجه.png

قواعد البيانات كائنية التوجه Object Oriented Database هي نوع من قواعد البيانات قائم على مفهوم الكائنات وهو يجمع بين مبادئ البرمجة الكائنية (OOP) ومفاهيم قواعد البيانات العلاقية.

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

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

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

هذا النوع من قواعد البيانات ليس شائع الاستخدام كقواعد البيانات العلاقية ومن أشهر قواعد البيانات كائنية التوجه هي:

  • DB4o
  • Objectivity/DB
  • ObjectDB
  • ObjectDatabase++‎
  • ObjectStore

4. قواعد البيانات السحابية

قاعدة البيانات السحابية.png

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

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

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

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

  • خدمات أمازون ويب AWS
  • منصة جوجل السحابية
  • Oracle Database
  • OpenStack
  • *Kamatera Cloud

5. قواعد البيانات المركزية

قاعدة البيانات المركزية.png

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

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

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

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

6. قواعد البيانات الموزعة

قاعدة البيانات الموزعة.png

في قواعد البيانات الموزعة Distributed Database أو اختصارًا DDBs يتم تخزين البيانات في مواقع مادية مختلفة لكنها تكون متصلة ببعضها البعض بواسطة شبكة تتيح الوصول لكافة هذه البيانات المخزنة في عدة مواقع ما يجعل هذه القواعد الموزعة تبدو للمستخدمين النهائيين كأنها قاعدة بيانات مخزنة في مكان مادي واحد.

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

يمكن أن تصنف قواعد البيانات الموزعة إلى نوعين مختلفين هما:

  • قواعد بيانات موزعة متجانسة Homogenous: تخزن قواعد البيانات في هذه الحالة على نفس أنواع الأجهزة التي تستخدم نفس أنظمة التشغيل وتستخدم برمجيات إدارة قواعد بيانات DBMS متطابقة ويكون كل موقع على علم بجميع المواقع الأخرى ويتعاون معها لمعالجة طلبات المستخدمين ويتم الوصول إلى قاعدة البيانات من خلال واجهة واحدة كما لو كانت قاعدة بيانات واحدة.

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

الخلاصة

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

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

اقرأ أيضًا


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...