Третья лабораторная работа развивает тему второй и демонстрирует методы разбиения одной таблицы на несколько без потерь структурной информации. Целью работы является изучение разновидностей связи между таблицами в среде MS Access.
Теоретический материал
Любое отношение реляционной базы данных содержит информацию не только в виде значений элементов, но и в виде самой структуры отношения. Эта структурная информация легко может быть потеряна при разделении отношения на несколько. Если отношение Supplier (рис.2.1.) разделить на отношения R1(CONSUMER_NAME, ID, GOODS) и R2(ADDRESS, PRICE), то соединить их обратно в одну таблицу будет невозможно, так как будет потеряна связь между адресами и фамилиями, товарами и ценами. Поэтому каждый вариант декомпозиции должен проверяться на возможность соединения без потерь.
Декомпозиция с соединением без потерь возможна, если разность полученных отношений зависит от их пересечения.
В нашем примере пересечение R1∩R2 даст пустое множество, что сразу указывает на потерю информации при таком разделении.
Задание
Взяв за основу отношение, созданное в лабораторной работе №1, произвести его декомпозицию на два отношения, допускающую соединение без потерь, и связать их отношением «один-к-одному».
Порядок выполнения работы
1.Для исходной таблицы из первой лабораторной работы придумать не менее двух вариантов декомпозиции. Например, таблицу Supplier (рис.2.1.) можно разделить на таблицы Supplier2_1 (рис.2.2.) и Supplier2_2 (рис.2.3.), а можно на таблицы R1(CONSUMER_NAME, ID, GOODS) и R2(ADDRESS, PRICE) как показано выше.
2. Для обоих вариантов декомпозиции выполняется проверка на возможность соединения без потерь. В нашем примере:
|
Supplier2_1 ∩ Supplier2_2 = CONSUMER_NAME
Supplier2_1 - Supplier2_2 = ID, ADDRESS
CONSUMER_NAME → ID, ADDRESS
Таким образом, такая декомпозиция допускает соединение без потерь. Вариант с декомпозицией на отношения R1(CONSUMER_NAME, ID, GOODS) и R2(ADDRESS, PRICE) рассмотрен выше.
3. Создадим в среде MS Access таблицы Supplier2_1 и Supplier2_2, как это сделано в предыдущей работе. При этом в обеих таблицах, в режиме «Конструктор» установим ключевое поле CONSUMER_NAME.
4. В режиме «Схема данных» создадим связь между таблицами по выбранному полю. Это должна быть связь «один-к-одному» (рис. 3.1.).
Рис. 3.1. Связь «один-ко-одному»
Содержание отчёта
- титульный лист
- задание
- расчет декомпозиции исходного отношения, допускающей соединение без потерь
- распечатки экрана СУБД MS Access, показывающие:
- исходную таблицу
- полученные таблицы и их структуры
- окно изменения связей
- схему данных со связью «один-к-одному»
Лабораторная работа №4
ИСПОЛЬЗОВАНИЕ ЗАПРОСОВ
Четвертая лабораторная работа посвящена использованию запросов в СУБД MS Access. Целью работы является изучение различных видов запросов к базе данных и механизма их реализации в СУБД MS Access.
Теоретический материал
Работа любой современной СУБД может быть представлена в виде последовательности запросов и ответов.
Запросы в системе Access бывают нескольких видов:
1. Запрос для отбора данных по заданным сложным условиям из одной или нескольких таблиц баз данных, с группировкой данных для расчета итогов, с показом результатов выполнения запроса в виде таблицы, либо с использованием его для форм и отчетов; после редактирования данных в таблице запроса данные таблиц базы могут обновляться (с некоторыми ограничениями).
|
2. Перекрестный запрос с формированием двухмерной итоговой таблицы, с группировкой по двум выражениям, одно из которых становится заголовком строки, другое - заголовком столбца.
3. Запрос на создание новой таблицы.
4. Запросы на изменение данных:
- обновление данных - команда занесения общих изменений в группу записей одной или нескольких таблиц;
- добавление данных - команда добавления группы записей из одной или нескольких таблиц в конец одной или нескольких таблиц;
- удаление данных - команда удаления группы записей из одной или нескольких таблиц.
Задание
Над отношением, созданным в лабораторной работе №1, выполнить операции «проекция» и «выборка по условию», используя механизм «Создание запроса в режиме конструктора».