DataBase قواعد بيانات – Telegram
DataBase قواعد بيانات
2.42K subscribers
201 photos
9 videos
42 files
82 links
قواعد بيانات تمارين و امثله ..
Download Telegram
يمكن ايضا رسم المخططات العلائقية للجداول


الموقع الرسمي لتعلم رسم المخططات
https://mermaid.js.org/intro/

اداة الرسم بالواجهات
https://mermaid.live/edit
رسم المخططات التسلسلية.


الموقع الرسمي لتعلم رسم المخططات
https://mermaid.js.org/intro/

اداة الرسم بالواجهات
https://mermaid.live/edit
رسم الجداول

الموقع الرسمي لتعلم markdown
https://www.markdownguide.org/
👍2
اضافه فهرسة للمحتوى يسهل به التنقل

الموقع الرسمي لتعلم markdown
https://www.markdownguide.org/
مع الاب القدوة ذو الفضل الاستاذ الدكتور
بشير محمد المقالح - عميد كلية الحاسبات #جامعة_ذمار - اليمن

والدكتور العزيز وليد دحيه

من مناقشة مشاريع التخرج لطلاب #جامعة_السعيدة.
1
#نموذج_تطبيق_متجر_الكتروني_مصغر
غير مكتمل

الغرض منه تعليمي وافادة طلابي ( مخصص له ساعتين اسبوعيا )

https://github.com/GeniusSystems24/genius_store

كما تلاحظ يظهر المشروع مع التوصيف الخاص به.

وهذه الطريقة هي المطلوبة عند التقديم الى الشركات وتشوف ان عملك مرتب.
اذا تريد السعي لمستقبل حقيقي مميز التزم بالاشياء الصعبة على الاخرين.

يوجد وصف لمحتوى كل مجلد مثلا
https://github.com/GeniusSystems24/genius_store/tree/main/lib/presentation/screens
👍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 #تطوير_البرمجيات #قواعد_البيانات #الأداء #البرمجة #تعلم #كلية_الحاسبات #علوم_الحاسوب #هندسة_برمجيات
رفع أداء قاعدة البيانات 🗄️💾
أولًا: ما الذي يؤثر على أداء قاعدة البيانات؟

المقاييس المهمة:

وقت تنفيذ الاستعلام (كم يأخذ وقتًا).

Throughput (كم عملية تُنفذ في الثانية).

Latency (التأخير بين الطلب والرد).

استهلاك الموارد (المعالج، الذاكرة).

أنواع الأحمال (Workload Types):

كتابة بكثرة (Write-heavy): مشاكل في الأقفال (locks) وصيانة الفهارس.

قراءة بكثرة (Read-heavy): بطء في الاستعلامات المعقدة والـ cache misses.

حذف بكثرة (Delete-heavy): يؤدي إلى تجزئة البيانات وفقدان الأداء.

تنافس بين الأعمال (Competing workload): لما يكون فيه عمليات لحظية وأخرى بالدفعات (batch) ممكن يحصل بطء بسبب التزاحم على الموارد.

عوامل أخرى: حجم البيانات، نوعها، التوزيع الجغرافي، عدد المستخدمين في نفس الوقت، توقعات التوافر العالي (HA)، إلخ.

ثانيًا: استراتيجيات تحسين الأداء

الفهرسة (Indexing):
زي الفهرس في كتاب، يخليك توصل للمعلومة أسرع بدون ما تقرأ الكتاب كامل.

التجزئة والتقسيم (Sharding & Partitioning):
بدل ما تحط كل البيانات في قاعدة وحدة ضخمة، تقسمها لأجزاء أصغر (شاردات) على خوادم مختلفة.

إلغاء التطبيع (Denormalization):
بدال ما توزع البيانات في جداول كثيرة وتحتاج تربطها باستمرار (Joins)، تدمج بعضها في جدول واحد لتسريع الاستعلامات.

النسخ (Replication):
تعمل نسخ متعددة من قاعدة البيانات: وحدة رئيسية (للكتابة)، والبقية (للقراءة). هذا يوزع الحمل ويحسن التوافر.

