Базы данных

Реляционные базы данных: таблицы как отношения, первичные и внешние ключи, нормализация. Основы SQL: запросы SELECT, фильтрация WHERE, сортировка ORDER BY. Связи между таблицами: один-ко-многим, многие-ко-многим.

Базы данных

1. Понятие базы данных

База данных (БД) — организованная совокупность взаимосвязанных данных, хранящаяся и обрабатываемая с помощью системы управления базами данных (СУБД).

СУБД — программное обеспечение для создания, ведения и обработки баз данных (MS Access, PostgreSQL, MySQL, SQLite).

2. Реляционная модель данных

Реляционная база данных — БД, в которой данные представлены в виде прямоугольных таблиц (отношений).

Основные понятия:

Пример: таблица «Ученики»

id (PK)ФамилияИмяКлассГод_рождения
1ИвановИван9А2009
2ПетроваАнна9Б2009
3СидоровПётр9А2010

Здесь id — первичный ключ (Primary Key, PK). Каждое значение уникально и не может быть NULL.

3. Ключи и связи

Первичный ключ

Поле (или набор полей), однозначно идентифицирующее запись. Свойства:

Внешний ключ

Поле в таблице, ссылающееся на первичный ключ другой таблицы. Обеспечивает ссылочную целостность.

Типы связей

Один-к-одному (1:1) — одной записи в таблице A соответствует одна запись в таблице B.

Один-ко-многим (1:M) — одной записи в таблице A соответствует много записей в таблице B. Самый распространённый тип.

Многие-ко-многим (M:N) — многим записям в A соответствует много записей в B. Реализуется через промежуточную таблицу.

Пример: связь «один-ко-многим»

Таблица «Классы»:

id (PK)НазваниеКабинет
19А204
29Б207

Таблица «Ученики» (внешний ключ класс_id):

id (PK)Фамилиякласс_id (FK)
1Иванов1
2Петрова2
3Сидоров1

Значение класс_id в таблице «Ученики» должно существовать в столбце id таблицы «Классы» — это и есть ссылочная целостность.

4. Нормализация

Нормализация — процесс устранения избыточности данных. Основные правила (нормальные формы):

Первая нормальная форма (1НФ):

Вторая нормальная форма (2НФ):

Третья нормальная форма (3НФ):

Пример нарушения нормализации

УченикПредметыУчитель
ИвановМатематика, ФизикаПетров

Нарушение 1НФ: в ячейке «Предметы» несколько значений. Исправление:

УченикПредметУчитель
ИвановМатематикаПетров
ИвановФизикаПетров

5. Основы SQL

SQL (Structured Query Language) — язык запросов к реляционным БД.

SELECT — выборка данных

SELECT фамилия, имя FROM ученики;

WHERE — фильтрация

SELECT * FROM ученики WHERE класс = '9А';

ORDER BY — сортировка

SELECT * FROM ученики ORDER BY фамилия ASC;
-- ASC — по возрастанию, DESC — по убыванию

Пример сложного запроса

SELECT ученики.фамилия, классы.название
FROM ученики
JOIN классы ON ученики.класс_id = классы.id
WHERE классы.кабинет = 204
ORDER BY ученики.фамилия;

6. Решение задач ОГЭ на базы данных

Типовая задача: дан фрагмент БД, требуется определить результат запроса.

Пример: Даны две таблицы:

Таблица «Кружки»:
| id | Название          | Руководитель |
|----|-------------------|-------------|
| 1  | Робототехника     | Смирнов     |
| 2  | Программирование  | Кузнецов    |
| 3  | Шахматы           | Иванова     |

Таблица «Участники»:
| id | Фамилия  | Кружок_id |
|----|----------|-----------|
| 1  | Иванов   | 1         |
| 2  | Петрова  | 2         |
| 3  | Сидоров  | 1         |
| 4  | Кузнецов | 3         |

Сколько участников в кружке «Робототехника»? Решение: id кружка «Робототехника» = 1. В таблице «Участники» с кружок_id = 1 — две записи (Иванов, Сидоров). Ответ: 2.

7. Важно!

Примеры вопросов из тренажёра

  1. Q: Что такое реляционная база данных?

    A: верный ответ — БД, в которой данные представлены в виде связанных таблиц (отношений)

    Объяснение: Реляционная БД основана на модели отношений — данные хранятся в таблицах, связанных через ключи.

  2. Q: Какое свойство обязательно для первичного ключа?

    A: верный ответ — Уникальность для каждой записи

    Объяснение: Первичный ключ должен однозначно идентифицировать запись, поэтому его значение уникально и не может быть NULL.

  3. Q: Что такое внешний ключ?

    A: верный ответ — Поле, ссылающееся на первичный ключ другой таблицы

    Объяснение: Внешний ключ (FK) — это поле, которое ссылается на первичный ключ другой таблицы для обеспечения связи.

  4. Q: Какой тип связи между таблицами «Классы» и «Ученики»?

    A: верный ответ — Один-ко-многим (1:M)

    Объяснение: Один класс содержит много учеников — это связь один-ко-многим. Внешний ключ находится в таблице «Ученики».

  5. Q: Что такое нормализация базы данных?

    A: верный ответ — Устранение избыточности данных путём разделения таблиц

    Объяснение: Нормализация — процесс устранения избыточности и обеспечения целостности данных через нормальные формы.

Пройти тему «Базы данных» в приложении