Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГОС_Теория ЭИС и БД.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
427.6 Кб
Скачать

12.Ключи в отношениях. Зависимости между атрибутами в реляционной модели.

Сущность – реальный или воображаемый объект, имеющий существенное значение для рассматриваемой предметной области.

Атрибут – свойство сущности. Ключ сущности – атрибут или набор атрибутов, используемый для идентификации экземпляров сущности.

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

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

Возможный ключ – атрибут или набор атрибутов, который м.б. выбран в качестве первичного ключа, но таковым не является.

Существует 3 основных вида зависимостей между атрибутами:

  • функциональные;

  • многозначные;

  • транзитивные.

Атрибут Б функционально зависит от атрибута А, если каждому значению атрибута А соответствует в точности 1 значение атрибута Б. Возможно функционально полная зависимость, когда атрибут Б зависит от всех составных частей атрибута А, представляющего собой составной ключ. Если атрибут Б зависит только от части атрибутов составного ключа, то имеет место частичная функциональная зависимость. А→Б

Атрибут В многозначно зависит от атрибута А, если каждому значению атрибута А соответствует множество значений атрибута В, т.е. связи между ними типа: один ко многим, многие к одному и многие ко многим.

Атрибут С зависит от атрибута А транзитивно, если для атрибутов А,В,С выполняются условия: 1) В функционально зависит от А. 2) С функционально зависит от В. 3) обратная зависимость отсутствует. А→B→С

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

Все отношения между атрибутами учитываются при приведении отношений (таблиц) к нормальной форме.

13.Нормализация отношений.

Нормализация – процесс преобразования отношений БД к той или иной НФ. Теория нормализации основана на том, что определенный набор отношений обладает лучшими свойствами при включении, модификации и удалении данных, чем все остальные наборы отношений, с помощью которых м.б. представлены те же данные. Цель нормализации – приведение отношений к 3-й нормальной форме (3НФ). Каждая следующая нормальная форма ограничивает определенный тип функциональных зависимостей, сохраняет свойства предшествующих нормальных форм и устраняет избыточное дублирование, которое может приводить к проблемам при обработке данных.

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

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

Вообще выделяют 6 нормальных форм, но основными из них являются:

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

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

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

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

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

Пусть имеется отношение «Преподаватель» с атрибутами: стаж, ФИО, стаж работы в должности, должность, кафедра, оклад, предмет, группа, вид занятий. Отношение находится в 1НФ. Составной ключ: ФИО, предмет, группа. Вид занятий – функционально полно зависит от ключа. Атрибуты стаж, должностной стаж, кафедра, оклад и должность зависят от ключа частично, только от атрибута ФИО. Разбиваем отношение на 2:

  • Первичный ключ – ФИО, предмет, группа, зависимый атрибут – вид занятий.

  • Ключевой атрибут - ФИО, зависимые - оклад, должностной стаж, должность, кафедра.

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

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

Для устранения транзитивных зависимостей надо с помощью операции проекции преобразовать исходное отношение т.о., чтобы в полученных отношениях исчезли транзитивные зависимости атрибутов. 2-ое отношение м.б. преобразовано в 3:

    1. ключ – ФИО, зависимые – должность, стаж, кафедра;

    2. зависимые – должность, оклад, ключ – любой из них;

    3. зависимые – должностной стаж, общий стаж.

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