منتديات برامج نت
عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا
ادارة المنتدي
منتديات برامج نت
عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا
ادارة المنتدي
منتديات برامج نت
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

منتديات برامج نت

برامج كمبيوتر و انترنت لغات برمجه و تطوير مواقع قسم خاص بالتصميم و الجرافيك
 
الرئيسيةPortalأحدث الصورالتسجيلدوره فى الاوراكل I_icon_mini_registerدخول
اهلاوسهلا بكم في منتديات برامج نت ارجو من جميع الزوار التسجيل مع تحيات $الادارة$

 

 دوره فى الاوراكل

اذهب الى الأسفل 
كاتب الموضوعرسالة
ملك الظلام

المشرف العام...}


ملك الظلام



دوره فى الاوراكل Empty
مُساهمةموضوع: دوره فى الاوراكل   دوره فى الاوراكل Icon_minitimeالأحد أبريل 19, 2009 9:35 am

بسم الله الرحمن الرحيم



مقدمة :



الحمد لله رب العالمين .. والصلاة والسلام على اشرف الانبياء والمرسلين .. سيدنا محمد وعلى اله وصحبه اجمعين .. وبعد ,,



محال ان تجبر شخص على عمل شيء لا يريده ...

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

وكل ما لدي قوله هو ان تساعد نفسك اولا .. فانا لا استطيع مساعدتك طالما لم ترد انت ذلك ...

وكلي ثقة انني سوف أساعدك على مساعدة نفسك ... بكل ما لدي من طاقة ... وان اترجم طاقاتك ابداعا ..

سأحاول بقدر المستطاع ان اجعلك تحصل على شهادة مطور اوراكل , وان اجعلك جديرا بحملها ,

ان اصبت فمن الله ... وان اخطأت فمن نفسي ومن الشيطان , فلا خير فيني ان لم اعترف بخطأي ... ولا خير فيكم ان لم تقوموني
الرجوع الى أعلى الصفحة اذهب الى الأسفل
ملك الظلام

المشرف العام...}


ملك الظلام



دوره فى الاوراكل Empty
مُساهمةموضوع: رد: دوره فى الاوراكل   دوره فى الاوراكل Icon_minitimeالأحد أبريل 19, 2009 9:40 am

الخطة الحالية :

-مقدمة عن قواعد البيانات ,,

-لغة الـ SQL

-لغة الـ PL\SQL

-الـ Forms

-الـ Reports

-دروس في بناء وتصميم قواعد البيانات

- - ماهية قواعد البيانات

من الممكن ان اضع دروس بناء وتصميم قواعد البيانات في البداية قبل لغة الـ SQL

اما من ناحية ماهية قواعد البيانات وبصراحة ... سوف اقوم بالبحث عن ماهية قواعد البيانات لأنني لم ابرمجها .. فسأحاول معرفة ماهيتها لكي اشرحها لكم بكل يسر وسهولة ,, لذا لن اطيل في تعريف قواعد البيانات كثيرا , وقصدي في ماهية قواعد البيانات .. طريقة برمجتها + كيفية عملها تقنيا
الرجوع الى أعلى الصفحة اذهب الى الأسفل
ملك الظلام

المشرف العام...}


ملك الظلام



دوره فى الاوراكل Empty
مُساهمةموضوع: رد: دوره فى الاوراكل   دوره فى الاوراكل Icon_minitimeالأحد أبريل 19, 2009 9:41 am

مقدمة عن قواعد البيانات

-----------------------------------------------------------------

المتوقع منك :

- فكرة بسيطة جدا عن قواعد البيانات

- معرفة نظام قواعد البيانات المتبع في منهجنا ... الا وهو " نظام قواعد البيانات العلائقية"

- معرفة نظام ادارة قواعد البيانات

- معرفة المكونات الخاصة بنظام قواعد البيانات

---------------------------------------------------------------

· ماهي قواعد البيانات؟...ولماذا قواعد بيانات ؟؟





لا يخفى علينا اهمية البيانات لاي مؤسسة ولاي غرض كان ...

مثلا نريد بيانات الطلاب في جامعة ما , لكل طالب له بياناته الخاصة ,مثل (اسم الطالب , رقمه الجامعي .....الخ)

الان نسمي كل بيان من بيانات الطالب بـ "حقل"(Field) , يعني حقل اسم الطالب , حقل الرقم الجامعي ,

الان نجمع هذه الحقول , لينتج ما يسمى بـ "سجل"(Record) , سجل الطالب احمد او بيانات الطالب احمد ...

الان لدينا سجل لاحمد ومحمد وصالح وفارس وكل الطلبة بالجامعة

اذا جمعنا جميـــــــــــع السجلات ... نتج ما يسمى بـ "قواعد البيانات" (DATABASE)



يعني ان قواعد البيانات هي مجموعة من البيانات والمعلومات مخزنة بطريقة نموذجية وخاصة ودون تكرار والمتصلة مع بعضها وفق علاقات متبادلة .

- اكتفي الان بأنها طريقة نموذجية وخاصة !!

- مع الملاحظ اننا بقدر الامكان ان لا نكرر البيانات .. حتى لا تكبر مساحة قاعدة البيانات .

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








· قواعد البيانات العلائقية :



قام علماء قواعد البيانات بتطوير قواعد البيانات .. وظهرت اشكال وانظمة عديدة لقواعد البيانات .. واشهر هذه الانظمة هي "نظام قواعد البيانات العلائقية" (علائقية ؟؟ ما معنى هذه الكلمة)

فكرة قواعد البيانات العلائقية هي .. مجرد جداول ...

جداول عديدة .. بينها علاقات (Relations)... (كيف ذلك ؟؟)

- معرفة المكونات الخاصة بنظام قواعد البيانات


---------------------------------------------------------------

· ماهي قواعد البيانات؟...ولماذا قواعد بيانات ؟؟





لا يخفى علينا اهمية البيانات لاي مؤسسة ولاي غرض كان ...

مثلا نريد بيانات الطلاب في جامعة ما , لكل طالب له بياناته الخاصة ,مثل (اسم الطالب , رقمه الجامعي .....الخ)

الان نسمي كل بيان من بيانات الطالب بـ "حقل"(Field) , يعني حقل اسم الطالب , حقل الرقم الجامعي ,

الان نجمع هذه الحقول , لينتج ما يسمى بـ "سجل"(Record) , سجل الطالب احمد او بيانات الطالب احمد ...

الان لدينا سجل لاحمد ومحمد وصالح وفارس وكل الطلبة بالجامعة

اذا جمعنا جميـــــــــــع السجلات ... نتج ما يسمى بـ "قواعد البيانات" (DATABASE)



يعني ان قواعد البيانات هي مجموعة من البيانات والمعلومات مخزنة بطريقة نموذجية وخاصة ودون تكرار والمتصلة مع بعضها وفق علاقات متبادلة .

- اكتفي الان بأنها طريقة نموذجية وخاصة !!

- مع الملاحظ اننا بقدر الامكان ان لا نكرر البيانات .. حتى لا تكبر مساحة قاعدة البيانات .

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

