Создание базы данных «Грузопоток», которая позволяет быстро и эффективно управлять грузооборотом, вести учет транспортных средств, составлять отчеты для руководителей и различных отделов, страница 3

Выделяется сущность «Категория», имеющая связь с сущностью «Груз». Сущность «Категория» является в большей мере справочной информацией о расценках на перевозку того или иного груза, поэтому данные в ней редко меняются. Каждый груз принадлежит какой-то категории, в зависимости от его веса и направления устанавливается цена за штуку перевозимого груза. Однако одна категория может содержать несколько грузов.

Данный фрагмент ER-диаграммы выглядит следующим образом:

                                    включает                  

Груз

Код груза

Наименование

Код категории

 

Категория

Код категории

Направление

Вес груза

Цена за штуку

 

                                       

Рис.1

Сущность «Груз» необязательна для сущности «Категория», потому что данная сущность может существовать даже если в ней нет груза. Поэтому, связь между «Категорией» и «Грузом» устанавливается так, как показано на рисунке 1. Связь 1:М(одни ко многим).

В свою очередь сущность «Груз» непосредственно связана с сущностью «Заказ». Один груз может участвовать в нескольких заказах, поэтому устанавливается связь 1:М. С другой стороны каждый груз, который принадлежащий базе данных «Грузопоток» участвует в заказе, иначе его не вносят в базу, поэтому сущность «Заказ» обязательна для сущности «Груз».

Данный фрагмент ER-диаграммы выглядит следующим образом:

Заказ

Номер заказа

Код груза

… … …

… … …

 

Груз

Код груза

Наименование

Код категории

 
                                заказан

                                                     

Рис. 2

В то же время с сущностью «Заказ» связана сущность «Получатель», потому что именно получатель делает заказ:

 


                              заказывает

                         

Рис. 3

У одного получателя может быть множество заказов, поэтому устанавливается связь 1:М. Сущность «Заказ» обязательна для сущности «Получатель», потому что те получатели, которые находятся в базе данных «Грузопоток» обязательно делали заказ на поставку груза.

И, наконец, для перевозки какого - либо груза обязательно требуется транспортное средство, поэтому выделяется сущность «Транспорт», имеющую связь с сущностью «Заказ»:

Заказ

Номер заказа

Код транспорта

… … …

… … …

 

Транспорт

Код транспорта

Наименование

Грузоподъемность

 
                                      участвует

 


Рис. 4

Одно транспортное средство может участвовать в нескольких заказах - связь 1:М. Сущность «Заказ» необязательна для сущности «Транспорт», потому что не каждый автомобиль участвует в заказе, тем не менее база «Транспорт» существует независимо от того использовался ли данный транспорт в заказе или нет.

Компоненты ER-модели

Сущность

Связь

Связность

Сущность

Категория

Груз

Получатель

Транспорт

Включает

Заказан

Заказывает

Участвует

1:М

1:М

1:М

1:М

Груз

Заказ

Заказ

Заказ

Таблица 2.

Полная ER-диаграмма имеет следующий вид:

Получатель

Код получателя

Наименование

Адрес

 

Категория

Код категории

Направление

Вес груза

Цена за штуку

 
 


                  заказан                                          заказывает

 


включает                                     участвует

 


Рис. 5

Проектирование базы данных реляционного типа

Для удобства работы заменим имена и названия предметной области символическими обозначениями:

п/п

Наименование

Символическое обозначение

Характеристики

1

Заказ

Zak

50 записей

2

Код заказа

KZak

Символьный(4)

3

Код груза

KGr

Символьный(4)

4

Код получателя

KPol

Символьный(4)

5

Код транспорта

KTruns

Символьный(4)

6

Количество

Kol

Целочисленный(16)

7

Стоимость

St

Целочисленный(16)

8

Получатель

Pol

50 записей

9

Код получателя

KPol

Символьный(4)

10

Наименование

PNaim

Символьный(30)

11

Адрес

PAdr

Символьный(35)

12

Груз

Gr

50 записей

13

Код груза

KGr

Символьный(4)

14

Наименование

GNaim

Символьный(30)

15

Код категории

KKat

Символьный(4)

16

Категория

Kat

50 записей

17

Код категории

KKat

Символьный(4)

18

Направление

KNapr

Символьный(30)

19

Вес

KVes

Символьный(30)

20

Цена

KCena

Целочисленный(16)

21

Транспорт

Truns

50 записей

22

Код транспорта

KTruns

Символьный(4)

23

Наименование

TNaim

Символьный(30)

24

Грузоподъемность

TGruz

Целочисленный(16)

Таблица 3.

Для определения состава таблиц следует произвести нормализацию исходного иерархического отношения: