Uploaded by Ron Sharabi

דף נוסחאות בסיסי2

advertisement
‫‪ :S1 + S2‬הורד את ה‪ selection‬כך שיהיה נמוך ככל האפשר בעץ (כלומר יתבצע הכי מוקדם‬
‫שיש)‪ ,‬תוך כדי כך שלא פוגע בתוצאה‪.‬‬
‫‪ : S3‬סדר את מחדש את העלים ככה שהטבלאות עם כמות השורות הקטנה יותר יהיו נמוכים יותר‬
‫בעץ (יתבצעו קודם) – כמובן שמדובר על כמות הרשומות לאחר ביצוע ה‪ selection-‬במידה ויש‪.‬‬
‫‪ :S4‬החלף מכפלה קרטזית ב‪join-‬‬
‫‪ :S5‬הורד את ה‪ projection-‬כך שיהיה נמוך ככל האפשר בעץ ‪ +‬מחק עמודות מיותרות שלא‬
‫יהיה להן שימוש בהמשך (חשוב לראות שאנחנו לא מוחקים עמודה שנצטרך בהמשך) ‪.‬‬
‫עץ ראשוני – מכפלה קרטזית של‬
‫הטבלאות‪ ,‬הוספת ‪ selection‬של התנאים‬
‫ו‪ projection‬על העמודות הרלוונטיות‬
‫‪Primary Index‬‬
‫טבלת הנתונים ממוינת לפי שדה האינדקס שהוא‬
‫המפתח הראשי של הטבלה‬
‫‪Clustering Index‬‬
‫טבלת הנתונים ממוינת לפי שדה האינדקס שאינו‬
‫המפתח הראשי של הטבלה‬
‫‪Secondary index‬‬‫טבלת הנתונים אינה ממוינת לפי שדה האינדקס‬
‫‪In a B-tree, pointers to data‬‬
‫‪records exist at all levels of‬‬
‫‪the tree‬‬
‫‪In a B+-tree, all pointers to‬‬
‫‪data records exists at the‬‬
‫‪leaf-level nodes‬‬
‫עלויות‬
‫‪ – S join A‬כלומר ‪ S‬היא השמאלית‪ ,‬או בעצם ‪ S‬תהיה בלולאה‬
‫החיצונית‪.‬‬
‫‪ – Bs‬כמות הבלוקים של ‪ – Ps ,S‬כמות הרשומות בבלוק ב‪.S-‬‬
‫‪ – Ba‬כמות הבלוקים של ‪ – Pa ,A‬כמות הרשומות בבלוק ב‪.A-‬‬
‫אם הכל נכנס בזיכרון‪Bs + Ba :‬‬
‫‪Bs + Ps*Bs*Ba :Simple‬‬
‫‪R‬‬
‫‪Bs + ceil(Bs/(B-2)) * Ba :Block Nested‬‬
‫‪3 * (Bs + Ba) :Grace Hash join‬‬
‫‪BRlogBR + BSlogBS + BR + BS :Sort-Merge Join‬‬
‫‪2BRlogM-1BR + 2BSlogM-1BS + BR + BS :Fixed SortMerge‬‬
‫‪fB‬‬
‫‪2‬‬
‫‪B 1‬‬
‫‪B‬‬
‫(‪create or replace procedure transfer‬‬
‫‪sender int,‬‬
‫‪receiver int,‬‬
‫‪amount dec‬‬
‫)‬
‫‪Procedure‬‬
‫‪language plpgsql‬‬
‫‪as $$‬‬
‫‪begin‬‬
‫‪-- subtracting the amount from the sender's account‬‬
‫‪update accounts‬‬
‫‪set balance = balance - amount‬‬
‫;‪where id = sender‬‬
‫;‪commit‬‬
‫‪ERD TO RELATION‬‬
‫‪end;$$‬‬
‫‪. 1‬הופכים כל ישות רגילה לרלציה‪.‬‬
‫‪ .2‬אם יש תכונה מרובת ערכים‪ ,‬מפרקים לרלציה‬
‫נפרדת‪.‬‬
‫‪ .3‬אם יש תכונה מורכבת‪ ,‬נפרק את תת התכונות‬
‫לתכונות‪.‬‬
‫‪ .4‬מטפלים בישות חלשה‪.‬‬
‫ישות חלשה – ישות כפופה שאין לה‬
‫זיהוי עצמאי (תכונת מפתח)‪ ,‬כיוון‬
‫שלא ניתן לזהות מופע שלה יש להסתייע‬
‫בתכונות של ישות אחרת הקשורה אליה‪,‬‬
‫המכונה לצורך זה‪ :‬ישות חזקה‪.‬‬
‫‪CREATE [OR REPLACE] FUNCTION function_nam‬‬
‫)‪e (arguments‬‬
‫‪RETURNS return_datatype‬‬
‫‪LANGUAGE plpgsql‬‬
‫‪AS $variable_name$‬‬
‫‪DECLARE‬‬
‫;‪declaration‬‬
‫‪[...] -- variable declaration‬‬
‫‪BEGIN‬‬
‫‪Function syntax‬‬
‫> ‪< function_body‬‬
‫‪[...] -- logic‬‬
‫} ‪RETURN { variable_name | value‬‬
‫;‪END‬‬
‫‪$$‬‬
‫‪Triggers Syntax‬‬
Related documents
Download