Download presentation
Presentation is loading. Please wait.
1
קורס מסדי נתונים (Database Systems)
מסדי נתונים תשס"ג
2
תירגול מתרגל: ירון קנזה
Course My Moderated Newsgroup: local.course.db.ta Students Newsgroup: local.course.db.stud מסדי נתונים תשס"ג
3
תרגילי בית בקורס יינתנו כ-10 תרגילים
משקל התרגילים 30 – 15 אחוזים מן הציון הסופי חובה להגיש את כל התרגילים על כל הגשת תרגיל לכלול: שם, login ומספר סטודנט הגשת תרגילים: תרגילים בכתב יוגשו לתיבת הקורס ברוס 2- תרגילי תכנות יוגשו אלקטרונית דרך אתר הקורס החזרת תרגילים: ברוס 2- קבלת ציון: אלקטרונית באתר הקורס מסדי נתונים תשס"ג
4
תרגילי בית ערעורים: דחיית מועד הגשת תרגיל:
יוגשו בכתב בטופס ערעורים לתיבת הקורס ברוס 2- טופס ערעורים נמצא באתר הקורס יוגשו תוך שבוע ממועד החזרת התרגיל הבדוק דחיית מועד הגשת תרגיל: בשל סיבה מוצדקת (מילואים, לידה וכד') בצירוף אישורים מתאימים מסדי נתונים תשס"ג
5
ספרות עזר Database Management Systems, by Raghu Ramakrishnan
Principles of Database and Knowledge-Base Systems, Volumes I and II, by Jeffery Ullman Oracle 8i: The Complete Reference, by Kevin Loney and George Koch מסדי נתונים תשס"ג
6
Entity Relational Model
מודל הישויות והקשרים Entity Relational Model מסדי נתונים תשס"ג
7
המטרה: "התאמת העולם למודל"
Requirement Analysis Conceptual Database Design Logical Database Design Database ERD Relations Objects XML documents מסדי נתונים תשס"ג
8
מושגי יסוד מודל הישויות והקשרים (Entity Relationship Model)
מאפשר לאפיין את העצמים ב"עולם", את הקשרים בין עצמים ותכונות של עצמים דיאגרמת ישויות קשרים (Entity Relationship Diagram) ייצוג גרפי, בדיאגרמה, של ה"עולם" כפי שהוא על פי מודל הישויות והקשרים מסדי נתונים תשס"ג
9
דוגמה – כיצד נתכנן את המסד?
בסיס נתונים של גלריה לאמנות כולל מידע על אמנים שעבודותיהם היו או נמצאות בגלריה (שם, כתובת, שנת לידה, סגנון אמנותי). במערכת נשמר מידע על יצירות אמנות (מספר קטלוגי, שם היצירה, האמן היוצר, השנה שבה נוצרה היצירה, סוג העבודה – ציור, פסל, תחריט, צילום וכדומה). היצירות מסווגות לקבוצות כגון: דיוקנאות, תמונות נוף, ציורים אימפרסיוניסטיים וכו'. יצירה עשויה להשתייך ליותר מקבוצה אחת. במערכת נשמר מידע על לקוחות (שם, כתובת, יצירות שקנו, אמנים מועדפים וכו'). בקניית יצירת אמנות נשמר במערכת מידע על תאריך הקניה והמחיר שבו נמכרה היצירה. מסדי נתונים תשס"ג
10
מושגי יסוד – המשך ישות (entity) – עצם במערכת, לדוגמה האמן וינסנט ואן גוך, היצירה משמר הלילה וכו' קבוצת ישויות או טיפוס ישויות (entity set) – הכללה של כל הישויות מסוג מסויים, לדוגמה אמנים, יצירות, לקוחות קשר (relationship) – קשר בין שתי ישויות או יותר, לדוגמה רמברנדט יצר את משמר הלילה קבוצת קשרים או טיפוס קשרים (relationship set) הכללה של כל הקשרים מסוג מסויים, לדוגמה יצר את (בין אמן ליצירה), קנה את (בין לקוח ליצירה) מסדי נתונים תשס"ג
11
מושגי יסוד – המשך תכונה (attribute) – פריט מידע המתאר ישות או קשר, לדוגמה שנת לידה היא תכונה של אמן לכל הישויות בקבוצת ישויות יש אותן תכונות (פרט ל-ISA בהמשך) לכל קבוצת ישויות יש מפתח (יוגדר עוד מעט) לתכונה ניתן לשייך תחום (domain) תכונה מכילה פריט מידע יחיד ולא רשימה של פריטי מידע מסדי נתונים תשס"ג
12
בדיאגרמת ERD קבוצת ישויות מיוצגת בעזרת מלבן
כיצד מיוצגת ישות בדיאגרמה? כיצד מיוצג קשר? בדיאגרמת ERD קבוצת ישויות מיוצגת בעזרת מלבן קבוצת קשרים מיוצגת בעזרת מעויין תכונה מיוצגת בעזרת אליפסה אמן יצר את יצר את יצירה אמן שם יצירה מספר קטלוגי שם אמן מס זהות מסדי נתונים תשס"ג
13
של מי התכונה הזאת? בקורס באוניברסיטה שומרים מידע על סטודנטים ועל תרגילי בית שהסטודנטים הגישו: כיצד נייצג ציוני תרגילים? ציון ? ? ? הגשה תרגיל סטודנט נושא מספר תרגיל שם מס זהות כיצד יבוטא במודל קשר הגשה? האם יתכן שתהיה סטודנטית שלא הגישה אף תרגיל? מסדי נתונים תשס"ג
14
קבוצת קשרים רקורסיבית מותר שבקשר ישתתפו שתי ישויות (או יותר) מאותו טיפוס במקרה זה מוסיפים לקבוצת הקשרים בחיבור לטיפוסי הישויות את תיאור תפקיד (role) הישות בהשתתפות: מנהל מנוהל מנהל של שם עובד עובד מספר זהות מסדי נתונים תשס"ג
15
קבוצת קשרים n-רית עד כה ראינו קבוצות קשרים בינאריות
שם מוסד מוסד לימד קורס מרצה שם קורס מספר קטלוגי שם מרצה מס זהות מסדי נתונים תשס"ג
16
קבוצת קשרים פורמלית קבוצת קשרים תהיה {(e1, …, en) | e1E1, …, enEn}
For E1, …, En entity sets הישויות המשתתפות בקשר השייך לקבוצת קשרים מזהות את הקשר בקבוצה באופן ייחודי מסדי נתונים תשס"ג
17
האם השניים הבאים שקולים?
שם מוסד מוסד לימד קורס מרצה שם קורס מספר קטלוגי שם מרצה מס זהות שם מוסד לימד ב ניתן ב מוסד לימד את קורס מרצה שם קורס מספר קטלוגי שם מרצה מס זהות מסדי נתונים תשס"ג
18
רוצים לשמור באילו שנים בוצעה ההוראה?
שם מוסד מוסד לימד קורס מרצה שם קורס מספר קטלוגי שנים ? מס זהות שם מרצה מסדי נתונים תשס"ג
19
אילוצים (constraints)
מפתח (key) של קבוצת ישויות הוא קבוצה מינימלית של תכונות כך שהערכים בתכונות אלו מזהים באופן ייחודי את המופעים של קבוצת הישויות יתכן שיהיה קיים יותר ממפתח מועמד אחד (candidate key) לטיפוס ישויות אחד מן המפתחות המועמדים נבחר להיות המפתח הראשי (primary key) של קבוצת הישויות המפתח הראשי מסומן על ידי קו תחתי בתכונותיו האם יש דמיון/שוני ביחס למפתח ראשי ב-SQL? מסדי נתונים תשס"ג
20
דוגמא חייל חייל חייל מספר חשבון בנק מספר זהות 1 שם בנק מספר אישי
2 שם בנק מספר אישי מספר חשבון בנק חייל מספר זהות 3 שם בנק מספר אישי מסדי נתונים תשס"ג
21
אילוצים אילוצי מפתח (key constraints)
אילוץ על השתתפות קבוצת ישויות בקבוצת קשרים כשאין אילוץ, ישות עשויה להשתתף במספר קשרים מקבוצת הקשרים האילוץ מחייב ישות להשתתף בלכל היותר קשר אחד מטיפוס הישויות סימון בעזרת הוספת חץ לכיוון המעויין מסדי נתונים תשס"ג
22
יחיד לרבים (one-to-many)
יצר את יצירה אמן שם יצירה מספר קטלוגי שם אמן מס זהות - אמן קשור להרבה יצירות - יצירה קשורה לאמן יחיד יצירה יצר אמן מסדי נתונים תשס"ג
23
רבים לרבים (many-to-many)
שייכת ל יצירה קבוצה שם יצירה מספר קטלוגי תיאור שם קבוצה קבוצה יכולה להכיל כמה יצירות יצירה יכולה להיות קשורה למספר קבוצות יצירה שייכת קבוצה מסדי נתונים תשס"ג
24
יחיד ליחיד (one-to-one)
נישואין גברים נשים שם מספר זהות שם מס זהות - גבר קשור לאשה יחידה - אשה קשורה לגבר יחיד גברים נישואין נשים מסדי נתונים תשס"ג
25
אילוצי מפתח ? ? מוכר ? קונה מכונית מספר זהות חברה שנת ייצור מכירה
מודל מס רכב הנחות: מוכר עשוי למכור כמה מכוניות, קונה עשוי לקנות כמה מכוניות, מכונית נמכרת פעם אחת בלבד מסדי נתונים תשס"ג
26
אילוצי השתתפות אילוצי השתתפות (participation constraints)
אילוץ על השתתפות קבוצת ישויות בקבוצת קשרים כשאין אילוץ, ישות עשויה לא להשתתף באף קשר מקבוצת הקשרים האילוץ מחייב ישות להשתתף בלפחות קשר אחד מטיפוס הישויות סימון בעזרת הדגשת הקו המחבר את המלבן למעויין מסדי נתונים תשס"ג
27
אילוצי השתתפות יצירה אמן יצר את שם יצירה מספר קטלוגי שם אמן מס זהות
- אמן לא חייב להיות קשור ליצירה - יצירה חייבת להיות קשורה לאמן יצירה יצר אמן מסדי נתונים תשס"ג
28
השתתפות חלקית והשתתפות מלאה
(total participation) השתתפות חלקית (partial participation) יצר את יצירה אמן ניתן לשלב אילוצי השתתפות עם אילוצי מפתח שם יצירה מספר קטלוגי שם אמן מס זהות מסדי נתונים תשס"ג
29
מערכת המידע של הגלריה כעת יש לנו את הכלים לייצר דיאגרמת ישויות קשרים לייצוג המידע הנדרש עבור גלריית האמנות חשוב שבמערכת יהיה ייצוג לאילוצים הנדרשים מסדי נתונים תשס"ג
30
טיפוסי ישויות חלשים טיפוסי ישויות חלשים (weak entity sets) הם טיפוסי ישויות שאין להם מפתח המורכב מהתכונות שלהם בלבד לטיפוס ישויות חלש יש תלות זיהוי (identifying relationship set) בטיפוס ישויות שהוא הבעלים המזהה (identifying owner) של הטיפוס החלש לטיפוס הישויות החלש השתתפות מלאה בתלות הזיהוי סימון טיפוס הישויות החלש בעזרת הדגשת המלבן סימון תלות הזיהוי בעזרת הדגשת המעויין מסדי נתונים תשס"ג
31
דוגמה פלוגה מחלקה גדוד פלוגה מחלקה מחלקה מהם המפתחות הראשיים של
קבוצות הישויות? פלוגה שייכת ל אות פלוגה מחלקה מספר מחלקה גדוד מספר גדוד פלוגה שייכת ל אות פלוגה מחלקה מספר מחלקה מחלקה מספר מחלקה מסדי נתונים תשס"ג
32
דוגמאות נוספות ספר קו נסיעה עותק נסיעה מספר קטלוגי מספר קו כותרת
מופע של מספר קטלוגי עותק מספר עותק קו נסיעה מספר קו כותרת ביצוע מספר אוטובוס השאלה נסיעה תאריך שעה מסדי נתונים תשס"ג
33
היררכית ISA קשרי ISA מגדירים היררכיה בין קבוצות ישויות באופן שיוצר ירושה ירושה על ידי הפרדה (specializing) ירושה על ידי הכללה (generalizing) סימון קשרי ISA בעזרת משולש שבתוכו המילה ISA מסדי נתונים תשס"ג
34
דוגמה רהיטים שידות שולחנות כסאות מהם המפתחות הראשיים של
קבוצות הישויות? דוגמה רהיטים מספר קטלוגי מחיר ISA שידות שולחנות כסאות מספר מגירות גובה צבע ריפוד מסדי נתונים תשס"ג
35
תכונות של קשרי ISA לרוב, מניחים שאין חפיפה בין קבוצות הישויות המוכללות בקשר ה-ISA לדוגמא, האם יש כסא שהוא גם שולחן? לרוב, מניחים שכל ישות מקבוצת הישויות המכלילה שייכת גם לפחות לאחת מקבוצות הישויות שמוכללות בקשר ה-ISA לדוגמא, האם יש רהיט שאינו כסא, אינו שולחן ואינו שידה? מסדי נתונים תשס"ג
36
שימוש בקשרי ISA נשתמש בהכללה של קבוצות ישויות
על מנת לייצג קבוצות ישויות שחלק מתכונותיהן, כולל המפתח הראשי, זהות וחלק שונות על מנת לייצג קבוצות ישויות שזהות בתכונותיהן אך שונות בהשתתפותן בקבוצות הקשרים מסדי נתונים תשס"ג
37
דוגמה מה הבעיה בייצוג הזה? אנשים הורה אישה הורות ילד איש נישואין שם
מספר זהות מה הבעיה בייצוג הזה? מסדי נתונים תשס"ג
38
המשך דוגמה אנשים נשים גברים מספר זהות שם אמהות אבהות ISA נישואין
מסדי נתונים תשס"ג
39
דוגמה במסגרת מחקר מנהלים בסיס נתונים לאחסון נתונים המתקבלים ממילוי שאלונים על ידי נחקרים המשתתפים במחקר קבוצת הנחקרים היא קבועה, ושומרים על הנחקרים פרטים אישיים שונים לא כל המשתתפים עונים על השאלונים, אולם נחקר עשוי לענות על כמה שאלונים שונים בכל שאלון מספר שאלות ועל כל שאלה ניתן לענות או על ידי בחירה מתוך מספר תשובות נתון או על ידי דירוג מטווח נתון במערכת נשמר גם המידע על השאלונים עצמם, המבנה שלהם, השאלות בשאלונים השונים וכו' מסדי נתונים תשס"ג
40
יצירת בסיס נתונים עבור המחקר
יוצרים דיאגרמת ישויות קשרים מוסיפים אילוצים כנדרש ממירים את הדיאגרמה לטבלאות כיצד ממירים דיאגרמה לטבלאות? מסדי נתונים תשס"ג
41
המרת קבוצות ישויות לטבלאות
כל תכונה של קבוצת הישויות מתורגמת לתכונה בטבלה address person name id person (id, name, address) CREATE TABLE person(id CHAR(11), name CHAR(30), address CHAR(40), PRIMARY KEY (id) ) מסדי נתונים תשס"ג
42
המרת קבוצות קשרים לטבלאות
הטבלה עבור קבוצת קשרים מכילה את תכונות המפתחות הראשים של כל קבוצות הישויות שמשתתפות בקבוצת הקשרים, כל מפתח עם אילוץ מפתח זר (foreign key constraint) הטבלה מכילה את התכונות של קבוצת הקשרים עצמה המפתח הראשי נוצר מתכונות המפתח של קבוצות הישויות שמשתתפות בקבוצת הקשרים מסדי נתונים תשס"ג
43
car person owns address name id model plate since color
owns (id, plate, since) CREATE TABLE owns( id CHAR(11), plate CHAR(10), since DATE, PRIMARY KEY (id, plate), FOREIGN KEY (id) REFERENCES person, FOREIGN KEY (plate) REFERENCES car ) מסדי נתונים תשס"ג
44
בנוסף, נדרש בטבלה car מפתח זר FOREIGN KEY (plate) REFERENCES owns
address car person name id model plate since color owns (id, plate, since) CREATE TABLE owns( id CHAR(11) NOT NULL, plate CHAR(10), since DATE, PRIMARY KEY (plate), FOREIGN KEY (id) REFERENCES person, FOREIGN KEY (plate) REFERENCES car ) בנוסף, נדרש בטבלה car מפתח זר FOREIGN KEY (plate) REFERENCES owns מדוע? מסדי נתונים תשס"ג
45
מחברים את טבלת קבוצת הקשרים לטבלת קבוצת הישויות,
owns address car person name id model plate since color אפשרות ב', בלא טבלת owns! CREATE TABLE car( model CHAR(20), plate CHAR(10) PRIMARY KEY, color CHAR(10), id CHAR(11) NOT NULL, since DATE NOT NULL, PRIMARY KEY (plate), FOREIGN KEY (id) REFERENCES person ) מחברים את טבלת קבוצת הקשרים לטבלת קבוצת הישויות, מדוע זה ניתן? מסדי נתונים תשס"ג
46
reference (in_bno, to_bno)
publisher books in title bno reference (in_bno, to_bno) CREATE TABLE reference( in_bno CHAR(20), to_bno CHAR(20), PRIMARY KEY (in_bno, to_bno), FOREIGN KEY (in_bno) REFERENCES books(bno) FOREIGN KEY (to_bno) REFERENCES books(bno) ) מסדי נתונים תשס"ג
47
המרת קבוצת ישויות חלשה המפתח של קבוצת הישויות החלשה כולל את המפתח הראשי של קבוצת הישויות שבה היא תלויה קבוצת הישויות החלשה תמיד משתתפת השתתפות מלאה בתלות הזיהוי ועם אילוץ מפתח יחיד לרבים ישנה "תלות קיום" של קבוצת הישויות החלשה בקבוצת הישויות שבה היא תלויה בתלות הזיהוי מסדי נתונים תשס"ג
48
copy (bno, cno, limitations) כיצד באה לידי ביטוי תלות הקיום?
exists publisher copies books cno title bno limitations copy (bno, cno, limitations) CREATE TABLE copies( bno CHAR(20), cno INTEGER, limitations CHAR(20), PRIMARY KEY (bno, cno), FOREIGN KEY (bno) REFERENCES books ON DELETE CASCADE ) כיצד באה לידי ביטוי תלות הקיום? מסדי נתונים תשס"ג
49
המרה של קבוצות ישויות מוכללות בקשרי ISA
ישנם שתי אלטרנטיבות: המרה רגילה של קבוצת הישויות המכלילה והמרה של קבוצות הישויות המוכללות כאילו היו קבוצות ישויות חלשות (טבלת קבוצת ישויות מוכללת תכלול את המפתח הראשי של קבוצת הישויות המכלילה) המרה רק של קבוצות הישויות המוכללות לטבלאות, כאשר הטבלה של קבוצת ישויות מוכללת כוללת את כל תכונות קבוצת הישויות המכלילה אותה מסדי נתונים תשס"ג
50
software free_software purchased_software
cat_no company ISA free_software purchased_software site price support_info מסדי נתונים תשס"ג
51
software(cat_no, company) free_software(cat_no, site)
Option 1 software(cat_no, company) free_software(cat_no, site) purchased_software(cat_no, price, support_info) Option 2 free_software(cat_no, company, site) purchased_software(cat_no, company, price, support_info) מסדי נתונים תשס"ג
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.