Dataset schema — מילון מונחים | Pody
Dataset schema
Dataset schema (סכמת מערך נתונים) הוא המפרט הפורמלי המתאר את מבנה מערך נתונים — אילו שדות קיימים, סוג כל שדה (טקסט, מספר, תאריך), אילו שדות הם חובה, ומהם הקשרים ביניהם. הסכמה משמשת "חוזה" בין מי שמייצר את הנתונים לבין מי שמשתמש בהם.
איך Dataset schema עובד?
כאשר מערכת מקבלת נתונים — ממשתמש, מ-API או מקובץ CSV — היא מוודאת שהנתונים תואמים לסכמה. הסכמה מגדירה שם שדה, סוגו (string, integer, boolean, datetime), האם הוא אופציונלי, ואילו ערכים חוקיים. תהליך האימות נקרא schema validation, ומונע כניסת נתונים שגויים למסד.
בבסיסי נתונים רלציוניים כמו PostgreSQL הסכמה מתורגמת לטבלאות עם עמודות מוגדרות. בעולם ה-API, סכמות מוגדרות בפורמטים כמו JSON Schema, OpenAPI, או GraphQL SDL — כך שכל לקוח יודע בדיוק מה לשלוח ומה לצפות לקבל.
דוגמה
מערכת פודקאסטים מגדירה Dataset schema לאפיזודה: "title" מסוג טקסט (חובה, עד 200 תווים), "duration_seconds" מסוג מספר שלם חיובי (חובה), "published_at" מסוג תאריך-שעה (אופציונלי), ו-"audio_url" מסוג URL (חובה). ניסיון להעלות אפיזודה ללא כותרת, או עם duration שמכיל טקסט — נדחה לפני שמגיע לבסיס הנתונים.
מתי משתמשים?
- עיצוב מסד נתונים: הסכמה מגדירה טבלאות, סוגי עמודות ואילוצים — ומהווה בסיס לכל הפיתוח.
- אינטגרציה בין מערכות: כאשר מערכות מחליפות נתונים, הסכמה המשותפת מבטיחה פרשנות אחידה בשני הצדדים.
- אימות קלטי משתמש: בטפסים מורכבים, הסכמה מגדירה מה מותר להזין ומאפשרת הצגת שגיאות ברורות לפני שליחה לשרת.
מונחים קשורים
- Database schema — סכמת בסיס נתונים
- Data model — מודל נתונים
- API endpoint — נקודת קצה של API
- JSON Schema — הגדרת מבנה JSON
שאלות נפוצות
- מה ההבדל בין Dataset schema ל-Database schema?
- Database schema מתאר את כלל בסיס הנתונים — כל הטבלאות והקשרים. Dataset schema מתמקד במבנה של מערך נתונים ספציפי, וניתן להגדיר אותו גם מחוץ לבסיס נתונים — בקובץ CSV, בתגובת API או בטופס קלט.
- האם חייבים לשנות את הסכמה כאשר מוסיפים שדה חדש?
- כן. כל שינוי במבנה — הוספה, מחיקה או שינוי סוג — מצריך עדכון הסכמה. בבסיסי נתונים רלציוניים הפעולה נקראת migration ומבוצעת בקפידה כדי לא לשבור נתונים קיימים.
- איך Dataset schema תורם לאבטחה?
- סכמה מוגדרת היטב מקשה על הזרקת נתונים זדוניים. כאשר כל שדה מוגבל לסוג ואורך ספציפיים, קשה יותר לבצע SQL Injection. שדות רגישים כמו סיסמאות מוגדרים עם הצפנה מנדטורית ישירות בסכמה.