Access. Подкорректировать таблицы чтобы избежать избыточности данных
Предмет: Информатика
Раздел: Базы данных (реляционные базы данных, нормализация, проектирование схемы данных)
? Цель задания:
Оптимизировать структуру базы данных в Microsoft Access, устранив избыточность данных.
? Анализ текущей схемы
На изображении представлена схема реляционной базы данных для железнодорожных перевозок. Таблицы:
- Билеты
 - Пассажиры
 - Станции
 - Станции_1
 - Станции_2
 - Поезда
 - Расписание
 - Маршруты
 
❗ Проблемы избыточности в текущей структуре
? Повторяющиеся таблицы:
- Таблицы Станции, Станции_1, Станции_2— содержат одинаковые поля:
- [Код_станции], [Название_станции], [Город]
 
 
? Это явная избыточность. Все три таблицы дублируют одну и ту же структуру.
✅ Предлагаемое решение: устранение избыточности
1. Оставить только одну таблицу "Станции"
Удалить Станции_1 и Станции_2, так как они дублируют таблицу Станции.
2. В таблице "Маршруты" заменить поля:
- [Начальная_станция] и [Конечная_станция] — это, вероятно, текстовые поля.
 - Заменить их на внешние ключи, ссылающиеся на таблицу Станции:
- [Код_начальной_станции]
 - [Код_конечной_станции]
 
 
3. Обновить связи:
- Установить связи между:
- [Код_начальной_станции] → [Станции.Код_станции]
 - [Код_конечной_станции] → [Станции.Код_станции]
 
 
? Итоговая структура таблицы "Маршруты" будет:
| Код_маршрута | Название_маршрута | Код_начальной_станции | Код_конечной_станции | 
|---|
? Обновление связей в "Расписание":
- Таблица "Расписание" уже содержит [Код_маршрута], который связан с таблицей "Маршруты" — это корректно.
 
✅ Результат после оптимизации:
- Удалено 2 дублирующих таблицы (Станции_1, Станции_2)
 - Введены внешние ключи вместо текстовых названий станций в таблице Маршруты
 - Схема становится:
- Более нормализованной (3-я нормальная форма)
 - Устойчивой к дублированию данных
 - Удобной для обновлений (изменения названия станции сразу отражаются везде)
 
 
? Рекомендации:
- Убедитесь, что в таблице Станции установлен первичный ключ по полю [Код_станции]
 - Установите каскадное обновление и удаление для связей, если это необходимо
 
Если нужно, я могу нарисовать схему после оптимизации.