Исправить связи между таблицами в базе данных "Железнодорожные перевозки", представленной в MS Access

Условие:

Исправить связи

Условие: Исправить связи

Решение:

Предмет: Информатика
Раздел: Базы данных (MS Access, реляционная модель данных)


Задание:

Исправить связи между таблицами в базе данных "Железнодорожные перевозки", представленной в MS Access.


Анализ текущей схемы данных:

На изображении представлена схема реляционной базы данных, содержащая следующие таблицы:

  • Билеты ([Код_билета], [Код_пассажира], [Код_расписания], Место, Стоимость)
  • Пассажиры ([Код_пассажира], ФИО, Паспорт, Возраст)
  • Станции ([Код_станции], Название_станции, Город)
  • Станции_1 ([Код_станции], Название_станции, Город) — дублирующая таблица
  • Маршруты ([Код_маршрута], Название_маршрута, Начальная_станция, Конечная_станция)
  • Расписание ([Код_расписания], [Код_поезда], [Код_маршрута], Дата_отправления, Время_отправления, Время_прибытия)
  • Поезда ([Код_поезда], Номер_поезда, Тип_поезда, Количество_вагонов)

Ошибки в связях:

  1. Таблица "Станции_1" дублирует таблицу "Станции" — это избыточность, нужно оставить только одну таблицу.
  2. В таблице "Маршруты" поля "Начальная_станция" и "Конечная_станция" должны быть внешними ключами на таблицу "Станции", но связи не установлены.
  3. Связь между "Расписание" и "Станции" отсутствует, хотя логично было бы её установить, если поезд останавливается на определённых станциях (но это может быть реализовано через другую таблицу — "Остановки").
  4. Связь между "Билеты" и "Расписание" корректна.
  5. Связь между "Билеты" и "Пассажиры" также корректна.

Исправления:

1. Удалить таблицу Станции_1

  • Она дублирует таблицу Станции и не несёт дополнительной информации.

2. В таблице Маршруты:

  • Связать поле [Начальная_станция] с [Код_станции] таблицы Станции
  • Связать поле [Конечная_станция] с [Код_станции] таблицы Станции

Важно: поскольку обе связи идут к одной таблице, они должны быть правильно подписаны (например, псевдонимы в SQL-запросах или комментарии в Access).

3. Проверить, нужна ли дополнительная таблица "Остановки":

  • Если расписание включает промежуточные станции, нужно создать таблицу Остановки:
    • [Код_остановки], [Код_расписания], [Код_станции], Время_прибытия, Время_отправления

Итоговая структура связей:

  • Билеты.[Код_пассажира]Пассажиры.[Код_пассажира]
  • Билеты.[Код_расписания]Расписание.[Код_расписания]
  • Расписание.[Код_поезда]Поезда.[Код_поезда]
  • Расписание.[Код_маршрута]Маршруты.[Код_маршрута]
  • Маршруты.[Начальная_станция]Станции.[Код_станции]
  • Маршруты.[Конечная_станция]Станции.[Код_станции]

Дополнительно (рекомендуется):

Создать таблицу Остановки для хранения информации о промежуточных станциях, если это необходимо.


Если хочешь, я могу нарисовать правильную схему связей или помочь создать SQL-запросы для создания таблиц и связей.

Не нашли нужного вам решения? Оставьте заявку и наши авторы быстро и качественно помогут вам с решением.
Оставить заявку
Работа вам нужна срочно. Не волнуйтесь, уложимся!
  • 22423 авторов готовы помочь тебе.
  • 2402 онлайн