constraint CKC_IDZAKAZ_OUT_MARSHRUT check (IDZakaz_Out is null or (IDZakaz_Out >= 1)),
Next_NomerMarshrut numeric null,
DestanationTime int not null default 0
constraint CKC_DESTANATIONTIME_MARSHRUT check (DestanationTime >= 0),
WaitingTime int not null default 0
constraint CKC_WAITINGTIME_MARSHRUT check (WaitingTime >= 0),
constraint PK_MARSHRUT primary key nonclustered (NomerMarshrut)
)
go
/*==============================================================*/
/* Table: Reys */
/*==============================================================*/
create table Reys (
ReisNumber numeric identity,
KodDispetcher numeric null,
KodKolon numeric not null,
NomerMarshrut numeric null,
DateStart datetime not null,
DateFinish datetime not null,
constraint PK_REYS primary key nonclustered (ReisNumber),
constraint CKT_REYS check (DateStart <= DateFinish)
)
go
/*==============================================================*/
/* Table: Tovar */
/*==============================================================*/
create table Tovar (
KodTovar numeric identity,
NaimenTovar char(60) not null,
EdIzmerenTovar char(6) not null,
VesEdiniciTovar float not null default 0
constraint CKC_VESEDINICITOVAR_TOVAR check (VesEdiniciTovar >= 0),
constraint PK_TOVAR primary key nonclustered (KodTovar)
)
go
/*==============================================================*/
/* Table: Transport */
/*==============================================================*/
create table Transport (
KodAvto numeric identity,
GosNumAvto char(6) not null,
MarkaAvto char(20) null,
IspravenAvto bit not null default 1,
GruzopodemAvto int not null default 0
constraint CKC_GRUZOPODEMAVTO_TRANSPOR check (GruzopodemAvto >= 0),
constraint PK_TRANSPORT primary key nonclustered (KodAvto)
)
go
/*==============================================================*/
/* Table: Zakaz */
/*==============================================================*/
create table Zakaz (
IDZakaz numeric identity
constraint CKC_IDZAKAZ_ZAKAZ check (IDZakaz >= 1),
KodMenedger numeric not null,
KodTovar numeric not null,
TovarKolich int not null
constraint CKC_TOVARKOLICH_ZAKAZ check (TovarKolich >= 1),
constraint PK_ZAKAZ primary key nonclustered (IDZakaz)
)
go
alter table Kolonna
add constraint FK_KOLONNA_AVTO_IN_K_TRANSPOR foreign key (KodAvto)
references Transport (KodAvto)
go
alter table Kolonna
add constraint FK_KOLONNA_DRIVER_IN_DRIVER foreign key (KodDriver)
references Driver (KodDriver)
go
alter table Kolonna
add constraint FK_KOLONNA_KOLLONA_I_KOLONNA foreign key (Next_KodKolon)
references Kolonna (KodKolon)
go
alter table Marshrut
add constraint FK_MARSHRUT_CLIENT_IN_CLIENT foreign key (KodKlienta)
references Client (KodKlienta)
go
alter table Marshrut
add constraint FK_MARSHRUT_MARSHRUT__MARSHRUT foreign key (Next_NomerMarshrut)
references Marshrut (NomerMarshrut)
go
alter table Marshrut
add constraint FK_MARSHRUT_ZAKAZ_IN__ZAKAZ_2 foreign key (IDZakaz_IN)
references Zakaz (IDZakaz)
go
alter table Marshrut
add constraint FK_MARSHRUT_ZAKAZ_IN__ZAKAZ foreign key (IDZakaz_Out)
references Zakaz (IDZakaz)
go
alter table Reys
add constraint FK_REYS_DISPETCHE_DISPETCH foreign key (KodDispetcher)
references Dispetcher (KodDispetcher)
go
alter table Reys
add constraint FK_REYS_KOLONNA_I_KOLONNA foreign key (KodKolon)
references Kolonna (KodKolon)
go
alter table Reys
add constraint FK_REYS_MARSHRUT__MARSHRUT foreign key (NomerMarshrut)
references Marshrut (NomerMarshrut)
go
alter table Zakaz
add constraint FK_ZAKAZ_MANAGER_I_MANAGER foreign key (KodMenedger)
references Manager (KodMenedger)
go
alter table Zakaz
add constraint FK_ZAKAZ_TOVAR_IN__TOVAR foreign key (KodTovar)
references Tovar (KodTovar)
go
6 MS SQL Server Diagram
После запуска полученного SQL скрипта в СУБД MS SQL Server 2005 были получены следующие таблицы:

Ниже для них представлена диаграмма.

Рисунок 3 MS SQL Server Diagram
7 Constraint realization
Покажем, что указанные выше ограничения действуют:
7.1 Ограничения на значение
7.1.1 Ограничения на Вес единицы товара


7.1.2 Ограничения на Время остановки
![]()

7.1.3 Ограничения на Время поездки (мин.)
![]()

7.1.4 Ограничения на Грузоподъемность авто


7.1.5 Ограничения на Категория
![]()

7.1.6 Ограничения на Товар количество


7.1.7 Ограничения на Дату начала, Дату конца


7.2 Ограничения на связь
7.2.1 Ограничение на связь Товар – Заказ
Товар

Заказ


7.2.2 Ограничение на связь Менеджер – Заказ
Менеджер

Заказ


7.2.3 Ограничение на связь Клиент – Маршрут
Клиент

Маршрут
![]()

7.2.4 Ограничение на связь Маршрут – Рейс
Маршрут
![]()
Рейс


7.2.5 Ограничение на связь Заказ – Маршрут
Заказ

Маршрут
![]()

![]()

Все описанные ограничения выполняются.
8 Interface
Опишем возможных пользователей нашей базы данных и операции, которые для них доступны
8.1 Интерфейс для пользователя «Водитель»
Водители - сотрудники данной организация. Вид деятельности - управление транспортным средством, перевоз груза по заданным маршрутам. Согласно Трудовому Кодексу, в организацию принимаются водители работоспособного возраста.
8.1.1 Доступные таблицы для пользователя «Водитель»
· Транспорт
· Колонна
· Заказ
· Маршрут
· Рейс
8.1.2 Доступные действия для пользователя «Водитель»
· Просмотр транспорта, на котором поедет водителей в заданном рейсе
· Просмотр списка других водителей, с которыми поедет этот водитель
· Просмотр заказа (с указанием веса), который нужно будет забрать или доставить
· Просмотр маршрута, по которому нужно будет ехать водителю
· Просмотр расписания рейсов, в которых участвует данный водитель
8.2 Интерфейс для пользователя «Диспетчер»
Диспетчер. Основная обязанность - формирование колонн и рейсов.
8.2.1 Доступные таблицы для пользователя «Диспетчер»
· Транспорт
· Водитель
· Колонна
· Заказ
· Клиент
· Маршрут
· Рейс
8.2.2 Доступные действия для пользователя «Диспетчер»
· Просмотр транспорта, который будет задействован в колонне
· Просмотр списка водителей, которые будут задействованы в колонне
· Формирование колонны
· Просмотр заказа (с указанием веса), который нужно будет забрать или доставить
· Просмотр маршрута, по которому нужно будет ехать колонне
· Формирование расписания рейсов
8.3 Интерфейс для пользователя «Диспетчер»
Менеджеры - Сотрудники данной организации. Основной обязательностью является формирование заказов в определенную точку, на основе заказов
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.