Лабораторная работаИнформационные системыГод: 2024ПГУТИ: Поволжский государственный университет телекоммуникаций и информатики
👁 14💼 0

Готовая лабораторная работа: Модель БД и подключение Python

Загружена: 24.02.2026 10:12

Разработка простой реляционной модели базы данных для сервиса аренды автомобилей. В работе описаны ER‑модель, SQL‑скрипты для MySQL и SQLite, индексы и примеры интеграции с Python (файлы app.py, backend.py). Практическая ценность — готовые DDL‑скрипты и пример CRUD‑функций для учебных проектов.

Содержание

В лабораторной работе рассматривается процесс проектирования базы данных для системы аренды автомобилей. Разработана ER-модель, которая была преобразована в логическую и физическую структуры реляционной базы данных с созданием таблиц, индексов и связей между ними. Выполнена интеграция базы данных с Python-приложением, реализованы функции для подключения к БД и выполнения операций бронирования. В ходе работы изучены основные принципы SQL и Python DB-API для эффективного управления данными.

Подробное описание

📘 О чем эта работа

Лабораторная работа посвящена разработке простой реляционной модели базы данных для системы аренды автомобилей и её подключению из Python‑приложения на Ubuntu. Объект — система car rental; предмет — модель сущностей (Cars, Customers, Bookings, Employees, Payment), SQL‑структуры и взаимодействие через Python (mysql.connector/DB‑API, SQLite‑вариант).

📚 Что внутри

В документе последовательно представлены следующие элементы:

  • ER‑модель и описание сущностей: Cars (car_id, brand, model, plate_number, year, status, price), Customers (customer_id, name, contact_info), Bookings (booking_id, customer_id, car_id, booking_date, return_date, payment_status), Employees, Payment.
  • Преобразование ER в логическую структуру: указаны первичные и внешние ключи (CarID, CustomerID, BookingID, EmployeeID, PaymentID) и связи «один‑ко‑многим» между Car↔Booking, Customer↔Booking, Booking↔Payment.
  • SQL‑скрипты для MySQL и адаптация под SQLite: CREATE TABLE для Car, Customer, Booking, Employee, Payment; примеры полей (RegistrationNumber, RentalPrice, TotalPrice) и CHECK/UNIQUE ограничений.
  • Индексация: уникальные индексы для Email и RegistrationNumber и обычные индексы для внешних ключей (idx_booking_customer_id, idx_booking_car_id, idx_payment_booking_id) для ускорения запросов.
  • Фрагменты Python‑кода и структура приложения: файлы app.py, backend.py, car_rental.py с функциями connect_db/connect_to_db, get_all_cars/get_cars, book_car/create_booking; показаны маршруты для получения списка автомобилей и создания бронирования с использованием DB‑API/mysql.connector и sqlite3.
  • Скриншоты HTML‑страниц: страница выбора роли и главная страница приложения с формой бронирования и таблицей доступных автомобилей.
  • Контрольные вопросы и ответы по РБД, SQL и Python DB‑API; выводы о выполненной работе и применённых инструментах.

📊 Для кого подходит

Материал пригоден студентам технических специальностей (информатика, прикладная математика, программирование), преподавателям, а также для выполнения лабораторных по дисциплинам «Платформы и программные среды разработки информационных систем», «Базы данных» и курсовых проектов по CRUD‑функционалу.

✨ Особенности

Работа содержит конкретные и воспроизводимые артефакты: полноформатные DDL‑скрипты и индексы как для MySQL, так и для SQLite; примеры полей и типов (VARCHAR, INT, DECIMAL, DATE), CHECK‑ограничения для статусов; готовые шаблоны Python‑функций для подключения и выполнения CRUD‑операций. Это экономит время при создании учебного проекта или адаптации под требования вуза.

❓ Частые вопросы

Подойдет ли для моего ВУЗа?
Структура лабораторной соответствует стандартным требованиям: цель, ход работы, скрипты создания БД, примеры кода и выводы. При необходимости легко адаптируется под формат преподавателя (именование полей, автогенерация ключей).

Можно адаптировать?
Да — SQL‑скрипты содержат варианты для MySQL и SQLite, а Python‑файлы — модульную структуру (connect_db, get_all_cars, book_car), что позволяет быстро изменить диалект СУБД или добавить ORM.

Практическая польза

Готовые артефакты: ER‑схема, таблицы Car/Customer/Booking/Employee/Payment, индексы (idx_customer_email, idx_car_registration_number, idx_booking_customer_id и др.), и примеры маршрутов в app.py для получения списка автомобилей и оформления бронирования. Все элементы можно запускать локально на Ubuntu с MySQL или SQLite.

Как использовать

  • Импортировать SQL‑скрипты в MySQL/MariaDB или выполнить SQLite‑файлы через sqlite3;
  • Настроить строку подключения в backend.py (mysql.connector.connect или sqlite3.connect);
  • Запустить app.py — доступны маршруты GET /cars и POST /bookings (пример);
  • Адаптировать поля и валидацию под требования преподавателя.