Relational model l.jpg
Sponsored Links
This presentation is the property of its rightful owner.
1 / 24

מודל היחסים ( Relational Model ) PowerPoint PPT Presentation


  • 74 Views
  • Uploaded on
  • Presentation posted in: General

מודל היחסים ( Relational Model ). יחס ( relation ): טבלה הכוללת שורות ועמודות. תכונה ( attributes ): עמודה בטבלה. n יה ( tuple ): שורה בטבלה. בסיס נתונים יחסי ( relational database ) : אוסף של יחסים (טבלאות), כל אחד בעלת שם ייחודי. הגדרה מתמטית.

Download Presentation

מודל היחסים ( Relational Model )

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


מודל היחסים (Relational Model)

יחס (relation):טבלה הכוללת שורות ועמודות.

תכונה (attributes): עמודה בטבלה.

nיה (tuple):שורה בטבלה.

בסיס נתונים יחסי (relational database) : אוסף שליחסים (טבלאות), כל אחד בעלת שם ייחודי.


הגדרה מתמטית

יחס הכולל n תכונות (עמודות) הוא תת-קבוצה של המכפלה הקרטזית של תחומי התכונות המתאימות:

D1D2D3…Dn-1 Dn


תבנית בסיס הנתונים

שם תבנית + תכונות:

Deposit-scheme=(branch-name, account-number, customer-name, balance)

הגדרה מלאה של תבנית כוללת גם תחומי התכונות.

דוגמא נוספת:

Customer-scheme=(customer-name, street,customer-city)

התכונה customer-nameהמשותפת לשתי התבניות היא הדרך לקשר nיות בין יחסים שונים


number

balance

street

city

deposit

name

city

name

assets

customer

branch

borrow

amount

number

מערכת הבנק

  • תבניות היחסים

  • Branch=(branch-name, assets, branch-city)

  • Customer=(customer-name, street,customer-city)

  • Deposit=(branch-name, account-number, customer-name, balance)

  • Borrow=(branch-name, loan-number, customer-name, amount)


דוגמאות ליחסים - מערכת הבנק

branch

customer

borrow

deposit


שפות שאילתות (query languages)

  • שפות פורמליות:

  • אלגברת יחסים - שפה פרוצדורלית.

  • תחשיבי יחסים - שפות לא פרוצדורלית.


בחירה

הטלה

מכפלה קרטזית

כינוי

איחוד

הפרש

חיתוך

צירוף טבעי

חילוק

אלגברת היחסים (relational algebra)

פעולות נוספות

פעולות בסיסיות


הבחירה פועלת על היחס rבעל תבנית R ומגדירה יחס חדש בעל תבנית R הכולל רק nיות המקיימות את הפרדיקט p.

p(r)

בחירה (select)

בחר את חשבונות ההלוואה בסניף ‘Aviv’

branch-name=‘Aviv’(borrow)

  • ניתן לצרף פרדיקטים אחדים באמצעות  או 

branch-name=‘Aviv’amount>1200(borrow)


הטלה (project)

A1,A2,…An(r)

ההטלה פועלת על היחס rבעל תבנית Rומגדירה יחס חדש הכולל את העמודות המתאימות לתכונות A1,A2,…An.

(A1,A2,…An R).

מצא שמות הלקוחות ושמות הסניפים בהם יש להם חשבונות הלוואה

branch-name,customer-name(borrow)


מכפלה קרטזית (cartesian product)

rs