تقنيات الأقفال (Locking):
تستخدمها عشان تمنع تضارب التحديثات لو أكثر من مستخدم يعدل على نفس البيانات في نفس الوقت (زي Sarah وJohn في المثال).
2
🔎كيف يعمل محرك البحث ؟🔍
تمام 👌 خلينا نشرح المخطط خطوة بخطوة بشكل مبسط، كأننا نحكي كيف "قوقل" يشتغل لما تبحث عن شيء:

1. Crawling (الزحف وجمع الصفحات)

في البداية، في برامج اسمها Crawler (عنكبوت آلي).

هذا العنكبوت يزور المواقع (www) ويجمع منها الصفحات.

يخزنها في مكان اسمه Page Repository (مستودع الصفحات).

فيه جزء ثاني اسمه Scheduler (الجدولة) يحدد للعنكبوت أي مواقع يزور ومتى.

ومن خلال الروابط (URLs)، العنكبوت يكتشف مواقع جديدة ويستمر يجمع.

2. Indexing (الفهرسة)

بعد ما تنجمع الصفحات، تروح لمرحلة Indexer (المفهرِس).

هناك يحصل:

Parsing (تحليل الصفحة): يفكك المحتوى.

Canonicalization & Dedup (إزالة التكرار وتحديد النسخة الأساسية).

Feature Extraction (استخراج المميزات): مثل الكلمات المفتاحية، الصور، اللغة.

Spam Detection (كشف السبام والمحتوى المزيف).

Language/Region (تحديد اللغة والمنطقة).

Classifiers (مصنفات مختلفة): علشان يعرف نوع الصفحة (مقال، منتج، فيديو…).

3. Serving Search Results (عرض النتائج)

لما تكتب سؤال في قوقل:

Query Engine يفهم سؤالك (تحليل المعنى، الكلمات، السياق).

يبحث في الفهرس عن الصفحات المناسبة.

ثم يطبق Ranking (الترتيب): أي صفحة أفضل وأقرب لطلبك.

هنا يدخل عامل مهم: إشارات المستخدمين من السجلات (يعني: الناس ضغطوا على أي نتيجة؟ كم جلسوا فيها؟ رجعوا بسرعة ولا استمروا؟).

4. إظهار النتائج

النتيجة النهائية: الصفحات الأكثر فائدة وترتيبها تطلع لك في محرك البحث (Google أو غيره).

🔑 باختصار:

العنكبوت يجيب الصفحات 🕷️

المفهرس ينظمها 📚

محرك البحث يعرضها لك بالترتيب حسب أهميتها 🔍
3
ما هي انواع الأقفال في قواعد البيانات ؟
خلّيني اوضحها على خطوتين: نبذة مختصرة جدًا، ثم تسعة أنواع بشرح مبسّط مع مثال واقعي وسطر T-SQL لكل واحد.

*نبذة مختصرة*

القفل = آلية تمنع تعارض العمليات المتزامنة لتحافظ على سلامة البيانات.

فيه أقفال قراءة تسمح بالمشاركة، وأقفال كتابة تمنع غيرك حتى تنهي.

درجة الدقّة تختلف: صف، صفحة (بلوك)، أو جدول كامل. كلما كبر النطاق، قلّ التوازي.

اختيار القفل الصحيح يوازن بين الأمان والأداء ويقلّل احتمالات الـdeadlock.

1) Shared Lock (S)

الفكرة: يسمح لعدّة جلسات تقرأ نفس السجل/النطاق، لكن بدون تعديل.
تشبيه: ناس كثير يطالعوا نفس الملف في المكتبة، بس ما حد يكتب عليه.
مثال واقعي: شاشة تقارير تعرض طلبات اليوم لعدّة مستخدمين.
T-SQL مختصر:

SELECT * FROM Orders WITH (HOLDLOCK); -- أو الافتراضي مع العزل 

2) Exclusive Lock (X)

الفكرة: قفل للقراءة+الكتابة، ويمنع أي قفل آخر على نفس المورد.
تشبيه: شخص أخذ الملف لغرفة التحرير—لا أحد يلمسه حتى يرجّعه.
مثال واقعي: تحديث سعر الطلب رقم 123.
T-SQL:

UPDATE Orders SET Price = 99.0 WHERE OrderID = 123; -- يأخذ X تلقائيًا 

3) Update Lock (U)

