شرح مادة عال 380 (CSC 380) قواعد البيانات - جامعة الملك سعود

فريق زدني فريق زدني 04 أبريل 2026
10 دقائق للقراءة
شرح مادة عال 380 (CSC 380) قواعد البيانات - جامعة الملك سعود

مادة عال 380 (CSC 380)، قواعد البيانات (Introduction to Database Concepts)، من اكثر المواد التي تنفعك خارج الجامعة قبل داخلها. اي تطبيق ويب فتحته اليوم، اي صفحة منيو في تطبيق توصيل، اي سجل اكاديمي على نظام بانر، خلفها قاعدة بيانات. لو فهمت عال 380 صح، انت فتحت لنفسك بابا واسعا في تطوير الويب، تطبيقات الجوال، علم البيانات، وحتى الذكاء الاصطناعي.

المادة في قسم علوم الحاسب بجامعة الملك سعود تبني فوق ما تعلمته في عال 212 (تراكيب البيانات). الاشجار التي درستها هناك (B-Tree تحديدا) وجداول الهاش هي نفس الادوات التي يستخدمها محرّك قاعدة البيانات في الداخل. الفرق ان عال 380 ترفع المستوى من “كيف اخزن بيانات في الذاكرة” الى “كيف اخزن ملايين السجلات على القرص واستعلم عنها بكفاءة”.

📋 ملخص سريع

  • رمز المادة: عال 380 (CSC 380): مقدمة في قواعد البيانات (Introduction to Database Concepts)
  • الساعات المعتمدة: 3 ساعات نظري + 1 عملي
  • المتطلب السابق: عال 212 (CSC 212): تراكيب البيانات
  • اللغة المستخدمة: SQL (مع MySQL او PostgreSQL في المختبر)
  • الكتاب المرجعي: Fundamentals of Database Systems, Elmasri & Navathe (متوفر بنسخة انجليزية كاملة)
  • المواضيع الرئيسية: نموذج ER، النموذج العلائقي، الجبر العلائقي، SQL (DDL/DML)، التطبيع (1NF حتى BCNF)، المعاملات و ACID، الفهرسة
  • يقود الى: عال 311 تصميم الخوارزميات (تحسين الاستعلامات)، مشاريع التخرج، مجال علم البيانات

ليش عال 380 مهمة لمسارك الوظيفي؟

قواعد البيانات مهارة افقية تنفعك في كل مسار تختاره بعد التخرج:

  • تطوير الويب وتطبيقات الجوال: اي تطبيق فيه تسجيل دخول او عربة شراء يحتاج قاعدة بيانات. شركات مثل جاهز و حلول تطلب SQL في كل اعلان وظيفي تقريبا
  • علم البيانات: قبل ما تتعلم Python و Pandas، لازم تعرف SQL. هي اللغة التي تستخرج فيها البيانات
  • مشاريع التخرج: تقريبا كل مشروع تخرج يحتوي على قاعدة بيانات. الطالب الذي يفهم التطبيع و JOINs يكون مشروعه اقوى
  • المقابلات الوظيفية: سؤال JOIN واحد كافي ليفرّق بين خريج فاهم وخريج حافظ

ℹ️ فرق المادة عن مواد البرمجة

في عال 111 و 113 تعلمت تكتب كود يحل مشكلة. في عال 212 تعلمت تختار هيكل بيانات مناسب. في عال 380 تتعلم تصمم نظام بيانات كامل: من رسم العلاقات بين الكيانات الى كتابة استعلامات معقدة الى ضمان ان البيانات تبقى صحيحة حتى لو سقط السيرفر فجاة.

نظرة عامة على محتوى عال 380

