يتضمن إنشاء مشروع جديد اختيار قاعدة البيانات المناسبة لتخزين بياناتك. العديد من المطورين الذين أعرفهم يختارون قاعدة البيانات العلائقية بشكل افتراضي منذ البداية. ولكن هل هو القرار الأفضل؟ بالطبع، يعتمد ذلك على العديد من العوامل. في هذه المقالة، أود أن أقدم لك أنواعًا أخرى من قواعد البيانات لتسهيل اختياراتك ومساعدتك على الاستعداد في مساعيك المستقبلية.
ليس نوع قاعدة البيانات الخاصة بك هو الموضوع الوحيد الذي يجب مراعاته. هناك العديد من القضايا الأخرى التي يجب التفكير فيها، على سبيل المثال، كم عدد المستخدمين النشطين الذين قد يكون لدى التطبيق؟ هل تحتاج إلى اتساق قوي في كل مكان؟ هل سيكفي الاتساق النهائي في بعض الحالات؟ هناك الكثير من الأسئلة دون إجابات مباشرة حيث أنه "كلما تعمقت في الأمر، كلما أصبح الأمر أكثر تعقيدًا". لذا، يرجى ملاحظة أن هذه المقالة تركز فقط على أنواع قواعد البيانات.
تناول فنجاناً من القهوة واستمتع بهذه القراءة.
تصنيف قاعدة البيانات العامة
في البداية، من الجيد أن تعرف أن هناك نوعين رئيسيين من قواعد البيانات: العلائقية (SQL) وغير العلائقية (NoSQL).
- تتم هيكلة قواعد بيانات SQL بطريقة علائقية، مما يعني أنك تخزن البيانات في جداول وتحتفظ بالعلاقات بينها.
- قواعد بيانات NoSQL (وليس فقط SQL)، على عكس قواعد البيانات العلائقية، ليست منظمة بشكل جيد، وبالتالي فهي تتيح المزيد من القدرة على التكيف والمرونة.
هناك نوع آخر غير النوعين المذكورين أعلاه، وهو قاعدة البيانات داخل الذاكرة. لا يمكن تصنيفها كقاعدة بيانات علائقية أو غير علائقية لأنها تتعلق بمكان تخزين البيانات فعلياً. يمكن تخزين كل قاعدة بيانات على قرص أو في الذاكرة.
أنواع قواعد البيانات
1. العلائقية
في رأيي، إنها أكثر أنواع قواعد البيانات شيوعًا. تعمل بشكل جيد مع البيانات الهيكلية حيث تريد الاحتفاظ بالعلاقات بين السجلات. يتم وصف بنية قاعدة البيانات في مخطط.
تتعلق المزايا الرئيسية بالمعاملات (فهي تساعد على ضمان تكامل البيانات واتباع قواعد ACID) والقدرة على التعامل مع الكثير من الاستعلامات المعقدة.
متى تختارها؟
إنه مفيد لحفظ البيانات التي لا تتغير هيكليًا كثيرًا وتحتاج إلى تخزينها بشكل دائم، على سبيل المثال:
- إدارة علاقات العملاء (CRM),
- إدارة الطلبات,
- تخطيط موارد المؤسسات (انتربرايز تخطيط الموارد),
- تخزين البيانات أو إدارة المخزون,
- المحاسبة أو المالية.
أمثلة على ذلك:
أمازون أورورا، Microsoft Azure قاعدة بيانات SQL SQL، PostgreSQL، MySQL.
قواعد البيانات العلائقية غير كافية للعديد من التطبيقات الجديدة وتحتاج إلى أكثر من قاعدة بيانات واحدة. سأركز في الجزء التالي من المقال على قواعد البيانات غير العلائقية.
2. قيمة المفتاح
يخزن كل قيمة بيانات بمفتاح فريد. وهذا يعني أنه يتم الوصول إلى البيانات بواسطة مفتاح واحد، تمامًا كما هو الحال في خريطة التجزئة. على النقيض من قواعد البيانات العلائقية، فهي لا تفرض المخطط ولا العلاقات بين السجلات. معظم قواعد البيانات هذه لا تدعم عادةً عمليات التحديث. لتعديل البيانات، عليك الكتابة فوق المجموعة الموجودة بأكملها.
متى تختارها؟
وهي مفيدة للبيانات التي تريد قراءتها/كتابتها بسرعة (ولكن لا يتم تحديثها كثيرًا):
- المزايدة في الوقت الحقيقي، وعرض الإعلانات في الوقت الحقيقي
- التخزين المؤقت للبيانات,
- إدارة الجلسات,
- عربات التسوق,
- تفضيلات العميل أو إدارة الملف الشخصي.
أمثلة على ذلك:
Memcached، Amazon DynamoDB، Azure Cosmos DB، Redis.
3. المستندات
يخزن مجموعات من المستندات. يحتوي كل مستند على حقول تحتوي على بيانات، والتي قد تكون قيمًا بسيطة أو عناصر معقدة، مثل القوائم أو المجموعات الفرعية. من المهم أن تعرف أن كل مستند قد يكون له بنية مختلفة، حتى لو كانت تمثل نفس الشيء (كل مستند فريد من نوعه ويتطور مع مرور الوقت). على سبيل المثال، يحتوي مستند العميل الأول على معلومات أقل من الثاني:
{
"الاسم الأول": "جون",
"اسم العائلة": "مزيف",
"الدراجات النارية:" [
{
"الطراز": "BMW",
"السنة": 2020
}
]
}
{
"الاسم الأول": "أليكس",
"اسم العائلة": "Nolastname",
"العمر": 15,
"العنوان": {
"البلد": "بولندا",
"المدينة": "مكان ما"
},
"الدراجات النارية:" [
{
"الطراز": "BMW",
"السنة": 2020
}
]
}
متى تختارها؟
وهو مفيد للبيانات التي تتطلب مخططًا مرنًا للمعالجة السريعة:
- المنتج الكتالوجات
- نظام إدارة المحتوى (CMS),
- ملفات تعريف المستخدمين والتخصيص.
أمثلة على ذلك:
Amazon DocumentDB، وAzure Cosmos DB، وMongoDB، وRedis.
4. رسم بياني
تستخدم بنية رسم بياني وهي مبنية من عنصرين: العقد والحواف. العقد مماثلة لصفوف الجدول أو مستندات JSON. الحواف هي العلاقات بين العقد - وهي لا تقل أهمية عن العقد. يمكن أن يكون لكل منهما خصائص. علاوة على ذلك، يمكن أن يكون للحواف اتجاه محدد للعلاقة.
متى تختارها؟
يكون مفيدًا عندما تكون بياناتك مشابهة للرسم البياني، أي عندما تكون العلاقات بين عناصر البيانات ديناميكية وتتغير بمرور الوقت. وعلاوة على ذلك، فهو خيار جيد عندما يكون العمل أو التقنية الفريق بحاجة إلى فهم العلاقات داخل بياناتهم. تتضمن بعض الأمثلة البارزة ما يلي:
- المخططات التنظيمية,
- كشف الاحتيال,
- الرسوم البيانية الاجتماعية/الشبكات الاجتماعية,
- محركات التوصيات,
- الرسوم البيانية المعرفية.
أمثلة على ذلك:
Amazon Neptune و Neo4j و ArangoDB و Titan.
5. السلاسل الزمنية
يخزن البيانات مرتبة حسب الوقت. وعادةً ما يجمع كميات هائلة من البيانات في الوقت الفعلي. وغالبًا ما يتم استخدامه لحفظ البيانات، على الرغم من أن التحديث نادر جدًا. بشكل عام، يتم استخدام الطابع الزمني كمفتاح أساسي و/أو فرز البيانات. تسمح بعض قواعد البيانات بتضمين علامات تعريفية كمعلومات إضافية، مثل أصل البيانات أو نوعها.
متى تختارها؟
من المفيد تخزين كميات صغيرة من البيانات المُلحقة بالتسلسل الزمني في ترتيب زمني، على سبيل المثال في:
- DevOps,
- مراقبة التطبيق,
- المراقبة وقياس الأحداث عن بُعد,
- إنترنت الأشياء التطبيقات (مثل جمع البيانات من مستشعرات الأجهزة).
أمثلة على ذلك:
Azure Time Series Insights، Amazon Timestream، InfluxDB.
6. دفتر الأستاذ
وهو يوفر سجل معاملات غير قابل للتغيير وشفاف وقابل للتحقق من التشفير ومملوك لسلطة مركزية. - نظرة عامة على QLDB من أمازون
دعونا نشرح باختصار كل كلمة رئيسية في الاقتباس أعلاه:
- ثابت - يعني أن السجل الذي تم إنشاؤه في قاعدة البيانات هذه لا يمكن حذفه أو تعديله أو حتى الكتابة فوقه,
- شفاف - يتتبع ويحتفظ بسجل تسلسلي لكل تغيير في بياناتك,
- قابلة للتحقق منها تشفيريًا - يتم التحقق من البيانات التي تم إنشاؤها في قاعدة البيانات هذه عن طريق تقنيات التجزئة التشفيرية، على غرار سلاسل الكتل (باستخدام دالة التجزئة SHA-256).
متى تختارها؟
من المفيد تخزين السجل الدقيق، على سبيل المثال، تسجيل الإدخال المتسلسل لكل تغيير في البيانات، كما في
- الشؤون المالية (تاريخ المعاملات المدينة أو الائتمانية),
- التصنيع (تتبع مصدر القطع التي تم الحصول عليها),
- التأمين,
- الموارد البشرية وكشوف المرتبات,
- البيع بالتجزئة,
- سلاسل التوريد.
أمثلة على ذلك:
أمازون كيو إل دي بي
الاستنتاجات
لا توجد إجابة بسيطة على السؤال المطروح في عنوان هذه المقالة. الطريقة الوحيدة لاختيار قاعدة البيانات المناسبة هي معرفة المزيد عن بياناتك. أجب عن السؤال: "ما نوع البيانات التي يولدها تطبيقك"، وستتمكن من اتخاذ الخيارات الصحيحة.
علاوة على ذلك، يجب أن تعرف متطلبات العمل ومجال التطبيق جيداً. تحتاج إلى معرفة كيف ستستخدم البيانات، وما هي الاستعلامات التي سترسلها إلى قاعدة البيانات، وعدد المرات التي ستحتفظ فيها ببياناتك أو تقرأها أو تحدثها أو تحذفها. كل هذه الأمور مهمة، ولكن لا يولي جميع المطورين اهتمامًا كافيًا لهذه المجالات.
يرجى التفكير في بياناتك في التطبيق الذي تقوم بتطويره لتحسين/إنشاء برنامج أفضل. بشكل عام، آمل أن تتعرف على بياناتك بشكل جيد بما فيه الكفاية لتخزينها في مكان يسعدها.
اقرأ المزيد:
بعض الحيل لتسريع تطبيق JavaScript الخاص بك JavaScript
طرق لزيادة أداء القضبان الخاصة بك
حقائق وخرافات حول التعاون مع شريك خارجي لتطوير البرمجيات