ما هي قواعد البيانات ؟
في مقال اليوم، نقدم شرحًا كافيًا عن أصناف قواعد البيانات الأكثر شيوعًا التي يحتاج أي مبرمج لمعرفتها لتطوير التطبيقات المتباينة ونوضح أسلوب حفظ البيانات ضمنها وأبرز خصائصها ونذكر أمثلة متنوعة عن كل نوع منها ونعينك على اختيار نوع قاعدة البيانات الأنسب لتخزين بياناتك.
فالبيانات اليوم عصب حياتنا الراهنة ولا غنى عنها لتسيير أعمال الأنظمة الحديثة، وجميع النشاطات التجارية في مختلف الميادين أضحت تحتاج إلى تخزين كمية هائلة من البيانات حول زبائنها وموظفيها ومعاملاتها ومنتجاتها وفواتيرها…إلخ. ولا تقتصر أهمية البيانات على الأنشطة التجارية بل حتى الحياة الشخصية حيث تخزن الأجهزة الإلكترونية المحيطة بنا الكثير من التفاصيل حولنا.
لذا، كان لا بد من وسيلة لحفظ وتنظيم هذه البيانات وإدارتها بشكل فعال، ومن هنا ظهر مفهوم قاعدة البيانات وابتكرت أنواع مختلفة من قواعد البيانات لكل منها منهجية مغايرة في تصميمها وأسلوب تعاملها مع البيانات.
ما هي قواعد البيانات ؟
قاعدة البيانات هي مجموعة منظّمة من المعلومات المهيكلة أو البيانات المخزّنة عادةً بصيغة إلكترونيّة أو في نظام كمبيوتر. عادةً ما تكون قاعدة البيانات تحت تحكم نظام إدارة قاعدة بيانات (DBMS). ومعًا تتم الإشارة إلى البيانات ونظام إدارة قواعد البيانات جنبًا إلى جنب مع التطبيقات المرتبطة بهما باعتبارها نظام قواعد بيانات وغالبًا ما يتم اختصاره إلى قاعدة بيانات فقط.
وعادةً ما تتم صياغة البيانات ضمن الأنواع الأكثر شيوعًا من قواعد البيانات المستعملة اليوم على هيئة صفوف وأعمدة في سلسلة من الجداول لإضفاء الفاعلية على المعالجة والاستعلام عن البيانات. ويمكن حينئذٍ الوصول إلى البيانات وإدارتها وتعديلها وتحديثها والتحكم فيها وتنظيمها بسهولة تستخدم غالبية قواعد البيانات لغة الاستعلام المركّبة (SQL) لكتابة البيانات والاستعلام عنها.
بمعنى آخر قواعد البيانات هي صندوق نخزن فيه أغراضنا بشكل منظم.
ما الفرق بين قاعدة البيانات وجدول البيانات؟
قواعد البيانات وجداول البيانات (مثل Microsoft Excel) كلتاهما وسيلتان مريحتان لتخزين المعلومات. والفرق الرئيسي بينهما هو:
- طريقة تخزين البيانات ومعالجتها
- الأشخاص الذين يمكنهم الوصول إلى البيانات
- مقدار البيانات التي يمكن تخزينها
تم تصميم جداول البيانات في الأصل لمستخدم واحد، وتعكس خصائصها ذلك. تعد خيار رائع للمستخدم الفرد أو لعدد صغير من المستخدمين الذين لا يحتاجون إلى الكثير من المعالجة المعقّدة بطريقة لا تُصدق للبيانات. قواعد البيانات، من الجهة الأخرى، مصممة لحفظ كميات أكبر بكثير من المعلومات المنظّمة وأحيانًا من الكميات الهائلة. تسمح قواعد البيانات للعديد من المستخدمين في الوقت نفسه بالوصول إلى البيانات والاستعلام عنها بسرعة وأمان باستخدام منطق ولغة معقدين للغاية.
ما الغرض من تطبيقات قواعد البيانات؟
تُستخدم برامج قواعد البيانات لإنشاء ملفات وسجلات قاعدة البيانات وتعديلها والاحتفاظ بها، مما يتيح سهولة إنشاء الملفات والسجلات وإدخال البيانات وتحريرها وتحديثها وإعداد التقارير. يتعامل التطبيق أيضًا مع تخزين البيانات والنسخ الاحتياطي وإعداد التقارير والتحكم في الوصول المتعدد والأمان. يعد أمان قاعدة البيانات القوي أمرًا بالغ الأهمية على وجه الخصوص اليوم، حيث تصبح سرقة البيانات أكثر تكرارًا. يُشار إلى برامج قواعد البيانات أحيانًا باسم "نظام إدارة قواعد البيانات" (DBMS).
تجعل برامج قواعد البيانات إدارة البيانات أكثر بساطة من خلال تمكين المستخدمين من تخزين البيانات في نموذج منظم ثم الوصول إليها. يحتوي عادةً على واجهة رسومية للمساعدة على إنشاء البيانات وإدارتها، وفي بعض الحالات، يمكن للمستخدمين إنشاء قواعد البيانات الخاصة بهم باستخدام برامج قاعدة البيانات.
ما المقصود بنظام إدارة قواعد البيانات (DBMS)؟
تتطلب قاعدة البيانات عادةً برنامج قواعد بيانات شاملًا يُعرف باسم نظام إدارة قواعد البيانات (DBMS). يعمل نظام DBMS كواجهة بين قواعد البيانات ومستخدميها النهائيين أو البرامج، ما يسمح للمستخدمين باسترداد المعلومات وتحديثها وإدارة طريقة تنظيم المعلومات وتحسينها. يسهّل نظام DBMS كذلك مراقبة قواعد البيانات والتحكم فيها، مما يمكّن مجموعة متنوعة من العمليات الإدارية، مثل مراقبة الأداء والضبط والنسخ الاحتياطي والاسترداد.
بعض نماذج برامج قواعد البيانات المعروفة أو أنظمة DBMS تشمل MySQL وMicrosoft Access وMicrosoft SQL Server وFileMaker Pro وOracle Database وdBASE.
أنواع قواعد البيانات
هناك أنواع مختلفة من قواعد البيانات تعتمد على خصائص البيانات التي تخزنها وطريقة تخزين هذه البيانات ومن أهم أنواع قواعد البيانات التي يحتاج المبرمج لفهمها:
قواعد البيانات العلاقية -أو العلائقية- أو تعرف أيضًا بقواعد بيانات SQL هي من أكثر أنواع قواعد البيانات شيوعًا واستخدامًا، وهي تخزن البيانات ضمن جداول منظمة لها مخطط ثابت، ويتكون كل جدول من مجموعة من الصفوف والأعمدة التي ترتبط بعلاقات مع بعضها البعض لتشكل قاعدة بيانات ومن هنا جاءت تسميتها بالعلاقية لتميزها بوجود تلك العلاقات بين الجداول.
تمثل الأعمدة خصائص أو سمات الجدول ويمثل الصف القيمة الفعلية لهذه الخاصية ويمثل كل سطر في الجدول سجلًا ويتضمن كل جدول في قاعدة البيانات عمودًا يسمى المفتاح لا يتكرر بين سجل وآخر ويميز السجلات عن بعضها.
كي تتعامل مع البيانات المخزنة في قواعد البيانات العلاقية تحتاج لاستخدام لغة الاستعلام الهيكلية SQL وهي عبارة عن لغة برمجة قياسية تستخدم للتخاطب مع قاعدة البيانات العلاقية وتخزين البيانات فيها ومعالجتها وصيانتها.
تتميز قواعد البيانات العلاقية بأنها قابلة للتوسع وسهولة إضافة بيانات جديدة إلى الجداول دون التأثير على السجلات المخزنة مسبقًا كما أنها توفر حماية عالية للبيانات لأن البيانات مقسمة إلى جداول مما يمكننا من جعل بعض الجداول سرية وعدم السماح بالوصول إليها سوى من قبل مستخدمين بصلاحيات إدارية محددة.
تستخدم قواعد البيانات العلاقية في العديد من التطبيقات إلا أنها تعد مناسبة أكثر لمجموعات البيانات التي لها بنية منظمة يمكن نمذجتها ضمن جداول محددة ومصممة مسبقًا، كما أنها تعتبر ملائمة لمستودعات البيانات لكونها تسهل تنفيذ استعلامات معقدة على بيانات من مصادر متعددة.
من أبرز الأمثلة على قواعد البيانات العلاقية نذكر:
- Oracle
- Microsoft Access
- MySQL
- Microsoft SQL Serve
- IBM Db2
- MariaDB
- PostgreSQL
هذه القيود أدت لظهور نوع جديد من أنواع قواعد البيانات عرف باسم قواعد البيانات غير الارتباطية 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.
قواعد البيانات كائنية التوجه Object Oriented Database هي نوع من قواعد البيانات قائم على مفهوم الكائنات وهو يجمع بين مبادئ البرمجة الكائنية (OOP) ومفاهيم قواعد البيانات العلاقية.
ففي قاعدة البيانات العلاقية يتم تخزين البيانات في جداول مكونة من صفوف وأعمدة وبعدها تقوم لغات البرمجة الكائنية التوجه مثل Java و ++C بقراءة هذه البيانات وتحويلها إلى كائنات في الذاكرة ومعالجتها وإعادة تخزينها من جديد ما يتطلب وقتًا لذا تختصر قواعد البيانات كائنية التوجه الأمر وتعمل على مبدأ تخزين البيانات الكائنات مباشرة في التخزين الدائم وتخزن الكائنات بأكملها في قاعدة البيانات.
ولكون البيانات تمثل وتخزن في نظام قاعدة البيانات كائنية التوجه بشكل كائنات تشبه كائنات العالم الحقيقي بشكل مشابه للأسلوب المستخدم في لغة البرمجة الكائنية وتعبر عن العلاقات بين هذه الكائنات فهذا يجعلها ملائمة لتصميم المشكلات المعقدة ويسهل عملية حفظ البيانات واسترجاعها بكفاءة ومرونة.
تستخدم قواعد البيانات كائنية التوجه في التطبيقات التي تتطلب أداءً عاليًا وتحتاج لاسترداد البيانات بسرعة كالمجالات البحثية والعلمية وفي مجال الاتصالات وعلم الفلك وغيرها من المجالات التي تتطلب تخزين بيانات معقدة واسترجاعها بسرعة وإجراء حسابات معقدة عليها.
هذا النوع من قواعد البيانات ليس شائع الاستخدام كقواعد البيانات العلاقية ومن أشهر قواعد البيانات كائنية التوجه هي:
DB4o
Objectivity/DB
ObjectDB
ObjectDatabase++
ObjectStore
قاعدة البيانات السحابية Cloud Database ليست سوى قاعدة بيانات تقليدية تستخدم مزايا الحوسبة السحابية، إذ تحتفظ ببياناتها ضمن بيئة افتراضية أو سحابة عامة أو خاصة أو مهجنة، وينفذ العمليات عليها عن طريق منصة حوسبة سحابية عامة أو خاصة أو مدمجة تابعة لجهة خارجية.
تنفرد قواعد البيانات السحابية بمرونتها وقابليتها لزيادة أو تقليل الموارد المخصصة لكل مستخدم كسعة التخزين وعرض النطاق بكل يسر وحسب الطلب، فأنت تسدد فقط ثمن ما تحتاج إليه وهذا يخفف تكلفة تخزين وصيانة البيانات.
وكذلك، تسمح للشركات بدعم تطبيقات البرمجيات كخدمة SaaS والوصول إليها عبر الإنترنت، وتتميز بسهولة إدارتها وتوفير تكلفة البنية التحتية والصيانة، لأن مزود الاستضافة هو من يتولى هذا الشأن عادة؛ لذا أصبحت الخيار المفضل للعديد من الشركات في الآونة الأخيرة، لا سيما الشركات الجديدة التي لا تملك الميزانية الكافية لإنشاء بنية تحتية محلية خاصة بها.
هنالك العديد من المنصات والشركات الكبرى التي تقدم خدمات إنشاء قواعد البيانات السحابية، ومن أهمها:
- خدمات أمازون ويب AWS
- منصة جوجل السحابية
- Oracle Database
- OpenStack
- Kamatera Cloud
قاعدة البيانات المركزية هي قاعدة بيانات تحتفظ بكامل بياناتها في موقع واحد رئيسي يمكن للمستعملين المخولين الوصول إليه من أماكن مختلفة وهذا بدوره يتيح لعدة أفراد إمكانية الشغل على نفس البيانات في الوقت نفسه.
تستخدم الشركات الضخمة قواعد البيانات المركزية لحفظ كل البيانات التي تود مشاركتها بين عدة مستخدمين، معلومات الزبائن وبيانات المخزون والسجلات المالية للشركة. كما يمكن استعمالها من قبل المؤسسات الحكومية وفي الجامعات لإنشاء قاعدة بيانات مركزية تشمل كافة بيانات المكتبات لكافة الكليات ليصل لها الطلاب من مختلف التخصصات.
تتميز قواعد البيانات المركزية بأنها تضمن جودة ودقة البيانات وتقلل من مخاطر العبث بها وتحافظ على اتساقها لأنها تدير البيانات في مخزن أو خادم مركزي شامل يتم الوصول إليه عادة عبر الاتصال بالإنترنت.
وتكون تكلفة صيانتها منخفضة، لكنها في نفس الوقت قد لا تكون فعالة من ناحية الوقت لأن حجمها قد يكون كبيرًا جدًا الأمر الذي يرفع من زمن الاستجابة لجلب البيانات منها كما أن حدوث أي تعطل في الحاسوب المركزي الذي يخزن البيانات قد يسبب ضياع كافة البيانات.
في قواعد البيانات الموزعة Distributed Database أو اختصارًا DDBs يتم حفظ البيانات في مواقع مادية متباينة إلا أنها تكون مرتبطة ببعضها البعض عن طريق شبكة تتيح الوصول لكامل هذه البيانات المخزنة في عدة أماكن مما يجعل هذه القواعد الموزعة تبدو للمستعملين النهائيين كأنها قاعدة بيانات محفوظة في موقع مادي واحد.
تستعمل قواعد البيانات الموزعة لتجاوز المشكلات التي قد تنشأ من استعمال جهاز واحد لتخزين قاعدة بيانات مركزية واحدة مثل زيادة الإنتاجية وزمن الاستجابة وقابلية التوسع.
يمكن أن تصنف قواعد البيانات الموزعة إلى فئتين مختلفتين هما:
قواعد بيانات موزعة متجانسة Homogenous: تخزن قواعد البيانات في هذه الحالة على نفس أنواع الأجهزة التي تستخدم نفس أنظمة التشغيل وتستعمل برمجيات إدارة قواعد بيانات DBMS متطابقة ويكون كل موقع على علم بجميع المواقع الأخرى ويتعاون معها لمعالجة استعلامات المستخدمين ويتم الوصول إلى قاعدة البيانات من خلال واجهة واحدة كما لو كانت قاعدة بيانات واحدة.
قواعد بيانات موزعة غير متجانسة Heterogenous: تخزن قواعد البيانات في هذه الحالة في مواقع مختلفة وعلى أجهزة تعمل بأنظمة تشغيل متنوعة وربما تستعمل أنواع قواعد بيانات مختلفة كذلك مثل العلاقية أو كائنية التوجه كما أنها قد تستخدم برمجيات إدارة قواعد بيانات مختلفة عن بعضها البعض وربما لا يكون أحد المواقع على علم بوجود المواقع الأخرى للبيانات مما يترتب عليه محدودية في معالجة بعض الطلبات.
المصادر :
تعليقات
إرسال تعليق