الاسابيعالموضوعالمفاهيم الرئيسية
1مقدمة في انظمة قواعد البياناتDBMS, schema, instance, ANSI/SPARC
2-3نموذج الكيان والعلاقة (ER Model)Entities, attributes, relationships, cardinality
4النموذج العلائقي (Relational Model)Tables, primary key, foreign key, integrity
5تحويل ER الى علائقيMapping rules
6الجبر العلائقي (Relational Algebra)σ, π, ⨝, ∪, ∩, −
7-8لغة SQL: DDL و DML الاساسيةCREATE, ALTER, DROP, SELECT, INSERT
9SQL متقدمة: JOINs و AggregatesINNER/LEFT JOIN, GROUP BY, HAVING
10-11الاعتماديات الدالية والتطبيع1NF, 2NF, 3NF, BCNF
12المعاملات (Transactions) و ACIDCOMMIT, ROLLBACK, isolation levels
13التزامن (Concurrency Control)Locking, deadlock
14الفهرسة وتنظيم الملفاتB-Tree index, Hash index
15مراجعة شاملة ومشروع نهائيتصميم قاعدة بيانات كاملة

1. نموذج الكيان والعلاقة (ER Model)

قبل ما تكتب اي SQL، لازم ترسم. نموذج ER هو اللغة المرئية التي تستخدمها لتصميم قاعدة البيانات على الورق قبل ما تنفذها.

المكونات الاساسية

  • Entity (كيان): شيء له وجود مستقل في النظام. مثل: طالب، مادة، استاذ، قاعة
  • Attribute (سمة): خاصية للكيان. مثلا الطالب له: الرقم الجامعي، الاسم، التخصص، المعدل
  • Relationship (علاقة): ربط بين كيانين. مثل: الطالب يسجل في مادة

انواع السمات

  • Simple vs Composite: الاسم سمة مركّبة (اول + اخير)، الرقم الجامعي سمة بسيطة
  • Single-valued vs Multi-valued: التخصص قيمة واحدة، ارقام الجوال متعددة
  • Stored vs Derived: تاريخ الميلاد مخزّن، العمر مشتق يحسب من تاريخ الميلاد
  • Key Attribute: سمة مميّزة لكل كيان مثل الرقم الجامعي

الـ Cardinality (نسبة العلاقة)

كل علاقة لها نسبة تحدد كم كيان مشارك من كل طرف:

النوعالمعنىمثال
1:1واحد لواحدكل طالب له بطاقة جامعية واحدة
1:Nواحد لمتعدداستاذ واحد يدرّس عدة مواد
M:Nمتعدد لمتعددالطالب يسجل عدة مواد، والمادة فيها عدة طلاب

💡 نصيحة لرسم ER في الاختبار

لما يطلب منك ترسم ER من نص مكتوب: خط تحت كل اسم في النص. كل اسم تحته خط = كيان محتمل. كل فعل بين اسمين = علاقة. هذي الطريقة تنقذك في اسئلة “صمّم قاعدة بيانات لمستشفى/مكتبة/جامعة” التي تجي في الاختبار النصفي.

2. النموذج العلائقي (Relational Model)

نموذج ER ممتاز للتصميم، لكن قاعدة البيانات الفعلية تخزن البيانات في جداول. النموذج العلائقي يحوّل الرسم الى جداول مرتبطة بمفاتيح.

المفاهيم الاساسية

  • Relation (علاقة): الجدول نفسه
  • Tuple (صف): سجل واحد في الجدول
  • Attribute (عمود): حقل في الجدول
  • Domain: القيم المسموحة لكل عمود (مثل INT بين 0 و 100)

المفاتيح (Keys)

النوعالوصف
Primary Keyمعرّف فريد لكل صف، لا يقبل null
Candidate Keyاي عمود (او مجموعة) يصلح ليكون primary
Foreign Keyيربط الجدول بـ primary key في جدول اخر
Composite Keyمفتاح مكوّن من عمودين او اكثر

قواعد السلامة (Integrity Constraints)

