هل سألت نفسك من قبل لماذا لا يظهر لك على وسائل التواصل الاجتماعي سوى الأشياء التي تحبها وتهتم بها؟ هل تساءلت كيف يتذكر فيسبوك ذكرياتك ويخبرك أنك نشرت منشورًا معينًا منذ سنة أو اثنتين أو ثلاث؟ يمكن اختصار إجابة هذه الأسئلة في كلمة واحدة: قواعد البيانات (Database).
أود أن أخبرك أن كل تفاعل، أو تعليق، أو حتى الوقت الذي تقضيه على منشور معين، كل هذا يتم تسجيله في قواعد بيانات ضخمة جدًا. ويعتبر تخزين هذه البيانات بمثابة كنز لهذه الشركات. بعد أن تخزن هذه الشركات البيانات لديها، تبدأ بعد ذلك في تحليلها وتقديم توصيات لأشياء شبيهة بها، لكي تقضي وقتًا أطول على وسائل التواصل الاجتماعي ولا تترك هذه المواقع.
قواعد البيانات ليست مجرد نظام للتخزين، بل لقد أصبحت نظامًا ذكيًا جدًا يحلل عاداتك واهتماماتك، ويعرض لك فقط المحتوى الذي يتأكد أنك ستحبه. وهذا هو ما سنتحدث عنه في هذا المقال.
طرق تخزين البيانات
لتخزين أي بيانات، أمامك الآن ثلاث طرق رئيسية:
- تخزين البيانات في أوراق ودفاتر.
- تخزين البيانات في ملفات موجودة على الحاسوب (File System).
- تخزين البيانات في قواعد بيانات (Databases)، وهي الطريقة الأكثر ذكاءً وفعالية.
دعونا الآن نستعرض معًا مشاكل الطريقتين الأوليين، لنرى كيف تمكنت قواعد البيانات من حل المشاكل التي كانت موجودة في النظام الورقي ونظام الملفات.
١. مشاكل تخزين البيانات في الأوراق
فكر معي، ما هي المشاكل التي قد تواجهني إذا قمت بتخزين بياناتي في أوراق أو دفاتر؟
- إمكانية الضياع أو السرقة: يمكن أن تضيع الأوراق أو تُسرق بسهولة.
- صعوبة البحث: إذا كنت تبحث عن معلومة معينة، ستحتاج إلى النظر في كل هذه الأوراق بنفسك للعثور عليها.
- انعدام الأمان: الأوراق قد تكون متاحة في أي مكان، ويمكن لأي شخص الاطلاع على محتواها.
- عدم وجود ترابط: قد يكون لديك دفتر للحسابات، وآخر للمبيعات، وثالث للأقساط، ولكن لا توجد أي علاقة تربط هذه الدفاتر ببعضها.
هذه الطريقة مليئة بالمشاكل ولن تكون مجدية في عالمنا الرقمي.
٢. مشاكل نظام الملفات (File System)
الطريقة الثانية هي نظام الملفات، أي تسجيل البيانات في ملفات على الحاسوب. لكن هذه الطريقة أيضًا لها مشاكل شبيهة بالنظام الورقي. يخزن نظام الملفات كل شيء في ملفات منفصلة، وكل ملف يكون مستقلاً بذاته، ولا تكون لدي طريقة لربط البيانات ببعضها.
على سبيل المثال، لو أن لدي ملفين: ملف يخص الموظفين وآخر يخص بيانات الحضور والانصراف، وأردت أن أعرف الموظفين الذين تأخروا أكثر من مرتين في الأسبوع. ملف الموظفين يحتوي على بيانات مثل الاسم والعمر والراتب، وملف الحضور والانصراف يسجل وقت دخول وخروج كل موظف. سأضطر لفتح هذين الملفين على الحاسوب والبدء في الربط بينهما بشكل يدوي، وهو أمر مجهد للغاية.
إضافة إلى ذلك، في نظام الملفات، غالبًا ما تكون البيانات مكررة. فمثلًا، في شركة ما، قد يكون هناك ملف لقسم الموارد البشرية (HR) وملف آخر لقسم الماليات (Finance). بيانات الموظف الواحد ستكون مكررة في كلا الملفين، وهذا يسبب مشاكل كبيرة، منها:
- إهدار مساحة التخزين: تخزين نفس البيانات أكثر من مرة هو أمر لا داعي له.
- عدم اتساق البيانات (Data Inconsistency): لنفترض أن الموظف “محمد” مسجل في ملف الموارد البشرية وملف الماليات. إذا قام بتغيير رقم هاتفه في ملف الموارد البشرية فقط، ولم يتم تحديثه في ملف الماليات، ستصبح البيانات لدي متناقضة وغير مترابطة.
للأسف، ظهرت لهذا النظام مشاكله هو الآخر. فهل يوجد حل لكل هذا؟ هنا يأتي دور قواعد البيانات.
الحل: قواعد البيانات (Databases)
دعونا الآن نرى كيف تحل قواعد البيانات المشاكل التي كانت موجودة في النظام الورقي ونظام الملفات. قبل أن نبدأ، يجب أن نعرف أن هناك أنواعًا كثيرة من قواعد البيانات، مثل:
- قواعد البيانات العلائقية (Relational Databases)
- قواعد البيانات غير العلائقية (NoSQL Databases)
- قواعد بيانات الرسم البياني (Graph Databases)
في هذا المقال، سنركز على قواعد البيانات العلائقية (Relational Databases)، والتي تُعرف أيضًا بقواعد بيانات SQL.
ما هي قواعد البيانات العلائقية؟
هي نوع من قواعد البيانات يتم فيه تخزين البيانات على شكل جداول مرتبطة ببعضها. كل جدول يتكون من صفوف (Rows) وأعمدة (Columns).
دعونا الآن نلقي نظرة على هذا الجدول كمثال لجدول موظفين في شركة:
FirstName | LastName | JobTitle | Department | HireDate | Salary |
---|---|---|---|---|---|
احمد | الجندي | Developer | IT | 2023-01-15 | 50000 |
سارة | علي | Manager | HR | 2022-05-20 | 75000 |
محمد | حسن | Analyst | Finance | 2023-03-10 | 60000 |
- الأعمدة (Columns): تمثل الخصائص التي نحتاج إلى تسجيلها لكل موظف، مثل اسمه، نوع وظيفته، القسم الذي يعمل فيه، تاريخ تعيينه، وراتبه. نحن نسجل فقط البيانات التي يحتاجها العمل. فمثلًا، لن نضيف في جدول الموظفين حقلًا لنوع الأكل المفضل للموظف، لأن معلومة كهذه لن تفيد العمل.
- الصفوف (Rows): يمثل كل صف سجلًا خاصًا بموظف معين. فالصف الأول يخص “احمد” ويحتوي على جميع بياناته المسجلة.
لغة الاستعلام الهيكلية (SQL)
للتواصل مع قاعدة البيانات، نستخدم لغة برمجة متخصصة تسمى SQL (Structured Query Language). كيف يتم ذلك؟
لنفترض أنني أريد معرفة كل الموظفين الذين يعملون في قسم تكنولوجيا المعلومات (IT). كل ما سأفعله هو كتابة استعلام (Query) بلغة SQL:
SELECT * FROM Employees WHERE Department = 'IT';
عندما تتلقى قاعدة البيانات هذا الاستعلام، ستقوم بفهمه وإعادة البيانات التي طلبتها.
وإذا انضم موظف جديد للشركة وأردت إضافته، سأستخدم SQL أيضًا:
INSERT INTO Employees (FirstName, LastName, JobTitle, Department, HireDate, Salary)
VALUES ('علي', 'محمود', 'Developer', 'IT', '2025-07-28', 52000);
ملاحظة: تقوم لغة SQL بالعديد من المهام، منها:
- إنشاء قواعد البيانات والجداول.
- الاستعلام عن البيانات (طرح أسئلة).
- تعديل وحذف البيانات.
- التحكم في صلاحيات الوصول إلى البيانات، فقاعدة البيانات ليست متاحة للجميع. يجب تحديد من يمكنه الوصول إليها وما يمكنه فعله.
نظم إدارة قواعد البيانات (DBMS)
هل تتذكرون لغة SQL التي تحدثنا عنها؟ قامت بعض الشركات والمؤسسات بأخذ هذه اللغة، طورتها قليلًا، وأضافت إليها مميزات لإنشاء نظام متكامل لإدارة قواعد البيانات، وهو ما نسميه DBMS (Database Management System).
الـ DBMS هو البرنامج أو السوفت وير المسؤول عن إدارة كل ما يخص قواعد البيانات. هذه الأنظمة توفر بيئة كاملة للتعامل مع البيانات، وليس مجرد استعلامات تكتبها. من خلالها، أصبحنا قادرين على:
- التعامل مع كميات ضخمة من البيانات.
- إجراء تحليلات على البيانات واستخراج تقارير يومية أو شهرية أو سنوية لتحسين العمل.
- توفير نسخ احتياطي تلقائي للبيانات واسترجاعها بسهولة في حالة فقدانها.
- ضمان سلامة البيانات (Data Integrity)، أي التأكد من أن البيانات صحيحة ومتناسقة من خلال القيود (Constraints) التي نضعها.
أنواع نظم إدارة قواعد البيانات
تنقسم نظم إدارة قواعد البيانات إلى نوعين رئيسيين:
- مفتوحة المصدر (Open Source): تكون مجانية أو منخفضة التكلفة، مثل PostgreSQL و MySQL. هذه الأنظمة مناسبة للمشاريع الفردية والشركات الصغيرة.
- تجارية (Commercial): مثل Oracle Database و Microsoft SQL Server. تكون هذه الأنظمة مناسبة للشركات الكبيرة والبنوك لأنها توفر أمانًا وأداءً عاليين ودعمًا فنيًا، لكن أسعارها تكون مرتفعة جدًا.
الخلاصة
كل ما ذكرناه كان مقدمة تهدف إلى توضيح معنى قواعد البيانات، بحيث عندما تسمع هذا المصطلح، تفهم جيدًا عما يتحدث الناس. قواعد البيانات هي الحل المثالي لتخزين وإدارة البيانات لأنها أسرع، وأكثر أمانًا، وأسهل في الإدارة.