الفكرة: نية تحديث تبدأ بقفل (U) لمنع تشابك القرّاء الذين سيحوّلون إلى X لاحقًا. يقلّل الـdeadlock.
تشبيه: حاطط “حجز” على الملف لأنك بتعدّل بعد ما تراجع.
مثال واقعي: الخدمة تقرأ السطر ثم تقرر تعدله لو تحقق شرط.
T-SQL:

SELECT * FROM Orders WITH (UPDLOCK, HOLDLOCK) WHERE OrderID = 123; -- ثم UPDATE لنفس الصف 

4) Schema Lock

الفكرة: يحمي بنية الكائنات (أعمدة/فهرس) أثناء التغييرات أو أثناء استخدامها.
تشبيه: قفل باب غرفة السيرفر وقت تبديل الرفوف.
مثال واقعي: إضافة عمود جديد في جدول ضخم.
T-SQL:

ALTER TABLE Orders ADD NewColumn INT; -- يأخذ Schema Modification Lock 

5) Bulk Update Lock (BU)

الفكرة: لعمليات الإدخال الضخمة لتقليل عدد الأقفال ورفع السرعة.
تشبيه: بدل ما تعطّي تصريح دخول لكل شخص، تفتح ممر خاص لمجموعة كبيرة.
مثال واقعي: استيراد 500 ألف سطر دفعة واحدة.
T-SQL:

BULK INSERT Orders FROM 'orders.csv' WITH (TABLOCK); 

6) Key-Range Lock

الفكرة: يقفل نطاق مفاتيح في الفهرس لمنع “الصفوف الشبحية” ضمن العزل SERIALIZABLE.
تشبيه: تحجز الأرقام من 100 إلى 200 في دفتر التذاكر؛ ما حد يضيف بينها.
مثال واقعي: تقرير يراجع الطلبات بين رقمين ويضمن ما ينضاف صف جديد داخل النطاق أثناء العملية.
T-SQL:

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; SELECT * FROM Orders WHERE OrderID BETWEEN 100 AND 200; 

7) Row-Level Lock

الفكرة: يقفل صفًا واحدًا فقط؛ أعلى درجة توازي.
تشبيه: تحجز ملفًا واحدًا من الرف، والباقي متاح.
مثال واقعي: تحديث حالة طلب محدد بدون التأثير على باقي الطلبات.
T-SQL:

UPDATE Orders WITH (ROWLOCK) SET Status = 'Paid' WHERE OrderID = 123; 

8) Page-Level Lock

الفكرة: يقفل صفحة بيانات (بلوك) فيها عدة صفوف؛ وسط بين الصف والجدول.
تشبيه: تغلق رفًا كاملًا بدل ملف واحد.
مثال واقعي: تحديثات متجاورة كثيرة تجعل قفل الصفحة أوفر من آلاف أقفال صفوف.
T-SQL:

UPDATE Orders WITH (PAGLOCK) SET Flag = 1 WHERE OrderID BETWEEN 1000 AND 1100; 

9) Table-Level Lock

الفكرة: يقفل الجدول كله؛ بسيط لكنه يقلّل التوازي بقوة.
تشبيه: “مغلق للصيانة” على باب القاعة كاملة.
مثال واقعي: إعادة حسابات أو أرشفة على كامل الجدول خارج أوقات الذروة.
T-SQL:

SELECT * FROM Orders WITH (TABLOCK); -- أو ALTER/INDEX REBUILD إلخ. 


لمحة اختيار سريعة

قراءة فقط ➜ S

قراءة بنية تعديل لاحقًا ➜ U ثم X

تحديث سطر محدد وكثير مستخدمين ➜ ROWLOCK

إدخال ضخم ➜ BU + TABLOCK

منع صفوف جديدة ضمن نطاق قرأته ➜ Key-Range (مع SERIALIZABLE)

تغيير هيكل الجدول ➜ Schema

ضغط أقفال كثيرة متجاورة ➜ PAGLOCK، وآخر الحلول TABLOCK

سؤال تأكيد واحد:
لو عندك إجراء يقرأ صفًا، يتأكد من شرط، ثم قد يحدّثه—أي تلميح تختاره لتقليل الـdeadlock: HOLDLOCK فقط، أم UPDLOCK, HOLDLOCK؟ ولماذا؟
2
🎯 كيف يُنفّذ استعلام SQL داخل قاعدة البيانات؟