Final Exam Knowledge Compendium المراجعة الشاملة للاختبار النهائي

A complete synthesis of Modules 7 through 13. Mastering SQL, Relational Algebra, Normalization, and Security. ملخص كامل للوحدات من 7 إلى 13. إتقان SQL، الجبر العلائقي، التطبيع (Normalization)، والأمن.

Covering Modules 7-13 تغطية الوحدات 7-13


07. SQL Definition 07. تعريف SQL

DDL & Constraints DDL & Constraints

Creating Structures إنشاء الهياكل

CREATE TABLE defines the schema. يعرف المخطط.
ALTER TABLE modifies it (add/drop columns). يعدله (إضافة/حذف أعمدة).
DROP TABLE deletes it. يحذفه.

Constraint Actions إجراءات القيود

When deleting a parent record, what happens to the children? عند حذف سجل أب، ماذا يحدث للأبناء؟

  • RESTRICT:RESTRICT: Stop deletion (Default). إيقاف الحذف (الافتراضي).
  • CASCADE:CASCADE: Delete children too. حذف الأبناء أيضاً.
  • SET NULL:SET NULL: Set child FK to NULL. تعيين FK الابن إلى NULL.

08. SQL Retrieval 08. استرجاع SQL

DML & Basics DML & Basics

The SELECT Block كتلة SELECT

SELECT columns
FROM tables
WHERE row_condition
ORDER BY sort_cols;

Pattern Matching مطابقة الأنماط

  • LIKE:LIKE: Used for strings. تستخدم للنصوص.
  • %:%: Multi-char wildcard. بدل متعدد الأحرف.
  • _:_: Single-char wildcard. بدل حرف واحد.

09. Complex SQL 09. SQL المتقدمة

Joins & Logic Joins & Logic

Advanced Joins Joins المتقدمة

  • Inner Join:Inner Join: Only matching rows. الصفوف المتطابقة فقط.
  • Left/Right Outer Join:Left/Right Outer Join: Keep all rows from one side, fill missing matches with NULL. الاحتفاظ بجميع الصفوف من جانب واحد، وملء المفقودة بـ NULL.
  • Self Join:Self Join: Joining table to itself (Requires Aliases). ربط الجدول بنفسه (يتطلب Aliases).

Grouping التجميع (Grouping)

WHEREWHERE filters rows before grouping. تصفي الصفوف قبل التجميع.
HAVINGHAVING filters groups after grouping (allows Aggregates). تصفي المجموعات بعد التجميع (تسمح بـ Aggregates).

10. Theory & Views 10. النظرية و Views

Relational Algebra Relational Algebra

Relational Algebra Ops عمليات Relational Algebra

$\sigma$ Select:$\sigma$ Select: Filter Rows.تصفية الصفوف.
$\pi$ Project:$\pi$ Project: Filter Cols.تصفية الأعمدة.
$\times$ Product:$\times$ Product: All combos.كل المجموعات.
$\div$ Division:$\div$ Division: "For All"."للجميع" (For All).

Views Views

Virtual tables. Saved queries. Hides complexity and enhances security. Generally read-only if they contain aggregates or joins. جداول افتراضية. استعلامات محفوظة. تخفي التعقيد وتعزز الأمن. عادة ما تكون للقراءة فقط إذا كانت تحتوي على تجميعات أو joins.

11. Normalization I 11. التطبيع (Normalization) 1

1NF - 3NF 1NF - 3NF

The Basics الأساسيات

  • 1NF:1NF: Atomic values (No lists). قيم ذرية (لا قوائم).
  • 2NF:2NF: No Partial Dependency (Attribute depends on full PK). لا اعتماد جزئي (السمة تعتمد على الـ PK الكامل).
  • 3NF:3NF: No Transitive Dependency (Non-key depends on Non-key). لا اعتماد متعدي (غير المفتاح يعتمد على غير المفتاح).

Functional Dependency Functional Dependency

$X \to Y$: If you know X, you determine Y. إذا عرفت X، تحدد Y.
Armstrong's Axioms:مسلمات Armstrong: Reflexive, Augmentation, Transitive. الانعكاسية، الزيادة، التعدي.

12. Normalization II 12. التطبيع (Normalization) 2

BCNF - 5NF BCNF - 5NF

