Главная страница
Навигация по странице:

  • Зависимости между атрибутами

  • Определение функциональной зависимости

  • Определение многозначной зависимости

  • Выявление зависимостей между атрибутами

  • Рис. 1.8. Зависимости между атрибутами

  • Нормальные формы

  • Рис. 1.9. Отношения БД в 2НФ

  • Рис. 1.10. Отношения БД в 3НФ

  • Компьютерная безопасность. Тема 3и. Основы построения баз данных Базы данных и информационные системы


    Скачать 250 Kb.
    НазваниеОсновы построения баз данных Базы данных и информационные системы
    АнкорКомпьютерная безопасность
    Дата20.12.2019
    Размер250 Kb.
    Формат файлаdoc
    Имя файлаТема 3и.doc
    ТипДокументы
    #101282
    страница4 из 5
    1   2   3   4   5

    1.4. Проектирование БД методом нормальных форм


    Проектирование БД, является одним из этапов жизненного цикла информационной системы. Основной задачей решаемой в процессе проектирования БД является задача нормализации ее отношений. Рассматриваемый ниже метод нормальных форм является классическим методом проектирования реляционных БД. Этот метод основан на фундаментальном в теории реляционных баз данных понятии зависимости между атрибутами отношений.

    Зависимости между атрибутами

    Рассмотрим основные виды зависимостей между атрибутами отношений: функциональные, многозначные и транзитивные.

    Понятие функциональной зависимости является базовым, так как на его основе формулируются определения всех остальных видов зависимостей.

    Определение функциональной зависимости. Атрибут В функционально зависит от атрибута А, если каждому значению А соответствует в точности одно значение В. Математически функциональная зависимость В от А обозначается записью А->В. Это означает, что во всех кортежах с одинаковым значением атрибута А атрибут В будет иметь также одно и то же значение. Отметим, что А и В могут быть составными - состоять из двух и более атрибутов.

    В отношении на Рис. 1.7. можно выделить функциональные зависимости между атрибутами ФИО->Каф, ФИО->Должн, Должн->Оклад, ФИО->Предмет. В отношении на Рис. 1.7. ключ является составным и состоит из атрибутов ФИО, Предмет, Группа. Если отношение находится в 1НФ, то все неключевые атрибуты функционально зависят от ключа с различной степенью зависимости.

    Частичной зависимостью называется зависимость неключевого атрибута от части составного ключа. В рассматриваемом отношении атрибут Должн находится в функциональной зависимости от атрибута ФИО, являющегося частью ключа. Тем самым атрибут Должн находится в частичной зависимости от ключа отношения.

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

    Атрибут С зависит от атрибута А транзитивно, если для атрибутов А, B, С выполняются условия А -> B и B -> C, но обратная зависимость отсутствует. В отношении на Рис. 1.7 транзитивной зависимостью связаны атрибуты:ФИО->Должн-> Оклад Между атрибутами может иметь место многозначная зависимость.

    Определение многозначной зависимости. В отношении R атрибут B многозначно зависит от атрибута А, если каждому значению А соответствует множество значений В, не связанных с другими атрибутами из R.

    Многозначные зависимости могут быть "один ко многим" (1:М), "многие к одному" (М:1) или "многие ко многим" (M:М), обозначаемые соответственно: А->>B, А<<-В и А<<-->>B.

    Например, пусть преподаватель ведет несколько предметов, а каждый предмет может вестись несколькими преподавателями, тогда имеет место зависимость ФИО<<-->>Предмет.

    Выявление зависимостей между атрибутами

    Выявление зависимостей между атрибутами необходимо для выполнения проектирования БД методом нормальных форм, рассматриваемого далее.

    Выявим зависимости между атрибутами отношения ПРЕПОДАВАТЕЛЬ, приведенного на Рис. 1.7. При этом учтем следующее условие, которое выполняется в данном отношении.

    Условие. Один преподаватель в одной группе может проводить только один вид занятий (лекции или практические занятия).

    В результате анализа отношения получаем зависимости между атрибутами, показанные на Рис. 1.8.

    а) б)

    ФИО-> Должн

    ФИО-> Оклад

    ФИО-> Стаж

    ФИО->Д_Стаж

    ФИО-> Каф

    Стаж-> Д_Стаж

    Должн-> Оклад

    Оклад-> Должн

    ФИО, Предм, Группа->ВидЗан

    Рис. 1.8. Зависимости между атрибутами

    К выделению этих ФЗ для рассматриваемого примера приводят следующие соображения.

    Фамилия, имя и отчество у преподавателей факультета уникальны. Каждому преподавателю однозначно соответствует его стаж, т.е. имеет место функциональная зависимость ФИО->Стаж. Обратное утверждение неверно, так как одинаковый стаж может быть у разных преподавателей.

    Каждый преподаватель имеет определенную добавку за стаж, т.е. имеет место функциональная зависимость ФИО->Д_Стаж, но обратная функциональная зависимость отсутствует, так как одну и ту же надбавку могут иметь несколько преподавателей.

    Каждый преподаватель имеет определенную должность (преп., ст.преп., доцент, профессор), но одну и ту же должность могут иметь несколько преподавателей, т.е. имеет место функциональная зависимость ФИО->Должн, а обратная функциональная зависимость отсутствует.

    Каждый преподаватель является сотрудником одной и только одной кафедры. Поэтому функциональная зависимость ФИО->Каф имеет место. С другой стороны, на каждой кафедре много преподавателей, поэтому обратной функциональной зависимости нет.

    Каждому преподавателю соответствует конкретный оклад, который одинаков для всех педагогов с одинаковыми должностями, что учитывается зависимостями ФИО->Оклад и Должн->Оклад. Нет одинаковых окладов для разных должностей поэтому имеет место функциональная зависимость Оклад->Должн.

    Один и тот же преподаватель в одной группе по разным предметам может проводить разные виды занятий. Определение вида занятий, которые проводит преподаватель, невозможно без указания предмета и группы, поэтому имеет место функциональная зависимость ФИО, Предм, Группа->ВидЗан. Действительно, Петров М.И. в 256 группе читает лекции и проводит пратические занятия. Но лекции он читает по СУБД, а практику проводит по Паскалю.

    Нами не были выделены зависимости между атрибутами ФИО, Предм и Группа, поскольку они образуют составной ключ и не учитываются в процессе нормализации исходного отношения.

    После того, как выделены все функциональные зависимости, следует проверить их согласованность с данными исходного отношения ПРЕПОДАВАТЕЛЬ (Рис. 1.7.).

    Например, Должн.=’преп’ и Оклад=500 всегда соответствуют друг другу во всех кортежах, т.е. подтверждается функциональная зависимость Должн. <---> Оклад. Так же следует верифицировать и остальные функциональные зависимости, не забывая об ограниченности имеющихся в отношении данных.

    Нормальные формы

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

    Выделяют следующую последовательность нормальных форм:

    • первая нормальная форма (1НФ);

    • вторая нормальная форма (2НФ);

    • третья нормальная форма (3НФ);

    • усиленная третья нормальная форма, или нормальная форма Бойса-Кодда (БКНФ)

    • четвертая нормальная форма (4НФ);

    • пятая нормальная форма (5НФ).

    Первая нормальная форма. Отношение находится в 1НФ, если все его атрибуты являются простыми (имеют единственное значение). Исходное отношение строится таким образом, чтобы оно было в 1НФ.

    Перевод отношения в следующую нормальную форму осуществляется методом “декомпозиции без потерь”. Такая декомпозиция должна обеспечить то, что запросы (выборка данных по условию) к исходному отношению и к отношениям, получаемым в результате декомпозиции, дадут одинаковый результат.

    Основной операцией метода является операция проекции. Поясним ее на примере. Предположим, что в отношении R(A,B,C,D,E,...) устранение функциональной зависимости C->D позволит перевести его в следующую нормальную форму. Для решения этой задачи выполним декомпозицию отношения R на два новых отношения R1(A,B,C,E,...)и R2(C,D). Отношение R2 является проекцией отношения R на атрибуты C и D.

    Исходное отношение ПРЕПОДАВАТЕЛЬ, используемое для иллюстрации метода, имеет составной ключ ФИО, Предм, Группа и находится в 1НФ, поскольку все его атрибуты простые.

    В этом отношении в соответствии с Рис. 1.8. б) можно выделить частичную зависимость атрибутов Стаж, Д_Стаж, Каф, Должн, Оклад от ключа - указанные атрибуты находятся в функциональной зависимости от атрибута ФИО, являющегося частью составного ключа.

    Эта частичная зависимость от ключа приводит к следующему:

    1. В отношении присутствует явное и неявное избыточное дублирование данных, например:

    • повторение сведений о стаже, должности и окладе преподавателей, проводящих занятия в нескольких группах и/или по разным предметам;

    • повторение сведений об окладах для одной и той же должности или о надбавках за одинаковый стаж.

    2. Следствием избыточного дублирования данных является проблема их редактирования. Например, изменение должности у преподавателя Иванова И.М. потребует просмотра всех кортежей отношения и внесения изменений в те из них, которые содержат сведения о данном преподавателе.

    Часть избыточности устраняется при переводе отношения в 2НФ.

    Вторая нормальная форма. Отношение находится в 2НФ, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от первичного ключа (составного).

    Для устранения частичной зависимости и перевода отношения в 2НФ необходимо, используя операцию проекции, разложить его на два отношения следующим образом:

    • построить проекцию без атрибутов, находящихся в частичной функциональной зависимости от первичного ключа;

    • построить проекции на части составного первичного ключа и атрибуты, зависящие от этих частей.

    В результате получили два отношения О1 и О2 в 2НФ (Рис. 1.9.).

    а) б )

    R1

    ФИО

    Предм

    Группа

    ВидЗан

    Иванов И.М.

    СУБД

    256

    Практ

    Иванов И.М.

    ПЛ/1

    123

    Практ

    Петров М.И.

    СУБД

    256

    Лекция

    Петров М.И.

    Паскаль

    256

    Практ

    Сидоров Н.Г.

    ПЛ/1

    123

    Лекция

    Сидоров Н.Г.

    Паскаль

    256

    Лекция

    Егоров В.В.

    ПЭВМ

    244

    Лекция


    R2

    ФИО

    Должн

    Оклад

    Стаж

    Д_Стаж

    Каф

    Иванов И.М.

    Преп

    500

    5

    100

    25

    Петров М.И.

    ст.преп

    800

    7

    100

    25

    Сидоров Н.Г.

    Преп

    500

    10

    150

    25

    Егоров В.В.

    Преп

    500

    5

    100

    24


    Рис. 1.9. Отношения БД в 2НФ

    В отношении О1 первичный ключ является составным и состоит из атрибутов ФИО, Предм, Группа. Напомним, что данный ключ в отношении О1 получен в предположении, что каждый преподаватель в одной группе по одному предмету может либо читать лекции, либо проводить практические занятия. В отношении О2 ключ ФИО.

    Исследование отношений О1 и О2 показывает, что переход к 2НФ позволил исключить явную избыточность данных в таблице О2 - повторение строк со сведениями о преподавателях. В О2 по прежнему имеет место неявное дублирование данных.

    Для дальнейшего совершенствования отношения необходимо преобразовать его в 3НФ.

    Третья нормальная форма. Отношение находится в 3НФ, если оно находится в 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.

    Если в отношении О1 транзитивные зависимости отсутствуют, то в отношении О2 они есть:

    ФИО->Должн->Оклад,

    ФИО-> Оклад-> Должн,

    ФИО->Cтаж->Д_Стаж

    Транзитивные зависимости также порождают избыточное дублирование информации в отношении. Устраним их. Для этого используя операцию проекции на атрибуты, являющиеся причиной транзитивных зависимостей, преобразуем отношение О2, получив при этом отношения О3, О4 и О5, каждое из которых находится в 3НФ, а). Графически эти отношения представлены на Рис. 1.10 б).

    На практике построение 3НФ схем отношений в большинстве случаев является достаточным и приведением к ним процесс проектирования реляционной БД заканчивается. Действительно, приведение отношений к 3НФ в нашем примере, привело к устранению избыточного дублирования.

    Если в отношении имеется зависимость атрибутов составного ключа от неключевых атрибутов, то необходимо перейти к усиленной 3НФ.

    а)

    R3 R4 R5

    ФИО

    Должн

    Стаж

    Каф




    Должн

    Оклад




    Стаж

    Д_Стаж

    Иванов И.М.

    преп

    5

    25




    Преп

    500




    5

    100

    Петров М.И.

    ст.преп

    7

    25




    ст.преп

    800




    7

    100

    Сидоров Н.Г.

    преп

    10

    25













    10

    150

    Егоров В.В.

    преп

    5

    24


















    б)



    Рис. 1.10. Отношения БД в 3НФ

    Усиленная 3НФ или нормальная форма Бойса-Кодда (БКНФ).

    Отношение находится в БКНФ, если оно находится в 3НФ и в нем отсутствуют зависимости ключей (атрибутов составного ключа) от неключевых атрибутов.

    У нас подобной зависимости нет, поэтому процесс проектирования на этом заканчивается. Результатом проектирования является БД, состоящая из следующих таблиц: О1, О3, О4, О5. В полученной БД имеет место необходимое дублирование данных, но отсутствует избыточное.

    Итак, процесс нормализации отношений методом нормальных форм предполагает последовательное удаление из исходного отношения следующих межатрибутных зависимостей:

    • частичных зависимостей неключевых атрибутов от ключа (2НФ);

    • транзитивных зависимостей неключевых атрибутов от ключа (3НФ);

    • зависимости ключей (атрибутов составных ключей) от неключевых атрибутов (БКНФ).

    Кроме метода нормальных форм Кодда, используемого для проектирования небольших БД, применяют и другие методы, например, метод ER-диаграмм (метод "Сущность-связь"). Этот метод используется при проектировании больших БД, на нем основан ряд средств проектирования БД. Суть метода ER-диаграмм состоит в том, что из предметной области решаемой задачи выделяются объекты (сущности). Информация о каждом из них представляется в виде объектного отношения. На основе ряда правил объектные отношения могут связываться между собой с помощью связных отношений или непосредственно друг с другом..

    На последнем этапе метода ER-диаграмм отношения, полученные в результате проектирования, проверяются на принадлежность их к БКНФ. Этот этап может выполняться уже с использованием метода нормальных форм.

    После завершения проектирования БД создается с помощью СУБД.
    1   2   3   4   5


    написать администратору сайта