Лабораторная работа № 1. Основы реляционных баз данных. Учебная база данных ( Firebird)
Лабораторный практикум
Лабораторный практикум нацелен на изучение основ декларативного и процедурного языков SQL, освоение инструментальных средств, используемых при программировании и отладке запросов и команд, получение практических навыков работы в конкретной СУБД в процессе выполнения лабораторных работ, каждая из которых посвящена построению и отладке определенных запросов. Практикум содержит восемь лабораторных работ по всем разделам настоящего учебника. Каждая работа предполагает выполнение в интерактивном режиме общей части и индивидуального задания. По итогам каждой лабораторной работы оформляется отчет, а защита производится под контролем информационной системы https://rgrty.ru/sqltest/ [32-34]. Для защиты работ №№ 1, 6, 7 и 8 необходимо результативно ответить на определенное число контрольных вопросов и заданий (в виде традиционного тестирования), а для защиты работ №№ 2, 3, 4 и 5 — построить и ввести SQL-запросы согласно определенному числу предлагаемых заданий различной сложности. Все лабораторные работы должны выполняться на исходной (оригинальной) учебной базе данных.
Описание лабораторной установки. Компьютер с локально установленными сервером БД Firebird SQL Server и клиентским приложением IBExpert. Адреса для их копирования, а также инструкции по установке и настройке приведены на странице настоящего курса на портале https://rgrty.ru. Здесь же выложен скрипт учебной базы данных.
Лабораторная работа № 1.
Основы реляционных баз данных. Учебная база данных ( Firebird)
Цель работы. Знакомство с возможностями и приобретение практических навыков работы с интерактивной утилитой IBExpert как инструментом разработчика и администратора баз данных СУБД Firebird. Создание учебной БД.
Лабораторное задание. Изучить теоретическую часть, изложенную в гл. 1 и 2 учебника [1]. Ознакомиться с предметной областью (учебной БД) по описанию в приложении А. Установить (при отсутствии) на используемый компьютер Firebird SQL Server (SuperServer) и утилиту IBExpert. Создать учебную БД и заполнить ее таблицы данными, взятыми из одноименных таблиц учебной БД (Приложение А). В качестве примеров выборки данных выполнить запросы к таблицам БД. Выполнить резервное копирование и восстановление учебной БД. Составить отчет и защитить лабораторную работу.
Порядок выполнения работы
1. Создать средствами используемой операционной системы на физическом диске С:\ каталоги GGGG\SQL, где GGGG соответствует номеру группы.
2. Загрузить утилиту IBExpert, предварительно убедившись, что сервер СУБД Firebird загружен.
2.1. Ознакомиться с правилами работы и структурой меню, а также со всеми доступными пунктами меню утилиты. Методические указания здесь.
2.2. Создать, используя пункт главного меню База данных/Создать базу утилиты IBExpert, в каталоге C:\GGGG\SQL\ файл рабочей БД с именем NN.fdb, где NN соответствует номеру варианта. При этом сервер выбрать Локальный, имя пользователя и пароль задать как для администратора БД, выбрать диалект БД – 3, установить размер страницы – 16384 (это размер страницы по умолчанию для базы Firebird), а кодировку – WIN1251.
3. Зарегистрировать созданную БД, выбрав соответствующую версию сервера Firebird, задав произвольное описание (имя) БД, а значения всех остальных параметров БД – установленными по умолчанию. Подключиться к созданной БД и ознакомиться со всеми вновь доступными пунктами меню утилиты.
4. Вызвать SQL-редактор (Инструменты/SQL Редактор). Создать 4 домена, последовательно вводя и выполняя запросы:
CREATE DOMAIN Money AS NUMERIC(15,2);
CREATE DOMAIN TMonth AS SMALLINT CHECK (VALUE BETWEEN 1 AND 12);
CREATE DOMAIN PKfield AS INTEGER;
CREATE DOMAIN TYear AS SMALLINT CHECK (VALUE BETWEEN 1990 AND 2100);
5. Создать в учебной БД таблицу Services, выполнив запрос:
CREATE TABLE Services (ServiceCD PKFIELD PRIMARY KEY, ServiceNM VARCHAR(30));
Подтвердить транзакцию и убедиться в наличии создаваемых объектов БД (Database Explorer).
6. Вставить в таблицу услуг (Services) все строки с данными из одноименной таблицы учебной БД, используя аналогию со следующим запросом INSERT, который используется для вставки первой строки в таблицу услуг:
INSERT INTO Services (ServiceCD, ServiceNM) VALUES (1, 'Газоснабжение');
7. Вывести содержимое таблицы Services с помощью запроса
SELECT * FROM Services;
и убедиться в правильности введенных данных.
8. В случае правильного ввода данных зафиксировать текущую транзакцию. Если данные, выведенные запросом п. 7, отличаются от данных соответствующей таблицы, то следует выполнить откат текущей транзакции и повторить п. 6 и п. 7.
9. Сформировать скрипт для создания и заполнения всех остальных таблиц учебной БД. Для этого в редактор скриптов (Инструменты/Редактор скриптов) загрузить файл со скриптом, находящимся здесь, и удалить в нем запросы, выполненные в пп. 2 – 6. Выполнить полученный скрипт, предварительно добавив в него оператор подключения к рабочей БД (CONNECT) или установив галочку Использовать текущее соединение. Снимок экрана 1-й страницы сформированного скрипта включить в отчет.
10. Просмотреть на экране всю информацию о созданных объектах БД, а также содержимое каждой из созданных таблиц. По результатам анализа в случае успешного создания БД зафиксировать изменения, а в противном - отменить, и повторить п. 9. Выполнить в SQL-редакторе следующий запрос, который извлекает из таблицы NachislSumma все строки о начислениях абоненту с ФИО Тимошкина Н. Г. (номер лицевого счета '080270'):
SELECT * FROM NachislSumma WHERE AccountCD = '080270';
11. Выполнить запрос, который извлекает из таблицы PaySumma всю информацию о платах за услуги, произведенных абонентами за период позже
SELECT * FROM PaySumma WHERE PayYear > 2019;
12. Выполнить запрос, который возвращает сумму значений всех плат, произведенных каждым абонентом:
SELECT AccountCD, SUM(PaySum) AS Summa_Abonent FROM PaySumma GROUP BY AccountCD;
13. Проверить действие всех ограничений ссылочной целостности (запрещающее, каскадное, обновление), путем внесения разрешенных и запрещенных изменений в данные родительской(их) таблице(ах) учебной БД, заданной(ых) вариантом индивидуального задания. Изменять данные в открытой таблице следует из пункта меню "Данные" с помощью кнопок: + - добавить строку; – - удалить строку; ^ - редактировать строку.
14. Проверить действие всех ограничений ссылочной целостности (запрещающее, обновление), путем внесения разрешенных и запрещенных изменений в данные дочерней(их) таблице(ах) учебной БД, заданной(ых) вариантом индивидуального задания. Изменять данные в открытой таблице следует из пункта меню "Данные" с помощью кнопок: + - добавить строку; ^ - редактировать строку.
15. Проверить действие ограничений доменной целостности. Для этого в соответствующих столбцах таблиц учебной БД, заданных вариантом индивидуального задания, изменить значения на недопустимые .
16. Отключиться от БД без фиксации изменений. В отчете зафиксировать снимок экрана с размером файла БД (в байтах) и временем создания. Создать сжатую резервную копию (backup) БД (Службы/Резервирование БД). В отчете зафиксировать снимок экрана с размером (в байтах) и временем создания файла сжатой резервной копии БД.
17. Восстановить БД из сжатой резервной копии (Службы/Восстановление БД). В отчете зафиксировать снимок экрана с размером (в байтах) и временем создания файла восстановленной БД. Сравнить его с размерами файлов первоначальной БД и ее сжатой резервной копии. Скопировать сжатую резервную копию БД на внешний носитель данных для использования ее в последующих лабораторных работах.
18. Составить отчет. В отчете представить результаты выполнения пп. 2.2 - 7, 9 – 17 с подробными комментариями и снимками экрана. Все задания должны быть пронумерованы.
19. Защитить лабораторную работу, положительно ответив под контролем информационной системы на заданное число тестовых вопросов по теме настоящей лабораторной работы [2].
Варианты индивидуальных заданий
Вариант 1 Street с Abonent. Вариант 2 Executor с Request. Вариант 3 Disrepair с Request. Вариант 4 Abonent с Request. Вариант 5 Abonent с Paysumma. Вариант 6 Abonent с Nachislsumma. Вариант 7 Services с Paysumma. Вариант 8 Services с Nachislsumma. Вариант 9 Executor и Disrepair с Request. |
Вариант 10 Abonent и Disrepair с Request. Вариант 11 Abonent и Services с Nachislsumma. Вариант 12 Abonent и Services с Paysumma. Вариант 13 Abonent и Executor с Request. Вариант 14 Services с Nachislsumma и Paysumma. Вариант 15 Abonent с Nachislsumma и Paysumma. Вариант 16 Abonent с Nachislsumma и Request. Вариант 17 Abonent с Paysumma и Request. Вариант 18 Abonent с Nachislsumma, Paysumma и Request. |
Библиографический список
1. Маркин А.В. Программирование на SQL. В 2 ч. Часть 1. - М.: Издательство Юрайт, 2019. - 403 с.
2. SQL & NoSQL тренажер. [Электронный ресурс]. URL: http://rgrty.ru/sqltest/.
Предупреждение!!!
При обнаружении в отчете признаков копирования чужих отчетов присланный отчет засчитан не будет, а студент будет набирать отрицательный рейтинг. Кроме этого, отчет студента, предоставившего свой отчет для копирования, также не будет засчитан, а этот студент получит новое задание..