ثلاث قواعد لازم تحفظها لانها تجي في كل اختبار:

  1. Entity Integrity: Primary Key لا يكون null ابدا
  2. Referential Integrity: Foreign Key اما يطابق primary key موجود او يكون null
  3. Domain Integrity: كل قيمة لازم تكون داخل الـ domain المحدد
-- مثال: جدول الطلاب مع قيود السلامة
CREATE TABLE Students (
    StudentID INT PRIMARY KEY,           -- مفتاح اساسي
    Name VARCHAR(100) NOT NULL,          -- لا يقبل فارغ
    GPA DECIMAL(3,2) CHECK (GPA <= 5.0), -- قيد المجال
    DeptID INT,
    FOREIGN KEY (DeptID) REFERENCES Departments(DeptID)
);

3. الجبر العلائقي (Relational Algebra)

الجبر العلائقي هو الاساس النظري لـ SQL. كل استعلام تكتبه بـ SQL يحوّله المحرك الى عمليات جبر علائقي قبل التنفيذ.

العمليات الاساسية

الرمزالاسمالوظيفة
σ (سيغما)Selectionاختيار صفوف بشرط
π (باي)Projectionاختيار اعمدة محددة
Joinدمج جدولين بشرط
Unionدمج صفوف جدولين
Intersectionالصفوف المشتركة
Differenceالصفوف في الاول دون الثاني
×Cartesian Productكل صف مع كل صف
ρRenameاعادة تسمية

امثلة عملية

Selection σ: اعطني الطلاب اللي معدلهم اعلى من 4.0

σ GPA > 4.0 (Students)

Projection π: اعطني فقط اسماء ومعدلات الطلاب

π Name, GPA (Students)

Join ⨝: اربط جدول الطلاب مع جدول الاقسام

StudentsStudents.DeptID = Departments.DeptID Departments

التركيب: اسماء الطلاب اللي معدلهم اعلى من 4.5 في قسم علوم الحاسب

π NameGPA > 4.5DeptName='CS' (StudentsDepartments))

⚠️ فرق المهم بين π و σ

الطلاب يخلطون بين الاثنين دائما. القاعدة:

  • σ (Selection) يقطع صفوف (يفلتر الـ rows)
  • π (Projection) يقطع اعمدة (يختار الـ columns)

تذكّر: σ تختار اللي تبيه، π تختار اللي تشوفه.

4. لغة SQL: الجزء الاول، DDL

SQL تنقسم لجزئين رئيسيين: DDL (Data Definition Language) لتعريف البنية، و DML (Data Manipulation Language) للتعامل مع البيانات.

CREATE: انشاء الجداول

-- انشاء جدول الاقسام
CREATE TABLE Departments (
    DeptID INT PRIMARY KEY,
    DeptName VARCHAR(50) NOT NULL,
    Building VARCHAR(50)
);

-- انشاء جدول المواد مع foreign key
CREATE TABLE Courses (
    CourseID VARCHAR(10) PRIMARY KEY,
    Title VARCHAR(100) NOT NULL,
    Credits INT CHECK (Credits BETWEEN 1 AND 6),
    DeptID INT,
    FOREIGN KEY (DeptID) REFERENCES Departments(DeptID)
);

ALTER و DROP: التعديل والحذف

-- اضافة عمود جديد
ALTER TABLE Students ADD Email VARCHAR(100);

-- حذف عمود
ALTER TABLE Students DROP COLUMN Email;

-- حذف الجدول كاملا (انتبه!)
DROP TABLE Students;

⚠️ الفرق بين DROP و DELETE و TRUNCATE

ثلاثة اوامر تخسر فيها بيانات لكنها مختلفة:

  • DROP TABLE: يحذف الجدول والبيانات كاملا (لا رجعة)
  • DELETE FROM: يحذف صفوف (مع امكانية شرط WHERE)
  • TRUNCATE TABLE: يفرّغ كل الصفوف بسرعة لكن يبقي الجدول

في الاختبار، سؤال “ايش الفرق بين الثلاثة” تقريبا مضمون.