تابع الدرس الاول
الرجوع الى أعلى الصفحة اذهب الى الأسفل
ملك الظلام

المشرف العام...}


ملك الظلام



دوره فى الاوراكل Empty
مُساهمةموضوع: رد: دوره فى الاوراكل   دوره فى الاوراكل Icon_minitimeالأحد أبريل 19, 2009 9:42 am

· قواعد البيانات العلائقية :



قام علماء قواعد البيانات بتطوير قواعد البيانات .. وظهرت اشكال وانظمة عديدة لقواعد البيانات .. واشهر هذه الانظمة هي "نظام قواعد البيانات العلائقية" (علائقية ؟؟ ما معنى هذه الكلمة)

فكرة قواعد البيانات العلائقية هي .. مجرد جداول ...

جداول عديدة .. بينها علاقات (Relations)... (كيف ذلك ؟؟)

بمجرد وضع صفوف واعمدة ... العمود الواحد يمثل الحقل !! والصف الواحد يمثل سجل !!







هذا جدول الطلاب او قواعد البيانات الخاصة بالطلبة و به معلومات عن الطلبة ...
ونعمل جدول اخر للكليات مثلا وبه معلومات للكليات ... وجدول ثالث للمواد .... وهكذا ..





نقاط مهمة عن نظام قواعد البيانات العلائقية :



- نظام قواعد البيانات العلائقية اشهر واقوى الانظمة والتي تعتمد عليه اغلب برامج قواعد البيانات ومن ضمنها اوراكل

- لماذا هذا النظام بهذه القوة ؟

- لانه يستوعب قدر كبير جدا من البيانات

- لان ادائه من ناحية السرعة والدقة .. لا تتأثران مع كمية البيانات الضخمة

- لانه يتمتع بالسرية التامة والامان لاحتوائه على نظام اعطاء الصلاحيات






* نظام ادارة قاعدة البيانات DBMS (اختصار لـ Database Management Information System )



عبارة عن برامج .. والتي تعتبر حلقة الوصل بين المستخدم (المستخدم ؟؟ ومن هو المستخدم يا ترى؟) وقاعدة البيانات .

البرامج هذه تعدل على البيانات وتضيف وتحذف وتخزن البيانات , أي انها تدير البيانات .

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



هذه البرامج تسمى DBMS






* مكونات نظام قواعد البيانات :

1- المكونات المادية

مثل الحاسبات المتصلة بقواعد البيانات , الطابعات , اجهزة الاتصالات ..... الخ



2- البرمجيات او البرامج .

وهي ثلاث اقسام ,

- نظام التشغيل مثل وندوز او ماكنتوش او لينيكس.....

- برنامج قواعد البيانات مثل الاوراكل او الاكسس ...

- برامج تطبيقية وبرامج اخرى مساعدة : مثل التي تستخرج التقارير مثلا لعرضها وطباعتها على ورق .. او برامج لتصميم النوافذ والواجهات ....الخ .



3- المستخدمون .

وهم كما يلي :

* مدير النظام : الذي يدير عمل البيئة ككل ومهامه :

- يقوم بمتابعة عمل النظام ,

- يدير اجهزة التخزين والاجهزة الاخرى

- يدير المستخدمين ويعطي الصلاحيات المناسبة لكل مستخدم .



* مدير قاعدة البيانات : يقوم بادارة قاعدة البيانات ومهامه :

- يحدد متطلبات قواعد البيانات من برامج وتجهيزات ,

- يتابع نظام قواعد البيانات .

- يوفر الامن للنظام

- يحافظ على قواعد البيانات ويوفر الخدمات للمستخدمين الاخرين



*مصمم قاعدة البيانات : وهو الشخص الذي يصمم قواعد البيانات ومهامه :

- تحدد البيانات الواجب تخزينها في قواعد البيانات

- تصميم افضل التراكيب لحفظ البيانات

- تصميم قاعدة بيانات خالية من التكرار

- يصمم الشاشات والتقارير بطريقة سهلة للوصول الى البيانات والتعامل معها

- توثيق عملية التصميم وطرق الوصول للبيانات



*المبرمجون ومحللو النظم : وهم الذين يقومون ببرمجة النظام ومهامهم :

- تصميم النظام وبرمجته باللغة او اللغات البرمجية المقررة

- اختبار تلك البرامج للتأكد من خلوها من الاخطاء

- صيانة البرامج .



* المستخدم النهائي : وهو الذي يقول باضافة البيانات والتعديل والحذف وووو .. ويقوم باستخدام النظام ... على سبيل المثال مدخل البيانات





4- الإجراءات والعمليات : بعض القوانين التي تحكم قواعد البيانات .. وتختلف من مؤسسة الى اخرى ,



5- البيانات : هي اهم المكونات .. وهي الحقائق المخزنة مثل اسماء الطلاب وارقامهم وبقية البيانات الاخرى ..

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








لا يوجد عندي اسئلة ... غير ان هذا ليس كل شيء عن قواعد البيانات .. وسوف يكون هناك المزيد ان شاء الله ,,,
الرجوع الى أعلى الصفحة اذهب الى الأسفل
ملك الظلام

المشرف العام...}


ملك الظلام



دوره فى الاوراكل Empty
مُساهمةموضوع: رد: دوره فى الاوراكل   دوره فى الاوراكل Icon_minitimeالأحد أبريل 19, 2009 9:44 am

بسم الله الرحمن الرحيم
الدرس الثاني
ملاحظة مهمة : ما بين القوسين تنبيه او ما اتوقعه من القاريء

اسم الدرس : مدخلك الى تصميم قواعد البيانات

نوع الدرس : نظري مع مفاهيم أساسية ...

صعوبة الدرس : *** من *****

الوقت المتوقع منك لفهم الدرس : ساعة و 30 دقيقة ربما تزيد كثيرا أو تنقص

متطلبات تتوفر فيك : تحمل على قراءة السطور .. وتفهمها لكي ترتاح مستقبلا

ملاحظات :

- قد لا تفهم بعض النقاط !! لا تخف .. سوف تعرفها بالتمرس والتكرار فيما بعد ,,

- أصابني التعب والإعياء في هذا الدرس الصغير , لكي اجعله مفهوم لدرجة أن الأبله يفهمه !



المتوقع منك في هذا الدرس :

- معرفة أكثر عن قواعد البيانات

- معرفة أكثر في قواعد البيانات العلائقية

- معرفة ما هو المفتاح الاساسي

- العلاقات وانواعها

- ماهو المفتاح الاجنبي

===================================

قواعد البيانات .. بتعمق :
تحدثنا عن قواعد البيانات وقلنا انه مجموعة من البيانات مخزنة بطريقة نموذجية دون تكرار والمتصلة مع بعضها وفق علاقات متبادلة .

وانها ملفات تركيبتها خاصة .. (لماذا لها هذه التركيبة الخاصة ؟) لكي تستوفي بعض الشروط وبعض المميزات سوف اذكر بعض منها .. بعد ان قرأتها في احد المذكرات الالكترونية من الكاتب "الاسيف" جزاه الله الف الف خير وبعض المميزات مايلي :

- عدم تكرار البيانات

- تجانس وتوافق البيانات : أي مهما حدث من تغيير في البيانات لا تتأثر بنية البيانات

- قابلية التطوير : بامكاننا ان نطور قاعدة البيانات بسهولة وبدون ان نحذف القديم

- استقلالية البيانات عن البرامج .

- السرية

- امكانية وصول اكثر من مستخدم لقواعد البيانات



ذكر لنا الاخ أسيف انه يوجد احد الانظمة القديمة التي تسمى بنظام الملفات التقليدية وهو نظام استخدم قبل قواعد البيانات.. كانوا يخزنون البيانات في ملفات مستقلة (مستقلة = لا يوجد بينها علاقة ) وبها عيوب وهي :
- التكرار :

مثلا للطلاب ملف خاص وبهذا الملف معلومات الطلاب . اسم الطالب , رقم الطالب , معدله ......
للمدرسين ملف خاص وبهذا الملف معلومات المدرسين . اسم المدرس , رقم المدرس , راتبه ....
طيب ... لو اردنا اسماء المدرسين الذين الطالب احمد ؟ او اسماء كل الطلبة الذين يدرسون عند المدرس خالد ؟ مالحل ؟ طبعا ملف ثالث وفيه اسماء الطلبة ومدرسيهم .. يعني تكراااااااار ...
سوف يتم كتابة معلومات الطلبة والمدرسين مرة اخرى في هذا الملف الثالث
ولا اعرف ما اذا كان في هذا النظام القديم يتم عمل ملف رابع وفيه اسماء المدرسين وطلبتهم ؟ ولكن لا نستغرب اذا كان هناك ملف رابع .



- عدم توافق البيانات

يجب ان لا نفقد تجانس وتوافق البيانات اذا عدلنا او اضفنا او حذفنا بيانات ,, لكن في مثالنا السابق.. قلنا انه يوجد ملف طلاب .. وملف مدرسين .. وملف الطلاب ومدرسينهم , فلو حذفنا طالب في ملف الطلاب ولم نحذفه في الملف الثالث (الملف المشترك بين الطلاب والمدرسين) فسوف نجد معلوماته في ملف و ولا نجده في الملف الاخر .

فهذه ميزة في قواعد البيانات , وهي عيب في نظام الملفات التقليدية .



- زيادة زمن بناء الانظمة :

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



- الحاجة المستمرة لاعادة هيكلة البرامج والملفات : أي ان التطوير صعب جدا .. يفرض علينا ان نغير ونبدل ونضحي عن بعض هيكلة البرامج والملفات القديمة .



==========================================


قواعد البيانات العلائقية ... بتعمق
تحدثنا عن نظام قواعد البيانات العلائقية .. وقلنا بأنه تمثيل البيانات بجداول ثنائية الابعاد (2D- Table ) , صفوفها سجلات , واعمدتها حقول .

الان اريدك ان تعرف مسمى للاعمدة .. لان المسميات مزعجة قليلا .. فمثلا Attribute" " (خصائص .. او صفات ).... فهي تخص الاعمدة .. أي ان الحقول (Field) هي نفسها خصائص هي نفسها صفات هي نفسها الاعمدة .



الان يجب ان نراعي في قاعدة البيانات العلائقية وجود المفاهيم التالية :

- اسم للجدول : مثل جدول الطالب , جدول المواد , جدول ......

- الصفات : المقصود بها الاعمدة .. تسمى صفات الجدول كما ذكرنا ... مثل اسم الطالب , رقم الطالب ..... الخ

- مجال القيم (Domain) :المقصود بها .. القيم الموجودة بداخل اسم الطالب مثلا , كم تأخذ حرف ؟ مثال اخر , رقم الطالب .. ماهو مجاله ؟؟ يعني هل من 0 – 9999 ؟؟ او من 0- 100000 مثلا ؟؟ ويمكننا تحديد مجال القيم لكل صفة على حسب احتياجنا .(لم افهم؟)

مثلا العمود "اسم الطالب" انا افرض انه يأخذ 15 حرف كحد اقصى .. و3 حروف كحد ادنى
والعمود "المعدل " افرضه من صفر الى 5 وان يكون كسري
والعمود "راتب المدرس" مثلا .. افرضه من 3500 ريال الى 9000 ريال ... بالعقل يعني هل من الممكن ان يكون راتب مدرس صفر ريال ؟؟ اذن مجال راتب المدرس هو من 3500 الى 9000

- العلاقة (Relation) : مثلا جدول المواد وجدول الطلاب , بينهما علاقة (Relation) ماهي هذه العلاقة ؟ سوف تعرف ذلك فيما بعد

- المفتاح الرئيسي للجدول (Primary key) : ماهو هذا المفتاح ؟ مجرد عمود , ولكن هذا العمود له شروط لكي يصبح مفتاح رئيسي للجدول .





* المفتاح الاساسي :

الشروط اللازمة لتوفرها في العمود لكي يكون مفتاح اساسي هو :

1- عدم التكرار

2- ان لا يكون خالي

وهذا العمود له غرض مهم جدا . وهو ان نميز الصف من بين الصفوف (لم افهم ؟)

انظر المثال :
يوجد لدينا جدول خاص بالموظفين لاحد الشركات
جدول الموظفين كما يلي : (صورة 12 )




مارأيك .. ما هو العمود الذي ترى انه مفتاح اساسي .. أي عمود لم يتكرر او لم يكن خاليا ؟

انا اقول "اسم الموظف الاول " ... هذا العمود هو المفتاح الاساسي !! هل هذا صحيح ؟ طبعا لا ,, لماذا ؟ لانه تكرر فيه صفين .. هما خالد و خالد

هل "اسم الاب " هو المفتاح الاساسي ؟ لا لان سعيد تكرر مرتين .
هل "الراتب " هو المفتاح الاساسي ؟ لا
هل تاريخ الميلاد هو المفتاح الاساسي ؟ لا
هل المكافئة الاضافية هو المفتاح الاساسي ؟ نعم لانه لم يتكرر ... ولكن لحظة !! قلنا انه من صفات المفتاح الاساسي ان لا يتكرر + ان لا يكون فيه قيم خالية
والمكافئة الاضافية .. عمود لا يستحق ان يكون مفتاح اساسي . لان به قيم خالية ... فمثلا محمد سعيد الثاني لا يوجد لديه مكافئة اضافية (قيمة خالية)
(ما الحل ؟) نضيف عمود نجده يصلح بأن يكون مفتاح اساسي

(لماذا نضيف عمود .. ونزيد كمية البيانات بلا داعي؟) بل يوجد هناك سبب مقنع لاضافته ..
من جدول الموظفين (الصورة 12 السابقة ) اريد معلومات خالد منصور بذاته ... سوف تجد ان هناك اثنين ولا استطيع التمييز بينهما يمكن يكون هناك 1000 موظف اسمه خالد منصور ولا نعرف ان نفرق بينهما

