Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

SQLمفاهيم عامة و مصطلحات أساسية في قواعد البيانات

  • مراحل بناء قواعد بيانات
  • كيف تتخزن المعلومات في الجداول
  • مصطلحات أساسية في قواعد البيانات
  • مفهوم القيمة NULL في قواعد بيانات
  • تصنيف أوامر SQL

مراحل بناء قواعد بيانات

عندما تقوم بإنشاء قاعدة بيانات، فأنت بذلك تنوي وضع كل معلومات المشروع في هذه القاعدة.
المعلومات التي ستضعها في قاعدة البيانات هي حتماً معلومات لأشياء مختلفة في المشروع و إليك هذا المثال.

المواقع الإلكترونية تحفظ معلومات المستخدمين، مقالاتهم و تعليقاتهم في جداول منظمة تشبه التالي.

قاعدة بيانات لموقع إلكتروني

نود الإشارة إلى لن نتطرق الآن للطريقة التي يتم فيها ربط الجداول مع بعضها لأن هذا الأمر ستتعلمه لاحقاً و بتفصيل ممل. أيضاً، المواقع تحفظ الكثير من المعلومات الأخرى و لكن هذا الأمر لا يهمنا حالياً و لا تشغل بالك به لأنك ستتعلمه في نهاية الدورة.

نلاحظ من الرسم السابق أن قاعدة البيانات كأنها حاوية كبيرة يتم فيها وضع كل معلومات المشروع.
حتى نرتب المعلومات بشكل منظم و مرتب، نقوم بإنشاء جدول لكل جزئية في المشروع حتى يسهل التعامل معها و الوصول لها.

سبب إنشاء ثلاث جداول في قاعدة البيانات هو أننا نتعامل مع ثلاث أشياء مختلفة هي:

  • معلومات كل مستخدم في الجدول users مثل إسمه، إسم عائلته، بريده الإلكتروني.
  • معلومات كل مقال في الجدول posts مثل عنوانه، محتواه، هل يمكن إضافة تعليقات عليه أم لا.
  • معلومات كل التعليقات في الجدول comments مثل من هو المعلّق، تاريخ إضافة التعليق، محتوى التعليق.

كيف تتخزن المعلومات في الجداول

عند تصميم قاعدة البيانات فإننا نرسمها كما فعلنا في السابق, أي نركز فقط على المعلومات التي سيتم تخزينها و على أساسها نقوم بتقسيم المعلومات عدة جداول.
الآن أنت تتسائل حتماً عن الطريقة التي يتم فيها تخزين البيانات في هذه الجداول و هذا ما سنعرضه لك.


المثال الاول

هنا وضعنا صورة نظهر فيها كيف تتخزن معلومات المستخدمين في الجدول users.
ملاحظة: كل سطر في الجدول يمثل المعلومات الخاصة بمستخدم واحد.


المثال الثاني

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


المثال الثالث

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

مصطلحات أساسية في قواعد البيانات

المصطلح معناه
Database تعني قاعدة بيانات، و هي عبارة عن ملف يحتوي على عدة جداول مرتبطة ببعضها البعض.
Table تعني جدول، الجدول يتألف من عدد محدد من الأعمدة و عدد غير محدد من الأسطر.
قاعدة البيانات تتألف من مجموعة جداول.
Field أو Column تعني حقل أو عمود في الجدول، و هو يمثل معلومة لها نوع محدد في الجدول.
فمثلاً يمكن أن تكون هذه المعلومة نص، عدد، تاريخ، صورة، فيديو أو ملف من أي نوع كان.
الجدول الواحد يتألف من عدة حقول.
Tuple أو Record أو Row تعني سطر في الجدول، أي مجموعة معلومات. مجموعة المعلومات هذه تمثل سجل في الجدول.
الجدول الواحد يمكن أن يحتوي على عدد غير محدد من السجلات.

مفهوم القيمة NULL في قواعد بيانات

الكلمة NULL تعني أنه لم يتم إدخال قيمة في الحقل بعد، أي هي ليست قيمة بحد ذاتها بل هي تعني أن الحقل لا يملك قيمة.

كمصطلح آخر للكلمة NULL فهي تعني أن الحقل فارغ أو قيمته غير محددة.

إفتراضياً، خادم قاعدة البيانات حين يجدك أضفت سطر جديد و لم تملئ جميع الحقول الموجودة فيه يظهر لك الكلمة NULL مكان كل حقل فارغ للإشارة إلى أنه لم يتم وضع قيمة فيه.

