הקדמה היתרון במודל הטבלאי: המודל כקבוצה של יחסים (טבלאות)

Slides:



Advertisements
Similar presentations
Chapter 3: Relational Model
Advertisements

CS 319: Theory of Databases: C4
Ver 1,12/09/2012Kode :CCs 111,sistem basisdataFASILKOM Chapter 2: Relational Model Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan.
BRANCH-SCHEME (BRANCH-NAME, ASSETS, BRANCH-CITY)
Chapter 2 Relational Model (part II) Hankz Hankui Zhuo
©Silberschatz, Korth and Sudarshan3.1Database System Concepts Chapter 3: Relational Model Structure of Relational Databases Relational Algebra Extended.
©Silberschatz, Korth and Sudarshan3.1Database System Concepts Chapter 3: Relational Model Structure of Relational Databases Relational Algebra Tuple Relational.
Relational Algebra Lecture 2. Relational Model Basic Notions Fundamental Relational Algebra Operations Additional Relational Algebra Operations Extended.
CMSC424: Database Design Instructor: Amol Deshpande
CMSC424, Spring 2005 CMSC424: Database Design Lecture 4.
CMSC424: Database Design Instructor: Amol Deshpande
Database System Concepts, 5 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 2: Relational.
Relational Algebra Lecture 2. Relational Model Basic Notions Fundamental Relational Algebra Operations Additional Relational Algebra Operations Extended.
MySQL Tutorial (2) Introduction to Database. Banking Example branch (branch-name, branch-city, assets) customer (customer-name, customer-street, customer-city)
Database System Concepts, 5 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 2: Relational.
Midterm 2 Revision Prof. Sin-Min Lee Department of Computer Science San Jose State University.
CMSC424, Spring 2005 CMSC424: Database Design Lecture 3.
Slides adapted from A. Silberschatz et al. Database System Concepts, 5th Ed. Relational Model Database Management Systems I Alex Coman, Winter 2006.
Relational Model. 2 Structure of Relational Databases Fundamental Relational-Algebra-Operations Additional Relational-Algebra-Operations Extended Relational-Algebra-Operations.
International Computer Institute, Izmir, Turkey SQL Asst.Prof.Dr.İlker Kocabaş UBİ502 at
PMIT-6102 Advanced Database Systems By- Jesmin Akhter Assistant Professor, IIT, Jahangirnagar University.
Relational Model: Examples. Banking Example branch (branch_name, branch_city, assets) customer (customer_name, customer_street, customer_city) account.
Shahriar Pirnia Database پايگاه داده ها Shahriar Pirnia
Practice I SQL. Step 1: Create Database Create a database named Bank in SQL Server 2005 according to the following schema diagram.
1 Session 3 Welcome: To session 3- the first learning sequence “ Introduction to Relational Model“ Recap : In the previous learning sequences, we discussed.
Database System Concepts, 5 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 2: Relational.
3.1Database System Concepts Chapter 3: Relational Model Structure of Relational Databases Relational Algebra Tuple Relational Calculus Domain Relational.
1 Session 3 Welcome: To session 3-the fifth learning sequence “ Relational algebra “ Recap : In the previous learning sequences, we discussed the eight.
Relational Model By Dr.S.Sridhar, Ph.D.(JNUD), RACI(Paris, NICE), RMR(USA), RZFM(Germany) DIRECTOR ARUNAI ENGINEERING COLLEGE TIRUVANNAMALAI.
Advanced Database Systems By- Jesmin Akhter Assistant Professor, IIT, Jahangirnagar University.
©Silberschatz, Korth and Sudarshan3.1Database System Concepts Chapter 3: Relational Model Structure of Relational Databases Relational Algebra Extended.
Chapter 2: Relational Model. 2.2 Chapter 2: Relational Model Structure of Relational Databases Fundamental Relational-Algebra-Operations Additional Relational-Algebra-Operations.
Chapter 2: Relational Model. 2.2Unite International CollegeDatabase Management Systems Chapter 2: Relational Model Structure of Relational Databases Fundamental.
2.1 Chapter 2: Relational Model. 2.2 Chapter 2: Relational Model Structure of Relational Databases Fundamental Relational-Algebra-Operations Additional.
©Silberschatz, Korth and Sudarshan3.1Database System Concepts Chapter 3: Relational Model Structure of Relational Databases Relational Algebra Extended.
Database System Concepts, 5 th Ed. Bin Mu at Tongji University Chapter 2: Relational Model.
Relational Algebra HW2 Turn in as a hardcopy at the start of next class period. You may work this assignment in groups.
ASET Relational Algebra continues…. ASET Rename Operation Allows us to name, and therefore to refer to, the results of relational-algebra expressions.
IS 230Lecture 7Slide 1 Relational Algebra Lecture 8 Text Book – Chapter.
Chapter 3: Relational Model III Additional Relational Algebra Operations Additional Relational Algebra Operations Views Views.
Database System Concepts, 5 th Ed. ©Silberschatz, Korth and Sudarshan Chapter 2: Relational Model.
Database Design and the
Midlands State University Topic: Relational DB Model
Chapter 3: Relational Model
Relational Algebra.
Relational Model By Dr.S.Sridhar, Ph.D.(JNUD), RACI(Paris, NICE), RMR(USA), RZFM(Germany)
Session 3 Welcome: To session 3-the fifth learning sequence
Chapter 3: Relational Model III
Chapter 3: Relational Model
Chapter 3: Relational Model
Chapter 3: Relational Model
Introduction to Database
מודל היחסים (Relational Model)
The Relational Model Structure of Relational Databases
Chapter 2: Relational Model
Lecture 4 of 42 Relational Joins Wednesday, 30 January 2008
Introduction to Database
The Relational Model Structure of Relational Databases
Chapter 3: Relational Model
Chapter 3: Relational Model
Chapter 3: Relational Model
Chapter 3: Relational Model
Chapter 2: Relational Model
Relational Model.
Relational Algebra.
Chapter 3: Relational Model
Chapter 2: Relational Model
Schema Used in Examples
Chapter 3: Relational Model
Relational Model B.Ramamurthy 5/28/2019 B.Ramamurthy.
Presentation transcript:

