FAI2004SAL US بتاريخ: 3 يناير 2005 تقديم بلاغ مشاركة بتاريخ: 3 يناير 2005 this is shortage of data base concepts 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
FAI2004SAL US بتاريخ: 3 يناير 2005 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 3 يناير 2005 تحليل النظم ANALYSIS لتحديد المشاكل التي تواجهنا تقسيم خطوات العمل إلى مراحل تحديد تكلفة المشروع والفوائد تحديد القواعد والصلاحيات وصف المخرجات الرئيسياتتصميم DESIGN رسم المخططات الانسيابية لعمل المشروع تنسيق أشكال التقارير تطوير شكل عرض البيانات أي داخل نموذج كتابة وصف للبرنامج بشكل عام تعريف احتياجات المشروع من HW / SW مرحلة التطوير والتنفيذ IMPLEMENITAION كتابة وفحص ومتابعة النص البرمجي CODE في حال إنشاء مشروع يعتمد على نظام قديم يتم في هذه المرحلة تقل البيانات وتحويلها من نظامه السابق إلى الجديد تدريب مستخدمي المشروع عليه أكمال مستند المساعدة الخاص بالمشروع التأكد عمل المشروع بشكل صحيح وتقسيمه من حيث الكفاءة من الأداء والوقتالصيانة MAINTENANCE تصحيح الأخطاء تعديل النظام في حالة الفشل تدريب الموظفين على كيفية الصيانة البسيطة تحديد جدول صيانة دوري للمشروعDATA BASS MANGAMENT SYSTEM (DBMS)هي عبارة عن مجموعة من البيانات النشطة والغير نشطة التي يتم العمل فيها ضمن مجموعة من البرامج ( مدير قاعدة البيانات ) واهم أهدافه هي القدرة على تحليل وإدارة كم كبير من المعلومات في وقت مميز وجهد اقلمثال / النظام البنكي والذي يتكون من برنامج مخصص للقروض والحسابات يكون هذا البرنامج مسئول عن إضافة حساب جديد حذف حساب قديم التعديل على الحساب موجود.وأيضا للبرنامج مسئوليات أخرى هي التعامل مع ميزانيات البنك بشكل سريع وبوقت مميز وبجهد اقل ويوجد مسئولية إضافية شهرية وهي إعطاء تقارير كل شهر من حسابات الموظفين والعملاءيوجد مجموعة من العناصر الأساسية التي يجب التعامل معها 1/إنهاء مرحلة التصميم DATA REDUNDANCY AND NCONSISTENCY منذ بدء تكوين النظام فانه يختلف في شكل التنسيق وفي شكل تكوين البيانات بحيث يتم إجراء النظام بعدة لغت مثل Oracle – Visual Basic – Pascal – C++ - Power Builder – C - Access أو أي لغة أخرى يمكن لبعض البيانات داخل نظام البنك أن تتكرر مثل العنوان او الهاتف داخل ملف العميل يوجد أيضا داخل ملف النظام بعض البيانات التي تحتوي في الملف الرئيسي في ملف بيانات العميل في هذه الحالة نحتاج إلى مساحة تخزينية اكبر وأيضا في حالة تعديل على رقم هاتف العميل في بيانات حسابه فانه من المحتمل أن لا يتغير رقم العميل في ملفه الأصلي لذلك يجب إثناء مرحلة تكوين الجداول للنظام البنكي أن يتبع نظام يقوم بمنع التكرار ونظام يقوم بتوزيع البيانات من نقطة واحده في أكثر من جهةملاحظة / تكرار البيانات يؤدي إلى الفقدانRedundancy القدرة على التعديل Inconsistency 2/صعوبة الوصول للبيانات DIFFICULTY IN ACCESS DATA مثل عملية البحث عن عميل داخل البنك فقط يحمل صندوق بريده وليس لديه أي فكرة عن رقم سجله أو هاتفه أو رقم بطاقته فيجب عليه في هذه الحالة أن يعتمد النظام المقترح في البحث على أدق التفاصيل مثل الراتب والعنوان وصندوق البريد والشارع ورقم الهوية ورقم الحساب للبنك والاسم الأول والاسم الثاني والأخير3/ الشروط المتكاملة INTEGRETY CONSTRATION هذه النقطة تراعي إطلاق شروط معينة على قاعدة البيانات وبالأخص على الحقول الموجودة داخل قاعدة البيانات مثل في حالة إدخال رقم موظف معين يجب ان لا يقل راتبه عن 1500 ريال إضافة موظف جديد4/ مرجعية البيانات DATA INSOLATION يجب ان يعتمد النظام على عملية البيانات من جميع الملفات والاعتماد على مرجعية الملفات القديمة والحديثة5/ تحديد مشاكل الحماية SECURITY PROBLEM يجب تحديد مسؤليات كل مستخدم أي من له القدرة على الدخول على الملفات او من له القدرة على الإطلاع على الحسابات والتعديل فيها6/ معاينة البيانات VIEW OF DATA وهي عبارة عن مجموعة من ملفات البيانات مرتبطة مع بعضها البعض ضمن بيئة واحده يتم السماح في داخلها لعملية الإضافة او التعديل او الحذفطبقات البيانات وأشكالها DATA ABSTRACTIONلعملية استرجاع البيانات بشكل فعال يجب العلم بأنه يوجد ثلاث مستويات رئيسية لتركيب البيانات 1/ المستوى الفيزيائي PHYSICAL LEVELيتحدث هذا المستوى عن كيفية تخزين البيانات بشكل فعلي وهذا أدنى مستوى في المستويات الثلاث 2/ المستوى المنطقي LOGICAL LEVELويتحدث هذا المستوى عن ما هي طبيعة البيانات المخزنة أي نوعها ويتحدث أيضا عن مجموعة العلاقات التي تربط بين البيانات3/ المستوى العرض VIEW LEVELوهو أعلى مستوى من مستويات البيانات وهو شبيه بنظام المستوى المنطقي ولكنه يقوم بعملية وصف جزء فقط من قاعدة البيانات المستخدمة VIEW LEVEL VIEW 1 VIEW 2 VIEW 3 …….. VIEW N LOGICAL LEVEL PHYSICAL LEVEL مثال CUSTOMER سجل C NAME ID STREETE CITY BORN TEXT NO TEXT TEXT NOالمستوى الفيزيائي يحتوي على شكل جدولالمستوى المنطقي يحتوي على بيانات جدولالبيئة وقاعدة البيانات الرئيسية INSTANCE & SCHEMA مكان العمليات على القاعدة INSTANCEفي حالة تغير على قاعدة البيانات من حيث إضافة سجل او تعديل على سجل او حذف سجل فان مجموع هذه العمليات التي تم تخزينها على قاعدة البيانات بشكل جزئي ومستقل تدعى INSTANCE البيئة SCHEMA هي مجموعة العناصر الموجودة داخلة قاعدة البيانات مثلا الجدول TABLE العرض VIEW نظام الفهرسة INDEX الرديف والبديل SYNONUM نظام الأرقام التلقائية SEQNENCES استقلالية البيانات DATA INDEPENDENCEهي التعديل على جزء من SCHEMA بحيث انه اذا تم التعديل على مستوى واحد بدون ان يتم التأثير على المستويات الأخرى داخل نفس SCHEMA فأنها تعتبر استقلاليةويوجد نوعين من استقلالية البيانات 1/ استقلالية البيانات فيزيائيوهي القدرة على التركيب الفيزيائي للبرنامج عن طريق التأثير على المستوى الفيزيائي وهي ضرورية لتحسين اداء استقلالية البيانات2/ استقلالية البيانات منطقيوهي عبارة عن التغيير على المستوى المنطقي للبرنامجموديلات البيانات DATA MODEL 1/ OBJECT BASED LOGICAL MODEL وهو عبارة عن موديل العنصر الأساسي المنطق يستخدم لوصف البيانات ويتم تعريفه على مستويين الفيزيائي والمنطقي ويوجد مجموعة من الموديلات المتعارف عليها في قواعد البيانات2/ ENTITY RELATIONSHIP MODELENTITY هي التي تمثل عناصر العالم الحقيقي مثل الموظفين والطلاب والمدرسينRELASTION SHIP وهي التي تمثل العلاقة بين هذه العناصر3/ OBJECY ORIENTED MODELوهي العلاقة بين المجموعات E-R وهو اسم آخر للموديل وتحتوي على مجموعة عناصر برمجية خاصة تدعى METHED ( خاصية ) والمجموعة من هذه METHED تسمى CLASSES 4/ RECORD BASED LOGECAL MODEL يستخدم هذا الموديل لزيادة إنتاجية قاعدة البيانات وفعالياتها عن طريق التعامل معها بشكل سجل سجل5/ RELATIONAL & NETWORKINGRELATIONAL وهي عبارة عن مجموعة من الجداول يتم العرض بداخلها ويتم تحديد العلاقة بينهماNETWORKING في لغة اوراكل تمثل بواسطة مجموعة من السجلات مرتبطة مع بعضها البعض ومحددة باسم مكان الارتباط اما في لغات أخرى يجب ان تمثل بواسطة LINK6/ HIERARCHAL MODELهو نفس نظام الشبكة او العلاقات ولكن يتم تنفيذ البيانات داخل النظام على شكل شجرة مرسومة تستخدم لتوضيح البيانات بشكل اكبر انظر الرسم البياني في الدفترENTITY = RECTANGLE المربعATTRIBUTES = ELLIPSES بيضاويRELATIONSHIPS = DIMONDS معين (لا ترتبط إلا مع ENTITY)LINKS = LINE الخطوطلغة قواعد البيانات DATA BASS LANGUAGE 1) لغة معالجة البيانات DATA MANUPLATION LANGUAGE ( DML ) إضافة البيانات على جدول INSERT حذف البيانات على جدول DELETE تعديل البيانات على جدول UBDATE استعلام البيانات على جدول SELECTملاحظة / لغة معالجة البيانات يتم تنفيذها بإحدى الطريقتين التاليتين1/ النظام الإجرائي PROCEDURAL DML وهو نظام يتطلب من المستخدم وصف ما هي طبيعة البيانات التي يحتاجها المستخدم وكيفية الحصول عليها2/ النظام لا إجرائي NOT PROCEDURAL DML وهو نظاما يتطلب من المستخدم ما هي طبيعة البيانات التي يحتاجها المستخدم ولا يهتم بكيفية الحصول عليها2) لغة تعريف وتركيب البيانات DATA DEFINATION LANGUAGE ( DDL )* تحديد المساحة التخزينية المستخدمة* انشاء الجداول باستخدام CREATE TABLE* إضافة عامود على جدول ADD* حذف جدول او عامود DROP* كل ما يتعلق بتركيب قاعدة البيانات ولبس له صلة بالبيانات3/ لغة التحكم سماحيات البيانات DATA CONTROL LANGUAGE ( DCL ) إعطاء الصلاحيات على قاعدة البيانات للمستخدم GRANT سحب الصلاحيات عن المستخدم على قاعدة البيانات عن طريق أمر REVOKEقاموس البيانات DATA DICTIONORYهو عبارة عن ملف يحتوي في داخله على مجموعة من البيانات تخص قاعدة البيانات من حيث التركيب والإنشاء والعمليات التي تمت عليها والحركات الضمنية والصريحة وهذا الملف يعتبر كملف استشاري يتم الرجوع إليه في حال الحاجة الى حالة البيانات او معلومات عنها ويكون معرفا من قبل النظام نفسهإدارة العمليات والأحداث TRNSACTION MANGAMENT في حال صدور مجموعة من العمليات على قاعدة البيانات وبالأخص على البيانات DML وليس على التركيب DDL مثل الحدث DELETE والإضافة INSERT والتعديل UBDATE يجب إصدار عملية الحفظ COMMIT والتراجع ROLL BACK او ما يسمى بالنقطة المرجعية SAVE POINT لانه قد تم انشاء حدث معين DML فيجب استخدام احد العمليات السابقة ( COMMIT – ROLL BACK – SAVE POINT ) تمثيل نظام إدارة العمليات والأحداث على المخطط الزمني* يتراجع الى أخر نقطة_____ COMMIT ROLL BACK * يتراجع الى أخر نقطة مرجعية SAVE POINT INSERT UBDATE INSERT DELETE إدارة المساحة التخزينية STORAGE MANGAMENT قاعدة البيانات تحتاج الى مساحة تخزينية كبيرة بحيث يتم تحويل البيانات المأخوذة من الجداول الى قاعدة بيانات والتي بدورها تقوم بعملية توزيعها على القرص الصلب وهي عبارة عن برنامج يقوم بتزويد الواجهة التطبيقية المستوى الأدنى للبيانات المخزنة على قاعدة البيانات وبين البرنامج والاستعلامات التي تتم على البرنامجSTORGE MANAGERهو عبارة عن مسئول يقوم بعملية التأكد من عمليات إرسال البيانات الى ما يدعى FILE MANGER والذي بدوره يقوم بتوزيع البيانات على القرص الصلبمدير قاعدة البيانات DATA BASS ADMINISTRATORأهم شيء لاستخدام DATA BASS MANGAMENT SYSTEM ( DBMS ) هو القيام باستخدام او السيطرة او التحكم المركزي بين البيانات DATA والتطبيقات APPLECATION والشخص المسئول عن عملية التحكم هو ADMINISTRATOR ( DBA ) مهام DBA1/ تعريف تركيب قاعدة البيانات SCHEMA DEFINATION يقوم DBA ببناء قاعدة بيانات عن طريق استخدام DDL التي تقوم بإنشاء الجداول والعناصر الخاصة بعناصر البيانات والتي يتم تخزينها بشكل نهائي داخل ما يسمى DATA DICTIONORY 2/ STORAGE STRUCTURE & ACCESS METHED DEFINATIONيتحكم مدير قاعدة البيانات بالمساحة التخزينية بقاعدة البيانات وخصائص هذه المساحة التخزينية3/ SCHEMA & PHYSICAL ORGANIZATION MODIFICATIONيتحكم DBA بما يسمى DATA DICTIONARY أي قاموس البيانات والتي يتم تعريف كل العناصر داخل هذا القاموس4/ GRANTING OF AUTHORIZATION FOR DATA ACCESSهي عملية التحكم بإعطاء السماحيات والصلاحيات للمستخدم وبالعكس 5/INTEGRITY CONSTRAINAL SPECIFICATION يتحكم DBA بوصف المحددات المرجعية بين النوافذ والجداول مثل ارتباط العلاقات وتحديد مصدرها او هدفهاأنواع مستخدمي قواعد البيانات 1/ مبرمج التطبيقات APPLECATION PROGRAMMER مبرمج التطبيقات وهو الشخص يجب ان يكون على معرفة تامة بإحدى لغات البرمجة التي تتعامل مع قواعد البيانات مثل ( ORACLE- C – C++ - V.C – VISUAL BASIC – POWER BUILDER)2/ SOPHISTICATED USERS هو الشخص الذي يتعامل مع النظام بدون معرفة مسبقة بدون كتابة البرامج فقط كمستعلم عن البيانات3/ SPECIALIZED USERSهو الشخص او المستخدم الذي يكون متخصص في ملحقات غير البرنامج الرئيسي مثل الرسامات والصوت والصور والفيديو...... الخ 4/ مشغل الأجهزة والأنظمة VAIVA USERS هو المستخدم الذي يتعامل مع النظام مباشرة ويتحكم في نقل البيانات والتخزين والعرضمعالجات الاستعلاميوجد أربع معالجات تخص الاستعلام1/ DML COMPILER وهي المرحلة التي قبل مرحلة التنفيذ وهو المترجم الذي يترجم جمل DML لكي يتعامل معها في قاعدة البيانات2/ EMBEDDED DML COMPILERهي العملية التي تتم مع العملية السابقة DML COMPILER لكي يتم تحويل البيانات المطلوبة وبعد تحويلهم يتم مناداتهم من داخل قاعدة البيانات 3/DDL INTERPRITER وهو عبارة عن محلل لجمل لغة تركيب قاعدة البيانات ويسجلها كمجموعات في جدول معين وهذا الجدول هو قاموس البيانات DATA DECTIONARY 4/ QURY EVALUTION ENGIN وهو مقيم الاستعلامات الذي ينفذ التعليمات المعطاة عن طريق DML STORG MANAGER 1/ AUTHORIZATION AND INTEGRITY MANAGER يقوم بفحص التكاملية والصلاحية للمستخدم أي هل يحق له الوصول للبيانات او لا يحق 2/ TRANSACTION MANAGER تقوم هذه الإدارة بفحص الأحداث التي تم وضعها على قاعدة البيانات والتي تم تنفيذها من ناحية التخزين او التراجع او النقط المرجعية ROLL BACK – SAVE POINT – COMMIT 3/ FILE MANAGER تقوم هذه الإدارة بمتابعه وإدارة العمليات والمواقع التخزينية على للملفات. 4/ BUFFER MANAGER هو مسؤل عن عمليات البحث عن البيانات من القرص الى MAIN MEMORY ويقرر اى البيانات مسموح لها ان تبقى في CACHE MEMORY DISK STORGE 1/ DATA FILES هو مكان تخزين البيانات فقط2/ DATA DICTIONARY وهو المسئول عن جميع العمليات التي تتم على التركيب الخاص في قاعدة البيانات والموجودة على شكل جدول خاص بالقاعدة3/ INDICES هي عملية يتم القيام بها لتسريع عمليات الوصول للبيانات أثناء الاستعلام او التعديل او الحذف4/ STATISTICAL DATA وهي البيانات التي يتم التخزين تلقائي على قاعدة البيانات ملاحظة / المخطط في الكتاب ص 18 مهم جدا ENTITY - RELATIONSHIP MODELيوجد ثلاثة أجزاء رئيسية لها ENTITY SETS RELATIONSHIP SETS ATTRIBUTESتتكون الخصائص من عدة أنواع ATTRIBUTES البسيطة والمعقدة SIMPLE & COMPOSITE مفردة او متعددة القيمة SINGLE – MULTIVALUED انظر الكتاب ص 26 قيمة غير معرفه NULL ATTRIBUTESمثال/ لنفرض ان بعض الموظفين في جدول الموظفين لا يعمل في دائرة معينة لذلك فان خاصية الدائرة لا تحتوي قيمة لهذا الموظف وبذلك تسمى NULL الخاصية المقادة من قبل قيمة معينة DERIVED ATTRIBUTES مثال / في جدول الموظفين نفرض وجود علاقة بين رقم دائرة الموظف مع رقم الدائرة في جدول الدوائرID NAME DEP DEP JOB LOC 1 ALI 10 10 ACC MAKK2 KHA 20 20 SELS MAD3 MOH 10 30 TRAN RIY4 NAS 30 40 MAN JED5 AHM 40 50 WORK DAMعدم تكرار البيانات وخاصة النصوص والجدول التالي يفصل للجدول الأولRELATIONSHIPهي عبارة عن تعاون وارتباط بين أكثر من مجموعة ENTITY انشاء علاقة او ارتباط يكون لعدة احتمالات تعتمد على النظام الموضوع فهناك على سبيل المثال في نظام يخص الموظفين وهواتفهم عدة احتمالات للربطالاحتمال الأولهو ان يكون الموظف له تلفون واحد فقطالاحتمال الثانيهو كون الموظف يملك أكثر من تلفونوفي هذين الاحتمالين يحتمل ظهور مشكلة معينه مثل احتمال اشتراك عدة موظفين في هاتف فهنا نفس النظام يحدد نوع العلاقة بين الطرفين نظام العلاقات يجب ان يتم بمنع وقوع التالي1/ تكرار البيانات2/ تعديل البيانات بشكل غير صحيح ويتم مراعاة السابق عن طريق استخدام ما يسمى نظرية NORMALIZATION العلاقات الثنائية وتسمى BAINARY RELATIONSHIP وهي العلاقة التي تمثل على مستويين فقط اما العلاقة التي تمثل على ثلاثة ارتباطات تسمى TERNARY محددات أنواع الوصول الى العلاقة MAPPING CONSTRAIRTS يوجد أربع أنواع لارتباطات العلاقات ONE BY ONE ONE BY MANY MANY BY ONE MANY BY MANYانظر الكتاب ص 31-32 على الرسم التوضيحي لأنواع العلاقاتالمفاتيح KRYSالمفتاح هو عنصر ضروري لوصف كيفية ارتباط ENTITY مع بعضها البعض بحيث يتم تعريف مفتاح في جدول معين ومفتاح أخر من نوع أخر في جدول أخر لإنشاء ارتباطات وعلاقاتأنواع المفاتيح1/ SUPER KEY وهو عبارة عن مجموعة من الخصائص او قيمة واحدة من الخصائص تستخدم لتعريف ENTITY على أنها مجموعة تحتوي في داخلها على نظام التكرار2/ CANDIDATE KEYيستخدم كتصغير SUPER KEY بحيث يتعامل مع جزء واحد من الخصائص لذلك يسمى بهذا الاسم3/ PRIMARY KEY وهو عبارة عن مفتاح قوي جدا يتم إنشاءه على ENTITY ليحقق خاصيتين ( عدم التكرار UNIQUE - وعدم وجود قيمة فارغة NOT NULL من الخصائص ويستخدم PK لربط ENTITY مع ENTITY أخرى لإنشاء العلاقة بينهمامخطط ارتباطات المجموعات E-R DIAGRAMالمخطط المرتبط بعدة مجموعات يحتوي على سبعة إشكال أساسية يجب تواجدها لإتمام ونجاح المخطط1/ المربع ( RECTANGLE ) الذي يمثل ENTITY2/ الدوائر البيضاوية ELLIPSES وهي تمثل ATTRIBUTES 3/ المعين DIAMONDS وهي تمثل مجموعة العلاقات4/ الخطوط LINES وهي تمثل LINK بين أكثر من ENTITY5/ الدوائر البيضاوية المتداخلة DUBLE ELLIPSES وهي تمثل MULTIVALUED ATTRIBUTES والتي تمثل أكثر من قيمة الخصائص6/ الشكل البيضاوي المتقطع DASHED ELLIPESE وهي تمثل القيمة المقادة DERIVED ATTRIBUTEA7/ الخطوط المتداخلة DUBLE LINES وهي تمثل مجموع الارتباطات بين ENTITY داخل RELATIONSHIPملاحظة / لتحديد نوع العلاقة على الرسم او المخطط يجب تحديد اتجاه السهم اما او السهم العادي يمثل علاقة متجهة من والى والخط العادي يمثل علاقة غي متجهةانظر الكتاب ص 39 في حالة إضافة ATTRIBUTES جديدة والمراد ربطها مع النظام مع العلم ان هذه الخاصية ليس لها ارتباط واقعي مع ENTITY الأولى او الثانية يتم ربطها بشكل مباشر مع العلاقة في المثال نفسه يوجد خاصية تدعى ACCESS – DATA وهي عبارة عن تاريخ اتصال العميل مع تاريخ الاتصال على الحساب مثل عندما تقوم بالتشبيك على رصيدك في الصراف فان العلاقة تكون بين العميل ورقم الحساب من ناحية التاريخانظر الكتاب ص 39جدول الموظفين PKDEP NO COMM MGR HIREDATE SAL EMP NAME EMP NO10 1100 3 1500 ALI 120 0 4 2000 OMAR 230 0 1 15000 HASAN 310 100 5 1600 WALED 420 - 2 7000 SAEED 5جدول الدوائرFKLOC DEP NAME DEP NOMAK ACC 10JED SALES 20RYI ARDIT 30من الشكل الموجود في ص 40 نستنتج ما يلي1/ وجود دبل لاين خطين متوازيين بين العلاقة والمجموعة مما نتج ظهور مربعين متداخلين للمجموعة ومعينين متداخلين في العلاقة وهذا ما يدعى TOTAL PARTICIIPATION2/ وجود احد الخصائص ATTRIBUTES تحتوي على خط متقطع في داخلها وهذا يعني ان هذه الخاصية هي FK3/ المجموعة PAYMENT تعتمد على المجموعة LOAN لانها لا تحتوي في داخلها على PK ولذلك أعطيت الشكل المتداخل للمربع والمتداخل للمعينوتسمى هذه العلاقة او المجموعة مجموعة ضعيفة WEEK ENTITYمجموعة خصائص إضافية EXTENDED E – R FEATUERS يوجد ثلاثة خصائص مميزات للخصائص الرئيسية1/ التخصيص SPECICALIZATION في بعض الأحوال توجد خصائص إضافية للعلاقات على ATTRIBUTES مثل SAVING – ACCAUNT – CHECKING ACCAUNTSAVING ACCUNTهو مقدار الحجم او الكمية داخل الحسابCHECKING ACCUNTهو عدد مرات فحص الحساب الخاص بالعميل من هنا يتم انشاء وتخصيص مجموعات من الأشخاص تعتمد على الكمية وعدد مرات الفحص على سبيل المثال لدينا شخص مسموح له عدد مرات فحص الحساب بمقدار 25 مره شهريا اما اذا زادت عن 25 مره فيتم خصم مبلغ من الحساب على حسب عدد عمليات الفحص مثال أخر لنفرض لدينا عميل ذهبي هذا العميل يجب ان يكون في حسابه على الأقل 10 ألاف ريال ليقوم بعملية الفحص على حسابه بشكل مجاني مثال أخر ويسمى بالعميل العجوز وهو الذي زاد عمره عن 65 سنة هذا يسمح له بفحص الحساب مجاناانظر الكتاب ص 432/ التوسع GENERALIZATIONبعد انشاء نظام SPECIALIZATION فان العلاقة أنتجت أكثر من مستوى في العلاقة الرئيسية مما أدى الى ظهور مستوى أعلى و مستوى أدنى في العلاقة محددة المستويات وأصبحت تدعى FENERALIZATION3/ الخصائص المتوارثة ATTRIBUTES INHERITANCE وهي مجموعة الخصائص في المستوى الأعلى والمستوى الأدنى والتي أنشئت باستخدام SPECIALIZATION AND GENERALIZATION وهي صفات متوارثة مثل SAVING ACCUNT – CHECKING ACCUNT ملاحظة / المستوى الأعلى للعلاقة والصفات المتوارثة تطبق لكل مستويات الأدنىملاحظة / المستوى الأدنى خصائص تطبق فقط على المجموعات السفلية المتجزئة فقطانظر الكتاب ص 52 البنك المتكامل مهم جداSTRUCTURED QUERY LANGUAGE (SQL)وتعتمد في مبدئها على نظامين أساسيين ANSI (AMERICAN NATIONAL STANDERDS INSTIURE)-ISO-تقسم لغة SQL الى عدة أجزاء DATA DEFINIATION LANGUAGE ( DDL )وهو الجزء الذي يقوم بالتعامل مع مجموعة أوامر تتعلق بالمستخدم وقاعدة البيانات من حيث التركيب DMLوهو الجزء الذي يتحكم بالبيانات فقط VIEW DEFINIATIONوهو الجزء الذي يحتوي على مجموعة من الأوامر تختص فقط بطرق تعريفا العرض AUTHORIZATIONSQL تتعامل مع الصلاحيات داخل برنامج مايكروسفت على إنها لغة DDL ولكن في اوراكل تتعامل معها على إنها لغة DCL INTEGRETYتقوم جمل DDL بالتحكم بتكاملية الجداول والبيانات من حيث تعرف مجموعة من المحددات مثل انشاء محدد PK – FK او التعديل على هذا المحدد TRNSACATION CONTROLSQL تحتوي على مجموعة من الأوامر التي لها القدرة على التحكم بالأحداث التي تتم على قاعدة بيانات مثل الإضافة والتعديل والحذف (DELETE – UPDATE – INSERT)التركيب الأساسي لجمل BASIC STRUVTURE SQLالاستعلام QUERY تتكون جمل الاستعلام من مجموعة من الكلمات التي يجب وجودها لإتمام تنفيذ الاستعلام وتتكون أيضا من مجموعة من الجمل المحجوزة التي يكون وضعها اختياري داخل الجملة أي بالا مكان إتمام الجملة بدونهاالكلمات المحجوزة الإجبارية KEYWORDS –RESERVWORDSهي SELECT – FROM تعريف الاستعلامهو استدعاء مجموعة بيانات مكونه من عدد افتراضي من الأعمدة وعدد افتراضي من الصفوف بشرط او بدون شرط على جدول معينجدول الموظفين DEP EMPرقم الدائرة تاريخ التعيين العمولة رقم المدير الراتب اسم الموظف رقم الموظفDEPT NO HIRE DATE COMM MGR SAL E NAME EMP NO10 12/11/02 100 2 1500 ALI 120 01/01/89 - 4 2000 OMER 210 02/10/96 - 5 11000 HANI 320 06/01/02 500 - 15000 WALID 430 07/12/78 100 1 11000 SAID 510 09/01/01 200 3 8000 NASER 6جدول الدوائر DEPTالموقع اسم الدائرة رقم الدائرةLOC D NAME DEPT NOJED TRAINNING 10MAK AUDITING 20MAD SALES 30RYI RESCACH 40جدول الرواتب SAL GRADEاكبر راتب أخر راتب الدرجةHI SAL LS SAL GRADE1500 1000 15000 1501 29000 5001 312000 9001 420000 12001 5ملاحظة / في حالة الاستعلام عن جميع الأعمدة نضع نجمة او كلمة ALLمثال SELECT * FROM EMP ;SELECT ALL FROM EMP; مثال / قم بعملية الاستعلام التالية عن اسم الموظف وراتب الموظف والعمولة من جدول الموظفين بدون شرطSELECT E NAME, SAL, COMMFROM EMP;مثال / قم بعملية الاستعلام عن رقم الموظف وتاريخ التعيين ورقم الدائرة بدون شرطSELECT EMP NO, HIREDATE, DEPT NOFROM EMP;استخدام الأمر DISTINCE وهو أمر يمنع تكرار البيانات من الجدولمثال / قم بعملية عرض رقم دائرة الموظف من جدول الموظفين دون تكرارSELECT DISTINCE DEPT NO FROM EMP;استخدام العمليات الحسابية داخل جمل الاستعلام مثل ( + - X / )مثال / قم بعملية الاستعلام عن رقم الموظف واسم الموظف وراتب الموظف وراتب الموظف السنوي من جدول الموظفينSELECT EMP NO, E NAME, SAL, SAL*12FROM EMP ;استخدام جمل الاستعلام على الجدول بشروط معينة يتم الاستعلام بشرط عن طريق إضافة جملة WHEREمثال / قم بعملية الاستعلام عن جميع الموظفين الذين يعملون في الدائرة رقم 10SELECT * FROM EMP WHERE DEPT NO=10 ;مثال / قم بعملية الاستعلام عن اسم الموظف وراتب الموظف لجميع الموظفين الذين رواتبهم اكبر من 2500SELECT E NAME, EMP NO, SAL, FROM EMPWHERE SAL > 2500 ;مثال / قم بعملية الاستعلام عن رقم الموظف واسم الموظف وراتب الموظف ورقم الدائرة لجميع الموظفين حيث راتبهم اكبر من 2500 ويعملون في الدائرة رقم 20SELECT EMP NO, E NAME, SAL, DEPT NO, FROM EMPWHERE SAL > 2500 AND DEPT NO = 20 ; في حالة استخدام جملة الربط AND داخل الجملة الشرطية WHERE فانه يجب تحقق الشرطيين لإعطاء ناتج اما في حالة استخدام جملة OR في الجملة الشرطية WHERE فانه على الأقل تحقيق احد الشروط لإعطاء ناتجللمحصورة بين شيئين BETWEENللخارجة بين شيئين NOT BETWEENلعرض واستعلام البيانات على أكثر من عامود وفي أكثر من جدول مثال / قم بعملية الاستعلام عن اسم الموظف وراتب الموظف ورقم دائرة الموظف من جدول الموظفين بالإضافة الى اسم الدائرة وموقع الدائرة من جدول الدوائرSELECT EMP.E NAME, EMP.SAL, EMP.DEPT NO, DEPT NO. D NAME, DEPT.LOC, FROM EMP, DEPTWHERE EMP.DEPT NO = DEPT. DEPT NO ;الاسم البديليمكن إعطاء أي عامود داخل جملة SELECT اسم بديل عن طريق وضع فراغ بعد اسم العامود ثم كتابة الاسم البديل مباشرة او بين علامتي تنصيص اذا كان الاسم يحتوي على فراغمثال كما هو موضح في المثالSELECT E NAME, SAL, SAL*12 " ANUUAL SALARY, JOPFROM EMP وأيضا يمكن استخدام الأسماء البديلة للجداول كما موضح في المثال التالي SELECT E.E NAME, E. SAL, E.DEPT NO,D.E NAME,D.LOC FROM EMP E,DEPT DWHERE E.DEPT NO = D.DEPT NO ;في حالة الاستعلام عن رقم معين داخل جملة WHERE فانة يتم كتابة الرقم المراد السؤال عنه بشكل مباشر SELECT *FROM EMP WHERE EMP NO = 5555 ;في حالة السؤال عن اسم معين او نص فأنة يجب وضع الاسم داخل علامة تنصيص من اليمين او اليسار SELECT *FROM EMP WHERE E NAME NO = "ALI ;العمليات على النصوص STRING OPERATION في حال الاستعلام عن مجموعة عمليات تخص النصوص مثل السؤال على جميع الموظفين الذين تبدأ أسمائهم بحرف A او ثاني حرف من أسمائهم B يجب استخدام أمر LIKE بالتعامل مع هذه الجملة مثال SELECT E NAME, SAL, DEPT NOFROM EMPWHERE E NAME LIKE "A%" ; مثال المطلوب الاستعلام عن أسماء جميع الموظفين الذين ثاني حرف من أسمائهم هي L SELECT *FROM EMP WHERE E NAME LIKE "-L%" ;ترتيب اسطر البيانات داخل الجدول تصاعديا او تنازليايتم تركيب البيانات باستخدام جملةORDER BY ويتم تحديد الترتيب بشكل تصاعدي او تنازلي باستخدام جملة DESC OR (ASC) والقيمة الافتراضية دائما لعملية الترتيب هي (ASC) أي من الألف الى الياء كما هو موضح في المثال التالي لترتيب البيانات بالاعتماد على عمود E NAME نقوم بما يلي SELECT *FROM EMP ORDER BY E NAME ASC ;اذا كان الترتيب من حيث الراتب ووجد راتبين متشابهين فإننا نقوم بوضع جملة E NAME SELECT *FROM EMP ORDER BY SAL DESE, E NAME ; استخدام خصائص الاتحاد والتقاطع داخل SELECT بالا مكان استخدام أمر الاتحاد UNION او أمر التقاطع INTER SECT OR UNION ALL OR EXCEPT OR EXCEPT ALL تستخدم هذه الأوامر لتقاطع او اتحاد مجموعه من الاعمده من جدول الى جدول أخر كما موضح في المثال التالي ( SELECT DEPT NO FROM EMP )INTERSECT ( SELECT DEPT NO FROM DEPT ) ;( SELECT DEPT NO FROM EMP )UNION (SELECT DEPT NO FROM DEPT ) ; بالا مكان استخدام جملة EXCEPT للسؤال عن كل القيم في جدول ما عدا مجموعه القيم من جدول أخر كما هو موضح في المثال التالي ( SELECT DEPT NO FROM EMP )EXCEPT ( SELECT DEPT NO FROM DEPT WHERE DEPT NO = 10 ) ; لا تعمل مع اوراكل AGGREATE FUNCTIO (GROUP FUNCTION)تحتوي على خمسة اقترانات رئيسية واقترانيين غير رئيسية AVERAGE(AVG) MINIMUM(MIN ) MAXIMUM (MAX) TOTAL (SUM) COUNT(COUNT)- VARIANCE- STTDVمثال في حال استعلام مجموع رواتب الموظفين وعن معدلات رواتب الموظفين وعن أعلى راتب واقل راتب وعن رواتب المصروفة انظر المثال SELECT AVG (SAL), SUM, (SAL), MAX (SAL), MIN (SAL), COUNT (SAL), VARIANCE(SAL)FROM EMP ; مثال /لعرض مجموع دوائر الموظفين في الدائرة 30 فقط SELECT SUM ( SAL)FAOM EMPWHERE DEPT NO = 30 ;مثال / لإيجاد معدل الرواتب في كل دائرة لوحدها على شرط ان يتم عرض مجموع الرواتب الذي يزيد عن 10000 ريال في هذه الحالة يجب استخدام جملة HAVING للسؤال عن GROUP BY وليس جملة WHERE لأنها تقوم بالسؤال عن عناصر SELECT العاديةSELECT DEPT NO, SUM ( SAL ) FROM EMP DETP NO SUM SALGROUP BY DEPT NO 10 11250HAVING SUM ( SAL ) > 10000 ; 20 10875 القيمة الغير معرفة NULL VALUESمثال / في حالة السؤال عن أي قيمة غير معرفة نستخدم IS NULL س / قم بالاستعلام عن جميع الموظفين الذين ليس لهم عمولة SELECT * FROM EMP WHERE COMM IS NULL ;مثال / للاستعلام لجميع الموظفين الذين لهم عمولة فقطSELECT *FROM EMPWHERE COMM IS NOT NULL ;الاستعلامات الفرعية المتداخلة NESTED SUBQUERIES وهي عبارة عن مجموعة من الاستعلامات تكون متداخلة مع بعضها البعض اما في جملة WHERE OR FROM تستخدم في حالة السؤال عن شيء مهم مثال قم بالاستعلام عن رواتب جميع الموظفين الذين رواتبهم اكبر من راتب عليSELECT E NAME, SAL FROM EMP WHERE SAL > = ( SELECT SAL FROM EMP WHERE E NAME = " ALI " ) ;في حالة الاستعلام الداخلي فان الاستعلام الداخلي ينفذ أولا والناتج يعتمد في الاستعلام الخارجي يجب مراعاة اسم العامود في WHERE مع اسم العامود داخل SELECT الداخلية بحيث يجب ان يكونان متشابهين بما يجب وضع جملة SELECT بين قوسين مثال / قم بعملية الاستعلام عن جميع الموظفين الذين يعملون في دائرة RESERCH SELECT * FROM EMPWHERE DEPT NO = ( SELECT DPT NO FROM DEPT WHERE D NAME = " RESERCH " ) ;مثال / قم بعملية الاستعلام عن جميع الموظفين الذين يعملون في DALAS SELECT *FROM EMPWHERE DEPT NO = ( SELECT DEPT NO FROM DEPTWHERE LOC = " DALAS ") ;في حال استرجاع أكثر من قيمة من الاستعلام الداخلي فأنة يتم حدوث خطأ داخل الاستعلام الخارجي والحل هو انشاء عنصر جديد بدل إشارة المساواة وهو اما ALL OR ANY OR IN OR SUM مثال / في حال الاستعلام عن جميع الموظفين الذين يعملون في الدوائر 10 -20-30 فإننا نستخدم SELECT * FROM EMP WHERE DEPT NO IN (SELECT DEPT NO FROM DEPT)ORSELECT *FROM EMP WHERE DEPT NO IN ( 10,20,30 ) ;بالامكان الاستعلام عن الاستعلامات متعددة الأسطر باستخدام IN = ANY (LIST) اقل من اكبر قيمة > ANY اكبر من اقل قيمة < ANY قائمة (LIST ) IN = ANY > SOME < SOME = SOME مثال / في حالة الاستعلام عن اصغر راتب من اكبر راتب من الرواتب من رواتب الموظفين الذين يعملون في وظيفة CLEARK SELECT E NAME, SAL, JOBFROM EMP WHERE SAL > ANY ( SELECT SAL FROM EMP, WHERE JOB = "CLEARK " ) AND JOB = "CLEARK " ; TEST FOR EMPTY RELATION بالامكان السؤال عن جدولين باستخدام صيغة جديدة تسمى EXISTS وهي تستخدم للسؤال عن اذا ما كان قيمة أحدى الجداول موجودة في جدول أخر مثال / في حالة السؤال عن جميع الموظفين الذين لهم نفس الدوائر في جدول الدوائر والحل كما هو موضح في المثال التالي SELECT ENAME FROM EMP WHERE EXISTS ( SELECT * FROM DEPT WHERE EMP. DEPT NO = DPRT.DEPT NO ) ;نافذة العرض VIEWS هي عبارة عن جدول وهمي يكون فقط كتركيب ولا يحتوي على بيانات في داخلة ولكن يقوم بعرض بيانات من جدول معين وهي تستخدم لعملية تخزين جملة استعلام داخل تركيب يمكن الاستعلام منه لاحقا وتستخدم لتحليل الاستعلامات المعقدة بشكل أسهل ويجب انشاء هذه النافذة باستخدام جملة CREATE VIEW كما هو موضح CREATE VIEW EMP DEPT AS (SELECT E. E NAME, E. SAL, E. DEPT NO, D. D NAME, D. LOC FROM EMP E, DEPT D WHERE E. DEPT NO = D. DEPT NO ) ;مثال / قم بعملية انشاء نافذة VIEW تقوم بعملية تخزين استعلام يقوم بالسؤال عن اسم الموظف وراتب الموظف وتاريخ تعين لجميع الموظفين الذين رواتبهم تزيد عن 2500 CREATE VIEW TEST AS (SELECT E NAME, SAL, HIR DATE FROM EMP WHERE SAL > 2500 ) ;التعديل على قاعدة البيانات MODIFICATION OF THE DATA BASE 1/ الحذف DELETE وتستخدم لحذف سجلات من جدول معين مثلا لحذف كل السجلات من جدول الموظفين نكتب الصيغة التاليةDELETE FROM EMP ;اما في حال حذف جميع الموظفين نكتب الصيغة التاليةDELETE FROM EMP WHERE DEPT NO = 10 ;2/ الإضافة INSERTION تستخدم لإضافة سجل جديد على جدول او نافذة معينة وصيغة الإضافة INSERT INTO INSERT INTO DEPTVALUSE ( 60, "AUDITING ". " MAKKAH ") ;بالا مكان إضافة مجموعة قيم الى جدول EMP واضافة قيمة NULL في المكان الفارغ داخل جدول EMPINSERT INTO EMPVALUSE ( 444," WALED ",NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL) ;بالا مكان استخدام جملة INSERT عن طريق جملة SELECT مثلا إضافة مجموعة بيانات من جدول الموظفين الى جدول الدوائر لا يتم إلا بطريقة SELECT داخل جملة INSERTINSERT INTO DEPT ( SELECT COMM, E NAME, JOB FROM EMP WHERE EMP NO = 7788) ;3/ التعديل UPDATE بالمكان التعديل على أي قيمة باستخدام جملة UPDATE والتي صيغتها تتكون بالشكل التالي SET القيمة الجديدة المراد وضعهاWHERE القيمة القديمة المراد تغييرهاUPDATE EMPSET SAL = 1000 WHERE EMP NO = 7788 ;مثال / للتعديل على راتب موظف بحيث يصبح راتبه 10000 ريال من اصل 8000UPDATE EMPSET SAL = 10000WHERE SAL = 8000 ;مثال / قم بالتعديل على عمولة جميع الموظفين الذين يعملون في الدائرة رقم 10 لتصبح 1000 ريال فقط في الدائرة 10UPDATE EMPSET COMM = 1000WHERE DEPT NO = 10 ;مثال / المطلوب التعديل على رواتب الموظفين بحيث يتم زيادة راتب الموظف بمقدار 1.5 فقط للموظفين الذين يعملون CLEARUPDATE EMPSET SAL = SAL * 1.5WHERE JOB = "CLEAR " ;علاقات الربط JOINED RELATIONتوجد مجموعة علاقات لعلاقات الربط1/ العلاقة المتساوية INNER JOINوهي العلاقة التي تتم بين جدولين بحيث يتم الارتباط بين عامود في الجدول الأول مع عامود في الجدول الثاني بحيث يكون للعامودين نفس نوع البيانات ونفس المحتوى لذلك تسمى علاقة متساوية على شرط ان يكون العامود الأول FK والثاني PK كما هو موضح في جملة SELECT SELECT E.E NAME, E.SAL, D., LOCFROM EMP E, DEPT DWHERE E.DEPT NO = D.DEPT NO ;2/ العلاقة الغير متساوية NOT EQUAL JOIN في حال عملية الاستعلام الغير متساوية فإننا نقوم بربط أي عامود قريب من خصائص عامود أخر داخل جملة WHERE كما هو موضح في هذا المثالمثال / المطلوب إيجاد اسم الموظف وراتب الموظف ودرجة الموظف من جدول الموظفين وجدول الدرجات باستخدام جملة الربط WHERE لمنع التكرار ولإنشاء علاقة ضمنية في الاستعلامSELECT E NAME, SAL, GREAD,FROM EMP, SAL GREAD WHERE SAL BETWEEN 10 SAL AND HISAL;GREAD 10 SAL HI SAL SAL1 200 700 5002 750 800 6003 850 1000 110004 1100 3000 20005 4000 8000 50006 9000 12000 100003/ العلاقة في نفس الجدول SELF JOIN وهي العلاقة التي ترتبط بين عامودين في جدول واحد على شرط ان يكون العامود الأول FK والعامود الثاني PKSELECT E.EMP NO, E.E NAME, M.E NAME MANAGERFROM EMP E, EMP MWHERE E.MGR = M.EMP NO ;4/ العلاقة الخارجة عن الارتباط ولها نوعين الخارجة عن الارتباط من اليمين OUTER LIFT JOIN الخارجة عن الارتباط من اليسار RIGHT JOIN SELECT E.E NAME, E.SAL, E.DEPT NO, D.D NAME, D.LOC, FROM EMP E.DEPT DWHERE E.DEPT NO (+) = D.DEPT NO (+) من جدول DEPT من جدول EMPفي حال استخدام العلاقة الخارجة التي تسمى OUTER JOIN فان هذه العلاقة تقوم بعملية إحضار ما هو غير مرتبط من جهة اليمين او اليسار ملاحظة / ا ) علامة (+) لا تكتب مرتين في المثال السابق ولكن تكتب مرة واحدة اما من جهة اليمين او اليسار ب ) علامة (+) المحصورة بين قوسين تكون فقط في لغة اوراكل اما في لغات أخرى فانه يتم كتابة مايلي ( OUTER RIGHT JOIN – OUTER LIFT JOIN – OUTER )لغة تركيب قواعد البيانات DATA DEFINATION LANGUAGE ( DDL ) أهداف التعامل مع ( DDL ) التعامل مع البيئة والعلاقات داخلها تعريف الأعمدة الداخلية في الجداول وتغيير خصائصها تعريف الجداول المرجعية ( PK & FK ) انشاء نظام الفهرسة وتسهيل التعامل مع العلاقات منح الصلاحيات وإعطاء الأمان داخل البيئة التحكم بالتركيب الفيزيائي لتركيب البياناتأنواع البيانات المستخدمة في DOMAIN TYPES IN SQLيوجد عدة أنواع للبيانات داخل SQL لها ثلاثة أنواع أساسية ( النص – التاريخ – الرقم )1/ النص CHARهي نوع البيانات تستخدم للحقول النصية ثابتة الامتداد لنفرض ان لدينا جدول في داخله عامود اسم الموظف من نوع CHAR 000000000000000 E NAME CHAR ( 15 )ALI00000000000لقد تم حجز 15 خانه مع العلم ان اسم الموظف هو مكون من 3 خانات لذلك يسمى ثابت الحجم2/ VARCHAR وتستخدم للحقول النصية المتغيرة الامتداد مثالا000000000000000 E NAME VARCHAR 2 ( 15 )ALIفي هذا المثال تم حجز 3 خانات من اصل 15انشاء جدول لإنشاء جدول نقوم بعملية استخدام جملة CREATE TABLE ثم اسم الجدول TABLE NAME ثم اسم العمود COLUMN NAME ثم أنواع البيانات DATA TYPE ثم ...... الخ مثال / لإنشاء جدول شبيها بجدول الدوائر نقوم بما يلي CREATE TABLE DEPT ( DEPT NO NUMBER (2), D NAME VARCHAR 2(30) LOC VARCHAR 2(30)) ;مثال / قم بعملية انشاء جدول نفس مواصفات جدول الموظفين ولكن باسم جديد يدعى EMPCREATE TABLE EMPLOYEE ( EMP NO NUMBER (4), E NAME VARCHAR 2 (35), JOB VARCHAR 2 (20), MGR NUMBER (4), SAL NUMBER (7.2), HIREDATE, COMM NUMBER (4.2), DEPT NO NUMBER (2));انشاء جدول باستخدام المحددات يجب في البداية تحديد نوع المحددات الخاصة بالجداول يجب معرفة وجود مكان المحدد يجب معرفة صيغة بناء المحددأنواع المحددات1/ في البداية يكون محدد PK هو أهم المحددات الموجودة وهو مكون من شرطين ا ) NOT NULL ( NN )ب ) UNIQUE ( UK )2/ FK هو محدد يكون على العمود بحيث يقوم هذا المحدد يربط هذا العمود بعامود أخر على شرط ان يكون العمود الأخر من نوع3/ CK يقوم باستخدام ووضع شرط محدد على العامود لحظة انشاء الجدول4/ المحدد NN بالامكان استخدامه بشكل مستقل بحيث يمنع وجود فراغ على العامود المضاف عليه5/ UK محدد يقوم بمنع عملية التكرار على العامود المضاف عليهطرق استخدام المحدداتلإنشاء جدول الدوائر على شرط ان يكون عامود رقم الدائرة من نوع PK الحل بالامكان حل المثال التالي بطريقتين كما يلي1} CREATE TABLE DEPT ( DEPT NO NUMBER (2) PRIMARY KEY, D NAME VARCHAR 2 (30), LOC VARCHAR 2 (20)) ;على مستوى العامود2} CREATE TABLE ( DEPT DEPT NO NUMBER (2) PRIMARY KEY, D NAME VARCHAR 2 (30) NOT NULL, LOC VARCHAR 2 (20) UNIQUE, CONSTRAINT PK_DEPT NO PRIMARY KEY (DEPT NO)) ;لحذف جدول معين نقوم باستخدام الجملة التاليةDROP TABLE DEPTDROP TABLE EMPللتعديل على تكوين جدول نقوم باستخدام أمر يدعى ALTER TABLE وينقسم الى أربع أجزاء1/ ADD ( إضافة عامود جديد )ALTER TABLE DEPTADD E DATE DATE ;2/ MODIFY ( التعديل على حجم ونوع البيانات )ALTER TABLE DEPTMODIFY E DATE NUMBER (30) ;3/ DROP COLUMN ( حذف عامود )ALTER TABLE DEPTDROP COLUMN ( E DATE ) ;مؤشر الاستعلام على جمل DML CURSOR SQLفي حال الاستعلام عن جدول معين او التعديل على جدول او الحذف من الجدول فان كل هذه العمليات تتم داخل بيئة خاصة ومؤقتة تقوم بحفظ البيانات بشكل مؤقت والتي يتم في داخلها استرجاع البيانات المطلوبة ومعالجتها ثم عرضها داخل SQL وهي عبارة عن مجموعة نشطة وتسمى ACTIVE SET او ما يدعى PRIVTE AREA ويمكن انشاء ما يسمى SQL CURSOR اما يدويا او اتوماتيكيا بحيث يقوم مؤشر معين بتعيين جميع القيم التي تم دخولها على البيئة الخاصة PRIVAT AREA ثم يقوم بفحصها ومعالجتهاالمرجعية التكاملية في المحددات INTEGRITY CONSTRAINTS DOMAIN CONSTRAINTSهو عبارة عن نطاق يتم انشاء مجموعة من العناصر داخل هذا النطاق مثل الجداول والنوافذ والاجراءت والفهرسة والأرقام المتسلسلة في هذه الوحدة سوف يتم التكلم عن التكاملية للنطاق وهي كيفية انشاء المحددات على نطاق معينمثال / قم بإنشاء جدول يسمى EMPLOYEE والذي يحتوي في داخله على عدة أعمدة EMP NO ( PK ) E NAME ( NN ) SAL ( CK ) COMM JOB HIREDATE ( UK ) DEPT NO ( FK ) MGRوقبل انشاء هذا الجدول قم بإنشاء جدول آخر يخص الدوائر وأعطيه اسم DEPARTMENT والذي يحتوي على ثلاثة أعمدة وهي DEPT NO ( PK ) D NAME LOCثم قم بربطه مع جدول الموظفينطريقة الحلCREATE TABLE DEPARTMENT ( DEPT NO NUMBER ( 2 ), D NAME VARCHAR 2 ( 10 ), LOC VARCHAR 2 ( 10 ),CONSTRAINT PK_DEPT NO PRIMARY KEY ( DEPT NO ) ; العمود المراد وصفه نوع المحدد اسم المحدد المحددCREATE TABLE EMPLOYEE ( EMP NO NUMBER ( 4 ), E NAME VARCHAR 2 ( 20 ) NOT NULL, SAL NUMBER ( 7.2 ), COMM NUMBER ( 4 ), JOB VARCHAR 2 ( 10 ), DEPT NO NUMBER ( 12 ),CONSTRAINT PK_EMP NO PEIMARY KEY ( EMP NO ),CONSTRAINT CK_SAL CHECH ( SAL > 1500 ),CONSTRAINT UK_HIREDATE UNIQE ( HIREDATE ),CONSTRAINT FK_DEPT NO FOREGN KEY ( DEPT NO ) ,REFERENCES DEPT ( DEPT NO )) ;زناد المسدس TRIGGERSهو عبارة عن مجموعه من المعلومات التي يتم تنفيذها بشكل أوتوماتيكي بواسطة النظام في حال حدوث تعديل او أضافه او حذف أي جميع العمليات التي تخص DML ويتم إنشائها أيضا بشكل يدوي عن طريق المستخدم في حال مع التعامل TRIGGER يجب مراعاة ما يلي وصف الشرط الواجب يوفره لإطلاق TRIGGER ما هي طبيعة الحدث الذي يتم تنفيذه لحظة انطلاق TRIGGER مستوى تنفيذ TRIGGER في لغة قواعد البيانات ينطلق الحدث على ثلاث مراحل قبل عملية معينه BEFOR بعد عملية معينه AFTER لحظة القيام بعملية معينه ONملاحظة / معظم TRIGGER ينطلق عبر عمليتين ( INSERT / UPDATE )يختلفTRIGGER في حالة التعامل مع داخل بيئة FORM فيوجد أكثر من 100 نوع داخل بيئة FORM صيغة تعريف TRIGGER DEFINE TRIGGER X UPDATE SAL هذا التعريف بعملية انشاء TRIGGER يدعى X يتم تطبيقه فقط لحظة التعديل على عمود SAL داخل جدول الموظفين CLOSURE OF A SET FUNCTIONAL DEPENDENCIESلنفرض ان لدينا المجموعة A ترتبط مع المجموعة B ولدينا المجموعة B ترتبط مع المجموعة Cوالمجموعة CG ترتبط مع المجموعة H ولدينا المجموعة B ترتبط مع المجموعة Hفان المجموعة A ترتبط مع المجموعة B وان المجموعة B ترتبط مع المجموعة C فان المجموعة A ترتبط مع المجموعة Cبطريقة غير مباشرة بما ان A ترتبط مع B و B ترتبط مع Hفان A ترتبط مع H بطريقة غير مباشرة ( طريقة ضمنية )خصائص العلاقات المرتبطة بشكل مخطط 1- الانعكاسية REFLEXIVITY اذا كانت الفا مجموعه من خصائص معينه وكانت بيتا متضمنة ألفا في داخلها فهذا يعني ان الفا ترتبط مع B والعكس صحيح وهذا يعني أنهما متضامنان مع بعضهما البعض.2- التوزيع AUGMEUTATIONاذا كانت ألفا ترتبط مع بيتا وكانت حاما عن مجموعه من الخصائص سوف يتم ارتباطها مع العلاقة السابقة بالشكل التالي 3- الضمنية TRANSITIVITY اذا كانت ألفا ترتبط مع بيتا وكانت بيتا ترتبط مع جاما فان ألفا ترتبط مع جاما 4- الاتحاد UNION اذا كانت ألفا ترتبط مع بيتا وألفا ترتبط مع جاما فان ألفا ترتبط مع بيتا وجاما 5- التفصيلية DECOMPOSITIONاذا كانت ألفا مع بيتا وجاما فان ألفا ترتبط مع جاما وألفا ترتبط مع بيتا 6- التعريفية PSEUDOTRANSITIVITY اذا كانت ألفا ترتبط مع بيتا وبيتا وجاما ترتبط مع سيجما فان ألفا وبيتا ترتبط مع سيجما PROCEDURE LANGUAGEهي اللغة التي يتم بداخلها كتابة برنامج طويل باستخدام مجموعة تعريفات واستخدام كلمات محجوزة من هذه اللغة لا يتم كتابتها كما تم سابقا مثل ( SELECT – UPDATE – CREATE ) ...... الخيجب وجود ما يلي BEGIN END DECLAREداخل هذه اللغة بامكاننا استخدام ما يلي البيئة الخاصة CURSOR البحث داخل البيئة الخاصة FETEN إغلاق البيئة الخاصة CLOSE فتح البيئة الخاصة OPEN للتكرار FOR للسؤال عن شرط IF – ELSA – ELSE IF للتكرار LOOP للتكرار WHILE علاقات العناصر في قاعدة البيانات OBJECT RELATION DATABASS في هذه الوحدة يتم انشاء مجموعة من العناصر مثل نوع البيانات وسوف يتم التحدث عن أنواع البيانات معقدة التركيب وقد ورد سابقا ما يسمى ( 1NF ) FIRST NORMAL FORM وهي عبارة عن علاقة من الدرجة الأولى يجب ان تكون جميع أعمدتها او خصائصها متضمنة داخل نفس النطاق الرئيسي للبياناتعندما نتكلم عن نطاق العناصر العلائقي فانه يجب مراعاة أربع عناصر 1/ DOCUMENT TITLE2/ AUTHOR TITLEوهي قائمة تحتوي في داخلها مجموعة من البيانات وهي ترتبط مع DOCUMENT بشكل ما يدعى SET OF AUTHORS أي ان احتمال ان النص يرتبط مع AUTHORS كما يتم توضيحه لاحقا3/ الكلمات المحجوزة DATEالتاريخ يعتبر عن مجموعة واحدة ضمن النطاق لأنه من المحتمل عرض التاريخ كثلاثة أعمدة كسبيل المثال وليس كحقل واحد أي عامود واحد ( عامود اليوم –عامود الشهر – عامود السنة ) انظر الكتاب ص 1774/ KEY WORD LISTTITLE AUTHOR TITLETITLE DATEهذه العلاقة ليست ( 1NF )بالا مكان أيضا عرض بيانات الجدول بالطريقة التاليةTITLE – DAY – MONTH – YEARوهذه العلاقة تسمى ( 4NF )مثال / لديك الجدول الموجود في أعلى ص 277 قم بعملية تمثيل الجدول على شكل جدولين آخرين الأول يقوم بعرض العلاقة ( 1NF ) والثاني ( 4NF ) الحل / لعرض الجدول على شكل ( 1NF ) يجب تمثيله كل عنصر داخله لا يرتبط إلا مع عنصر بداخله كما هو موضح بالجدول TITLE AUTHOR - LIST DATE KEY WORD - LIST DAY - MONTH - YEAR SALESPLAN ( SMITH - JONSE ) ( 1,APRIL,89 ) ( PROFIT,STRATEGY )STATUS REPORT ( JONES - FRICK ) ( 17,JUNE,94 ) ( PROFIT,PERSONNEL )اما عملية عرض الجدول السابق على شكل علاقة من نوع ( 4NF ) انظر الى الثلاثة الجداول في الشكل التاليTITLE AUTHOR DAY MONTH YEAR KEY WORDSALESPLAN SMITH 1 APRIL 89 PROFITSALESPLAN JONES 1 MAY 89 PROFITSALESPLAN SMITH 1 JUNE 89 STRATEGYSALESPLAN JONES 1 JULY 89 STRATEGYSTATUS REPORT JONES 17 JUNE 94 PROFITSTATUS REPORT FRICK 17 JUNE 94 PROFITSTATUS REPORT JONES 17 JUNE 94 PERSONNELSTATUS REPORT FRICK 17 JUNE 94 PERSONNELالأنواع المعقدة وتحديد إشكاليات إحداثيات العناصر COMPLEX TYPES & OBJECT ORIENTATIONالعلاقات المتداخلة هي عبارة عن مثال بسيط لامتدادات أنواع العلاقات في حال تحدثنا عن الأنواع المعقدة فإننا نبدأ الحديث عن الاقترانات في الجداول المرتبطة بهذه العناصرSTRUTURED & COLLECTION TYPES تجميع وتركيب الأنواع انشاء جديدالاسم الخاص بالنوع الجديد CREATE TYPE MY STRING CHAR VARYINGرقمي CREATE TYPE MY DATEنصي ( DAY INTEGER,رقمي MONTH CHAR ( 10 ), YEAR INTEGER,CREATE TYPE DOCUMENT ( NAME MY STRING,مجموعة من نوع البيانات AUTHOR – LIST SETOF ( MY STRING ),المعرف عليها DATE MY DATE,نصي KEY WORD – LIST SETOF ( MY STRING ))اسم الجدول CREATE TABLE DOC OF TYPE DOCUMENT ; الطريقة الثانية لإنشاء النوع الجديد لإنشاء جدولCREATE TABLE DOC ( NAME MY STRING, AUTHOR – LIST SETOF ( MY STRING ), DATE MY DATE, KEY WORD – LIST SETOF ( MY STRING )) ;نظام التوارث INHERITANCE يتم التعبير على شكل هرمي أي يعتمد على نظام المستويات أي يوجد انواع رئيسية وأنواع فرعية من الرئيسيةالطريقة الاولى CREATE TYPE PERSON ( NAME MY STRING, SOCIAL – SECURITY INTEGER ) ; الطريق الثانية CREATE TYPE STUDENT ( DEGREE MY STRING, DEPARTMENT MY STRING ) ; UNDER PERSONمن الأنواع الجديدة المنشئة سابقا لعملية التعامل مع البيانات بشكل متوارث نستخدم كلمة UNDER كما هو موضح سابقا ويوجد من النوع الأول STUDENT والنوع TEACHER توجد بينهما مشكلة والمشكلة هي وجود عنصر للطالب دائرة وعنصر للمدرس دائرة ولذلك نستخدم الصيغة التالية لتجنب الوقوع في عملية التشويش انظر المثالCREATE TYOE TEACHING ASSISTANTUNDER STUDENT WITH ( DEPARTMENT AS STUDENT – DEPT ), TEACHER WITH ( DEPARTMENT AS TEACHER – DEPT ) ;وذلك باستخدام كلمتي WITH & AS الأنواع المرجعية REFRENCE TYPES بالامكان استخدام الأنواع المرجعية لحظة وجود ( REF ) داخل تعريف نوع جديد AUTHOR – LIST SET OF ( REF( PERSON )) في هذا المثال تم تعريف العنصر AUTHOR – LIST على انه مجموعة من عناصر SET OF من العنصر المرجعي PERSON باستخدام جملة REFكيفية الاستعلام عن الأنواع المعقدة QUERYING WITH COMPLEX TYPES للاستعلام عن أي عنصر مرجعي يجب ذكر العنصر ثم نقطة نم اسم الجزء الداخلي للعنصر او نوع البيانات على سبيل المثال المطلوب الاستعلام عن الاسم والسنة من داخل الجدول DOCSELECT NAME, DATE, YEARFROM DOCRELATION – VALUED ATTRIBUTESCREATE TABLE P DOC ( NAME MY STRING, AUTHOR – LIST SEOF ( REF ( PEOPLE )) , DATE MY DATE, KEYWORD – LIST SET OF ( MY STRING )) ;بعد انشاء هذا الجدول لنفرض لدينا الاستعلام التاليSELECT B. NAME, Y.NAMEFROM P DOC AS B, B. AUTHOR – LIST AS Y Y اسم بديل لجدول AUTHOR – LISTAUTHOR – LIST عامود داخل جدول B وهو P DOCB اسم بديل لجدول P DOCبالا مكان استخدام احد اقترانات المجاميع مثل اقترانات ( AVG – MIN – MAX – SUM – COUNT )مع الأنواع المعقدة كما هو موضح في المثال SELECT NAME, COUNT ( AUTHOR – LIST )FROM P DOC ;التداخل وعدم التداخل للعمليات NESTING & UNNESTING بالامكان كتابة صيغة SELECT على طريقتين الأولى بنظام عدم التداخل كما هو موضح في الشكل التالي SELECT NAME,A AS AUTHOR, DATE.DAY,DATE.MONTH,DATE.YEAR, K AS KEY WORDFROM DOC AS B , B .AUTHOR – LIST AS A , B .KEY WORD – LIST AS KA اسم بديل AUTHORK اسم بديل KEY WORDB اسم بديل DOCKEY WORD الاسم الأصليبالا مكان نفس الاستعلام السابق مع تغير بسيط لطريقة مباشره كما هو موضح بالمثال التالي ص 285SELECT TITLE, AUTHER ,(DAY,MOUTH , YEAR )AS DATE , SET (KEY WORRD ) AS KEY WORD – LIST FOM FLAT –DOCGROUB BY TITLE , AUTHER , DATE.الاقترانات FUNCTIONSهو عبارة عن بيئة يتم في داخلها مجموعه من العمليات بحيث له شرطين الشرط الأول يدخل إليه عدد من القيم ويخرج منه قيمة واحدة فقط ولإنشاء أي اقتران معين بالامكان استخدام صيغه CREADE FUNCTION والموضحه بالمثال في ص 286 CRAET FUNCTION AUTHOR – COUNT ( ONE – DOC DOCUMENT ) RETURNS INTEGER AS SELECT COUNT ( AUTHOR – LIST )FROM ONE – DOCانشاء CREATEاقتران FUNCTIONاسم الاقتران AUTHOR – COUNTالقيمة المراد إدخالها ONE – DOC DOCUMENT استرجاع RETURNESرقمي INTEGERالاستعلام يعطي قيمة واحده وهي عدد AUTHOR – LISTإضافة قيم داخل القيم والعناصر المعقدة CREATION OF COMPLEX VALUES & OBJECTSبالامكان استخدام جملة INSERT السابقة مع أنواع البيانات المعقدة كما هو موضح بالشكل التاليINSERT INTO DOCVALUES (" SALES PLAN ", SET ( " SMITH "," JONES "), ( 1,"APRIL", 89 ), SET (" PROFIT ", "STRATEGY")) ;تستخدم الأقواس بشكل عام لتحديد بداية الاضافه ونهايتها علامات التنصيص فقط في حاله الأسماء والنصوص وأسماء الأشهر وأيضا مجموعه الأسماء التي تنتمي الى نوع واحد يجب وضعها ضمن قوسين وضع جملة SET لان العناصر التي تمثل هذه القيم هي من نوع القيم المعقدة النظام العلائقي RELATUION SESTEM من مميزاته أنواع بسيطة للبيانات _ قوة في اللغة _ قوة في الحماية PRESISTENT PROGRAMMING LANGUAGE BASED ( OODPS )من مميزاتها أنواع بيانات معقدة _ تعمل فقط مع لغات البرمجة _ اداء أعلى نظام العناصر المرتبطة مميزاتها OBJECT RELATIONAL SESYEM أنواع بيانات معقدة _ قوة في لغة الاستعلامات _ اداء وحماية أعلى ملاحظة / النقاط الثلاث السابقة هي عبارة عن أنواع قواعد البيانات الذواكر وتركيب الملفات STORAGE & FILE STRUCTUREفي معظم أنظمة الحاسبات يجب وجود ذاكرة خاصة للبيانات وهي تعتمد على عملية تسريع الوصول للبيانات وتوجد لها عدة أنواع CHACHوهي عبارة عن ذاكرة سريعة ولها الأغلبية في التخزين وهي صغيرة جدا وتدار من قبل نظام التشغيل ولن نهتم بها باستخدام إدارة قاعدة البيانات. MAIN MEMORYلها الجزء المتوسط في الاستخدام وتحتوي على العديد من الميجا بايت من البيانات وهي صغيرة جدا وغالية الثمن ونفقد البيانات في داخلها في حال إطفاء الجهاز او لحظة حصول فشل في النظام FLASH MEMORY وتعرف باسم أخر وهو ELECTRICALY ERASEBLE PROGRAMMABLE READ – ONLY MEMORY ( EEPROM ) تختلف عن MAIN MEMORY حيث تتم القراءة منها في اقل من 100 نانو/ ثانية وهي أسرع في القراءة من MAIN MEMORY يتم الكتابة داخل الفلاش من ( 2 – 10 ) مايكرو / ثانية ولكن لا يمكن التعديل عليها مباشرة وللكتابة عليها يجب مسح ما هو موجود مرة واحدة ثم الكتابة مرة أخرى اما من ناحية التخزين فهي لا تخزن كثير وهي تخزن الى ما يقارب من ( 5 – 10 ) ميجا بايت MAGNATIC _ DISK STORAGEهذا النوع من الذواكر هو الرئيسي في العمر الطويل وهو فعليا يستخدم لتخزين قواعد البيانات بشكل دقيق لحظة استخدامه للبيانات يقوم بتحويل هذه البيانات من القرص الى MAIN MEMORY لكن يتم الوصول للبيانات بعد عملية الإتمام بشكل سريع وهذه العملية تدعى DIRECT – ACCESS وهي لا تشبه أبدا في عملية التخزين لنظام الوصول المتسلسل وهي تعتمد على نظام الوصول المباشر OPTICAL STORAGE وهي تدعى COMPACT _ DISK READ ONLY MEMORY ( CD-ROM ) ومميزاته ان هذه الذاكرة لا يمكن الكتابة عليها أي للقراءة فقط وبامكانها ان تنقل البيانات وتحملها عن طريق إدخال القرص وسحبه من قارئ الأقراص ويوجد نوع آخر تم إصداره لهذه الذاكرة يسمى ( WORM ) والتي تعني WRITE – ONCE, READ – MANY وهذا النوع يقوم بعملية الكتابة مرة واحده والقراءة عدة مرات معظم أنواع OPTICAL STORAGE لها ميزة قابلية تحميل بياناتها أو حملها خارج محرك الأقراص وكل هذه الأنواع تحتاج إلى محركات تشغيل لذلك ظهر ما يدعى JUKE BOX وهو عبارة عن نظام يقوم باحتوائه على مجموعة من الأقراص ومحركاتها والتي تقوم بتحميل البيانات داخل احد هذه الأقراص بشكل تلقائي والذي يعتمد في عملية التحريك على الاذرعة الذكية. TAPE STORAGEوهذا النوع من الذواكر يستخدم بشكل كبير في الحفظ التلقائي BACK UP ولعمليات الأرشفة ويدعى احد انواعة MAGNATIC TAPE وهو ارخص من الأقراص السابقة ولكنه يعاني من مشاكل الوصول في البيانات إليه فهو بطيء في عملية الوصول في البيانات لأنه يستخدم نظام الوصول بشكل متسلسل أي يعتمد على نظام SEQUENIAL ACCESS يحتوي على كثافة عالية تقدر خمسة جيجا بايت وله القدرة على التحريك من مكان الى آخر يوجد أيضا له نوع يسمى TAPE JUKE BOX يستخدم لحفظ البيانات الكبيرة والمجمعة عن بعد مثل الستلايت والتي تقدر 12 تيرابايت انظر الكتاب ص 295السرعة والتكلفة MAINE MEMORY CACHE تسمى ذاكرة رئيسية PRIMARY STORAGEMAGNATIC DISK تسمى ذاكرة ثانوية SECUNDRY STORAGE OR ONLINE STORAGEMAGNATIC TAPE & JUK BOX تسمى TERTIARY STORAGE OR OFF LINE STORAGE MAGNATIC DISKSيعتبر من الوحدات الثانوية في التخزين وان كثافة التخزين كمعدل للقرص الواحد من ( 10 ميجا – 10 جيجا )التقسيم الفيزيائي للقرص PHYSICAL CHARACTERISTICS OF DISKS يتكون القرص من مجموعة من PLATTER وهو عبارة عن أشكال دائرية مسطحة ولها سطحين تم تغطيتهما بمادة مغناطيسية يتم تخزين البيانات على هذه الأسطح يتم صناعة PLATTER من معدن لميع او زجاج ويغطى بعد ذلك بشكل كامل للسطحين بمادة مغناطيسية قابلة للتخزين واكبر مثال على ذلك هو HARD DISK, FLOPY DISK ولكن الأخير يتم صناعية من مواد مرنه بشكل اكبر لحظة استخدام القرص يوجد محرك صغير يقوم بعملية إدارة دوائر الأقراص وتحدد سرعة هذا المحرك بما يعادل تقريبا ( 60- 90 – 120 ) دورة لكل جزء من الثانية ويوجد هناك رأسين احدهم للقراءة والأخر للكتابة تكون على سطوح PLATTER يتم عادة تقسيم القرص الى عدة أجزاء تدعى TRACK التي يتم تقسيمها أيضا الى أجزاء اصغر وتسمى SECTOR وهو اصغر وحدة للمعلومات حيث يتم القراءة منها والكتابة عليها ويكون حجم SECTOR متراوح ما بين ( 32 – 4096 ) بايت معتمدا على نوع القرص واغلب الأنواع تعتمد على ( 512 ) بايت ويوجد ما يقارب من ( 4 – 32 ) SECTOR داخل TRACK الواحد ويوجد أيضا ما يقارب ( 20 – 1500 ) TRACK على سطح القرص كل جهة من PLATTER لها راس قراءة وراس كتابة والذي يتم تحريكه الى مختلف أجزاء القرص على حسب البيانات في كل TRACK ويوجد ذراع تخص القرص لكي تساعد على عملية القراءة والكتابة على القرص كل TRACK مجتمعة على القرص تدعى CYLINDER عرض القرص او مداه من ( 1.8- 14 ) بوصه والمتعارف عليه ( 5.25 – 3.50 ) بوصه.DISK CONTROLLER INTERFACEوهو عبارة عن قطعة تقوم بالتحكم بين النظام والهاردوير والتي تخص الأقراص ويقوم باستخدام الأوامر صاحبة المستوى الأعلى للقراءة والكتابة على البيانات مجموع عدد القراءة والكتابة CHECK SUMS وهو عبارة عن جزء يقوم بفحص الأجزاء والمكتوبة عليها وفي حال القراءة منها ويقوم مرة أخرى بفحص الأجزاء المكتوب فيها REMAPPING OF BAD وهو عبارة عن متحكم يقوم بعملية فحص الأجزاء التالفة وإنشاء التهيئة والتعويض عنها بموقع اخر يخص فقط الأجزاء التالفة ثم يتم حمل البيانات منها الى موقع جديد.SCUZZY {SCSI } ( SMAL COMPUTER SYSTEM INTERCONNECT )وهو يستخدم بشكل كبير لعملية ربط واتصال بين الأقراص داخل الكمبيوتر العادي مع WORKSTATION على السيرفر ومع عملية الاتصال يجب إضافة مجموعة نواقل تخص عملية الاتصال تكون هذه النواقل أسرع وأعلى تكلفةكيفية القراءة والكتابةيبقى راس الكتابة والقراءة قريب من سطح القرص ليزيد من كثافة التسجيل والقراءة وغالبا ما يكون الرأس عائم او طافي على السطح وتحته ضغط هواء لمنع ملامسته للقرص في بعض الحالات الرأس يلامس سطح القرص مما يسبب في تدمير القرص ولذلك تم وضع راس قراءة على كل قطاع على السطح لتسهيل العملية ولزيادة الكفاءة وللتبديل بين كل قطاع بسهولة ومرونة مما جعل سعره غالي الثمن لزيادة عدد الرؤوس فيه. ملاحظة / بعض الأقراص لها أكثر من ذراع للقراءة لأكثر من قطاع في المرة الواحدة وهي غالية الثمنوحدة قياس القرص PERFORMANCE MEASURES DISKS تعتمد نوعية القرص على عدة عوامل وهي الكثافة التخزينية وقت الوصول للبيانات معدل نقل البيانات قدرة التحمل RELIABILTYوقت الوصول هو وقت إصدار الأوامر للقراءة والكتابة حتى يبدأ وقت نقل البيانات.في البداية يتم تحريك الذراع لتحديد القطاع الصحيح وهذا الوقت يسمى وقت البحث SEEK TIME بالاضافة الى وقت تحريك الذراع ووقت تحريك الذراع غالبا ما يأخذ من ( 20 – 30 ) مل / ثانية تنظيم الوصول الى القرص OPIMIZATION OF DISK – BLOCK ACCESS طلب الإدخال والإخراج يدار من قبل ملفات النظام والذاكرة المساعدة عند كل طلب يؤشر عنوان على القرص على شرط ان يكون هذا العنوان موجود على القرص أصلا ويتكون القرص على عدد من القطاعات المتصلة وكل قطاع يكون حجمة ( 512 )نظام الجداول SCHEDULING اذا كانت مجموعة القطاعات بحاجة لنقلها من القرص الى MAIN MEMORY فنحن بحاجة الى تخزين وقت الوصول الى القطاعات عن طريق الرأس لتخفيف حركة نقل الذراع من موقع الى أخر ويقوم نظام الجداول بإعطاء خوارزمية ( الطريقة المنظمة ) للوصول الى الطلب على أي قطاع وذلك لزيادة عدد الوصول للعمليات المعالجة وهذه الخوارزمية تشبه خوارزمية المصاعد ELEVATOR ALGORITHM تنظيم الملفات FILE ORGANIZITONللتقليل من عملية الوصول كل مرة الى القطاع نستطيع تنظيم الملفات بشكل معين بحيث تبقى الملفات قريبة من بعضها البعض ونتوقع الملفات المراد استخدامها مثال / في حال توقع الوصول الى ملف معين نقوم بترتيب الملفات المرتبطة مع هذا الملف بشكل متسلسل في نظام التشغيل العادي واليونكس يقوم المستخدم بإخفاء منظم الملفات وتتم العملية بشكل داخلي في حال استخدام المستخدم برنامج DISK DEGRAGMENTS وهو يقوم بعملية تنظيم الملفات وتسهيل الوصول إليها وأيضا من طرق تقليص الوصول الى القطاعات هي عمل نسخ احتياطية من البيانات مرتبة وهناك لا تحتاج الى عملية DISK DEFRAGMENTS ذاكرة الكتابة الغير متطايرة NON VOLATILE WRITE BUFFERS وفي هذه الذاكرة يتم استخدام ذاكرة الوصول العشوائي ( RAM ) التي لا تفقد بياناتها الا في حالة انقطاع التيار او بتعطيلها باستخدام BATTERY BACKED UP ويوجد أيضا بعض الملفات التي يتم تخزينها داخل الجهاز بشكل تلقائي وهذه البيانات تخزن في ملفات خاصة تصدر هذه الملفات نتيجة للاتي تقارير عن عمليات فحص الجهاز SCAN DISK تقرير عن عمليات DISK DEFEAGMENT تقارير تخص النظام وكل هذه الملفات تسمى LOG FILE RAIDيتم استخدام عدد قليل من الأقراص الغالية والكبيرة الحجم للتخزين لذلك نتج عن هذه العملية ظهور أقراص معدله تستخدم بعدد كبير منها لتحسين معدل القراءة والكتابة وتوجد طريقتين لعرض بيانات الأقراص وإدارتها 1/بشكل متوازي 2/بشكل متتالي مصفوفة مكرر RAID هو اختصارDISIC REDUUDNT ARRAYSOF INEXPENSIVE تستخدم لعرض البيانات بشكل اقوي وبقدره اعلي على نقل البيانات داخليا وخارجيا وهو التكتيك الذي يقوم بتنظيم الأقراص لإعطاء نتائج معينه وتوجد له ستة مستويات في السابق كان RAID مكون من قطع صغيره من الأقراص التي تم استخدامها وعرضها بتكلفه وعرض كبير اما حاليا فان الأقراص كبيرة الحجم تستخدم بشكل كبير اما RAID هنا يستخدم لقدره عالية ونقل البيانات بشكل عالي وقيمه اقتصاديه مستوياته1/ RAID LEVEL ( 0 ) NON REDUNDANT STRIPINGوهو تقسيم الأقراص الى مصفوفات بدون REDUNDANCY ومعناها تساوي الأقراص مثل MIRTORING ORPARITY BITS2/ RAID LEVEL ( 1 ) MIRRORING DISKSيستخدم لنظام MIRRORING الذي يستخدم لتنظيم أربعة أقراص وعمل مرآه لهذه الأقراص لتصبح ثمانية3/RAID LEVEL ( 2 ) MEMORY STYLE ERROR CORRECTING CODEويتم الاختصار إليه ECC ERROR CORREDING CODE وهذا المستوى يقوم بإضافة او إيجاد بت جديدة فقط تستخدم لمعالجة الأخطاء وتصحيحها في حال فشل احد الأقراص4/ RAID LEVEL ( 3 ) BIT INTERLEAVED PARITYتنظيم البيانات معترضة التساوي يتم تحسين المستوى الثاني الى هذا المستوى الجديد ليتم من خلاله تحكم اكبر وحماية على كل قطاع ثم قراءته من القرص بشكل صحيح وفي هذا ال 2 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
FAI2004SAL US بتاريخ: 3 يناير 2005 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 3 يناير 2005 by teacher Diaaaaaaaaaa اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
sameh_oracle بتاريخ: 12 يناير 2005 تقديم بلاغ مشاركة بتاريخ: 12 يناير 2005 شكرا لك اخى على مجهودك الجبار وشرح المتميزوجزاك الله كل خير اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ali6saber بتاريخ: 12 يناير 2005 تقديم بلاغ مشاركة بتاريخ: 12 يناير 2005 الاخ الفاضلمشكور جدا على شرح خطوات تحليل النظام وتنفيذه والى الامام دوماعلي صابر[email protected] اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
tmiy220 بتاريخ: 12 يونيو 2006 تقديم بلاغ مشاركة بتاريخ: 12 يونيو 2006 مشكورا على هذا الموضوع اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Ahmed Sayed بتاريخ: 3 أغسطس 2006 تقديم بلاغ مشاركة بتاريخ: 3 أغسطس 2006 السلام عليكم ... جزاك الله خيرسبحان الله وبحمدة سبحان الله العظيملا إله إلا الله ؛ محمد رســــول اللهسبحان الله و الحمد لله و لا إله إلا الله و الله اكبر و لا حول و لا قوة إلا بالله اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
lovezoro بتاريخ: 6 فبراير 2007 تقديم بلاغ مشاركة بتاريخ: 6 فبراير 2007 thanksssssssssss اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amgad بتاريخ: 22 فبراير 2007 تقديم بلاغ مشاركة بتاريخ: 22 فبراير 2007 الأخ / FAI2004SAL USشكرا لك .. جزاك الله خيرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
-=|mOOdY|=- بتاريخ: 22 فبراير 2007 تقديم بلاغ مشاركة بتاريخ: 22 فبراير 2007 مجهود جبارمشكور اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
بطة مصرية بتاريخ: 2 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 2 مارس 2007 جزاااااااااااااااااااااااااك الله خيرااااااااااااااااااااا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mdsalah بتاريخ: 2 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 2 مارس 2007 جزاك الله خيرا على هذا الانجاز ومزيد من التقدم موضوع ممتاز والى الامام اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
DREAMMAN بتاريخ: 4 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 4 مارس 2007 جزاك الله خيرا على هذا الانجاز ومزيد من التقدم اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
elnobey بتاريخ: 18 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 18 مارس 2007 فعلااااااااااااااااا موضوع جميل وياريت لو فى اى كتاب بالعربى فى للغه umlولك جزيل الشكر اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
memonew بتاريخ: 23 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 23 مارس 2007 جزاك الله خيرا وجعل جهدك في ميزان حسناتكوهل تحليل النظام على الويب يختلف عن تحليل النظام العادي client - serverجزاك الله خيرا وجعل جهدك في ميزان حسناتكوهل تحليل النظام على الويب يختلف عن تحليل النظام العادي client - server اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
noisy_cat بتاريخ: 23 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 23 مارس 2007 السلام عليكماخي الكريم جزاك الله خير على مجهودك الرائعو لدي نفس استفسار الاخ memonewهل يوجد اختلاف في تحليل نظام لمؤسسه او تحليل ويب سايت و شكرا لك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
memonew بتاريخ: 24 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 24 مارس 2007 مازلنا في انتظار رد من احد اخوتي او اخواتي عن هل هناك فرق بين تحليل نظام Client-serverونظامWeb based applicationبارك الله لكم في جهودكموجعلها في ميزان حسناتكم اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
abojana بتاريخ: 25 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 25 مارس 2007 جزاك الله خير على كل هذا المجهود الرائع ماشاء الله لي سؤال عايز اتقن تحليل النظم بالضبط وكل ما يتعلق بها فما نصائحكم لي اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amgad بتاريخ: 25 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 25 مارس 2007 الأخ / memonewnoisy_cat وهل تحليل النظام على الويب يختلف عن تحليل النظام العادي للاجابة على السؤال يجب ان نفرق بين خصائص كل من - Windows application- Web application من حيث - كيفية التعامل مع البيانات . - سرعة استرجاع المعلومات . - خصائص أو امكانيات تتوفر فى windows app. وغيرموصى أو غير مسموح باستخدامها فى ال web appp - طبيعة النظام - حجم البيانات المتداولة .تأثير الاختلاف .. سيكون اكثر على تصميم جداول النظام وتصميم الشاشات وايضا التقارير والاستعلامات والتأثير على التحليل والعلاقات بين الجداول .. كمفاهيم للنظام ستكون اقل هذا رد مبدئي .. لحين ذكر الفرق بين البيئتين وخصائص كل منهما بشكل عام ... للموضوع تكمله .. ان شاء اللهالأخ / abojanaمرحبا بك معنا بالمنتدى توجد مشاركات عديده بقسم تحليل النظم .. يمكن الاطلاع عليها واليك مشاركة الاخ / اسامه فى سلسلة دروس عن تطوير وبناء نظم المعلومات من هنا دورة قاعدة بيانات للأخ / سامي الفتني ...... من هنا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
amino1 بتاريخ: 30 أبريل 2007 تقديم بلاغ مشاركة بتاريخ: 30 أبريل 2007 جزاك الله خير وما قصرت اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
المجـاهد بتاريخ: 20 أغسطس 2007 تقديم بلاغ مشاركة بتاريخ: 20 أغسطس 2007 جزاك الله خيــــــــر الجزاء أخى الكريم اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
يحيى العيفري بتاريخ: 6 ديسمبر 2014 تقديم بلاغ مشاركة بتاريخ: 6 ديسمبر 2014 تحليل النظم ANALYSIS لتحديد المشاكل التي تواجهنا تقسيم خطوات العمل إلى مراحل تحديد تكلفة المشروع والفوائد تحديد القواعد والصلاحيات وصف المخرجات الرئيسيات تصميم DESIGN رسم المخططات الانسيابية لعمل المشروع تنسيق أشكال التقارير تطوير شكل عرض البيانات أي داخل نموذج كتابة وصف للبرنامج بشكل عام تعريف احتياجات المشروع من HW / SW مرحلة التطوير والتنفيذ IMPLEMENITAION كتابة وفحص ومتابعة النص البرمجي CODE في حال إنشاء مشروع يعتمد على نظام قديم يتم في هذه المرحلة تقل البيانات وتحويلها من نظامه السابق إلى الجديد تدريب مستخدمي المشروع عليه أكمال مستند المساعدة الخاص بالمشروع التأكد عمل المشروع بشكل صحيح وتقسيمه من حيث الكفاءة من الأداء والوقت الصيانة MAINTENANCE تصحيح الأخطاء تعديل النظام في حالة الفشل تدريب الموظفين على كيفية الصيانة البسيطة تحديد جدول صيانة دوري للمشروع DATA BASS MANGAMENT SYSTEM (DBMS) هي عبارة عن مجموعة من البيانات النشطة والغير نشطة التي يتم العمل فيها ضمن مجموعة من البرامج ( مدير قاعدة البيانات ) واهم أهدافه هي القدرة على تحليل وإدارة كم كبير من المعلومات في وقت مميز وجهد اقل مثال / النظام البنكي والذي يتكون من برنامج مخصص للقروض والحسابات يكون هذا البرنامج مسئول عن إضافة حساب جديد حذف حساب قديم التعديل على الحساب موجود. وأيضا للبرنامج مسئوليات أخرى هي التعامل مع ميزانيات البنك بشكل سريع وبوقت مميز وبجهد اقل ويوجد مسئولية إضافية شهرية وهي إعطاء تقارير كل شهر من حسابات الموظفين والعملاء يوجد مجموعة من العناصر الأساسية التي يجب التعامل معها 1/إنهاء مرحلة التصميم DATA REDUNDANCY AND NCONSISTENCY منذ بدء تكوين النظام فانه يختلف في شكل التنسيق وفي شكل تكوين البيانات بحيث يتم إجراء النظام بعدة لغت مثل Oracle – Visual Basic – Pascal – C++ - Power Builder – C - Access أو أي لغة أخرى يمكن لبعض البيانات داخل نظام البنك أن تتكرر مثل العنوان او الهاتف داخل ملف العميل يوجد أيضا داخل ملف النظام بعض البيانات التي تحتوي في الملف الرئيسي في ملف بيانات العميل في هذه الحالة نحتاج إلى مساحة تخزينية اكبر وأيضا في حالة تعديل على رقم هاتف العميل في بيانات حسابه فانه من المحتمل أن لا يتغير رقم العميل في ملفه الأصلي لذلك يجب إثناء مرحلة تكوين الجداول للنظام البنكي أن يتبع نظام يقوم بمنع التكرار ونظام يقوم بتوزيع البيانات من نقطة واحده في أكثر من جهة ملاحظة / تكرار البيانات يؤدي إلى الفقدانRedundancy القدرة على التعديل Inconsistency 2/صعوبة الوصول للبيانات DIFFICULTY IN ACCESS DATA مثل عملية البحث عن عميل داخل البنك فقط يحمل صندوق بريده وليس لديه أي فكرة عن رقم سجله أو هاتفه أو رقم بطاقته فيجب عليه في هذه الحالة أن يعتمد النظام المقترح في البحث على أدق التفاصيل مثل الراتب والعنوان وصندوق البريد والشارع ورقم الهوية ورقم الحساب للبنك والاسم الأول والاسم الثاني والأخير 3/ الشروط المتكاملة INTEGRETY CONSTRATION هذه النقطة تراعي إطلاق شروط معينة على قاعدة البيانات وبالأخص على الحقول الموجودة داخل قاعدة البيانات مثل في حالة إدخال رقم موظف معين يجب ان لا يقل راتبه عن 1500 ريال إضافة موظف جديد 4/ مرجعية البيانات DATA INSOLATION يجب ان يعتمد النظام على عملية البيانات من جميع الملفات والاعتماد على مرجعية الملفات القديمة والحديثة 5/ تحديد مشاكل الحماية SECURITY PROBLEM يجب تحديد مسؤليات كل مستخدم أي من له القدرة على الدخول على الملفات او من له القدرة على الإطلاع على الحسابات والتعديل فيها 6/ معاينة البيانات VIEW OF DATA وهي عبارة عن مجموعة من ملفات البيانات مرتبطة مع بعضها البعض ضمن بيئة واحده يتم السماح في داخلها لعملية الإضافة او التعديل او الحذف طبقات البيانات وأشكالها DATA ABSTRACTION لعملية استرجاع البيانات بشكل فعال يجب العلم بأنه يوجد ثلاث مستويات رئيسية لتركيب البيانات 1/ المستوى الفيزيائي PHYSICAL LEVEL يتحدث هذا المستوى عن كيفية تخزين البيانات بشكل فعلي وهذا أدنى مستوى في المستويات الثلاث 2/ المستوى المنطقي LOGICAL LEVEL ويتحدث هذا المستوى عن ما هي طبيعة البيانات المخزنة أي نوعها ويتحدث أيضا عن مجموعة العلاقات التي تربط بين البيانات 3/ المستوى العرض VIEW LEVEL وهو أعلى مستوى من مستويات البيانات وهو شبيه بنظام المستوى المنطقي ولكنه يقوم بعملية وصف جزء فقط من قاعدة البيانات المستخدمة VIEW LEVEL VIEW 1 VIEW 2 VIEW 3 …….. VIEW N LOGICAL LEVEL PHYSICAL LEVEL مثال CUSTOMER سجل C NAME ID STREETE CITY BORN TEXT NO TEXT TEXT NO المستوى الفيزيائي يحتوي على شكل جدول المستوى المنطقي يحتوي على بيانات جدول البيئة وقاعدة البيانات الرئيسية INSTANCE & SCHEMA مكان العمليات على القاعدة INSTANCE في حالة تغير على قاعدة البيانات من حيث إضافة سجل او تعديل على سجل او حذف سجل فان مجموع هذه العمليات التي تم تخزينها على قاعدة البيانات بشكل جزئي ومستقل تدعى INSTANCE البيئة SCHEMA هي مجموعة العناصر الموجودة داخلة قاعدة البيانات مثلا الجدول TABLE العرض VIEW نظام الفهرسة INDEX الرديف والبديل SYNONUM نظام الأرقام التلقائية SEQNENCES استقلالية البيانات DATA INDEPENDENCE هي التعديل على جزء من SCHEMA بحيث انه اذا تم التعديل على مستوى واحد بدون ان يتم التأثير على المستويات الأخرى داخل نفس SCHEMA فأنها تعتبر استقلالية ويوجد نوعين من استقلالية البيانات 1/ استقلالية البيانات فيزيائي وهي القدرة على التركيب الفيزيائي للبرنامج عن طريق التأثير على المستوى الفيزيائي وهي ضرورية لتحسين اداء استقلالية البيانات 2/ استقلالية البيانات منطقي وهي عبارة عن التغيير على المستوى المنطقي للبرنامج موديلات البيانات DATA MODEL 1/ OBJECT BASED LOGICAL MODEL وهو عبارة عن موديل العنصر الأساسي المنطق يستخدم لوصف البيانات ويتم تعريفه على مستويين الفيزيائي والمنطقي ويوجد مجموعة من الموديلات المتعارف عليها في قواعد البيانات 2/ ENTITY RELATIONSHIP MODEL ENTITY هي التي تمثل عناصر العالم الحقيقي مثل الموظفين والطلاب والمدرسين RELASTION SHIP وهي التي تمثل العلاقة بين هذه العناصر 3/ OBJECY ORIENTED MODEL وهي العلاقة بين المجموعات E-R وهو اسم آخر للموديل وتحتوي على مجموعة عناصر برمجية خاصة تدعى METHED ( خاصية ) والمجموعة من هذه METHED تسمى CLASSES 4/ RECORD BASED LOGECAL MODEL يستخدم هذا الموديل لزيادة إنتاجية قاعدة البيانات وفعالياتها عن طريق التعامل معها بشكل سجل سجل 5/ RELATIONAL & NETWORKING RELATIONAL وهي عبارة عن مجموعة من الجداول يتم العرض بداخلها ويتم تحديد العلاقة بينهما NETWORKING في لغة اوراكل تمثل بواسطة مجموعة من السجلات مرتبطة مع بعضها البعض ومحددة باسم مكان الارتباط اما في لغات أخرى يجب ان تمثل بواسطة LINK 6/ HIERARCHAL MODEL هو نفس نظام الشبكة او العلاقات ولكن يتم تنفيذ البيانات داخل النظام على شكل شجرة مرسومة تستخدم لتوضيح البيانات بشكل اكبر انظر الرسم البياني في الدفتر ENTITY = RECTANGLE المربع ATTRIBUTES = ELLIPSES بيضاوي RELATIONSHIPS = DIMONDS معين (لا ترتبط إلا مع ENTITY) LINKS = LINE الخطوط لغة قواعد البيانات DATA BASS LANGUAGE 1) لغة معالجة البيانات DATA MANUPLATION LANGUAGE ( DML ) إضافة البيانات على جدول INSERT حذف البيانات على جدول DELETE تعديل البيانات على جدول UBDATE استعلام البيانات على جدول SELECT ملاحظة / لغة معالجة البيانات يتم تنفيذها بإحدى الطريقتين التاليتين 1/ النظام الإجرائي PROCEDURAL DML وهو نظام يتطلب من المستخدم وصف ما هي طبيعة البيانات التي يحتاجها المستخدم وكيفية الحصول عليها 2/ النظام لا إجرائي NOT PROCEDURAL DML وهو نظاما يتطلب من المستخدم ما هي طبيعة البيانات التي يحتاجها المستخدم ولا يهتم بكيفية الحصول عليها 2) لغة تعريف وتركيب البيانات DATA DEFINATION LANGUAGE ( DDL ) * تحديد المساحة التخزينية المستخدمة * انشاء الجداول باستخدام CREATE TABLE * إضافة عامود على جدول ADD * حذف جدول او عامود DROP * كل ما يتعلق بتركيب قاعدة البيانات ولبس له صلة بالبيانات 3/ لغة التحكم سماحيات البيانات DATA CONTROL LANGUAGE ( DCL ) إعطاء الصلاحيات على قاعدة البيانات للمستخدم GRANT سحب الصلاحيات عن المستخدم على قاعدة البيانات عن طريق أمر REVOKE قاموس البيانات DATA DICTIONORY هو عبارة عن ملف يحتوي في داخله على مجموعة من البيانات تخص قاعدة البيانات من حيث التركيب والإنشاء والعمليات التي تمت عليها والحركات الضمنية والصريحة وهذا الملف يعتبر كملف استشاري يتم الرجوع إليه في حال الحاجة الى حالة البيانات او معلومات عنها ويكون معرفا من قبل النظام نفسه إدارة العمليات والأحداث TRNSACTION MANGAMENT في حال صدور مجموعة من العمليات على قاعدة البيانات وبالأخص على البيانات DML وليس على التركيب DDL مثل الحدث DELETE والإضافة INSERT والتعديل UBDATE يجب إصدار عملية الحفظ COMMIT والتراجع ROLL BACK او ما يسمى بالنقطة المرجعية SAVE POINT لانه قد تم انشاء حدث معين DML فيجب استخدام احد العمليات السابقة ( COMMIT – ROLL BACK – SAVE POINT ) تمثيل نظام إدارة العمليات والأحداث على المخطط الزمني * يتراجع الى أخر نقطة_____ COMMIT ROLL BACK * يتراجع الى أخر نقطة مرجعية SAVE POINT INSERT UBDATE INSERT DELETE إدارة المساحة التخزينية STORAGE MANGAMENT قاعدة البيانات تحتاج الى مساحة تخزينية كبيرة بحيث يتم تحويل البيانات المأخوذة من الجداول الى قاعدة بيانات والتي بدورها تقوم بعملية توزيعها على القرص الصلب وهي عبارة عن برنامج يقوم بتزويد الواجهة التطبيقية المستوى الأدنى للبيانات المخزنة على قاعدة البيانات وبين البرنامج والاستعلامات التي تتم على البرنامج STORGE MANAGER هو عبارة عن مسئول يقوم بعملية التأكد من عمليات إرسال البيانات الى ما يدعى FILE MANGER والذي بدوره يقوم بتوزيع البيانات على القرص الصلب مدير قاعدة البيانات DATA BASS ADMINISTRATOR أهم شيء لاستخدام DATA BASS MANGAMENT SYSTEM ( DBMS ) هو القيام باستخدام او السيطرة او التحكم المركزي بين البيانات DATA والتطبيقات APPLECATION والشخص المسئول عن عملية التحكم هو ADMINISTRATOR ( DBA ) مهام DBA 1/ تعريف تركيب قاعدة البيانات SCHEMA DEFINATION يقوم DBA ببناء قاعدة بيانات عن طريق استخدام DDL التي تقوم بإنشاء الجداول والعناصر الخاصة بعناصر البيانات والتي يتم تخزينها بشكل نهائي داخل ما يسمى DATA DICTIONORY 2/ STORAGE STRUCTURE & ACCESS METHED DEFINATION يتحكم مدير قاعدة البيانات بالمساحة التخزينية بقاعدة البيانات وخصائص هذه المساحة التخزينية 3/ SCHEMA & PHYSICAL ORGANIZATION MODIFICATION يتحكم DBA بما يسمى DATA DICTIONARY أي قاموس البيانات والتي يتم تعريف كل العناصر داخل هذا القاموس 4/ GRANTING OF AUTHORIZATION FOR DATA ACCESS هي عملية التحكم بإعطاء السماحيات والصلاحيات للمستخدم وبالعكس 5/INTEGRITY CONSTRAINAL SPECIFICATION يتحكم DBA بوصف المحددات المرجعية بين النوافذ والجداول مثل ارتباط العلاقات وتحديد مصدرها او هدفها أنواع مستخدمي قواعد البيانات 1/ مبرمج التطبيقات APPLECATION PROGRAMMER مبرمج التطبيقات وهو الشخص يجب ان يكون على معرفة تامة بإحدى لغات البرمجة التي تتعامل مع قواعد البيانات مثل ( ORACLE- C – C++ - V.C – VISUAL BASIC – POWER BUILDER) 2/ SOPHISTICATED USERS هو الشخص الذي يتعامل مع النظام بدون معرفة مسبقة بدون كتابة البرامج فقط كمستعلم عن البيانات 3/ SPECIALIZED USERS هو الشخص او المستخدم الذي يكون متخصص في ملحقات غير البرنامج الرئيسي مثل الرسامات والصوت والصور والفيديو...... الخ 4/ مشغل الأجهزة والأنظمة VAIVA USERS هو المستخدم الذي يتعامل مع النظام مباشرة ويتحكم في نقل البيانات والتخزين والعرض معالجات الاستعلام يوجد أربع معالجات تخص الاستعلام 1/ DML COMPILER وهي المرحلة التي قبل مرحلة التنفيذ وهو المترجم الذي يترجم جمل DML لكي يتعامل معها في قاعدة البيانات 2/ EMBEDDED DML COMPILER هي العملية التي تتم مع العملية السابقة DML COMPILER لكي يتم تحويل البيانات المطلوبة وبعد تحويلهم يتم مناداتهم من داخل قاعدة البيانات 3/DDL INTERPRITER وهو عبارة عن محلل لجمل لغة تركيب قاعدة البيانات ويسجلها كمجموعات في جدول معين وهذا الجدول هو قاموس البيانات DATA DECTIONARY 4/ QURY EVALUTION ENGIN وهو مقيم الاستعلامات الذي ينفذ التعليمات المعطاة عن طريق DML STORG MANAGER 1/ AUTHORIZATION AND INTEGRITY MANAGER يقوم بفحص التكاملية والصلاحية للمستخدم أي هل يحق له الوصول للبيانات او لا يحق 2/ TRANSACTION MANAGER تقوم هذه الإدارة بفحص الأحداث التي تم وضعها على قاعدة البيانات والتي تم تنفيذها من ناحية التخزين او التراجع او النقط المرجعية ROLL BACK – SAVE POINT – COMMIT 3/ FILE MANAGER تقوم هذه الإدارة بمتابعه وإدارة العمليات والمواقع التخزينية على للملفات. 4/ BUFFER MANAGER هو مسؤل عن عمليات البحث عن البيانات من القرص الى MAIN MEMORY ويقرر اى البيانات مسموح لها ان تبقى في CACHE MEMORY DISK STORGE 1/ DATA FILES هو مكان تخزين البيانات فقط 2/ DATA DICTIONARY وهو المسئول عن جميع العمليات التي تتم على التركيب الخاص في قاعدة البيانات والموجودة على شكل جدول خاص بالقاعدة 3/ INDICES هي عملية يتم القيام بها لتسريع عمليات الوصول للبيانات أثناء الاستعلام او التعديل او الحذف 4/ STATISTICAL DATA وهي البيانات التي يتم التخزين تلقائي على قاعدة البيانات ملاحظة / المخطط في الكتاب ص 18 مهم جدا ENTITY - RELATIONSHIP MODEL يوجد ثلاثة أجزاء رئيسية لها ENTITY SETS RELATIONSHIP SETS ATTRIBUTES تتكون الخصائص من عدة أنواع ATTRIBUTES البسيطة والمعقدة SIMPLE & COMPOSITE مفردة او متعددة القيمة SINGLE – MULTIVALUED انظر الكتاب ص 26 قيمة غير معرفه NULL ATTRIBUTES مثال/ لنفرض ان بعض الموظفين في جدول الموظفين لا يعمل في دائرة معينة لذلك فان خاصية الدائرة لا تحتوي قيمة لهذا الموظف وبذلك تسمى NULL الخاصية المقادة من قبل قيمة معينة DERIVED ATTRIBUTES مثال / في جدول الموظفين نفرض وجود علاقة بين رقم دائرة الموظف مع رقم الدائرة في جدول الدوائر ID NAME DEP DEP JOB LOC 1 ALI 10 10 ACC MAKK 2 KHA 20 20 SELS MAD 3 MOH 10 30 TRAN RIY 4 NAS 30 40 MAN JED 5 AHM 40 50 WORK DAM عدم تكرار البيانات وخاصة النصوص والجدول التالي يفصل للجدول الأول RELATIONSHIP هي عبارة عن تعاون وارتباط بين أكثر من مجموعة ENTITY انشاء علاقة او ارتباط يكون لعدة احتمالات تعتمد على النظام الموضوع فهناك على سبيل المثال في نظام يخص الموظفين وهواتفهم عدة احتمالات للربط الاحتمال الأول هو ان يكون الموظف له تلفون واحد فقط الاحتمال الثاني هو كون الموظف يملك أكثر من تلفون وفي هذين الاحتمالين يحتمل ظهور مشكلة معينه مثل احتمال اشتراك عدة موظفين في هاتف فهنا نفس النظام يحدد نوع العلاقة بين الطرفين نظام العلاقات يجب ان يتم بمنع وقوع التالي 1/ تكرار البيانات 2/ تعديل البيانات بشكل غير صحيح ويتم مراعاة السابق عن طريق استخدام ما يسمى نظرية NORMALIZATION العلاقات الثنائية وتسمى BAINARY RELATIONSHIP وهي العلاقة التي تمثل على مستويين فقط اما العلاقة التي تمثل على ثلاثة ارتباطات تسمى TERNARY محددات أنواع الوصول الى العلاقة MAPPING CONSTRAIRTS يوجد أربع أنواع لارتباطات العلاقات ONE BY ONE ONE BY MANY MANY BY ONE MANY BY MANY انظر الكتاب ص 31-32 على الرسم التوضيحي لأنواع العلاقات المفاتيح KRYS المفتاح هو عنصر ضروري لوصف كيفية ارتباط ENTITY مع بعضها البعض بحيث يتم تعريف مفتاح في جدول معين ومفتاح أخر من نوع أخر في جدول أخر لإنشاء ارتباطات وعلاقات أنواع المفاتيح 1/ SUPER KEY وهو عبارة عن مجموعة من الخصائص او قيمة واحدة من الخصائص تستخدم لتعريف ENTITY على أنها مجموعة تحتوي في داخلها على نظام التكرار 2/ CANDIDATE KEY يستخدم كتصغير SUPER KEY بحيث يتعامل مع جزء واحد من الخصائص لذلك يسمى بهذا الاسم 3/ PRIMARY KEY وهو عبارة عن مفتاح قوي جدا يتم إنشاءه على ENTITY ليحقق خاصيتين ( عدم التكرار UNIQUE - وعدم وجود قيمة فارغة NOT NULL من الخصائص ويستخدم PK لربط ENTITY مع ENTITY أخرى لإنشاء العلاقة بينهما مخطط ارتباطات المجموعات E-R DIAGRAM المخطط المرتبط بعدة مجموعات يحتوي على سبعة إشكال أساسية يجب تواجدها لإتمام ونجاح المخطط 1/ المربع ( RECTANGLE ) الذي يمثل ENTITY 2/ الدوائر البيضاوية ELLIPSES وهي تمثل ATTRIBUTES 3/ المعين DIAMONDS وهي تمثل مجموعة العلاقات 4/ الخطوط LINES وهي تمثل LINK بين أكثر من ENTITY 5/ الدوائر البيضاوية المتداخلة DUBLE ELLIPSES وهي تمثل MULTIVALUED ATTRIBUTES والتي تمثل أكثر من قيمة الخصائص 6/ الشكل البيضاوي المتقطع DASHED ELLIPESE وهي تمثل القيمة المقادة DERIVED ATTRIBUTEA 7/ الخطوط المتداخلة DUBLE LINES وهي تمثل مجموع الارتباطات بين ENTITY داخل RELATIONSHIP ملاحظة / لتحديد نوع العلاقة على الرسم او المخطط يجب تحديد اتجاه السهم اما او السهم العادي يمثل علاقة متجهة من والى والخط العادي يمثل علاقة غي متجهة انظر الكتاب ص 39 في حالة إضافة ATTRIBUTES جديدة والمراد ربطها مع النظام مع العلم ان هذه الخاصية ليس لها ارتباط واقعي مع ENTITY الأولى او الثانية يتم ربطها بشكل مباشر مع العلاقة في المثال نفسه يوجد خاصية تدعى ACCESS – DATA وهي عبارة عن تاريخ اتصال العميل مع تاريخ الاتصال على الحساب مثل عندما تقوم بالتشبيك على رصيدك في الصراف فان العلاقة تكون بين العميل ورقم الحساب من ناحية التاريخ انظر الكتاب ص 39 جدول الموظفين PK DEP NO COMM MGR HIREDATE SAL EMP NAME EMP NO 10 1100 3 1500 ALI 1 20 0 4 2000 OMAR 2 30 0 1 15000 HASAN 3 10 100 5 1600 WALED 4 20 - 2 7000 SAEED 5 جدول الدوائرFK LOC DEP NAME DEP NO MAK ACC 10 JED SALES 20 RYI ARDIT 30 من الشكل الموجود في ص 40 نستنتج ما يلي 1/ وجود دبل لاين خطين متوازيين بين العلاقة والمجموعة مما نتج ظهور مربعين متداخلين للمجموعة ومعينين متداخلين في العلاقة وهذا ما يدعى TOTAL PARTICIIPATION 2/ وجود احد الخصائص ATTRIBUTES تحتوي على خط متقطع في داخلها وهذا يعني ان هذه الخاصية هي FK 3/ المجموعة PAYMENT تعتمد على المجموعة LOAN لانها لا تحتوي في داخلها على PK ولذلك أعطيت الشكل المتداخل للمربع والمتداخل للمعين وتسمى هذه العلاقة او المجموعة مجموعة ضعيفة WEEK ENTITY مجموعة خصائص إضافية EXTENDED E – R FEATUERS يوجد ثلاثة خصائص مميزات للخصائص الرئيسية 1/ التخصيص SPECICALIZATION في بعض الأحوال توجد خصائص إضافية للعلاقات على ATTRIBUTES مثل SAVING – ACCAUNT – CHECKING ACCAUNT SAVING ACCUNT هو مقدار الحجم او الكمية داخل الحساب CHECKING ACCUNT هو عدد مرات فحص الحساب الخاص بالعميل من هنا يتم انشاء وتخصيص مجموعات من الأشخاص تعتمد على الكمية وعدد مرات الفحص على سبيل المثال لدينا شخص مسموح له عدد مرات فحص الحساب بمقدار 25 مره شهريا اما اذا زادت عن 25 مره فيتم خصم مبلغ من الحساب على حسب عدد عمليات الفحص مثال أخر لنفرض لدينا عميل ذهبي هذا العميل يجب ان يكون في حسابه على الأقل 10 ألاف ريال ليقوم بعملية الفحص على حسابه بشكل مجاني مثال أخر ويسمى بالعميل العجوز وهو الذي زاد عمره عن 65 سنة هذا يسمح له بفحص الحساب مجانا انظر الكتاب ص 43 2/ التوسع GENERALIZATION بعد انشاء نظام SPECIALIZATION فان العلاقة أنتجت أكثر من مستوى في العلاقة الرئيسية مما أدى الى ظهور مستوى أعلى و مستوى أدنى في العلاقة محددة المستويات وأصبحت تدعى FENERALIZATION 3/ الخصائص المتوارثة ATTRIBUTES INHERITANCE وهي مجموعة الخصائص في المستوى الأعلى والمستوى الأدنى والتي أنشئت باستخدام SPECIALIZATION AND GENERALIZATION وهي صفات متوارثة مثل SAVING ACCUNT – CHECKING ACCUNT ملاحظة / المستوى الأعلى للعلاقة والصفات المتوارثة تطبق لكل مستويات الأدنى ملاحظة / المستوى الأدنى خصائص تطبق فقط على المجموعات السفلية المتجزئة فقط انظر الكتاب ص 52 البنك المتكامل مهم جدا STRUCTURED QUERY LANGUAGE (SQL) وتعتمد في مبدئها على نظامين أساسيين ANSI (AMERICAN NATIONAL STANDERDS INSTIURE)- ISO- تقسم لغة SQL الى عدة أجزاء DATA DEFINIATION LANGUAGE ( DDL ) وهو الجزء الذي يقوم بالتعامل مع مجموعة أوامر تتعلق بالمستخدم وقاعدة البيانات من حيث التركيب DML وهو الجزء الذي يتحكم بالبيانات فقط VIEW DEFINIATION وهو الجزء الذي يحتوي على مجموعة من الأوامر تختص فقط بطرق تعريفا العرض AUTHORIZATION SQL تتعامل مع الصلاحيات داخل برنامج مايكروسفت على إنها لغة DDL ولكن في اوراكل تتعامل معها على إنها لغة DCL INTEGRETY تقوم جمل DDL بالتحكم بتكاملية الجداول والبيانات من حيث تعرف مجموعة من المحددات مثل انشاء محدد PK – FK او التعديل على هذا المحدد TRNSACATION CONTROL SQL تحتوي على مجموعة من الأوامر التي لها القدرة على التحكم بالأحداث التي تتم على قاعدة بيانات مثل الإضافة والتعديل والحذف (DELETE – UPDATE – INSERT) التركيب الأساسي لجمل BASIC STRUVTURE SQL الاستعلام QUERY تتكون جمل الاستعلام من مجموعة من الكلمات التي يجب وجودها لإتمام تنفيذ الاستعلام وتتكون أيضا من مجموعة من الجمل المحجوزة التي يكون وضعها اختياري داخل الجملة أي بالا مكان إتمام الجملة بدونها الكلمات المحجوزة الإجبارية KEYWORDS –RESERVWORDS هي SELECT – FROM تعريف الاستعلام هو استدعاء مجموعة بيانات مكونه من عدد افتراضي من الأعمدة وعدد افتراضي من الصفوف بشرط او بدون شرط على جدول معين جدول الموظفين DEP EMP رقم الدائرة تاريخ التعيين العمولة رقم المدير الراتب اسم الموظف رقم الموظف DEPT NO HIRE DATE COMM MGR SAL E NAME EMP NO 10 12/11/02 100 2 1500 ALI 1 20 01/01/89 - 4 2000 OMER 2 10 02/10/96 - 5 11000 HANI 3 20 06/01/02 500 - 15000 WALID 4 30 07/12/78 100 1 11000 SAID 5 10 09/01/01 200 3 8000 NASER 6 جدول الدوائر DEPT الموقع اسم الدائرة رقم الدائرة LOC D NAME DEPT NO JED TRAINNING 10 MAK AUDITING 20 MAD SALES 30 RYI RESCACH 40 جدول الرواتب SAL GRADE اكبر راتب أخر راتب الدرجة HI SAL LS SAL GRADE 1500 1000 1 5000 1501 2 9000 5001 3 12000 9001 4 20000 12001 5 ملاحظة / في حالة الاستعلام عن جميع الأعمدة نضع نجمة او كلمة ALL مثال SELECT * FROM EMP ; SELECT ALL FROM EMP; مثال / قم بعملية الاستعلام التالية عن اسم الموظف وراتب الموظف والعمولة من جدول الموظفين بدون شرط SELECT E NAME, SAL, COMM FROM EMP; مثال / قم بعملية الاستعلام عن رقم الموظف وتاريخ التعيين ورقم الدائرة بدون شرط SELECT EMP NO, HIREDATE, DEPT NO FROM EMP; استخدام الأمر DISTINCE وهو أمر يمنع تكرار البيانات من الجدول مثال / قم بعملية عرض رقم دائرة الموظف من جدول الموظفين دون تكرار SELECT DISTINCE DEPT NO FROM EMP; استخدام العمليات الحسابية داخل جمل الاستعلام مثل ( + - X / ) مثال / قم بعملية الاستعلام عن رقم الموظف واسم الموظف وراتب الموظف وراتب الموظف السنوي من جدول الموظفين SELECT EMP NO, E NAME, SAL, SAL*12 FROM EMP ; استخدام جمل الاستعلام على الجدول بشروط معينة يتم الاستعلام بشرط عن طريق إضافة جملة WHERE مثال / قم بعملية الاستعلام عن جميع الموظفين الذين يعملون في الدائرة رقم 10 SELECT * FROM EMP WHERE DEPT NO=10 ; مثال / قم بعملية الاستعلام عن اسم الموظف وراتب الموظف لجميع الموظفين الذين رواتبهم اكبر من 2500 SELECT E NAME, EMP NO, SAL, FROM EMP WHERE SAL > 2500 ; مثال / قم بعملية الاستعلام عن رقم الموظف واسم الموظف وراتب الموظف ورقم الدائرة لجميع الموظفين حيث راتبهم اكبر من 2500 ويعملون في الدائرة رقم 20 SELECT EMP NO, E NAME, SAL, DEPT NO, FROM EMP WHERE SAL > 2500 AND DEPT NO = 20 ; في حالة استخدام جملة الربط AND داخل الجملة الشرطية WHERE فانه يجب تحقق الشرطيين لإعطاء ناتج اما في حالة استخدام جملة OR في الجملة الشرطية WHERE فانه على الأقل تحقيق احد الشروط لإعطاء ناتج للمحصورة بين شيئين BETWEEN للخارجة بين شيئين NOT BETWEEN لعرض واستعلام البيانات على أكثر من عامود وفي أكثر من جدول مثال / قم بعملية الاستعلام عن اسم الموظف وراتب الموظف ورقم دائرة الموظف من جدول الموظفين بالإضافة الى اسم الدائرة وموقع الدائرة من جدول الدوائر SELECT EMP.E NAME, EMP.SAL, EMP.DEPT NO, DEPT NO. D NAME, DEPT.LOC, FROM EMP, DEPT WHERE EMP.DEPT NO = DEPT. DEPT NO ; الاسم البديل يمكن إعطاء أي عامود داخل جملة SELECT اسم بديل عن طريق وضع فراغ بعد اسم العامود ثم كتابة الاسم البديل مباشرة او بين علامتي تنصيص اذا كان الاسم يحتوي على فراغ مثال كما هو موضح في المثال SELECT E NAME, SAL, SAL*12 " ANUUAL SALARY, JOP FROM EMP وأيضا يمكن استخدام الأسماء البديلة للجداول كما موضح في المثال التالي SELECT E.E NAME, E. SAL, E.DEPT NO,D.E NAME,D.LOC FROM EMP E,DEPT D WHERE E.DEPT NO = D.DEPT NO ; في حالة الاستعلام عن رقم معين داخل جملة WHERE فانة يتم كتابة الرقم المراد السؤال عنه بشكل مباشر SELECT * FROM EMP WHERE EMP NO = 5555 ; في حالة السؤال عن اسم معين او نص فأنة يجب وضع الاسم داخل علامة تنصيص من اليمين او اليسار SELECT * FROM EMP WHERE E NAME NO = "ALI ; العمليات على النصوص STRING OPERATION في حال الاستعلام عن مجموعة عمليات تخص النصوص مثل السؤال على جميع الموظفين الذين تبدأ أسمائهم بحرف A او ثاني حرف من أسمائهم B يجب استخدام أمر LIKE بالتعامل مع هذه الجملة مثال SELECT E NAME, SAL, DEPT NO FROM EMP WHERE E NAME LIKE "A%" ; مثال المطلوب الاستعلام عن أسماء جميع الموظفين الذين ثاني حرف من أسمائهم هي L SELECT * FROM EMP WHERE E NAME LIKE "-L%" ; ترتيب اسطر البيانات داخل الجدول تصاعديا او تنازليا يتم تركيب البيانات باستخدام جملةORDER BY ويتم تحديد الترتيب بشكل تصاعدي او تنازلي باستخدام جملة DESC OR (ASC) والقيمة الافتراضية دائما لعملية الترتيب هي (ASC) أي من الألف الى الياء كما هو موضح في المثال التالي لترتيب البيانات بالاعتماد على عمود E NAME نقوم بما يلي SELECT * FROM EMP ORDER BY E NAME ASC ; اذا كان الترتيب من حيث الراتب ووجد راتبين متشابهين فإننا نقوم بوضع جملة E NAME SELECT * FROM EMP ORDER BY SAL DESE, E NAME ; استخدام خصائص الاتحاد والتقاطع داخل SELECT بالا مكان استخدام أمر الاتحاد UNION او أمر التقاطع INTER SECT OR UNION ALL OR EXCEPT OR EXCEPT ALL تستخدم هذه الأوامر لتقاطع او اتحاد مجموعه من الاعمده من جدول الى جدول أخر كما موضح في المثال التالي ( SELECT DEPT NO FROM EMP ) INTERSECT ( SELECT DEPT NO FROM DEPT ) ; ( SELECT DEPT NO FROM EMP ) UNION (SELECT DEPT NO FROM DEPT ) ; بالا مكان استخدام جملة EXCEPT للسؤال عن كل القيم في جدول ما عدا مجموعه القيم من جدول أخر كما هو موضح في المثال التالي ( SELECT DEPT NO FROM EMP ) EXCEPT ( SELECT DEPT NO FROM DEPT WHERE DEPT NO = 10 ) ; لا تعمل مع اوراكل AGGREATE FUNCTIO (GROUP FUNCTION) تحتوي على خمسة اقترانات رئيسية واقترانيين غير رئيسية AVERAGE(AVG) MINIMUM(MIN ) MAXIMUM (MAX) TOTAL (SUM) COUNT(COUNT) - VARIANCE - STTDV مثال في حال استعلام مجموع رواتب الموظفين وعن معدلات رواتب الموظفين وعن أعلى راتب واقل راتب وعن رواتب المصروفة انظر المثال SELECT AVG (SAL), SUM, (SAL), MAX (SAL), MIN (SAL), COUNT (SAL), VARIANCE(SAL) FROM EMP ; مثال /لعرض مجموع دوائر الموظفين في الدائرة 30 فقط SELECT SUM ( SAL) FAOM EMP WHERE DEPT NO = 30 ; مثال / لإيجاد معدل الرواتب في كل دائرة لوحدها على شرط ان يتم عرض مجموع الرواتب الذي يزيد عن 10000 ريال في هذه الحالة يجب استخدام جملة HAVING للسؤال عن GROUP BY وليس جملة WHERE لأنها تقوم بالسؤال عن عناصر SELECT العادية SELECT DEPT NO, SUM ( SAL ) FROM EMP DETP NO SUM SAL GROUP BY DEPT NO 10 11250 HAVING SUM ( SAL ) > 10000 ; 20 10875 القيمة الغير معرفة NULL VALUES مثال / في حالة السؤال عن أي قيمة غير معرفة نستخدم IS NULL س / قم بالاستعلام عن جميع الموظفين الذين ليس لهم عمولة SELECT * FROM EMP WHERE COMM IS NULL ; مثال / للاستعلام لجميع الموظفين الذين لهم عمولة فقط SELECT * FROM EMP WHERE COMM IS NOT NULL ; الاستعلامات الفرعية المتداخلة NESTED SUBQUERIES وهي عبارة عن مجموعة من الاستعلامات تكون متداخلة مع بعضها البعض اما في جملة WHERE OR FROM تستخدم في حالة السؤال عن شيء مهم مثال قم بالاستعلام عن رواتب جميع الموظفين الذين رواتبهم اكبر من راتب علي SELECT E NAME, SAL FROM EMP WHERE SAL > = ( SELECT SAL FROM EMP WHERE E NAME = " ALI " ) ; في حالة الاستعلام الداخلي فان الاستعلام الداخلي ينفذ أولا والناتج يعتمد في الاستعلام الخارجي يجب مراعاة اسم العامود في WHERE مع اسم العامود داخل SELECT الداخلية بحيث يجب ان يكونان متشابهين بما يجب وضع جملة SELECT بين قوسين مثال / قم بعملية الاستعلام عن جميع الموظفين الذين يعملون في دائرة RESERCH SELECT * FROM EMP WHERE DEPT NO = ( SELECT DPT NO FROM DEPT WHERE D NAME = " RESERCH " ) ; مثال / قم بعملية الاستعلام عن جميع الموظفين الذين يعملون في DALAS SELECT * FROM EMP WHERE DEPT NO = ( SELECT DEPT NO FROM DEPT WHERE LOC = " DALAS ") ; في حال استرجاع أكثر من قيمة من الاستعلام الداخلي فأنة يتم حدوث خطأ داخل الاستعلام الخارجي والحل هو انشاء عنصر جديد بدل إشارة المساواة وهو اما ALL OR ANY OR IN OR SUM مثال / في حال الاستعلام عن جميع الموظفين الذين يعملون في الدوائر 10 -20-30 فإننا نستخدم SELECT * FROM EMP WHERE DEPT NO IN (SELECT DEPT NO FROM DEPT) OR SELECT * FROM EMP WHERE DEPT NO IN ( 10,20,30 ) ; بالامكان الاستعلام عن الاستعلامات متعددة الأسطر باستخدام IN = ANY (LIST) اقل من اكبر قيمة > ANY اكبر من اقل قيمة < ANY قائمة (LIST ) IN = ANY > SOME < SOME = SOME مثال / في حالة الاستعلام عن اصغر راتب من اكبر راتب من الرواتب من رواتب الموظفين الذين يعملون في وظيفة CLEARK SELECT E NAME, SAL, JOB FROM EMP WHERE SAL > ANY ( SELECT SAL FROM EMP, WHERE JOB = "CLEARK " ) AND JOB = "CLEARK " ; TEST FOR EMPTY RELATION بالامكان السؤال عن جدولين باستخدام صيغة جديدة تسمى EXISTS وهي تستخدم للسؤال عن اذا ما كان قيمة أحدى الجداول موجودة في جدول أخر مثال / في حالة السؤال عن جميع الموظفين الذين لهم نفس الدوائر في جدول الدوائر والحل كما هو موضح في المثال التالي SELECT ENAME FROM EMP WHERE EXISTS ( SELECT * FROM DEPT WHERE EMP. DEPT NO = DPRT.DEPT NO ) ; نافذة العرض VIEWS هي عبارة عن جدول وهمي يكون فقط كتركيب ولا يحتوي على بيانات في داخلة ولكن يقوم بعرض بيانات من جدول معين وهي تستخدم لعملية تخزين جملة استعلام داخل تركيب يمكن الاستعلام منه لاحقا وتستخدم لتحليل الاستعلامات المعقدة بشكل أسهل ويجب انشاء هذه النافذة باستخدام جملة CREATE VIEW كما هو موضح CREATE VIEW EMP DEPT AS (SELECT E. E NAME, E. SAL, E. DEPT NO, D. D NAME, D. LOC FROM EMP E, DEPT D WHERE E. DEPT NO = D. DEPT NO ) ; مثال / قم بعملية انشاء نافذة VIEW تقوم بعملية تخزين استعلام يقوم بالسؤال عن اسم الموظف وراتب الموظف وتاريخ تعين لجميع الموظفين الذين رواتبهم تزيد عن 2500 CREATE VIEW TEST AS (SELECT E NAME, SAL, HIR DATE FROM EMP WHERE SAL > 2500 ) ; التعديل على قاعدة البيانات MODIFICATION OF THE DATA BASE 1/ الحذف DELETE وتستخدم لحذف سجلات من جدول معين مثلا لحذف كل السجلات من جدول الموظفين نكتب الصيغة التالية DELETE FROM EMP ; اما في حال حذف جميع الموظفين نكتب الصيغة التالية DELETE FROM EMP WHERE DEPT NO = 10 ; 2/ الإضافة INSERTION تستخدم لإضافة سجل جديد على جدول او نافذة معينة وصيغة الإضافة INSERT INTO INSERT INTO DEPT VALUSE ( 60, "AUDITING ". " MAKKAH ") ; بالا مكان إضافة مجموعة قيم الى جدول EMP واضافة قيمة NULL في المكان الفارغ داخل جدول EMP INSERT INTO EMP VALUSE ( 444," WALED ",NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL) ; بالا مكان استخدام جملة INSERT عن طريق جملة SELECT مثلا إضافة مجموعة بيانات من جدول الموظفين الى جدول الدوائر لا يتم إلا بطريقة SELECT داخل جملة INSERT INSERT INTO DEPT ( SELECT COMM, E NAME, JOB FROM EMP WHERE EMP NO = 7788) ; 3/ التعديل UPDATE بالمكان التعديل على أي قيمة باستخدام جملة UPDATE والتي صيغتها تتكون بالشكل التالي SET القيمة الجديدة المراد وضعها WHERE القيمة القديمة المراد تغييرها UPDATE EMP SET SAL = 1000 WHERE EMP NO = 7788 ; مثال / للتعديل على راتب موظف بحيث يصبح راتبه 10000 ريال من اصل 8000 UPDATE EMP SET SAL = 10000 WHERE SAL = 8000 ; مثال / قم بالتعديل على عمولة جميع الموظفين الذين يعملون في الدائرة رقم 10 لتصبح 1000 ريال فقط في الدائرة 10 UPDATE EMP SET COMM = 1000 WHERE DEPT NO = 10 ; مثال / المطلوب التعديل على رواتب الموظفين بحيث يتم زيادة راتب الموظف بمقدار 1.5 فقط للموظفين الذين يعملون CLEAR UPDATE EMP SET SAL = SAL * 1.5 WHERE JOB = "CLEAR " ; علاقات الربط JOINED RELATION توجد مجموعة علاقات لعلاقات الربط 1/ العلاقة المتساوية INNER JOIN وهي العلاقة التي تتم بين جدولين بحيث يتم الارتباط بين عامود في الجدول الأول مع عامود في الجدول الثاني بحيث يكون للعامودين نفس نوع البيانات ونفس المحتوى لذلك تسمى علاقة متساوية على شرط ان يكون العامود الأول FK والثاني PK كما هو موضح في جملة SELECT SELECT E.E NAME, E.SAL, D., LOC FROM EMP E, DEPT D WHERE E.DEPT NO = D.DEPT NO ; 2/ العلاقة الغير متساوية NOT EQUAL JOIN في حال عملية الاستعلام الغير متساوية فإننا نقوم بربط أي عامود قريب من خصائص عامود أخر داخل جملة WHERE كما هو موضح في هذا المثال مثال / المطلوب إيجاد اسم الموظف وراتب الموظف ودرجة الموظف من جدول الموظفين وجدول الدرجات باستخدام جملة الربط WHERE لمنع التكرار ولإنشاء علاقة ضمنية في الاستعلام SELECT E NAME, SAL, GREAD, FROM EMP, SAL GREAD WHERE SAL BETWEEN 10 SAL AND HISAL; GREAD 10 SAL HI SAL SAL 1 200 700 500 2 750 800 600 3 850 1000 11000 4 1100 3000 2000 5 4000 8000 5000 6 9000 12000 10000 3/ العلاقة في نفس الجدول SELF JOIN وهي العلاقة التي ترتبط بين عامودين في جدول واحد على شرط ان يكون العامود الأول FK والعامود الثاني PK SELECT E.EMP NO, E.E NAME, M.E NAME MANAGER FROM EMP E, EMP M WHERE E.MGR = M.EMP NO ; 4/ العلاقة الخارجة عن الارتباط ولها نوعين الخارجة عن الارتباط من اليمين OUTER LIFT JOIN الخارجة عن الارتباط من اليسار RIGHT JOIN SELECT E.E NAME, E.SAL, E.DEPT NO, D.D NAME, D.LOC, FROM EMP E.DEPT D WHERE E.DEPT NO (+) = D.DEPT NO (+) من جدول DEPT من جدول EMP في حال استخدام العلاقة الخارجة التي تسمى OUTER JOIN فان هذه العلاقة تقوم بعملية إحضار ما هو غير مرتبط من جهة اليمين او اليسار ملاحظة / ا ) علامة (+) لا تكتب مرتين في المثال السابق ولكن تكتب مرة واحدة اما من جهة اليمين او اليسار ب ) علامة (+) المحصورة بين قوسين تكون فقط في لغة اوراكل اما في لغات أخرى فانه يتم كتابة مايلي ( OUTER RIGHT JOIN – OUTER LIFT JOIN – OUTER ) لغة تركيب قواعد البيانات DATA DEFINATION LANGUAGE ( DDL ) أهداف التعامل مع ( DDL ) التعامل مع البيئة والعلاقات داخلها تعريف الأعمدة الداخلية في الجداول وتغيير خصائصها تعريف الجداول المرجعية ( PK & FK ) انشاء نظام الفهرسة وتسهيل التعامل مع العلاقات منح الصلاحيات وإعطاء الأمان داخل البيئة التحكم بالتركيب الفيزيائي لتركيب البيانات أنواع البيانات المستخدمة في DOMAIN TYPES IN SQL يوجد عدة أنواع للبيانات داخل SQL لها ثلاثة أنواع أساسية ( النص – التاريخ – الرقم ) 1/ النص CHAR هي نوع البيانات تستخدم للحقول النصية ثابتة الامتداد لنفرض ان لدينا جدول في داخله عامود اسم الموظف من نوع CHAR 000000000000000 E NAME CHAR ( 15 ) ALI00000000000 لقد تم حجز 15 خانه مع العلم ان اسم الموظف هو مكون من 3 خانات لذلك يسمى ثابت الحجم 2/ VARCHAR وتستخدم للحقول النصية المتغيرة الامتداد مثالا 000000000000000 E NAME VARCHAR 2 ( 15 ) ALI في هذا المثال تم حجز 3 خانات من اصل 15 انشاء جدول لإنشاء جدول نقوم بعملية استخدام جملة CREATE TABLE ثم اسم الجدول TABLE NAME ثم اسم العمود COLUMN NAME ثم أنواع البيانات DATA TYPE ثم ...... الخ مثال / لإنشاء جدول شبيها بجدول الدوائر نقوم بما يلي CREATE TABLE DEPT ( DEPT NO NUMBER (2), D NAME VARCHAR 2(30) LOC VARCHAR 2(30)) ; مثال / قم بعملية انشاء جدول نفس مواصفات جدول الموظفين ولكن باسم جديد يدعى EMP CREATE TABLE EMPLOYEE ( EMP NO NUMBER (4), E NAME VARCHAR 2 (35), JOB VARCHAR 2 (20), MGR NUMBER (4), SAL NUMBER (7.2), HIREDATE, COMM NUMBER (4.2), DEPT NO NUMBER (2)); انشاء جدول باستخدام المحددات يجب في البداية تحديد نوع المحددات الخاصة بالجداول يجب معرفة وجود مكان المحدد يجب معرفة صيغة بناء المحدد أنواع المحددات 1/ في البداية يكون محدد PK هو أهم المحددات الموجودة وهو مكون من شرطين ا ) NOT NULL ( NN ) ب ) UNIQUE ( UK ) 2/ FK هو محدد يكون على العمود بحيث يقوم هذا المحدد يربط هذا العمود بعامود أخر على شرط ان يكون العمود الأخر من نوع 3/ CK يقوم باستخدام ووضع شرط محدد على العامود لحظة انشاء الجدول 4/ المحدد NN بالامكان استخدامه بشكل مستقل بحيث يمنع وجود فراغ على العامود المضاف عليه 5/ UK محدد يقوم بمنع عملية التكرار على العامود المضاف عليه طرق استخدام المحددات لإنشاء جدول الدوائر على شرط ان يكون عامود رقم الدائرة من نوع PK الحل بالامكان حل المثال التالي بطريقتين كما يلي 1} CREATE TABLE DEPT ( DEPT NO NUMBER (2) PRIMARY KEY, D NAME VARCHAR 2 (30), LOC VARCHAR 2 (20)) ; على مستوى العامود 2} CREATE TABLE ( DEPT DEPT NO NUMBER (2) PRIMARY KEY, D NAME VARCHAR 2 (30) NOT NULL, LOC VARCHAR 2 (20) UNIQUE, CONSTRAINT PK_DEPT NO PRIMARY KEY (DEPT NO)) ; لحذف جدول معين نقوم باستخدام الجملة التالية DROP TABLE DEPT DROP TABLE EMP للتعديل على تكوين جدول نقوم باستخدام أمر يدعى ALTER TABLE وينقسم الى أربع أجزاء 1/ ADD ( إضافة عامود جديد ) ALTER TABLE DEPT ADD E DATE DATE ; 2/ MODIFY ( التعديل على حجم ونوع البيانات ) ALTER TABLE DEPT MODIFY E DATE NUMBER (30) ; 3/ DROP COLUMN ( حذف عامود ) ALTER TABLE DEPT DROP COLUMN ( E DATE ) ; مؤشر الاستعلام على جمل DML CURSOR SQL في حال الاستعلام عن جدول معين او التعديل على جدول او الحذف من الجدول فان كل هذه العمليات تتم داخل بيئة خاصة ومؤقتة تقوم بحفظ البيانات بشكل مؤقت والتي يتم في داخلها استرجاع البيانات المطلوبة ومعالجتها ثم عرضها داخل SQL وهي عبارة عن مجموعة نشطة وتسمى ACTIVE SET او ما يدعى PRIVTE AREA ويمكن انشاء ما يسمى SQL CURSOR اما يدويا او اتوماتيكيا بحيث يقوم مؤشر معين بتعيين جميع القيم التي تم دخولها على البيئة الخاصة PRIVAT AREA ثم يقوم بفحصها ومعالجتها المرجعية التكاملية في المحددات INTEGRITY CONSTRAINTS DOMAIN CONSTRAINTS هو عبارة عن نطاق يتم انشاء مجموعة من العناصر داخل هذا النطاق مثل الجداول والنوافذ والاجراءت والفهرسة والأرقام المتسلسلة في هذه الوحدة سوف يتم التكلم عن التكاملية للنطاق وهي كيفية انشاء المحددات على نطاق معين مثال / قم بإنشاء جدول يسمى EMPLOYEE والذي يحتوي في داخله على عدة أعمدة EMP NO ( PK ) E NAME ( NN ) SAL ( CK ) COMM JOB HIREDATE ( UK ) DEPT NO ( FK ) MGR وقبل انشاء هذا الجدول قم بإنشاء جدول آخر يخص الدوائر وأعطيه اسم DEPARTMENT والذي يحتوي على ثلاثة أعمدة وهي DEPT NO ( PK ) D NAME LOC ثم قم بربطه مع جدول الموظفين طريقة الحل CREATE TABLE DEPARTMENT ( DEPT NO NUMBER ( 2 ), D NAME VARCHAR 2 ( 10 ), LOC VARCHAR 2 ( 10 ), CONSTRAINT PK_DEPT NO PRIMARY KEY ( DEPT NO ) ; العمود المراد وصفه نوع المحدد اسم المحدد المحدد CREATE TABLE EMPLOYEE ( EMP NO NUMBER ( 4 ), E NAME VARCHAR 2 ( 20 ) NOT NULL, SAL NUMBER ( 7.2 ), COMM NUMBER ( 4 ), JOB VARCHAR 2 ( 10 ), DEPT NO NUMBER ( 12 ), CONSTRAINT PK_EMP NO PEIMARY KEY ( EMP NO ), CONSTRAINT CK_SAL CHECH ( SAL > 1500 ), CONSTRAINT UK_HIREDATE UNIQE ( HIREDATE ), CONSTRAINT FK_DEPT NO FOREGN KEY ( DEPT NO ) , REFERENCES DEPT ( DEPT NO )) ; زناد المسدس TRIGGERS هو عبارة عن مجموعه من المعلومات التي يتم تنفيذها بشكل أوتوماتيكي بواسطة النظام في حال حدوث تعديل او أضافه او حذف أي جميع العمليات التي تخص DML ويتم إنشائها أيضا بشكل يدوي عن طريق المستخدم في حال مع التعامل TRIGGER يجب مراعاة ما يلي وصف الشرط الواجب يوفره لإطلاق TRIGGER ما هي طبيعة الحدث الذي يتم تنفيذه لحظة انطلاق TRIGGER مستوى تنفيذ TRIGGER في لغة قواعد البيانات ينطلق الحدث على ثلاث مراحل قبل عملية معينه BEFOR بعد عملية معينه AFTER لحظة القيام بعملية معينه ON ملاحظة / معظم TRIGGER ينطلق عبر عمليتين ( INSERT / UPDATE ) يختلفTRIGGER في حالة التعامل مع داخل بيئة FORM فيوجد أكثر من 100 نوع داخل بيئة FORM صيغة تعريف TRIGGER DEFINE TRIGGER X UPDATE SAL هذا التعريف بعملية انشاء TRIGGER يدعى X يتم تطبيقه فقط لحظة التعديل على عمود SAL داخل جدول الموظفين CLOSURE OF A SET FUNCTIONAL DEPENDENCIES لنفرض ان لدينا المجموعة A ترتبط مع المجموعة B ولدينا المجموعة B ترتبط مع المجموعة C والمجموعة CG ترتبط مع المجموعة H ولدينا المجموعة B ترتبط مع المجموعة H فان المجموعة A ترتبط مع المجموعة B وان المجموعة B ترتبط مع المجموعة C فان المجموعة A ترتبط مع المجموعة Cبطريقة غير مباشرة بما ان A ترتبط مع B و B ترتبط مع H فان A ترتبط مع H بطريقة غير مباشرة ( طريقة ضمنية ) خصائص العلاقات المرتبطة بشكل مخطط 1- الانعكاسية REFLEXIVITY اذا كانت الفا مجموعه من خصائص معينه وكانت بيتا متضمنة ألفا في داخلها فهذا يعني ان الفا ترتبط مع B والعكس صحيح وهذا يعني أنهما متضامنان مع بعضهما البعض. 2- التوزيع AUGMEUTATION اذا كانت ألفا ترتبط مع بيتا وكانت حاما عن مجموعه من الخصائص سوف يتم ارتباطها مع العلاقة السابقة بالشكل التالي 3- الضمنية TRANSITIVITY اذا كانت ألفا ترتبط مع بيتا وكانت بيتا ترتبط مع جاما فان ألفا ترتبط مع جاما 4- الاتحاد UNION اذا كانت ألفا ترتبط مع بيتا وألفا ترتبط مع جاما فان ألفا ترتبط مع بيتا وجاما 5- التفصيلية DECOMPOSITION اذا كانت ألفا مع بيتا وجاما فان ألفا ترتبط مع جاما وألفا ترتبط مع بيتا 6- التعريفية PSEUDOTRANSITIVITY اذا كانت ألفا ترتبط مع بيتا وبيتا وجاما ترتبط مع سيجما فان ألفا وبيتا ترتبط مع سيجما PROCEDURE LANGUAGE هي اللغة التي يتم بداخلها كتابة برنامج طويل باستخدام مجموعة تعريفات واستخدام كلمات محجوزة من هذه اللغة لا يتم كتابتها كما تم سابقا مثل ( SELECT – UPDATE – CREATE ) ...... الخ يجب وجود ما يلي BEGIN END DECLARE داخل هذه اللغة بامكاننا استخدام ما يلي البيئة الخاصة CURSOR البحث داخل البيئة الخاصة FETEN إغلاق البيئة الخاصة CLOSE فتح البيئة الخاصة OPEN للتكرار FOR للسؤال عن شرط IF – ELSA – ELSE IF للتكرار LOOP للتكرار WHILE علاقات العناصر في قاعدة البيانات OBJECT RELATION DATABASS في هذه الوحدة يتم انشاء مجموعة من العناصر مثل نوع البيانات وسوف يتم التحدث عن أنواع البيانات معقدة التركيب وقد ورد سابقا ما يسمى ( 1NF ) FIRST NORMAL FORM وهي عبارة عن علاقة من الدرجة الأولى يجب ان تكون جميع أعمدتها او خصائصها متضمنة داخل نفس النطاق الرئيسي للبيانات عندما نتكلم عن نطاق العناصر العلائقي فانه يجب مراعاة أربع عناصر 1/ DOCUMENT TITLE 2/ AUTHOR TITLE وهي قائمة تحتوي في داخلها مجموعة من البيانات وهي ترتبط مع DOCUMENT بشكل ما يدعى SET OF AUTHORS أي ان احتمال ان النص يرتبط مع AUTHORS كما يتم توضيحه لاحقا 3/ الكلمات المحجوزة DATE التاريخ يعتبر عن مجموعة واحدة ضمن النطاق لأنه من المحتمل عرض التاريخ كثلاثة أعمدة كسبيل المثال وليس كحقل واحد أي عامود واحد ( عامود اليوم –عامود الشهر – عامود السنة ) انظر الكتاب ص 177 4/ KEY WORD LIST TITLE AUTHOR TITLE TITLE DATE هذه العلاقة ليست ( 1NF ) بالا مكان أيضا عرض بيانات الجدول بالطريقة التالية TITLE – DAY – MONTH – YEAR وهذه العلاقة تسمى ( 4NF ) مثال / لديك الجدول الموجود في أعلى ص 277 قم بعملية تمثيل الجدول على شكل جدولين آخرين الأول يقوم بعرض العلاقة ( 1NF ) والثاني ( 4NF ) الحل / لعرض الجدول على شكل ( 1NF ) يجب تمثيله كل عنصر داخله لا يرتبط إلا مع عنصر بداخله كما هو موضح بالجدول TITLE AUTHOR - LIST DATE KEY WORD - LIST DAY - MONTH - YEAR SALESPLAN ( SMITH - JONSE ) ( 1,APRIL,89 ) ( PROFIT,STRATEGY ) STATUS REPORT ( JONES - FRICK ) ( 17,JUNE,94 ) ( PROFIT,PERSONNEL ) اما عملية عرض الجدول السابق على شكل علاقة من نوع ( 4NF ) انظر الى الثلاثة الجداول في الشكل التالي TITLE AUTHOR DAY MONTH YEAR KEY WORD SALESPLAN SMITH 1 APRIL 89 PROFIT SALESPLAN JONES 1 MAY 89 PROFIT SALESPLAN SMITH 1 JUNE 89 STRATEGY SALESPLAN JONES 1 JULY 89 STRATEGY STATUS REPORT JONES 17 JUNE 94 PROFIT STATUS REPORT FRICK 17 JUNE 94 PROFIT STATUS REPORT JONES 17 JUNE 94 PERSONNEL STATUS REPORT FRICK 17 JUNE 94 PERSONNEL الأنواع المعقدة وتحديد إشكاليات إحداثيات العناصر COMPLEX TYPES & OBJECT ORIENTATION العلاقات المتداخلة هي عبارة عن مثال بسيط لامتدادات أنواع العلاقات في حال تحدثنا عن الأنواع المعقدة فإننا نبدأ الحديث عن الاقترانات في الجداول المرتبطة بهذه العناصر STRUTURED & COLLECTION TYPES تجميع وتركيب الأنواع انشاء جديد الاسم الخاص بالنوع الجديد CREATE TYPE MY STRING CHAR VARYING رقمي CREATE TYPE MY DATE نصي ( DAY INTEGER, رقمي MONTH CHAR ( 10 ), YEAR INTEGER, CREATE TYPE DOCUMENT ( NAME MY STRING, مجموعة من نوع البيانات AUTHOR – LIST SETOF ( MY STRING ), المعرف عليها DATE MY DATE, نصي KEY WORD – LIST SETOF ( MY STRING )) اسم الجدول CREATE TABLE DOC OF TYPE DOCUMENT ; الطريقة الثانية لإنشاء النوع الجديد لإنشاء جدول CREATE TABLE DOC ( NAME MY STRING, AUTHOR – LIST SETOF ( MY STRING ), DATE MY DATE, KEY WORD – LIST SETOF ( MY STRING )) ; نظام التوارث INHERITANCE يتم التعبير على شكل هرمي أي يعتمد على نظام المستويات أي يوجد انواع رئيسية وأنواع فرعية من الرئيسية الطريقة الاولى CREATE TYPE PERSON ( NAME MY STRING, SOCIAL – SECURITY INTEGER ) ; الطريق الثانية CREATE TYPE STUDENT ( DEGREE MY STRING, DEPARTMENT MY STRING ) ; UNDER PERSON من الأنواع الجديدة المنشئة سابقا لعملية التعامل مع البيانات بشكل متوارث نستخدم كلمة UNDER كما هو موضح سابقا ويوجد من النوع الأول STUDENT والنوع TEACHER توجد بينهما مشكلة والمشكلة هي وجود عنصر للطالب دائرة وعنصر للمدرس دائرة ولذلك نستخدم الصيغة التالية لتجنب الوقوع في عملية التشويش انظر المثال CREATE TYOE TEACHING ASSISTANT UNDER STUDENT WITH ( DEPARTMENT AS STUDENT – DEPT ), TEACHER WITH ( DEPARTMENT AS TEACHER – DEPT ) ; وذلك باستخدام كلمتي WITH & AS الأنواع المرجعية REFRENCE TYPES بالامكان استخدام الأنواع المرجعية لحظة وجود ( REF ) داخل تعريف نوع جديد AUTHOR – LIST SET OF ( REF( PERSON )) في هذا المثال تم تعريف العنصر AUTHOR – LIST على انه مجموعة من عناصر SET OF من العنصر المرجعي PERSON باستخدام جملة REF كيفية الاستعلام عن الأنواع المعقدة QUERYING WITH COMPLEX TYPES للاستعلام عن أي عنصر مرجعي يجب ذكر العنصر ثم نقطة نم اسم الجزء الداخلي للعنصر او نوع البيانات على سبيل المثال المطلوب الاستعلام عن الاسم والسنة من داخل الجدول DOC SELECT NAME, DATE, YEAR FROM DOC RELATION – VALUED ATTRIBUTES CREATE TABLE P DOC ( NAME MY STRING, AUTHOR – LIST SEOF ( REF ( PEOPLE )) , DATE MY DATE, KEYWORD – LIST SET OF ( MY STRING )) ; بعد انشاء هذا الجدول لنفرض لدينا الاستعلام التالي SELECT B. NAME, Y.NAME FROM P DOC AS B, B. AUTHOR – LIST AS Y Y اسم بديل لجدول AUTHOR – LIST AUTHOR – LIST عامود داخل جدول B وهو P DOC B اسم بديل لجدول P DOC بالا مكان استخدام احد اقترانات المجاميع مثل اقترانات ( AVG – MIN – MAX – SUM – COUNT ) مع الأنواع المعقدة كما هو موضح في المثال SELECT NAME, COUNT ( AUTHOR – LIST ) FROM P DOC ; التداخل وعدم التداخل للعمليات NESTING & UNNESTING بالامكان كتابة صيغة SELECT على طريقتين الأولى بنظام عدم التداخل كما هو موضح في الشكل التالي SELECT NAME,A AS AUTHOR, DATE.DAY,DATE.MONTH,DATE.YEAR, K AS KEY WORD FROM DOC AS B , B .AUTHOR – LIST AS A , B .KEY WORD – LIST AS K A اسم بديل AUTHOR K اسم بديل KEY WORD B اسم بديل DOC KEY WORD الاسم الأصلي بالا مكان نفس الاستعلام السابق مع تغير بسيط لطريقة مباشره كما هو موضح بالمثال التالي ص 285 SELECT TITLE, AUTHER ,(DAY,MOUTH , YEAR )AS DATE , SET (KEY WORRD ) AS KEY WORD – LIST FOM FLAT –DOC GROUB BY TITLE , AUTHER , DATE. الاقترانات FUNCTIONS هو عبارة عن بيئة يتم في داخلها مجموعه من العمليات بحيث له شرطين الشرط الأول يدخل إليه عدد من القيم ويخرج منه قيمة واحدة فقط ولإنشاء أي اقتران معين بالامكان استخدام صيغه CREADE FUNCTION والموضحه بالمثال في ص 286 CRAET FUNCTION AUTHOR – COUNT ( ONE – DOC DOCUMENT ) RETURNS INTEGER AS SELECT COUNT ( AUTHOR – LIST ) FROM ONE – DOC انشاء CREATE اقتران FUNCTION اسم الاقتران AUTHOR – COUNT القيمة المراد إدخالها ONE – DOC DOCUMENT استرجاع RETURNES رقمي INTEGER الاستعلام يعطي قيمة واحده وهي عدد AUTHOR – LIST إضافة قيم داخل القيم والعناصر المعقدة CREATION OF COMPLEX VALUES & OBJECTS بالامكان استخدام جملة INSERT السابقة مع أنواع البيانات المعقدة كما هو موضح بالشكل التالي INSERT INTO DOC VALUES (" SALES PLAN ", SET ( " SMITH "," JONES "), ( 1,"APRIL", 89 ), SET (" PROFIT ", "STRATEGY")) ; تستخدم الأقواس بشكل عام لتحديد بداية الاضافه ونهايتها علامات التنصيص فقط في حاله الأسماء والنصوص وأسماء الأشهر وأيضا مجموعه الأسماء التي تنتمي الى نوع واحد يجب وضعها ضمن قوسين وضع جملة SET لان العناصر التي تمثل هذه القيم هي من نوع القيم المعقدة النظام العلائقي RELATUION SESTEM من مميزاته أنواع بسيطة للبيانات _ قوة في اللغة _ قوة في الحماية PRESISTENT PROGRAMMING LANGUAGE BASED ( OODPS ) من مميزاتها أنواع بيانات معقدة _ تعمل فقط مع لغات البرمجة _ اداء أعلى نظام العناصر المرتبطة مميزاتها OBJECT RELATIONAL SESYEM أنواع بيانات معقدة _ قوة في لغة الاستعلامات _ اداء وحماية أعلى ملاحظة / النقاط الثلاث السابقة هي عبارة عن أنواع قواعد البيانات الذواكر وتركيب الملفات STORAGE & FILE STRUCTURE في معظم أنظمة الحاسبات يجب وجود ذاكرة خاصة للبيانات وهي تعتمد على عملية تسريع الوصول للبيانات وتوجد لها عدة أنواع CHACH وهي عبارة عن ذاكرة سريعة ولها الأغلبية في التخزين وهي صغيرة جدا وتدار من قبل نظام التشغيل ولن نهتم بها باستخدام إدارة قاعدة البيانات. MAIN MEMORY لها الجزء المتوسط في الاستخدام وتحتوي على العديد من الميجا بايت من البيانات وهي صغيرة جدا وغالية الثمن ونفقد البيانات في داخلها في حال إطفاء الجهاز او لحظة حصول فشل في النظام FLASH MEMORY وتعرف باسم أخر وهو ELECTRICALY ERASEBLE PROGRAMMABLE READ – ONLY MEMORY ( EEPROM ) تختلف عن MAIN MEMORY حيث تتم القراءة منها في اقل من 100 نانو/ ثانية وهي أسرع في القراءة من MAIN MEMORY يتم الكتابة داخل الفلاش من ( 2 – 10 ) مايكرو / ثانية ولكن لا يمكن التعديل عليها مباشرة وللكتابة عليها يجب مسح ما هو موجود مرة واحدة ثم الكتابة مرة أخرى اما من ناحية التخزين فهي لا تخزن كثير وهي تخزن الى ما يقارب من ( 5 – 10 ) ميجا بايت MAGNATIC _ DISK STORAGE هذا النوع من الذواكر هو الرئيسي في العمر الطويل وهو فعليا يستخدم لتخزين قواعد البيانات بشكل دقيق لحظة استخدامه للبيانات يقوم بتحويل هذه البيانات من القرص الى MAIN MEMORY لكن يتم الوصول للبيانات بعد عملية الإتمام بشكل سريع وهذه العملية تدعى DIRECT – ACCESS وهي لا تشبه أبدا في عملية التخزين لنظام الوصول المتسلسل وهي تعتمد على نظام الوصول المباشر OPTICAL STORAGE وهي تدعى COMPACT _ DISK READ ONLY MEMORY ( CD-ROM ) ومميزاته ان هذه الذاكرة لا يمكن الكتابة عليها أي للقراءة فقط وبامكانها ان تنقل البيانات وتحملها عن طريق إدخال القرص وسحبه من قارئ الأقراص ويوجد نوع آخر تم إصداره لهذه الذاكرة يسمى ( WORM ) والتي تعني WRITE – ONCE, READ – MANY وهذا النوع يقوم بعملية الكتابة مرة واحده والقراءة عدة مرات معظم أنواع OPTICAL STORAGE لها ميزة قابلية تحميل بياناتها أو حملها خارج محرك الأقراص وكل هذه الأنواع تحتاج إلى محركات تشغيل لذلك ظهر ما يدعى JUKE BOX وهو عبارة عن نظام يقوم باحتوائه على مجموعة من الأقراص ومحركاتها والتي تقوم بتحميل البيانات داخل احد هذه الأقراص بشكل تلقائي والذي يعتمد في عملية التحريك على الاذرعة الذكية. TAPE STORAGE وهذا النوع من الذواكر يستخدم بشكل كبير في الحفظ التلقائي BACK UP ولعمليات الأرشفة ويدعى احد انواعة MAGNATIC TAPE وهو ارخص من الأقراص السابقة ولكنه يعاني من مشاكل الوصول في البيانات إليه فهو بطيء في عملية الوصول في البيانات لأنه يستخدم نظام الوصول بشكل متسلسل أي يعتمد على نظام SEQUENIAL ACCESS يحتوي على كثافة عالية تقدر خمسة جيجا بايت وله القدرة على التحريك من مكان الى آخر يوجد أيضا له نوع يسمى TAPE JUKE BOX يستخدم لحفظ البيانات الكبيرة والمجمعة عن بعد مثل الستلايت والتي تقدر 12 تيرابايت انظر الكتاب ص 295 السرعة والتكلفة MAINE MEMORY CACHE تسمى ذاكرة رئيسية PRIMARY STORAGE MAGNATIC DISK تسمى ذاكرة ثانوية SECUNDRY STORAGE OR ONLINE STORAGE MAGNATIC TAPE & JUK BOX تسمى TERTIARY STORAGE OR OFF LINE STORAGE MAGNATIC DISKS يعتبر من الوحدات الثانوية في التخزين وان كثافة التخزين كمعدل للقرص الواحد من ( 10 ميجا – 10 جيجا ) التقسيم الفيزيائي للقرص PHYSICAL CHARACTERISTICS OF DISKS يتكون القرص من مجموعة من PLATTER وهو عبارة عن أشكال دائرية مسطحة ولها سطحين تم تغطيتهما بمادة مغناطيسية يتم تخزين البيانات على هذه الأسطح يتم صناعة PLATTER من معدن لميع او زجاج ويغطى بعد ذلك بشكل كامل للسطحين بمادة مغناطيسية قابلة للتخزين واكبر مثال على ذلك هو HARD DISK, FLOPY DISK ولكن الأخير يتم صناعية من مواد مرنه بشكل اكبر لحظة استخدام القرص يوجد محرك صغير يقوم بعملية إدارة دوائر الأقراص وتحدد سرعة هذا المحرك بما يعادل تقريبا ( 60- 90 – 120 ) دورة لكل جزء من الثانية ويوجد هناك رأسين احدهم للقراءة والأخر للكتابة تكون على سطوح PLATTER يتم عادة تقسيم القرص الى عدة أجزاء تدعى TRACK التي يتم تقسيمها أيضا الى أجزاء اصغر وتسمى SECTOR وهو اصغر وحدة للمعلومات حيث يتم القراءة منها والكتابة عليها ويكون حجم SECTOR متراوح ما بين ( 32 – 4096 ) بايت معتمدا على نوع القرص واغلب الأنواع تعتمد على ( 512 ) بايت ويوجد ما يقارب من ( 4 – 32 ) SECTOR داخل TRACK الواحد ويوجد أيضا ما يقارب ( 20 – 1500 ) TRACK على سطح القرص كل جهة من PLATTER لها راس قراءة وراس كتابة والذي يتم تحريكه الى مختلف أجزاء القرص على حسب البيانات في كل TRACK ويوجد ذراع تخص القرص لكي تساعد على عملية القراءة والكتابة على القرص كل TRACK مجتمعة على القرص تدعى CYLINDER عرض القرص او مداه من ( 1.8- 14 ) بوصه والمتعارف عليه ( 5.25 – 3.50 ) بوصه. DISK CONTROLLER INTERFACE وهو عبارة عن قطعة تقوم بالتحكم بين النظام والهاردوير والتي تخص الأقراص ويقوم باستخدام الأوامر صاحبة المستوى الأعلى للقراءة والكتابة على البيانات مجموع عدد القراءة والكتابة CHECK SUMS وهو عبارة عن جزء يقوم بفحص الأجزاء والمكتوبة عليها وفي حال القراءة منها ويقوم مرة أخرى بفحص الأجزاء المكتوب فيها REMAPPING OF BAD وهو عبارة عن متحكم يقوم بعملية فحص الأجزاء التالفة وإنشاء التهيئة والتعويض عنها بموقع اخر يخص فقط الأجزاء التالفة ثم يتم حمل البيانات منها الى موقع جديد. SCUZZY {SCSI } ( SMAL COMPUTER SYSTEM INTERCONNECT ) وهو يستخدم بشكل كبير لعملية ربط واتصال بين الأقراص داخل الكمبيوتر العادي مع WORKSTATION على السيرفر ومع عملية الاتصال يجب إضافة مجموعة نواقل تخص عملية الاتصال تكون هذه النواقل أسرع وأعلى تكلفة كيفية القراءة والكتابة يبقى راس الكتابة والقراءة قريب من سطح القرص ليزيد من كثافة التسجيل والقراءة وغالبا ما يكون الرأس عائم او طافي على السطح وتحته ضغط هواء لمنع ملامسته للقرص في بعض الحالات الرأس يلامس سطح القرص مما يسبب في تدمير القرص ولذلك تم وضع راس قراءة على كل قطاع على السطح لتسهيل العملية ولزيادة الكفاءة وللتبديل بين كل قطاع بسهولة ومرونة مما جعل سعره غالي الثمن لزيادة عدد الرؤوس فيه. ملاحظة / بعض الأقراص لها أكثر من ذراع للقراءة لأكثر من قطاع في المرة الواحدة وهي غالية الثمن وحدة قياس القرص PERFORMANCE MEASURES DISKS تعتمد نوعية القرص على عدة عوامل وهي الكثافة التخزينية وقت الوصول للبيانات معدل نقل البيانات قدرة التحمل RELIABILTY وقت الوصول هو وقت إصدار الأوامر للقراءة والكتابة حتى يبدأ وقت نقل البيانات. في البداية يتم تحريك الذراع لتحديد القطاع الصحيح وهذا الوقت يسمى وقت البحث SEEK TIME بالاضافة الى وقت تحريك الذراع ووقت تحريك الذراع غالبا ما يأخذ من ( 20 – 30 ) مل / ثانية تنظيم الوصول الى القرص OPIMIZATION OF DISK – BLOCK ACCESS طلب الإدخال والإخراج يدار من قبل ملفات النظام والذاكرة المساعدة عند كل طلب يؤشر عنوان على القرص على شرط ان يكون هذا العنوان موجود على القرص أصلا ويتكون القرص على عدد من القطاعات المتصلة وكل قطاع يكون حجمة ( 512 ) نظام الجداول SCHEDULING اذا كانت مجموعة القطاعات بحاجة لنقلها من القرص الى MAIN MEMORY فنحن بحاجة الى تخزين وقت الوصول الى القطاعات عن طريق الرأس لتخفيف حركة نقل الذراع من موقع الى أخر ويقوم نظام الجداول بإعطاء خوارزمية ( الطريقة المنظمة ) للوصول الى الطلب على أي قطاع وذلك لزيادة عدد الوصول للعمليات المعالجة وهذه الخوارزمية تشبه خوارزمية المصاعد ELEVATOR ALGORITHM تنظيم الملفات FILE ORGANIZITON للتقليل من عملية الوصول كل مرة الى القطاع نستطيع تنظيم الملفات بشكل معين بحيث تبقى الملفات قريبة من بعضها البعض ونتوقع الملفات المراد استخدامها مثال / في حال توقع الوصول الى ملف معين نقوم بترتيب الملفات المرتبطة مع هذا الملف بشكل متسلسل في نظام التشغيل العادي واليونكس يقوم المستخدم بإخفاء منظم الملفات وتتم العملية بشكل داخلي في حال استخدام المستخدم برنامج DISK DEGRAGMENTS وهو يقوم بعملية تنظيم الملفات وتسهيل الوصول إليها وأيضا من طرق تقليص الوصول الى القطاعات هي عمل نسخ احتياطية من البيانات مرتبة وهناك لا تحتاج الى عملية DISK DEFRAGMENTS ذاكرة الكتابة الغير متطايرة NON VOLATILE WRITE BUFFERS وفي هذه الذاكرة يتم استخدام ذاكرة الوصول العشوائي ( RAM ) التي لا تفقد بياناتها الا في حالة انقطاع التيار او بتعطيلها باستخدام BATTERY BACKED UP ويوجد أيضا بعض الملفات التي يتم تخزينها داخل الجهاز بشكل تلقائي وهذه البيانات تخزن في ملفات خاصة تصدر هذه الملفات نتيجة للاتي تقارير عن عمليات فحص الجهاز SCAN DISK تقرير عن عمليات DISK DEFEAGMENT تقارير تخص النظام وكل هذه الملفات تسمى LOG FILE RAID يتم استخدام عدد قليل من الأقراص الغالية والكبيرة الحجم للتخزين لذلك نتج عن هذه العملية ظهور أقراص معدله تستخدم بعدد كبير منها لتحسين معدل القراءة والكتابة وتوجد طريقتين لعرض بيانات الأقراص وإدارتها 1/بشكل متوازي 2/بشكل متتالي مصفوفة مكرر RAID هو اختصارDISIC REDUUDNT ARRAYSOF INEXPENSIVE تستخدم لعرض البيانات بشكل اقوي وبقدره اعلي على نقل البيانات داخليا وخارجيا وهو التكتيك الذي يقوم بتنظيم الأقراص لإعطاء نتائج معينه وتوجد له ستة مستويات في السابق كان RAID مكون من قطع صغيره من الأقراص التي تم استخدامها وعرضها بتكلفه وعرض كبير اما حاليا فان الأقراص كبيرة الحجم تستخدم بشكل كبير اما RAID هنا يستخدم لقدره عالية ونقل البيانات بشكل عالي وقيمه اقتصاديه مستوياته 1/ RAID LEVEL ( 0 ) NON REDUNDANT STRIPING وهو تقسيم الأقراص الى مصفوفات بدون REDUNDANCY ومعناها تساوي الأقراص مثل MIRTORING ORPARITY BITS 2/ RAID LEVEL ( 1 ) MIRRORING DISKS يستخدم لنظام MIRRORING الذي يستخدم لتنظيم أربعة أقراص وعمل مرآه لهذه الأقراص لتصبح ثمانية 3/RAID LEVEL ( 2 ) MEMORY STYLE ERROR CORRECTING CODE ويتم الاختصار إليه ECC ERROR CORREDING CODE وهذا المستوى يقوم بإضافة او إيجاد بت جديدة فقط تستخدم لمعالجة الأخطاء وتصحيحها في حال فشل احد الأقراص 4/ RAID LEVEL ( 3 ) BIT INTERLEAVED PARITY تنظيم البيانات معترضة التساوي يتم تحسين المستوى الثاني الى هذا المستوى الجديد ليتم من خلاله تحكم اكبر وحماية على كل قطاع ثم قراءته من القرص بشكل صحيح وفي هذا ال اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.