Skip to content · ⁨الانتقال إلى المحتوى⁩

Databases · ⁨قواعد البيانات⁩

IGCSE Computer Science · ⁨IGCSE علوم الحاسوب⁩ · Topic 9 · ⁨الموضوع 9⁩

Video lesson for this topic · ⁨درس فيديو لهذا الموضوع⁩ Open the video page · ⁨افتح صفحة الفيديو⁩
8:17

قواعد البيانات

قبل الحواسيب، كانت المكتبة تحتفظ بدرج مثل هذا. بطاقة لكل كتاب، تحمل نفس القليل من المعلومات، جميعها مرتبة — حتى يتمكن أمين المكتبة من العثور على أي كتاب…

English narration · English + 中文 subtitles burned in · ⁨سرد باللغة الإنجليزية · ترجمة مدمجة بالإنجليزية + الصينية⁩

Syllabus · ⁨المنهج⁩
English
Candidates should be able to: Notes and guidance
1 Define a single-table database from given data storage requirements • Including: – fields – records – validation
2 Suggest suitable basic data types • Including: – text/alphanumeric – character – Boolean – integer – real – date/time
3 Understand the purpose of a primary key and identify a suitable primary key for a given database table
4 Read, understand and complete structured query language (SQL) scripts to query data stored in a single database table • Limited to: – SELECT – FROM – WHERE – ORDER BY DESCENDING – ORDER BY ASCENDING – SUM – COUNT – AND – OR • Identifying the output given by an SQL statement that will query the given contents of a database table
العربية
يجب أن يكون المرشحون قادرين على: ملاحظات وإرشادات
1 عرّف قاعدة بيانات جدول واحد بناءً على متطلبات تخزين البيانات المعطاة • بما في ذلك: – الحقول – السجلات – التحقق من صحة البيانات
2 اقترح أنواع بيانات أساسية مناسبة • بما في ذلك: – نص/أحرف-رقمية – حرف – منطقية – عدد صحيح – حقيقي – تاريخ/وقت
3 افهم الغرض من المفتاح الأساسي وحدد مفتاحًا أساسيًا مناسبًا لجدول قاعدة بيانات معطى
4 اقرأ وفهم وأكمل scripts لغة الاستعلام المهيكلة (SQL) للاستعلام عن البيانات المخزنة في جدول قاعدة بيانات واحد • مقيّد بـ: – SELECT – FROM – WHERE – ORDER BY DESCENDING – ORDER BY ASCENDING – SUM – COUNT – AND – OR • تحديد الإخراج الذي تنتجه جملة SQL التي ستستعلم عن محتويات جدول قاعدة بيانات معطى

Source: Cambridge International syllabus · ⁨المصدر: منهج كامبريدج الدولي⁩

9.1

What is a database? · ⁨ما هو قاعدة البيانات؟⁩

English

A database 数据库 is an organised store of data, kept so that it is easy to search, sort and update. At IGCSE you work with a single-table database 单表数据库 — all the data is held in one table.

العربية

قاعدة البيانات هي مستودع منظم للبيانات، يُحفظ بحيث يسهل البحث فيه والتصفية وتحديثه. في امتحان IGCSE تتعامل مع قاعدة بيانات جدول واحد — حيث تُحتفظ جميع البيانات في جدول واحد.

صفوف من أدراج صغيرة مُصنّفة في فهرس بطاقات المكتبة
فهرس بطاقات المكتبة هو قاعدة بيانات ورقية — سجلات يمكنك البحث فيها وتصفيتها بالمؤشر
صفوف من خوادم في مركز بيانات
قواعد البيانات الحديثة الكبيرة تُخزن على خوادم في مراكز البيانات
9.2

Records and fields · ⁨السجلات والمجالات⁩

English

A database table is made of records and fields.

  • A record 记录 is one row in the table — all the data about one thing (for example one student).
  • A field 字段 is one column in the table — one piece of data that every record has (for example "First name").
StudentID FirstName DateOfBirth FormClass FeesPaid
1 Amy 14/03/2009 10A TRUE
2 Ben 02/11/2008 10B FALSE

Here each row is a record, and each column is a field.

العربية

يتكون جدول قاعدة البيانات من سجلات ومجالات.

  • السجل هو صف واحد في الجدول — كل البيانات حول شيء واحد (على سبيل المثال طالب واحد).
  • المجال هو عمود واحد في الجدول — قطعة بيانات واحدة يمتلكها كل سجل (على سبيل المثال "الاسم الأول").
StudentID FirstName DateOfBirth FormClass FeesPaid
1 Amy 14/03/2009 10A TRUE
2 Ben 02/11/2008 10B FALSE

هنا كل صف هو سجل، وكل عمود هو مجال.

جدول الطلاب مع تسمية كل صف بسجل، وكل عمود بمجال، وتظليل عمود StudentID كمفتاح أساسي
كل صف هو سجل وكل عمود هو مجال؛ المفتاح الأساسي (StudentID) فريد لكل سجل
9.3

Data types for fields · ⁨أنواع البيانات للمجالات⁩

English

Each field stores one data type 数据类型. You choose the type that best fits the data.

Data type Used for Example
text/alphanumeric 文本 letters, digits and symbols "10A", "Amy"
character 字符 a single character 'M'
Boolean 布尔值 one of two values TRUE / FALSE
integer 整数 a whole number 42
real 实数 a number with a decimal point 3.5
date/time 日期时间 a date or a time 14/03/2009
العربية

يخزن كل مجال نوع بيانات واحد. اختر النوع الذي يتناسب بشكل أفضل مع البيانات.

أنواع المجالات: نص (اسم)، رقم (عمر)، تاريخ/وقت (عيد ميلاد)، منطقي (نعم/لا)
أنواع الحقول: نص، رقم، تاريخ/وقت ومنطقي
نوع البيانات الاستخدام مثال
نص/أحرف رقمية أحرف، أرقام ورموز "10A"، "Amy"
حرف حرف واحد 'M'
منطقي أحد قيمتين TRUE / FALSE
عدد صحيح عدد صحيح 42
عدد حقيقي عدد يحتوي على فاصلة عشرية 3.5
تاريخ/وقت تاريخ أو وقت 14/03/2009
Vocabulary · ⁨مفردات⁩ Train · ⁨تدريب⁩
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/ Boolean
integer/ˈɪntɪdʒə/ integer
real/rɪəl/ حقيقي
date/time/deɪt taɪm/ تاريخ/وقت
primary key/ˈpraɪməri kiː/ المفتاح الأساسي
unique/juːˈniːk/ فريد
9.4

The primary key · ⁨المفتاح الأساسي⁩

English

A primary key 主键 is a field that holds a unique 唯一的 value for every record. No two records can have the same primary key, so it lets you pick out exactly one record.

In the table above, StudentID is a good primary key because every student has a different number. A field like FormClass would be a bad primary key, because many students share the same class.

العربية

المفتاح الأساسي هو مجال يحتوي على قيمة فريدة لكل سجل. لا يمكن لسجلين أن يكون لهما نفس المفتاح الأساسي، مما يسمح لك باختيار سجل واحد بالضبط.

في الجدول أعلاه، StudentID هو مفتاح أساسي جيد لأن كل طالب له رقم مختلف. أما مجال مثل FormClass فسيكون مفتاحاً أساسياً سيئاً، لأن العديد من الطلاب يشاركون نفس الفصل.

9.5

Validation in a database · ⁨التحقق من صحة البيانات في قاعدة البيانات⁩

English

When data is put into a database, validation 验证 checks make sure it is sensible — for example a range check on an age field, or a presence check so a field is not left empty. (You saw these checks in topic 7.)

العربية

عند إدخال البيانات في قاعدة البيانات، تقوم عمليات التحقق من الصحة بالتأكد من أنها منطقية — على سبيل المثال التحقق من نطاق في مجال العمر، أو التحقق من التواجد لضمان عدم ترك المجال فارغاً. (رأيت هذه التحققات في الموضوع 7.)

تحقق من نطاق في مجال العمر يقبل 16 ويرفض 200
تحقق النطاق يقبل القيم المعقولة ويرفض الباقي
Vocabulary · ⁨مفردات⁩ Train · ⁨تدريب⁩
English العربية
validation/ˌvælɪˈdeɪʃn/ التحقق من صحة
structured query language/ˈstrʌktʃəd ˈkwɪərɪ ˈlæŋɡwɪdʒ/ لغة استعلام هيكلي
9.6

Structured Query Language (SQL) · ⁨لغة الاستعلام المنظم (SQL)⁩

English

Structured Query Language 结构化查询语言 (SQL) is a language used to query 查询 a database — to pick out the records you want. You must understand and complete SQL scripts.

SELECT, FROM and WHERE

  • SELECT says which fields to show.
  • FROM says which table to use.
  • WHERE gives a condition 条件, so only matching records are shown.

This shows the first name and class of every student who has paid the fees.

Use * to select all fields:

ORDER BY

ORDER BY sorts the results. Use ASC for ascending 升序 (smallest first, A→Z) or DESC for descending 降序 (largest first, Z→A).

AND and OR

Join conditions with AND (both must be true) or OR (at least one must be true).

SUM and COUNT

  • SUM adds up the values in a number field.
  • COUNT counts how many records match.

This counts how many students have not paid. SUM works the same way but adds a number field instead of counting rows.

Working out the output

To find the output of an SQL script, read it in this order:

  1. FROM — which table;
  2. WHERE — keep only the records that match the condition;
  3. SELECT — show only the chosen fields;
  4. ORDER BY — put the results in order.

Following these steps, you can write down exactly which rows and columns the query returns.

Worked example. A Book table has the fields Title, Author, Price and InStock. Write a query showing the title and price of every book by Orwell that is in stock, cheapest first.

Build it in the reading order: FROM names the table; WHERE keeps only the matching records, and because there are two conditions they need AND; SELECT shows only the two fields asked for; ORDER BY … ASC sorts them. Text values go in quotes, and only the fields the question asks for belong in SELECT - adding Author just because you filtered on it is the commonest way to lose a mark here.

العربية

لغة الاستعلام المنظم (SQL) هي لغة تُستخدم لـ استعلام قاعدة البيانات — لاستخراج السجلات التي تريدها. يجب أن تفهم وتنفذ نصوص SQL.

SELECT و FROM و WHERE

  • SELECT تحدد أي مجالات عرضها.
  • FROM تحدد أي جدول ستستخدمه.
  • WHERE تعطي شرطاً، بحيث تُعرض فقط السجلات المطابقة.
استعلام SQL: SELECT name FROM students WHERE age > 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 لمجرد أنك قمت بتصفيتها عليه هو الطريقة الأكثر شيوعاً لفقدان علامة هنا.

Explore · ⁨استكشف⁩

SELECT … WHERE

Step through a query: WHERE filters rows, SELECT picks columns. · ⁨مرر عبر الاستعلام: WHERE يُفلتر الصفوف، SELECT يختار الأعمدة.⁩

Vocabulary · ⁨مفردات⁩ Train · ⁨تدريب⁩
English العربية
query/ˈkwɪərɪ/ استعلام
condition/kənˈdɪʃn/ شرط
ascending/əˈsendɪŋ/ تصاعدي
descending/dɪˈsendɪŋ/ تنازلي
9.7

Exam tips · ⁨نصائح للامتحان⁩

English
  • A record is a row (all the data about one thing); a field is a column (one item that every record has).
  • A primary key must be unique for every record, so it picks out exactly one record (StudentID, not FormClass).
  • Learn the SQL parts: SELECT (which fields), FROM (which table), WHERE (the condition), ORDER BY (sort, ASC or DESC).
  • Read a query in the order FROM → WHERE → SELECT → ORDER BY to work out its output.
  • COUNT counts the matching records; SUM adds up a number field.
العربية
  • السجل هو صف (كل البيانات عن شيء واحد)؛ الحقل هو عمود (عنصر واحد يمتلكه كل سجل).
  • المفتاح الأساسي يجب أن يكون فريداً لكل سجل، لذا يحدد سجلاً واحداً بالضبط (StudentID، وليس FormClass).
  • احفظ أجزاء SQL: SELECT (أي حقول)، FROM (أي جدول)، WHERE (الشرط)، ORDER BY (الترتيب، ASC أو DESC).
  • اقرأ استعلاماً بترتيب FROM → WHERE → SELECT → ORDER BY لتحديد مخرجاته.
  • COUNT يعد السجلات المطابقة؛ SUM يجمع حقل رقمي.

Interactive lessons on this topic · ⁨دروس تفاعلية حول هذا الموضوع⁩

Work through it step by step, with instant-check exercises. · ⁨ا-working عليه خطوة بخطوة، مع تمارين تحقق فوري.⁩

Past Papers · ⁨أوراق الامتحانات السابقة⁩

More topics in IGCSE Computer Science · ⁨IGCSE علوم الحاسوب⁩ · ⁨المزيد من المواضيع في IGCSE Computer Science · ⁨IGCSE علوم الحاسوب⁩⁩

Log in or create account · ⁨تسجيل الدخول أو إنشاء حساب⁩

IGCSE, A-Level & AP