Отчет по Базам Данных. Кабинов_Лаба1. Лабораторная работа 1. По дисциплине Управление данными Тема Начало работы с базами данных
Скачать 0.89 Mb.
|
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «Сибирский государственный университет науки и технологий имени академика М.Ф. Решетнева» _____Институт информатики и телекоммуникаций_____ Институт/факультет/подразделение _______________________Кафедра ИВТ _______________________ Кафедра/цикловая комиссия Лабораторная работа №1. По дисциплине: «Управление данными» Тема: «Начало работы с базами данных» Преподаватель ___________ Коренюгина Л.М. подпись, дата инициалы, фамилия Обучающиеся БИА20-02 201212020 ___________ Кабинов А.В. номер группы, зачетной книжки подпись, дата инициалы, фамилия Для создания новой пустой базы данных будем использовать визуальный редактор dbForge Studio for MySQL. Подключимся к серверу базы данных. Для этого нужно создать новое соединение. При соединении с сервером в области проводника будут отображены служебные базы данных information_schema, mysql, perfomation_schema, необходимые для функционирования и администрирования СУБД. Далее создадим собственную базу данных. Рисунок 1 – Создание БД. После создания базы данных перейдем к созданию таблиц. Введем имя таблицы type_goods (Типы товаров, определяет категории товаров), укажем подсистему хранения (Движок, Engine), как InnoDB. Создадим новый столбец IDtg (Код типа товаров – идентификатор, по которому можно ссылаться на конкретную категорию товаров). Укажем, что IDtg является ключевым (PRIMARY KEY) полем. Далее создадим новый столбец tgName (Наименование типа товаров) (Рисунок 2). Рисунок 2 – создание таблицы type_goods. Создадим еще одну таблицу goods_catalog для хранения конкретных товаров определенного типа (категории) и заполним параметры столбцов (Рисунок 3). Рисунок 3 – создание таблицы goods_catalog. Для хранения данных о поставщиках товаров создадим таблицу suppliers_catalog (Рисунок 4). Рисунок 4 – создание таблицы suppliers_catalog. Далее создадим таблицу operations отвечающую за операции с товарами приход или продажа (Рисунок 5). Рисунок 5 – создание таблицы operations. Теперь необходимо создать вспомогательную таблицу op_goods_list, которая будет реализовывать связь многие-ко-многим между товарами и операциями, которые можно с ними совершить (Рисунок 6). Рисунок 6 – создание таблицы op_goods_list. Теперь создадим дополнительную и последнюю таблицу storage, описывающую складские запасы магазина и необходимую в дальнейшем для демонстрации функциональных возможностей СУБД (Рисунок 7). Рисунок 7 – создание таблицы storage. После создания таблиц можно перейти к установке связей между таблицами базы данных. Связи позволяют обеспечить ссылочную целостность данных, тем самым ограничивая набор возможных значений при добавлении. Создадим связь между типом товара и самим товаром. Для этого в открытой на редактировании таблице goods_catalog в разделе Ограничения добавим внешний ключ (FOREIGN KEY). В нашем случае внешний ключ должен связывать поля IDtg в обоих таблицах, являющихся идентификаторами категории товаров (Рисунок 8). Рисунок 8 – создание внешнего ключа таблицы goods_catalog. Настройка ограничений при помощи внешних ключей необходима для таблицы operations (Рисунок 9). Рисунок 9 – создание внешнего ключа для таблицы operations. На рисунке 10 приведены параметры для двух внешних ключей таблицы op_goods_list отвечающие за связи с таблицами Операции с товарами и Товары. Рисунок 10 – создание внешних ключей для таблицы op_goods_list. Таблица Склад товаров имеет в качестве ограничения один внешний ключ по полю IDgc (Рисунок 11). Рисунок 11 – создание внешнего ключа для таблицы storage. После создания таблиц можно перейти к рассмотрению способов определения и настройки индексов. Приступим к созданию индексов для таблицы type_goods. Создадим уникальный индекс для столбца tgName (Рисунок 12). Рисунок 12 – создание индекса для таблицы type_goods. В случае таблицы goods_catalog добавим несколько индексов. При переходе на вкладку Индексы можно заметить, что для внешних ключей индексы были созданы автоматически. Создадим уникальный индекс для столбца gcName. Теперь настроим второй индекс, он будет не уникальным и составным, созданный для полей IDtg и gcName. После настройки индекса и сохранения изменений таблицы, индекс для внешнего ключа исчезнет из перечня индексов, это обусловлено тем, что в индексе для внешнего ключа и в составном индексе задействовано одно и тоже поле IDtg (Рисунок 13). Рисунок 13 – создание индексов для таблицы goods_catalog. Для того чтобы быстро проводить выборку по дате в таблице operations добавим не уникальный индекс для поля oDateTime (Рисунок 14). Рисунок 14 – создание индексов для таблицы operations. Создадим уникальные индексы в таблице suppliers_catalog (Поставщики) по полям scName и scEmail (Рисунок 15). Рисунок 15 – создание индексов для таблицы suppliers_catalog. Для таблиц storage (Склад товаров) и op_goods_list (Состав операций) индексы создались автоматически во время создания внешних ключей. Теперь необходимо проверить корректно ли были созданы связи и индексы для этого выведем элемент Диаграмма БД (Рисунок 16). Рисунок 16 – Диаграмма БД. После раннее выполненных действий перейдём к заполнению данными таблиц. В базу данных магазина компьютерной техники, занесем информацию о трех типах (категориях) товаров (Рисунок 17). Рисунок 17 – заполнение таблицы type_goods. Теперь добавим записи в таблицу goods_catalog (Рисунок 18.1, 18.2). Рисунок 18.1, 18.2 – заполненные таблицы goods_catalog. Создадим две записи фирм-поставщиков в таблице suppliers_catalog (Рисунок 19). Рисунок 19 – заполненная таблица suppliers_catalog. Поскольку появились сведения о поставщиках, то теперь мы можем заполнить таблицу operations (Рисунок 20). Рисунок 20 – заполненная таблица operations. Используя данные связанных таблиц, можно приступить к заполнению таблицы op_goods_list соответствующими сведениями (Рисунок 21). Рисунок 21 – заполненная таблица op_goods_list. Перейдём к созданию триггера. Создадим триггер, который будет отвечать за постановку на учет товара на склад. Данный триггер должен срабатывать после вставки записи в таблицу goods_catalog. Сформируем SQL команду, которая будет отвечать за добавление новой записи в таблицу storage, при этом полю IDgc устанавливается значение идентификатора нового товара, а полю sCount значение 0 (количество нового товара на складе равно нулю) (Рисунок 22). Рисунок 22 – настройка триггера на добавление данных. На удаление товара из каталога также создадим триггер (Рисунок 23). Данный триггер будет срабатывать до удаления товара из каталога. Он будет удалять из перечня товара на складе только те товары, количество которых равно 0.Согласно SQL-коду будет выполняться удаление записи из таблицы storage при условии, что значение поля IDgc равно значению идентификатора удаляемого товара, а также sCount (количество товара на складе) равно 0. При этом если товар участвовал в каких-либо операциях информацию о товаре нельзя удалить. Рисунок 23 – настройка триггера на удаление данных. Создание представлений. Представлением (view) называется SQL-запрос на выборку, который сохраняется как отдельный объект базы данных. Представление позволяет пользователю увидеть результаты сохраненного запроса, а язык SQL обеспечивает доступ к этим результатам таким образом, как если бы они были реальной таблицей базы данных. Создадим представления. Сгенерируем их при помощи визуального конструктора (Рисунок 24). Рисунок 24 – создание представления. Теперь если нажать на кнопку Данные в представлении, можно увидеть результат выполнения SQL-запроса (Рисунок 25). Рисунок 25 – вывод данных представления. Создадим еще одно представление с именем view_goods_operations на основе SQL-запроса (Рисунок 26). Рисунок 26 – текст запроса и вывод данных представления view_goods_operations. Для отображения сведений о состоянии складских запасов в понятном формате создадим представление view_storage (Рисунок 27, 27.1). Рисунок 27 – текст запроса. Рисунок 27.1 – вывод данных представления view_storage. На данном этапе создание базы данных магазина компьютерной техники завершено. Теперь необходимо создать резервную копию базы данных (Рисунок 28), которая позволит не только восстановить данные в случае сбоя, но и перенести их в другую реляционную СУБД помимо MySQL. Рисунок 28 – создание резервной копии. ВыводВ ходе выполнения лабораторной работы мы ознакомились с СУБД Microsoft Access, создали базу данных, состоящую из 4 таблиц. Создали простейшее приложение для работы с таблицами в среде RAD Studio, а также ознакомились конструктором запросов в Microsoft Access. Красноярск 2022 |