The_Coder بتاريخ: 4 أبريل 2007 تقديم بلاغ مشاركة بتاريخ: 4 أبريل 2007 بسم الله الرحمن الرحيم الدرس الثاني اسم الدرس : مقدمة عن قواعد البيانات نوع الدرس : نظري صعوبة الدرس : * من *****محتوى الدرس : - مفاهيم أساسية في قواعد البيانات العلائقية .- المفتاح الأساسي وبعض الأمثلة البسيطة عليه .- المفتاح الأجنبي .- العلاقات ودرجات العلاقات .ملاحظات :تحمل , اصبر , وصابر ورابط , واقرأ الدرس , ولا انصح بفهمه مستقبلا . افهم الآن !!!تحدثنا في الدرس السابق عن قواعد البيانات العلائقية و قلنا انه مجموعة من البيانات مخزنة بطريقة نموذجية دون تكرار والمتصلة مع بعضها وفق علاقات متبادلة .و أنها ملفات تركيبتها خاصة .... (لماذا لها هذه التركيبة الخاصة ؟) لكي تستوفي بعض الشروط وبعض المميزات والتي ذكرناها والتي حلت مشاكل نظام الملفات المسطحة .ولا ننسى مكونات قواعد البيانات .الآن أريدك أن تعرف مسمى للأعمدة .. لان المسميات مزعجة قليلا .. فمثلا Attribute ( خصائص .. او صفات ).... فهي تخص الأعمدة .. أي ان الحقول (Field) هي نفسها خصائص هي نفسها صفات هي نفسها الأعمدة , لا تنسى هذا أبدا .والصفوف تسمى بـ (Record ) سجلات , أي سجلات أو صفوف كلها نفس المعنى .مفاهيم أساسية في قواعد البيانات العلائقية :يجب أن نراعي في قاعدة البيانات العلائقية وجود المفاهيم التالية : - اسم للجدول : مثل جدول الطالب , جدول المواد , جدول ..... والجداول هي كما قلنا ملفات .- الصفات : المقصود بها الأعمدة .. تسمى صفات الجدول كما ذكرنا ... مثلا صفات جدول الطلاب هي اسم الطالب , رقم الطالب ..... الخمجال القيم (Domain ) : المقصود بها .. القيم الموجودة بداخل اسم الطالب مثلا , كم تأخذ حرف ؟ مثال آخر , رقم الطالب .. ما هو مجاله ؟؟ يعني هل من 0 – 9999 ؟؟ او من 0- 100000 مثلا ؟؟ ويمكننا تحديد مجال القيم لكل صفة على حسب احتياجنا .مثلا العمود "اسم الطالب" أنا افرض انه يأخذ 15 حرف كحد أقصى .. و3 حروف كحد أدنى بمعنى آخر كم خانة ؟والعمود "المعدل " افرضه من صفر الى 5 وان يكون كسري والعمود "راتب المدرس" مثلا .. افرضه من 3500 ريال الى 9000 ريال ... يعني ليس من الممكن ان يكون راتب مدرس صفر ريال أو سالب 500 ريال , إذن مجال راتب المدرس هو من 3500 الى 9000 - العلاقة (Relation) : مثلا جدول المواد وجدول الطلاب , بينهما علاقة (Relation) ماهي هذه العلاقة ؟ سوف تعرف ذلك - المفتاح الرئيسي للجدول (Primary key) : ماهو هذا المفتاح ؟ مجرد عمود , ولكن هذا العمود له شروط لكي يصبح مفتاح رئيسي للجدولفي نظام قواعد البيانات العلائقية , نشير للمرة المليون إلى أن الجداول هي مجرد ملفات .قبل ان نبدأ لنرى مثالين على جدولين (ملفين) ... جدول الكتب لنظام مكتبات و جدول الموظفين لنظام شركة:الصورة L2_P1الصورة L2_P2===================================* المفتاح الأساسي أو الرئيسي (Primary Key) :اولا هو مجرد عمود , حقل ما , الفائدة منه هي تمييز السجلات عن بعضها .السجلات ممكن ان تتشابه , ووجب علينا التميز بينها ... كيف ؟ الآن ستعرف . انتبه أولا لشروط المفتاح الأساسي .الشروط اللازمة لتوفرها في العمود لكي يكون مفتاح أساسي هو :1- عدم التكرار .2- أن لا يكون خالي .لان هذا العمود له غرض مهم جدا . وهو ان نميز الصف من بين الصفوف , أن نفرق بين سجل وسجل .السجلات يا عالم دائما تتشابه , فمثلا سجل لطالبين احدهما اسمه احمد محمد مولود في سنة 1986 و طالب آخر اسمه احمد محمد ومولود في نفس السنة كيف نفرق بينهما ؟ هذه الفكرة .... المفتاح الأساسي وهي ..........انظر المثال : يوجد لدينا جدول خاص بالموظفين لأحد الشركات جدول الموظفين كما يلي ( الصورة L2_P2 السابقة ) ما رأيك .. ما هو العمود الذي ترى انه مفتاح أساسي .. أي عمود لم يتكرر او لم يكن خاليا ؟ أنا أقول "اسم الموظف الأول " ... هذا العمود هو المفتاح الأساسي !! هل هذا صحيح ؟ابدأ الآن وغطي الجدول بيدك , وانظر إلى حقل "الاسم الأول" , هل هو جدير بأن يكون هذا الحقل مفتاح أساسي ؟ هل تذكر شروط هذا المفتاح ؟ أن لا يتكرر وأن لا يكون خاليا .من اختبارنا لهذا الحقل ... أقول لا ليس مفتاح أساسي , لماذا ؟ لأنه تكرر فيه قيمتين .. هما خالد و خالد كيف نميز بين سجلين إذا اخترنا حقل "الاسم الأول" ؟ كيف نعرف أننا نقصد خالد سعيد وليس خالد نايف لو اخترنا حقل "الاسم الأول " كمفتاح أساسي ؟ فكر قليلا بالله عليك .......تخيل انه يوجد ألف خالد ! كيف نفرق بينهم ؟ تخيل أننا نريد ترقية احد "الخالدين" , كيف نعرفه من بين هؤلاء الألف ؟؟ ظلم أن نزيد راتب خالد الذي لا نريده , ونترك خالد المسكين الذي نريده .إذن هذه مشكلة , لا يصلح حقل "الاسم الأول" كمفتاح أساسي نفرق به بين الموظفين ونعرفهم بسيماهم .نحاول مرة ثانية ونرى عمود أو حقل آخر لعلنا نفلح في اختيار المفتاح الأساسي لهذا الجدول . هل "اسم الأب " هو المفتاح الأساسي ؟ لا لان سعيد تكرر مرتين هل حقل "الراتب الإضافي" هو المفتاح الأساسي ؟ نعم , اعتقد انه يصلح ... لم يتكرر ,, ولكن هنالك قيم خالية والراتب الإضافي .. عمود لا يستحق ان يكون مفتاح أساسي . لان به قيم خالية ... فمثلا سعد فادي لا يوجد لديه مكافئة إضافية ( قيمة خالية ) .. بالرغم من أن محمد محمود ليس لديه مكافئة إضافية لكنها ليست خالية ! انتبه ... الصفر ليس قيمة خاليةهل حقل "الراتب" هو المفتاح الأساسي ؟ نعم !! انه أفضل حقل موجود لدينا يصلح كمفتاح أساسي , لأنه لم يتكرر في جدولنا ... ولكن لحظة !! قلنا انه من صفات المفتاح الأساسي ان لا يتكرر + ان لا يكون فيه قيم خالية صحيح انه لم يتكرر في جدولنا هذا ... لكن احتمال انه يوجد موظف جديد راتبه نفس راتب سعد فادي مثلا ,,هل تاريخ الميلاد هو المفتاح الأساسي ؟ لا ..... من الممكن أن يأتينا موظف تاريخ ميلاده نفس تاريخ ميلاد موظف آخر .ما الحل ؟ ما العمل ؟مارأيك في هذه الفكرة : نأخذ حقل "الاسم الأول " وحقل "اسم الأب " ... ويكونان مفتاح أساسي واحد ؟هل فهمت ؟ مثلا ندمجهم سوية ... من السهل أن نجد رجل اسمه سعد ... لكن من الصعب أن نجد رجل اسمه سعد واسم أبوه فادي غير سعد فادي صاحبنا الذي بالجدول , من الممكن دمج حقلين ليكونان مفتاح أساسي .لكن ... بالنظر إلى المسألة ... لو جاء رجل فعلا اسمه سعد فادي ؟ سنكون في ورطة فعلا , فهذا محتمل .. وأيضا يوجد عيب آخر في هذا الدمج وهو حقلين نصيين وليسا رقمين الكمبيوتر يحب الأرقام , يحب التعامل مع الأرقام أكثر من الحروف , الأسهل على الكمبيوتر التعامل مع الأرقام , سوف اشرح ذلك فيما بعد , فلا تبتئس .مارأيك لو دمجنا اسم الموظف واسم الأب وتاريخ الميلاد ؟ يوجد احتمال ضئيــــــــــــــل جدا أن يأتي موظف له نفس الاسم ونفس اسم الأب ونفس الميلادلكن لا يزال هنالك احتمال , وأيضا عقدنا المسألة في عملية الدمج , ولعله يؤثر كثيرا في أداء النظام كالبحث وما إلى ذلك,,, لكن هنالك حل نموذجي سهل وميسر .نضيف حقل جديد (عمود جديد ) نجده يصلح بأن يكون مفتاح أساسي . لماذا نضيف عمود .. ونزيد كمية البيانات بلا داعي؟ أليس هذا تكرارا ؟يوجد هناك أسباب مقنعة لإضافته , وستعرف كيف نختصر الكثير الكثير من التكرار بوجود هذا التكرار البسيط للبيانات ... اعرف انك ترى هذا تكرارا ليس ببسيط في مثالنا , لكن نحن نعمل على جداول صغيرة جدا بالنسبة إلى التي تستخدم في المؤسسات المتوسطة والكبيرة , فسوف تلاحظ مدى ضئالة هذا النوع من التكرار .أنا من ناحيتي ... أرى أن نضيف عمود جديد ويسمى "رقم بطاقة الأحوال المدنية" وهو رقم لا يتكرر أبدا بين المواطنين في دولة ما .. ولا يمكن ان يكون خاليا !! مارأيك ؟ أو اقترح أن نضع أرقام عادية ... مثلا 1 , 2 , ...... الخ يعني الموظف رقم 16 معروف انه سالم محمد .. والموظف رقم 23 هو سالم محمد آخر , والموظف رقم 3600 هو سالم محمد ثالث , والموظف رقم 1000000 هو سعد مسعود وهكذا , وطبعا لا يمكن أن نوظف شخص ولا نضع له رقم , لنعتبره نظام متبع في هذه الشركة حتى لا تكون هنالك قيم فارغة .هل ترى عدم التكرار في هذا العمود ؟ هل ترى عدم وجود قيم خالية ؟ أرجو أن يكون ذلك واضح ,,ماذا تقترح أنت ؟ ما رأيك أن نضيف مثلا عمود يسمى رقم الموظف كما في الجدول التالي الصورة L2_P3 إذن المفتاح الأساسي هو رقم الموظف ... لو أتى موظف جديد نعطيه الرقم مثلا 455 وهو رقم غير موجود في جدولنا , وبإمكاننا أن نعمل عداد أوتوماتيكي لأرقام الموظفين , مثلا أول موظف رقم 1 , والثاني رقم 2 .... الخ .مع العلم ان المفتاح الأساسي في الجدول يجب ان يكون تحته خط .. كما تشاهد الخط تحت رقم الموظف في الصورة . * الـعـــــلاقـــــات :عرفت أن قواعد البيانات العلائقية بها ميزة العلاقات ولكني اعلم انك لم تفهم ما معنى العلاقات هذه ولماذا وكيف تتم .لدينا مجموعة جداول معينة , في شركة ما مثلا .... لدينا جدول الأقسام ولدينا جدول الموظفين .... الخ .الفكرة هي انه بين كل جدول وجدول علاقة , فمثلا جدول الموظفين و جدول الأقسام بينهما علاقة ما هي العلاقة يا ترى ؟ ما علاقة الموظفين بالأقسام ؟ أعطيك مثال لشركة ما .العلاقة بين جدولي الأقسام والموظفين هي أن الموظف الواحد يعمل تحت قسم واحد وان القسم الواحد به أكثر من موظف يعمل به لا يمكن في هذه الشركة أن يعمل شخص تحت قسمين أو أكثر .... وممكن في شركة ثانية يوجد هذا النظام , ولكن دعنا في مثالنا هذا , وهو مجرد مثال .ما رأيك أن نفترض هذا الجدول وهو جدول الأقسام والموظفين الذين يعملون تحت هذه الأقسام : الصورة L2_P4 (جدول الموظفين والأقسام التي يعملون تحتها ) لاحظ معي هذه المعلومات , اعرف أن الجدول ليس به الكثير من السجلات ولكن تخيل أننا قصصنا هذا الجزء من الجدول .انظر إلى قسم المحاسبة وهو قسم واحد ويوجد بمكة وبه 50 شخص , ...انظر إلى قسم الصيانة , يوجد بالمدينة وبه 70 موظف انظر إلى قسم المبيعات .. يوجد قسمين , قسم بالرياض وقسم بجدة .... انظر إلى القسم الجديد "تقنية المعلومات" ولا يوجد به أي موظف , والى الآن لم يتم توظيف موظفين به ,,,, لذا لا بد من ذكره في الجدول .... كيف نهمله ؟ لكن ظهرت لنا مشكلة المفتاح الأساسي الذي أصبح خاليا بالرغم من أننا اخترنا عمود جدير باسم "مفتاح أساسي " !! يجب وضع مفتاح أساسي صحيح ؟لاحظ الآن قسم المحاسبة , لاحظ معي أن هذا القسم به 3 موظفين وهم احمد سعيد , و خالد سعيد , وخالد نايف ... لاحظ معي ان القسم به معلومات خاصة تكررت !! ... هل تتوقع التكرار هذا يؤثر كثيرا على تضخم المعلومات ؟ كم مرة ذكرنا ان قسم المحاسبة موقعه في مكة وبه 50 موظف ؟؟ ولو هناك 1000000 موظف في هذا القسم على سبيل المثال وتخيل أن معلومات القسم كثيرة مثلا في أي شارع وفي أي حي وكم مساحة المبنى الخاص به وما هو رقم المبنى ورقم الدور ومتى انشيء ومن هو مديرة وكيف أوصاف هذا المدير وما لون عينيه ... الخ من التفاصيل المهمة والشبه مهمة والتي تعتمد على النظام نفسه .لقد مللت وأنا اذكر ان هذا التكرار قد يجعل حجم البيانات ضخم لدرجة الهوس ! و انه يوجد تكرار للمعلومات !! ويجب أن نتحاشى هذا التكرار ..... الآن كيف نتحاشاه ؟نفكر ... كم شيء مستقل يوجد في نظامنا ؟ نظامنا هو نظام لشركة ما ... به موظفين و أقسام ..... الخفكر ماهي الأشياء التي تعتبر مستقلة ولها صفاتها وأعمدتها ؟ ماهي الملفات أو الجداول التي نعتبرها مستقلة بحد ذاتها ؟ سوف اسأل فيما بعد عن هذه النقطة انتبه ! إليك هذا .... الموظفين أول ملف مستقل .. لديه الصفات أو الحقول التالية "الاسم الأول" , "اسم الأب" , "الراتب" , "الراتب الإضافي " , "تاريخ الميلاد" , صفات خاصة به فقط دون غيره .ملف أو جدول الأقسام , وبها الصفات التالية : "اسم القسم" , "موقعه" , "عدد الموظفين بالقسم" الذي يستوعبهم ........ وغيرها .أي عندنا كائنين , كائن "الموظفين" وكائن "الأقسام" , وفي كل نظام يوجد مجموعة كائنات , الكائنات كأنها هي الجداول فهمت ؟ أي كأنها تسمية أخرى للجداول .طبعا الأنظمة الكبيرة (البرامج الكبيرة) من يبرمجها ؟ شخص ؟ شخصين ؟ لابل فريق عمل .... أول من يبدأ بالعمل شخص أو شخصية تسمى بـ "محلل النظم" , ثم الشخص الذي يليه "مصمم النظم" (من الممكن أن تتواجد المهمتين في شخص واحد فيصبح محلل ومصمم النظم )ما عمل محلل النظم ؟ هو أن يقابل الزبون (صاحب النظام الذي يريد هذا النظام ) ويبدأ يستفسر منه عن النظام كي يبدأ يحلل ويخطط ويفكر في النظام كيف سيتم إنشاءه , ويعطي أفكاره لمصمم النظام الذي سوف يرسم نماذج النظاملعلنا نتكلم فيما بعد إن شاء الله عن هذه المواضيع كثيرا , لكن أردت أن أقول أن كثيرا من المحللين أول مهمة لهم هي تحديد كائنات النظام !مثلا نظام المدرسة , ماهي الكائنات المتوقعة في هذا النظام ؟ كائن "المدرسين" , كائن "الطلبة" , كائن "المواد" ..... هل يصلح أن نقول "كائن الدرجات" ؟؟؟ لا لا .. الدرجة صفة (أو حقل )من كائن المواد !مفاهيم الكائنات لا استطيع في درس أو 10 دروس تغطيتها .... تحتاج لدورة كاملة .======================نرجع إلى موضوعنا , ماذا كنا نقول ؟ أها ,,, الآن عرفنا انه يوجد ملفين أو جدولين أو كائنين مستقلين في الصورة السابقة , هما كائن أو ملف أو جدول الموظفين , وجدول الأقسام .الآن نصمم جدول خاص بمعلومات الأقسام . وليكن هذا الجدول : الصورة L2_P5 (جدول الأقسام)أين المفتاح الأساسي ؟ نسيت المفتاح الأساسي .هل هو حقل "اسم القسم" (أو حقل القسم كما أسميته في الصورة )؟ لا طبعا ... يوجد قسمين اسمهما متشابهين ,ومن الممكن أن نضيف أقسام جديدة أخرى ولها نفس الاسم مستقبلا . لنختصر الأمر , ونضيف مفتاح أساسي من عندنا ونسمي الحقل "رقم القسم" انظر الجدول : الصورة L2_P6 (جدول الأقسام النهائي)رقم القسم هو المفتاح الأساسي (لاحظ الخط الذي تحت رقم القسم في الصورة) , ولا اعتقد انك لاحظت قسم المبيعات تكرر مرتين , ولكل منهما رقم مغاير لأنهما بالرغم من تشابههما إلا أنهما يمتلكان صفات مختلفة مثل الخالدين في جدول الموظفين , تشابهوا ولكن لهم سجلات مختلفة ,وكلاهما له صفاته الخاصة به . الآن لدينا جدولين, جدول الموظفين ( الصورة رقم 4 السابقة ) , وجدول الأقسام (الصورة رقم 7 السابقة )نريد أن نعرف أن الموظف خالد سعيد بقسم المحاسبة الذي بمكة !! كيف نعرف ؟؟ نريد أن نربط بين الجدولين , كيف نربط بين الجدولين ؟؟ لماذا فصلناهما وتحاشينا التكرار ثم ظهرت مشكلة هي الربط ؟ إليك هذا الحل : نزيد عمود في جدول الموظفين ونسميه "رقم القسم" ونكتب رقم القسم فيه ... لا تسأل لماذا نضيف عمود في جدول الموظفين ولم نضيفه في جدول الأقسام , ولا تسأل لماذا أضفت لك هذا العمود أصلا .الآن خالد سعيد الذي يعمل بقسم المحاسبة نضع في سجله رقم القسم 10 .. أي يعمل في القسم رقم 10, وبالرجوع إلى جدول الأقسام نجد القسم رقم 10 هو ماذا ؟ هو قسم المحاسبة .هل فهمت شيء ؟بالله عليك قبل أن تنظر إلى الصورة التالية , اعد قراءة بضع السطور التي فوق إذا لم تفهم . انظر الصورة : الصورة L2_P7 (جدول الموظفين النهائي وكيفية ربطه بجدول الأقسام)خالد سعيد , خالد نايف , و احمد سعيد ,,, يعملون في القسم رقم 10 ... ماهو القسم رقم عشرة يا ترى ؟ تتبع الخط الأحمر وانظر في جدول الأقسام لنكتشف أنهم يعملون في قسم المحاسبة بمكة والذي يستوعب 50 موظف .... الخ أسف لأني اكرر دائما , و أسف لأني أعيد كلمات (تكرار اكرر مكرر ..... الخ ) , لكن صدقني أنني "طفشت" بنفسي , و أأمل أن ترسخ المادة ,,, لعلي افلح في ذلك . الآن أريدك أن تلتمس وتشعر باستنتاجاتك النيرة , وان تتناغم مع هذه الدروس .مارأيك في تكرار حقل "رقم القسم" الموجود في جدول الموظفين ؟ هل تعتقد أن هذا التكرار في جدولنا الضخم صاحب الـ 100000 سجل و 200 حقل , يؤثر كما كان يؤثر التكرار السابق في صورة رقم 5 ؟؟؟صحيح تكرار , ولكن تكرار ضئيل جدا بالنسبة للتكرار التقليدي . معلومة إضافية : بعض الأنظمة في بعض المؤسسات تعمل برامج خاصة تولد المفتاح الرئيسي, كيف ؟مثلا جاءنا الموظف Mike Bill المولود في سنة 1987 فينشئ البرنامج له هذا الرقم MB87_1 على سبيل المثال , يأخذ أول حرف من اسمه , و أول حرف من اسم أبيه , سنة ميلاده , ثم عدد واحد كأول شخص له هذا الرقم ويأتي موظف آخر Mohammad Bader المولود في نفس السنة , فينشئ البرنامج له هذا الرقم MB87_2 وهكذا ....مثال آخر , عن الجامعات ... مثلا احد الطلبة رقمه 1234 وهو من دفعة 2004 أي دخل الجامعة سنة 2004 , فإنه يعرف بهذا الرقم "041234" , الرقمين 04 مأخوذة من 2004 , وطالب آخر من دفعة 1999 رقمه مثلا 991121 وهكذا ..... , أو يضيفون رقم الكلية إلى رقم القسم إلى ترتيب الطالب بين زملاءه ورقم السنة وينتج "رقم الطالب"وهذا مجرد مثال .... على حسب المؤسسة على حسب الغرض ينتج الرمز . الآن تشاهد جدول الموظفين في الصورة L2_P7 السابقة انظر إلى حقل "رقم القسم" , نفس حقل "رقم القسم" في جدول الأقسام "رقم القسم" صاحب جدول الأقسام مفتاح أساسي أو رئيسي , لا يتكرر ولا يمكن أن يكون خالي "رقم القسم" صاحب جدول الموظفين ليس مفتاح أساسي , لأنه تكرر , واعتقد انه من الممكن أن يكون خالي ....مارأيك في حقل يكون مفتاح أساسي في جدول , وهو نفسه ليس أساسي في الأخر ؟هذا النوع من الحقول يسمى بالمفتاح الأجنبي Foreign Key .... أعيد ...... هذا النوع من الحقول يسمى بالمفتاح الأجنبي Foreign Key .ما فائدة هذا الحقل ؟؟ وكيف اعرف ما إذا كان هذا العمود مفتاح أجنبي أو لا ؟؟ ---------------------------------------------* المفتاح الأجنبي (Foreign Key) :غرضه هو ربط جدولين ... وكما في مثالنا السابق .. ربطنا جدول الموظفين بجدول الأقسام ... وجعلنا المفتاح الأجنبي في جدول الموظفين وهو العمود الخاص برقم القسم .كيف تميز المفتاح الأجنبي ؟ المفتاح الأجنبي هو مفتاح أساسي في جدول آخر .. أي انه مفتاح أساسي في جدول الأقسام , وهو في جدول الموظفين أجنبي !!المفتاح الأجنبي هو مفتاح أساسي في جدول ما , وليس مفتاح أساسي في آخر , لماذا هذه العباطة ؟ ما غرضه ؟ الغرض هو ربط جدولين بالطريقة التي اشرنا إليها .لعل في ذهنك هذا السؤال المهم , لماذا وضعنا مفتاح أجنبي في جدول الموظفين ولم نضعه في جدول الأقسام ؟ سؤال ذكي ..الجواب عند صاحبتنا "درجة العلاقات" , ابحث عنها , أو اصبر حتى الدرس القادم .* درجــــــة الـــعـــلاقــــات(Relation Degree) : سوف أتكلم نظريا عن مفاهيم هذه الدرجات , هناك ثلاث درجات وهي /1- واحد لواحد (one to one) : مثل علاقة المسافر بالتذكرة ... فالمسافر الواحد يملك تذكرة واحدة للرحلة الواحدة.. والتذكرة الواحدة يمتلكها مسافر واحد للرحلة الواحدة هل يمكن لمسافرين ان يمتلكان تذكرة واحدة للرحلة الواحدة ؟؟ لا .... وهل يمكن للمسافر ان يمتلك تذكرتين للرحلة الواحدة ؟ لا طبعا ...مثال آخر ... الشخص الواحد لديه روح واحدة .... الروح الواحدة في شخص واحد ... إذن العلاقة : الملكية الشخص يملك روح واحدة .... الروح الواحدة في شخص واحد 2- واحد لمتعدد أو متعدد لواحد (one to many or many to one ) : مثلا ان يعمل الموظف الواحد في قسم واحد .. والقسم الواحد يعمل تحته مجموعة موظفين (موظفين متعددين .. يعني ممكن يكون موظف واحد ويمكن أكثر ) هل استنتجت لماذا أضفنا المفتاح الأجنبي في جدول الموظفين ؟إذن العلاقة في مثالنا :العمل الموظف الواحد يعمل تحت قسم واحد .... القسم الواحد يعمل تحته مجموعة موظفين .مثال آخر .. العلاقة بين رجل وامرأة الزواج .. الرجل يتزوج أكثر من امرأة ( في المرة الواحدة ) وان المرأة لا تتزوج إلا رجل واحد (في المرة الواحدة ).... إذن العلاقة في مثالنا : زواجالرجل يتزوج امرأة أو أكثر في المرة الواحدة ..... المرأة تتزوج رجل واحد فقط في المرة الواحدة أشير فقط أن علاقة واحد لمتعدد ومتعدد لواحد هي أكثر العلاقات رواجا وسهولة في نظم قواعد البيانات , ابحث دائما عنها .3- متعدد لمتعدد (many to many) : مثل .. الطالب يدرس تحت مجموعة معلمين ... والمعلم الواحد يدرس أكثر من طالب العلاقة في المثال : دراسةمثال آخر .....الكابتن الواحد يقود أكثر من طائرة ... والطائرة الواحدة يقودها أكثر من كابتن العلاقة في مثالنا : قيادةانتهى درس اليوم ولله الحمد بعد أن تكلمنا قليلا عن العلاقات ودرجاتها , وعن المفتاح الأجنبي ... و بقي لدينا الكثير الكثير عن قواعد البيانات العلائقية , توقع أمثلة كثيرة وتطبيق أكثر في الدروس القادمة أن شاء الله .الواجب : س1 : اضرب لي 3 أمثلة لم اذكرها لدرجة العلاقات (3 أمثلة لعلاقة واحد لواحد ... و3 أمثلة متعدد لمتعدد ... و 3 أمثلة لمتعدد لواحد أو واحد لمتعدد)س2:في رأيك ... عندنا جدولين .. ويلزمنا أن نربط بينهما ... هما جدول المدينة وجدول الدولة أين نضع المفتاح الأجنبي ؟ في أي جدول ؟ لم اشرحها ؟؟؟؟ إذن استنتج وخمن واشرحها لي أنت .س3 : فكر في جدولين (مثال من عقلك لأي جدولين ) وأضف مفتاح أساسي , و أضف مفتاح أجنبي ... , و أتمنى لو تكون علاقة الجدولين واحد لمتعدد أو متعدد لواحد كما ذكرت في مثال اليوم .التحديات : س1 : هل تذكر الصورة L1_P2 في الدرس الأول ؟؟ وحاول أن تتحاشى تكرار البيانات , بمعنى آخر ... ذلك كان ملف مسطح , أريد أن تحول قاعدة البيانات تلك إلى قاعدة بيانات علائقية .... تستطيع ؟؟؟المهام :- أحضر برنامج الفيزيو VISIO .. من شركة مايكروسوفت .... وهو خاص برسم الـنماذج ... حاول أن تحصل عليه ... فهو مفيد جدا جدا ... في دروسنا .. وله مأرب أخرى ,,,, all_pic_L2.zip اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
khaledmega بتاريخ: 5 أبريل 2007 تقديم بلاغ مشاركة بتاريخ: 5 أبريل 2007 سبحان الله فى كل درس تثبت للقارئ انك قد تفوقت على نفسك بفضل الله وحده ؛ أكمل يا صديقى ما بدأت فنحن فى انتظار أبداعتك وتواصل أفكارك المنمقة وشكراميجا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
-=|mOOdY|=- بتاريخ: 5 أبريل 2007 تقديم بلاغ مشاركة بتاريخ: 5 أبريل 2007 لن ازيد على كلام الاخ ميجافعلا عمل رائع تستحق عليه كل الثناء اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
The_Coder بتاريخ: 7 أبريل 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 7 أبريل 2007 السلام عليكم اهلا بكم ثانية واحب اشير انه الدروس تكون بطيئة قليلا , لانه كتابة الدرس ياخذ وقت , لو الشغلة نسخ ولصق كان انزل كل يوم درسين , بس المشكلة هي الكتابة , و تبسيط الدرس بابسط اشكاله وتفصيلهاعذروني,,,khaledmega : حياك الله مرة ثانية شكرا لك اخي ... شكرا لكmoody_4u : اهلين اخي , والله يخليك وشكرا لك ,,, اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mdsalah بتاريخ: 8 أبريل 2007 تقديم بلاغ مشاركة بتاريخ: 8 أبريل 2007 اخى الفاضل THE_CODERازاد الله عليك واعطاك من حيث لا تدرى فعلا درس يستحق كل كلمه شكر وتقدير ومعك حق فى ان تاخذ وقتك كله ففعلا انت تذهلنا فى كل مرة تضع فيها درس ونتمنى منك ان تستمر بها اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
The_Coder بتاريخ: 9 أبريل 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 9 أبريل 2007 السلام عليكم اخواني اعتذر عن تأخر الدرس الثالث والرابع بس قاعد ابسطهم لابعد الحدود واجمع المعلومات حتى لا تتشتت وانت تدور هنا وهناك فاعذروني .... ثلاث ايام وان شاء الله انزل درسين ,,,mdsalahاهلا وسهلا بك , اسعدني وجودك مرة ثانية وثالثة و 1234885 مرة هنا اخي شكرا لك وجزيت الف الف خير اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mmacompunet بتاريخ: 7 يونيو 2007 تقديم بلاغ مشاركة بتاريخ: 7 يونيو 2007 أخي العزيز مشكور على هذه الدروس الرائعة وأسلوبك جميل في توصيل المعلومةأعانك الله على مواصلة الدروس للنهايةأنا متشوق لأرى الدروس الخاصة بالكرسر والفانكشن مع الأمثلة وأكيد الفورم والريبورت لأني متأكد أنها ستكون روعة وفقك الله وجعلك ذخرا لوالديك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
The_Coder بتاريخ: 8 يونيو 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 8 يونيو 2007 السلام عليكماهلا اخي شكرا لك , وجزاك الله الف الف خيروان شاء الله شهر ونصف من الان .. حأوصل الى الكورسور وما الى ذلك ..حأعمل فلاشات لتيسير الموضوع لأبسط حد ان شاء اللهموفقينالسلام عليكم ثانية ....لفتح صفحة دروسي ... 1- اضغط على الوصلة التالية : http://www.4shared.com/2- ادخل اسم المستخدم [email protected]3- ادخل كلمة السر 999999999 4- بامكانك استعراض جميع دروسي في الصفحة التي ستعرض لديكارجوووو رجاء خاص ان لا ترفع ملفات ... استحلفك بالله ان لا تضع ملفات تسيء الينا جميعا , ولا تحذف شيء او تضيف شيء او تعدل شيء خارج عن موضوعاتي ... بامكانك التسجيل مجانا وضع ملفاتك التي تريد ....اني بريء مما يعملون ... اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
yassercomputer بتاريخ: 4 سبتمبر 2007 تقديم بلاغ مشاركة بتاريخ: 4 سبتمبر 2007 السلام عليكماهلا اخي شكرا لك , وجزاك الله الف الف خيروان شاء الله شهر ونصف من الان .. حأوصل الى الكورسور وما الى ذلك ..حأعمل فلاشات لتيسير الموضوع لأبسط حد ان شاء اللهموفقينالسلام عليكم ثانية ....لفتح صفحة دروسي ... 1- اضغط على الوصلة التالية : http://www.4shared.com/2- ادخل اسم المستخدم [email protected]3- ادخل كلمة السر 999999999 4- بامكانك استعراض جميع دروسي في الصفحة التي ستعرض لديكارجوووو رجاء خاص ان لا ترفع ملفات ... استحلفك بالله ان لا تضع ملفات تسيء الينا جميعا , ولا تحذف شيء او تضيف شيء او تعدل شيء خارج عن موضوعاتي ... بامكانك التسجيل مجانا وضع ملفاتك التي تريد ....اني بريء مما يعملون ... شكرا ليك يا اخي حمزة جزاك الله خير والله قد استفدت من دروسك استفادة عظيمة جدا ولكن كنت احب ان اعلق على شيئ فى الدرس الخامس انت قلت(انه اذا كانت العلاقة واحد لواحد(الازامي لالزامي) او اختياري لاختياري ) ضع المفتاح الاجنبي عبطا في اي جدول ) ولكن بعد ان بحثت وجربت وجدت في ان في هذه الحالة يجب ان يوضع المفتاح الاجنبي في الجدول الاقصر اي في الجدول الذي يحتوي على الاقل في الصفوف لن اقول لك لماذ جرب ورد علي , واكرر شكري والسلام عليكم ورحمة الله وبركاته. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
The_Coder بتاريخ: 13 سبتمبر 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 13 سبتمبر 2007 السلام عليكم جزاك الله خيرا اخي .. فعلا الافضل وضعه في الجدول الاقل في الصفوف ... عشان التكرار اقل لكن اذا ما عرفنا ايها اقل في عدد الصفوف ؟ او ما استطعنا نتوقع ؟ فنضعها عبطا .... موفق اخي , وهل لديك سبب اخر اطلعنا عليه لعلنا نهتدي شكرا لك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
جلال شواقفه بتاريخ: 31 أكتوبر 2007 تقديم بلاغ مشاركة بتاريخ: 31 أكتوبر 2007 شكرا لك على هذه المقدمه الشاملهونحن بانتظار باقي الدروس ان شاء الله اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
doasa بتاريخ: 19 نوفمبر 2007 تقديم بلاغ مشاركة بتاريخ: 19 نوفمبر 2007 السلام عليكمجزاك الله ياأخ حمزه على هذا الجهد الرائع والطيبانا مبتدئه يعني صفر في البرمجة من زماان نفسي اتعلم وافهمانا الأن خلصت الدرس الرابع والحمد لله تقريبا كل شي واضح ما شاء الله عليك والله يوفقك في الدنيا والآخرهوننتظر المزيد منك بإذن اللهبالتوفيق اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
doasa بتاريخ: 25 نوفمبر 2007 تقديم بلاغ مشاركة بتاريخ: 25 نوفمبر 2007 السلام عليكمحل الواجبان شاء الله الرابط يشتغل اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
F_A_H_D بتاريخ: 24 ديسمبر 2007 تقديم بلاغ مشاركة بتاريخ: 24 ديسمبر 2007 نحن بانتظار باقي الدروس ان شاء الله اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.