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

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

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

 

 تابع دوره الاوراكل

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

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


ملك الظلام



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

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


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









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


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

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

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

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

انظر جدول الموظفين (صورة 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)




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

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

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











خطأ !!!!








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


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

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

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













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



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

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

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


ملك الظلام



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

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

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


ملك الظلام



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

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











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

البني = كيان

الازرق = صفات

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

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

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

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







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- الموظفين نوعين , موظف ثابت ويأخذ راتب ثابت , وموظف يعمل بنظام الساعات ويأخذ نسبة عدد الساعات التي عمل بها .










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


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









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








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

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


ملك الظلام



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

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



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

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

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

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

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




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





- كيان الموظف : (الصورة 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) وهو مفتاح اجنبي ,,,

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

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


ملك الظلام



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

- العلاقة "ادارة" بين المشروع والقسم :

انظر الصورة 344





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

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


الصورة 354






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

لا



- علاقة "العمل" بين الموظف والمشروع : الصورة 364







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

اوبس !! مالعمل ؟؟... اين نضع المفتاح الاجنبي ؟؟ مين يذكرني ؟

الحل هو الجدول التقاطعي (هل تذكرت فكرة هذا الجدول؟) , ونسميه Proj_Emp table

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

نعم يوجد .. وهذه الصفة نضعها في ... الجدول Proj_Emp

والان لاحظ حقول الجدول Proj_Emp الصورة 374



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


التحديات :

اتحداك ان تحل احد هذه التحديات او كلها
:

التحدي الاول : لماذا المفتاح الاجنبي لا يكون خاليا ؟؟

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



المهام : اريد منك ثلاث مهام تعملها ....

- قرائة الدرس .



- قرائة الدرس .


- قرائة الدرس .


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

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


ملك الظلام



تابع دوره الاوراكل Empty
مُساهمةموضوع: رد: تابع دوره الاوراكل   تابع دوره الاوراكل Icon_minitimeالأحد أبريل 19, 2009 10:00 am

الدرس الخامس :مفاهيم قواعد البيانات ..



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

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

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

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

هذا الرابط .. اذا اردت ان تقرأ كل مقالاته

http://www.arabteam2000-forum.com/index.php?showtopic=35237&st=0

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

3 ساعات كفيلة بان تنسخ خبرة 20 سنة !!! ..... فكر فيها .... هل تضيع 10 سنوات او 20 سنة ؟؟ ام 3 ساعات ..؟؟

الخيار لك !!!

لقد تطرق الى لغة الـHTML ... ولست مطالب بذلك ,,,

ولقد تطرق الى جمل الـ SQL اقرأها بشكل سريع لاني سوف اشرحها بشكل كافي ووافي ... فلا تخف ^^

اهم شي .. في دروس جمل الـ SQL هي ان تعرف معنى استعلام !!




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

لا تطبق ... ولكن تخيل اوكيه ^^



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

هل تذكر التحدي ... مالذي ينتج من جعل المفتاح الاجنبي فارغ ؟ ستجد حله في هذه المقالات ....




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

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


ملك الظلام



تابع دوره الاوراكل Empty
مُساهمةموضوع: رد: تابع دوره الاوراكل   تابع دوره الاوراكل Icon_minitimeالأحد أبريل 19, 2009 10:01 am

الدرس السادس

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

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

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



بسم الله الرحمن الرحيم
اسم الدرس : لغة الاستعلامات
SQL

نوع الدرس : تطبيقي + فكري


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

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

الوقت المتوقع منك لفهم الدرس :
8 ساعات (ساعتين فهم و 6 ساعات تطبيق )

متطلبات تتوفر فيك : التطبيق





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

- اتقان جزء كبير من هذه اللغة 100 %

هيا لنؤركل ^^



* لغة الاستعلامات (او الاستفسارات) والتي تدعى بـ
SQL :

احب ان اشير الى قاعدة مهمة ... وهي القاعدة رقم 3

(البيانات + معالجة = معلومات)

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

ولماذا البيانات .. ولماذا المعلومات . وما هي اصلا المعالجة , ولماذا نحصل على المعلومات ..

اعرف ان ثلاث ارباعكم ما قرأوا ولا بيعرفوا الاجوبة ....

لكن ... الله المستعان ,,,

اذا لم تقرأ الدرس الخامس ... اذهب ولا تقرأ ....



SQL
تعني Structured Query Language أي لغة الاستفسارات وهي لغة برمجة قواعد البيانات ....

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

" Query تعني إستعلام إستفسار إستفهام إستنباط إستنبطاااح ---- وصلت الفكرة؟؟؟

السؤال البديهي والتقليدي هو ما الفرق بين الجدول والإستعلام؟

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

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

لا تمزح مع الجدول... الجدول لا يقبل المزاح ول لا العبث ويغلب عليه التماسك والشدة والعبوس والتجهم.
(ملف مخزن ... شكله واحد موحد .. ولا يتغير مع الزمن ^^ )
الإستعلام (ولد صايع) على رأي الأخوة في مصر ... حبوب، لذيذ، يحب المزاح، سهل التعامل معه، يقبل كل أنواع المزاح والعبث ولكن إذا مزحت معه من (اليمين)، إذا مزحت معه من (اليسار) --- نسف قاعدة البيانات من جذورها. هل سمعت بمثل إتق شر الحليم اذا غضب --- هذا هو الإستعلام !!!

لأن السيد Codd مزق حقولنا ووزعها في جداول مختلفة كان لا بد من طريقة ما لتجميع هذه الحقول مع بعضها البعض !!!
(تفتكرون ليش قسمنا الجداول ... وتفتكرون ليش طلعت حاجة اسمها المفتاح الاجنبي ... )
الجدول هو الإستعلام، والإستعلام هو الجدول !! مع مرونة عالية جدا جدا جدا في كيفية تشكيل الإستعلام.
(الاستعلام ينتج لنا جدول ... يعني حيصير جدول بس بالطريقة الي احنا نبيها .... )
SQL هي لغة تستخدم علم (المصفوفات) من الرياضيات للوصول إلى الحلول --- ولا يهمك حقيقة ماذا تستخدم ولكن للعلم بالشىء فقط لمحبي هذا العلم الرائع المسمى المصفوفات Matrices ومفردها مصفوفة Matrix.

الغريب في SQL أنها عميقة الجذور وفي غاية التعقيد الشديد جدا، ولكن الممتع في الموضوع أن كامل اللغة بكل أبعادها تتكون من أقل من 10 أوامر -- صدق أولا تصدق أو حتى أقل من 5 أوامر على ما أذكر !!!

قلنا أن SQL تمزح من الجهة اليمين --- وتغضب من الجهة اليسار، ما معنى هذا؟

هناك إستخدامين إثنين فقط للغة SQL واحد أسميه مزاح من اليمين والآخر مزاح من اليسار:

الإستخدام الأول (مزاح من اليمين): هو الحصول على البيانات بأي شكل وبأي كيفية (لكي ينتج البيانات التي طلبناها على شكل جدول )
الإستخدام الثني (مزاح من اليسار) : هو تحديث Skeleton او الهيكل الخرساني لقاعدة البيانات أي تغيير وتعديلالجداول والحقول والروابط ---- اااووو خطير جدا !!!

"





ويضيف "
النوع الثاني من المزاح ينقسم إلى شقين:

الأول: تعديل في البيانات داخل الجداول " في السجلات" -- وينبغي الحذر
الثاني: تعديل في الجداول والحقول والروابط بينها --- وهو الخطير -- وينبغي الحذر الشديد جدا

تعدل بيانات الجداول يتم من خلال:
إضافة سجلات جديدة
تعديل سجلات موجودة
حذف سجلات موجودة

"





انتهى كلامه ......

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

اضافة جدول او حذفه او تعديله ... اضافة علاقة ...... الخ



اذن ... لغة الـ
SQL تلعب في الجداول لعب .... ولها غرضين ,, غرض استفسار عن معلومات ... يعني نطلب عرض معلومات ,, وغرض تعديل بيانات وتعديل تركيب الجدول .





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

الان سوف اعرض عليك تكنيك قوي جدا جدا جدا ....

وهو ان ... تقرأ ... وتطبق على الورق وتستنتج ... ثم ........................ تطبق على الحاسب ....

التطبيق على الحاسب اجعله اخر ما تفكر فيه الان ...



* اقسام لغة الـ
SQL :

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

نحفظها انجليزي ونفهم عملها .. ركز في المصطلح الانجليزي ,,,,



1- استرجاع البيانات (
Data Retrieval) :

تخص الاستعلام عن البيانات من جدول ما ....

مثلا الموظف احمد يبي يعرض جميع الموظفين الي راتبهم اقل من 7500 ريال سعودي (7500 ريال سعودي = 2000 دولار امريكي ... وذلك بقسمة 3.75 .... )

فين وصلنا ؟؟ ايه ايه ... احمد يبي يعرض على الشاشة جميع الموظفين الي راتبهم اقل من 7500 ريال ... ايش يعمل ؟

على طول ... يدخل احد اوامر الاستعلام واسترجاع البيانات ,,



2- لغة التلاعب بالبيانات (
Data Manipulation Language) اختصارها DML

وهي تخص بتعديل , حذف , او اضافة البيانات والسجلات في جدول ما .... (المزاح من اليسار ^^)

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

في اخر الشهر لما استلم المدير الراتب ... جن جنونه .. ناقص من راتبه 9000 ريال ....

راح لاحمد .. وخذ سب وشتم انواع ....

احمد الان يريد ان يعدل هالمعلومة الخطأ في الجدول .... يعمل ايش ؟

يستخدم امر التعديل ....



3- لغة تعريف البيانات (
Data Definition Language) اختصارها DDL

وهي التي تخص بتعديل , حذف او اضافة وانشاء الجداول وخصائصها (الاعمدة) وعلاقاتها
..

احمد (نفس ذلك الموظف .. بس في اليوم الثاني ) استخدم احد اوامر
DDL وهو امر انشاء جدول جديد , بعد ما انشئه ماعجبه اسم عمود .. واستخدم احد اوامر الـ DDL وهو امر خاص بتعديل اسم عمود , لو يبي يحذف الجدول كله .... يستخدم امر خاص لحذف الجدول .



4- التحكم بالعمليات (
Transaction Control)

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

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

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



5- لغة التحكم بالبيانات (
Data Control Language) اختصارها DCL

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

يقوم بدري في الصبح .. قبل ما يجي المسكين احمد .... ويستخدم احد اوامر الـ
DCL ,, ويلغي صلاحية المسكين للوصول الى الجدول ... فهمت ؟؟؟







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

اعرف انك تبي تقتلني عشان المصطلحات هذه ... ولكن تحمل قليلا ^^"

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

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


ملك الظلام



تابع دوره الاوراكل Empty
مُساهمةموضوع: رد: تابع دوره الاوراكل   تابع دوره الاوراكل Icon_minitimeالأحد أبريل 19, 2009 10:02 am