انا من ناحيتي ... ارى ان نضيف عمود جديد ويسمى "رقم بطاقة الاحوال المدنية" وهو رقم لا يتكرر ابدا بين المواطنين في دولة ما .. ولا يمكن ان يكون خاليا !!

ماذا تقترح انت ؟ مارأيك ان نضيف مثلا عمود يسمى رقم الموظف كما في الجدول التالي (الصورة22)




اذن المفتاح الاساسي هو رقم الموظف ... لو أتى موظف جديد نعطيه الرقم 6 ...

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

-------------------------------------------------------------------

معلومة اضافية : بعض الشركات تعمل برامج خاصة تولد المفتاح الرئيسي (كيف تولد المفتاح الرئيسي ؟)

مثلا تأخذ اول حرف من اسمه واول حرف من اسم الاب وتأخذ سنة ولادته وتضيف عداد بجانب الرمز الناتج على سبيل المثال وتولد المفتاح الاساسي من هذه المعلومات . على سبيل المثال .. الموظف سامي عبدالرحمن (انظر الصورة 22) ممكن يكون رمزه " سع 1401_01" بدلا من الرقم 5 (في الصورة 22)

ولو فيه موظف اخر اسمه سامي عبدالرحمن ومولود في نفس سنة سامي عبدالرحمن السابق فان رمزه هو

"سع 1401_02"

وهذا مجرد مثال .... على حسب الشركة على حسب الغرض ينتج الرمز .


تابع الدرس التانى
الرجوع الى أعلى الصفحة اذهب الى الأسفل
ملك الظلام

المشرف العام...}


ملك الظلام



دوره فى الاوراكل Empty
مُساهمةموضوع: رد: دوره فى الاوراكل   دوره فى الاوراكل Icon_minitimeالأحد أبريل 19, 2009 9:44 am

تابع الدرس الثاني

العلاقات :
بين كل جدول وجدول علاقة , فمثلا جدول الموظفين و جدول الأقسام بينهما علاقة

العلاقة ما هي يا ترى ؟

العلاقة هي ان الموظف الواحد يعمل تحت قسم واحد

وان القسم الواحد به اكثر من موظف يعمل به

ما رأيك ان نفترض هذا الجدول (الصورة 32) :






لاحظ معي هذه المعلومات , انظر الى قسم المحاسبة وهو قسم واحد ويوجد بمكة ويستوعب 60 شخص ...

لاحظ معي ان هذا القسم به 3 موظفين وهم وليد وسعد واحمد ...

لاحظ معي ان القسم به معلومات خاصة تكررت !!

كم مرة ذكرنا ان قسم المحاسبة موقعه في مكة وانه يستوعب 60 موظف ؟؟

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

نكتشف انه يوجد تكرار للمعلومات !! ويجب ان نتحاشى هذا التكرار . كيف ؟

نصمم جدول خاص بمعلومات الاقسام . وليكن هذا الجدول (صورة 42) "جدول الاقسام "








اين المفتاح الاساسي ؟

رقم القسم هو المفتاح الاساسي (لاحظ الخط الذي تحت رقم القسم )

الان دعنا نتصور الجدول الاساسي وقد صار فيه معلومات الموظفين ونسميه مثلا "جدول الموظفين "

الصورة (52)




نريد ان نعرف ان الموظف يوسف مثلا في قسم الرواتب !! كيف ؟؟ نريد ان نربط بين الجدولين ؟؟ كيف نربط بين الجدولين ؟؟

اليك هذا الحل :

نزيد عمود في جدول الموظفين ونسميه "رقم القسم" ونكتب رقم القسم فيه ... اليك الجدول الجديد (الصورة 62)









لاحظ هذه الارقام (ارقام القسم ) لم تأتي عبطا !!

فاحمد وسعد ووليد ... جميعهم في القسم رقم واحد ,,, والقسم رقم واحد من أين نأتي به ؟؟ من جدول الاقسام (راجع الصورة 42)

وهو المحاسبة ومقر القسم بمكة ويستوعب 60 شخص ....

يوسف في القسم 2 .. وهو قسم الرواتب الذي يقع في الرياض ويستوعب 40 موظف

(وماذا عن سالم ؟)

(لم افهم حقا ما حصل !! لماذا فصلتهما في جدولين ؟ لماذا فعلت ذلك ؟)

لاحظ يا عزيزي انه في الصورة 62 قد تكرر الرقم "واحد" ثلاث مرات ... (نعم صحيح .. اذن طريقتك خاطئة !)

ليست طريقة خاطئة ولكن كم عمود به تكرار ؟ عمود واحد وهو رقم القسم فقط ... شاهد الصورة 62

واما الجدول القديم (الصورة 32) فقد تكررت المعلومات في ثلاث اعمدة !! وهي اسم القسم ومكانه واستيعابه .

(طيب .. لم تفرق كثيرا ..)

بل تفرق كثيييييييييرا لو فكرت مليا !! ... فكر لو يوجد 1000000 موظف كم من البيانات تتكرر في الجدول السابق (انظر الصورة 32) ؟؟

فكر لو ان جدول الاقسام به 50 عمود ... كم من البيانات سوف تتكرر ؟؟؟

الان ... هل شاهدت العمود الذي اضفته في جدول الموظفين (اقصد عمود رقم القسم ) ؟(انظر الصورة 62)

هذا العمود يدعى المفتاح الاجنبي Foreign Key (ما فائدة هذا المفتاح ؟؟ وكيف اعرف ما اذا كان هذا العمود مفتاح اجنبي او لا ؟؟)

المفتاح الاجنبي :

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

( كيف أميز المفتاح الاجنبي ) المفتاح الاجنبي هو مفتاح اساسي في جدول اخر .. أي انه مفتاح اساسي في جدول الاقسام , وهو في جدول الموظفين اجنبي !!

(استنتجت شيء !! هل يوجد مفتاح اجنبي في جدول الاقسام ؟؟ ) لا لا يوجد (لماذا ؟على أي اساس اضيف المفتاح الاجنبي ؟)

نحن اضفنا عمود في جدول الموظفين وسميناه مفتاح اجنبي ولم نضيف مفتاح اجنبي في جدول الاقسام لسبب .. ستعرفه في الدرس القادم ان شاء الله :

اريدك الان ان تستنتج ذلك عبر درجات العلاقات


درجة العلاقات :

سوف نتكلم نظريا عن مفاهيم هذه الدرجات فهناك ثلاث درجات وهي /

- واحد لواحد : مثل علاقة المسافر بالتذكرة ... فالمسافر الواحد يملك تذكرة واحدة للرحلة الواحدة .. والتذكرة الواحدة يمتلكها مسافر واحد للرحلة الواحدة

هل يمكن لمسافرين ان يمتلكان تذكرة واحدة للرحلة الواحدة ؟؟ لا .... وهل يمكن للمسافر ان يمتلك تذكرتين للرحلة الواحدة ؟ لا طبعا ...

مثال اخر ...

الشخص الواحد لديه روح واحدة .... الروح الواحدة في شخص واحد ...

- واحد لمتعدد أو متعدد لواحد : مثلا ان يعمل الموظف الواحد في قسم واحد .. والقسم الواحد يعمل تحته مجموعة موظفين (موظفين متعددين .. يعني ممكن يكون موظف واحد ويمكن اكثر ) هل استنتجت لماذا اضفنا المفتاح الاجنبي في جدول الموظفين ؟

مثال اخر .. العلاقة بين رجل وامرأة الزواج .. الرجل يتزوج اكثر من امرأة (طالما انهم جميعا احياء) وان المرأة لا تتزوج الا رجل واحد (طالما انهما احياء)....

- متعدد لمتعدد : مثل .. الطالب يدرس تحت مجموعة معلمين ... والمعلم الواحد يدرس اكثر من طالب

مثال اخر .....

الكابتن الواحد يقود اكثر من طائرة ... والطائرة الواحدة يقودها اكثر من كبتن



انتهى الدرس ولله الحمد





الواجب :

نوعه : اعتمادي على الطالب

ملاحظات :

اريد منك شيء واحد .. اقرأ الدرس جيدا ... ثم حل الواجب بدون ان ترجع للدرس ... لان فيه تمرين العقل وقوة استيعابه ... وهو تكنيك رااااااائع



س1 : اضرب لي 3 امثلة لم اذكرها لدرجة العلاقات (واحد لواحد ... و متعدد لمتعدد ... و متعدد لواحد او واحد لمتعدد)



س2:في رأيك ... عندنا جدولين .. ويلزمنا ان نربط بينهما ... هما جدول المدينة وجدول الدولة

اين نضع المفتاح الاجنبي ؟ في أي جدول ؟



س3: اشرح لي مايلي بطريقتك الخاصة وبفهمك .. ولا يهمني اذا كان صحيح ام خاطيء:

- المفتاح الرئيسي ماهو ؟ ولماذا نستخدمه ؟ ومتى نعرف ما اذا كان هذا مفتاح اساسي او لا ؟

- المفتاح الاجنبي ماهو ؟؟ ولماذا نستخدمه ؟ ومتى نعرف ما اذا كان هذا مفتاح اجنبي او لا ؟

- قواعد البيانات ماهي ؟

- نظام قاعدة البيانات العلائقية ما هو ؟



س4 : فكر في جدولين (مثال من عقلك لاي جدولين ) واضف مفتاح اساسي , ولو استطعت اضف مفتاح اجنبي ...
الرجوع الى أعلى الصفحة اذهب الى الأسفل
ملك الظلام

المشرف العام...}


ملك الظلام



دوره فى الاوراكل Empty
مُساهمةموضوع: رد: دوره فى الاوراكل   دوره فى الاوراكل Icon_minitimeالأحد أبريل 19, 2009 9:45 am

بسم الله الرحمن الرحيم


الدرس الثالث
اسم الدرس :نموذج الكيانات والعلاقات ER



نوع الدرس : نظري + رسومي + تحليلي


صعوبة الدرس : **
*** من *****

اهميــة الدرس : ***** من *****

الوقت المتوقع منك لفهم الدرس : ساعتين و 30 دقيقة ربما تزيد كثيرا أو تنقص

متطلبات تتوفر فيك : تحمل على قراءة السطور + التأمل

ملاحظات :








- يجب ان تتمرس كثيرا ,,


















المتوقع منك في هذا الدرس :





معرفة
مشاكل تكرار البيانات بشكل اعمق .
معرفة تحليل نموذج ER .

* المفتاح الاجنبي :

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

(ماهي هذه المشاكل ؟) المشاكل هي :

مشاكل الاضافة
مشاكل الحذف
مشاكل التعديل
سوف اعرض مثال .... على هذه المشاكل ,,

انظر هذا الجدول (صورة 13)








جدول خاص بالاطباء والمستشفيات التي يعملون فيها .


تكررت البيانات كما تعرفون .. والحل هو فصله الى جدولين , جدول الاطباء وجدول المستشفيات

سوف استعرض لكم مشاكل تكرار البيانات في هذا الجدول (الصورة السابقة 31)




مشاكل الاضافة : لو اردنا ان نضيف مستشفى جديد ؟؟ ماذا برأيك ان نعمل ؟؟
سوف نضيفه هكذا (الصورة
23)








لايوجد طبيب ؟؟ ... وقلنا ان المفتاح الاساسي لا يتكرر ولا يكون خالي ؟؟


ولكن رقم الطبيب مفتاح اساسي .. واصبح خالي ؟؟

هنا تكمل المشكلة ... سوف نضطر الى اضافة طبيب جديد مع أي اضافة لمستشفى جديد ... وهذه مشكلة ..














مشاكل الحذف :
في الجدول السابق (صورة
13) احذف لي الطبيب حسن .... مالذي يحدث ؟؟ (انظر الصورة 33)





سوف تختفي مع معلومات حسن ... معلومات المستشفى ج والذي يقع بالمدينة الوسطى!!......



(وماذا في ذلك ؟؟ ارى انه طبيعي ) المشكلة .. لو اردت الان معلومات المستشفى ج ... اين هي ؟؟؟


هل فهمت ؟؟


مشاكل التعديل :
وقع زلزال عنيف .. في المدينة الشرقية ... واسفر عن ذلك 3 حالات جروح طفيفة ... ولم يحدث وفاة ولله الحمد ... ولكن ... المستشفى ب في المدينة الشرقية ... تدمر عن بكرة ابيه ...

افتتح مؤخرا مستشفى ب الجديد ... والذي يقع في المدينة الشمالية الشرقية ....

نريد ان نعدل هذه المعلومة في الجدول .. نريد ان نجعل المستشفى ب بالمدينة الشمالية الشرقية .. مالذي يحدث ؟؟

سوف يتم تعديل جميـــــــــــــــــــــــــع السجلات (الصفوف) الموجودة بالجدول والتي تحتوي على القيمة "المدينة الشرقية" ... لاحظ ذلك (الصورة 43)











اضطررنا ان نعدل على 3 صفوف ...(هه .. 3 صفوف فقط .. مالمشكلة)
تخيل معي لو انه يوجد 1000000 طبيب بالمدينة الشمالية الشرقية .... كم صف سوف نعدل ؟؟؟(اوبس ..)

والان .. هذه المشاكل ... وحلها فصل الجدول الى جدولين .. جدول الاطباء وجدول المستشفيات .

كما في الصورة
53 والصورة 63 ..

















( الصورة 53 )










(الصورة 63)














هل تستطيع ملاحظة المشاكل كيف اختفت ؟؟














هل شاهدت المفتاح الاجنبي ؟؟ اين هو ؟؟

















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


لماذا يوجد مفتاح اجنبي في جدول الاطباء .. ولا يوجد في جدول المستشفى ؟

لان العلاقة بين المستشفى والطبيب هي واحد لمتعدد ومتعدد لواحد .

في المستشفى الواحد مجموعة اطباء .... الطبيب الواحد يعمل تحت مستشفى واحد

لاحظ كلمة "مجموعة" .... المستشفى به "مجموعة" اطباء ... ضع المفتاح الاجنبي في جدول الاطباء وانت مغمض العينين .

لو ان العلاقة واحد لواحد ؟؟

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
















