Информатика · 11 класс4 четвертьТема 7ГОСО РК 2026Углубленный

Проектирование реляционных баз данных: аномалии, функциональные зависимости и нормализация (1NF, 2NF, 3NF)

Теоретические основы проектирования БД: функциональные зависимости, аномалии обновления, удаления и вставки, правила нормализации от 1NF до 3NF.

Время изучения~60 минтеория + практика
Разделы темы4 разд.пошаговый разбор
Тест темы2 вопр.с мгновенным ответом
СОР / СОЧ4 четвертьдескрипторы ГОСО

При проектировании баз данных наивный подход часто приводит к созданию одной огромной 'универсальной' таблицы, куда складываются все атрибуты сущностей (например, студент, его группа, куратор, номер кабинета куратора и название сданного экзамена). Такой подход порождает избыточность данных (дублирование) и три критические аномалии модификации:

1. Аномалия вставки (Insertion Anomaly): невозможно добавить куратора или курс в систему до тех пор, пока на него не записан хотя бы один студент (первичный ключ студента не может быть NULL).

2. Аномалия удаления (Deletion Anomaly): если единственный студент группы отчисляется и его запись удаляется, безвозвратно теряются данные о самой группе, кураторе и кабинете.

3. Аномалия обновления (Update Anomaly): если куратор меняет номер кабинета, необходимо обновить сотни строк для каждого студента его группы. Если хотя бы одна строка будет пропущена, база данных придет в состояние логической несогласованности.

Процесс нормализации баз данных — это пошаговая декомпозиция таблиц на основе математической теории функциональных зависимостей для устранения избыточности без потери данных.

Реляционная структура связи таблиц БД

Анимированная модель
Реляционная модель: связь таблиц Primary Key (PK) к Foreign Key (FK)Таблица: Students (1)PK: id (INT)101full_name (VARCHAR)Алиханemail (VARCHAR)a@mail.kzFK: group_id (INT)5Таблица: Groups (M)PK: id (INT)5group_code (VARCHAR)IT-11Afaculty (VARCHAR)CScurator (VARCHAR)ЖумабаевСвязь 1 : MЦелостность данных (Foreign Key Constraint): значение group_id обязано существовать в Groups.id.
Связь между родительской и дочерней таблицами через первичный ключ (Primary Key) и внешний ключ (Foreign Key).
Понятие

Функциональная зависимость (X -> Y)

Ситуация, при которой значению атрибута X однозначно соответствует ровно одно значение атрибута Y во всех кортежах отношения.
Понятие

Декомпозиция без потерь

Разбиение одной таблицы на две или более с сохранением возможности восстановить исходную таблицу операцией естественного соединения (JOIN).

Таблица находится в Первой нормальной форме (1NF), если:

1. В каждом поле каждого кортежа (строки) содержится ровно одно атомарное (неделимое) значение.

2. В таблице отсутствуют повторяющиеся группы или массивы в рамках одной строки (например, поле 'Телефоны' не должно содержать строку '8701111; 8702222').

3. У таблицы определен первичный ключ (простой или составной), однозначно идентифицирующий каждую строку.

Нарушение 1NF делает невозможным эффективный поиск, сортировку и индексацию по отдельным элементам составного поля. Для приведения к 1NF массивы значений выносятся в отдельные строки или связные дочерние таблицы.

Таблица находится во Второй нормальной форме (2NF), если:

1. Она уже находится в Первой нормальной форме (1NF).

2. Каждый неключевой атрибут функционально полно зависит от всего первичного ключа в целом, а не от его части.

Требование 2NF актуально для таблиц с составным первичным ключом (ключом, состоящим из двух и более колонок). Если первичный ключ состоит из (StudentID, CourseID), а поле CourseTitle зависит исключительно от CourseID, то это частичная функциональная зависимость.

Для приведения к 2NF атрибуты, зависящие от части ключа, выносятся в отдельную таблицу (в данном примере — справочник Courses со своим ключом CourseID).

Шаг 1
Действие 1
Определить составной первичный ключ таблицы (например, {Студент, Предмет})
Шаг 2
Действие 2
Проверить зависимость каждого неключевого атрибута от обеих частей составного ключа
Шаг 3
Действие 3
Выявить атрибуты, зависящие только от одной части составного ключа (например, Преподаватель предмета зависит только от Предмета)
Шаг 4
Действие 4
Вынести эти атрибуты вместе с ключевым полем в новую независимую таблицу
Шаг 5
Действие 5
Оставить в связующей таблице только внешний ключ и атрибуты, зависящие от обоих полей (например, Оценка)

Таблица находится в Третьей нормальной форме (3NF), если:

1. Она находится во Второй нормальной форме (2NF).

2. Ни один неключевой атрибут не зависит транзитивно от первичного ключа.

Транзитивная зависимость возникает, когда первичный ключ X определяет неключевой атрибут Y, а атрибут Y, в свою очередь, определяет другой неключевой атрибут Z (X -> Y и Y -> Z, следовательно, X -> Z).

Классический пример: в таблице Студентов с первичным ключом StudentID хранятся поля GroupID и GroupSpecialty. Первичный ключ определяет группу, а группа определяет специальность. Специальность зависит от StudentID транзитивно через GroupID. Приведение к 3NF требует выноса GroupID и GroupSpecialty в отдельную таблицу Groups.

Золотое мнемоническое правило 3NF

Каждый неключевой атрибут должен зависеть от ключа (1NF), только от всего ключа (2NF) и ни от чего, кроме ключа (3NF), 'да поможет мне Кодд!' (Эдгар Кодд — создатель реляционной модели).

Ваш прогресс по теме25%
Шпаргалка формул11 класс
Кардинальность декартова произведения таблиц:
∣A×B∣=∣A∣⋅∣B∣|A \times B| = |A| \cdot |B|[кортежей]
Функция потерь среднеквадратичной ошибки (MSE):
MSE=1n∑i=1n(yi−y^i)2MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2[ед.²]
Следующая тема

Сложные SQL-запросы: объединения таблиц (JOIN), группировка (GROUP BY, HAVING) и подзапросы

Перейти к теме →