




السمعة:
- إنضم22 يناير 2024
- المشاركات 229
- الحلول 3
- مستوى التفاعل 528
- النقاط 93
بسم الله الرحمن الرحيم
السلام عليم جميعا
السلام عليم جميعا
اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وزدنا علمًا.
بعد أن أخذنا في الدروس السابقة ما نحتاجه سنبدأ بحول الله في الجانب العملي
كيف نقوم بانشاء نظام المعلومات الخاص بنا ? ومن أين نبدأ ?
بالبداية سنحتاج إلى خطة عمل أو computerization method, وسنختار Merise Method
إذا كنا سنقوم بإنشاء نظام معلومات من ثم قاعدة بيانات ثم التطبيق الخاص بنا من الصفر سنحتاج أولا أن نقوم بدراسة تحليلية ,هذه الدراسة ستحدد لنا كل ما يوجد في هذا النظام من معلومات
ومن أين نأخذ المعلومات ?
من الجهات المعنية فإذا كنت اريد محاكاة نظام حجز المواعيد عند االطبيب فنحن بحاجة أن نسألهم عن آلية عملهم ونأخذ منهم كل المعلومات اللازمة ثم نبدأ بخطوة التحليل وهي إيجاد العلاقة بين هذه المعلومات.
هنا يأتي دور MERISE METHOD الذي يعتمد على على فصل المعلومات(data) عن المعالجة (traitements) فهو يحتوي على مجموعة من المراحل وفي كل مرحلة سنحدد الModel الذي نعتمد عليه يوجد نوعين من Models اساسين سنعتمد عليهما هما :
- CDM(conceptual data model) : كما يوحي اسمه فهذه المرحلة الاولية , تعتبر اساسية ونقوم بها اثناء التحليل وهو غير قابل للتنفيذ not implementable اي انه لايعتبر database بل المخطط فقط.
- lDM logical data model :وهذا يعتبر implementable ويمكن اخذه واستعماله ك database مباشرة,يعتبر استنتاجي فبتطبيق مجموعة من القواعد البسيطة يمكن الانتقال من CDM إلى lDM.
CDM
يعرف كذلك ب( Entity-Relationship Diagram (ERDطيب دعونا من الاسم نستخرج المعنى :
مامعني Entity : هو كل كيان مستقل في النظام الخاص بنا وركزوا على كلمة مستقل .
ناخذ مثال :
لماذا اعتبرت هذين الاثنينEntity ? يوجد العديد من الزبائن وكلهم بببيانات ومعلومات مختلقة وهم مستقلين فكل شخص يمتلك بيانات مختلفة عن الآخرفي نظام البيع والشراء لمتجر نقوم بإنشاء فاتورة لكل عملية بيع ناجحة بمعلومات المشتري
المشتري
فاتورة
بالنسبة للمعلومات التي اود ان احتفظ بها لجميع المشترية نفسها اليس كذلك ?
هذا يعتبر prototype الذي سنقوم فيما بعد بانشاء جميع clients وفقا له :

وأين المشكل ?
ألم ننشئ الفاتورة على أساس بيانات المشتري ? الاختلاف الوحيد بين client1 و client 3 هو رقم الهاتف ولا يمكننا الاعتماد على رقم الهاتف في تحديد الاختلاف بين client 1 و client 3 لماذا? لانه ببساطة رقم الهاتف عرضة لأن يتم تغييره في اي وقت ,ممكن ان يقوم كل منهما بتغير رقم هاتفه عد فترة .
-طيب ماهته المعلومات المتداخلة ومن هم هولاء المشتريةبالنسبة للعناوين client1, client3,client2 وضعتها للتوضيح فقط لذا لا يمكنكم التفريق بين المشترية عن طريقها

الان سنظطر ان نضيف معلومة منها نستطيع التفريق بين المشترية ? هل نضيف تاريخ الميلاد ?
0.000000000001% ان تتحق , حتى وان كانت جد ضئيلة في عالم الحاسوب لا يمكننا اعتمادها.
الان حتى نستطيع معرفة كل زبون يجب ان تتوفر لدينا المعلومات التالية الاسم اللقب رقم الميلاد ,مذا لو نضيف معلومة واحد فقط بها يمكننا معرفة كل مشتري ?
وهذا مايعرف بال ( identifiant )ID يعتبر رقم التعريف وهو وحيد(يمكننا الضمان بانه وحيد) ونعبر عنه بالشكل التالي
الان مهما غيرنا في رقم الهاتف يمكننا دائما معرفة من هو الشخص بالضبط عن طريق id لانه وحيد ولا يتغير
كلمة وحيد لا تعني انه يتشكل من عنصر واحد بل قيمته وحيدة ,يمكننا من المثال السابق أخذ الاسم +اللقب +الهاتف+ رقم الميلاد +العنوان
كرقم تعريف لكنها ليست عملية, ينصح ألا يتجاوز 3 إلى 4 عناصر
اذا ماذا نقصد بوحيد ? كي نفهم اكثر client هي عبارة عن table و تحتوي على اعمدة وصفوف الاعمدة هي table attributes مذا نقصد بال atributes ? هم عناصر table باختصار ومذا يوجد في الصفوف هيا client1 ,client2 ,client3…..
هل يجب ان نعرف شي بخصوص atributes ?
نعم كل atribute يعتبر atomic بننتقل الان إلى علوم الذرة ام ماذا?

لا لا صبرا بس ,هنا كلمة atomic تعبر على ان كلatribute لا يمكن ان يحمل اكثر من قيمة ( يحمل قيمة واحدة فقط).
اذا كان الشخص يمتلك رقمين هاتف لايمكننا تسجيل الا قيمة واحدة في phone يمكن تصوره variable يحمل قيمة واحدة واذا اردت تغييرقيمتها ستظطر ان نقوم ب overwrite وبالتالي سنفقد القيمة السابقة .
الان مذا نقصد بكلمة وحيد ?
اي ان رقم id يجب ان لا يتكرر بأي شكل من الاشكال
طيب بنختبر فهمنا لل id ناخذ firstname+lastname ك id
الان المصطلح Relationship يعني العلاقة ,العلاقة بين مذا ومذا ?
العلاقة بين Entity وEntity(او اكثر ),الم نقل ان كل عملية بيع ناجحة ننشئ منها فاتورة اذا العلاقة بين client و الفاتورة انه يمتلك هذه الفاتورة
-ال client يمتلك فاتورة (اتجاه القراءة من client table نحو invoice table)
-الفاتورة تنتمي لل client ( اتجاه القراءة من invoice table نحو client table )
ماهي العلاقة الحقيقية بينهما اذا كبرناالصورة شوي
انا كزبون يمككني الشراء العديد من المرات صحيح اذا يمكنني امتلاك أكثر من فاتورة? مادام العديد سنعبر عنها ب n.
بالنسبة للفاتورة لمن تنتمي ? هل نفس الفاتورة -فرضا invoice 1- يمكن ان تنتمي لل client1 و client2 في نفس الوقت? لا هي بطبيعة الحال تنتمي لشخص واحد ووحيد .
طيب عند تسجيل client 1 هل يجب ان تكون له فاتورة ? من المنطقي لا نسجل اولا الزبون .
بهته الطريقة قمنا باستخراج cardinalities التي تمثل بثنائية (min-max)وهل يمكن انشاء فاتورة بدون وجود الزبون ? طبعا لا
ونطرح السؤال التالي
0هي اول مرة يسجل فيها الزبون وفي هذه اللحظة هو يمتلك 0 فاتورة و N عند قيامه بالشراء أكثر من مرة.كم يمكن ان يحصل الزبون على فاتورة --> O-N
يمكن تلخيصه في المخطط التاليبالنسبة 1-1 اقل قيمة يمكن قراءتها هل يمكن تسجيل فاتورة دون زبون ? لا اذا اقل قيمة ياخذها هي 1 واكبر قيمة هي 1 كذلك لان نفس الفاتورة لا يمكن ان تنتمي لأكثر من شخص
مذا يمكننا ان تستنتج من هذا المخطط ?
-يمكننا الاستنتاج ان client1 قام بالضبط بالشراء مرتين
-بالنسبة لل client3 قام بالضبط بالشراء مرة واحدة
-اما client2 فقد سجل للتو
-بالنسبة لل invoice4 لايمكن انشاءه لانه لا ينتمي لاي زبون
-وبالنسبة لل invoice1 لا يمكن ان تنتمي ل client1 و client3 في نفس الوقت .
سنقوم في قادم الدروس بالتعمق اكثر وايجاد العلاقات لاكثر من Entities 2 .
دمتم بخير

التعديل الأخير بواسطة المشرف: