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