Advanced Forms الأشكال المتقدمة

  • BCNF:BCNF: Stricter 3NF. Every determinant must be a Superkey. 3NF أكثر صرامة. كل محدد يجب أن يكون Superkey.
  • 4NF:4NF: No Multivalued Dependencies (MVD). لا اعتماديات متعددة القيم (MVD).
  • 5NF:5NF: Join Dependencies (Rare). اعتماديات الربط (نادرة).

Decomposition Properties خصائص التفكيك

Lossless Join:Lossless Join: Rejoining tables must not create fake data. إعادة ربط الجداول لا يجب أن تنشئ بيانات زائفة.
Dependency Preservation:Dependency Preservation: FDs should be enforceable within a single table. يجب أن تكون الـ FDs قابلة للتطبيق داخل جدول واحد.

13. Database Security 13. أمن قواعد البيانات

Access Control التحكم في الوصول

Access Models نماذج الوصول

  • DAC:DAC: Identity-based (GRANT/REVOKE). قائم على الهوية.
  • MAC:MAC: Clearance Levels (Top Secret). No Read Up, No Write Down. مستويات التصريح. لا قراءة للأعلى، لا كتابة للأسفل.
  • RBAC:RBAC: Role-based (Manager, Clerk). قائم على الأدوار.

CIA Triad ثالوث CIA

Confidentialityالسرية (Confidentiality) Integrityالنزاهة (Integrity) Availabilityالتوافر (Availability)

SQL Injection حقن SQL

Malicious code inserted via inputs. كود خبيث يتم إدراجه عبر المدخلات.
Solution:الحل: Prepared Statements (Bind Variables). جمل جاهزة (Bind Variables).

SQL Order of Execution ترتيب تنفيذ SQL

SQL code is written in one order but executed in another. كود SQL يكتب بترتيب معين ولكن ينفذ بترتيب آخر.

1. FROM / JOIN
2. WHERE
3. GROUP BY
4. HAVING
5. SELECT
6. DISTINCT
7. ORDER BY

The Final Exam Mega Vault خزنة الاختبار النهائي الكبرى

Secrets for Mod 7-13 أسرار الوحدات 7-13

TRAP: 3NF vs BCNF فخ: 3NF مقابل BCNF

If $X \to A$ and $X$ is NOT a superkey:
In 3NF: Allowed if $A$ is Prime.
In BCNF: Forbidden. $X$ MUST be a superkey.
إذا $X \to A$ و $X$ ليس superkey:
في 3NF: مسموح إذا كان $A$ أولي.
في BCNF: ممنوع. $X$ يجب أن يكون superkey.

TRAP: WHERE vs HAVING فخ: WHERE مقابل HAVING

You cannot use Aggregates (SUM, COUNT) in WHERE.
Wrong: `WHERE COUNT(*) > 5`
Right: `HAVING COUNT(*) > 5`
لا يمكنك استخدام Aggregates (SUM, COUNT) في WHERE.
خطأ: `WHERE COUNT(*) > 5`
صح: `HAVING COUNT(*) > 5`

TRAP: NULL Comparisons فخ: مقارنات NULL

`Salary = NULL` is always FALSE (or Unknown).
You MUST use `Salary IS NULL`.
`Salary = NULL` دائماً خطأ (أو غير معروف).
يجب عليك استخدام `Salary IS NULL`.

SECRET: The Division Op سر: عملية Division

Any question with "Find students who took ALL courses" implies the Division ($\div$) operation. In SQL, this is solved using double `NOT EXISTS`. أي سؤال يحتوي على "أوجد الطلاب الذين أخذوا كل المواد" يشير إلى عملية Division ($\div$). في SQL، يتم حلها باستخدام `NOT EXISTS` مزدوجة.

SECRET: MAC Logic سر: منطق MAC

Bell-LaPadula (Confidentiality):
No Read Up (Can't see above).
No Write Down (Can't leak to below).
Bell-LaPadula (السرية):
لا قراءة للأعلى (لا يمكن رؤية ما هو أعلى).
لا كتابة للأسفل (لا يمكن التسريب للأسفل).

SECRET: Lossless Join سر: Lossless Join

Decomposition is only valid if it is Lossless. This means the common attribute between the two new tables MUST be a key in at least one of them. التفكيك صالح فقط إذا كان Lossless. هذا يعني أن السمة المشتركة بين الجدولين الجديدين يجب أن تكون مفتاحاً في واحد منهما على الأقل.