Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой проект (2).doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.32 Mб
Скачать
  1. Логическое проектирование. Построение и проверка реляционной модели данных

3.1. Исключение из концептуальной модели особенностей несовместимых с реляционной моделью

Как видите, в ER-модели присутствуют двухсторонние и сложные связи типа "многие ко многим" (* : *) между следующими сущностями:

  1. Vladelec- Operatsiya- Transport;

  2. VidyKategoriy- Voditel.

Выполняем декомпозицию этих связей для выявления промежуточной сущности и заменяем необходимым количеством связей "один ко многим" (1 : *), в которых участвует вновь выявленная сущность. Обновляем ER-диаграмму.

Ниже представлена обновленная ER- диаграмма:

Схема 3.1. Обновленная ER - диаграмма предметной области

3.2. Формирование отношений

На данном этапе нам предстоит на основе созданных локальных логических моделей данных определить наборы отношений, необходимые для представления сущностей, связей и атрибутов, вводящих в представления отдельных пользователей о предметной области приложения. Для описания структуры создаваемых отношений мы воспользуемся языком DBDL (Database Definition Language — язык определения базы данных), широко используемым в реляционных СУБД.

Описание отношений на языке DBDL:

ChastStKoAP (IdChastSt, IdStatya, ChastSt, NameChast):

Первичный ключ: IdChastSt;

Внешний ключ IdStatya ссылается на StKoAP (IdStatya) ON UPDATE NO ACTION, ON DELETE NO ACTION;

Альтернативные ключи: ChastSt, NameChast.

KategoriiVU (IdKategotiya, IdVU, Date):

Первичный ключ: IdKategotiya + IdVU;

Внешний ключ IdKategotiya ссылается на VidyKategoriy (IdKategotiya) ON UPDATE NO ACTION, ON DELETE NO ACTION;

Внешний ключ IdVU ссылается на Voditel (IdVU) ON UPDATE NO ACTION, ON DELETE NO ACTION;

Marka (IdMarka, NameMarka):

Первичный ключ: IdMarka;

Альтернативные ключи: NameMarka.

Model (IdModel, IdTipTS, IdMarka, NameModel):

Первичный ключ: IdModel;

Внешний ключ IdTipTS ссылается на TipTS (IdTipTS) ON UPDATE NO ACTION, ON DELETE NO ACTION;

Внешний ключ IdMarka ссылается на Marka (IdMarka) ON UPDATE NO ACTION, ON DELETE NO ACTION;

Альтернативные ключи: NameModel.

Operatsiya (IdOperatsiya, NameOp):

Первичный ключ: IdOperatsiya;

Альтернативные ключи: NameOp.

Protocol (IdProtocol, IdSotrudnik, IdVU, IdTS, IdChastSt, DateTimeNar, MestoNar, OpisanieNar, DateVyd, Oplacheno):

Первичный ключ: IdProtocol;

Внешний ключ IdSotrudnik ссылается на Sotrudnik (IdSotrudnik) ON UPDATE NO ACTION, ON DELETE NO ACTION;

Внешний ключ IdVU ссылается на Voditel (IdVU) ON UPDATE NO ACTION, ON DELETE NO ACTION;

Внешний ключ IdTS ссылается на Transport (IdTS) ON UPDATE NO ACTION, ON DELETE NO ACTION.

Внешний ключ IdChastSt ссылается на ChastStKoAP (IdChastSt) ON UPDATE NO ACTION, ON DELETE NO ACTION.

Shtraf (IdChastSt, Date, Razmer):

Первичный ключ: IdChastSt + Date;

Внешний ключ IdChastSt ссылается на ChastStKoAP (IdChastSt) ON UPDATE NO ACTION, ON DELETE NO ACTION;

Sotrudnik (IdSotrudnik, Familiya, Imya, Otchestvo, Dolzhnost, Zvanie):

Первичный ключ: IdSotrudnik.

StKoAP (IdStatya, Statya, NameStatya):

Первичный ключ: IdStatya;

Альтернативные ключи: Statya, NameStatya.

TipTS (IdTipTS, NameTipTS):

Первичный ключ: IdTipTS;

Альтернативные ключи: NameTipTS.

Transport (IdTS, IdModel, RegZnak, GodVypuska, N_Dvigatelya, N_Kuzova, Cvet, Seriya_TS, N_TS):

Первичный ключ: IdTS;

Внешний ключ IdModel ссылается на Model (IdModel) ON UPDATE NO ACTION, ON DELETE NO ACTION;

Альтернативные ключи: RegZnak, N_Dvigatelya, N_Kuzova, Seriya_TS + N_TS.

UchetTS (IdVladelec, IdOperatsiya, IdTS, DateOp)

Первичный ключ: IdVladelec + IdOperatsiya + IdTS + DateOp.

Ugon (IdUgon, IdTS, DateUgon, MestoUgon, DateVozvrata, MestoNahozhdeniya):

Первичный ключ: IdUgon;

Внешний ключ IdTS ссылается на Transport (IdTS) ON UPDATE NO ACTION, ON DELETE CASCADE.

VidyKategoriy (IdKategotiya, Kategoriya, Opisanie):

Первичный ключ: IdKategotiya + IdUchenik + IdUchGod;

Альтернативные ключи: Kategoriya.

Vladelec (IdVladelec, Familiya, Imya, Otchestvo, Birthday, Adres, INN, Seria_pas, N_pas):

Первичный ключ: IdVladelec;

Альтернативные ключи: INN, Seria_pas + N_pas.

Voditel (IdVU, Familiya, Imya, Otchestvo, Birthday, INN, City, Seriya_VU, N_VU, DateVydachi, DeystvitelenDo, OsobyeOtmetki):

Первичный ключ: IdVU;

Альтернативные ключи: INN, Seriya_VU + N_VU.

Все отношения находятся в нормальной форме Бойса-Кодда.

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

Ниже представлена реляционная схема предметной области:

Схема 3.2. Реляционная схема предметной области