---
# System prepended metadata

title: ЛР2

---

# ЛР2

Варіант 8
Створити і заповнити відношення БД пункту прокату автомобілів:
1. Клієнти: (Id (ПК), ПІБ, Посвідчення водія, Дата отримання посвідчення водія). 
2. Моделі: (Id (ПК), Назва моделі, Марка, Ціна за день оренди, Місткість, Тип кузова). 
3. Автомобілі: (Id (ПК), Держномер, Рік випуску, Колір, Стан, Пробіг, Модель (ЗК)). 
4. Договори на оренду: (Id (ПК), Клієнт (ЗК  до таблиці Клієнти, обов’язкове поле ), Автомобіль  (ЗК до  таблиці Автомобілі, обов’язкове поле), Дата укладення договору (D, обов'язкове поле), Тривалість договору (в днях, N 3 0, обов'язкове поле), Вартість договору (N 10 2, обов'язкове поле), Дата повернення (D, необов'язкове поле)) Примітки: Перевірити, що до моменту закінчення договору не закінчився термін дії водійського посвідчення клієнта (воно діє протягом 10 років). 

Схема БД
![](https://i.imgur.com/1mjZvvy.png)


Відношення БД
```sql=
CREATE TABLE clients
(
    client_id int PRIMARY KEY AUTO_INCREMENT,
    driver_license int NOT NULL,
    date_of_receiving date NOT NULL
);

CREATE TABLE models
(
    model_id int PRIMARY KEY AUTO_INCREMENT,
    model varchar(50) NOT NULL,
    brend varchar(30) NOT NULL,
    price_per_day int NOT NULL,
    roominess int NOT NULL,
    body_type varchar(20) NOT NULL
);

CREATE TABLE cars
(
    car_id int PRIMARY KEY AUTO_INCREMENT,
    state_number int NOT NULL,
    year_of_issue year NOT NULL,
    color varchar(30) NOT NULL,
    car_condition varchar(40) NOT NULL,
    mileage int NOT NULL,
    model_id int NOT NULL,
    
    FOREIGN KEY(model_id) REFERENCES models(model_id)
);

CREATE TABLE contracts
(
    contract_id int PRIMARY KEY AUTO_INCREMENT,
    client_id int NOT NULL,
    car_id int NOT NULL,
    contract_date date NOT NULL,
    duration int NOT NULL,
    price int NOT NULL,
    return_date date NOT NULL CHECK(DATE_ADD(clients(date_of_receiving), INTERVAL 10 year) >= contracts(return_date)),
    
    FOREIGN KEY(client_id) REFERENCES clients(client_id),
    FOREIGN KEY(car_id) REFERENCES cars(car_id)
);
```