Отношение «многие–ко–многим»
Отношение «многие–ко–многим» применяется в следующих случаях:
Каждую связь «многие–ко–многим» в реляционной базе данных необходимо заменить на связь «один–ко–многим» (одну или более) с помощью введения дополнительных таблиц.
Задание Взяв за основу таблицу, созданную в предыдущей лабораторной работе, разделить ее на две таблицы и связать их отношением «один-ко-многим». Порядок выполнения работы 1. Возьмем исходную таблицу Supplier (см. рис. 2.1.) и разделим ее на Рис. 2.1. Таблица Supplier две таблицы: Supp2_1 и Supp2_2 (см. рис. 2.2.,23.).
Рис. 2.2. Таблица Supp2_1 Рис. 2.3. Таблица Supp2_2 2. Откроем таблицу Supp2_1 в режиме конструктора. Щелкнув правой кнопкой по полю перед именем поля CONSUMER_NAME, выберем пункт меню «Ключевое поле» (Рис. 2.4.). Этим мы обеспечим уникальность значений в поле CONSUMER_NAME – каждый поставщик упомянут не более одного раза.
Рис. 2.4. Изменение ключевого поля
3. Выберем на панели инструментов, в меню «Конструктор» пункт «Схема данных»: При этом откроется окно «Добавление таблицы» (рис. 2.4.). Рис. 2.5. Добавление таблицы в схему данных Нажимая на кнопку «Добавить», добавим в схему данных таблицы Supp2_1 и Supp2_2. Затем нажмем «Закрыть».
4. В открывшейся схеме данных нажмем левой кнопкой на поле CONSUMER_NAME таблицы Supp2_1 и «перетащим» связь к полю CONSUMER_NAME таблицы Supp2_2. При этом откроется окно «Изменение связей». Проставим «галочки» в пунктах «Обеспечение целостности данных», «Каскадное обновление связанных полей» и «Каскадное удаление связанных записей» (рис.2.6.). Таким образом, при удалении поставщика из главной таблицы (в нашем примере Supp2_1), все записи, содержащие его имя, будут удалены и из подчиненной таблицы (в нашем примере Supp2_2).
Рис. 2.6. Окно «Изменение связей» Нажав кнопку «Создать», завершим создание связи «один-ко-многим» (рис. 2.7.). Если в окне «Изменение связей» выбрать только пункт «Обеспечение целостности данных», то каскадного обновления не будет, но СУБД не позволит вводить в поле CONSUMER_NAME таблицы Supp2_2 значение, которого нет в таблице Supp2_1.
Рис. 2.7. Связь «один-ко-многим»
Содержание отчёта
Лабораторная работа №3 ДЕКОМПОЗИЦИЯ ИСХОДНЫХ ОТНОШЕНИЙ, ДОПУСКАЮЩАЯ СОЕДИНЕНИЕ БЕЗ ПОТЕРЬ. Третья лабораторная работа развивает тему второй и демонстрирует методы разбиения одной таблицы на несколько без потерь структурной информации. Целью работы является изучение разновидностей связи между таблицами в среде 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. Связь «один-ко-одному»
Содержание отчёта
Лабораторная работа №4 ИСПОЛЬЗОВАНИЕ ЗАПРОСОВ Четвертая лабораторная работа посвящена использованию запросов в СУБД MS Access. Целью работы является изучение различных видов запросов к базе данных и механизма их реализации в СУБД MS Access. Теоретический материал Работа любой современной СУБД может быть представлена в виде последовательности запросов и ответов. Запросы в системе Access бывают нескольких видов: 1. Запрос для отбора данных по заданным сложным условиям из одной или нескольких таблиц баз данных, с группировкой данных для расчета итогов, с показом результатов выполнения запроса в виде таблицы, либо с использованием его для форм и отчетов; после редактирования данных в таблице запроса данные таблиц базы могут обновляться (с некоторыми ограничениями).
2. Перекрестный запрос с формированием двухмерной итоговой таблицы, с группировкой по двум выражениям, одно из которых становится заголовком строки, другое - заголовком столбца. 3. Запрос на создание новой таблицы. 4. Запросы на изменение данных:
Задание Над отношением, созданным в лабораторной работе №1, выполнить операции «проекция» и «выборка по условию», используя механизм «Создание запроса в режиме конструктора».
Порядок выполнения работы
1. Открыть базу данных (в нашем примере база данных SUPPLIER), выбрать пункт меню «Запросы», затем выбрать «Создание запроса в режиме конструктора». 2. Добавить в запрос нужные таблицы, например, таблицу Supplier. 3. В открывшемся окне выбрать нужные поля таблицы Supplier, например ID, ADDRESS и CONSUMER_NAME. Фактически, этим выполняется операция «проекция» (рис. 4.1).
Рис. 4.1. Запрос на выборку 4. В поле «Условие отбора» записывается условие выборки. Затем запрос сохраняется. Всякий раз при запуске этого запроса, он будет формироваться заново, выполняя заданные операции над выбранными таблицами. Содержание отчёта
Лабораторная работа №5
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|