Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информационное обеспечение(лекции)

.pdf
Скачиваний:
77
Добавлен:
27.03.2016
Размер:
2.19 Mб
Скачать

Рисунок 2.24 - База данных «Питание» (см. приложение 4)

2.4.2.4 Достоинства и недостатки даталогических моделей

Сначала остановимся коротко на ранних (дореляционных) СУБД. Ограничимся рассмотрением только общих особенностей ранних систем, а именно, систем, основанных на иерархических и сетевых моделях.

1. Эти системы активно использовались в течение многих лет, дольше, чем используется какая-либо из реляционных СУБД. На самом деле некоторые из ранних систем используются даже в наше время, накоплены громадные базы

81

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

2.Все ранние системы не основывались на каких-либо абстрактных моделях. Как упоминалось, понятие модели данных фактически вошло в обиход специалистов в области БД только вместе с реляционным подходом. Абстрактные представления ранних систем появились позже на основе анализа

ивыявления общих признаков у различных конкретных систем.

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

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

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

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

Достоинства:

развитые средства управления данными во внешней памяти на низком уровне;

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

программ;

возможность экономии памяти.

Недостатки:

сложность практического использования;

необходимость знания физической организации данных;

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

логика перегружена деталями организации доступа к БД.

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

Достоинства:

наличие относительно небольшого набора абстракций;

наличие простого, но мощного математического аппарата (в основе реляционного подхода – теория множеств);

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

Недостатки:

82

ограниченность использования в нетрадиционных предметных

областях;

относительно неполная адекватность отражения семантики предметной области.

Самая сильная сторона реляционного подхода - математический аппарат для выполнения операций над отношениями реляционной модели.

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

2.4.3 Нормализация

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

понизить избыточность хранимых данных;

повысить их надежность.

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

Один из способов формализации этих знаний – установление зависимостей между элементами данных. Известно два основных типа таких зависимостей:

1)функциональные зависимости;

2)многозначные зависимости.

Функциональная зависимость является обобщением понятия ключа.

В таблице 2.7 представлено отношение График (ПИЛОТ, РЕЙС, ДАТА, ВРЕМЯ-ВЫЛЕТА). Это отношение показывает, какой пилот участвует в данном рейсе в данный день и каково время вылета самолета. Не любое сочетание значений атрибутов ПИЛОТ, РЕЙС, ДАТА и ВРЕМЯ-ВЫЛЕТА допустимо в таком расписании.

Таблица 2.7 – Отношение График

График

ПИЛОТ

РЕЙС

ДАТА

ВРЕМЯ-

ВЫЛЕТА

 

 

 

 

 

Мовчан

83

9 августа

10:15

 

Мовчан

116

10 августа

13:25

 

Синицын

281

8 августа

05:50

 

Синицын

301

12 августа

18:35

 

Синицын

83

11 августа

10:15

 

Федотов

83

13 августа

10:15

 

Федотов

116

12 августа

13:25

 

Вишневский

281

9 августа

05:50

 

Вишневский

281

13 августа

05:50

 

Вишневский

412

15 августа

13:25

На таблицу 2.7 накладываются следующие ограничения.

1.Для каждого рейса назначается только одно время вылета.

83

F , то часто можно вывести

2.Для данного пилота, даты и времени вылета возможен только один

рейс.

3.Для данного рейса и даты назначается только один пилот.

Эти ограничения являются примерами F-зависимостей (F-зависимость – функциональная зависимость между данными).

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

другом множестве атрибутов.

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

1.ВРЕМЯ функционально зависит от РЕЙСА.

2.РЕЙС функционально зависит от {ПИЛОТ, ДАТА, ВРЕМЯ}.

3.ПИЛОТ функционально зависит от {РЕЙС, ДАТА}. Порядок в этих последовательностях могут менять и говорить, что РЕЙС, ДАТА функционально определяют ПИЛОТ, или символически:

{РЕЙС, ДАТА} ПИЛОТ.

Пусть r – отношение со схемой R , X и Y – подмножества R . Отношение

r удовлетворяет функциональной зависимости X Y , если t1 ( X ) = t2 ( X ) , то t1 (Y ) = t2 (Y )

для любых кортежей t1 и t2 в r .

В F-зависимости X Y подмножество X называется левой частью, a Y

правой частью.

2.4.3.2 Аксиомы вывода функциональных зависимостей

Для отношения r(R) в любой момент существует некоторое семейство F- зависимостей, которым это отношение удовлетворяет. Здесь может возникнуть та же проблема, что и с ключами: одно состояние отношения может удовлетворять F-зависимости, а другое – нет.

Требуется выявить семейство F-зависимостей F , которому удовлетворяют все допустимые состоянияr . Чтобы найти F , необходимы семантические знания об отношении r . Поэтому можно считать семейство F- зависимостей заданным в схеме отношенияR . В этом случае любое отношение r(R) должно удовлетворять всем F-зависимостям из F .