القسم الاول ( ( Data Retrieval :







في استرجاع البيانات .. نستخدم امر واحد .. وهو الأمر Select









اذا لم يكن لديك برنامج SQL Plus فلا بأس ... انا سوف اشرح الان على اساس انك لا تملكه الان ...









سوف نتخيل ان لدينا هذا البرنامج ...








الان تخيل انه لدينا جدول الموظفين EMP ... وبه الحقول التالية الصورة (16):









Empno هو رقم الموظف (مفتاح اساسي)




Ename هو اسم الموظف









Job هو وظيفة الموظف









MGR هو رقم مدير الموظف









Hiredate هو تاريخ توظيف الموظف









Sal راتب الموظف الاساسي









Comm الزيادات .. أي الرواتب الاضافية على الراتب الاساسي sal


Deptno رقم القسم الذي يعمل فيه ... (مفتاح اجبي (مفتاج غريب) )

الان تخيل انه ممتليء بهذه البيانات :










رمز:

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

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

7369 SMITH CLERK 7902 17/12/80 800 20

7499 ALLEN SALESMAN 7698 20/02/81 1600 300 30

7521 WARD SALESMAN 7698 22/02/81 1250 500 30

7566 JONES MANAGER 7839 02/04/81 2975 20

7654 MARTIN SALESMAN 7698 28/09/81 1250 1400 30

7698 BLAKE MANAGER 7839 01/05/81 2850 30

7782 CLARK MANAGER 7839 09/06/81 2450 10

7788 SCOTT ANALYST 7566 19/04/87 3000 20

7839 KING PRESIDENT 17/11/81 5000 10

7844 TURNER SALESMAN 7698 08/09/81 1500 0 30

7876 ADAMS CLERK 7788 23/05/87 1100 20

7900 JAMES CLERK 7698 03/12/81 950 30

7902 FORD ANALYST 7566 03/12/81 3000 20

7934 MILLER CLERK 7782 23/01/82 1300 10
وتخيل انه لدينا جدول الاقسام DEPT وبه الحقول التالية (الصورة 26) :















Deptno رقم القسم (مفتاح اساسي)





Dname اسم القسم (او نوعه)









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

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


ملك الظلام



تابع دوره الاوراكل Empty
مُساهمةموضوع: رد: تابع دوره الاوراكل   تابع دوره الاوراكل Icon_minitimeالأحد أبريل 19, 2009 10:03 am

تخيل ان به هذه البيانات :












رمز:

DEPTNO DNAME LOC

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

10 ACCOUNTING NEW YORK

20 RESEARCH DALLAS

30 SALES CHICAGO

40 OPERATIONS BOSTON

الان انظر هذا التركيب البسيط للامر Select

رمز:
Select * from dept ;

معنى هذا السطر هو ....





Select = اختر


* = جميع الحقول






From = من









Dept = الجدول dept








اختر جميع الحقول من الجدول dept
؟؟


لاحظ الفاصلة المنقوطة ( في آخرالأمر ..... ومعناه نفذ الجملة ...

لو كتبنا الأمر السابق وضغطنا Enter






سوف ينتج لنا مايلي (بافتراض أن جدول الأقسام به هذه السجلات أصلا ) :
رمز:



DEPTNO DNAME LOC

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

10 ACCOUNTING NEW YORK

20 RESEARCH DALLAS

30 SALES CHICAGO

40 OPERATIONS BOSTON





ممممم.. عرض جميع السجلات الموجودة بهذا الجدول

نجرب الان هذا الامر ...







رمز:
SELECT * FROM EMP ;

مالذي تغير ؟؟
وضعت اسم جدول اخر .... وهو جدول الموظفين وكأني اقول اختر جميع حقول الجدول EMP






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

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


ملك الظلام



تابع دوره الاوراكل Empty
مُساهمةموضوع: رد: تابع دوره الاوراكل   تابع دوره الاوراكل Icon_minitimeالأحد أبريل 19, 2009 10:05 am

بعد ضغط زر الـEnter هل ستعرف مالذي سيعرض لنا ؟؟ شاهد ....
رمز:



EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

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

7369 SMITH CLERK 7902 17/12/80 800 20

7499 ALLEN SALESMAN 7698 20/02/81 1600 300 30

7521 WARD SALESMAN 7698 22/02/81 1250 500 30

7566 JONES MANAGER 7839 02/04/81 2975 20

7654 MARTIN SALESMAN 7698 28/09/81 1250 1400 30

7698 BLAKE MANAGER 7839 01/05/81 2850 30

7782 CLARK MANAGER 7839 09/06/81 2450 10

7788 SCOTT ANALYST 7566 19/04/87 3000 20

7839 KING PRESIDENT 17/11/81 5000 10

7844 TURNER SALESMAN 7698 08/09/81 1500 0 30

7876 ADAMS CLERK 7788 23/05/87 1100 20

7900 JAMES CLERK 7698 03/12/81 950 30

7902 FORD ANALYST 7566 03/12/81 3000 20

7934 MILLER CLERK 7782 23/01/82 1300 10

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







رمز:
SeLeCt * FrOm EmP ;


سوف تعرض نفس النتيجة السابقة ... أي ان لغة الـ SQL ليست حساسة من ناحية الاحرف ,,,
طيب ... اريد ان اعرض رواتب (Salary) الموظفين جميعهم ... كيف ؟








رمز:
Select sal from emp ;


ونتيجة التنفيذ هي :






رمز:
SALرمز:

----

800

1600

1250

2975

1250

2850

2450

3000

5000

1500

1100

950

3000

1300





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







رمز:
Select sal from emp;


معنى هذا الامر هو اعرض لي القيم في العمود sal من الجدول emp






طيب .. اريد عرض عمودي الرواتب والاسماء الخاصة بالموظفين ؟؟








رمز:
Select sal,ename from emp ;


رمز:
SAL ENAME
---- ------

800 SMITH

1600 ALLEN

1250 WARD

2975 JONES

1250 MARTIN

2850 BLAKE

2450 CLARK

3000 SCOTT

5000 KING

1500 TURNER

1100 ADAMS

950 JAMES

3000 FORD

1300 MILLER

عرض لي سجلات العمودين الرواتب و الاسماء الخاصة بالموظفين





.....







مممممم ... علامة النجمة تعني "كل الاعمدة " ,,


طيب لو كتبنا الامر السابق بهذه الصيغة ..
رمز:

Select *

From emp

;

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







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

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


ملك الظلام



تابع دوره الاوراكل Empty
مُساهمةموضوع: رد: تابع دوره الاوراكل   تابع دوره الاوراكل Icon_minitimeالأحد أبريل 19, 2009 10:06 am

اليك الامر :
رمز:

Select * from emp

Where ename ='KING'

;

Where أي عندما يكون او الذي...















يعني اعرض لي بيانات جميع الحقول للموظف الذي اسمه = King







اضفنا الشرط .... where ename='KING'







سوف يعرض معلومات الموظف كنق فقط :



رمز:

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

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

7839 KING PRESIDENT 17/11/81 5000 10

ممممم جميل جدا ,,,
نستطيع التحكم في عدد الاعمدة , وفي السجلات التي نريد عرضها .

اذا اردنا عرض راتب الموظف King مالذي نعمله ؟


رمز:
Select sal from emp

Where ename='KING' ;

سوف يعرض :









رمز:
SALرمز:

-----

5000





اوبس ... أين اسم الموظف KING ؟؟ لقد كتبنا اسمه في الامر ..!! لماذا لم يعرض اسمه ؟؟

في الأمر السابق .. نحن قلنا اعرض الراتب فقط ... عندما يكون اسم الموظف King






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


اعذرني ... أنا سادي قليلا في شرح الأمور (سادي = هو الذي يتلذذ بالتعذيب )






سوف اعقد لكالآنالأمورأكثروأكثر ....







الان مارأيك في الامر التالي :



رمز:
Select * from emp

Where ename ='king';

مالذي تتوقع من هذا الامر ... تخيل انك الان ضغطت Enter ... فسوف يعرض لك هذه النتيجة :











رمز:
no rows selected






ومعناها ... لاتوجد صفوف مختارة ؟؟


أي لا توجد سجلات للعرض ؟؟

أي لا توجد بيانات للموظف الذي يدعى بـ king






أي لايوجد اصلا موظف يدعى بـ king







قبل قليل ... عرفنا انه يوجد موظف يدعى KING







ونحن قلنا انه KING او king لا مشكلة ...


لماذا ظهرت هنا مشكلة ؟؟

الم نقل ان لغة SQL ليست حساسة لحالة الاحرف ؟
















في الحقيقة ان لغة الـ SQL ليست حساسة لحالة الاحرف .. ولكن في قواعد البيانات ... في جدول الموظفين تحديدا خزنا اسم الموظف بـ KING ... وليس king !!







فرق بين البيانات المخزنة في الجدول وبين اوامر الـ SQL فهذه في وادي والاخرى في وادي اخر ...


ان الحاسب جهاز غبي جدا ... ولا يملك الحس الانساني طبعا , ولا يعرف ان KING هو نفسه king






طيب ... هذه تعتبر مشكلة .. بل مصيبة ...


سوف تعرف حلها لاحقا

- اريد ان اعرض الراتب الاساسي ورقم واسم الموظف KING مارأيك ؟؟

رمز:
Select empno , ename , sal from emp

Where ename = 'KING' ;
سوف يعرض لنا هذا الناتج
رمز:
EMPNO ENAME SAL

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

7839 KING 5000





جميل جدا ...
الان .. مارأيك بالامر التالي :
رمز:

select * from emp

where ename="KING";

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


رمز:
ORA-00904: "KING": invalid identifier





لماذا ؟؟ مالمشكلة ؟؟ هل لاحظت تغيرا عن الأوامر السابقة ؟؟

بدل 'KING' وضعنا "KING"






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







هيا ... لنجرب معا هذه العلامة التنصيص الاحادية ...


اريد ان اعرض الان بيانات الموظف الذي رقمه 7521 ... الامر كالتالي :

رمز:
Select * from emp

Where empno ='7521'

;
والناتج سوف يكون ..
رمز:

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

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

7521 WARD SALESMAN 7698 22/02/81 1250 500 30
طيب .. جرب هذا الامر :


رمز:
Select * from emp

Where empno = 7521

;

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

جرب هذا الامر ... بعد نزع علامة التنصيص الاحادية :


رمز:
Select * from emp

Where ename=KING

;
سوف يعرض لك هذا الخطأ

رمز:
ORA-00904: "KING": invalid identifier

ممممم ..






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

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


ملك الظلام



تابع دوره الاوراكل Empty
مُساهمةموضوع: رد: تابع دوره الاوراكل   تابع دوره الاوراكل Icon_minitimeالأحد أبريل 19, 2009 10:09 am

عرض الحقول باسماء مستعارة :







مممم .. المدير حمزة (نفس ذاك المدير) يريد تعقيد الامور على الموظف احمد (نفس ذاك الموظف المسكين)

يريد عرض هذه النتيجة .... ويريد من احمد استنتاج الامر ..

النتيجة :
رمز:

SALARY THE_NAME

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

1250 WARD

1250 MARTIN



من الجدول Emp !!!



احمد يقول انه لا توجد حقول بالمسميات SALARY و THE_NAME ؟؟


كيف ظهرت هذه المسميات ؟؟؟؟

احمد يعرف جيدا انه انعرض رواتب و اسماء الموظفين والذين رواتبهم = 1250

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

اليك الحل يا احمد ....

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

طيب ...

رمز:
select sal SALARY , ename THE_NAME from emp

where sal = 1250;
مارأيك ؟؟
قلنا اعرض الحقل sal وسميه salary (لاحظ المسافة بين sal و salary)






واعرض الحقل ename وسميه the_name (لاحظ المسافة بين اسم الحقل وتسميته)


برافو يا احمد ... حللتها يا احمد ...

مطط المدير شعره .. حقدن وحنقن على احمد ... يريد تعجيزه باي طريقة ..

يقول المدير انه يريد اسم الحقل sal بهذا الاسم "salary" .. وليس "SALARY"






ويريد ename بـهذا الاسم "the_name" ... وليس "THE_NAME"







واحمد ماشاء الله عليه .... ذكي وفهمها على الطاير واقترح الامر التالي :


رمز:

select sal salary , ename the_name from emp

where sal = 1250;

وظهرت النتيجة التالية :

رمز:
SALARY THE_NAME

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

1250 WARD

1250 MARTIN





اوبس .. لم يجدي نفعا ؟؟
مالعمل ؟ كل شيء يتحول الى احرف كبيرة (Capital) ؟؟

اليك الحل يا سيدي ,,

رمز:
select sal "salary" , ename "the_name" from emp

where sal = 1250;

والناتج :


رمز:
salary the_name

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

1250 WARD

1250 MARTIN





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

لما كنت ادرسها منذ زمن ...كان اكثر شيء يعقدني ... علامات التنصيص ..

فمرة اقول ان علامة التنصيص الاحادية للعناوين .. والثنائية للمتغيرات الحرفية (القيم النصية كما فعلنا في اسم الموظف KING)....






ومرة اقول العكس ...








انتبه جيدا ... الثنائية للعناوين .. والاحادية للقيم النصية








انظر جيدا ... لهذا المثال :
رمز:
select sal "SaLaRy Of ThIs eMpLoYeE" from emp

where sal=1250;

شكلنا من الحروف الكبيرة والصغيرة ... ووضعناها في علامة التنصيص باسم مستعار للعمود sal



سوف يكون الناتج مايلي :


رمز:
SaLaRy Of ThIs eMpLoYeE

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

1250

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

Select ename as "Name" , sal as salary , deptno department_number

From emp

Where deptno=30;



رمز:
Name SALARY DEPARTMENT_NUMBER
---------- ---------- -----------------

ALLEN 1600 30

WARD 1250 30

MARTIN 1250 30

BLAKE 2850 30

TURNER 1500 30

JAMES 950 30
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
تابع دوره الاوراكل
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» دوره فى الاوراكل 2
» دوره فى الاوراكل
» دوره فى الاوراكل
» دوره كامله فى الاوراكل
» دوره لتعليم الاوراكل بسهوله

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