لو ان العلاقة متعدد لمتعدد ؟؟


سوف نستعرض حل هذه العلاقة في أمثلة نموذج العلاقات والكيانات .





تابع الدرس الثالث
الرجوع الى أعلى الصفحة اذهب الى الأسفل
ملك الظلام

المشرف العام...}


ملك الظلام



دوره فى الاوراكل Empty
مُساهمةموضوع: رد: دوره فى الاوراكل   دوره فى الاوراكل Icon_minitimeالأحد أبريل 19, 2009 9:46 am

النموذج العلائقي الكياني
(Entity Relationship Diagram )






* تصميم قواعد اليبانات :



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

وما على المبرمج الا ان يأخذ التخطيط ويبرمجه (ينفذه) .

وفي برمجة قاعدة البيانات ... سوف نتوقع من المصمم ان يصمم نموذج يدعى النموذج العلائقي الكياني .



* ماهو النموذج ؟

هو مجرد تمثيل البيانات ووصفها والحقائق بالرسوم .. (وصف الحقائق بالرسم )

أي ان النموذج هو عبارة وصف رسومي (تمثيلي) للحقائق التي لا يمكن ان ترى مباشرة

(ولماذا نوصف البيانات بالرسم ؟)

لانها تعتبر اللغة ما بين المصمم والمبرمج .





مثال :



المهندس المعماري يصمم بالرسم نموذج لمنزل ما .. المقاول ينفذ التصميم (ينفذه بالبناء)
المصمم لقاعدة البيانات يصمم النموذج .. المبرمج يبرمج وينفذ التصميم .
المصمم (المهندس) يرسم ويخطط .. والمبرمج (المقاول) ينفذ ويبني .




* اجزاء هذا النموذج :
النموذج العلائقي الكياني هذا .. هو عبارة عن مجموعة من :





الكيانات
صفات الكيانات
العلاقات بين هذه الكيانات


سوف نشرح بشيء من التفصيل .. عبر هذا المثال لطلاب ومدرسيهم :

انظر الشكل (صورة 73)




الكيان
(Entity) :














سوف تشاهد في الصورة ... مستطيلات .. مستطيل للمعلم .. ومستطيل للطالب

هذه المستطيلات ترمز للكائنات أو الكيانات . والكيان في الاصل هو ما يهمنا في أي نظام .. فمثلا نظام الطلاب يهمنا الكيان "طالب" والكيان "مادة" والكيان "معلم" والكيان "قاعة" ..... الخ

وعلى حسب النظام ... تظهر هذه الكيانات ... ولا يخفى علينا ان ايجاد الكيانات تخصص بحد ذاته .

من الممكن ان يكون الكيان مايلي :





شخص : مثل الزبون , المبرمج , المدير......
مكان : موقع , مدينة , حي .
...
شيء : قطعة غيار , سيارة , بيت ......
حدث : طلب , تسجيل , تجديد .......
مفهوم : رحلة , مشروع , تكلفة .....




قد تجدها صعبة الفهم في هذه المرحلة .. وقد تجدها مفهومة جدا , ولكن أشيرإلى أن الكيان يمثل عادة الجدول في منهجنا هذا
.







الصفة :



تشاهد في الصورة أن كل كيان ينبعث منه أشكال بيضاوية .... وهي تمثل صفات الكيان

فالكيان المعلم له صفاته وهي الاسم والرقم ... والكيان الطالب له صفاته وهو الاسم والمعدل والرقم .









والصفة تمثل عادة بحقول أو أعمدة الجدول .
































العلاقة :



المعين .. يرمز لنوع العلاقة بين الكيانات .. وفي الصورة نلاحظ ان العلاقة بين المعلم والطالب وهي علاقة "تدريس"

نشير ان الطالب الواحد يتعلم من مجموعة معلمين

وان المعلم الواحد يعلم مجموعة طلبة أي نوع العلاقة متعدد لمتعدد ... ستشاهد في الصورة حرفي
M و N












نمثل العلاقة واحد لواحد بالشكل التالي (الصورة 83) :






العقل الواحد بالشخص الواحد .. والشخص الواحد يملك عقل واحد ... العلاقة هي الملكية .. لاحظ الرقم واحد عند العقل وعند الشخص




نمثل العلاقة واحد لمتعدد ومتعدد لواحد بالشكل التالي (الصورة 93) :













لاحظ في الصورة 93 ... ان المدير الواحد يدير مجموعة موظفين .. وان الموظف الواحد تحت إدارة مدير واحد !!..



انظر أين علامة المجموعة ... انها بالقرب من الكائن "موظف " ورمزنا لها بالرمز
M





نضع الرمز الخاص بالتعدد (M) بالقرب من الكائن موظف لاننا قلنا مجموعة موظفين (بالمنطق تفهمها )




امثلة لنماذج اخرى :

الكيان الضعيف
(Weak Entity) :



الكيان كما قلنا هو شيء يهمنا في النظام , بعض هذه الكيانات لا تظهر الا بظهور كيانات اخرى وتسمى الكيانات الضعيفة .. وهي التي تعتمد على الكيانات الاخرى ..سأعطيك امثلة معنوية لهذا المفهوم :

لا يوجد العقل البشري الحي والذي يفكر طالما انه لا يوجد انسان اصلا (العقل هنا كيان ضعيف )

لا يوجد معدل طالما انه لا يوجد درجات اصلا (المعدل هنا كيان ضعيف)

لا يوجد خادم طالما انه لا يوجد سيد اصلا (الخادم هنا كيان ضعيف)

لا يوجد نظر طالما انه لا توجد العينين اصلا (النظر كيان ضعيف يعتمد وجوده على وجود العينين
)




لا يوجد ابن طالما انه لا يوجد اب اصلا (الابن كيان ضعيف وجوده يعتمد على وجود كيان الاب)

طيب ...

مارأيك في هذه الجملة ..

لا توجد برامج طالما انه لا يوجد كمبيوتر ...

هنا من الممكن ان يكون لدينا برامج ... بالرغم من اننا لا نملك كمبيوتر ... وهنا البرامج ليست كيان ضعيف ...

انظر الى الجملة حينما تكون بالشكل التالي :

لا توجد برامج طالما انه لا يوجد كمبيوتر اصلا (اصلا أي على ارض الواقع )

فهنا اصبحت البرامج كيان ضعيف .. لانه لو لم يكن هناك شيء اسمه كمبيوتر .. ولم يخترعه الانسان .. فلا وجود لبرنامج الـ
Real Player مثلا !! ... ارجو ان تتعمق في التأمل ,,






نمثل الكيان الضعيف على نموذج
ER بهذا الشكل ....(انظر الصورة 103)









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





الصفات البسيطة والمركبة (Simple And Composite Attributes ) :



ان الصفات الخاصة باي كيان .. تكون عادة بسيطة ... مثل صفة رقم الطالب للكيان الطالب او صفة تاريح الميلاد للكيان المعلم .... وكلها صفات بسيطة ...

