محاضرة قواعد البيانات (1) PDF
Document Details
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