Учебный ресурс кафедры физики твёрдого тела ФТИ ПетрГУ

Пишем программу на Python с доступом к базе данных.

Для выполнения задания мы будем использовать демонстрационную базу данных авиаперелётов (с именем demo) - от разработчиков СУБД Postges Pro. Описание модели данных приведено ЗДЕСЬ. Обязательно изучите структуру базы данных, поскольку иначе суть задания вам окажется непонятной. 

Примеры некоторых готовых запросов к базе данных demo:

  1. Вывести список всех самолётов кампании:

SELECT * FROM aircrafts;

  1. Вывести любые пять аэропортов:

SELECT airport_code, city FROM airports LIMIT 5;

  1. Выбрать все самолёты компании Airbus:

SELECT * FROM aircrafts WHERE model LIKE 'Аэробус%';

  1. Найти в таблице «Аэропорты» те из них, которые имеют названия длиной три символа:

SELECT * FROM airports WHERE airport_name LIKE '___';

 

Выполнение работы:

А) Соединитесь с БД demo и напишите запрос на языке SQL, решающий следующую задачу (в соответствии с вашим вариантом):

0. Какие самолёты имеют дальность полёта в диапазоне от 3 000 км до 6 000 км?

1. Выведите отменённые рейсы в сентябре 2017 года из аэропорта Пулково, отсортированные по возрастанию даты.

2. Сколько мест было занято в самолёте, летевшем из Анапы в Шереметьево 5 августа 2017 года?

3. Покажите список названий аэропортов, в которых было принято более 1000 рейсов с 1 июня 2017 года. Список отсортировать по убыванию количества рейсов.

4. Определите номера и времена отправления всех рейсов в 2017 году, опоздавших в аэропорты назначения более чем на один час.

5. Определите 30 номеров маршрутов, на каких чаще всего использовались самолёты компании Boeing.

6. Сколько маршрутов обслуживают самолёты каждого типа?

7. Каковы были в 2017 году максимальные и минимальные цены на билеты из Шереметьево в Сочи?

8. Определите фамилию и имя пассажира, пришедшего раньше всех на регистрацию рейса из Шереметьево в Воркуту 2 августа 2017 г.

9. Получите перечень аэропортов в тех городах, в которых больше одного аэропорта.

 

Б) Решите ту же самую задачу (в соответствии с вашим вариантом), написав программу на языке Python, не используя SQL-запрос. Используйте при написании программы технологию ORM, т. е. реализуйте доступ к данным с помощью объектного подхода к выполнению запросов, предоставляемого библиотекой SQLAlchemy. Для примера дана программа, написанная на Python с использованием библиотеки SQLAlchemy, подсчитывающая количество посадочных мест в самолётах различных типов в зависимости от категории мест.