Универсальное отношение, анализ проблем вставки, удаления и обновления данных.

Методические указания

По выполнению контрольных и лабораторных работ

по дисциплине: «Информационные системы на транспорте»

Проектирование реляционной базы данных элемента транспортной системы

Составил: Назаров А.А.

Цель работы: запроектировать реляционную базу данных (РБД) элемента транспортной системы.

Вступление

Работа по созданию реляционной базы данных состоит из двух частей:

1-я часть: проектирование РБД (вручную);

2-я часть: реализация РБД на ПЭВМ.

В методических указаниях приводится порядок выполнения первого этапа создания РБД, а также пример проектирования РБД парка приема сортировочной станции при помощи ER-метода.

Условие задачи и описание объекта базы данных.

Необходимо разработать РБД парка приема сортировочной станции. В парк приема с четырех подходов прибывают поезда в расформирование. Для каждого прибывшего в парк приема поезда фиксируется подход, № пути приема, момент прибытия, момент окончания роспуска и данные о вагонах в составе поезда: инвентарный номер вагона, станция назначения, масса груза в вагоне. Моменты прибытия поездов с разных подходов могут совпадать. Если поезд прибыл в парк приема, но еще не расформирован, то момент окончания роспуска этого поезда неизвестен.

Исходные данные для проектирования РБД представлены фрагментами протокола работы парка приема сортировочной станции в виде таблицы.

 

Протокол работы парка приема сортировочной станции

№ поезда Подход № пути Момент прибытия Момент окончания роспуска Инвентарный номер вагона Станция назначения Масса груза в вагоне
В 7:40 8:15 Основа 14,00
          Лихая 0,00
          Лихая 0,00
А 7:50 8:35 Джанкой 0,00
          Львов 34,00
          Джанкой 10,00
Г 7:58 8:55 Джанкой 44,00
          Джанкой 35,00
          Основа 0,00
А 8:05   Джанкой 34,00
          Львов 36,00
          Лихая 42,00

 

В протоколе представлены данные о тех поездах, которые прибыли в парк приема сортировочной станции, и тех, которые были расформированы до 9 часов, а именно:

· номера поездов,

· подходы, с которых эти поезда прибыли,

· номера путей в парке приема, на которые они были приняты,

· время прибытия и время их расформирования,

· инвентарные номера и станции назначения вагонов в составах поездов,

· масса грузов в вагонах.

Данные в протоколе представлены в виде таблицы. Но эта таблица не является отношением.

Универсальное отношение, анализ проблем вставки, удаления и обновления данных.

В отношении каждая строка является кортежем, т.е. все значения атрибутов в кортеже атомарные, а не множественные. А в данной таблице для любого кортежа значения первых пяти атрибутов являются атомарными, а значения остальных являются множественными. Например, для первого кортежа есть только одно значение №поезда – «2131»; одно значение подхода, с которого он прибыл, - «В» и т.д. Но значений инвентарного номера вагона несколько, а именно три: «22222111», «22222210», «22222228»; значений мнемокода станции назначения тоже несколько: «ДОН», «ЗНМ» и «ЗНМ». Хотя мы, забегая вперед, подразумеваем, что все эти значения относятся к поезду №2131. Таким образом, значения атрибутов №поезда и Подход являются атомарными, а значения атрибутов Инвентарный_номер_вагона и Станция_назначения – множественными.

Для того, чтобы таблица стала отношением нужно заполнить все строки таблицы известными нам значениями соответствующих атрибутов. Если для какой-то строки значение атрибута нам неизвестно, то только в этом случае клетка остается пустой. Допустим, нам может быть не задана или неизвестна масса груза в вагоне с инвентарным номером 47612864 (5-й сверху), то это не дает нам право поставить в этой клетке какое-то число, потому что оно скорее всего окажется неверным. Эта клетка оставляется пустой и несет в себе информацию о том, что масса груза в вагоне 47612864 неизвестна или не определена.

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

Преобразованная таким образом таблица является отношением, в каждом кортеже каждый атрибут имеет конкретное (возможно даже неопределенное) значение. Например, для поезда 2005 атрибут Момент_окончания_роспуска имеет на данный момент неопределенное значение. (Возможно, поезд 2005 еще не расформирован).

 

Универсальное отношение: ПАРК_ПРИЕМА

№ поезда Подход № пути Момент прибытия Момент окончания роспуска Инвентарный номер вагона Станция назначения Масса груза в вагоне
В 7:40 8:15 Основа 14,00
В 7:40 8:15 Лихая 0,00
В 7:40 8:15 Лихая 0,00
А 7:50 8:35 Джанкой 0,00
А 7:50 8:35 Львов 34,00
А 7:50 8:35 Джанкой 10,00
Г 7:58 8:55 Джанкой 44,00
Г 7:58 8:55 Джанкой 35,00
Г 7:58 8:55 Основа 0,00
А 8:05   Джанкой 34,00
А 8:05   Львов 36,00
А 8:05   Лихая 42,00

Если в проектируемой базе данных все атрибуты представлены в одном отношении, то это отношение называют универсальным. Как правило, проектирование РБД начинается с составления универсального отношения.

Отметим, что повторение значений некоторых атрибутов от кортежа к кортежу, указывает на наличие избыточности данных, т.е. некоторые данные в отношении дублируются.

Например для поезда № 2131 дублируются значения атрибутов:

1 ) №поезда;

2) Подход;

3) №пути;

4) Момент_прибытия;

5) Момент_окончания_роспуска.

Это примеры избыточного дублирования данных.

Другой пример: для 2-го и 3-го вагонов поезда №2131 повторяется станция назначения Лихая. Это пример неизбыточного дублирования данных.

Избыточное дублирование должно быть ликвидировано на следующих этапах проектирования РБД.

После добавления недостающих значений атрибутов мы видим, что некоторые значения остались неопределенными (пустыми).

Например, в поезде №2005 не определено значения атрибута Момент_окончания_роспуска, т.к. поезд еще не расформирован. Соответственно значение этого атрибута не определено.

Это есть аномалия неопределенности данных.

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