الانتقال إلى المحتوى

Data base Concept


FAI2004SAL US

Recommended Posts

تحليل النظم 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
تنظيم البيانات معترضة التساوي يتم تحسين المستوى الثاني الى هذا المستوى الجديد ليتم من خلاله تحكم اكبر وحماية على كل قطاع ثم قراءته من القرص بشكل صحيح وفي هذا ال

رابط هذا التعليق
شارك

  • بعد 2 أسابيع...
  • بعد 1 سنة...
  • بعد 1 شهر...

السلام عليكم ... جزاك الله خير

سبحان الله وبحمدة سبحان الله العظيم

لا إله إلا الله ؛ محمد رســــول الله
سبحان الله و الحمد لله و لا إله إلا الله و الله اكبر و لا حول و لا قوة إلا بالله

رابط هذا التعليق
شارك

  • بعد 6 شهور...
  • بعد 3 أسابيع...
  • بعد 2 أسابيع...

جزاك الله خيرا وجعل جهدك في ميزان حسناتك
وهل تحليل النظام على الويب يختلف عن تحليل النظام العادي
client - server

جزاك الله خيرا وجعل جهدك في ميزان حسناتك
وهل تحليل النظام على الويب يختلف عن تحليل النظام العادي
client - server
:)

رابط هذا التعليق
شارك

السلام عليكم

اخي الكريم جزاك الله خير
على مجهودك الرائع

و لدي نفس استفسار الاخ memonew
هل يوجد اختلاف في تحليل نظام لمؤسسه او تحليل ويب سايت

و شكرا لك

رابط هذا التعليق
شارك

الأخ / memonew
noisy_cat

وهل تحليل النظام على الويب يختلف عن تحليل النظام العادي


للاجابة على السؤال يجب ان نفرق بين خصائص كل من

- Windows application
- Web application

من حيث - كيفية التعامل مع البيانات .
- سرعة استرجاع المعلومات .
- خصائص أو امكانيات تتوفر فى windows app. وغيرموصى أو غير مسموح باستخدامها فى ال web appp
- طبيعة النظام
- حجم البيانات المتداولة .

تأثير الاختلاف .. سيكون اكثر على تصميم جداول النظام وتصميم الشاشات وايضا التقارير والاستعلامات
والتأثير على التحليل والعلاقات بين الجداول .. كمفاهيم للنظام ستكون اقل

هذا رد مبدئي .. لحين ذكر الفرق بين البيئتين وخصائص كل منهما بشكل عام ...


للموضوع تكمله .. ان شاء الله

الأخ / abojana
مرحبا بك معنا بالمنتدى

توجد مشاركات عديده بقسم تحليل النظم .. يمكن الاطلاع عليها
واليك مشاركة الاخ / اسامه فى سلسلة دروس عن تطوير وبناء نظم المعلومات

من هنا

دورة قاعدة بيانات للأخ / سامي الفتني ...... من هنا
رابط هذا التعليق
شارك

  • بعد 1 شهر...
  • بعد 3 شهور...
  • بعد 7 سنة...

تحليل النظم 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

تنظيم البيانات معترضة التساوي يتم تحسين المستوى الثاني الى هذا المستوى الجديد ليتم من خلاله تحكم اكبر وحماية على كل قطاع ثم قراءته من القرص بشكل صحيح وفي هذا ال

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية