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 Чтение, понимание и заполнение скриптов языка структурированных запросов (SQL) для запроса данных, хранящихся в одной таблице базы данных • Ограничено: – SELECT – FROM – WHERE – ORDER BY DESCENDING – ORDER BY ASCENDING – SUM – COUNT – AND – OR • Идентификация вывода, который даст SQL-запрос на основе заданного содержимого таблицы базы данных

Source: Cambridge International syllabus · ⁨Источник: Программа Cambridge International⁩

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.

Русский

Таблица базы данных состоит из записей и полей.

  • Запись — это одна строка в таблице — все данные об одном объекте (например, об одном ученике).
  • Поле — это один столбец в таблице — один элемент данных, который есть у каждой записи (например, "Имя").
ID_Ученика Имя Дата_Рождения Класс Оплачено
1 Эми 14/03/2009 10A TRUE
2 Бен 02/11/2008 10B FALSE

Здесь каждая строка является записью, а каждый столбец — полем.

Таблица Учеников, где каждая строка подписана как запись, каждый столбец как поле, а столбец ID_Ученика выделен как первичный ключ
Каждая строка — это запись, а каждый столбец — поле; первичный ключ (ID_Ученика) уникален для каждой записи
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", "Эми"
символ один символ 'M'
Boolean одно из двух значений TRUE / FALSE
integer целое число 42
real число с десятичной точкой 3.5
date/time дата или время 14/03/2009
Vocabulary · ⁨Словарь⁩ Train · ⁨Тренировать⁩
English Русский
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 имя ИЗ ученики 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 лишь потому, что вы фильтровали по нему, является наиболее частой причиной потери балла здесь.

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.
Русский
  • Запись (record) — это строка (все данные об одном объекте); поле (field) — это столбец (один элемент, который есть у каждой записи).
  • Первичный ключ должен быть уникальным для каждой записи, поэтому он выбирает ровно одну запись (StudentID, а не FormClass).
  • Выучите части SQL: SELECT (какие поля), FROM (какая таблица), WHERE (условие), ORDER BY (сортировка, ASC или DESC).
  • Читайте запрос в порядке FROM → WHERE → SELECT → ORDER BY, чтобы определить его вывод.
  • COUNT подсчитывает совпадающие записи; SUM суммирует числовое поле.
Vocabulary · ⁨Словарь⁩ Train · ⁨Тренировать⁩
English Русский
database/ˈdeɪtəbeɪs/ база данных
single-table database/ˈsɪŋɡl ˈteɪbl ˈdeɪtəbeɪs/ одностраничная база данных
record/ˈrekɔːd/ запись

Interactive lessons on this topic · ⁨Интерактивные уроки по этой теме⁩

Work through it step by step, with instant-check exercises. · ⁨Пройдите его шаг за шагом с упражнениями мгновенной проверки.⁩

Past Papers · ⁨Архив экзаменационных работ⁩

More topics in IGCSE Computer Science · ⁨Информатика IGCSE⁩ · ⁨Больше тем в IGCSE Computer Science · ⁨Информатика IGCSE⁩⁩

Log in or create account · ⁨Войти или создать аккаунт⁩

IGCSE, A-Level & AP