Не всегда ясно, что является первичным: множество допустимых состояний отношения, которое определяет F-зависимости, или F-зависимости накладывают ограничения на схему отношения.

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

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

Если известны некоторые F-зависимости из остальные.

84

Множество F-зависимостей F влечет за собой зависимость X ® Y , если каждое отношение, удовлетворяющее всем зависимостям в F, удовлетворяет также зависимости X ® Y .

Аксиома вывода – это правило, устанавливающее, что если отношение удовлетворяет определенным F-зависимостям, то оно должно удовлетворять и некоторым другим F-зависимостям.

Сформулировано шесть аксиом вывода F-зависимостей [10]. В этих формулировках используется обозначение r для отношения на R и W , X , Y и Z для подмножеств R .

Fl. Рефлексивность. X ® Y .

F2. Пополнение. X ® Y влечет за собой X ® YZ .

F3. Аддитивность. X ® Y и X ® Z влечет за собой X ® YZ .

F4. Проективность. X ® YZ влечет за собой X ® Y .

F5. Транзитивность. X ® Y и Y ® Z влечет за собой X ® Z .

F6. Псевдотранзитивность. X ® Y и YZ ® W влечет за собой XZ ® W .

Некоторые аксиомы вывода могут быть получены из других. Например, транзитивность F5 является частным случаем псевдотранзитивности F6 при Z = Ä.

Приведенная система аксиом F1-F6 является полной. Это означает, что каждая F-зависимость, которая следует из множества Р, может быть выведена путем одноили многократного применения к F этих аксиом.

Из аксиом Fl, F2 и F6 можно вывести остальные, а значит, они образуют полное подмножество для F1-F6. Аксиомы Fl, F2 и F6 являются также независимыми: ни одна из этих аксиом не может быть получена из двух других.

Иногда эти три аксиомы называются аксиомами Армстронга.

 

Пусть F

множество F-зависимостей для отношения r(R) . Замыкание F ,

обозначаемое F + , - это наименьшее содержащее F

множество, такое,

что при

применении к

нему аксиом

Армстронга

нельзя получить ни

одной

F-зависимости, не принадлежащей F . Так как F + должно быть конечно, то можно вычислить его, начиная с F путем применения Fl, F2 и F6 и добавления полученных F-зависимостей к F до тех пор, пока не перестанут получаться

новые зависимости. Замыкание F зависит от схемыR .

 

Из множества F можно вывести F-зависимость

X ® Y , если X ® Y

принадлежит F + . Так как аксиомы вывода порождают только функциональные зависимости, то F влечет за собой X ® Y , если X ® Y выводится из F .

Пример 2.5. Пусть F = {AB C,C B} множество F-зависимостей на

r( ABC ) .

Тогда:

F +{A A, AB A, AC A, ABC A, B B, AB B, BC B, ABC B,C C,

AC C, BC C, ABC C, AB AB, ABC AB, AC AC, ABC AC, BC BC,

ABC BC, ABC ABC, AB C, AB AC, AB BC, AB ABC,C B,C BC, AC B, AC AB}.

85

В свете новых знаний об F-зависимостях, следует уточнить понятия

ключа и суперключа.

 

 

 

 

Для данной схемы отношения R

ключ –

это подмножествоK R , такое,

что для любого допустимого отношения r(R)

не существует двух различных

кортежей t1 и t2 в

r , таких, что

t1 (K ) = t2 (K ) ,

и никакое собственное

подмножество K ' K не обладает этим свойством.

 

Для некоторых

допустимых отношений

со

схемой подмножество K '

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

первичного ключа (или потенциальных ключей) и существующих функциональных зависимостей.

Цель нормализации – получение такого проекта базы данных, в котором

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

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

Нормализация чаще всего выполняется в несколько последовательных этапов, результатом каждого из которых является некоторая нормальная форма

сизвестными свойствами.

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

Рисунок 2.25. Вложенность нормальных форм

86

D( A)

Смысл вложенности нормальных форм в следующем: каждая нормальная форма является в некотором смысле более ограниченной, но и более желательной, чем предшествующая. Это связано с тем, что (N + 1) -я нормальная форма не обладает некоторыми недостатками, свойственным N -й нормальной форме.

Общий смысл дополнительного условия, налагаемого на (N + 1) -ю нормальную форму по отношению к N -й нормальной форме, состоит в исключении этих недостатков.

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

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

2.4.3.3 Первая нормальная форма

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

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

Определить понятие атомарности трудно: значение атомарное в одном приложении, может быть неатомарным в другом. Можно руководствоваться общим принципом, что значение неатомарно, если в приложении оно используется по частям.

Пример 2.6. Имеется отношение Сотрудники:

Сотрудники

НОМЕР

ФИО

 

23

Вербов Александр Владимирович

 

24