5. لغة SQL: الجزء الثاني، DML

هنا تتعامل مع البيانات نفسها: ادراج، استعلام، تعديل، حذف.

SELECT الاساسي

-- اختيار كل البيانات
SELECT * FROM Students;

-- اختيار اعمدة محددة بشرط
SELECT Name, GPA
FROM Students
WHERE GPA > 4.0
ORDER BY GPA DESC;

INSERT و UPDATE و DELETE

-- ادراج صف جديد
INSERT INTO Students (StudentID, Name, GPA, DeptID)
VALUES (442100123, 'محمد العتيبي', 4.5, 1);

-- تحديث صف
UPDATE Students
SET GPA = 4.75
WHERE StudentID = 442100123;

-- حذف صف بشرط
DELETE FROM Students
WHERE GPA < 2.0;

الدوال التجميعية (Aggregate Functions)

-- متوسط، عدد، اكبر، اصغر، مجموع
SELECT
    COUNT(*) AS عدد_الطلاب,
    AVG(GPA) AS المعدل_العام,
    MAX(GPA) AS اعلى_معدل,
    MIN(GPA) AS اقل_معدل
FROM Students;

GROUP BY و HAVING

-- عدد الطلاب ومتوسط معدلهم في كل قسم
SELECT DeptID, COUNT(*) AS عدد, AVG(GPA) AS متوسط
FROM Students
GROUP BY DeptID
HAVING AVG(GPA) > 3.5;

💡 WHERE مقابل HAVING

  • WHERE: يفلتر الصفوف قبل التجميع
  • HAVING: يفلتر النتائج بعد التجميع

ما تقدر تستخدم AVG او COUNT في WHERE، لازم HAVING. هذي قاعدة تجي في الاختبار النصفي تقريبا كل سنة.

6. JOINs: ربط الجداول

JOIN هو اهم عملية في SQL. كثير من الطلاب يواجهون صعوبة في فهم الفروقات بين انواع الـ JOIN في البداية. الحل التمرين على بيانات حقيقية مع رسم Venn diagrams.

INNER JOIN

يجيب فقط الصفوف اللي تطابق في الجدولين:

SELECT s.Name, c.Title, e.Grade
FROM Students s
INNER JOIN Enrollments e ON s.StudentID = e.StudentID
INNER JOIN Courses c ON e.CourseID = c.CourseID
WHERE c.CourseID = 'CSC380';

LEFT JOIN

يجيب كل صفوف الجدول الايسر، حتى لو ما في تطابق في الايمن:

-- كل الطلاب حتى لو ما سجلوا اي مادة
SELECT s.Name, c.Title
FROM Students s
LEFT JOIN Enrollments e ON s.StudentID = e.StudentID
LEFT JOIN Courses c ON e.CourseID = c.CourseID;

مثال متكامل

-- الطلاب الذين معدلهم فوق 4 ولم يسجلوا في عال 380
SELECT s.Name, s.GPA
FROM Students s
LEFT JOIN Enrollments e
    ON s.StudentID = e.StudentID AND e.CourseID = 'CSC380'
WHERE s.GPA > 4.0 AND e.StudentID IS NULL;

واجبات SQL و JOINs ضاغطة عليك؟

الاستعلامات المعقدة مع JOINs المتعددة من اكثر الواجبات اللي يطلب فيها طلاب عال 380 مساعدة. ارسل لنا الواجب وسنحله مع شرح كل JOIN خطوة بخطوة.

ارسل واجبك على واتساب

7. التطبيع (Normalization)

كثير من الطلاب يواجهون صعوبة في التطبيع لانه موضوع نظري يحتاج تفكير منطقي اكثر منه حفظ. لكن لما تفهم الفكرة الاساسية، الباقي يصير سهل.

ليش نحتاج التطبيع؟

