Upload
rhona-perkins
View
66
Download
0
Embed Size (px)
DESCRIPTION
236363 מערכות מסדי נתונים. 3. אלגברה יחסית (רלציונית) (מבוסס על השקפים של אלדר פישר). שפת שאילתות. שאילתה – ביטוי המאפשר שליפת מידע ממסד הנתונים שפת שאילתות – שפה לניסוח שאילתות. התנאים בביטוי WHERE בשפת SQL מנוסחים בצורה לוגית. שפה למשתמש אנושי. שפות לוגיות. תרגום. - PowerPoint PPT Presentation
Citation preview
1
236363מערכות מסדי נתונים
. אלגברה יחסית )רלציונית(3
)מבוסס על השקפים של אלדר פישר(
שפת שאילתותשאילתה – ביטוי המאפשר שליפת מידע ממסד הנתונים
שפת שאילתות – שפה לניסוח שאילתות
2
שפה למשתמש אנושי
שפה לניסוח ביטויים פשוטים לחישוב מעל
מסד הנתונים
תרגום
שפות לוגיות
אופרטורים )אלגברה(
התנאים בביטוי
WHERE SQLבשפת
מנוסחים בצורה לוגית
3
אלגברה של יחסים )רלציונית(
היא שפה המאפשרת (Relational Algebraאלגברה של יחסים )
לנסח שאילתות עבור נתונים המאורגנים בטבלאות )יחסים(.
התחביר מזכיר תחביר של ביטויים אלגברים, רק שכאן הפעולות
הן על טבלאות שלמות, ולא על נתונים בודדים.
התוצאה של ביטוי אלגברי )שאילתה( היא טבלה )יחס( בעצמה.
כל עוד לא נאמר אחרת, נניח כי יחסים הם קבוצות ופעולות האלגברה הן פעולות על קבוצות
4
פעולות האלגברה )אופרטורים(חמש פעולות בסיסיות ועוד שתי פעולות טכניות:
(.Selection(, בחירה )Projection הטלה )פעולות אונריות:
מכפלה קרטזית, הפרש ואיחוד.פעולות בינאריות:
פעולה טכנית לצורך הרכבת פעולות. שינוי שמות תכונות:
פעולה טכנית לצורך ביצוע ביטוי בשלבים.השמה:
פעולות מרוכבות שניתנות לביטוי באמצאות הפעולות הבסיסיות:
( בגרסאותיו השונות, חילוק, וכו'.Joinחיתוך, צירוף )
לעיתים ברמת המימוש כדאי לממש באופן ישיר גם חלק מהפעולות
המרוכבות, ולא להסתמך על מימושי הפעולות הבסיסיות בלבד.
5
(Projectionהטלה ) היא פעולה של הורדה של חלק מהתכונות של רשומות הטלה
היחס.
מוחקים במושגים של טבלאות:את העמודות שאינן מופיעות
באינדקס של הטלה, ואז מסירים כפילויות של שורות בטבלה הנוצרת לאחר המחיקה.
T=
no Heb Roman
1 א i
2 ב ii
Heb, RomanT=
Heb Roman
א i
ב ii
6
(Selectionבחירה ).A1,...,Am טבלה בעלת סכמה עם תכונות T=T[A1, ... ,Am]תהי
המספקות את T תהיה קבוצת הרשומות ב-, Tעבור ביטוי .התנאי המובע ב-
להכיל ?מה יכול
( בין תכונה לבין , >, <, , השוואות )עם האופרטורים =, קבוע או בין שתי תכונות. עבור תכונות מסוגים מסוימים
" (.)למשל קבוצות( יתכנו גם סימני יחס אחרים )למשל "
.) ” )A3 = “cat ( A1 2) פעולות בוליאניות. למשל:
T=
no Heb Roman
1 א i
2 ב ii
3 ג iiino2T=
no Heb Roman
1 א i
2 ב ii
7
איחוד, הפרש וחיתוךפעולות אלו מתבצעות רק בין זוג יחסים בעלי אותה סכמה, והן זהות
לפעולות המקבילות מתורת הקבוצות.
.T או ב-S מכיל את כל הרשומות שנמצאות ב-─ STאיחוד אך לא נמצאות S מכיל את כל הרשומות שנמצאות ב-─ S\Tהפרש
.Tב-. T וגם ב-S מכיל את כל הרשומות שנמצאות גם ב-─ STחיתוך
S \ ) S \ Tחיתוך אינו אופרטור בסיסי - ניתן לבטא אותו בעזרת הפרש ( .
דוגמא:
T=
צבע חיה
שחור חתול
לבן סוס
S=
צבע חיה
לבן סוס
ורוד פיל
ST= צבע חיה
לבן סוסS\T=
צבע חיה
ורוד פילST=
צבע חיה
שחור חתול
לבן סוס
ורוד פיל
8
(Cartesian Productמכפלה קרטזית ) ניקח את קבוצת כל הזוגות האפשריים של רשומה ─עבור שני יחסים
מהיחס הראשון ורשומה מהיחס השני.
לוקחים את כל ה"שרשורים" במושגים של טבלאות:.T ושורה מ-Sהאפשריים של שורה מ-
, T ו-Sאם יש תכונות בעלות שם זהה ל-נבדיל ביניהן באמצעות סימון שם היחס
"(, T.Num", "S.Numהמקורי )למשל "או באמצעות תוספת של מספר סידורי
"(.Num2", "Num1)למשל "
S
Tגודל צבע חיה
קטן שחור חתול
גדול לבן סוס
S Tגודל צבע חיה
קטן שחור חתול
גדול שחור חתול
קטן לבן סוס
גדול לבן סוס
מה תהיה התוצאה אם אחד ?היחסים יהיה ריק
9
שינוי שם תכונותלמעשה זו אינה פעולה באלגברה של יחסים, אלא פעולת עזר
שנועדה לאפשר כתיבת ביטויים מורכבים )בעיקר אלו המערבים איחוד, חיסור וחיתוך, וכן צירופים טבעיים – ראו
בהמשך(.
היא טבלה בעלת סכמה עם התכונות T=T[A1, ... ,Am]אם A1,...,Am אז , A1→B1,…, Am→Bm
)T( יחזיר אותה טבלה בדיוק
בהתאמה.B1,…,Bmלאחר החלפת שמות התכונות ל-
צבע→Color,חיה→Animal)T( =
Color Animal
שחור חתול
לבן סוס
T=
צבע חיה
שחור חתול
לבן סוס
הפעולות הבסיסיותחמש הפעולות הטלה, בחירה, מכפלה קרטזית, הפרש ואיחוד
מוגדרות כפעולות בסיסיות:
לא ניתן לבטא אף אחת מהן בעזרת הארבע האחרות.1.
ניתן לבטא פעולות לא בסיסיות )כגון חיתוך, צירוף, חילוק( 2.
בעזרתן )לעיתים תוך שימוש בשינוי שם תכונות(.
כיצד מראים כי פעולה בסיסית היא אכן בסיסית?
מוצאים תכונה שהיא מקיימת ושלא מתקיימת באף צירוף של
הארבע האחרות.
10
כיצד להראות כי פעולות הן בסיסיות
טענה: לא ניתן לבטא הטלה בעזרת הפעולות בחירה, מכפלה קרטזית,
הפרש ואיחוד.
. R[A1,...,An] עמודות: n>1 יחס בעל R יהי הוכחה )קווי מתאר(:
A1בהטלה R-מתקבל יחס בעל פחות מ n.עמודות
)אפשר עם יחסים נוספים( Rכעת ניתן להראות כי כל ביטוי המכיל את
ומורכב מהפעולות בחירה, מכפלה קרטזית, הפרש ואיחוד, יוצר יחס
עמודות. nבעל לכל הפחות
ניתן להראות זאת באינדוקציה על מספר האופרטורים בביטוי.
כיצד נשנה את ההוכחה כדי להראות שמכפלה קרטזית היא פעולה
בסיסית?
11
12
-( צירוף-Join)
(:-Joinצירוף לפי ביטוי )
, T[B1,...,Bm] ו- S[A1,...,An]בהינתן יחסים
, A1,...,An,B1,...,Bm במושגים של וביטוי
.) )ST את תוצאת הביטוי האלגברי S ⋈ T נסמן ב-
דוגמה:S
A B
1 2
3 4
S ⋈ B>C T
A B C D
1 2 1 2
3 4 1 2
3 4 2 1
T
C D
1 2
2 1
13
(Natural Joinצירוף טבעי )
פעולה נפוצה מאוד במסדי נתונים.
, T[B1,...,Bm,C1,...,Ck] ו- S[A1,...,An,B1,...,Bm]עבור היחסים
S את היחס הבא: כל הצירופים של רשומה מ-S ⋈ T נסמן ב-
המסכימות ביניהן על התכונות המשותפות, כאשר Tורשומה מ-
מכל זוג תכונות משותפות מותירים עמודה אחת בלבד.
בניסוח אחר:
S ⋈ T= A1,...,An,S.B1,...,S.Bm,C1,...,Ck)S ⋈)S.B1=T.B1( ... )S.Bm=T.Bm( T(
T
גוון צבע
בהיר כחול
כהה כחול
בהיר ורוד
כהה ורוד
S
צבע חיה
לבן סוס
ורוד פיל
שחור חתול
S ⋈ T=
גוון צבע חיה
בהיר ורוד פיל
כהה ורוד פיל
14
(Semi-joinצירוף למחצה )
, T[B1,...,Bm,C1,...,Ck] ו- S[A1,...,An,B1,...,Bm]עבור
שעבורן קיימות רשומות S את כל הרשומות ב-S ⋉ T נסמן ב-
המסכימות איתן על התכונות המשותפות.Tב-
)S ⋉ T= A1,...,An,B1,...,Bm )S ⋈ Tבניסוח אחר:
במקרים רבים כדאי להשתמש במימוש ישיר של צירוף למחצה,
להקטנת תוצאות הביניים בעת מימוש ביטוי באלגברה יחסית.
T
גוון צבע
בהיר כחול
כהה כחול
בהיר ורוד
כהה ורוד
S
צבע חיה
לבן סוס
ורוד פיל
שחור חתול
S ⋉ T=
צבע חיה
ורוד פיל
15
(Divisionחילוק ), T[B1,...,Bm] ו- S[A1,...,An,B1,...,Bm]בהינתן שני יחסים
את ST(, נסמן ב-S מוכלות בתכונות T)ז"א כאשר תכונות S המכיל כל רשומה שעבורה יש רשומות ב-R[A1,...,An]היחס
.Tלכל הקומבינציות האפשריות עם רשומות מ-
.TR S היא הקבוצה המקסימלית עבורה Rבמילים אחרות:
הגדרה באמצעות פעולות בסיסיות:
ST= A1,...,AnS \ A1,...,An
)))A1,...,AnS( T( \ S (
T
צבע
לבן
שחורS
צבע חיה
לבן סוס
שחור סוס
שחור חתול
R=STחיה
סוס
16
Aדוגמא נוספת לחילוק
sno
=S1S2S3S4
המספקיםAנרצה לקבל את רשימת הספקים מ-
.Bאת כל החלקים המופיעים ברשימה
P2
pno
B
sno pno
S1
S1
S1
S1
S2
S2
S3
S4
S4
P1
P2
P3
P4
P1
P2
P2
P2
P4
17
Aדוגמא נוספת לחילוק
sno
=S1S4
המספקיםAנרצה לקבל את רשימת הספקים מ-
.Bאת כל החלקים המופיעים ברשימה
P2
P4
pno
B
sno pno
S1
S1
S1
S1
S2
S2
S3
S4
S4
P1
P2
P3
P4
P1
P2
P2
P2
P4
18
Aדוגמא נוספת לחילוק
sno
=S1
המספקיםAנרצה לקבל את רשימת הספקים מ-
.Bאת כל החלקים המופיעים ברשימה
P1
P2
P4
pno
B
מה תהיה התוצאה אם אחד ?היחסים יהיה ריק
sno pno
S1
S1
S1
S1
S2
S2
S3
S4
S4
P1
P2
P3
P4
P1
P2
P2
P2
P4
19
דוגמא מסכמת─אלגברה יחסית עבור מפעיל הרכבות.ERניזכר בדיאגרמת ה-
Arrives
Platform
A_Time D_Time
Station
Height
S_Name
S_Type
ServesKm
Line
Direction
L_Num
L_Type
Train
T_Num
Days
Service
Gives
Food
Class
T_Category
20
אלו טבלאות יתקבלו מהדיאגרמה ? ?Servesאלו עמודות יהיו בטבלה עבור טיפוס הקשרים
(Station )של טיפוס הישויות S_Nameהמפתח •(Line )של Direction, L_Numתכונות המפתח •
שלוש העמודות הנ"ל ישמשו כמפתח שלServesKmבנוסף תהיה עמודה עבור התכונה •
?Arrivesאלו עמודות יהיו בטבלה עבור טיפוס הקשרים Train של טיפוס הישויות T_Numהמפתח • אלו ─ Servesתכונות המפתח של טיפוס הקשרים )המקובץ( •
Direction, L_Num, S_Nameהן ,Arrives ─ Platformשלוש התכונות של טיפוס הקשרים •
D_Time, A_Time
הסכמותמהשקף הקודם )קווים תחתיים מציינים את המפתח הראשי(:
Serves)S_Name, L_Num, Direction, Km(
Arrives)T_Num, S_Name, L_Num, Direction, Platform,
D_Time, A_Time(
עבור הדוגמאות כאן נהפוך את התכונה הרב-ערכית לרלציה נפרדת:
Station)S_Name, Height(
Station_Type)S_Name, S_Type( 21
22
דוגמאות לשאילתות-דרום ?1אלו תחנות נמצאות על הקו
. השאילתה:Servesהמידע הנ"ל נמצא כולו בטבלת
S_Name))L_Num=1()Direction=“south”()Serves((
לאלו קווים יש תחנות מתחת לפני הים ?
. השאילתה המלאה:Station ל-Servesכאן נדרש לצרף את
L_Num,Direction)Height<0)Station⋈Serves((
או )תוך שימוש בחצי צירוף(:
L_Num,Direction)Serves⋉S_Name)Height<0)Station(((
23
דוגמאות לשאילתותתחנות שמשרתות יותר מקו אחד?
בו זמנית. השאילתה:Servesנרצה לבחון שתי שורות מטבלת
S_Name))S_Name=S())L_NumL()DirectionD(() S_Name→S, L_Num→L, Direction→D,
Km→K )Serves( Serves((
מה אם לא נרצה להחשיב כיוונים שונים של אותו קו?
S_Name))S_Name=S()L_NumL() S_Name→S, L_Num→L, Direction→D, Km→K
)Serves( Serves((
כיצד נמצא תחנות המשרתות קו אחד )במספר כיוונים( בדיוק?
S_Name)Serves( \ S_Name))S_Name=S()L_NumL() S_Name→S, L_Num→L,
Direction→D, Km→K )Serves( Serves((
דוגמאות לשאילתותמהו שם התחנה הגבוהה ביותר?
יותר קל למצוא את התחנות שאינן הגבוהות ביותר:
R = S_Name))Height<H()Station S_Name→N, Height→HStation((
עתה קל להשלים את השאילתה:
S_Name )Station( \ R
24
25
דוגמא לשימוש בחילוקאלו רכבות )לפי מספר( מגיעות לכל התחנות ?
T_Num,S_Name)Arrives(S_Name)Station(
ומה אם יש תחנות שלא נמצאות על אף קו פעיל ? איך נמנע מלהתחשב בהן ?
T_Num,S_Name)Arrives(S_Name)Serves(
ומה אם יש תחנות הנמצאות על קו פעיל אולם אף רכבת אינה מבצעת עצירה בהן ?
T_Num,S_Name)Arrives(S_Name)Arrives(
דוגמא לשאילתה מורכבת יותרנניח עתה שנרצה למצוא את כל הזוגות של קווים שיש ביניהם תחנת חילוף,
כולל את סוגי הקווים.
ראשית נבחר צירופי "משרת-קו" שעבורם התחנה היא תחנת חילוף:
R = )Line ⋈ Serves(⋉S_Name)S_Type =“change” )Station_Type((
יהיו כל הזוגות האפשריים של צירופי "משרת-קו" RRעתה במכפלה נניח שעל מנת להבדיל בין התכונות ─עבורם המדובר בתחנת חילוף , …S_Name1, S_Name2הוספנו להם אינדקסים, למשל
נרצה לבחור מהמכפלה רק זוגות החולקים ביניהם אותה תחנת חילוף:
S = )S_Name1=S_Name2( )L_Num1L_Num2( )RR(
לבסוף, לקבלת השאילתה השלמה נבצע הטלה על התכונות המעניינות T = L_Type1,L_Num1,Direction1,L_Type2,L_Num2,Direction2 אותנו:
)S(
27
אלו שאילתות לא ניתן לבטא באלגברה יחסית?
ישנם מספר סוגים של שאילתות טבעיות שאין עבורן ביטויים (.RAמתאימים באלגברה יחסית )
(: Aggregate functionsפונקציות הקבצה )שאילתות מהצורה:
"כמה קווים יש בכיוון צפון ?"-דרום?"1"מה ממוצע המרחקים בין שתי תחנות על קו
"כמה רכבות עוצרות ביום שני בכל תחנה?"שאילתות אלו דורשות הפעלה של פונקציות בעלות מספר לא
קבוע של משתנים )כגון ספירה, סכום, ממוצע...( על קבוצת ערכים המתקבלים מהיחס.
המאפשרות שאילתות מסוג זה, וכן ניתן RAישנן הרחבות של הנלמדת בתרגול.SQLלשאול אותן בשפת
28
שאילתות שאי אפשר לבטא )המשך( סגור טרנזיטיבי:
?RAהאם ניתן לשאול את השאילתה הבאה ב- במספר סופי )כלשהו( של S"מהן כל התחנות שאליהן ניתן להגיע מתחנה
חילופי רכבת?"
את השאילתה: "מהן כל התחנות שאליהן RA קבוע אפשר לשאול ב-kלכל או פחות חילופי רכבת?"k ב-Sניתן להגיע מתחנה
לא ניתן לבטא באלגברה רלציונית.kאבל את השאילתה ללא הגבלה על
סטנדרטי )ללא התערבות של שפה המארחת( ANSI SQLגם ב-אי אפשר לבטא שאילתה מעין זו.
מאפשרת את ניסוח שאילתות Datalogלהשוואה, שפת השאילתות המכילות רקורסיה ובפרט את ניסוח השאילתה הנ"ל.
29
יחסים חסרי תכונותעל מנת לאפשר שאילתות "כן/לא", וכן על מנת לפשט במקרים
מסוימים את ביטוי השאילתה, נהוג להרחיב במעט את האלגברה היחסית לטיפול ב"טבלאות" חסרות עמודות.
מה יחס חסר תכונות יכול להכיל?יחס כזה יכול להיות ריק. •היחס יכול להכיל שורה אחת בדיוק שהיא "שורה ריקה" •
)לעיתים מתייחסים אל השורה הריקה כאל ערך אמת "true "או כמייצג מצב "קיים", בניגוד למצב "לא קיים "
המיוצג ביחס ריק(.
30
הכללת פעולות האלגברה, גם הקבוצה הריקה תחשב כתת-קבוצה של R עבור יחס הטלות:
.πλRקבוצת התכונות שלו, וההטלה המתאימה תסומן ב-
יחס ריק, ותכיל את השורה Rתוצאת הביטוי תהיה יחס ריק אם לא היה ריק.Rהריקה )כשורה יחידה( אם
יחס חסר תכונות?S אם R S איך נגדיר את מכפלה קרטזית:
מכיל את השורה S אם R ריק, וזהה ל-Sהתוצאה תהיה ריקה אם הריקה.
יכיל את השורה RS אותן תכונות, אז S ול-R אם ל-חלוקה:, ויהיה ריק אחרת.S⊆Rהריקה אם
שקילות שאילתות תוכן אפשרי של מסד כל אם מעל שקוליםשני ביטויים הם
הנתונים הם מחזירים אותה תוצאה.
מדוע חשוב לדעת אם ביטויים הם שקולים?אופטימיזציה – עבור ביטוי נתון, נרצה להפוך אותו לביטוי •
שקול יעיל יותר לחישוב.
הביטויים הבאים שקולים:)R)A,B,Cדוגמה: עבור היחס
A )R( A )A,B) R(( A )A,C) R((
מי יותר יעיל לחישוב?31
דוגמה A R A S , ונרצה להראות ש-)R)A,B(, S)A,Bנתונים היחסים
.)A )R Sשקול ל-
.)A R A S A )R Sא. נראה ש-
. )A R A S A )R Sב. נראה ש-
32
דוגמה.)A R A S A )R Sא. נראה ש-
מהגדרת AS או ל-AR שייך או ל-t, אז tAR ASאם האיחוד.
.u[A]=t[A] כך ש-uS, או קיים u[A]=t[A] כך ש-uRלכן, קיים
.u[A]=t[A] כך ש-uRSלכן, קיים
.)tA)RSאו במילים אחרות,
33
דוגמה. )A R A S A )R Sב. נראה ש-
.u[A]=t[A] כך ש-uRS אז קיים ,)tA )R Sאם
.u[A]=t[A] כך ש-uS, או קיים u[A]=t[A] כך ש-uRלכן, קיים
.tA S או ש-tA R לכן, או ש-
.t A R A Sאו במילים אחרות,
34
חשיבות השקילות טיפוסיתSQLשאילתת
35
SELECT DISTINCT AFROM R,SWHERE R.B=S.B AND C=5;
תרגום ישיר
A ))R.B=S.B()C=5()R S((
אופטימיזציה
A )R ⋉ B ) C=5 S(((
חשוב לוודא שהאופטימיזציה לא גורמת לחישוב שגוי
Outerjoinצירוף חיצוני צירוף טבעי גורם לאיבוד חלק מהמידע – רשומות "מתנדנדות" לא
( מרפדים את הערכים outerjoinיופיעו בתוצאה. בצירוף חיצוני ) וכך לא זורקים תוצאות:nullהחסרים בערכי
, T[B1,...,Bm,C1,...,Ck] ו- S[A1,...,An,B1,...,Bm]עבור היחסים
כשכל T ו-S את היחס הבא: הצירוף הטבעי של S ⋈outer T נסמן ב-
null שניתן לצרף לה מרפדים בערכי T שאין רשומה מ-Sרשומה מ-
.S שאין להן צירוף ב-Tומוסיפים לתוצאה, וכנ"ל לגבי רשומות
בניסוח אחר:
S ⋈outer T= )S ⋈ T( ))S \ )S ⋉ T(( C1,...,CkTnull( )A1,...,An
Snull
)T \ )T ⋉ S(((
null והמכיל שורה של ערכי Tיחס בעל סכמה זהה לזו של Tnullכאשר
.null והמכיל שורה של ערכי Sיחס בעל סכמה זהה לזו של Snullו- 36
דוגמהT ו-Sצירוף חיצוני של
37
T
גוון צבע
בהיר כחול
כהה כחול
בהיר ורוד
כהה ורוד
S
צבע חיה
לבן סוס
ורוד פיל
שחור חתול
S ⋈outer T=
גוון צבע חיה
בהיר ורוד פיל
כהה ורוד פיל
null לבן סוס
null שחור חתול
בהיר כחול null
כהה כחול null
מה תהיה התוצאה אם אחד ?היחסים יהיה ריק
קיימים צירוף חיצוני ( right outer joinימני )
וצירוף חיצוני שמאלי (left outer join )
שבהם מרפדים רק את היחס nullב-
הימני או השמאלי, בהתאמה
nullערכי " אשר nullלמעשה, ברגע שאנו מאפשרים את הערך המיוחד "
מציין תכונה עם ערך חסר, עלינו גם להכליל את משמעות פעולות האלגברה של יחסים גם עבור המקרים שערכים אלו
מופיעים בקלטים )למשל, איך מבצעים צירוף טבעי כאשר יש בחלק מהתכונות המשותפות?(nullרשומות עם
הכללה זו קשה להגדרה והיא מחוץ למסגרת הקורס.
(Bag, multi-setסמנטיקת שקים )עד כה, הנחנו כי יחסים הם קבוצות.
נדרש לאפשר SQLבפועל, עבור חישוב שאילתות כמו שאילתות
כפילויות )מדוע?(
בסמנטיקת שקים )רבי-קבוצה(, יחס עשוי להכיל כפילויות, כלומר
אותה רשומה עשויה להופיע ביחס יותר מפעם אחת.
יש לשנות את האופרטורים האלגברים בהתאם.
39
אופרטורים בסמנטיקת שקים – מורידים עמודות בלי למחוק כפילויות.הטלה
– משאירים את השורות המקיימות את התנאי, כולל בחירהכפילויות.
R פעמים ב-n מופיעה t – אם רשומה R Sמכפלה קרטזית יופיע u ו-t אזי השרשור של S פעמים ב-m מופיעה uורשומה
mn-פעמים ב R S.
פעמים m ו-R פעמים ב-n מופיעה t – אם רשומה R Sאיחוד פעמים באיחוד.m+n תופיע t אזי Sב-
פעמים m ו-R פעמים ב-n מופיעה t – אם רשומה R \ Sהפרש פעמים בהפרש.max{0,n-m} תופיע t אזי Sב-
פעמים m ו-R פעמים ב-n מופיעה t – אם רשומה R Sחיתוך פעמים בחיתוך.min{n,m} תופיע t אזי Sב-
– אופרטור חדש להסרה מפורשת של כפילויות.δאופרטור 40
בקורס זה, כשלא נאמר אחרת נניח כי מדובר בסמנטיקת קבוצות