Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Лабораторная работа №4. Проблемы манипулирования данными и запросы на создание таблиц

Поиск

Проблемы выполнения корректирующих запросов

 

Корректирующие запросы на добавление, обновление или удаление данных приводят к изменению содержания базы данных. Если они выполняются некорректно, то в БД будет храниться противоречивая информация.

При выполнении корректирующих запросов могут встретиться проблемы, которые являются следствием недостатков структуры данных «универсального» отношения. Это так называемые аномалии добавления, обновления и удаления. Такими дефектами обладает и таблица «Учеба».

Например, нельзя ввести в таблицу данные о зачисленном в вуз студенте до тех пор, пока он не сдаст первый экзамен и не будут определены ключевые атрибуты «предмет» и «семестр». Это пример аномалии добавления. Другой пример: при изменении фамилии студента необходимо обновить поле «фамилия» не один, а много раз во всех строках-записях, содержащих информацию о результатах сдачи экзаменов этим студентом. При этом есть вероятность ошибочного ввода в разные строки разных данных. Это пример аномалии обновления. А при удалении единственной строки, содержащей информацию о сдаче экзаменов студентом, приведет к потере информации и о самом студенте. Это пример аномалии удаления.

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

Решением проблемы аномалии манипулирования данными является корректная декомпозиция «универсального» отношения на его проекции (подмножества, содержащие семантически однородные данные).

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

Запрос на создание таблицы

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

Учёба (номер студента, фамилия, специальность, факультет, предмет, семестр, оценка)

на ее проекции со схемами:

Кафедра (специальность, факультет)

Экзамен (номер студента, фамилия, факультет, предмет, семестр, оценка)

Рассмотрим, как в Access реализуется операция проекция–создание одной таблицы как проекции другой. Алгоритм выполнения этой процедуры состоит из трёх этапов:

1. Построение запроса-выборки столбцов-атрибутов без дублей строк (Задание 6 на стр. 21]. Тем самым создается проекция – подмножество данных исходной таблицы, которое определит структуру и наполнение новой таблицы.

2. Выполнение запроса на создание новой таблицы.

3. Определение ключа вновь созданной таблицы.

Задание 1. На основе исходной таблицы «Учёба» со схемой отношения:

Учёба (номер студента, фамилия, специальность, факультет, предмет, семестр, оценка )

создайте две новые таблицы со схемами:

Кафедра (специальность, факультет)

Экзамен (номер студента, фамилия, факультет, предмет, семестр, оценка )

Алгоритм построения и выполнения запроса на создание новой таблицы рассмотрим на примере отношения «Кафедра»:

1) в режиме Конструктора запросов в качестве таблицы-источника данных к запросу выберите таблицу «Учёба»;

2) сформируйте запрос-выборку, в котором присутствовали бы следующие поля таблицы «Кафедра»: специальность, факультет;

3) в режиме Конструктора выполните команду Вид | Свойства;

4) в диалоговом окне «Свойства запроса» переключите мышью свойство «Уникальные значения» в состояние «Да»;

5) завершите результаты формирования запроса (на этом первая часть алгоритма заканчивается);

6) в режиме Конструктора выполните команду Запрос | Создание таблицы;

7) в диалоговом окне «Свойства запроса» введите в поле «Таблица» имя новой таблицы «Кафедра» (рис. 21);

8) в режиме Конструктора выполните команду Запрос | Запуск. В новую таблицу будет скопировано соответствующее количество записей

9) перейдите в режим Конструктора и завершите работу с запросом (можно без сохранения структуры запроса, так как результатом запроса является созданная таблица). На этом заканчивается вторая часть алгоритма;

Рис. 21. Окно наименования новой таблицы

 

10) в окне БД выберите закладку Таблицы и убедитесь, что новая таблица «Кафедра» представлена в списке таблиц БД; это является признаком успешного выполнения запроса на создание таблицы;

11) выберите новую таблицу «Кафедра» в списке и нажмите экранную кнопку;

12) в режиме Конструктора таблиц в окне структуры таблицы определите ключевые атрибуты (в таблице «Кафедра» это поле «специальность»);

13) сохраните результаты спецификации новой таблицы «Кафедра» по команде Файл | Сохранить. На этом заканчивается третья часть алгоритма;

14) просмотрите в Режиме таблицы наполнение новой таблицы «Кафедра» (рис. 22);

15) по рассмотренному алгоритму создайте вторую таблицу «Экзамен».

Рис. 22 Наполнение таблицы «Кафедра»

 

Создание связей между таблицами

В результате декомпозиции «универсального» отношения «Учеба» мы получили представление той же самой предметной области в виде совокупности двух отношений – таблиц «Кафедра» и «Экзамен». Теперь установим связь между новыми таблицами.

Правила установления связей между таблицами в Access таковы, что разрешены только бинарные (между двумя таблицами) связи. Связи могут быть двух типов «один к одному» и «один ко многим». Причём одна таблица выступает в роли старшей (отцовской), например таблица «Кафедра» в отношении «Кафедра»: «Экзамен», а другая – в роли младшей (сыновьей), например таблица «Экзамен» в отношении «Кафедра»: «Экзамен». Однако одна и та же таблица в разных отношениях может выступать в роли старшей и младшей одновременно. Связь между таблицами устанавливается по общим полям-атрибутам (поле «факультет» в нашем случае). Связь между таблицами Access устанавливается при помощи инструмента, называемого «Схемой данных».

Задание 2. Для установления связи между таблицами «Кафедра» и «Экзамен»:

1) выполните команду Сервис | Схема данных – появится окно макета схемы данных БД;

2) в контекстном меню выполните команду Связи | Добавить таблицу;

3) в окне «Добавление таблицы» выберите в списке таблицу «Кафедра» и нажмите экранную кнопку ;

4) в окне «Добавление таблицы» выберите в списке таблицу «Экзамен» и нажмите экранную кнопку ;

5) для установления связи между таблицами «Кафедра» и «Экзамен» захватите мышью и перенесите поле «факультет» таблицы «Кафедра» на поле «факультет» таблицы «Экзамен» – раскроется окно «Изменение связей» (рис. 23);

6) не настраивая свойства связи, нажмите экранную кнопку.

Схема базы данных примет вид, аналогичный представленному на рис. 24.

Рис. 23. Окно спецификации связей в схеме данных

Рис. 24. Схема данных двух таблиц



Поделиться:


Последнее изменение этой страницы: 2017-02-05; просмотров: 338; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.92.56 (0.009 с.)