بسم الله الرحمن الرحيم اليوم بدنا نكمل في الأول ال
study case معناه على موضوع ال ER model for
database design اتكلمنا المرة الماضية عن علاقة بين
مجموعة من ال employees في شركة مع department مع
project ال project بياخد partمن مجموعة من ال
suppliers في نفس الوقت ال part ممكن تكون contain ل
other parts في علاقة recursive حلينا مشكلة ال many
to many relationship بين ال project و ال parts
بإنه قدمنا week into the setتكون عبارة عن linked
entity set تسميناها project parts تصبح العلاقة
بينها وبين ال part one to many وبينها وبين ال
project one to many وطبعا عشان العلاقة هيتم أو هذه
ال entity set الجديدة تكون موجودة لازم ناخد ال
primary key تبع ال project تبع ال part ونحطهم مع
بعض نعملهم combined primary key ل project part
اليوم بدنا نضيف عقدة جديدة في المشروعإنه بدنا نيجي
نحكي إنه العلاقة بين ال supplier و ال part مش one
to many يعني مش certain احنا في المثال الأول كان
مكتوب certain suppliers provide parts دلوقتي بدنا
نخلي أي supplier يوفرنا أي part يعني ممكن أنا
laptop بشتريه من أكتر من مزود ممكن قطع غيار سيارات
بشتريها من أكتر من تاجر نفس القطعة باخدها من أكتر
من تاجر من أكتر من supplier فهتصير العلاقة high
moneytoo many طبعا حلها بنفس الطريقة انا بدي اجيب
weak entity set بين ال supplier و بين ال part لكن
المشكلة التانية اللي هتواجهني انه انا كمان بدي
افترض ان حتى المشروع ممكن ياخد parts من نفس ال
part يعني من suppliers مختلفين و بنفس الوقت ممكن
ياخد parts مختلفة فهيصير علاقة ثلاثية بين ال
supplier و ال part و ال project eternal
relationship
التغيير اللي حيصير هو في الجزية هذه بدل ما كان
عندي certain suppliers provide اللي كان في المثال
حيصير عندي أنه ال supplier can provide many parts
ال supplier الواحد بيعطيني مجموعة من القطع لمجموعة
من ال project علاقة بين ال supplier و ال parts و
ال project turnar relation and a part can be
provided by many suppliers تأكيد على أن ال part
الواحدة ممكن تيجي من أكتر من ال supplierو هذا
تفسيري لأن ال different suppliers provide
different parts for different projects يعني
العلاقة بدها تكون ثلاثية ترنري ما بين ال project
من جهة و ال part من جهة تانية و ال supplier من جهة
تالتة
حكينا العلاقة اللى فيها three entity sets بتشاركوا
في نفس ال relation نسميها ternary و العلاقة اللى
موجودة عندى many to many من جميع الأطراف العلاقة
هاي مش ممكن أنه نمثلها في ال database design لأنه
مش ممكن أصلا نمثلها ع شكل tables في ال relational
database modelفالحل تبعها كان في الشرح لما شرحنا
انه الternary نحولها من خلال انه نعمل introducing
ل linkedin set في الوسط تجمع التلاتة مع بعض اللي
هيصير عندى ان ال diagram هيتغير للشكل هذا ال
project و part و supplier ال part فيها recursion
part can contain other parts وهي العلاقة التلاثية
ال turning relationship اللى فيها money to money
وهي العلاقة هتخلص منها من خلال linked entity set
هسميها project parts by provider القطع بتاعة
المشروع حسب ال supplier project parts by provider
طبعا الاسمبتحط الإسم اللي بدك إياه بس عادة نختار
أسماء بتعبر عن محتوى اللي انت دي ستحاجة أربطها
بعلاقة one to many one to many one to many الرابط
في ال background اللي أنا مش شايفه في الرسم اللي
أنا مش بحكي عنه هيكون من خلال ال primary keys
بتاعة ال supplier و ال part و ال project بإني أجيب
ال primary key تبع ال supplier تبع ال part تبع ال
project أحطهم ك foreign keys في ال entity set
الجديدة و التلاتة مع بعض لشكل combined primary key
لل entity set الجديدةوهي شرح العملية ان انا في
undetermined relationship بده احل المشكلة بنعمل ال
new entity set سميتها project parts by supplier
وبنلاحظ ان في ال diagram اللي احنا رسمناه for
simplicity للتثيل وعشان مساحة ال powerpoint مش
كبيرة عندى مافيش اي relation رسمتها انا جوا ياش
جوا diamond او معين كل ال relations هذه الأصل تكون
مرسومة وين؟ في diamond في معين والشيء التاني كمان
انه انا ماحطيتش اي attribute ماتكلمناش عن ان ال
employee يلو رقم يلو اسم يلو address يلو age كذلك
ال department في رقم في اسم ال department في
location كل هذه المعلومات ماتكلمناش عنهاأحنا
المثال الأول اللي عندنا بتتكلم عن ال entity sets و
عن ال relations ال objects و ال actions اللي بينهم
فقط لغاية ماتكلمناش عن أي attributes أو properties
لل objects اللي عندى أو ال entity sets الآن
بناخد case study تانية هتكون أعقد شوية في ال
entity set الجديدة او في ال ER diagram الجديد اللي
هنرسمه هيكون فيه عندى attributesلكل entity هارسمها
في عندي مجموعة من ال attributes بدي أمثلها و بدي
أختار أفضل attribute منهم لكل entity set عشان أعمل
primary key لازم يكون unique attribute عشان يمثل
primary key ال case أساسي الجديد اللي عندي بتتكلم
عن مثال للعلاقة بين شركات الأدوية و الصيدليات و
الدواء و الأطباء و المرضىالعلاقة العادية اللى احنا
بنعرفها اللى موجودة فى السوق ان الصيدلية بتشتري
دوة من شركة واحدة ولا من اكتر من شركة من شركة
واحدة بس لا الصيدلية بتشتري ادوية من شركات مختلفة
شركات صناعة غزة وشركات صناعة الضفة وصناعة اجنبية
ومصرية شركات كتير العلاقة ان الصيدلية بتشتريمن
شركات مختلفة، كل شركة بتصنع دواء خاص فيها،
trademark خاص فيها، اسم معين لها، الشركات التانية
ما بتنتجوا، كل شركة بتسمي العلاج تبعها أو الدواء
تبعها باسم خاص فيها، بتالي الدواء الواحد بتنتجه
شركة واحدةالصيدليات كمان بتبيع الأدوية مش بنفس
السعر يعني ممكن نفس العلاج مثلا مسكن أو خافض حرارة
أو مضاد حيوي ممكن تجيبه من صيدلية X بسعر أقل أو
أعلى من السعر عند صيدلية Y في تنافس في السوق كذلك
الأمر المريض عندى بيروح يتعالج عند دكتور و الدكتور
بكتبله رشيطة دوة علاجالدكتور ممكن يكتبله علاج واحد
او اتنين او تلاتة او اربعة في نفس الروشيتا ممكن
يكتبله مضاد حيوي بس ممكن يكتبله مضاد حيوي مع مسكل
مع مثلا خافض حرارة فممكن يكون اكتر من علاج في نفس
الوصفة المريض هذا لما بيروح للدكتور بيروح بيكتبله
هو العلاج في تاريخ محددالدكتور بيعالج اكتر من
المريض كل الكلام هذا مشروع عندي في الكاس و بدنا
نمثله نقطة نقطة اول نقطة عندي each drug is sold by
a drug company كل علاج drug يعني medicine علاج دوة
كل علاج بتبيع شركة أدوية كيف انتوا بالانجليزي نص
نص ولا منيح ترجم ولا ..كل واحد لحاله العلاج بتبيع
شركة أدويةthe drug is only sold by only one
company العلاج بس بنباع من شركة واحدة أي علاج
مافيش شركتين بتنتجوا لذا العلاقة one to many
العلاج مابتنتجوهش إلا شركة واحدة والشركة بتنتج
مجموعة من الأدوية فالعلاقة one to many بين الشركة
وبين الدواء ال trade name يعني اسم المنتجو ال
formula must be recorded يعني احنا لازم نسجل في ال
database بتاعتنا معلومات الدواء اسمه التجاري trade
name الاسم التجاري و ال formula يعني التركيبة
التركيبة العلاجية بتاعة الدواء ايش مكوناته ال
trade name identified the drug uniquely يعني ال
trade name بنفع نستخدمه ك primary key لل drug
النقطة اللي بعديها أنه كل drug company .. each
drug company is defined by name and has a phone
number يعني كل شركة إلها اسم وإلها رقم تليفون
والاسم هذا ماله identified by ال name يعني ال name
هذا بيمثل لها عبارة عن primary key
each patient كل مريض has only one doctor طبعا هذا
عكس الطبيعة احنا في الطبيعة المريض بيروح عنده اكتر
من دكتور عنده دكتور عام عنده دكتور اخصائي لكن في
المثال انه للتبسيط للتثييل افترض المثال انه each
patient has only one doctor كل مريض إله بسدكتور
واحد لكن كل دكتور each doctor has at least one
patient على الأقل عنده مريضة يعني ممكن يكون عنده
أكتر يعني العلاقة بين ال patient و الدكتور إيش
صارت one to many علاقة سهلة لكن هي فعليا في
الطبيعة many to many في الطبيعة فعليا many to many
ال patients are identified by SSN رقم هوية social
security number their names أسماءهم
و addresses عنوين و ages أعمار هدول كلهم بدنا
نسجلهم are recorded يعني لازم نسجلهم لكن مين بيمثل
ال primary key ليش identified by ال system لو
السؤال او ال case study ماحكتليشمين اللي احنا ممكن
نستخدمه ك primary key يعني لاحظ .. لاحظ هنا استخدم
مصطلح identified by identified uniquely identified
by لو العبارة هذه ماكنتش مكتوبة اللي هي كلمة
uniquely يعني بشكل مميز او identified by ممكن
نتعرف عليه من خلال ماكنتش مكتوبة لازم انا في
السؤال اشغل شوي المخ اعمل تحليل بسيط اشوف مين أنسب
attribute من الموجودين يكون primary key لل entity
في هذه الحالة الرقم الاسم ال address ال age أنسب
share الرقم يعني رقم الهوية مابتكررش الأسماء ممكن
يكون نفس شخصين اسمهم أمل اتنين اسمهم محمد اتنين
اسمهم علي ال address ممكن الاتنين يكونوا مساكنين
في نفس المكان اتنين سكان غزر اتنين سكان مصراط ال
age ممكن يكون مجموعة من نفس العمر مش ممكن نميز
الناس حسب أعمارهم أو حسب عنوان السكن أو حسب الاسم
الرقم أنسب shareطب لو في المثال هو أصلا مش طالب
مني الرقم مش طالب مني رقم هوية هو طالب مني بس أسجل
لكل مريض الاسم و ال address و ال age مين أفضل واحد
ممكن أختاره يكون ال primary case الاسم أفضل من ال
address و ال age فالمطلوب مننا أن أحنا حسب المثال
اللي بيجي معنا أو حسب ال case الصدر اللي بتيجي
معناإنه نحلل و نشوف إذا مذكور مين اللي بده يكون ال
primary key بده أختاره إذا مش مذكور بده أختار
الأنسب الأنسب عادة بيكون إما رقم أو إذا مافيش رقم
بيكون الإسم طيب الآن ال case طويل أطول من هيك بده
نكتفي بالتلت نقاط هاي نرسمها بعدين بنكمل و بنشوف
إيش بنكمل على الرسم حد أرسم بأول خطوة أمثلهااللي
هي الكلام عن ان كل drug بنباع من company و ال drug
مابنباعش إلا من شركة واحدة فأنا في عندي drug و في
عندي drug company طيب بدأ أشيل الخلفية عشان تكون
الصورة واضحة ايه format background ايه
transparency100% apply to all في
عندى drug و drug company حكينا العلاقة one, too
many الشركة بتنتج مجموعة من الأدوية لكن مافيش اي
دوة بتنتجوا اكتر من شركةو الدواء حكينا بنسجله
formula تركيبة دوائية و name اسم و الاسم روحت ميسه
سميته أنا دي name من عندى سميته دي name اختصار ل
drug name و ال name هو حكى لي انه ممكن انا اسخدمه
ك primary key لإنه حكى لي identified uniquely by
ال name فحطينا تحتى خطلاحظوا العلاقة بين ال drug و
ال company رسمتها بخط ثق عريض خميل دلالة انه ايش
نوع ال participation partial ولا total الذاكرين
الدرس اللي اتكلمنا فيه عن ال total participation و
ال partial participation العلاقة هاي total علاقة
total لأن كل drug بتصنع شركة مافيش drug بجيني
مالهوش مصنع مش مصنوع في مصنعفالعلاقة total
participation والسهم بتقول علي ان الجهة هاي
بتمثلها بس one شئ وحيد اللي يسميناها key
constraint و ال thick اللي هي ال total سميناها ال
total participation constraint هضيف بعدها ال
attributes عند drug company حكى لي هو ان each drug
company identified by nameو إيش و هدق phone number
فحضيفلها attribute phone number و name و لوحظوا ال
name سميته cinema عشان اميز انه company name حطينا
تحته خط لإنه primary key و لوحظكم ال phone number
ماعبرتش عنه phone
و مسافةnumber حطيت بدل المسافة حطيت underscore
لإنه لو أدام لما نيجي على برمجة برمجة SQL لل
database المسافات بتعملي مشاكل مع الأسماء لازم
يكون الإسم مافيش فيه مسافات فانا من الآن بريح نفسي
في ال design أصلا مابكتبش اسم أي entity set أو أي
attribute إلا بحاول أسبد المسافة بإيش ب underscore
لو بالغلط في ال design كنا عاملين شيء فيه مسافة في
الخطوة القادمة لما نيجي نبرمج ال database بدي أفهم
أن المسافة بدي أحولها ل underscore عشان أبعد عن
المشاكل ال compiler تبع ال database مايعطنيش
errors على الأسماء الخطوة
اللي بعديها بدأ يتكلم هو عن العلاقة بين الدكتور
وبين ال patientفصار في عندي patient مريض و في عندي
دكتور حكينا إن المريض بتعالج عن دكتور واحد فقط
بينما الدكتور مسموح له أكتر من مريض فالعلاقة one
to many ال doctor has many patients و ال patient
سجلنا له رقم name و address و age و ال name عشان
أميزه عن ال names التانية سمته P name patient name
و ال number حطينا تحتي إيش underline لإن هو ال
primary key تبع ال patient و الخط thick عريض لإنه
total participation كل ال patients اللي هم one
doctor مافيش مريض مالهوش دكتور حسب النص اللي كان
معنا تمام each patient كل مريضوبالتالي كل المرضى
لهم one doctor مافيش مريض مالوش فهي total
participation فالعلاقة بخط thick هيك احنا بنكون
خلصنا التلت أجزاء اللي انطلبت مننا ولاحظوا انه نتج
عنهم two entities بينهم relation و two entities
بينهم relation لكن لحد الآن مافيش رابط بين الجهتين
و كأن الشركة و الدواء في جهة و ال patient و
الدكتور في جهة ال case بتكمل بتحكي أن الدكتور
identified by SSN رقم هويته الدكتور كل دكتور each
doctor له name اسم specialty اش يعني تخصص دكتور
عظام باطنة جراحة عيون and years of experienceاللي
له عدد سنوات خبرة هدول كلهم must be recorded لازم
احنا نسجلهم فمباشرة لو رجعنا للرسمة اللي ورا
الدكتور بدنا نبدأ نعبي بيانات وإيش البيانات اللي
انطلبت مننا مين متزكد؟ المطلوب له SSN هذا بيشكل
primary key صح؟ نحط تحته in the line إيش كمان فيه؟
فيه له nameو ممكن إذا بدنا نميزه عن باقية الأسماء
نسميه مثلا D name لو سمينا D name في عندي drug
name ممكن نسميه dog name مثلا أي شيء بس نحاول
نميزه عشان نسهل أحياننا البرمجة عشان لما نيجي
نبرمج لو الأسماء شبه بعض هنصير نتخربش مطلوب
specialty و مطلوب إيش experience
experience years of experience whatever صح فعلا
الكلام هذا ضفناه وهي موجود ضفناله رقم doc name
specialty و experience المطلب
اللي بعده في ال case اللي عندناإنه each pharmacy
sells several drugs أجت entity 6 جديدة اللي هي مين
pharmacy صيدلية الدواء المريض مش هيروح ياخده من
الشركة من ال company بتاعة ال drugs هيروح ياخده من
صيدلية ف each pharmacy كل صيدلية sell several
drugs بتبيع عدد من الأدوية مش صنف واحد زي ما
الصيدلية تفعلين عنا في الواقع لذا العلاقة بين ال
pharmacy و ال drugmoney .. لا money to money نفس
الدواء بنلاقي فيه أكتر من صيدلية وكل صيدلية فيها
أكتر من دواء العلاقة money to money ال drug can be
sold at several pharmacies العقار أو الدواء ممكن
ينباع في أكتر من صيدلية each pharmacy has .. هاي
ال attributes بتاعة ال pharmacy name, address and
phone number حكى إيش عن ال primary key تبع ال
pharmacyطب معناته نرسم ال attributes ومانحطش
primary key بظبط ال design بدون primary key لكل ..
كل intercept بدها primary key إذا الحل إيش إذا هو
مش حاكيلي إحنا بدنا نختار مين أنسب شئ ال name ..
ال name .. منطقيا ال name ممكن ال phone number ..
ممكن ال phone number مابتكررش مافيش تشابهبينفع ال
phone number و بينفع النام بس ال address يمكن يعني
أصعب خيار لإنه ممكن يكون صيدل إيتام في نفس الشارع
في نفس المكان فاحنا إما بدنا نعتبد ال name أو بدنا
نعتبد ال phone number من عندنا قول
ال phone number يمكن أنسب primary
key فقط واحد لكل entity setلكن ممكن ال primary key
مايكونش attribute واحد ممكن يكون مجموعة من ال
attributes مع بعض combined يكونوا ال primary key
أما ممنوع يكون أكتر من ال primary key each
pharmacy could sell several drugs and has a price
for each يعني السعر ممكن يختلفيعني العلاقة اللي
بين ال pharmacy من جهة و ال drug من جهة في إلها
price إلها سعر و ال price هذا متغير هاي بدنا
نرسمها في عندي pharmacy farm
و في عندي اللي هو ال drug حكينا
العلاقة اللي بينهم money to money
مظبوط؟ في العلاقة هي ال many to many في price في
سعر لو حطينا ال price ك attribute لل drug كل
شي ثابت لأني بالضبط مين اللي حكاه؟ جوابك صح ايش
اسمك؟ ايش؟آية زي ما حكت آية إذا حطينا ال price لل
drug ربطناه في ال drug ك attribute لل drug معناته
ال price ثابت لل drug وينما ينبع هذا الكلام ممكن
يظبط لو في دولة فيها قانون مثلا أنه تثبت أسعار
الأدوية و لازم كل الصدريات تبيع بنفس السعرلو في
هذه الحالة بيكون هيك ال design تبعنا ممتاز انه
خلاص السعر ثابت مافيش مجال حد يلعب في أسعار
الأدوية ممنوع اللي بيغير سعر الدواء في مثلا عقوبات
في سجن في غيره فبرنامجنا بناسب ان يكون ال price
مربوط في ال drug ك attribute لل drug لكن هو في
المثال بيشرح واقع زي واقعنا مثلا في غزاء انه ممكن
الصيدلية تبيع نفس الدواء بأسعار مختلفةكل pharmacy
بتبيع الدواء بسعر بنسبها هي الحل
هذا مش هيناسبنا طب لو حاطينا ال price عند ال
pharmacy بنفع؟ لو أجينا حاكينا هاي ال price إيش
معنى أني أحط ال price عند ال pharmacy؟ كل صيدلية
لها سعر كل الأدوية سعر واحديعني إذا صار ال price
ميزة للصيدلية، يعني زي كأني بحكي إن الصيدلية هي
بتبيع كل الأدوية بعشرة شكل، إيش ما تشتري، إبرة،
حبوب، مضاد حيوي، مسكنات، كله نفس السعر، كل إشي
بيجي من الصيدلية هيك سعرهبينما لو حطيناها لعند ال
drug مانعته الدوة هذا العلاج هذا و ال مكان عند أي
صيدلية نفس السعر طب احنا بدنا كل صيدلية تبيع كل
دوة بسعر مانعتها بيكون ال price ال price بيكون
description لعملية ال sale للعلاقة مش احنا حكيناإن
ال relation ممكن يكون لها descriptive attribute
تتذكروا فيه كانت slide كلمت عن إيش اسمه ال
descriptive attribute attribute مش لل entity لل
relation attribute بيوصف ال relation ال price
عبارة عن attribute بيوصف عملية البيع إن كل عملية
بيع سعرها مختلف حسب الدواء و حسب الصيدلية مربوطة
في الإتنين مش في ال drug لحاله ولا في ال pharmacy
لوحدهامربوطة في الإتنين، مادة مربوطة في الإتنين
إذا مربوطة في ال relation اللي بينهم فال price
بتوصف السلم، عملية البيع واضح ال laws تبع ال price
بدنا
نيجي نتمثل هذا الكلام في الرسم اللي عندنا، في ال
diagram اللي رسمناه
فحنيجي نضيف entity 6 جديدة اللي هي ال pharmacy
علاقتها many to many مع ال drug ال relation اللي
هي ال cell و لاحظوا ميزتها عن باقي ال relations
حطيتها في الشكل المعين تبع ال relation ليش لإن بدي
أزيد عليها موضوع descriptive attributeال produce و
ال has ماكانش فيهم descriptive attribute فللتسهيل
شيلت الشكل المعين قدامه انا رجعت الشكل و حطيت ال
price توصف عينية السل ال pharmacy اللي ه address
اللي ه pharmacy name اللي ه phone number انا اخترت
انه يكون ال primary key الفوق اللي هو اسم
السيدالية لو اجى واحد تاني و حكى انا بدي اختار ال
phone number صح و مافيش اي مشكلةالان علاقة هذه
money to money مش هتصمد كتير معنا في ال design
بدنا نروح إيش نعمل فيها نحولها weak entity linked
entity بين الطرفين وعشان نحولها لازم أجيب ال
primary key تبع ال drug ال primary key تبع ال
pharmacy ونحطهم وين لل entity الست الجديدة صح؟ شك
كان الشغل لما نحول علاقة ال money to money بناخد
two primary keys و بنعملهم combined primary keyهذا
الكلام اللى انا عملته في الخطوة اللى بعديها عندى
weak entity هي عليها double rectangle دلالة انها
weak و linked entity ضفنا لها ال D name و ال
pharmacy name ال D name اللى هو ال primary key تبع
.. تبع مين؟ تبع ال drug و ال pharmacy name اللى
كان ال primary key تبع ال pharmacy و الاتنين مع
بعض مش واحد لحاله بيمثل ال primary key تبع مين؟تبع
ال pharmacy drug ال entity set الجديد اللي انا
سميتها pharmacy drug وهذه ال entity زي ما يلها دي
نعم و pharmacy نعم يلها كمان ايش؟ يلها price تلخيص
الكلام انه احنا أخدنا ال pharmacy و ال drug
العلاقة بينهم money to money فعشان نحل المشكلة
اعملنا entity set جديدة اسمها pharmacy drug يلها
combinedprimary key اللي هو بيمثل مين هدول اتنين
مع بعض ال pharmacy نام و ال drug نام لو واحد اختار
انه يكون ال phone number و ال primary key هيكون ..
هيكون هذا ايش؟ هيكون ال phone number تبع السيدالية
لحد
دلوقت الأمور واضحة ولا في اشي صعب شوي اشي مش واضح؟
كله تمام؟ طيب لللحظة هاي ما زالت ال pharmacy و ال
drug و ال company في عالم و الدكتور و ال patient
في عالم تاني مافيش اي relation شايفين اي خطوط
بتربط او اي علاقات بين ال entities الأربع اللي فوق
و الاتنين اللي تحت مافيش لان ال case بده يتكمل و
يشرحلي عن العلاقة اللي بينهم لان
بيحكيلي ان الدكتورprescribe drugs يعني بيكتبوا
رشتات ووصفات بينصحوا سجست أدوية للمرضى بيكتبوا
prescription رشتة علاج للمرضى doctors prescribe
drugs for patients الدكتور ممكن يكتب رشتة could
prescribe one or more drugs for several patients
الدكتور ممكن يكتب للمريض علاج واحد، دوة واحد أو
أكتر تروح الدكتور و الله ممكن في مثلا Influenza
يكتب مثلا مضاد حيوي مع خافض حرارة مع مسكن، تلت
علاجات في حالة تانية ممكن واحد رايح مثلا عنده
حموظة في المعدة يكتبله بس إيش دوة حموظة، دوة واحد
و ممكن في ال prescription ممكن يكتب دوة أو أكتر
كل وصفة علاجية كل روشيتا كل prescription فيها لها
ايش date and a quantity associated with it يعني
الروشيتا في عليها تاريخ من الدكتور وفي عليها كمية
الدواء لما هيكتبلك مضاد حيوي هيكتب مثلا تلت حبات
في اليوم في خمس أيام يعني خمستعشر حبة مثلا هيكتب
مثلا متين ميلي لدواء شرب لطفل هيكتب كمية فيها
quantityففي عندى quantity للدواء في عندى date
للرشاتة اخر شئ ل drug company شركة الأدوية في لها
contract عقد عقد مبيعات او عقد شراكة مع مين؟ with
pharmacies مع الصيدليات كل شركة من شركات ال drug
company بتعمل contract مع عدد من الصيدليات several
pharmaciesوكمان السيداليات بتعمل العقد مع أكتر من
.. مع several drug companies مع أكتر من شركة أكتر
من سيدالية many to many بالضبط many to many for
each contract you have to store the start date لكل
عقد بدنا نسجل تاريخ بداية العقد الحين الواحد بيروح
بعمل عقد مع جهة في تاريخ بداية و تاريخ نهاية وفي
نصط العقد فبدنا نخزن تاريخ بداية العقدو ال end
date تاريخ النهاية تاعت العقد و ال text تبع ال
contract نص الاتفاقية يعني هدول التلاتة تمثلوا
attributes لل contract ال text و ال start date و
ال end date هدول attributes لمين للحج contract بدي
أبدأ في هاي أول خلصها و نيجي على العلاقة هاي لإنها
شوية أصعبهنبدأ في ال contract ال contract حكينا
بيه ربط ال pharmacy مع ال drug company فرسمنا خط
من ال pharmacy ل drug company كمان ال contract
العلاقة money to money فحطينا M و M ال contract
طلب مننا نسجله start date و end date و text فى إيش
صعدولاحظوا التلاتة بيوصفوا descriptive attributes
لل relation هي مش entity set هي relation عشان
هيك ماخترتش من ولا واحد منهم primary key هدول
descriptive attributes لل relation لكن ال relation
هي مش هتطول عندي في الرسمة لإنه العلاقة M to M
فبدي أحوله
هعمل linked entity هسميها بنفس الاسم هسميها
contracts وتصير العلاقة one to many ومن الجهة هى
كمان one to many أصل يكون عندى هنا خط او رقم واحد
فى ال diagram وبدى primary key لان هدول ال three
descriptive attributes هيظلهم زى ما هم وبدى اجيب
primary key وبما انها عملية تحويل معناته ال
primary key ايش بيكون combined من وين بدى اجيبهمن
ال drug company مين ال primary key تبعها company
name جبته هاي ال C name company name و ال pharmacy
مين كان pharmacy name حط ال pharmacy name و اللي
اختار ال pharmacy phone number يكون ال primary بده
يجيب ال phone number بدل مين بدل ال name و الأتنين
مع بعض بيمثل ال primary key تبع ال entity set
الجديدة أكم entity set صار عندي في الرسمةdoctor و
patient اتنين تلاتة اربعة خمسة من الاصل وانا
اختلقت من عندي كمان اتنين صاروا سبعة فى ايش صعب؟و
شرح العملية في زاوية ال slide ان انا في عندى
contract relationship money to money عوضت عنها ب
entity set جديدة اسمها contracts اختارتلها ال
pharmacy name و ال cinema يكونوا foreign keys عشان
احولهم ل combined primary key في ال set الجديد شرح
الخطوة موجودة على ال slide الان ال slide عندى انا
تعبتفلو بتعمل العلاقة الجديدة اللى بين الدكتور و
المريض و أنه بوصفله دوة ده تطلع الخطوط من وين؟ من
نص الرسم هاي مش هتظبط معاه لو أنت بترسمه على
design على ورقة كبيرة ممكن العلاقة هاي تكون وين؟
فوق بدل ما الخطين نزلين من تحت ييجوا الخطين من فوق
و ييجي ال contract
و ال attributes سعته كلها فوق نرسم الخطوط هذه فانا
الآن ايش هامل همحي العلاقة هذه بس مش معناه اني
محيتها انها مش موجودة هي جزء من الرسمة مش واحد لما
يراجع من ال slides يحكي الدكتور او الأستاذ حذف ايش
حذف العلاقة تحت ال contract انها مش مطلوبة لأ هي
جزء من الرسمة بس انا بدي أحذفها لان مافيش اندي
وسعة في ال power point أعرضها انتوا الأصل في ال
design انها تكون where؟ الرسمة فوق
حاجة اللي انا بدي اعمل العلاقة الجديدة اللي بين
المريض والدكتور والدواء ولاحظوا اكم entity set
ذكرت انا في كلامي تلاتة patient و doctor ودواء اذا
انا علاقة binary ولا ternary و الternary بنتخلص
منها بنفس الطريقة اللي بنتخلص من ال money to money
بنحط linked entity set week في الوسطو بناخد ال key
تبع كل واحدة منهم و التلاتة مع بعض بيصيروا
combined primary key فعملت linked entity set
سميتها prescription روشيتات او وصفات علاجية هو طلب
مني اني احط لل روشيتة هائدات صح طلب مني ان احط
quantity للدواء صح حطيتهم هدول descriptive
attributes كان لل relation لما كانت ternery قبل ما
حولنافضلهم زي ما هم وانا هجيب تلاتة foreign keys
كانوا primary keys في ال tables بتاعونهم او في ال
institute بتاعونهم اللي هم ال primary key تبع ال
patient اللي هو ال patient SSL numberهذه الخط كان
تحت ال SSN فأخدت ال BSSN ال SSN تبع ال patient
والدكتور مين ال primary key؟ برضه رقم هويته سميتها
هنا doctor SSN عشان أميزها عن SSN التاني تمام؟ أخر
شئ ال drug name كان ال primary key لل drug جيبناها
foreign key في ال entity set الجديدة الآن التلاتة
هدول تحتيهم خط أحمر مع بعضcombined primary key لل
.. للروشيتة لل prescription وفيه الهدية ويلها
quantity العلاقات ال patient get prescription
المريض بيحصل على روشيتة الدكتور give prescription
بيعطي روشيتة ال drug prescribed in prescription
يعني الدوة موصوف أو مكتوب وين؟ في الروشيتةفي إيش
صعب؟ و لا إيش أه؟ و في الامتحان بنجيبه نفسه و
ماحدش بحله بأوض الله اللي
هنلاحظه في كل الرسمات أنه في عندي entity اللي هي
مستطيلات اللي هي relations علاقات مع بعضفانا كل
جملة بدي أقراها في السؤال بدي أحولها ل entity و
علاقة object و علاقته مع ال objects التانية بعد ما
أرسم ال object و العلاقة بعدها ببدأ أفكر إن
العلاقة هذه one to one و لا one to many و بكتب
بشوف وين فيه attributes توصف ال entity و بسجلها
بعد ما أسجل ال attributes بشوف مين أنسب واحد يكون
primary key و بحط تحته خطإذا في relation many to
many بحولها، إذا في علاقة ternary بحولها، هذه
الخطوات تحت الشغل كام
ضايل معناه؟ 48 يعني، فيه خمسات
في في نهاية الكتاب في نهاية ال chapter مش في نهاية
الكتاب نهاية chapter 2 تبع ال database design case
study كاملة الكتاب كاتبها و محللها و حللها و رسمها
جاهزة تتكلم عن internet book shop مكتبة لبيع الكتب
على ال internetال case هاي أنا لخصتها في الفقرة
هاي و رسمتها في diagram واحد ناخدها على السريع في
ال details اللي ضايقينها لكن تفاصيلها اللي بده
يتعمق فيها اكتر موجودة و مشروحة و محلولة كاملا في
نهاية chapter 2 في الكتاب الفكرة بتاعتها باختصار
انه في عندناصاحب مكتبه بيحول مكتبته من بدل ما هو
بيبيع للزبائن على التليفون و بيبعتلهم الطلبيات
لأماكنهم بده يسير يعمل موقع على ال internet و
الناس تشتري الكتب او الزبائن تقعون و يشتروا الكتب
على ال visa card من الموقع مباشرة و يبعتلهم هو
الكتب فهو في عنده customers زبائن بدهم يتصفحوا
الكتب catalog of bookslist of books فائمة باسماء
الكتب اللي هو بيبيعها و بدهم يعملوا orders place
orders يعني الزبون بعد ما يتفرج على الكتب إذا عجبه
اشي أو هو محتاج كتب معينة بده يشتريها بده يعمل
place orders من خلال الانترنت حاليا هو بياخد ال
orders take ال orders over ال phone معظم زبائن
عبارة عن شركات corporate customersيعني ما بيجيش
يطلب كتاب database نسخة أو كتاب برمجة نسخة لأ
بيطلب database مثلا عشرين نسخة بيطلب تلاتين نسخة
من كتاب الرياضيات عشر نسخ كتاب إنجليزي بيطلب كميات
معظمهم شركات أو يعني مكتبات أصغر منهم بيشتروا منهم
مثلا تاجر جملة و هم corporate customers عادة
بتتصلوا عليه في الوضع الطبيعي على التليفون بتتصلوا
عليه وبيعطوه إيشgive me the ISBN number of the
book في أي كتاب لو طلعنا عليه فيه له رقم اسمه ال
ISBN number رقم دولي بيميز الكتاب مافيش ولا اي
كتاب في العالم او اي كتابين يعني اللي لهم نفس
الرقم وبالتالي ال ISBN number هذا بنفع يكون ايه
primary key لمن لل books ولا لل customers لل books
واضحطيب كمان بيعطوه على التليفون ل quantity بيعطوه
رقم الكتاب and quantity كمية يعني بدي من الكتاب
لرقم و كده عشرين نسخة تلاتين عشرة خمسة they
often pay by credit card عادة بيدفعوا من خلال ال
credit card يعني في بيانات ال customersبدي احط لل
customer ايش رقم بطاقة الدفع اللي بدفع فيها ال
customer يعني ال credit card عبارة عن attribute لل
customer ال ISBN attribute لل book ال quantity
اللي علاقة برضه في ال book بعدها
ايش بيحكي عن حاله بيحكي I then prepare a shipment
that contains the book انا بعدين برتب شحنة
shipmentشحنة أو إرسالية أو طلبية تحتوي الكتب بيجهز
الطلبية كلها إيش طلب لزبون و بيبعتله إياها لإن هو
نمط البيع عنده مش لزبون اللي بيجي على المحل نمط
البيع عنده على الانترنت أو على التليفون يعني هو
اللي بده يبعت للزبون فهو بيجهز shipmentال shipment
هذه ال order هذا بدو يسجلوا عنده و بدو يتأكد انه
عنده عدد كافي من النسخ في المخزن enough copies in
stock stock يعني مخزن يعني لو أجى الزبون طلب من
كتاب ال database عشرين نسخة بينما هو عنده في
المخزن فقط خمس نسخ بنفع يبعتله الطلبية خمس نسخو ..
و كمان أسبوع لما يجيب باقي نسخ رود يبعتله يوم كمان
مرة تكلف عليه يصيروا يبعتوا الإرسالية مرتين أو تلت
مرات فهو لأ إيش بده يعمل؟ بده يعمل إنه يتأكد إنه
في نسخ كفاية في كفاية بده يبعت ال shipment بده
يبعت الإرسالية إذا مافيش كفاية بده يأخر ال
shipment و يجيب كتبوبستجهز طلبية كاملة يبعتها إيش
مرة واحدة الكلام هذا هو شرحه هنا أنه I order هو
بيطلب additional كبز و delay بيأخر ال shipment
الكلام هذا كله بيوصني ليش لفكرة أنه أنا ال
shipment بدي أسجللها تاريخ كل الفكرة هاي اللي
بيشرحها هو في تلات قسطر أنا بدي أستنتج منها بدون
ما هو يحكيلي أنه أنا ال shipment هي فيلها تاريخ
إذا في عدد كبز مناسببدي أبعتها فورا و أحط لها
التاريخ مباشرة إذا مافيش بدي أجلها لعندما تتوفر
الكتب و أجل تاريخ shipment مثلا لأسبوع لأسبوعين
أماميتقريبا هي الفكرة الرئيسية بيكمله و بعدها هو
بيسجل هو للكتاب سعر شراء و سعر بيع prices,
purchase prices, sale prices بيسجل رقم الكتاب
بيسجل title عنوان الكتاب ال author المؤلف سن طباعة
الكتاب yearاللي هي بتاعة ال book what's published
تاريخ طبعة الكتاب ال customer اللي عنده لإنهم تجار
كبار فهم بتكرروا فهو بده يسجللهم أسماءهم هاي you
record their names and addresses أسماءهم وعناوينهم
ليش بده عناوينهم لإن هو بيبعتلهم الكتب فهو بده
عناوينهم الكلام هذا كله مختصرطبعا ال diagram هذا
مرسوم مباشرة مش خطوة خطوة زي اللي قبله مختصر
حل ال case study كلها حلها في ال diagram هذا تحليل
ال diagram هذا ناخده المرة اللي جاي بنفصله مع بعض
بنشوف كيف طلع معنا ال customer ال order و ال book
الثلاث عناصر الموجودة ال order detail هذا entity
set احنا عملناها عشان نعالج مشكلة بين order و book