التطبيع يحل ثلاث مشاكل تجي مع الجداول السيئة:

  • Insertion Anomaly: ما تقدر تضيف بيانات جديدة بدون بيانات تانية
  • Update Anomaly: تحديث قيمة يستلزم تعديلها في عدة صفوف
  • Deletion Anomaly: حذف صف يضيع معه معلومات مهمة

مثال عملي: جدول قبل التطبيع

تخيّل جدول Enrollments فيه كل شيء:

StudentIDStudentNameCourseIDCourseTitleInstructorGrade
441001احمدCSC380Databaseد.سالمA
441001احمدCSC212DataStructد.فهدB+
441002سارةCSC380Databaseد.سالمA+

المشاكل:

  • اسم الطالب مكرر مع كل تسجيل
  • لو تغيّر اسم الكورس، تحدّث في عدة صفوف
  • لو حذفنا اخر طالب في كورس، فقدنا معلومات الكورس

1NF (First Normal Form)

كل خانة فيها قيمة ذرية واحدة فقط (ما في قوائم او قيم متعددة).

مخالف للـ 1NF: عمود “ارقام الجوال” فيه 0501,0502,0503 كنص واحد.

موافق للـ 1NF: جدول منفصل للجوالات حيث كل صف فيه رقم واحد.

2NF (Second Normal Form)

شرط: في 1NF + كل سمة غير مفتاحية تعتمد على كل المفتاح المركّب وليس جزء منه.

في جدول Enrollments السابق، المفتاح المركّب هو (StudentID, CourseID). لكن:

  • StudentName يعتمد على StudentID فقط
  • CourseTitle يعتمد على CourseID فقط

هذا اعتماد جزئي، لازم نقسّم.

3NF (Third Normal Form)

شرط: في 2NF + لا يوجد اعتماد متعدّي (Transitive Dependency).

مثلا في جدول الطلاب: لو عندنا StudentIDDeptIDDeptName، فـ DeptName يعتمد على DeptID وليس مباشرة على StudentID. هذا اعتماد متعدّي يخالف 3NF.

BCNF (Boyce-Codd Normal Form)

شرط اقوى من 3NF: لكل اعتماد دالي X → Y، يجب ان X يكون مفتاحا مرشحا (Candidate Key).

التحلل (Decomposition) — مثال كامل

الجدول الاصلي:

Enrollments(StudentID, StudentName, CourseID, CourseTitle, Instructor, Grade)

بعد التطبيع لـ 3NF نقسّمه الى ثلاث جداول:

-- جدول الطلاب
Students(StudentID, StudentName)

-- جدول المواد
Courses(CourseID, CourseTitle, Instructor)

-- جدول التسجيل (يربط الطالب بالمادة)
Enrollments(StudentID, CourseID, Grade)

الان كل بيانات الطالب في مكان واحد، كل بيانات المادة في مكان واحد، والعلاقة بينهم في جدول ثالث.

🔴 قاعدة عملية للتطبيع

في الاختبار، 90% من الاسئلة تتوقف عند 3NF. القاعدة المختصرة:

  1. 1NF: لا قيم متعددة في خانة واحدة
  2. 2NF: كل سمة تعتمد على كل المفتاح
  3. 3NF: كل سمة تعتمد على المفتاح مباشرة

لو حفظت الفكرة الجوهرية: “كل سمة تعتمد على المفتاح، كل المفتاح، ولا شيء غير المفتاح”، انت في 3NF.

ربط مهم: مفاهيم العلاقات والمجموعات التي تستخدمها هنا (الاعتماد الدالي مثلا) تعتمد على ما درسته في عال 281 الرياضيات المتقطعة.

التطبيع و BCNF لخبطك في عال 380؟

كثير من طلاب جامعة الملك سعود يحسون ان التطبيع موضوع نظري يصعب التمرّس عليه. ارسل لنا الواجب او الـ case study وسنشرح لك كل خطوة في التحلل مع تبرير كل قرار.

تواصل معنا على واتساب

8. المعاملات و ACID (Transactions)

المعاملة هي سلسلة عمليات تنفّذ كوحدة واحدة. اشهر مثال: تحويل مبلغ من حساب الى حساب اخر.

-- تحويل 1000 ريال من حساب رقم 1 الى حساب رقم 2
BEGIN TRANSACTION;
    UPDATE Accounts SET Balance = Balance - 1000 WHERE AccID = 1;
    UPDATE Accounts SET Balance = Balance + 1000 WHERE AccID = 2;
COMMIT;
-- لو حصل خطا في اي خطوة: ROLLBACK

لو وقع السيرفر بعد السطر الاول وقبل الثاني، عندك مشكلة كبيرة: مبلغ خرج من حساب لكن ما دخل في حساب. ACID هو الضمان ضد هذا.

خصائص ACID الاربع

الخاصيةالاسمالمعنى
Atomicityالذريةاما كل العمليات تنجح، او كلها تتراجع
Consistencyالاتساقالبيانات تنتقل من حالة صحيحة لحالة صحيحة
Isolationالعزلالمعاملات المتزامنة لا تتداخل
Durabilityالديمومةبعد COMMIT، التغيير محفوظ حتى لو سقط النظام

مستويات العزل (Isolation Levels)

ترتيب من الاضعف للاقوى:

  1. READ UNCOMMITTED: اقرا حتى البيانات غير المؤكدة (Dirty Read)
  2. READ COMMITTED: اقرا فقط بعد COMMIT
  3. REPEATABLE READ: نفس القراءة تعطي نفس النتيجة في المعاملة
  4. SERIALIZABLE: كانه ما في معاملات متزامنة (الاقوى لكن الابطا)

⚠️ ثلاث مشاكل تزامن في الاختبار

احفظهم بفروقاتهم:

  • Dirty Read: قراءة بيانات لم يتم COMMIT لها
  • Non-repeatable Read: نفس الاستعلام يعطي نتائج مختلفة في نفس المعاملة
  • Phantom Read: صفوف جديدة تظهر بين استعلامين بسبب INSERT في معاملة اخرى

كل مستوى عزل يحل مشكلة منهم. سؤال “ايش يحل READ COMMITTED” يجي في النهائي.

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

تخيّل تبحث عن طالب برقمه الجامعي في جدول فيه مليون سجل. بدون فهرس، قاعدة البيانات تقرا كل سجل لحد تلاقيه (O(n)). مع فهرس، تلاقيه في O(log n) او حتى O(1).

B-Tree Index

النوع الافتراضي في معظم قواعد البيانات. شجرة متوازنة (شبيهة بـ AVL التي درستها في عال 212) لكن كل عقدة تحتوي عدة مفاتيح بدل واحد. هذا يقلل عدد القراءات من القرص.

ممتاز لـ:

  • البحث بالمساواة: WHERE id = 100
  • نطاقات: WHERE GPA BETWEEN 3 AND 4
  • الترتيب: ORDER BY name

Hash Index

يستخدم دالة hash (شبيهة بجداول الهاش في عال 212) ويعطي O(1) للبحث.

ممتاز لـ:

  • البحث بالمساواة فقط: WHERE id = 100

لا يصلح لـ:

  • النطاقات: WHERE GPA > 3 (لان hash يعطل الترتيب)
  • الترتيب: ORDER BY name

مقارنة سريعة ومتى تنشئ فهرس

المعيارB-TreeHash
البحث بالمساواةO(log n)O(1)
البحث بنطاقO(log n + k)لا يدعم
الترتيبيدعملا يدعم
-- انشاء فهرس على عمود يستخدم كثيرا في WHERE
CREATE INDEX idx_student_gpa ON Students(GPA);

-- فهرس مركّب على عمودين
CREATE INDEX idx_enrollment ON Enrollments(StudentID, CourseID);

