Database System Concepts Study Guide - מערכות בסיסי נתונים מדריך למידה

The Open University of Israel האוניברסיטה הפתוחה של ישראל מדריך למידה מערכות בסיסי נתונים

205 115 167MB

Hebrew Pages 300 Year 2022

Report DMCA / Copyright

DOWNLOAD PDF FILE

Recommend Papers

Database System Concepts Study Guide - מערכות בסיסי נתונים מדריך למידה

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

‫ס הטיסרבינואה‬ ‫החות‬ ‫‏‪ N‬פ‬

‫תוכרעמ‬

‫בינותנ‬

‫יטיסב‬

‫הדימל‬

‫ךירדמ‬

‫‪l‬‬ ‫תברוע‬

‫לעי‬

‫דרא‬

‫‪.‬‬

‫‪1‬‬ ‫‪.-‬‬

‫הטיסרכינואה‬ ‫החותפה‬

‫תוכרעמ‬

‫יסיסב‬

‫ימינפ * אל הריכמל‬ ‫‪20277-5276‬‬

‫םינותנ‬

‫תווצ חותיפה‬ ‫‪:‬הביתכ‬

‫לעי דרא‬

‫יארחא ‪:‬ימדקא‬

‫יפורפ דוהא סדוג‬

‫‪:‬ועיי‬

‫יפורפ דוהא סדוג‬ ‫תירש לאוס‬

‫תכירע ‪:‬ןושל‬

‫תידוהי רמייהנגוג‬ ‫רייד הוח ןמוינ‬

‫ןכות‬

‫םיניינעה‬

‫‪ 1‬אובמ ‪9‬‬‫קרפ ‏‬ ‫טבמ םינותנלע ל‪9‬‬ ‫‏‬ ‫תומרהטשפה ל‪9‬‬ ‫תינבת עפומו ‪10‬‬ ‫םילדומ םינותנלש ‪11‬‬ ‫תופש יסיסבל םינותנ ‪15‬‬ ‫הנבמה ללוכה לשתכרעמ ‏‪16 DBMS‬‬ ‫קרפ ‪ - 2‬לדומ םיסחיה‬

‫‪17‬‬

‫הנבמה לש סיסב םינותנ יסחי ‪17‬‬ ‫תינבת םיסחי ‪20‬‬ ‫תוחתפמ ‪21‬‬ ‫המרגאיד לשתינבת ‏ םיסחי ‪23‬‬ ‫םיכרע םיקיר ‪24‬‬ ‫תופש תותליאש לדומב םיסחיה ‪24‬‬ ‫הרבגלא לש םיסחי ‪25‬‬ ‫תולועפ תוידוסי תרותמ תוצובקה ‪25‬‬ ‫תבכרה תולועפ ‪28‬‬ ‫תולועפה הלטה הריחבו ‪29 -‬‬ ‫תואמגוד תותליאשל ‪32‬‬ ‫‏‬ ‫הלפכמ תיזטרק ; ףוריצ ‪3¢‬‬ ‫תואמגוד תותליאשל ‪40‬‬ ‫לופכשהמשהו ‪41‬‬ ‫לופכש ‪41 -‬‬ ‫המשה ‪(4‬‬ ‫‏ קוליח ‪44‬‬ ‫קרפ ‪ - 3‬אובמ תפשל ‏‪SQL‬‬

‫‪47‬‬

‫עקר ‪47‬‬ ‫הנבמה יסיסבה לש התליאש ‪51‬‬ ‫תפילש עדימ המכמ םיסחי ‪52‬‬ ‫תולועפ תויסיסב תופסונ ‪55‬‬ ‫ןתמ םש הנוכתל סחיב האצותה ‪55‬‬ ‫‪55 861001‬‬ ‫יוטיב ינובשח קוספב‬

‫ינתשמ הרוש ‪56 -‬‬ ‫תמאתה תוזורחמ ‪56‬‬ ‫ןוימ תורושה סחיב האצותה ‪57‬‬ ‫‏ תויוליפכ ‪59‬‬ ‫לע תוצובק ‪60‬‬ ‫תולועפ ‏‬ ‫םט[[יכרע ‪61‬‬ ‫הצבקה ‪61‬‬ ‫תויצקנופ הצבקה ‪61‬‬ ‫תלועפ הצבקה ‪62‬‬ ‫ןוניק תותליאש = ‪66‬‬ ‫האוושה ןיב ךרע דדוב ןיבל תצובק םיכרע ‪66 -‬‬ ‫תואמגוד ‪66‬‬ ‫רדגומההתליאש‪-‬תתב ‪69‬‬ ‫‏‬ ‫הקידב םא םייק סחי‬ ‫תקידב תויוליפכ ‪70‬‬ ‫תואמגוד תומכסמ תותליאשל ‪71‬‬ ‫םיסחיכ םיינמז ‪73‬‬ ‫‏‬ ‫תותליאש‪-‬תת‬ ‫סיסב םינותנה ‪75‬‬ ‫‏‬ ‫ןוכדע‬ ‫הקיחמ ‪75‬‬ ‫הפסוה ‪76‬‬ ‫‏ ןוכדע ‪77‬‬ ‫ייוטיב ףוריצ ‪78‬‬ ‫‏‬ ‫ףוריצ יעבט ‪78‬‬ ‫‏‬ ‫יפל יאנת ‪79‬‬ ‫‏‪ PPN‬‏‬ ‫תואמגוד תומכסמ תותליאשל ‪81‬‬ ‫קרפ ‪ 4-‬‏‪ - SQL‬תמר םייניב‬

‫‪83‬‬

‫תרדגה תוינבת ‪84 -‬‬ ‫הרדגה תיסיסב לשתינבת סחי ‪85‬‬ ‫םיטבמ ‪86 -‬‬ ‫תרדגה טבמ ‪87‬‬ ‫שומיש םיטבמב ‪,5)(1‬תותליאשב ‪88 -‬‬ ‫םיטבמ םינסחואמ ‪89 -‬‬ ‫ןוכדע םיטבמ ‪89‬‬ ‫‏ תועונת ‪92‬‬ ‫יצוליא תוניקת ‪95‬‬ ‫סחי דדוב ‪96‬‬ ‫םיצוליא‏‪ DY‬‏‬ ‫רוסיא לע םיכרע םיקירהדומעב ‪96-‬‬ ‫ץוליא‏‪97 unique‬‬

‫קוספ‏‪98 check‬‬ ‫תוחתפמ םירז ‪98 -‬‬ ‫לופיט םיבצמב לשתרפה ץוליא הקיז ‪100‬‬ ‫ןתמ םש ץוליאל תוניקת ‪101‬‬ ‫יצוליא תוניקת תועונתו ‪102‬‬ ‫םתרדגה לש םיצוליא םיבכרומ תועצמאב תוארוהה‏‪check‬‬ ‫‏)‪102 assertion-‬‬ ‫יסופיט םינותנ תוינבתו ‪104‬‬ ‫תרדגה יסופיט םינותנ לע ידישמתשמה ‪106‬‬ ‫יסופיט םינותנ םיטקייבואל םילודג ‪105‬‬ ‫יכרעתרירב לדחמ ‪105‬‬ ‫‪,‬תוינבת ינולימ םינותנ תוביבסוהדובע ‪105‬‬ ‫תואשרה ‪106‬‬ ‫תקנעה תואשרה ןתלילשו ‪106‬‬ ‫םידיקפת ‪108‬‬ ‫תואשרה השיג םיטבמל ‪1090‬‬ ‫תואשרה השיג תוינבתל ‪110 /‬‬ ‫תרבעה תואשרה ‪1110‬‬ ‫תלילש תואשרה ‪113‬‬ ‫‏‬ ‫תואשרה תמרבהרושה ‪115‬‬ ‫קרפ ‪ 5-.5)(1‬םדקתמ ‪117‬‬ ‫השיג‪-,8)(1‬לתפשמ תונכת ‪118‬‬ ‫ץוביש תוארוה ‏‪SQL‬הפשב תחראמ ‪120 /‬‬ ‫‏‪ —cursors‬ןונגנמ תקירסל תורושולבקתהש האצותכ ‪120‬‬ ‫םמ ‪ -‬‏‪ SQL‬ימנידתפשב‏‪122 Java‬‬ ‫‏‪123 VPN‬‬ ‫תורודצורפ‬ ‫תרדגה ‪,‬תויצקנופ םירטמרפ םינתשמו ‪124‬‬ ‫תוארוה ינבמו הרקב ‪126‬‬ ‫שומיש‏‪129 cursors-1‬‬ ‫םיקדה )םירגירט( ‪132‬‬ ‫‪:‬חפסנ תובושת תולאשלףוגבש קרפה ‪137‬‬ ‫קרפ ‪ - 6‬לדומ םירשק‪-‬תויושי ‪139‬‬ ‫םיגשומ ‏ םייסיסב ‪139‬‬ ‫םיצוליא ‪149‬‬ ‫תודימ יוביר לש יסופיט םירשק ‪150‬‬ ‫תודימ יובירה לש יסופיט םירשק םיירא‪-‬מ ‪151‬‬

‫יצוליאתופתתשה ‪152‬‬ ‫‏ תוחתפמ ‪153‬‬ ‫חתפמ לש סופיט תויושי ‪154‬‬ ‫חתפמ לש סופיט םירשק ‪154‬‬ ‫יסופיט תויושי םישלח ‪155‬‬ ‫תמרגאידמ ‏‪ E-R‬תוינבתל םיסחי ‪158‬‬ ‫ילוקישןּוכיִת ‪162‬‬ ‫תונמאנ תואיצמל תראותמה ‪162 /‬‬ ‫תויטנוולר ‪162‬‬ ‫תעינמ תוליפכ‏ גוצייב ‪163‬‬ ‫גוציי טושפ לככרשפאה ‪164‬‬ ‫טוריפ הללכהו ‪ -‬ירשקי"‪154‬י" ‪165‬‬ ‫םיצוליא לעהללכה ‏‪167 VY‬‬ ‫וביק ‪169‬‬ ‫הרמה לש טוריפ הללכהו תוינבתל לש םיסחי ‪169‬‬ ‫קרפ ‪ 7-‬ןוכית לדומב ‏ םיסחיה ‪173‬‬ ‫תויולת תוילנויצקנופ ‪174‬‬ ‫תולת תילאיווירט ‪179‬‬ ‫תויולת תוילנויצקנופ תוחתפמו ‪179‬‬ ‫רוגְס לש תצובק תויולת תוילנויצקנופ ‪180‬‬ ‫רוגס לש תצובק תונוכת ‪181‬‬ ‫םתירוגלא יללכ בושיחל רוגסה לש תצובק תונוכת ‪183‬‬ ‫תאיצמתוחתפמ םיליבק ‪184‬‬ ‫תקידב תוכייש לש תולת תילנויצקנופ רוגסל‏‪185 F+‬‬ ‫יוסיכ ינונק יוסיכ( )ילמינימ ‪186/‬‬ ‫קוריפ תוינבת ‪189‬‬ ‫תעינמ תויוליפכ תורתוימ ‪191‬‬ ‫גוציי אולמ עדימה ‪192‬‬ ‫יוטיב םיצוליא ‪192‬‬ ‫רומיש עדימ ‪195‬‬ ‫ןוירטירק תקידבל רומיש עדימ ‪198‬‬ ‫רומיש תויולת ‪198‬‬ ‫‏‬ ‫תורוצ תוילמרונ ‪200‬‬ ‫הרוצה תילמרונה לש‏‪201 BCNF—Codd-yBoyce‬‬ ‫קוריפ רמשמ עדימ תוינבתל ‏‪204 BCNF-2‬‬ ‫הרוצה תילמרונה תישילשה ‪-‬‏‪206 3NF‬‬ ‫קוריפ תוינבתל ןהש תוחפל‏‪208 3NF-2‬‬

‫קרפ ‪ - 8‬יסופיט םינותנ םיבכרומ‬

‫‪21‬‬

‫עדימ הנבומ הצחמל ‪212‬‬ ‫‪213‬‬ ‫עדימ ילולימ‬ ‫שופיח יפל תולימחתפמ ‪214‬‬ ‫‏‪ NPT‬תובושת ‪216‬‬ ‫עדימ יבחרמ ‪223‬‬ ‫‏‬ ‫םיטקייבוא םיבכרומ ‪228‬‬ ‫תופש גוצייל עדימההרבעהלו ‏‪ P2‬תוכרעמ ‪228‬‬ ‫‪‎‬נפסמא ‪229‬‬ ‫‪230 XML‬‬ ‫‪232 o9‬‬ ‫‪RDF‬‬ ‫‪234 SPARQL‬‬ ‫קרפ ‪ 9-‬ןוסחא ינבמו םיצבק \ ‪237‬‬ ‫ינקתה‏ ןוסחא ‪238‬‬ ‫השיג ןוסחאל ינוציח ‪239‬‬ ‫םיצבקלוהינ ‪240‬‬ ‫ןוגרא תומושרה צבוקב ‪240‬‬ ‫תוטיש ןוגראל םיצבק ‪240‬‬ ‫המגוד תמכסמ ‪241‬‬ ‫קרפ ‪ 10-‬םיסקדניא ‪245‬‬ ‫םיסקדניא םיניוממ ‪248‬‬ ‫סקדניא ישאר ‪248‬‬ ‫סקדניאו לילד ‪248‬‬ ‫‏‬ ‫סקדניא ףופצ‬ ‫סקדניא תומר‪-‬בר ‪250 /‬‬ ‫םיסקדניא םיינשמ ‪250‬‬ ‫תם*יצע ‪251‬‬ ‫הנבמה לש *ע *‪251 - +‬‬ ‫רותיא המושרתרזעב ץע ‪255 +3‬‬ ‫דציכ םיעבוק תאוימ ‪255‬‬ ‫ןוכדע *ע ‏‪ - B+‬תסנכה םיכרע םישדח ‪257‬‬ ‫תמוצהלע ‪258‬‬ ‫‏‬ ‫לוציפ‬ ‫לוציפ תמוצ ימינפ ‪261‬‬ ‫ןוכדע ע ‪ - +₪‬תקיחמ ךרע ‪262‬‬ ‫יססובמ בוביג ‪264‬‬ ‫‏‬ ‫םיסקדניא‬ ‫בוביג ימניד ‪267‬‬ ‫םיסקדניא יססובמ תופמ תויביס ‪271‬‬

‫האוושה ןיב ינבמ רזעה ‪272‬‬ ‫קרפ‪ - 11‬דוביע תותליאש‬

‫‪275‬‬

‫ךילהת דוביע התליאש ‪275‬‬ ‫בלשחונעפה ‪276‬‬ ‫גוציי ימינפ תועצמאב ץע יוטיב ‪277‬‬ ‫בלש היצזימיטפואה ‪281‬‬ ‫דציכתדדמנ תוליעיה לש בושיח !התליאש ‪284‬‬ ‫םינותנ םייטסיטטס שומישלדבעמ תותליאשה ‪285‬‬ ‫תכרעה האצותהלדוג ‪286‬‬ ‫םימתירוגלא בושיחל םירוטרפוא םיירבגלא ‪287‬‬ ‫תלועפ הריחב‏‪ DY‬יאנת ןויווש | ‪287‬‬ ‫תלועפ הריחב‏‪ DY‬יאנת האוושה םוחתל >‪) (,‬ם( אוה הצובק תיקלח לש הלפכמה‬ ‫תיזטרקה ‪4.‬אמ הצובקה תיקלחה תאזה הליכמ קר תא תוגוזה םהבש רביאה‬ ‫ילאמשה רביאה()‪-84‬מ ןטק ינמיהמ רביאה( ‪-8):‬מ‬ ‫})‪‏‪OY‬ךנחמההלש‬ ‫עוצקמ(‪.‬י")והשלכ‬ ‫ידכ תונעל‏‪ DY‬התליאש וז שורד עדימ לכמ תשולש םיסחיה סיסבב ‪:‬םינותנה‬ ‫‏‪ |class_teacher‬ידכ תעדל ימ ךנחמ תא ;התיכה סחיהמ‏‪ feaches‬ידכ‬ ‫סחיהמ‬

‫ךירדמהדימלקרפל |‪ 2‬לדומםיסחיה ‪41 %‬‬ ‫תעדל וליא תועוצקמ דמלמ ךנחמה תא ;התיכה סחיהמו‏‪ ,|schedule‬ידכ תעדל‬ ‫וליאב םימי תדמול התיכה תועוצקמ ‪.‬הלא‬ ‫))‪₪ teaches₪ schedule‬‬ ‫‪11day(G4 - = (class_teacher‬‬ ‫המגוד‪ - 2.32‬התליאש "סמ‪ 14‬ואצמיי תותיכ ןניאש תודמול ‪".‬היגולויב‬ ‫‏‪class_teacher‬‬ ‫ונא םיחינמ יכ תא תצובק לכ תותיכה רשפא לבקל ןה סחיהמ‬ ‫החנהב( לכלש התיכ שי )ךנחמ ןהו סחיהמ‏‪feaches‬החנהב( לכש התיכ תדמול‬ ‫עוצקמ דחא‪).‬תוחפל‬ ‫)‪11cass(class_teacher‬‬ ‫‪,‎ subject‬ן‪).‬ס‪- 11‬‬ ‫‪‎‬ייוגוסוסָפע"=‬ ‫))‪(teaches‬‬

‫לופכש‬

‫המשהו‬

‫תולועפה תוירניבה תורשפאמ תוושהל םינפואב םינוש ןיב יתש תורוש ינשמ‬ ‫םיסחי ‪.‬םינוש ךא שי םיבצמ םהבש םיצור תוושהל ןיב תורוש תונוש לש סחי‬ ‫‪.‬דחא‬ ‫המגוד‪ 2.33:‬חיננ םיצורש אוצמל תותיכ תודמולה םג הירוטסיה םגו היפרגואיג‬ ‫ותואב ‪.‬םוי םשל ךכ שי אוצמל יתש תורוש סחיב‏‪ schedule‬ןהיתשבש העיפומ‬ ‫התוא התיכ ותואו ‪,‬םוי ךא תחאב עוצקמה אוה היפרגואיג היינשבו ‪.‬הירוטסיה‪-‬‬ ‫ידכ תוושהל יתש תורוש ותואמ ‪,‬סחי שי רוציל הלפכמ תיזטרק לש סחיה םע‬ ‫‪.‬ומצעתינבתב האצותה לשהלפכמ ‪,‬תאזכ לכ הנוכת תרזוח ‪:‬םיימעפ םעפ הנוכתכ‬ ‫לש טנמוגראה ילאמשה םעפו הנוכתכ לש טנמוגראה ‪.‬ינמיה ידכ חסנל יאנת‬ ‫הריחבםסיאתמ‏‪ DY‬סחי ‪,‬האצותה השורד ךרד תרשפאמה ןיחבהל ןיב יתש‬ ‫תועפוהה לש התוא תינבת ‪.‬האצותב ךכל תדעוימתלועפ‪.‬לופכשה‬

‫לופכש‬ ‫לופכש אוה הלועפ ‪,‬תירנוא םע ‪.‬רטמרפ ונומיס אוה תואה תינוויה ‪,‬ק הלועפהו‬ ‫תבתכנ‪:‎‬ךכ )‪(1‬‬ ‫‪P new-name‬‬ ‫סחי האצותה לש הלועפ וז אוה סחי םשב ‏‪ new-name‬ההזה לוכב סחיל ‏‪I‬‬ ‫ותינבתב לכבו ‪.‬ויתורוש‬

‫‪ = 2‬תוכרעמיסיסבסינותנ‬ ‫שי הרוצ תפסונ םושירל תלועפ ‪,‬לופכשה איהו תרשפאמ תונשל תא תינבת‬ ‫האצותה‪,‬תלבקתמה תניחבמ תומש ‪.‬תונוכתה םא ז אוה סחיותגרדש ‪,‬ם רשפא‬ ‫ליעפהל וילעתלועפ לופכש ‪:‬ךכ‬ ‫‪Pnew-name‬‬ ‫‪(A1,‬‬ ‫)‪A2,..,An‬‬ ‫)‪(1‬‬ ‫התע בותכנ יוטיב רוכעהתליאשההמגודבש ‪:‬ליעל ואצמיי תותיכ תודמולה ותואב‬ ‫םוי םג הירוטסיה םגויי‪.‬היפרגואיג‬ ‫‏\‪/‬‬ ‫‪day=sch.day‬‬ ‫‪Aschedule.‬‬ ‫‪=sch.class‬‬ ‫‪(Oschedule.class‬‬ ‫; ‪11‬‬ ‫‪schedule.subject‬‬ ‫™‪=*“History‬‬ ‫‪Asch.subject‬‬ ‫‏™‪=*“Geography‬‬ ‫))‪‎ sen(schedule‬ם *‪(schedule‬‬ ‫המגוד‪ 2.34:‬ואצמיי הרומ דמלמהתוחפל ינש תועוצקמי"‪.‬םינוש םג ידכתונעל לע‬ ‫התליאש וז שיעצבלהלפכמ תיזטרק לש סחי‏‪: DY‬ומצעהלפכמ לש סחיה‏‪teaches‬‬ ‫םע‏‪ .feaches‬סחיב לבקתמה שי אוצמל יתש תורוש ןהבו ותוא הרומ תועוצקמו‬ ‫‪:‬םינוש‬ ‫‪11teaches.‬‬ ‫‏‪teacher‬‬ ‫‪(Oteaches.‬‬ ‫‪teacher‬‬ ‫‪=t.teacher‬‬ ‫‪Ateaches.‬‬ ‫‪subject‬‬ ‫‏‪#t.1‬‬ ‫)))‪(teachesx p ((teaches‬‬ ‫!? דציכ אצמנ םירומ םידמלמה השולש תועוצקמ םינוש !תוחפל‬ ‫* םאה רשפא אוצמל םירומ םידמלמה ינש תועוצקמ !קוידב ‪,‬רמולכ( ינש‬ ‫תועוצקמ ךא אל)‪.‬השולש‬ ‫* םאהרשפא אוצמל המכ תועוצקמ דמלמ לכ !הרומ‬ ‫' גיצנ תאתובושתה תולאשל הלא םיווקב םייללכ ‪:‬דבלב‬ ‫הבושתה הלאשל הנושארה המוד דואמ המגודל ‪, 2.34‬ליעל אלא שיש עצבל‬ ‫םיימעפהלפכמ תיזטרק לש סחיה םע ‪.‬ומצע לבקל( שולש תורוש וז דצל ‪,‬וז חסנלו‬ ‫יאנת הריחב )‪.‬םיאתמ‬ ‫הבושתה הלאשל היינשה איה בוליש לש המגוד‪ 2.34,‬הלאשהו ‪:‬הנושארה םירומ‬ ‫םידמלמה ינש תועוצקמ קוידב ועיפוי ןיב הלא םידמלמה ינש תועוצקמ ‪,‬תוחפל‬ ‫ךא אל ועיפוי ןיב הלא םידמלמה השולש תועוצקמ ‪.‬תוחפל ךכ ןתינ אוצמל תא‬ ‫הבושתה התליאשל ‪.‬וז‬

‫ךירדמהדימלקרפל ‪ | 2‬לדומםיסחיה ‪43 .6‬‬ ‫הבושתה הלאשל הנורחאה איה ‪:‬תילילש ידכ אוצמל המכ תועוצקמ דמלמ לכ‬ ‫הרומ שורד הנבמ המודה תאלולל ‏‪while‬תפשב ‪,‬תונכת אלו םייק הזכהרבגלאב‬ ‫לש ‪.‬םיסחי‬ ‫רשפא קודבל םא הרומ דמלמ‪,‬השולש‪,‬העברא וא וליפא האמ תועוצקמ ‪,‬םינוש הבחרהלש‬ ‫הרבגלאה‬ ‫תיסיסבהונאשםידמול‬ ‫תרזעב תולפכמ תויזטרק לש סחיה םע ומצע רפסמ םיאתמ לש ‪.‬םימעפ ךא יא תללוכםגתויצקנופ‬ ‫תולעפומהלעתוצובקלש‬ ‫רשפא קודבל המכ תועוצקמ םינוש אוה ‪.‬דמלמ‬ ‫‪sum,‬‬ ‫‪,‬תורושןוגכ‏‪max,‬‬ ‫‪1.₪‬‬ ‫תרזעבתויצקנופהלאכ‬ ‫רשפאאטבלתא‬ ‫‪.‬תשקובמה‬ ‫התליאשה‬ ‫המשה‬ ‫ריכנתולועפהלאכ‬ ‫תרגסמב‬ ‫הפשה‬ ‫תירחסמה‬ ‫דמלנשםיקרפבםיאבה‬ ‫הלועפ תפסונ הרבגלאב לש םיסחי תרשפאמ תתל םש סחיל האצותה לש ‏‪.SQL‬‬ ‫‪,‬התליאש ךכ ןתינש שמתשהל םשב הז התליאשב ‪.‬תרחא רבדה רשפאמ לצפל‬ ‫םיבלשל בושיח לש תותליאש ‪.‬תובכרומ םשל ךכםישמתשמתלועפב‪.‬המשהה‬ ‫המשה איההלועפ ‪,‬תירניב הנומיסש ‪: ->.‬םימשור ‏‪-54 I‬‬ ‫‪ 8‬אוה םש לש סחי שדח ו אוה סחי האצותה לש יוטיבהרבגלאב לש ‪.‬םיסחי‬ ‫הלועפה תרצוי סחי םשב‏‪ LS‬ההזה סחיל ‪1.‬‬ ‫המגודה האבה תבלשמ שומיש תולועפב לופכשה ‪,‬המשההו איהו הגיצמ תאיצמ‬ ‫ךרע ילמיסקמ וא( )ילמינימהדומעב ‪.‬תמיוסמ‬ ‫המגוד‪ 2.35:‬ואצמיי תאהעשהתרחואמה רתויבהבש ליחתמ רועיש והשלכ ‪-‬תיבב‬ ‫י"‪.‬רפסה ונא םיחינמ יכרשפא תוושהל ןיב יכרע הנוכתה ‏‪ Aour‬לע ידי ‪< 1.00‬‬ ‫ותס‪‎‬ק ‪group by‬‬ ‫קלח תוצובק‪-‬תתהמ תועיפומה רויאב‪ 3.10‬אל הנרצווית ללכ ‪ -‬םא ‏‪ PR‬והב‬ ‫םיחמצםהבוגש ילמיסקמה הלוע לע רטמ ‪.‬דחא תוצובק‪-‬תתב תורחא ונמיי תוחפ‬ ‫םירביא ‪ -‬קר הלא םידמועהתשירדב‪.‬הבוגה סחי האצותה ליכי ‪ 4‬תורוש ‪:‬דבלב‬ ‫‪p_type | high_plants l‬‬ ‫‪2‬‬ ‫‪‎‬ע ‪19‬‬ ‫‪‎‬ספטמ‬ ‫‪1‬‬ ‫‪‎ XY‬יונ‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪‎‬חיש‬

‫‪‎‬נ ‪.‬‬ ‫‪.‬‬

‫‪‎‬רויא‪3.12‬‬ ‫רשאכ קוספב ‏‪ from‬םיעיפומ המכ ‪,‬םיסחי תלועפ הצבקהה תמרוג תקולחל‬ ‫הלפכמה תיזטרקה םהלש ‪.‬תוצובק‪-‬תתל‬

‫‪,8)(1‬תפשל * ‪65‬‬ ‫ךירדמהדימלקרפל ‪ | 3‬אובמ‬ ‫המגוד‪ 3.18:‬ואצמי' המכ םיחיש םילותש לכב הקלח המכ( םיליתש לש םיחמצ‬ ‫גוסמ ‪).‬חישי י‬ ‫‪501001‬‬ ‫)‪a_name,sum (amouni‬‬ ‫‪from planting_map,plant‬‬ ‫‪whereplanting_map.p_name‬‬ ‫‪= plant.p_name‬‬ ‫‪‎‬יחישי =‪and p_type‬‬ ‫‪group by a_name,‬‬ ‫רשפא חסנל יאנת יגול ליבגמה תא תוצובקה תואבומה ןובשחב האצותב ירחא‬ ‫תריצי ‪.‬תוצובק‪-‬תתה קר תוצובק תואלממה תא יאנתה תואבומ ‪.‬ןובשחב יאנת‬ ‫הזכ חסונמ קוספב ‏‪ having‬עיפומה ירחא קוספ ‏‪ ,group by‬אוהו ליכמ םיאנת‬ ‫םייגול המודב קוספל ‏‪.where‬‬ ‫המגוד‪ 3.19:‬ואצמיי תא תומש תוקלחה ןהבששרפה םיהבגה ןיב חמצה הובגה‬ ‫רתויב חמצהו ךומנה רתויבםיהבג( )םיילמיסקמ הלוע‏‪DY‬השולש ‪.‬םירטמ י‬ ‫הרקמב ‪,‬הז האצותה הכירצ לולכל תומש תוקלח‪,‬דבלב רמולכ ןיא הב תואצות‬ ‫לש תייצקנופ‪.‬הצבקה ךאשמתשהללכונ תויצקנופב םומינימה םומיסקמהו ךותב‬ ‫יאנת קוספב ‏‪ having‬ידכ אוצמל תא שרפה םיהבגה לכב ‪.‬הקלח התליאשה‬ ‫בתכית אופא ‪:‬ךכ‬ ‫‪080‬ה‪561006‬‬ ‫‪from planting_map,plant‬‬ ‫‪whereplanting_map.p_name‬‬ ‫‪= plant.p_name‬‬ ‫‪group by a_name‬‬ ‫)?‪having (max(p_maxheigh‬‬ ‫;‪‎ (p_maxheigh?)> 3.00‬זחוח ‪-‬‬ ‫שי םישל ‪,‬בל יכ יאנתל קוספב ‏‪ having‬תבייח תויהל תועמשמ ‪".‬תיתצובקי‬ ‫‪,‬רמולכ הכירצ תויהלתורשפא קודבל ותוא יבגל ‪,‬הצובק‪-‬תתלכ‪.‬התומלשב םושמ‬ ‫‪,‬ךכ םיאנתה םייגולה קוספב ‏‪ having‬םיחסונמ תרזעב תויצקנופ ‪,‬הצבקה ןכש‬ ‫תויצקנופ הלא תובשוחמ לע תוצובק‪-‬תת‪.‬ןתומלשב‬

‫‪@6‬תוכרעמיסיסבסינותנ‬ ‫ןןנךק‬

‫תןתלואש‬

‫ףיעס‪3.8‬רפסב‬

‫םיאנתה םייגולה וניארש דע ‪,‬הכ ןה קוספב ‏‪ where‬ןהו קוספב ‏‪ having‬ןללכ \'האוושה"השוריפשומיש‬ ‫ינמיסבסחיה>‪'. =,somer‬החץוואל ‪:‬צ קדוב םאל לודגוכרעב רביאמ והשלכ‪-1‬ב יד( היהיש ‪ 80880‬א‪-‬וםילימ‬ ‫תורומש‪.‬תויפולח‬ ‫‪-1‬ב רביא דחא ץ‪-‬ש לודג ‪).‬ונממ‬ ‫‏‪ Some +‬וא( ‏‪ (any‬לוכי עיפוהל םע לכ דחא ינמיסמ סחיה ‪ =>, allr‬ץ קדוב םאצ לודג וכרעב לכמ ‪.‬ץירביא‬ ‫‪ : v>allr‬קדוב םא ל הנוש לכמ ירביא‪,‬ע רמולכ םא ל וניא ךייש‪-1.‬ל לוקש‬

‫יאנתל ‪-‬ל ‏‪.Vnot in‬‬ ‫םג‪41‬ו לוכי עיפוהל‏‪ DY‬לכ דחא ינמיסמ סחיה ‪ =, , =>, =, =all (selectp_maxheight‬‬ ‫;‪from pland‬‬ ‫סחי האצותה לבקתמההתליאשמ וז אוה ‪:‬‬ ‫‏‘‪p_maxheight l‬‬ ‫שורב‬ ‫בלוד‬

‫‪.‬‬ ‫‪p_name‬‬ ‫‪70‬‬ ‫‪70‬‬

‫‬‫‬‫!‪.‬‬ ‫‪0‬‬

‫רויא‪3.1‬ג‬ ‫רשפארזעיהל תייצקנופבהצבקהה ‏‪ max‬ידכ חסנל תאהתליאשהתימינפה חוסינ‬ ‫‪,‬לוקש לשמל ‪:‬ךכ‬

‫‪@8‬תוכרעמיסיסבסינותנ‬ ‫‪1‬‬

‫‪561001‬‬ ‫‪‎‬ן‪7‬ק‪p_name,‬‬ ‫‪from plant‬‬

‫?‪wherep_maxheight=all (select max (p_maxheigh‬‬ ‫;‪from plani‬‬ ‫תמועל ‪,‬תאז יארשפאשמתשהלהיצקנופב ‏‪ max‬ידכ ךוסחל תא ןוניקה‪.‬התליאשב‬ ‫ידכ חכוויהל‪,‬ךכבןנובתנהלאשב‪.‬תפסונ‬ ‫‪ / 3‬המ היהת תאצותהתליאשה ‪:‬האבה‬ ‫‪501006‬‬ ‫‏‪p_name,max (p_maxheight‬‬ ‫‪from plant,‬‬ ‫' השעמל התליאש וז ללכ הניא ‪.‬תיקוח םא דימצנ םש לשהנתשמסחיל ‏‪plant‬‬ ‫הנתשמ הז שמשי םעפ הנתשמכ הרוש הנממש( חקלנ ךרעה לש‏‪p_name‬‬ ‫‪),‬האצותל םעפו גציימכ הדומע המלש ‪ -‬טנמוגראה לש תייצקנופ הצבקהה‬ ‫‪.Jmax‬‬ ‫‏)‪ D‬םא שידקנ ינש םינתשמ םינוש סחיל ‏‪ [plant‬אל לכונ רושקל ןיב ךרעה‬ ‫ילמיסקמה לש‏‪ p_maxheight‬ןיבל חמצה ‏‪. MY‬והבוג ‪,‬תינורקע סחי האצותה‬ ‫לבקתיש בצמב הז ליכי תא לכ תומש ‪,‬םיחמצה דילו לכ דחא םהמ ‪-‬ךרעה‪7.00‬‬ ‫הבוגה( ילמיסקמה יפל רויא‪3.2).‬‬ ‫‪,‬רומאכ ןוניק ירשפא םג ךותב קוספ ‪.‬חגצומק םיגדנ תאז ‪.‬ןלהל‬ ‫המגוד ‪ 3.23:‬חסננ תא ‪:‬התליאשה ואצמי" תא תומש תוקלחה ןהבש שרפה‬ ‫םיהבגה לש חמצה הובגה רתויב חמצהו ךומנה רתויב םיהבג( םיילמיסקמ‬ ‫םיילאיצנטופ לכל )חמצ אוההובגה""‪.‬רתויב‬ ‫‏‪a_name‬‬ ‫‪501601‬‬ ‫‏‪from planting_map,plant‬‬ ‫‪whereplanting_map.p_name‬‬ ‫‏‪= plant.p_name‬‬ ‫‏‪group by a_name‬‬ ‫‏‪ (p_maxheight))> = all‬זחוח ‪-‬‏)‪having (max(p_maxheight‬‬ ‫‏)®‪(select(max(p_maxhergh‬‬ ‫‏)?‪ (p_maxheigh‬זחוח ‪-‬‬ ‫‏‪from planting_map,plant‬‬ ‫‪whereplanting_map.p_name‬‬ ‫‏‪= plant.p_name‬‬ ‫;)‪group by a_name‬‬

‫‪,86(1‬תפשל * ‪69‬‬ ‫ךירדמהדימלקרפל ‪ | 3‬אובמ‬ ‫הקידב םא‬

‫םייק סחי‬

‫רדגומה ‪-‬תתב‬

‫התליאש‬

‫יאנת יגול קוספב ‏‪ where‬וא( קוספב ‏‪ (having‬לוכי לולכל הקידב םא סחי‬ ‫האצותה לשהתליאש תימינפ ‪,‬םייק וא אמש אוה סחי ‪.‬קירהנבמה לש יאנת הזכ‬ ‫‪:‬אוה‬ ‫‪58‬אלבייחאובלדימ‬ ‫‏‪select...‬‬ ‫ירחא‏‪.where‬ןתינובלשל‬ ‫‏‪ from ...‬םעםיאנתםייגולםיפסונ‬ ‫תועצמאברשקה‏‪.and‬‬ ‫‪)‎‬התליאש‪-‬תת(‪whereexists‬‬ ‫יאנת הז לבקמ תאךרעהייתמא"י םא סחי האצותה לשהתליאש‪-‬תתה וניא ‪.‬קיר‬ ‫םוקמב‏‪ exists‬לוכי עיפוהל םג‏‪ 101,exists‬יאנת וכרעשי"יתמא"י אקווד םא סחיה‬ ‫‪.‬קיר‬ ‫המגוד‪ 3.24:‬ואצמיי חמצ לותשה קר הקלחבי"‪.‬תחא‬ ‫‪561004‬‬ ‫‏‪pl.p_name‬‬ ‫‏‪from planting_mapasp1‬‬ ‫‏*‪wherenot exists(select‬‬ ‫‏‪from planting_mapasp2‬‬ ‫‏‪wherepl.p_name= p2.p_name‬‬ ‫;)‪and pl.a_namep2.a_name‬‬ ‫התליאש וזתשפחמ תומש םיחמצ ךותמ סחיה‏‪ .planting_map‬ידכ םשש חמצ‬ ‫ללכיי‪,‬האצותב שורד‏‪ planting_map-2¥‬אל הנייהת תומייק תורוש‏‪ DY‬םש חמצ‬ ‫ההז םשו הקלח ‪.‬הנוש ‪,‬רמולכ חמצהש אל עיפוי המכב תוקלח ‪.‬תונוש‬ ‫שומישה תרוצב‪,‬הלילשה‏‪ not exists‬אוה שומישה ץופנה ‪.‬רתוי‬ ‫וחסנ תא התליאשה המגודבש ליעל חוסינ לוקש ‪-.8)(1,‬ב אלל שומיש ‪ 2-‬‏‪not‬‬ ‫‪ 8,‬אלא תועצמאב ‪.‬הצבקה‬ ‫םנשי םיבצמ םהבש שומישה‬ ‫‪-6%1565‬ב וא ותלילשב אוה ‪,‬ינויח ןיאו ךרד תרחא‬ ‫אטבל תא ‪.‬התליאשה ןלהל המגוד ‪,‬תינייפוא תללוכה התליאש תימינפ ךותב‬ ‫התליאש ‪.‬תימינפ‬ ‫המגוד‪ 3.25:‬ואצמיי תוקלח םילותשש ןהבתוחפל םיחמצהלכ םילותשהתורדשב‬ ‫‪".‬רימזה‬

‫‪@0‬תוכרעמיסיסבסינותנ‬ ‫‪0‬‬

‫‪561601‬‬ ‫‪distinct ?.‬‬

‫‪from planting_mapas P‬‬ ‫‪wherenot exists(selectp_name‬‬ ‫‪from planting_map‬‬ ‫תורדשי ‪‎‬ירימזה =‪where a_name‬‬ ‫‪andp_namenotin‬‬ ‫‪(selectP1.p_name‬‬ ‫‪from planting_mapas P1‬‬ ‫;)‪where P.a_name= Pl.a_nameé‬‬ ‫התליאשב וז שי שומיש לופכ ‪:‬הלילשב םעפב הנושארה התליאשב תישארה ‪-‬ב‬ ‫‪ , not exists‬םעפבו היינשההתליאשב ‪‎‬תימינפה ‪.not in-1‬‬ ‫הנבמה יגולה לשהתליאשה ‏‪-. =( QX)) NI‬רבאהנתשמה א אוה חמצתורדשב רבסההזחינמתורכיה‬ ‫םעתומכסומהביתכה‬ ‫בישחת(‬ ‫‪,‬רימזה החסונהו ס)א( תנעוט יכ א אצמנ הקלחב העיפומה ‪.‬קאצותב םילימב בישחתבםיסחי‬ ‫)םיטקידרפ‪.‬הקיגולב םא‬ ‫‪,‬תורחא אל םייקתחמצתורדשב ‪,‬רימזהךבכ חמצהש אל אצמנ הקלחב העיפומה וניאעייסמ ‪-‬רשפאגלדל‬ ‫‪.‬וילע‬ ‫‪.‬האצותב‬ ‫הנבמ הז לוקש תיגול ‪:‬הנבמל ‏))‪, (X‬לא וא םילימב ‪:‬תורחא לכ חמצתורדשב‬ ‫רימזה אצמנ הקלחבהעיפומה ‪.‬האצותב‬ ‫יהוז תשירד ‪:‬התליאשה אצמ תוקלח םילותשש ןהב לכ םיחמצה םילותשה‬ ‫תורדשב ‪.‬רימזה ‪,‬םנמאו םיתיעל תובורק םישמתשמ הלילשב הלופכ ידכ אטבל‬ ‫תותליאש עיפומש ןהב יילכליי ‪.‬‬

‫תקידב‬

‫תויוליפכ‬

‫יאנת יגול קוספב ‏‪ where‬וא קוספב ‏‪ having‬לוכי ליכהל הקידב םא סחיב‬ ‫האצותה לש התליאש תימינפ שי תויוליפכ וא ‪.‬אל הנבמה יללכה לש יאנת הזכ‬ ‫‪:‬אוה‬ ‫‪...‬‬ ‫‪ 561001‬טקידרפהז וניאשמוממ‬ ‫תואסרגה‪,5)(1.‬לש‬ ‫לכב‬ ‫‪from ...‬‬ ‫‪)‎‬התליאש‪-‬תת( ‪where unique‬‬

‫‪,1()₪‬תפשל * ‪71‬‬ ‫ךירדמהדימלקרפל ‪ | 3‬אובמ‬ ‫המגוד ‪ 3.26:‬חסננ תרזעב ‏‪ unique‬תא התליאשה המגודמ ‪ 3.24:‬ואצמיי חמצ‬ ‫לותשההקלחב תחא לכל‪.‬יירתויה םישנ‪,‬בל קרלותשהחמציכהקלחב תחא עיפוי‬ ‫םעפ תחא דבלבהדומעב‏‪ p_name‬סחיב‏‪planting_map‬‬ ‫‪5610067 0‬‬ ‫‏‪unique‬ריזחמ‏‪true‬םא‬ ‫‪ from plantas 1‬התליאש‪-‬תתה‪,‬הקיר‬ ‫התליאשהתאצומ‬ ‫ןכלו‬ ‫םילותששהקלחב‬ ‫‪ where unique (selectp_name‬םיחמצ‬ ‫תחאלכל‪,‬רתויה אלו‬ ‫‪from planting_mapasP2‬‬ ‫הקלחבתחא‪.‬קוידב‬ ‫;)‪where Pl.p_name=P2.p_name‬‬

‫תואמגוד‬

‫תומכסמ‬

‫תותליאשל‬

‫לוגרתכ םכסמ איבנ תותליאש סיסבמ םינותנ ‪,‬רחא גציימה עדימ יגולאניג ןליא(‬ ‫‪).‬ןיסחוי תינבת סיסב םינותנה תללוכהשולש ‪:‬םיסחי‬ ‫‪person)10 first_name,original_surname,‬‬ ‫)‪new_surname,birth_date‬‬ ‫)‪marriage(m_id,w_id,date‬‬ ‫)‪‎ father rd,mother_id‬נס ‪child_of(child‬‬ ‫רויא‪: 3.14‬תוינבתםיסחיךותמ‬ ‫םינותנ‪-‬סיסבלשעדימיגולאנג‬ ‫סחיה ‏‪ person‬ליכמ םיטרפ םיישיא לש לכ םישנאה םיעיפומה ןליאב‬ ‫‪.‬ןיסחויה‏‪ original_surname‬גציימ תא םשהחפשמה ירוקמה לש םדאה‬ ‫‏)‪ DY‬םירוענה לש ‪,‬השיא וא םש יזעול‪,‬תרבועש ‪).‬וכו‬ ‫‏‪ pew_surname‬גציימ‬ ‫תא םשהחפשמה ‪.‬שדחה םא אל עיפומ םש ‪,‬שדח וכרע ההז םשל ‪.‬ירוקמה‬ ‫םא םדא ףילחה םש רתויםעפמ ‪,‬תחא םימשור קר תא ומש ירוקמה תאו ומש‬ ‫‪.‬ןורחאה‬ ‫סחיה‏‪ marriage‬ליכמ עדימ לע םיאושינ ןיב ינב םדא םיעיפומה סיסבב‬ ‫‪.‬םינותנה ‪ 040‬גציימ תא ךיראת ‪.‬םיאושינה‬ ‫סחיה‪ 0017001‬גציימ עדימ לע רשקה ןיבש‏‪ DTN‬וירוהלתכרעמב ‪.‬וז‬ ‫הנענ לע תותליאשה תואבה ‪-,8)(1:‬ב‬ ‫תותליאשה‬ ‫‪ 1‬ואצמ תומש לש םישנ לעמ ליג ‪,‬םישימח ודליש םידלי ךא תורמוש ןיידע לע וסנרותפלתא‬ ‫וללהםכמצעבינפל‬ ‫תונורתפב‬ ‫ונייעתש‬ ‫םש ‪.‬ןהירוענ‬ ‫‪.‬ךשמהבש‬ ‫‪ .2‬לכל גוז ‪,‬יושנ ואצמ המכ םידלי םיפתושמ שי ‪.‬ול האצותה הכירצ ליכהל תא‬ ‫ירפסמ תוהזה לש ינש םירוהה תאו רפסמ ‪.‬םידליה‬ ‫ ואצמ תומש החפשמ )םיירוקמ( שיש םהל תוחפל השולש תורוד ‪.‬ץראב‬‫החנהה( איה לכש עדימה סיסבב םינותנה סחייתמ )‪).‬ראל‬

‫‪72‬ף=תוכרעמיסיסבסינותנ‬ ‫‪ 4‬ואצמ תוגוז לש הצחמל‪-‬םיחא ‪,‬רמולכ( שיש םהל הרוה ףתושמ דחא‪).‬דבלב‬ ‫האצותה הכירצ ליכהל תוגוז לש ירפסמ ‪.‬תוהז‬ ‫‪ 5.‬ואצמ תומש לש םישנא ןיאש םהל ‪,‬םידלי ךא ןבל םגוז שי ‪.‬םידלי‬ ‫המגוד‪ - 3.27‬התליאש יסמ ‪ 1:‬ואצמ תומש לש םישנ לעמ ליג ‪,‬םישימח ודליש‬ ‫םידלי ךא תורמוש ןיידע לע םש ‪.‬ןהירוענ‬ ‫‪561601‬‬ ‫‪P.first_name,P.new_surname‬‬ ‫‪ from personas P‬תויצקנופהתועגונה‬ ‫םיכיראתלתואבומןאכ‬ ‫‏‪.postgreSQL‬‬ ‫= 500‬‬ ‫ףיעסב‪ 3.8.6‬גצומ קוספ ‏‪,with‬רשפאמה רידגהלהתליאש‪-‬תת סחיכ ינמזרשפאש‬ ‫סחייתהל וילאךשמהב‪.‬התליאשה‪,‬השעמלותעפשה ההז קוידב וזל לש ןוניק ‪-‬תת‬ ‫התליאש ךותב קוספ ‏‪ OXfrom‬יכ ילוא אירק ןבומו ‪.‬רתוי‬ ‫המגוד ‪ 3.33:‬חסננ בוש התוא התליאש ונחסינש המגודב ‪,‬תמדוקה םעפה‬ ‫תועצמאב ‏‪: with‬‬ ‫‪with plants_per_area(a_name,‬‬ ‫‏‪num_plants)as‬‬ ‫‪561606‬‬ ‫‏‪a_name,sum(amoun?5 1111m_p1a11ts‬‬ ‫‏‪from planting_map‬‬ ‫‏)‪group by a_name‬‬ ‫‏‪selecta_name‬‬ ‫‏‪from plants_per_area‬‬ ‫‪where 1111127_/7/;111ts‬‬ ‫;‪> 500‬‬ ‫ךרד תיפולח אטבל התליאשתלעפומה לע סחי האצותה לש התליאש תרחא איה‬ ‫תושעל תאז ינשב ‪:‬םיבלש חסנל התליאש תחא רומשלו תא ‪,‬התאצות זאו חסנל‬ ‫תא התליאשה ‪.‬היינשה ידכ רומשל תא סחי האצותה לש ‪,‬התליאש שי תתל ול‬ ‫‪ 861604‬תועצמאב הלימההרומשה‪1840.‬‬ ‫‪.‬םשרשפא רידגהל םש הז ףוסב קוספ‬ ‫המגוד‪ 3.34:‬ןלהל חוסינ לוקשהתליאשל תמדוקה תועצמאב דמצ ‪.‬תותליאש‬ ‫‪e selecta_name,sum (amount)asnum_plants‬‬ ‫‪into plants_per_area‬‬ ‫‪from planting_map‬‬ ‫;‪group by a_name‬‬ ‫‪‎‬ה‪e select 4‬‬ ‫‪08‬‬ ‫‪from plants_per_area‬‬ ‫;‪where num_plants>= 500‬‬

‫‪,1()₪‬תפשל * ‪75‬‬ ‫ךירדמהדימלקרפל ‪ | 3‬אובמ‬ ‫םירקמב ‪,‬םיבר לוציפ התליאש תבכרומ המכל תותליאש יושע ריהבהל תא‬ ‫םיבלשה םישורדה ןורתפל ךכבו לקהל תא ךילהתהבישחה ‪.‬הביתכהו‬

‫ןוכדע‬

‫סיסב‬

‫ףיעס‪3.9‬רפסב‬

‫םינותנה‬

‫דע הכ ונקסע ‏‪ SQL-2‬תפשכ ‪,‬תותליאש רמולכהפשכ תפילשל םינותנ םיאצמנה‬ ‫סיסבב ‪.‬םינותנה התע הארנ דציכשמתשהל‏‪ SQL-2‬ידכ ףיסוהל םינותנ ‪,‬םישדח‬ ‫קוחמל םינותנ םימייק וא ןכדעל ‪.‬םינותנ‬ ‫וארק תא ףיעס‪.3.9‬רפסב‬

‫ם‬

‫הקיחמ‬ ‫‪06106‬‬ ‫תלועפ הקיחמ תסחייתמ דימת תורושל ‪.‬תומלש רשפא קוחמל תא לכ תורושה = הקיחמ‬ ‫סחיב ‪,‬ןותנ וא קר תורוש תונועה יאנתל םיוסמ רדגומה קוספב ‏‪ ,where‬קוידב‬ ‫ומכ‪.‬התליאשב‬ ‫המגוד ‪ 3.35:‬חיננ הצרנש שדחל ןיטולחל תא ןוניגה לש רכיכיי ‪".‬הייריעה ידכ‬ ‫קוחמל תא תורושה תומייקהתפממ ןוניגה ‪:‬םושרנ‬ ‫‪161616‬‬ ‫‏‪from planting_map‬‬ ‫‪'‎ 1,‬הייריעה =‪where a_name‬‬ ‫יאנתה קוספב ‏‪ where‬לוכי תויהל םג בכרומ ‪,‬רתוי לככ יאנת ‪,‬התליאשב ללוכ‬ ‫ןוניק וא ‪.‬הצבקה‬ ‫המגוד ‪ 3.36:‬בקע תופירשה טלחוה ללדל תא םינרואה תוקלחב ןוניגה לש‬ ‫‪.‬הייריעה בלשב ןושאר ורקעיי םינרואה קר תוקלחמ שיש ןהב םג םיצע ‪.‬םירחא‬ ‫רחאל עוציב הריקעה שי ןכדעל תא ינותנתפמ ‪:‬הליתשה‬ ‫‏‪deletefrom planting_map‬‬ ‫‪ 08‬ןרואי 'םילשורי =‏‪wherep_name‬‬ ‫‏‪a_namein(selecta_name‬‬ ‫‏‪from planting_map,plant‬‬ ‫‪08‬י‪6‬סצעי ‏‪wherep_typelike‬‬ ‫‏‪ and‬ןרוא 'םילשורי ‏‪plant.p_name‬‬ ‫;)‪plant.p_name=planting_map.p_name‬‬

‫‪ * 6‬תוכרעמיסיסבסינותנ‬ ‫‪‎‬הפסוה‪insert‬‬

‫הפסוה‬ ‫םג הפסוה איה ךרדב ללכ לש תורוש ‪.‬תומלש םיפיסומ תורוש לע ידי הביתכ‬ ‫תשרופמ לש םיכרעה ‪,‬ןהב וא םיפיסומש תורוש ולבקתהש האצותכ‪.‬התליאשמ‬ ‫המגוד‪ 3.37:‬םשלתפלחה םינרואה שודיחלו תוניגה םיסינכמ שומישל ינש יצע‬ ‫יונ ‪:‬םישדח ףיזש ינבדבוד ‪ -‬אוהש‏‪ XY‬לעב םילע םיהכ‪-‬םימודא וניאש דמוע‬ ‫‪,‬תכלשב לילכושרוחה ‪ -‬אוהש ‏‪ Y‬רישנ לעבהחירפ הלוגס וא()הנבל לדגה םג ‪.‬רב‬ ‫תפסוהל עדימה םהילע שי עצבל הפסוה לש יתש תורוש‪,‬תודרפנ לכש תחא והמ‬ ‫תטרפמ תא לכ םיכרעה‪.‬הרושב‬ ‫חיננ והבוגיכ לש ףיזשינבדבוד ‪,‬םירטמ‪-7‬לעיגהללוכי אוהו קוקז חוורמלהליתש‬ ‫רטוקב ‪, 4‬םירטמ יכו לילכשרוחה יושע עיגהלדע ‪, 4‬םירטמ קוקזו חוורמלהליתש‬ ‫רטוקב ‪: 3‬םירטמ‬ ‫‪insert into p/ant‬‬ ‫;)‪\Y, 4.00,7.00‬ילונ ‪‎‬ףיזשי‪values(2727 ,‬‬ ‫‪insert into plant‬‬ ‫;)‪)‎ 5527,M Ny, 3.00,4.00‬שרוחה‪values‬‬ ‫רשפא ‏)‪: D‬םושרל‬ ‫‏‪insert into plant‬‬ ‫‏‪\Y, 4.00,7.00),‬ילונ ףיזשי‪),‬יינבדבוד‏‪values‬‬ ‫‪* , ,3.00;)4.00‬עי‪,‬ייונ לילכי )שרוחה‬ ‫המגוד‪ 3.38:‬חיננטלחוהשףילחהל תא םינרואהלכ יצעב ףיזש‪.‬ינבדבודהפלחהה‬ ‫איה‏‪ XY‬דגנכ ‪*.‬ע ‪,‬רמולכ רפסמ יליתש ףיזשה ינבדבודה לכב הקלח היהי ההז‬ ‫רפסמל םינרואה ויהש ‪:‬הב‬ ‫‏‪planting_map‬רח‪1‬ס ‏‪insert‬‬ ‫‏‪ a_name,1‬ףיזש'‪ ,‬יינבדבוד‏‪select‬‬ ‫‏‪from planting_map‬‬ ‫‪!‎ NN,‬םילשורי =‪wherep_name‬‬ ‫ירחא עוציבהפסוהה קחמנ תא תורושהתועגונה ןרואל ‪:‬םילשורי‬ ‫‪161066‬‬ ‫‪from planting_map‬‬ ‫‪‎‬ןרוא'; ‪wherep_name= 105V‬‬

‫‪,86(1‬תפשל * ‪77‬‬ ‫ךירדמהדימלקרפל ‪ | 3‬אובמ‬ ‫ןוכדע‬ ‫תלועפ ןוכדע איה יוניש ךרע לש הנוכת תמיוסמ ‪.‬סחיב יונישה לוכי סחייתהל‬ ‫הרושל תיפיצפס וא תצובקל תורוש תנייפואמה תועצמאב ‪.‬התליאש אוה לוכי‬ ‫בוקנלשרופמב ךרעב שדחה וא רידגהל ותוא תועצמאב יוטיב ינובשחשמתשמה‬ ‫םיכרעב ‪.‬םימייק‬ ‫המגוד‪ 3.39:‬הייריעה הטילחה ןיטקהל תא חטש ןוניגה לש ןג תואמצעה‪-10%‬ב‬ ‫םשל תאצקה יחטש הינח ‪.‬םיפסונ חטשה שדחה אוה התע‪. 54,000‬ריימ תלועפ‬ ‫ןוכדעה המיאתמה הלוכי תויהל ‪:‬וזכ‬ ‫‪update area‬‬ ‫‪seta_size = 0‬‬ ‫ןג' ‪'=‎‬תואמצעה‪where a_name‬‬ ‫‪,‬ןיפולחל איה הלוכי ססבתהל‏‪ DY‬רועיש‪,‬התחפהה םג סא חטשה יחכונה וניא‬ ‫‪:‬עודי‬ ‫‪update area‬‬ ‫‪seta_size= a_size*9‬‬ ‫ןאנ ‪'=‎‬תואמצעה‪where a_name‬‬

‫? וחסנ תלועפ ןוכדע תחא ףילחתש תא לכ םינרואה םיימלשוריה םיפיזשב‬ ‫‪,‬םיינבדבוד סוקמב תלועפ הפסוהה ונאבהש ‪,‬םדוק סע הקיחמה הכירצש‬ ‫אובל‪.‬היתובקעב‬ ‫‪updateplanting_map‬‬ ‫ףיזשי‪‎‬יינבדבוד =‪setp_name‬‬ ‫‪‎ W,‬יםילשורי =‪wherep_name‬‬ ‫‪‎‬תפש‪SQL‬תרשפאמ רידגהל ןוכדע‪,‬הנתשמ יפל ‪.‎‬יאנת‬ ‫המגוד ‪ 3.40:‬חיננ םאש שי הקלחב רתוי ‪-3‬מ ‪,‬םינרוא יזא םיפילחמ םתוא‬ ‫םיפיזשב ‪,‬םיינבדבוד ךא םא שי תוחפ ‪-3‬מ םיפילחמ םתוא יצעב לילכ ‪:‬שרוחה‬

‫‪@78‬תוכרעמיסיסבסינותנ‬ ‫‪updateplanting_map‬‬ ‫=‪setp_name‬‬ ‫‪case‬‬ ‫‪whenp_name=05V‬‬

‫‪‎ and amount> 3‬ןרוא‬ ‫ףיזש'‪‎‬יינבדבוד ‪then‬‬ ‫‪ and amount< =3‬ןרוא ‪'‎‬םילשורי =‪whenp_name‬‬ ‫לילכי‪‎‬ישרוחה ‪then‬‬ ‫ס‪150‬‬ ‫‏‪p_name‬‬ ‫;‪end‬‬

‫ייוטיב‬

‫ףוריצ‬

‫יוטיבףוריצ‬ ‫‏‪joinexpression‬‬

‫ףיעסב הז גיצנ גוס דחוימ לש םייוטיב ‪-,561,‬ב םניאש םיפיסומ תלוכיל יוטיבה‬ ‫רבכש ונרכה‪--8)01,‬ב ךא םיווהמ הביתכ תרצוקמ םיתיעלו החונ רתוי תותליאשל‬ ‫ונחסינש םיכרדב ‪.‬תורחא‬ ‫אשונה עיפומרפסבתליחתב קרפה אבה ‪ -‬קרפ ‪- 4‬ףיעסב‪ 4.1.‬ונא םיאיבמ ותוא‬ ‫‪,‬ןאכ םויסל קרפ ‪ 3,‬ןוויכ אוהש רושק תורישי תביתכל תותליאש‪-.86(1,‬ב איהש‬ ‫אשונה ירקיעה לש‪,‬קרפה המאתהבו םע םירוטרפואה םיירבגלאה ונדמלש קרפב‬ ‫‪2‬‬

‫ףוריצ יעבט‬ ‫טעמכ לכ התליאשתפלושה עדימ םיסחימ םינוש י'הבילצמיי תא עדימה םהיניב‬ ‫תרזעב יאנת ןויווש‏‪ DY‬םיכרעה הנוכתבתפתושמה ‪.‬םהינשל והז בצמ *ופנ דואמ‬ ‫יסיסבב ‪,‬סינותנ וניארו קרפב ‪ 2‬יכ שדקומ ול רוטרפוא ירבגלא דחוימ רשוקה ןיב‬ ‫ינש ‪.‬םיסחי‬ ‫‪,‬לשמל עדימה סחיב ק‪ ]48/‬רושק עדימל סחיב ‏‪ planting_map‬תועצמאב‬ ‫‏‪ ; p_name‬עדימה סחיב‪ 4104‬רושק עדימל סחיב‏‪ planting_map‬תועצמאב‬ ‫‪.a_name‬‬ ‫המגוד‪ 3.41:‬המגודב‪ 3.3‬תליחתבש קרפה ונשפיח תומוקמ םילותשש םהב יצע‬ ‫‪.‬בורח ונבתכ תאהתליאשה ‪:‬ךכ‬

‫ףוריציעבט‬ ‫‏‪natural‬‬ ‫ןסומ‬

‫‪,1()₪‬תפשל * ‪79‬‬ ‫ךירדמהדימלקרפל ג | אובמ‬ ‫‪501606‬‬ ‫‪a_Jocation‬‬ ‫‪‎‬תנהק ‪from area,planting‬‬ ‫‪where area.a_name‬‬ ‫‪=planting_map.a_name‬‬ ‫בורחי; ‪=‎‬ייוצמ‪andp_name‬‬ ‫שי ןאכ יאנת ןויווש ןיב םיכרע לש הנוכת שיש הל ותוא םש ינשב ‪.‬םיסחי והז‬ ‫ףוריצ יעבט ןיב ‪,‬םיסחיה ‏)‪ SQL-1‬שי ריבחת רצוקמ ‪.‬הרובע תא התליאשה‬ ‫המגודמ‪3.3‬רשפא בותכל םג ‪:‬ךכ‬ ‫‪501606‬‬ ‫‪a_Jocation‬‬ ‫‪‎ planting map‬ןסוח ‪from areanatural‬‬ ‫‪=‎ 200‬ייוצמ‪wherep_name‬‬ ‫ןוויכמ ףוריצהש יעבטה רשקמ קר תורוש םע ךרע ההזהדומעבמהמנס ‪ 4‬ןיא היעב‬ ‫לש לפכ תועמשמ רשאכ םישמתשמ םשב הנוכתה‏‪ .a_name‬רשפא תוארל תא‬ ‫סחיה רדגומה‪1‬ויסמו‪-‬ב סחיכ ‪,‬דחא הנוכתהש‏‪ a_name‬העיפומ וב םעפ תחא‬ ‫‪.‬דבלב‬ ‫המגוד‪ 3.42:‬ידכשיגדהלהנחבה וז ןנובתנ יתשב תותליאשה ‪:‬תואבה‬ ‫*‪.1 50100‬‬ ‫תנהק ‏‪from area,planting‬‬ ‫‪where area.a_name‬‬ ‫‪= planting_map.a_name‬‬ ‫‏;‬ ‫‏*‪.2 select‬‬ ‫;‪from areanatural join planting map‬‬ ‫יפלהמגודה ‪,‬תמדוקה תותליאשהיתש ‪.‬תולוקש לכב תאז שי ןהיניבלדבההרקמב תכרעמ‏‪DBMS‬גיצת‬ ‫ךרדבללכתאתומשיתש‬ ‫הז ‪ -‬אוהותינבתב ‪.‬האצותה תאצותב התליאשה הנושארה וללכיי ‪: 6‬תודומע ‪ 3‬תודומעההרוצבהנוש‬ ‫יפל‪.‬ןרוקמ‬ ‫לש‏‪-3 area‬ו לש‏‪ .planting_map‬הדומעה‏‪ a_name‬עיפות ‪,‬םיימעפ םע ךרע ההז‬ ‫לכב ‪,‬הרוש ינשב ‪.‬םיעפומה תאצותב התליאשה היינשה וללכיי קר ‪ 5‬תודומע ‪-‬‬ ‫‏‪.a_npame‬‬ ‫ןתוא תודומע לשהתליאשה‪,‬הנושארה ךא ילבהרזחה לעהדומעה‬

‫ףוריצ יפל יאנת‬ ‫אל דימת הנוכתה וא( )תונוכתהתרשקמש ןיב ינש םיסחי תארקנ ותואב ‪,‬םש וא‬ ‫אלש דימת הצרנ רשקל ןיב םיסחי יפל לכ תונוכתה תולעב םשה‪.‬ףתושמה ‏‪SQL‬‬ ‫תרשפאמשמתשהל ייוטיבב ףוריצ םינייצמששרופמב והמ יאנתה לעש ויפ הצרנ‬ ‫רושקל ןיב ‪.‬םיסחיה‬

‫‪@0‬תוכרעמיסיסבסינותנ‬ ‫המגוד‪ 3.43:‬תא ףוריצה יעבטה המגודמ‪ 3.41‬רשפא םושרל םג ךות ןויצ שרופמ‬ ‫לש יאנת ףוריצה אוהש( הרקמב‏‪ DT‬ההז יאנתל ףוריצה ‪,‬יעבטה ןכלו רשפא‬ ‫‪,‬וטימשהל ומכ המגודב‪3.41):‬‬ ‫‪501606‬‬ ‫‏‪a_Jocation‬‬ ‫‏‪from areajoin planting_map‬‬ ‫‪on area.a_name‬‬ ‫‏‪= planting_map.a_name‬‬ ‫בורחי ‪‎‬ייוצמ =‪wherep_name‬‬ ‫המגוד ‪ 3.44:‬המגודב‪ 3.32‬ונאצמ תומש תוקלח שיש ןהב תוחפל‪, 500‬םיליתש‬ ‫ונרציו סחי שדח םע תאצות התליאשה ‪.‬וזה םעפה רוצינ סחי בחר‏‪, VYN‬רתוי‬ ‫ליכיש לכל הקלח תא החטש תאו רפסמ םיליתשה ללוכה לותשה ‪:‬הב‬ ‫‪561606‬‬ ‫‪a_name,a_size,sum(amount)5 num_p/zlnlsinto areal‬‬ ‫‪from areanatural join planting_map‬‬ ‫‪group by a_name,a_size,‬‬ ‫התע הצרנ תוושהל תא תופיפצ הליתשה ןיב ‪:‬תוקלח שפחנ תוגוז לש תומש‬ ‫‪,‬תוקלח ךכהנושארהש הלודג רתויהחטשב‪,‬היינשהמ ךא רפסמ םיליתשה ללוכה‬ ‫הב ןטק ‪.‬רתוישמתשנ‪1‬סחיב ‪ 4108‬ונבשיחש ‪:‬םדוק‬ ‫‪561001‬‬ ‫‏‪Al.a_name,A2.a_name‬‬ ‫‏‪Al join arcalas A2‬ה‪ 270475‬‏‪from‬‬ ‫‏‪ Al.asize> A2.a_sizeand‬סח‬ ‫;‪Al.num_plants< A2.num_plants‬‬ ‫המגוד‪ 3.45:‬חיננהתע יכ ונא םיניינועמ אוצמל ןכיה תמקוממ הקלחה םע רפסמ‬ ‫םיליתשה לודגה ‪.‬רתויב עדימה יבגל םוקימ הקלחה אצמנ סחיב‏‪ .area‬רפסמ‬ ‫םיליתשה אצמנ סחיב‪ 41041,‬רבכש ונשמתשה ‪.‬וב‪-4108‬ל‪-41041‬לו שי יתש‬ ‫תודומע םע םש ההז ‪-‬‏‪ a_nameDX‬םגו ‪,4.4120‬השעמל הפצנ םאש םש הקלחה‬ ‫‪,‬ההז יזא םג לדוגה ‪.‬ההז דחי םע ‪,‬תאז ךרוצל תבלצה עדימה יד ונל ךכב םשש‬ ‫הקלחה ‪.‬ההז לכונ עצבל ףוריצ יעבט ןיב ינש ‪,‬םיסחיה ךות ןויצ הדומעה ונאש‬ ‫םיניינועמ ‪:‬תוושהל‬ ‫‪561601‬‬ ‫‏‪a_Jocation‬‬ ‫‏)‪(a_name‬טפוחק ‏‪from areajoin areal‬‬ ‫;)‪where num_plants>=all (selectnum_plantsfrom areal‬‬

‫‪,8)(1‬תפשל * ‪81‬‬ ‫ךירדמהדימלקרפל ‪ | 3‬אובמ‬ ‫תואמגוד‬

‫תומכסמ‬

‫תותליאשל‬

‫םוכיסל םיאשונה םיפסונה ‪,‬ודמלנש רוזחנ תכרעמל עדימה יגולאנגה האבוהש‬ ‫רבכ רויאב‪ 3.14,‬םשל לוגרת ‪.‬ףסונ תוינבת םיסחיה ‪:‬ויה‬ ‫‪person)10first_name,original_surname,‬‬ ‫)‪new_surname,birth_date‬‬ ‫)‪marriage(m_id,w_id,date‬‬ ‫)‪‎ father 10,motherid‬נס ‪child_of(child‬‬ ‫רויא‪3.15‬תוינבתםיסחיךותמסיסבםינותנלשעדימיגולאנג‬ ‫חסננשדחמ שולש תותליאשהמ רבכש ‪,‬ונחסינ תועצמאב ייוטיב ‪:‬ףוריצ‬ ‫תותליאשה‬ ‫‪ 6.‬לכל גוז ‪,‬יושנ ואצמ המכ םידלי םיפתושמ שי ‪.‬ול האצותה הכירצ ליכהל תא וסנחסנלתא‬ ‫‪,‬םכמצעב קרורחאךכ‬ ‫ונייע‪.‬ןורתפב‬ ‫ירפסמ תוהזה לש ינש םירוהה תאו רפסמ ‪.‬םידליה‬ ‫‪ 7.‬ואצמ תוגוז לש הצחמל‪-‬םיחא ‪,‬רמולכ( םיחא שיש םהל הרוה ףתושמ דחא‬ ‫‪).‬דבלב האצותה הכירצ ליכהל תוגוז לש ירפסמ ‪.‬תוהז‬ ‫‪ 8‬ואצמ תומש לש םישנ ןיאש ןהל ‪,‬םידלי ךא ינבל םגוז ‪.‬שי‬ ‫המגוד‪ - 3.46‬התליאש‪ 16701‬לכל גוז ‪,‬יושנ ואצמ המכ םידליםיפתושמ שי ‪.‬םהל‬ ‫האצותה הכירצ ליכהל ירפסמ תוהז לש ינש םירוהה תאו רפסמ ‪.‬םידליה םישנ בל‬ ‫יכ תונוכתהתופתושמה םיסחיל תועיפומ אקווד תומשב םינוש לכב דחא ‪,‬םהמ‬ ‫יפלתועמשמה ותואב ‪.‬סחי ןכלשמתשנ ףוריצב יפל ‪,‬יאנת אלו ףוריצב ‪:‬יעבט‬

‫‪idandw_i1d= mother_id‬‬

‫ו‪561601,0‬‬ ‫‪‎‬תנ‬ ‫‪w_id,count (child 0‬‬ ‫‪from marriagejoin child_of‬‬ ‫‪‎ m_id= father‬סח‬ ‫‪group by m_id, w_id,‬‬

‫המגוד‪ - 3.47‬התליאש "סמ ‪ 7:‬ואצמ תוגוז לש הצחמל‪-‬םיחא שיש( םהל הרוה‬ ‫ףתושמ דחא‪).‬דבלב האצותה הכירצ ליכהל תוגוז לש ירפסמ ‪.‬תוהז ןאכהבושתה‬ ‫תססובמ לע תבלצה עדימ ןיב תורוש ותואב ‪,‬סחי ןכלו םירקמב הלא לכונ‬ ‫שמתשהל ףוריצב ‏‪ P2‬םיעפומ םינוש לש ותוא ‪,‬סחי לבגומש תועצמאב‪.‬טפומק ךכ‬ ‫רוצינ ינש םיפוריצ ןיב ינש םיעפומ‪01‬לש‪ 08170,‬לכש דחא םהמ םיאתיתבלצהל‬ ‫עדימ יבגל דחא ‪.‬םירוהה בלשנ תא ינש םינוויכה תועצמאב‪:‬וטמוסמ‬

‫התליאש וזהמצמוצקר‬ ‫קלחלדחא‪.‬הלש‬

‫‪ = 2‬תוכרעמיסיסבסינותנ‬ ‫‪‎ 0‬סל‪ (selectP1.7d‬חוסינבהתליאש וז‬ ‫המגודב‬ ‫‪3.29‬‬ ‫ונשמתשה‬ ‫‪ from child_ofas 71join child_ofas P2‬יאנתבןטקי'"'מ ןיב‬ ‫ירפסמתוהזהלשינש‬ ‫)‪using(/ather_id‬‬ ‫םיחאידכחיטבהללכש‬ ‫)‪ where Pl.mother_id< P2.mother_id‬גוזרוזחיםעפתחא‪.‬דבלב‬ ‫לשב‬ ‫הנבמההנושהלש‬ ‫ונשמתשה ןאכ‬ ‫‪, union‬התליאשה‬ ‫תאוושהב‬ ‫ותואבןויער‬ ‫‪ (selectP1.:d P2.1d‬ירפסמתוהזהלשםאה‬ ‫ואלש‪,‬באהםוקמב‬ ‫‪ from child_ofasP1join child_ofasP2‬יאנתבןויווש‪-‬יא‪.‬ליגרהז‬ ‫חיטבמהתואהאצותךא‬ ‫‪using(mother_id‬‬ ‫ךסוחתביתכ‪.‬םיאנת‬ ‫;)‪where P1.father_id< P2.father_id‬‬ ‫המגוד‪ - 3.48‬התליאש "סמ ‪ 8:‬ואצמ תומש לש םישנ ןיאש םהל ‪,‬םידלי ךא‪120‬‬ ‫תולוכיתויהליתש‬ ‫ןגוז ‪.‬שי‬ ‫תומושרןיאושינהתואל‬ ‫השיאוא(ףא‪),‬רתויאלו‬ ‫יתלבירשפאיאנתהש‬ ‫‪.‬ןהיתשבןכל‬ ‫‪ 561601‬םייקתי‬ ‫‪distinet W.first_name,W.new_surname‬‬ ‫‏‪.distinct-a2‬‬ ‫ונשמתשה‬ ‫‪from marriageasW‬‬ ‫‪1)561601‬ח ‪.‎ 7001‬וש ‪where‬‬ ‫‪mother_idfrom chilf 2‬‬ ‫‪‎‬סלנ ‪and W.m_idin (selectfather_idfrom child‬‬ ‫לוגרתל תולועפ ןוכדעה עצבנ תאתולועפה ‪:‬תואבה‬ ‫‪ 9.‬חיננ יכ םיצור ףיסוהל סחיל‏‪ marriage‬םג תוגוז םניאש ‪,‬םיאושנ ךא שי םהל‬ ‫םידלי ‪.‬םיפתושמ הרקמב הזךרעההדומעב‏‪ date‬היהי‪.‬הט[[‬ ‫‪ 0.‬בקע יוניש תוינידמ יבגל תכרעמ ‪,‬עדימה טלחוה םאש ךרעה הדומעב יונישהזכבייחי‏)‪D‬יוניש‬ ‫תותליאשבןוגכהתליאש‬ ‫‏‪ new,_surname‬ההז ךרעל הדומעב‏‪ original_surname‬ןיא ךרוצ םקיוחהל ‪1‬לוגרתב‪.‬םכסמה‬ ‫‏‪.null-5 new_surname‬‬ ‫‪,‬םיימעפ אלא שי ךופהל תא‬ ‫המגוד‪ - 3.49‬התליאש ‪"‎‬סמ‪19‬‬ ‫‪1‎0‬ח‪1‬ס ‪insert‬‬ ‫‪(selectfather_id,mother_id,null‬‬ ‫‪from child of‬‬ ‫‪where(father_id,mother_id)not in‬‬ ‫;))‪(selectm_id, w_idfrom marriage‬‬ ‫המגוד‪ - 3.50‬התליאש ‪"‎‬סמ ‪:10‬‬ ‫‪updateperson‬‬ ‫‪501new_surname= null‬‬ ‫‪where new_surname= original_surname,‬‬

‫קרפ‬

‫‪4‬‬

‫‪1‬‬

‫‪-‬‬

‫תמר‬

‫‏‪D32‬‬

‫‪,‬פ)ַ‪ ,01‬ןכו תא ריבחתה לש‬ ‫קרפב םדוקה ונרכה תאהנבמה יסיסבה לש תותליאש‬ ‫תולועפ ‪.‬ןוכדע ונמגדה תא םינבמה ודמלנש‏‪ DY‬ךרעמי ןוניגה ‪,‬יינוריעה ללכש‬ ‫השולש םיסחי ‪.‬םיטושפ םינותנה םיסחיב הלא וליכה עדימ לע תוקלח ןוניג לעו‬ ‫‪,‬םיחמצ רואיתו לש תנומת בצמה יבגל םיחמצה םילותשה תוקלחב ןוניגה‬ ‫‪.‬תונושה‬ ‫תוכרעמ יסיסב םינותנ תודעוימ םישומישל םירישע‪,‬הברהב ןה תניחבמ ןווגמ‬ ‫‪,‬םינותנה ןה תניחבמ תופוקת ןמזה ןהילאש םיסחייתמ ‪,‬םינותנה ןהו תניחבמ‬ ‫תויורשפא שומישה‪.‬תוכרעמב‬ ‫ןייפאמ בושח לש תכרעמ לוהינל יסיסב םינותנ אוה התלוכי תרשל םישמתשמ‬ ‫‪,‬םיבר םישגינש תינמז‪-‬וב עדימל סיסבבש ‪.‬םינותנה ןוויג םינותנה יובירו‬ ‫םישמתשמה רצוי תובכרומ הליטמש לע תכרעמ סיסב םינותנה םידיקפת םיבר‬ ‫‪,‬םינושו םרטש ‪.‬ונרכה‬ ‫קרפ הז גיצמ תצקמ םידיקפתה ‪,‬וללה ךותתבחרה תורכיהה ‏‪ .SQLoy‬וארק תא ףיעס‪4.1‬רפסבקסוע‬ ‫ייוטיבב‪,‬ףוריצרבכש‬ ‫קרפ ‪,4‬רפסב לחהףיעסב‪ 4.2.‬םיפיעסה ךירדמב הדימלה םיבקוע רחא םיפיעסה ונקסעםהבףוסבקרפ‪3‬‬ ‫‪.‬הדימלה‬ ‫ךירדמב‬ ‫‪,‬רפסב ךכ רשפאש םג אורקל לכ ףיעס רפסב ‪,‬דרפנב ינפל האירקה ךירדמב‬ ‫הדימלה וא ‪.‬הירחא‬

‫‪6*4‬תוכרעמיסיסבסינותנ‬ ‫תרדגה‬

‫תוינבת‬

‫קרפ‪3‬רפסב גיצמףיעסב‪ 3.2‬תא תוארוהה תויסיסבהתרדגהל תוינבת לש ‪.‬םיסחי‬ ‫קרפב ‪ 3‬אל ונד תוארוהב ‪.‬הלאחתפנ תא קרפה יחכונה‪,‬ןתגצהב ביחרנוךשמהב‬ ‫‪.‬קרפה‬ ‫םשלתמגדה םיביכרמה ‪,‬םישדחה ביחרנ םג תאךרעמיי ןוניגה ‪,‬יינוריעה לולכיש‬ ‫עדימ ףסונ ימנידו ‪.‬רתוי ןלהל איבנ בוש תא תוינבת םיסחיה קרפמ ‪ 3,‬תפסותב‬ ‫תוינבת םיסחיה‪.‬תושדחה‬ ‫תוינבתה ‪‎‬קרפמ ‪:3‬‬ ‫)‪area(a_name,a_location,a_type,a_size‬‬ ‫?‪plant (p_name,p_type,p_diameter,p_maxheigh‬‬ ‫?‪planting_map(p_name,a_name,amoun‬‬ ‫רויא‪4.1‬תוינבתםיסחירובעךרעמןוניגה‬ ‫לכב הנוע םישדחמ תוחפל( )תיקלח תא ןוניגה תוקלחב ‪.‬תונושה ותישאר לש‬ ‫ךילהת הז בוציעב ןוניגה שדחה הנועל לכב ‪,‬הקלח וכשמהו תינכותב הדובע םשל‬ ‫עוציב בוציעה ‪.‬ליינה הדובעה תלטומ‏‪ DY‬םיננג ‪,‬םינוש תינכותהו תטרפמ תא‬ ‫תומישמהדובעה תוקלחב תונושה יפל‪.‬תועובש‬ ‫תוינבתה רובע עדימה עגונה ‪:‬בוציעל‬ ‫‏)‪design(a_name,year,season,designer,map_file‬‬ ‫‪design_details(a_name,‬‬ ‫)‪year,season,p_name,quantity‬‬ ‫רויא‪4.2‬תוינבתםיסחירובעבוציעךרעמןוניגה‬ ‫סחיה‏‪ design‬ללוכ םיטרפ יבגל בוציע ןוניגה יתנועה הקלחב ‪:‬תמיוסמ חתפמ‬ ‫סחיה ללוכ תאהנשההבש רבודמ‏)‪ (year‬הנועה‏)‪,- season‬ולתס ‪,‬ףרוח ביבא וא‬ ‫‏‪, (NP‬הקלחה סש בצעמה ןכו הינפה *בוקל ליכמה הפמ לש‪,‬הקלחה סע טוטרש‬ ‫לש ‪.‬ןונכתה‬ ‫סחיה‏‪ design_detarls‬ליכמ טוריפ לש בוציעה תניחבמ םיחמצה‏)‪(p_name‬‬ ‫‏‪ design_details‬ויהי‬ ‫םיננכותמההקלחב תומכהוהשורדה לכמ דחא ‪.‬םהמ סחיב‬ ‫אופא המכ תורוש לכל הקלח לכב‪,‬הנוע רפסמכ םיחמצה םינושה םיננכותמה ‪.‬הב‬ ‫תוינבתה רובע תוינכות ‪:‬הדובעה‬

‫ךירדמהדימלקרפל |‪ 4‬‏‪- SQL‬תמרםייניב * ‪85‬‬ ‫‪work_assignment‬‬ ‫‪(week_no,‬‬ ‫‪‎‬והת‪year,a_name,p_name,‬‬ ‫תהזמס( ‪, 9‬‬ ‫‪work_fulfillment (g_name,‬‬ ‫)‪actno,date,a_name,p_name,quantity‬‬ ‫רויא‪4.3‬תוינבתםיסחירובעתוינכותהדובעךרעמבןוניגה‬ ‫סחיה‏‪ work_assignment‬טרפמ תא תומישמ הדובעה תולטומש לע םיננגה‬ ‫‪:‬םינושה רפסמ עובשה הנשב רפסמ( ‪,‬ירודיס ‪-1‬מ דע‪, 53),‬הנשה ‪,‬הקלחה םש‬ ‫‪,‬חמצה תומכה הליתשל חמצמ הז ותואב עובש םשו ןנגה וילעש תלטומ הדובעה‬ ‫חהמוס ‪ 0).‬תומכה הליתשל הלוכי תויהל ‪,‬תילילש זאו שוריפ רבדה תמישמש‬ ‫הדובעה איה יוקינ וא( )שוכינ םיחמצ םישבי הנועמ תמדוק וא הריקע לש םיצע‬ ‫םיחישו רבכש םילותש‪.‬הקלחב‬ ‫סחיה ‏‪ work_fulfillment‬ליכמ םיחוויד לש םיננגה‏‪ DY‬עוציבלעופב לש תומישמ‬ ‫‪,‬הדובעה וא ‪:‬ןקלח םש ןנגה ‪,‬חוודמה רפסמ ירודיס לשהלועפה ‪,‬תחוודמה ךיראת‬ ‫‪,‬עוציבה םש ‪,‬הקלחה םש חמצה תומכהו הלתשנש לעופב וא( הרסוהש ‪ -‬םא‬ ‫תומכה ‪).‬תילילש‬

‫הרדגה‬

‫תיסיסב לש תינבת סחי‬

‫גיצנ תא תוארוהה לשתפשהרדגהה‪,86(1‬לש לע ידי ןתמגדה‏‪OY‬תרדגה םיסחיה‬ ‫המגודבש ‪.‬תיסיסבה‬ ‫‏‪createtable area‬‬ ‫‪(a_name‬‬ ‫‪varchar (20),‬‬ ‫‪a_location varchar (20),‬‬ ‫‪a_type‬‬ ‫‪varchar (20),‬‬ ‫‪a_size‬‬ ‫‪integer,‬‬ ‫;)‪primary Key(a_namé‬‬ ‫‪createtable plant‬‬ ‫‪(p_name‬‬ ‫‪varchar (20),‬‬ ‫‪p_type‬‬ ‫‪varchar (20),‬‬ ‫‪p_diameter numeric (4,2),‬‬ ‫‪p_maxheight numeric (4,2),‬‬ ‫;)‪primary Key(p_naméd‬‬ ‫‪createtable planting map‬‬ ‫‪(a_name‬‬ ‫‪varchar (20),‬‬ ‫‪p_name‬‬ ‫‪varchar (20),‬‬ ‫‪amount‬‬ ‫‪integer,‬‬ ‫‪primary Key(a_name,‬‬ ‫;))‪p_name‬‬

‫‪ 6*6‬תוכרעמיסיסבסינותנ‬ ‫לכ תחא שולשמ תורדגהה וללה תוללוכ תא םש ‪,‬סחיה תומש תונוכתה סופיטו‬ ‫םינותנה תחאלכלש ‪,‬ןהמ ףוסבלו ןויצהנוכתה וא תונוכתה תווהמשחתפמ ‪.‬ליבק‬ ‫ונשמתשה השולשב יסופיט ‪:‬םינותנ ‏)‪ varchark‬ןייצמ תוורחמ םיוות ךרואב‬ ‫‪,‬הנתשמ דע ךרואל ילמיסקמ לש ‏‪ integer ; k‬אוה רפסמ םלש וכרעש ילמיסקמה‬ ‫יולת תכרעמב תיפיצפסה ; ‏)‪ numeric(m,n‬ןייצמ רפסמ ינורשע םושרש ‏‪m-1‬‬ ‫‪,‬תורפס ךכ ם‪-‬ש ןהמ ןימימ הדוקנל‪.‬תינורשעה‬

‫םיטבמ‬ ‫תכרעמב תמצמוצמה הבש ונשמתשה תואמגודב קרפבש ‪ 3‬ויה השולש םיסחי‬ ‫‪:‬דבלב‪4‬ז‪ 08‬ליכמש םינותנ לע תוקלח ‪,‬ןוניגה ‏‪ plant‬ליכמש םינותנ לע לכ ‪,‬חמצ‬ ‫‏)‪ planting_map-‬ליכמש תא עדימה‏‪ DY‬םיחמצה םילותשה לכב ‪.‬הקלח‬ ‫םינותנה‪4‬ז‪0‬אםיסחיב ‏)‪ plant-‬םה םינותנ םיעובק ‪,‬תיסחי בלשבותמקהתכרעמה‬ ‫שי ךרוצ ןיזהל םתוא תואלבטל ‪.‬תומיאתמה םא םיפסונ םיחמצ םישדח אלש‬ ‫ונרמש םהילע ‪,‬םינותנ רשפא ףיסוהל םתוא‪,‬ךשמהב ןכו ןכדעל םינותנ לע תוקלח‬ ‫תומייק שישכ ‪,‬םייוניש ףיסוהל וא ‪.‬לטבל‬ ‫םינותנה תואקסחיב ק‪/‬םמוומק םיראתמ תא בצמ םיניינעה יחכונהךרעמב ‪.‬ןוניגה‬ ‫לכ דוע תכרעמה הללכ קר תא תשולש םיסחיה ‪,‬וללה רשפא היה ןיזהל תא‬ ‫םינותנה סחיב‏‪ planting_map‬ותואב ןפוא םהש ונזוה םיסחיב ‪:‬םירחאה לכב‬ ‫םעפ תעצובמש הליתש השדח הקלחב ‪,‬יהשלכ םירקועשכ וא םיקנמ רוזא‬ ‫םיחמצמ םייתנש‪-‬דחולבנש ‪-‬םינכדעמ תא תומכה תיפוסה לש םיליתש לכמ ‪.‬גוס‬ ‫בצמ םיניינעה יחכונה‪,‬ןכדעתמ אלו רמשנ עדימ ‪.‬ירוטסיה‬ ‫‏‪TN‬תכרעמב תבחרומה םירמשנ םינותנ םידעתמה תא יכילהת‪.‬הדובעהםסינותנ‬ ‫הלא םיעבוקהשעמל תא בצמ םיניינעה יחכונה‪,‬תוקלחב םגו םירמשמ תא עדימה‬ ‫‪.‬ירוטסיהה‬ ‫לכונ אופא בשחל תא ןכות סחיה‏‪ planting_map‬תועצמאב ‪,‬התליאש ךכו ‏)‪D‬‬ ‫רומשל‏‪DY‬המאתה ןיב יחווידהדובעהלעופב ןיבל רואית בצמה ‪,‬יחכונה יפכ אוהש‬ ‫ףקתשמ סחיב‏‪:planting_map‬‬

‫ףיעס‪4.2‬רפסב‬

‫ךירדמהדימלקרפל |‪ 4‬‏‪- SQL‬תמרםייניב * ‪87‬‬ ‫‪ 501001‬הרדגה וזראתתהנמאנ‬ ‫‪a_name,p_namesum(quantity)asamount‬‬ ‫תאבצמןוניגהתוקלחב‬ ‫‪ from work_fulfillment‬קרםאםירמושםינותנ‬ ‫םיירוטסיהלעיחוויד‬ ‫‪‎‬ק‬ ‫תהס‪ group by a_name,‬הדובעהבצממלשתוקלח‬ ‫‪.‬ייתוקירייםשל‬ ‫‪,‬תוטשפ‬ ‫חיננהוש‪.‬בצמה‬ ‫אל רומשנ תא תאצות התליאשה הלבטכ סיסבב םינותנה לע ידי שומיש ‏‪into-1‬‬ ‫ףוסב תרוש‬ ‫‪-801606.‬ה ןוויכ ךכש לולע רצוויהל בצמ לש המאתה‪-‬יא ‏‪ P2‬םינותנה‬ ‫סחיב‏‪ planting_map‬ןיבל יחווידהדובעה ‪:‬לעופב רשאכ ועצובי תודובע הליתש‬ ‫תושדח ‪ -‬סחיה‏‪planting_map‬רבכ אל היהי ןכדועמ אלל בושיח‪.‬שדחמ‬ ‫םע ‪,‬תאז אל הצרנ רתוול ןיטולחל‏‪ DY‬סחיה ‏‪ planting_map‬בותכלו שדחמ תא‬ ‫התליאשה דומעבש םדוקה לכב םעפ הצרנש סחייתהל תנומתל בצמה ‪.‬תוקלחב‬ ‫‪,‬ןכתי ‪,‬לשמל יבצעמש ןוניגה לש הייריעה םישמתשמ עדימב סחיבש‬ ‫‏‪ planting_map‬ךרוצל תודובע ‪,‬בוציעה ךא ןיא םהל ןינע עדימב‏‪ DY‬יכילהת‬ ‫הדובעה ‪,‬םיירוטסיהה תביתכו התליאשה לכב םעפ שדחמ איה לוברס רתוימ‬ ‫לבלבמו ‪.‬םרובע‬ ‫בצמב הזכ שי‪-,50(1‬בתורשפא רידגהל תא סחיה‏‪. planting_map‬טבמכ ‪,‬רמולכ‬ ‫הלבטכ הנכותש בשוחמ ךותמ תואלבט ‪,‬תורחא הווהמו ךכב תדוקנ טבמ הנוש לע‬

‫טבמ‬ ‫‏‪view‬‬

‫םתוא ‪.‬םינותנםישמתשמהתלבטב טבמה אל חרכהב םיעדומ ךכלםינותנהש‏‪N2‬‬ ‫םיעבונ תואלבטמ ‪,‬תורחא ילואש םניא םיעדוי לע ‪.‬ןמויק‬

‫תרדגה טבמ‬ ‫תרדגה טבמ ‏‪ SQL-2‬תעצובמ תועצמאב תארוה ‏‪ ,create view‬הרידגמה םש‬ ‫תלבטל טבמה תאוהתליאשההרידגמה תא ןכות ‪:‬טבמה‬ ‫יוטיב‎‬התליאש‪view v 85‬‬ ‫‪016816‬‬ ‫המגוד ‪ 4.1:‬רידגנ תא סחיה‏‪, planting_map‬טבמכ תרזעב התליאשה ונחסינש‬ ‫‪:‬םדוק‬ ‫‪createview planting_map58‬‬ ‫‪‎amount‬ה‪selecta_name,p_namesum(quantity)5‬‬ ‫‪from work _fulfillment‬‬ ‫;‪group by a_name,p_name‬‬

‫ףיעס‬ ‫‪4.2.1‬רפסב‬

‫‪= 88‬תוכרעמיסיסבסינותנ‬ ‫םישנ בל יכתרדגה‏‪ planting_map‬טבמכ תבייח ףילחהל תא ותרדגה תועצמאב‬ ‫‏‪ create table‬יפכונגצהש ‪.‬םדוק‬ ‫לכ תותליאשה וחסונש קרפב ‪ 3‬וללכו תא סחיה‏‪ planting_map‬קוספב ‏‪from‬‬ ‫ןהלש תוראשנ תוניקת םע הרדגה ‪.‬וז לכב םעפ התליאשש וזכ ‪,‬תלעפומ סחיה‬ ‫‏‪ planting_map‬בשוחמ שדחמ‏‪ DY‬יפתרדגה ‪,‬טבמה ךות ידכ בושיח‪,‬התליאשה‬ ‫ךכבו תחטבומ תוינכדע םינותנה ‪,‬ובש תורמל ונניאש ןסחואמ הזככ סיסבב‬ ‫‪.‬םינותנה‬ ‫יפכהלועש ןמ ןוידה דע ‪,‬הכתרדגה ‏‪planting_map0NN‬הדעונ הגצהל החונ לש‬ ‫םינותנה רובע םישמתשמ םימיוסמ יבצעמ( ‪),‬ןוניג ןפואב םאותש תא תדוקנ‬ ‫טבמה םהלש לע עדימה דחמ ‪,‬אסיג חיטבמו תא ותוינכדע ותמאתהו םינותנל‬ ‫םירחא סיסבב ‪,‬םינותנה ךדיאמ ‪.‬אסיג‬ ‫םיתיעל הצרנ גיצהל םיטבמ םינוש םישמתשמל םינוש םג יכרוצל הרימש לע‬ ‫תוחיטב םינותנה וא לע םתויטרפ לשםישמתשמ ‪.‬םירחא‬ ‫המגוד ‪ 4.2:‬הצרנ קפסל לכל ןנג תא תמישר תומישמ הדובעה ולש ‪,‬דבלב לחה‬ ‫דעומב םיוסמ ‪.‬ךליאו ‪,‬המגודכ רידגנ טבמ םיאתמ רובע ןנגה הניעי יל ‪":‬הביבח‬ ‫‪as‬‬ ‫‏‪date_part‬‬ ‫‪ createview g7_work_assignment‬היצקנופה‬ ‫הריזחמםיביכרךותמ‬ ‫‪ selectweek_no,a_name,p_name,quautity‬ןותנגוסמ‪,‬ךיראתיפל‬ ‫‪ from work_assignment‬טנמוגראהןושארההלש‬ ‫'עסהע"( וא‏‪,'week‬המגודב‬ ‫‏‪.M‬‬ ‫‪ 0‬הניגי יל 'הביבח =‏‪whereg_name‬‏‪current_date‬ריזחמתא‬ ‫‪ year =date_part ("year’,current_date)and‬ךיראתה‪.‬יחכונה‬ ‫ריבחתהאבומהןאכאוה‬ ‫‪.‬ןקס‪50908)1‬‬ ‫;)‪ week_no>= date_part ('week’, current_date‬ריבחתה‪-,‬ב‬

‫שומיש‬

‫םיטבמב‬

‫תותליאשב ‏‪SQL‬‬

‫ןנגה לשהניגיי ילי"הביבח לכוישמתשהל טבמב‪,‬הּז אוהש ותניחבמ הלבט סיסבמ‬ ‫‪,‬םסינותנה םשלתפילש ‪.‬עדימ‬ ‫המגוד ‪ 4.3:‬חיננןנגהש ןיינועמ תעדל וליא תויומכ םיליתש לכמ חמצ וילע ןיכהל‬ ‫רובע לולכמ תומישמ הדובעה תוננכותמש ורובע עובשל ‪.‬אבה התליאשה האבה‬ ‫בשחת ורובע תא ‪:‬שורדה‬

‫ףיעס‬ ‫‪4.2.2‬רפסב‬

‫ךירדמהדימלקרפל |‪ 4‬‏‪- SQL‬תמרםייניב * ‪89‬‬ ‫‪561001‬‬ ‫)‪p_name,sam(quantity‬‬ ‫‪from g7_work_assignment‬‬ ‫‪where week_no= date_part ('week’, current_date) 1‬‬ ‫;‪group by p_name‬‬

‫םיטבמ‬

‫םינסחואמ‬

‫ףיעס‪4.2.3‬רפסב‬

‫יפכ ‪,‬וניארש םיטבמ םיבשוחמ תותליאשכתעב םירכזאמש םתוא ךותב התליאש םיטבמ‪‎‬םינסחואמ ‪-‬‬ ‫וא תלועפ ןוכדע ‪.‬יהשלכ םע ‪,‬תאז שי םיבצמ םהבש ליעומ ןסחאל טבמ בשוחש ‪views‬‬ ‫‪materialized‬‬ ‫םעפ ‪,‬תחא ךא ךירצ גואדל ךכל לכבש םעפ ונכדועיש יסחי סיסבה םהילעש‬ ‫תקוזחתםיטבמ‬ ‫תססובמתרדגה טבמה ‪ -‬ןכדועי םג טבמה ‪.‬ןסחואמה הרימש לע תוינכדע טבמה םינסחואמ ‪-‬‬ ‫‪materialized‬‬ ‫‪,‬ןסחואמה תארקנש תקוזחת םיטבמ ‪,‬םינסחואמ איה ךילהת בכרומ ינפב ‪.‬ומצע ‪views‬‬ ‫‪maintenance‬‬ ‫הטלחהה םא ןסחאל טבמ היושע תויהל הטלחה לש תכרעמה וא לש ןלהנמ‬ ‫‪,‬תכרעמה תוכרעמבו תובר שי םגתורשפאשמתשמל ןייצל ‪.‬תאז ןיא ךכל הארוה‬ ‫‏‪, SQL-a‬תינקתה ךא תוכרעמ תונושתורשפאמה תאז תועיצמ ריבחת ‪.‬ןהלשמ‬

‫ןוכדע‬

‫ףיעס‬ ‫‪4.2.4‬רפסב‬

‫םיטבמ‬

‫רחאל עוציב‪,‬הדובעה לע ןנגה חוודל לע תולועפ הליתשה וא( יוקינה )שוכינהו‬ ‫עציבש‪.‬לעופב הרטמל וז ונרדגה תישארב קרפה תא סחיה ‏‪.work_fulfillment‬‬ ‫הצרנרשפאל לכל ןנג חוודל תורישיתכרעמב ןפואבו יאמצע לעתודובעה‪,‬עציבש‬ ‫םעו תאז אל הצרנ ףושחל וינפב תא יחווידהדובעה לש םיננג ‪.‬םירחא‬ ‫המגוד ‪ 4.4:‬רידגנ רובע הניגי יל ייהביבח תא טבמה ‪,‬אבה םילוקישהמ ונייצש‬ ‫‪:‬םדוק‬ ‫‪createview g7_work_fulfillmentas‬‬ ‫*‪select‬‬ ‫‪‎‬זיסת= ‪from‬‬ ‫‪1‬‬ ‫הניגי‪ -‬יל'הביבח =‏‪whereg_name‬‬ ‫טבמה ‏‪ g7 work_fulfillment‬ליכמ קר תורוש ךותמ ‏‪work_fulfillment‬‬ ‫תועגונש הניגייל יל ‪.‬יהביבח שומישה ירקיעה טבמב הז ותניחבמ לש ןנגה אוה‬ ‫חוודל לע תודובעה ‪,‬עציבש ‪.‬שרדנכ חיננ עצביש םויב םיוסמ תא םיחווידה‬ ‫‪:‬םיאבה‬

‫‪@0‬תוכרעמיסיסבסינותנ‬ ‫‪insert into g7_work_fulfillment‬‬ ‫;)‪', 50‬ינרפיצילותחרכיכי‪!‎,‬הסינכה ‪ nyy, 1,current_date,‬יל ‪)‎‬הביבח‪values‬‬ ‫‪insert into g7_work_fulfillment‬‬ ‫(‪ 7,-10‬רכיכי‪,‬ידרו ‪'‎‬הסינכה‪ 2,ecurrent_date,‬הניג'‪‎ ,‬יל‪values('n2>an‬‬‫‪insert into g7_work_fulfillment‬‬ ‫‪ ' , ;)6‬רכיכי‪,‬ידרו 'הסינכה ‏‪ ,3 current_date,‬הניג'‪ ,‬יל‏‪values('n2>an‬‬

‫ןיאחרכהרוזחללע‬ ‫‏‪Insert‬האלמה‬ ‫תארוה‬ ‫רובע לכתרוש‪,‬םיכרעיפכ‬ ‫עיפומש‪.‬ןאכירחא‬ ‫הרומשה‏‪values‬‬ ‫הלימה‬ ‫הלוכיאובלהרדסלש‬ ‫תורוש‪,‬םיכרע לכתחא‬ ‫ךותב‪,‬םיירגוסתורושהו‬ ‫תודרפומ וזוזמ‪.‬םיקיספב‬

‫ןכיה ונכדועי םינותנה !וללה ירה סחיה ‏‪ g7_work_fulfillment‬אוה ‪,‬טבמ הזככו ידכרשפאלןוכדעהזכ‬ ‫‏‪postgreSQL-2‬שי‬ ‫רשפא תוארל וב ןיעמ סחי ‪.‬ייילאוטריויי אוה וניא ןסחואמלעופב סיסבב ‪,‬םינותנה רידגהלןונגנמריממש‬ ‫תיטמוטואתאתלועפ‬ ‫ךא ונכות בשוחמ לכבםעפ אוהש רכזואמ‪.‬התליאשב דציכ שי סחייתהל ורוכזאל ןוכדעהלעטבמהתלועפל‬ ‫ןוכדעהליבקמלעסחי‬ ‫תלועפב !ןוכדע‬ ‫‪.‬סיסבהקרפבאבהריכנ‬ ‫ןונגנמירשפאהזכ‬ ‫‪.‬רגירט‬ ‫הארנ ךשמהבהבושתהש תולאשל הלא הניא הטושפ הרקמב ‪,‬יללכה לעו יפ בור‬ ‫ןכא‏‪ PN‬םירשפאמ עוציב םינוכדע תועצמאב ‪.‬םיטבמ‬ ‫המגודה תאזההמיגדמ אקווד תא גוס םירקמהםהבשרשפא ףאו יאדכשמתשהל‬ ‫טבמב יעצמאכ ‪.‬ןוכדע הלבטה "תיתימאה" הילעש ססובמ טבמה‬ ‫‏‪ g7_work_fulfillment‬איה ‏‪ work_fulfillment‬ןכלו ןוכדעה ךירצ ופוסב לש‬ ‫רבדעצבתהל ‪.‬הב םאשרפנ תא תולועפ הפסוהה לע טבמה תולועפכ הפסוה לע‬ ‫סחיהדמועש סיסבבתרדגה טבמה‏—‪ - work_fulfillment‬לבקללכונ ןוכדע רישי‬ ‫לש סחיה ‏‪ work_fulfillment‬דוחיאכ תולועפ ןוכדעה לש םיננגה ‪,‬םינושה ךרד‬ ‫טבמהרדגומש לכל דחא ‪.‬סהמ‬ ‫תונשרפה וזה ןוכדעל תועצמאב םיטבמתירשפא קרתולבגמב תומיוסמןטרפנש(‬ ‫‪),‬דךשמהב רשא תומייקתמ הרקמב ‪:‬הז טבמה האורש לכ ןנג אוה השעמל ףסוא‬ ‫תורוש יקלח ךותמ סחי‪,‬דחא ‏‪ . work_fulfillment‬טבמה עיבצמ אופא תורישי לע‬ ‫סחיה הצרנש ‪.‬ןכדעל ומכ ‪,‬ןכ טבמה ללוכ תא לכ תודומע ‪,‬סחיה ןכלו תפסוה‬ ‫‪//1011‬מנסמז‪.‬וש‪, 01%‬ףוסבל‬ ‫תורוש חווידה היהת הניקת תניחבמ תינבתה לש‬ ‫ונילע חיטבהל לכש ןנג ןכא אלמי קר תא תורושה תועגונה ‪,‬וילא אלו ןיזי םש לש‬ ‫ןנג רחאתחת‏‪.£_name‬‬ ‫תרדגה טבמה הלוכי לולכל השירד תקידבל יאנת הזכ הרקמב לש ‪.‬הפסוה רובע‬ ‫טבמהונרדגהש המגודב‪ 4.4,‬ןכדענ תאהרדגהה ןפואב ‪:‬אבה‬

‫ךירדמהדימלקרפל ‪ | 4‬‏‪=-SQL‬תמרםייניב * ‪91‬‬ ‫‪createview g7_work_fulfillmentas‬‬ ‫*‪select‬‬ ‫‪from work_fulfillment‬‬ ‫‪ NYY‬יל ‪'‎‬הביבח =‪whereg_name‬‬ ‫;‪with checkoption‬‬ ‫תפסותה ‏‪ with checkoption‬תעבוק יכ לכהרוש סנכותש טבמלתלועפב ‏‪ insert‬‏‪withcheckoption‬רניא‬ ‫‏‪PostgreSQL-1‬‬ ‫שמוממ‬ ‫היהת תכייח םייקל תא יאנתה רדגומה קוספב ‏‪ where‬לשתרדגה‪.‬טבמה תרחא תרדגהב‪.‬םיטבמ‬ ‫איה‪.‬החדית הרקמב הז ‪ -‬ןנגה לשהניגעי ילי"הביבח לכוי ףיסוהלתועצמאב טבמה‬ ‫קר תורוש ןהבשךרעההדומעב‏‪ Z_name‬אוה ‏‪ YN‬יל ‪".‬הביבח‬ ‫םיגדנ המכ ןמ תויעבהןוכדעבשתועצמאב םיטבמתרזעב טבמה ןושארהונרדגהש‬ ‫ סחיה ‏‪ planting_map‬ונרדגה ותוא רובע יבצעמ ‪,‬ןוניגה ידכ ולכויש תוארל‬‫הרוצב החונ תא תנומת בצמה תיחכונה תוקלחב ‪.‬ןוניגה‬ ‫אל הצרנ רשפאל םיבצעמל ןכדעל תא סחיה‏‪ planting_map‬רשפאו רמול וליפא‬ ‫אלש לכונרשפאל‪.‬תאּז ריכזנ תאתרדגה ‪:‬טבמה‬ ‫‪createview planting_mapas‬‬ ‫‪selecta_name,p_namesum (quantity)as amount‬‬ ‫‪from work_fultillment‬‬ ‫;‪group by a_name,p_name‬‬ ‫חיננ דחאש יבצעממ תוניגהךרע רויסתקלחב תלייטה וילעש‪,‬בצעל הליגולעופבש‬ ‫רפסמ יחיש ןירמזורההקלחב וניא םאות תאךרעההדומעב‏‪ amount‬אוהש האור‬ ‫סחיב‏‪planting_map‬רובע הקלח וז רובעו חמצ ‪,‬הז אוהו הצור ‪.‬ונכדעל ול ונייה‬ ‫םיצוררשפאל ‪,‬תאז והמ ןוכדעה היהש ךירצ!עצבתהל‬ ‫טבמה‏‪planting_map‬רדגומ לע סיסב סחי רוקמ ‪,‬דחא ‏‪Vo, work_fulfillment‬‬ ‫הרואכל ךירצ ןכדעל תא סחיה ‏‪ . work_fulfillment‬בצעמ תוניגה האור טבמב‬ ‫תורדגומש ורובע שולש ‪:‬תודומע‏‪ .amount-)p_name,a_name‬חיננ אוהש הצרי‬ ‫ןכדעל תאךרעה‏‪amountDY‬הרושב‪,‬המיאתמה תועצמאבתלועפ ןוכדעה ‪:‬האבה‬ ‫‪updateplanting_map‬‬ ‫‪setamount= 60‬‬ ‫; ‪!‎‬ןירמזורי =‪'‎ andp_name‬תלייטהי =‪where a_name‬‬

‫‪ = 2‬תוכרעמיסיסבסינותנ‬ ‫‪,‬תישאר סחי ‪,‬רוקמה ‏‪ | work_fulfillment‬ללוכ תודומע ‪,‬תופסונ ןקלחש אל‬ ‫תולוכי לבקל ךרע ‏‪, .null‬ףסונב סחיב רוקמה שי הדומעםשב ‏‪,|quantity‬הנניאש‬ ‫הלולכ ‪,‬טבמב טבמבו שי הדומע םשב‏‪ amount‬הנניאש הלולכ סחיב ‪.‬רוקמה‬ ‫הדומעה‏‪ amount‬תרדגומ םוכסכ לש יכרע הדומעה‏‪ quantity‬רובע הקלח חמצו‬ ‫‪,‬םימיוסמ אלו רורב ‏‪ PR‬ןוכנ םגרתל תא ןוכדעה ליעל ןוכדעל םיאתמ לע סחי‬ ‫רוקמה ילב רוציל תוריתס ‪.‬םינותנב לעמו ‪-‬לוכלסחיה ‏‪ work_fulfillment‬דעוימ‬ ‫דועיתל יחוויד הדובע ‪,‬לעופב וליאו ןוכדעה עצומה ונניא ‪.‬הזכ ךכב תולולע‬ ‫שבתשהל תונקסמ תוירשפא ךותמ תובושת תותליאשל לע סחי ‪.‬רוקמה ךכ‬ ‫הרקמבש הז אל הצרנרשפאל ןוכדע תועצמאב ‪.‬טבמה‬ ‫תוכרעמ תונוש לוהינל יסיסב םינותנ תורידגמ ףסוא תולבגמ הנוש יבגל ןוכדע‬ ‫תועצמאב ‪.‬םיטבמ תולבגמה תולבוקמה רתויב תומצמצמש( תורשפא וז )דואמ‬ ‫‪:‬ןה‬ ‫* תרדגה טבמה תססובמ לע סחי רוקמ דחא‪.‬דבלב‬ ‫* תרדגה טבמה תססובמ לע תומש תודומע ומכ סחיב ‪,‬רוקמה אלל תולועפ‬ ‫‪,‬הצבקה םייוטיב םיינובשח וא‏‪.distinct‬‬ ‫* הדומע סחיב רוקמה הנניאש הלולכתרדגהב טבמה הלוכי לבקל ךרע ‏‪null‬‬ ‫* התליאשההרידגמה תא טבמה הניא תללוכ ‪.‬הצבקה‬ ‫קרפב אבה םיגדנ דציכ רשפאל ןוכדע םיטבמ תועצמאבתרדגה ןונגנמ ‪,‬יטמוטוא‬ ‫ריממה תא תוארוה ןוכדע טבמה תוארוהל ןוכדע לע סחי ‪,‬רוקמה ךות תחטבה‬ ‫תולבגמה ונייצש ‪.‬ליעל‬

‫תועונת‬ ‫דע הכ ונלכתסה לע תולועפ ןוכדע דצמ ריבחתה רשפאמה ‪,‬ןתוא ןתעפשהו לע‬ ‫םינותנה ‪.‬םיסחיבש וניאר לכ תלועפ ןוכדע לכו התליאש תושיכ ‪,‬תדרפנ אלו‬ ‫ונסחייתה רשקלירשפא הניב ןיבל תולועפ ‪,‬תורחא אלתניחבמ רדסתולועפה אלו‬ ‫תניחבמ ‪.‬ןכותה‬ ‫תוכרעמב תוליעפ שי םינוכדעל םיטביה םיפסונ שיש תתל םהילע תא ‪,‬תעדה‬ ‫דחוימב הביבסב לש יוביר ‪.‬םישמתשמ דחא םיבושחה םיטביהבש הלא אוה‬ ‫ךרוצה גואדל עוציבל הרדס לש תולועפ ןוכדע השקמכ ‪,‬תחא ידכ חיטבהל תא‬ ‫תוניקת ‪.‬םינותנה‬

‫ףיעס‪4.3‬רפסב‬

‫ךירדמהדימלקרפל ‪ | 4‬‏‪= SQL‬תמרםייניב * ‪93‬‬ ‫ידכ םיגדהל ‪,‬תאז ביחרנ דוע תא ךרעמ ןוניגה ‪.‬ינוריעה הצרנ בוקעל רחא תועונת‬ ‫יאלמ םיליתשה םיקפסמ םינוש לא ןסחמ הייריעה ונממו ‪ -‬לא םיננגה ‪,‬םינושה‬ ‫תורזחה תוירשפא םיננגהמ ןסחמל וא תורבעה תורישי ןיב ‪,‬םיננגה וא תשיכר‬ ‫יאלמ‏‪ DY‬ידיםיננגה תורישי ‪.‬םיקפסמ ףיסונ סיסבל םינותנה תא סחיה ‪,‬פווקק‪/‬ץ‬ ‫דעתמה תאתועונתה לש יאלמ ‪:‬םיליתשה‬ ‫)‪supply(holder,transfer_no,date,p_name,quantity,in_out,from_to‬‬ ‫רויא‪4.4‬תינבתרובעתכרעמיאלמה‬ ‫‏‪ Aolder‬אוה םרוגה תכרעמב ריבעמה תא םיליתשה וא לבקמה םתוא ‪ -‬ןסחמ‬ ‫‪ 11403101‬אוה רפסמ ההזמה תא‬ ‫הייריעה וא דחא םיננגהתנחתיי( ;)ייאלמ ‪00‬‬ ‫תעונת יאלמה רובע ותוא;םרוג ‪ 040‬אוה ךיראת‪,‬הלועפה‏‪quantity-)p_name‬‬ ‫םה םש חמצה רפסמו םיליתשה חמצמ הז;ורבעוהש ‪001‬זח ןייצמ םאהלועפה‬ ‫איה תריסמ םיליתש םרוגל רחא וא תלבק םיליתש תנחתל ‪.‬יאלמה הדומעה‬ ‫וס הסמו תנייצמ תא םש םרוגה ונממש ולבקתה םיליתשה םא( הלועפה איה‬ ‫גוסמ )וח וא וילאש ורבעוה םא(הלועפה איה גוסמ‪ 001).‬םרוגה הזה לוכי תויהל‬ ‫ןסחמה וא דחא ‪,‬םיננגה וא םש לש קפס ‪,‬ינוציח ןיאש וילע םיטרפ םיפסונ‬ ‫‪.‬תכרעמב‬ ‫המגודב ‪ 4.3‬ונגצה התליאש הבש ןנגה לש הניגיי יל י'הביבח בשיח המכ םיליתש‬ ‫לכמ חמצ וילע ןיכהל עובשלהדובעה ‪.‬אבה חיננ אוהש עיגמ ןסחמל הייריעה םע‬ ‫תאצות ‪,‬התליאשה שקבמו דייטצהל םיליתשב ‪.‬םישורדה תלועפהרבעהה לש‬ ‫םיליתשה םישקובמה ןסחמהמ לא הניעי יל יהביבח תרציימ יתש תועונת יאלמ‬ ‫לכל ‪,‬חמצ ןכלו דעותת‏‪ DY‬ידי תפסוה יתש תורוש סחיל ‏‪ supply‬רובע לכ ‪:‬חמצ‬ ‫הרוש תחאתדעתמה תאתרבעה תומכ םיליתשה המיאתמה ןסחמהמ הצוחה לא‬ ‫‪,‬ןנגה הרושו תפסונתדעתמה תא תלבק תומכ םיליתשה וזה ןסחמהמ לא יאלמה‬ ‫לש ‏‪ DY‬יל ‪".‬הביבח‬ ‫המגוד ‪ 4.5:‬םושרנ תפסוה תורוש ראותמכ רובעתרבעה‪ 50‬םיליתש לש ינרופיצ‬ ‫לותח ןסחמהמ הניגייל יל ‪":‬הביבח‬ ‫‪insert into supply‬‬ ‫‪,08146‬לותח ‪,‬סוטוי‪6‬ת]‪)‎‬ןסחמ'‪values5137,‬‬ ‫‪ NYY),‬ילינרופיצ'‪,50,‬י‪0‬ט‪',0‬הביבח‬ ‫‪‎‬ינרופיצי'‪,50,‬י‪1‬ת'‪',‬ןסחמי(;‪ Ny¥,5137,current_date/>ynN‬יל ‪)‎‬הביבח‬

‫‪=*4‬תוכרעמיסיסבסינותנ‬ ‫‪,‬השעמל ידכ חיטבהל תא תוניקת תכרעמ ‪,‬יאלמה שי דיפקהל יתשש תופסוהה‬ ‫וללה ועצובי ‪.‬דחי ןכש םא עצובת הפסוה ‪,‬תחא הביסמו יהשלכ ןוגכ( תליפנ‬ ‫‪,‬תכרעמתוברעתה תולועפ תורחא לשםישמתשמ םירחא )דכו הפסוהה היינשה‬ ‫אל עצובת ‪ -‬לבקתי בצמ לש יאלמ אל ‪,‬ןיקת וליאכ שי תומכ לש םיליתש וכלהייש‬ ‫‪".‬דוביאל‬ ‫םיבצמ םהבש בושח חיטבהל עוציב הרדס לש תולועפ הדיחיכ תחא סה םיבצמ‬ ‫‪,‬םיצופנ שיו‪-.8)(1‬בתורשפא תוחנהל םאתהב תא תכרעמ סיסב ‪.‬םינותנה‬ ‫תרדס תולועפ וזכ תארקנ העונת ‪),‬היצקזנרט( שיו המכ םינפוא התרדגהל ‪-‬ב העונת‬ ‫‏‪transaction‬‬ ‫‏‪ .SQL‬ןפואב ‪,‬יסיסב לכ הארוה ‪-8)(1‬בתשרפתמעמתשמבהלחתהכ לש‪,‬העונת‬ ‫זאו שי םייסל תאהעונתה תועצמאב הארוההתשרופמה ‏‪ ,commit‬וא לטבל תא‬ ‫לכתולועפהעונתה תועצמאב הארוהה ‏‪Jrollback‬‬ ‫תוכרעמב תובר תרדגומ תרירב לדחמ היפלש לכ תארוה ‏‪ SQL‬איה העונת ינפב ךכ‪-‬ב‬ ‫‏‪PostgreSQL‬‬ ‫‪,‬המצע ךכ איהשתבשחנ וליאכ שי םג תארוה ‏‪. commit‬המויסב םא םיצור רוציל‬ ‫הרהצהללע‬ ‫תועונת תוללוכש ףצר לשתולועפ ומכ(המגודב‪),‬ליעל שיתונשל תאתרדגה תרירב ריבחתיפולח‬ ‫תליחתהעונתאוה‏‪set‬‬ ‫‪.‬לדחמה ןפוא יונישה אוה יולת‪.‬תכרעמ‬ ‫‏‪.transaction‬‬ ‫ריבחתיפולחהמויסל ‪-‬‬ ‫‏‪commit‬‬ ‫ןקתה לש ‏‪ SQL‬רידגמ ךרד הרישי המיאתמו ‪,‬רתויתרשפאמה בותכל הרדס לש‬ ‫תולועפ ‏‪ SQL‬הליחתמש םילימב תורומשה ‏‪ begin atomic‬תמייתסמו הלימב‬ ‫הרומשה ‪680:‬‬ ‫סקוה‬ ‫‪0‬‬ ‫‪insert into supply‬‬ ‫‪,08146‬סוטזיויסה)‪)‎‬ןסחמ'‪ values5137,‬תוכרעמבתוברםיטימשמ‬ ‫;)‪ NYY‬ילינרופיצ'‪,50,‬י‪0‬ט‪',0‬הביבח ‪,‬לותח‬ ‫תאהלימה‬ ‫הרומשה‬ ‫‪ insert into supply‬‏‪.atomic‬‬ ‫‪ NYY,5137,‬יל )הביבח‏‪values‬‬ ‫‪',‬ןסחמי(;ינרופיצ'‪,50,‬י‪0‬ט‪0‬‏‪current_date,’>ynn‬‬ ‫;‪end‬‬ ‫םישנ בל יכ הרימשה לע תוניקת יאלמה המגודב תראותמה הכורכ םג ןוכדעב‬ ‫יאלמה רחאל ‪:‬הליתש םא יאלמל לש הניגי ילי"הביבח ופסונ ‪ 50‬םיליתש לש‬ ‫ינרופיצ םהולותח ולתשנ רחאל ‪,‬ןכמ היהי ךרוצ ףיסוהל סחיל ‏‪ supply‬הרוש לש‬ ‫תעונת יאלמ הניגימ ילי"הביבח ‪.‬הצוחה ךשמהב הארנ המגוד תורשפאל עוציב‬ ‫יטמוטוא לש ןוכדע ‪.‬הזכ‬

‫ךירדמהדימלקרפל ‪ | 4‬‏‪=-SQL‬תמרםייניב * ‪95‬‬ ‫יצוליא‬

‫תוניקת‬

‫ףיעס‪4.4‬רפסב‬

‫ידכתכרעמש עדימ גציית תואיצמ תמיוסמ ‏‪ PR‬יד םינותנב םיימלוגה ‪.‬הבש ןיב‬ ‫‪,‬ראשה לע םינותנה םייקל םיללכ ‪,‬םימיוסמ םיעבונש םתועמשממ תכרעמב‬ ‫התואש םה ‪.‬םיראתמ‬ ‫גיצנ המכ ‪:‬תואמגוד‬ ‫* ןותנה לע סוידר הליתש ביבסמ חמצל ךירצ תויהל ךרע ‪,‬יבויח אוהו אל לוכי‬ ‫גורחלרבעמ םוחתל ריבס והשלכרשפאש ;רידגהל‬ ‫‪ *+‬יכיראת הדיל לש םידימלת תיבב רפס ידוסי םיכירצ תויהל םינותנ גוסמ‬ ‫‪,‬ךיראת םהו םילוכי עונל קר חווטב םיכיראת ‪,‬םיוסמ םיאתמש יליגל םידליה‬ ‫תיבב‪.‬רפסה‬ ‫* רפסמ סיטרכ יארשא םיוסמ אל לוכי עיפוהל םע ינש ידעומ תעיקפ ףקות‬ ‫‪.‬םינוש‬ ‫* אל ריבס ונזויש םינותנ לע תודובע הליתש הקלחב אלש העיפומ תמישרב‬ ‫תוקלחה לש ‪.‬הייריעה‬ ‫קלח םיללכהמ וללה םינתינ חוסינל יצוליאכ תוניקת שיש קודבל לע םינותנה יצוליאתוניקת‬ ‫‪integrity‬‬ ‫‏‪constraints‬‬ ‫תובקעב ‪.‬םייוניש הניחבמ ‪,‬תישעמ תרדגה יצוליא תוניקת תכרעמב עדימ‬ ‫התועמשמ היחנה תכרעמל סיסב םינותנה עצבל תוקידב ‪,‬תומיאתמ לעו ידי ךכ‬ ‫אלרשפאל תסנכה םינותנ ‪.‬םייוגש‬ ‫‪,‬לשמל תרדגה סופיט םינותנ םיאתמ ןותנל םיוסמ ןוגכ( סופיט םינותנה‪1810‬‬ ‫רובע ךיראת הדיל לש דימלת תיבב )רפס הווהמ צוליא‏‪ DY‬םיכרעה םיירשפאה‬ ‫ותואל ‪,‬ןותנ *וליאו הז קדבנ לכבהפסוה וא יוניש לש םינותנ סופיטמ ‪.‬הז םיללכה‬ ‫יתשב תואמגודה תונושארה םינתינ הקידבל תועצמאב תרדגה יסופיט ‪,‬םינותנ‬ ‫תפסותבתלבגה ‪.‬חווט‬ ‫תא ללכההמגודב תישילשה ןתינ קודבל תועצמאבהרדגה לשתוחתפמ ‪.‬םיסחיל‬ ‫תרדגה הדומע תמיוסמ וא( תצובק )תודומע חתפמכ הרומ תכרעמל אדוול אלש‬ ‫וסנכוי תורוש תונוש םע ותוא ךרעחתפמב ךא םע םיכרע םינוש תודומעב ‪.‬תורחא‬ ‫ידכ אדוול םייקתמש ללכההמגודבש ‪,‬תיעיברה שי אדוול לכב תנזה הרוש לש‬ ‫ינותנ הליפש םשש הקלחה לולכההרושב וז רבכ עיפומתלבטב ‪.‬תוקלחה ‪,‬רמולכ‬ ‫ללכ הז רידגמ תולת ןיב םיכרע תואלבטב ‪.‬תונוש הארנךשמהברשפאש רידגהל‬ ‫‏)‪ D‬ץוליא ‪.‬הזכ‬

‫‪ 6*6‬תוכרעמיסיסבסינותנ‬ ‫םנשי םיללכ םתקידבש תבכרומ ףאו הרקי הניחבמ ‪,‬תיבושיח רבדהו לולע בכעל‬ ‫תאהדובעה‪.‬תפטושה םיללכ םירחא םניא םינתינ ללכ הפיכאל תועצמאב הקידב‬ ‫תיטמוטוא לש ‪,‬םיצוליא שיו חיטבהל תא םמויק תועצמאב ילהונ הדובע‬ ‫םימיאתמ הביתכו הנוכנ לש תוינכות ‪.‬םושיי ןלהל ריכנ םיגדנו יצוליא תוניקת‬ ‫רשפאש רידגהל ‏‪SQL-2‬‬

‫‪4.4.1‬רפסב‬ ‫ףיעס‬

‫םיצוליא לע סחי דדוב‬ ‫תרדגה סחי ‏‪ SQL-2‬תועצמאב ‏‪ 010816table‬הלוכי לולכל םג תורדגה יצוליאל‬ ‫תוניקת ‪.‬םימיוסמ וניאר רבכ תאהרדגהה לש יסופיט םינותנ תודומעל תונושה‬ ‫ןכוהרדגה לשתוחתפמ ‪.‬םיישאר‬

‫רוסיא לע‬

‫םיכרע‬

‫םיקיר‬

‫הדומעב‬

‫ךרע קיר ‏)‪ (null‬אטבמ בצמ ובש ךרעה אל עודי וא ןיידעש אל ‪.‬ןזוה שי תודומע‬ ‫ןהבש ןיא העינמ וראשויש םיכרע ‪.‬םיקיר‪,‬לשמל ןכתי רסחש ונל עדימ יבגלהבוגה‬ ‫ילמיסקמה וילאש לוכי עיגהל חמצ ‪,‬םיוסמ לכבו תאז הצרנ סינכהל תא םיטרפה‬ ‫‏‪ DY‬חמצ הז סיסבל ‪.‬םינותנה הרקמב הזכ ןיזנ הרוש רובע חמצה ‪,‬רומאה םע ךרע‬ ‫‏‪ null‬הדומעב לש הבוגה ‪.‬ילמיסקמה תמועל ‪,‬תאז שי תודומע ןהבש אל הצרנ‬ ‫רשפאל ‪.‬תאז ‪,‬לשמל םיכרעה תודומעב חתפמה ישארה םניא םילוכי תויהל‬ ‫‪,‬םיקיר ןוויכ זאש אל ולכוישמשלםדיקפתב‪.‬ההזמה‬ ‫םיתיעל הצרנ םוסחל תאתורשפאה ריאשהל ךרע קיר הדומעב תמיוסמ םג םא‬ ‫הניא‪.‬חתפמ‬ ‫המגוד‪ 4.6:‬אל םיאתמ ויהיש םיכרע םירסחהרושב תסנכומש ‪::‬וקק‪/‬ץסחיל םא‬ ‫םיחוודמ לע תעונת יאלמ ‪,‬יהשלכ אל ריבס ןיאש עדימ יבגל םיחמצה ורבעוהש‬ ‫העונתב ‪,‬וז יבגל‪,‬םרפסמ סאה וטלקנ יאלמב וא ואצוה ונממ ‪'.‬וכו‬ ‫ידכ חיטבהל תפיכא ץוליא הזכ לע ידי‪,‬תכרעמה םיפיסומ ‏‪ not null‬ףוסבתרדגה‬ ‫הדומעה ‪.‬המיאתמה ןלהלתרדגהסחיה ‏‪-.5001,supply‬ב ללוכתרדגה םיצוליאה‬ ‫גוסמ יסופיט ‪,‬םינותנ חתפמ ישאר יצוליאו ‏‪:not null‬‬

‫ףיעס‪4.4.2‬רפסב‬

‫ךירדמהדימלקרפל ‪ | 4‬‏‪=-SQL‬תמרםייניב * ‪97‬‬

‫‪not null,‬‬ ‫‪not null,‬‬ ‫‪not null,‬‬ ‫‪not null,‬‬ ‫‪not null,‬‬

‫‪createtable supply‬‬ ‫‪(holder‬‬ ‫‪varchar(20),‬‬ ‫‪transfer_no‬‬ ‫‪numeric(5),‬‬ ‫‪date‬‬ ‫‪date‬‬ ‫‪p_name‬‬ ‫)‪archar(15‬‬ ‫‪quantity‬‬ ‫)‪numeric(4‬‬ ‫‪in_out‬‬ ‫)‪varchar(3‬‬ ‫‪from_to‬‬ ‫)‪varchar(20‬‬ ‫;))‪primary key (holder,transter_no‬‬

‫‪‎‬ץוליא ‪unique‬‬

‫ףיעס‬ ‫‪4.4.3‬רפסב‬

‫םיתיעל הצרנ חיטבהלםיכרעהשהדומעב ‪,‬תמיוסמ וא ףוריצב ‪,‬תודומע םינוש הו‬ ‫הזמ לכב‪,‬הרוש םג םא םניא םירדגומ חתפמכ ‪.‬ישאר‬ ‫המגוד ‪ 4.7:‬סחיב‏‪ design‬ונרדגה תא חתפמה ישארה חתפמכ בכרומה שולשמ‬ ‫‪:‬תונוכת‏)‪, (a_name,year,season‬רמולכ לכל הקלח שיהנשב תמיוסמ הנועבו‬ ‫תמיוסמ בוציע דחא ‪.‬דיחיו לכל בוציע ונא םירמוש םג תא תפמ בוציעה ‪-‬‬ ‫‪. 0‬הוהק חיננ והזש *בוק ליכמה עדימ ‪.‬יפרג ונחנא םירמוש ץבוק הז דועיתכ‬ ‫אוהו שמשי תא ישנא עוצקמהםיננכתמה םיעצבמו תא ‪,‬םיבוציעה ךא הז אל ןותנ‬ ‫סחייתהללקש ונכותלתרגסמבתפילש עדימ סיסבמ ‪.‬םינותנ ןכל‏‪ PR‬אוה םיאתמ‬ ‫שמשל חתפמכ יכרוצל ‪,‬יוהיז ךא ןכתי דואמהצרנש דיפקהל לכלש בוציע רמשית‬ ‫‪117‬ס ‪.‬תואק לכונ אופא‬ ‫תפמ בוציע ‪.‬הנוש ‪,‬רמולכ לכבש הרוש היהי ךרע הנוש לש‬ ‫רידגהלהדש הז ידוחייכתרגסמבתרדגה סחיה ‏‪: createtable-2‬‬ ‫;)‪unique (map_file‬‬ ‫רשאכ *וליאה רדגומ‏‪ DY‬הדומע תחא‪,‬דבלב אוה לוכי עיפוהל םג ‏‪ NO‬הרושה‬ ‫הרידגמה הדומע ‪,‬וו המודב ‏>‪.not null-‬לשמל רשאכהשירדה תוידוחייל הלח לע‬ ‫ףוריצ ‪,‬תודומע הרדגהה תבייח עיפוהל‪.‬דרפנב םישנ בל יכ הרקמב לש ףוריצ‬ ‫‪,‬תודומע השירדה איה ףוריצהש ולוכ ךירצ תויהל ‪,‬ידוחיי אלו לכהדומע‪.‬דרפנב‬ ‫‪,‬השעמל ץוליא גוסמ ‏‪ unique‬רידגמ‪,‬חתפמ המודב 'וליאל רידגמהחתפמ ‪.‬ישאר‬ ‫ךשמהב רידגנ קיודמב תא גשומה חתפמ םיגשומו םירושקש ‪,‬וילא ריהבנו תא‬ ‫ןוימדה תאו לדבהה ןיב ינש םיצוליא ‪.‬הלא הניחבמ ‪,‬תישעמ לדבהה ירקיעה‬ ‫יאדכש םישל בל וילא בלשב הז ‪,‬אוה ףאש תחא תודומעמחתפמה ישארה הניא‬ ‫הלוכי לבקל ךרע ‪.‬חט[[ והז קלח *וליאמ חתפמה ‪.‬ישארה תמועל ‪,‬תאז ףוריצ‬ ‫םיכרע ךירצש תויהל‏‪, unique‬לוכי םירקמב ‪,‬םימיוסמ ליכהל םיכרע ‪.‬םיקיר‬

‫‪= 98‬תוכרעמיסיסבסינותנ‬ ‫ףיעס‬ ‫‪4.4.4‬רפסב‬

‫‪‎‬קוספ ‪check‬‬ ‫‪ 016810‬הלוכי לולכל םג וליא לש תקידב יאנת יגול יללכ לע‬ ‫תרדגה סחי ‏‪table-1‬‬ ‫תורוש ‪,‬סחיה תועצמאב קוספ‏‪.check‬‬ ‫המגוד ‪ 4.8:‬הדומעה ‪ 01‬זח סחיב‏‪ supply‬הלוכי לבקל דחא ינשמ םיכרע ח‪ -‬וא‬ ‫‪ 1.‬ונרדגה תא סופיט םינותנה הלש תוזורחמכ ךרואב לש דע ‪. 3‬םיוות ידכ‬ ‫חיטבהל ונזויש קר ינש םיכרע ‪,‬הלא לכונ ףיסוהל הקידב לש יאנת ‪:‬הזכ‬ ‫‪)‎‬יומי‪,‬יסטש(( ‪check(in_outin‬‬

‫תוחתפמ םירז‬

‫ףיעס‬ ‫‪4.4.5‬רפסב‬

‫םיתיעל תובורק םיכרעה םיירשפאה הדומעב תמיוסמ םיעבונ תמישרמ םיכרע‬ ‫העיפומש הדומעב המיאתמ סחיב ‪,‬רחא ובש הדומע וז איה חתפמ ‪.‬ישאר‬ ‫המאתהה ןיב יכרע תודומעה תרשקמ ןיב עדימהינשבש ‪.‬םיסחיה‬ ‫המגוד ‪ 4.9:‬םיכרעה םיירשפאה הדומעב‏‪ a_name‬סחיב‏‪ a’csigu‬םיכירצ עובנל‬ ‫ךותמ תמישר תוקלחה סחיב‪ 4104,‬ובש תאמנס‪ 4‬אוה חתפמ ‪.‬ישאר סחיה‪8108‬‬ ‫הווהמ המישר לש לכ תוקלח ןוניגה ‪.‬הייריעב סחיב‏‪ ,|design‬ליכמהםייטרפ לע‬ ‫בוציע ןוניגה תוקלחב תונושה לש ‪,‬הייריעה הפצנ אוצמל עדימ לע בוציע תוקלח‬ ‫ךותמ המישר ‪,‬וז אלו לע תוקלח ןניאש‪.‬המישרב רסוח המאתה הזכ יושע דיעהל‬ ‫רסחש עדימתמישרב תוקלחה סחיב(‏‪ (area‬וא שיש‏‪ MYV‬עדימב עגונה ‪.‬בוציעל‬ ‫השירדה המאתהל ןיב תוצובק םיכרע תודומעב לש םיסחי ‪,‬םינוש ךות הינפה‬ ‫סחיל ובש תצובק םיכרעה‪,‬תעבוקה איה ץוליא גוסמ בושח *ופנו הנוכמה ץוליא‬

‫וליאהקיז‬ ‫‪referential‬‬ ‫‏‪integrity‬‬ ‫הקיז ‏)‪).integrity‬י‪61‬טויסמ‪ [8‬םיצוליא גוסמ הז םירשפאמ רידגהל םירשק ‏‪P2‬‏‪constraint‬‬ ‫םיסחי םינוש ףאו אדוול םירשקהש םימייקתמ ןפואב ‪.‬ןיקת‬

‫רשאכ שי ץוליא הקיז עבוקה םיכרעהיכהדומעב ‏‪ A‬תסחיבםסיבייח תויהל םילולכ‬ ‫ןיב יכרעחתפמה ישארה לש סחי רחא והשלכ‏‪ LS‬ונא םינכמ תא הדומעה ‏‪2- A‬‬ ‫םשב חתפמ ‪.‬רז תאז לשב הקיזה הלשחתפמל לש סחי ‪.‬רחא םישנ( בל יכהמגודב חתפמרז‬ ‫‪foreign‬‬ ‫‏‪key‬‬ ‫‪,‬תמדוקה הדומעה‏‪ a_name‬הווהמ חתפמ רז עיבצמה‏‪ DY‬סחיה‏‪ ,area‬הבו תעב‬ ‫איה הווהמ קלחחתפמהמ ישארה לש‏‪(.design‬‬

‫ךירדמהדימלקרפל ‪ | 4‬‏‪= SQL‬תמרםייניב * ‪99‬‬ ‫? םאה ןכתיי הדומעש תרדגומש חתפמכ רז סחיב םיוסמ רדגות םג חתפמכ‬ ‫ישאר לש ותוא יסחי‬ ‫השעמל‏‪,PR‬העינמ םא יכ הז בצמתוחפ ‪*.‬ופנ בצמ הז ןכתיי רשאכ סחיה ובש‬ ‫רדגומחתפמה רזה קסועהצובק‪-‬תתב ךותמ תצובק םיכרעה תירקיעה סחיב‬ ‫וילאשהנפמתרדגהחתפמה ‪.‬רזה‬ ‫‪,‬המגודכ חיננ הייריעהש הליעפמ טקיורפ ובש םיבשותה םיגרדמ תא תוקלח‬ ‫ןוניגה תונושה תוניחבמ ‪.‬תונוש עדימה ףסאנ ‪,‬םכוסמו בקעו ךכ םירמוש סיסבב‬ ‫םינותנה לש הייריעה סחי ‪,‬ליכמש לכל תקלח ‪,‬ןוניג תא תואצות םיגורידה‬ ‫ולבקתהש תוירוגטקב ‪.‬תונושה הדומעה‏‪ a_name‬איה חתפמ ישאר סחיב ‪,‬הז‬ ‫לכבו תאז הצרנ‏‪DX‬הרידגהל חתפמכ רז עיבצמש ‏‪.areay‬‬ ‫דחא םיטביהה שיש תתל וילע תאתעדה םיננכתמשכתרדגהתוחתפמ םירז אוה‬ ‫רשאכש םירידגמ הדומע חתפמכ ‪,‬רז יא רשפא סינכהל הילא ךרע םרטש סנכוה‬ ‫סחיל ‪,‬רוקמה םג םא ךרע הזכ סנכוי‪.‬דיתעב ‪,‬רמולכ תרדגה חתפמ רז הביתכמ‬ ‫רדס תולועפ םיוסמתעב תפסוה םינותנ םירשוקמ ‪.‬םישדח‬ ‫תרדגה 'וליאה ‪-8)(1‬ב הלוכי תושעיהל תחאב יתשמ ‪,‬םיכרד ךותב תרדגה‬ ‫‪ : 00866 06‬ףוסב תרוש הרדגהה לש הדומעה תיטנוולרה וא ףוסב תרדגה‬ ‫סחיה ‪,‬ולוכ תרגסמב תמישר םיצוליאה העיפומה ‪.‬ופוסב רשאכ חתפמה רזה‬ ‫בכרומ המכמ ‪,‬תודומע ךרדה היינשה איה ‪.‬המיאתמהתרדגהל הדומעה‏‪a_name‬‬ ‫חתפמכ רז ךותבתרדגה סחיה‏‪ design‬לכונ ‪:‬םושרל‬ ‫‪referencesarea,‬‬

‫)‪varchar (20‬‬

‫‪a_name‬‬

‫‪,‬ןיפולחל לכונ ףיסוהל תא הרדגהה האבה ירחא תרדגה תודומעה ‪‎‬יסופיטו‬ ‫םינותנה ‪:‎‬ןהלש‬ ‫‪foreign key (a_name)referencesarea‬‬ ‫המגוד ‪ 4.10:‬ףוריצ ‪‎‬תודומעה)‪‎ (a_name,year, season‬סחיב‪design_details‬‬ ‫‪ 005198.‬הרקמב הז תרדגהחתפמה רזה ‪‎‬היהת‬ ‫אוה חתפמ ‪,‬רז עיבצמה לע סחיה‬ ‫ףוסבתרדגה ‪:‬סחיה‬ ‫‪foreign key (a_name,year,season)referencesdesign‬‬

‫‪0‬ף תוכרעמיסיסבםינותנ‬ ‫לופיט‬

‫םיבצמב לש תרפה‬

‫ץוליא הקיז‬

‫םיצוליאה וניארש דע הכ ויה םיצוליא ולחש לע סחי ‪,‬דדוב ןפואברידגהש םיבצמ‬ ‫םייוגש תולועפב הפסוה וא ןוכדע לש תורוש ‪.‬תומיוסמ םירקמב ‪,‬הלא רשאכ‬ ‫*וליאה‪,‬רפומ הפסוהה וא ןוכדעה ‪,‬םילשכנתכרעמהו לככהארנה תקפסמ העדוה‬ ‫העירתמה לע ‪.‬ןולשיכה‬ ‫םג *וליא הקיז רדגומתרגסמבהרדגהה לש סחי ‪,‬דדוב ויהיו םיבצמהפסוהש וא‬ ‫ןוכדע ולשכיי לשבתרפה ץוליא ‪,‬הז ומכ םירקמב ‪.‬םימדוקה ךא םישנ ‪,‬בל לשבש‬ ‫הקיזה רידגמש‪,‬לץוליאה ןכתית םגהרפהי"הפיקעיי ‪,‬ולש הניאש תעבונ תולועפמ‬ ‫תויוגש לש הפסוה וא ‪.‬ןוכדע‬ ‫‪,‬לשמל חיננ ונפסוהש הרוש ‪,‬תסחילרדגומש ובחתפמ רז םע הקיו ‪5.‬סחיל הפסוה‬ ‫‏‪ N‬התייה ‪,‬הניקת ןוויכמ ךרעשחתפמה רזה ןכא אצמנ תדומעב חתפמה לש‏‪;S‬‬ ‫הרושב ‪.‬יהשלכ רחאל ןמז הרוש וז הקחמנ ‪-5,‬מ ךכבו המרגנ דבעידב הרפה לש‬ ‫צוליא הקיזהרדגוהש לע ‪1.‬‬ ‫המ שי תושעל הרקמב !הזכ םאה שי קוחמל ‏)‪! D‬התוא ילואו רשפא ריאשהל‬ ‫!)ם‪8‬ט‪-[1‬ל ילואו‬ ‫התוא קרו ייספאלי תא ךרעהתדומעבחתפמה רזהךופהל( ותוא‬ ‫ןכדעל תאךרעה יתייעבה ךרעל ‏‪NN‬‬ ‫הרפה הפיקע וזכ ןכתית םג הרקמב עצובש ןוכדע לש ךרע תדומעחתפמה סחיב‬ ‫רוקמה ‪ 9),‬הרושהו אל ‪.‬הקחמנ םאה עצבל יונישההּזךרעב תדומעחתפמה !רזה‬ ‫וא ילוא קוחמל תא‪,‬הרושה וא ספאל תא !ךרעה‬ ‫הבושתה תולאשל הלא היושע תויהל הנוש םירקמב ‪.‬םינוש המגודב ‪, 4.9‬לשמל‬ ‫םא טלחוה תונשל םש לש תקלח ‪,‬ןוניג ריבס הצרנש ןכדעל תא יונישה לכב‬ ‫תומוקמהםהבש עיפומ םש‪.‬הקלחה תמועל ‪,‬תאזהמגודב‪ 4.10,‬םא לטובמ בוציע‬ ‫םיוסמ לש תקלח ‪,‬ןוניג רבדהו אטבתמ תקיחמב הרוש סחיהמ‏‪DYVPN- design‬‬ ‫רומשל תא יטרפ בוציעה הזה סחיב‏‪ ,|design_details‬ןוכנו היהי קוחמל םג תא‬ ‫תורושה תומיאתמה ותואל בוציע סחימ ‪.‬הז‬ ‫תרגסמב תרדגה חתפמ רז ‏‪ SQL-2‬רשפא רידגהל םג תא ןפוא לופיטה יוצרה‬ ‫תורפהבתועבונש םייונישמ סחיב ‪,‬רוקמה ןפואו הז לוכי תויהל הנוש םירקמל לש‬ ‫הקיחמ םירקמלו לש ‪.‬ןוכדע‬ ‫ביחרנ תאהרדגהההמגודבש‪ 4.9‬םאתהב ןוידלונכרעש ‪:‬ךכ‬

‫ךירדמהדימלקרפל ‪ | 4‬‏‪- SQL‬תמרםייניב * ‪101‬‬ ‫‪foreign key (a_name)referencesarea‬‬ ‫‪on updatecascade‬‬ ‫תאהרדגהההמגודבש‪ 4.10‬ביחרנ םאתהב ותואל ןויד ‪:‬ךכ‬ ‫‏‪foreign key (a_name,year,season)referencesdesign‬‬ ‫‪on deletecascade‬‬ ‫הארוהה‪ 6850406‬השוריפ יונישהש סחיב רוקמה ךירצי'עפעפלי' ותואב ןפוא ‏)‪D‬‬ ‫סחיל‏‪DY‬חתפמה ‪.‬רזה הרקמב לש‬

‫אמוס‪ 4,‬יוניש לשךרעה סחיב רוקמה ךירצ‬

‫עצבתהל ותואב ןפוא ‏)‪ D‬סחיבהנפמה‏—‪ .design‬הרקמב‪,‬ינשה הקיחמ לש הרוש‬ ‫סחיב רוקמה הכירצ םורגל תקיחמל תורושה תומיאתמה םג סחיב‪.‬הנפמה‬ ‫עוריאה לולעש םורגל הרפהל אוה לוטיב‏)‪ (delete‬וא ןוכדע ‏)‪ (update‬ןכלו‬ ‫תוארוהה וללה תוסחייתמ דחאל ינשמ ‪.‬םיעוריאה רשפא ןבומכ רידגהל תא ןפוא‬ ‫לופיטה יוצרה לכב דחא ינשמ םיעוריאהתרגסמבתרדגה ותוא ‪.‬ץוליא‬ ‫לופיטהירשפאה לכב הרקמ לוכי תויהל דחא ‪:‬םיאבהמ‬ ‫‪ +‬עוציב יוניש ההז סחיבהנפמה‏)‪ - (cascade‬ומכ תואמגודב ‪.‬תומדוקה‬ ‫* י"סופיא" ךרעה יתייעבה סחיב הנפמה ‏)‪ 506),null‬יאנתב ןבומכ רבודמש‬ ‫הדומעב הלוכיש לבקל ךרע ‏‪.null‬‬ ‫* תבצה ךרע ‪,‬רחא רדגוהש שארמ תרירבכ לדחמהדומעל וז ‏)‪+56).default‬‬

‫ןתמ םש‬

‫ץוליאל‬

‫תוניקת‬

‫תעב תרדגה יצוליא תוניקת רשפא םתונכל‪.‬םֶשב רבעמ תרהבהל ותנווכ לש‬ ‫‪,‬ץוליאה ןתמ םשהרשפאמ סחייתהל לא *וליאה לשמל ידכ קוחמל ‪.‬ותוא‬ ‫ידכ תתל םש ‪,‬ץוליאל שי בותכל תא הלימה הרומשה ‏‪ constraint‬הירחאו תא‬ ‫םשהרחבנה ינפלתרדגה ‪.‬ץוליאה לשמל רובע ץוליאה המגודמ ‪4.8:‬‬ ‫))’‪)rout‬ינמ'‪1,‬מ ‪‎‬סוק ‪constraint in_out_valuescheck)70‬‬

‫ףיעס‪4.4.6‬רפסב‬

‫‪2‬‬

‫תוכרעמיסיסבםינותנ‬ ‫יצוליא‬

‫תוניקת‬

‫תועונתו‬

‫ףיעס‪4.4.7‬רפסב‬

‫שי םיבצמםהבש היהנ םינכומהרפהלבקל תינמז לש ץוליא תוניקתךלהמב עוציב‬ ‫‪.‬העונת ‪,‬רוכזכהעונת איההרדס לשתולועפ שישתועמשמ העוציבל אלמההלועפכ‬ ‫‪.‬תחא תרגסמב תרדס תולועפה ןכתי ץוליאש רפוי ירחא תחא ‪,‬ןהמ ךא תולועפ‬ ‫תורחאךשמהב וריזחי תא תוניקתה‏‪.DY‬הנכ לכב ‪,‬הרקמ םויסב עוציבה אל היהת‬ ‫הרפה לש ‪.‬ץוליאה‬ ‫םיבצמב הלא םיפיסומ תרדגהל *וליאה תא תפסותה‪ 06161100‬‏‪Anitially‬‬ ‫תפסות וז תנייצמ ןיאש םיקדוב תא ץוליאה אלא םותב‪.‬העונתה תמועל ‪,‬תאז םא‬ ‫םיניינועמ רשפאל תא תקידב *וליאה רחאל לכ‪,‬הלועפ םג ךות ידכ ‪,‬העונת ךא‬ ‫רשפאל תוחדל תא הקידבה ךות ידכ העונתה ‪ -‬םיפיסומ תא תמויסה‬ ‫‏‪ .deferrable‬ץוליאה קדביי ירחא לכ‪,‬הלועפ ךאהעונתה לכותליעפהל הייחד לש‬ ‫הקידבה ךות ידכ ‪.‬התציר‬

‫םתרדגה לש‬

‫םיצוליא‬

‫םיבכרומ‬

‫תועצמאב‬

‫תוארוהה‬

‫‏‪assertion~) check‬‬ ‫םיצוליאה וניארש דע הכ וסחייתהתרדגהל הדומע תיפיצפסהלבטב וא רשקל ‏‪P2‬‬ ‫הדומע וא( )תודומע ןיבל חתפמ ישאר לש סחי ‪.‬רחא שי םיצוליא הצרנש אדוול‬ ‫תא םתוניקת רשאו םניא םינתינהרדגהל םיעצמאב וניארש דע ‪.‬הכ‬ ‫המגוד ‪ 4.11:‬חיננ הצרנש אדוול ןונכתש תומישמ הדובעה םאות תא תינכות‬ ‫בוציעה ‪.‬תיטנוולרה שי םיטבה םינוש המאתהל ‪,‬וז ילואו אל תא םלוכ רשפא‬ ‫‪,‬קודבל וא אלש תא םלוכ הצרנ ‪,‬קודבל םילוקישמ םינוש םקלחבש ןודנ‪.‬ךשמהב‬ ‫המאתהה תיסיסבה ‪,‬רתויב איהש םג הטושפ תיסחי ‪,‬חוסינל איה ןיב ינותנ‬ ‫‪,‬הקלחה הנשה חמצהו לש תמישמ הדובע תמיוסמ ןיבל םינותנ הלא יטרפב‬ ‫תינכות ‪.‬בוציעה ‪,‬רמולכ ןיב םיכרעה םיעיפומש תודומעב ‏‪a_name,year,‬‬ ‫‪.design_details-2‬‬ ‫‪ work_assignment‬ןיבל יכרע ןתוא ‪‎‬תודומע‬ ‫‪‎ p_name‬סחיב‬ ‫השירד וז המוד הדימב הבר השירדל לש *וליאחתפמ ‪,‬רז ךאתרדגהב חתפמ רז‬ ‫תשרדנ המאתה ןיב יכרע תודומע סחיב דחא ןיבל יכרע לכ תודומעחתפמה סחיב‬ ‫‪,‬רחא וא לכמ םוקמ יכרעל ףוריצ תודומע הווהמש חתפמ ‪,‬ליבק רמולכ ףוריצ‬ ‫אוהש‏‪ .unique‬וליאו ‪,‬ןאכ המאתההתשקובמה איה קר קלחל תודומעמחתפמה‬ ‫לש ‏‪ | design_details‬ףוריצו הז לוכי עיפוהל המכב תורוש תונוש סחיב‬

‫ףיעס‪4.4.8‬רפסב‬

‫ךירדמהדימלקרפל ‪ | 4‬‏‪- SQL‬תמרםייניב ‏‪103 e‬‬ ‫‏‪, .design_details‬השעמל המ ונחנאש םיניינועמ אדוול אוה ףוריצש הזכ םייק‬ ‫הרושב יהשלכ סחיב‏‪,design_detarls‬תחא‪.‬תוחפל‬ ‫השירדהמאתהל לש םיכרעה תצובקב תודומע סחיב‬ ‫‏‪ work_assignment‬םיכרעל‬ ‫תצובקב תודומע סחיב‏‪ | design_detarls‬תורמל תצובקש תודומעה הרומאה‬ ‫הנניא הווהמחתפמ‏‪NN, design_detarls-2‬הרדגהל תועצמאב תארוה‏‪.check‬‬ ‫‏‪, Work_assignment‬‬ ‫םישנ בל יכ וליאה ןאכ אוה לע םיכרעה םיירשפאה סחיב‬ ‫‏‪: work_assignment‬‬ ‫ןכלו לולכנ תא הארוהה ףוסבתרדגה סחיה‬ ‫‪ (selecta_name,year,p_name‬וח תמזנס(‪‎‬ק ‪year,‬‬ ‫‪check((a_name,‬‏‪ postgreSQL-2‬ןיא‬ ‫םירשפאמשומיש‬ ‫))‪from design_details‬‬ ‫התליאשבתננוקמךותב‬ ‫‪68%.‬קרפב‪5‬הארנ‬ ‫דציכאדוול*וליאהזכ‬ ‫המגוד‪ 4.12:‬טוריפ תומישמהדובעה רדגומ תמרב‪,‬עובש ‪,‬הנש הקלח ‪.‬חמצו לכ םיעצמאבםירחא‬ ‫‏)‪(triggers‬‬ ‫הלא םיווהמ תא חתפמה ישארה לש‏‪ IO, work_assignment‬םיעבוק ‪-‬דח‬ ‫תיכרע תא ןנגה וילעש תלטומ תמישמ‪.‬הדובעה םישנ בל יכ ןיא ךכב ידכ עונמל‬ ‫תלטה תומישמ הדובע תונוש התואב הקלח התואבו הנש לע םיננג ‪,‬םינוש וליפא‬ ‫ותואב‪.‬עובש תניחבמחתפמה ‪,‬ישארה רשפא ליטהל לע םיננג םינוש הליתש לש‬ ‫םיחמצ םינוש התואב ‪,‬הקלח ותואב‪.‬עובש‬ ‫חיננ תניחבמש תולהנתהה ‪,‬תואיצמב ןכא הרוק םיליטמש תומישמ לע םיננג‬ ‫םינוש התואב ‪,‬הקלח ךא אל ותואב‪.‬עובש‪,‬לשמל שי ימ דקפומש לע יוקינהקלחה‬ ‫םיחמצמ םינשי ‪,‬םימיוסמ ימו דקפומש לע הליתש רחאל ‪.‬יוקינה ךא שיתכרעמב‬ ‫ללכ ויפלש ןיא םיחלוש ינש םיננג םינוש התואל הקלח ותואב עובש‪,‬לשמל( ידכ‬ ‫חיטבהל המירז הבוט לש‪).‬הדובעה םא םיצור אדוולםינותנהש אל ודיעי לעהרפה‬ ‫לש ללכ ‪,‬הז שי רידגהל ‏‪ IR‬תוניקת ‪.‬דחוימ‬ ‫ץוליא יללכ הזכ ןתינ רידגהל תועצמאב‏‪: createassertion‬‬ ‫‪createassertion weekly_gardener %‬‬ ‫*‪(not exists(select‬‬ ‫‪from work_assignmentas‬‬ ‫‪W1,‬‬ ‫‪work_assignmentas‬‬ ‫‪W2,‬‬ ‫‪where W1l.a_name=W2.a_name‬‬ ‫‪and W1.year=W2.year‬‬ ‫‪and W1.week= W2.week‬‬ ‫;))‪and W1.g_name W2.g_name‬‬

‫‪PNpostgreSQL-2‬‬ ‫שומימ‪.assertions‬‬ ‫‪‎‬לש‬

‫‪4‬‬

‫תוכרעמיסיסבםינותנ‬

‫םישנ ‪,‬בל יכםעפה אל רבודמ *וליאבקדבנש קרתעב הפסוה וא ןוכדע לש הרוש‬ ‫‪,‬תמיוסמ אלא והז *וליא ותקידבש תבייחמ תקידב םינותנה סחיב ‪.‬ולוכ יתמ‬ ‫‏‪ Pwork_assignment‬הקידב וזכ‬ ‫םיקדוב ץוליא !הזכ םאה בקע לכ יוניש סחיב‬ ‫הלולע ךורצל ןמז בושיח ‪,‬ךשוממ טרפב האוושהב םיצוליאל וניארש דע ‪,‬הכ שיו‬ ‫לוקשל םא םנמא יאדכ עיקשהל תא םיבאשמה םישורדה םשל ‪.‬ךכ ‪,‬םנמאו‬ ‫תוכרעמ תובר ןניא תושמממ קלח הז ןקתב ‪ 5‬‏‪SQL‬‬ ‫קרפב אבה הארנ דציכ רשפאשמתשהל םילכב םירחא ידכ עצבל תוקידב לש‬ ‫םיצוליא ‪,‬םימוד ףאו תסוול תא תורידת הקידבה ‪.‬היטרפו‬

‫יסופיט‬

‫םינותנ‬

‫ףיעס‪4.5‬רפסב‬

‫תוינבתו‬

‫תליחתב קרפה וניארהרדגה תיסיסב לש תוינבת ‪,‬םיסחי םע המכ יסופיט םינותנ‬ ‫‪.‬םייסיסב ומכ ןכ וניארךשמהב הפסוה לש יצוליא תוניקתתרדגהל תינבת ‪.‬סחיה‬ ‫ביחרנהתע המכ םיטביה לשתורדגה הלא ןכו תויורשפא ‪.‬תופסונ אלטרפנ תא לכ‬ ‫יסופיט םינותנה ‪,‬תויורשפאהו ןוויכמ םהש םיינכט ‪.‬דואמ ולכות ןייעל ףיעסב הז‬ ‫רפסב ידכ לבקל םיטרפ ‪,‬םיפסונ וא דועיתב הנכותה הבש םתא‪,‬םישמתשמ יפל‬ ‫‪.‬ךרוצה ןויד בחר רתוי יסופיטב םינותנ אבוי קרפב ‪8.‬‬

‫תרדגה‬

‫יסופיט‬

‫םינותנ לע ידי‬

‫שמתשמה‬

‫‪4.5.5‬רפסב‬ ‫ףיעס‬

‫שמתשמ לוכי רידגהל יסופיט םינותנ םישדח תועצמאב הארוהה ‏‪.create type‬‬ ‫תרדגה סופיט םינותנ תללוכ ןתמ םש סופיטל םינותנה ‪,‬שדחה ןויפאו םוחת‬ ‫םיכרעה אוהש לוכי ‪.‬לבקל םוחת םיכרעה ןייפואמ ךרדב ללכ תועצמאב ‪-‬תת‬ ‫םימוחת לש םינותנ םימייק וא המישרכ תיפיצפס לש ‪.‬םיכרע‬ ‫םיגדנתרדגה סופיט םינותנ דחוימ רובע תונוע‪,‬הנשה םשב‏‪ .seasons‬והז סופיט גוסהזלשיסופיטםינותנ‬ ‫אלגצומקרפב‏‪,7Y‬רפסב‬ ‫‏‪N‬לולכתסרגב‏‪SQL‬לש‬ ‫םינותנ גוסמ ‏‪type‬‬ ‫‪,‬סמטחוסו‪, 8160‬רמולכ סופיט םינותנ ונאש םיקפסמ ורובע‬ ‫תוכרעמ‪,‬תונושןהיניב‬ ‫תמישר םיכרע ‪.‬הבוקנ רחאלותרדגהרשפאשמתשהל וב לכבכ סופיט םינותנ רחא‏‪.PostgreSQL‬‬ ‫קפוסמה לע ידי‪.‬תכרעמה‬ ‫‪: 5045018‬‬ ‫תרדגה סופיט םינותנה‬ ‫‪createtype 50450708‬‬ ‫;)’‪‎enum ('summer’,‘autumn’,'winter’,’'spring‬ה‪5‬‬

‫ךירדמהדימלקרפל ‪ | 4‬‏‪- SQL‬תמרםייניב ‏‪105 e‬‬ ‫יסופיט‬

‫םינותנ‬

‫םיטקייבואל‬

‫םילודג‬

‫שי ינש םיגוס לש יסופיט םינותנ םיטקייבואל םילודג ‪,‬דחוימב יבגלו לכ דחא םהמ \‪4.5.4‬ףיעסרפסב‬ ‫רשפא רידגהל לדוג ‪:‬ילמיסקמ‬ ‫‪ - 009 e‬רובע עדימ ‪‎‬ילאוטסקט)‪(characterlargeobject‬‬ ‫‏‪ - blob e‬רובע עדימ ירניב ‏)‪). largeobject‬סוחהוץ סופיט םינותנ ‏‪ M‬דעוימ‬ ‫תונומתל ‪,‬םיטרסו םאתהב ‪.‬לדוגל‬ ‫אל דימת ןסחואמ טקייבואה לודגה שממ קלחכ סחיהמ ‪.‬ומצע שי תוכרעמ‬ ‫תוקיזחמש ‏‪ N0‬לש עיבצמ סוקמל ןוסחא ‪.‬טקייבואה‬

‫ףיעס‪4.5.3‬רפסב‬

‫יכרע תרירב לדחמ‬ ‫תרגסמבתרדגה הנוכת תמיוסמ סע סופיט םינותנה ‪,‬הלש רשפא ףיסוהל העיבק‬ ‫לש ךרע תרירב ‪,‬לדחמ הרקמל‏‪ PRY‬םיניזמ ךרעתעב תסנכה הרוש סחיל ‏‪.Y‬‬ ‫םיגדנ תאתרדגה סחיה ‏‪ TN,design‬שומיש םיביכרמב םינושה ‪:‬ונגצהש‬

‫‏‪default 2022,‬‬

‫‪createtable design‬‬ ‫‪(a_name‬‬ ‫‏;)‪varchar (20‬‬ ‫תרדגהתרירבלדחמ‬ ‫‪year‬‬ ‫)‪numeric (4,0‬‬ ‫וזכתבייחמןוכדע‬ ‫תפלחתמשכ‪.‬הנש‬ ‫‪season‬‬ ‫‏‪seasons,‬‬ ‫‏‪varchar )30(,‬‬

‫‪designer‬‬

‫‪ 0‬דוהק‬ ‫‏‪blob (10MB),‬‬ ‫‏‪6 (a_name,year,season),‬ל ‏‪primary‬‬ ‫‏;)‪foreign key (a_name)referencesarea‬‬ ‫סופיט םינותנה ונרחבש רובע הנוכתה ‏‪ year‬אוה ךרע ירפסמ ןב ‪, 4‬תורפס ךרעו‬ ‫תרירב לדחמ אוה‪ 2022.‬סופיט םינותנה לש הנוכתה‪ 568508‬אוה סופיט םינותנ‬ ‫רדגומש‏‪ DY‬ידי‪,‬שמתשמה יפכונרדגהש ‪.‬םדוק‬

‫‪,‬תוינבת‬

‫ינולימ םסינותנ‬

‫תוביבסו הדובע‬

‫יפכרבכש ‪,‬וניאר לכל סחי סיסבב םינותנ שי תינבת )המיכס(הרידגמש תא והנבמ‬ ‫ןכו םיצוליא םילחש ‪.‬וילע המרב תיללכ ‪,‬רתוי לכל סיסב םינותנ שי ‪,‬תינבת‬ ‫הליכמה ןיב ראשה תא תוינבת םיסחיה םילולכה ‪.‬וב תינבת סיסב םינותנה תללוכ‬

‫ףיעס‬ ‫‪4.5.8‬רפסב‬

‫‪ 86‬תוכרעמיסיסבםינותנ‬ ‫עדימ ילוהינ ‪:‬ףסונ תורדגה לש יסופיט םינותנורדגוהש לע ידי;שמתשמה תורדגה‬ ‫לש םיצוליא םיילבולג םירדגומש‏‪ DY‬סיסב;םינותנה ינותנ יוהיז םישמתשמהלש‬ ‫םינושה תכרעמב תואשרהו השיגה ‪.‬םהלש המרב תיללכ דוע ‪,‬רתוי לכ תכרעמ‬ ‫לוהינל יסיסב םינותנ תלהנמ ינולימ םינותנ ‪),‬םיגולטק( םיליכמה עדימ תורדגהו‬ ‫תוימינפ לשתכרעמ ‪,‬לוהינה םייושעו סחייתהל המכל תוינבת לש יסיסב ‪.‬םינותנ‬ ‫‪,‬סחילכל תינבת ןולימו םינותנ שי‪,‬םש ךכו לבקתמגרדמ לש‪,‬תומש המודבגרדמל‬ ‫תויקית תכרעמב ‪.‬םיצבק תכרעמ תלהנמה יסיסב םינותנ תתרשמ עודיכ‬ ‫םישמתשמ ‪,‬םיבר םיאנתבו הלא גרדמ תומשה עייסמ תוהזל ןפואב רורב וליאל‬ ‫םיסחי שגינ לכ שמתשמ הזיאבו סיסב ‪,‬םינותנ ךכו ‪ -‬ענמיהל לפכמ תועמשמ‬ ‫‪.‬לוברסמו‬

‫ףיעס‪4.7‬רפסב‬

‫תואשרה‬ ‫לוהינהדובעהתכרעמב תבורמםישמתשמ ךורכ םג חוקיפב לע תויורשפאהשיגה‬ ‫לש םישמתשמה םינושה םיקלחל לש תכרעמ ‪.‬עדימה תפש הרדגהה לש ‏‪SQL‬‬ ‫תללוכ תוארוה תקנעהל וא( )תלילשל תואשרה ‪,‬השיג םיגוסמ ‪,‬םינוש עדימל‬ ‫םיסחיבש וא ‪.‬םיטבמב‬ ‫םנשיהעברא םיגוס לשתואשרה השיג םיסחיל סיסבבש ‪:‬םינותנה‬ ‫* תאשרה האירק‏)‪(selectprivilege‬‬ ‫‪ +‬תאשרה ‪‎‬הפסוה)‪(insertprivilege‬‬ ‫* תאשרה ‪‎‬ןוכדע)‪(updateprivilege‬‬ ‫‪ +‬תאשרה ‪‎‬הקיחמ )‪(deleteprivilege‬‬

‫תקנעה‬

‫תואשרה‬

‫ףיעס‪4.7.1‬רפסב‬

‫ןתלילשו‬

‫ריבחתה יסיסבהתקנעהל תואשרה ‪:‬אוה‬ ‫תמישרתואשרה ‏‪grant‬‬ ‫םש< סחי וא םש >טבמ סמ‬ ‫תמישרםידיקפת‪10‬‬ ‫םוקמב תמישר תואשרהה הלוכי עיפוהלהאשרה םשב ‏‪,privileges‬ג‪ 11‬תנייצמה‬ ‫תא לכ יגוסתואשרהה םג ‪.‬דחי‬

‫ךירדמהדימלקרפל ‪ | 4‬‏‪- SQL‬תמרםייניב * ‪107‬‬ ‫המגוד‪ 6.13:‬ןנגהרבכש ‪,‬ונרכה םילעבה לש ‏‪ NN‬יל‪,‬י"הביבח ךירצ תויהל לגוסמ‬ ‫אורקל עדימ סחיהמ‏‪ TR,work_assignment‬ףידע אלש היהת ול האשרה בותכל‬ ‫וא ןכדעל סחי הז ‪,‬רמולכ( רוציל תומישמ הדובע רובע ‪).‬םיננג תמועל ‪,‬תאז ידכ‬ ‫חוודל לע עוציב תומישמ הדובעה הכירצ תויהל ול האשרה בותכל ןכדעלו תא‬ ‫סחיה ‏‪.work_fulfillment‬‬ ‫םשל‪,‬המגדהה חיננ יכ םג םששמתשמה ולש תכרעמב אלו( קר ומש )ירחסמה‬ ‫אוה ‏‪ DY‬יל ‪".‬הביבח‬ ‫‪grant 41‬‬ ‫‏‪ work_assignment‬סח‬ ‫הניג'‪ -‬יל 'הביבח‪10‬‬ ‫‪grant select,insert, delete,update‬‬ ‫‪‎ work_fulfillment‬סמ‬ ‫;‪ NYY‬יל ‪'‎‬הביבח‪10‬‬ ‫ןעמל ‪,‬קוידה המ ונייהש םיצור הרקמב הז אוהרשפאל ןנגל לש ‏‪ NP‬יל""הביבח‬ ‫תוארל קר תא תומישמהדובעה תועגונה ‪,‬וילא ןכדעלו קר תא יולימ תומישמה‬ ‫היהש וילע‪,‬עצבל אוהשו ןכא ‪.‬עציבתואשרההונרדגהש המגודב ליעלתורשפאמ‬ ‫ולתשגל לכל תורוש סחיה לכב דחא םיסחיהמהאשרהב(‪),‬תרדגומה ךכו תוארל‬ ‫םג עדימ עגונש םיננגל ‪,‬םירחא וא וליפא ןכדעל ףאו( )!לטבל יחוויד הדובע לש‬ ‫םיננג ‪.‬םירחא‬ ‫עיגהלידכ קוידל הז שי ךרוצ תאליבגהלתואשרהה קר תורושל תומיוסמ םיסחיב ףוסבקרפהדמלנךיא‬ ‫רידגהלתואשרהתמרב‬ ‫‪.‬םייטנוולרה ןיאתורשפא רידגהלהאשרה קר רובע קלח תורושמ סחיהתועצמאב ‪.‬הרושה‬ ‫תארוה ‏‪ .grant‬תמועל ‪,‬תאז האשרה הלוכי תויהל תלבגומ תודומעל תויפיצפס‬ ‫דבלב ךותמ תינבת ‪.‬סחיה‬ ‫המגוד ‪'" 1 6.14:‬ןדע אוה םש לש בצעמ תוניג דבועה תורישב ‪.‬הייריעה הצרנ‬ ‫רשפאל ול ןיזהל תא יטרפ בוציעה עציבשהנועב תמיוסמ רובע הקלח הרסמנש‬ ‫‪,‬ונונכתל ךא ליבגנ תאז קר ןוכדעל יטרפ םיחמצה ‪.‬תויומכהו ראש םיטרפה םש(‬ ‫‪,‬בצעמה הקלחה)הנועהו ונזוי ידיב תוכמס תיזכרמ ‪.‬יהשלכ‬ ‫)‪grant update (p_name,quantity‬‬ ‫‪‎ design_details‬סח‬ ‫ןגי; 'ןדע ‏‪to‬‬

‫‪8‬‬

‫תוכרעמיסיסבםינותנ‬

‫רשפא קינעהל תואשרה תומיוסמתרגסמבהרדגה ליינכשמתשמל םשב ‏‪.public‬‬ ‫שוריפ רבדההאשרהש וז תנתינ לכלשמתשמ אוהש אלל‪.‬הלבגה‬ ‫לכבתכרעמ שי‪,‬יילע‪-‬שמתשמיי שיש ול לכתואשרהה לע לכ ‪,‬םיסחיה ‪.‬שארמןֶהֶו =ןלהנמסיסבםינותנה‬ ‫‪database‬‬ ‫‪administrator‬‬ ‫ןלהנמ סיסב ‪‎‬םינותנה ‪.DBA -‬‬

‫‪‎4.7.2‬רפסב‬ ‫ףיעס‬

‫םידיקפת‬ ‫וניאררשפאש קינעהל תואשרהשמתשמל ןפואב ישיא לע יפ םש‪,‬שמתשמה ךא‬ ‫ךרדב ללכ ןויגיהה ירוחאמ תקנעה תואשרהה וא( )ןתלילש רושק דיקפתל לש‬ ‫שמתשמה תכרעמב עדימה הבש ‪.‬רבודמ םירקמבםסיבר הצרנ רידגהל תא‬ ‫תואשרהה םאתהב ‪.‬םידיקפתל‬ ‫דיקפת דחא רבכש ונרכזה אוה ןלהנמ סיסב םינותנה ‪ -‬‏‪ .DBA-N‬ךא רשפא םג‬ ‫רידגהל םידיקפת ‪,‬םישדח םאתהב יפואלתכרעמ עדימההבש ‪.‬רבודמ‬ ‫המגוד ‪ 4.15:‬ךרעמב ןוניגה ‪,‬ינוריעה קלח םישמתשמהמ תכרעמב עדימה םה‬ ‫‪,‬םיננג םישמתשמ םירחא םה יבצעמ ‪,‬תוניג ‪.‬דועו לכונ רידגהל תא דיקפת ןנגה‬ ‫תועצמאבריבחתה אבה ‏‪:SQL-2‬‬ ‫‪create1"016‬‬ ‫;‪gardener‬‬ ‫התע רשפא קינעהל תואשרה השיג סחיל ‏‪ work_fulfillment‬לכל שמתשמ‬ ‫רדגומש ‪,‬ןנגכ םוקמבהאשרה תישיא לכל ‪,‬ןנג יפכונישעש המגודב‪4.13:‬‬ ‫‪‎ work_fulfillmentto gardener:‬סח‪grant all privileges‬‬ ‫ידכשמתשמלש היהת השיג סחיל ‪,‬הז שי רידגהל ותוא לעבכדיקפתה‏‪.gardener‬‬ ‫ריבחתהרדגהה סחייתמתרדגהלדיקפתה לאכייתקנעהיי‪,‬דיקפת המודבתקנעהל‬ ‫‪:‬האשרה‬ ‫;‪ NYY‬יל ‪'‎‬הביבח‪grant gardenerto‬‬ ‫ךכ ‏‪ PR‬חרכה תעדל תא תומשםישמתשמה לש לכ םיננגה ידכ קינעהל לכל דחא‬ ‫םהמ תא תואשרה השיגה לכל דחא םיסחיהמ ‪,‬םימיאתמה ןכו ןיא ךרוצ ןכדעל‬ ‫תא תואשרהה סחיל םיוסמ רשאכ םיפסונ םיננג תכרעמל וא םיאצומ ‪.‬הנממ יד‬ ‫לכבש םעפ ףרטצמש ןנג קנעוי ול דיקפתה ‪,‬םיאתמה זאו אוה לבקי ןפואב‬ ‫יטמוטוא תא לכתואשרהה שיש לכל‪.‬םיננגה‬

‫ךירדמהדימלקרפל ‪ | 4‬‏‪- SQL‬תמרםייניב * ‪109‬‬ ‫רשפא קינעהל םידיקפת םג ילעבל םידיקפת ‪,‬םירחא אלו קר םישמתשמל‬ ‫‪.‬םייפיצפס תורשפא וז תישומיש רקיעב שישכ היכרריה לש ‪.‬םידיקפת לעבל‬ ‫דיקפת הובג היכרריהב םיקינעמ םג דיקפת אצמנש ויתחתמ ‪,‬היכרריהב ךכו אוה‬ ‫םגלבקמ תא לכתואשרהה ולביקש םיפופכה ‪.‬ול‬

‫תואשרה השיג‬

‫ףיעס‪4.7.3‬רפסב‬

‫םיטבמל‬

‫המגודב‪4.13‬ונקנעההניגייל יל יהביבח תואשרה השיג סחיל ‏‪work_fulfillment‬‬ ‫‪.‬ולוכ וניאר שיש היעבהאשרהב הבחר לכ ‪,‬ךכ ןוויכ איהשתרשפאמ הניגייל יל‬ ‫""הביבח ףיסוהל וא לטבל םינותנהשעמלש הניא תכמסומברעתהל ‪.‬םהב היעבה‬ ‫ונייצש התייה ריבחתש תקנעה תואשרהה וניא רשפאמ ליבגהל תא תאשרה‬ ‫השיגה סחיל םיוסמ תורושל תומיוסמ ‪.‬דבלב דחי םע ‪,‬תאז רשפא קינעהל‬ ‫תואשרה השיג ‪.‬םיטבמל הסננשמתשהל ךכב ידכרבגתהל לעהיעבה ‪.‬ונראיתש‬ ‫המגוד ‪ 4.16:‬רוזחנ תרדגהל טבמה ונאבהש המגודב ‪ 4.4.‬טבמה ללוכ ךותמ‬ ‫‪ 1‬זשס קר תא תורושה לשהניגיי יל ‪":‬הביבח‬ ‫‪createview g7_work_fulfillmentas‬‬ ‫*‪(select‬‬ ‫‪from work_fulfillment‬‬ ‫‪ NYY‬יל‪'‎‬הביבח =‪whereg_name‬‬ ‫;)‪with checkoption‬‬ ‫היצביטומהתרדגהל טבמה הזה התייה רשפאל ןנגל לש הניגי ילי"הביבח ןכדעל‬ ‫תא הדובעהיחווידםיעגונש ול‪.‬דבלב והז קוידברבדה ונאשםישפחמ‪.‬תעכ ןויערה‬ ‫היה הניגייש יל""הביבח עצבת תא יחוויד הדובעה הלש תופסוהכ םינוכדעו לע‬ ‫‏‪, _work_fulfillmentvann‬קל םוקמב תורישי‏‪ . work_fulfillment 5y‬ךא ןוויכמ‬ ‫םיטבמש םה םיסחי םיילאוטריו ‪,‬דבלב םינוכדעה םיאטבתמ ופוסב לש רבד‬ ‫םיסחיב לש סיסב םינותנה ‪,‬ומצע אלו ‪.‬םיטבמב ןכל ונפסוהתרדגהל טבמה תא‬ ‫ץוליאה ‏‪ with checkoption‬ותקידבש הרומא תוחדל לכתלועפ ןוכדעעצבתש‬ ‫‏‪£Z_name‬‬ ‫‏‪ NP‬ילייהביבח תועצמאב‪,‬טבמה םע םש לש ןנג רחאהדומעב‬ ‫םילשהלידכ ךלהמ‪,‬הז שי תאקינעהלתואשרההשיגה ‪.‬תומיאתמה‪,‬תישאר הצרנ‬ ‫ןבומכ קינעהל הניגיל ילי'הביבח תואשרה ‪,‬אורקל ‪,‬ףיסוהל ןכדעל קוחמלו תורוש‬ ‫ךותמ טבמה ‏‪. work_fullillment‬ק‪ 7‬יפל ריבחתה וניארש תקנעהל ‪,‬תואשרה‬ ‫רשפא קינעהל תואשרה השיג םג ‪:‬םיטבמל‬

‫‪ 0‬ף תוכרעמיסיסבםינותנ‬ ‫‪grant select,insert, delete,update‬‬ ‫‪‎ g7_work_fulfillment‬סח‬ ‫;‪ NYY‬יל ‪'‎‬הביבח‪10‬‬ ‫םע ‪,‬תאז יפכהלועש ןמ ןוידה דע ‪,‬הכ םייונישהעצבתשהניגיי ילי"הביבח לעטבמה‬ ‫ואובי ידיל יוטיב םייונישכ ‏‪ ,|work_fulfillment-2‬ןכלו תושורד הל תואשרה‬ ‫הביתכ )ןוכדע‪/‬הקיחמ‪/‬הפסוה( םג ‪.‬םש ‪,‬השעמל הלא תואשרהה וקנעוהש הל‬ ‫תורדגהב ונאבהשהמגודב‪4.13.‬‬ ‫‪,‬ללככ תואשרהה תוקנעומששמתשמל םיוסמ השיגב טבמל ןניא תולוכי תויהל‬ ‫תוקזח רתויתואשרההמ שיש ולהשיגב םיסחיל םהילעש תססובמתרדגה‪.‬טבמה‬ ‫תואשרהה תולוכי תויהל תומצמוצמ ‪,‬רתוי ךא אל‪.‬ךפהל‬

‫? םא ‪,‬ךכ דציכתרדגה טבמה תואשרההו וילע תעייסמ ליבגהל תא השיגה לש‬ ‫הניגיי ילי"הביבח תורושל תושורדה‪77252‬‬ ‫' רשפא רמול שיש ןאכ בוליש לש המכ ‪:‬םיעצמא‬ ‫* יעצמאייילהנמי" ‪ -‬תגצה טבמ יפיצפסשמתשמל ‪,‬םיוסמ םוקמב תא סחיה‬ ‫‪.‬ולוכ‬ ‫* הנחבה ןיב תואשרה םיגוסמ םינוש ‪ -‬ןוגכ האירק וא ‪.‬ןוכדע‬ ‫* תפסוה ‏‪ - with check option‬ידכ ליבגהל תא ןוכדעה תורושל‬ ‫‪.‬תומיאתמה‬

‫תואשרה השיג‬

‫תוינבתל‬

‫קרםילעבה לשתינבת סיסב םינותנ םיוסמ השרומ עצבל םייונישתינבתב ‪,‬וז ןוגכ‬ ‫תרדגה לוטיבו ‪,‬תואלבט תפסוה וא תטמשה ‪,‬תודומע תפסוה וא תטמשה‬ ‫‪.‬םיסקדניא תואשרה הלא ןה תואשרה ‪,‬תונבומ ןיאו ךרוצ קינעהל ‪.‬ןתוא‬ ‫האשרה תדחוימ תעגונ תורשפאל רידגהל חתפמ רז עיבצמש סחיל רחא ‪.‬והשלכ‬ ‫הרדגה לשתוחתפמ םירז איה קלחתרדגהמ תינבתה לש ‪,‬סחי ךכ הרואכלש ימ‬ ‫השרומש רידגהל תינבת ךורעלו הב םייוניש לוכי םג רידגהלתוחתפמ ‪.‬םירז ךא‬ ‫הרקמב הז וילע לבקל םג האשרה תיפיצפס עיבצהל לעחתפמה לש סחיה רחאה‬ ‫‪161010).‬ת‪065‬‬ ‫תועצמאבתרדגהחתפמה ‪.‬רזה יהוז תאשרה הינפה ) ‏‪privilege‬‬

‫ףיעס‪4.7.4‬רפסב‬

‫ךירדמהדימלקרפל ‪ | 4‬‏‪- SQL‬תמרםייניב * ‪111‬‬ ‫המגוד‪4.17:‬המגודב‪ 4.9‬ונגצה תאתרדגה סחיה ‏‪DOV,design‬חתפמ רזעיבצמה‬ ‫‏‪: areay‬‬ ‫‪foreign key (a_name)referencesarca‬‬ ‫חיננ תאש סחיה ‏‪ design‬רידגה להנמ תקלחמ ןוניגה לש ‪,‬הייריעה יכו םש‬ ‫שמתשמה ולש אוה ‏‪ Nofir‬םילעבכ לש סחי הז אוה לבקמ ןפואב יטמוטוא תא לכ‬ ‫תואשרה השיגה ‪,‬וילא ללוכהאשרהה ןכדעל תא‪.‬תורדגהה ךא ןוויכמ ןיאש אוה‬ ‫םילעבה לש סחיה‪ 4108,‬השורד ול תאשרה הינפה תדומעל חתפמה ‪,‬ולש ידכ‬ ‫לכויש רידגהל תא *וליאחתפמה רזה ‪.‬ליעל ידכ קינעהל ול האשרה וז שי עצבל‬ ‫תא ‪:‬הארוהה‬ ‫‪‎ areatoNofir‬סח)‪grant references(a_name‬‬

‫‪ .‬הזעודמ שורד !םצעב הזיא גוסהנגה תקפסמתאשרה !הינפה‬ ‫' חיננ טלחוהש תונשל תא המש לש הקלח ‪,‬תמיוסמ ידכ חיצנהל תא דחא‬ ‫יריקימ ריעה ךלהש ‪.‬ומלועל יוניש הז ךירצ אובל ידיל יוטיב ןוכדעב הרושה‬ ‫המיאתמה סחיב‪ 4104.‬ךא ןוויכמ‏‪ design-av‬רדגומ וליא לש חתפמ רז‬ ‫הנפמה הדומעל וז‪-4104,‬ב ‏‪ PN‬ילעבל סחיה‪ 4104‬תורשפא ןכדעל תא םש‬ ‫הקלחה ‪,‬םנוצרכ ילב טוקנל תולועפ תומיאתמ תרימשל וליאחתפמה ‪.‬רזה‬ ‫תקנעההאשרהה רידגהלחתפמ רז הומכ המכסהכ לבקלהלבגה וז לפטלו הב‬ ‫תעב ‪.‬ךרוצה‬

‫תרבעה‬

‫תואשרה‬

‫וניאר לכש ימ רצויש סחי ןכו( טבמ וא )דיקפת לבקמ תיטמוטוא תא לכתואשרה‬ ‫השיגה טקייבואל ‪,‬רציש יכו ןלהנמל סיסב םינותנה‏)‪ (DBA-N‬שי תיטמוטוא תא‬ ‫לכ תואשרהה לכל סיסב ‪.‬םינותנה‬ ‫יתמ םא ןכ םיקינעמ !תואשרה ימו השוע !תאז ןלהנמ סיסב םינותנה ילעבו‬ ‫תואשרה השיג םיטקייבואל ףקותמ תריצי םיטקייבואה וללה םילוכי םג קינעהל‬ ‫תואשרה הלא האלהםישמתשמל ‪.‬םירחא‬ ‫ימ לביקשהאשרה תועצמאב תארוה ‏‪ grant‬וניא לוכיריבעהל התוא האלה אלל‬ ‫רתיהשרופמתושעל ‪.‬תאז רתיההשרופמה עיפומ קלחכתקנעהמ‪.‬האשרהה‬

‫ףיעס‪4.7.5‬רפסב‬

‫‪2‬‬

‫תוכרעמיסיסבםינותנ‬

‫המגוד‪ 6.18:‬ידכבצעמהש ‏‪ 1V‬י'ןדע ‏‪ DIV‬רשפאל טנטסיסאל ולש ןכדעל םינותנ‬ ‫בוציעבהקלחההדקפוהש ‪,‬ודיב וקנעוי ולתואשרה ‪,‬ןוכדעה ללוכ רתיההןריבעהל‬ ‫‪:‬האלה‬ ‫)‪grant update (p_name,quantity‬‬ ‫‏‪ design_details‬סח‬ ‫‪'‎ W‬ןדע ‪to‬‬ ‫;‪with grant option‬‬ ‫תורשפאה ריבעהל תואשרה האלה תרצוי תשר לש תקנעה תואשרה ןיב‬ ‫םישמתשמ‪.‬תכרעמב תשר וז תנתינ רואיתל תועצמאב ףרג ‪,‬ןווכמ לכש דוקדוק‬ ‫ולש גציימ שמתשמ קיזחמה האשרה ‪,‬תמיוסמ תותשקהו תואטבמ תקנעה‬ ‫האשרה דוקדוקמ דחא דוקדוקל ‪.‬רחא לבקתמ ףרג תקנעה ‪.‬תואשרה לולכמ ףרגתקנעהתואשרה‬ ‫‪authorization‬‬ ‫‏‪graph‬‬ ‫עדימה לולכה וב קזחומ לע ידי תכרעמה גוצייב( )םיאתמ לע תנמ ףוכאל תא‬ ‫תורדגה‪.‬תואשרהה‬ ‫עדימה לולכה ףרגב אלמה בכרומ ‪:‬ידמל ןנשי תואשרה םיגוסמ ‪,‬םינוש‬ ‫תוסחייתמה השיגל םיטקייבואל םיגוסמ ;םינוש םישמתשמה םילוכי תויהל‬ ‫םישמתשמ םייפיצפס וא ;םידיקפת םה םייושע תויהל ירצוי םיטקייבואה‬ ‫םירומאה וא לבקל תא האשרהה ;םירחאמ לכ האשרה הלוכי לבקתהל םע‬ ‫תורשפא הקינעהל האלה וא ילב תורשפא ‪.‬וז ‪,‬ףסונב האשרה היושע לבקתהל‬ ‫המכמ תורוקמ ‪.‬ליבקמב‬ ‫המגוד‪ 4.19:‬קורייי "םייניעב אוה בצעמ תוניג קסעומש‏‪ DY‬ידי ‪,‬הייריעה הזככו‬ ‫לביק תאשרה השיג סחיל‏‪" W .design_details‬ןדע ןיינועמ רזעיהל וב בוציעב‬ ‫‏‪.design_detarls-2‬‬ ‫הקלחהרסמנש ‪,‬ותוירחאל םשלו ךכ קינעי ול ףא אוההאשרה‬ ‫ןוויכמ לביקש האשרה וז םע רתיה הרבעה‏—‪ - with grant option‬וז הלועפ‬ ‫‪.‬הניקת יפכהארנש‪,‬ךשמהב שיתועמשמ רוקמל‪,‬האשרההתכרעמהו רומשת תא‬ ‫ינש יביתנתקנעה‪,‬האשרהה תורמל איהש ‪.‬ההז‬ ‫לכ דוקדוק ףרגב ליכי אופא עדימ ‪:‬בכרומ םש שמתשמה וא( ‪),‬דיקפתה גוס רויאב‪4.11‬רפסבסרוקה‬ ‫ימע()‪171‬עיפומףרג‬ ‫‪,‬האשרהה טקייבואה וילעש הלח‪,‬האשרהה ןויצ ינאילוב סאה שי רתיה הקינעהל תקנעהתואשרה‬ ‫הרבעהללש‬ ‫סחייתמה‬ ‫האלה וא ‪,‬אל ןויצ ינאילוב םאה לעב האשרהה לביק התוא ףקותמ תריצי האשרהתיפיצפסתחא‬ ‫‪.‬דבלבןכל לכדוקדוקוב‬ ‫טקייבואה ואשמתשממ ‪.‬רחא‬ ‫ליכמקרתאםש‬ ‫‪.‬שמתשמה‬ ‫המגוד‪ 4.20:‬ידכ םיגדהל ‪,‬תאזהנבנ תאףרגתקנעהתואשרההלבקתהש לולכממ‬ ‫תואמגודה ונאבהש דע הכ רובע ךרעמי" ןוניגה ‪.‬יינוריעה תואשרה תונקומה‬

‫ךירדמהדימלקרפל ‪ | 4‬‏‪- SQL‬תמרםייניב‪113 %‬‬ ‫ףקותמ תריצי הלבטה תונמוסמ ‪.‬תיבכוכב תואשרה תוללוכש םג רתיה ריבעהל‬ ‫האלה תונמוסמ יתשב ‪.‬תויבכוכ ונחנא םיחינמ יכ ‪0‬ם‪-84‬ה אוה םילעבה לש לכ‬ ‫םיטקייבואהםיפתתשמה‪,‬תכרעמב אוהו קינעמ תא תואשרהה תוינושארה לכל‬ ‫‪.‬םישמתשמה‪,‬לשמל( םג ימ רצויש הלבט ךירצ תויהל השרומ רידגהל )‪.‬תוינבת‬ ‫ןכל דוקדוק רובע ‏‪ DBA-N‬עיפוי םעפ תחא‪,‬דבלב אוהשכ ללוכ קלחכ ותרדגהמ‬ ‫תא לכ‪,‬תואשרהה םעתורשפא ןקינעהל ‪.‬האלה‬

‫ןג ‪‎‬ןדע‬ ‫‪update(p-name,‬‬ ‫)‪quantity‬‬ ‫‪on design-details‬‬ ‫\‬ ‫קורי ‪‎‬םייניעב‬ ‫‪update(p-name,‬‬ ‫)‪quantity‬‬ ‫‪on design-details‬‬

‫‪Nofir‬‬ ‫‪update‬‬ ‫‪on design-details‬‬ ‫*‬ ‫‪Nofir‬‬ ‫‪all privileges‬‬ ‫‪on design‬‬ ‫‪.‬‬

‫הניג ילהביבח‬ ‫‏‪select‬‬ ‫‏‪on work-assignment‬‬ ‫‏‪DBA‬‬ ‫הניג ילהביבח‬ ‫‏‪all privileges‬‬ ‫‏‪g/-work-fulfillment‬סת‬

‫הניג ילהביבח‬ ‫‏‪all privileges‬‬ ‫‏‪ work-fulfillment‬סת‬

‫‪-‬‬

‫‏‪gardener‬‬ ‫‪all privileges‬‬ ‫‏‪ work-fulfillment‬סמ‬

‫רויא‪4.5‬ףרגתקנעהתואשרה‬ ‫שמתשמל םיוסמ שי תאשרה השיג ‪,‬תמיוסמ ראותמכ דוקדוקב םיאתמה‪,‬ףרגב‬ ‫םא קרו םא שי לולסמ לשתקנעההאשרהה ןמ כמ‪-84‬ה דעו ‪.‬וילא‬ ‫תלילש‬

‫תואשרה‬

‫ףיעס‪4.7.6‬רפסב‬

‫ןלהנמ סיסב םינותנה וא םילעבה לש טקייבוא םילוכי לולשל תאשרה השיג‬ ‫טקייבואלשמתשממ לביקש ‪.‬התוא‬

‫‪ ₪ 4‬תוכרעמיסיסבםינותנ‬ ‫ריבחת ‪:‬הלועפה‬ ‫גוסהאשרהה ‏‪revoke‬‬ ‫< םש ‪,‬סחי >טבמ ‏‪on‬‬ ‫םשדיקפת ‏‪from‬‬ ‫תלילשל תואשרה תויושע תויהל המכ ‪:‬תוכלשה‬ ‫הלילש "תעפעפמ" ‪ -‬‏‪ :cascading revocation‬םא הללשנ האשרה‬ ‫שמתשממ ךישמהש קינעהו התוא רָחאל ‪ -‬הלילשהייעפעפתי" ‪,‬האלה‬ ‫האשרההו םגללשית‪.‬רחאהמ הזלהונ אוהתרירב‪,‬לדחמה ךארשפא םג ןייצל‬ ‫ותואשרופמב‏‪ DY‬ידי תפסוה ןויצה‪ 0850406‬ףוסב תארוה‪.‬הלילשה‬ ‫תלילש האשרה הקנעוהש המכמ ‪:‬תורוקמ םאשמתשמ ‏‪ U‬ללששמתשממ ‏‪V‬‬ ‫האשרה קינעהש ול םדוק ‪,‬ןכל ךא * לביק התוא םג רוקממ רחא ‪ " -‬ךישמי‬ ‫קיזחהל‪.‬האשרהב םע ‪,‬תאז תשקהףרגבהדיעהש‏‪DY‬תקנעההאשרהה ז[‪-‬מ‬ ‫*\‪-‬ל ‪.‬קחמית‬ ‫‪ /‬חיננ ‏‪ U-v‬קינעההאשרה תמיוסמ ‏‪ oy,V-2‬רתיההריבעהל ‪.‬האלה * קינעה‬ ‫התוא האשרה הרזחב ‪-0,‬ל ידכ ייןגהליי וילע ינפמ תלילש ‪.‬האשרהה םאה‬ ‫ןויער הז לחני!?החלצה המ הרקי םא ןלהנמ סיסב םינותנה לולשי התע תא‬ ‫האשרהה וז‪-0‬מ‬ ‫םא ‏‪ U‬אוה רוקמה דיחיההאשרהל לש ‪,‬ץ תלילשותואשרההתלהנתמ לע יפ‬ ‫להונ‪ 6850406,‬ירה תלילשש האשרהה ‏‪ U-n‬לע ידי ןלהנמ סיסב םינותנה‬ ‫םורגת התלילשל םג ‪\,‬ץ‪-‬מ םשמו בוש םג ‏‪ ,U-n‬ךכ םהינשש ודבאי תא‬ ‫‪.‬האשרהה‬ ‫חיננ ‪-1‬ש קינעה האשרה ‪-",‬ל *‪-‬ו קינעה התוא האלה ‪-)\.‬ל בלשב רחואמ‬ ‫רתוי ‏‪ U‬ללש תא האשרהה ‪.‬ץ‪-‬מ האשרהה לש ‏‪ W‬הכירצ ףא איה ללשיהל‬ ‫בקע ‪.‬ךכ םלוא חיננ ירחאש ‏‪ V-v‬ריבעה תא האשרהה \)‪-‬ל ינפלו איהש‬ ‫הללשנ ‪,‬ץ‪-‬מ ‏‪ V‬לביק התוא םג םרוגמ ‪.‬רחא‪,‬התע‪-17‬שכ ללש תאהאשרהה‬ ‫‏‪ L,V-0‬םאההאשרהה לש ‏‪ W‬הכירצ ‏‪ PR‬יללשיהל‬ ‫השיג תחא תרמוא ‪,‬ןכש ןוויכ *‪-‬ש קינעה תאהאשרהה\א)‪-‬ל חוכמ האשרה‬ ‫תעכש הדביא תא ‪.‬הפקות השיג היינש תרמוא ‪,‬אלש ינפמ*ל‪-‬ש לביק התוא‬ ‫רוקממ ףקות ‪.‬ףסונ ‏‪ SQL‬תטקונ תאהשיגה ‪.‬היינשה‬ ‫רשפא לולשל תא רתיההריבעהלהאשרה ‪,‬האלה ילב לולשל תאהאשרהה ‪:‬המצע‬

‫ךירדמהדימלקרפל ‪ | 4‬‏‪- SQL‬תמרםייניב ‏‪115 e‬‬ ‫גוסהאשרהה‪ 101‬‏‪revokegrant option‬‬ ‫םש< ‪,‬סחי >טבמ ‏‪on‬‬ ‫םשדיקפת ‏‪from‬‬

‫תואשרה תמרב‬

‫הרושה‬

‫ףיעס‪4.7.7‬רפסב‬

‫לכ תואשרהה ונדש ןהב דע הכ ויה תואשרה השיג םיסחיל םימלש וא ‪.‬םיטבמל‬ ‫שי תוכרעמתורשפאמשרידגהלתואשרה תויפיצפס ‪,‬רתוי שממתמרב‪,‬הרושה ךכ‬ ‫לכששמתשמ לכוי תוארל קר תורוש תומיוסמ ךותמ ‪,‬סחי ךרדב ללכ לש םינותנ‬ ‫םירושקה ‪,‬וילא אלו לכוי תוארל תורוש תורחא ‪ -‬לשמל תורוש תוליכמש םינותנ‬ ‫יבגלםישמתשמ ‪,‬םירחא םניאשו םישורד ‪.‬ול‬ ‫ןויפא תורושהשמתשמש לוכיתשגל ןהילא ךותמ סחי עצבתמ תועצמאב םיאנת‬ ‫‪,‬סייגול המודב קוספל ‏‪.where‬התליאשב‬ ‫‏‪ postgreSQL-2‬שי רידגהל הליחת רשפאש ללכב שמתשהל החטבאב תמרב החטבאתמרבהרושה‬ ‫‪row-level‬‬ ‫‏‪security‬‬ ‫‪,‬הרושה הרדגהו וז איה יבגל סחי ‪.‬יפיצפסתורשפאשכ וזתלעפומ ‪ -‬םירידגמ תא‬ ‫תוינידמ‬ ‫תואשרהה תינבתב סחיה תועצמאב תרדגה ‪,‬תוינידמ תללוכה תא םיאנתה ‏‪policy‬‬ ‫‪.‬םייגולה‬ ‫המגוד‪4.21:‬המגודב‪ 4.13‬וניאר ךרוצתאשרהליבגהל השיג קר תורושל תומיוסמ‬ ‫סחיב ‏‪ . work_fulfillment‬וניצר רשפאל םילעבל לש הניגי ילי"הביבח חוודל לע‬ ‫עוציב תומישמהדובעה תועצמאב ןוכדע סחי ‪,‬הז ךא קר תורושתועגונש תוקלחל‬ ‫‪.‬ותוירחאבש‬ ‫ריכזנ תא תינבת סחיה‏‪: work_fulfillment‬‬ ‫)‪work_fulfillment(g_name,actno,date,a_name,p_name,quantity‬‬ ‫ומכ ןכ חיננ יכ רדגומ סחי םשב‏‪ gardeners‬ליכמה תא תמישר לכ םיננגה םע‬ ‫םיטרפ םינוש יבגל לכ ‪:‬דחא‬ ‫‪gardeners (g_name,‬‬ ‫)‪g_phone,g_asddress‬‬ ‫החנהב רבכש ונרדגה תוינבת הלא תועצמאב ‏‪ ,create table‬ףיסונ התע תא‬ ‫תורדגהה תושורדה תורטמל ‪.‬החטבאה ‪,‬תישאר ‪,‬רומאכ שי רידגהל רשפאש‬ ‫שמתשהלהחטבאבתמרב הרושה סחיב ‏‪: work_fulfillment‬‬

‫‪6‬‬

‫תוכרעמיסיסבםינותנ‬ ‫;‪alter table work_fulfillmentenablerow level security‬‬

‫תינש שי רידגהל תא ‪,‬תוינידמה קינעתש תאשרה ןוכדע לכל ןנג רדגומה סחיב‬ ‫‪ ₪‬אוה םש ןנגה ‪:‬השרומה‬ ‫‏‪ gardener‬ךא קר תורושב ןהבשךרעההדומעב ‪.‬תמס‬ ‫‪createpolicy work_report_policyon gardeners‬‬ ‫)‪using(g_name= current_user‬‬ ‫‏‪ currernt_user‬אוההנתשמתכרעמ ילבולג לבקמהךרע יפלרשקהה ןמזב ‪.‬הציר‬ ‫םיטרפ םיפסונ שי ןבומכ קודבל יכמסמב דועיתה לש‏‪ PostgreSQL‬םאתהב‬ ‫‪.‬ךרוצל‬

‫קרפ‬

‫‪5‬‬

‫‪1‬‬

‫םדקתמ‬

‫תפש ‏‪ SQL‬המצע הניא תפש תונכת ‪:‬תילרודצורפ איה הפש תיתרהצה‬ ‫‪),‬תיביטרלקד(הבש לכ הארוה ‪,-‬הרדגההפילש ואתלועפ ןוכדע לע סיסב םינותנה‬ ‫ תדמועינפב‪,‬המצע תשגומו סיסבל םינותנה ןפואב ‪.‬יביטקארטניארשפאשיגהל‬‫הרדס לשתולועפ קלחכ ‏‪ TN,Script-n‬הזהשענ ימעטמ תוחונ‪.‬דבלב םג הרדס וזכ‬ ‫תבכרומ תוארוהמ לכש תחא ןהמ תדמוע ינפב ‪.‬המצע‬ ‫לדבהה ןיב הפש תיתרהצה וזכ ןיבל תפש תונכת תילרודצורפ אוה הפשבש‬ ‫תילרודצורפ שי םינבמ םייתונכת םירידסמה תא תמירז עוציב ‪,‬תינכותה םקלחו‬ ‫םינבמ םיבכרומ ‪.‬םימכחותמו ןיב ראשה רשפא רוציל ‪,‬תואלול תויולצפתה‬ ‫תונתומ ףאו האירק תיביסרוקר תורודצורפל ‪ -‬םינבמ םניאש םימייק ‏‪SQL-2‬‬ ‫‪.‬תיסיסבה‬ ‫הפשכ תיתרהצה שי‪-.86(1‬ל תונורתי ינשמ ‪:‬םיגוס ‪,‬תישאר איה הטושפ רתוי‬ ‫הדימלל הביתכלו תמועל תפש תונכת ‪.‬תיללכ ‪,‬תינש בושחו אל תוחפ ‪ -‬ןתינ‬ ‫תינורקע חיטבהל עוציב ליעי ריהמו לש ‪,‬היתוארוה רבד אלש דימת ירשפא יבגל‬ ‫תינכותתפשב תונכת ‪.‬תיללכ‬ ‫םע ‪,‬תאז םיגוס םימיוסמ לש תופילש סיסבמ םינותנה םניא םינתינ חוסינל‬ ‫תועצמאב קלחה יתרהצהה ליעיהו לש ‏‪ ,SQL‬ךא םינתינ עוציבל תפשב תונכת‬ ‫תילרודצורפ ‪.‬תיללכ‬

‫‪ 118‬תוכרעמיסיסבםינותנ‬ ‫שי המכ םיכרד ןתועצמאבש רשפא םילשהל תארעפה ‪.‬הזה ‏‪ SQL‬המצע העיצמ‬ ‫תובחרה תוילרודצורפ םיביכרמל רבכש ‪,‬ונרכה שיו םינונגנמ בולישל ןיב ‏‪SQL‬‬ ‫ןיבל תופש תונכת ‪.‬תויללכ‬ ‫קרפב הז ביחרנ תא ונתורכיה ‏‪ ,8)(1. oy‬ריכנ תובחרה תוילרודצורפ ‪,‬הלש‬ ‫תויורשפא בולישל םע תופש תונכת תויללכ םיביכרו םימדקתמ ‪.‬םיפסונ לכ הלא‬ ‫םימילשמ תא תפש ‏‪ SQL‬ללכל קשממ לכל תורוצ השיגה שומישהו יסיסבב‬ ‫‪.‬םינותנ‬ ‫וארק רפסב תא קרפ ‪ 5,‬םיפיעס ‪ 5.3.- 5.1‬ףיעס‪ 5.1‬קסוע תויורשפאב השיגה‬ ‫תכרעמל סיסב םינותנה ךותמ תוינכות תפשב תונכת ‪.‬תיללכ רתיל קויד ‪-‬‬ ‫תויורשפאב ליעפהל תוארוה ‏‪ SQL‬לבקלו תואצות דוביעל ךותב תינכות ‪.‬בשחמ‬ ‫ףיעס ‪ 5.2‬קסוע תובחרהב ‪-,8)(1‬ל תומייקש ךותב תוכרעמ יסיסב‪,‬םסינותנ ךכ‬ ‫רשפאש היהי ליעפהל הב תוינכות ‪.‬תוילרודצורפ ףיעס‪ 5.3‬קסוע גוסב דחוימ לש‬ ‫‪,‬תויצקנופ תולוכיש ליעפהל תוארוה ‏‪ SQL‬ןפואב ‪,‬יטמוטוא שישו ןהל תובישח‬ ‫הבר לככרבודמשתכרעמב תבכרומ ‪.‬רתוי‬

‫השיג‬

‫‪-.5)(1‬ל‬

‫תפשמ‬

‫תונכת‬

‫ףיעס‪5.1‬רפסב‬

‫לכ תכרעמ הנכות תשמתשמ ‪.‬םינותנב ‪,‬השעמל רשפא רמול הסיסבבש לש לכ‬ ‫תכרעמ הנכות הלודג שי ‏‪ DI‬תכרעמ סיסב ‪,‬םינותנ ןיבתכרעמש הנכותה תלהנמ‬ ‫תא סיסב םינותנה הלש‪,‬המצעב ןיבו איהשתרזענ היתורישב לשתכרעמ תידועיי‬ ‫לוהינל יסיסב ‪.‬םינותנ השיג םינותנל תועצמאב ‏‪SQL‬תישענ דימת‏‪ DY‬ידי שומיש‬ ‫היתורישב לש תכרעמ תידועיי לוהינל יסיסב ‪.‬םינותנ תועמשמ רבדה ‪,‬איה ןיב‬ ‫י"יםישמתשמייהתכרעמב סיסב םינותנ סה תוינכות‪,‬בשחמ ואלו‬ ‫‪,‬ראשה קלחש ןמ‬ ‫אקווד םישמתשמ ‪.‬םיישונא‪,‬השעמל בורםישמתשמהתכרעמב סיסב םינותנ םה‬ ‫תוינכות ‪.‬םושיי תכרעמה תידועייה איה תרש סיסב ‪,‬םינותנ לכו תינכות םושיי תוקל‪-‬תרש‬ ‫‏‪client-server‬‬ ‫תשגינה םינותנל תועצמאב היתוריש איה ‪.‬חוקל‬ ‫‏‪ SQL‬איה ילכ השיגה סיסבל םינותנהתוכרעמב ‪,‬הלא ןכלו שורד קשממ םיאתמ‬ ‫הניב ןיבל תוינכותתופשב תונכת תונושתושקבמהתשגל סיסבל ‪.‬םינותנה‬ ‫שי ינש םיגוס םיירקיע לש םיקשממ ןיב ‏‪ SQL‬ןיבל תוינכות ‪:‬בשחמ‬

‫ךירדמהדימלקרפל ‪ | 5‬‏‪SQL‬םדקתמ * ‪119‬‬ ‫‪Embedded‬‬ ‫‏* ‪ - Embedded501,‬ץוביש‪,96(1‬תוארוה ןיב תורוש דוקה לש תינכותתפשב ‪SQL‬‬ ‫ץוביש‪‎‬תוארוה‪SQL‬‬ ‫תונכתה‪,‬תחראמה ןהשכ תונמוסמ ןומיסב ‪.‬דחוימ הטישב וז תינכותהתרבוע ךותבתינכות‪‎‬הפשב‬ ‫‪‎‬תחראמ‬ ‫בלש לש רודיה )היצליפמוק( ‪:‬םידקמ תוארוהה תוצבושמה ‪,‬תוהוזמ תוחלשנ‬ ‫תכרעמל סיסב םינותנה תקידבל תוניקת םוגרתו תעיבקלו ןפוא עוציבה‬ ‫‪,‬םיאתמה האצותכו ךכמ תופלחומ יעטקב דוקהפשבתחראמה םיעצבמה תא‬ ‫תארוה ‏‪. SQL‬תשקובמה הטישב וז הפשה תחראמה םירדהמהו‬ ‫)םירלייפמוקה( םימיאתמה םיקפוסמ םע תכרעמ לוהינ סיסב ‪.‬םינותנה‬ ‫תוכרעמ תונוש תועיצמ ןווגמ הנוש לשתופש קשממב ‏‪T‬‬ ‫‪Dynamic‬‬ ‫‏* ‪ - Dynamic SQL‬שומיש עונמב דחוימתפשב תונכתה ךרוצלתורשקתה‏‪SQL DY‬‬ ‫‪‎‬תורשקתה‬ ‫שומישעונמב‬ ‫תכרעמ לוהינל יסיסב ‪.‬םינותנ הרקמב הז עונמתורשקתהה אוה דחא םילכה תינכותמתפשב‪‎‬תונכת‬ ‫‪SQL-Y‬‬ ‫םיקפוסמה םעתפש‪.‬תונכתה תינכותה תחלוש תוארוה ‏‪SQL‬תכרעמל סיסב‬ ‫םינותנה תזורחמכ הליכמה תא טסקט ;הארוהה עונמה ריבעמ תזורחמ ‏‪T‬‬ ‫תכרעמל סיסב םינותנה םוגרתל דוביעלו ןמזב ‪,‬הציר ריבעמוהרזחב תינכותל‬ ‫תא האצותה הלבקתהש תכרעממ סיסב םינותנה ךשמהל ‪.‬דוביעה םיעונמ‬ ‫‪ODBC‬‬ ‫‪- Open‬‬ ‫הלאכ םיארקנ תופשב תונוש םשב ‏‪ .ODBC‬עונמה םיאתמה תפשב ‏‪Data Java‬‬ ‫‪Base‬‬ ‫‪Connectivity‬‬ ‫ארקנ ‏‪JDBC‬‬ ‫הטישב‪,‬הנושארה תטיש לובישההפשב‪,‬תחראמה םוגרתה רושיקהו ןיבתופשה‬ ‫םיעצובמ ןמזב רודיהה‪),‬היצליפמוקה( ןכלו רושיקה‏‪ P2‬יביכר‪,8)01‬תוארוה ןיבל‬ ‫תוארוה תינכותה אוה ‪,‬יטטס עצבתמו ינפל תציר ‪.‬תינכותה ‪,‬רמולכ לכ יביכר‬ ‫הארוהה ‪,-‬םינתשמ ‪,‬תואלבט ןכו ןפוא עוציבה ‪ -‬םיכירצ תויהל םיעודי ‪.‬שארמ‬ ‫הטישב ‪,‬היינשה תמועל ‪,‬תאז םוגרתה תעיבקו ןפוא עוציבה םיעצובמ ןמזב ‪,‬הציר‬ ‫ךכ רושיקהש ןיבתופשה אוה ‪,‬ימניד ןאכמו המש לש‪.‬הטישה ןייצנ יכ תוינכותב‬ ‫םושיי *ופנ רתוי שומישה עונמבתורשקתה ‪.‬ימניד‬ ‫לכב תחא ‪,‬תוטישהמ תינכות הצורש תשגל סיסבל םינותנ הכירצ םדוק לכ עצבל‬ ‫תורשקתה ‪.‬וילא הילע רוחבל תא סיסב םינותנה שקובמה תוהדזהלושמתשמכ‬ ‫השרומ סיסבב םינותנ הז ידכ לכותשתשגל וילא עצבלו ‪.‬תולועפ המייסשמ תא‬ ‫‪,‬התדובע הילע קתנל תא ‪.‬רוביחה ךלהמב ‪,‬תורשקתהה תינכותה הלוכי תשגל‬ ‫תורושל האצותה לש התליאש יהשלכ תועצמאב ןונגנמ ריבעמש הל הרוש תחא‬ ‫לכב‪.‬םעפ‬ ‫ריבסנ םיגדנו םיביכרמ הלא יתשב ‪.‬םיכרדה *וביש תוארוה ‏‪SQL‬הפשב תחראמ‬ ‫םגדויתפשב ‏‪ .C‬תורשקתה תימניד םגדות‏‪ JDBC-2‬לשתפש ‏‪Java‬‬

‫‪ 0‬ף תוכרעמיסיסבםינותנ‬ ‫לוביש‬

‫תוארוה ‏‪ SQL‬הפשב‬

‫תחראמ‬

‫‪,‬רומאכ םיגדנ אשונ ‏‪Nt‬תפשב ‏‪ .C‬ןומיסה דחוימה לש תוארוה ‏‪ SQL‬תוצבושמה‬ ‫תינכותב ‏‪ C‬אוה םילימה תורומשה ‏‪ EXECSQL‬ינפל תליחת ‪,‬הארוהה ‪-‬הדוקנו‬ ‫קיספ ‪:‬המויסב‬ ‫;‪EXECSQL....‬‬ ‫לכ תינכות וזכ תללוכהשולש םיגוס םיירקיע לש ‪,‬תוארוהרבעמ תוארוהלהשיגה‬ ‫סיסבל םינותנה ‪:‬ומצע‬ ‫* תורשקתה לא סיסב םינותנה תוהדזהו‬ ‫* הרהצה‏‪ DY‬םינתשמ םייטנוולרש( השיגל סיסבל )סינותנה‬ ‫* ןונגנמ תקירסל תורושתולבקתמה האצותכ סיסבמ ‪.‬םינותנה‬ ‫ריבחתה יללכהתורשקתהל ‪:‬אוה‬ ‫‪‎password,‬טפוחק‪EXECSQLconnect10serverusername‬‬ ‫הרהצהה לע םינתשמ הלולכ ךותב עטק תינכותב םוחתה ‏‪ P2‬יתש תוארוה‬ ‫‪:‬תודחוימ‬ ‫‏‪EXEC SQLBEGIN DECLARE SECTION‬‬ ‫;‪EXECSQL END DECLARESECTION‬‬ ‫םינתשמ ורדגוהש קלחב הז םילוכישמשל םגתרושקתב ןיב תינכותה ןיבל סיסב‬ ‫‪.‬םינותנה‪,‬טרפב יכרע תודומעהתרושב האצותה םיטלקנ ךותל םינתשמ יסופיטמ‬ ‫םינותנה ‪.‬םימיאתמה םינתשמ הלא םירדגומ קלחב הז לש ‪,‬תינכותה םהו‬ ‫םינחבומ ךותב טסקט לש תתליאש ‏‪ SQL‬תועצמאב םייתדוקנ ינפל םשה לש לכ‬ ‫‪.‬הנתשמ‬ ‫‏‪ —cursors‬ןונגנמ‬

‫תקיריסל‬

‫תורוש‬

‫ולבקתהש‬

‫האצותכ‬

‫‏‪ cursor‬אוה ןונגנמ תקירסל תורוש לש תאצות ‪.‬התליאש והזהנבמ יגול רשוקמש‬ ‫התליאשל ‪,‬תמיוסמ רשפאו ותוארל תרגסמכ לש ‪,‬ןולחרשפאשיילולגלי" וירוחאמ‬ ‫תא התליאשה הרושקה ‪,‬וילא גיצהלו ןולחב לכב עגר ןותנ הרוש תחא סחימ‬ ‫האצותה ‪.‬הלשתלעפהל ןונגנמה המכ ‪:‬םיקלח‬ ‫‪,‬תישאר שי תתל םש‏‪ cursor-2‬ריהצהלו וילע לעכהנתשמ גוסמ‏‪ cursor‬תליחתב‬ ‫‪.86(1‬הארוה הרידגמה תא ‪:‬התליאשה‬ ‫;‪EXECSQLdeclare namecursor 101guery‬‬

‫ךירדמהדימלקרפל ‪ | 5‬‏‪SQL‬םדקתמ * ‪121‬‬ ‫‪,‬תינש שי עצבל תלועפ החיתפ‏)‪ (open‬לש ‏‪ ,cursor-i‬ידכרשפאל תחילש תושקב‬ ‫תלבקל ‪.‬תורוש םויסב לופיטהתורושב היהי ךרוצעצבל םגתלועפ הריגס‪(01056).‬‬ ‫‪,‬ףוסבלו השקב תלבקל הרוש איה תועצמאב הארוהה ‏‪ fetch‬עוציב הארוה וז‬ ‫איבי ךרדב ללכ תאהרושה האבהתלבטב האצותה קיזחמש‬ ‫‪,‬סטצ‪-501‬ה‏‪TN‬רשפא‬ ‫םג תסוול תא ןוויכ הקירסה תאו הכלהמתרזעב םירטמרפ םינוש ‪.‬הארוהל‬ ‫המגוד ‪ 5.1:‬הקלחמ יהשלכ הייריעב הצירמ תינכות תבשחמה תא ףקיה‬ ‫םימולשתהםסיננגל רובע שדוחה‪.‬ףלוחה תינכותה תשקבמתשגל סיסבל םינותנה‬ ‫לשךרעמ ןוניגה ידכ לבקל עדימ‏‪ DY‬רפסמ הדובעהימידבעש לכ ןנגךלהמבשדוחה‬ ‫םכסלו תא ‪,‬םלוכ ידכ לבקל תא ףקיה םימולשתה ‪.‬ללוכה‬ ‫סיסב םינותנה לשךרעמ ןוניגה ארקנ‏‪ . gardening‬ונא םיחינמ תכרעמהיכ הריכמ‬ ‫שמתשמב םשב ‏‪ ,DEFAULT‬וניאש ךירצ ןיזהל ‪.‬המסיס ןלהל עטקה יטנוולרה‬ ‫ךותמ ‪:‬תינכותה‬

‫;‪EXECSQLconnect10gardeninguser DEFAULT‬‬ ‫;‪EXEC SQL BEGIN DECLARE SECTION‬‬ ‫‪int‬‬ ‫;‪days=0‬‬ ‫;]‪char g[20‬‬ ‫‪int‬‬ ‫;‪gdays‬‬ ‫;‪EXECSQL END DECLARESECTION‬‬ ‫‪EXECSQLdeclare6 cursor for‬‬ ‫)‪selectg_name,count (distinct date‬‬ ‫‪from work_fulfillment‬‬ ‫= )‪wheredate_part (‘month’, current_date‬‬ ‫)‪date_part (month’, date‬‬ ‫‪group by g_name,‬‬ ‫;‪EXECSQLopenc‬‬

‫‏‪cursor‬‬ ‫הרהצהלע‬ ‫םשבסורושיקו‬ ‫התליאשל‬

‫סטעפסע‪-‬ה‬ ‫תחיתפ‬

‫‪while found‬‬ ‫{‬ ‫;‪‎ into :g, :gdays‬ס ‪EXECSQL fetch‬‬ ‫;‪days= days+gdays‬‬ ‫}‬ ‫;‪EXECSQLclosec‬‬

‫תפילשהרושתינרות‬ ‫ךותבתאלול‏‪while‬‬ ‫‪cursor-n‬‬ ‫‪‎‬תריגס‬

‫‪2‬‬

‫תוכרעמיסיסבםינותנ‬ ‫‪SQL - JDBC‬‬

‫ימניד ‪‎‬תפשב ‪Java‬‬

‫תורשקתהה תינושארה םע סיסב םינותנה הריזחמ טקייבוא גוסמ‏‪.connection‬‬ ‫הקלחמה‏‪ connection‬הליכמ תוטישתורשפאמה תינכותל עצבל תולועפ תונוש‬ ‫לומ סיסב ‪,‬םינותנה תינכותהו הליעפמ ןתוא תומוקמב םישורדה תועצמאב‬ ‫טקייבוא ‪.‬הז‬ ‫ןונגנמה לש תצרה תארוה ‏‪ SQL‬סיסבב םינותנה בכרומ המכמ ‪:‬םיבלש‬ ‫* תלעפה הטישה‏)(‪ .createStatement‬הטיש וז תרצוי טקייבוא גוסמ‬ ‫‪ 1,,‬אוהש ןיעמתפטעמ חולשמ רובע הארוהה ‪.‬תשקובמה תינכותה‬ ‫תרשוקמ טקייבואל רצונש תועצמאב‪,‬הנתשמ איהותשמתשמ וב ידכליעפהל‬ ‫תא תוטישה לש הקלחמה‏‪statement‬‬ ‫* םא הארוהה איה תארוה ןוכדע וא( הפסוה וא ‪),‬לוטיב םיליעפמ תא הטישה‬ ‫‪ 00,‬תלבקמש רטמרפכ תא טסקטה לש תארוה ןוכדעה ‪-‬ב‬ ‫‏‪.SQL‬‬ ‫‪ +‬סא הארוהה איה‪,‬התליאש םיליעפמ תא הטישה‏)(‪ executeQuery‬םגש איה‬ ‫תלבקמ רטמרפכ תא טסקט‪.‬התליאשה הטיש ‏‪ T‬הריזחמ תינכותל טקייבוא‬ ‫גוסמ‏‪ ResultSet‬ליכמש תא לכ תורוש ‪.‬האצותה‬ ‫‏‪ e‬הקלחמל‏‪ ResultSet‬שי הטיש םשב ‏)(‪ next‬תקירסל תורושה וזב רחא ‪,‬וז‬ ‫‏‪.CUrsor-1‬‬ ‫רשפאו אורקל הל ‪,‬האלולב המודב שומישל‬ ‫* םויסב שי רוגסל תא טקייבואה גוסמ‏‪ statement‬ררחשלו תא הנתשמה‬ ‫‪010860.‬‬ ‫רשוקמש וילא לע ידיתלעפה הטישה‬ ‫ךילהתה ראותש ריבעמ תא טסקטהתליאשה ואולמב רטמרפכ תארוהל ‪,‬עוציבה‬ ‫ךא שי םג תורשפא ןיכהל תא טסקט התליאשה ‪,‬שארמ ךות שומיש םיביכרמב‬ ‫םקלחש םילוכי תויהל יתלב ‪,‬םיעודי ךא םייולתםכרעב לשםינתשמםהשלכ ןמזב‬ ‫‪.‬הציר המגודב ןלהלש קפתסנ ךרדבהנושארה‪.‬ונגצהש‬ ‫המגוד ‪ 5.2:‬גיצנ עטק תינכותעצבמה המישמ ההז וזלהגצוהש המגודב‪5.1.‬‬

‫ךירדמהדימלקרפל ‪ | 5‬‏‪SQL‬םדקתמ = ‪123‬‬

‫‪try‬‬

‫תורשקתה‪‎‬תינושאר‬ ‫‪‎‬טקייבואהו‪conn‬‬

‫;)‪Connectionconn= ....getConnection(...‬‬ ‫‪.‬‬ ‫;)(‪Statementst = conn.createStatement‬‬ ‫‪ResultSetrs = st.executeQuery‬‬ ‫‪.‬‬ ‫‪ +‬כי‪‎‬ה‪(7selectg_name,count (distinct 02705‬‬ ‫‪.‬‬ ‫‬‫‪""from work_fulfillment’ +‬‬

‫‪‎‬תארוה‪SQL‬‬ ‫תחילש‬ ‫תכרעמלסיסב‪‎‬םינותנה‬ ‫‪,‬טסקטכתלבקו‪‎‬האצותה‬ ‫טקייבואב‪‎‬זפ‬ ‫‪-‬‬

‫;)”‪""group by g_name‬‬ ‫{)(‪while (rs.next‬‬ ‫;)"‪days= days+ rs.getlnt("D‬‬ ‫;)(‪st.close‬‬ ‫;)(‪conn.close‬‬

‫‪‎‬תריגס‪St‬‬ ‫תריגס‪‎‬רוביחה‬

‫)‪catch(exceptionsqle‬‬ ‫{‬

‫לופיט‪‎‬םיגירחב‬

‫‪System.out.println(”exception‬‬ ‫;)‪: " + sqle‬‬ ‫}‬ ‫המגודה הניא תבכעתמ לע יטרפ תוארוה ‪,‬תורשקתהה וטמשוהו תורדגה‬ ‫תומידקמ‏‪.Java-2‬רשפא תוארל יכ טסקטה לש תארוה ‏‪ SQL‬בכרומרושרשמ לש‬ ‫‪.‬תוזורחמ‪-‬תת המגודב וז הקולחה תוזורחמ‪-‬תתל תאטבמ תא תקולח התליאשה‬ ‫תורושל הניאש( ‪),‬תיחרכה ךא שי םיבצמ םהבש רושרש םיביכרמ אוה ‪,‬יחרכה‬ ‫רשאכ קלח םהמ םייולת םכרעב לש‪.‬םינתשמ‬ ‫ףיעסב‪5.1.2‬רפסב ראותמ ןונגנמ המוד דואמ ‏‪Python-1‬‬

‫תורודצורפ‬

‫תויצקנופו‬

‫ףיעסב םדוקה וניאר יכ רשפא בותכל תוינכות בשחמ תושגינש סיסבל ‪,‬םינותנה‬ ‫ךכ רשפאששמתשהל תוינכותב תוינוציח עוציבל תופילש רשפא‪-‬יאש חסנל ‪-‬ב‬ ‫‏‪ .SQL‬דחי םע ‪,‬תאז שומישה תוינכותב תוינוציח דעוימ םיכרצל םהש רבעמ‬

‫‪..‬‬

‫‪ 4‬פ תוכרעמיסיסבםינותנ‬ ‫תמלשהלרעפה תלוכיב יוטיבה‪,8)(1,‬לש אוהוהנשמ תא תרוצהדובעה לומ סיסב‬ ‫םינותנה השיגמ הרישי תיביטקארטניאוהשיגל תועצמאבתלעפה ‪.‬םימושיי‬ ‫ףיעסב הז ריכנ תויורשפא בולישל תוארוה ‏‪ SQL‬ךותב םינבמ םייתונכת‬ ‫‪,‬םיילרודצורפ הבחרהכ לש ‏‪. SQL‬המצע ךרדב וז רשפא רוציל תורודצורפ‬ ‫תויצקנופו תורמשנה ‪,‬תכרעמב תולוכיו ארקיהל ךותמ תותליאש וא תוארוה‬ ‫הרדגה ‪.‬תונוש‬ ‫תוכרעמ הנכות לוהינל יסיסב םינותנ תועיצמ ךרדב ללכ ןווגמ םילכ ‪,‬םינבומ‬ ‫םיביחרמה תא שומישה ילרודצורפה ‪-8)(1‬ב ידכלהפש האלמ וא ףא המכ‪.‬תופש‬ ‫יפכ רכזומש םג‪,‬רפסב שי תונוש הבר ןיב תוכרעמה יבגל ריבחתה לבוקמה ןהב‬ ‫ביכרל ילרודצורפה לש ‏‪ ,SQL‬אוהו ךרדב ללכ ‏‪ MY‬ידמל ריבחתהמ ‪.‬ינקתה‬ ‫תואמגודה גיצנש ןלהל ןהתארשהבריבחתה לבוקמה‪ָ/‬קפפ)(‪-1‬ב‪,‬ע‪ 1‬איהשהפש‬ ‫תילרודצורפ האלמ תינבומה ךותב‏‪.postgreSQL‬‬

‫תרדגה‬

‫‪,‬תויצקנופ‬

‫םירטמרפ‬

‫םינתשמו‬

‫הבחרהה תיסיסבה רתויב איהתורשפאה רידגהל תורודצורפ תויצקנופו‪,‬פ)נ‪-.1‬ב‬ ‫ךות שומיש ינבמב הרקב ‪.‬םייתונכת תויצקנופה וא תורודצורפה תורדגומ‬ ‫תורמשנו‪,‬תכרעמב רשפאו אורקל ןהל ךותב תותליאש וא תוארוה ןוכדע המודב‬ ‫האירקל תויצקנופל הצבקה וא תויצקנופל לופיט ‪,‬םיכיראתב תונבומש ךותב ‏‪PL/pgSQL-2‬םירידגמ‬ ‫תויצקנופ‪.‬דבלב‬ ‫תורודצורפןהטושפ‬ ‫הפשה רשאו וניאר םיקרפב ‪.‬םימדוקה‬ ‫תויצקנופןניאשתוריזחמ‬ ‫‪,‬רבדרשפאוןרידגהל‬ ‫‪.‬תויצקנופכ‬ ‫ךשמהב‬ ‫היצקנופ תרדגומ תועצמאב הארוהה ‏‪ .createfunction‬היצקנופה הלוכי לבקל סחייתנאופאתויצקנופל‬ ‫‪.‬דבלב‬ ‫םירטמרפ איהו הריזחמ ךרע סופיטמ ‪.‬רדגומ היצקנופ הניאש הריזחמ ךרע זאו(‬ ‫איה השעמל )הרודצורפ הריזחמ ךרע גוסמ ‏‪ .void‬םיגדנ תא הרדגהה רובע‬ ‫היצקנופ הריזחמה ךרע גוסמ ‏‪ TNInteger‬לכ סופיט םינותנ יקוח‪.‬ירשפא‬ ‫‪createor replacefunction somefunc()returns integer 5 5‬‬ ‫‪[declare‬‬ ‫)‪declarations‬‬ ‫‪begin‬‬ ‫‪Slatements‬‬ ‫;‪end‬‬ ‫;‪$$languageplpgsql‬‬

‫היצקנופה‬ ‫תרתוכ‬ ‫קלח‬ ‫תורהצהה‬ ‫קלחתוארוה‬ ‫היצקנופה‬

‫ףוג‬

‫ךירדמהדימלקרפל ‪ | 5‬‏‪SQL‬םדקתמ‪125 %‬‬ ‫תרתוכ היצקנופה הליכמ תא םילימה תורומשה ‏‪ ,create function‬תא םש‬ ‫‪,‬היצקנופה תמישר םירטמרפ היצקנופהש תלבקמ וא הריזחמ ‪ -‬ןיב ‪,‬םיירגוסה‬ ‫הלימההרומשה ‏‪ returns‬הירחאו סופיט םינותנה ךרעהלשהריזחמש היצקנופה‬ ‫לוכי( רומאכ תויהל‪ 7010),‬הלימהו הרומשה‏‪.as‬‬ ‫ןומיסה ‪ 55‬דימ רחאל תרתוכ היצקנופה הרושהו ‏‪ 55 languageplpgsql‬ףוסב‬ ‫תרדגה היצקנופה םניה קלח הנבממ תרדגה היצקנופה‏‪ postgreSQL-1‬עודייו‬ ‫תכרעמה היצקנופהש תכייש קלחל ילרודצורפה‪,8)01.‬לש‬ ‫תפסותה‏‪ or replace‬ירחא‏‪create-n‬תליחתב היצקנופה הניא‪,‬תיחרכה ךא איה‬ ‫תרשפאמ ןכדעל תא היצקנופה הרקמב הלחש תועט ‪,‬התרדגהב אלל ךרוצ‬ ‫תקיחמב היצקנופה התריציבו‪.‬שדחמ‬ ‫ףוג היצקנופה לכ( ראש )תורושה ךירצ תויהל‬

‫‏‪ LIV‬גצומכ ףוגב היצקנופה‬

‫‪.‬ליעל קולבל שי ינש ‪:‬םיקלח קלח ןושאר לש‪,‬תורהצה ליחתמה הלימב הרומשה‬ ‫‪ 6,‬ובו םיריהצמ‏‪ DY‬םינתשמה םיימינפה לש ‪,‬היצקנופה קלחו ינש לש‬ ‫‪,‬תוארוה תומוחתה ןיב םילימה תורומשה ‏‪6. begin‬ח‪-0‬ו קלח תורהצהה אוה‬ ‫ילנויצפוא ‪ -‬ונכתיי תויצקנופ ןניאש תושמתשמ םינתשמב ‪.‬םיימינפ קלח‬ ‫תוארוהה לוכי ליכהל םיקולב ‪,‬םיננוקמ ותואב‪.‬הנבמ‬ ‫הזרכה לעהנתשמ קלחב תוזרכהה תללוכ תא םשהנתשמה תאו סופיט םינותנה‬ ‫‪,‬ולש תמייתסמו ‪.‬קיספ‪-‬הדוקנב רשפא לולכל הב םג תורדגה תופסונ ןוגכ ךרע‬ ‫תרירב ‪.‬לדחמ‬ ‫היצקנופה הלוכי לבקל םירטמרפ טלקל וא ‪.‬טלפל םירטמרפה םילבקמ ןפואב‬ ‫יטמוטוא תא תומשה‪ 52 51,‬ןכו האלה ‪ -‬יפל רדס‪.‬םתרדגה ךא רשפא םג תתל‬ ‫םהל תומש םהש ילעב תועמשמ ‪.‬ונרובע םירטמרפ םישמשמה טלקל םיעיפומ‬ ‫תמישרב םירטמרפה תחאב יתשמ ‪:‬תורוצ וא‏‪ DY‬ידי ןויצ סופיט םינותנה‪,‬דבלב‬ ‫זאו םיכמתסמ לע תומשה םייטמוטואה ‪,‬ליינה וא תועצמאב גוז ללוכה םש‬ ‫רטמרפל תאו סופיט םינותנה ‪.‬ולש‬ ‫םירטמרפ םישמשמה טלפל םינמוסמ תועצמאב הלימה ‏‪ out‬ינפל םש‪,‬הנתשמה‬ ‫םכרעויתלחתהה אוה ‪.‬םט[[ ךרעה היהיש םהל םותב תציר היצקנופה אוה ךרעה‬ ‫רזחויש ‪.‬םדילע םג םירטמרפ גוסמ ‪ 01‬םילבקמ תומש םייטמוטוא‪,‬ליינכ םילוכיו‬ ‫לבקל םג ‪.‬םש‬

‫‪ 86‬תוכרעמיסיסבםינותנ‬ ‫המגוד ‪ 5.3:‬רידגנ היצקנופ תלבקמש תומש לש ינש םיחמצ הריזחמו תא קחרמ‬ ‫הליתשה ילמינימה שורדה ‪.‬םהיניב קחרמ הליתשה ילמינימה אוה םוכס‬ ‫םיסוידרה לש ינש ‪.‬םיחמצה‬ ‫‪createfunction planting_distance(p1varchar(20),‬‬ ‫))‪p2varchar(20‬‬ ‫‪returns numeric(4,2)as$$‬‬ ‫‪declare‬‬ ‫‪radl‬‬ ‫;)‪numeric(4,2‬‬ ‫‪rad2‬‬ ‫;)‪numeric(4,2‬‬ ‫‪begin‬‬ ‫‪‎‬ם‪selectp_diameter/2fromplantinto 1801wherep_name= 1‬‬ ‫;‪selectp_diameter/2from plantinto rad2wherep_name= p2‬‬ ‫;‪return radl+rad2‬‬ ‫;‪end‬‬ ‫;‪55languageplpgsql‬‬ ‫רשפא אורקל היצקנופל ‏‪ N‬ךותמהתליאש וא ךותמ היצקנופ‪.‬תרחא ןפואבטושפה‬ ‫רתויב לכונליעפהל תאהתליאשה לשמל ‪:‬ךכ‬ ‫‪561604‬‬ ‫‪,‬ישורבי(; )ידרוי‏‪planting_distance‬‬ ‫הבושתב התליאשל לבקנ תא קחרמהליתשה ילמינימה ןיב שורב דרוול ‪'. 1.50-‬מ‬

‫תוארוה ינבמו הרקב‬ ‫תוארוהה ףוגב היצקנופה תולוכי לולכל תוארוה המשה ‪,‬םינתשמל תלעפה‬ ‫תותליאש וא תולועפ ןוכדע הרדגהו ‏‪ ,SQL-2‬ןכו ינבמ הרקב םייתונכת ןוגכ‬ ‫תואלול םילוציפו ‪.‬םינתומ היצקנופ סופיטש םינותנה רדגוהש הרובע וניא קיר‬ ‫‏)‪ (void‬ליכת דימת םג תארוה ‏‪Lreturn‬הרידגמה והמ ךרעה רזחויש לע ידי‬ ‫‪.‬היצקנופה ףוג היצקנופה לוכי ןבומכ ליכהל המכ תוארוה‪,‬וסוטצומ םא הלא‬ ‫תולולכ ךותב הנבמ לש ‪.‬לוציפ שי המכ תויצאירו ינבמל לוציפ ‪:‬םינתומ‬ ‫‏;‪if...then...end if‬‬ ‫‏;‪[f.. then...else... end if‬‬ ‫‪[f.. then... elseif...then... end 11‬‬

‫ךירדמהדימלקרפל ‪ | 5‬‏‪SQL‬םדקתמ‪127 %‬‬ ‫המגוד ‪ 5.4:‬רידגנ היצקנופתלבקמש תא רפסמעובשההנשב הריזחמו תא הנועה‬ ‫המיאתמהעובשל ‪.‬הז היצקנופ וזכ הלוכי שמשל תוקידבלהמאתה ‏‪ P2‬םינותנ לש‬ ‫יטרפ בוציע ןיבל תומישמהדובעהךרעמב ‪,‬ןוניגה וא םשלתנזה םינותנ תיטמוטוא‬ ‫םיבצמב ‪.‬םימיוסמ היצקנופה הטושפ ‪:‬ידמל הקולחה תונועל תעבקנ הב ןפואב‬ ‫‪,‬יתורירש ןיאו לופיט םיבצמב לש טלק ‪.‬יוגשךרעה רזחומה לע ידי היצקנופה אוה‬ ‫‪8:‬ס‪8508‬ת‪5‬‬ ‫סופיטמ םינותנהרדגוהשרבעב ‪-‬‬ ‫))‪createfunction season_ofweek(week_nonumeric(2,0‬‬ ‫‪returns seasonsas$$‬‬ ‫‪begin‬‬ ‫‪if (week_nobetween1and 10)or‬‬ ‫’;‪(week_nobetween51and 53)then return 'winter‬‬ ‫;’‪elseifweek_nobetween11and 23then return 'spring‬‬ ‫;’‪elseifweek_nobetween24and 37then return 'summer‬‬ ‫;’‪elseifweek_nobetween38and 50then return 'autumn‬‬ ‫;‪endif‬‬ ‫;‪end‬‬ ‫;‪55languageplpgsql‬‬ ‫שישכ יוביר םילוציפ הזכשמשמההנחבהל ‏‪ P2‬המכ ‪,‬םירקמ רשפא םגשמתשהל‬ ‫הנבמב לש‪0856:‬‬ ‫;‪056 when ... then ... 6156... end case‬‬ ‫? וחסנ תא היצקנופה‏)‪ season_of_week(week_no‬חוסינ יפולח תועצמאב וארהבושת‪5.1‬חפסנב‬ ‫ףוסב‪.‬קרפה‬ ‫‪.case‬‬

‫הרדגוהשמ היצקנופ וזכ‪,‬תכרעמב רשפא אורקל הל ךותמ תוארוה ‏‪ SQL‬תורחא‬ ‫‪.‬ןהשלכ‬ ‫המגוד ‪ 5.5:‬קרפב ‪4‬ונרדגה *וליא תוניקת אדוומההשלשש הרוצהמ ‏‪(a_name,‬‬ ‫‏)‪ year, p_name‬הרושב יהשלכ סחיב‏‪ work_assigment‬העיפומ םג השלשכ‬ ‫הרושב יהשלכ סחיב ‏‪ design_details‬ידכ אדוול תומישמש הדובעה ןכא‬ ‫תושמממ תא בוציעה ‪:‬ןנכותמה‬ ‫‪check((a_name,‬‬ ‫‪‎ ) a_name,year,p_name‬וח)‪year,p_name‬‬ ‫)‪from design_details‬‬

‫‪8‬‬

‫תוכרעמיסיסבםינותנ‬

‫ונקדב תא המאתהה יבגל תונוכת הלא ‪,‬דבלב ןוויכ קרש ןה תופתושמ ינשל‬ ‫‪.‬םיסחיה תומישמ הדובעה הקלחב תמיוסמ תוטרופמ המרב לש עובש ‪,‬הדובע‬ ‫דועב יטרפ בוציעה הקלחל םירדגומ הנועל ‪.‬המלש תרזעב היצקנופהתבשחמה‬ ‫יהמ הנועה לש לכ עובש לכונ קודבל שיש המאתה םג‪.‬הנועב תורשפא תחא איה‬ ‫ביחרהל תאתרדגה *וליאה אבומש ‪:‬ליעל‬ ‫‏‪check((a_name,50850001 week(week),year,p_name)in‬‬ ‫‏‪(selecta_name,season,year,p_name‬‬ ‫)‪from design_details‬‬ ‫אל תכרעמלכב ןתינ חסנל ץוליא ןנוקמ ‪.‬הזכ גיצנתורשפאתפסונ ‪ -‬חסננהתליאש ‪,‬טרפברשפא‪-‬יאחסנלךכ‬ ‫‏‪.postreSQL-2‬‬ ‫תקדובש תא צ*וליאה שקובמה ןפואב ‪.‬רישי איה תפלוש תורוש סחיב‬ ‫קה‪ 1‬ושסז ןניאש תומייקמ תא ‪.‬ץוליאה ‪,‬רמולכ התליאשה תפלוש‬ ‫תורוש רפסמש עובשה ןהב וניא םאות תא הנועה לש יטרפ בוציעה ‪.‬םימיאתמה‬ ‫םא האצותה היהת הקיר ‪ -‬ירה םינותנהש ‪.‬םיניקת ‪,‬תרחא תורושההנפלשיתש‬ ‫ןה תורוש ‪.‬תויוגשרשפא קודבל תא םויק ץוליאה לע ידיתלעפההתליאשה יותיעב‬ ‫‏)(‪season_of_week‬ונרדגהש ‪.‬םדוק‬ ‫‪.‬יוצר התליאשהתשמתשמ היצקנופב‬ ‫‪501606‬‬ ‫‏*‪W.‬‬ ‫‏‪from work_assignmentasW‬‬ ‫‏‪wherenot exists(selectD.* from design_detailsas D‬‬ ‫‪where W.a_name= D.a_nameand‬‬ ‫‪W.year= D.yearand‬‬ ‫‪88‬‬

‫= )‪season_of_week(W.week_no‬‬ ‫;)‪W.p_name= D.p_name‬‬

‫ינבמ הרקב םיפסונ םה תואלול המכמ ‪.‬םיגוס גיצנ תאריבחתה יסיסבה לש םיינש‬ ‫םהמ ‪ -‬תואלול ‏‪ while‬תואלולו ‏‪: for‬‬ ‫‏‪while boolean-expressionloop‬‬ ‫‏‪Statements‬‬ ‫; ‪end loop‬‬ ‫תאלולב ‏‪ while‬עוציב ףוג האלולה‏)‪ (statements‬רזוח לכ דוע םייקתמ יאנתה‬ ‫‏‪ . boolean-expression-2‬יאנתה קדבנ ינפל לכ הסינכ עוציבל ףסונ‬ ‫יגולה רדגומה‬ ‫לש ףוג ‪.‬האלולה‬ ‫‏‪for namein expression.. expression[by expression]loop‬‬ ‫‏‪Stalemenls‬‬ ‫; ‪end loop‬‬

‫ךירדמהדימלקרפל ‪ | 5‬‏‪SQL‬םדקתמ‪129 %‬‬ ‫תאלולב‪ 101‬עוציב ףוג האלולה רזוח רפסמ םימעפ רדגומש שארמ לע ידי חווט‬ ‫‪, .exXpression‬רמולכ ןיב ךרע יתלחתה רדגומש לע ידי ‪-‬ה‬ ‫םיכרעה‏‪.. expression‬‬ ‫‏‪ expression‬ןושארה ןיבלךרע יפוסרדגומש לע ‪.‬ינשהידירשפא םג רידגהל הזיאב‬ ‫ןפוא םימדקתמ דחאמ ינשל תועצמאב קלחה ילנויצפואה‏‪ .by expression‬םא‬ ‫ןיא םינייצמ תאז ‪ -‬חווטה אוה ןיב םיכרע ‪,‬םימלש תומדקתההו איה בצקב לש ‪1‬‬ ‫לכב‪.‬םעפ‬ ‫ךשמהב ריכנ םג הרוצ תדחוימ לש תאלול‪101‬תרשפאמש האלוללרובעל לע תורוש‬ ‫‏‪.CUTSOr‬‬ ‫האצותה לש‪,‬התליאש המודב ןונגנמל לש‬

‫‪‎‬שומיש ‪cursors=a‬‬ ‫תחא םיכרדה תקירסל תורוש ולבקתהש האצותכ התליאשמ ךותב היצקנופ לש‬ ‫‏‪ PL/pgSQL‬איה שומיש ןונגנמב לש‏‪ [cursor‬ומכ ץובישב תוארוה ‏‪SQL‬הפשב‬ ‫תילרודצורפ ‪.‬תינוציח תאלול‪10‬ץ גוסהמ וניארש המגודב תמדוקה איה הנבמ‬ ‫עצבמה ןונגנמ הז ירוחאמייייםיעלקה ידכ לקהל‏‪ DY‬תביתכ ‪,‬היצקנופה ךא אל לכב‬ ‫םירקמההנבמ הז ‪.‬קיפסמ‬ ‫‏‪,CUrSOT‬‬ ‫יפכ וניארש ףיעסב ‪,‬םדוקה ןונגנמה ללוכ הרהצה לע הנתשמ גוסמ‬ ‫‪0,‬סטוי‪-501‬ה תאבה תורוש האלולב‬ ‫תסחוימש ול התליאשה ;היוצרה תחיתפ‬ ‫תועצמאב ‏‪ fetch‬ףוסבלו תריגס‪.‬סטזפ‪0‬ז‪-‬ה‬ ‫רשפא ריהצהל לעהנתשמה ךות סוחייהתליאשה ‪,‬המיאתמה יפכ וניארש ףיעסב‬ ‫‪:‬םדוקה‬ ‫;‪namecursor for query‬‬ ‫‪,‬ןיפולחל רשפא ריהצהל לע הנתשמ גוסמ ‏‪ refcursor‬קלחב ‪,‬תורהצהה תאו‬ ‫רושיקה התליאשל המיאתמה עצבלדרפנב ךותב ףוג היצקנופה ירחא(‪).‬טסקוח‪-‬ה‬ ‫המגוד ‪ 5.6:‬רידגנ היצקנופ תעצבמש התוא המישמ ומכ תואמגודב ‪-5.2 5.1‬ו‬ ‫ףיעסב םדוקה ‪ -‬בושיח ךס םימיהודבעש לכםיננגהשדוחבףלוחה ךרוצל(תכרעה‬ ‫ףקיה‪).‬םימולשתה‬

‫ ף תוכרעמיסיסבםינותנ‬0 createor replacefunction total_for_gardeners () returns numeric)6,2( 5 declare days gdays

integer; integer;

g

varchar (20);

0

refcursor;

begin ‫ וזתחאתורוצמרושיקה‬days:=0 ‫ה‬-‫הנתשמ‬ ‫תוירשפאהןיב‬ ‫התליאשה‬: ‫ןיבל‬cursor‫ ‏‬openc for ‫הנתשמהרדגומקלחב‬ selectg_name,count (distinct date) ‫תורהצההאללרושיק‬, ‫התליאשלרושיקהו‬, from work_fulfillment DY‫בלושמב‏‬ ‫עצבתמ‬ .Cursor-i‫‏‬ ‫תחיתפ‬ where date_part’month’,current_date) =date_part(’'month’,dafe)0 date_part(’year’,current_date)= date_part('year’,date) group by g_name, loop fetch c into g, gdays;

‫אוההנתשמ‬FOUND‫‏‬ ‫ ינאילובילבולגלבקמש‬exit when NOT FOUND:; ‫ןיאשכרתוי‬18180 ‫ךרע‬ .CUrsor-9‫‏‬ ‫ תורוש‬days: = days+ gdays; end loop; 01056 ;‫ס‬ return days; end $$languageplpgsql; ‫ רשפאמש רובעל לע‬for‫ העיצמ םג גוס דחוימ לש תאלול ‏‬PL/pgSQL‫רומאכ ‏‬, ,CUrsor‫השעמל והז ןונגנמ לפקמה וכותבתרדגה‏‬,‫התליאש‬.‫תורוש האצותה לש‬ ‫ותריגסו‬, ‫ותחיתפ תפילש תורוש וזב רחא וז ךותמ האצותה‬, ‫התליאשל‬, ‫ורושיק‬ ‫תנכתמל‬: ‫לכו הלא ןפואב ףוקשש‬ for targetin queryloop‫‏‬ stalements‫‏‬ end loop;

‫ךירדמהדימלקרפל ‪ | 5‬‏‪SQL‬םדקתמ * ‪131‬‬ ‫הנתשמה‪ 41001‬לבקמ תא ךרעה יחכונה הריזחמש ‪.‬התליאשה וילע תויהל וארטוריפלעיסופיט‬ ‫םינותנהלאיכמסמב‬ ‫‏‪.postgreSQL‬‬ ‫סופיטמ ‏‪ row record‬וא תמישר םינתשמ םידרפומה ‪.‬םיקיספב המגודב ןלהלש דועיתהלש‬ ‫שמתשנתמישרב‪.‬םינתשמ‬ ‫המגוד ‪ 5.7:‬תארקל םיגחה הייריעה תניינועמ קינעהל לכל ןנג יש יפסכ‪.‬גחל םוכס‬ ‫ישה בשוחי םאתהב רפסמל םימיה םהבש דבע ןנגה לע יפ חווידה ‪.‬ולש לכל םוי‬ ‫הדובע לבקי ןנגה ‪. 30‬םילקש הנבנ היצקנופהשעמל( הרודצורפ ‪ -‬ןוויכ הניאש‬ ‫הריזחמ לכ)ךרעהנובש הלבט‪,‬השדח הבש לכל ןנג הרוש תללוכה תא םוכס ישה‬ ‫אוהש ‏‪. TRy‬לבקל היצקנופה תשמתשמ תאלולב‪ 101‬תקרוסה האצות לש‬ ‫‪,‬התליאש תשמתשמו ינשב םינתשמ ידכ רומשל תא ךרעה לש יתש תודומעה‬ ‫תולבקתמש תאצותבהתליאשה לכב ‪:‬הרוש‬ ‫(‪createor replace function compute_holliday_present‬‬ ‫‪) returns void‬‬ ‫‪55‬‬ ‫‪declare‬‬ ‫;)‪gardenervarchar (20‬‬ ‫;‪integer‬‬

‫‪days‬‬

‫‪begin‬‬ ‫)‪createtable Aolliday_present‬‬ ‫‏‪ varchar (20)primary key,‬קה‬ ‫;)‪num_daysinteger‬‬ ‫)‪‎ (selectg_name,count (distinctdate‬וח‪for gardener,days‬‬ ‫‪from work_fulfillment‬‬ ‫‪group by g_nameé‬‬ ‫‪loop‬‬ ‫‪insert into Aolliday_present‬‬ ‫;)‪values(gardener,days*30‬‬ ‫;‪end loop‬‬ ‫;‪end‬‬ ‫;‪$$languageplpgsql‬‬ ‫היצקנופ וז הניא הריזחמ לכ‪,‬ךרע איהוהשעמל ‪.‬הרודצורפ רשפא ליעפהל התוא‬ ‫לע ‪:‬ידי‬ ‫‪501001‬‬ ‫;)(‪compute_holliday_present‬‬

‫‪2‬‬

‫תוכרעמיסיסבםינותנ‬

‫האצותכהלעפהמ וז רצווית הלבטהשדח סיסבב ‪,‬םינותנה תב יתש ‪:‬תודומע םש‬ ‫ןנגה םוכסו ישה ‪.‬לבקיש רפסמ תורושה הב היהי רפסמכ םיננגה תכרעמב תעב‬ ‫תלעפה‪.‬התליאשה‬ ‫! ‪ /‬וחסנ תא היצקנופה‏)(‪ compute_holliday_present‬חוסינ ‪,‬יפולח ‏‪ TN‬וארהבושת‪5.2‬חפסנב‬ ‫ףוסב‪.‬קרפה‬ ‫שומיש רישי‏‪.Cursor-1‬‬

‫םיקדה‬

‫)סירגירט(‬

‫‪,‬קדה וא ‪,‬רגירט אוה ןונגנמ םרוגש עוציבל יטמוטוא לשהלועפתרדגומ םייקתהב‬ ‫יאנת ןותנ תעב תושחרתה ‪.‬עוריא תושחרתה עוריאה םויקו יאנתה םה ןיעמ‬ ‫הציחל לע ‪,‬קדהתמרוגש""תייריייל‪,‬הלועפה ןאכמו ומש לש ‪.‬ןונגנמה‬

‫ףיעס‪5.3‬רפסב‬ ‫‪‎‬קדה‪trigger‬‬

‫קדה יונבהשולשמ ‪:‬םיביכרמ ‪,‬עוריא יאנת‪.‬הלועפו לכ םיביכרמה וללה םירדגומ‬ ‫שארמ קלחכתרדגהמ ‪,‬קדהה ךות טוריפ תויחנה תונוש ןפואל‪.‬ותלעפה‬ ‫עוריא אוה תחא תולועפהמ ‪,‬הפסוה ןוכדע וא הקיחמ תונפומש סחיל םיוסמ‬ ‫תכרעמב סיסב ‪.‬סינותנה‬ ‫יאנת אוה יאנת יגול שיש קודבל לכב םעפ שחרתמש עוריאה רדגומה ‪.‬קדהב שיתוכרעמןהבשרשפא‬ ‫ןייצלתקידבשיאנתה‬ ‫םסוקמב‪.‬עוריאה‬ ‫הרדגהה הלוכי לולכל היחנה םא קודבל תא יאנתה םרט תושחרתה עוריאה היהת‬ ‫‏‪postgreSQL-a‬רשפא‬ ‫רמולכ( ינפל עוציב לעופב לש תלועפ ‪,‬הפסוהה ןוכדעה וא הקיחמה וררועש תא שמתשהל‬ ‫תורשפאב וו‬ ‫יבגלםיטבמ‪.‬דבלב‬ ‫)הקידבה וא ‪.‬הירחא‬ ‫חוסינ יאנתה לוכירזעיהל ינשב ינתשמ הרוש םידחוימ ‪ -‬‏‪-018: new‬ו‬ ‫* ךרעה לש‪ 010‬אוה ןכות הרושה םישקבמש ןכדעל וא קוחמל ‪ -‬םא עוריאה‬ ‫אוה ןוכדע וא הקיחמ ‪ -‬יפכ ןכותש הז היה ינפלתושחרתה ;עוריאה‬ ‫* ךרעה לשתסויוצ אוה ןכות הרושה םישקבמש ‪,‬ףיסוהל וא הרושה לבקתתש‬ ‫רחאל ןוכדעה ‪ -‬םא עוריאה אוה הפסוה וא ‪.‬ןוכדע‬ ‫‪ 0108‬שיתועמשמ קרתולועפב ןוכדע ‪,‬הקיחמו יכוהנתשמל‬ ‫םישנ בל יכהנתשמל‬ ‫‏‪ new‬שיתועמשמ קרתולועפב הפסוה ‪.‬ןוכדעו‬ ‫הלועפה איה תארוה ‏‪. SQL‬יהשלכ איה הלוכי עצבתהל תעפותכ יאוול לש‬ ‫תושחרתה עוריאה ‪,‬ומצע רמולכ ילבהערפה תומדקתהל ‪,‬עוריאה םאו יאנתה‬ ‫קדבנ ינפל עוריאה ‪ -‬תויחנהה תולוכי עובקל לעש הלועפה עצבתהל םוקמב‬

‫ךירדמהדימלקרפל ‪ | 5‬‏‪SQL‬םדקתמ ‏‪133 e‬‬ ‫‪.‬עוריאה םגהלועפה הלוכישמתשהלםינתשמב ‏‪-010,new‬ו ןכו לכב תורוש סחיה‬ ‫וילעש רומאעצבתהל ‪.‬עוריאה‬ ‫דלשריבחתה לשתרדגה ‏‪ PostgreSQL-2trigger‬אוה ‪:‬ןמקלדכ‬ ‫‪016810‬‬ ‫‏‪trigger name‬‬ ‫‏}‪{ before|after |instead01‬‬ ‫‏}]‪] event[or...‬‬ ‫‏‪ table_name‬סח‬ ‫‏[ }‪ ] for ] each] { row|statement‬‏‪postgreSQL-a‬ביכרה‬ ‫‪ 1‬אל‪.‬ליעפ‬ ‫‏[)‪[ when( condition‬‬ ‫)(‪executeprocedure function_name:‬‬ ‫ריבחתה אלמה ללוכ דוע תורדגה ‪.‬תוילנויצפוא ומכ ‪,‬ןכ שי תולבגה לע קלח‬ ‫םיביכרמהמ וא לע םיפוריצ ‪,‬םהלש ןכלו שי קודבל תא דועית תכרעמה ידכ‬ ‫רידגהל ‏‪ trigger‬ןפואב ‪.‬ןיקת‬ ‫המגוד ‪ 5.8:‬קרפב ‪4‬ונעבצה לע תויתייעבה לש ןוכדע תועצמאב ‪,‬םיטבמ וניארו יכ‬ ‫רשפא ריתהל ותוא קר םיבצמב םילבגומ ‪.‬דואמ דחא םיבצמה וניצרשרשפאל וב‬ ‫ןוכדע תועצמאב טבמ היה יחווידהדובעה לשםיננגה תועצמאב טבמה ישיאה לש‬ ‫לכ דחא ‪,‬םהמ יפכונרדגהש המגודב ‪ 4.4‬קרפב ‪ 4.‬ידכ שממל ‪,‬תאז לכונ רידגהל‬ ‫קדה‪),‬רגירט( רימיש תיטמוטואתלועפ ןוכדע לע טבמ הזכתלועפב ןוכדע לע סחיה‬ ‫‏‪.work_fulfillment—>pnn‬‬ ‫גיצנ ןלהל תאתרדגה רגירטה רובע טבמ יפיצפס—‏‪ . g2_work_fulfillment‬גיצנ‬ ‫הליחת תאתרדגה טבמה ‪10177‬סושסתא ‪,‬ט‪ 2‬אוהש טבמה ישיאה לש ןנגה‬ ‫ןגד" י'ןגב רובע יחוויד‪,‬הדובע הירחאו תאתרדגה קדהה)רגירט(‏‪.£2_update‬‬ ‫‪createview g2_work_fulfillmentas‬‬ ‫* ‪select‬‬ ‫‪from work_fulfillment‬‬ ‫‪!‎ P75‬ןגב =‪whereg_name‬‬ ‫‪createtrigger g2_update‬‬ ‫‪insteadofinsert‬‬ ‫ושס= ק‪ 2‬סח‬ ‫‪1‬‬ ‫‏‪for eachrow‬‬ ‫;)(‪executeprocedureg2‬‬

‫‪4‬‬

‫תוכרעמיסיסבםינותנ‬

‫‏‪ postgreSQL-a‬הלועפה תעצובמה תובקעב קדהה )רגירטה( תבייח תויהל‬ ‫תרדגומ ךותב היצקנופ הריזחמש ךרע סופיטמ ‏‪ trigger‬ןכלו‏‪ DY‬היצקנופה‬ ‫ריזחהל‪ 010,‬‏‪ new‬וא ‏‪.null‬תרדגהב רגירטה ליעל ונארק הל ‪ ()92.‬תא היצקנופה‬ ‫שי רידגהל ינפל‪.‬רגירטה ןלהלתרדגה היצקנופה ‪:‬המיאתמה‬ ‫‪createfunction g2() returns trigger 5‬‬ ‫‪begin‬‬ ‫‪insert into work _fulfillment values‬‬ ‫‏‪) P71, new.actno, new.date, new.a_name, new.p_name,‬ןגב‬ ‫;)‪new.quantity‬‬ ‫;‪return null‬‬ ‫;‪end‬‬ ‫;‪$$languageplpgsql‬‬ ‫והז קדה טושפ ‪,‬תיסחי ןהתרדגהב יאנתה ןהו ןכותב‪.‬הלועפההמגודב האבה גיצנ‬ ‫רגירט בכרומ ‪.‬רתוי‬ ‫המגוד ‪ 5.9:‬קרפב ‪ 4‬ונרדגה ץוליא גוסמ‏‪ Lassertion‬ותרטמש התייה קודבל‬ ‫המאתה ןיב תומישמ הדובעה תוסנכומה סחיל‏‪ work_assignment‬ןיבל‏‪Y079‬‬ ‫בוציעה לש הקלחה המיאתמה תפוקתב ןמזה ‪.‬המיאתמה ןכות *וליאה היה‬ ‫הקידב םא ףוריצ תונוכתה‏)‪ (a_name,year,p_name‬עיפומשהרושב יהשלכ ‪-‬ב‬ ‫‏‪ work_assignment‬עיפומ ףוריצכ ‏)‪ D‬הרושב יהשלכ‬ ‫‏‪ .design_detarls-2‬הלא‬ ‫תונוכתהתופתושמה ינשל ‪,‬םיסחיה םאו תומישמהדובעה תושמממ תא בוציעה‬ ‫המאתה וזכ הכירצ ‪.‬םייקתהל‬‫יתמ הצרנ קודבל תא וצוליאה ‪,‬השעמל לכב הלועפ לש תפסוה הרוש ‪-‬ל‬ ‫‏‪ work_assignment‬וא ןוכדע ‪.‬הרוש םא *וליאה םייקתמ ‪ -‬רשפאנ תא עוציב‬ ‫הלועפה הפסוה( וא ‪).‬ןוכדע םא אל ‪ -‬עבקנ וזש הלועפ ‪:‬היוגש איצונ העדוה‬ ‫המיאתמ אלורשפאנ תא ‪.‬עוציבה‬ ‫לכונ אופא רידגהל *וליא הז קדהכ ‪):‬רגירט( עוריאה היהי הפסוה וא ןוכדע ‪-‬ל‬ ‫‏‪ ; Work_assignment‬יאנתה היהי תעפוה תשלש םיכרעה םישדחה םידעוימה(‬ ‫‪,‬הפסוהל וא ולבקתיש רחאל תלועפ ןוכדעה )תשקובמה ‏‪(a_name,year,‬‬ ‫‏)‪ p_name‬הרושב יהשלכ סחיב‏‪ .design_details‬םא יאנתה םייקתמ ‪-‬הלועפה‬ ‫היהת ‏‪ VIV‬עוציבהלועפה ‪.‬תשקובמה םא יאנתה אל סייקתי ‪-‬הלועפה היהת‬ ‫תאצוה העדוה תריצעו ‪.‬עוציבה‬

‫ךירדמהדימלקרפל ‪ | 5‬‏‪SQL‬םדקתמ ‏‪135 e‬‬ ‫ןלהלהרדגהתירשפא‏‪:postgreSQL-2‬‬ ‫)(‪01"616or replacefunction check_assignment‬‬ ‫‪returns trigger 5 5‬‬ ‫‪begin‬‬ ‫‪11(new.aname,new.year,new.pname)not in‬‬ ‫‪then‬‬ ‫)‪(selectaname,year,pnamefrom design_details‬‬ ‫‪begin‬‬ ‫;’‪raisenotice’assignmentcontradictsdesign‬‬ ‫;‪return null‬‬ ‫;‪end‬‬ ‫‪else‬‬ ‫;‪return new‬‬ ‫;‪end if‬‬ ‫;‪end‬‬ ‫;‪$$languageplpgsql‬‬ ‫‪createtrigger work_design_correspondence‬‬ ‫‪beforeinsert or updateon work_assignment‬‬ ‫‪for eachrow‬‬ ‫;)(‪executeprocedurecheck_assignment‬‬ ‫תייצקנופ רגירטה תלבקמ קלחכ טלקהמ הלש תאםינתשמה ‏‪ ,new-)old‬תולתב‬ ‫הלועפב הארקש ‪.‬היצקנופל ‪,‬לשמל תלועפב‪ 11801‬שי ךרע שדח ‪ -‬המושרה‬ ‫םיצורש ףיסוהל סחיל ‪ -‬ןתינותשגל לכל תחא תודומעהמהמושרב וז תייצקנופב‬ ‫רגירטה תועצמאב‏‪ .new.attribute_name‬המגודב עיפומ לשמלםסיש‪.‬ץס‪8‬ו ‪.‬‬ ‫ךרעה היצקנופהש הריזחמ עיפשמ‏‪.DY‬הלועפה םא םיארוק תייצקנופל רגירטה‬ ‫ינפל‪,‬הלועפה תרזחה ‏‪ null‬וא‪018‬תלועפל( )ןוכדע אל עצבת תא‪.‬הלועפה תמועל‬ ‫‪,‬תאזתרזחה ‏‪ new‬עצבת תא‪.‬הלועפה‬ ‫תייצקנופ רגירט תלבקמ םינתשמ ‪,‬םיפסונ לשמל‏‪ [TG_OP‬ןייצמש תאהלועפה‬ ‫הארקש ‪.‬היצקנופל המגודב ‪,‬ליעל‏‪ TG_OP‬ליכי דחא ינשמ ‪:‬םיכרע ‏‪ INSERT‬וא‬ ‫‏‪ UPDATE‬תולתב הלועפב הליעפהש תא ‪,‬היצקנופה ךכ ןתינש קודבל‬ ‫‏'‪ TG_OP="UPDATE‬קלחכתלועפמ היצקנופה עצבלותולועפ וא תוקידב תונוש‬ ‫םא רבודמהפסוהב וא ‪.‬ןוכדעב‬

‫‪6‬‬

‫תוכרעמיסיסבםינותנ‬

‫הארוהה ‏‪ raise exception‬איה הארוה ‏‪ PLpgSQL-2‬תריצעל עוציבה תאצוהו‬ ‫העדוה בקע‪.‬האיגש םא םיצור איצוהל העדוה הניאש תעדוה האיגש הניאו תרצוע‬ ‫תא עוציבה ‪ -‬רשפא שמתשהל ‏‪ .raise notice-1‬ינשב םירקמה ןכות העדוהה‬ ‫עיפומ ןיב םיישרג ‏‪ TN‬ירחא דמצ םילימה תורומשה‏‪ raiseexception‬וא ‏‪raise‬‬ ‫‪.notice‬‬

137 e‫םדקתמ ‏‬SQL‫ | ‏‬5 ‫ךירדמהדימלקרפל‬ ‫קרפה‬

‫ףוגבש‬

‫תולאשל‬

‫תובושת‬

‫חפסנ‬:

5.1‫הבושת‬‎ create or replace function season_of_week (week_nonumeric(2,0)) returns seasonsas$$ begin case when(week_nobetween1and 10)or (week_nobetween51and 53)then return 'winter;’ whenweek_nobetween11and 23then return 'spring’; whenweek_nobetween24and 37then return 'summer’; when week_nobetween38and 50then return 'autumny; endcase; end; $$languageplpgsql; 5.2‫הבושת‬‎ returns void createor replacefunction compute_holliday_present1() as$$ declare gardenervarchar (20); days integer; 0 cursor for (selectg_name,count (distinctdate) from work_fulfillment group by g_name); begin createtable holliday_present(gn varchar (20)primary key, num_dzl_vs integer); open;‫ס‬‎ loop fetch c into gardener,days; exit when NOT FOUND; insert into holliday_presentvalues(gardener,days*30); end loop; closec; end; $$languageplpgsql;

‫תוכרעמיסיסבםינותנ‬

8

5.3‫הבושת‬‎ createor replacefunctionassignment_for_gardenerl (namevarchar, startingdate) returns refcursor 5 declare res refcursor; begin openresfor execute (' selectweek_no,a_name,p_name,quantity’ ‫\י‬‎ from work_assignment ‫וי‬‎ whereg_name= ! |lquolc_lilcral(name)'‫ו‬‎ and’ I’ year= date_part) |quote_literal('year’) ,'‫ו‬‎ date("‫ו‬‎ quote_literal(starting)Il"))and* " week_noC‬‬ ‫םאה ‪‎‬תולתה ‪ AC—D‬תאצמנ ‪‎‬ו‪-*8‬ב‬ ‫ידכ תונעל‏‪ DY‬הלאש וז שי בשחל תא רוגסה לש תצובק תונוכתה ‏‪ {ACT‬תחת ‏‪F‬‬ ‫קודבלו םא ‏*}‪AD}c{AC‬‬ ‫דעצב ‪:‬ןושארה‬ ‫‏)‪{AC}+ = {AC‬‬ ‫דעצב ינשה םיפיסומ תא ‏‪ B‬לע יפ תולתה‏‪:C—>B‬‬ ‫א)'מ[ ) = ‏}‪ = {AC}U{B‬א)(‪)+‬‬ ‫דעצב ישילשה םיפיסומ םג תא ‏‪ D‬לע יפ תולתה ‏‪:AB—D‬‬ ‫‏‪{AC}*+= {ACB}U{D}=R‬‬

‫‪@186‬תוכרעמיסיסבםינותנ‬ ‫עגרבונפסוהש תא ‏‪ D‬רוגסל לש ‏‪ {ACT‬ונא םיעדוי תולתהיכ ‏‪ AC—D‬הלח ‏‪Ry‬‬ ‫‏‪ F DYy‬ידכ עיגהל הנקסמל וו השקהברה ‪.‬רתוי‬ ‫שומיש יללכב קסיהה‬

‫יוסיכ‬

‫ינונק‬

‫יוסיכ(‬

‫)ילמינימ‬

‫סחי םייקמה הצובק ‪ 5‬לש תויולת תוילנויצקנופ םייקמ םג תא לכ תויולתה‬ ‫תוילנויצקנופה‪-*5.‬בש ‪,‬ןכל ידכ קודבל םא סחי םייקמ תא לכ םיצוליאה םילחה‬ ‫וילע לע יפ תויולתה ‪,‬תוילנויצקנופה יד קודבל םא אוה םייקמ תא ‪,.‬השעמל םא‬ ‫לכונ אוצמל תצובק תויולת תמצמוצמ דוע רתוי ‪,‬ם‪-‬מ רוגסהש הלש אוה ‪,‬ת* לכונ‬ ‫קפתסהל תקידבב תויולתה הצובקב ‪.‬וזךשמהב רידגנ וליא םיאנת הכירצ תצובק‬ ‫תויולת םייקל ידכבשחיתשי"יתמצמוצמיי ‪.‬היד‬ ‫אהת ‪ 8‬הצובק הנותנ לש תויולת ‪.‬תוילנויצקנופ יוסיכ ינונק לש ‏‪ F‬אוה תצובק יוסיכינונק‬ ‫‪cover‬‬ ‫‪.canonical‬‬ ‫‏‪: LEFe‬תמייקמה‬ ‫תויולת תוילנויצקנופ‬ ‫םילבוקמםג‪‎‬תומשה‬ ‫‪ o‬תר = ‪.‬תדרשפא( אטבל תאז םג ‪:‬ךכ ‪‎‬תויולתהלכ‪ F-2‬תועבונ ‪‎‬תיגול ‪ 227,Fe-n‬יוסיכ ואסיסב‪‎‬ילמינימ‬ ‫)‪(minimalbase‬‬ ‫תויולתה ‪-;5‬ב תועבונ ‪‎‬תיגול ‪s(F-n‬‬ ‫* ףא תחא תויולתהמ‏‪ Fe-a‬הניא הליכמ הנוכת ;תפדוע‬ ‫הנוכתתפדוע‬ ‫‪extraneous‬‬ ‫‏‪attribute‬‬ ‫* ת הניא הליכמ יתש תויולת תולעב ףגא לאמש‪.‬ההז‬ ‫הנוכתהעיפומה תולתבףגאב( לאמש ואףגאב )ןימי איה הנוכתתפדוע םארשפא‬ ‫קוחמל התוא ןמ תולתה ילב רוגסהש‪.‬הנתשי‬ ‫ןפואבו ‪:‬ילמרופ אהת ‏‪ F‬תצובק תויולת ‪,‬תוילנויצקנופ אהתו א‪D}: R‬ןחבנ םא‬ ‫שי הנוכתתפדוע תחאב תויולתה ‪-8.‬ב המגודב ‪,‬וז הלאשה םא הנוכתתפדוע דצב‬ ‫לאמש תיטנוולר קר יבגל תויולתה)‪:‬ם‪-A‬הלח ‏‪Ri 5y‬‬ ‫ןפואב ‪,‬יללכ ךילהת בושיחה ];לש הטישב ‏‪ N‬אוה ‪:‬ןמקלדכ‬ ‫* תצובקלכל תונוכת א תלכומה ‏‪ Ri-2‬בשח תא ‏‪ X+‬סחיב ‪-8.‬ל‬ ‫* ‪86,‬א‪,‬הנוכתלכל םא ‪:‬םייקתמ‬ ‫‪ 1.‬םקא‬ ‫‪BeX+ .2‬‬ ‫יזא תולתה ‏‪ X—B‬תאצמנ ‏‪Fi-a‬‬

‫תורוצ‬

‫* םאתצובקתונוכת‬ ‫הניאתללוכהנוכת‬ ‫העיפומהףגאבלאמשלש‬ ‫‪,‬תולת ןיאךרוצקודבל‬ ‫;התוא‬ ‫* םאתצובקתונוכת‬ ‫תללוכהנוכתהניאש‬ ‫העיפומףגאבלאמשלש‬ ‫ףאתולת ‪-‬םגהתוא ןיא‬ ‫ךרוצ‪.‬קודבל‬

‫תוילמרונ‬

‫םיפיעסב םימדוקה ‪,‬וניאר יכ םא ונא םיכירעמ םיעפומהש לש תינבת תמיוסמ תורוצתוילמרונתונודינ‬ ‫רפסבףיעסב‪7.3.‬‬ ‫וליכי תויוליפכ ‪,‬תורתוימ ףידע קרפל תא‪,‬תינבתה ךכ קוריפהש היהי רמשמ עדימ‬ ‫רמשמו ‪.‬תויולת ףיעסב הז הארנ דציכ םיכירעמ תא תמר תויוליפכה תינבתב‬ ‫‪,‬הנותנ ךיאו ןתינ לבקל םיקוריפ ילעב תונוכתה ‪.‬תויוצרה‬ ‫יפכ רבכש ןיוצ תליחתב ‪,‬קרפה לע ידי חותינ לש לולכמ סיצוליאה םילחה לע‬ ‫תינבת םירידגמ תא הרוצה תילמרונה ‪.‬הלש תומייק המכ תורוצ ‪,‬תוילמרונ לכו‬ ‫תחא ןהמ תאטבמ תמר תויוליפכ ‪.‬תמיוסמ ונא רידגנ יתש תורוצ תוילמרונ‬ ‫תועבונה חותינמ תויולתה ‪.‬תוילנויצקנופה תורוצ הלא תואטבמ תמר תויוליפכ‬ ‫הכומנ ‪,‬תיסחי ןכלוףאשנ עיגהל םיקוריפל תורוצב תוילמרונ ‪.‬הלא‬ ‫וארקרפסב תא םיפיעסה‪7.3.4.7.3.3,7.3.2,‬‬

‫‪.‬‬

‫ןּוכיִּתלדומבםיסחיה * ‪201‬‬ ‫ךירדמהדימלקרפל ‪| 7‬‬ ‫הרוצה‬

‫תילמרונה לש ‏‪- Boyce‬ו ‪ - 0000‬‏‪BCNF‬‬

‫הרוצה תילמרונה היוצרה רתויב לע יפ תויולתה תוילנויצקנופה איה הרוצה ‪—BCNF‬‬ ‫‪Boyce- CoddNormal‬‬ ‫תילמרונה לש‏‪-000[)- Boyce‬ו ‏‪.BCNF‬‬ ‫‪Form‬‬ ‫תינבת םיסחי ‏‪ oy R‬תצובק תויולת תוילנויצקנופ ‏‪ F‬איה הרוצב תילמרונ ‏‪BCNF‬‬ ‫םא לכל תולת תילנויצקנופ א‪nn‬הניא תילאיווירט םגו הניא תולת‪,‬חתפמב ןכש‬ ‫‏‪ dept_no‬וניא חתפמ לש ‪.‬םתוק ןכל תולת וז הניא תמייקמ תא תושירדה לש‬ ‫‏‪.BCNF‬‬ ‫ןוויכמ ונאצמש תולת הניאש תמייקמ תא תושירדהרדגהה לש ‏‪ ,BCNF‬רשפא ‪,‬השעמלףאםעפ‏‪PN‬ךרוצ‬ ‫קודבלתאלכתויולתה‬ ‫דימ עובקל יכ‏‪ Emp‬הניא ‏‪ ,BCNF-2‬ןיאו ךרוצ קודבל תא לכ תויולתה‪-+5.‬ב‬ ‫‪.‬ךשמהב‬ ‫‪-'1.‬בהארנתאז‬ ‫המגוד‪ 7.20:‬התע ןחבנ תא תוינבתההמגודבש‪7.13:‬‬ ‫‏}‪Empl = (employee_id,dept_no); 11= {employee_id-< dept_no‬‬ ‫}‪Dept= (dept_no,managen);1. = { dept_no—manager‬‬

‫‪2‬פ תוכרעמיסיסבםינותנ‬ ‫חתפמה ליבקה דיחיה לשתינבתה ‏‪ Empl‬אוה‏}‪ ), employee_id‬תולתהו ‪-‬אלה‬ ‫תילאיווירט הדיחיההלחש לע ‏‪ Empl‬איה תולתחתפמב ‪.‬הזתינבתה ‏‪ Empl‬איה‬ ‫אופא‏‪.BCNF-1‬‬ ‫חתפמה ליבקה דיחיה לש תינבתה ‏‪ Dept‬אוה ‏}‪ L{dept_no‬תולתהו ‪-‬אלה‬ ‫תילאיווירט הדיחיההלחש לע‏‪ Dept‬איה תולתחתפמב ‪.‬הז םגתינבתה‏‪ Dept‬איה‬ ‫אופא‏‪.BCNF-2‬‬ ‫תינבתה ןוכיתבש ןושארה הניא ‏‪BCNF-1‬‬

‫‪ N7,‬וז העיבצמ לע ךכ והזש ןוכית‬

‫הקולה תויוליפכב ‪.‬תורתוימ יתש תוינבתה ןוכיתב ינשה ןה ‏‪ ,BCNF-2‬ןכלו‬ ‫ןוכיתב הז אל תויופצ תויוליפכ ‪,‬תורתוימ לככ ןתינש עובקל לע ךמס תויולתה‬ ‫‪.‬תוילנויצקנופה‬ ‫ןוכית לש סיסב םינותנ אוה‏‪ BCNF-2‬םא לכתוינבתה וב ןה‏‪.BCNF-2‬‬ ‫תואמגודב ליעל ויה טעמ תונוכת טעמו תויולת ‪,‬תוילנויצקנופ ןכלו היה תוהזללק‬ ‫תא תוחתפמה קודבלו םא תוינבתה ןה ‏‪ .BCNF-2‬המגודב ‪,‬האבה הבש קודבנ‬ ‫םאה תינבת איה ‏‪ LBCNF-2‬תינבתה תבכרומ טעמ ‪,‬רתוי ןיאו ונל עדימ לע‬ ‫ןתועמשמ לש תונוכתה תויולתהו ‪.‬תואיצמב‬ ‫המגוד‪ 7.21:‬אהת ‏)‪ R = (A,B,C,D,E‬תינבת ‪,‬םיסחי אהתו ‏‪ F‬תצובק תויולתה‬ ‫תוילנויצקנופה תולחה ‪:‬הילע‬ ‫ת(‪+--‬‬

‫‏‪F={C—>ABE,AB—D,BD‬‬

‫‪,‬הליחת שי אוצמל תא לכתוחתפמה םיליבקה לש ‪.‬ם הנוכתה ‏‪ C‬הניא העיפומ‬ ‫ףגאב ןימי לש ףא‪,‬תולת רמולכ הניא היולתףאב הנוכת‪,‬תרחא ןכלו תבייח תויהל‬ ‫הלולכ לכבחתפמ ‪.‬ליבקבשחנ אופא תא‏‪:CH‬‬ ‫‪C+={C}U{ABE} U {D} = {ABCDE} =R‬‬ ‫ונאצמ יכ ‏‪ C‬אוהחתפמ ליבק לש ‪.‬א ןוויכמהנוכתהש ‏‪ C‬תבייח תויהל הלולכ לכב‬ ‫חתפמ ‪,‬ליבק והז םגחתפמה ליבקה ‪.‬דיחיה לכ תוצובק תונוכתה תוליכמה תא ‏‪C‬‬ ‫ןה לכתוחתפמ‪.‬לעה לכ תצובק תונוכת הניאש הליכמ תא ‏‪ C‬הניא‪.‬חתפמ‬ ‫התע ןחבנ תא תויולתה תוילנויצקנופה ‪-?.‬ב תולתה‪,‬הנושארה‏‪ ,C—>ABE‬איה‬ ‫תולת‪.‬חתפמב ךא יתשב תויולתה ‪,‬תורחאה ףגא לאמש וניא חתפמ לש ‏‪ ,R‬ןכלו‬ ‫תינבתה הניא‏‪.BCNF-2‬‬

‫ןּוכיִּתלדומבםיסחיה ‪203 %‬‬ ‫ךירדמהדימלקרפל ‪| 7‬‬ ‫תינבתה ‏‪ R‬הקול תויוליפכב ‪,‬תורתוימ ןכלו יאדכ קרפל התוא תוינבתל ‏‪BCNF-2‬‬

‫? תואמגודב וניארש דע ‪,‬הכ דימת האצמנ תולת ‏‪F-2‬הרפהש תא תושירדה לש‬ ‫‏‪ ,BCNF‬ואתינבתהש התייה הכהטושפ דע אלש היה טעמכלדבה ןיב ? ‪5-‬‬ ‫ןכלו אל ונקדב תויולת ‪.‬תופסונ םא ונאצמ לכש תויולתה ‏‪ F-2‬תומייקמ תא‬ ‫תושירד‏‪ ,BCNF‬םאה שי קודבל תויולת !תופסונ‬ ‫' לע יפ‪,‬הרדגהה לכ תויולתה תולחש לע‪,‬תינבתה רמולכ לכ תויולתה ‪,‬ת*‪-‬ב‬ ‫תוכירצ םייקל תא ‪.‬תושירדה ךא ‪,‬השעמל םא ונאצמ לכש תויולתה ‏‪F-2‬‬ ‫תומייקמ ‪,‬ןתוא חטבומ ונל םגש לכ ראש תויולתה תורחאה תומייקמ ‪.‬ןתוא‬ ‫ידכ חכוויהל ‪,‬ךכב חיננ יכ ת איה יוסיכ ‪.‬ינונק ‏)‪ F‬יאדווב הליכמ יוסיכ )‪.‬ינונק‬ ‫תויולת ןניאש תוכייש ם‪-‬ל ןה ינשמ ‪:‬םיגוס‬ ‫* תויולת תוילאיווירט‬ ‫* תויולתתועבונה ‏‪ F-n‬תועצמאב יללכ ‪.‬קסיהה‬ ‫תויולת תוילאיווירט תומייקמ תא תושירדה לש ‏‪ ,BCNF‬לע יפ‪.‬הרדגהה תויולת‬ ‫תועבונה ‏‪ F-n‬לע יפ יללכ קסיהה תובייח םגעובנל תצובקמ יללכ קסיה ‪,‬תמצמוצמ‬ ‫הנממש םיעבונ םיללכה ‪.‬םירחאה סחייתנ יללכל גנורטסמרא הצובקכ המלש לש‬ ‫‪.‬םיללכ‬ ‫‪7.4.1.‬‬ ‫יללכ גנורטסמרא םה ללכ ‪,‬תויביסקלפרה ללכ הלפכהה ללכו ‪.‬תויביטיזנרטה ואררפסבףיעסב‬ ‫ללכמ תויביסקלפרה תועבונ תויולת ‪,‬תוילאיווירט יפכ וניארהש הרקמב ‪.‬יללכה‬ ‫ללכהלפכהה רשפאמ ףיסוהל ינשל םיפגאה לש תולת הנותנ הנוכת וא תצובק‬ ‫תונוכת ‪.‬ההז תולת אל תילאיווירט תמייקמה תא תושירד ‏‪ BCNF‬איה תולת‬ ‫ףגאש לאמשהלש אוה‪.‬חתפמ תולתלעפוהש הילע ללכהלפכהה תמייקמ םג איה‬ ‫תא תושירדה לש‏‪ ,BCNF‬ןכשףגאב לאמשהלש תועיפומ תונוכתה ועיפוהשףגאב‬ ‫לאמש לש תולתה ‪.‬תירוקמה‬ ‫‏‪ 29DY‬ללכ ‪,‬תויביטיזנרטה יתשמ תויולת תומייק תלבקתמ תולת ףגאש לאמש‬ ‫הלש ההז ףגאל לאמש לשתולתה‪.‬הנושארה ןכל םג ‪,‬ןאכ םא תויולתה תוירוקמה‬ ‫תומייקמ תא תושירד‏‪ BCNEF‬ףגא( לאמש אוה‪),‬חתפמ םג תולתה תלבקתמה‬ ‫תועצמאב ללכ תויביטיזנרטה תמייקמ תא ‪.‬תושירדה‬

‫‪4‬פ תוכרעמיסיסבםינותנ‬ ‫קוריפ רמשמ עדימ‬

‫תוינבתל ‪-‬ב ‏‪BCNF‬‬

‫רויאב‪ 7.11‬רפסב גצומ םתירוגלא יללכ לבקמה תינבת הניאש ‏‪ BCNF-2‬קרפמו‬ ‫התוא קוריפעדימ‪-‬רמשמ תוינבתל‏‪ .BCNF-2‬םתירוגלאה לבקמ טלקכתינבת ‏‪R‬‬ ‫תצובקו תויולת ] הלחה ‪,‬הילע אוהו חתופ בושיחב ‪ *5.‬ךא ‪,‬רוכזכ בושיח רוגסה‬ ‫לש תצובק תויולת לולע תויהל יתלב ‪.‬ליעי‬ ‫םא סיננובתמ ףוגב ‪,‬םתירוגלאה רשפא תוארל‪-+*8‬ש שורד ידכ קודבל םא תולת‬ ‫תמיוסמ תאצמנ וב וא ‪.‬אל ךא הקידב וז תנתינ עוציבל ‪,‬ליעי אלל בושיח רוגסה‬ ‫‪.‬ולוכ ןלהל גיצנ ןפואב אל ילמרופ הסרג לש ‪,‬םתירוגלאה הניאשתבשחמשרופמב‬ ‫תא‏‪. F+‬ולוכ‬ ‫הנותנ תינבת ‏‪ R‬הצובקו ‏‪ F‬לש תויולת תוילנויצקנופ תולחש ‪.‬הילע ןויערה דוסיבש‬ ‫םתירוגלאה אוה אוצמל תולתהלחש לע ‏‪R‬הרפמו תא יאנת ‏‪ BCNF‬חיננ‪%,‬א‪'R‬יזאקוריפ‬ ‫חתפמ לש ‪ 1.‬תולתה ‏‪ X—Y‬רבכ הניא הלח לעתינבתה ‏‪ 1P, R‬הניאהרפמ‏‪ N2‬לשתינבתיתשלתוינבתה‬ ‫תא יאנת ‏‪ .BCNF‬תמועל ‪,‬תאזתינבתב ‪ 81,‬א‪D,BD‬‬

‫רבכ וניארהמגודב תמדוקה יכתולתה ‏‪AB—D‬הרפמ תא יאנת ‏‪, .BCNF‬ןכל יפל‬ ‫‪,‬םתירוגלאה קרפנ הליחת תאתינבתה יתשל ‪:‬תוינבת‬ ‫)‪R: = (A,B,D‬‬ ‫)‪R, = (A,B,C,E‬‬ ‫תולתה תילאיווירט‪-‬אלה הדיחיה הלחש לע א‪ 1‬איה‏‪ LAB—D‬ידכ חכוויהל ךכב‬ ‫רשפא קודבל יכ [ )‪ = 8‬‏*‪, = {D} B+ = {B} ,A‬ס‪ +‬ןכלו אל תולח לעתינבתה‬ ‫תויולת תוילנויצקנופ תוילאיווירט‪-‬אל תוללוכה הנוכת תדדוב ףגאב ‪.‬לאמש ומכ‬

‫ןּוכיִּתלדומבםיסחיה ‪205 %‬‬ ‫ךירדמהדימלקרפל ‪| 7‬‬ ‫ןכ ‏}‪ {AD}+={AD‬ןכו ‏}‪ .{BD}+ = {BDE‬ךא ‪, 81‬ם‪ 6‬ןכלו םג אל תולח ‏‪8 5y‬‬ ‫תויולת אל תוילאיווירט ‏‪ {BD }-w‬וא ‏}‪ {AD‬תועיפומ ףגאב לאמש ‪.‬ןהלש תולתה‬ ‫הדיחיה איה אופא ‏‪AB—D‬‬ ‫‏‪ R, by‬הלח תולתה‏‪ C—>ABE‬איהש תולת ‪,‬חתפמב ךא םג תולתה ‪D,BD‬‬

‫רבכ ‪,‬וניאר יכחתפמה ליבקה דיחיה לשתינבת וז אוה ‏}‪ L{C‬תויולתהורפהש תא‬ ‫םיאנתה לש ‏‪ BCNF‬ויה ‏‪.AB—D‬םס‪ABE,AB—D,BD—E‬‬ ‫תולתב‏‪ C—>ABE‬הנוכתה ם תפדוע ףגאב ‪.‬ןימי ןיא תונוכת תופדוע ‪,‬תופסונ ןיאו‬ ‫יפגא לאמשרשפאש ‪,‬דחאל ןכלו יוסיכה ינונקה ‪:‬אוה‬ ‫‪,‬אם‪+ABE-2‬תולתה‏‪ E—-B‬הניא תכפוה ףא הנוכת תפדועל יפגאב‬ ‫םיכ תפדוע‬ ‫לאמש לש ‪.‬תויולתה לבקנ ‪:‬אופא‬ ‫‪‎‬ת‪,‬ת‪AB,AB‬‬

‫םתירוגלאה רצוי תינבת תחא לכל תולת יוסיכב ‪,‬ינונקה אלא םא ןכ רבכ הרצונ‬ ‫תינבת םע ןתוא ‪.‬תונוכת רוצינ אופא בוש ןתוא שולש ‪:‬תוינבת‬ ‫‏)‪,8) R,=(AB,D) R:;=(B,D,E‬ם‪[ = (),‬‬ ‫תונוכתה לש תולתה ‪,‬תפסונה‪,‬ם‪+B-1BD—E‬אג‪-‬ל שי‬ ‫‏;‪ R‬תולח יתש תויולת תוילנויצקנופ ‪:‬תוילאיווירט‪-‬אל‬

‫‪ 0‬ף תוכרעמיסיסבםינותנ‬ ‫אופא ינשתוחתפמ ‪:‬םיליבק ‏}‪). {BD‬םת[‪-‬ו תולתה‏‪ BD—-E‬איה תולת‪,‬חתפמב‬ ‫ךא תולתה ם‪+-‬ם הניא תולת‪.‬חתפמב ףגא ןימיהלש לכומחתפמב ליבקה ‪8),‬ס[‬ ‫ןכלו ג איה ‏‪ANF-2‬‬ ‫ונלביק אופא קוריפ רמשמ תויולת רמשמו ‪,‬עדימ תחאשתוינבתה‏‪ ,3NF-212‬לכו‬ ‫תורחאה ‏‪BCNF-2‬‬ ‫‪ / 3‬רשפאעיגהלתכרעמב וז יוסיכל ינונק‪,‬הנוש ונממו קוריפל‪.‬הנוש ובשח ‪,‬ותוא‬ ‫‪.‬ליגרתכ‬ ‫' גיצנ תא יוסיכה ‪:‬ףסונה‬ ‫‏}‪E, E>B‬‬ ‫>—‬

‫‪F.={C—>AE,AB—>D,BD‬‬

‫‪,‬םוכיסל ריענ יבגל תומשה הרוצ תילמרונ הנושאר וניארש( תליחתב )קרפה‬ ‫הרוצו תילמרונ ‪,‬תישילש םיזמרמה לע המויק לש הרוצ תוילמרונ ‪,‬היינש ילואו‬ ‫‏)‪,D‬תיעיבר תישימח ‪'.‬וכו‬ ‫םג הרוצה תילמרונה ‪,‬היינשה ‏‪ ,2NE‬איה דדמ תמרל ‪,‬תויוליפכה איהש השלח‬ ‫‏‪ 3NF-a1‬תויופצ רתוי ‪),‬תויוליפכ‬ ‫‏‪ 2NF-21‬ךא אל‬ ‫‏‪, 3NF-nany‬רמולכ( סחיב אוהש‬ ‫‏‪ IR‬שי הל לכב תאז ןורתי םיוסמ לע ‏‪ LINF‬איהש הרוצ תילמרונ אלל לכהלבגה‬ ‫תניחבמ ‪.‬תויוליפכ ןוויכמ דימתש רשפא עיגהל םינוכיתל םהש ‏‪, 3NF-2‬תוחפל‬ ‫סהו םג ילעב לכ תונוכתה תויוצרה ‪,‬תורחאה ןיא הרוצל תילמרונ ‏‪ N‬תובישח‬ ‫‪.‬תישעמ‬ ‫תמייק םג הרוצ תילמרונ ‪,‬תיעיבר‏‪ LENE‬ךא וזתעבונ חותינמ לולכמ תויולת בחר‬ ‫רתוי רשאמ תויולתה תוילנויצקנופה דבלב ‪ -‬םג תויולת תוארקנה תויולת ‪-‬בר‬ ‫‪.‬תויכרע תויולת ‪,‬תויכרע‪-‬בר הרוצ תילמרונ תיעיבר קוריפו תוינבתל הרוצב‬ ‫תילמרונ תיעיבר םיאבומ רפסב סרוקהףיעסב‪ 7.6.‬רמוח הז אוה רמוח‪.‬תושר‬ ‫ומכ ןכ תומייק דוע תורוצ ‪,‬תוילמרונ תוססובמה לע חותינ םיגוס םיפסונ לש‬ ‫‪.‬םיצוליא הלא תורכזומ ףיעסב‪7.7‬רפסב ‪,‬סרוקה ןניאו תולולכ רמוחב ‪.‬דומילה‬ ‫םיניינעתמל ‪ -‬וארק תא םיפיעסה םירתונה קרפב ‪ 7‬רפסב ‪ -‬הלא יפיעס ‪,‬תושר‬ ‫םיביחרמה םירישעמו תא‪.‬הנומתה‬

‫קרפ‬

‫‪8‬‬

‫יסופיט‬

‫םינותנ‬

‫םיבכרומ‬

‫םיקרפב םימדוקה ונקסע םיטביהב םינוש לש יסיסב סינותנ לדומב ‪.‬םיסחיה‬ ‫וניאר לדומהש רשפאמ גצייל ןווגמ לודג לש ‪,‬סינותנ שפחל עדימ הרוצב המכח‬ ‫‪,‬הליעיו להנל תוליעפ לשםישמתשמ םינוש תינמז‪-‬וב גואדלו תוניקתל ‪.‬םינותנה‬ ‫תונוכתה וללה לש לדומ םיסחיה תויתועמשמ ‪,‬דואמ תושרדנו תוכרעמב םינותנ‬ ‫‪.‬תובר ךא םע םינשה ךלוה רבוגו ךרוצה םילדומב םירישע םישימגו ‪,‬רתוי םילוכיש‬ ‫לולכל םיגוס םינווגמ לש םינותנ ינבמו םינותנ םיבכרומ רתוי רשאמ ‪.‬תואלבט‬ ‫לככ תולוכיש ‪,‬בושחמה הגוצתה‪,‬תיפרגה ‪,‬תרושקתה טנרטניאה ןווגמו ינקתה‬ ‫הצקה םיללכתשמ םישרפנו לע ינפ םימוחת םרפסמש ךלוה לדגו ‪ -‬רבוג ךרוצה‬ ‫םיכרדב תופסונ תושדחו גוצייל םינותנ םיגוסמ ‪:‬םינווגמ םיטסקט ‪,‬םיכורא‬ ‫‪,‬םיטוטרש תונומת יצבוקו ;לוק תוכרעמ הרקב תוברעמה ‪,‬םינשייח ‪,‬תומלצמ‬ ‫םינופלט םיבשחמו ;םידיינ תותשר םירושיק ;םידממ‪-‬תורידא היצרגטניא‬ ‫תוירושיקו ןיב ‪.‬תוכרעמ‬ ‫ךשמב םינשה ושענ תונויסינ חתפל םילדומ םירישע םישימגו ‪,‬רתוי םינוויכב‬ ‫‪,‬םינוש הלאו ושמומ תוכרעמב תוירחסמ ודעונש תתל הנעמ םיכרצל ‪.‬ונראיתש‬ ‫תוכרעמהוחתופשתובקעב תונויסינה וללה וכז םשלתוכרעמיי ‏‪, SQL‬ייזוס אוהש‬ ‫םש ירנג וניאו ןייצמ לדומ דחא ‪.‬םכסומ ךשמהב קרפה ריכנ המכ םילדומהמ‬ ‫‪.‬םישדחה‬ ‫בושח ןייצל יכ תונורקעה םהילעש ססבתה וחותיפ לש לדומ ‪,‬םיסחיה ןוגכ חותיפ‬ ‫תופש תותליאש םע סוסיב יטרואית תונתינו בושיחל ‪,‬ליעי תלוכיה אטבל קודבלו‬ ‫יצוליא תוניקת תלוכיהו להנלםישמתשמ םיבר תינמז‪-‬וב ךות הרימש לע תויבקע‬

‫‪2‬‬

‫תוכרעמיסיסבםינותנ‬

‫םינותנה ‪ -‬לכ הלא ושמיש הארשה סיסבו האוושהל םג חותיפב םילדומה‬ ‫‪.‬םישדחה‬ ‫קרפב הז ןחבנ םילדומ םיליכמה םיסופיט םיבכרומ לש ‪:‬םינותנ יסופיט םינותנ‬ ‫םע םיכרע םניאש ‪,‬םיימוטא ךכבו םניא םימייקמ תאהשירדה תיסיסבה לש לדומ‬ ‫םיסחיה הרוצל תילמרונ ;הנושאר יסופיט םינותנ םיכרעהש םהב םניא םידיחא‬ ‫וא ןיאש םהל הנבמ רדגומ ;ללכ םילדומ םהבש םינותנה םניא םינגרואמ‬ ‫תואלבטב אלא םיפסואב םיגוסמ םירחא וא‪.‬םיפרגב‬

‫עדימ‬

‫הנבומ‬

‫ףיעס‪8.1‬רפסב‬

‫הצחמל‬

‫רוזחנ ךרעמל ןוניגה ינוריעה ןונכתלו ‪.‬תוניגה קרפב ‪ 4‬ונגציי תא בוציע תוניגה‬ ‫תועצמאב יתש תוינבת לש ‪:‬םיסחי‬ ‫(‪‎ 1110‬זוהק‪design(a_name,year,season,designer,‬‬ ‫)‪design_details(a_name,year,season,p_name,quantity‬‬ ‫רויא‪8.1‬‬ ‫תוינבת הלא תוליכמ עדימ לבגומ ‪.‬דבלב בוציעה ‪,‬ומצע אטבתמש הפמב לש‬ ‫הקלחה םע טוטרש לש ‪,‬ןונכתה רמשנ *בוקב ומשש לולכ סחיב‏‪ design‬הנוכתה(‬ ‫‪). 0‬תוהק ךא טרפ ‪,‬ומשל ץבוקה וניא קלח סיסבמ םינותנה ונכותו אל שיגנ‬ ‫‪.‬תותליאשל‬ ‫הצרנ ביחרהל תא גוציי ןונכתה ללכשלו תא שומישה וב‏‪ DY‬ידי םיננכתמה‬ ‫‪,‬םיעצבמהו ךכרשפאש היהיתשגל םיטרפל םינוש לש‪,‬ןונכתה אוהו בלתשהללכוי‬ ‫ןפואב ילרגטניא םגתוכרעמב עוציבה בקעמהו ןוגכ( לוהינ‪,‬הדובעה לוהינ‪,‬שכרה‬ ‫ןונכת תרקבו היקשהה ‪).‬דועו‬ ‫שופיח ריהמ טנרטניאב הארי םייקש ןווגמ לודג לש תונכות הלאכ בוציעל ‪,‬תוניג‬ ‫‏‪ DY‬קשממ‪,‬יפרג‏‪ DY‬םירושיק םיגוסל םיבר לש עדימ וליפאו‏‪ DY‬ילכ ‪.‬הרקבולוהינ‬ ‫תארשהב תוכרעמ גוסמ הז הסננ םיגדהל םיסופיט םינוש לש םינותנ םניאש‬ ‫‪,‬םינָבומ אלא םינבומ הצחמל וא ילעבהנבמ הנושהנבממםסינותנה לדומב םיסחיה‬ ‫‪.‬ליגרה‬

‫ךירדמהדימלקרפל ‪ | 8‬יסופיטםינותנםיבכרומ * ‪213‬‬ ‫המגוד ‪ 8.1:‬םרטב שגינ בוציעל הניג ‪,‬תמיוסמ הצרנ ףוסאל עדימ ‪.‬יטנוולר‪,‬לשמל‬ ‫ונאובב רוחבל ‪,‬םיצע םיחיש םיחרפו הניגל הצרנ ןייעל עדימב לע לכ ‪.‬חמצ‬ ‫תואמגודב לדומב םיסחיה ונרמש תונוכת ‏‪ NN‬תומיוסמ יבגל םיחמצ ןוגכ‬ ‫חוורמ הליתש הבוגו ‪.‬ילמיסקמ תעכ הצרנ רזעיהל עדימב יעוצקמ בחרנ יבגל‬ ‫‪,‬םיחמצהרשפאיש ססבל תאהריחבה‪:‬סהב סאה םה םימיאתמ הקלחלתניחבמ‬ ‫‪,‬רוזאה םילקאה גוסו ועקרקה םאה םה !םירישנ הזיא רטשמ היקשה םיאתמ‬ ‫!םסהל והמ דעומ החירפה והמו?!הכשמ וליא יגוס לופיט !םישורד וליא יגוס‬ ‫םיקיזמ םילולע ףוקתל !םתוא םאה שי עדימ לעהמאתה ןיב תוגוז !םיחמצ ‪.‬דועו‬ ‫ןכתי ףאהצרנש ןייעל תונומתב לש םיחמצה וללהתונועב תונוש לש‪,‬הנשה סיסבכ‬ ‫‪.‬ןונכתל‬ ‫עדימ הזכ ןתינ אוצמל ירגאמב עדי ונבנש לע ידי םיחמומ םוחתב וא ורבצנש‬ ‫םיכרדב לש ףותיש ‪,‬עדימ םבורו םינימז לוכלתשרב ‪.‬טנרטניאה תונכות בוציעל‬ ‫תוניג ועיצי ךרדב ללכ השיג ירגאמל עדי םייטנרטניא קלחכ ילרגטניא ךילהתמ‬ ‫‪,‬ןונכתה ןכתיו ירגאמש עדי םילולכ הנכותב ‪.‬המצע‬ ‫םישנ בל יכ יפד טנרטניאה‪,‬םמצעםהבש גצומ עדימה ואםישמשמש תודוקנ השיג‬ ‫‪,‬םירגאמל םגםסה גוס לש ‪.‬עדימ שי םיפדב הלא םיקלח ‪,‬םינבומ ןוגכ ‏‪ URL-N‬לש‬ ‫‪,‬ףדה ירותפכ הלועפ ‪,‬םימיוסמ תורתוכ וא ‪.‬םירושיק לבא םיביכרמל ‪,‬םיבר ןוגכ‬ ‫םיטסקט ‪,‬תונומתו ןיא הנבמ רדגומ שארמ וא ןיאש הנבמ ‪.‬ללכ יפד טנרטניא‬ ‫עדימהנבומהצחמל‬ ‫םיבשחנ אופא עדימ הנבומ ‪.‬הצחמל‬ ‫‪semi-structured‬‬ ‫‏‪data‬‬

‫עדימ‬

‫ילולימ‬

‫ףיעס‪8.3‬רפסב‬

‫עדימה ירגאמב עדי תמגודכ הלא ורכזוהשהמגודב‪ 8.1‬אוה ובורב ‪,‬ילולימ קלחהו‬ ‫ילולימה בשחנ רסח ‪.‬הנבמ רגאמ עדיה ולוכ ללוכ יאדווב םג תונומת םיביכרמו‬ ‫םינבומ ‪,‬םימיוסמ ךא עדיה ונאשםישפחמ יובח ךותב ‪,‬םיטסקט הלאו םינסחואמ‬ ‫‪.‬םיצבקב‬ ‫עדימ ילאוטסקט ןווקמ ןוגכ יפד‪,‬טנרטניא ‪,‬םירפס םינותיע וא םיגולטק םינווקמ‬ ‫‪document‬‬ ‫סה םינותנ ינפב ‪,‬םמצע םהו םיארקנ ‪.‬םיכמסמ ךמסמ טסקט ליכמ ףצר לש ‪‎‬ךמסמ‬ ‫‪,‬םיוות רשפאו סחייתהל וילא םג לאכ ףצר לש ‪.‬םילימ הצרנ היהתש תורשפא‬ ‫לאשתל ירגאמ ‪,‬םיכמסמ לשמל רתאל ךמסמ לע יפ ‪.‬ונכות‬ ‫םג יסיסב םינותנ לדומב םיסחיה םילוכי ליכהל תודש ‪,‬םיילולימ וליפא ‪,‬םיכורא‬ ‫סאתהב תרדגהל ‪.‬תינבתה ‏‪ TN‬הלא ולבגוי ךרדב ללכ ךרואל ילמיסקמ ‪.‬םיוסמ‬

‫‪ 4‬פ תוכרעמיסיסבםינותנ‬ ‫תותליאשב ‏‪ SQL‬רשפא ףולשל םתוא קר ‪,‬םאולמב יפל םיאנת םהשלכ לע תודש‬ ‫‪,‬םירחא וא לכל רתויה תמאתהב תוינבת ךותמ ‪.‬הדשה ןיא ךרד החונ ‏‪SQL-2‬‬ ‫רתאל יכמסמ טסקט לע יפ יביכרמ ‪.‬ןכות‬ ‫ירגאמ םיכמסמםיבשחנ יסיסב‪,1*08)(1.‬םינותנ‬ ‫ידכ שפחל יכמסמ טסקט יפל ‪,‬ןכות םיסחייתמ לכל הלימ טסקטב לאכ תלימ תלימחתפמ‬ ‫‏‪keyword‬‬ ‫‪,‬חתפמ םיעצבמו שופיח יפל תולימ‪,‬חתפמ רמולכ םישקבמ רתאל םיכמסמםהבש‬ ‫תואצמנ םילימ ‪,‬תושקובמ םוקמב והשלכ ‪.‬טסקטב‬

‫שופיח יפל‬

‫תולימ חתפמ‬

‫שופיח ךמסמ יפל תולימ חתפמ הנוש ותוהמב התליאשמ הליגר סיסבב םינותנ‬ ‫לדומב ‪,‬םיסחיה דחוימב רבודמשכ שופיחב תשרב ‪.‬טנרטניאה תותליאש תוליגר‬ ‫תונפומ סיסבל םינותנ ‪,‬עודי ןתינש קורסל ‪,‬ותוא םג םא אוה לודג ‪,‬רזובמו ידכ‬ ‫רתאל תא‪.‬תובושתה תשר טנרטניאה הניא תנתינ הקירסל תללוכ ךרוצלתרזחה‬ ‫הבושת ןמזב ‪,‬ריבס רפסמו םיכמסמה םיליכמה ףסוא תולימ חתפמ םיוסמ יושע‬ ‫תויהל ‪,‬םוצע ךכ אלש ןתינ םגו אל ליעי וגיצהל ‪.‬ואולמב‬ ‫םושמ ‪,‬ךכ שופיח יפל תולימחתפמךמתנ דימת תועצמאב ינבמ רזע םילהונמש לע‬ ‫ידי עונמ שופיחה וא תכרעמ ‪,‬םיכמסמה אוהו בלושמ ןונגנמב גוריד תובושתל גוריד‬ ‫‏‪ranking‬‬ ‫‪.‬תולבקתמה עונמ שופיחה גיצמ םדוק לכ תא תובושתה תולעב גורידה הובגה‬ ‫‪,‬רתויב דוע ינפל הצומש‪.‬שופיחה‬ ‫המגוד‪ 8.2:‬חיננ ונאשםישפחמ עדימ לע יצע ‪,‬תיז ךותמ הנווכבלשל םתוא ןונכתב‬ ‫‪.‬הניגה שופיח‏‪ YNNI‬שופיח יללכ‪,‬לגוג( הרקמב )הז סע דמצ םילימה‬ ‫ביני תא ךסמתובושתה תונושארה ‪:‬הזה‬

‫‏‪ N‬יייפוריא‬

‫ךירדמהדימלקרפל ‪ | 8‬יסופיטםינותנםיבכרומ * ‪215‬‬ ‫יפוריא‬ ‫תיז‬

‫‪ & = ..‬‏‪o‬‬ ‫םילכ‬

‫םינסוסדוש‬ ‫תופת‪[₪‬‬ ‫תושיח \‪0‬‬ ‫תוומת ‪₪‬‬ ‫לסה ‪₪‬‬ ‫ג‏‬ ‫)תוינש‬ ‫‪(0.48‬‬ ‫תואצית‬ ‫‪96,0002‬‬ ‫ןוההו *‬ ‫‏‪+hebrew‬‬ ‫תווקפ‪+‬‬ ‫‪"/‬יתיאיש‬ ‫‏‪wikilowers‬‬ ‫םס‬ ‫ו‬ ‫הדשה‬ ‫חמצ‬ ‫'נגרלא‪-‬‬ ‫חמצ‬ ‫יאופר‬ ‫חמצ‬ ‫ןילבת‬ ‫'פוריא‪:‬‬ ‫תיז‬ ‫םירמוא‬ ‫‪.‬םיחישי‬ ‫ךיראמו‬ ‫טזג‬ ‫כחר‬ ‫תרמצ‬ ‫רחה‬ ‫ץע‬ ‫אוה‬ ‫יתוברת‬ ‫תיז‬ ‫‪.‬ךומנ‬ ‫ץע‬ ‫דע‪-‬קורי‬ ‫אוה‬ ‫רב‬ ‫ץעכ‬ ‫יפוריא‬ ‫תיז‬ ‫העיבק‬ ‫תאזש‬ ‫הארב‬ ‫ךא‬ ‫‪,‬הנש‬ ‫‪2,000‬‬ ‫ינב‬ ‫םה‬ ‫ץראב‬ ‫םיקיתע‬ ‫םיצעש‬ ‫‪'‎‬פוריא *‬ ‫‪+wiki‬זת‬ ‫‪‎‬הווקפ«‬ ‫"חס‬ ‫‪wikipedia‬‬ ‫‪org‬‬ ‫תיז‬ ‫יפוריא‪-‬‬ ‫הידפיקיו‬ ‫‪.‬רב‬ ‫לדגה‬ ‫םייתיזה‬ ‫תחפשמב‬ ‫רע‬ ‫קירי‬ ‫ץע‬ ‫אוה‬ ‫‪,‬תיזה‬ ‫‪.‬חוורה‏‪Y‬‬ ‫וזשב‬ ‫‪(Olea‬וא‬ ‫‏‪europaea‬‬ ‫''עדמ‬ ‫‪₪‬ש‬ ‫יפוריא(‬ ‫תיז‬ ‫תוצראב‬ ‫םיה‬ ‫‪.‬ןוכיתה‬ ‫תא‬ ‫ץעה‬ ‫םי'לדגמ‬ ‫םינגרכב‬ ‫אוהו‬ ‫תיזה‬ ‫ינז‬ ‫םייתוברה=‬ ‫םירשקה‬ ‫הירוטסיה‬ ‫תיזה‬ ‫‏ ץע‬ ‫חווק‪//.5‬אוויא‪.‬וסא‪86‬ם‪..+|-00.‬ד‬ ‫ןוניגה‬ ‫םלועל‬ ‫רעשה‬ ‫‪TO‬‬ ‫‏‪KEEP‬‬ ‫יפוריא ‪-‬‬ ‫תיז‬ ‫ךראמו‬ ‫עזג‬ ‫בחר‬ ‫‪.‬תרתצ‬ ‫בחר‬ ‫ץע‬ ‫אוהש‬ ‫יזפברת‬ ‫תיזל‬ ‫דוכינב‬ ‫ךומנ‬ ‫ירו‬ ‫דפ‬ ‫קורי‬ ‫‪,‬הוב(‬ ‫אל‬ ‫רכ‬ ‫ץע‬ ‫אש‪-‬‬ ‫יפוריא‬ ‫תיז‬ ‫יצע‬ ‫עזג‬ ‫לש‬ ‫כרמ‬ ‫תעדליכ‬ ‫ןיירעמ‬ ‫‪,‬ילוסיפ‬ ‫תיזה‬ ‫עזג‬ ‫םיחי‬ ‫‪‎‬םיחמצ=‬ ‫רידגה‬ ‫‪+hitps‬‬ ‫!וונוו ‪'‎‬ש‬ ‫‪com‬‬ ‫תיז‬ ‫יפוריא‪-‬‬ ‫יחוו'ד‬ ‫החירפ‬ ‫תונומתו‬ ‫םכלש‬ ‫!חטשהמ‬ ‫םיחמצהלש‬ ‫לארשי‪...‬‬ ‫הקירפא‬ ‫ןופצמ‬ ‫תוברתב‬ ‫םיתיז‬ ‫לודיג‬ ‫למרכבו‬ ‫לילגב‬ ‫רב‬ ‫ץעכ‬ ‫לארשי‬ ‫ץראב‬ ‫לדג‬ ‫תיזה‬ ‫יפוריא‬ ‫תיז‬ ‫לע‬ ‫עדימה‬ ‫לכ‬ ‫תברות‬ ‫אה‬ ‫םיחיכומיכ‬ ‫תירקראצ‬ ‫‪.‬ןוכיתה‬ ‫תרזמל‬ ‫‏‪T8‬‬ ‫הפוריא‬ ‫םורדבו‬ ‫‪+OLEELR‬‬ ‫‪¢plants‬‬ ‫‪ Gcategory‬סחנק‬ ‫‏‪=“Sofilx‬‬ ‫תומדוקלש‬ ‫תואסרג"‬ ‫‏)‪(problem_categories‬‬ ‫רחאל בושיח סחיה‪,‬זסחוק לבקתמ ןמ ץעה רויאבש‪: 11.2‬ץעה‬ ‫‪responsible‬‬ ‫‪w_id‬‬

‫‪temp‬‬ ‫רויא‪11.3‬‬ ‫בלשה אבה ןורחאהו אוה בושיח הלועפה ‏)‪= ₪(temp‬‬ ‫תלבקתמה איה תאצות‪.‬התליאשה‬

‫‪ 11.‬האצותה‬

‫ךירדמהדימלקרפל‪| 11‬דוביעתותליאש ‪279 5‬‬ ‫המגוד ‪ 11.2:‬םיגדנ גוציי התליאש תועצמאב ץע יוטיב רובע התליאש תבכרומ‬ ‫‪.‬רתוי חסננ‪-.80(1‬ב תא התליאשה ‪:‬האבה ואצמי תוינפתרבחמ ‏’‪ 'B-soft‬רבכש‬ ‫ולפיט ןהב תוחפל םיימעפ רחאל תלבק ‪".‬החישה‬ ‫רשפא חסנל תאהתליאשה ‏‪: SQL-2‬ךכ‬ ‫‪ 561606‬חוסינבהתליאש ווונא‬ ‫‏‪call 7‬‬ ‫םיחינמ לכיכםילופיטה‬ ‫‏‪ from callas C, handlingasT1, handlingasT2‬םיליכמהותוארפסמ‬ ‫היינפועצוברחאלתלבק‬ ‫םימעפל(דימ‬ ‫‏‪ whereC.client_id= "B-soft” and‬החישה‬ ‫‪),‬הירחא ןכלו ןיאךרוצ‬ ‫‪ .1‬וס= ‏‪C.call‬‬ ‫‏‪idand‬‬ ‫תוושהלןיביכיראת‬ ‫םילופיטהךיראתל‬ ‫‏‪T1l.call id=T2.callidand‬‬ ‫‪.‬היינפה‬ ‫‪(T1.h_date#T2.h_dateorT1.h_time+#‬‬ ‫‏‪T2.h_time‬‬ ‫םוגרתבהתליאש ווהרבגלאל לש םיסחי לבקתמ יוטיבהירבגלאה ‪:‬אבה‬ ‫(‪110471 0(,'4(,‘//'61117‬‬ ‫יי‪1‬ב‪-‬פס‪1‬שי‪=10‬‬ ‫‪AT1.call_1d=C.call_idN‬‬ ‫‪T1.call‬‬ ‫‏‪id="T2.call_idn‬‬ ‫‪(T1.h_date#‬‬ ‫‪T2.h_datev‬‬ ‫‪T1.h_time#‬‬ ‫‏)‪T2.h_time‬‬ ‫)‪(pclcalh> prilhandling)x pr(handling‬‬ ‫התליאשה תלעופ‏‪ DY‬השולש יסחי ‪:‬טלק סחיה ‏‪ [call‬ינשו םיעפומ לש סחיה‬ ‫‏‪ .handling‬לבקתמ ‏‪ Y‬יוטיב‏‪DY‬השולש ‪:‬םילע‬

‫ס‪81‬‬ ‫‪6C.client_id‬‬ ‫‪‎‬ייג‪-‬פסושי=‬ ‫‪'‎‬ד'ג‪N‬‬ ‫[‪.087‬‬ ‫=‪11‬‬ ‫[‪.087‬‬ ‫‪17‬‬ ‫‪\ Tl.call_id‬‬ ‫‪=T2.call_id‬‬ ‫‪(T1.h_date+‬‬ ‫‪T2.h_datev‬‬ ‫‪T1.h_time#‬‬ ‫)‪T2.h_time‬‬

‫‪‎T2‬ק‬

‫‪X‬‬

‫|‬ ‫‏‪handling‬‬

‫‪0‬‬ ‫[‬ ‫‪handling‬‬

‫ס‬ ‫|‬ ‫‪call‬‬

‫רויא‪11.4‬‬ ‫הליחת שי ליעפהל תא תלועפ לופכשה לע תשולש ‪.‬םילעה לבקתמלץעה אבה‬ ‫םירויאב( םיאבה ןמסנ תא יאנתהריחבה רוציקב לע ידי ‪)):‬סמש‬

‫‪0‬ף תוכרעמיסיסבםינותנ‬

‫)‪000‬ו ‪7‬‬ ‫‪4‬‬

‫רויא‪11.5‬‬ ‫התערשפאבשחל תאהלפכמה תיזטרקה לש ‏‪-12. C‬ו הנכנ תא סחי האצותה םשב‬ ‫‪772,‬‬

‫רחאלתפלחהלץע‪-‬תתה ילאמשה רתויב סחיב‏‪,CallsTimesT2‬‬

‫לבקתמ ‪:‬ץעה‬ ‫‪1 C.call‬‬ ‫‪1‬‬ ‫‪6)'4‬‬ ‫‪-‬‬‫‪11‬‬

‫[‬

‫‪CallsTimesT2‬‬ ‫‪11.6‬רויא‬

‫רחאל בושיחהלפכמה תיזטרקה‪,‬תרתונה ךפוהל*עה ולוכ‪.‬ףנעל הנכנ תא תאצות‬ ‫‏‪.CallsTimesT2TimesT1‬‬ ‫םייניבה‬

‫‪0-Cond‬‬ ‫‪CallsTimesT2TimesT1‬‬ ‫רויא‪11.7‬‬

‫ךירדמהדימלקרפל‪| 11‬דוביעתותליאש ‪281 %‬‬ ‫ךשמה בושיחה המוד בושיחלףנעההמגודב ‪:‬תמדוקהתלעפה תלועפ הריחבה לע‬ ‫‏‪ ,CallsTimesT21‬ףוסבלו הלטה לעהדומעה ‏‪call_id‬‬ ‫ךרד בושיחה תגצומה תואמגודב הלא איה ‪.‬תירלודומ ‪,‬רמולכ ונא םיחינמ יכ‬ ‫םימייק תכרעמב םילודומ לש הנכות בושיחל לכ תחא תולועפמ ‪,‬הרבגלאה‬ ‫םילבקמה םיסחי ‪.‬םירטמרפכ רבעמה לע‏‪ XY‬יוטיבה רידגמ הרדס לש תואירק‬ ‫םילודומל ‪,‬הלא טרפשכ ‪,‬רדסל ןיא לכ תולת ןיב‪.‬תולועפה ‪,‬לשמל ןיא לדבה ןיב‬ ‫עוציב תלועפ הריחב לע סחי דדוב התליאשכ ‪,‬תיאמצע ןיבל תלועפ הריחב לע‬ ‫תאצות םייניב קלחכ בושיחמ התליאש ‪.‬תבכרומ ךשמהב הארנ יכ שי םג תוטיש‬ ‫תובלשמה בושיח לש תולועפ תונוש ידכ לעייל תא ‪.‬בושיחה‬

‫בלש‬

‫היצזימיטפואה‬

‫שי םיכרד תונוש עוציבל ךילהתה יבושיחה רדגומה בלשב ‪.‬ןושארה בלשב אבה‬ ‫ירחא‪,‬חונעפה בלש ‪,‬היצזימיטפואה תוקדבנ תופולח תונוש עוציבל לעופב לש‬ ‫‪,‬בושיחה הרטמב עיגהל תינכותל עוציב הליעי לככ‪.‬רשפאה‬ ‫תופולחה תולוכי תויהל ינשמ ‪:‬םיגוס תופולח *על בושיחה ‪,‬ומצע רמולכ תאיצמ‬ ‫יוטיב לוקש ובושיחש ליעי רתוי אוהו ןתונ האצות‪,‬ההז וא תופולח םימתירוגלאל‬ ‫םישמשמה בושיחל תולועפ ‪.‬תומיוסמ ןלהל הארנ תואמגוד תופולחל ינשמ‬ ‫‪.‬םיגוסה‬ ‫המגוד‪* 11.3:‬ע יוטיבההמגודבש‪ 11.4‬וניא *עהירשפאה דיחיה רובעהתליאשה‬ ‫‪,‬הנותנה םא אוהיכ עבונ תורישי ןפואמתביתכהתליאשה‏‪ .SQL-2‬ןלהל ינש םיצע‬ ‫םיפסונ םיגציימה התוא ‪:‬התליאש‬

‫‪2‬פ תוכרעמיסיסבםינותנ‬

‫‪COND‬‬ ‫[‬ ‫‪X‬‬ ‫‪X‬‬

‫‪‎‬ק‬

‫‪-‬‬

‫‪P,‬‬

‫|‬

‫]‬

‫‪handling‬‬

‫‪call‬‬

‫‪handling‬‬ ‫‪‎‬רויא‪11.8‬‬

‫לעב ינשה לצפנ תא תלועפ הריחבה יתשל‪,‬תולועפ םאתהבו ךכל לצפנ תא יאנתה‬ ‫‪:‬יגולה‬

‫‏‪ call 1‬ח‬ ‫‏‪I‬‬ ‫‪6‬‬ ‫‏‪CONM1‬‬ ‫|‬

‫רויאב‪,‬הזיאנתהיגולה‬ ‫‏‪Cond‬‬ ‫‪1‬אוהיאנתה‬ ‫םירויאבש‪,‬םימדוקהאלל‬ ‫יאנתה‪:‬ימוטאה‬ ‫‏=‪C.client_id‬‬ ‫”‪B-soft‬‬

‫‏‪X‬‬ ‫‏‪X‬‬

‫‏‪pTZ‬‬ ‫‏‪p‘l‘l‬‬ ‫‏‪handling‬‬

‫‏‪handling‬‬ ‫‪11.9‬‬ ‫רויא‬

‫*‪IM:"P:‬‬ ‫‪p(‘client‬‬ ‫'‬ ‫‬‫‏‪I‬‬ ‫‪call‬‬

‫ךירדמהדימלקרפל‪| 11‬דוביעתותליאש ‪283 6‬‬ ‫?‬ ‫ םאה רשפא עובקל רוריבב הזיא ןיבמ ינש םיצעה םינורחאה עיצמ ךלהמ‬‫בושיח ליעי !רתוי‬ ‫' יפל *עה רויאבש‪ 11.9,‬תריחב תורושה ןהבש ‏”‪0/10=10 "B-soft‬מ‪1‬תעצבתמ‬ ‫תורישי לע ‪//04,‬סחיה ינפל עוציבהלפכמה ‪.‬תיזטרקה הלועפ ‏‪ I‬תרחוב ךותמ‬ ‫‪ 7‬קר תא תורושה תוניינעמה ‪,‬ונתוא תמצמצמו דואמ תא יסחי טלקה רובע‬ ‫תולפכמה ‪.‬תויזטרקה תמועל ‪,‬תאז יפל לעה ‪,‬םדוקה שי בשחל הליחת יתש‬ ‫תולפכמ תויזטרק לש םיסחי םילודג ‪,‬דואמ קרו זא ליעפהל תא תלועפ‬ ‫הריחבה לע סחי האצותה ‪,‬ןהלש אוהש סחי לודג דוע ‪.‬רתוי‬ ‫םא חיננ יכ רפסמ תוחוקלה אוה‪-10,000,‬כ יפכוונחנהש‪,‬רבעב רפסמ תורושה ‪-‬ב‬ ‫‪ 7‬אוה‪ 150,000,‬סחי האצותה לשהריחבה ליכמ‪-15‬כ תורוש‪.‬דבלב סחי הזכ‬ ‫רשפא ןסחאל ןורכיזב ימינפה ךרוצל ךשמה בושיח ‪,‬ץעה ןכלו הארנ יכ םג ילב‬ ‫תעדל וליא םימתירוגלא ושמשי בושיחל לכ‪,‬הלועפ לעה ינשה גיצמ ךלהמ בושיח‬ ‫ליעי ‪.‬רתוי‬ ‫המגוד‪ 11.4:‬גיצנ יתש תופולח םימתירוגלאלםישמשמה בושיחלתלועפהריחבה‬ ‫‏)‪(call‬‬ ‫>‪client_id="B-soft‬‬ ‫‪* OC.‬ע‪-‬תתה( ילאמשה רתויב *עב רויאבש)‪11.9.‬הלועפב‬ ‫‪1%‬‬ ‫‪13-801".‬שי‬ ‫שי אוצמל תורוש ‪//04‬ךותמ ןהבש ךרע הנוכתה‏‪ client_1d‬אוה‬ ‫םתירוגלא דחא ארוק תא לכתומושר ‏‪ call‬וזב רחא‪),13‬האלולכ( קדובו לכב תחא‬ ‫ןהמ תא ךרעה הדשב‪/0.10‬ו‪0‬ה‪ 1‬םא ךרעה אוה‪,‬י"‪8-6010‬י םתירוגלאה קיתעמ‬ ‫המושר וזהנתשמל ובש ןסחואמ סחי ‪.‬האצותה‬ ‫םתירוגלאה ינשה חינמ יכ להונמ סקדניא ינשמ לעהדשה‏‪ . client_1d‬םתירוגלאה‬ ‫עצבמ תלועפ רותיא סקדניאב םע ךרעה ‪,‬י‪ 8-8010‬לבקמו עיבצמ לסל ובש‬ ‫םיאצמנ םיעיבצמ לכל תומושרה תושורדה ‪.‬האצותל לכ רתונש אוה אורקל תא‬ ‫תומושרהלכ הלאה ןקיתעהלוהנתשמל ‪.‬האצותה‬ ‫רורב ידמלםתירוגלאהש ינשהשגינתוחפ םימעפ ןורכיזל ‪,‬ינוציחה ןכש אוה ארוק‬ ‫קסידהמ קר תא עדימה‪,‬שורדה ןכלו אוה בשחנ ליעי ‪.‬רתוי ךא שומיש וב הנתומ‬ ‫םויקב ‪.‬סקדניא‬ ‫ומכ תואמגודב‪,‬ונאבהש בלש היצזימיטפואה קלחתמ ךרדב ללכ ינשל ‪:‬םיקלח‬ ‫* לולכש גוצייה ימינפהלבקתהשבלשבחונעפה דע תלבקל ‏‪, NN‬לוקש רידגמש שילכבתאזתופולח‬ ‫תומיוסמגוציילימינפה‬ ‫ךילהת בושיח ליעי ‪,‬רתוי תדימב‪.‬רשפאה םילוקישה קלחב הז סה ךרדב ללכ ןנורתישעבונםינותנמלע‬ ‫שומימםיסחיהינבמו‬ ‫‪.‬רזע‬

‫‪4‬פ תוכרעמיסיסבםינותנ‬ ‫‪,‬םייטרואית םניאו םייולת יטרפב שומימה לש םיסחיה םינושה וא םיטביהב‬ ‫םיינכט לשתכרעמ‪.‬בשחמה‬ ‫* שומיש םינותנב לע תרוצ ןוסחא ‪,‬םיסחיה לע ינבמ רזעה םילהונמה רובע‬ ‫תודש ‪,‬םימיוסמ ןכו םינותנב םייטסיטטס לע לדוג ןכותו ‪,‬םיסחיה ידכ רוחבל‬ ‫םימתירוגלא תייגטרטסאו בושיח םיליעי לככ‪.‬רשפאה‬ ‫םותבבלש היצזימיטפואה הכירצ לבקתהל תינכות עוציבתמגרותמה דוקל ןתינה‬ ‫‪.‬הצרהל תאצותהצרהה תגצומשמתשמל‪.‬הבושתכ‬

‫דציכ תדדמנ‬

‫תוליעיה לש‬

‫בושיח‬

‫!התליאש‬

‫תדימ תוליעיה לש ךילהת יבושיח תדדמנ סחיב םיבאשמל םהבש םיניינועמ‬ ‫‪.‬ךוסחל ומכ בורב יגוס ‪,‬םיבושיחה םג דוביעב ‪,‬תותליאש באשמה ירקיעה ובש‬ ‫םסיניינועמ ךוסחל אוה ‪.‬ןמזה ןמזה אוה באשמ ‪,‬רקי ןה תדוקנמ טבמה לש לוצינ‬ ‫תכרעמ בשחמה ןהו תדוקנמ טבמה לש שמתשמה ‪,‬הנכותב הפצמה הבושתל‬ ‫תידיימ ‪.‬ותלאשל‏‪, DY‬תאז םנשי םירשקה םהבש םיניינועמ ךוסחל אקוודחפנב‬ ‫‪.‬ןוסחאה‬ ‫תוכרעמב יסיסב ‪,‬םינותנ ןמז בושיחהעפשומ ינותנמ ‪.‬ןוסחאה טלקה בושיחל אוה‬ ‫סיסב םינותנה ‪,‬ומצע אוהש רגאמ םינותנ לודגרמשנה ךרואל ‪,‬ןמז יפכו וניארש‬ ‫םיקרפב ‪,‬םימדוקה אוה ןסחואמ ינקתהב ןוסחא ‪.‬םיינוציח ךילהת בושיחה לש‬ ‫תותליאש ךורכ אופא תושיגב תורזוח תונשנו ינקתהל ןוסחא ‪.‬הלא‬

‫תויוריהמהשיגהםנמא‬ ‫םירופישה‬ ‫תונתשמםע‬ ‫‪,‬םייגולונכטהךאהלא‬ ‫םישחרתמלכב יגוס‬ ‫‪.‬םינקתההלבוקמתוארל‬ ‫תאישרפהתויוריהמהןיב‬ ‫ןורכיזימינפינוציחל‬ ‫‪,‬רומאכ האירק הביתכו לש םינותנ ןורכיזהמ ינוציחה וילאותעצבתמ דימת לע הדבועכ‪,‬העובק םא יכםג‬ ‫המכסומ‏‪N‬הליחתמ‬ ‫תוחתפתה‬ ‫תודיחי םינותנ תועובק ןלדוגב ‪. -‬םישוג תולועפ האירקה הביתכהו תויטיא רערעתהלםע‬ ‫ינקתהןוסחא‪.‬םישידח‬ ‫הברהב תולועפמ תועצבתמה ךותב ‪,‬ןורכיזה ןכלו םרוגה ירקיעהתכרעהב ךשמ‬ ‫בושיחה אוה רפסמ תושיגה ןורכיזל ‪.‬ינוציחה שמתשנ ךרדב ללכ קסידב קסיד(‬ ‫)יטנגמ גציימכ לש יעצמא ןוסחא ‪.‬םיינוציח‬ ‫רפסמ תושיגה קסידל ךלהמב בושיח התליאש יולת לדוגב יסחי ‪,‬טלקה ‪,‬ונייהד‬ ‫רפסמ תורושה לכב סחי לדוגהו לש לכ ‪,‬המושר ןכו ןפואב רוזיפ תומושרה לע‬ ‫‪.‬קסידה םימתירוגלאםתרטמש םצמצל תא רפסמ תושיגהםישמתשמ ינבמב רזע‬ ‫םא( ורדגוה רובע תונוכתה‪),‬תושורדה ןכו עדימב יטסיטטס לעתוגלפתה םיכרעה‬ ‫תודומעב תונושה וא לע תופיכתהשיגה תומושרל ‪.‬תומיוסמ‬

‫ךירדמהדימלקרפל‪| 11‬דוביעתותליאש ‪285 6‬‬ ‫םינותנ‬

‫םייטסיטטס‬

‫שומישל דבעמ‬

‫תותליאשה‬

‫ידכ ךירעהל תא רפסמ תושיגה קסידל ושרדייש תולועפב ‪,‬תונוש תכרעמ לוהינ‬ ‫סיסב םינותנה תרמוש םינותנ לע ילדוג ‪,‬םיסחיה ינבמ םיצבקה םישמשמה‬ ‫םנוסחאל ינבמו רזעה םירדגומה ‪.‬םרובע םינותנ הלא םינכדעתמ תעמ ‪,‬תעל‬ ‫םישמשמו תא ביכר הנכותה קסועה דוביעב ‪.‬תותליאש‬ ‫םינותנה םיירקיעה ‪:‬םה‬ ‫‏‪O‬‬ ‫‏* ‪ —n,‬רפסמ תורושה‬ ‫‏* ‪ —b,‬רפסמ םישוגה םיליכמה תורוש)תומושר( ‏‪IOV‬‬ ‫*‬

‫‪ ,8-‬לדוג המושר תחא ‪,‬זלש ‪.‬םיתבב‬

‫‏‪,84)/ e‬ת ‪ -‬רפסמ םיכרעה םינושה ‏‪ N‬הזמ הנוכתב ‪". 4‬סחיב‬ ‫המגוד‪11.5:‬בשחנ המכ תושיג קסידלתושרדנ לכב דחא םימתירוגלאהמ ואבוהש‬ ‫המגודב‪ 11.4.‬םתירוגלאב ןושארה שי אורקל תא לכ תומושר סחיה‪ //08.‬רפסמ‬ ‫תושיגה קסידל אוהאופא‏‪bean‬‬ ‫םתירוגלאה ינשה ססובמ לע שומיש ‪.‬סקדניאב שי אוצמל תא ךרעה ‏”‪nB-soft‬‬ ‫‪.‬סקדניאב חיננ םייקש סקדניא להונמהץעב‏‪ B+‬םערטמרפ‏‪ .n=100‬רפסמתושיגה‬ ‫קסידל תושורדה תאיצמל ךרע סקדניאב אוה הבוגכ ץעה ךרואה( לש‪).‬ףנע רפסמ‬ ‫םיכרעההדשב שופיחה הרקמב הז אוה‪0/10)".(10,087‬מ‪ 1‬ץעה הובג רתוי לככ‬ ‫םיתמצהש לעב םיאלמ ‪.‬תוחפ תמוצ וניא לוכי ליכהל תוחפ ‪-‬מ |‪, | 2/₪‬םיעיבצמ‬ ‫ןכלו הרקמב‪,‬עורגה הבוג לעה היהי ‪(08/0‬‏‪(Vichient_id,‬ז‪₪‬ה‪1.‬ספ‬ ‫רחאל תאיצמךרעה סקדניאב םא(‪),‬אצמנ שי אורקל ןמ קסידה תא ‏‪ DI‬תומושרה‬ ‫תושורדה ‪,‬האצותל יפל םיעיבצמה לסב אצמנש שופיחב ‪.‬םדוקה םא חיננ יכ‬ ‫םיכרעה םינושה םיגלפתמ ןפואב דיחא הנוכתב‏‪ client_1id‬יזא רפסמ תורושה‬ ‫האצותב היהי‏)‪. / Vichient_idcall‬םו‬ ‫המגודב‪ 10.1‬ונגצה תא םינותנה םיאבה רובע סיסב םינותנה לש תוינפ ‪:‬תוינופלט‬ ‫‪1‬‬ ‫‪₪1‬‬ ‫‪50‬‬ ‫‪Nproblem_solving‬‬ ‫‪= 20‬‬ ‫‪=0‬‬ ‫‪Nmapping‬‬ ‫‪=0‬‬ ‫‪Nhandling‬‬ ‫ומכ ןכ חיננםעפה ‪:‬יכ‬ ‫‏‪V (client_id,call) = 0‬‬

‫‪@286‬תוכרעמיסיסבםינותנ‬ ‫ולדוג לש לכ שוג אוה‪. (4,0964%.‬םיתבשמתשנ‪-4,000‬ב ךרוצל‪).‬תוכרעהה חיננ‬ ‫‏‪ .(Scan‬הרקמב הז‪ - 3000‬םוו‬ ‫יכ בחור לכ המושר ‪//04‬סחיב אוה‪. 80‬םיתב‪= (80‬‬ ‫‪.‬םישוג יפל םינותנ ‪,‬הלא םתירוגלאב ןושארה ושרדיי‪ 3,000‬תושיג ‪.‬קסידל‬ ‫םתירוגלאב ‪,‬ינשה רפסמ תושיגה קסידל תאירקל םיתמצ ץעב ‪ *₪‬היהי‬ ‫‏‪ logso(lo,oofl=3‬םאשרושה ןסחואמ ןורכיזב ימינפה וקיפסי וליפא ‪).2‬תושיג‬ ‫םא רפסמ תוינפה לש לכ חוקל הווש תוחפ וא ‪,‬רתוי יזא רפסמ תומושרה והילא‬ ‫עיבצמ לסה םיאתמה ‪:‬אוה‬ ‫‪nean/Vichient_idcall)= 150,000‬‬ ‫‪/ 10,000= 5‬‬ ‫םא חיננ תחאלכיכ תומושרהמ וללה תנסחואמ שוגב ‪,‬רחא רפסמ תושיגה ללוכה‬ ‫שרדייש ידכ תונעל לע התליאשה םתירוגלאב ינשה אוה לכל רתויה ‪ 18‬םא(‬ ‫העבצהה איה לסל לש םיעיבצמ ‪ -‬יזא לכל רתויה‪ 19).‬םתירוגלאה ינשה ליעי‬ ‫אופא יפהלעמל‪-150‬מ ‪.‬ןושארהמ‬

‫תכרעה לדוג‬

‫האצותה‬

‫םרוג ףסונ שיש איבהלןובשחב אוה לדוג סחי ‪.‬האצותה םא םירמוש תא האצותה‬ ‫‏‪, DY‬קסידה ךירצתשגל קסידל םג ידכ בותכל תא תומושר סחי ‪,‬האצותה ןכלו לככ‬ ‫האצותהש הלודג רתויתושרדנ רתוי ‪.‬תושיג‬ ‫לדוג הז וניא יטנוולר ךרוצל האוושהה ןיב םימתירוגלא םינוש םיעצבמה הלועפ‬ ‫‪,‬תדדוב יפכ ונישעש ‪,‬ליעל ןכש סחי האצותה דיחא ‪,‬םלוכב ןכלו רפסמ תושיגה‬ ‫תביתכל האצותה ההּז ‪.‬םלוכב אוה ךפוה תויהל יתועמשמ רשאכ םיבשחמ‬ ‫התליאש תבכרומה המכמ ‪,‬תולועפ יסחיו האצות םימיוסמ םישמשמ תואצות‬ ‫‪.‬םייניב תושיגהתושרדנה ןוסחאל תואצות םייניבהתועיפשמ לע תוליעי בושיחה‬ ‫‪,‬ללוכה יפכהארנש‪.‬ךשמהב‬ ‫המגודב הנורחאה ונכרעה יכ רפסמ תומושר האצותה אוה‪ 15.‬םג םא םינסחאמ‬ ‫תא תומושרה ‪//04‬לש ‪,‬ןאולמב ןתינ ןסחאל תא ןלוכ שוגב ‪.‬דחא‬ ‫ןלהל ראתנ רחבמ לש םימתירוגלא בושיחל תולועפ ‪,‬תוירבגלא ךותמ‬ ‫םימתירוגלאה םיראותמה ‪.‬רפסב רחא ךכ ןחבנ םיכרד לולכשל יצע יוטיב רובע‬ ‫תותליאש ‪,‬תובכרומ םבושיחש שמתשמ ופוסב לש רבד םימתירוגלאב בושיחל‬ ‫תולועפה ‪.‬תויסיסבה‬

‫ךירדמהדימלקרפל‪| 11‬דוביעתותליאש ‪287 %‬‬ ‫םימתירוגלא‬

‫בושיחל‬

‫םירוטרפוא‬

‫םיירבגלא‬

‫םילדבהה ןיב םימתירוגלא םינוש םיעצבמה התוא הלועפ םיעבונ שומיממ הנוש‬ ‫לש םיסחיה ‪.‬םימיאתמה‬

‫תלועפ הריחב םע יאנת‬

‫ןויווש‬

‫המגודב‪ 11.4‬וגצוה ינש םימתירוגלא םינוש בושיחל תלועפ ‪,‬הריחב רשאכ יאנת‬ ‫הריחבה היה ןויווש ךרעל ‪.‬עובק ןלהל רוקסנ המכ םימתירוגלא םיירשפאהלועפל‬ ‫‪.‬וז ןמסנ תא תלועפ הריחבה‏‪ DY‬ידי )‪6, 2‬א= ‪,‬רמולכ סחי טלקה אוה ‪,‬ז הדש‬ ‫שופיחה אוה ‪ 8,‬עובקהו וילאש םיוושמ אוה ‪.‬ס‬ ‫םתירוגלא יסמ ‪ - 1‬הקירס ‪.‬תיתרדס והזהשעמל םתירוגלאה ןושארה המגודב‬ ‫‪ 4‬םיארוק תא לכ תומושר‪,‬ל*בוקה לכלו הרוש םיקדוב םא יאנת הריחבה‬ ‫‪.‬םייקתמ םתירוגלא הז וניא חינמ םוש תוחנה ‪,‬תומדקומ אל יבגל שומימ *בוקה‬ ‫אלו יבגל ‪.‬םיסקדניא‬ ‫רפסמ תושיגה שרדנה ‪:‬םתירוגלאב יפכ וניארש‪,‬המגודב רפסמ תושיגה ‪.‬ט‪,‬אוה‬ ‫םא אל ןותנתומושרש ץבוקה תונסחואמ‪,‬תופיצרב ‪ ,0‬הווש =‪2‬‬ ‫םתירוגלא *סמ ‪ - 2‬שופיח ‪.‬ירניב םתירוגלא הז ססובמ לע‪,‬החנהה תומושרש‬ ‫לבוקה גציימה זתא תוניוממ יפל הנוכתה ‏‪ A‬ןהו תונסחואמ תופיצרב לע ‪.‬קסידה‬ ‫החנהב ‪,‬וז םא םיעדוי תא תבותכהלחתהה לש ‪,‬ץבוקה תא רפסמ תומושרה תאו‬ ‫בחורה לש לכ ‪,‬המושר רשפא בשחל תא תבותכ שוגה ובש תאצמנ המושרה‬ ‫‪,‬הנורחאה ‪,‬תיעצמאה ןכו ‪.‬האלה‬ ‫רפסמ תושיגה שרדנה ‪:‬םתירוגלאב שופיח ירניב ךרעמב ןיוממ ןב ‏‪ N‬םירביא‬ ‫שרוד לכל רתויהחסָאןאך ‪.‬תושיג שופיח ירניב *בוקב ןיוממ שרוד רפסמ ‏‪MY‬‬ ‫‪,‬המוד ךא ןוויכמ לכבש םעפ ונא םיקדוב ‪,‬שוג א הרקמב הז אוה רפסמ ‪,‬םישוגה‬ ‫‏‪ by‬ןכל דע תאיצמלךרעה ןושארה תושורד‬ ‫ח)וָאן)]ו‪(-,‬ך‪.‬תושיג‬ ‫םא ‏‪ A‬אוה‪,‬חתפמ והזרפסמתושיגה‪.‬שורדה םא שי ץבוקב תומושר תופסונןהבש‬ ‫‪ 0,‬ןכתיי היהיש ךרוצ אורקל דוע ‪.‬םישוג ןוויכמ ץבוקהש ‪,‬ןיוממ םישוג הלא‬ ‫םינסחואמ הזב רחא ‪.‬הזהחנהב םיכרעהשםיגלפתמ ןפואב ‪,‬דיחא רפסמ םישוגה‬ ‫םיליכמה תומושר ןהבש ‪ 0=\/‬אוה עצוממב | ‏‪1./,8 VA, A‬‬

‫בושיחבתובותכהשי‬ ‫תחקלןובשחבדוע‬ ‫‪,‬םינותנומכןפוארודיס‬ ‫תומושרה‪.‬םישוגבךא‬ ‫ונניינעלקיפסמתוארל‬ ‫םתירוגלאשהזכ‪.‬ירשפא‬

‫‪8‬פ תוכרעמיסיסבםינותנ‬ ‫םתירוגלא יסמ ‪ - 3‬שומיש ‪.‬סקדניאב והז םתירוגלאה ינשה המגודב ‪11.4.‬‬ ‫סקדניאהרשפאמ אוצמל תורישי תא תובותכה לשתומושרה תואלממה תא יאנת‬ ‫‪.‬הריחבה‬ ‫רפסמ תושיגה שרדנה ‪:‬םתירוגלאב החנהב סקדניאהש שמוממ לע ידי‏‪+8, XY‬‬ ‫רפסמ תושיגה שורדה תאיצמל ךרעה ס סקדניאב ומצע אוה הבוגכ ‪.‬ץעה רובע‬ ‫רטמרפ‪,‬וג הבוג עה אוה |רתויהלכל ‪ 8‬‏‪|.logra21(VIA,‬‬ ‫רחאל ונאצמש תא ךרעה ‪,‬סקדניאב שי אורקל םג תא תומושרה ‪.‬ןמצע ןאכ שי‬ ‫המכ םיבצמ ‪:‬םיירשפא‬ ‫* םא א אוהחתפמ ‪1‬לש ‪ ,‬השורד דוע השיג תחאדבלב ידכ אורקל תא תמושר‬ ‫‪.‬האצותה‬ ‫* םא ‏‪ A‬וניא‪,‬חתפמ ‏‪ TR‬סקדניאה אוה סקדניא ‪,‬ישאר ‪,‬רמולכ ץבוקה ןיוממ‬ ‫יפל ‏‪ ,A‬רפסמ תושיגה ףסונה אוה רפסמכ םישוגהםהבש תונסחואמ תומושר‬ ‫תוליכמה ךרע ההז ‪-8.‬ב וניאר םדוק יכ רפסמ הז אוה ‪-‬כ ‏)‪b7 V(A1‬‬ ‫* םא א וניא חתפמ סקדניאהו אוה סקדניא ‪,‬ינשמ יכ זא תומושר תולעב ךרע‬ ‫ההז הנוכתב ‪ 8‬תולולע תויהל תונסחואמ םישוגב םידרפנ ‪.‬ןיטולחל הרקמב‬ ‫‪,‬הז רפסמ תושיגה ףסונ( לע רותיאה סקדניאב השיגלו לסל םיעיבצמ הדימב‬ ‫)םייקו היהי‏‪/0 V(A D‬‬

‫תלועפ הריחב םע יאנת‬

‫האוושה‬

‫םוחתל >‪(95call ₪ handling‬‬ ‫‪//04‬רשאכ האלולב ‪:‬תינוציחה‬ ‫‪ 0,‬ןכלו רפסמ םירוזחמה לש האלולה תינוציחה אוה‬ ‫‪ 150,000.‬רפסמ‬ ‫םיכרעה םינושה סחמ ‏‪ handling‬הנוכתב תפתושמה ‏‪ call_id‬אוה‬ ‫‏‪ . V(call_id handling) = 0‬םא *עב שמממה תא סקדניאה‪,‬ם=‪ 100‬יזא‬ ‫הבוג צעה יפכ( רבכש ונבשיח תואמגודב )תומדוק אוה ‪ 3.‬רפסמ תומושרה ‪-‬ב‬ ‫‏‪ oYhandling‬ךרע ההז‏‪ call_id-2‬אוה‪ 774‬עצוממב‬ ‫‪ (350,000/150,00).‬ןכל ךירענ‬ ‫תא רפסמ תושיגה קסידל לכב רוזחמ לש האלולה תימינפה‪-574‬ב ‪:‬עצוממב ‪3‬‬ ‫תושיג תומושרל סקדניאה ‪-2%‬ו תומושרל ‪.‬לבוקה םילבקמ ךסב‏‪ Y9N‬בורק ‪-‬ל‬ ‫‪ 0‬תושיג ‪,‬קסידל רפסמ ןטק יפ הלעמל‪-65,000‬מ תמועל םתירוגלאה‬ ‫‪.‬יסיסבה‬

‫בושיח ףוריצ ןיב‬

‫םיסחי‬

‫םיניוממה יפל‬

‫הדומעה‬

‫תפתושמה‬

‫םתירוגלאהונגצהש אלליעל חינה םיסחיהש ‪.‬םיניוממ םא םיאיבמןולימ‪,‬ןובשחב‬ ‫רפסמתושיגהשורדה‬ ‫רפסמ תושיגהעצבמש םתירוגלא הז ןטק‪.‬הברהב‬ ‫תאירקל לכ‬ ‫תומושרה‬ ‫‏‪call-a‬אוהשכןיוממאוה‬ ‫‪.‬סקונכרעהרבעבבחורש‬ ‫םא חיננ יכ קר סחיה ‏‪, handling‬ןיוממ ירה לכש עיבצמ ץעב ליבוי שוגל דחא המושראוה‪,80‬םיתב‬ ‫ונחנהו יכשוגלכלדוג‬ ‫‪,4000‬םיתב ןכלו‬ ‫‪,‬דבלב אלו‪-274‬ל ‪,‬עצוממב ןכש לכ תומושרה תולעב ךרע ההז הדשב ‏‪ call_id‬אוה‬ ‫‪-150,000‬לתומושר‬ ‫תואצמנ ותואב ‪.‬שוג ןכל ושרדיי‬ ‫‪.2000‬םישוג‬ ‫‏)‪, nex(logln2TIVIA,8)+1‬ט‪ +,‬רמולכ הרקמב‏‪ MY‬םישורד‬ ‫‪. 0‬תושיג םא חיננ יכ קר סחיה ‏‪, call‬ןיוממ רבדה םצמצי קר תא רפסמ‬

‫‪4‬פ תוכרעמיסיסבםינותנ‬ ‫תושיגה ‪04/7,‬ל היהיש‪ 3000,‬םוקמב‪ 150,000.‬רפסמ תושיגה האלולב תימינפה‬ ‫היהי ומכ אלל ‪,‬ןולמ ןוויכ ונאש םינופ סקדניאל רובע לכ‪,‬המושר אלו רובע ‪.‬שוגלכ‬ ‫ןכל ‪:‬לבקנ‬ ‫‪ , 3000+150,000*5%4‬םהש‬ ‫‪. 803,000‬תושיג‬ ‫םא ינש םיסחיה ‪,‬םיניוממ ןיא ללכ ךרוצ סקדניאב האלולבו ‪.‬תימינפ םתירוגלאה‬ ‫בושיחל ףוריצה לוכי עצבל גוזימ לש ינש םיצבקה ךות ‪,‬םתקירס תונבלו וכלהמב‬ ‫‏‪. + Bprandiing‬שו‬ ‫תא תורוש ‪.‬האצותה רפסמ תושיגה ושרדייש הרקמב הז אוה‬ ‫‏‪bhandling‬‬ ‫ונכרעה ליעלתא‏‪-3,000beay‬ב ‪.‬םישוג קרפב‪ 10‬המגודב‪ 10.2‬ונכרעה תא‬ ‫‪. 35,0000‬םישוג תחת תוכרעה הלא לבקנ תולעש ףוריצה סיאנתב הלא איה‬ ‫‪. 0‬תושיג‬ ‫רשפא תוארל רשאכש םיסחיה םיניוממ יפל הנוכתה תפתושמה לבקתמ‬

‫ב‬

‫םתירוגלא ליעי יפ המכ תמועל םימתירוגלאה ‪.‬םירחאה רבתסמהברהש םימעפ‬ ‫גוזימ‪-‬ןוימ‪-‬ףוריצ‬ ‫יאדכ ןיימל תא םיסחיה קר ךרוצל בושיח !ףוריצה םתירוגלאהשועש תאז ארקנ ‏‪sort-merge-‬‬ ‫‏‪join‬‬ ‫‪.‬גוזימ‪-‬ןוימ‪-‬ףוריצ אל ןודנ וב ‪,‬ןאכ אוהו אל לולכ רמוחבהבוחש םכילע‪.‬תעדל םע‬ ‫תאז ץלמומ אורקל וילע‪,‬רפסב ףיעסב‪15.5.4.‬‬

‫תכרעה לדוג‬

‫האצותה‬

‫תלועפב ףוריצ‬

‫ןנובתנ ינשב ‪,‬םיסחי )‪-(59. (8‬ו םא ‪,‬אורפ=ש( יכ זא ףוריצה ‪ 4‬א ז והומכ‬ ‫הלפכמכ תיזטרק ןיב ינש ‪,‬םיסחיה ןכלו רפסמ תורושה האצותב היהי‪..‬ם‪,‬אמ‪,‬‬ ‫םא ‏‪ RNS‬אוה חתפמ לש דחא ‪,‬םיסחיה ‪,‬תלשמל יזא ונא םיעדוי לכש הרוש‪-5‬ב‬ ‫ףרוצת לכל רתויה הרושל תחא ‪ 72‬‏‪ NI,‬רפסמ תורושה היהי לכל רתויה רפסמכ‬ ‫תורושה‪-5,‬ב‪,‬ונילהד ‪.‬ם‪.‬‬ ‫םא ‏‪ RS‬וניא קיר וניאו חתפמ לש דחא ‪,‬םיסחיה םישמתשמהחנהב םיכרעהש‬ ‫םינושהםיגלפתמתוגלפתה ‪.‬הדיחא םא ‪)/8,‬רפ=‪ 4‬בו םייקתמ ‪,8)",‬ת=ומ ירה‬ ‫רפסמש תורושה זלש תולעב ךרע ההז ‏‪ A-2‬ךרעומ לע ידי ‏‪ .(n/V(A,D) nym‬לכ‬ ‫הרוש לש ‪ 5‬ףרטצת אופא לכל רתויהת‪,4)\%/‬ת‪-‬ל תורוש זלש תריציל תורוש‬ ‫‪.‬האצותב לע יפ לוקיש הזרשפא ךירעהל תא רפסמ תורושה האצותב לע ‪:‬ידי‬ ‫‪ 0‬את‪,‬ת‬ ‫)‪V(A,r‬‬

‫ךירדמהדימלקרפל‪| 11‬דוביעתותליאש ‪295 6‬‬ ‫םתוא םילוקיש רשפא ליעפהל רובע הרקמה לש יפוליח םידיקפת ןיב* ‪-5.‬ו םא‬ ‫‪,‬ת ‪ 84,9א ‪6‬‬ ‫םיפוריצ לכמ( )גוס תולפכמו תויזטרק םה ‪:‬םייפוליח‬ ‫‪1905= 500 r‬‬ ‫ףוריצ יעבט הלפכמותיזוטרק םה ‪:‬םייצוביק‬ ‫‏‪(rx 9 40= rxX(sX g‬‬ ‫םא לכ תונוכתה יאנתב הריחבה תוכייש קר דחאל ‪,‬םיטנמוגראה תלועפ‬ ‫הריחבה איה תיביטובירטסיד סחיב ‪:‬ףוריצל‬ ‫‪001(r™Xe‬‬ ‫‪s)= )001)0(Mos‬‬ ‫‪,‬ןאכ טנמוגרא ‪‎‬הז‬

‫‪RN‬‬

‫דוחיא ךותיחו ןה תולועפ תויפוליח ‪:‬תויצוביקו‬ ‫‏‪1 = 8\21; IMmS‬ל‪5‬‬ ‫‪)8‬רע =‬ ‫תור)‪8‬ר‪ (0‬ף= "ר ‏)‪ (M‬תשל)‪) =20 |(820‬תעפ‬ ‫המגוד‪ 11.9:‬רוצינ גוציי יפולח ףסונ םיצעלהמגודבש‪ 11.3.‬םעפה הארנ וזיאב‬ ‫תוליקשונשמתשה לכב ‪,‬יוניש ףאו הארנ עודמ גוציי הז אוה בוטה ‪.‬רתויב ןלהל‬ ‫בוש יוטיבה ‪,‬ירוקמה יפכלבקתהשתתליאשמ ‏‪:SQL‬‬ ‫‪1 C.call_id‬‬ ‫‪(0('.('/1'011L‬‬ ‫’‪1d=‘B-soft‬‬ ‫‪ATl.call_id=call.call_id‬‬ ‫‪Ti.call_1d=T2.call_idn‬‬ ‫‪(T1.h_dateT2.h_datev‬‬ ‫)‪T1.h_time£T2.h_time‬‬ ‫)‪handling‬‬ ‫‪(pclcalbxpril handlingYxpr2‬‬

‫ךירדמהדימלקרפל‪| 11‬דוביעתותליאש ‪297 %‬‬ ‫הליחת שמתשנ תוליקשב סמ ‪ 1‬ידכ קרפל תא יאנת ‪.‬הריחבה ומכ ‏‪ P‬ףיקנ‬ ‫םיירגוסב תא הלפכמה תיזטרקה ‪,‬הנושארה ידכ שיגדהל תא רדס בושיחה לש‬ ‫יתש ‪:‬תולפכמה‬ ‫‏‪1106 id(GC.client_id‬‬ ‫יוב‪-‬פס‪8‬י=‬ ‫‏‪(OT1.call_id=call.call_id‬‬ ‫‏)‪T1.h_time£T2.h_time‬‬ ‫\‪(O(T1.h_date#T2.h_date‬‬ ‫‪(OT1.call_id=T2.call_id‬‬ ‫)‪((pclcalbxprithandling)x pr(handling‬‬ ‫התעשמתשנ תוליקשב "סמ ‪ 2‬ידכףילחהל תא רדס תולועפ ‪:‬הריחבה‬ ‫”‪=“B-soft‬וק ‪6.‬והו ‪00‬‬ ‫‪(G(T1.h_date*T2.h_date‬‬ ‫‏)‪T1.h_time*T2.h_time‬‬ ‫‪(OT1.call_id=call.call_id‬‬ ‫‏‪(OT1.call_id="T2.call_id‬‬ ‫‏)))))‪((pc(calhxprithandling))x pr(handling‬‬

‫‪110‬‬ ‫‪₪‬ו‬

‫יוניש הז רשפאמ ונל שמתשהל תוליקשב "סמ ‪ 6,‬סחיילו תא תלועפ הריחבה‬ ‫תימינפה רתויב קרהלפכמל ‪:‬תילאמשה‬ ‫‪110catrid(OC.client_id‬‬ ‫”‪=“B-soft‬‬ ‫)‪11.0‬‏‪(O‬‬ ‫‏)‪ T1.h_time*T2.h_time‬גס ‪08010‬‬ ‫‪(OT1.call_id=T2.call_id‬‬ ‫‪\OT1.call_id=call.call_id‬‬ ‫א ‏)‪{pc(call‬‬ ‫))))‪prilhandling))x prahandling‬‬ ‫התעשמתשהללכונ תוליקשב ‪ 3791‬ידכךופהל תאהלפכמה תיזטרקהתילאמשה‬ ‫‪.‬ףוריצל והז ףוריצ ‪,‬יעבט ןכל טימשנ תא יאנת ‪:‬ןויוושה‬ ‫‏‪1106 id(GC.client‬‬ ‫”‪ =“B-soft‬ה‬ ‫‪(O(T1.h_date#T2.h_date‬‬ ‫‏)‪T1.h_time*T2.h_time‬‬ ‫‪(OT1.call_id=T2.call_id‬‬ ‫‏)‪(pclcal) 4 prilhandling‬‬ ‫‏))))‪%pr2lhandling‬‬ ‫התעשמתשנ תוליקשב "סמ ‪ 5‬תויצוביק( תולפכמ ‪):‬םיפוריצו‬ ‫‪11c.call_id(OC.client‬‬ ‫”‪id=“B-soft‬‬ ‫\‪(G(T1.h_date#T2.h_date‬‬ ‫)‪T1.h_timeT2.h_time‬‬ ‫‪(OT1.call_id=T2.call_id‬‬ ‫)‪((pc)047(X pri(handling‬‬ ‫)))‪x prhandling‬‬ ‫‏‪ DY‬ידי שומיש רזוח תוליקשב *סמ ‪ 6,‬תויפוליחב תויצוביקבו תויוליקש( ‪-5) 6‬ו‬ ‫לכונ עיגהל הרוצל ‪,‬האבה ךופהתש תא הלפכמה תיזטרקה ףוריצל יפל ‪,‬יאנת‬ ‫דדובתו תא ‪!/04‬סחיה דצב ‪:‬לאמש‬ ‫‪1166 id(OC.client‬‬ ‫”‪id=B-soft‬‬ ‫™‪(O(T1.h_date#T2.h_date‬‬ ‫)‪T1.h_time*T2.h_time‬‬ ‫)))))‪ (PT1(handling‬א כ‪.‬ס‪=4‬וק ‪6‬וו ‪‎‬שר)‪(pc(call)™pra(handling‬‬ ‫התע ףילחנ תא רדס תולועפהריחבה לע יפ תוליקש סמ ‪2:‬‬

‫‪8‬פ תוכרעמיסיסבםינותנ‬ ‫‪]1C.call_id‬‬ ‫‪(O(T1.h_date#T2.h_datev‬‬ ‫)‪T1.h_time*T2.h_time‬‬ ‫_‪(GC.cIlbnt‬‬ ‫”‪id=“B-soft‬‬ ‫‪‎call_id="T2.call_id‬ס‪6‬דנ)‪W pra(handling‬‬ ‫‪(pc(ecalh‬‬ ‫)))))‪(pTilhandling‬‬ ‫ףוסבלשמתשנ בוש תוליקשב "סמ ‪ 6‬דימצנו תא יאנתהריחבה ‪//04‬סחיל ‪:‬דבלב‬ ‫‪116‬‬ ‫‪(O(T1.h_date#T2.h_date‬וק ‪₪‬ו‬ ‫‏)‪T1.h_time*T2.h_time‬‬ ‫‏)‪" (087)6 (pri(handling‬מ‪-‬הי ק= שש)‪00‬‬ ‫ו‬ ‫*ע יוטיבה םיאתמה יוטיבל ונלביקש ‪:‬אוה‬

‫‪081‬‬ ‫‪1‬‬ ‫‪T2.h_time‬‬ ‫‪T1.h_time+‬‬ ‫\‪T2.h_date‬‬ ‫‪T1.h_date+‬‬ ‫‪l‬‬ ‫‪4 Tl.call_id="T2.call_id‬‬ ‫‪94‬‬

‫‪‎‬קךב‬

‫‪handling‬‬

‫”‪C.client_id="B-soft‬‬ ‫‪Py‬‬ ‫‪L‬‬ ‫‪‎‬ס‪2‬‬ ‫|‬ ‫‪call‬‬ ‫‪handling‬‬ ‫‪11.10‬‬ ‫רויא‬

‫ע הז המוד ידמל ‏‪ XY‬רויאבש‪ 11.9,‬טרפ ךכלונפלחהש תא תולפכמה ‪,‬םיפוריצב‬ ‫ךכבו ונמצמצ קלח יאנתמ‪.‬הריחבה‬ ‫הסננ ךירעהל תא תולעה תללוכה לש עוציבהתליאשה יפל‏‪ XY‬הז תולעה( תדדמנ‬ ‫רפסמב תושיגה ‪),‬קסידל םא םיחינמ בושיחש ‏‪ YD‬ססובמ לע ןוסחא תואצות‬ ‫םייניב‏)‪ (materialization‬םישמתשמו םימתירוגלאב םיליעיה רתויב עוציבל לכ‬ ‫הלועפ‪.‬תדרפנ‬

‫ךירדמהדימלקרפל‪| 11‬דוביעתותליאש ‪299 %‬‬ ‫רשפא חינהל יכ‏‪MDY‬תלועפלופכשה‪.‬החינז ןיא(םילפכשמ תמאב תא ‪,‬סחיה אלא‬ ‫קר םירשקמ וילא םש)‪.‬ףסונ תא תולעתלועפהריחבהתיתחתבש ץעהרבכונכרעה‬ ‫המגודב‪ 11.5.‬םא םישמתשמ סקדניאב‏‪,|client_idYy‬רפסמ תושיגה יופצה אוה‬ ‫‪, 8.‬ףסונב שי ןסחאל תא תאצות‪,‬הריחבה ונכרעהש תא הלדוג‪-15‬כב תומושר‬ ‫‏))‪ ), near/ Viclient_id, call‬ךא ‏‪ PR‬ךרוצ בותכל רתוי שוגמ דחא ידכ רומשל‬ ‫‪.‬ןתוא דע הכ ונלביק אופא‪. 19‬תושיג‬ ‫בושיחב ףוריצה יעבטה ןיב האצות וז ןיבל‏‪ Aandling‬רשפאשמתשהל סקדניאב‬ ‫לע ‏‪|handling‬רשאכ האלולב תינוציחה םירמוש אקווד תא תאצות‪.‬הריחבה והז‬ ‫סחי ‪,‬ןטק רשפאו רומשל תא ולוכ ‪.‬ןורכיזב רפסמ תושיגה ץעל תומושרלו‬ ‫‏‪ handling‬אוה ‪-7‬כ תושיג לכל המושר לש טנמוגראה ‪.‬ינשה הרקמב הז אוה ללוכ‬ ‫‪-15‬כ ‪,‬תומושר ןכלו בושיח ףוריצה שרוד‪-105‬כ ‪.‬תושיג‬ ‫ונכרעה יכ לכלרפסמ היינפ שי‏‪-7%handling-2‬כ תומושר‪,‬עצוממב ןכלו תאצותב‬ ‫ףוריצה תויופצ‪-35‬כ ‪.‬תומושר לדוג המושרלכ אוה תצק תוחפ‪-200‬מ םיתב‬ ‫‏‪(Scarr‬‬ ‫‏‪ +. Shandling‬ןוסחאל‪ 7,000‬םיתב השורד הביתכ לש ‪. 2‬םישוג ונלביק דע‏‪126N2‬‬ ‫‪.‬תושיג‬ ‫תא ףוריצה ינשה םיבשחמ ומכ תא ‪:‬ןושארה תאירקל תומושר סחיה ןושארה שי‬ ‫עצבל‪, 3‬תושיג םישמתשמו סקדניאב רובע סחיה‪.‬ינשה לכל תחא‪-35‬מ תומושרה‬ ‫ךירצ תשגל ‪-7‬כ ‪,‬םימעפ ךסבו לכה םילבקמ‪. 245‬תושיג רפסמ תושיגה דע הכ ‪-‬‬ ‫‪1.‬‬ ‫לע יפ בושיחה ‪,‬םדוקה תאצות ףוריצה ינשה הליכמ‪-240‬כ ‪,‬תומושר לדוגש לכ‬ ‫תחא ןהמ ‪-240‬כ ‪.‬םיתב השורד אופא הביתכ לש ‪-15‬כ םישוג ידכ רומשל תא‬ ‫‪.‬האצותה‬ ‫תאתלועפהריחבההנורחאהרשפארשרשל םע ‪,‬ףוריצה עצבלו התוא ינפל תביתכ‬ ‫תאצות ףוריצה ןורחאה ןורכיזל ‪:‬ינוציחה םיבתוכ קר תורוש ןניאש תוהז ינותנב‬ ‫ךיראתה‪.‬העשהו‬ ‫‪,‬ףוסבל שי אורקל‪ 15‬םישוג הלא ידכ עצבל תא תלועפ הלטהה ‪.‬הנורחאה רפסמ‬ ‫תושיגה ללוכה שורדה בושיחלהתליאשה אוה אופא‪401.‬‬

‫‪0‬ף תוכרעמיסיסבםינותנ‬ ‫רפסמ הז יאדווב ןטק רפסממ תושיגה ונייהש םילבקמ לכב ךרד התייהש תללוכ‬ ‫בושיח לש הלפכמ ‪,‬תיזטרק ןכו לכמ בושיח לש ףוריצ היהש עצובמ ינפל תלועפ‬ ‫הריחבה ונעציבש ‪.‬הנושאר‬ ‫םוכיסל המגוד וז גיצנ תאלדבהה ןיב ןוסחא תואצות םייניברושרשל‪.‬תולועפ ידכ‬ ‫לבקל תא האצותה תיפוסה לש התליאשה שי עצבל הלטה לע הנוכתה‪[/08. 10‬‬ ‫הטישב לש ןוסחא תואצות ‪,‬םייניב תאצות םייניבההנורחאההלטההיינפל הליכה‬ ‫‪. 0‬תורוש ונסחא ןתוא‪-15‬ב ‪,‬םישוג רחאו ךכ ונארק תא םישוגה הלאההרזחב‬ ‫‪.‬ןורכיזל‬ ‫םוקמב בותכל קסידל לכ תחא‪-240‬מ תורושה לש תאצות ‪,‬םייניבהרשפאריבעהל‬ ‫התוא טלקכ םתירוגלאלבשחמה‪,‬הלטה דימ רחאל‪.‬הבשוחש םתירוגלא הלטהה‬ ‫הנוב סחי האצות‏‪ DY‬ידי תאצוה ךרעה לש ‏‪ call_id‬לכמ תחא תורושמ ‪,‬טלקה‬ ‫ותפסוהו הרושכ השדח ‪.‬האצותל ךכ ןתינ ךוסחל תא ‪ 30‬תושיגה תושורדה‬ ‫התביתכל התאירקלו לש תאצות ‪.‬םייניבה‬

‫תעיבק‬

‫תינכות עוציב‬

‫ךילהתה ונראיתש ליעל תריציל‏‪ XY‬יוטיב יפולח היה ילמרופ ‪,‬עגיימו ןכתייו יכ‬ ‫ןפואב יביטיאוטניא ונלוכי לבקל תא ‏‪. YN‬הזה בושיח תולעה לש הפולח וז היה‬ ‫םג אוה ‪.‬עגיימ הביסה ךכל ונחרטש טרפל תא לכ םיבלשה תאו לכ תויוליקשה‬ ‫ונשמתשהש ןהב ‪,‬איה תריציש תופולחה הניאתעצבתמ לע ידי ינב ‪,‬םדא אלא לע‬ ‫ידי תנכות לוהינ סיסב ‪,‬םינותנה איהש תרסח ‪.‬היציאוטניא‬ ‫תנכות היצזימיטפואה תנחוב תופולח ‪,‬תוירשפא תקדוב תא תונימזה לש‬ ‫םימתירוגלאה ‪,‬םינושה הוושמ תויולע תעבוקו תינכות ‪,‬עוציב תללוכה תא רדס תינכותעוציב‬ ‫‏‪execution‬‬ ‫בושיחה *ע( ‪),‬וטיבה תאו םימתירוגלאה ועצביש לכ ‪.‬הלועפ שי תונכות ףאש ‏‪plan‬‬ ‫תוושמ ןיב תורשפאה עצבל תא בושיחה ךות ןוסחא תואצות ‪,‬םייניב ןיבל‬ ‫תורשפאה ןעצבל ךותרושרש‪.‬תולועפ‬ ‫םלואו תריצי לכתופולחה‪,‬תוירשפאה ללוכ תופולח תונוש םימתירוגלאל לכב *ע‬ ‫‪,‬יוטיב בושיחו רפסמתושיגה ללוכה לכבהפולח הלולע תויהל תכשוממ לכ ‪,‬ךכ דע‬ ‫אלש גישת תאהתרטמ ‪ -‬לועיי ךילהת ‪.‬בושיחה‬ ‫תחא םיכרדה םוצמצל רפסמ תופולחה תוקדבנה הסנמ "תנכתל" תא‬ ‫היציאוטניאה תישונאה בלשלו התוא הנכותב תועצמאב יללכ" ‪,‬ייעבצא וא‬

‫ךירדמהדימלקרפל‪| 11‬דוביעתותליאש * ‪301‬‬ ‫‪.‬תוקיטסירוי םיללכה םיירקיעה םיאטבמ םילוקיש ונשמתשהש םהב ןפואב‬ ‫יביטיאוטניא לכב תואמגודה ‪,‬קרפב םיססובמו הדימב הבר לע החנהה‬ ‫םישמתשמש ןוסחאב תואצות ‪.‬םייניב הרטמה תירקיעה איה ןיטקהל לככ‬ ‫רשפאה תא תואצות ‪:‬םייניבה‬ ‫‏‪ e‬שי עצבל תולועפ הריחב םדקומ לככ ‪.‬רשפאה ‪,‬רמולכ םארשפא עצבלתלועפי"'םסדקומי' ‪-‬הנווכהרדסב‬ ‫‪.‬בושיחה םאםילכתסמ‬ ‫הריחב לע דחא םיטנמוגראה לש הלועפ ‪,‬תירניב שי תושעל תאז ינפל בושיח ‏‪DY‬ץע‪,‬יוטיבייסדקומיי‬ ‫היהיבורקרתוי‪.‬םילעל‬ ‫הלועפה‪.‬תירניבה‬ ‫* שיבשחל תולטה םדקומ לככ‪.‬רשפאה‬ ‫* שי בשחל הליחת םיפוריצ וא( )תולפכמ םתאצותש הנטק ‪.‬רתוי םא תאצות‬ ‫ףוריצ דחא איה טלק ףוריצל ‪,‬ינש יזא לככ האצותהש היהת הנטק ‪,‬רתוי‬ ‫ףוריצה ינשה היהי לוז ‪.‬רתוי‬

‫הרודהמתימינפ‬ ‫אלהצפהלאלוהריכמל‬ ‫‪20277-5276‬‬ ‫ט"קמ‬