- תרגיל מסכם SQL תרגיל זה מסכם את כל החומר הנלמד במודול.SQL התרגיל המחולק ל- 5 חלקים: שאלות תיאורטיות וביצוע פעולות שונות ב- Database #C חיבור לפרויקט - SQL Lite וביצוע פעולות שונות ב- Database #C חיבור לפרויקט - SQL - Entity Framework יצירת,Database חיבור לפרויקט #C באמצעות EF וביצוע פעולות. C# ושאילתות, וחיבור לפרויקט Stored Procedures כתיבת - PostgreSQL.1.2.3.4.5 השאלות בתרגיל יתחלקו לשלושה רמות קושי: רגילה מתקדמת אתגר בסיום המבחן יש להעלות את כל הקוד ל- Git. כמו כן יש לבצע Export ל- Databases ולהעלות ל- Git. בהצלחה!
חלק - 1 שאלות תיאורטיות 1( א. מהו?POCO מדוע חשוב לממש Equals עבור מחלקה זו? ומדוע חשוב לממש? HashCode 2( א. מהו?Primary Key האם PK תמיד יהיה ייחודי? האם ניתן להגדיר PK המורכב מיותר משדה אחד? אם כן, תן דוגמא. אם לא, נמק מדוע לא. ב. מהו?Foreign Key האם FK תמיד יהיה ייחודי ג. הסבר את ההבדל בין היחסים:, 1:1 many. many to many,one to ד. מהו?UNIQUE כיצד נגדיר UNIQUE ב-? MSSQL 3( מדוע כדאי להשתמש ב- Procedure? Stored 4( מה תפקיד ה- String?Connection היכן בפרויקט כדאי לאחסן אותו? 5( לפניך ארבעה סוגי.Join הסבר מה כל אחד מהם עושה: Inner Join Full Outer Join Left Join Right Join 6( מהו LINQ ומדוע כדאי להשתמש בו? 7( מהו? Logger מדוע כדאי להוסיף לוגים לפרויקט כשעובדים עם? Database 8( *אתגר: מהו )Disaster recovery( DR? כיצד ניתן להתמודד עם מצב שכזה לדעתך? 9( מהו?partition by מדוע כדאי להשתמש בו? תן דוגמא... )רמז: ניתן להשתמש ב- ) RowNumber
SQL Lite חלק - 2 )1 שים לב: שאלה זו יש לפתור באמצעות + SQL Lite חובה בפרוייקט ה - #C לייצר קובץ קונפיגרוציה בפורמט Logger כפי שנלמד בכיתה + חובה לייצר JSON במשרד הרישוי הממשלתי, יש מאגר נתונים ובו רשימה של כל המכוניות הרשומות )Cars( וכל מבחני הרישוי שבוצעו )Tests( ב( צור פרויקט Console ב-# C וחבר אותו ל- Database עם פעולות בסיסיות : Get Add Update Delete ג( הוסף ל- DAO פונקציה שמושכת מן ה- Database את כל הרכבים השייכים ליצרן )Manufacturer( מסוים, לפי פרמטר שמתקבל בפונקציה. ד( הוסף פונקציה נוספת המציגה את כל המבחנים ביחד עם המידע על המכוניות )השתמש ב- Join (.
SQL חלק 3 SERVER שים לב: שאלה זו יש לפתור באמצעות MS-SQL של מיקרוסופט + חובה בפרוייקט ה - #C לייצר קובץ קונפיגרוציה בפורמט JSON כפי שנלמד בכיתה + חובה לייצר Logger )1 בקניון העירוני יש מאגר נתונים ובו רשימה של כל החנויות )Stores( בקניון, וכל קטגוריות הצרכנות )Categories( - לדוגמא: בגדים, ספרים, אלקטרוניקה וכו' שים לב: שדה Floor ב- Stores מציין את הקומה בה נמצאת החנות. ב( צור פרויקט Console ב-# C וחבר אותו ל- Database עם פעולות בסיסיות: GetAll GetById Add Update Delete ג( הוסף ל- DAO פונקציה שמושכת מן ה- Database את כל החנויות השייכות לקטגוריה מסוימת, ונמצאות בקומה מסוימת, לפי הפרמטרים שמתקבל בפונקציה. ד( הוסף פונקציה המציגה את הקטגוריה Name( ו- ID ( שלה יש הכי הרבה חנויות בקניון. )רמת קושי: מתקדמת )
Entity Framework חלק - 4 )1 שים לב: שאלה זו יש לפתור באמצעות SQL Server עם. Entity Framework במשרד הפנים יש מאגר נתונים המכיל רשימה של כל ערי ישראל )Cities( ומחוזות )Districts( - לדוגמא: מחוז מרכז, מחוז צפון, וכו'... )השאר את שדה Population ב- Cities ריק( ב( צור פרויקט Console ב-# C וחבר אותו ל- Database )באמצעות.)Entity Framework ממש מחלקת DAO עם פעולות בסיסיות: שים לב: לצורך מימוש הפתרון של סעיפים ג' ו-ד' השתמש ב- LINQ אל תשכח לקרוא לפונקציה Save Changes בסיום כל שינוי. Get GetById Add Update Delete ג( הוסף ל- DAO פונקציה שמושכת מן ה- Database את כל הערים בהן יש יותר ממספר תושבים מסוים, לפי פרמטר הנשלח לפונקציה. ד( הוסף פונקציה שממלאת את שדה Population בטבלת Districts בכל השורות. לשם כך יהיה עליך לסכום את כמות האוכלוסייה בכל הערים בכל מחוז )רמת קושי: מתקדמת ) ה( הוסף פונקציה המביאה את רשימת הערים באמצעות LINQ Query Syntax
PostgreSQL חלק - 5 )1 שים לב: בחלק זה עליך לעבוד עם + PostgreSQL חובה בפרוייקט ה- #C לייצר קובץ קונפיגרוציה בפורמט Logger כפי שנלמד בכיתה + חובה לייצר JSON אנא צור את שמות הטבלאות והעמודות באותיות קטנות )כדי להימנע ממרכאות...( בחברת בנייה יש מאגר נתונים המכיל מספר טבלאות: עובדים )Workers( תפקידים )Roles( אתרי בנייה )Sites( עבור כל עובד במאגר, נשמר מספר הזיהוי,)ID( שם,)Name( טלפון,)Phone( משכורת,)Salary( תפקיד )Role_ID( ואתר הבנייה בו הוא עובד.)Site_ID( )השאר את שדה Salary ב- Workers ריק( בסעיפים הבאים, יהיה עליך ליצור Stored Procedures לפי הדרישות הבאות: ב( צור SP שמציג את רשימת העובדים המלאה ביחד עם שם התפקיד של כל עובד. ג( צור SP שמציג את אתר הבנייה בו יש הכי הרבה עובדים. )רמת קושי: מתקדמת ) ד( צור SP שמציג את כל העובדים המשויכים לאתר בנייה מסוים )לפי פרמטר(
ה( צור SP שבודק באמצעות IF עבור כל עובד מה התפקיד שלו )Role_ID( - אם הוא - 1 הכנס לו משכורת )Salary( של 20,000, אחרת - הכנס למשכורת מספר אקראי בין 5,000 ל- 10,000. )רמת קושי: מתקדמת ) ו( צור SP המציג את השכר הממוצע של העובדים לפי תפקיד )Role_ID( מסוים - לפי פרמטר. )רמת קושי: אתגר ) ז( צור SP המציג את הממוצע של מספר העובדים בכל אתר בנייה )רמת קושי: אתגר ) ח( צור SP שמקבל מספר אתר בנייה,)Sites.ID( מעביר את כל העובדים שבו לאתר אחר )אקראי( ומוחק את האתר הזה. )רמת קושי: אתגר ) ט( צור SP שרץ על כל העובדים )בלולאה( ומוסיף להם 500 למשכורת )רמת קושי: מתקדמת ) י) כעת צור פרויקט #C וחבר אותו ל- Database. כתוב פונקציה הפונה לאחד מן ה- SP שכתבת קודם, ומפעילה אותו. המשך בעמוד הבא...
)2 באתר IMDB יש מאגר נתונים המכיל מספר טבלאות: סרטים )Movies( ז'אנרים )Genres( שחקנים )Actors( עבור כל סרט במאגר, נשמר מספר הזיהוי שלו,)ID( השם שלו,)Name( התאריך שבה הוא יצא. )Genre_ID( והז'אנר שלו )ReleaseDate( באמצעות הטבלה Movies Actors ניתן לדעת אילו שחקנים שיחקו באיזה סרטים. שים לב: בשאלה זו אין להשתמש ב- Procedure,Stored השתמש בשאילתות רגילות בלבד. ב( צור פרויקט Console ב-# C וחבר אותו ל- Database עם פעולות בסיסיות: Get GetById Add Update Delete ג( הוסף ל- DAO פונקציה שמושכת מן ה- Database רשימה של כל הסרטים בהם השחקן הראשי נולד לפני 1972. )רמת קושי: מתקדמת ) ד( הוסף פונקציה המביאה רשימה ובה הסרט הראשון שיצא בכל שנה. )רמת קושי: אתגר ) ה( *אתגר: הוסף פונקציה המביאה את השחקן ששיחק בהכי הרבה סרטים.