Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
инф-госы теория и практика.doc
Скачиваний:
28
Добавлен:
29.08.2019
Размер:
3.77 Mб
Скачать

9. Реляционная модель данных

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

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

Реляционная модель определяется таким образом, что структуры данных связаны с определением ОЦ большинства видов, поэтому в данном случае структуры данных и ограничения целостности проще рассматривать совместно.

Отношения в первой нормальной форме.

Основное понятие модели – отношение. Приведем формальное определение этого понятия.

Пусть даны множества D1…..Dn (не обязательно различные). Множество n-местных кортежей, в каждом из которых i-й элемент является элементом множества Di и называется отношением (relation) точнее отношением в первой нормальной форме – 1НФ. Если отношение обозначить R, то множества Di будут называться доменами отношения R.

Отношение R часто также называют реляционной таблицей или просто таблицей. Число n называется степенью отношения, а число кортежей в R – его мощностью.

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

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

Преподаватели

При этом кортежи фактически являются строками таблицы, атрибуты – столбцами (каждый столбец именован), а домены – суть множества возможных значений атрибутов. В этом случае требование первой нормальной формы кроме «правильности структуры» таблицы приводит к требованию наличия ключа. Действительно, понятие множества предполагает отсутствие одинаковых кортежей, т.е. строк в таблице.

а в этом случае, по крайней мере, все атрибуты таблицы можно считать составным ключом, т.е. множеством атрибутов, однозначно определяющим кортеж отношения. Еще одним требованием, вытекающим из определения отношения в 1-й НФ, является так называемая «атомарность» значений в ячейке таблице. Так, например, следующая таблица является некорректной.

Отношения в первой нормальной форме.

Основное понятие модели – отношение. Приведем формальное определение этого понятия.

Определение. Пусть даны множества D1…..Dn (не обязательно различные). Множество n-местных кортежей, в каждом из которых i-й элемент является элементом множества Di называется отношением (relation) точнее отношением в первой нормальной форме – 1НФ). Если отношение обозначить R, то множества Di будут называются доменами отношения R.

Примечание. Также отношение можно определить, как подмножество декартова произведения доменов D1,…,Dn (R=D1 … Dn)

Отношение R часто также называют реляционной таблицей или просто таблицей. Число n называется степенью отношения, а число кортежей в R – его мощностью

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

В наглядной форме отношение действительно представляет собой таблицу «правильной структуры», т.е. строго состоящей из строк и столбцов, например:

Преподаватели

ФИО

Возраст

Стаж

Айдахов

40

12

Бызанов

32

7

Стахин

58

25

Клишин

34

6



При этом кортежи фактически являются строками таблицы, атрибуты – столбцами (каждый столбец именован), а домены – суть множества возможных значений атрибутов. В этом случае требование первой нормальной формы кроме «правильности структуры» таблицы приводит к требованию наличия ключа. Действительно, понятие множества предполагает отсутствие одинаковых кортежей, т.е. строк в таблице.

ФИО

Возраст

Стаж

Айдахов

40

12

Бызанов

32

7

Стахин

58

25

Клишин

34

6

Стахин

58

25



а в этом случае по крайней мере все атрибуты таблицы можно считать составным ключом, т.е множеством атрибутов, однозначно определяющим кортеж отношения. Еще одним требованием, вытекающим из определения отношения в 1-й НФ, является так называемая «атомарность» значений в ячейке таблице. Так, например, следующая таблица является некорректной.

Преподаватели

ФИО

Уч. курс

Клишин

ПО,арх.комп.

Стахин

Инф.,комп.моделир.



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

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

В соответствии с определением, каждая ячейка должна содержать ровно один элемент доменного множества.

Вторая и третья нормальные формы. Нормальная форма Бойса-Кодда.

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

Приведем пример. Пусть имеется таблица ПОСТАВКИ с составным первичным ключом (ном_поставщика, ном_партии_товара), а также атрибутами «свед_о_поставщике» и «цена». Здесь атрибут «цена» зависит от всего первичного ключа, а атрибут «сведения о поставщике» только от его части – атрибута «ном_пост». Действительно, сведения о поставщике однозначно идентифицируются по его номеру.

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

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

Понятие об отношениях в третьей нормальной форме связано с понятием транзитивных зависимостей.

Говорят, что имеет место транзитивная зависимость атрибута A, если он однозначно зависит от атрибута B, не являющегося ключом или частью первичного ключа (этот неключевой атрибут, естественно, зависит от первичного ключа).

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

Рассмотрим пример. Имеем таблицу РАБОТА_НАД_ПРОЕКТАМИ. Здесь атрибут «ФИО_служ» является первичным ключом, а атрибут «дата_оконч» однозначно зависит от атрибута «ном_проекта».

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

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

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

