Talal Almutiri
Talal Almutiri

@TALALSQL

14 تغريدة 3 قراءة Jan 26, 2023
معظم الجهات تعتمد على قواعد البيانات العلائقية Relational والمبنية على Fixed Schema بمعنى الإعتماد على حقول أو أعمدة مجهزة مسبقاً. هذا أحد الأسباب التي دعت لظهور NoSQL database وهذا موضوعنا في هذه التغريدات
#علم_البيانات
بشكل مختصر راح نتكلم عن الأنواع:
Key value
Document-based
Column-based
Graph-based
في البداية ال Fixed schema لما أنشئ جدول للموظفين فيه الرقم- الاسم- نوع الموظف - ساعات العمل - أجر الساعة
وعندي موظفين دائمين وموظفين بعقد
في حال تسجيل موظف دائم
ما تحتاج ساعات العمل وأجر الساعة
فستكون قيم فارغة أو صفر
عدم المرونة هذا في العلائقية من أسباب ظهور ال NoSQL. طبعا هذا مثال. ويمكن حله أساساً من خلال تصميم العلاقات والوراثة في قواعد البيانات العلائقية لكن هو لتوضيح فكرة حاجه ال NoSQL
أيضا هناك بعض القيود في ال scalability في العلائقية. وغيرها
ممكن تشوفه الفروق بين SQL و NoSQL
1- Key value
هذا أبسط الأنواع وهو تسجيل القيم بالشكل التالي. المعرف key وهو مثلاً العمر. والقيمة value وهي ٢٠
لو أخذنا بيانات الطالب فيكون المُعرف هو رقم الطالب Id والقيمة هي أزواج من المعرفات والقيم
مثلا الاسم: محمد
العمر: ٢٠
كما في الصورة (بحيث بيانات الطلاب في ملف واحد)
مميزاته: ال high performance لأن البحث بال key الذي يكون unique
عيوبه: ما تقدر تبحث بالقيمة نفسها - تحتاج بعض المعالجة-
تطبيقاته: سلة المشتريات وحفظ اعدادات الموقع أو النظام. وذلك لسرعة الاسترجاع.
البرامج: ال DynamoDB و Voldemort
٢- Document-based
يعتمد هذا النوع على ال key-value ايضاً ولكن النوع السابق جميع بيانات الطلاب مثلا في ملف واحد. هنا كل طالب له ملف.
كما في الصورة
مميزاته:المرونة Flexibility حيث كل ملف له هيكل خاص فيه structure وهذا يساعد في scalability بحيث تتعامل مع زيادة البيانات وتوزع الملفات على nodes مختلفة
عيوبه:الربط والعلاقات بين الملفات صعبة نوعاً ما.
تطبيقاته:صلاحيات المستخدمين بحيث كل مستخدم له ملف
البرامج:DocumentDB و MongoDB
٣- Column-based
قواعد البيانات العلائقية تخزن وتقرأ البيانات في شكل صفوف rows. لكن هذا النوع مشابه لل vertical fragmentation بحيث يتم تقسيم الجدول على أعمدة. كما في الصورة
مميزاته: سرعة الاسترجاع بسبب التعامل مع حقول محددة لذلك هو مناسب في التحليل. أيضا ال scalability ومناسب للمعالجة المتوازية
عيوبه: غير مناسب عند الرغبة في عرض كامل بيانات الطالب مثلاً. حيث الحقول موزعة. عملية إضافة أو تعديل سجل فيها بعض الصعوبات بسبب التوزيع أيضاً
تطبيقاته: مناسب في التحليل وعمل ال aggregation مثل Avg و Sum وغيرها المستخدمة في التقارير أو لوحات المعلومات dashboard.
البرامج: Cassandra, BigTable, Hbase
٤- Graph-based
هذا النوع مرن للغاية حيث يركز على العلاقات. فيتم تخزين ال entities والعلاقات بينهم. ال entity مثلاً المستخدم والعلاقة صداقة/ متابعة. فيكون ال entity ك nodes والعلاقة ك edges
كما في الصورة
مميزاته:الrepresentation واضح مشابه لتفكير البشر.العلاقات تمثل ال join فالربط جيد نوعاً ما
عيوبه:لا يوجد له standard query language وكذلك في scalability حيث غالباً مصمم لone-tier architecture
تطبيقاته:مناسب لل Network management وتمثيل الطرق و social media networks
البرامج:neo4j

جاري تحميل الاقتراحات...