Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Лабораторная работа №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 с.) |