الصورة توضح 6 هياكل بيانات (Data Structures) تستخدم لتقليل استهلاك التخزين في قواعد البيانات، وخصوصًا مع البيانات الكبيرة (Big Data) أو عند الحاجة لأداء عالٍ وسرعة معالجة. دعني أشرح كل واحدة منها بالتفصيل مع أمثلة واقعية.
1. Bloom Filter
🔹 الوصف: هيكل بيانات احتمالي يستخدم لاختبار ما إذا كان عنصر معين موجودًا في مجموعة أم لا، دون الحاجة إلى تخزين العناصر نفسها.
🔹 الفائدة: تقليل عدد عمليات القراءة الباهظة من قواعد البيانات أو الأقراص.
🔹 العيب: قد يعطي نتيجة إيجابية كاذبة (false positive)، لكنه لا يعطي نتيجة سلبية كاذبة.
🔹 مثال واقعي: تخيل أن موقعًا إلكترونيًا يتحقق مما إذا كان البريد الإلكتروني موجودًا في قائمة الحظر. باستخدام Bloom Filter، يمكن التحقق من ذلك بسرعة كبيرة دون الحاجة إلى الوصول إلى قاعدة البيانات.
2. HyperLogLog
🔹 الوصف: خوارزمية لحساب عدد العناصر المميزة (unique elements) في مجموعة، ولكن بشكل تقريبي، وباستخدام ذاكرة قليلة جدًا.
🔹 الفائدة: توفير الذاكرة عند حساب عدد الزوار الفريدين (unique visitors) أو عدد المنتجات الفريدة.
🔹 مثال واقعي: موقع إخباري يريد معرفة عدد الزوار الفريدين يوميًا. بدلًا من تخزين كل IP، يمكنه استخدام HyperLogLog لتقدير العدد بدقة عالية وبذاكرة لا تتجاوز 1.5KB.
3. Cuckoo Filter
🔹 الوصف: هيكل بيانات يشبه Bloom Filter، لكنه يسمح بعمليات الإزالة (deletion) من المجموعة، ويعطي نتائج دقيقة أكثر.
🔹 الفائدة: مناسب في التطبيقات التي تحتاج إلى إضافة وحذف عناصر بشكل متكرر.
🔹 مثال واقعي: في أنظمة جدران الحماية (firewalls)، يمكن استخدام Cuckoo Filter لتخزين وتحديث قائمة عناوين IP الممنوعة بشكل ديناميكي.
4. MinHash
🔹 الوصف: تقنية لحساب تشابه المجموعات الكبيرة بطريقة تقريبية باستخدام توقيعات مختصرة (hash signatures).
🔹 الفائدة: تقارن المستندات أو البيانات الضخمة دون الحاجة إلى قراءتها بالكامل.
🔹 مثال واقعي: شركة مثل Google تستخدم MinHash للكشف عن المحتوى المكرر (duplicate content) بين صفحات الويب.
5. SkipList
🔹 الوصف: هيكل بيانات يشبه القائمة المرتبطة (Linked List) ولكن بطبقات متعددة تسمح بتسريع عمليات البحث، الإضافة، والحذف.
🔹 الفائدة: أداء مقارب لشجرة البحث الثنائية ولكن بطريقة أبسط في التنفيذ.
🔹 مثال واقعي: يستخدم في أنظمة قواعد البيانات مثل LevelDB لترتيب المفاتيح (keys) بشكل سريع أثناء الإضافة والقراءة.
6. Count-Min Sketch
🔹 الوصف: هيكل بيانات يستخدم لحساب عدد مرات تكرار العناصر في تدفق بيانات كبير (Data Stream)، لكنه يعتمد على التقريب.
🔹 الفائدة: لا يحتاج لتخزين كل العناصر لتقدير التكرار.
🔹 مثال واقعي: موقع مثل YouTube يريد معرفة عدد مرات ظهور كل فيديو في النتائج، يمكنه استخدام Count-Min Sketch بدلاً من تخزين كل نتيجة بحث.
🔍 خلاصة:
الهيكلالاستخداممميزاتBloom Filterالتحقق من وجود عنصرسريع جدًا، استهلاك ذاكرة منخفضHyperLogLogتقدير عدد العناصر الفريدةذاكرة صغيرة جدًاCuckoo Filterالتحقق مع دعم الحذفنتائج أدق من BloomMinHashمقارنة مجموعات كبيرةمثالي للتشابهSkipListعمليات بحث مرتبةسريع وسهل التنفيذCount-Min Sketchتقدير التكرارفعال مع تدفقات البيانات
✅ ما الهيكل الإضافي الذي يمكن إضافته؟
Trie (Radix Tree)
🔹 يستخدم لتخزين وتجميع النصوص أو الكلمات بسرعة، مثل القواميس، أو نظام الإكمال التلقائي.
1. Bloom Filter
🔹 الوصف: هيكل بيانات احتمالي يستخدم لاختبار ما إذا كان عنصر معين موجودًا في مجموعة أم لا، دون الحاجة إلى تخزين العناصر نفسها.
🔹 الفائدة: تقليل عدد عمليات القراءة الباهظة من قواعد البيانات أو الأقراص.
🔹 العيب: قد يعطي نتيجة إيجابية كاذبة (false positive)، لكنه لا يعطي نتيجة سلبية كاذبة.
🔹 مثال واقعي: تخيل أن موقعًا إلكترونيًا يتحقق مما إذا كان البريد الإلكتروني موجودًا في قائمة الحظر. باستخدام Bloom Filter، يمكن التحقق من ذلك بسرعة كبيرة دون الحاجة إلى الوصول إلى قاعدة البيانات.
2. HyperLogLog
🔹 الوصف: خوارزمية لحساب عدد العناصر المميزة (unique elements) في مجموعة، ولكن بشكل تقريبي، وباستخدام ذاكرة قليلة جدًا.
🔹 الفائدة: توفير الذاكرة عند حساب عدد الزوار الفريدين (unique visitors) أو عدد المنتجات الفريدة.
🔹 مثال واقعي: موقع إخباري يريد معرفة عدد الزوار الفريدين يوميًا. بدلًا من تخزين كل IP، يمكنه استخدام HyperLogLog لتقدير العدد بدقة عالية وبذاكرة لا تتجاوز 1.5KB.
3. Cuckoo Filter
🔹 الوصف: هيكل بيانات يشبه Bloom Filter، لكنه يسمح بعمليات الإزالة (deletion) من المجموعة، ويعطي نتائج دقيقة أكثر.
🔹 الفائدة: مناسب في التطبيقات التي تحتاج إلى إضافة وحذف عناصر بشكل متكرر.
🔹 مثال واقعي: في أنظمة جدران الحماية (firewalls)، يمكن استخدام Cuckoo Filter لتخزين وتحديث قائمة عناوين IP الممنوعة بشكل ديناميكي.
4. MinHash
🔹 الوصف: تقنية لحساب تشابه المجموعات الكبيرة بطريقة تقريبية باستخدام توقيعات مختصرة (hash signatures).
🔹 الفائدة: تقارن المستندات أو البيانات الضخمة دون الحاجة إلى قراءتها بالكامل.
🔹 مثال واقعي: شركة مثل Google تستخدم MinHash للكشف عن المحتوى المكرر (duplicate content) بين صفحات الويب.
5. SkipList
🔹 الوصف: هيكل بيانات يشبه القائمة المرتبطة (Linked List) ولكن بطبقات متعددة تسمح بتسريع عمليات البحث، الإضافة، والحذف.
🔹 الفائدة: أداء مقارب لشجرة البحث الثنائية ولكن بطريقة أبسط في التنفيذ.
🔹 مثال واقعي: يستخدم في أنظمة قواعد البيانات مثل LevelDB لترتيب المفاتيح (keys) بشكل سريع أثناء الإضافة والقراءة.
6. Count-Min Sketch
🔹 الوصف: هيكل بيانات يستخدم لحساب عدد مرات تكرار العناصر في تدفق بيانات كبير (Data Stream)، لكنه يعتمد على التقريب.
🔹 الفائدة: لا يحتاج لتخزين كل العناصر لتقدير التكرار.
🔹 مثال واقعي: موقع مثل YouTube يريد معرفة عدد مرات ظهور كل فيديو في النتائج، يمكنه استخدام Count-Min Sketch بدلاً من تخزين كل نتيجة بحث.
🔍 خلاصة:
الهيكلالاستخداممميزاتBloom Filterالتحقق من وجود عنصرسريع جدًا، استهلاك ذاكرة منخفضHyperLogLogتقدير عدد العناصر الفريدةذاكرة صغيرة جدًاCuckoo Filterالتحقق مع دعم الحذفنتائج أدق من BloomMinHashمقارنة مجموعات كبيرةمثالي للتشابهSkipListعمليات بحث مرتبةسريع وسهل التنفيذCount-Min Sketchتقدير التكرارفعال مع تدفقات البيانات
✅ ما الهيكل الإضافي الذي يمكن إضافته؟
Trie (Radix Tree)
🔹 يستخدم لتخزين وتجميع النصوص أو الكلمات بسرعة، مثل القواميس، أو نظام الإكمال التلقائي.
❤4
https://www.guru99.com/er-diagram-tutorial-dbms.html
من افضل المواقع عالمياً لتعلم قواعد البيانات بشكل احترافي
من افضل المواقع عالمياً لتعلم قواعد البيانات بشكل احترافي
Guru99
Entity Relationship (ER) Diagram Model with DBMS Example
What is the ER Model? The ER or (Entity Relational Model) is a high-level conceptual data model diagram. Entity-Relation model is based on the notion of real-world entities and the relationship betwee
انواع المفاتيح : ( سيتم انزال الترجمة عند التفرغ لذلك )
Entity keys: Refers to an attribute that uniquely defines an entity in an entity set. Entity keys can be super, candidate or primary.
Super key: A set of attributes (one or more) that together define an entity in an entity set.
Candidate key: A minimal super key, meaning it has the least possible number of attributes to still be a super key.
An entity set may have more than one candidate key.
Primary key: A candidate key chosen by the database designer to uniquely identify the entity set.
Foreign key: Identifies the relationship between entities
Entity keys: Refers to an attribute that uniquely defines an entity in an entity set. Entity keys can be super, candidate or primary.
Super key: A set of attributes (one or more) that together define an entity in an entity set.
Candidate key: A minimal super key, meaning it has the least possible number of attributes to still be a super key.
An entity set may have more than one candidate key.
Primary key: A candidate key chosen by the database designer to uniquely identify the entity set.
Foreign key: Identifies the relationship between entities
انواع العمليات في لغة SQL.pptx
71.1 KB
لا نهتم بالحفظ
فهم بحتي لا يشوبه اي نسبة من الحفظ
فهم بحتي لا يشوبه اي نسبة من الحفظ