💡 متى لا تنشئ فهرس

الفهرس ليس مجاني. كل INSERT و UPDATE و DELETE يحدّث الفهرس ايضا.

  • انشئ فهرس: اعمدة تستخدم كثيرا في WHERE / JOIN / ORDER BY
  • لا تنشئ فهرس: جداول صغيرة، اعمدة تتغير كثيرا، اعمدة فيها قيم محدودة (مثل Gender)

تحسين الاستعلامات (Query Optimization) موضوع متقدم تشوفه بعمق في عال 311 تصميم وتحليل الخوارزميات.

اخطاء شائعة في عال 380

  1. استخدام * في SELECT بدل تحديد الاعمدة: يسحب بيانات زيادة ويبطئ الاستعلام
  2. نسيان WHERE في UPDATE او DELETE: يحدّث كل الصفوف، خطا كارثي
  3. الاعتماد على ORDER BY بدون فهرس: يبطئ الاستعلام مع البيانات الكبيرة
  4. استخدام DISTINCT بشكل عشوائي: غالبا يخفي مشكلة في JOIN غير صحيح
  5. الخلط بين 3NF و BCNF: الفرق دقيق لكنه يجي في الاختبار النهائي
  6. عدم استخدام المعاملات في عمليات حساسة: اي عملية تحدّث جدولين لازم تكون داخل TRANSACTION
  7. انشاء فهرس على كل عمود: يبطئ INSERT و UPDATE بدون داعي

خطة مذاكرة فعالة لـ عال 380

خطة مذاكرة لـ عال 380 على 6 خطوات

  1. ركّب MySQL او PostgreSQL على جهازك من الاسبوع الاول: المادة عملية. ما تقدر تتعلم SQL من سلايدات فقط
  2. ارسم ER قبل ما تكتب اي SQL: اي مثال في الكتاب، ارسمه بنفسك قبل ما تشوف الحل
  3. حل تمارين الجبر العلائقي على ورق: قبل ما تترجمها لـ SQL، اكتب الحل بـ σ و π و ⨝
  4. تمرّن على JOINs ببيانات حقيقية: نزّل قاعدة بيانات تجريبية مثل Sakila او Northwind وحل عليها 30 استعلام
  5. التطبيع: حل 5 امثلة على الاقل من اول 1NF لـ 3NF: التطبيع يفهم بالامثلة لا بالحفظ
  6. حل اسئلة اختبارات سابقة: اسئلة عال 380 من سنوات سابقة متوفرة في مجموعات تليجرام طلاب الكلية، استخدمها للتدريب

ربط عال 380 بمسارك الاكاديمي

عال 380 بوابة لمواد ومجالات اخرى في خطتك:

  • عال 212 (تراكيب البيانات): الفهرسة تستخدم اشجار B-Tree وجداول الهاش التي درستها في عال 212 مباشرة
  • عال 281 (الرياضيات المتقطعة): نظرية المجموعات والعلاقات في عال 281 هي الاساس النظري للنموذج العلائقي
  • عال 311 (تصميم الخوارزميات): تحسين الاستعلامات موضوع متقدم في عال 311 ويعتمد على ما تعلمته هنا
  • مشاريع التخرج وعلم البيانات: SQL هي اللغة الاولى لاي محلل بيانات، وفهمك العميق للتطبيع يخلي مشروع تخرجك اقوى

لو تبي اساس عملي في SQL قبل ما تبدا المادة، راجع دليل SQL للمبتدئين.

خلاصة

عال 380 ليست اصعب مادة في خطة علوم الحاسب، لكنها من اكثر المواد التي تنفعك مباشرة في سوق العمل. اي مشروع تشتغل عليه، اي تطبيق تطوّره، اي تحليل بيانات تسويه، خلفه قاعدة بيانات وخلفها المفاهيم اللي تتعلمها هنا.

