Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Отношение «многие–ко–многим»




Отношение «многие–ко–многим» применяется в следующих случаях:

  • одной записи в главной таблице соответствует более одной записи в подчиненной;
  • одной записи в подчиненной таблице соответствует более одной записи в главной.

Каждую связь «многие–ко–многим» в реляционной базе данных необходимо заменить на связь «один–ко–многим» (одну или более) с помощью введения дополнительных таблиц.

 

 

Задание

Взяв за основу таблицу, созданную в предыдущей лабораторной работе, разделить ее на две таблицы и связать их отношением «один-ко-многим».

Порядок выполнения работы

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. Связь «один-ко-многим»

 

Содержание отчёта

  • титульный лист
  • задание
  • распечатки экрана СУБД MS Access, показывающие:
    • исходную таблицу
    • полученные таблицы и их структуры
    • окно изменения связей
    • схему данных со связью «один-ко-многим»

 

Лабораторная работа №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. Связь «один-ко-одному»

 

Содержание отчёта

  • титульный лист
  • задание
  • расчет декомпозиции исходного отношения, допускающей соединение без потерь
  • распечатки экрана СУБД MS Access, показывающие:
    • исходную таблицу
    • полученные таблицы и их структуры
    • окно изменения связей
    • схему данных со связью «один-к-одному»

 

Лабораторная работа №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. В поле «Условие отбора» записывается условие выборки. Затем запрос сохраняется. Всякий раз при запуске этого запроса, он будет формироваться заново, выполняя заданные операции над выбранными таблицами.

Содержание отчёта

  • титульный лист
  • задание
  • распечатки экрана СУБД MS Access, показывающие:
    • исходную таблицу
    • окно «запрос на выборку»
    • результат выполнения запроса

Лабораторная работа №5

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...