بسم الله الرحمن الرحيم المرة الماضية وصلنا ل case
study three صحيح؟ أخدنا تفاصيلها ولا بس؟ حكينا
عنها؟ شفنا الرسمة بتاعتها؟
حد قرأها من نهاية chapter two حكينا إنها موجودة في
chapter two محلولة و جاهزة نهاية ال chapter في حد
طلع عليها و قرأها؟ مافيش وقتطيب لأن ال internet
bookshop باختصار فيه إنه customer زبون طالب من
مبرمجين إنه بده database لمحل الكتب اللي عنده عنده
مكتبة ببيع كتب بس مش بالأسطوب التقليدي إنه مكتبة و
بيجي الازبون و بيشتري هو عنده مكتبة و بياخد طلبات
بالجملة على التليفون و بيبعت shipments بيطور شغله
و يصير شغله على ال internet مع التليفون فبده يعمل
قائمة بالكتبcatalog of books يعني list of books
قايمة باسمها الكتب اللي عنده الكتب هاي بده يحط
اللي هو attributes بده يسجل ال ISBN number تبع كل
كتاب في سجل الكتب سجل title عنوان الكتاب author اش
يعني author؟مؤلف في سعر شراء purchase price و
sales price سعر البيع يعني كام سعر وجملة عليه و
كام هو بده يبيعه year of the book was published
يعني publishing date تاريخ النشر تبع الكتاب هدول
كلهم attributes لل book attributes لل book الآن
كمان هو بدهnames و addresses لمين لل customers
نسجل لكل customer الاسم و العنوان تبعه بده يعرف
مين زباينه و بده يبعتلهم على بيوتهم الإبداع
بتاعتهم و الكتب بتاعتهم فبده العنوان بتاعتهم كمان
في عنده معلومات تانية متكلم هو عنها
إنه الزبون بيعطيه .. الزبون ال customer لما بيتصل
عليه بيعطيه إيش؟ رقم الكتاب و
الكمية كام نسخة بده من الكتاب؟ عشر نسخ؟ خمسة؟
عشرين؟ تلاتين؟ خمستاشر؟ هذا الكلام بيوضح أن ال
ISBN هو ال primary key تبع ال bookلأنه بيميز الكتب
من خلال ال ISBN، الاسبون بيطلب ال ISBN تبع الكتاب
بيعطيه الكمية أسلوب الدفع by credit card، معناته
أحنا بدنا نسجل معلومات عن مين، عن رقم ال card تبع
ال customer، ال visa card أو ال master card،
نسميها credit card، بطاقة الإئتمان بتاعك
ال shipment الطلبية او الإرسالية اللى بده يبعتها
فى لها تاريخ او موعد جهز الكتب بده يبعتهم اليوم او
بكرا لكن لو فى نقص فى الكتب مابدهوش يبعت كاتب هو
فى النص هنا انه if I don't have enough copies in
stock اذا أنا ماعنديش كفاية من النسخ فى المخزنماذا
يفعل؟ يطلب اضافية كوبز وهو يشتري ويعمل delay
للشبمنت يعني موعد او تاريخ ارسال الطلبية بيتأجل
كلام هذا كيف بنترجمه في ال database واضح انه في
عندي علاقة بين three entities ال entity الأولى ال
entity السادسة الأولى اللي هي مينال book و مين كما
عرفين أننا entity set موجودة في ال customer فيه
زبون بيشتري ال
entity set التالتة مين عندى
customer و بيشتري book ايش؟ ال catalog هو تبع ال
books list of books مجموعة الكتب ال book entity
set مجموعة الكتب book او boxshipment .. shipment
العلاقة في إيه؟ shipment ينجح عن order طلبية شراء
مش مذكورة بالاسم في النص بس أحنا بنفكر فيها لما
بنحلل ال system مظبوط أو نحلل الحالة اللي عندي
مظبوط الزبون بيطلب ال customer بيطلب طلبية بتشتمل
مجموعة منالكتب بييجي صبون تاني يطلب طلبية نفس
الصبون الأولاني ممكن بعد أسبوع يطلب طلبية جديدة و
الواحد بيشتري مرة واحدة كتب و خلاص بيشتري خاصة ان
هو بيبيع بالجملة يعني بيبيع لمكتبات أصغر فالزباين
بتاعه هيشتري اليوم هيشتري بكرا بعد أسبوع بعد
أسبوعين ففي طلبيات orders لأن ال order هذا هو اللي
له order date تاريخ الطلبية و له shipment
date موعد لإرسال الطلبية و الموعد هذا هو اللي
بنجده إذا مافيش عندى عدد كتب كفاية فى الطلبية هاي
كمان فى عندى quantity فى
الطلبية هاي بنسجل احنا ال quantity ان هو كم كتاب
بده بسجل ال quantity كم كتاب بده من الطلبية اللى
هو طلبها
إيش؟ خبرا، ال order
هو ال relation بين مين؟ بين ال book و ال customer
بين ال book و ال customer نعمل ال order عبارة عن
ال relationship بين ال customer و بين ال book طيب
هو ال .. الزبون هيعمل order واحد و لا أكتر من ال
order أكتر أو واحد أكتر من 8طب لو بده يعمل اكتر من
order تعالى نفكر فيها هاي ال book entity
و ال customer ال order بدنا نعمله ال order بدنا
نعمله relation صح؟ الانها
دي بده تكون relation بشكل اش اسمه؟أ لا و لا زي ما
حكت و لا و لا بدها ال order يكون relationship في
هذه الحالة ال customer الواحد يطلب مجموعة من الكتب
many books مظبوط؟ ال book الواحد هيطلب أكتر من
customer طب نفس ال customer نفس ال customerنفسه،
نفس الاسم، هيرد يطلب كمان مرة بعد أسبوع أو بعد شهر
أو بعد يوم كمان طلبية كيف تده أعرف إنه هذه الكتب
اللي طلبها جديد مش اللي كان طالبها زمان؟ كيف
تدميز؟
Descriptive attribute إيش يوصف؟ ال order date
مثلا؟
order date order date order
order
order order order order order order order order
order order order order order
order order order order orderبحاجة أحط في الوسط
entity زي هذه هسميها برضه order صح؟ هنحط لها ال
ice pen اللي هو ال primary key تبع الكتب هجيبلها
ال customer مثلا فيه name و فيه address مثلا إبداع
تمد ال name نفرض إن إبداع تمد ال name عفرض لو
اعتمدنا ال name يمكن نسجل إشي تاني بس مبدأيه إبداع
تبع ال name تبع ال customerو بدي أحط order date
تمام صح order date خليني أمحي عشان ما أطلع خطط
شرسة وعندي
order date الان ISBN و ال name جبتهم foreign keys
عشان شكله primary key لهذا الجدول صحيحلكن هيك أنا
برضه مميزش ال orders لأن إذا بدأ ميزهم لازم أدخل
كمان ال order date معهم لازم أدخل ال order date
معهم كمان في ال primary key لأنه هيكون نفس الزبون
طالب نفس الكتب عدة مرات في عدة توريخ مختلفة مش
هميز المحتويات إلا إذا حطيت ال order dateك primary
key او ان اضيف معلومة جديدة تساعدني ان احط مثلا
رقم للطلبية في حد فيكم عمره اخد فاتورة رسمية من
شركة من مؤسسة من صيدلية من غيره فاتورة رسمية
هتلاقي ان الفاتورة فيها رقم يكون في اعلى الفاتورة
مكتوب رقم الفاتورة او رقم الطلبية
الرقم هذا ممكن من خلاله أنا ميز ال order يعني ممكن
أستغني عن ال order date ممكن أخلي ال order date
attribute عادي لكن ممكن أضيف على ال primary key
كمان اللي هو أيش رقم للطلبية order ID أو order
number هنشوف احنا كيف حلنا المثال هذا
الحل اللي انا اعتمدته اني جبت ال customer طلبنا
إله name و address و card number رقم ال visa card
بتاعته اللي بدو يدفع من خلالها هاي المعلومات عملت
ال name ك primary key الكتاب فيله ice pin, title,
author, purchase price, sales price إله كمان اللي
هو عدد النسخ و publishing year تاريخ اللي هو النشر
عدد الكبز الرابط بين هدول اتنين جيبنا كمان order
حطينا فيه order ID واعتمدته ك primary key رقم
للطلبية او رقم لل order خليته هو ال primary key
خليت باقي المعلومات مجرد attributes ال order cost
ثمن الطلبية في مجموعة كتب اللي لها prices حجمها
كده اشتكل فتها وحطه order cost shipment dateالموعد
اللى بدى ابعت فيه الطلبية ال order date التاريخ
اللى اتصل فيه او اللى دخل فيه على ال internet لعمل
الطلبية ال customer بيمثل customer name يعني
foreign foreign key customer
اللى هو اسم ال customer ك foreign key حتى ال order
هذا كمان هيكون فيه مجموعة كتبفبرضه كمان مش هقدر
اربطهم مع بعض مباشرة هعمل order details عشان افك
ال many to many relation بين ال order و بين ال
book هفكها من خلال ال order details هحط في ال
order details ال primary key تبع ال order اللي هو
ال order id ال
primary key تبع الكتاب ال ISBN هحط ال quantity
attribute عدد النسخ اللي هو طالبها هذه عدد النسخ
اللي هو طالبها في برنامج مش في ال database في ال
application مطلوب من أني أقارنها مع عدد الكوبز
اللي في المخزن عشان أعرف أني بدي أطلع shipmentdate
في نفس ال day تبع ال order في نفس اليوم بدي ابعتله
إياها و لا بدي أجل الطلبية ل بعد أسبوع ل بعد شهر
لعند ما أجيب كميات مناسبة للبيع ال
design بهذا الشكل بسمح لي أن الزبون الواحد يعمل
أكتر من طلبية في نفس اليوم أو على عدة أيام و
الطلبية الواحدة يكون فيها أكتر من كتابطلبية الوحدة
أكتر من كتاب ال money to money اللي عملناها في
الوسط في ال link to internet 6 و بسمحني أن أسجل
لكل كتاب quantity خاصة فيه quantity خاصة فيه لو
اشتغلنا بالشكل هذا بالشكل هذا أن ال order هو يكون
العلاقةال order هياخد attributes كتير لإن في لسه
معلومات أنا ما سجلتها بدي أسجل shipment date بدي
أحطها مع ال order بدي أحط cost بدي أحط كمان اللي
هو order date و بدي أحط quantity لو حطيتهم لل
order كلهم هدول هيعملوا لي مشاكل يعني من المشاكل
مثلا ال quantity لو ربطت ال quantity مباشرة في ال
order ال quantity مباشرة في ال orderمعناته عدد
الكتب اللي في ال order كلهم متساويين يعني نفرض
واحد طلب كتاب database و كتاب برمجة و كتاب مثلا
design photoshop و حطينا ال quantity عشرة و العشرة
هي طبطت مع ال order مع رقم ال order معناته هو كأنه
بده عشرة من من التلات كتب عشرة عشرة عشرة لكن هو
فعلا يمكن بده من الأول عشرة و من التاني خمسة و من
التاني تلاتة التفاصيل هيكلها مش حاضرة سجلها إلا
إذا عملتانت ست جديدة تعطيني التفاصيل هاي انه ايش
رقم الكتاب وكم عدد نسختته الكتب اللي انطلبت في نفس
الطلبية هيكونها ايش نفس رقم الطلبية اللي جاي من ال
order ID يعني هذا كمان order ID لما اجه هان هذا
كان عبارة عن foreign key كذلك ال ISBN لما اجه هان
هو عبارة عن foreign key
تلزجتني على المكتب اه؟ سجلت المادة جديد؟ طيب الآن
عشان تحاول تفهمي علي إن أشرح ال foreign key في
جملة صعبة في الكتاب موجود على ال model اللي هو
chapter one و chapter two لحد الآن احنا مخلصينهم و
في slides
في slides وفي محاضرات مسجلة مافيش غير محاضرة واحدة
انا اعطيتها وماسجلتاش اول محاضرة اعطيتها في
chapter 2 بس ال foreign key و ال primary key
انشرحوا في chapter 1 يعني المفروض في الفيديوهات
بتاعة الدكتور إياد مش عندي على اليوتيوب او عند أبو
حمزة ماعرفش تمام الان ان اشرح ايش يعني foreign key
في جملة واحدة صعبة بس انا بدأ أبسط الفكرة ايش يعني
foreign key على السريع بس ركزوا معاياقبل ما أحكي
عن ال foreign key بدي أحكي عن ال primary key مين
يشرح .. إيش اسمك؟ زينب .. مين يشرح لزينب إيش يعني
ال primary key؟ هيك بجملة إيش يعني ال primary key؟
إيش بستفيد من ال primary key؟ ممكن إشي يعني .. إشي
خاص بال .. بال attributes يعني بتكررش مش ممكن
يتكرر عشان يعني ميب .. ميب .. ميب .. ميب .. ميب ..
ميب .. ميب .. ميب .. ميب .. ميب .. ميب .. ميب ..
ميبيميز كل entity موجودة في ال entity الست بشكل
uniquely بشكل مميز ايش يعني entity الست ال entity
الست عبارة عن object موجود في ال real world في
عالمنا الحقيقي اشي موجود customer زبون طالب موظف
كتاب classroom building مبنى اي اشي هو عبارة عن
object الأشياء المتشابهة اللي بنفسي أنه يعني
المبانيentity set الذبائن كلهم entity set الطلاب
كلهم ك students كجامع entity set كل entity set لها
attributes توصفهاالمبنى مثلا له عدد الطوابق له
مكان location له اسم الاسبون له اسم له عنوان له
مثلا حساب بنكي الطالب له رقم طالب له عمر له تاريخ
ميلاد له رقم هوية هدول كلهم attributes فى
attribute واحد من بين هدول ال attributes بختاره
انا يكون primary key عشان اميز كل entity موجودة
جوا ال entity sets يعني كيف ده اميز بين ال
customers هدوللو روحنا على supermarket عنده زباين
بيشتروا بيسجلوا على الدفتر دين مش هيك الناس
بتتعامل كيف بيميز صاحب الدفتر صاحب ال supermarket
كيف بيميز زباين تعاونه بالاسم ما بيسجلش هو لا
أرقام هوياتهم ولا إيش بيسجل الاسم واسم العائلة
وإذا الاسم بتكرر بيضيف مثلا اسم الأب بيصير يكتب
الاسم ثلاثي أو بيكتب الكنيالي مثلا أبو فلان أبو
محمد أبو محمود وبيميزهمالاسم في حالة دفتر صاحب
السوبرماركت بيمثل primary key للزباين تعونه
الجامعة كيف بتميز بين الطلاب على رقم الطالب رقم
الطالب بيمثل للطلاب primary key في حالة الجامعة
تمام هذا ال primary key ايش ال foreign key ال
foreign key هو عبارة عن primary key تبع entity set
استخدمناها في entity set تاني عشان نربط بينهم
بنسميه foreign key يعني هاي الاسم هذا ال name
حطينا طبعا احنا ال primary key بنحط تحته خط عشان
نميزه عن باقي ال attributes الاسم هذا لما استخدمته
عند ال order غيرته طبعا انا سميته customer صار
foreign key foreign يعني أجنبيغريب يعني هو key ضال
key لكن مش إليه هذا ال key تبع entity set تانية
فهو foreign key، key غريب عني نفس الشيء ال ISBN
primary key للكتاب الرقم التسلسلي تبع الكتاب الرقم
الدولي التسلسلي للكتاب هو بمثل primary key للكتاب
الان لما اتكلمت عن الكتاب فى ال intercept هى اللى
ال order details عشان اربط بينهم جبت ال ISBN اللى
هو كان ال primary key فى هى الحالة فلما أجيبه هان
هيصير عبارة عن foreign key عند ال order details
لكن فى مكانه الأصلي هو primary key وسط الصورة
احضرى الفيديوهات و السلايدات بدك تتعبيلك يومين
عشان تعوضى الفترة اللى راحت عليكهك احنا بنكون
خلصنا .. اتبعوا معايا عندي ال ER modeling احنا
الآن خلصنا أساسياته خلصنا ال ER modeling انه كيف
انا اعمل entity relationship diagram أبرز الأشكال
اللي مرت معنا .. مين اتذكر معايا المستطيع ال
rectangle بيمثل إيه؟ entity set ال diamond المعين
إيش بيمثل relation الخط إيش بيمثل link الخط بيمثل
link ال ovalالـ Attribute الـ Attribute اللي جواه
Underline Attribute عبارة عن ال primary key طيب
الآن في أمور ال ER diagram بشكله ال basic مابقدرش
يعبر عنها أو مابقدرش يوصلي الفكرة بتاعتها في ال
design ففي enhancements وتحسينات على ال ER
modelingاحنا هنتكلم بس عن two enhancements فقط لا
غير هنتكلم عن شيء اسمه ال aggregation والشيء
التاني اللي هو اسمه ال hierarchies او ال is a
relationship اول
شي ابدا اتكلم عن ال is a hierarchy relationship
طبعا هذا المصطلح مابنقرأوش easy مش easy ولا عيسى
نقرأه is astudent is a person ال student إنسان شخص
ال employee برضه is a person الموظف المثبت
contract employee is an employee هو عبارة عن موظف
وال hourly employee الموظف اللي بيشتغل بالساعة
برضه is a employee وصت فكرة إيش يعني is a
الـ S A عبارة عن Hierarchy يعني زي شجرة ترسملنا زي
شجرة parents و child و تمثللنا علاقات على شكل
relations من خلال الشجرة هذه طبيعة فهم الشجرة هذه
بيعتمد على ال inheritance الوراثةيعني أي
attributes موجودة عند ال parent عند الأب بدي أفترض
أنه نفسها موجودة عند ال child يعني إذا حكينا أن كل
person إله اسم و تاريخ ميلاد اسم و تاريخ ميلاد و
بعدين حكينا ال student is a person مباشرة بدفع من
ال student فيه إله إيش اسم و تاريخ ميلادو لو ال
employee كمان is a person برضه له اسم و تاريخ
ميلاده طب لو كان ال person له اسم و تاريخ ميلاده
address برضه هيكون ال student و ال employee اللي
هما الاتنين عبارة is a person الاتنين اللي هم اسم
name و الهم address و الهم day of birth تاريخ
ميلاده بنعبر عن العلاقة هذه برسمة جديدة مطلقة
drawn as a triangle مثلث بنحط من الجهة العلية ال
up ward مين ال parent اللي هو ال super entity set
ال entity set الكبيرة اللي بتجمع الجميع اللي هي ال
person في حالة ال employee و ال student في الجهة
اللي تحت بنحط ال sub entities ال childممكن يكونوا
اتنين ممكن يكونوا تلاتة ممكن يكونوا اربعة whatever
كلهم بنحطهم من تحت فوق ال super تحت ال subsets في
شي صعب لحد الآن واضح الأمور هتمنى
ذلك طيب ازأ المثال اللي عندي في person في student
في employeeال student و ال employee بدل ما أجي
أسجل لل student و لل employee كل واحد فيهم أسجله
رقم هوية SSN و name و B date يعني date of birth
تاريخ الميلاد روحت اختصرت الرسمة بدل ما أحط
التلاتة دول في الجهة هذه و كمان مرة أحطهم في الجهة
التانية اختصرت الرسمة حطيتهم لا إيش سميتوا personو
ال student و ال employee بتفرعوا من ال person
student and employee and employee is a person و
بضيف ال attributes اللي بتميز كل واحد فيهم عن
التاني تحت يعني ال employee إله راتب بحطش الراتب
عند ال person ليش؟ لإن إذا حطته عند ال person
معناته ال student صار إله راتب طب إله راتب ال
student؟ مش في بلادنا، ممكن في بلاد تانية يكون فيه
إله راتب
تمام ال employee فيه له راتب فيه له .. حتى عندنا
ال employee كمان مالهوش راتب تمام ال employee ياله
salary و ياله إيش ياله number employee number طيب
ال student ياله student ID ياله كلية و ياله معدل
GPA ياله معدل طب هو الموظف فيه ياله GPA ياله معدل
تراكمي؟ ياله مش معدل تراكمي فأنا باخد ال
attributes اللي بتميز كل ..كل entity و بحطها في ال
sub entity ال issue المشترك بيكون وين عند ال super
entity super و sub العلاقة بين ال super و ال sub
is a is a او is a hierarchy او inheritance صعبة
مثال تانينفس الشي عندى employees اكتشفت ان المؤسسة
اللى احنا بدنا نعملها design الموظفين مش كلهم نفس
النوع فى موظفين سبتين فى موظفين بطالة فى موظفين
بالساعة فبدى اقسم بحط المعلومات الأساسية بتاعة ال
employees name lot ورقم هوية لل employees و بعمل
منها تفرع as aلمين؟ لل contract employees مثبتين
بcontract بعقد و ال hourly employees هدول فيه لهم
عدد ساعات عمل و لهم سعر للساعة بينما هذا فيه له
عقد ..يله رقم للعقد contract ID ممكن يكون لهم مثلا
كمان راتب شهري ثابت salary whatever بحط معلوماته
اللي بتتعلق فيه كلامها ده إيش بيفيدني؟بفيدني أول
إشي ال is a relationship بتفيدني إنه مايكونش فيه
redundancy لل data، تكرار لل data بدل ما أنا أاخد
تلتة reviews دول و أعيدهم على الجهة هاية و على
الجهة هاية و في كل جهة بدي أعيدهم لو .. لو افترضنا
فيه تفرعات تانية بدل ما يتكرر .. تتكرر المعلومة
أكتر مرة بحطها مرة واحدةفأول شي بتفيدني في موضوع
ال data redundancy الفائدة التانية أنه ممكن يكون
في عندي sub group من ال group كبيرة إلها relation
معينة بس فيه اللي بتخصها هي لحالها زي إيش نرجع
لمثال ال employee و ال student لو حكينا ال
relation اللي بتربط الطالب في تسجيل course هل معنى
فيها ال employee ال employee ما بيسجل courses
مايله courseفها دي بس بتخص ال student فانا لو رسمت
ال relation علينها بين ال person و بين ال course
بتكون منطقية لإن إذا رسمت ال relation بين ال
person و بين ال course معناته حتى ال employee فيه
علاقة مع ال course لإن ال employee is a person صار
إله علاقة مع ال course لأ أنا بديش غير بس ال
studentفانا بالتفرع هذا بقدر أخلى أنه subclass
معينة تكون هي المختصة ب relation معينة رؤساء
الأقسام هل ممكن طالب يكون رئيس قسم لو أنا جبت
العلاقة بين ال person و بين ال head of departments
أو ال departments معناته ممكن الطالب يصير رئيس قسم
و هذا الكلام مش منطقي في ال .. في ال real world
عنديفالعلاقة بتاعة ال manage مع ال department هي
بين ال employee و بين ال department العلاقة manage
واضحة الصورة؟ لو عملنا ال relation ع مستوى ال
person مع ناتو العلاقة بتخص كل التفرعات لإنها
علاقة بتخص ال super أي إشي بنطبق على ال super
بنطبق على ال sub اللي تحت فهذه الفئتين الملخصينهم
في ال two points هدول انه انا ممكن احط descriptive
attributes specific لل subclass خاصة في ال
subclass بدي احطله الطالب او للموظف مثلا salary
الطالب مالوش او انه بدي اخلي ال entity set هذه ال
sub participate in particular relationship اتشارك
في relationship معينة ماتشاركش فيها ال subclass
التانية
لما بنحكي a is a b معناته كل entity في ال a هي
برضه b student is a person معناته كل واحد مسجل في
ال student هو person آخر
شيء في لل is a constraints خاصة فيها ال
overlapping و ال covering overlapping و ال
covering إيش هم ال overlapping و ال covering؟أول
شي by default by default إذا أنا ما كتبت وليه شعار
رسمي زي هيك معناته no overlapping و no covering
نبدأ في واحدة واحدة نبدأ في ال overlapping معناه
no overlapping يعني اللي بيكون student ممنوع يكون
employee و اللي بيكون employee ممنوع يكونال
student no overlapping فش تداخل overlap يعني تداخل
مافي تداخل بين ال sub classes ال default بدون ما
اكتب ايش على الرسمة على ال ER diagram انه no
overlapping ال student ممنوع يكون employee و ال
employee ممنوع يكون student طب لو أجينا على أرض
الواقع ممكن يكون في عند أنا موظفوبرضه طالب في
الجامعة معاه دبلوم بيشتغل سكرتير بيطور نفسه بياخد
بكالوريوس إدارة او هو معاه بكالوريوس و بده يسجل
ماجستير فممكن يكون موظف يكون طالب في هذه الحالة
لازم اكتب على طرف ال diagram اجي اكتب انه employee
overlap
student
إن ال employee ممكن يكون student إذا
كتبت العبارة هاي معناته أنا سامحت بال overlapping
بين ال employee و ال student بس إذا ما كتبتها بدي
أفترض إنه مستحيل يعني لو رسمنا الرسم هاي و كان في
مثلا سؤال multiple choice أو true and false و
السؤال بيسأل إن ال employee مثلا x can be also a
studentمباشرة false غلط مظبوطش لكن لو كان اعتراف
الرسمة مكتوب employee overlap student معناته مسموح
ممكن وضح مفهوم ال overlap تداخل التداخل بالاصل
ممنوع الا اذا انا حددت انه مسموح ال covering ال
covering برضه في الاصل no coverage او no covering
إيش يعني no covering؟ يعني إذا أجى شخص ماكانش
employee وماكانش student، هل ممكن يكون person؟ نعم
ممكن، ممكن يكون visitor، guest جاييني أو دكتور جاي
على الجامعة يعطي محاضرة يكفي مؤتمر، محاضرة واحدة و
بس، فهو مش employee و مش studentفهل ممكن يكون في
عندي person مش student و مش employee الجواب نعم no
covering ايش عن no covering يعني ال employee و ال
student ما بتعمل cover لكل أنواع ال person no
covering يعني student and employee do not cover
all persons بتغطيش كلهم لكن اذا انا حددت و كتبت
بالتحديد اعتراف الرسمة كتبت employee and student
covers او cover person معناته مستحيل في البرنامج
عندي او في ال design تبعي مستحيل الا يا يكون ال
person يا ما يكون student او employee غير هيك
مافيش لو انا عندي visitor ممكنيكون في عندي كمان
entities احنا حكينا انه ال is a ممكن مش بضروري
تشعبهم ممكن تلاتة اربعة خمسة ممكن يكون في عندي
visitor بتعمل انا entity لل visitors و اعطيهم
username و password سيدخلوا على ال internet لمدة
يوم او يومين مجانا مثلا فبدي
اكتب في هذه الحالة بدي اكتب انه employee فاصلة
مثلا فاصلة visitor
فاصلة and student cover person التلاتة مع بعض
مجتمعين بغطوا ال person بشكل كامل يمكن ما نحسسش في
أهميتها كتير في موضوع الطالب و الموظف لكن بعطيكم
مثال يصعب ان الواحد يعمل فيه covering بشكل كامل
المثال هذا لو احنا بدنا نعمل databaseلقسم الأحياء
أو لحديقة حيوان أو لعلماء أحياء نصنف فيها الكائنات
إنه هذه مجموعة من الكائنات هدول زواحف، ثديات،
حشرات whatever التقسيمات هذه هل أنا باجي أحصر؟ هل
فعليا في قدرة إن أنا أحصر؟ نحكي مثلا التمساح
والثعبان حطناهم في الزواحف هل فقط مثلا التمساح
والثعبان هم بس الزواحف ولا في كائنات تانية ممكن
تكون زواحف؟فيه كتير، حتى لو عديت كمان تلاتة أربعة
معهم، روحنا عدينا كمان الحرباية و روحنا عدينا كمان
الضب و اللي عدينا الحردون و الامبريس و عد زي ما
بدك زواحف، برضه مش هتخلص، لإن عالم الأحياء عالم
كبيرفهل ممكن لو أنا كنت عامل أربعة أو خمسة sub
entity sets من الزواحف هل ممكن يعملوا covering لل
entity set بتاعت الزواحف؟ لأ نفس الشيء في الثدييات
لو حطينا الأسد والنمر والفهد والغزال والزرافة
والفيل هدول كلهم ثدييات مهما عدت لو عدت عشرين صنف
هل هخلص؟ هل بضرحكم أن العشرين صنف هدول covering
للثدييات؟ برضه لأفيمكن في الأمثلة هذه اللي فيها
تشعوبات كتير بيصعب عملية ال covering فهو by
default no covering no overlapping إلا إذا احنا
حددنا إنه مسموح يكون في overlap أو في cover و
بنحدد بالاسم بالضبط إيش ال entities تعمل covering
تعمل overlapping النقطة اللي بعدها في ال
enhancement ال aggregation احنا
لحد الآن كل ال relations اللي كنا نعملها بين
entitiesال relations كنا نربطهم في مين؟ في entity
set من طرف و كمان entity set من طرف two entity
sets كنا نسمي العلاقة binary صح؟ و إذا أضافت إليها
كمان entity set كنا نسميها ternary و لو أجت رابعة
مش رابعة تعت رابعة واحدة رابعة يعني entity set
رابعة تمام؟رابعة اللي هتيجي هنا هتصير quaternary
تمام طيب لأن كل هدول ال relations تربطهم في بعض
كلهم نوعهم intercepts طيب السؤال اللي بيطرح نفسه
هل ممكن relation تربط كمان relation مش intercept
الجواب ممكن بال aggregation ال aggregation وظيفته
حلل المشكلة هذهاللي هي مشكلة اني بدأ اربط relation
مع relation مش مع entity set relation مع relation
عشان نميز بينهم هاي relation بتربط entity set
وكمان entity set binary ولو أجت واحدة تالتة صاروا
ternary في فرق بينها يبين ان يكون في عندي relation
بتربط بين two entity setsواجر relation هيبدأ ربطها
في كمان relation هذه مش ternary هي ternary هيبدأ
تصير aggregation عشان امثلها في الرسم في أسلوب خاص
التمثيل لها اللي هو المربع او المستطيل ال dashed
النقطة
هحط ال relationship بالأصلية الأولى مع ال two
intel 6 تاونها و أرسم عليهم rectangle dashed
rectangle مقط أو dashes و أطلع منه link مع ال
relation الجديدة مع ال intel 6 الجديدة أكم intel 6
عندي تلاتة تلاتة لكن العلاقة مش ternaryلأنها مش
relationship واحدة ال three of you sit with two
relations ال three of you sit with two relations
هاي aggregation هاي ternary بدنا نوضح بمثال في
عندى projects في شركة و في departments كل
department بتبنى مشروع sponsors بتبناه بمولهفي
بينهم علاقة أن القسم الفلاني اتبنى المشروع الفلاني
وموله ممكن أكتر من قسم يمولوا أكتر من مشروع أو
يتبنوا أكتر من مشروع بتواريخ مختلفة فحطينا sense
اللي هي التاريخ descriptive attribute لل
sponsorship لل relation لل sponsors المثال
اللي بدي أحكيه نفرض في الجامعة عندي أجه قسم
الإنشاءاتاتبنى مشروع بناء مبنى جديد في 2016 فعليا
مش هيجي قسم الاتصالات ويمدد كوابل واتصالات
وتليفونات غير ما بعد ما المبنى ماله يجهز تقريبا
يعني خلينا نحكي 90% منه او 80% و بعدين بيجي الشغل
الكوابل فهيجي قسم الاتصالات يتبنى لمشروع في 2017
مش في نفس التاريخ تبع قسم الانشآتهي في عندي
constructions و في عندي communications قسم ال
communication اتصالات و قسم ال constructions لو
احنا حكينا قانون المؤسسة عندنا لازم كل قسم بيشارك
في مشروع يحط موظف يراقب المشروع monitors ال
projectال employee monitors ال project ال employee
هذا اللي بده يراقب ال project لو بده اربط وبين
مباشرة مع ال project employee monitors ال project
معناته بيراقب المشروع من أولها من أول ما بدى
المشروعلعند آخر و لعند ما ينتهي طب لو الموظف هذا
من قسم الاتصالات فعليا قسم الاتصالات ما بدأش يراقب
المشروع إلا في 2017 لكن المهندس المدني اللي بيشتغل
في قسم الإنشاءات بدأ يراقب المشروع من 2016 معناته
الموظف ما بيراقب المشروع هو بيراقب تبني القسم تبعه
للمشروع الموظف بيراقب تبني القسماللي هو فيه
للمشروع اذا علاقته مع عملية التبني مع ال
sponsorship فال relation بتاعة ال monitors تربط
بين ال employee و بين ال sponsor وضفنا للمonitors
ال until وبهيك انا بقدر احدد ان الموظف هذا راقب
المشروع من تاريخ لتاريخ من بدء القسم تبعهفي تبني
المشروع لعند التاريخ اللي حاطله في علاقة الـ
monitors هاي ال aggregation هاي فكرة ال
aggregation إذا بدأ أختصر و بدأ ألخص ال
aggregation أن أعمل relationship بين entity set و
relation تانية مش entity set تانية كيف بيعبر عنها
في المستطيل ال dash المنقف
هيك تقريبا خلصنا بس ضال نقطة مهمة .. كام ضايق من
ال .. كام؟ الا عشرة ولا الا خمسة؟ الا عشرة بس
عطوني خمس .. ازاي أشرح الصغير؟ او دي ات؟ طيب .. لأ
احنا شبه خلصنا بس بنحكي عن تلت أسئلة مهمةتلت أسئلة
هذه أنه أنا لما أقرأ السؤال case study أو فعليا
أروح أعمل system analysis لمشروع حقيقى عرض الواقع
متى أستخدم entity و متى أ attribute متى أعتبر ال
book أعتبره entity و لا أعتبره attribute متى
أستخدم entity و متى أستخدم relationship متى أعبر
عن العلاقة اللي عندي بشكل binary و لا ternary و لا
aggregationبدنا نشوف في الصيادات التانية مش اللي
انا هنشرحها من المرة اللي جاي ان شاء الله بدنا
نشرح الكلام هذا انه اعرف متى استخدم بشكل مناسب ال
aggregation متى الternary متى ال binary متى بنسبني
ال entity و متى ال attribute و متى ال relation حيث
اني اضمن لما انا اعمل system analysis انه فعلا
اقدر اعبر عن التصميم اللي عندى بشكل صحيح