טבלאות מדומות (Views)

Download Report

Transcript טבלאות מדומות (Views)

Slide 1

‫טבלאות מדומות )‪(Views‬‬

‫‪1‬‬


Slide 2

‫טבלה מדומה‬
‫•‬
‫•‬

‫•‬
‫•‬

‫נבדלת מטבלה בסיסית או טבלת מקור‬
‫רק הגדרה במבנה של שאילתת ‪ SQL‬רגילה נשמרת‬
‫בבסיס הנתונים‬
‫הטבלה ממומשת ע”י הפעלת השאילתא רק בעת‬
‫הצורך‬
‫יתרונות‪:‬‬
‫* יכולת הצגה פשוטה יותר של נתונים למשתמשים שונים‬
‫* רמה גבוהה של בקרה ואבטחת מידע‬
‫‪2‬‬


Slide 3

‫דוגמא‪:‬‬
‫• הצג את שמות הסטודנטים ואת עיר מגוריהם עבור‬
‫סטודנטים שלמדו בקורס ‪( c-200‬תכנות)‬
‫‪CREATE VIEW PROG-STUDENTS AS‬‬

‫‪3‬‬


Slide 4

‫דוגמא‪:‬‬
‫• לטבלת התוצאה נקרא ‪ PROG-STUDENTS‬ונאפשר‬
‫לראש המחלקה למדעי המחשב לגשת אליה‬
‫• כעת הוא רוצה לסנן את אותם סטודנטים שגרים בת”א‬
‫• הוא יבנה את השאילתא הבאה‪:‬‬

‫‪4‬‬


Slide 5

‫דוגמא‪:‬‬
‫• מאחורי הקלעים מתבצעת השאילתא‪:‬‬

‫‪5‬‬


Slide 6

‫שלבים בבניית טבלה מדומה‬
‫)‪(View Resolution‬‬

‫‪6‬‬


Slide 7

‫טבלאות מדומות אופקיות‬
‫)‪(Horizontal Views‬‬
‫• טבלה המבוססת על שאילתא הבוחרת עמודות‬
‫מטבלאות מקור ומכילה תנאי לבחירת שורות‬
‫• מאפשרת לתפור לכל משתמש טבלה מדומה המכילה‬
‫רק שורות המעניינות אותו‬

‫‪7‬‬


Slide 8

‫טבלאות מדומות אופקיות‬
‫)‪(Horizontal Views‬‬

‫‪8‬‬


Slide 9

‫דוגמא נוספת‬

‫‪9‬‬


Slide 10

‫טבלאות מדומות אנכיות )‪( Vertical Views‬‬
‫• טבלה המבוססת על שאילתא שבוחרת אוסף חלקי של‬
‫עמודות מתוך טבלת מקור ובוחרת את כל השורות‬
‫• מאפשרת לתפור לכל משתמש טבלה מדומה המכילה‬
‫רק עמודות המעניינות אותו‬

‫‪10‬‬


Slide 11

‫טבלאות מדומות אנכיות ‪ -‬דוגמא‬

‫‪11‬‬


Slide 12

‫טבלאות מדומות משולבות ‪ -‬שורות‬
‫ועמודות‬

‫‪12‬‬


Slide 13

‫טבלאות מדומות עם צירוף )‪(Joined Views‬‬
‫• היתרון‪ :‬ממבט המשתמש נדמה לו כי הוא עובד עם טבלה אחת פשוטה‬

‫‪13‬‬


Slide 14

SELECT *
FROM CS_GRADES
NAME

STUD_ID

MOSHE

105

MOSHE

COURSE_ID

SEMESTER

TERM

GRADE

G_SEM

Data Base

C-55

SUM2007

A

58

70

105

Programming

C-200

AUT2008

A

90

85

DAN

210

Programming

C-200

AUT2008

A

85

80

DAVID

200

Programming

C-200

AUT2008

B

78

50

14

C_NAME


Slide 15

‫טבלאות מדומות עם צירוף)‪(Joined Views‬‬
‫• נבקש כעת להציג רשימת שמות הסטודנטים שלמדו‬
‫‪ 1999‬ממוינת לפי שם סטודנט‪:‬‬
‫בסתיו ‪2008‬‬

‫‪AUT2008‬‬

‫‪15‬‬


Slide 16

‫טבלאות מדומות עם פונקציות מובנות‬
‫והקבצות )‪( Grouped Views‬‬
‫• מכילה עמודות שהן תוצאה של פונקציה מובנית כל שהיא‬

‫‪16‬‬


Slide 17

‫טבלאות מדומות עם פונקציות מובנות‬
‫והקבצות )‪( Grouped Views‬‬

‫‪17‬‬


Slide 18

‫עדכון טבלאות מדומות‬
‫)‪(View Updatability‬‬
‫• לעיתים נוצרות בעיות‪:‬‬

‫‪18‬‬


Slide 19

‫עדכון טבלאות מדומות ‪ -‬פתרון‬
‫• ‪CREATE VIEW HAIFA_STUDENTS AS‬‬

‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫* ‪SELECT‬‬
‫‪FROM STUDENTS‬‬
‫’‪WHERE CITY = ‘Hifa‬‬
‫‪WITH CHECK‬‬
‫‪OPTION‬‬
‫הפעם תתבצע בדיקה של השורה החדשה ורק אם היא‬
‫מקיימת את התנאי של השאילתא היא תוכנס לטבלה‬
‫‪19‬‬


Slide 20

‫ביטול טבלה מדומה )‪(Drop View‬‬

‫• הפרמטר ‪ CASCADE‬גורם לביטול גם טבלאות‬
‫מדומות אחרות המתייחסות לטבלה המדומה המבוטלת‬
‫• הפרמטר ‪ RESTRICT‬ימנע ביטול של טבלה מדומה‬
‫אם הוא מופיע בהגדרות של טבלאות מדומות אחרות‬
‫• ‪DROP VIEW HAIFA_STUDENTS CASCADE‬‬
‫‪20‬‬


Slide 21

‫תרגילים‬
‫•‬

‫•‬

‫•‬

‫נתונה הסכימה הטבלאית הבאה‪:‬‬
‫א‪ .‬יצרן (מספר יצרן‪ ,‬שם יצרן‪ ,‬עיר‪ ,‬כתובת‪ ,‬ארץ)‬
‫ב‪ .‬מחשב נייח (שם מודל‪ ,‬מספר יצרן‪ ,‬מהירות מעבד‪ ,‬גודל דיסק‪ ,‬גודל זיכרון‪,‬‬
‫גודל מסך‪ ,‬מחיר בדולרים)‬
‫ג‪ .‬מחשב נייד ( שם מודל‪ ,‬מספר יצרן‪ ,‬מהירות מעבד‪ ,‬גודל דיסק‪ ,‬גודל מסך‪,‬‬
‫גודל זיכרון‪ ,‬מחיר בדולרים)‬
‫ד‪ .‬מדפסות (שם מודל‪ ,‬מספר יצרן‪ ,‬סוג מדפסת‪ ,‬מהירות הדפסה‪ ,‬צורת חיבור‪,‬‬
‫מחיר בדולרים)‬
‫כתוב פקודות ‪ SQL‬להגדרת הטבלאות המדומות הבאות‪:‬‬
‫א‪ .‬טבלה מדומה המכילה את כל נתוני המחשבים הניידים כולל נתוני היצרן‬
‫ב‪ .‬טבלה מדומה המכילה את נתוני המדפסות והיצרנים שלהם עבור כל המדפסות‬
‫מסוג הזרקת דיו ובעלי מחיר של פחות מ‪ 1000 -‬דולר‬
‫ג‪ .‬טבלה מדומה המכילה את כל נתוני היצרן‪ ,‬מהירות המעבד‪ ,‬וגודל הדיסק‪ ,‬גודל מסך‪,‬‬
‫גודל זיכרון‪ ,‬ומחיר בדולרים עבור המחשבים הניידים והנייחים של יצרנים יפניים‬
‫כתוב שאילתא המציגה את הנתונים של כל סוגי המחשבים‪ ,‬נייחים וניידים‪ ,‬בעלי גודל‬
‫זיכרון של ‪ MB 128‬מתוך הטבלה המדומה שבסעיף ג’ שבשאלה הקודמת‪ .‬הצג את‬
‫תהליך שילוב השאילתות )‪ (View Resolution‬וכיצד נראית השאילתא שתבוצע‬
‫בסופו של דבר?‬
‫‪21‬‬