في حال وضعت الكلمة NULL بنفسك كقيمة لحقل في الجدول فهذا لا يعني أنك أدخلت قيمة فيه، بل يعني أنك حددت بنفسك أن الحقل فارغ. و في حال كان يوجد فيه قيمة فإنه سيتم حذفها.


مثال

إذا قمنا بإدخال معلومات مستخدمين جدد في جدول المستخدمين و لم نملئ جميع الحقول، سيتم وضع الكلمة NULL في الحقول الفارغة كالتالي.

إذا قمنا بقراءة هذا الجدول فسنقرأه كالتالي:

  • أحمد لم يتم إدخال إسم عائلته.
  • وسام لم يتم إدخال بريده الإلكتروني
  • رولا لم يتم إدخال إسم عائلتها و بريدها الإلكتروني.
  • المستخدم الأخير لم يتم ذكر إسمه و لكن تم إدخال إسم عائلته و بريده الإلكتروني.

تصنيف أوامر SQL

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

الأوامر التي نكتبها في SQL تنقسم لخمس فئات هي: DML - DDL - DQL - DCL - TCL.


الأوامر التي تنتمي لفئة DDL

هي الأوامر التي تستخدم لإنشاء قواعد البيانات و إنشاء كل ما فيها كل الجداول، الحقول، الدوال إلخ..
كل هذا الأوامر تندرج تحت فئة Data Definition Language و التي تختصر بكلمة DDL, و هذه نبذة عنها:

  • الأمر CREATE: يستخدم لإنشاء قاعدة بيانات، جدول, دالة، فهرس إلخ..
  • الأمر DROP: يستخدم لحذف قاعدة بيانات، جدول، دالة، فهرس إلخ..
  • الأمر ALTER: يستخدم لتعديل بنية قاعدة بيانات، جدول، دالة، فهرس إلخ..
  • الأمر TRUNCATE: يمسح كل الأسطر الموضوعة في جدول و يعيد رقم التعرفة المستخدم فيها ( Identity ) لقيمته الأولية.

الأوامر التي تنتمي لفئة DML

هي الأوامر التي تستخدم للتعامل مع البيانات التي يتم تخزينها في قواعد البيانات سواء أوامر الحذف منها، الإضافة و التعديل عليها.
كل هذه الأوامر تندرج تحت فئة Data Manipulation Language و التي تختصر بكلمة DML، و هذه نبذة عنها:

  • الأمر INSERT: يستخدم لإضافة بيانات جديدة في الجدول.
  • الأمر UPDATE: يستخدم لتحديث بيانات موجودة في الجدول.
  • الأمر DELETE: يستخدم لحذف بيانات موجودة من الجدول بصورة نهائية.

الأوامر التي تنتمي لفئة DQL

كلمة DQL إختصار لجملة Data Query Language و هذه الفئة تتضمن الأمر SELECT الذي يستخدم لجلب البيانات المخزنة في جداول قواعد البيانات.


الأوامر التي تنتمي لفئة DCL

هي الأوامر التي تستخدم للتعامل مع صلاحيات المستخدمين و التي تحدد نوع العمليات التي يمكنهم أن ينفذوها على بنية قاعدة البيانات و محتواها.
كل هذه الأوامر تندرج تحت فئة Data Control Language و التي تختصر بكلمة DCL، و هذه نبذة عنها:

  • الأمر GRANT: يستخدم لإعطاء صلاحيات للمستخدمين في قاعدة البيانات.
  • الأمر REVOKE: يستخدم لإيقاف صلاحيات كان معطات للمستخدمين في قاعدة البيانات.

الأوامر التي تنتمي لفئة TCL

هي الأوامر التي تستخدم لضمان أن مجموعة إستعلامات سيتم تنفيذها كلها بدون مشاكل و التراجع عن تنفيذها كلها في حال حدوث أي خطأ في أحدها.
كل هذه الأوامر تندرج تحت فئة Transactional Control Language و التي تختصر بكلمة TCL، و هذه نبذة عنها:

  • الأمر START TRANSACTION: يستخدم لتحديد أين تبدأ مجموعة الإستعلامات التي نريد أن يتم تنفيذها كلها أو لا يتم تنفيذها في حال حدوث خطأ.
  • الأمر COMMIT: يستخدم لحفظ التغيرات التي تم إجراءها و هذا الأمر يستدعى في حال تم تنفيذ جميع الإستعلامات الموضوعة في الـ Transaction بنجاح.
  • الأمر ROLLBACK: يستخدم لإلغاء كل التغيرات التي تم إجراءها و هذا الأمر يستدعى في حال لم يتم تنفيذ جميع الإستعلامات الموضوعة في الـ Transaction بنجاح.