Иногда условие НФБК определяется в терминах детерминантов. Если под детерминантом понимать любой атрибут, по которому можно однозначным образом определить значение некоторого другого атрибута, то условие НФБК можно сформулировать как требование отсутствия в отношении любых детерминантов, не являющихся ключами (не обязательно первичными). В данном примере неключевым детерминантом является атрибут «название_курса».

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

Пример.

Курсы

Дано отношение Курсы (номер_группы, ФИО_преподавателя, название курса, дата_начала, дата_окончания)

Курсы:

Ном. гр.

ФИО преп.

Назв. курса

Дата нач.

Дата оконч.

101

Иванов И.И.

Бух. учет

1.04.2005

30.04.2005

102

Иванов И.И.

Бух. учет

1.05.2005

31.05.2005

103

Петров П.П.

Дизайн

1.04.2005

30.04.2005

104

Петров П.П.

Дизайн

1.05.2005

31.05.2005

Преп.- курсы

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

Курсы

Ном. гр.

Назв. курса

Дата нач.

Дата оконч.

101

Бух. учет

1.04.2005

30.04.2005

102

Бух. учет

1.05.2005

31.05.2005

103

Дизайн

1.04.2005

30.04.2005

104

Дизайн

1.05.2005

31.05.2005

Преп.- курсы

Назв. курса

ФИО преп.

Бух. учет

Иванов И.И.

Дизайн

Петров П.П.

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

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

В начале дадим определение полной декомпозиции отношения R. Под полной декомпозицией отношения будем понимать совокупность его проекций, таких, что объединение множеств атрибутов, на которые производятся проекции, совпадает с множеством всех атрибутов отношения R. Говорят, что существует проблема полной декомпозиции отношения R, если соединение проекций, входящих в отношение R, не восстанавливает отношение R. Пример такой ситуации будет рассмотрен ниже.

Теперь рассмотрим отношение СПЕЦИАЛИЗАЦИИ (ФИО, основная_специализация, специализация_по_физ-ре).

Специализации

ФИО

Осн. специализация

Специализация по физ-ре

Иванов

информатика

плавание

Иванов

информатика

лыжи

Сидоров

информатика

плавание

Сидоров

информатика

бокс

Петров

информатика

плавание

Петров

информатика

бокс

Петров

математика

плавание

Петров

математика

бокс

Легко видеть, что данное отношение находится в НФБК (первичный ключ образует все множество атрибутов, транзитивные зависимости отсутствуют, неключевые детерминанты также отсутствуют), но в тоже время при внимательном рассмотрении можно видеть некоторые странности. Действительно, если мы хотим добавить для студента Иванова новую основную специализацию, то нам придется добавлять не одну запись, а несколько – столько, сколько у него специализаций по физкультуре, что не очень удобно. Интуитивно видно, что проблема фактически связана с попыткой представления повторяющегося набора характеристик сущности путем многократного копирования кортежей. Такая проблема возникает редко по той причине, что при инфологическом моделировании в ER-модели нет возможностей использовать повторяющиеся наборы характеристик. Если рассуждать в терминах зависимостей между атрибутами, то можно сказать, что имеют место многозначные зависимости. В данном случае, множество значений атрибутов «основная_специализация» и «специализация_по_физ-ре» многозначно зависят от атрибута «ФИО».

Определение. Отношение R называется отношением, заданным в четвертой нормальной форме, если оно задано в нормальной форме Бойса-Кодда и в нем, в случае присутствия многозначной зависимости атрибута B от атрибута A, все остальные атрибуты (если они существуют) функционально зависят от атрибута A. Добиться выполнения условий четвертой нормальной формы можно с помощью следующего расщепления:

ОСНОВНАЯ_СПЕЦИАЛИЗАЦИЯ (ФИО, осн. специализация)

СПЕЦИАЛИЗАЦИЯ ПО ФИЗ-РЕ(ФИО, специализация_по_физ-ре)

Основная специализация

ФИО

Осн. специализация

Иванов

информатика

Сидоров

информатика

Петров

информатика

Петров

математика

Специализация по физ-ре

ФИО

Специализация по физ-ре

Иванов

плавание

Иванов

лыжи

Сидоров

плавание

Сидоров

бокс

Петров

плавание

Петров

бокс

Таким образом, мы производим расщепление по атрибуту – источнику многозначной зависимости ( в данном случае – ФИО).

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

Действительно, в отношении СПЕЦИАЛИЗАЦИИ такая проблема присутствовала. Рассмотрим следующие проекции этого отношения:

(ФИО, основная_специализация)

(основная_специализация, специализация_по_физ-ре)

ФИО

Основная специализация

Иванов

информатика

Сидоров

информатика

Петров

информатика

Петров

математика

Основная специализация

