Database3 Lecture Notes PDF

Document Details

StimulativeSage

Uploaded by StimulativeSage

Applied Faculty

Dr. Mohammad M Hajjouz

Tags

database data mining pl/sql

Summary

These lecture notes cover the Database3 course, including data mining techniques, PL/SQL programming, and nested tables. The course is for third-year students at the Applied Faculty.

Full Transcript

‫وزارة التعليم العالي‬ ‫جامعة البعث‬ ‫الكلية التطبيقية‬ ‫‪Database3‬‬ ‫‪Dr. Mohammad M Hajjouz‬‬ ‫د‪.‬مح ّمد ح ّجوز‬ ‫مقرر قواعد المعطيات ‪3‬‬...

‫وزارة التعليم العالي‬ ‫جامعة البعث‬ ‫الكلية التطبيقية‬ ‫‪Database3‬‬ ‫‪Dr. Mohammad M Hajjouz‬‬ ‫د‪.‬مح ّمد ح ّجوز‬ ‫مقرر قواعد المعطيات ‪3‬‬ ‫‪Database3‬‬ ‫‪Applied Faculty - Dr.Mohammad Hajjouz‬‬ ‫قواعد المعطيات‪ – 3‬طالب السنة الثالثة ‪ -‬الكلية التطبيقية‬ ‫مقدمة‪:‬‬ ‫التنقيب في البيانات ‪Data‬‬ ‫يعد مقرر قواعد المعطيات ‪ 3‬وما يحويه من مواضع تخص مخازن البيانات و ّ‬ ‫‪ Mining‬أو ما يطلق عليه عند بعضهم علم استنباط المعرفة من كم كبير من البيانات‪ ،‬من العلوم الحديثة‬ ‫نسبيا‪ ،‬والمتطورة بسرعة مذهلة‪.‬يستفاد منه في معظم الجوانب الحياتية‪ ،‬ال سيما في العصر الحالي الذي‬ ‫يسمى عصر االنفجار المعلوماتي لما يحتوي من بيانات ضخمة في جميع المجاالت‪.‬وفي خضم هذا‬ ‫الكم الهائل من البيانات كان ال بد من ظهور أدوات تساعد على التعامل معها بكل يسر وسهولة‪ ،‬واستنباط‬ ‫معلومات مخبأة ضمنها تفيد الحاضر والمستقبل واتخاذ القرار المناسب‪.‬كل منا يستخدم تقنيات التّنقيب‬ ‫في البيانات إن كان من خالل محركات البحث‪ :‬كمحرك البحث جوجل ‪ Google‬أومايكروسوفت ‪MSN‬‬ ‫وغيرها‪ ،‬أو من خالل التجارة اإللكترونية كعملية شراء كتاب من موقع أمازون ‪ ،Amazon‬حيث يرشدك‬ ‫الموقع إلى الكتب التي من المتوقع أن تناسب تطلعاتك وغيرها من األمثلة الكثيرة‪.‬‬ ‫‪Database3‬‬ ‫‪2‬‬ ‫قواعد المعطيات‪3‬‬ ‫أهمية المقرر‪:‬‬ ‫التطور المتزايد والمستمر في مختلف جوانب الحياة‪ ،‬الذي يتطلب بدوره الحاجة المتزايدة للبيانات‬ ‫ّ‬ ‫مع‬ ‫مستمر للبيانات يقدر بحوالي ‪ %40‬سنويا‬ ‫ا‬ ‫والمعلومات‪ ،‬وبحسب اإلحصائيات الدولية‪ ،‬فإن هناك نموا‬ ‫حسب إحصائيات المجلس االستشاري العالمي ‪ Advisory Council‬الصادرة في عام‪ ،2011‬لذلك‬ ‫أصبحت هذه البيانات عنص ار مهما ومؤث ار في مختلف جوانب الحياة‪.‬إن معالجة هذه البيانات واالستفادة‬ ‫منها ومع االنتشار الواسع لشبكة اإلنترنت التي أصبحت الوسيلة األساسية لالتصال ونشر وتبادل‬ ‫المعلومات يتطلب توثيق المعلومات بطريقة آلية‪ ،‬آخذة في الحسبان البحث في محتوى النصوص والبيانات‬ ‫فعالة‪.‬‬ ‫مع ما يستلزم ذلك من أدوات معلوماتية ولغوية ّ‬ ‫شهدت تقنية قواعد البيانات تطو ار كبي ار منذ بدايتها‪ ،‬ففي السبعينيات من القرن الماضي استخدمت‬ ‫قواعد البيانات الهرمية ‪ Hierarchical‬وفي الثمانينيات من القرن الماضي استخدمت قواعد البيانات‬ ‫العالئقية ‪ Relational‬أما في التسعينيات فباإلضافة إلى قواعد البيانات العالئقية أضيفت قواعد البيانات‬ ‫غرضية التوجه ‪.Object Oriented‬ومن جهة أخرى برز تحدي جديد في كيفية تحويل قواعد البيانات‬ ‫من قواعد تخزين البيانات والبحث عنها إلى مخازن للمعلومات تستنتج منها المعرفة وتساعد في اتخاذ‬ ‫القرار‪.‬لذلك أصبح من الضروري وجود أنظمة معلوماتية جديدة تتعامل مع هذه البيانات من حيث التخزين‬ ‫واالسترجاع والعرض بهدف المساعدة في اتخاذ القرار والتخطيط والرؤية المستقبلية‪.‬‬ ‫التنقيب في البيانات ‪ Data Mining‬وما يتفرع عنها من التّنقيب في النصوص‬ ‫تعد تقنيات ّ‬ ‫‪ TextMining‬والتّنقيب في الوب ‪ WebMining‬مع استخدام مخازن البيانات من التقنيات الحديثة‬ ‫المستخدمة في أنظمة المعلومات‪ ،‬والتي بدأت تستعمل على نطاق واسع‪.‬حتى إن مصممي البرمجيات‬ ‫على اختالف تخصصاتهم وخصوصا قواعد البيانات أضافوا إلى أنظمتهم إمكانية استعمال هذه التقنيات‪.‬‬ ‫تجري عملية التّنقيب في البيانات بطريقتين‪ :‬الطريقة التنبئية (تعلم استشرافي) ‪ predictive‬وما تحويه‬ ‫من خوارزميات الذكاء االصطناعي كالتصنيف والتنبؤ والتكرار وغيرها‪.‬والطريقة الوصفية (تعلم غير‬ ‫استشرافي) ‪ Descriptive‬وما تحويه من خوارزميات الذكاء االصطناعي كالتجميع وقواعد االرتباط‬ ‫وغيرها‪.‬نقوم في هذه االطروحة بتطوير خوارزميات الذكاء االصطناعي الخاصة بأسلوب التجميع في‬ ‫طريقة التعلم غير االستشرافية‪ ،‬ونقصد بالتجميع تجميع األغراض أو العناصر التي تمتلك صفات وسمات‬ ‫جمع البيانات‬ ‫متشابهة ضمن مجموعات تدعى العناقيد وتندرج ضمن مجال التعلم غير االستشرافي‪ ،‬أي ت ّ‬ ‫في عناقيد دون أن يكون هناك أي معلومات أو فرضيات مسبقة عن طبيعة هذه البيانات وسماتها‪.‬وبعد‬ ‫التجميع نستطيع القيام بالكثير من المهام واتخاذ الق اررات المناسبة‪.‬‬ ‫‪3‬‬ ‫‪Database3 – Third Year Students – Applied Faculty‬‬ ‫قواعد المعطيات‪ – 3‬طالب السنة الثالثة ‪ -‬الكلية التطبيقية‬ ‫فهرس المحتويات‬ ‫الصفحة‬ ‫الفصول والفقرات‬ ‫الفصل األول‪ :‬مقدمة في ‪PL/SQL‬‬ ‫مقدمة‬ ‫هيكلة تعليمات لغة ‪PL/SQL‬‬ ‫المتغيرات وأنواعها‬ ‫التعليمات في ‪PL/SQL‬‬ ‫‪1‬‬ ‫المؤشرات في ‪PL/SQL‬‬ ‫األغراض في ‪PL/SQL‬‬ ‫المصفوفات (المجمعات) في ‪PL/SQL‬‬ ‫الجداول المتداخلة في ‪PL/SQL‬‬ ‫الفصل الثاني‪ :‬مستودعات قواعد البيانات‬ ‫‪-1‬‬ ‫‪-2‬‬ ‫‪-3‬‬ ‫‪2‬‬ ‫‪-4‬‬ ‫استراتيجية نجاح تقنية التّنقيب في البيانات‬ ‫‪-5‬‬ ‫مجاالت تطبيق تقنية التّنقيب في البيانات في منظمات األعمال‬ ‫‪-6‬‬ ‫الفصل الثاني‪ :‬مصادر البيانات في عملية ال ّتنقيب بالبيانات‬ ‫‪ 1‬أهمية قواعد البيانات في تطور تقنية التّنقيب في البيانات‬ ‫مصادر البيانات في عملية التّنقيب بالبيانات‬ ‫‪2‬‬ ‫‪ 1-2‬قواعد البيانات العالئقية‬ ‫‪3‬‬ ‫‪ 2-2‬مستودعات البيانات‬ ‫‪ 3-2‬قواعد بيانات المناقالت‬ ‫‪ 4-2‬نظم البيانات والمعلومات المتقدمة‬ ‫الفصل الثالث‪ :‬أنواع ال ّتنقيب في البيانات ومهامه ‪Data Mining Types and its Tasks‬‬ ‫‪ -1‬تصنيف أنظمة ال ّتنقيب في البيانات‬ ‫‪ 1-1‬التصنيف وفقا ألنواع قواعد البيانات المستخدمة‬ ‫‪ 2-1‬التصنيف وفقا ألنواع المعرفة المراد التّنقيب عنها‬ ‫‪4‬‬ ‫‪ 3-1‬التصنيف وفقا ألنواع التقنيات المستخدمة‬ ‫أنواع ال ّتنقيب في البيانات وأساليبه‬ ‫‪-2‬‬ ‫‪ 1-2‬التّنقيب التنبئي‬ ‫‪ 2-2‬التّنقيب الوصفي‬ ‫المهام األولية للتنقيب في البيانات‬ ‫‪-3‬‬ ‫‪ 1-3‬مجموعة المهام المتعلقة بالبيانات المراد التّنقيب فيها‬ ‫‪Database3‬‬ ‫‪4‬‬ ‫قواعد المعطيات‪3‬‬ ‫الصفحة‬ ‫الفصول والفقرات‬ ‫‪ 2-3‬مجموعة المهام المتعلقة بنوع المعرفة‬ ‫‪ 3-3‬المعرفة المسبقة المراد استخدامها في عملية االكتشاف‬ ‫‪ 4-3‬العتبات ومعايير األهمية لتقييم النماذج‬ ‫‪ 5-3‬التصور المتوقع للنماذج المكتشفة‬ ‫خطوات عملية ال ّتنقيب في البيانات‬ ‫‪-4‬‬ ‫‪ 1-4‬فهم طبيعة األعمال‬ ‫‪ 2-4‬فهم البيانات‬ ‫‪ 3-4‬تهيئة البيانات‬ ‫‪5‬‬ ‫‪ 4-4‬صياغة نماذج الحل وثباتها‬ ‫‪ 5-4‬التقييم وتعليل نتائج النموذج‬ ‫‪ 6-4‬نشر النموذج وتوزيعه‬ ‫بنية نظام ال ّتنقيب في البيانات‬ ‫‪-5‬‬ ‫‪ 1-5‬مصادر البيانات‬ ‫‪ 2-5‬مخدمات قواعد البيانات ومستودعات البيانات‬ ‫‪ 3-5‬قاعدة المعرفة‬ ‫‪ 4-5‬محرك التّنقيب في البيانات‬ ‫‪ 5-5‬نماذج تقييم النموذج‬ ‫‪ 6-5‬واجهات المستخدم‬ ‫مهام ال ّتنقيب في البيانات‬ ‫‪-6‬‬ ‫‪ 1-6‬التصنيف‬ ‫‪ 2-6‬التنبـؤ‬ ‫‪ 3-6‬التحليل التسلسلي الزمني‬ ‫‪ 4-6‬االنحدار‬ ‫‪ 5-6‬التجميع (العنقدة)‬ ‫‪ 6-6‬اكتشاف التشوهات (الحاالت الشاذة)‬ ‫‪ 7-6‬قواعد االرتباط‬ ‫‪ 7-6‬التحليل التسلسلي‬ ‫أهم خوارزميات الذكاء االصطناعي المستخدمة في ال ّتنقيب في البيانات‬ ‫‪-7‬‬ ‫‪ 1-7‬خوارزمية ‪ Apriori‬في قاعدة االرتباط‬ ‫‪ 2-7‬خوارزمية ‪1R‬‬ ‫‪ 3-7‬خوارزمية بييز المبسط‬ ‫‪ 4-7‬خوارزمية أشجار القرار‬ ‫‪ 5-7‬خوارزمية الجار األقرب‬ ‫‪ 6-7‬خوارزمية استقراء القاعدة‬ ‫‪ 7-7‬الخوارزمية الجينية‬ ‫‪ 8-7‬خوارزمية الشبكات العصبونية‬ ‫‪-1‬‬ ‫‪5‬‬ ‫‪Database3 – Third Year Students – Applied Faculty‬‬ ‫قواعد المعطيات‪ – 3‬طالب السنة الثالثة ‪ -‬الكلية التطبيقية‬ ‫الصفحة‬ ‫الفصول والفقرات‬ ‫‪4‬‬ ‫‪4‬‬ ‫الفصل الرابع‪ :‬التجميع (العنقدة) ‪Clustering‬‬ ‫مقدمة‬ ‫‪1‬‬ ‫‪ -22‬المتطلبات النموذجية لعملية التجميع في ال ّتنقيب بالبيانات‬ ‫‪ 1-2‬قابلية التدرج‬ ‫‪ 2-2‬القدرة على التعامل مع أنواع مختلفة من البيانات‬ ‫‪ 3-2‬اكتشاف العناقيد مع أشكال غير متجانسة‬ ‫‪ 4-2‬متطلبات الحد األدنى لمجال المعرفة لتحديد معلومات اإلدخال‬ ‫‪ 5-2‬القدرة على التعامل مع البيانات الشاذة‬ ‫‪ 6-2‬التجمعات اإلضافية وعدم الحساسية لترتيب السجالت المدخلة‬ ‫‪ 7-2‬تعدد األبعاد‬ ‫‪ 8-2‬التجميع على أساس القيود‬ ‫‪5‬‬ ‫‪ 9-2‬تفسيرها وقابليتها لالستخدام‬ ‫أنواع البيانات وتشكيل مصفوفة التشابه‬ ‫‪3‬‬ ‫‪ 1-3‬أنواع المسافات‬ ‫‪ 2-3‬أنواع البيانات وطريقة تحويلها إلى مسافات‬ ‫‪ 3-3‬طريقة تشكيل مصفوفة عدم التشابه‬ ‫تصنيف الطرائق الرئيسة في عملية التجميع‬ ‫‪4‬‬ ‫‪Database3‬‬ ‫‪6‬‬ 3‫قواعد المعطيات‬ ‫الفصل األول‬ Introduction to PL/SQL 7 Database3 – Third Year Students – Applied Faculty ‫قواعد المعطيات‪ – 3‬طالب السنة الثالثة ‪ -‬الكلية التطبيقية‬ ‫مقدمة في ‪PL/SQL‬‬ ‫‪1‬‬ ‫‪Introduction to PL/SQL‬‬ ‫نعرض في هذا الفصل الفقرات اآلتية‪:‬‬ ‫ز‬ ‫‪-1‬مقدمة‬ ‫‪-2‬هيكلة تعليمات لغة ‪PL/SQL‬‬ ‫‪-3‬المتغيرات وأنواعها‬ ‫‪-4‬التعليمات في ‪PL/SQL‬‬ ‫‪-5‬المؤشرات في ‪PL/SQL‬‬ ‫‪-6‬األغراض في ‪PL/SQL‬‬ ‫‪-7‬المصفوفات (المجمعات) في ‪PL/SQL‬‬ ‫‪-8‬الجداول المتداخلة في ‪PL/SQL‬‬ ‫الكلمات المفتاحية‪ PL/SQL :‬ـ" ‪."Procedural Language / Structure Query Language‬‬ ‫‪Database3‬‬ ‫‪8‬‬ ‫قواعد المعطيات‪3‬‬ ‫‪ 1-1‬مقدمة‪:‬‬ ‫تعتبر ‪ Pl/SQL‬اختصار لكلمة اإلنجليزية ‪procedural language/Structured Query Langauge‬‬ ‫وتعني لغة إجرائية او لغة اإلجراءات‪ ،‬وهي تعتبر لغة البرمجة الخاصة بقواعد البيانات أوراكل فقط‪ ،‬أي‬ ‫هي لغة تم تطويرها من قبل شركة اوراكل من اجل برمجة قواعد بياناتها‪ ،‬وتعتبر كأي لغة برمجة أخري‬ ‫مثل ‪ java‬و ‪ ++c‬لكنها تعمل فقط في قواعد بيانات أوراكل وال تعمل على باقي قواعد البيانات‪ ،‬وكذلك‬ ‫هي امتداد للغة الـ ‪ ،SQL‬يعني تكتب عبارات ‪ SQL‬بشكل متطور وتتحكم بها مثلما تريد‪ ،‬مثل كتابة‬ ‫الدوال ‪ functions‬واإلجراءات ‪ procedures‬والقوادح ‪ triggers‬وغيرها‪.‬ومن جاءت كلمة امتداد‬ ‫للغة ‪ SQL‬النها خليط بعبارات ‪ SQL‬باإلضافة لعباراتها الخاصة‪.‬‬ ‫والفرق بينها وبين لغة ‪ SQL‬أن الـ ‪ SQL‬تستخدم لالستعالم عن البيانات وتعديلها وحذفها أو أضافتها‪،‬‬ ‫أما لغة ‪ Pl/SQL‬فتستخدم لكتابة عبارات برمجية تحكمية مثل "عبارة اضغط أي مفتاح للحفظ"‪.‬‬ ‫تم تطوير ‪ PL/SQL‬بواسطة ‪ Oracle‬في أوائل التسعينات لتحسين وظائف‪ SQL‬وهي إحدى لغات‬ ‫البرمجة المضمنة في قاعدة البيانات‪ ،‬وتستخدم لتنظيم عمليات البيانات وعبارات االستعالم في الوحدات‬ ‫اإلجرائية لرمز ‪ ،PL/SQL‬كما تستخدم تنفيذ وظائف أو حسابات معقدة من خالل األحكام المنطقية‬ ‫والحلقات والعمليات األخرى‪.‬‬ ‫‪ 1-2‬هيكلة تعليمات لغة ‪:PL/SQL‬‬ ‫يمكن تقسيم برامج ‪ PL/SQL‬إلى هياكل تسمى الكتل‪ ،‬وتحتوي كل كتلة على عبارات ‪ PL/SQL‬و‬ ‫‪ ،SQL‬يحتوي كود ‪ PL/SQL‬النموذجي على البنية اآلتية‪:‬‬ ‫‪[DECLARE‬‬ ‫‪declaration_statements‬‬ ‫]‬ ‫‪BEGIN‬‬ ‫‪executable_statements‬‬ ‫‪[EXCEPTION‬‬ ‫‪exception_handing_statements‬‬ ‫]‬ ‫;‪END‬‬ ‫التصريحات وكتل االستثناء اختيارية‪ ،‬كما هو موضح في بناء الجملة أعاله‪:‬‬ ‫يتم تضمين ‪ Release_statements‬في مقطع إعالن‪ ،‬وهو مسؤول عن التصريح عن‬ ‫‪‬‬ ‫المتغيرات التي سيتم استخدامها من قبل أجزاء أخرى من الكتلة‪.‬هذا المتغير محلي في الكتلة‪ ،‬مما‬ ‫‪9‬‬ ‫‪Database3 – Third Year Students – Applied Faculty‬‬ ‫قواعد المعطيات‪ – 3‬طالب السنة الثالثة ‪ -‬الكلية التطبيقية‬ ‫يعني أنه ال يمكن الوصول إلى هذه المتغيرات من خارج الكتلة‪.‬يتم وضع كتلة اإلعالن دائما في‬ ‫بداية الكتلة‪.‬‬ ‫‪ Executable_statements‬هي عبارات قابلة للتنفيذ بالفعل في الكتلة‪.‬‬ ‫‪‬‬ ‫البيانات الواردة في ‪ Response_handing_statements‬مسؤولة عن معالجة أي أخطاء قد‬ ‫‪‬‬ ‫تحدث في البيانات القابلة للتنفيذ‪.‬‬ ‫ينتهي كل عبارة بفاصلة منقوطة‪ ،‬وينتهي الحظر بأكمله برمز الكلمة األساسية‪END.‬‬ ‫مثال‪ :‬لطباعة عبارة "‪ "Hello Word‬نكتب الكود اآلتي‪:‬‬ ‫‪DECLARE‬‬ ‫;'‪massage VARCHAR2(20):='Hello Word‬‬ ‫‪BEGIN‬‬ ‫;)‪DBMS_OUTPUT.PUT_LINE(massage‬‬ ‫;‪END‬‬ ‫مثال‪ :‬لطباعة عرض المستطيل بداللة الطول والمساحة وتجنب التقسيم على صفر نكتب‪:‬‬ ‫‪-- Created on 2020-5-20 by ADMINISTRATOR‬‬ ‫‪DECLARE‬‬ ‫‪-- Local variables here‬‬ ‫;‪width INTEGER‬‬ ‫;‪height INTEGER:=2‬‬ ‫;‪area INTEGER‬‬ ‫‪Begin‬‬ ‫‪-- Test statements here‬‬ ‫;‪area:=6‬‬ ‫;‪width:=area/height‬‬ ‫;)‪DBMS_OUTPUT.put_line('width='||width‬‬ ‫‪EXCEPTION‬‬ ‫‪WHEN ZERO_DIVIDE THEN‬‬ ‫;)'‪DBMS_OUTPUT.put_line('Division by zero‬‬ ‫;‪END‬‬ ‫‪ 1-3‬المتغيرات وأنواعها‪:‬‬ ‫يحتوي تعريف المتغير على االسم والنوع‪ ،‬حيث يبدأ باالسم ثم فراغ ثم النوع‪ ،‬ويمكنك أيضا تحديد نوع‬ ‫المتغير من خالل الكلمة األساسية‪ ،TYPE ٪‬حيث تخبر هذه الكلمة األساسية ‪ PL/SQL‬باستخدام‬ ‫‪Database3‬‬ ‫‪10‬‬ ‫قواعد المعطيات‪3‬‬ ‫متغير يحتوي على‪TYPE ٪‬‬ ‫ا‬ ‫نفس النوع الذي يستخدمه العمود المحدد في الجدول‪.‬يوضح المثال األتي‬ ‫والذي له نفس نوع عمود رقم الموقع في جدول المواقع‪.‬‬ ‫;‪v_location_id locations.location_id%TYPE‬‬ ‫ويمكن أن نسند له قيمة مباشرة كاآلتي‪:‬‬ ‫;‪v_location_id locations.location_id%TYPE:=234‬‬ ‫مالحظة‪ :‬تتم عملية اإلسناد كما في لغة الباسكال باستخدام الرمزين =‪:‬‬ ‫التعليمات في لغة ‪:PL/SQL‬‬ ‫‪1-4‬‬ ‫هناك العديد من التعليمات وسنكتف بالمهم منها مع توضح عمل كل عبارة بمثال‪:‬‬ ‫‪ 1-4-1‬العبارة الشرطية ‪:IF‬‬ ‫تستخدم هذه الجملة لتنفيذ جمل معينة بعد أن يتحقق الشرط كما بالصيغة االتية‪:‬‬ ‫‪IF condition1 THEN‬‬ ‫‪statement1‬‬ ‫‪ELSIF condition2 THEN‬‬ ‫‪statement2‬‬ ‫‪ELSE‬‬ ‫‪statement3‬‬ ‫;‪END IF‬‬ ‫عندها يتم اختبار الش ـ ــرط االول فإذا كان ص ـ ــحيحا تنفذ الجمل التي بعده وتال ينتقل للش ـ ــرط الثاني وهكذا‬ ‫واال تنفذ الجملة االخيرة‪.‬‬ ‫مثال على جملة ‪:IF‬‬ ‫‪IF v_ename = 'vargas' THEN‬‬ ‫;'‪v_job := 'SA_REP‬‬ ‫;‪v_deptno := 80‬‬ ‫‪END IF‬‬ ‫في المثال الس ــابق تقوم جملة ‪IF‬بمقارنة اذا كان المتغير ‪ v_ename‬يس ــاوي قيمة '‪ 'vargas‬اذا كان‬ ‫هذا الشــرط صــحيح فانه يضــع القيمة ‪ SA_Rep‬في المتغير ‪ v_job‬ويضــع ايضــا ‪ v_deptno‬يســاوي‬ ‫‪.80‬‬ ‫‪11‬‬ ‫‪Database3 – Third Year Students – Applied Faculty‬‬ ‫قواعد المعطيات‪ – 3‬طالب السنة الثالثة ‪ -‬الكلية التطبيقية‬ ‫مثال على جملة ‪:IF–Then–Else‬‬ ‫‪DECLARE‬‬ ‫;‪v_hire_date DATE:='12-Des-1990‬‬ ‫;‪v_five_years BOOLEAN‬‬ ‫‪BEGIN‬‬ ‫‪IF MONTHS_BETWEEN(SUBTYPE,v_hire_date)/12 >5 THEN‬‬ ‫;‪v_five_years :=TRUE‬‬ ‫‪ELSE‬‬ ‫;‪v_five_years:=FALES‬‬ ‫;‪END IF‬‬ ‫فى المثــال السـ ـ ـ ـ ـ ـ ــابق يقوم الكود بــاختبــار فيمــا إذا كــانــت الفترة بين اليوم وتــاريي التعيين أكبر من خمس‬ ‫سنوات فإنه يسند للمتغير ‪ v_five_year‬القيمة ‪ true‬وتال يسند لها القيمة ‪ false‬وتال ‪.null‬‬ ‫‪ 2-4-1‬حلقات التكرار‪:‬‬ ‫هنال ثالثة أنواع من حلقات التكرار هي‪:‬‬ ‫حلقة ‪ Loop‬تنفذ ثم تختبر‪.‬‬ ‫‪‬‬ ‫حلقة ‪ While‬تختبر ثم تنفذ‪.‬‬ ‫‪‬‬ ‫حلقة ‪ For‬تختبر ثم تنفذ‪.‬‬ ‫‪‬‬ ‫‪ ‬جمل التكرار ‪:LOOP‬‬ ‫تستخدم هذه الجملة لتنفيذ جمل معينة كما بالصيغة االتية‪:‬‬ ‫الصيغة العامة‪:‬‬ ‫‪Loop‬‬ ‫‪--delimiter‬‬ ‫;‪Statement1‬‬ ‫‪--statement‬‬ ‫;)‪EXIT (where condition‬‬ ‫‪--Exit Statement‬‬ ‫;‪END Loop‬‬ ‫تّنفذ الحلقة مرة واحدة على االقل ثم يختبر الشرط‪.‬‬ ‫مثال‪:‬‬ ‫‪DECLARE‬‬ ‫;'‪v_country_id locations.country_id%TYPE:='CA‬‬ ‫;‪v_location _id locations.location_id%TYPE;:=1‬‬ ‫‪Database3‬‬ ‫‪12‬‬ 3‫قواعد المعطيات‬ v_counter NUMBER(2) v_city locations.city%TYPE :='Montreal'; BEGIN SELECT Max(location_id) into v_location_id FROM locations Where country_id=v_country_id; Loop INSERT INTO location(location_id,city,country_id) VALUES((v_location_id +v_counter),v_city,v_country_id); v_counter:=v_counter+1; Exit WHERE v_counter > 3; END Loop; END; :WHILE ‫ جمل التكرار‬ :‫تستخدم هذه الجملة لتنفيذ جمل معينة بعد أن يتحقق شرط معين كما بالصيغة اآلتية‬ :‫الصيغة العامة‬ Where condition loop Statement1; Statement2; END loop;.‫تقوم الحلقة بإختبار الشرط اوال ثم ينفذ ما داخلها اذا تحقق الشرط‬ :‫مثال‬ DECLARE v _country_id locations.country_id%TYPE:='CA'; v_location _id locations.location_id%TYPE; v_counter NUMBER(2) :=1; v_city locations.city%TYPE :='Montreal'; BEGIN SELECT Max(location_id) into v_location_id FROM locations Where country_id=v_country_id; While v_counter

Use Quizgecko on...
Browser
Browser