דלג לתוכן

מאגרי נתונים

מדעי המחשב IGCSE · נושא 9

שיעור וידאו לנושא זה פתח את עמוד הוידאו
8:17

מאגרי נתונים

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

קריאת קול באנגלית · תרגום אנגלי + סינית שרוף בתוך הסרטון

סיילבוס
המועמדים צריכים להיות מסוגלים: הערות והנחיות
1 הגדרת בסיס נתונים בטבלה אחת על בסיס דרישות אחסון נתונים הנתונות • כולל: – שדות – רשומות – אימות
2 הצעת סוגי נתונים בסיסיים מתאימים • כולל: – טקסט/אלפנומרי – תווית – בוליאני – שלם – אמיתי – תאריך/שעה
3 הבנת מטרת מפתח ראשי והיכרות עם מפתח ראשי מתאים לטבלת בסיס נתונים נתונה
4 קריאה, הבנה והשלמה של סקריפטים שפת שאילת מבוססת (SQL) לשאילת נתונים מאוחסנים בטבלת בסיס נתונים אחת • מוגבל ל: – SELECT – FROM – WHERE – ORDER BY DESCENDING – ORDER BY ASCENDING – SUM – COUNT – AND – OR • זיהוי הפלט שנוצר על ידי הוראת SQL שתשאל את התוכן הנתון של טבלת בסיס נתונים

מקור: הסיילבוס הבינלאומי של קמבריד'ג'

9.1

מהי מסד נתונים?

מסד נתונים הוא מאגר נתונים מאורגן, המיועד לכך שיהיה קל לחפש, למיין ולעדכן. ב-IGCSE עובדים עם מסד נתונים בטבלה אחת – כל הנתונים מאוחסנים בטבלה אחת.

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

רשומות ושדות

טבלת מאגר נתונים מורכבת מרשומות ושדות.

  • רשומה היא שורה אח בטבלה — כל הנתונים על דבר אחד (למשל, סטודנט אחד).
  • שדה הוא עמודה אח בטבלה — חלק נתונים אחד שכל רשומה מכילה (למשל, "שם פרטי").
StudentID FirstName DateOfBirth FormClass FeesPaid
1 Amy 14/03/2009 10A TRUE
2 Ben 02/11/2008 10B FALSE

במקרה זה, כל שורה היא רשומה, וכל עמודה היא שדה.

טבלת הסטודנטים עם תווית כל שורה כרשומה, כל עמודה כשדה, ועמודת StudentID מסומנת כמפתח ראשי
כל שורה היא רשומה וכל עמודה היא שדה; המפתח הראשי (StudentID) ייחודי לכל רשומה
9.3

סוגי נתונים לשדות

כל שדה מאחסן סוג נתונים אחד. תבחר בסוג המתאים ביותר לנתונים.

סוגי שדות: טקסט (שם), מספר (גיל), תאריך/שעה (יום הולדת), בוליאני (כן/לא)
סוגי שדות: טקסט, מספר, תאריך/שעה ובוליאני
Data type Used for Example
טקסט/אלפנומרי אותיות, ספרות וסימנים "10A", "Amy"
אופיין אופיין אחד 'M'
בוליאני אחד משני ערכים TRUE / FALSE
שלם מספר שלם 42
ממשי מספר עם נקודה עשרונית 3.5
תאריך/שעה תאריך או שעה 14/03/2009
מילון מונחים אימון
English עברית
database/ˈdeɪtəbeɪs/ מאגר נתונים
single-table database/ˈsɪŋɡl ˈteɪbl ˈdeɪtəbeɪs/ בסיס נתונים טבלא יחיד
record/ˈrekɔːd/ רשום
field/fiːld/ שדה
data type/ˈdeɪtə taɪp/ סוג נתונים
text/alphanumeric/tekst ˌælfənjuːˈmerɪk/ טקסט/אלפאנומרי
character/ˈkærɪktə/ אישייה / אופי
Boolean/ˈbuːlɪən/ בוליאני
integer/ˈɪntɪdʒə/ מספר שלם
real/rɪəl/ ממשי
date/time/deɪt taɪm/ תאריך/שעה
primary key/ˈpraɪməri kiː/ מפתח ראשי
unique/juːˈniːk/ ייחודי
9.4

המפתח הראשי

מפתח ראשי הוא שדה המכיל ערך יחיד לכל רשום. אין לשני רשומות להיות אותו מפתח ראשי, ולכן הוא מאפשר לך לבחור בדיוק רשומה אחת.

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

9.5

אימות במאגר נתונים

כשנתונים מוזנים למאגר נתונים, בדיקות אימות מבטיחות שהן הגיוניות — לדוגמה, בדיקת טווח בשדה גיל, או בדיקת נוכחות כדי לוודא שלא משאירים שדה ריק. (ראיתם בדיקות אלו בנושא 7.)

בדיקת טווח בשדה גיל מקבלת 16 אך דוחה 200
בדיקת טווח מקבלת ערכים סבירים ומדחיקה את שאר הערכים
מילון מונחים אימון
English עברית
validation/ˌvælɪˈdeɪʃn/ אימות
structured query language/ˈstrʌktʃəd ˈkwɪərɪ ˈlæŋɡwɪdʒ/ שפת שאלות מבנית (SQL)
9.6

שפת שאילתות מבנית (SQL)

שפת שאילתות מבנית (SQL) היא שפה המשמשת לשאול ממאגר נתונים — לבחור את הרשומות הרצויות. עליכם להבין ולהשלם סكريפטים של SQL.

SELECT, FROM ו-WHERE

  • SELECT אומר אילו שדות להציג.
  • FROM אומר איזו טבלה להשתמש בה.
  • WHERE מספק תנאי, כך שמוצגות רק רשומות התואמות.
שאילתת SQL: SELECT שם מה-תלמידים WHERE גיל > 15
SELECT בוחר שדות, FROM מזהה את הטבלה, WHERE קובע את התנאי
SELECT FirstName, FormClass
FROM Student
WHERE FeesPaid = TRUE;

זה מציג את השם הפרטי והכיתה של כל תלמיד ששילם את האגרה.

השתמשו ב* כדי לבחור כל השדות:

SELECT *
FROM Student
WHERE FormClass = '10A';

ORDER BY

ORDER BY ממיין את התוצאות. השתמשו בASC עבור סדר עולה (הקטן ביותר קודם, A→Z) או בDESC עבור סדר יורד (הגדול ביותר קודם, Z→A).

SELECT FirstName, DateOfBirth
FROM Student
ORDER BY DateOfBirth ASC;

AND ו-OR

חברו תנאים עם AND (שניהם חייבים להיות נכונים) או עם OR (אחד לפחות חייב להיות נכון).

SELECT FirstName
FROM Student
WHERE FormClass = '10A' AND FeesPaid = FALSE;

SUM ו-COUNT

  • SUM מוסיף את הערכים בשדה מספרי.
  • COUNT סופר כמה רשומות תואמות.
SELECT COUNT(StudentID)
FROM Student
WHERE FeesPaid = FALSE;

זה סופר כמה סטודנטים לא שילמו. SUM עובד באותו אופן אך מוסיף שדה מספרי במקום לספור שורות.

חישוב התוצאה

כדי למצוא את תוצאת הסקריפט של SQL, קרא אותו בסדר זה:

  1. FROM — איזו טבלה;
  2. WHERE — שמור רק את הרשומות התואמות לתנאי;
  3. SELECT — הצג רק את השדות הנבחרים;
  4. ORDER BY — סדר את התוצאות.
ארבעה שלבים בסדר: FROM (איזו טבלה), WHERE (שמירת שורות תואמות), SELECT (הצגת שדות נבחרים), ORDER BY (סידור התוצאות)
קרא שאלת SQL בסדר זה: FROM (איזו טבלה), WHERE (אילו שורות), SELECT (אילו שדות), ORDER BY (סידור)

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

דוגמה פתורה. טבלת Book מכילה את השדות Title, Author, Price וInStock. כתוב שאלה המציגה את הכותרת והמחיר של כל הספר מאת אורוול שבמלאי, מהזול ביותר ראשונה.

SELECT Title, Price
FROM Book
WHERE Author = 'Orwell' AND InStock = TRUE
ORDER BY Price ASC;

בנה אותה בסדר הקריאה: FROM מיימן את הטבלה; WHERE משאיר רק את הרשומות התואמות, וכיוון שישנם שני תנאים הם דורשים AND; SELECT מציג רק את שני השדות המבוקשים; ORDER BY … ASC ממין אותם. ערכי טקסט נמצאים בתוך ציטוטים, ובשדה SELECT חייבים להיות רק השדות שהשאלה מבקשת - הוספת Author פשוט כי סיננת לפי הוא הדרך הנפוצה ביותר לאבד נקודה כאן.

חקור

SELECT … WHERE

עבור על שאלה: WHERE מסנן שורות, SELECT בוחר עמודות.

מילון מונחים אימון
English עברית
query/ˈkwɪərɪ/ שאלה
condition/kənˈdɪʃn/ תנאי
ascending/əˈsendɪŋ/ עלייה
descending/dɪˈsendɪŋ/ ירידה
9.7

טיפים לבחינות

  • רשומה היא שורה (כל הנתונים על דבר אחד); שדה הוא עמודה (פריט אחד שכל רשומה מכילה).
  • מפתח ראשי חייב להיות יחיד לכל רשומה, כך שהוא מזוהה בדיוק רשומה אחת (StudentID, ולא FormClass).
  • למד את חלקי SQL: SELECT (אילו שדות), FROM (איזו טבלה), WHERE (התנאי), ORDER BY (סידור, ASC או DESC).
  • קרא שאלה בסדר FROM → WHERE → SELECT → ORDER BY כדי לחשב את תוצאתה.
  • COUNT סופר את הרשומות התואמות; SUM מוסיף שדה מספרי.

שיעורים אינטראקטיביים בנושא זה

לעבור על הדברים צעד אחר צעד, עם תרגילים לבדיקה מיידית.

מבחני עבר

נושאים נוספים במדעי המחשב IGCSE

היכנס או צור חשבון

IGCSE, A-Level & AP