التركيز يجب يكون على التطبيق العملي: ركّب MySQL على جهازك، اكتب SQL يومي، ارسم نماذج ER لاي تطبيق تستخدمه، وحل تمارين تطبيع على ورق. الطالب اللي يعدي عال 380 بفهم عميق يفتح لنفسه ابواب شغل قبل ما يتخرج.

افتح اول قاعدة بيانات تجريبية اليوم، اكتب اول SELECT، وابدا.

تحتاج مساعدة في واجبات او مشروع عال 380؟

سواء كان مشروع تصميم قاعدة بيانات، استعلامات SQL معقدة، او تمارين تطبيع، فريقنا متخصص في مواد قسم علوم الحاسب بجامعة الملك سعود. ارسل لنا الواجب وسنرد عليك بعرض سعر خلال ساعة.

ارسل واجبك على واتساب

أسئلة شائعة

هل عال 380 صعبة؟ +

مادة عال 380 ليست صعبة بالمعنى الحرفي، لكنها مادة طبقات. لو فهمت نموذج ER ثم انتقلت بسلاسة للنموذج العلائقي ثم SQL، باقي المنهج يبني على نفس الاساس. المواضيع التي يحس فيها الطلاب بالضغط هي التطبيع (Normalization) و JOINs المتعددة. التمرين العملي على قاعدة بيانات حقيقية مثل MySQL او PostgreSQL يخفف الفجوة كثيرا.

ما المتطلب السابق لمادة عال 380؟ +

المتطلب الرسمي لـ عال 380 هو عال 212 (CSC 212 - تراكيب البيانات). المنطق ان مفاهيم مثل اشجار B-Tree وجداول الهاش تستخدم داخل محرّك قاعدة البيانات في الفهرسة، فلازم تكون اساسياتك في هياكل البيانات قوية قبل ما تدخل عال 380.

ما الكتاب المرجعي لـ عال 380 في جامعة الملك سعود؟ +

الكتاب الاكثر استخداما في عال 380 هو Fundamentals of Database Systems للمؤلفين Elmasri و Navathe. الكتاب متوفر بنسخة انجليزية كاملة ويغطي تقريبا كل مفردات المنهج: نموذج ER، الجبر العلائقي، SQL، التطبيع، المعاملات، والفهرسة. بعض الدكاترة يضيفون فصول من كتاب Database Systems: The Complete Book لـ Garcia-Molina و Ullman.

كيف افرّق بين 3NF و BCNF؟ +

كل جدول في BCNF هو 3NF تلقائيا، لكن العكس غير صحيح. الفرق يظهر عندما يوجد اعتماد دالي (Functional Dependency) من سمة غير مفتاحية تحدد جزءا من مفتاح مركّب. 3NF تسمح بهذا في حالات خاصة، اما BCNF فترفضه دائما. عمليا، 95% من الجداول التي تصل 3NF تكون BCNF تلقائيا.

هل احتاج اتعلم SQL قبل دخول عال 380؟ +

ليس شرطا. المادة تبدا بـ SQL من الصفر داخل المحاضرات والمختبر. لكن لو تبي تكون متقدما على زملائك، تقدر تبدا بدورة قصيرة على SQLZoo او W3Schools قبل الفصل، وتركّز على SELECT و JOIN و GROUP BY. هذا يخفف الضغط في الاسابيع 5 الى 8 لما تكون SQL في ذروة المنهج.

ما الفرق بين قواعد البيانات SQL و NoSQL؟ +

قواعد SQL مثل MySQL و PostgreSQL تعتمد على جداول وعلاقات وتلتزم بـ ACID. اما NoSQL مثل MongoDB فتخزن البيانات كوثائق او ازواج مفتاح-قيمة وتركز على القابلية للتوسع الافقي. عال 380 تركز على النموذج العلائقي (SQL) لانه الاساس النظري الذي تبني عليه باقي الانظمة الحديثة.

هل تحتاج خصوصي؟