הקדמה היתרון במודל הטבלאי: המודל כקבוצה של יחסים (טבלאות) אפשרות להציגו בצורה מתמטית בניית הוכחת משפטים המודל כקבוצה של יחסים (טבלאות) נתן לבצע פעולות על איברי הקבוצה

בסיס הנתונים לשיעור זה customer customer-city customer-street customer-name Harrison Main Jones Rye North Smith Hayes Curry Pittsfield park Lindsay Stamford Putnam Turner Princeton Nassau Williams Spring Adams Palo Alto Alma Johnson Woodside Sand Hill Glenn Brooklyn Senator Brooks Walnut Green customer

בסיס הנתונים לשיעור זה borrower depositor loan-number customer-name Jones L-23 Smith L-15 Hayes L-14 Jackson L-93 Curry L-11 Williams L-16 Adams account -number customer-name A-101 Johnson A-215 Smith A-102 Hayes A-305 Turner A-201 A-217 Jones A-222 Lindsay

הפעולות הבסיסיות בחירה select הטלה project איחוד union הפרש set difference מכפלה קרטזית Cartesian Product כינוי rename פעולות אונריות פעולות בינאריות פעולה אונרית

בחירה select, σ צורת כתיבה: σp(R) הפעולה: בחירת ה-n-יות המקיימות את הפרדיקט p מיחס R התוצאה: מתקבל יחס בעל אותן עמודות ואתן שורות או פחות

בחירה - דוגמא שאילתא: בחירת הלקוחות הגרים בעיר Harrison מהיחס customer פתרון: σcustomer-city = ‘Harrison’ (customer) היחס המוחזר: customer-city customer-street customer-name Harrison Main Jones Hayes

בחירה - המשך בפרדיקט p שבשאילתות מותר להשתמש ב: עבור ערך אלפא - בתי: סימני שוויון: < , >, ≤, ≥, ≠, = קשרים לוגיים: V, Λ, - עבור ערך אלפא - בתי: ההשוואה נעשית לפי סדר לקסיקוגרפי נכתבים מוקפים בגרש

דוגמאות בחירת פרטי ההלוואות שמספרם גדול מ-L-23 מיחס borrower הצגת פרטי הלקוחות שגרים ברחוב Main שבעיר Harrison

הטלה project, π צורת כתיבה: πa(R) הפעולה: בחירת עמודות a מיחס R

הטלה - דוגמא שאילתא: שמות הלקוחות הקיימים בבנק פתרון: πcustomer-name (customer) היחס המוחזר: customer-name Jones Smith Hayes Curry Lindsay Turner Williams Adams Johnson Glenn Brooks Green

הטלה - המשך הערות: שורות זהות מושמטות כאשר רוצים לבחור מספר עמודות רושמים את שמותיהן מופרדים בפסיקים

דוגמאות שמות הרחובות והערים בהם גרים לקוחות הבנק הצגת שמות הלקוחות שגרים בעיר Harrison