Фисенко Александр Сергеевич

 

25

Фатхи Дмитрий Владимирович

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

Сотрудники

НОМЕР

ФАМИЛИЯ

ИМЯ

ОТЧЕСТВО

 

23

Вербов

Александр

Владимирович

 

24

Фисенко

Александр

Сергеевич

 

25

Фатхи

Дмитрий

Владимирович

87

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

Род

ИМЯ

ПОЛ

 

 

 

 

Иван, Александр, Сергей

мужской

 

 

 

 

Мария, Ирина

женский

 

 

 

Чтобы отношение Род находилось в 1НФ, оно должно быть представлено следующим образом.

Род

ИМЯ

ПОЛ

 

Иван

мужской

 

Александр

мужской

 

Сергей

мужской

 

Мария

женский

 

Ирина

женский

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

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

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

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

1.Избыточность. Данные многих столбцов многократно повторяются. Повторяются и некоторые наборы данных.

2.Аномалии обновления:

а) аномалии добавления; б) аномалии изменения; в) аномалии удаления.

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

88

Рассмотрим отношение График.

График

РЕЙС

ДАТА

ПИЛОТ

ГАЛЕРЕЯ

 

 

 

 

 

 

112

6 июня

Иванов

7

 

112

7 июня

Петров

7

 

203

8 июня

Иванов

12

 

 

 

 

 

Атрибуты РЕЙС ДАТА являются ключом отношения График, и это отношение должно также удовлетворять F-зависимости РЕЙСГАЛЕРЕЯ. Пусть требуется обновить отношение, указав значение ключа и задавая значения всем остальным атрибутам. Однако если выполнить операцию

ИЗМЕНИТЬ (График; 112, 6 июня, ПИЛОТ=Иванов, ГАЛЕРЕЯ=8),

то отношение перестанет удовлетворять F-зависимости РЕЙСГАЛЕРЕЯ.

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

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

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

График и Галерея-График.

Пилот-График

РЕЙС

 

ДАТА

 

ПИЛОТ

 

 

 

 

 

 

 

 

 

 

112

 

6 июня

 

Иванов

 

 

112

 

7 июня

 

Петров

 

 

203

 

8 июня

 

Иванов

 

 

 

 

 

 

Галерея-График

РЕЙС

ГАЛЕРЕЯ

 

 

 

 

112

 

6 июня

 

 

 

 

112

 

7 июня

 

 

 

 

203

 

8 июня

 

При этом сохраняется возможность восстановить первоначальное отношение График из двух новых отношений.

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

89

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

2.4.3.4 Вторая нормальная форма

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

функциональных зависимостей F

на R

атрибут А называется первичным в R

относительно F , если A содержится

в каком-нибудь ключе схемы R . В

противном случае A называется непервичным в R .

 

Ключи в этом определении

не

следует путать с

выделенными

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

Пример 2.8. Пусть R (РЕЙС, ДАТА, ПИЛОТ, ГАЛЕРЕЯ) и множество F ={РЕЙС ДАТА ПИЛОТ ГАЛЕРЕЯ, РЕЙСГАЛЕРЕЯ}.

Атрибуты РЕЙС и ДАТА являются первичными, ПИЛОТ и ГАЛЕРЕЯ – непервичными. (Допустимо, чтобы один пилот имел два рейса в день, так что ПИЛОТ ДАТА ключом не является.)

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

Схема базы данных R имеет вторую нормальную форму относительно F , если каждая схема отношения R из R находится в 2НФ относительно F .

Пример 2.9. Пусть R(РЕЙС, ДАТА, ПИЛОТ, ГАЛЕРЕЯ) и множество F ={РЕЙС ДАТА ПИЛОТ ГАЛЕРЕЯ, РЕЙСГАЛЕРЕЯ}, R={ R}.

Схема не находится в 2НФ, так как ГАЛЕРЕЯ частично зависит от РЕЙС ДАТА. Если положить R={(PEЙC, ДАТА, ПИЛОТ); (РЕЙС, ГАЛЕРЕЯ)}, тогда схема будет находиться во второй нормальной форме. РЕЙС теперь является ключом для схемы отношения (РЕЙС, ГАЛЕРЕЯ).

2.4.3.5 Третья нормальная форма

Рассмотрим другое отношение График, представленное ниже. Предположим, что это отношение имеет ключ РЕЙС ДЕНЬ и к тому же удовлетворяет функциональным зависимостям КОД-ПИЛОТА ИМЯ и ИМЯКОД-ПИЛОТА.

Если выполнить операцию обновления

ИЗМЕНИТЬ (График; 112, 6 июня, КОД-ПИЛОТА=31039, ИМЯ=Иванов),

то изменяется функциональная зависимость ИМЯКОД-ПИЛОТА. Кроме того, имеется избыточная информация в виде пар КОД-ПИЛОТА, ИМЯ.

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

90