PracticU

מפתח זר בטבלה

בלי כתוביותעם כתוביות
PracticU › קורס BI - ניתוח מסדי נתונים - Qlik Sense › מפתח זר בטבלה
מילון מושגים:
מפתח זר - עמודה בטבלה שמפנה למפתח הראשי בטבלה אחרת, ובכך יוצרת קשר בין הטבלאות.
טבלה - מבנה במסד נתונים שמאחסן נתונים בשורות ועמודות. כל שורה היא רשומה וכל עמודה היא שדה.
מפתח ראשי - עמודה או צירוף עמודות שמזהים באופן ייחודי כל שורה בטבלת מסד נתונים.
רשומה - שורה בטבלת מסד נתונים שמרכזת את כל השדות של פריט אחד, למשל כל הפרטים של לקוח יחיד.
שאילתה - בקשה למסד נתונים לשלוף, להוסיף, לעדכן או למחוק נתונים, לרוב בשפת SQL.
Join - פעולת SQL שמשלבת שורות משתי טבלאות או יותר על בסיס קשר ביניהן.

מפתח זר בטבלה
השיעור מסביר את מושג המפתח הזר (Foreign Key) ואת הקשרים בין הטבלאות, בעזרת חמש הטבלאות של בסיס הנתונים.
מפתח ראשי
לכל טבלה יש שדה ID מספר שלם, רץ וייחודי. המזהה אין לו משמעות עסקית, והוא רק מבטיח שכל רשומה מזוהה באופן חד-משמעי. בטבלת הלקוחות ה-ID הוא המפתח הראשי.
מפתח זר
בטבלת ההזמנות יש שדה CustomerID מסוג int, שמצביע על לקוח בטבלת הלקוחות. זהו מפתח זר (FK): הוא מכיל את הערך של המפתח הראשי בטבלה אחרת, וכך אפשר לדעת איזה לקוח ביצע כל הזמנה.
בשיעור מודגמת הזמנה מספר 1 עם CustomerID 85, שמצביע על לקוח מצרפת, והזמנה מספר 2 עם CustomerID 79, שמצביע על לקוח מגרמניה.
קשרים נוספים
1. order items ל-orders: השדה OrderID בשורת ההזמנה מצביע על ההזמנה. שלוש השורות הראשונות שייכות להזמנה 1.
2. order items ל-product: השדה ProductID בשורה מצביע על המוצר שנמכר.
3. product ל-supplier: השדה SupplierID במוצר מצביע על הספק שמספק אותו.
המרצה מזהיר שלא מתבלבלים בין שדות בעלי שם זהה. למשל, ה-ID בטבלת ההזמנות אינו ה-ID של הלקוח. הקשר הנכון הוא תמיד בין מפתח זר לבין המפתח הראשי שאליו הוא מצביע.
המבנה הזה הוא הבסיס לשאילתות JOIN שילמדו בהמשך.
השיעור הבא בקורס: נרמול מסד נתונים - והפרדה לטבלאות

פרקי ההרצאה: מפתח זר בטבלה

  1. 00:00

    מבוא: מבנה הטבלאות והקשרים ביניהן

  2. 00:37

    מה זה מזהה ייחודי בטבלה

  3. 01:27

    כל שורה בטבלת הלקוחות היא לקוח אחד

  4. 02:07

    דוגמה ממוקד שירות: משה כהן ומספר לקוח

  5. 02:45

    מזהים בטבלאות מקושרות

  6. 03:27

    PK ו-FK: מפתח ראשי ומפתח זר

  7. 04:40

    ההזמנה מצביעה על הלקוח שביצע אותה

  8. 05:18

    שם זהה לא תמיד אומר אותו מזהה

תמלול ההרצאה: מפתח זר בטבלה

