Professional Documents
Culture Documents
DB, HW3 - Physical Model, Solutions
DB, HW3 - Physical Model, Solutions
נימוק:
תשובות 1שגויה – המהלך הראשון שייך לעיצוב קונספטואלי ( )ERDוהשני לעיצוב לוגי
תשובה 2נכונה -מבנה הטבלה מוגדר בשלב העיצוב הלוגי ,בעוד שהגדרת סוגי הנתונים היא מהלך עיצוב פיזי
תשובות 3שגויה – בשני המקרים ,מדובר על מהלכים שניתן לשייכם לעיצוב קונספטואלי ()ERD
תשובה 4שגויה – שני מהלכים שניתן לשייכם לעיצוב פיסי
.2הטבלאות ) A (a1, a2ו B (b1, b2)-ו C (c1(A), c2 (B), c3)-הן חלק מבסיס נתונים שהתקבל מהמרה
תקינה של מודל ERDתקין .אילו מהטבלאות הבאות ,אם יכללו באותו בסיס נתונים ,עשויות להתקבל מהמרת
אותו ? ERD
) . D ( d1(A), d2, d3, d4א
) ). E ( e1(B), e2, {e3, e4} (Eב
) . F ( {f1 , f2} (C), f3ג
) . G ) {g1, g2} (C), g3ד
א' ,ב' ,ו-ד' ,אך לא ג' .2 ב' ,ו-ג' בלבד .1
א' ,ב' ,ג' ,ו-ד' .4 א' ,ג' ,ו-ד' ,אך לא ב' .3
נימוק:
א .מימוש של שדה של Aשהוא גם מורכב וגם מרובה ערכים
ב .ישות חלשה של ,Bעם קשר רקורסיבי
ג .מודל שגוי – הטבלה "כאילו" מייצגת הורשה של קשר
ד .שדה מרובה ערכים על קשר C
.3במודל ה ERD-קיים קשר משולש בין הישויות ,A, Bו ,C-עם קרדינליות ( N:N:1ה 1-הוא בצד של .)Cנתון
כי בטבלה המייצגת את Aיש כעת aרשומות ,בטבלה המייצגת את Bיש bרשומות ,ובטבלה המייצגת את C
יש cרשומות .איזה מהביטויים הבאים מגדיר נכונה את החסם העליון על מספר הרשומות האפשרי כעת בטבלה
הממירה את הקשר המשולש ?
a*b*c .2 a*b .1
המקסימום בין a * cלb * c - .4 המקסימום בין aלb - .3
נימוק:
כיוון שהקרדינליות היא "רבים רבים יחיד" – המפתח הראשי של הטבלה שממירה את הקשר המשולש יהיה מורכב
ממפתחות זרים ל A-ול ,B -ובהתאם לכך החסם העליון על מספר הרשומות הוא כמספר הצירופים האפשריים
בסיסי נתונים אוניברסיטת בן גוריון בנגב
פתרון תרגיל בית מס' 3 המחלקה להנדסת תעשיה וניהול
.4עלתה דרישה להגדיר טבלת חיפוש ( )Lookup Tableבשם Cעבור השדה a4בטבלה ,Aושהטבלה תאלץ
אך ורק את הערכים שקיימים כעת בשדה זה .איזו מהשאילתות הבאות לא תהיה רלוונטית למימוש דרישה זו?
כלומר ,הטענה היא ששלוש מהשאילתות הבאות תהיינה רלוונטיות למימוש ,ויש לסמן את יוצאת הדופן.
(רמז :אם יש נוסח פקודה שלא נראה מוכר ,כיוון שעדיין לא נלמד – כדאי לערוך חיפוש מה הוא עושה)...
2. INSERT INTO C ( 1. CREATE TABLE C
SELECT DISTINCT A.a4 ) c1 int NOT NULL PRIMARY KEY
4. ALTER TABLE A 3. ALTER TABLE C
ADD CONSTRAINT FK_C ADD a4 int NOT NULL
)FOREIGN KEY (a4) REFERENCES C (c1
נימוק:
תשובה 3מתארת פעולה לא רלוונטיות – בעת הגדרת טבלת חיפוש ,אין צורך להוסיף את השדה עליו מצביעים
לטבלת החיפוש.
הרמז התייחס לפעולה המתוארת ב – 2-מדובר בנוסח שאילתה מקוננת ,שנלמד בהמשך ,שאפשר להזין של פלט
שאילתה אחת לטבלה קיימת ,ומדובר בפעולה רלוונטית להזנת הערכים הנדרשים לטבלת החיפוש.
נימוק:
תשובה 1מתארת את נוסח הכתיבה הנכון של הוספת אילוץ מפתח זר באמצעות ALTER TABLE
.6בהתחשב במבנה הטבלאות Xו ,Y-וברשומות המצויות בהן ,איזו מהפעולות הבאות לא תגרום לבעיית
יושרה ( ?) Integrityכלומר ,הטענה היא ששלוש מהפעולות יגרמו לבעיית יושרה ויש לסמן את יוצאת הדופן.
)2. INSERT INTO Y (m, p, q 1. DELETE FROM X
)"VALUES (1, 1, "YES WHERE d > 40
4. UPDATE X SET a = d 3. UPDATE Y SET m = p
"WHERE e = "U1 "WHERE q = "NO
נימוק:
תשובה - 1הפעולה תגרום למחיקת הרשומה הרביעית ב ,X-למרות שב Y-יש רשומה עם מפתח זר שמצביע עליה
תשובה – 2הפעולה תגרום להוספת רשומה עם ערך NULLבמפתח הראשי ,כיוון שבהגדרה חסר השדה n
תשובה – 3הפעולה תגרום לכך שברשומה השנייה המפתח יהיה הצירוף ( )2,2,2שכבר מופיע ברשומה הרביעית
תשובה – 4הפעולה לא תגרום הפרות יושרה ,כיוון שאין ערכי מפתח זר שמצביעים על הרשומות שיעודכנו
בסיסי נתונים אוניברסיטת בן גוריון בנגב
3 'פתרון תרגיל בית מס המחלקה להנדסת תעשיה וניהול
.) המשקפת נכונה את התיאורERD( קשרים- יש לשרטט דיאגראמת ישויות,עבור אחד מתיאורי המקרה הבאים
.יש להגיש המרה לטבלאות של אחד המודלים – אך מומלץ לנסות להתמודד עם שניהם
. אין צורך בתרשים גרפי. השדות והמפתחות הראשיים והזרים,יש להשתמש ברישום טקסטואלי של הטבלאות
אין צורך להוסיף הסבר מילולי על תהליך ההמרה או על פירוש השדות
מודל א
tA denioJ
1N:
etiS remotsuC 0
N:
1:1 1:1dengissA
e• tiS noitaleR DI remotsuC
•
ytiC
• epyT
• emaN
•
etaD kroW
•
htgneL
• etaD nioJ
•
eloR
•
staeS
• 1
N:
1:1
sretsigeR
yb decalP
1
N: 0
N:
teB 1N: 1:1 1N: 1:1
kcarT
ecaR no decalP DI •teB ycnegA
kcarT
• • BetaD
te
TD ecaR
• rebmuN kcaB• 1:1 1N:tnuomA
• DI ycnegA
•
epyT ecaR
• 1:1 gnimiT
• oitaR •teB sserddA
•
stekciT
• ecalP
• 1:1 enohP
•
yralaS rediR
•
nimdA
1N: 1
N:
yralaS
• eeyolpmE
1:1
esroH ta setepmoC
D eeyolpmE
DI •
ot dengissA 1:1 rediR emaN
•
DI esroH
• etaD tratS
•
emaN
• thgieH
•
etadhtriB
• thgieW
•
rediR
• etaD
-
מודל ב
hcnarB 0N
: 1:1
1:1ta detsoP tnemngissA eeyolpmE
DI hcnarB
• 1N:
rosivrepuS
ytiC
• etaD tratS
• DI eeyolpmE
•
etaD hcnarB
• etaD dnE
• emaN
•
1:1
yB deganaM
ralaS
• y nemyolpmE
1:1 • taD
t e
1N:
remotsuC oiloftroP
DI remotsuC
• 1N: DI1oiloftroP
N
: • 1N
: seldnaH 1:1
emaN
• pihsrenwO etaD oiloftroP
• tnegA
liamE
• oitaR
• launnA
• ]sesruoC[
•
nioJ
• taD e 1N: knaR
•
0N
: etaD knaR
•
kcotS
DI kcotS
•
0N: mriF
• tivitcA y
etaD kcotS
• 1:1 tnemtsevnI
kcolB etaD ytivitcA
• ediS
•
kcolB
• egnahcxE ecirP
• ytitnauQ
•
1N:
etaD tinU
• s
DI egnahcxE
•
0N : 1:1
yrtnuoC
•
•eeF
. ששמשה להקמת בסיס הנתוניםCREATE TABLE יש לכלול בפתרון המטלה את סדרת פקודות
את המפתח הזר הרקורסיבי – נוח יותר להוסיף לאחר שהטבלה כבר מאוכלסת בנתונים
CONSTRAINT fk_Customer
FOREIGN KEY )(CustomerID
REFERENCES CUSTOMERS(CustomerID),
CONSTRAINT fk_Employee
FOREIGN KEY )(EmployeeID
REFERENCES )EMPLOYEES(EmployeeID
)
CONSTRAINT pk_Details
PRIMARY KEY (OrderID, ProductID),
CONSTRAINT fk_Order
FOREIGN KEY )(OrderID
REFERENCES ORDERS(OrderID),
CONSTRAINT fk_Prodcuct
FOREIGN KEY )(ProductID
REFERENCES )PRODUCTS (ProductID
)
א .בעזרת פקודות ALTER TABLEמתאימות -עליכם להוסיף אילוצי בדיקה ( )CHECKהמוודא שלכל השדות
המספריים שמבטאים היקף פעילות עסקית מוגדרים טווחי ערכים מתאימים
שדות שמבטאים מספר יחידות ,מחיר או סכום – אינם יכולים להיות שליליים •
שדות שמבטאים שיעור הנחה – צריכים לקבל ערך בטווח שבין 0ל.1- •
ב .יש להוסיף לבסיס הנתונים טבלאות חיפוש ( )LOOKUP TABLESמתאימות עבור השדות הבאים ,להזין
אליהן את הערכים הנדרשים ,ולחבר אותן כנדרש באמצעות מפתח זר.
בטבלת המוצרים :רשימת ספקים ורשימת קטגוריות •
בטבלת הלקוחות :רשימת ערים •
בטבלת העובדים :רשימת משרדים •
בטבלת ההזמנות :רשימת חברות משלוחים •
בסיסי נתונים אוניברסיטת בן גוריון בנגב
3 'פתרון תרגיל בית מס המחלקה להנדסת תעשיה וניהול
.יש לכלול בהגשת הפתרון למטלה את הפקודות בעזרתן יצרתם את אילוצי מרחב הערכים