DEL (ПРЕДМЕТ; 05, Теор.транслятор, 54) 


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



ЗНАЕТЕ ЛИ ВЫ?

DEL (ПРЕДМЕТ; 05, Теор.транслятор, 54)



(После удаления дисциплины «Теория трансляторов» следует удалить ненужные связи и строки в отношениях ЧИТАЕТ и ПРЕДМЕТ).

3. Операция изменения предназначена для модификации части кортежа. Для отношения r, если 1 с2,... cp} ∈ {А1 A2,... Аn}, т.е. с1 с2,... cp входят в домены атрибутов А1 A2,... Аn определить так:

СН (r; A1=d1, A2=d2,..., An=dn;

d1 = c1, d22,...).

Для примера 2.2 замена лектора Васина на Попова при сохранении других атрибутов выполнится с помощью операции:

СН (ЛЕКТОР; А1 = Васин, А2=Доцент, А3= к.т.н;

Васин=Попов).,

Эти команды не будут выполняться при следующих ошибках:

• добавляемый кортеж не соответствует схеме отношения,

• описанный кортеж совпадает по ключу с существующим,

• часть значений кортежа не принадлежит соответствующим доменам,

• изменения имеют неправильный формат,

• изменяемый кортеж не существует.

ЛЕКЦИЯ 7

ТЕМА: ПРОЕКТИРОВАНИЕ НОРМАЛИЗОВАННЫХ БД.

ПЛАН

1 Целостность базы данных

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

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

 

Целостность базы данных

 

В теории баз данных целостность складывается из категорной и ссылочной целостности.

Категорная целостность. Элемент не может быть записан в БД до тех

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

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

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

Для обеспечения целостности данных необходимо выполнить следующие действия.

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

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

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

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

 

Схема РБД содержит структурную и семантическую информацию. Структурная обусловлена конкретным выбором отношений (таблиц), семантическая (смысловая) – теми функциональными зависимостями между атрибутами отношений РБД, объявленными в схеме.

Например, если в модель примера 2.2 к объекту ПРЕДМЕТ добавить атрибуты Аудитория и Используемые ТСО, то в РБД изменится её структура, а в отношении ПРЕДМЕТ изменятся функциональные связи между атрибутами.

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

Корректной считается схема, в которой отсутствуют нежелательные функциональные зависимости.

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

Таким образом, нормализация -это пошаговый, обратимый процесс замены данной схемы (совокупности отношений) БД другой схемой, в которой отношения имеют более простую и регулярную структуру без ненужных функциональных зависимостей. В результирующей РБД не должны появляться новые кортежи.

Основная задача нормализации БД - найти такой состав отношений, который удовлетворял бы следующему минимуму требований:

• множество отношений должно обеспечивать минимизацию избыточности представления информации;

• назначенные для отношения ключи должны быть минимальными;

• при выполнении операций удаления, включения, модификации в БД не должно быть аномалий;

• перестройка набора отношений РБД при изменении структуры какого-либо отношения (добавление, удаление, изменение атрибутов) должна быть минимальной;

• разброс времени выполнения запросов в БД должен быть небольшим.

Например, отношение ПОСТАВКА содержит следующие атрибуты:

ПОСТАВКА (Дата поставки,Поставщик,Товар,

Адрес_поставщика, Количество_товара, Цена_ ед_товара)

Такое отношение имеет следующие недостатки:

• избыточность информации (атрибут Адрес_ поставщика для поставки товаров не важен);

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

• аномалия модификации (при изменении атрибута Адрес поставщика, он не изменяется в других отношениях, в результате возникает нарушение целостности БД;

• аномалия включения: если с поставщиком заключен договор, но
товар не поставлен, его нельзя включить в БД;

• аномалия удаления: если удалили все поставки некоторого поставщика, то теряются вообще все сведения о нем.

Эти недостатки устраняются применением нормализации отношений.

Нормализация - это процесс наложения ограничения на данные в отношении, в результате получается нормальная форма (НФ) отношения какого-либо уровня.

Чем выше уровень нормальной формы, тем жестче накладываемые на отношения ограничения. Всего различают 6 уровней нормализации отношений:

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

2НФ - вторая нормальная форма;

ЗНФ - третья нормальная форма;

НФБК - нормальная форма Бойса - Кодда;

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

5НФ - пятая нормальная форма.

1НФ, 2НФ, ЗНФ - ограничивают зависимость непервичных атрибутов от ключей.

НФБК - ограничивает зависимость первичных атрибутов.

4НФ - формулирует ограничения на виды многозначных зависимостей.

5НФ - вводит другие типы зависимостей - зависимости соединений.

 

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

 

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

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

Схема всей базы данных находится в 1НФ, если каждая схема отношения находится в 1НФ.

Сложность определения понятия атомарности в том, что значение, атомарное в одном приложении (программе пользователя), может быть неатомарным в другом. Считается, что значение атрибута не атомарно, если в приложении он используется по частям.

Пример 2..4. Отношение ДЕТИ:

ДЕТИ

Имя Дата рождения
Вика 5 марта 1995
Саша 25 января 1998
Оля 1 ноября 2003
Петя 14 сентября 2002

 

Чтобы это отношение было в 1НФ, атрибут Дата рождения должен использоваться целиком. Если в приложении требуется отдельно использовать Число, Месяц, Год, то отношение ДЕТИ не находилось бы в 1НФ, атрибут Дата рождения следовало бы разбить на 3 части:

 

ДЕТИ

Имя Число рождения Месяц рождения Год рождения
Вика   март  
Саша   январь  
Оля   ноябрь  
Петя   сентябрь  

 

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

 

Пример 2..5 Ненормализованное отношение ДЕТИ и его 1НФ:

ДЕТИ ДЕТИ

Имя Пол   Имя Пол
Саша, Петя муж Саша муж
Оля, Вика жен   Оля жен
      Вика жен
      Петя муж

 

Ненормализованное 1НФ

отношение

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

2. Добавление атрибута: добавление в отношение нового атрибута, например, Рост, Вес, выполняется просто – добавлением столбцов без модификации кортежей.

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



Поделиться:


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

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