الصفة المركبة .. هي صفة بامكاننا ان نقسمها .... فمثلا رقم الطالب لا يمكننا ان نقسمه .. ولكن اسم الطالب نقسمه للاسم الاول .. والاسم الثاني ... واللقب .. انظر (الصورة 113 )





الصفات المتعددة القيم ... والصفات الوحيدة القيم (Single-Value and Multiple-Value Attributes) :



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

انظر شكل الصفات المتعددة القيم (صورة 123) :








كما تشاهد في الصورة , الطالب لديه ارقام تلفون متعددة .





الصفات المشتقة (Derived Attribute ) :



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



انظر شكل الصفات المشتقة (الصورة 133)














أي ان معدل الطالب بامكاننا ان نوجده من صفات اخرى مثل الدرجات وعدد الساعات المدروسة .... الخ








اشير الى نقطة في الصفات المشتقة انها لا تخزن عادة ... بل نوجدها في كل مرة نريدها , ولكن اذا كان ايجادها صعب ومعقد وتأخذ وقت طويل فيفضل ان نخزنها .. فمثلا معدل الطالب , اذا كنا نطلبه كثيرا ..فيجب ان نخزنه.



5- الانواع الرئيسية والانواع الفرعية (Super-type and Sub-type ) :









نقصد بها الكيانات الرئيسية والكيانات الفرعية , مثال :

الكتب , منها نوعين
..

كتب الكترونية وكتب ورقية .
صحيح ان النوعين كتب .. ولكن لكل منها صفات خاصة بها .
الكتب الالكترونية تقاس بالحجم الالكتروني .
الكتب الورقية تقاس بالوزن .
كلا النوعين كتب , وتتكلم عن تخصص معين
.



انظر الشكل كما يلي : (الصورة 143 )








لاحظ المثلث المقلوب , حيث انه يشير الى تفرع النوع الرئيسي للانواع الفرعية ,



ولا تغفل عن امكانية انقسام الكيانات الى اكثر من قسمين ,,,











6- تمثيل علاقة الكيان مع نفسه :



كما شاهدنا العلاقات بين كيان واخر , فمن الممكن ان نشاهد علاقة كيان مع نفسه , امثلة :






الانسان (ونقصد به أي انسان سواء ذكر او انثى ) يتزوج انسان اخر .
الموظف يدير موظف او مجموعة موظفين اخرين .
المواد تتطلب مواد اخرى سابقة .
انظر الى شكل العلاقة في الصورتين (لا تسألني لماذا لم اجعلهما في صورة واحدة , يوجد سبب ^_^): (الصورة 153)







لاحظ ان الموظف الواحد يدير مجموعة من الموظفين ... علاقة واحد لمتعدد ومتعدد لواحد









(الصورة 163)










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

المشرف العام...}


ملك الظلام



دوره فى الاوراكل Empty
مُساهمةموضوع: رد: دوره فى الاوراكل   دوره فى الاوراكل Icon_minitimeالأحد أبريل 19, 2009 9:50 am

الدرس الرابع :


اسم الدرس :نموذج الكيانات والعلاقات ER



نوع الدرس : نظري + رسومي + تحليلي


صعوبة الدرس : **** من *****

اهميــة الدرس : ****** من ***** (Over)

الوقت المتوقع منك لفهم الدرس : 4 ساعات ربما تزيد كثيرا أو تنقص

متطلبات تتوفر فيك : التركيز و الصبر والتحليل الصوري ,,






المتوقع منك في هذا الدرس :


- القدرة على التحليل المنطقي .





- معرفة اين يوضع المفتاح الاجنبي عادة .





- القدرة على تحويل أي نظام الى نموذج العلائقي الكياني( ER )







هيا لنؤركل ^^





قبل البدأ بالدرس .. احب ان اشير لنقطة مهمة جدا جدا جدا ,,


نحن لا نصمم قواعد البيانات ولا نصمم الجداول على كيفنا .... لا يا حبيبي ...

نحن نمشي على وصف .. على متطلبات من الزبون .. نمشي على هذه المتطلبات ولا نبرمج ونصمم متطلبات لا يريدها الزبون .. ولا أن نترك متطلبات يريدها الزبون !!

أي انك انت مبرمج ... تنتظر خرائط رسومية ونماذج من المصمم , وتمشي عليها وتبرمج عليها ولا تزيد ولا تنقص شيء !! هل فهمت ...




قاااعدة مهمة (قاعدة رقم 1): على حسب المتطلبات .. نبرمج .. اوكيه ..




حتى المصمم ... يصمم على حسب ما جائه من محلل النظم ..
حتى المحلل ... يحلل النظام على حسب ما جائه من معلومات من الزبون نفسه ...
نحن نعمل كفريق عمل ... وانت مكانك في هذا الكورس هو المبرمج .... والذي يتلقى النماذج والرسوميات من المصمم ...
نتطرق لموضوع المفتاح الاجنبي ...
الرجوع الى أعلى الصفحة اذهب الى الأسفل
ملك الظلام

المشرف العام...}


ملك الظلام



دوره فى الاوراكل Empty
مُساهمةموضوع: رد: دوره فى الاوراكل   دوره فى الاوراكل Icon_minitimeالأحد أبريل 19, 2009 9:51 am

تابع الدرس الرابع




* ماهي حقيقة المفتاح الاجنبي (Foreign Key) :







سابقا درسنا مشكلة التكرار ... وحليناها بطريقة ربط الجداول ... ووضع المفتاح الأجنبي في احد هذه الجداول ..
المفتاح الأجنبي مرة ثانية هو عمود يتكرر ولا يمكن ان يكون خاليا ... وهو مفتاح رئيسي في جدول اخر ..




المصيبة انه لا علاقة له بالجدول .. والمصيبة الأعظم انه يشبه شكليا المفتاح رئيسي في الجدول الاخراليك مثال : لجدولين .. وتركيبهما صحيح (لاحظ .. صحيح ...)

جدول الموظفين (صورة 134)













وجدول الاقسام (صورة 144)








في جدول الموظفين يوجد مفتاح اجنبي .. وهو رقم القسم ( Dept_no ) لونته باللون الاحمر ...

المفتاح الرئيسي هو عمود لايتكرر ولا يمكن ان يكون خاليا ...وهو رقم الموظف واعطيناه الاختصار (Eno)

على فكرة .... لماذا يلزمنا المفتاح الرئيسي ؟؟



تخيل معي ان صاحبك يدعى سعد Saad .... وهو موظف

سعد .. كذب عليك وقال " راتبي 4000 دولار وانا في القسم A " ... وانت تريد ان تتجسس وتطلع على راتب سعد وعلى معلوماته ... تخيل ان عدد الموظفين ضخم جدا ... تخيل عددهم 1000000 موظف (يعني 1000000 صف في الجدول الخاص بالموظفين (في صورة 134) ) ... 250000 موظف منهم ... يدعون بـسعد (Saad) بالله عليك قول لي ... كيف نعرف اين معلومات سعد صاحبك ؟؟

عشان نميز بين الصفوف .. نضع المفتاح الرئيسي .... انظر الصورة 134 .... فالموظف Saad صاحب الرقم 123333 ليس نفسه Saad صاحب الرقم 123334 ......



