DataBase قواعد بيانات
Photo
في تصميم نظام مثل إنستقرام، يتم استخدام أنواع متعددة من قواعد البيانات، كل منها مخصص لغرض معين لضمان الأداء العالي، القابلية للتوسع، والتعامل مع كميات ضخمة من البيانات. وفقًا للمخطط الذي شاركته، إليك تفصيل لأنواع قواعد البيانات المستخدمة في إنستقرام ودورها:
1. قاعدة بيانات علائقية (Relational Database - SQL)
الدور: تخزين البيانات المنظمة التي تتطلب علاقات بين الجداول.
الاستخدامات في إنستقرام:
تخزين بيانات المستخدمين مثل الاسم، البريد الإلكتروني، وتاريخ التسجيل.
تخزين التعليقات المرتبطة بالمنشورات.
إدارة العلاقات بين المستخدمين (مثل المتابعة والمتابعين).
الأمثلة: PostgreSQL, MySQL.
2. قاعدة بيانات NoSQL
الدور: تخزين البيانات غير المنظمة والتي تتطلب استعلامات سريعة وقابلة للتوسع أفقيًا.
الاستخدامات في إنستقرام:
تخزين المحتوى العام مثل المنشورات، الإعجابات، والإشعارات.
تخزين تحليلات الاستخدام مثل عدد المشاهدات، النقرات، والتفاعل مع المحتوى.
الأمثلة: Apache Cassandra, MongoDB.
3. التخزين المؤقت - الكاش (Cache)
الدور: تحسين سرعة الوصول إلى البيانات المخزنة والتي يتم طلبها بشكل متكرر.
الاستخدامات في إنستقرام:
تخزين المنشورات الأكثر تداولًا بحيث يتم جلبها بسرعة دون الحاجة لاستعلامات قاعدة البيانات العلائقية.
تخزين نتائج الاستعلامات المتكررة مثل عدد الإعجابات على منشور معين.
الأمثلة: Redis, Memcached.
4. التخزين السحابي (Object Storage)
الدور: تخزين الملفات الضخمة مثل الصور والفيديوهات خارج قواعد البيانات التقليدية.
الاستخدامات في إنستقرام:
تخزين الصور والفيديوهات التي ينشرها المستخدمون.
توفير نظام CDN (شبكة توصيل المحتوى) لعرض المحتوى بسرعة للمستخدمين حول العالم.
الأمثلة: Amazon S3, Google Cloud Storage.
5. قواعد البيانات القائمة على الطابور (Queue-Based Databases)
الدور: التعامل مع المهام الخلفية والطلبات غير المتزامنة.
الاستخدامات في إنستقرام:
معالجة الإعجابات والتعليقات في الخلفية لضمان استجابة سريعة.
إرسال الإشعارات إلى المستخدمين بطريقة غير متزامنة.
الأمثلة: Apache Kafka, RabbitMQ.
كيف تعمل هذه الأنظمة معًا؟
- عند رفع صورة، يتم حفظها في التخزين السحابي ثم يتم تحديث قاعدة البيانات العلائقية بمعلوماتها.
- عند عرض المنشورات، يتم جلب البيانات من قاعدة بيانات NoSQL أو الكاش لضمان سرعة التحميل.
- عند تسجيل الإعجابات والتعليقات، تتم إضافتها في قاعدة البيانات العلائقية ولكن يتم تحديث العدد في Redis لضمان أداء سريع.
- عند إرسال الإشعارات، يتم استخدام نظام الطوابير (Queue) للتعامل مع العمليات الخلفية دون التأثير على الأداء.
الخلاصة
إنستقرام يعتمد على نظام هجين من قواعد البيانات بحيث يتم استخدام كل نوع وفقًا لاحتياجاته:
- SQL للبيانات الهيكلية والعلاقات.
- NoSQL للبيانات الضخمة والمتكررة.
- Redis للتخزين المؤقت وتسريع الاستعلامات.
- Object Storage للوسائط الكبيرة.
- Queue Systems للمهام غير المتزامنة.
بهذا الأسلوب، يحقق إنستقرام أداءً عاليًا، ويوفر تجربة مستخدم سلسة، ويضمن قابلية التوسع الكبيرة.
1. قاعدة بيانات علائقية (Relational Database - SQL)
الدور: تخزين البيانات المنظمة التي تتطلب علاقات بين الجداول.
الاستخدامات في إنستقرام:
تخزين بيانات المستخدمين مثل الاسم، البريد الإلكتروني، وتاريخ التسجيل.
تخزين التعليقات المرتبطة بالمنشورات.
إدارة العلاقات بين المستخدمين (مثل المتابعة والمتابعين).
الأمثلة: PostgreSQL, MySQL.
2. قاعدة بيانات NoSQL
الدور: تخزين البيانات غير المنظمة والتي تتطلب استعلامات سريعة وقابلة للتوسع أفقيًا.
الاستخدامات في إنستقرام:
تخزين المحتوى العام مثل المنشورات، الإعجابات، والإشعارات.
تخزين تحليلات الاستخدام مثل عدد المشاهدات، النقرات، والتفاعل مع المحتوى.
الأمثلة: Apache Cassandra, MongoDB.
3. التخزين المؤقت - الكاش (Cache)
الدور: تحسين سرعة الوصول إلى البيانات المخزنة والتي يتم طلبها بشكل متكرر.
الاستخدامات في إنستقرام:
تخزين المنشورات الأكثر تداولًا بحيث يتم جلبها بسرعة دون الحاجة لاستعلامات قاعدة البيانات العلائقية.
تخزين نتائج الاستعلامات المتكررة مثل عدد الإعجابات على منشور معين.
الأمثلة: Redis, Memcached.
4. التخزين السحابي (Object Storage)
الدور: تخزين الملفات الضخمة مثل الصور والفيديوهات خارج قواعد البيانات التقليدية.
الاستخدامات في إنستقرام:
تخزين الصور والفيديوهات التي ينشرها المستخدمون.
توفير نظام CDN (شبكة توصيل المحتوى) لعرض المحتوى بسرعة للمستخدمين حول العالم.
الأمثلة: Amazon S3, Google Cloud Storage.
5. قواعد البيانات القائمة على الطابور (Queue-Based Databases)
الدور: التعامل مع المهام الخلفية والطلبات غير المتزامنة.
الاستخدامات في إنستقرام:
معالجة الإعجابات والتعليقات في الخلفية لضمان استجابة سريعة.
إرسال الإشعارات إلى المستخدمين بطريقة غير متزامنة.
الأمثلة: Apache Kafka, RabbitMQ.
كيف تعمل هذه الأنظمة معًا؟
- عند رفع صورة، يتم حفظها في التخزين السحابي ثم يتم تحديث قاعدة البيانات العلائقية بمعلوماتها.
- عند عرض المنشورات، يتم جلب البيانات من قاعدة بيانات NoSQL أو الكاش لضمان سرعة التحميل.
- عند تسجيل الإعجابات والتعليقات، تتم إضافتها في قاعدة البيانات العلائقية ولكن يتم تحديث العدد في Redis لضمان أداء سريع.
- عند إرسال الإشعارات، يتم استخدام نظام الطوابير (Queue) للتعامل مع العمليات الخلفية دون التأثير على الأداء.
الخلاصة
إنستقرام يعتمد على نظام هجين من قواعد البيانات بحيث يتم استخدام كل نوع وفقًا لاحتياجاته:
- SQL للبيانات الهيكلية والعلاقات.
- NoSQL للبيانات الضخمة والمتكررة.
- Redis للتخزين المؤقت وتسريع الاستعلامات.
- Object Storage للوسائط الكبيرة.
- Queue Systems للمهام غير المتزامنة.
بهذا الأسلوب، يحقق إنستقرام أداءً عاليًا، ويوفر تجربة مستخدم سلسة، ويضمن قابلية التوسع الكبيرة.
👍7❤3
يتم التوثيق بأستخدام ملفات Readme.md
وتستخدم تنسيق markdown
الموقع الرسمي لتعلم markdown
https://www.markdownguide.org/
وتستخدم تنسيق markdown
الموقع الرسمي لتعلم markdown
https://www.markdownguide.org/
👍1
رسم المخططات يتم بواسطة تنسيق mermaid
الموقع الرسمي لتعلم رسم المخططات
https://mermaid.js.org/intro/
اداة الرسم بالواجهات
https://mermaid.live/edit
الموقع الرسمي لتعلم رسم المخططات
https://mermaid.js.org/intro/
اداة الرسم بالواجهات
https://mermaid.live/edit
👍1
ايضا يستخدم تنسيق Markdown في التعليقات البرمجية
الموقع الرسمي لتعلم markdown
https://www.markdownguide.org/
الموقع الرسمي لتعلم markdown
https://www.markdownguide.org/
يمكن ايضا رسم المخططات العلائقية للجداول
الموقع الرسمي لتعلم رسم المخططات
https://mermaid.js.org/intro/
اداة الرسم بالواجهات
https://mermaid.live/edit
الموقع الرسمي لتعلم رسم المخططات
https://mermaid.js.org/intro/
اداة الرسم بالواجهات
https://mermaid.live/edit
رسم المخططات التسلسلية.
الموقع الرسمي لتعلم رسم المخططات
https://mermaid.js.org/intro/
اداة الرسم بالواجهات
https://mermaid.live/edit
الموقع الرسمي لتعلم رسم المخططات
https://mermaid.js.org/intro/
اداة الرسم بالواجهات
https://mermaid.live/edit
👍2
مع الاب القدوة ذو الفضل الاستاذ الدكتور
بشير محمد المقالح - عميد كلية الحاسبات #جامعة_ذمار - اليمن
والدكتور العزيز وليد دحيه
من مناقشة مشاريع التخرج لطلاب #جامعة_السعيدة.
بشير محمد المقالح - عميد كلية الحاسبات #جامعة_ذمار - اليمن
والدكتور العزيز وليد دحيه
من مناقشة مشاريع التخرج لطلاب #جامعة_السعيدة.
❤1
#نموذج_تطبيق_متجر_الكتروني_مصغر
غير مكتمل
الغرض منه تعليمي وافادة طلابي ( مخصص له ساعتين اسبوعيا )
https://github.com/GeniusSystems24/genius_store
كما تلاحظ يظهر المشروع مع التوصيف الخاص به.
وهذه الطريقة هي المطلوبة عند التقديم الى الشركات وتشوف ان عملك مرتب.
اذا تريد السعي لمستقبل حقيقي مميز التزم بالاشياء الصعبة على الاخرين.
يوجد وصف لمحتوى كل مجلد مثلا
https://github.com/GeniusSystems24/genius_store/tree/main/lib/presentation/screens
غير مكتمل
الغرض منه تعليمي وافادة طلابي ( مخصص له ساعتين اسبوعيا )
https://github.com/GeniusSystems24/genius_store
كما تلاحظ يظهر المشروع مع التوصيف الخاص به.
وهذه الطريقة هي المطلوبة عند التقديم الى الشركات وتشوف ان عملك مرتب.
اذا تريد السعي لمستقبل حقيقي مميز التزم بالاشياء الصعبة على الاخرين.
يوجد وصف لمحتوى كل مجلد مثلا
https://github.com/GeniusSystems24/genius_store/tree/main/lib/presentation/screens
GitHub
GitHub - GeniusSystems24/genius_store
Contribute to GeniusSystems24/genius_store development by creating an account on GitHub.
👍5
https://www.facebook.com/share/167ZRWkJGX/?mibextid=xfxF2i
https://github.com/GeniusSystems24/study/blob/main/Three%20ways%20of%20using%20SQL%20Insert%20compere
هل تعرف أفضل طريقة لإدراج البيانات في SQL Server؟
اكتشف الفروق الكبيرة بين ثلاث طرق شائعة لإدراج البيانات! 🚀
- طريقة واحدة تمنحك أداءً مذهلاً! ⚡
- أخرى قد تعرضك لمخاطر فقدان البيانات! ❌
📊 تعرف على التحليل الكامل الآن واستفد من أفضل الممارسات لضمان الأداء والأمان!
#SQLServer #Database #Performance #DataSecurity #تطوير_البرمجيات #قواعد_البيانات #الأداء #البرمجة #تعلم #كلية_الحاسبات #علوم_الحاسوب #هندسة_برمجيات
https://github.com/GeniusSystems24/study/blob/main/Three%20ways%20of%20using%20SQL%20Insert%20compere
هل تعرف أفضل طريقة لإدراج البيانات في SQL Server؟
اكتشف الفروق الكبيرة بين ثلاث طرق شائعة لإدراج البيانات! 🚀
- طريقة واحدة تمنحك أداءً مذهلاً! ⚡
- أخرى قد تعرضك لمخاطر فقدان البيانات! ❌
📊 تعرف على التحليل الكامل الآن واستفد من أفضل الممارسات لضمان الأداء والأمان!
#SQLServer #Database #Performance #DataSecurity #تطوير_البرمجيات #قواعد_البيانات #الأداء #البرمجة #تعلم #كلية_الحاسبات #علوم_الحاسوب #هندسة_برمجيات
https://github.com/GeniusSystems24/study/blob/main/Three%20ways%20of%20using%20SQL%20Insert%20compere
تفاصيل دراسة الحالة
تفاصيل دراسة الحالة
GitHub
study/Three ways of using SQL Insert compere at main · GeniusSystems24/study
مستودع مخصص لتوثيق ومشاركة المفاهيم والخبرات المتنوعة في مجال هندسة البرمجيات، بما يشمل أفضل الممارسات، الأنماط التصميمية (Design Patterns)، إدارة المشاريع البرمجية، مراحل تطوير الأنظمة، إضافة إلى ...
https://github.com/GeniusSystems24/study/blob/main/Three%20ways%20of%20using%20SQL%20Insert%20compere/references.md
مراجع دراسة الحالة
مراجع دراسة الحالة
GitHub
study/Three ways of using SQL Insert compere/references.md at main · GeniusSystems24/study
مستودع مخصص لتوثيق ومشاركة المفاهيم والخبرات المتنوعة في مجال هندسة البرمجيات، بما يشمل أفضل الممارسات، الأنماط التصميمية (Design Patterns)، إدارة المشاريع البرمجية، مراحل تطوير الأنظمة، إضافة إلى ...