مبادئ قواعد البيانات وطرق تصميمها

Download Report

Transcript مبادئ قواعد البيانات وطرق تصميمها

‫مبادئ قواعد البيانات وطرق تصميمها‬
‫‪ 231‬حسب‬
‫محاضرة ‪ :‬لغات االستعالم والجبر العالئقي‬
‫‪Query Language & The Relational Algebra‬‬
‫أحصل على قاعدة البيانات ‪ Bookstore‬مع األمثلة الكاملة‬
‫وقواعد البيانات األخرى والدروس‬
‫على الرابط ‪ -‬محاضرات ‪:‬‬
‫‪http://www.ttc.edu.sa/comp/lectures.php‬‬
‫أ‪ .‬عبد هللا باقاسه‬
‫لغات الاس تعالم ‪Query Language‬‬
‫• يمكن تعريف االستعالم بأنه ‪ :‬طلب تكوين جدول جديد يحتوي‬
‫على بعض النتائج ذات معايير معينة من جداول قاعدة البيانات‪.‬‬
‫• فمثال في مثالنا السابق (قاعدة بيانات المكتبة ‪ )Bookstore‬نريد‬
‫أن نستعلم عن الكتب التي تنشرها دار نشر معينة والتي يزيد‬
‫سعرها عن ‪ 50‬ر‪.‬س ‪ .‬فسنحصل على جدول مشابه للجدول‬
‫التالي‪:‬‬
‫‪Price‬‬
‫‪Title‬‬
‫‪PubName‬‬
‫‪20 SR‬‬
‫‪Learn HTML‬‬
‫‪alroshd‬‬
‫‪40 SR‬‬
‫‪PHP for Dummies‬‬
‫‪alroshd‬‬
‫• هناك فرق بين الجداول األساسية (القاعدية) التي تتكون منها‬
‫بنية قاعدة البيانات وبين الجداول الناتجة (المشتقة) من قاعدة‬
‫البيانات‪ ،‬والنوع الثاني من الجداول يأخذ حجم أكبر في الذاكرة‪.‬‬
‫• ومما يهم معرفته في استعالم قواعد البيانات (الجبر العالئقي)‬
‫وهو الذي سنستخدمه في إجراء االستعالمات على قاعدة‬
‫البيانات باستخدام برنامج ‪ Access‬أو حتى لغة ‪ SQL‬المتوفرة مع‬
‫البرنامج‪.‬‬
‫تفاصيل اجلرب العالئقي‬
‫• سنناقش في هذا الجزء تفاصيل الجبر العالئقي المتعلق بقواعد‬
‫البيانات ولكن يجب ان نعرف كيف سيقوم برنامج ‪ Access‬بتنفيذ‬
‫عمليات الجبر العالئقي هذه‪.‬‬
‫• يمكن لبرنامج ‪ Access‬القيام بذلك عن طريق إنشاء استعالم جديد‬
‫من (انشاء استعالم في طريقة عرض التصميم) فتظهر نافذة‬
‫كالتالي‪:‬‬
‫تفاصيل اجلرب العالئقي‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫يمكن تقسيم العمليات األساسية في الجبر العالئقي إلى‪:‬‬
‫‪ -1‬عمليات تشغيل المجموعات (ألن لها عالقة بنظرية المجموعات‬
‫الرياضية)‬
‫‪ -2‬عمليات تشغيل قواعد البيانات العالئقية (الجدولية)‪.‬‬
‫أوال‪ :‬عمليات التشغيل المجموعات‪ ،‬ومنها‪:‬‬
‫أ ) إعادة التسمية ‪ :Rename‬ونعني به تغيير اسم سمة ما في‬
‫جدول‪ ،‬فإذا كان لدينا جدول ‪ T‬فيه سمة تدعى ‪ A‬فإننا نشير إلى‬
‫عملية إعادة تسمية للسمة ‪ A‬إلى ‪ B‬بالطريقة التالية‪:‬‬
‫)‪• Ren A  B(T‬‬
‫مثال لو طبقنا هذه العملية على جدول ‪ Books‬في قاعدة بيانات‬
‫المكتبة ‪ BookStore‬لتغيير سمة ‪ BID‬إلى ‪ Bno‬فستكون العملية‬
‫بالشكل التالي‪:‬‬
‫)‪• Ren BID  BNo (Book‬‬
‫وسيكون الناتج هو تغيير اسم هذا الحقل (أو السمة) في الجدول‪.‬‬
‫مثال‪ :‬تغيير سمات بعض الجداول في قاعدة بيانات المكتبة‬
‫‪.Bookstore‬‬
‫تفاصيل اجلرب العالئقي‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫ب) التوحيد ‪ :Union‬إذا كان ‪ W‬و ‪ S‬جدولين لهما نفس السمات‬
‫(الحقول) فيمكن توحيد هذين الجدولين والذي هو عبارة عن تضمين‬
‫كافة الصفوف (السجالت) من الجدولين في جدول واحد‪ ،‬ويعبر عنه‬
‫بالعالقة التالية‪:‬‬
‫‪• W U S  Union1‬‬
‫حيث ‪ Union1‬هو الجدول الجديد الناتج من عملية االتحاد‪.‬‬
‫ويمكن إجراء عملية التوحيد‬
‫‪W‬‬
‫‪S‬‬
‫‪WUS‬‬
‫في برنامج ‪ Access‬بطريقتين ‪:‬‬
‫‪A1‬‬
‫‪A2‬‬
‫‪A1‬‬
‫‪A2‬‬
‫‪A1‬‬
‫‪A2‬‬
‫‪a‬‬
‫‪b‬‬
‫‪e‬‬
‫‪f‬‬
‫‪a‬‬
‫‪b‬‬
‫‪ -1‬نسخ سجالت الجدول‬
‫‪c‬‬
‫‪d‬‬
‫‪g‬‬
‫‪h‬‬
‫‪c‬‬
‫‪d‬‬
‫المحدد ولصقه في الجدول‬
‫‪i‬‬
‫‪j‬‬
‫‪e‬‬
‫‪f‬‬
‫اآلخر عن طريق األمر (لصق‬
‫‪g‬‬
‫‪h‬‬
‫إلحاق)‪.‬‬
‫‪i‬‬
‫‪j‬‬
‫‪ -2‬عن طريق اجراء استعالم‬
‫إلحاق ‪ .Append Query‬من‬
‫قائمة استعالمات‪.‬‬
‫تفاصيل اجلرب العالئقي‬
‫• ج) التقاطع ‪ :Intersection‬إن التقاطع بين جدولين ‪ S‬و ‪ W‬لهما‬
‫نفس السمات هو جدول يتألف من الصفوف المشتركة في كال‬
‫الجدولين‬
‫‪• W ∩ S  Inter1‬‬
‫• حيث ‪ Inter1‬هو الجدول الجديد الناتج من عملية التقاطع‪.‬‬
‫• ويمكن تطبيق عملية التقاطع‬
‫في برنامج ‪ Access‬بالطريقة‬
‫التالية‪:‬‬
‫راجع الملحق (عمليات الجبر‬
‫العالئقي)‬
‫‪W∩S‬‬
‫‪W‬‬
‫‪S‬‬
‫‪A2‬‬
‫‪A1‬‬
‫‪A2‬‬
‫‪A1‬‬
‫‪A2‬‬
‫‪A1‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪d‬‬
‫‪c‬‬
‫‪h‬‬
‫‪g‬‬
‫‪d‬‬
‫‪c‬‬
‫‪d‬‬
‫‪c‬‬
‫تفاصيل اجلرب العالئقي‬
‫• د) الفرق ‪ :Difference‬الفرق بين جدولين ‪ S‬و ‪ (W - S) W‬لهما‬
‫نفس السمات هو الجدول الذي يتضمن جميع الصفوف الموجودة في‬
‫جدول ‪ W‬وغير موجودة في جدول ‪ S‬كما في المثال التالي‪:‬‬
‫‪• W - S  Diff1‬‬
‫• حيث ‪ Diff1‬هو الجدول الجديد الناتج من عملية الفرق‪.‬‬
‫• حيث يمكن إجراء عملية‬
‫التقاطع او الفرق في برنامج‬
‫‪ Access‬بإنشاء جدولين بحيث‬
‫تكون هناك صفوف متشابهة‬
‫البيانات في كال الجدولين ثم‬
‫ننشيء استعالم جديد ونربط‬
‫بين الجدولين بالطريقة‬
‫المعروفة راجع ملحق‬
‫(عمليات الجبر العالئقي)‬
‫‪W-S‬‬
‫‪W‬‬
‫‪S‬‬
‫‪A2‬‬
‫‪A1‬‬
‫‪A2‬‬
‫‪A1‬‬
‫‪A2‬‬
‫‪A1‬‬
‫‪b‬‬
‫‪a‬‬
‫‪d‬‬
‫‪c‬‬
‫‪b‬‬
‫‪a‬‬
‫‪h‬‬
‫‪g‬‬
‫‪j‬‬
‫‪i‬‬
‫‪d‬‬
‫‪c‬‬
‫‪f‬‬
‫‪e‬‬
‫‪f‬‬
‫‪e‬‬
‫‪h‬‬
‫‪g‬‬
‫تفاصيل اجلرب العالئقي‬
‫• د) الجداء الديكارتي ‪ :Cartesian Product‬في حالة تعريف‬
‫الجداء الديكارتي للجداول فإننا نحتاج إلى تعديل الطريقة التي نكتب‬
‫بها أسماء السمات فقط في حالة وجود جدولين يتضمنان نفس‬
‫االسم‪ .‬مثال جدول المؤلفين وجدول الموظفين لهما نفس السمة‬
‫وهي ‪ Name‬فتعرف السمات بالشكل التالي ‪ Author.Name‬و‬
‫‪ Employee.Name‬والجداء الديكارتي‪ :‬هو ( ‪ ) W ×S‬هو الجدول‬
‫الذي يتضمن مجموعة سماته جميع السمات المعتبرة لجميع سمات‬
‫‪ W‬و ‪ S‬كالتالي‪:‬‬
‫‪• W × S  CarPro1‬‬
‫• حيث ‪ CarPro1‬هو الجدول الجديد الناتج من عملية الجداء الديكارتي‪.‬‬
‫‪T ×S‬‬
‫‪S‬‬
‫‪T‬‬
‫‪T.A2‬‬
‫‪T.A1‬‬
‫‪S.A2‬‬
‫‪S.A1‬‬
‫‪A2‬‬
‫‪A1‬‬
‫‪A2‬‬
‫‪A1‬‬
‫‪f‬‬
‫‪e‬‬
‫‪b‬‬
‫‪a‬‬
‫‪f‬‬
‫‪e‬‬
‫‪b‬‬
‫‪a‬‬
‫‪h‬‬
‫‪g‬‬
‫‪b‬‬
‫‪a‬‬
‫‪h‬‬
‫‪g‬‬
‫‪d‬‬
‫‪c‬‬
‫‪j‬‬
‫‪i‬‬
‫‪b‬‬
‫‪a‬‬
‫‪j‬‬
‫‪i‬‬
‫‪f‬‬
‫‪e‬‬
‫‪d‬‬
‫‪c‬‬
‫‪h‬‬
‫‪g‬‬
‫‪d‬‬
‫‪c‬‬
‫‪j‬‬
‫‪i‬‬
‫‪d‬‬
‫‪c‬‬
‫مثال‪ :‬راجع المرجع السابق ‪.‬‬
‫لغة الاس تعالم البنيوية يف ‪(SQL) Access‬‬
‫• مقدمة‪:‬‬
‫• لغة ال ‪ SQL‬ومعناها ‪ Structured Query Language‬هي اللغة‬
‫األكثر انتشارا واستخداما في قواعد البيانات الحالية‪.‬‬
‫• تعريفها‪ :‬هي لغة نظام إدارة قواعد بيانات متكامل )‪.(DBMS‬‬
‫• وتتضمن ‪ SQL‬المكونات التالية‪:‬‬
‫‪ -1‬لغة تعريف البيانات ‪: (Data Definition Language) DDL‬‬
‫للسماح بتعريف (إنشاء) مكونات قاعدة البيانات كالجداول مثال‪.‬‬
‫‪ -2‬لغة معالجة البيانات ‪: (Data Manipulation Language) DML‬‬
‫للسماح بمعالجة مكونات قاعدة البيانات كتصميم االستعالمات ‪.‬‬
‫‪ -3‬لغة التحكم بالبيانات ‪: (Data Control Language) DCL‬‬
‫لتأمين األمن الداخلي والصالحيات لقاعدة البيانات والنسخ‬
‫االحتياطي‪.‬‬
‫وسنتحدث عن كل مكون من المكونات السابقة بشيء من التفصيل‬
‫ولكن قبلها دعونا نستعرض كيفية تعامل نظام إدارة قواعد البيانات‬
‫مع كل هذه المكونات‪.‬‬
‫لغة الاس تعالم البنيوية يف ‪(SQL) Access‬‬
‫• نظام إدارة قواعد البيانات‪:‬‬
‫مديري قواعد البيانات – المبرمجين – المستخدمين‬
‫تطبيقات وبرامج‬
‫مفكرة‬
‫النظام‬
‫قواعد البيانات‬
‫‪Databases‬‬
‫‪DBMS‬‬
‫قاموس‬
‫البيانات‬
‫برامج وأدوات مساعدة‬
‫لغة الاس تعالم البنيوية يف ‪(SQL: structured Query Language) Access‬‬
‫• أوال لغة تعريف البيانات ‪:Data Definition Language DDL‬‬
‫• حيث يوجد لدينا أربعة أوامر وهي ‪:‬‬
‫(إلنشاء جدول جديد) ‪CREATE TABLE‬‬
‫(لتعديل جدول ‪ :‬إضافة عمود‪ ،‬حذفه‪ ،‬إضافة فهرس) ‪ALTER TABLE‬‬
‫(إلسقاط ”حذف“ جدول أو فهرس من الفهارس) ‪DROP TABLE‬‬
‫(إلنشاء فهرس جديد) ‪CREATE INDEX‬‬
‫وسوف نستعرض بعض األوامر منها ‪:‬‬
‫عبارة إنشاء جدول ‪:CREATE TABLE‬‬
‫وشكلها كالتالي‪:‬‬
‫‪CREATE TABLE tablename‬‬
‫‪PRIMARYKEYNAME PRIMARY KEY,‬‬
‫‪(colname1 type(size) CONSTRAINT‬‬
‫; ) )‪colname2 type(size‬‬
‫مثال‪ :‬قاعدة بيانات المكتبة‬
‫لغة الاس تعالم البنيوية يف ‪(SQL) Access‬‬
‫• تابع‪ :‬أوال لغة تعريف البيانات ‪: DDL‬‬
‫عبارة إسقاط جدول ‪:DROP TABLE‬‬
‫وشكلها كالتالي‪:‬‬
‫; ‪DROP TABLE tablename‬‬
‫مثال‪ :‬قاعدة بيانات المكتبة‬
‫لغة الاس تعالم البنيوية يف ‪(SQL) Access‬‬
‫• ثانيا لغة تعديل البيانات ‪Data Manipulation Language :‬‬
‫‪: DML‬‬
‫• حيث يوجد لدينا أربعة أوامر وهي ‪:‬‬
‫(إلستعالمات التحديد) ‪SELECT‬‬
‫(الستعالمات التحديث في الجداول) ‪UPDATE‬‬
‫(إلستعالمات اإلضافة للجداول) ‪INSERT INTO‬‬
‫(إلستعالمات الحذف) ‪DELETE‬‬
‫وسوف نستعرض كل أمر منها بشي من التفصيل‪:‬‬
‫عبارة التحديد ‪:SELECT‬‬
‫وشكلها كالتالي (ولها أشكال أخرى إال أن هذا هو الشكل الشائع) ‪:‬‬
‫]*‪SELECT [colname1/‬‬
‫]*‪FROM [tablename1/‬‬
‫… ‪WHERE condition1 and condition2‬‬
‫; ‪ORDER BY colname‬‬
‫مثال‪ :‬قاعدة بيانات المكتبة‬
‫لغة الاس تعالم البنيوية يف ‪(SQL) Access‬‬
‫• تابع‪ :‬ثانيا لغة تعديل البيانات ‪: DML‬‬
‫عبارة التحديث ‪:UPDATE‬‬
‫وشكلها كالتالي (ولها أشكال أخرى إال أن هذا هو الشكل الشائع) ‪:‬‬
‫‪UPDATE tablename‬‬
‫‪SET colname = newvale‬‬
‫; ‪WHERE condition1‬‬
‫مثال‪ :‬قاعدة بيانات المكتبة‬
‫عبارة اإلدخال ‪:INSERT INTO‬‬
‫وشكلها كالتالي (ولها أشكال أخرى إال أن هذا هو الشكل الشائع) ‪:‬‬
‫(… ‪INSERT INTO tablename (colname1 , colname2 ,‬‬
‫; (… ‪VALUES ) “value1” , “value2” ,‬‬
‫مثال‪ :‬قاعدة بيانات المكتبة‬
‫لغة الاس تعالم البنيوية يف ‪(SQL) Access‬‬
‫• تابع‪ :‬ثانيا لغة تعديل البيانات ‪: DML‬‬
‫عبارة الحذف ‪:DELETE‬‬
‫وشكلها كالتالي (ولها أشكال أخرى إال أن هذا هو الشكل الشائع) ‪:‬‬
‫مثال‪ :‬قاعدة بيانات المكتبة‬
‫‪DELETE‬‬
‫‪FROM tablename‬‬
‫; ‪WHERE condition1‬‬
‫• ثالثا‪ :‬لغة التحكم بالبيانات ‪: DCL‬‬
‫• وهذا هو المكون الثالث من مكونات لغة ‪ SQL‬وهذا المكون خاص‬
‫بعمليات الحماية واألمن الداخلي لقاعدة البيانات‪.‬‬
‫لغة الاس تعالم البنيوية يف ‪(SQL) Access‬‬
‫• تدريبات عملية على برنامج ‪. MS ACCESS‬‬
‫• النماذج‪.‬‬
‫• التقارير‪.‬‬
‫هذه بعض األوامر في لغة ‪ SQL‬وهناك الكثير منها فمن أرادها فليراجع‬
‫المصادر المعتمدة على اإلنترنت أو الكتب‪.‬‬
‫وصلى هللا على نبينا محمد وعلى آله وصحبه وسلم‬