لاحظ المفتاح الاجنبي (صورة 134 .. عمود باللون الاحمر)

الان اريدك ان ترى جدول الاقسام (الصورة 144) ,, وان ترى المفتاح الرئيسي (رقم القسم Dept_no) .

اكيـــــــد انك استنتجت عدة نقاط ... اليك هذه النقاط ....

1- المفتاح الاجنبي في جدول الموظفين .. يشبه المفتاح الرئيسي في جدول الاقسام

2- لاحظ ان المفتاح الاجنبي في جدول الموظفين .. رقم ... مثله مثل المفتاح الرئيسي .. وليس كلمة !!

3- هل تلاحظ ان المفتاح الاجنبي لا يمكن ان يكون خالي ؟؟ وايضا المفتاح الرئيسي لا يكون خاليا ؟

4-هل تلاحظ ان المفتاح الاجنبي ... تكون قيمه في هذا النطاق (1 , 2 , 3) ؟ هل شاهدت اعداد غير هذه ؟؟

وهي الاعداد نفسها الموجودة في المفتاح الاساسي .... أي ان نطاقه هو نفس نطاق المفتاح الرئيسي في الجدول الاخر ....

5- هل تلاحظ ان المفتاح الاجنبي يتكرر .. بينما المفتاح الرئيسي لا يتكرر

6- هل تلاحظ ان المفتاح الاجنبي .. لا يمت صلة بالجدول .. يعني بالله عليك .. هل رقم القسم صفة للموظف ؟؟ لاحظ ان رقم القسم وهو مفتاح اجنبي ... ليس صفة تابعة لجدول الموظفين ...



هذه ملاحظات مهمة جدا .... وهي قوانين المفتاح الاجنبي

يتكرر .. لا يكون خالي .. لا يكون مفتاح رئيسي .. يشبه للمفتاح الرئيسي في الجدول الاخر كثيرا .. لا تخرج نطاق قيمه عن نطاق قيم المفتاح الرئيسي في الجدول الاخر ...



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


لماذا نضع المفتاح الاجنبي في جدول دون جدول اخر ؟

يعتمد على نوع العلاقة .. هل هي واحد لمتعدد .. ام متعدد لمتعدد .. ام واحد لواحد ....

لنجرب ثلاث امثلة .. مارايك ؟؟

لنفكر معا .. ونستنتج هذه القواعد ...

عن اذنكم بروح اشرب موية ...
الرجوع الى أعلى الصفحة اذهب الى الأسفل
ملك الظلام

المشرف العام...}


ملك الظلام



دوره فى الاوراكل Empty
مُساهمةموضوع: رد: دوره فى الاوراكل   دوره فى الاوراكل Icon_minitimeالأحد أبريل 19, 2009 9:53 am

تابع الدرس الرابع

المثال الاول : علاقة واحد لواحد (One to One)










مممممم .. مثال مثال مثال على هذه العلاقة .... أأأأه ... افتكرت ..الموظف الواحد .. يدير قسم واحد فقط ..
والقسم الواحد .. يدار (بضم الياء وفتح الدال فعل مبني للمجهول) من قبل موظف واحد ..


وعلى فكرة ... الي ما بيقولها بهالصيغة ... يجيه تلطيش .. اوكيه !!

بعضهم ارسل لي الواجب على هالصيغة ... "الموظف الواحد يدير قسم واحد .... " وسكت ..

اريدك تذكرها من الجهتين ..." الطبيب الواحد لديه مكتب واحد .. والمكتب الواحد يملكه طبيب واحد"







انتبهوووووو .... لا اريد الاخطاء هذه .. ابدا ,,,

















المهم ... العلاقة واحد لواحد نادرا ما تكون موجودة ... وسوف تعرف فيما بعد ... لماذا هذه العلاقة ؟ ولماذا نستخدمها اصلا ,,








.. هيـــــــــــــــه ...وش فيك ؟؟ شايفك متضايق ... قلتفيما بعد بتعرف .. ما تقدر تصبر !!!!








الان انظر جدول الموظفين (الصورة 154)









ثم انظر جدول الاقسام ... (الصورة 164)









في جدول الاقسام يوجد متهم (عمود) يدعى "it's Manager" ولونه ازرق .... وهو المفتاح الاجنبي في علاقة الواحد لواحد ...


لماذا وضعناها في جدول الاقسام .. ولم نضعها في جدول الموظفين ؟

يالله نجرب ... ونضعها في جدول الموظفين ..

الان انظر الى جدول الموظفين التالي (الصورة 174)














ثم انظر الى جدول الاقسام التالي (الصورة 144 السابقة ^^)












مالذي حدث ؟؟

قمنا ووضعنا المفتاح الاجنبي في جدول الموظفين ... هذا كل شيء ^^

هل اثر ذلك في العلاقة ؟؟ ...

مممممم ... مارأيك انت ؟؟؟ انا من ناحيتي ماشفت أي تغيير معنوي .... صحيح قلبنا الامور ... ولكن ... لم يؤثر في تماسك الجدولين ... صح ^^ ؟
















طيب .. مارأيك لو مزجنا الجدولين ^^ ... همممم .. نمزجهما .. ام لا ؟؟


لا ؟؟ لماذا لا نمزجهما ؟؟ عشان التكرار ؟؟ طيب ... نجرب ونمزجهما .. (الصورة 184)





وااااه ... حذفنا عمودين ... عمودرقم القسم (dept_no) الذي كان مفتاح اساسي في جدول الاقسام وعمود His_dept والذي كان مفتاح اجنبي في جدول الموظفين ...كلا العمودين لم نحتاجهما في المزج الجديد (صورة 184) ....









مارأيك .. كأن التكرار خف ولو قليلا .... حذفنا عمودين باكملهما (المفتاح الاساسي والاجنبي وهما رقم القسم) ... وصار الجدول مختصر بشكل اكثر,


لا تقول اختصرنا قليلا... تخيل بالله عليك ... انه لدينا 1000000000 قسم ... و 9999999999 موظف ..... كم من البايتات نختصره ؟؟ كثييييييير ^^ ....

نستنتج ان علاقة واحد لواحد ... مالها داعي ... تزيد علينا شقى وتعب ... وزيادة عمودين بأكملهما ...







لييييييييييييش نستخدمها من الاول ؟؟


يقول لك يا سيدي ... لاسباب امنية ^^ ... (اسباب امنية ؟؟ ) ايه اسباب امنية !!!







اذا بغينا نحمي البيانات (لاحظ البيانات .. وليست قاعدة البيانات !!!) نفصل الجدول الى جدولين ونربط بينهما بعلاقة واحد لواحد ^^ ... وهذا على حسب المتطلبات ....
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
دوره فى الاوراكل
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» دوره فى الاوراكل
» دوره فى الاوراكل 2
» تابع دوره الاوراكل
» دوره كامله فى الاوراكل
» ابتداء دوره جديده فى الاوراكل................................................................

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات برامج نت :: :::: المنتديات التقنيـــــه :::: :: لغات البرمجه :: اوركل-
انتقل الى: