Что такое база данных и из чего она состоит
База данных — это набор информации, организованный так, чтобы в нём можно было быстро искать, добавлять и менять данные. Примеры: электронный журнал, каталог библиотеки, список билетов на поезд. В школе чаще всего изучают табличные (реляционные) базы, где всё лежит в таблицах.
Основные понятия:
- Поле — столбец таблицы, одна характеристика объекта: фамилия, класс, дата рождения.
- Запись — строка таблицы, всё об одном объекте: об одном ученике, одной книге.
- Ключ — поле, значение которого не повторяется ни в одной записи, например номер читательского билета. По ключу запись находят однозначно.
- СУБД (система управления базами данных) — программа для работы с базой: Access, LibreOffice Base, SQLite, MySQL, PostgreSQL.
База и СУБД не одно и то же. База — это сами данные, СУБД — инструмент, которым с ними работают. Вместе их часто называют системой баз данных.
Хранение баз данных: типы полей и кодирование
У каждого поля есть тип: целое число, вещественное число, текст (символьное поле), дата, логическое значение «да/нет». От типа зависит, сколько памяти занимает значение. Так же устроено хранение чисел в базе данных: целое и дробное число записываются по-разному и занимают разный объём.
В задачах объём обычно считают через кодирование. Если в алфавите N символов, на один символ нужно i бит, где 2^i ≥ N. Например, для 32 символов хватает 5 бит, для 36 нужно 6 бит, потому что 2⁵ = 32 меньше 36, а 2⁶ = 64 уже подходит.
Запись в базе занимает целое число байт: биты всех её полей складывают и при необходимости округляют вверх до байта. Как это делать в твоей задаче, всегда сказано в условии. Если путаешься в единицах, загляни в тему измерение информации: 1 байт = 8 бит, 1 Кбайт = 1024 байта. Как работает равномерный код, объясняет тема кодирование информации.
Разбор задания: сколько байт занимают номера в базе
Условие. В базе данных хранятся регистрационные номера. Номер состоит из 6 символов: заглавных латинских букв (26 штук) и десяти цифр. Каждый символ кодируют одинаковым минимально возможным числом бит, а номер целиком — минимально возможным целым числом байт. Сколько байт нужно, чтобы хранить 2000 номеров?
- Считаем символы алфавита: 26 + 10 = 36.
- Находим число бит на символ: 2⁵ = 32 < 36, 2⁶ = 64 ≥ 36. Значит, 6 бит.
- Объём одного номера: 6 × 6 = 36 бит.
- Переводим в байты: 36 ÷ 8 = 4,5, округляем вверх до целого, получаем 5 байт.
- Объём всех номеров: 2000 × 5 = 10 000 байт, это примерно 9,8 Кбайт.
Обрати внимание на порядок. Сначала бит на символ, потом бит на весь номер, и только затем байты. Округляешь вверх один раз, на последнем шаге.
Как работают запросы к базе
Запрос выбирает из таблицы записи, которые подходят под условие. Условия строятся так же, как в логике: «И» требует, чтобы были верны обе части, «ИЛИ» — хотя бы одна, «НЕ» меняет результат на противоположный.
На языке SQL простой запрос выглядит так:
SELECT фамилия FROM ученики WHERE класс = 9 AND оценка ≥ 4
Он выдаст фамилии девятиклассников с оценкой не ниже четвёрки. Слово SELECT говорит, какие поля показать, FROM называет таблицу, WHERE задаёт условие. Для сортировки добавляют ORDER BY.
Следи за знаками. Условие «класс > 8» не включает восьмой класс, а «класс ≥ 8» включает.
Где ошибаются чаще всего
- Не округляют биты вверх. Для 36 символов нужно 6 бит, а не 5 с хвостиком. Число бит на символ всегда целое.
- Округляют не там. Если в условии сказано, что на запись отводится целое число байт, округляют итог по записи, а не каждый символ отдельно.
- Забывают часть полей. Когда в записи есть и номер, и дата, и другие поля, объёмы складывают все.
- Путают бит и байт, 1000 и 1024. В байтах считают объём записи, в килобайтах делят на 1024.
- Путают поле и запись. Поле — столбец, запись — строка.
Как пользоваться страницей
Список заданий над текстом пополняется тем, что присылают ученики: к каждому приложен полный ход решения. По базам данных обычно спрашивают про объём записей и кодирование символов, про выбор записей по условию, про поля и ключи. Найди в списке задание, похожее на твоё, и сравни шаги. Если подходящего нет, сфотографируй своё условие и отправь, чтобы получить решение с ходом. Для таблиц смежной темой будут электронные таблицы.