Специализация по физ-ре

информатика

плавание

информатика

лыжи

информатика

бокс

математика

плавание

математика

бокс

Уже должно быть интуитивно понятно, что тут «что-то не так», поскольку второе отношение не имеет смысла. На самом деле здесь находит отражение все та же проблема многозначных зависимостей.

Теперь выполним соединение получившихся проекций:

ФИО

Осн. специализация

Специализация по физ-ре

Иванов

информатика

плавание

Иванов

информатика

лыжи

Иванов

информатика

бокс

Сидоров

информатика

плавание

Сидоров

информатика

лыжи

Сидоров

информатика

бокс

Петров

информатика

плавание

Петров

информатика

лыжи

Петров

информатика

бокс

Петров

математика

плавание

Петров

математика

бокс

Мы видим, что отношение не восстанавливается.

К сожалению, проблема полной декомпозиции не всегда связана с нарушением условий 4-й нормальной формы.

Рассмотрим отношение СОТРУДНИКИ (ФИО, организация, должность).

Сотрудники

ФИО

Организация

Должность

Иванов И.И.

ООО «Луч»

техник

Петров П.П.

ТОО «Реникс»

программист

Иванов И.И.

ТОО «Реникс»

программист

Сидоров С.С.

ООО «Луч»

бухгалтер

В данном случае отношение находится в 4-й нормальной форме. Действительно, многозначные зависимости здесь отсутствуют. Множество значений атрибута «должность» не определяется однозначно ни по атрибуту «ФИО» , ни по атрибуту «организация», то же самое можно сказать и про атрибут «организация». Интуитивно понятно, что тут есть многозначные зависимости как бы множеств возможных значений атрибутов. Рассмотрим полную декомпозицию

ФИО-ОРГАНИЗАЦИЯ (ФИО, организация)

ФИО-ПРОФЕССИЯ (ФИО, профессия)

Фио-организация

ФИО

Организация

Иванов И.И.

ООО «Луч»

Петров П.П.

ТОО «Реникс»

Иванов И.И.

ТОО «Реникс»

Сидоров С.С.

ООО «Луч»

Фио-должность

ФИО

Должность

Иванов И.И.

техник

Петров П.П.

программист

Иванов И.И.

программист

Сидоров С.С.

бухгалтер

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

ФИО

Организация

Должность

Иванов И.И.

ООО «Луч»

техник

Иванов И.И.

ООО «Луч»

программист

Иванов И.И.

ТОО «Реникс»

техник

Иванов И.И.

ТОО «Реникс»

программист

Петров П.П.

ТОО «Реникс»

программист

Сидоров С.С.

ООО «Луч»

бухгалтер

Определение. Отношение R является отношением, заданным в 5-й нормальной форме, если оно находится в 4-й нормальной форме и в нем отсутствует проблема полной декомпозиции.

Примечание. Поскольку, условие 4-й нормальной формы также связано с этой проблемой, в определении начальное условие можно заменить на условия нормальной формы Бойса-Кодда.

Особенность 5-й нормальной формы в том, что добиться выполнения ее условий в общем можно только за счет разбиения на большее, чем 2 количество отношений. В данном случае проблему можно устранить расщеплением на 3 проекции:

ФИО-ОРГАНИЗАЦИЯ (ФИО, организация)

ФИО-ПРОФЕССИЯ (ФИО, профессия)

ОРГАНИЗАЦИЯ-ПРОФЕССИЯ (организация-профессия)

Фио-организация

ФИО

Должность

Иванов И.И.

ООО ‘Луч’

Петров П.П.

TOO ‘Реникс’

Иванов И.И.

ТОО ‘Реникс’

Сидоров С.С.

ООО ‘Луч’

Фио-должность

ФИО

Должность

Иванов И.И.

техник

Петров П.П.

техник

Иванов И.И.

программист

Сидоров С.С.

бухгалтер

Организация-должность

Организация

Должность

ООО «Луч»

техник

ТОО «Реникс»

программист

ООО «Луч»

бухгалтер

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

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

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

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

Понятие ДКНФ относительно просто. Отношение находится в доменно-ключевой нормальной форме, если каждое ограничение, накладываемое на это отношение, является логическим следствием доменов и ключей. Таким образом, для ДКНФ характерно, что в принципе любое ограничение целостности можно определить через принадлежность атрибута домену и через ограничения по методу ключей. Естественно, под «любым ограничением целостности» на самом деле понимается любое ограничение целостности, удовлетворяющее общему определению, данному Фагиным.

К сожалению, не найден формальный алгоритм, позволяющий осуществить приведение отношения к ДКНФ, и не известно каждое ли отношение приводимо к ДКНФ. Определенные сложности возникают и с выделением всевозможных «фагинских» ограничений.

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