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

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


  • 66 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 l.jpg

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

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

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

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

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


Slide2 l.jpg

הגדרה מתמטית

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

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


Slide3 l.jpg

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

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

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

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

דוגמא נוספת:

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

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


Slide4 l.jpg

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)


Slide5 l.jpg

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

branch

customer

borrow

deposit


Slide6 l.jpg

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

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

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

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


Relational algebra l.jpg

בחירה

הטלה

מכפלה קרטזית

כינוי

איחוד

הפרש

חיתוך

צירוף טבעי

חילוק

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

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

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


Slide8 l.jpg

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

p(r)

בחירה (select)

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

branch-name=‘Aviv’(borrow)

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

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


Slide9 l.jpg

הטלה (project)

A1,A2,…An(r)

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

(A1,A2,…An R).

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

branch-name,customer-name(borrow)


Slide10 l.jpg

מכפלה קרטזית (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


Slide11 l.jpg

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

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

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

customer x deposit

תוצאת ביניים

תוצאה סופית


Slide12 l.jpg

x(r)

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

כינוי (rename)

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

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

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


Slide13 l.jpg

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

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

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

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

rs

איחוד (union)

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

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


Slide14 l.jpg

הפרש (difference)

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

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

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

r-s

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

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


Slide15 l.jpg

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

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

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

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

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

(depositd(deposit)))


Slide16 l.jpg

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

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

rs

חיתוך (intersection)

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

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


Slide17 l.jpg

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

rs

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

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

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


Slide18 l.jpg

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

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

deposit  branch)


Slide19 l.jpg

חילוק (division)

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

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

rs

R-S(r)

r s

דוגמא

s

r


Slide20 l.jpg

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

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

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


Slide21 l.jpg

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

  • {<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)

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


Slide22 l.jpg

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

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

  • אם 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))))

במקום


Slide23 l.jpg

דוגמאות

מצא את שם הסניף, מס’ הלוואה, שם הלקוח וסכום ההלוואה עבור חשבונות ההלוואה בסכום גדול מ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)) }


Slide24 l.jpg

מצא את שמות כל הלקוחות של סניף 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