مضى على الشبكة و يوم من العطاء.

تصميم أنظمةالمعلومات -(2)Merise conception

MinaMina is verified member.

{ | مشرف قسم لغات البرمجة | }
.:: طاقم المشرفين ::.
.:: كاتب تقني ::.

السمعة:

السلام عليكم جميعًا

عدنا لنلقاكم في تكملة دروسنا , عساكم بخير يارب
تكلمنا المرة الأخيرة عن إيجاد Entitiesو cardinality والعلاقة الموجودة وأخذنا هذا المثال:

AD_4nXdli_bR_oi554lGLQqQHA0-uG05TtjoBNPBDyt8v2x9_k6csHqDrZulLc8DaUdwifd5qjTtlvFh0BPI-vG0TC5eP1hntVAmCefWbddJ-g3Sk0f1z60XXOoslGlnc4n5AIDbHX9SkAKpjHVkcDDblhgskHXk

وقلنا أنه يوجد علاقة بين الزبون والفاتورة وهي علاقة امتلاك, ولإيجاد الـ cardinality(min-max) علينا أن نطرح السؤال التالي :

هل عند تسجيل الزبون يجب أن تكون له فاتورة؟ كانت الإجابة لا يجب أن يكون مسجلًا قبل إنشاء الفاتورة وبهذا وجدنا (cardinality (0-max
ثم تساءلنا هل يمكن للزبون أن يقوم بالشراء عدة مرات واستلام عدة فواتير؟ فكان من البديهي الجواب بنعم فوجدنا العلاقة (min=0,max=n)


🔹 ماذا لو غيرنا cardinality وأخذناها بالشكل التالي (1-0) ؟
AD_4nXcrukg1pYFv8KwoQHa7v1lDbFwrZ2E4ISKFyVWJEcFaomzxmXqcL93TpIy3FJ0lfxJg29P_ZTJYMcR4xeCT2DQYGseBjoND-9fJ44-35lNBHir1P7thc2lmLqNKM7ebajf16cr4gTVfZUmMCQo1l1XMl_o


تفسيرها أن كل زبون له الحق في الشراء والحصول على الفاتورة مرة واحدة فقط حرفيا قاعدين نقول ' اشتري مرة وحدة ومترجعش فضلًا ' 😂

🔹طيب ماذا لو غيرناها (min=1,max=n)؟

هنا يمكن للزبون الشراء عدة مرات لكن إذا كان زبون أول مرة يشتري من عند المحل بتقوله ' هات الفاتورة الأول'
طيب هو لسا مشتراش بيقولك بجيب الفاتورة من وين؟ بتقولوا لا جيبها😂 وفي النهاية لن يستطيع لا التسجيل ولا الشراء .


بالنسبة للفاتورة دعونا نغير العلاقة ل (1-0)

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

AD_4nXfT7xHsPYfmnzSzdQQUFwcOPsemjJtKqzjlTrH8FLXaoT6iOV8RSpRC0PWosCLHAoknm0pPy5xRsjPe1cGVxqrOlbs9AJFx2xAfQl0waajjiga53oIDfeWbYaQM0EtU4hMrhLJf3XjRJTNlONRWyUF_3Mzu


أضفت توضيح وشرح الجدوال فقط لكي يكون لكم فكرة وتصور أن كل Entity ستتحول فيما بعد إلى جدول في مرحلة IDM ولكن سنكمل بالتعامل مع entities فقط .

والآن ماذا يمكن أن تحتوي الفاتورة معلومات الشراء صحيح؟ شراء ماذا؟ المنتجات, إذًا يمكن إيجاد علاقة بين المنتجات والفاتورة هي الاحتواء الفاتورة تحتوي على مواد وتعودنا على طرح السؤال:

كم يمكن أن تحتوي الفاتورة من المواد على الاقل => على الاقل مادة واحدة =>1
على الأكثر => العديد =>n

بالنسبة للمنتج:
كم يمكن أن يشتريه من شخص العديد من الأشخاص =>n
طيب هل يمكن أن لايقوم بشرائه أي شخص => نعم يمكن أن تكون مادة جديدة
AD_4nXe_w9-onkhz_5dvpgGzomiTX-AOUNFwybdt2ApHZYl8QAXqEixA7SSMB-DsUzkGX5xb55qKCrMGqMrbObcA6tiLTF0Mn1K4rPMTm2zIZz8ICqVqVUqpzJTOFJ_Xxw-wk-zYgrlM4tFfdsJzNArqGoS_akmR



حقيقة لم أقتنع ما دام يوجد علاقة بين client و product لماذا لم نجعل بينها علاقة شراء بهذا الشكل:
ــ بحيث أن الزبون يمكنه شراء العديد من المنتجات
ــ والمنتج يمكن أن يشتريه العديد من الأشخاص
سؤال جيد

AD_4nXfr_wiB9hkhXkVRcbQqs1zC2popiDO6PKKjLBZ7udssWsieAnjiRxunBpJSq9BT_e-OKd5yv-rwcpO4x-bu6xYomYDBa_MC7jjLZ_LPpmXj9K29346mx5GTTqRTy0TF8KTgkUAeOQZa5wpukDBMZ9ssI-vZ

طيب في كل علاقة يجب أن أسأل ماذا استفدت من هذه العلاقة وماذا يمكن الاستنتاج منها؟
إذا كنا نستنتج من هذه العلاقة شيء جديد يجب إضافتها
عدا ذلك يجب التخلي عنها

علاقة 'يشتري 'يمكن الاستنتاج منها المنتجات التي اشتراها كل شخص صحيح؟ نعم أظن أن هذا ما أراد السائل معرفته

طيب هل يمكننا أن نستنتجها من المعلومات السابقة, إذا كنا نعرف رقم الفاتورة ماذا يمكننا أن نستنتج منها؟
بطبيعة الحال المنتجات وماذا كذلك يمكننا أن نعرف لمن تنتمي, فبالتالي يمكننا معرفة الزبون من خلالها لأن الفاتورة علاقتها بالزبون (1-1), فإذا كانت الفاتورة y و الزبون x علاقتهما y —> x
, إذًا علينا التخلص من العلاقة يشتري

AD_4nXf596TqUdAp_SniferOwXQ13rTPgVnrPBy9jHcE7zahdtmq6HWeH8yq9t8W6wVOPgLWy2LTThcXrU_wLfxs2x5nA5MzSofQXBC7C0_13M-p8BBVsLekzkie65TXdi3yrI5mopBIBimvEOdgboonzNxdUjU
طيب عادةً فاتورة الشراء تحتوي على عدد كل منتج يعني مثلًا :
-قارورة المياة 2
-شيبس 5
-شكولاطة 2


هذه الكمية تعتبر attribute صحيح لكن أين يمكننا وضعها؟ هل هي تخص المنتج؟ أم تخص الفاتورة؟
إذا طرحنا السؤال كم يوجد من قطعة شكولاطة ماركة x في المحل هنا نحن نتكلم عن stock الموجود داخل product , لكن نحن بحاجة معرفة عدد المنتجات داخل الفاتورة , إذًا هذه المعلومة مرتبطة بالفاتورة والمنتج معًا إذًا يجب وضعها داخل العلاقة

AD_4nXfuy37czEly2Qi05hw0rcfrR83pblclocQAObS91C_SLJkmuktEBKclFWxSBO4KAfw_NfAM_RLSBG_io66wA7vbW6XJotei9pRA8WwybsaHZ05pTfj5Y_Kfi7QZfTX6ce38JEGbO_xKNEvidUUjY3Yyt8zN

السعر الموجود داخل product يعبر عن سعر الشراء هو سعر ثابت أما سعر البيع فهو يتغير مهلًا أين معلومة سعر البيع؟ يجب أن نقوم بإضافتها لكن أين؟
هي تخص
البيع والمنتج معًا, إذًا يجب وضعها داخل العلاقة.



AD_4nXdjQp16c3J29v8qjntlqIflwrWUj-oXEfFOH2_Q9_gzI7QAOTiipAn4GONqt5FS1f8eTX86PQ2pdx6rcAov4iG-XGiB9207fZrctQYQEM_xDeftQztBSt0kmBVPW4Xk16srLWOBSaTLBtX5BzYi8d0fNyB0
ملاحظات إضافية :
1. أريد معرفة الربح الناتج عن بيع كل منتج أين يمكن أن أضع هذه المعلومة؟
الجواب : أي معلومة يمكن حسابها ( استنتاجها ) لا نقوم بتسجيلها فالربح يمكن أن يحسب بـ (سعر الشراء - سعر البيع)

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

3. يُمنع منعًا باتًا تكرار attributes بين Entities أو تكرار Entities


دُمتم بخير 🦋
 
التعديل الأخير بواسطة المشرف:
أسوء مادة بالجامعة
شرح جيد
لمن فهمه فقد فهم class diagram حق ال Uml حق ال software engineering في إختلافات صغيرة بينهم
 
  • Love
التفاعلات: Mina
بارك الله فيك وجزاك الله كل خير بش مهندسة
ننتظر جديدك دائماً
 
  • Love
التفاعلات: Mina
الله يعطيك العافيه شرح جميل جدا
انت هيك شرحت نظام العلاقات في قواعد البيانات بكل بساطه وبدون اي تعقيد
بالتوفيق​
 
  • Love
التفاعلات: Mina
أسوء مادة بالجامعة
شرح جيد
لمن فهمه فقد فهم class diagram حق ال Uml حق ال software engineering في إختلافات صغيرة بينهم
لكنها مادة جد مهمة
 
بارك الله فيك وجزاك الله كل خير بش مهندسة
ننتظر جديدك دائماً
وفيكم بارك الله
باذن الله
 
الله يعطيك العافيه شرح جميل جدا
انت هيك شرحت نظام العلاقات في قواعد البيانات بكل بساطه وبدون اي تعقيد
بالتوفيق​
الله يعافيك يارب
الحمد لله ان وفقنا لذلك مشكور
 
السلام عليكم جميعا

عدنا لنلقاكم في تكملة دروسنا , عساكم بخير يارب
تكلمنا المرة الأخيرة عن إيجاد Entitiesو cardinality والعلاقة الموجودة واخذنا هذا المثال
AD_4nXdli_bR_oi554lGLQqQHA0-uG05TtjoBNPBDyt8v2x9_k6csHqDrZulLc8DaUdwifd5qjTtlvFh0BPI-vG0TC5eP1hntVAmCefWbddJ-g3Sk0f1z60XXOoslGlnc4n5AIDbHX9SkAKpjHVkcDDblhgskHXk
وقلنا انه يوجد علاقة بين الزبون والفاتورة وهي علاقة امتلاك
ولايجاد الcardinality(min-max) علينا ان نطرح السؤال التالي :
هل عند تسجيل الزبون يجب أن تكون له فاتورة كانت الإجابة لا يجب أن يكون مسجلا قبل إنشاء الفاتورة وبهذا وجدنا (cardinality (0-max
ثم تساءلنا هل يمكن للزبون أن يقوم بالشراء عدة مرات واستلام عدة فواتير فكان من البديهي الجواب بنعم فوجدنا العلاقة (min=0,max=n)


ماذا لو غيرنا cardinality واخذناها بالشكل التالي (1-0) ?
AD_4nXcrukg1pYFv8KwoQHa7v1lDbFwrZ2E4ISKFyVWJEcFaomzxmXqcL93TpIy3FJ0lfxJg29P_ZTJYMcR4xeCT2DQYGseBjoND-9fJ44-35lNBHir1P7thc2lmLqNKM7ebajf16cr4gTVfZUmMCQo1l1XMl_o
تفسيرها أن كل زبون له الحق في الشراء والحصول على الفاتورة مرة واحدة فقط حرفيا قاعدين نقول ' اشتري مرة وحدة ومترجعش فضلا ' 😂


طيب ماذا لو غيرناها (min=1,max=n)?

هنا يمكن للزبون الشراء عدة مرات لكن إذا كان زبون اول مرة يشتري من عند المحل بتقوله ' هات الفاتورة الاول'
طيب هو لسا مشتراش بيقولك بجيب الفاتورة من وين ? بتقولو لا جيبها😂 وفي النهاية لن يستطيع لا التسجيل ولا الشراء .


بالنسبة للفاتورة دعونا نغير العلاقة ل (1-0)
هنا نحن نسمح بتواجد فاتورة لكن لا نعرف لمن هذه الفاتورة وهاذا غير منطقي البتة
لان الفاتورة يجب ان يكون وجودها غير مستقل بل يتعلق بالزبون .
AD_4nXfT7xHsPYfmnzSzdQQUFwcOPsemjJtKqzjlTrH8FLXaoT6iOV8RSpRC0PWosCLHAoknm0pPy5xRsjPe1cGVxqrOlbs9AJFx2xAfQl0waajjiga53oIDfeWbYaQM0EtU4hMrhLJf3XjRJTNlONRWyUF_3Mzu



والآن ماذا يمكن أن تحتوي الفاتورة معلومات الشراء صحيح ? شراء ماذا ? المنتجات
إذا يمكن إيجاد علاقة بين المنتجات والفاتورة والعلاقة بينها هي الاحتواء الفاتورة تحتوي على مواد وتعودنا على طرح السؤال

بالنسبة للمنتج

AD_4nXe_w9-onkhz_5dvpgGzomiTX-AOUNFwybdt2ApHZYl8QAXqEixA7SSMB-DsUzkGX5xb55qKCrMGqMrbObcA6tiLTF0Mn1K4rPMTm2zIZz8ICqVqVUqpzJTOFJ_Xxw-wk-zYgrlM4tFfdsJzNArqGoS_akmR



حقيقة لم اقتنع مادام يوجد علاقة بين client و product لماذا لم نجعل بينها علاقة شراء بهذا الشكل
-بحيث ان الزبون يمكنه اشتراء العديد من المنتجات
-والمنتج يمكن أن يشتريه العديد من الأشخاص
سؤال جيد
AD_4nXfr_wiB9hkhXkVRcbQqs1zC2popiDO6PKKjLBZ7udssWsieAnjiRxunBpJSq9BT_e-OKd5yv-rwcpO4x-bu6xYomYDBa_MC7jjLZ_LPpmXj9K29346mx5GTTqRTy0TF8KTgkUAeOQZa5wpukDBMZ9ssI-vZ
-طيب في كل علاقة يجب أن أسأل ماذا استفدت من هذه العلاقة وماذا يمكن الاستنتاج منها
إذا كنا نستنتج من هذه العلاقة شيء جديد يجب إضافتها عدا ذلك يجب التخلي عنها
علاقة 'يشتري 'يمكن الاستنتاج منها المنتجات التي اشتراها كل شخص صحيح ? نعم اظن ان هذا ما أراد السائل معرفته
طيب هل يمكننا ان نستنتجها من المعلومات السابقة
اذا كنا نعرف رقم الفاتورة ماذا يمكنن ان نستنتج منها ?
بطبيعة الحال المنتجات وماذا كذلك يمكنا ان نعرف لمن تنتمي فبالتالي يمكننا معرفة الزبون من خلالها لان الفاتورة علاقتها بال زبون (1-1)
فاذا كانت الفاتورة y و الزبون x علاقتهما y —> x
اذا علينا التخلص من العلاقة يشتري
AD_4nXf596TqUdAp_SniferOwXQ13rTPgVnrPBy9jHcE7zahdtmq6HWeH8yq9t8W6wVOPgLWy2LTThcXrU_wLfxs2x5nA5MzSofQXBC7C0_13M-p8BBVsLekzkie65TXdi3yrI5mopBIBimvEOdgboonzNxdUjU
طيب عادة فاتورة الشراء تحتوي على عدد كل منتج يعني مثلا :
-قارورة المياه 2
-شيبس 5
-شكولاطة 2
هذه الكمية تعتبر attribute صحيح لكن اين يمكننا وضعها ?هل هيا تخص المنتج ? ام تخص الفاتورة ?
اذا طرحنا السؤال كم يوجد من قطعة شكولاطة ماركة x في المحل هنا نحن نتكلم عن stock الموجود داخل product
لكن نحن بحاجة معرفة عدد المنتجات داخل الفاتورة اذا هذه المعلومة مرتبطة بالفاتورة والمنتج معا اذا يجب وضعها داخل العلاقة
AD_4nXfuy37czEly2Qi05hw0rcfrR83pblclocQAObS91C_SLJkmuktEBKclFWxSBO4KAfw_NfAM_RLSBG_io66wA7vbW6XJotei9pRA8WwybsaHZ05pTfj5Y_Kfi7QZfTX6ce38JEGbO_xKNEvidUUjY3Yyt8zN
السعر الموجود داخل product يعبر عن سعر الشراء هو سعر ثابت اما سعر البيع فهو يتغير مهلا اين معلومة سعر البيع ? يجب ان نقوم باضافتها لكن اين ?
هي تخص البيع والمنتج معا اذا يجب وضعها داخل العلاقة


AD_4nXdjQp16c3J29v8qjntlqIflwrWUj-oXEfFOH2_Q9_gzI7QAOTiipAn4GONqt5FS1f8eTX86PQ2pdx6rcAov4iG-XGiB9207fZrctQYQEM_xDeftQztBSt0kmBVPW4Xk16srLWOBSaTLBtX5BzYi8d0fNyB0
ملاحظات إضافية :


دمتم بخير 🦋
ميناا❤️❤️
الله يبارك بعلمك وجهدك ما شاء الله
 
  • Love
التفاعلات: Mina

آخر المشاركات

عودة
أعلى