سأل شخص ما عن الفرق بين قاعدة البيانات (Database) وهياكل البيانات (Data Structure) وإليك الإجابة:

(الداتاستركشر) تتعامل مع الذاكرة “المؤقتة” (RAM) فيما (الداتابيز) تتعامل مع الذاكرة “الدائمة” (Hard disk).
أبسط مثال على الداتاستركشر هو المصفوفة Array، وأبسط مثال على الداتابيز هي الجدول Table المخزن على الهاردسك.

لتبسيط المثال أكثر، أنت تصمم برنامج إضافة ملاحظات:

عند إضافة ملاحظة جديدة لابدّ وأننا نحتاج أولًا إضافتها للذاكرة المؤقتة (RAM)،
لهذا السبب سوف تحتاج إلى تعريف مصفوفة ﻹلحاق الملاحظات إلى الذاكرة المؤقتة (المصفوفة هي قائمة من العناصر المتجانسة).

وﻷن الذاكرة المؤقتة RAM لا تحتفظ بالبيانات وتسمى بالذاكرة “المتطايرة”،

فإن عناصر المصفوفة (قائمة الملاحظات المضافة) سوف تضيع هباءً بمجرد الخروج من التطبيق
لهذا السبب نحتاج إلى التقاط تلك العناصر ووضعها في الذاكرة الدائمة (Hard disk).

وهنا يأتي دور الداتابيز (Database) حيث أنها مكان لتخزين البيانات بصورة منظمة على شكل جداول (Tables) بشكل دائم (حيث الجدول يحتوي مثلا على رقم العنصر الفريد id وعلى نصّ العنصر (note_text) “ملاحظتي اﻷولى!” وهكذا…

هنالك العديد من اﻷمثلة المشهورة على أنظمة إدارة قواعد البيانات مثل MySQL وSQL Server وOracle وMongoDB وغيرها…

*من اﻷمثلة على الداتاستركشر:
– المصفوفة (حيث العناصر مخزنة بصورة اعتيادية بشكل متسلسل)
– الـ Stack أو المرصوصة (Last in First Out)، مثل رصّة الصواني حيث آخر عنصر دخل للقائمة هو أول عنصر سيتم طباعته.
– ال Queue أو الطابور (First in First Out)، حيث أول عنصر بالطابور يجب أن يُخدم أولًا. وهو مفيد في أولويات العمليات مثل عملية الطباعة (طابور طباعة المستندات).

كل تلك العمليات تتم في الذاكرة المتطايرة (RAM).

وغالبا ما تتحد الداتاستركشر مع الخوارزميات، والخوارزمية ما هي إلا مجموعة من خطوات الحلّ نحن ابتكرناها، وأدعوك لقراءة مقالتي السابقة (ما الفرق بين الخوارزميات و الـ DATA STRUCTURES؟)