איחוד union, U צורת כתיבה: R2 U R1 הפעולה: פעולה בינארית הבוחרת את ה-n-יות המופיעות לפחות באחד מהיחסים R1, R2 דוגמא: שמות הלקוחות שלקחו הלוואה או יש להם חשבון בבנק (πcustomer-name (borrower)) U (πcustomer-name (depositor))

איחוד - המשך הערות: התוצאה: מוחזר יחס עם סכמה בלתי מוגדרת היחסים R1, R2 צריכים להיות בעלי אותו מבנה אותו מספר עמודות תחום של תכונה i ב- R1 זהה לתחום של תכונה i ב- R2 שורות זהות מופיעות פעם אחת בתוצאה התוצאה: מוחזר יחס עם סכמה בלתי מוגדרת לעמודות אין שמות א"א לבצע פעולת על היחס המוחזר (מלבד איחוד והפרש)

(πcustomer-name (customer)) - (πcustomer-name (borrower)) הפרש set difference, - צורת כתיבה: R2 - R1 הפעולה: פעולה בינארית הבוחרת את ה-n-יות המופיעות ביחס R1 ולא מופיעות ביחס R2 דוגמא: שמות הלקוחות שלא לקחו הלוואה (πcustomer-name (customer)) - (πcustomer-name (borrower))

הפרש - המשך הערות: התוצאה: מוחזר יחס עם סכמה בלתי מוגדרת היחסים R1, R2 צריכים להיות בעלי אותו מבנה אותו מספר עמודות תחום של תכונה i ב- R1 זהה לתחום של תכונה i ב- R2 התוצאה: מוחזר יחס עם סכמה בלתי מוגדרת לעמודות אין שמות א"א לבצע פעולת על היחס המוחזר (מלבד איחוד והפרש)

מכפלה קרטזית cartesian product, x צורת כתיבה: R1 x R2 הפעולה: פעולה בינארית המשלבת מידע בין שני יחסים R1, R2 בלי הגיון. מחזירה יחס עם n-יות המקיימות: { t, s | t R1, s R2} התוצאה: מתקבל יחס עם העמודות מ-R1 ומ-R2. השורות הן כל הצלבות של השורות ב-R1 עם אלו ב-R2

מכפלה קרטזית - דוגמא נתונים היחסים: הפעולה R1xR2 תחזיר: R2 R1 w v 3 4 5 Z y x 1 2 W v Z y x 3 1 4 5 2 R1xR2

מכפלה קרטזית - המשך מתקיים: מספר שורות ב-R1xR2 = מספר שורות ב-R1 * מספר שורות ב-R2 מספר עמודות ב-R1xR2 = מספר עמודות ב-R1 + מספר עמודות ב-R2 הערה: אם בשני היחסים יש עמודות עם שם זהה אזי בתוצאת המכפלה הקרטזית שמות העמודות המתאימות יהיו: שם העמודה.שם היחס

מכפלה קרטזית - דוגמא customer x borrower … Loan-number borrower. customer-name customer-city customer-street customer. customer-name L-17 Jones Harrison Main L-23 Smith … L-16 Adams Stamford Walnut Green

דוגמא הכתובת (רחוב ועיר) של בעלי הלוואה L-20

כינוי rename, ρ צורת כתיבה: ρx(R) הפעולה: פעולה אונרית שלוקחת יחס R ומשנה את שמו ל-x הערה: שם היחס משתנה עבור אותה שאילתה בלבד

כינוי - דוגמא נתון יחס R: R x ρr(R) R x R y x 2 1 4 3 r.y r.x R.y R.x

דוגמא שמות האנשים הגרים בעיר של Jones

פעולות נוספות צירופים חיתוך intersection חילוק division צירוף θ – theta join צירוף טבעי – natural join חיתוך intersection חילוק division

