صفحة 2 من 12 الأولىالأولى 1234567 ... الأخيرةالأخيرة
النتائج 16 إلى 30 من 169

الموضوع: الطريق لاحتراف الاوراكل .. دورة مطوري اوراكل .. من الالف الى الياء

  1. #16
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: الطريق لاحتراف الاوراكل .. دورة مطوري اوراكل .. من الالف الى الياء



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




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



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

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

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

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

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

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

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

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




    مثال :



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



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




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


    سوف نشرح بشيء من التفصيل .. عبر هذا المثال لطلاب ومدرسيهم :
    انظر الشكل (صورة 73)


    الكيان
    (Entity) :












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

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

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

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




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



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





    الصفة :



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

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







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




























    العلاقة :



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

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

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










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



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



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










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



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



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




    • امثلة لنماذج اخرى :
    1. الكيان الضعيف
    1. (Weak Entity) :


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

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

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

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

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


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

      طيب ...

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

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

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

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

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

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




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





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



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


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

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


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


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

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




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



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



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



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









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





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


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






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

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

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



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





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



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









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



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





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




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






    (الصورة 163)







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



    فاصل اخر ^^
    التعديل الأخير تم بواسطة The Coder ; 22-11-2005 الساعة 11:58 PM

  2. #17
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: الطريق لاحتراف الاوراكل .. دورة مطوري اوراكل .. من الالف الى الياء



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

    و لا اخفيك انني لا املك هذه الامثلة بشكل كافي .. ولكن لا تخف ,سوف ابحث عنها , سوف اجدها , سوف

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





    التحديات



    اتحداك 3 تحديات ... اعتقد انك لا تستطيع ان تعرف أي منها ....


    التحدي الاول : اذكر لي مالفرق بين الصفات ذات القيم المتعددة والصفات المركبة ؟

    التحدي الثاني : ارسم نموذج واحد انت تختاره (غير ما ذكرت ) وارجو ان تراعي فيه وجود مايلي :

    - صفات مركبة وصفات مشتقة .

    - اكثر من كيان و بينهم علاقات .

    - علاقة كيان بنفسه .

    - كيانات رئيسية وفرعية .

    أريد في هذا السؤال أن يكون نموذج واحد لنظام (أي نظام مثل نظام الطلبة , نظام مستشفيات , نظام من رأسك ....)


    التحدي الثالث : في الصورتين 53 و 63 ... قلنا انه اختفت مشاكل ... ما هي هذه المشاكل ؟ أقنعني .... هل اختفت فعلا ام لا ....


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


    المهام
    اليك هذه المهام ,,



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





    التعديل الأخير تم بواسطة The Coder ; 25-11-2005 الساعة 07:11 AM

  3. #18
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: الطريق لاحتراف الاوراكل .. دورة مطوري اوراكل .. من الالف الى الياء

    السلام عليكم ,,,,,

    شباااااااااااااب ,,,

    - ارسلو التحديات الثلاث على الخاص او على الايميل ,,,, وارجو ان ترسلها بعنوان "؟؟؟؟؟؟؟؟؟؟؟؟" وان تذكر اسمك او كنيتك + عمرك + حل اسالتك ,,,

    - اي سوال او استفسار اطرحه هنا في الموضوع .

    - بامكانك تراسلني لو عندك اي استفسار ....

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

  4. #19
    التسجيل
    22-11-2005
    المشاركات
    1

    Thumbs up مشاركة: الطريق لاحتراف الاوراكل .. دورة مطوري اوراكل .. من الالف الى الياء

    السلام عليكم ورحمة الله وبركاتة
    اما بعد



    ارجو منك التكرم بالمزيد من هذة اللغه (sql)وماهى الفائدة وكيف تعمل بها فى حياتك العملية

  5. #20
    التسجيل
    22-11-2005
    المشاركات
    1

    Thumbs up مشاركة: الطريق لاحتراف الاوراكل .. دورة مطوري اوراكل .. من الالف الى الياء

    السلام عليكم ورحمة الله وبركاتة
    اما بعد



    ارجو منك التكرم بالمزيد من هذة اللغه (sql)وماهى الفائدة وكيف تعمل بها فى حياتك العملية

  6. #21
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: الطريق لاحتراف الاوراكل .. دورة مطوري اوراكل .. من الالف الى الياء

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



    ارجو منك التكرم بالمزيد من هذة اللغه (sql)وماهى الفائدة وكيف تعمل بها فى حياتك العملية
    وعليكم السلام ورحمة الله وبركاته
    يقول الشاعر "كل شي بوقته حلوووو " ...
    صح ^^
    سوف اتكلم كثيرا في الاس كيو ال حتى اجعلك تملني .. وتمل الاس كيو ال ... وتمل الاوراكل ^^
    هذا وعد ^^

  7. #22
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: الطريق لاحتراف الاوراكل .. دورة مطوري اوراكل .. من الالف الى الياء

    السلام عليكم ,,
    عدنا ثانية .. ولكن بدون درس ... بطلت اعطي دروس .....









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

    1- لم يأتني الا شخصين حلو التحديات ... وكما توقعت انها صعبة جدا .. لدرجة انكم لم تعرفو , الذكاء مطلوب لحلها :mad22: :mad22: :mad22: :mad22: ,,,,
    2- دروسي مملة جدا .. لذا .. باغير الطريقة للافضل ان شاء الله ,,
    3- الصور كلها او معظمها اختفت ... سوف ارفعها غدا ان شاء الله ,
    4- ... انا لم استفد من اعطائكم الدروس .... ولم اتعلم زيادة على علمي .. ففكر ليش باقي اعطيكم دروس ؟؟
    لاني اريد الاجر هذا اولا .. ولاني اريد الاجر هذا السبب الثاني .. والسبب الثالث .. انني اريد الاجر ...
    5- واخيرا ... عارف انه ... لا يوجد شخص .. يقرأ الان ... هلوووو اني بودي هير ؟؟ نو ون ؟؟؟


    سو بي ات ,,,

  8. #23
    التسجيل
    10-12-2002
    الدولة
    ادوماتو
    المشاركات
    2,455

    مشاركة: الطريق لاحتراف الاوراكل .. دورة مطوري اوراكل .. من الالف الى الياء

    انا حقدت خلاص >_<

    كيف لشخص واحد يكتب مواضيع مبدعة مثل هذي ما شاء الله لا اله الا الله

    ينطيك العافيه استاذي وداوم على هذا

    p.s: باحفظ الدروس بجهازي ، شكلك حاط واجبات XD

    باحاول احلهن و اعلمك ^_^

  9. #24
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: الطريق لاحتراف الاوراكل .. دورة مطوري اوراكل .. من الالف الى الياء

    اقتباس المشاركة الأصلية كتبت بواسطة Chrono Scar
    انا حقدت خلاص >_<

    كيف لشخص واحد يكتب مواضيع مبدعة مثل هذي ما شاء الله لا اله الا الله

    ينطيك العافيه استاذي وداوم على هذا

    p.s: باحفظ الدروس بجهازي ، شكلك حاط واجبات XD

    باحاول احلهن و اعلمك ^_^
    اهلا .,,
    كنت بامسح مشاركتك ... ولكن ,,,, جاتني فكرة ....
    الا وهي ...
    اي استفسار اي سوال اي نقد ... اي مناقشة ,, تريدون ان تطرحوها ...
    على رابط استفسارات هذه الدورة ....
    http://www.montada.com/showthread.ph...77#post4304677

    وانت يا سيد ... حل الاسئلة .. والتحديات .. ولا تتأخر

  10. #25
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: الطريق لاحتراف الاوراكل .. دورة مطوري اوراكل .. من الالف الى الياء

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





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

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


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


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

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

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

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





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

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




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




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





    هيا لنؤركل ^^



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


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

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

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



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



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







    التعديل الأخير تم بواسطة The Coder ; 07-12-2005 الساعة 11:19 AM

  11. #26
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: الطريق لاحتراف الاوراكل .. دورة مطوري اوراكل .. من الالف الى الياء

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


    * ماهي حقيقة المفتاح الاجنبي (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- هل تلاحظ ان المفتاح الاجنبي .. لا يمت صلة بالجدول .. يعني بالله عليك .. هل رقم القسم صفة للموظف ؟؟ لاحظ ان رقم القسم وهو مفتاح اجنبي ... ليس صفة تابعة لجدول الموظفين ...



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

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



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


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

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

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

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

    عن اذنكم بروح اشرب موية ...



    التعديل الأخير تم بواسطة The Coder ; 07-12-2005 الساعة 11:26 AM

  12. #27
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: الطريق لاحتراف الاوراكل .. دورة مطوري اوراكل .. من الالف الى الياء

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

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








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


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

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

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





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













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






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






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






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






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


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

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

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










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









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

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

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












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


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




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








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


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

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





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


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





    اذا بغينا نحمي البيانات (لاحظ البيانات .. وليست قاعدة البيانات !!!) نفصل الجدول الى جدولين ونربط بينهما بعلاقة واحد لواحد ^^ ... وهذا على حسب المتطلبات .... (افففففف.. مافهمت شي !)


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

    انظر الى الجدول في الصورة 174 ... وهو جدول الموظفين ... تخيل ما تقدر تشوف الا هذا الجدول تخيل اني انا مديرك وقلت لك "هيــــه انت .. ايها الموظف .. اين يقع القسم رقم واحد ؟؟"

    فترد انت "ما بعرفياسيدي " ... فاقول لك: "هه .. مطرود يا حبيبي ... " (تكنيك رائع للتخلص من الغير مرغوب فيهم بالعمل ^^)





    .. تعرف ليش ما بتعرف يا موظف ؟ لاني حجبت عنك جدول الاقسام الي هو الصورة رقم 144 !!!عرفت ليش اسباب امنية ؟؟ ^^

    يالله ... باخذ لفتين .. واجي ...
    طفشششششششت

  13. #28
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: الطريق لاحتراف الاوراكل .. دورة مطوري اوراكل .. من الالف الى الياء

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

    المثال الثاني : العلاقة واحد لمتعدد ومتعدد لواحد :








    مممممممم ... مثال مثال مثال ... أأأه افتكرت ^^


    اش رايك بهالمثال ؟

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

    ياسلام ^^ ... علاقة اخرى بين الموظف والاقسام وهي "عمل" .... هل تذكر العلاقة "ادارة" ؟؟

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

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

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

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

    نجرب ؟؟ هاه ؟؟ اعتقد ان بعضكم ذكي جدا ... واكتشفها قبل ان اعرض المثال .... اما البعض الاخر .. لا يريد التفكير ..

    اذا كنت من البعض الاخر الذي لا يريد التفكير ... فالله يعينني عليك .. خذ خذ المثال :



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



    وانظر جدول الأقسام ^^ (صورة 204)


    اوبس .... أين الباقين ؟؟ كيف نضيفهم .. لو أضفناهم .. حتصير مشاكل تكرار للمفتاح الرئيسي .. وتكرار للبيانات أصلا .. وحتصير مشاكل ليــــــن الليل ..

    مممممم .. هل لاحظت المشكلة ... لا لا لا ... انسى الموضوع ^^

    اجعل دائما المفتاح الأجنبي .. من جهة الكيان المتعدد ^^ ... وصلت ؟





    المثال الثالث : العلاقة متعدد لمتعدد :







    مثال على العلاقة هذه .... خليني استمد من واجباتكم ^^


    يقول احدهم في حل الواجب الاول ....

    الموظف الواحد يتعامل اكثر من زبون .. والزبون الواحد يتعامل مع أكثر من موظف

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

    يالله نرسم جدولهما .. جدول الموظفين (Employee Table) (صورة 194 السابقة ...)

    وجدول الزبون (Customer Table) (صورة 214) :





    عذرا على هذا الجدول الصغير .. تخيلوووو .. أن لدينا 200 عمود ... و100000 صف .... اوكيه ,,,

    مارأيك .. اين نضع مفتاح الاجنبي .. ؟؟

    مممممم .... مارأيك لنجرب .. انا منذ زمن اريد ان اجرب .. مالذي يحدث اذا وضعت المفتاح في جدول الزبون ؟؟ يالله ؟؟؟

    مثلا .. الزبون أبراهام (اعتقد ان أبراهام هو إبراهيم بس بالغربي ^^) صاحب الرقم 106 ... تعامل مع الموظف احمد و والموظف خالد

    والزبون جاسم ... تعامل مع الموظف اكرم فقط ... ثم تعامل مع اكرم مرة ثانية ...

    ومثلا ... الزبائن كلهم الباقين.. لم يتعاملوا مع أي موظف ...

    .... كيف نكتبها ذي ؟؟ نجرب ؟؟ يالله نجرب ^^ (صورة 224)





    ياسلام ... المفتاح الاجنبي بامكانه ان يتكرر ... تكرر مرتين رقم الموظف اكرم .. ^^

    ومن خصائص المفتاح الاجنبي ... ايضا هو ان لا يكون خاليا ^^ ....

    لحظة ... هناك قيم خالية ..... في المفتاح الاجنبي ..

    وهناك تكرار في المفتاح الاساسي ... الخاص بابراهام والجاسم ..!!

    وهناك تكرار للبيانات الخاصة بابراهام وجاسم .... !!

    لا لا لا ... وضع المفتاح الاجنبي .. في جدول الزبون ... غباء .. انسى الموضوع ^^"



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

    مين ذكي ؟؟ هل توجد مشكلة ؟؟

    تالله انها نفس المشكلة ... جربوها وشوفو .... يمكن اكون غلطان .. هيا جربها الان ...

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



    جربتها ؟؟

    ممتاز ^^ عظيم ^^ (والله اني عارف انه لا احد جربها ,,,)

    المهم ...

    مالعمل ... ؟؟؟

    العمل يا سيد ... هو انشاء جدول جديد !! ....

    نسميه ... جدول (موظفين- زبائن ) (Emp_Cust Table)

    نستلف من الجدول الاول مفتاح اجنبي .. ونستلف من الجدول الثاني .. مفتاح اجنبي ..

    وووو ... بس ^^ §

    يسمى هذا النوع من الجداول بـ Junction Table )) الجدول التقاطعي






    يالله ... مرة ثانية ... نشوف الي يصير ....


    الزبون أبراهام صاحب الرقم 106 ... تعامل مع الموظف احمد و والموظف خالد

    والزبون جاسم ... تعامل مع الموظف اكرم فقط ... ثم تعامل مع اكرم مرة ثانية ...

    انظر جدول زبائن_موظفين (صورة 234)



    سبحان الله .. كأن هذا الجدول يرصد تاريخ لقاء الزبون صاحب الرقم 105 (جاسم) مع الموظف 123336 الي هو .... انتظر اشوف جدول الموظفين .......

    ايه اكرم ^^ ..



    شايفك الان متضايق من الارقام هذه الكبيرة (123336 ... 123335 ... الخخخ) .. ولكن في الحياة العملية ... حتشوف ارقام اكبر واعقد

    يمكن تلاقيها ارقام واحرف ..... تدرب من الان ^^



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

    او بمعنى اخر .. يرصد تعامل الموظفين مع الزبائن ؟؟

    لو مثلا الزبون رقم 102 تعامل مع الموظف صاحب الرقم 123333 .... نضيف صف في الجدول السابق ...

    انظر الصورة (244)


    لو طلبت منك ان تضيف تاريخ للعلاقة بين الموظفين والزبائن ... ماذا تعمل ؟

    نضيف حقل .. وهو تاريخ تعامل الموظف مع الزبون ..

    لو طلبت منك أين المفتاح الأجنبي .... ؟؟ صح .... ممتاز .... انه رقم الموظف ورقم الزبون كلاهما مفتاحان أجنبيان ^^ ...

    لو طلبت منك (ياخي فكنا ياااااخي كل شوي تطلب.. اففف مدير مسوي زحمة ) << طيب .. آخر طلب ^^"

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

    مفيش ؟؟

    والعمل ؟

    نضيف مفتاح أساسي .. ونسميه .. مممممم ... أي شي ... وليكن "handle_no" رقم التعامل ...

    انظر الجدول (صورة 254)



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




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

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

    مستحيل صح ؟ لازم نضيف عمود جديد صح ؟؟؟










    خطأ !!!!







    بامكاننا ان نخترع من هذان الحقلان مفتاح اساسي ^^ ....


    يعني لو مزجنا الحقلان هذان ... ينتج عندنا المفتاح الاساسي ...

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

    يمكن يكون عمودين زي مثالنا ... يمكن ثلاث .... وهلم جر ,,,












    ماذا بكم ... ماذا دهاكم ...



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

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

    سنعود بعد قليل






  14. #29
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: الطريق لاحتراف الاوراكل .. دورة مطوري اوراكل .. من الالف الى الياء

    شايف الجدول السابق ؟(الصورة 264 السابقة )
    أول صف .. ضم القيمتين .... وش يصير الناتج ؟
    يعني 123336 نضمها مع 105 يصبح لدينا .... 123336105 واو .... هذا المفتاح الاساسي لأول صف !! والمفتاح الأساسي لا يمكن ان يكون خالي او أن يكون مكرر .... صح ؟؟
    طيب ... ضم الصف الثاني ..
    يصير الناتج ... 123331106 همممممم .... مختلف تماما عن السابق .. ^^ .. لا يوجد قيمة خالية .. ولا يوجد قيمة مكررة ^^ ,,,
    لأنه اختلف رقم الزبون ومعاملته مع الموظف عن رقم الزبون الأخر عن الموظف الأخر
    ...
    طيب ضم الصف الثالث ... أوه .. رقم الزبون نفس رقم الزبون في الصف السابق !!
    بعد أن ضمينا ... 123335106 ..... رقم مخالف عن
    123331106 في الصف الثاني ...

    بالرغم من أن رقم الزبون تكرر مرتين .. ولكن اختلف رقم الموظف !!
    الزبون 106 تعامل مع موظفين مختلفين ^^
    ونتج قيمتين مختلفتين حل رائع صح ^^ !!
    الصف الرابع .. تكرر رقم الموظف ثانية !! ... هل سيؤثر ؟؟ هل تعتقد انه سوف يكرر المفتاح الاساسي ؟
    الناتج من ضم الصف الرابع هو 123335102 يشبه (من ناحية رقم الموظف ) ناتج الصف الثالث 123335106
    ولكن يشبهه قليلا ^^ ..
    تعامل الموظف 123335 مع الزبون 106 ومع الزبون 102 ومافيه أي اشكال ^^
    هذا حل قوي جدا ....
    ولكن ... لا نستخدمه في كل الاحيان .. ليييييييش ؟ هناك حالة لو صارت ... لا تستخدم هذا الحل ... ماهي الحالة الجديدة ؟؟


    حالة جديدة على حسب المتطلبات
    :

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

    انظر الصورة 244 ... لو تعامل الزبون 105 مع الموظف 123336 (الصف الاول ) ثم تعامل الزبون نفسه مع الموظف نفسه !! ( الصف الثاني).. مالذي يحدث !!
    ضم الصف الأول .. وضم الصف الثاني وتطلع نتيجة متساوية وهي ... 123336105
    مصيبة .... تكرر المفتاح الأساسي ... والعمل ؟؟ مالعمل ؟؟ المدير سوف يطردك لو قلت له انك تريد ان تضيف عمود جديد كمفتاح أساسي
    ... ولاحظ انه لا يريد المفتاح الأساسي ... (أي بمعنى آخربإمكانكإضافة حقول ولكن لا يجب ان تكون مفتاح أساسي)
    لهذه الحالة يجب ان نضيف حقل ويدعى ..عدد المرات
    "no_of_time" ... وهو اقتراح ليس الا ......
    انظر الجدول (الصورة رقم 274)





    كم مرة تقابل الموظف 123336 مع الزبون 105 ؟؟ مرتين ^^ ...

    لو تعامل الموظف 123336 مع الزبون 105 مرة ثالثة ؟؟ يصبح عدد المرات ثلاثة .... وهلم جر ,,,,


    لخبطت راسك صح ^^
    ... أناأعلمكالآن شيء .. لم أتعلمه من كتاب .. بل من خبير قواعد بيانات ..
    (سوف أتطرق إليه في الدروس القادمة إن شاء الله ) وبعض من خبرتي المتواضعة جدا ,,


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



    * تحويل الوصف الى نماذج :

    في هذا الدرس سوف تتعلم تحويل أي وصف الى نموذج
    ER

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






    مثــال 1 :

    * تحويل من وصف الى نموذج ER :



    شركة تهتم بتسجيل معلومات عن الاقسام والمشاريع التي تنفذها الشركة وكذلك عن الموظفين العاملين فيها والتابعين لهؤلاء الموظفين ,

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

    2- القسم يمكن ان يدير عدة مشاريع , ولكل مشروع رقم واسم , ومكان تنفيذ .

    3- يمكن ان يعمل في القسم موظف او اكثر ولكن الموظف يجب ان يتبع لقسم واحد فقط ,ونحتفظ بالمعلومات التالية عن الموظف الرقم ( لكل موظف رقم يميزه عن بقية الموظفين ) , الاسم (الاسم الاول , الثاني ,العائلة ) ,الجنس , الراتب , العنوان

    4- الموظف يمكن ان يعمل في عدة مشاريع (ليس بالضرورة ان يدار المشروع من نفس القسم الذي يتبع اليه الموظف ) ونحتفظ بعدد الساعات التي عملها الموظف في كل مشروع .

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

    6- تهتم الشركة لمعرفة عدد الموظفين في القسم الواحد

    7-المدير لكل قسم يدير جميع الموظفين تحت قسمه .

    8- الموظفين نوعين , موظف ثابت ويأخذ راتب ثابت , وموظف يعمل بنظام الساعات ويأخذ نسبة عدد الساعات التي عمل بها .













    الحـــــــــــــل :









    الاحمر= علاقة

    البني = كيان

    الازرق = صفات

    بالنظر في التحليل استطعنا ان نستخرج العلاقات + الكيانات + الصفات

    اشير الى انه عادة (لاحظ .. عادة وليست دائما ) ..... الاسماء تكون صفات او كيانات ,, والافعال تكون علاقات ^^

    استخدم هذه بذكاء ,,

    الان نأتي للشرح المفصل ,,,





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






    استخرجنا الاقسام ككيان , واستخرجنا الموظف ككيان , لماذا لا تكون الشركة مثلا كيان ؟


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

    لم يقل "الشركة لها أسماء الأقسام , أسماء الموظفين ..." ولكن قال "الشركة تنقسم الى عدة اقسام ...."

    لاحظ انه لم يركز في صفات للشركة ... لذا استبعدنا كون الشركة كيان ,,,

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












    سوف اركز قليلا على اللغة الانجليزية في النماذج لانها لغة standard ,,,

    Manage = يدير



    Start_date = التاريخ الذي بدأ فيه الموظف بادارة القسم







    Dept_no = رقم القسم وهو مفتاح اساسي ( Primary Key )Dept_name = اسم القسم






    Loc = اختصار لـ location واعني بها الموقع










    ملاحظة مهمة جدا : لاحظ الصفات جميعها بسيطة ,, وليست مركبة او ماشابه !!!.









    2- القسم يمكن ان يدير عدة مشاريع , ولكل مشروع رقم واسم , ومكان تنفيذ .















    هنا استنتجنا الكيان "مشروع " لان له صفات وله علاقة بالقسم وهي علاقة تحكم وإدارة , القسم الواحد يتحكم في عدة مشاريع , المشروع الواحد يتحكم (بضم الياء فعل مضارع مبني للمجهول) من قبل قسم واحد .








    3- يمكن ان يعمل في القسم موظف او اكثر ولكن الموظف يجب ان يتبع لقسم واحد فقط ,ونحتفظ بالمعلومات التالية عن الموظف الرقم ( لكل موظف رقم يميزه عن بقية الموظفين ) , الاسم (الاسم الاول , الثاني ,العائلة ) ,الجنس , الراتب , العنوان





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

    صفات الموظف هي : الرقم وهو مفتاح اجنبي كما يظهر لانه قال "لكل موظف رقم يميزه"

    الاسم ... صفة مركبة , الجنس والراتب والعنوان .. صفات بسيطة ...









    4- الموظف يمكن ان يعمل في عدة مشاريع (ليس بالضرورة ان يدار المشروع من نفس القسم الذي يتبع اليه الموظف ) ونحتفظ بعدد الساعات التي عملها الموظف في كل مشروع .















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

    اليك النموذج الذي استنتجناه (الصورة 24)





    لاحظ الصفة عدد الساعات "Hours" الموجودة في العلاقة "works on" , وهي علاقة مشتركة ,,














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






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

    هؤلاء التابعين للموظف في الشركة , لو ان الموظف غير موجود بالشركة ... هل تهتم الشركة بمعلومات التابعين لهذا الموظف ؟



    كيان التابعين لن يكون له وجود في النظام طالما ان كيان الموظف لا يكون له وجود في النظام
    ,


    لذا فكيان التابعين هو كيان ضعيف "weak entity "







    6- تهتم الشركة لمعرفة عدد الموظفين في القسم الواحد








    هذه صفة لاي كيان ؟


    هل للكيان موظف ام للكيان القسم ؟

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

    قسم أ وبه 50 موظف , قسم ب وبه 60 موظف .... اذن صفة مشتقة وخاصة بالكيان "قسم"







    7-المدير لكل قسم يدير جميع الموظفين تحت قسمه .


    هنا علاقة كيان الموظف مع كيان الموظف نفسه وهي الادارة (سوبر_فيزر )







    8- الموظفين نوعين , موظف ثابت ويأخذ راتب ثابت , وموظف يعمل بنظام الساعات ويأخذ نسبة عدد الساعات التي عمل بها .








    كيان الموظف له اكثر من نوع , موظف ثابت وموظف يعمل بنظام الساعات !!


    اذن فكيان الموظف كيان رئيسي , سنضطر الى حذف الصفة "راتب " ونضيف صفة راتب ثابت الى الكيان الموظف الثابت , وصفة راتب بنسبة الساعات الى الموظف الذي يعمل بنظام الساعات .







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






    ... واي سوال أي استفسار احنا حاضرين ( الصورة 34 )

    التعديل الأخير تم بواسطة The Coder ; 07-12-2005 الساعة 12:27 PM

  15. #30
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: الطريق لاحتراف الاوراكل .. دورة مطوري اوراكل .. من الالف الى الياء

    * تحويل من نموذج العلائقي الكياني الى نموذج علائقي :



    لماذا هذا التحويل ؟

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

    - الان كل كيان سوف يمثل جدول .

    - وكل صفة تمثل حقل في هذا الجدول .

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




    اولا : الان خذ كل كيان على حدة , مع العلم ان كل كيان يمثل جدول .. اوكيه !!




    - كيان الموظف : (الصورة 44)





    سنقوم بتجاهل الصفات المركبة الأصل , وفي كيان الموظف توجد صفة "الاسم" والتي تكون اسم اول , اسم ثاني , العائلة , تجاهل صفة "الاسم " وسوف ينتج لدينا ما يلي : (الصورة 54)







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



    - كيان القسم : (الصورة 64)




    وبعد تحويله : (الصورة 74)
















    لاحظ اننا تجاهلنا الصفة المشتقة في تحويلنا من نموذج ER الى النموذج العلائقي ....

    اذا واجهتك صفة مشتقة .. تجاهلها تماما .. عند هذا التحويل ,,

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







    - كيان المشروع : (الصورة 84)




    وبعد تحويله : (الصورة 94)




    - كيان التابعين وهو كيان ضعيف (الصورة 104)


    بعد تحويله : (الصورة 114)






    بقي كيانين اثنين ... هما كيان الموظف رسمي , وكيان الموظف الذي يعمل بعدد الساعات ,سنشرحهما بعد قليل !!





    ثانيا : جاء وقت العلاقات ,, نفصفصها حبة حبة ^^" (يفصفص = يمحص )









    - علاقة السوبر فيزر ... مابين كيان الموظف مع كيان الموظف نفسه ...

    شوف الصورة 294 (امتحنتكم بالصور ... )





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

    واحد لمتعدد ومتعدد لواحد

    نضيف المفتاح الاساسي ... من جهة الكيان المتعدد ... وهنا العلاقة مع الكيان نفسه !!

    اذن ... نضيفه في نفس الجدول ^^ وهي حالة خاصة جدا ,, الصورة304





    Mgr هو رقم المدير .. وهو مفتاح اجنبي ولكن في نفس الجدول ^^ ... وزي مانتو عارفين ان المفتاح الاجنبي يشبه المفتاح الرئيسي المصدر له صح ؟ هذا يعني Mgr يشبه كثيرا Eno في المضمون .



    هنا مسئلة تحيرني ... انظر الجدول للموظفين الآن : (صورة 314)

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

    انا اقول ... ان نضع قيمة 10022 في الفراغ ... وهذا رأيي الشخصي , واعتقد انه صحيح .



    هل يوجد صفة مشتركة ؟

    لا ..



    - علاقة العمل بين الموظف وبين القسم ,, الصورة 324






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

    واحد لمتعدد و متعدد لواحد , وانت مغمض عيونك تحط المفتاح الاجنبي في الجدول المتعدد وهو جدول الموظفين . لا يجي واحد ويقول ليش وضعناه في جدول الموظفين .. حح ححححح .... حأجزره جزر!!!

    والان يظهر لدينا جدول الموظفين المحسن انظر الصورة 334


    هل شاهدت مالذي حصل ^^ ؟ اضفنا رقم القسم D_no كمفتاح اجنبي ,,,



    هل يوجد صفة مشتركة ؟

    لا ...

    - علاقة الإدارة مابين كيان الموظف و كيان القسم .. انظر الصورة 124









    هذه علاقة أخرى بين الكيانين .. مممممم .. محير صح ^^ .. تعودنا بين الكيانين علاقة .. وهنا تظهر علاقتين .. العمل + الإدارة ... وهذا معناه ماذا ؟ معناه انه بالإمكان تكون أكثر من علاقتين !!





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

    واحد لواحد (one to one). أي ضع في أي الجدولين مفتاح اجنبي (Foreign Key) .

    طيب ... فين وليش نضيف مفتاح اجنبي ؟

    انا أقول .... في جدول الاقسام وانت ماذا تقول ؟؟ اتحداك ان تعرف !! (التحدي رقم 2)



    هل توجد صفة مشتركة ؟

    نعم .. توجد صفة مشتركة وهي .. تاريخ بداية الإدارة ...



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

    المنهج وضعها في جدول الاقسام ... والغالب في الامر انك تستطيع ان تضعها اينما شئت , وعلى حسب الصفة ,,, والله اعلم !!

    الان انظر الى جدول الاقسام ( الصورة 284)



    واو ... انظر الى جدول الاقسام كيف تطور ^^ هل شاهدت رقم المدير (Mgr_no) وهو مفتاح اجنبي ,,,

    لاحظ للمرة المليون ان المفتاح الاجنبي يرمز بالخط المقطع تحت عنوانه .



    ممممممم ... باروح استريح ^^



صفحة 2 من 12 الأولىالأولى 1234567 ... الأخيرةالأخيرة

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •