УМКД. БД. и эксперт УМКД+. Учебнометодический комплекс по дисциплине базы данных и экспертные системы
Скачать 1.37 Mb.
|
Тема: Проектирование баз данных Проектирование информационных систем, включающих в себя БД, осуществляется на физическом и логическом уровнях. Решение проблемы на физическом уровне зависит от используемой системы управления БД и осуществляется зачастую автоматизировано и скрытно от пользователя. В ряде случаев пользователю представляется возможность настроить некоторые параметры системы. Эта проблема не вызывает трудностей. Логическое проектирование заключается в определении числа и структуры таблиц. Определение типов отчетных документов, разработки алгоритмов обработки информации, создание форм для ввода и редактирования данных в базе и расширения ряда других задач. При проектировании структур данных для автоматизированных систем можно выделить три основных подхода: Сбор информации об объектах решаемой задачи в рамках одной таблицы (в рамках одного отношения) и последующая ее декомпозиция на ряд взаимосвязанных таблиц на уровне нормализации отношений. Формирование знаний о системе – определение типов исходных данных и их взаимосвязи и требования к обработке данных и получение с помощью case-системы или вручную готовой схемы БД или готовой информационной системы. Структурировании информации для использования в информационной системе в процессе проведения системного анализа на основе совокупности правил и рекомендаций. Избыточное дублирование данных и аномалии Обычно различаются простое (не избыточное) и избыточное дублирование данных. Наличие первого допускается в БД, а избыточное дублирование необходимо минимизировать или исключить. Отношение «Сотрудник - Телефон»
Не избыточный вариант:
Такого типа операции декомпозиции отношения «Сотрудник – Телефон – Номер комнаты» делятся на два отношения «Сотрудник – Номер Комнаты» и «Телефон – Номер Комнаты» является основной процедурой нормализации отношений. Избыточное дублирование данных создает проблемы при обработке картежей отношения. Э.Кодд назвал их «Аномалиями обновления отношений». Он показал, что для некоторых отношений эти проблемы возникают при попытке удаления, добавления или редактирования картежей. Аномалия – такая ситуация в таблицах БД, которая приводит к противоречиям в БД, либо усложняет обработку данных. Выделяют три основных вида аномалий – аномалии модификаций, удаления и добавления. Аномалии модификации проявляются в том, что изменение значения одного данного может повлечь к просмотру всей таблицы и соответствующие изменения некоторых других записей в таблицу. Аномалии удаления – может пропасть и другая информация, которая не связана напрямую с другими таблицами. Аномалии добавления – возникают в случаях, когда информацию в таблице нельзя поместить до тех пор, пока она не полная либо вставка новой записи требует дополнительного просмотра таблицы. Формирование исходного отношения Рассмотрим это на примере. Предположим, что в учебной части факультета создается БД о преподавателях. На первом этапе проектирования БД должны быть определены сведения о том, как она должна использоваться и какую информацию мы должны получать из нее в процессе эксплуатации. В результате анализа устанавливаем атрибуты, которые должны содержаться в БД и взаимоотношения между ними: ФИО (не должны повторяться), Должность, Оклад, Стаж, Надбавка за стаж, № кафедры, Предмет, Группа, Вид занятий. Отношение «Преподаватели»
Одно из требований отношения заключается в том, что все атрибуты должны иметь атомарные (простые) значения. Исходное отношение «Преподаватели» содержит избыточное дублирование данных, которое является причиной аномалий редактирования. Различают избыточность явную и неявную. Явная избыточность заключается в том, что в отношении «Преподаватели» строки с данными о преподавателях, проводящих занятия в различных группах, могут повторяться соответствующее число раз. Неявная избыточность в отношении «Преподаватели» проявляется в одинаковых окладах у всех преподавателей и в одинаковых надбавках за стаж. Лекция№5 Тема: Метод нормальных форм Основной задачей, которая решается при проектировании БД является задача нормализации её отношений. Рассматриваемый метод нормальных форм базируется на теории реляционных БД и ее фундаментальном понятии в зависимости между атрибутами отношений. Процесс нормализации основан на концепции нормальных форм. О бщая идея нормализации сводится к тому, чтобы при проектировании БД использовались отношения в окончательной 5-й нормальной форме. Конечная цель – 5-я НФ. Однако на I этапе мы должны достичь хотя бы 1-й НФ. Зависимости между атрибутами Рассмотрим основные: функциональные, транзитивные и многозначные. Понятие функциональной зависимости является базовым, т.к. на его основе строятся другие отношения. Атрибут В функционально зависит от атрибута А, если каждому значению атрибута А в точности соответствует значение атрибута В. Это означает, что во всех картежах с одинаковым значением атрибута А атрибут В будет иметь одно и тоже значение. А и В могут быть составными атрибутами. В отношении «Преподаватели» можно выделить функциональные зависимости между атрибутами: ФИО -> Кафедра, ФИО -> Должность, Должность -> Оклад. Наличие функциональной зависимости в отношении определяется природой вещей, информация о которых представлена картежами отношений. Ключ является составным и состоит из трех атрибутов: ФИО, предмет, группа. Функциональная зависимость определяет взаимнооднозначное соответствие между атрибутами А и В: A <-> В. В функциональной зависимости поля «ФИО» от какого-то атрибута означает не только тот факт, что значение атрибута Х однозначно определяет значение поля ФИО, но и то, что одному и тому же значению поля Х соответствует одно единственное значение ФИО. Отношение находится в 1-й НФ, если все не ключевые атрибуты функционально зависят от ключа с различной степенью зависимости. Частичной зависимостью называется зависимость не ключевого атрибута от части составного ключа. В рассматриваемом нами примере отношение атрибута «Должность» находится в частной функциональной зависимости от атрибута «ФИО». Однако этот атрибут является составляющей частью ключа. Альтернативным вариантом является полная функциональная зависимость не ключевого атрибута от составного ключа. «Вид занятий» полностью зависит от составного ключа. Атрибут С зависит от атрибута А транзитивно. Для А, В,С выполняются следующие условия: A->В; В->С, но обратная зависимость отсутствует. В нашем примере транзитивной зависимостью связаны атрибуты «ФИО», «Должность» и «Оклад». Многозначная зависимость. В отношении R атрибут В многозначно зависит от атрибута А, если каждому значению А соответствует множество значений В, несвязанных с другими атрибутами из R. Многозначные отношения могут быть следующих типов: 1:М, М:1, М:М. В отношении «Преподаватели» один преподаватель ведет несколько предметов (1:М). В общем случае между двумя атрибутами одного отношения могут существовать все зависимости. Поскольку зависимость между атрибутами является причиной аномалий, стараются расчленить отношение зависимости атрибутов на несколько отношений. Взаимно независимые атрибуты. 2 и более атрибута называются взаимно независимыми, если не один из них не является функционально зависимым от других атрибутов. Выявление зависимости между атрибутами. Основной способ определения зависимости есть анализ семантики атрибутов.
F+ = (A1->A3, A1A2->A3, A1A2A3->A1A2, A1->A2, A2->A3). Для построения F+ из F необходимо знать ряд правил (аксиом) вывода одних из других. Существует 8 аксиом: Рефлективности Пополнения Транзитивности Расширения Продолжения Псевдо транзитивности Объединения Декомпозиции Выведем зависимости между атрибутами в отношении «Преподаватели». Учтем следующие условия: 1 преподаватель может проводить 1 вид занятий (либо лекции, либо лабораторные работы). В результате получим зависимости между атрибутами: а) ФИО ->Оклад ФИО ->Должность ФИО ->Стаж ФИО ->Должностной стаж ФИО ->Кафедра Стаж ->Д. стаж Должность ->Оклад Оклад ->Должность ФИО, Предмет, Группа -> Вид занятий. б) Алгоритм: ФИО у преподавателей уникальны. Каждому преподавателю соответствует его стаж. Имеется зависимость ФИО->Стаж. Обратное утверждение не верно. Каждый преподаватель имеет определенную надбавку за стаж, обратная зависимость отсутствует. Каждый преподаватель имеет определенную должность. Но одну и ту же должность могут иметь несколько преподавателей. Один и тот же преподаватель в одной группе по разным предметам может проводить разные виды занятий. Определение вида занятий преподавателя не возможно без указания предмета и группы. Не выделены зависимости между атрибутами ФИО->Предмет->Группа, поскольку они образуют составной ключ и не учитывается в процессе нормализации исходного отношения. Нормальные формы. Процесс проектирования БД с использованием метода нормальных форм является итерационным и заключается в последовательном переводе отношений из первой нормальной формы в формы более высокого порядка по определенным правилам. Каждая следующая нормальная форма ограничивает определенный тип зависимостей и устраняет соответствующие аномалии при выполнении операций над отношениями БД и сохраняет свойства предыдущих нормальных форм. Лекция № 6. Тема: Первая Нормальная Форма Нормальная Форма характеризуется тем, что все атрибуты отношения являются простыми, т.е. имеют единственное значение. Перевод из одной формы в другую осуществляется методом, который носит название «декомпозиции без потерь». Смысл этой декомпозиции сводится к тому, что запросы (выборка данных по какому-либо условию) к исходному отношению и к отношению, полученному в результате декомпозиции, дают одинаковые результаты. Основной операцией этого метода является операция проекции. Есть отношение R(A,B,C,D). Устранение функциональной зависимости между C и D (С->D) позволит перевести это отношение в следующую НФ. Для этих целей проводим декомпозицию R на два отношения – R1(A,B,C) и отношения R2(C,D). R2 является проекцией отношения R на атрибуты С и D. Отношение «Преподаватели» имеет составной ключ (ФИО ->Предмет->Группа). Это отношение находится в 1-й НФ, так как все его атрибуты простые. В этом отношении можно выделить частичную зависимость следующих атрибутов: стаж, д.стаж, кафедра, должность, оклад от ключа. Указанные атрибуты находятся в функциональной зависимости от атрибута «ФИО», который является частью составного ключа. Эта частичная зависимость от ключа приводит к следующему: Повторяются сведения о стаже, должности, окладе преподавателя, проводящего занятия в нескольких группах и (или) по нескольким предметам. Повторяются сведения об окладах одной и той же должности. Избежать такого дублирования можно, если перейти во 2-ю НФ. Вторая Нормальная Форма. Отношение находится во 2-й НФ, если это отношение находится в 1-й НФ и каждый не ключевой атрибут функционально полно зависит от первичного ключа. Для устранения частичной зависимости и перевода отношения во 2-ю НФ необходимо использовать операцию проекции и провести декомпозицию отношений по следующему алгоритму: Построить проекцию без атрибутов, которые находятся в частичной функциональной зависимости от первичного ключа. Построить проекцию на части составного первичного ключа и атрибуты, которые зависят от этих частей. R1:
R2:
Если проанализировать отношения R1 и R2, то мы видим, что переход ко 2-й НФ позволил нам исключить явную избыточность данных в таблице R2, а конкретно – строк со сведениями о преподавателях. Но осталось дублирование в Должность->Оклад и Стаж->Д.стаж. Чтобы исключить это дублирование необходимо перейти к 3-й НФ. Третья Нормальная Форма. Отношение находится в 3-й НФ, если оно находится во второй НФ и каждый не ключевой атрибут не транзитивно зависит от первичного ключа. Отношение находится в 3-й НФ в том и только в том случае, если все не ключевые атрибуты отношения не зависят друг от друга, но полностью зависят от первичного ключа. Транзитивные зависимости порождают избыточное дублирование информации в отношении. Для их устранения используют следующие операции (проекции на атрибуты), которые являются причиной транзитивной зависимости. R3:
R4:
R5:
На практике сведение исходного отношения к 3-й НФ является достаточным для завершения проектирования БД. Если в отношении имеется зависимость атрибутов составного ключа от не ключевых атрибутов, то необходимо перейти к 3-й усиленной НФ. Она носит название НФ Бойса-Кодда (БКНФ). Отношение находится в БКНФ, если оно находится в 3-й НФ и в нем отсутствуют зависимости ключей (атрибутов составного ключа) от не ключевых атрибутов. Четвёртая Нормальная Форма. Рассмотрим 4-ю НФ на примере. Имеется отношение «Проекты»: П ервичным ключом отношения является вся совокупность атрибутов. Т еорема Фейджина. Отношение R(A,B,C) можно спроецировать без потерь в отношение R1(A,B) и R2(A,С) только в том случае, если существует следующая зависимость: A=>B|C. Под проецированием без потерь тут понимается такая декомпозиция отношения, при которой исходное отношение полностью и без избыточности восстанавливается путём естественного соединения полученных отношений. Результатом операции соединения отношений R1 и R2 является отношение с атрибутами A,B и C, которое носит название «тернарное отношение». Отношение R находится в 4-й НФ в том и только в том случае, когда существует многозначная зависимость между А и В и все остальные атрибуты R функционально зависят от А. Лекция №7 |