DataBases - Lecture 1

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 19

‫מערכות בסיסי נתונים‬

‫סמסטר ג'‪ ,‬תש"ע‬


‫מרצה ‪ :‬חיים שפיר‬

‫‪1‬‬ ‫מצגות הקורס מבוססות על מצגות שהוכנו על ידי ד"ר עפר אריאלי‬ ‫מערכות בסיסי נתונים‬
‫‪:‬מידע כללי ונהלים‬

‫• קורס סמסטריאלי‪ :‬שיעור ‪ +‬תרגיל (‪ 2+2‬ש"ס)‬


‫• ציון סופי‪ 25% :‬ציוני תרגיל‪ 75% ,‬ציון בחינה מסכמת‬
‫• חובה להגיש את כל התרגילים!‬
‫• שעת קבלה‪ :‬יום ו' ‪11:00-12:00‬‬

‫‪2‬‬ ‫מערכות בסיסי נתונים‬


‫ספרות עזר‬
• Korth, Silberschatz. Database System Concepts
• Elmasri, Navathe. Fundamentals of Database Systems.
• Date. Introduction to Database Systems.
• Atzeni. Relational Database Theory.
• Connolly, Begg, Strachan. Database Systems.
• Ullman. Principles of Database and Knowledge-Base Systems,
Vol I.
)‫• מערכות בסיסי נתונים (הוצאת האוניברסיטה הפתוחה‬
.SQL ‫ בסיסי נתונים טבלאיים ושפת‬.‫• רז הייפמן‬

3 ‫מערכות בסיסי נתונים‬


‫תכנית הקורס‬
‫מבוא למערכות בסיסי נתונים‬ ‫‪.1‬‬

‫‪ .2‬מודלים לייצוג המידע‬


‫א‪ -‬מודל ישויות קשרים (‪)Entity-Relationship Model‬‬
‫ב‪ -‬מודל היחסים (‪)Relational Model‬‬
‫ג‪ -‬סקירת מודלים אחרים‪ :‬מודל הרשת‪ ,‬המודל ההיררכי‬

‫שפת )‪ – SQL (+ SQL-Server‬בתרגיל‪ ,‬במקביל לפרק ‪.2‬‬ ‫‪.3‬‬

‫‪ .4‬תיכון בסיסי נתונים יחסיים (‪)Relational Database Design‬‬


‫א‪ -‬בקרת שלמות הנתונים (‪)Integrity Constraints‬‬
‫ב‪ -‬צורות נרמול הנתונים (‪)Normalization Forms‬‬

‫‪4‬‬ ‫מערכות בסיסי נתונים‬


‫תכנית הקורס ‪ -‬המשך‬

‫‪ .5‬שיקולים בניהול מערכות בסיסי נתונים‬


‫א‪ -‬מבני נתונים לעיבוד המידע (‪)Indexing & Hashing‬‬
‫ב‪ -‬אופטימיזציה של שאילתות (‪)Query Processing‬‬
‫ג‪ -‬בקרת בו זמניות (‪)Concurrency Control‬‬
‫ד‪ -‬בטיחות מידע ושלמות(‪)Security and Integrity‬‬
‫ה‪ -‬התאוששות (‪)Crash Recovery‬‬

‫‪5‬‬ ‫מערכות בסיסי נתונים‬


‫פרק ‪ - 1‬מבוא‬

‫‪6‬‬ ‫מערכות בסיסי נתונים‬


‫מערכת לניהול קבצים (‪)File-based Systems‬‬
‫מערכת לניהול קבצים היא אוסף של תכניות יישום המבצעות מטלות‬
‫עבור המשתמשים‪ .‬כל תכנית מגדירה ומנהלת את הנתונים שלה‪.‬‬

‫מגבלות‪:‬‬
‫‪ ‬כפילות נתונים‪ ,‬אי אחידות נתונים ( ‪data redundancy,‬‬
‫‪) inconsistency data‬‬
‫‪ ‬קושי באחזור\גישה נתונים (‪.)data accessing‬‬
‫‪ ‬שליפת מידע מכמה קבצים שונים בצורתם (‪.)data isolation‬‬
‫‪ ‬ריבוי משתמשים (‪.)multiple users‬‬
‫‪ ‬אבטחת המידע (‪.)data security‬‬
‫‪ ‬תקינות ושלמות המידע (‪.)data integrity‬‬

‫‪7‬‬ ‫מערכות בסיסי נתונים‬


‫גישת בסיס הנתונים‬
‫בסיס‪-‬נתונים [מסד נתונים] (‪ )database‬הוא מאגר של נתונים מקושרים‬
‫ביניהם ומכילים מידע על נושא מסוים‪.‬‬

‫מערכת לניהול בסיסי נתונים‬


‫(‪)DBMS – DataBase Management System‬‬
‫מערכת המאפשרת גישה נוחה ויעילה לבסיס הנתונים‪.‬‬

‫בנוסף לאכסון המידע (‪ )data storage‬ועיבודו ‪)data processing(,‬‬


‫מערכות ניהול בסיסי נתונים אמורות לספק כלים לתחזוקה ובקרה של‬
‫המידע‪ .‬בפרט‪:‬‬
‫• שמירת שלמות המידע‬
‫• הגנה על המידע (מפני נפילות מערכת או גישה לא מורשית)‬
‫• תמיכה בשיתוף מידע ע"י מספר גורמים‪.‬‬

‫‪8‬‬ ‫מערכות בסיסי נתונים‬


‫רמות הפשטה של הנתונים‬
‫• רמה פיסית (‪:)internal/physical level‬‬
‫הייצוג הפיסי של בסיס הנתונים; האופן שבו מאוחסן המידע‬
‫בבסיס הנתונים‪.‬‬

‫• רמה תפיסתית (‪:)conceptual level‬‬


‫אופן הייצוג הכולל של המידע בבסיס הנתונים; תאור תכולת הנתונים‬
‫המאוחסנים בפועל בבסיס‪-‬הנתונים‪ ,‬ומהם הקשרים ביניהם‪.‬‬
‫[בסיס הנתונים כאוסף מבנים פשוטים‪ .‬שמושי בעיקר למנהל מסד‬
‫הנתונים]‬

‫• רמת התצפית (‪:)view/external level‬‬


‫"מבט על" של בסיס‪-‬הנתונים מנקודת מבטו של משתמש הקצה;‬
‫תאור החלק של בסיס‪-‬הנתונים הרלבנטי לכל אחד מהמשתמשים‪.‬‬

‫‪9‬‬ ‫מערכות בסיסי נתונים‬


‫שלוש רמות הפשטה‬

‫משתמשים‬
‫תצפית ‪3‬‬ ‫תצפית ‪2‬‬ ‫תצפית ‪1‬‬ ‫(‪)end-users‬‬

‫מנהל בסיס הנתונים‬


‫רמה תפיסתית‬ ‫(‪)database administrator‬‬

‫מממש‪ ,‬מנהל המערכת‬


‫רמה פיסית‬ ‫(‪)system manager‬‬

‫‪10‬‬ ‫מערכות בסיסי נתונים‬


‫מופעים רגעיים ותבניות‬
‫תבנית (‪ -)scheme‬תיאור מבנה בסיס הנתונים‬
‫מופע רגעי ‪ )instance( -‬אוסף הנתונים בבסיס‪-‬הנתונים בכל‬
‫רגע זמן נתון‬

‫תבנית תצפית ‪2‬‬ ‫תבנית תצפית ‪1‬‬


‫‪id‬‬ ‫‪fname lname age salary‬‬ ‫‪identity lname branch‬‬

‫תבנית תפיסתית‬

‫‪id fname lname birth salary‬‬ ‫‪branchno‬‬

‫תבנית פיסית‬
‫‪11‬‬ ‫מערכות בסיסי נתונים‬
‫מודלים שונים לתיאור הרמה התפיסתית‬

‫שם‬ ‫‪ ‬מודלים מונחי אובייקטים‬


‫לקוח‬ ‫חשבון בנק‬ ‫– מודל ישויות קשרים‬
‫ת‪.‬ז‪.‬‬ ‫– מודל מידע סמנטי‬

‫מס‪.‬‬ ‫‪.‬ת‪.‬ז‬ ‫משפחה‬ ‫שם‬ ‫‪ ‬מודלים מונחי רשומות‬


‫חשבון‬
‫– המודל היחסי‬
‫– המודל ההיררכי‬
‫– מודל הרשת‬

‫‪12‬‬ ‫מערכות בסיסי נתונים‬


‫מופעים ותבניות‬

‫• תאור סטאטי של (מבנה) בסיס הנתונים‪:‬‬


‫תבנית (‪ :)scheme‬תיאור מבנה בסיס הנתונים (תלוי מודל)‪.‬‬
‫– תבנית פיסית (‪ )physical scheme‬לתיאור ברמת המימוש‬
‫– תבנית תפיסתית (‪ )conceptual scheme‬לתאור ברמת על‬
‫– תת‪-‬תבניות (‪ )subscheme‬לתאור תצפיות ספציפיות‪.‬‬

‫• תאור דינאמי של (המידע ב‪ )-‬בסיס הנתונים‪:‬‬


‫מופע (‪ :)instance‬אוסף הנתונים בבסיס‪-‬הנתונים בזמן נתון‪.‬‬

‫‪13‬‬ ‫מערכות בסיסי נתונים‬


‫ייצוגים של תבניות‬

struct STAFF {
Staff Scheme
int id_no;
id
int branch_no;
birthDate
char fname[15]; Details
fName SubScheme
char lname[15];
struct date_of_birth; lName

float salary; branchNo


salary Salary
struct STAFF *next; SubScheme
}
index id_no; index branch_no; /*indexes for STAFF */

14 ‫מערכות בסיסי נתונים‬


‫אי‪-‬תלות בנתונים‬
‫היכולת לשנות הגדרת סכימה ברמה מסוימת ללא פגיעה‬
‫בסכימה ברמה גבוהה יותר‪.‬‬
‫אנלוגיה‪:‬‬
‫מבני נתונים אבסטרקטים (‪ )Abstract Data Types‬בשפות תכנות‪.‬‬

‫– אי‪-‬תלות לוגית בנתונים (‪:)logical data independence‬‬


‫היכולת לשנות תבנית תפיסתית (למשל‪ ,‬כשהמבנה הלוגי של בסיס הנתונים‬
‫השתנה)‪ ,‬ללא צורך בעדכון המימוש האפליקטיבי‪.‬‬

‫– אי‪-‬תלות פיסית בנתונים (‪:)physical data independence‬‬


‫היכולת לשנות סכימה פיסית (למשל‪ ,‬לשיפור ביצועים)‬
‫ללא צורך בשינוי האפליקציה‪.‬‬

‫‪15‬‬ ‫מערכות בסיסי נתונים‬


‫שפות למערכות בסיסי נתונים‬
‫שפה להגדרת נתונים (‪:)Data Definition Language = DDL‬‬
‫שפה להגדרת תבנית בסיס הנתונים‪ :‬הגדרת הישויות הנחוצות ליישום‬
‫והקשרים בין הישויות השונות‪( .‬תיאור ברמת "ידע על“ ‪– metadata‬‬
‫ידע על ידע)‪ .‬ההגדרות בדר"כ נשמרות בקובץ מיוחד –‬
‫מילון נתונים (‪.)data dictionary‬‬

‫שפה לטיפול בנתונים (‪:)Data Manipulation Language = DML‬‬


‫שפה המאפשרת למשתמש גישה לנתונים וטיפול בהם (הכנסת נתונים‪,‬‬
‫ביטול נתונים‪ ,‬איחזור נתונים)‪.‬‬
‫• תלות ברמה התפיסתית (רמה פיסית = אלגוריתם‪,‬‬
‫רמות גבוהות = פשטות ויעילות)‬
‫• שפות פרוצדורליות ודקלרטיביות‪"( .‬איך" לעומת "מה")‬
‫• שפת שאילתות ‪query language‬‬

‫‪16‬‬ ‫מערכות בסיסי נתונים‬


‫רכיבים עיקריים של מערכות בסיסי נתונים‬

‫מנהל הקבצים (‪ :)File Manager‬ניהול הקצאות זיכרון ודיסק‪ ,‬ניהול‬ ‫‪‬‬


‫מבנה הנתונים לאכסון המידע בדיסק (תלוי מערכת הפעלה)‪.‬‬
‫מנהל בסיס הנתונים (‪ :)Database Manager‬ניהול הממשק בין‬ ‫‪‬‬
‫המידע בבסיס הנתונים לבין האפליקציה והשאילתות למערכת‪.‬‬
‫מעבד השאילתות (‪ :)Query Processor‬תרגום השאילתות לרמת‬ ‫‪‬‬
‫מנהל בסיס הנתונים (באופן שיאפשר מענה בזמן קצר; אופטימיזצית‬
‫שאילתות)‪.‬‬
‫קדם מהדר )‪ :DML (DML PreCompiler‬תרגום הצהרות ‪DML‬‬ ‫‪‬‬
‫לקריאות פרוצדורה (בתאום עם מעבד השאילתות)‪.‬‬
‫מהדר )‪ :DDL (DDL Compiler‬תרגום הצהרות ‪ DDL‬למילון הנתונים‬ ‫‪‬‬
‫(=טבלאות עם "ידע‪-‬על")‪.‬‬

‫‪17‬‬ ‫מערכות בסיסי נתונים‬


‫תאור סכמתי של מערכת בסיס נתונים‬
‫מתכנתים‬ ‫משתמשים‬ ‫‪DBA‬‬
‫תכניות יישום‬ ‫שאילתות‬ ‫תבניות בה”נ‬

‫קדם מהדר ‪DML‬‬ ‫מעבד שאילתות‬ ‫מהדר ‪DDL‬‬

‫קודי יעד (‪)object‬‬ ‫מנהל בה”נ‬


‫‪DBMS‬‬

‫מנהל קבצים‬

‫בה"נ ‪ +‬מילון נתונים‬

‫‪18‬‬ ‫מערכות בסיסי נתונים‬


‫? ?‬ ‫?‬
‫?‬
‫?‬
‫?‬ ‫?‬ ‫?‬
‫?‬ ‫?‬
‫‪19‬‬ ‫מערכות בסיסי נתונים‬

You might also like