360 likes | 585 Views
בסיסי נתונים - חומר רקע -. נושאים במצגת זו: בסיסי הנתונים אפיון נרמול נתונים עיצוב בסיסי נתונים. בסיסי נתונים - מבוא -. 3. בסיס הנתונים במחזור החיים. מודל ה← Model View Controller אפיון בסיס הנתונים= ERD : אלו נתונים יש לשמור ה← Class Diagram הופך להיות ERD
E N D
בסיסי נתונים - חומר רקע -
נושאים במצגת זו: • בסיסי הנתונים • אפיון • נרמול נתונים • עיצוב בסיסי נתונים
בסיסי נתונים - מבוא - 3
בסיס הנתונים במחזור החיים • מודל ה← Model View Controller • אפיון בסיס הנתונים=ERD: אלו נתונים יש לשמור • ה←Class Diagram הופך להיותERD • עיצוב: ה← ERD הופך להיות RDBMS • לוגי: המרה של ERD אל טבלאות "טהורות/אופטימאליות" • פיסי: קישור אל טכנולוגיה "שיקולי עלות/תועלת" • לדוגמא: איחוד טבלות הקודים
התפתחות של בסיסי הנתונים (1) • תחילת שנות ה←60 : מערכות בסיסיות על גבי סרטים • שנות ה←60 : FMS - File management Systems • Vsam, Btrieve • התוכניות ניגשות ומתייחסות למבנה הלוגי • המבנה הפיסי מוגדר בתוכניות • סוף שנות ה←60 : DBMS - Database managementsystems • מבנה הירארכי של עץ הפוך • שנות ה←70 : Network Data Model, תקן ANSI • רשת לתיאור הקשרים, סכמה פנימית ותת←סכמה חיצונית, שפה נפרדת להגדרה וטיפול של הנתונים • חסרונות: • מורכבות לטיפול וניווט • קשיחות בפני שינויים • נדרשת רמה גבוהה של מתכנתים
התפתחות של בסיסי הנתונים (2) • שנות ה←80 : המודל הטבלאי The Relational Data Model • RDBMS - Relational DB Systems • Oracle, MS SQL, Informix • הפרדה ברורה בין המבנה הפיסי והלוגי • המבנה הפיסי מוגדר בתוכניות • שנות ה←90 : OBMS - Object Oriented DBMS • ניהול אוביקטים: תמונות, קול
מערכות ניהול קבצים FMS - File management Systems • תו, שדה, רשומה, קובץ • הפיתוח של תוכנית היישום: • הגדרת מבנה הקובץ • כתיבת הלוגיקה העסקית • הידור • ריצה ← הפיקוח מועבר אל FMS אשר מחזיר את התוצאה • בעיות: • כול תוכנית מחזיקה הגדרת הקובץ • רמה נמוכה של תמיכה בשינויים: שינוי בקובץ גורר שינוי בתוכנית • פתרון דרך קובץ נוסף הביא לכפילות נתונים • FMS מנהל קובץ אחד, לא את הקשרים ביטול אב ללא הבנים שלו
מערכות לניהול בסיסי נתונים (1) DBMS - Database Management Systems • קובץ ← מושג פיסי • טבלה ← מושג לוגי ← בכל קובץ טבלה אחת או יותר • בסיס נתונים ← אוסף טבלאות קשורות בקשרים לוגיים כלשהם • המאפשר את שיתוף הנתונים בין היישומים השונים • בסיס הנתונים מכיל גם טבלאות המתארות את מבנה בסיס הנתונים עצמו • ניהול הקשרים=יחסים=Relational בין הטבלאות (בניגוד ל←FMS) • מערכת RDBMS ← כול הטבלאות כאוסף אינטגרטיבי↔אחד בעל קשרים • הגדרת נתונים Data Definition← לוגית ופיסית ← חיצונית ליישום • טיפול בנתונים D. Manipulation← גישה אל בסיס הנתונים וביצוע פעולות אילוצי אמינות Integrity Constrains← הבאים להבטיח אמינות בסיס הנתונים
מערכות לניהול בסיסי נתונים (2) DBMS - Database Management Systems • מערכת RDBMS ← כול הטבלאות כאוסף אינטגרטיבי↔אחד בעל קשרים • הגדרת נתונים Data Definition← לוגית ופיסית ← חיצונית ליישום • טיפול בנתונים D. Manipulation← גישה אל בסיס הנתונים וביצוע פעולות • אילוצי אמינות Integrity Constrains← להבטיח אמינות בסיס הנתונים • מערכת אחת מרכזית: • המנהלת את כול הפניות אל בסיס הנתונים • מכירה את כול הקשרים • ניהול ההגדרות של הנתונים באופן מרכזי ובלתי תלוי בתוכניות
מודל העבודה שלRDBMS(3) מודל ההפשטה שלANSI/SPARC ↔ DB
DDL(4) • הגדרת טבלה: שם חד←משמעי חד←חד ערכי • הגדרת העמודות: שם חד←משמעי חד←חד ערכי • הגדרת סוג הנתוניםTYPE • המפתח העיקרי Primary Key • תחומים של ערכים מותרים • קשרים לוגיים בין הטבלאות • כללי הגנה על הטבלאות והנתונים • פרוצדורות בסיסDatabase Procedures • מזניקים Triggers
גישה אל בסיס הנתונים (1) • גישה ישירה של תוכנית SQL • בדיקה תחבירית PARSING←סמנטית VALIDATION← אופטימיזציה←תוכנית גישה←ביצוע←החזרת ערך • גישה מתוכנית דור 3 • פיתוח←קדם הידור CALL←גישה ישירה/מודול הגישה←אחסון המודול←הידור המארחת←קישור לשגרות RDBMS • גישה מתוכנית דור 4 • VB, MAGIC, DISCOVERER ← נבנו מראש עם היכולת לעבוד עם בסיס הנתונים • גישה מ←מחוללי דוחות/שאילתות • DISCOVERER, BUSINESS OBJECTS • גישה משרת WEB • א' ←הפעלת דפדפן הזדהות, מילוי טופס HTML העברה אל שרת ה←WEB ב← HTTP • ב' ← השרת בונה שגרה SQL ושולח בממשק מיוחד אל שרת בסיס הנתונים • ג' ← גישה ישרה • ד' ← החזרה לשרת ה←WEB ← אל היישום המבקש ← היישום אורז המענה ב←HTML • ה' ← דף ה←HTML משוגר בפרוטוקול HTTP אל הדפדפן
גישה אל בסיס הנתונים ← בדיוק קורה ? (2) • א' ←הגדרת בסיס הנתונים DDL • ב' ← כתיבה של תוכנית היישום והידורה: שיבוץ SQL, אחסון מודול הגישה בקטלוג, LINK • לתוכנית היעד (Object) • ג' ← הפעלת התוכנית← טעינה לזיכרון • ד' ← בקשה לאחזור (לעתים מטבלה מדומה) על ידי ה← CALL • ה' ← בדיקה מול הקטלוג • ו' ← שליפת מודול הגישה (זה משלב ב') • ז' ← הפעלה של תוכנית הגישה לעבודה מול FMS • ח' ← FMS מפעילה שגרות מערכת ההפעלה לגישה אל בסיס הנתונים • ט' ← העברה של ה←BLOCK אל I/O Bufferלאיתור הנדרש על ידי מודול הגישה • י' ← מיפוי מהטבלה המדומה אל בסיס הנתונים • י"א ← החזרת נתונים אל שטח התקשורת בין המערכת הטבלאית לתוכנית היישום כולל קוד המבטא סטטוס: "0" = נמצא הערך • י"ב ← החזרת הפיקוח את התוכנית. אם הסטטוס נמצא מתאים, מתחיל העיבוד על הערך אשר הוחזר
יתרונות RDMS • Logical and Physical Independence = • Any future change is Open to addition but Close to change • (no need to check previous code) • Data Sharing • Data Integrity • Data Availability • Standardization • Flexibility to changes • Data Security • Transaction processing • Concurrent Update
חסרונות RDMS • Complexity of Maintenance • Cost • Hardware Resources • Sensitivity - Dependency of the enterprise • Complexity of recovery
אי תלות פיסית ולוגית אפיון בסיסי נתונים Data Model Entity Relationship Diagram Entity Relationship Model מודל פתוח סגור
מודל הנתונים • תפישה רעיונית המבטאת מציאות תודות להפשטה • או • מסגרת לוגית המתארת את המציאות • הגדרהM = {Structure, Constrains, Operators}: • כלי תפישתי המשמש לתיאור המציאות באמצעות אוסף כללים המגדירים: • מבנה הנתונים← ישויות, תכונות, קשרים • האילוצים אשר על הנתונים לקיים← חד ערכיות, ערכים, תחומים... • האופרטורים לעדכון ושינוי הנתונים← פעולות על פי חוקיות שליפה של כול >3 • בניה בעזרת תרשים ERD במספר שלבים: • הגדרה של הישויות וכול פרטי המידע • הקשרים • ישויות וקשרים מורכבים • נרמול
אפיון ועיצוב בסיס הנתונים • שלב העיצוב התפישתי • אפיון הדרישות: בניה של מודלים מקומיים ושילוב שלהם למודל • רלוונטי הכולל רק חלק מאינסוף הנתונים במציאות • שלב העיצוב הלוגי • תכנון של סכמת DBMS מסוים תוך התחשבות באילוצים • שלב העיצוב הפיסי • תכנון פיסי של העיצוב הלוגי על פי יעילות, אחסון, שיטת גישה, הקבצת נתונים, חלוקת טבלה ל←Partitions
Entity Relationship Data Model(1) • ישות = מייצגת אוביקט • חזקה = קיומה העצמאי בלתי תלוי באחרת אב • חלשה = קיומה העצמאי תלוי באחרת בן • תכונה Attribute = מאפיין Characteristic של האוביקט • פשוטה = אינה ניתנת לחלוקה • מורכבת = ניתנת לחלוקה למרכיבים כתובת, שם • מחושבת = ערכה הוא תוצאה של חישוב נתונים אחרים גיל • נתון מובנה = מבנה קבוע • נתון לא מובנה = צרופה תמונה, קובץ • סוג נתונים TYPE • שלם Integer • עשרוני Decimal • מחרוזת Character • בוליאני Boolean
Entity Relationship Data Model(2) • תכונה Attribute = מאפיין Characteristic של האוביקט • ערך Value • ערך חובה Mandatory • ערך בודד או מרובת ערכים Single or Multiple • מרחב ערכים Domain = סוג, שיטת ייצוג, אופרטורים רק כפל • טווח • רשימה סופת • סוג הנתונים ת.ז. • בעיות בשיטה זו: • הוספה מאוחרת של תכונות • מתי לייצג אוביקט מסוים כישות
Entity Type קבוצת ישויות • קבוצה או סוג ישות = אוסף (מופעים (Occurrences • ישויות מאותו סוג הנבדלות בערכי התכונות • קבוצת ישות מיוצגת כטבלה (אחת או יותר) • תכונה = עמודה • ישות = שורה • ישות על ← ישות כללית המכילה תכונות המשותפות • לכול תת הישויות שלה. רכבים←רכבי שטח+רכבי כביש • ← כול תת ישות מוסיפה תכונות ייחודיות לה, • ללא חפיפה של תכונות (על↔תת) • ← ישות על שייכת רק לתת ישות אחת
מפתח Key • מפתח אפשרי Candidate Key ← • זיהוי חד ערכי Unique ID • מינימליות/אי כפילות Non redundancy • לא ניתן לסלק אף לא תכונה אחת מבלי להרוס את התנאי הקודם • מפתח ראשי Primary Key ← מתוך האפשריים • פשוט = תכונה אחת • מורכב = כמה תכונות לשם הגדרה חד ערכית קורס+סמסטר+סטודנט←ציון בקורס • מפתח זר Foreign Key ← [לשם הגדרה של קשרים] • תכונה או יותר המשמשת מפתח ראשי בקבוצה אחרת • ערכי המפתח הזר הם תת קבוצה של ערכים בקבוצה השניה או NULL
קשרים Relations ← (1) יחס בעל משמעות בין ישויות שונות • פונקציונאליות הקשר • חד←חד ערכי מנהל←מחלקות • חד←רב ערכי עובדים←מחלקות • רב←רב ערכי סטודנטים←קורסים • קרדינליות הקשר ← מספר ישויות מינימלי ומרבי (0,30) • חייבת ______ • לא חייבת ....... ← בצד הישות החזקה • קשר נושא מידע ← ציון ישות הקשר בין ישויות • בכול קשר M:N קשר זה מייצר שני 1:M
קשרים Relations ← (2) יחס בעל משמעות בין ישויות שונות • קשר רקורסיבי←מחבר קבוצת ישויות אל עצמה מנהלים↔עובדים • קשר ישות על הוא גם של תת הישויות שלה • קשר של תת השיות הוא של עצמה בלבד • יחס בחירה בין קשרים Or Relation • בנקודת זמן אחת מתקיים רק קשר אחד • חיי ישות לאורך זמן ← • להשתמש בתאריך עד או מ כדי לייצר היסטוריה • העברת קשרים ← קשר התלוי בערכים אינו ניתן להעברה • הורה↔ילד
סימנים ERD = הכיתוב בסכמה • # ← מפתח PK = מפתח זר = FK • * ← אינו יכול לקבל NULL = NN או M • l ← ישות חלשה • ← קשר רב • ( ← יחס בחירה "או" • ←קשר שאינו ניתן להעברה • O ← Optional V
נרמול נתונים Data Normalization תהליך המייצר טבלאות המייצגות את המודל התפישתי באופן מדויק ואמין ללא כפילות או אנומליה
אנומליה ← סתירה paradox בנתונים • ההוספה Insertion • כאשר מבקשים להוסיף לטבלה נתונים ללא מפתח • הביטול Deletion • כאשר בעת ביטול שורה אובדים נתונים נוספים • העדכון Update • כאשר עדכון הנתונים יוצר פרדוקס/חוסר עקביות עדכון חלקי • הפתרון: פירוק טבלאות ← תוך שימור המידע והתלויות
חוקי הנרמול בשלב האפיון • NF1 ← כול תכונה יכולה לקבל ערך אחד, ללא קבוצות/נגררות • אין תכונות מחושבות • סטודנט←קורסים הופך להיות סטודנט←סטודנט/לקורס • NF2 ← כול תכונה שאינה המפתח חייבת להיות תלויה בכול המפתח • מספור ח←ן+מספר ספק • NF3 ← כול תכונה שאינה מפתח חייבת להיות תלויה אך ורק במפתח • עובדים, ת.ז., שם, מס' מחלקה, שם מחלקה ← להוסיף טבלה מס' מחלקה, שם מחלקה • BCNF ← אסור כי תהיינה תלויות במפתח מורכב
עיצוב בסיסי נתונים ↓ המעבר לטבלאות
העיצוב ← תיאור ERD על ידי Relational Data Model • המטרה: ייצוג הנתונים באופן המאפשר תרגום לבסיס נתונים • טבלה = קבוצת ישויות • שורה = ישות • תכונה = עמודה • הקשרים הן העמודות הזהות בטבלאות השונות
חוקי הנרמול בשלב העיצוב • NF4 ← קבוצת ישויות לא תכיל תלויות רב ערכית • אסור כי תכונה A קובעת קבוצת ערכים B • NF5 ← מתקיימת אם לא ניתן לפרק קבוצת הישויות לקבוצות קטנות יותר ולאחד שוב תוך שמירה על הקשרים והמידע • כלומר, אם ניתן לפשט לטבלאות קטנות ← יש לעשות כן
המעבר לטבלאות • מיפוי הישויות הפשוטות לטבלה • מיפוי תכונות לעמודות • הכנה של נתוני דמה (לשם בדיקות, בעיקר מצבי קיצון) • מיפוי מפתחות ראשיים • הפיכת קשרים למפתחות זרים • תרגום קשתות • תרגום ישויות על ו←תת ישויות • לטבלה אחת מאוחדת ← ככול שיש יותר תכונות, קשרים משותפים • יותר קשרים לישות העל, רוב בדיקות התקינות לישות העל • מרבית השליפות מאחזרות את כול נתוני תת הישויות • לטבלאות נפרדות ← • יישום באמצעות קשת ("או")
RDBMS • יתרונות • SQL • שירותים מתקדמים • תהליך עיצוב פורמלי • חסרונות • ייצוג ישויות רק על ידי טבלאות • ייצוג קשרים רק על ידי ערכים • הומוגניות • מגוון מצומצם של סוגי נתונים • מגוון מצומצם של אילוצים • מגוון מצומצם של פעולות על הטבלאות
בסיסי נתונים מוכווני עצמים Object Oriented Databases
ODBMS • השימוש באוביקט המוכלל פותר חלק מן המגבלות של RDBMS • יתרונות ההורשה • ניווט גמיש יותר