צירוף θ theta join, ⋈ צורת כתיבה: R1 ⋈ R2 הפעולה: פעולה המשלבת מכפלה קרטזית עם בחירה R1 ⋈ R2 = σθ(R1 x R2) הגדרת θ: גימום ("וגם) של אחד או יותר יחסי שוויון כלשהם (< , >, ≤, ≥, ≠, =) מבצע שוויון בין תכונה ב-R1 לתכונה ב-R2 θ θ

דוגמא מספרי החשבונות של הלקוחות שגרים ב-Harrison

צירוף טבעי natural join, ⋈ צורת כתיבה: R1 ⋈ R2 הפעולה: פעולה המשלבת מכפלה קרטזית עם בחירת ה-n-יות בעלות המשמעות והטלה כך שכל עמודה תופיע פעם אחת

צירוף טבעי – הגדרה פורמלית נתונים שני יחסים והסכמות שלהם: R1(S1), R2(S2) R1 ⋈ R2 = πS1US2(σR1.A1 = R2.A1 ∩ . . . ∩ R1.An = R2.An (R1 xR2) כאשר: S1 ∩ S2 = {A1, …, An}

צירוף טבעי - דוגמא נתונים היחסים: הפעולה R1 ⋈ R2 תחזיר: R2 R1 z y 5 2 9 7 6 y x 2 1 4 3 העמודה y תופיע פעם אחת בלבד z y x 5 2 1 6 יופיעו כל ה-n-יות בהן מתקיים: R1.y = R2.y

עוד טבלה בבסיס הנתונים... branch assets branch-city branch-name 9000000 Brooklyn Downtown 2100000 Palo Alto Redwood 1700000 Horseneck Perryridge 400000 Mianus 8000000 Round Hill 300000 Bennington Pownal 3700000 Rye North Town 7100000 Brighton

ועוד אחת... account balance account-number branch-name 500 A-101 Downtown 700 A-215 Mianus 400 A-102 Perryridge 350 A-305 Round Hill 900 A-201 Brighton A-222 Redwood 750 A-217

ועוד... loan amount loan-number branch-name 1000 L-17 Downtown 2000 Redwood 1500 L-15 Perryridge L-14 500 L-93 Mianus 900 L-11 Round Hill 1300 L-16

דוגמא שמות הלקוחות שבסניף הבנק שלהם ערך הנכסים גבוה מ-4,000,000

צירוף טבעי - הבעייתיות הבעיה: מידע עלול להיאבד הפתרון: למשל בשאילתא: πcustomer-name(customer ⋈ borrower) שמו של לקוח שלא לקח הלוואה לא יופיע הפתרון: צירוף טבעי עם שמירת מידע

צירוף טבעי עם שמירת מידע סימון: שמירת מידע מ-R1: R2 R1 שמירת מידע מ-R2: R1 R2 שמירת מידע משני הייחסים: R1 R2 הפעולה: מתבצע צירוף טבעי. אם קיימת שורה בטבלה ממנה רוצים לשמו מידע שאינה מיוצגת בצירוף הטבעי, היא נוספת. שאר העמודות בשורה זאת מתמלאות ב- null ⋈ ⋈ ⋈

צירוף טבעי עם שמירת מידע - דוגמא R1 y x 2 1 4 3 6 5 z y 3 2 7 6 9 8 R2 איך יראו היחסים הבאים? ⋈ R1 R2 ⋈ R1 R2 ⋈ R1 R2

חיתוך intersection, ∩ צורת כתיבה: R2 ∩ R1 הגדרה פורמלית: R1 ∩ R2 = R1 – (R1 – R2) R1 ∩ R2 = R2 – (R2 – R2)

חיתוך - המשך הערות: התוצאה: מוחזר יחס עם סכמה בלתי מוגדרת היחסים R1, R2 צריכים להיות בעלי אותו מבנה אותו מספר עמודות תחום של תכונה i ב- R1 זהה לתחום של תכונה i ב- R2 שורות זהות מופיעות פעם אחת בתוצאה התוצאה: מוחזר יחס עם סכמה בלתי מוגדרת

דוגמא שמות הערים בהן גם גרים לקוחות וגם קיים סניף בנק (2 פתרונות)

פעולת החילוק (מנה) division, ÷ פעולה זאת מתאימה לשאילתות המכילות את המילה "כל" הרעיון: נתונים היחסים R1(S1), R2(S2). S2 S1 . החילוק R1 ÷ R2 יחזיר יחס R(S), S = S1 – S2. הערכים שיופיעו הם ה-n-יות מ-R1 המופיעות עם כל אחת מה-n-יות ב-R2. U {לכל R1 ÷ R2 = {x | xy R1, y R2

פעולת החילוק - המשך הגדרה פורמלית: יהיו R1(S1), R2(S2) יחסים כך ש- S2 S1 . היחס R1 ÷ R2 הוא יחס בעל הסכמה S1-S2. n-יה t תמצא ב- R1 ÷ R2 אם ורק אם מתקיים: t נמצאת ב-πS1-S2(R1) . לכל n-יה t2 ב- R2 יש n-יה t1 ב- R1 המקיימת את שני התנאים: 1. t1 [S2] = t2 [S2] 2. t1 [S1-S2] = t [S1-S2] U

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

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