1 / 18

אילוצי שלמות

אילוצי שלמות. אילוצי תחום מפתחות ומפתחות זרים טריגרים triggers תלויות פונקציונליות. אילוצי תחום Domain Constraints. הגדרה של תחומי משתנים בתבניות יחסים מאפשרת לבדוק תקינות ערכים מוזנים לבה”נ וכן לבדוק תקינות של שאילתות. הגדרות תחום ב SQL. char (n) bit (n) numeric (n,m)

errin
Download Presentation

אילוצי שלמות

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. אילוצי שלמות • אילוצי תחום • מפתחות ומפתחות זרים • טריגרים triggers • תלויות פונקציונליות

  2. אילוצי תחום Domain Constraints הגדרה של תחומי משתנים בתבניות יחסים מאפשרת לבדוק תקינות ערכים מוזנים לבה”נ וכן לבדוק תקינות של שאילתות. הגדרות תחום ב SQL • char (n) • bit (n) • numeric (n,m) • integer • smallint • real, double precision • date • time • מחרוזת תווים אלפאנומריים באורך n. • מחרוזת ביטים באורך n. • מספר עשרוני בן nספרות, מתוכן mאחרי הנקודה. • מספר שלם, התופס מלת מחשב. • מספר שלם התופס חצי מלת מחשב. • ממשי, ממשי עם דיוק כפול. • שדה היכול להכיל רק ערכים חוקיים של תאריך. • שדה היכול להכיל רק ערכים חוקיים של שעה ביממה.

  3. אילוצי שלמות קישורrefernetial integrity constrints יהיו rוsיחסים עם תבניות Rו Sשיש ביניהן תכונות משותפות. nיות בrשאינן מצטרפות בפעולת הצירוף הטבעי לאף nיה בsנקראות nיות מדולדלות (dangling). מפתח זר (foreign key) - תכונה או קבוצת תכונות בתבנית כלשהי המהווה מפתח קביל בתבנית אחרת.

  4. הגדרת מפתחות ראשיים, קבילים וזרים ב SQL בSQLהגדרת שלמות קישור נעשית בהגדרת תבנית היחסים, בדומה להגדרת מפתחות ראשיים ומפתחות קבילים. primary key unique key foreign key

  5. אילוצים על ערכי דמה (null) תכונה שחייבת להכיל ערך קביל, מוכרזת כ not null. כל תכונה השייכת למפתח קביל כלשהו חייבות להיות מוכרזת כ not null.

  6. create table customer (customer-name char(20) not null, street char(30), customer-city char(30), primary key (customer-name)) create table branch (branch-name char(15) not null, assets integer, branch-city char(30), primary key (branch-name)) create table deposit (branch-name char(15), account-number char(10) not null, customer-name char(20) not null, balance integer, primary key (account-number,customer-name), foreign key (branch-name) references branch, foreign key (customer-name) references customer ) הגדרה של חלק מתבניות מערכת הבנק

  7. טריגרים triggers • כללים המגדירים פעולות שיש לבצען באירועים מיוחדים. • הטריגר חייב להגדיר: • המאורע (מאורעות) המפעיל (מפעילים) את הכלל. • התנאי שקובע אם יש לבצע את הפעולה. • הפעולה בה יש לנקוט, בד"כ סדרת פעולות SQL. • לדוגמא (התחביר סתמי) • create trigger • after update on deposit • when (new.balance < 0) • insert into borrow • select branch_name, account_number, customer_name,-new.balance; • update deposit • set new.balance = 0;

  8. תלויות פונקציונליות הן אילוצים על היחסים החוקיים, ומהוות הכללה של המושג מפתח-על. תלות פונקציונלית - יהי rיחס בעל תבנית R . ויהיו ותתי קבוצות שלR. התלות הפונקציונלית מתקיימת על Rאם לכל יחס חוקי (r(R , לכל זוג nיות t1,t2ביחס rמתקיים  תלויות פונקציונליות(functional dependencies) t1[]=t2[]  t1[]=t2[] (במלים אחרות, כל ערך של קשור לערך יחיד של).

  9. אילו תלויות פונקציונליות מתקיימות על היחס הבא? תלות פונקציונלית טריוויאלית - ת”פ המתקיימת על כל יחס. למשל AAהיא ת”פ טריוויאלית. באופן כללי, התלות הפונקציונלית  היא ת”פ טריוויאלית אם .

  10. תלויות פונקציונליות במערכת הבנק Branch: branch-namebranch-city branch-nameassets Customer: customer-namecustomer-city customer-name street Borrow: loan-number amount loan-number branch-name Deposit: account-number  balance account-number  branch-name

  11. סגור של קבוצת תלויות פונקציונליות בהינתן קבוצה Fשל תלויות פונקציונליות החלות על תבנית Rניתן להוכיח כי יחולו על התבנית ת”פ נוספות. נאמר כי תלויות אלו נובעות לוגית מF. תהי Fקבוצת תלויות פונקציונליות. הסגור של F המסומן +Fהיא אוסף התלויות הפונקציונליות הנובעות לוגית מF. שתי קבוצות של תלויות פונקציונליות F1 ו F2 הן שקולות לוגית אם F2+ = F1+

  12. כללי ארמסטרונג • Reflexivity rule: if  is a set of attributes and  then  holds. • Augmentation rule: if  holds and  is a set of attributes then   holds. • Transitivity rule: if  and   hold then   holds . כללים נוספים (ניתנים להסקה מכללי ארמסטרונג) • Union rule: if  and  hold, then  holds. • Decomposition rule: if  holds then   and   hold. • Pseudotransitivity rule: if  and  hold then  holds .

  13. סגור של קבוצת תכונות הסגור של קבוצת תכונות - תהי  קבוצה של תכונות. הסגור של  (סימון - +)הוא קבוצת כל התכונות, הנקבעות פונקציונלית על ידי  תחת קבוצה Fשל תלויות פונקציונליות. כלומר = {A| AR  A  F+}+ אלגוריתם לחישוב של + result=  ; while (changes to result) { for (each f.d.   in F) if ( result) result=result   ; }

  14. שימושים • התלות הפונקציונלית  נובעת לוגית מ F (כלומרF+ ) אםם  + • שתי קבוצות של תלויות פונקציונליות F1 ו F2הן שקולות לוגית אםם לכל קבוצת תכונות  סגור זהה תחת F1 ו F2

  15. חישוב מפתח קביל של תבנית אלגוריתם לחישוב מפתח קביל לתבנית R בהינתן קבוצת תלויות פונקציונליות החלות עליה result= R ; For (each attribute A in result) { compute (result – A)+ with respect to F; if (result – A)+ = R result = result – {A}; }

  16. כיסוי קנוני • תהי Fקבוצה של תלויות פונקציונליות. • תכונה עודפת בת”פ - תכונה שניתן להשמיטה מהתלות הפונקציונלית מבלי לשנות את הסגור של F. • עבור התלות הפונקציונלית ב F • תכונה Aהיא עודפת ב אם קבוצת הת”פ • נובעת לוגית מ F. • תכונה Aהיא עודפת ב  אם Fנובעת לוגית מ F-{}  {( - A) } F-{}  {  ( - A) }

  17. תהי Fקבוצה של תלויות פונקציונליות. כיסוי קנוני Fc של F היא קבוצה של תלויות פונקציונליותהשקולה לוגית ל F (כלומר כל התלויות הפונקציונליות ב Fנובעות לוגית מ Fcולהיפך). המקיימת את שתי התכונות הבאות: • אין ב Fcתלויות פונקציונליות הכוללות תכונות עודפות. • לכל תלות פונקציונלית ב Fcאגף שמאל ייחודי. • ההגדרה הנ"ל משרה אלגוריתם לחישוב של Fc . • (קיימות בספרות הגדרות שונות במקצת לכיסוי הקנוני. בסופו של דבר לצרכים מעשיים ההגדרות הללו שקולות).

More Related