המכפלה הקרטזית של שני יחסים rו s בעלי תבניות (R=(A1,A2,…An) S=(B1,B2,...Bm מגדירה יחס חדש בעל תבנית (A1,A2,…An,B1,B2,...Bm) הכולל את כל השרשורים האפשריים של nיות מ rעםnיות מs.

r

s

rxs


מצא לכל בעל חשבונות חיסכון את שמו, עיר המגורים וסכום החיסכון שלו

customer.customer-name,customer-city,balance

(customer.customer-name= deposit.customer-name (customerdeposit))

customer x deposit

תוצאת ביניים

תוצאה סופית


x(r)

הכינוישל יחס rמגדיר יחס חדש xהזהה ליחס r.

כינוי (rename)

מצא את שמות כל הלקוחות הגרים בעיר שבה גר ‘morag’

customer.customer-name (customer.customer-city=cust2.customer-city

(customercust2(customer-city(customer-name=‘morag’(customer)))))


  • האיחוד של שני יחסים r ו s מגדיר יחס חדש שתבניתו זהה לתבנית של שני היחסים וכולל את איחוד היחסים r ו s.

  • תבניות היחסים של r ו sחייבות לכלול אותו מספר תכונות.

  • התחום של התכונה הiבשתי התבניות חייב להיות זהה.

  • מצא את שמות כל הלקוחות של סניף Hamerkaz (בעלי חשבונות חיסכון או חשבונות הלוואה)

rs

איחוד (union)

customer-name(branch-name=‘Hamerkaz’(borrow)) 

customer-name(branch-name=‘Hamerkaz’(deposit))


הפרש (difference)

ההפרש של שני יחסים r ו sמגדיר יחס חדש שתבניתו זהה לתבנית של שני היחסים וכולל את הפרש היחסים (במובן של תורת הקבוצות).

התנאי על תבניות היחסים - כנ”ל.

מצא את שמות הלקוחות של סניף Hamerkazשיש להם חשבון חיסכון אך לא חשבון הלוואה.

r-s

customer-name(branch-name=‘Hamerkaz’(deposit)) -

customer-name(branch-name=‘Hamerkaz’(borrow))


מצא את סכום החיסכון המרבי

שאילתת ביניים:כל סכומי החיסכון הקטנים מסכום חיסכון כלשהו

deposit.balance(deposit.balance<d.balance (depositd(deposit)))

השאילתה הסופית

balance(deposit) - deposit.balance(deposit.balance<d.balance

(depositd(deposit)))


  • החיתוך של שני יחסים r ו sמגדיר יחס חדש שתבניתו זהה לתבנית של שני היחסים וכולל את חיתוך היחסים (במובן של תורת הקבוצות).

  • מצא את שמות הלקוחות של סניףHamerkazשיש להם גם חשבון הלוואה וגם חשבון חיסכון.

rs

חיתוך (intersection)

customer-name(branch-name=‘Hamerkaz’(deposit)) 

customer-name(branch-name=‘Hamerkaz’(borrow))


צירוף טבעי (natural join)

rs

הצירוף הטבעי של שני יחסים r ו sמגדיר יחס חדש, שתבניתו היא איחוד תבניות היחסים, וכולל את כל השרשורים האפשריים של nיות מ rעםnיות מsשערכיהן זהים בכל התכונות המשותפות.

מצא שמות הלקוחות בעלי חשבון חיסכון ואת ערי מגוריהם

customer-name,customer-city(deposit customer)


מצא שמות הסניפים שיש להם לקוחות בעלי חשבונות חיסכון הגרים ב’Haifa’ ואת ערכי נכסיהם

branch-name,assets(customer-city=‘Haifa’(customer )

deposit  branch)


חילוק (division)

החילוק של r ו sבעלי תבניות R ו S בהתאמה (SR) מגדיר יחס חדש, שתבניתו היא R-S .

rs היא תת הקבוצה המקסימלית של שמכפלתה הקרטזית ב s מהווה תת קבוצה של r.

rs

R-S(r)

r s

דוגמא

s

r


מצא שמות הלקוחות שיש להם חשבונות חיסכון בכל הסניפים בעיר ‘Jaffa’

customer-name,branch-name(deposit) 

branch-name(branch-city=‘Jaffa’ (branch))


  • ביטוי בתחשיב יחסים לפי תחומים הוא מהצורה

  • {<x1,x2…xn >| P(x1,x2…xn )}

  • כאשר x1,x2…xnמייצגים משתני תחום. Pהיא נוסחה המורכבת מאטומים. משתנה תחום נקרא משתנה קשור אם הוא מופיע בצמוד לכמת  או . אחרת הוא נקרא משתנה חופשי.

  • לאטום בתחשיב יחסים לפי תחומים יש אחת מהצורות הבאות:

  • כאשר rהוא יחס על n תכונות ו x1,x2…xnהם משתני תחום או קבועים.

  • x  y כאשר xו yמשתני תחום , ו  הוא אופרטור השוואה (<, , ,= , >). נדרוש כי xו y הם בעלי תחומים שניתנים להשוואה באמצעות .

  • x  cכאשר xמשתנה תחום,  הוא אופרטור השוואה ו cהוא קבוע מהתחום של התכונה שעבורה x הוא משתנה תחום.

<x1,x2…xn> r

תחשיב יחסים לפי תחומים(domain relational calculus)

הגדרה פורמלית


  • נוסחה בנויה מאטומים בעזרת הכללים הבאים:

  • אטום הוא נוסחה.

  • אם Pהוא נוסחה אז גם ¬Pו (P) .

  • אם Pו Qהם נוסחאות אזי גם P  Q , P Q, P  Q .

  • אם (P(xהוא נוסחה כאשר xהוא משתנה תחום אזי

.הם נוסחאות x (P(x) ) x (P(x) )

a,b,c(P(a,b,c))

לקיצור הסימון נהוג לכתוב

a(b( c(P(a,b,c))))

במקום


דוגמאות

מצא את שם הסניף, מס’ הלוואה, שם הלקוח וסכום ההלוואה עבור חשבונות ההלוואה בסכום גדול מ1200

{<b,l,c,a> | < b,l,c,a >  borrow  a>1200}

מצא את שמות הלקוחות בעלי חשבונות ההלוואה בסכום גדול מ1200

{<c> | b,l,a(<b,l,c,a>  borrow  a>1200)}

מצא את שמות הלקוחות בעלי חשבונות ההלוואה בסניף merkaziואת עיר מגוריהם

{<c,t> |  l,a (< ‘merkazi’,l,c,a>borrow

 y (<c,y,t>customer)) }


מצא את שמות כל הלקוחות של סניף merkazi (בעלי חשבון הלוואה או חשבון חיסכון או שניהם)

{<c> |  l,a (< ‘merkazi’,l,c,a>borrow)

 a,n (<‘merkazi’,a,c,n>deposit)}

מצא את שמות הלקוחות שיש להם חשבון חיסכון בכל הסניפים שבעיר ‘jaffa’

{<c> |  x,y (<x,y, ‘jaffa’>branch 

 a,n (<x,a,c,n>deposit ) )}

הערה: ניתן להתגבר על המקרה שבו אין אף סניף ב Jaffa

{<c> |  x,y (<x,y, ‘jaffa’>branch) 

 x,y (<x,y, ‘jaffa’>branch 

 a,n (<x,a,c,n>deposit ) )}


  • Login