Database3 Lecture Notes PDF
Document Details
Uploaded by StimulativeSage
Applied Faculty
Dr. Mohammad M Hajjouz
Tags
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