محاضرة قواعد البيانات (1) PDF

Document Details

AppreciatedHorseChestnut

Uploaded by AppreciatedHorseChestnut

معهد طيبة العالي لتكنولوجيا الإدارة والمعلومات

محمد أحمد محفوظ

Tags

قواعد البيانات تصميم قواعد البيانات نظم المعلومات لغة الاستعلام الهيكلية

Summary

هذه محاضرة عن قواعد البيانات تُغطي مخرجات التعلم، إدارة نظم المعلومات، وتصميم قواعد البيانات، بالإضافة إلى استخدام لغة الاستعلام الهيكلية (SQL).

Full Transcript

‫)‪Database (1‬‬ ‫قواعد بيانات )‪(1‬‬ ‫د ‪ /‬دمحم أحمد محفوظ‬ ‫دكتور نظم المعلومات‬ ‫بمعهد طٌبة العالً لتكنولوجٌا اإلدارة والمعلومات‬ ‫مخرجات التعلٌم والتعلم من دراسة تصمٌم لواعد البٌانات‬ ‫‪ -1‬تعلٌم الطالب تصمٌم لواع...

‫)‪Database (1‬‬ ‫قواعد بيانات )‪(1‬‬ ‫د ‪ /‬دمحم أحمد محفوظ‬ ‫دكتور نظم المعلومات‬ ‫بمعهد طٌبة العالً لتكنولوجٌا اإلدارة والمعلومات‬ ‫مخرجات التعلٌم والتعلم من دراسة تصمٌم لواعد البٌانات‬ ‫‪ -1‬تعلٌم الطالب تصمٌم لواعد البٌانات تنمً مهاراتة فً كٌفٌة تمدٌم المعلومات إلى‬ ‫المستوٌات اإلدارٌة المختلفة لمساعدتها فً اتخاذ المرار‪.‬‬ ‫‪ -2‬إدارة تمنٌة المعلومات بمكوناتها المختلفة تساعد لتمدٌم المعلومات لجمٌع العاملٌن‬ ‫لمساعدتهم فً أداء أنشطتهم الوظٌفٌة فً مجال العمل ‪.‬‬ ‫‪ -3‬تحلٌل وتصمٌم نظم المعلومات ولواعد البٌانات تساعد فً تمٌٌم أنشطة المنظمة و إجراء‬ ‫عملٌة الرلابة ‪.‬‬ ‫‪ -4‬استخدام برمجٌات متطورة فً المنظمات وفك المعاٌٌر العالمٌة لمساعدة المدٌرٌن على‬ ‫التنبؤ بالمستمبل بالنسبة لجمٌع أنشطة المنظم‪.‬‬ ‫‪ -5‬توظٌف نظم المعلومات والنظم الخبٌرة فً دعم اتخاذ المرارات‪.‬‬ ‫‪ -6‬إستخدام لواعد البٌانات للحصول على المعلومات فً العملٌات اإلدارٌة والمالٌة‬ ‫والتسوٌمٌة وغٌرها‪.‬‬ ‫‪ -7‬التعامل مع نظم دعم المرار فً جمٌع المستوٌات اإلدارٌة وتحدٌد لنوات االتصال بٌن‬ ‫الوحدات اإلدارٌة المختلفة لتسهٌل عملٌة استرجاع البٌانات ‪.‬‬ ‫‪ -8‬اإلستخدام الفعال لتكنولوجٌا االتصاالت والمعلومات فً مجال تطبٌمات األعمال‪.‬‬ ‫‪ -9‬وإعداد تمارٌر لتمٌٌم أنشطة المنظمة لمساعدة المستوٌات اإلدارٌة المختلفة فً اتخاذ‬ ‫المرار‪.‬‬ ‫لؽة لواعد البٌانات (لؽة االستعالم الهٌكلٌة)‬ ‫)‪Structured Query Language (SQL‬‬ ‫جدول الموضوعات‬ ‫‪Table of topics‬‬ ‫الفرق بٌن ‪DDL‬و ‪DML‬‬ ‫تعرٌؾ وألسام لؽة االستعالم الهٌكلٌة‬ ‫فً نظام إدارة لواعد البٌانات (‪(DBMS‬‬ ‫)‪Definition & sections (SQL‬‬ ‫إنشاء الجمل بلؽة معالجة البٌانات (‪)MDL‬‬ ‫تعرٌؾ لؽة تعرٌؾ البٌانات (‪)DDL‬‬ ‫‪Data Manipulation Language‬‬ ‫‪Data Definition Language‬‬ ‫تعرٌؾ لؽة معالجة البٌانات (‪)MDL‬‬ ‫إنشاء الجمل بلؽة تعرٌؾ البٌانات (‪)DDL‬‬ ‫‪Data Manipulation Language‬‬ ‫‪Data Definition Language‬‬ ‫لٌود عند اإلنشاء بلؽة تعرٌؾ البٌانات (‪)DDL‬‬ ‫‪Data Definition Language‬‬ ‫تعرٌؾ وألسام لؽة االستعالم الهٌكلٌة‬ ‫)‪Definition & sections (SQL‬‬ ‫‪1‬‬ ‫تعرٌؾ وألسام لؽة االستعالم الهٌكلٌة‬ ‫)‪Definition & sections (SQL‬‬ ‫هً لغة برمجٌة متخصصة فً التعامل مع لواعد البٌانات بحٌث ٌمكن من خاللها إدارة البٌانات وإجراء عملٌات‬ ‫الحذف واإلضافة والتعدٌل علٌها‪ ,‬وإنشاء العاللات“الجداول“ والتحكم فً عملٌة الوصول للبٌانات‪.‬‬ ‫وٌمكن تمسم تعلٌمات لغة االستعالم نفسها لعدة عناصر حسب المهام التً تموم بها مثل ‪:‬‬ ‫اختصارا ‪ DDL:‬تتضمن مجموعة األوامر‬ ‫ً‬ ‫لؽة تعرٌؾ البٌانات ‪ Data Definition Language‬أو‬ ‫ ‬ ‫التً ٌمكن استخدامها لتحدٌد وتعدٌل الهٌكلٌة أو البنٌة العامة لماعدة البٌانات‬ ‫اختصارا ‪ DML:‬تتضمن األوامر التً‬ ‫ً‬ ‫لؽة معالجة البٌانات ‪ Data Manipulation Language‬أو‬ ‫ ‬ ‫تعالج البٌانات الموجودة داخل لاعدة البٌانات نفسها مثل إنشاء لٌم جدٌدة وحذفها وتعدٌلها …إلخ‪.‬‬ ‫اختصارا ‪ DCL:‬وهً تتضمن األوامر التً‬ ‫ً‬ ‫لؽة التحكم فً البٌانات ‪ Data Control Language‬أو‬ ‫ ‬ ‫تمكننا من التحكم بصالحٌات الوصول إلى محتوى لاعدة البٌانات‪.‬‬ ‫اختصارا ‪ TCL‬وهً تتضمن‬‫ً‬ ‫لؽة التحكم فً المعامالت ‪ Transaction Control Language‬أو‬ ‫ ‬ ‫األوامر التً تتحكم بالتعامالت الداخلٌة التً تمت على لاعدة البٌانات وتمكننا على سبٌل المثال من التراجع‬ ‫عن التغٌٌرات التً لمنا بها أو حفظ وتثبٌت هذه التغٌٌرات ‪Data utilities‬‬ ‫تابع تعرٌؾ وألسام لؽة االستعالم الهٌكلٌة‬ ‫تسمى لؽة االستعالم الهٌكلٌة (باإلنجلٌزٌة ‪Structured Query Language‬‬ ‫‪ )SQL‬هً لؽة برمجة ؼٌر إجرائٌة ‪Non Procedural Language‬وهً بذلن‬ ‫تختلؾ عن لؽات البرمجة المعتادة مثل ‪C , C++ , Java‬حٌث أن اللؽات الؽٌر إجرائٌة‬ ‫هً لؽات متخصصة‪.‬ولذلن فإن لؽة االستعالمات الهٌكلٌة (البنائٌة) هً لؽة للتعامل والتحكم‬ ‫مع لواعد البٌانات المترابطة من خالل التعامل مع تراكٌب البٌانات وإجراء عملٌات إدخال‬ ‫البٌانات والحذؾ والفرز والبحث والتصفٌة وخالفه‪.‬‬ ‫مالحظات‬ ‫لؽة الـ ‪SQL‬ال تفرق بٌن حالة األحرؾ إال أن العاده جرت على كتابة األوامر‬ ‫‪.1‬‬ ‫بحروؾ كبٌره ‪Capital‬‬ ‫تنتهً عبارة ال ‪SQL‬دائما بفاصلة منموطه ;‬ ‫‪.2‬‬ ‫تابع تعرٌؾ وألسام لؽة االستعالم الهٌكلٌة‬ ‫لؽة تعرٌؾ البٌانات ‪(DDL) Data Definition Language‬‬ ‫‪.3‬‬ ‫هً األوامر التً تستخدم ألنشاء لاعدة البٌانات و الجداول فً نظم ادارة لواعد البٌانات مثل ‪ORACLE‬‬ ‫و ‪ٌ SQL SERVER‬تم انشاء لاعدة البٌانات باستخدام جمل الـ ‪ ،SQL‬فً النسخ الحدٌثه اصبحت‬ ‫هذه العملٌه تتم من خالل واجهة رسومٌة سهلة‪.‬‬ ‫أما فً ‪MS Access‬هذه العملٌه تتم من خالل واجهة رسومٌة سهلة االستخدام لادره على انشاء والتحكم‬ ‫أٌضا بماعدة البٌانات‪.‬‬ ‫ وهذا الجزء مسؤل عن ‪:‬‬ ‫تكوٌن عاللات بٌن الجداول‬ ‫تعدٌل الجدول‬ ‫الؽاء‪/‬حذؾ جدول‬ ‫انشاء جدول‬ ‫حذؾ لاعدة البٌانات‬ ‫تعدٌل لاعدة البٌانات‬ ‫انشاء لاعدة بٌانات‬ ‫لؽة معالجة البٌانات ‪(DML) Data manipulation language‬‬ ‫‪.4‬‬ ‫ وهً األوامر األكثر شٌوعا و تتضمن‪:‬‬ ‫استرجاع‪ /‬استعالم عن بٌانات‬ ‫حذؾ بٌانات‬ ‫تحدٌث‪ /‬تعدٌل بٌانات‬ ‫إدراج ‪ /‬إضافة بٌانات‬ ‫مالحظات عند كتابة لغة ) ‪(SQL‬‬ ‫‪.1‬أثناء انشاء الجدول اختار أسماء الحمول باللؽة اإلنجلٌزٌة حتى تكون كتابة االستعالمات سهلة‬ ‫‪.2‬اذا كان اسم الحمل ٌحتوي على مسافه سواء باللؽة العربٌة او األنجلٌزٌه ضعه بٌن لوسٌن مربعٌن [ ] ‪,‬‬ ‫}{تشٌر إلى أن المٌمة بٌنهما اجبارٌة أي ٌجب كتابتها‪.‬و نموم بفصل الحمول بالكوما ‪,‬‬ ‫‪.3‬عدد حروؾ اسم الجدول أو الحمل كحد ألصى هً ‪ 30‬حرفا ً‬ ‫‪.4‬اسم الجدول ‪ ،‬و الحمول (األعمدة) ممكن ان تحتوي احرفا (كبٌره و صؽٌره ) أرلام و الرمز( _ ) هنان‬ ‫مجموعه اخرى من الرموز الممكن استخدامها ولكن ال ٌحبذ اللجوء لها ألنها تجعل المراءه ؼٌر واضحه‬ ‫‪.5‬اسم الجدول الحمل ال بد أن ٌبدأ بحرؾ وبعدها اي ترتٌب من االحرؾ و االرلام‬ ‫‪.6‬اسم الجدول و العمود ال بد ان ٌكون ذو معنى مفهوم للمبرمج‬ ‫‪.7‬األحرؾ االنجلٌزٌه الكبٌره و الصؽٌره تعامل على حد سواء فً ما ٌخص اسم الجدول و العمود‬ ‫‪.8‬ال ٌمكن ان نستخدم الكلمات المحجوزه من لبل لؽة الـ ‪SQL‬لتسمة عمود أو جدول ما مثل كلمة ‪Select‬‬ ‫‪.9‬لكل حمل فً الجدول ‪Data Type‬أي نوع بٌانات و اشهرها رلم ‪ ،‬تارٌخ أو نص ‪int , Date , Text‬‬ ‫على التوالً‬ ‫أنواع البٌانات ‪ Data Types‬فً لاعدة البٌانات‬ (DDL) ‫لؽة تعرٌؾ البٌانات‬ Data Definition Language 2 ‫ماهى لؽة تعرٌؾ البٌانات‬ ‫)‪Data Definition Language (DDL‬‬ ‫ هً مجموعة فرعٌة من ‪SQL‬‬ ‫(لغة االستعالم الهٌكلٌة) تُستخدم لتحدٌد بنٌة‬ ‫لاعدة البٌانات وكائناتها‬ ‫مثل الجداول وطرق العرض والفهارس‬ ‫واإلجراءات‪.‬‬ ‫ تُستخدم عبارات ‪ DDL‬إلنشاء عناصر‬ ‫لاعدة البٌانات وتعدٌلها وحذفها ‪ ،‬بما فً‬ ‫ذلن الجداول وطرق العرض والفهارس‬ ‫واإلجراءات المخزنة‬ ‫ تُمدم هذه المجموعة من األوامر المدرة‬ ‫على تعرٌف البٌانات وشكلها وطرٌمة‬ ‫ربطها ببعضها عبر استخدام أوامر إلنشاء‬ ‫الجداول وإنشاء لاعدة البٌانات بواسطة‬ ‫المبرمجٌن‪.‬‬ ‫لماذا ‪ DDL‬؟‬ ‫تحدد ‪ )DDL ( Data Definition Language‬بنٌة لاعدة البٌانات وكائناتها ‪ ،‬مثل‬ ‫الجداول وطرق العرض والفهارس واإلجراءات‪.‬تُستخدم عبارات ‪ DDL‬إلنشاء عناصر‬ ‫لاعدة البٌانات وتعدٌلها وحذفها ‪ ،‬بما فً ذلن الجداول وطرق العرض والفهارس‬ ‫واإلجراءات المخزنة‪.‬هنان عدة أسباب لضرورة ‪:DDL‬‬ ‫‪ -1‬إنشاء لاعدة البٌانات وإدارتها ‪ :‬تُستخدم عبارات ‪ DDL‬إلنشاء بنٌة لاعدة البٌانات‬ ‫وإدارتها‪ ،‬وسٌكون من األسهل تطوٌر بنٌة لاعدة البٌانات والحفاظ علٌها‪.‬‬ ‫‪ -2‬تكامل البٌانات ‪ :‬تفرض عبارات ‪ DDL‬لٌودًا على تكامل البٌانات مثل المفاتٌح األولٌة‬ ‫واألجنبٌة والفرٌدة‪ ،‬و تساعد هذه المٌود على ضمان دلة البٌانات الموجودة فً لاعدة‬ ‫البٌانات واتسالها‪.‬‬ ‫‪ -3‬األداء ‪ :‬تُستخدم عبارات ‪ DDL‬إلنشاء الفهارس وكائنات لاعدة البٌانات األخرى التً‬ ‫ٌمكنها تحسٌن أداء لاعدة البٌانات‪.‬‬ ‫على سبٌل المثال ٌمكن أن ٌؤدي إنشاء فهرس فً جدول إلى تحسٌن سرعة االستعالمات‬ ‫فً هذا الجدول‪.‬‬ ‫لماذا ‪ DDL‬؟‬ ‫‪ -4‬أمان البٌانات ‪ٌ :‬مكن استخدام عبارات ‪ DDL‬لتعٌٌن أذونات على كائنات لاعدة‬ ‫البٌانات للتحكم فً من ٌمكنه الوصول إلٌها والتعامل معها‪.‬‬ ‫ٌساعد هذا فً ضمان أن المستخدمٌن المصرح لهم فمط ٌمكنهم الوصول إلى البٌانات‬ ‫وتعدٌلها فً لاعدة البٌانات‪.‬‬ ‫‪ -5‬النسخ االحتٌاطً واسترداد البٌانات‪ :‬تُستخدم عبارات ‪ DDL‬إلنشاء إجراءات النسخ‬ ‫االحتٌاطً واالسترداد والحفاظ علٌها‪.‬‬ ‫ٌساعد هذا فً ضمان إمكانٌة استعادة لاعدة البٌانات فً حالة حدوث فشل‪.‬‬ ‫‪ DDL‬مهم ألنه ٌُستخدم إلنشاء وإدارة هٌكل لاعدة البٌانات ‪ ،‬وفرض سالمة البٌانات ‪،‬‬ ‫وتحسٌن األداء ‪ ،‬وضمان أمن البٌانات والحفاظ على إجراءات النسخ االحتٌاطً‬ ‫واالسترداد‪.‬كل هذه المٌزات ضرورٌة لعملٌة لاعدة بٌانات سلسة وآمنة وفعالة‪.‬‬ ‫هل ٌمكن التراجع عن عبارات ‪ DDL‬؟‬ ‫ال ‪ ،‬ال ٌمكن التراجع عن عبارات ‪ DDL‬ألنها تموم بإجراء تغٌٌرات دائمة على مخطط‬ ‫لاعدة البٌانات‪.‬‬ )DDL( ‫إنشاء الجمل بلؽة تعرٌؾ البٌانات‬ Data Definition Language 3 ‫جملة ‪ DDL‬إلنشاء لاعدة البٌانات‬ ‫ فً الوالع ال ٌوجد معٌار ألمر إنشاء لاعدة البٌانات فً معٌار ‪SQL‬الممدم من‬ ‫معهد ‪ANSI‬ولكن برمجٌات لواعد البٌانات العاللٌة تمدم نسخة من هذا األمر‪،‬‬ ‫وتختلف الصٌغة من نظام إلى آخر‪.‬‬ ‫الصٌغة العامة ألمر إنشاء لاعدة البٌانات هً كالتالً‪:‬‬ ‫;‪CREATE DATABASE database_name‬‬ ‫مالحظات هامة‬ ‫ ٌُنشئ األمر السابك لاعدة بٌانات فارغة باالسم ال ُم َم َّرر‬ ‫(أي ‪ database_name‬فً الجملة أعاله)‪.‬‬ ‫ تتطلب أغلب نظم إدارة لواعد البٌانات وجود صالحٌات المسؤول للمستخدم الذي‬ ‫ٌنشئ لاعدة البٌانات‪.‬‬ ‫جملة ‪ DDL‬إلنشاء لاعدة البٌانات‬ ‫ بمجرد إنشاء لاعدة البٌانات‪ٌ ،‬ستطٌع المستخدم أو من له صالحٌة‪ ،‬البدء بإضافة‬ ‫عناصر إلى لاعدة البٌانات من جداول ‪ ،Tables‬مشاهد ‪ ،Views‬دوال وحزم‪،‬‬ ‫وإضافة سجالت وبٌانات إلى الجداول ال ُمنشأة‪.‬‬ ‫ أثناء تنفٌذ أمر إنشاء لاعدة البٌانات وبعده‪ ،‬تُنشَأ ملفات خاصة بماعدة البٌانات‬ ‫الجدٌدة حسب النظام المستخدم‪ ،‬وتُدار هذه الملفات وتُس َّمى إما تلمائًٌّا أو من لبل‬ ‫المستخدم‪.‬‬ ‫ ألن أمر إنشاء لاعدة البٌانات غٌر معٌاري‪ ،‬فإن خٌارات هذا األمر متعددة وكثٌرة‬ ‫وتأتً حسب نوع النظام المستخدم‪ ،‬وحسب نوع نظام إدارة لواعد البٌانات‪.‬‬ ‫ ٌظهر أمر اإلنشاء بأحرف كبٌرة ‪ Upper case.‬لٌس هذا ضرورٌّا ً فً أغلب‬ ‫برامج إدارة لواعد البٌانات‪ ،‬إال أنها عادة فً التوثٌمات ‪Documentations‬‬ ‫لتمٌٌز الكلمات المفتاحٌة التً تع ّد جز ًءا من ‪SQL.‬‬ ‫جملة إلنشاء جدول‬ ‫ٌُعد إنشاء الجدول فً لاعدة البٌانات أول الخطوات فً طرٌك بناء لاعدة البٌانات وملئها‬ ‫بالسجالت‪ ،‬وهذا األمر ٌموم به مسؤول لواعد البٌانات أو المبرمج على حد سواء‪.‬‬ ‫ستحتاج لبل أن تتم ّكن من البدء فً تنفٌذ أوامر على الماعدة إلى تحدٌد لاعدة البٌانات‬ ‫التً ترٌد العمل علٌها‪ ،‬أي تلن التً ستُن ِشئ الجداول فٌها‪.‬تختلف طرٌمة تحدٌد لاعدة‬ ‫البٌانات حسب طرٌمة االتصال ببرنامج إدارة لواعد البٌانات‪:‬‬ ‫الصٌغة العامة لجملة إنشاء الجدول فً ‪SQL:‬‬ ‫‪CREATE TABLE table_name‬‬ ‫‪( column1 datatype [constraint],‬‬ ‫‪column2 datatype [constraint],‬‬ ‫‪column3 datatype [constraint],‬‬ ‫;) ‪....‬‬ ‫( ‪CREATE TABLE table_name‬‬ ‫تابع جملة إلنشاء جدول ‪ :‬شرح الصٌؽة‬ ‫‪ CREATE‬تعنً إنشاء العنصر (الجدول هنا) وهً بداٌة األمر‪.‬‬ ‫‪ TABLE‬لتحدٌد أن هذه الجملة إلنشاء جدول‪.‬‬ ‫‪ table_name‬وهو االسم الذي نرٌد إطالله على الجدول الجدٌد الذي نرٌد بناءه‪.‬‬ ‫الموس المفتوح باتجاه الٌسار ٌعنً البدء بكتابة هٌكل الجدول والذي ٌتضمن األعمدة ونوعها والمٌود التً من‬ ‫الممكن أن نضٌفها وبعض اإلعدادات األخرى‪.‬‬ ‫‪column1 data type [constraint],‬‬ ‫‪ : column1‬هو االسم الذي سوؾ نعطٌه للعمود األول‪.‬‬ ‫‪ٌ : Datatype‬عنً نوع العمود (نصً‪ ,‬رلم‪ ,‬تارٌخ‪.‬الخ)‪.‬‬ ‫]‪ : [Constraint‬تعنً – اختٌارٌا ً ‪ -‬تستطٌع تحدٌد لٌود على مستوى هذا العمود (سنتكلم الحما بالتفصٌل‬ ‫عن المٌود)‪.‬‬ ‫نعرفه بعد هذا العمود‪.‬‬ ‫الفاصلة تعنً وجود عمود آخر سوؾ ّ‬ ‫عند كتابة العمود األخٌر ال نضٌؾ فاصلة‪ ،‬ومن ثم نضٌؾ الموس المعاكس للموس الذي فُتح عند بداٌة كتابة‬ ‫األعمدة‪ ،‬ونختم األمر بماصلة منموطة‪.‬‬ ‫نسرد فً ما ٌلً الصٌػ العامة‬ ُ : ‫جملة تعدٌل الجدول‬ ‫إضافة عمود‬ ALTER TABLE table_name ADD column_name datatype; ‫حذؾ عمود‬ ALTER TABLE table_name DROP COLUMN column_name; ‫تعدٌل عمود‬ ALTER TABLE table_name MODIFY | ALTER COLUMN column_name datatype; ‫مثال إلنشاء جداول وتعدٌلها‬ ‫إلنشاء جدول باسم ‪ٌ Persons‬حتوي على ‪ 5‬أعمدة تمثل معلومات أشخاص مثل رلم‬ ‫الشخص واسمه وعنوانه‪ ،‬نُنَفذ الجملة التالٌة ‪:‬‬ ‫‪CREATE TABLE Persons‬‬ ‫‪( PersonID int,‬‬ ‫‪Last_Name varchar(255),‬‬ ‫‪First_Name varchar(255),‬‬ ‫‪Address varchar(255),‬‬ ‫;) )‪City varchar(255‬‬ ‫;‬ ‫تابع مثال إلنشاء جداول وتعدٌلها‬ ‫ٌتكون الجدول السابك‪:‬‬ ‫ّ‬ ‫من العمود ‪ PersonID‬الذي هو من النوع ‪ ،int‬أي أن لٌم هذا العموم ٌجب أن‬ ‫تكون أرلا ًما؛‬ ‫األعمدة ‪ Address ، First_Name ، Last_Name ،City‬التً هً من‬ ‫النوع ‪ ، varchar‬أي سلسلة حروف بطول ‪ 255‬حرفا ً‪.‬‬ ‫بعد تنفٌذ جملة إنشاء الجدول السابمة‪ٌ ،‬نتج لدٌنا جدول فارغ بالشكل التالً‪:‬‬ ‫;‪Rename Table Person To Customer‬‬ ‫إلعادة تسمٌة جدول‬ ‫تابع جملة إضافة – حذؾ – تعدٌل‬ ‫ فً حال أردنا أن نضٌؾ عمودًا جدٌدًا للجدول باسم ‪( Age‬العمر) ومن نوع البٌانات رلم نستخدم جملة‬ ‫التعدٌل التالٌة‪:‬‬ ‫‪ALTER TABLE Persons‬‬ ‫;‪ADD Age int‬‬ ‫تمكن ترجمة األمر على النحو التالً‪ :‬عدّل الجدول ‪ Persons‬بإضافة عمود اسمه ‪Age‬ونوعه ‪int“.‬‬ ‫ فً حال أردنا أن نحذؾ عمود ‪City‬من الجدول نستخدم الجملة التالٌة‪:‬‬ ‫‪ALTER TABLE Persons‬‬ ‫;‪DROP COLUMN City‬‬ ‫أي‪“ :‬عدّل الجدول ‪ Persons‬بحذؾ العمود ‪City“.‬‬ ‫ إذا أردنا تعدٌل نوع عمود ‪ Age‬إلى نص بدال من رلم نستخدم الجملة التالٌة‪:‬‬ ‫‪ALTER TABLE Persons‬‬ ‫;)‪MODIFY Age varchar(10‬‬ ‫لٌود عند اإلنشاء بلؽة تعرٌؾ البٌانات (‪)DDL‬‬ ‫‪Data Definition Language‬‬ ‫‪4‬‬ ‫لٌود عند اإلنشاء بلؽة تعرٌؾ البٌانات (‪)DDL‬‬ ‫‪Data Definition Language‬‬ ‫ٌع ّد موضوع المٌود من المواضٌع الهامة جدا فً لواعد البٌانات‪ ،‬وٌجب على المبرمج‬ ‫ومسؤول لواعد البٌانات اإللمام بأنواع المٌود وكٌفٌة تعرٌفها والتعامل معها‪.‬‬ ‫الهدؾ العام من المٌود هو الحفاظ على سالمة البٌانات ‪ Data integrity‬ودلتها‪.‬‬ ‫عرؾ المٌد على أنه شرط ٌحكم العمود أو الجدول وٌُتأكد من االلتزام بهذا الشرط‬ ‫نستطٌع أن نُ ّ‬ ‫عند إجراء عملٌات مثل اإلضافة والتعدٌل والحذؾ (على سبٌل الذكر ال الحصر)‪ ،‬وفً حال لم‬ ‫حترم الشرط فإن العملٌة مصدر األمر تُرفَض وٌولَؾ تنفٌذها وٌُتراجع عن أي أثر أحدثته‪.‬‬ ‫ٌُ َ‬ ‫مجال المٌود‬ ‫تُطبَّك المٌود على مستوٌٌن‪:‬‬ ‫ مستوى العمود‪ٌُ :‬عَ َّرؾ المٌد ضمن تعرٌؾ العمود وٌطبك المٌد على مستوى هذا العمود‬ ‫فمط‪.‬‬ ‫ مستوى الجدول‪ٌُ :‬عَ َّرؾ المٌد منفصال عن أي عمود (عادة فً نهاٌة تعرٌؾ الجدول)‪،‬‬ ‫وٌمكن أن ٌطبك المٌد على واحد أو أكثر من األعمدة‪.‬‬ ‫تطبٌك المٌود على مستوٌٌن العمود والجدول‬ ‫‪ -1‬لٌد “العمود ؼٌر الفارغ” ‪ Not Null Constraint:‬نستطٌع إعطاء لٌمة فارؼة لعمود ما لم نُعرؾ‬ ‫هذا المٌد علٌه‪ ،‬والذي نمصد به منع إدخال أو إعطاء العمود لٌمة فارؼة ‪Null‬عند إجراء عملٌات مثل‬ ‫جدوال ‪ Persons‬مع تطبٌك لٌد العمود ؼٌر الفارغ‬ ‫ً‬ ‫اإلضافة أو التعدٌل على السجالت‪ٌ.‬عرؾ المثال التالً‬ ‫على أول ثالث أعمدة‪.‬‬ ‫( ‪CREATE TABLE Persons‬‬ ‫‪ID int NOT NULL,‬‬ ‫‪LastName varchar(255) NOT NULL,‬‬ ‫‪FirstName varchar(255) NOT NULL,‬‬ ‫;) ‪Age int‬‬ ‫‪ -2‬لٌد المٌمة الفرٌدة ‪ UNIQUE Constraint:‬مهمة هذا المٌد هً ضمان عدم تكرار لٌمة عمود فً أي‬ ‫من سجالت الجدول‪ ،‬بحٌث تكون هذه المٌمة فرٌدة ومختلفة‪.‬نستطٌع تعرٌؾ أكثر من لٌد فرٌد فً الجدول على‬ ‫عرؾ المٌد‬ ‫أكثر من عمود‪ ،‬كما أن لٌد المفتاح الرئٌسً ٌمدم ضمان المٌمة الفرٌدة للعمود بجانب المٌد الفرٌد‪َّ ٌُ.‬‬ ‫الفرٌد بالطرٌمة التالٌة‬ ‫‪CREATE TABLE Persons‬‬ ‫‪( ID int NOT NULL UNIQUE,‬‬ ‫‪LastName varchar(255) NOT NULL,‬‬ ‫‪FirstName varchar(255) NOT NULL,‬‬ ‫;) ‪Age int‬‬ ‫تابع طبٌك المٌود على مستوٌٌن العمود والجدول‬ ‫أو‬ CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, UNIQUE (ID) ); :‫وفً حال أردنا أن نعرؾ المٌد على مستوى أكثر من عمود‬ CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, CONSTRAINT UC_Person UNIQUE (ID,LastName) ); ‫تابع تطبٌك المٌود على مستوٌٌن العمود والجدول‬ ‫‪ -3‬لٌد المفتاح الرئٌسً ‪ٌُPrimary Key Constraint:‬طبَّك هذا المٌد على عمود أو أكثر بحٌث تكون لٌمة‬ ‫العمود أو لٌمة األعمدة مجتمعة تُعَ ِ ّرؾ كل سجل على نحو فرٌد عن السجالت األخرى فً الجدول‪ٌُ.‬ع ّد لٌد المفتاح‬ ‫الرئٌسً لٌدًا فرٌدًا أضٌؾ إلٌه لٌد ؼٌر فارغ‪.‬‬ ‫خصائص لٌد المفتاح الرئٌسً‪:‬‬ ‫ ٌمكن تعرٌؾ لٌد مفتاح رئٌسً واحد على مستوى الجدول‪.‬‬ ‫ ال ٌمكن تعرٌؾ لٌد المفتاح الرئٌسً على أعمدة من نوع ‪ARRAY.،NCLOB،CLOB، BLOB‬‬ ‫ لٌم العمود المطبك علٌه لٌد المفتاح الرئٌسً البد أن تكون فرٌدة لكل سجل وأال تأخذ لٌمة فارؼة‪.‬‬ ‫رجعا ً من مفتاح لٌد رئٌسً فً جدول آخر‪ ،‬وذلن لبناء عاللة بٌن جدولٌن‪.‬‬ ‫ تُعَرؾ لٌود المفتاح األجنبً بأخذها َم ِ‬ ‫عرؾ لٌد المفتاح الرئٌسً كالتالً‪:‬‬ ‫ٌُ َّ‬ ‫‪CREATE TABLE Persons‬‬ ‫‪( ID int PRIMARY KEY,‬‬ ‫‪LastName varchar(255) NOT NULL,‬‬ ‫‪FirstName varchar(255),‬‬ ‫;) ‪Age int‬‬ ‫تابع تطبٌك المٌود على مستوٌٌن العمود والجدول‬ ‫أو‬ CREATE TABLE Persons ( ID int , LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, PRIMARY KEY (ID) ); PK_Person : ‫نعرؾ فً ما ٌلً لٌد مفتاح رئٌسً على أكثر من عمود ونعطٌه االسم‬ ّ CREATE TABLE Persons ( ID int , LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, CONSTRAINT PK_Person PRIMARY KEY (ID,LastName) ); ‫تابع تطبٌك المٌود على مستوٌٌن العمود والجدول‬ ‫ٌعرف لٌد المفتاح األجنبً‬ ‫‪ -1‬لٌد المفتاح األجنبً ‪ّ Foreign Key Constraint:‬‬ ‫عمودًا ‪ -‬أو أكثر ‪ -‬فً الجدول على أنه مرجع من عمود ٌوجد فً جدول آخر‪ ،‬بحٌث تكون‬ ‫عرف علٌه لٌد فرٌد أو لٌد مفتاح‬ ‫لٌمة العمود مأخوذة من هذا العمود المرجعً بشرط أن ٌُ َّ‬ ‫رئٌسً (فً الجدول اآلخر)‪.‬‬ ‫ٌع ّد هذا المٌد وسٌلة لربط جداول لاعدة البٌانات وبناء عاللات بٌنها‪ ،‬ومن الممكن تعرٌف‬ ‫أكثر من لٌد أجنبً فً الجدول الواحد‪.‬نستطٌع أن نعرف المٌد األجنبً فً الجدول كالتالً‪:‬‬ ‫‪CREATE TABLE Orders‬‬ ‫‪( Order ID int NOT NULL,‬‬ ‫‪Order Number int NOT NULL,‬‬ ‫‪PersonID int,‬‬ ‫‪PRIMARY KEY (OrderID),‬‬ ‫)‪FOREIGN KEY (Person ID) REFERENCES Persons(ID‬‬ ‫;)‬ ‫تابع تطبٌك المٌود على مستوٌٌن العمود والجدول‬ :‫صصا نستخدم الطرٌمة التالٌة‬ َّ ‫إلعطاء المٌد األجنبً اسما مخ‬ CREATE TABLE Orders ( Order ID int NOT NULL, Order Number int NOT NULL, Person ID int, PRIMARY KEY (Order ID), CONSTRAINT FK_Person Order FOREIGN KEY (Person ID) REFERENCES Persons(ID) ); (MDL) ‫لؽة معالجة البٌانات‬ Data Manipulation Language 5 ‫ماهى لؽة معالجة البٌانات‬ ‫)‪Data Manipulation Language(MDL‬‬ ‫ هً مجموعة فرعٌة من ‪( SQL‬لغة االستعالم الهٌكلٌة)‬ ‫تُستخدم لمعالجة البٌانات داخل لاعدة البٌانات‪.‬‬ ‫ تُستخدم عبارة السترداد البٌانات من جدول واحد أو أكثر‬ ‫فً لاعدة بٌانات‬ ‫ تُستخدم عبارات ‪ DML‬إلدراج البٌانات فً لاعدة البٌانات وتحدٌثها وحذفها‬ ‫ ٌتم تنفٌذ عبارات ‪ DML‬على الفور وٌمكن التراجع عنها باستخدام عبارة التراجع‪.‬عادة ً‬ ‫ما ٌتم تنفٌذ عبارات ‪ DML‬بواسطة المستخدمٌن النهائٌٌن ‪ ،‬مثل التطبٌمات أو األنظمة‬ ‫التً تتفاعل مع لاعدة البٌانات السترداد البٌانات أو تحدٌثها أو حذفها‪.‬‬ ‫لماذا ‪ DML‬؟‬ ‫ تُستخدم ‪ )Data Manipulation Language ( DML‬عبارة عن مجموعة من‬ ‫أوامر ‪ SQL‬تُستخدم لمعالجة البٌانات داخل لاعدة البٌانات لمعالجة البٌانات داخل المخطط الذي‬ ‫تم إنشاؤه بواسطة ‪ٌ.DDL‬تعامل مع البٌانات الفعلٌة وٌستخدم إلدخال وتحدٌث واسترجاع‬ ‫البٌانات من لاعدة البٌانات ‪.‬وإدراج البٌانات وتحدٌثها وحذفها‪.‬هنان عدة أسباب ألهمٌة ‪:DML‬‬ ‫‪ -1‬إدخال البٌانات وصٌانتها ‪ :‬تُستخدم عبارات ‪ DML‬إلدراج بٌانات جدٌدة وتحدٌث أو‬ ‫حذف البٌانات الموجودة‪.‬هذا ضروري للحفاظ على دلة واكتمال البٌانات فً لاعدة البٌانات‪.‬‬ ‫‪ -2‬استرجاع البٌانات ‪ :‬تُستخدم عبارات ‪ DML‬مثل ‪ SELECT‬السترداد البٌانات من جدول واحد‬ ‫أو أكثر فً لاعدة بٌانات‪.‬هذا ضروري للتطبٌمات واألنظمة التً ٌمكنها الوصول إلى البٌانات‬ ‫وتحلٌلها فً لاعدة البٌانات‪.‬‬ ‫لماذا ‪ DML‬؟‬ ‫‪ -3‬تكامل البٌانات ‪ٌ :‬مكن استخدام عبارات ‪ DML‬لفرض لٌود سالمة البٌانات ‪ ،‬مثل التكامل‬ ‫المرجعً ‪ ،‬عن طرٌك تحدٌث أو حذف البٌانات فً الجداول ذات الصلة‪.‬‬ ‫‪ -4‬تدلٌك البٌانات ‪ٌ :‬مكن استخدام عبارات ‪ DML‬لتتبع التغٌٌرات على البٌانات فً لاعدة‬ ‫بٌانات ‪ ،‬مثل من لام بالتغٌٌر ومتى تم إجراؤه‪.‬هذا مفٌد ألغراض التدلٌك واالمتثال‪.‬‬ ‫‪ -5‬النسخ االحتٌاطً واستعادة البٌانات‪ٌ :‬مكن استخدام عبارات ‪ DML‬إلنشاء إجراءات‬ ‫النسخ االحتٌاطً واالسترداد والحفاظ علٌها‪ٌ.‬ساعد هذا فً ضمان إمكانٌة استعادة لاعدة‬ ‫البٌانات فً حالة حدوث فشل‪.‬‬ ‫ هل ٌمكن التراجع عن عبارات ‪ DML‬؟‬ ‫نعم ألنها تُجري تغٌٌرات مؤلتة على البٌانات فً لاعدة ‪ٌ ،DML‬مكن التراجع عن عبارات‬ ‫البٌانات‪.‬‬ )MDL( ‫إنشاء الجمل بلؽة معالجة البٌانات‬ Data Manipulation Language 6 ‫كٌفٌة كتابة األمر ‪Select‬‬ ‫تسمح للمستخدم بإستخراج البٌانات من الجدول ‪ ،‬بنا ًء على معاٌٌر مح َّددة‪ ،‬حٌث‬ ‫تُعالَج وفمًا للتسلسل التالً‪:‬‬ ‫ ‪ SELECT DISTINCT‬إختٌار عنصر أو مجموعة عناصر‪.‬‬ ‫ ‪ FROM‬من جدول أو مجموعة جداول‪.‬‬ ‫ ‪ٌ WHERE‬لٌها تعبٌر شرطً‪.‬‬ ‫ ‪ٌ GROUP BY‬لٌها حمل أو مجموعة حمول‪.‬‬ ‫ٌمكننا استخدام ‪SELECT‬إلنشاء لائمة بهواتف الموظفٌن من جدول‬ ‫‪ Employees‬كما ٌلً‪:‬‬ ‫‪SELECT FirstName, LastName, phoneNumber‬‬ ‫‪FROM Employees‬‬ ‫; ‪ORDER BY LastName‬‬ Select ‫كٌفٌة كتابة األمر‬ first ‫ واسمه األول‬،‫الموظف‬last name ‫سٌعرض هذا اإلجراء اسم عائلة‬ Employees ‫من جدول الموظفٌن‬phone number ‫ ورلم هاتفه‬،name :ً‫كما فً الجدول التال‬ Last Name First Name Phone Number ‫دمحم‬ ‫عمر‬ 01014478996 ‫مدحت‬ ‫مؤمن‬ 01236987456 :ً‫و ٌمكن كتابة األمركالتال‬ SELECT [First Name], [Last Name], [phone Number] FROM Employees ORDER BY [Last Name] ; INSERT ‫كٌفٌة كتابة األمر‬ ‫ٌستخدم هذا األمر إلدراج البٌانات فً صف‬SQL. ‫هذا عبارة عن استعالم‬.‫الجدول‬ :‫بناء الجملة‬ INSERT INTO TABLE_NAME (col1, col2, col3,.... col N) VALUES (value1, value2, value3,.... valueN); Or INSERT INTO TABLE_NAME VALUES (value1, value2, value3,.... valueN); :‫فمثال‬ INSERT INTO students (Phone Number, FIrstName, LastName) VALUES )‘01110258745', ‘‫'معتز‬, ‘ ‫;)'محمود‬ UPDATE ‫كٌفٌة كتابة األمر‬.‫ٌُستخدم هذا األمر لتحدٌث أو تعدٌل لٌمة عمود فً الجدول‬ :‫بناء الجملة‬ UPDATE table_name SET [column_name1=value1,...column_nameN = valueN] [WHERE CONDITION] :‫فمثال‬ UPDATE students SET First Name = ‘‫'عمر‬, Last Name= ‘‫'دمحم‬ WHERE Phone Number = 011125889663; DELETE ‫كٌفٌة كتابة األمر‬.‫ستخدم هذا األمر إلزالة صف واحد أو أكثر من الجدول‬ :‫بناء الجملة‬ DELETE FROM table_name [WHERE condition]; :‫فمثال‬ DELETE FROM students WHERE FirstName = ‘‫;'حسن‬ ‫‪7‬‬ ‫الفرق بٌن ‪DDL‬و ‪DML‬‬ ‫فً نظام إدارة لواعد البٌانات (‪(DBMS‬‬ ‫الفرق بٌن ‪ DDL‬و ‪DML‬‬ ‫‪DML‬‬ ‫‪DDL‬‬ ‫تتٌح لن لغة معالجة البٌانات أمر )‪ )DML‬إدارة‬ ‫تساعدن لغة تعرٌف البٌانات ( ‪ )DDL‬على تحدٌد‬ ‫البٌانات المخزنة فً لاعدة البٌانات‪.‬‬ ‫بنٌة لاعدة البٌانات أو مخططها‪.‬‬ ‫ٌتم استخدام أمر ‪ DML‬لملء لاعدة البٌانات‬ ‫ٌتم استخدام أمر ‪ DDL‬إلنشاء مخطط لاعدة‬ ‫ومعالجتها‬ ‫البٌانات‪.‬‬ ‫ٌتم تصنٌف ‪DML‬على أنها ‪ DMLs‬إجرائٌة وغٌر‬ ‫لم ٌتم تصنٌف ‪ DDL‬كذلن‪.‬‬ ‫إجرائٌة‪.‬‬ ‫إنشاء وتغٌٌر والتطاع وتعلٌك وإعادة تسمٌة‪ ،‬وما‬ ‫إدراج‪ ،‬تحدٌث‪ ،‬حذف‪ ،‬دمج‪ ،‬استدعاء‪ ،‬إلخ‪.‬‬ ‫إلى ذلن‪.‬‬ ‫ٌموم بإضافة أو تحدٌث صف الجدول‬ ‫وٌحدد عمود الجدول‪.‬‬ ‫ٌؤثر ‪ DML‬على صف واحد أو أكثر‪.‬‬ ‫تؤثر عبارات ‪DDL‬على الجدول بأكمله‪.‬‬ ‫ٌمكن أن ٌكون بٌان ‪ SQL‬التراجع‬ ‫ال ٌمكن التراجع عن بٌان ‪SQL‬‬ ‫‪ DML‬أمر حتمً‪.‬‬ ‫‪ DDL‬هو تصرٌحً‪.‬‬ ‫أسباب إستخدام ال ‪ DML‬و ‪DDL‬‬ ‫فٌما ٌلً أسباب استخدام طرٌمة ‪DDL:‬‬ ‫ ٌسمح لن بتخزٌن البٌانات المشتركة‬ ‫ استماللٌة البٌانات تحسنت من النزاهة‬ ‫ ٌسمح لعدة مستخدمٌن‬ ‫ تحسٌن الوصول إلى البٌانات األمنٌة بكفاءة‬ ‫فٌما ٌلً أسباب استخدام طرٌمة ‪ DML‬هنا فوائد‪/‬إٌجابٌات‪DML :‬‬ ‫ تسمح لن عبارات ‪DML‬بتعدٌل البٌانات المخزنة فً لاعدة البٌانات‪.‬‬ ‫ ٌمكن للمستخدمٌن تحدٌد البٌانات المطلوبة‪.‬‬ ‫ ٌمدم ‪DML‬العدٌد من النكهات واإلمكانٌات المختلفة بٌن بائعً لواعد البٌانات‪.‬‬ ‫تفاعال بشرًٌا فعاالً مع النظام‪.‬‬ ‫ً‬ ‫ إنه ٌوفر‬ THANK YOU

Use Quizgecko on...
Browser
Browser