הטקסט המלא של הדקות הראשונות בהרצאה «מפתח זר בטבלה» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    שלום וברוכים הבאים לקורס פיתוח BI שיעור מספר 5. אז בשיעור הקודם הסתכלנו וניתחנו את חמש הטבלאות שמרכיבות את הדאטה בייס שלנו של החברה המדומה ודיברנו על השדות השונים ועל הקשרים והיום אנחנו נרחיב גם על המבנה עצמו וגם על הקשרים.

  2. 00:24

    אז אם אתם זוכרים דיברנו למשל על זה שטבלת קסטומרס וטבלת אורדרס שורות ביניהם כי הזמנה היא ללקוח מסוים אז הייצוג של השדות עבור הקשר הזה הוא דרך המזהה אז בוא נדבר טיפה מה זה מזהה באופן עקרוני הדבר הכי טוב לעשות כשמקימים טבלה זה שלכל טבלה יהיה בעצם מזהה ייחודי שמזהה כל רשומה אם נחזור לדאטה בייס נתחבר מיד נראה ותחריתם את זה כבר שלכל טבלה יש שדה איי די זה מספר שלם מספר רץ מספר

  3. 01:03

    לנו את הרשומות בסדר עולה אחד שתיים שלוש וכולי בוא נפתח את הדאטה בייס נפתח את קומפייני שלנו טייבלס נלך לקסטומרס ותכף זה ייפתח הרי כל שורה בטבלת קסטומרס זה בעצם לקוח ואם כך כל מזהה של שורה בטבלת הלקוחות זה בעצם מזהה לקוח הנה מריה אנדרס קיבלה מספר 1 היא הייתה מן הסתם הראשונה שהוכנסה לטבלה הזו אחרי האנה קיבלה מספר 2 וכולי

  4. 01:44

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

  5. 01:56

    יכול להיות אותו שם פרטי, אותו שם משפחה, יכול להיות אפילו מצב שאותו שם פרטי ומשפחה יהיו לשני לקוחות שונים, אבל מספר חל להיות רק אחד.

  6. 02:07

    אם לקוח מתקשר לרכז שירות לקוחות למשל ואומר שלום אני משה כהן, הם מחפשים יכול להיות כמה משה כהן, איזה מהם מדבר איתם, אבל אם הוא אומר אני משה כהן מספר לקוח מספר 324, אה, אז יש רק אחד כזה ואפשר לפתוח את התיק שלו, ולטפל בו אז זו דוגמא אחת אז לכל רשומה בכל טבלה תמיד יהיה מזהה ייחודי שזה

  7. 02:30

    מספר בסדר רץ אם נפתח את טבלת orders אנחנו נראה שגם לטבלת orders יש מזהה וככה וככה הלאה חשוב להגיד שהמזהה הוא לא אקראי אבל הוא בעצם אין לו משמעות זאת אומרת אם מישהו קיבל לקוח מספר 1 לקוח מספר 7 זה לא אומר שום דבר עליו זה פשוט מזהה ייחודי שמזהה אותו באופן ייחודי בסדר אז זה לגבי המזהים איך מזהים קשורים לקשרים בין הטבלאות אם תשימו

  8. 02:59

    לב טבלת קסטומרס יש לה כמו שראינו ID שדה מסוג אינטג'ר מספר וטבלת אורדרס גם את זה ראינו שיש לה שדה מסוג האינט שזה ID אבל תשימו לב שיש לה גם קסטומר ID שהוא גם אינט מה המשמעות של זה בעצם בטבלת אורדרס שותלים את המספר הלקוח את המזהה של טבלת הקסטומרס ואם תשימו לב ליד ה-ID של קסטומרס בטבלת קסטומר כתוב pk,

  9. 03:31

    פריימרי k, זאת אומרת מפתח ראשי, כי בטבלת הקסטומר המזהה לקוח הוא המזהה הראשי של הטבלה, הוא מזהה את הלקוח, את התוכן של טבלת הלקוחות, ובטבלת אורדרס הקסטומר ה-ID הוא fk הוא פורום, כי הוא בעצם מפתח זר,

  10. 03:48

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

  11. 03:59

    אז אני נשאר בטבלת האורדר סליחה בטבלת האורדרס יש לי את אורדר מספר אחת אוקיי וה-Customer ID שלו הוא 85 מה זאת אומרת אם אני הולך לטבלת קאסטומר ומחפש את קאסטומר מספר 85 אני רואה שזה פול הנריות אוקיי מצרפת זאת אומרת שאת הזמנה מספר אחת ביצע אותו הנרי פול סליחה פול מצרפת אוקיי

  12. 04:30

    הבזונה מספר שתיים זה Customers 79. מי זה 79? קארין ג'וספס מג'רמניה אז המזהה של הלקוח בזה שהוא מתארח בטבלת האורדרס הוא בעצם מצביע לנו כל הזמנה מי הלקוח שביצע אותו.

  13. 04:49

    ככה זה המימוש של הקשרים בין הטבלאות שאנחנו יכולים לדעת מה הקשר הספציפי לכל רשומה בין רשומה לרשומה בין הטבלאות. זה בעצם החטא שאנחנו רואים פה. אגב יש תרשימים יותר מוצלחים שממש מראים לנו איזה שדה קשור לאיזה שדה זאת אומרת אפשר למתוח קו מהCustomerID פה ל-ID הזה.

  14. 05:12

    שימו לב לא להתבלבל ולא לקשר את ה-ID הזה ל-ID הזה אומנם יש להם את אותו שם זה קצת יכול קצת לבלבל אבל זה בכלל לא אותו ID. פה זה ID שמייצג את ה-CustomerID ופה זה ID שמייצג את ה-OrderID אין קשר ביניהם.

  15. 05:27

    הקשר הנכון הוא CustomerID לפה ל-ID בטבלת ה-Customer. אותו דבר בטבלאות האחרות. מה הקשר בין Order ל-Order Items? רואים שיש את ה-ID שזה מזהה ייחודי של שורת

לקורס המלא: קורס BI אונליין עם Qlik Sense

ההרצאה הקודמת: מבנה טבלאות

ההרצאה הבאה: נרמול מסד נתונים - והפרדה לטבלאות

הרצאות קשורות מקורסים אחרים

  • מפתח ראשי ואינדקס
  • Dataset - מפתח ראשי - Primary Key
  • יצירת מילות מפתח - לביצוע טסטים דינמיים

קורסים נוספים במסלול

  • קורס DBA אפליקטיבי - שפת SQL למתחילים
  • קורס NoSQL - MongoDB
  • קורס SSIS
  • קורס Power BI