
-
Фізичне проектування
Після того, як база даних повністю спроектована її можна зберегти у СУБД Oracle. Кожна сутність відповідає таблиці, атрибути сутності відповідають полям таблиці.
Створення таблиці ВОДІЙ
CREATE TABLE `DRIVER`(
`DRIVER_PK` NUMBER(10) PRIMARY KEY UNIQUE NOT NULL,
`F_NAME` VARCHAR2(100) NOT NULL,
`S_NAME` VARCHAR2(100) NOT NULL,
`T_NEME` VARCHAR2(100) NOT NULL,
`SEX` CHAR(1) NOT NULL CHECK(`SEX` IN ('f', 'm')),
`BIRTH` DATE NOT NULL,
`NUM_PASSPORT` VARCHAR2(10) NOT NULL,
`REGISTRATION` VARCHAR2(100) NOT NULL,
`NUM_IDENTIFICATION` NUMBER(10) NOT NULL,
`DATE` DATE NOT NULL,
`NUMBER` VARCHAR2(10) NOT NULL
);
Створення таблиці ТИП АВТОМОБІЛЯ
CREATE TABLE `TYPE`(
`TYPE_PK` NUMBER(10) PRIMARY KEY UNIQUE NOT NULL,
`BODY` VARCHAR2(20) NOT NULL CHECH(`BODY` IN('Седан','Уніврсал','Хетчбет','Купе','Лімузин','Мінівен','Таун-кар','Комби','Лифтбек','Кабріолет','Родстер','Фаетрон','Ландо','Брогам','Тарга','Спайдер','Пікап','Фургон')),
`ENGINE` VARCHAR2(20) NOT NULL CHECH(`ENGINE` IN('Двохтактні','Чотирьотактні','Двохциліндрові','Чотирьохциліндрові','Шестициліндрові','Восьмициліндрові')),
`WEIGHT` NUMBER(10) NOT NULL,
`CAPACITY` NUMBER(10) NOT NULL,
`FUEL` VARCHAR2(5) NOT NULL CHECK(`FUEL` IN('А-92','А-95','А-98','Дизель','Газ'))
);
Створення таблиці АВТОМОБІЛЬНИЙ НОМЕР
CREATE TABLE `NUMBER`(
`NUMBER_PK` NUMBER(10) PRIMARY KEY UNIQUE NOT NULL,
`TYPE` VARCHAR2(10) NOT NULL CHECK(`TYPE` IN('Транзитні','Постійні')),
`NUMBER` NUMBER(8) NOT NULL,
`DATE` DATE NOT NULL
);
Створення таблиці АВТОМОБІЛЬ
CREATE TABLE `CAR` (
`CAR_PK` NUMBER(10) PRIMARY KEY UNIQUE NOT NULL,
`TYPE_FK` NUMBER(10) NOT NULL REFERENCES TYPE(TYPE_PK) ON DELETE SET NULL,
`NUMBER_FK` NUMBER(10) NOT NULL REFERENCES NUMBER(NUMBER_PK) ON DELETE SET NULL,
`DRIVER_FK` NUMBER(10) NOT NULL REFERENCES DRIVER(DRIVER_PK) ON DELETE SET NULL,
`COUNTRY` VARCHAR2(100) NOT NULL,
`DATE` DATE NOT NULL,
`NUM_ENGINE` VARCHAR2(20) NOT NULL,
`NUM_BODY` VARCHAR2(20) NOT NULL,
`COLOR` VARCHAR2(50) NOT NULL
);
Створення таблиці КЕРУВАННЯ
CREATE TABLE `DRIVE_CAR`(
`CAR_FK` NUMBER(10) NOT NULL REFERENCES CAR(CAR_PK) ON DELETE CASCADE,
`DRIVER_FK` NUMBER(10) NOT NULL REFERENCES DRIVER(DRIVER_PK) ON DELETE CASCADE
);
Створення таблиці СПІВРОБІТНИКИ
CREATE TABLE `EMPLOEE`(
`EMPLOEE_PK` NUMBER(10) PRIMARY KEY UNIQUE NOT NULL,
`F_NAME` VARCHAR2(100) NOT NULL,
`S_NAME` VARCHAR2(100) NOT NULL,
`T_NEME` VARCHAR2(100) NOT NULL,
`POST` VARCHAR2(20) NOT NULL,
`RANK` VARCHAR2(20) NOT NULL CHECK(`RANK` IN('Мл. Сержант','Сержант','Ст. Сержант','Старшина','Прапорщик','Ст. Прапорщик','Мл. Лейтенан','Лейтенант','Ст. Лейтенант','Капітан','Майор','Підполковник','Полковник'))
`BIRTH` DATE NOT NULL,
`BATTALION` NUMBER(10) NOT NULL
);
Створення таблиці РОЗШУК
CREATE TABLE `SEARCH`(
`CAR_FK` NUMBER(10) NOT NULL REFERENCES CAR(CAR_PK) ON DELETE CASCADE,
`DATE` DATE NOT NULL,
`TYPE` VARCHAR2(300) NOT NULL
);
Створення таблиці ТЕХНІЧНИЙ ПАСПОРТ
CREATE TABLE `TECHNICAL_CERTIFICATE`(
`CAR_FK` NUMBER(10) NOT NULL REFERENCES CAR(CAR_PK) ON DELETE CASCADE,
`EMPLOEE_FK` NUMBER(10) NOT NULL REFERENCES EMPLOEE(EMPLOEE_PK) ON DELETE CASCADE,
`DATE` DATE NOT NULL,
`NUMBER` NUMBER(10) NOT NULL,
`EXPIRATION_DATE` DATE NOT NULL CHECK(`EXPIRATION_DATE`>`DATE`)
);
Створення таблиці СТАТТЯ
CREATE TABLE `ARTICLE`(
`ARTICLE_PK` NUMBER(10) PRIMARY KEY UNIQUE NOT NULL,
`NUMBER` NUMBER(5) NOT NULL CHECK(`NUMBER`>0),
`DESC` VARCHAR2(300) NOT NULL,
`PUNISHMENT` VARCHAR2(100) NOT NULL
);
Створення таблиці ШТРАФ
CREATE TABLE `FINE`(
`FINE_PK` NUMBER(10) PRIMARY KEY UNIQUE NOT NULL,
`CAR_FK` NUMBER(10) NOT NULL REFERENCES CAR(CAR_PK) ON DELETE CASCADE,
`DRIVER_FK` NUMBER(10) NOT NULL REFERENCES DRIVER(DRIVER_PK) ON DELETE CASCADE,
`EMPLOEE_FK` NUMBER(10) NOT NULL REFERENCES EMPLOEE(EMPLOEE_PK) ON DELETE SET NULL,
`FINE` VARCHAR2(100) NOT NULL,
`DATE` DATE NOT NULL,
`ARTICLE_FK` NUMBER(10) NOT NULL REFERENCES ARTICLE(ARTICLE_PK) ON DELETE CASCADE
);
Створення таблиці ШТРАФ-МАЙДАНЧИК
CREATE TABLE `AREA`(
`CAR_FK` NUMBER(10) NOT NULL REFERENCES CAR(CAR_PK) ON DELETE CASCADE,
`PLACE` NUMBER(5) NOT NULL CHECK(`PLACE`>0),
`DATE` DATE NOT NULL,
`FINE_FK` NUMBER(10) REFERENCES FINE(FINE_PK) ON DELETE SET NULL
);
Створення таблиці СТРАХОВКА
CREATE TABLE `INSURANCE`(
`CAR_FK` NUMBER(10) NOT NULL REFERENCES CAR(CAR_PK) ON DELETE CASCADE,
`FIRM` VARCHAR2(50) NOT NULL,
`TYPE` VARCHAR2(50) NOT NULL CHECK(`TYPE` IN('ОСАГО','КАСКО')),
`PRICE` NUMBER(10, 2) NOT NULL,
`DATE` DATE NOT NULL
);