Screenshot_20240409-053545_Chrome.jpg
438.1 KB
المنهج الجامعي مفيد جدا جدآ جدآ لكنه لا يكفي ف لكي تتقن بناء مثل هذه البرمجيات ... عليك ان تتعلم 10 اضعاف المنهج الجامعي.
❤4👍1
انواع العمليات في لغة SQL.pptx
71.1 KB
لا نهتم بالحفظ
فهم بحتي لا يشوبه اي نسبة من الحفظ
فهم بحتي لا يشوبه اي نسبة من الحفظ
قواعد بيانات عملي.pdf
3.3 MB
كتاب باللغة العربية لشرح اساسيات الجانب العملي في قواعد البيانات
هذا المنهج المستخدم في الجامعة للسنوات الماضية
وذلك لضعف مستوى الطلبة في اللغة الانجليزية
حيث كان سابقاً ( قبل ٤ سنوات ) بالانجليزي لكلا الجانبين النظري والعملي
هذا المنهج المستخدم في الجامعة للسنوات الماضية
وذلك لضعف مستوى الطلبة في اللغة الانجليزية
حيث كان سابقاً ( قبل ٤ سنوات ) بالانجليزي لكلا الجانبين النظري والعملي
👍1
الصورة توضح عملية اختيار قاعدة البيانات بناءً على عدة عوامل لتحديد أفضل قاعدة بيانات تناسب احتياجات النظام أو المشروع.
#الخلاصة:
هذه الخطوات توضح كيفية اختيار قاعدة البيانات الأنسب بناءً على نوع البيانات، العلاقات، حجم البيانات، عدد المستخدمين، حمل القراءة أو الكتابة، الزمن المستغرق المقبول، الأمان، الأدوات، والدعم. باتباع هذه الخطوات، يمكنك اتخاذ قرار مدروس حول اختيار قاعدة البيانات التي تناسب احتياجات مشروعك.
سأشرح الخطوات الواردة بالتفصيل:
1. تحديد نوع البيانات (Database?)
هنا يجب أن تفهم نوع البيانات التي ستتعامل معها:
Structured (مهيكلة): البيانات المهيكلة مثل الجداول التي تحتوي على صفوف وأعمدة.
Semi-Structured (شبه مهيكلة): البيانات التي تحتوي على نوع من التنظيم ولكنها ليست صارمة مثل JSON و XML.
Unstructured (غير مهيكلة): البيانات التي لا تحتوي على تنظيم مثل الصور والفيديوهات.
2. العلاقات أو الأنماط؟ (Pattern or Relationships?)
إذا كانت البيانات تحتوي على علاقات واضحة وتحتاج لنمط معين:
SQL: لقواعد البيانات التي تحتوي على بيانات مهيكلة وتتبع نموذج علائقي.
NoSQL: لقواعد البيانات التي تحتاج إلى التعامل مع بيانات غير مهيكلة أو علاقات معقدة.
NewSQL: لمزيج بين SQL و NoSQL يعالج البيانات المعقدة والمهيكلة معًا.
Time-series databases: لقواعد البيانات المصممة خصيصًا للتعامل مع بيانات ذات طابع زمني مثل بيانات أجهزة الاستشعار.
3. حجم البيانات (Datasize?)
يعتمد اختيار قاعدة البيانات أيضًا على حجم البيانات الحالي والمتوقع مستقبلاً:
Now (حاليًا): إذا كان حجم البيانات المتوقع صغير أو متوسط.
Long Term (طويل الأجل): إذا كنت تتوقع زيادة كبيرة في حجم البيانات مستقبلًا، ستحتاج إلى قاعدة بيانات قابلة للتوسع.
4. عدد المستخدمين المتزامنين (Concurrent Users?)
إذا كنت تتوقع عدد كبير من المستخدمين المتزامنين على النظام، يجب أن يكون لديك قاعدة بيانات تدعم زيادة الطلبات:
Off-Peak (خارج الذروة): في أوقات عدم الضغط يمكن استخدام تكتيكات أقل في الأداء.
Peak (أوقات الذروة): في أوقات الضغط العالي تحتاج إلى استخدام تكتيكات مثل الشاردينج (Sharding) لتوزيع الحمل.
5. الأولوية للكتابة أم القراءة؟ (Write/Read Heavy?)
Write Heavy (كتابة مكثفة): إذا كان النظام يعتمد بشكل كبير على إدخال البيانات (عمليات كتابة)، ستحتاج إلى تقنيات مثل Sharding لتوزيع البيانات.
Read Heavy (قراءة مكثفة): إذا كان النظام يعتمد بشكل أكبر على قراءة البيانات، استخدم تقنيات مثل Read Replicas لتوزيع القراءات، أو Caching لتسريع عملية الوصول للبيانات المخزنة.
6. الزمن المستغرق المقبول (Acceptable Latency?)
إذا كنت تحتاج إلى استجابة سريعة للنظام:
Query Optimization (تحسين الاستعلامات): تحسين الاستعلامات لزيادة السرعة وتقليل زمن الاستجابة.
Response Time (زمن الاستجابة): تقليل زمن الاستجابة باستخدام الجداول المجزأة والفهارس المحسنة.
7. الأمان (Security?)
لتأمين البيانات يجب النظر في:
Encryption (التشفير): تشفير البيانات أثناء النقل وفي الراحة.
Auditing (المراجعة): تتبع العمليات والأنشطة على قاعدة البيانات.
Access Control (التحكم في الوصول): إدارة الأذونات والتحكم في من يمكنه الوصول إلى البيانات.
8. الأدوات والتكنولوجيا (Tools & Technology?)
هل النظام يحتاج إلى دعم تقني معين مثل:
Cloud Providers (مزودي السحابة): هل تعمل على نظام سحابي؟
Cloud Native (نظام سحابي أصلي): هل قاعدة البيانات مصممة للعمل بكفاءة في بيئة سحابية؟
API & Libraries (واجهات برمجة التطبيقات والمكتبات): هل تحتاج إلى تكامل مع أدوات برمجية أخرى؟
9. الدعم (Support?)
Documentation (الوثائق): مدى توفر الوثائق والدروس والمصادر التعليمية.
Community (المجتمع): مدى دعم مجتمع المطورين لقاعدة البيانات.
Enterprise (الدعم المؤسسي): الدعم الفني المقدم من مزود قاعدة البيانات.
#الخلاصة:
هذه الخطوات توضح كيفية اختيار قاعدة البيانات الأنسب بناءً على نوع البيانات، العلاقات، حجم البيانات، عدد المستخدمين، حمل القراءة أو الكتابة، الزمن المستغرق المقبول، الأمان، الأدوات، والدعم. باتباع هذه الخطوات، يمكنك اتخاذ قرار مدروس حول اختيار قاعدة البيانات التي تناسب احتياجات مشروعك.
سأشرح الخطوات الواردة بالتفصيل:
1. تحديد نوع البيانات (Database?)
هنا يجب أن تفهم نوع البيانات التي ستتعامل معها:
Structured (مهيكلة): البيانات المهيكلة مثل الجداول التي تحتوي على صفوف وأعمدة.
Semi-Structured (شبه مهيكلة): البيانات التي تحتوي على نوع من التنظيم ولكنها ليست صارمة مثل JSON و XML.
Unstructured (غير مهيكلة): البيانات التي لا تحتوي على تنظيم مثل الصور والفيديوهات.
2. العلاقات أو الأنماط؟ (Pattern or Relationships?)
إذا كانت البيانات تحتوي على علاقات واضحة وتحتاج لنمط معين:
SQL: لقواعد البيانات التي تحتوي على بيانات مهيكلة وتتبع نموذج علائقي.
NoSQL: لقواعد البيانات التي تحتاج إلى التعامل مع بيانات غير مهيكلة أو علاقات معقدة.
NewSQL: لمزيج بين SQL و NoSQL يعالج البيانات المعقدة والمهيكلة معًا.
Time-series databases: لقواعد البيانات المصممة خصيصًا للتعامل مع بيانات ذات طابع زمني مثل بيانات أجهزة الاستشعار.
3. حجم البيانات (Datasize?)
يعتمد اختيار قاعدة البيانات أيضًا على حجم البيانات الحالي والمتوقع مستقبلاً:
Now (حاليًا): إذا كان حجم البيانات المتوقع صغير أو متوسط.
Long Term (طويل الأجل): إذا كنت تتوقع زيادة كبيرة في حجم البيانات مستقبلًا، ستحتاج إلى قاعدة بيانات قابلة للتوسع.
4. عدد المستخدمين المتزامنين (Concurrent Users?)
إذا كنت تتوقع عدد كبير من المستخدمين المتزامنين على النظام، يجب أن يكون لديك قاعدة بيانات تدعم زيادة الطلبات:
Off-Peak (خارج الذروة): في أوقات عدم الضغط يمكن استخدام تكتيكات أقل في الأداء.
Peak (أوقات الذروة): في أوقات الضغط العالي تحتاج إلى استخدام تكتيكات مثل الشاردينج (Sharding) لتوزيع الحمل.
5. الأولوية للكتابة أم القراءة؟ (Write/Read Heavy?)
Write Heavy (كتابة مكثفة): إذا كان النظام يعتمد بشكل كبير على إدخال البيانات (عمليات كتابة)، ستحتاج إلى تقنيات مثل Sharding لتوزيع البيانات.
Read Heavy (قراءة مكثفة): إذا كان النظام يعتمد بشكل أكبر على قراءة البيانات، استخدم تقنيات مثل Read Replicas لتوزيع القراءات، أو Caching لتسريع عملية الوصول للبيانات المخزنة.
6. الزمن المستغرق المقبول (Acceptable Latency?)
إذا كنت تحتاج إلى استجابة سريعة للنظام:
Query Optimization (تحسين الاستعلامات): تحسين الاستعلامات لزيادة السرعة وتقليل زمن الاستجابة.
Response Time (زمن الاستجابة): تقليل زمن الاستجابة باستخدام الجداول المجزأة والفهارس المحسنة.
7. الأمان (Security?)
لتأمين البيانات يجب النظر في:
Encryption (التشفير): تشفير البيانات أثناء النقل وفي الراحة.
Auditing (المراجعة): تتبع العمليات والأنشطة على قاعدة البيانات.
Access Control (التحكم في الوصول): إدارة الأذونات والتحكم في من يمكنه الوصول إلى البيانات.
8. الأدوات والتكنولوجيا (Tools & Technology?)
هل النظام يحتاج إلى دعم تقني معين مثل:
Cloud Providers (مزودي السحابة): هل تعمل على نظام سحابي؟
Cloud Native (نظام سحابي أصلي): هل قاعدة البيانات مصممة للعمل بكفاءة في بيئة سحابية؟
API & Libraries (واجهات برمجة التطبيقات والمكتبات): هل تحتاج إلى تكامل مع أدوات برمجية أخرى؟
9. الدعم (Support?)
Documentation (الوثائق): مدى توفر الوثائق والدروس والمصادر التعليمية.
Community (المجتمع): مدى دعم مجتمع المطورين لقاعدة البيانات.
Enterprise (الدعم المؤسسي): الدعم الفني المقدم من مزود قاعدة البيانات.
❤6👍1
https://news.1rj.ru/str/ProAnwarAlsaiary
قناة تحتوي منشورات ادوات وتقنيات ومعايير برمجية مهمة باللغة العربية ومدعومة بمخططات توضيحية.
قناة تحتوي منشورات ادوات وتقنيات ومعايير برمجية مهمة باللغة العربية ومدعومة بمخططات توضيحية.
Telegram
PRO.ANWAR ALSAIARY ( ADVANCE )
- professional software engineer.
- full stack developer.
asp.net - flutter - sql server - firebase.
- full stack developer.
asp.net - flutter - sql server - firebase.
👍4
https://apps.microsoft.com/detail/9NT1R1C2HH7J?hl=en-us&gl=YE&ocid=pdpshare
انصح بتثبيت تطبيق ChatGpt على جهاز الدسكتوب لديك
انصح بتثبيت تطبيق ChatGpt على جهاز الدسكتوب لديك
👍4
ايهم الأسهل
Anonymous Poll
45%
قواعد البيانات ( DB )
36%
واجهات المستخدم ( UI )
19%
الواجهات البرمجية ( API )
DataBase قواعد بيانات
https://youtube.com/playlist?list=PL37D52B7714788190 هذا مقرر قواعد البيانات الجانب النظري لترمين
افضل كرس تفصيلي لقواعد البيانات نظري
❤2
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