Эти материалы необходимы при выполнении лабораторного практикума по курсу "Базы данных" и для подготовки к экзамену.
Тема 1. Изучение Microsoft Access
Изучение Microsoft Access
Практика MS Access & VB.NET (учебно-методическое пособие).
Тема 2. Изучение Microsoft SQL Server
Изучение Microsoft SQL Server
Практикум по языку SQL. Работа с базой данных Pubs и с собственной базой данных.
Тема 3. Изучение СУБД PostgreSQL
Знакомство с СУБД PostgreSQL: Изучение основ работы пользовательского приложения с СУБД PostgreSQL
PostgreSQL является популярной свободно распространяемой сетевой постреляционной базой данных уровня предприятия, по языку SQL во многом схожей с изученной ранее СУБД Microsoft SQL Server. Одно из главных отличий – PostgreSQL использует массивы и сложные структуры данных.
Для выполнения задания мы будем использовать демонстрационную базу данных авиаперелётов (с именем demo), разработанную авторами данной СУБД. Описание модели данных приведено ЗДЕСЬ. Обязательно изучите структуру базы данных, поскольку иначе суть задания вам окажется непонятной. База данных размещена на сервере scilink.ru, порт 5432. Доступ к базе данных (только на чтение) осуществляется от имени пользователя demo с паролем <fpsLfyys[211 (по соответствующим русским символам запомнить пароль будет легче). Однако для удобства работы желательно установить PostgreSQL и демонстрационную базу данных на свой компьютер, в ПОСОБИИ, представленном авторами СУБД, вы найдёте все необходимые дополнительные инструкции.
Задание выполняется по вариантам. Для каждого варианта - только один запрос. Номер варианта соответствует последней цифре вашего логина, который вам выдал преподаватель. Суть работы заключается в написании запроса к базе данных в соответствии с поставленными условиями задачи. А особенность вывода результата заключается в том, что созданный запрос должен быть выполнен в программе, написанной на языке Python. Среда разработки для языка Python предполагается установленной на все компьютеры в компьютерном классе. Если вы выполняете задание на собственном ноутбуке, вам необходимо поставить актуальную версию IDLE Python и дополнительный модуль psycopg2 для доступа к СУБД PostgreSQL.
Варианты:
0. Выберите все модели самолётов вместе с общим количеством мест в салоне, отсортируйте самолёты по дальности полётов.
1. Выведите отменённые рейсы в сентябре 2017 года из аэропорта Пулково, отсортированные по возрастанию даты.
2. Сколько мест было занято в самолёте, летевшем из Анапы в Шереметьево 5 августа 2017 года?
3. Напишите запрос, возвращающий список названий аэропортов, в которых было принято более 1000 рейсов с 1 июня 2017 года. Список отсортировать по убыванию количества рейсов.
4. Определите номера и времена отправления всех рейсов в 2017 году, опоздавших в аэропорты назначения более чем на один час.
5. Определите 50 номеров маршрутов, на каких чаще всего использовались самолёты компании Boeing.
6. Сколько маршрутов обслуживают самолёты каждого типа?
7. Каковы были в 2017 году максимальные и минимальные цены на билеты из Шереметьево в Сочи?
8. Определить фамилию и имя пассажира, пришедшего раньше всех на регистрацию рейса из Шереметьево в Воркуту 2 августа 2017 г.
9. Получить перечень аэропортов в тех городах, в которых больше одного аэропорта.
Задание удобно выполнить в два этапа:
- Изучение структуры и содержания базы данныхdemo, написание и отладка требуемого запроса. В этом случае вам подойдёт любое из клиентских приложений для доступа кPostgreSQL, включая собственного клиента командной строки psql. Удобно использовать бесплатное приложение DBeaver, с помощью которого можно быстро и удобно работать с различными СУБД (MSSQL, MySQL, MariaDB, PosgreSQL). Для отладки ваших запросов возможностей этого приложения хватит с избытком. Очевидно, что некоторые особенности в написании запросов есть у каждого варианта. Однако PostgreSQL настолько популярна, что Google знает про неё ответы на все случаи жизни. Кроме того, ниже вам предложен ряд решённых задач по написанию запросов к базе данных demo: потренируйтесь на этих примерах.
- Перенос отлаженного запроса в программу на языкеPython. В данном курсе вам не требуется изучать все возможности и синтаксические конструкции этого нового для вас языка, достаточно изучить и понять демонстрационный пример и слегка его переработать, чтобы корректно вывести информацию на экран в текстовом режиме. Если же вы знаете язык Python или хотите научиться писать программы на нём, вы можете самостоятельно доработать приложение, что положительно повлияет на экзаменационную оценку.
Примеры реализации запросов к базе данных demo:
- Вывести список всех самолётов кампании:
SELECT * FROM aircrafts;
- Вывести любые пять аэропортов:
SELECT airport_code, city FROM airports LIMIT 5;
- Выбрать все самолёты компании Airbus:
SELECT * FROM aircrafts WHERE model LIKE 'Аэробус%';
- Найти в таблице «Аэропорты» те из них, которые имеют названия длиной три символа:
SELECT * FROM airports WHERE airport_name LIKE '___';
- Какие самолёты имеют дальность полёта в диапазоне от 3 000 км до 6 000 км?
SELECT * FROM aircrafts WHERE range BETWEEN 3000 AND 6000;
- В каких различных часовых поясах располагаются аэропорты?
SELECT DISTINCT timezone FROM airports ORDER BY timezone;
- Найти три самых восточных аэропорта:
SELECT airport_name, city, coordinates[0] FROM airports
ORDER BY 3 DESC LIMIT 3;
- Выбрать все места, предусмотренные компоновкой салона самолётаCessna:
SELECT s.seat_no, s.fare_conditions
FROM seats AS s JOIN aircrafts AS a ON s.aircraft_code = a.aircraft_code
WHERE a.model LIKE 'Сессна%' ORDER BY s.seat_no;
- Сколько всего маршрутов нужно было бы сформировать, если бы требовалось соединить каждый город со всеми остальными городами?
SELECT count(*) FROM airports a1 JOIN airports a2 ON a1.city <> a2.city;
- В каких городах больше одного аэропорта?
SELECT city, count(*) FROM airports
GROUP BY city HAVING count(*) > 1;
- Подсчитать количество операций бронирования, в которых общая сумма превышает среднюю величину операций бронирования по всем пассажирам.
SELECT COUNT(*) FROM bookings
WHERE total_amount > (SELECT AVG(total_amount) FROM bookings)
Курсовой проект: Интернет-доступ к базе данных
Курсовой проект 'Интернет-доступ к базе данных'
Содержание проекта:
Задачей проекта является разработка web-интерфейса к созданной вами собственной сетевой базе данных (СУБД PostgreSQL либо Microsoft SQL Server). Структуру созданной вами базы данных необходимо показать преподавателю для проверки. Web-интерфейс реализуется на языке PHP (базовый вариант), однако допускается использование любого серверного языка программирования на ваш выбор. База данных должна состоять как минимум из пяти таблиц, причём в таблицах должны быть предусмотрены поля для хранения данных в текстовом формате, формате даты и бинарном формате. Должна быть создана как минимум одна хранимая процедура либо функция. Web-интерфейс должен решать задачи представления данных, взятых из базы данных (используя вызов хранимой процедуры), а также реализовывать ввод, изменение и удаление данных (в том числе бинарных) в одной или в нескольких таблицах.
Особенности реализации проекта.
Оформление проекта:
Проект должен быть оформлен в печатном виде либо в виде электронного документа (в формате docx или pdf) в соответствии с общими требованиями, предъявляемыми к оформлению курсовых проектов, в чёрно-белом или цветном исполнении. Содержание должно включать в себя:
- описание цели работы
- описание предметной области для базы данных
- схему базы данных
- описание структуры отдельных таблиц в базе данных
- описание хранимых процедур либо функций
- скриншоты web-интерфейса к базе данных и описание логики пользовательского интерфейса
- фрагменты кода программы, содержащие обращения к базе данных, снабжённые необходимыми комментариями (полный код сайта приводить не обязательно)
- выводы по работе
Объём работы должен быть не менее 7 страниц. Если работа велась на собственном ресурсе, к файлу отчёта прикладывается архив созданного сайта и дамп созданной базы данных.