Главная страница

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


Скачать 3.17 Mb.
НазваниеПрактикум по проектированию, программированию и администрированию баз данных, включающий примеры и практические задания для самостоятельного выполнения
АнкорВолк В.К. Базы данных
Дата16.11.2022
Размер3.17 Mb.
Формат файлаpdf
Имя файлаVolk_Bazy-dannyh-proektirovanie-programmirovanie-upravlenie-i-ad.pdf
ТипПрактикум
#791285
страница6 из 18
1   2   3   4   5   6   7   8   9   ...   18
4.3.2. Процедура нормализации отношений
Приведенный выше пример иллюстрирует проблемы, возникающие при эксплуатации слабоструктурированных баз данных, но не дает ответа на три ба- зовых вопроса.
1. Как определить на стадии проектирования базы данных, будут ли про- являться аномалии в процессе ее эксплуатации?
2. Как преобразовать исходную схему отношения к форме, в которой проявление аномалий будет минимальным и маловероятным?
3. Как при таком преобразовании не потерять информационную адекват- ность исходной R-модели, унаследованную от ER-модели?
6 / 19

64
Ответы на эти вопросы дает так называемый реляционный подход к про- ектированию базы данных путем ее последовательной нормализации, в основе которого лежит теория нормальных форм отношений.
В теории определены 6 нормальных форм (НФ): 1-я НФ, 2-я НФ, 3-я НФ,
НФБК (нормальная форма Бойса — Кодда, называемая также «усиленной тре- тьей нормальной формой»), 4-я НФ и 5-я НФ, при этом каждая последую- щая НФ считается более сильной по сравнению с предыдущей. 1-я и 2-я НФ считаются слабыми нормальными формами, для большинства приложений оказывается достаточным приведение отношений базы данных к сильной
НФБК.
Соответствие схемы отношения одной из сильных НФ дает определенные гарантии отсутствия аномалий в процессе эксплуатации базы данных, при этом чем сильнее эта НФ, тем менее вероятным будет проявление аномалий.
Теория нормальных форм отношений дает следующий ответ на первый из перечисленных выше вопросов: проявление аномалий модификации данных в
некотором отношении будет сведено к минимуму, если схема этого отноше-
ния находится в одной из сильных нормальных форм. Метод определения НФ отношения базируется на результатах семантического анализа зависимостей между его атрибутами (п. 4.3.3): чем меньше таких зависимостей, тем в более сильной НФ находится отношение.
Эта же теория дает ответ и на второй вопрос: для приведения отношения
к более сильной НФ следует провести его декомпозицию на несколько взаимо-
связанных отношений, в которых будут отсутствовать нежелательные зави-
симости между атрибутами.
Декомпозиция отношений проводится путем многократного применения к ним реляционно-алгебраической операции проекции (п. 2.4.4.1) на соответ- ствующие подмножества атрибутов.
Гарантией сохранения информационной адекватности схемы нормализо- ванной базы данных является строгое следование правилу декомпозиции без
потерь (п. 4.3.4) в процессе проведения декомпозиции отношений. Определе- ние этого правила также дает теория нормальных форм отношений.
Нормализацией реляционной базы данных называется такое информа-
ционно-эквивалентное преобразование ее схемы, в результате которой отно-
шения, находящиеся в слабых НФ, декомпозируются на несколько взаимосвя-
занных отношений, каждое из которых находится в более сильной НФ, что га- рантирует отсутствие проявления аномалий (или, по крайней мере, сведение к минимуму их негативных последствий) в процессе эксплуатации БД.
Типичный алгоритм нормализации реляционной базы данных может быть представлен следующей циклической последовательностью этапов:
1) для каждого отношения исходной базы данных проводится анализ зависимостей между его атрибутами (п. 4.3.3), по результатам которого опреде- ляется, в какой из НФ находится это отношение (п. 4.3.5);
2) отношения, находящиеся в сильных НФ (обычно это НФБК и выше), сохраняют свои исходные схемы;
7 / 19

65 3) каждое отношение, находящееся в слабой НФ, декомпозируется на несколько взаимосвязанных отношений с учетом правила декомпозиции без по-
терь (п. 4.3.4);
4) для каждого из отношений, полученных на 3-м этапе нормализации, выполняются этапы с 1-го по 3-й до тех пор, пока в схеме БД не останется от- ношений, находящихся в слабых НФ.
4.3.3. Зависимости между атрибутами отношений
В теории нормальных форм отношений определены три вида зависимо- стей между атрибутами: это функциональные зависимости, на которых бази- руются определения первых четырех нормальных форм (от 1-й НФ до НФБК),
многозначные зависимости, используемые при определении 4-й НФ, и зави- симости проекции-соединения, определяющие принадлежность отношения к
5-й НФ.
В учебнике рассматриваются только функциональные и многозначные зависимости и, соответственно, только первые пять нормальных форм отноше- ний, имеющих наибольшее практическое применение при проектировании ре- ляционных баз данных.
Определение 1. Функциональная зависимость
Пусть в схеме отношении R определены атрибуты A и B (простые или со- ставные). Атрибут B функционально зависит от атрибута A, если в любой момент времени во всех кортежах отношения R каждому значению a атрибута A соответствует ровно одно связанное с ним значение b атрибута B.
Для обозначения функциональных зависимостей (далее — ФЗ) будем ис- пользовать формулу вида «A
B», в левой части которой записывается опре- деляющий атрибут, а в правой — зависимый. Формула читается как «атрибут
B функционально зависит от атрибута A». Используются также и графические способы обозначения зависимостей, примеры которых приведены на рисун- ке 2.18.
A C
B D E
Рис. 2.18
Графические обозначения функциональных зависимостей
A
C; (A,B) (B,D); (C B,D); D E
8 / 19

66
Для выявления зависимостей между атрибутами отношений на первом этапе нормализации БД необходимо провести семантический анализ свойств реальных объектов, описываемых соответствующими атрибутами.
При этом следует понимать, что наличие совпадающих пар значений ат- рибутов в разных кортежах отношения не является доказательством того, что между этими атрибутами существует ФЗ, но, с другой стороны, если в несколь- ких кортежах отношения одному и тому же значению атрибута A соответству- ют различные значения атрибута B, можно считать доказанным утверждение об отсутствии ФЗ между этими атрибутами.
Множество ФЗ, выявленных по результатам семантического анализа мо- делируемого объекта, может оказаться избыточным, то есть может содержать зависимости, которые не вносят никакой новой информации, так как являются следствием наличия других зависимостей между атрибутами отношения. Перед тем как приступить к определению НФ отношения и его последующей норма- лизации, необходимо исключить избыточные ФЗ из исходного набора, получив так называемое минимальное покрытие.
Минимальным покрытием называют такое множество ФЗ между атри- бутами отношения, которое не содержит избыточных ФЗ, выводимых из других
ФЗ на основе рассмотренных выше правил вывода, и при этом удовлетворяет следующим требованиям:
– правая (зависимостная) часть любой ФЗ минимального покрытия явля- ется простым (не составным) атрибутом;
– левая часть любой ФЗ минимального покрытия может быть составным атрибутом, но при этом должна обладать свойством минимальности — это означает, что удаление любого атрибута из левой части любой ФЗ порождает множество ФЗ, не эквивалентное их исходному набору;
– удаление любой ФЗ из минимального покрытия порождает множество
ФЗ, не эквивалентное их исходному набору.
Выявление избыточных ФЗ производится по результатам их формального анализа на основе следующих правил вывода ФЗ.
Правило № 1 (рефлексивность): если B
A, то AB — подмножество ат- рибутов отношения функционально зависит от любого их множества, включа- ющего данное подмножество. Другими словами, в левую (определяющую) часть существующей ФЗ можно добавлять любые атрибуты, при этом будут определены новые (корректные, хотя и избыточные) ФЗ.
Правило № 2 (пополнение): если существует ФЗ (A,С)
B, то существует также и ФЗ (A,С)
→(B,С) — в правую (зависимостную) часть существующей ФЗ можно добавлять атрибуты, представленные в ее левой (определяющей) части, при этом будет определена новая (корректная, хотя и избыточная) ФЗ.
Правило № 3 (транзитивность): если существуют ФЗ A
B и ВС, то существует также корректная, хотя и избыточная ФЗ A
С.
Первые три правила (называемые аксиомами Армстронга) составляют базовый набор свойств ФЗ, на основе которых сформулированы еще четыре правила вывода ФЗ.
9 / 19

67
Правило № 4 (декомпозиция): если существует ФЗ A
→(B,С), то существу- ют ФЗ A
В и AС. Доказательство. Согласно правилу рефлексивности суще- ствует ФЗ (B,C)
B, следовательно, по правилу транзитивности существует ФЗ
A
В; аналогично, существует ФЗ (B,C)→С и, следовательно, существует ФЗ
A
С.
Правило № 5 (объединение): если существуют ФЗ A
В и AС, то суще- ствует также и ФЗ A
→(B,С). Доказательство. Согласно правилу рефлексивно-
сти из A
С следует (А,В)→С, а по правилу пополнения из (А,В)→С следует
(А,В)
→(В,С) и из AВ следует A→(А,В). Следовательно, по правилу транзи-
тивности A
→(B,C).
Правило № 6 (композиция): если существуют ФЗ A
В и СD, то суще- ствует и ФЗ (А,С)
→(В,D). Доказательство. Последовательно применяя правила
рефлексивности и пополнения к двум исходным ФЗ, получим корректные ФЗ
(А,С)
→(В,С) и (В,С)→(В,D), из которых по правилу транзитивности может быть выведена ФЗ (А,С)
→(В,D).
Правило № 7 (накопление или псевдотранзитивность): если существуют
ФЗ A
→(В,С) и ВD, то существует и ФЗ A→(B,C,D). Доказательство. Последо- вательно применяя правила рефлексивности и пополнения к ФЗ В
D, получим новую ФЗ (В,С)
→(B,C,D). Применяя правило транзитивности к исходной ФЗ
A
→(В,С) и новой ФЗ (В,С)→(B,C,D), получим ФЗ A→(B,C,D).
4.3.4. Правило декомпозиции без потерь
Как уже отмечалось, процедура нормализации отношения выполняется путем его декомпозиции на два или более отношения, схемы которых должны удовлетворять требованиям более сильных нормальных форм по сравнению со схемой исходного отношения.
Чтобы не потерять информационной адекватности исходной R-модели, декомпозиция нормализуемого отношения должна быть обратимой, то есть должна обеспечивать следующие результаты:
во-первых, при декомпозиции следует обеспечить существование связи между формируемыми отношениями, из чего следует, что в схемах этих отно- шений должны присутствовать общие атрибуты, образующие как минимум од- ну пару «первичный ключ — внешний ключ»;
во-вторых, в результате выполнения операции естественного соединения этих отношений должно быть сформировано отношение, равное (то есть совпа- дающее по схеме и составу кортежей) исходному отношению, подвергнутому процедуре декомпозиции.
Обратимость декомпозиции иллюстрируется следующим (абстрактным) примером. Пусть задано отношение R{A,B,C}, все атрибуты которого могут трактоваться как простые или составные. В результате декомпозиции этого от- ношения путем двукратного применения к нему реляционно-алгебраической
операции проекции получены два отношения, связанные по их общему атрибу- ту: B: R1 := R PROJECT (A,B) и R2 := R PROJECT (B,C).
10 / 19

68
Операция естественного соединения этих отношений порождает отноше- ние R3 := R1 NATURAL JOIN R2 [ON R1.B = R2.B]. Проведенная декомпозиция бу- дет считаться обратимой при условии, если R3 = R, в противном случае имеем некорректную декомпозицию исходного отношения, выполнение которой при- ведет к потере информационной адекватности R-модели.
Пример некорректной и необратимой декомпозиции с потерями иллю- стрируется рисунком 2.19.
R
A
B
C
R1:= R PROJECT
(A,B)
1
2
3
R2:= R PROJECT
(B,C)
A
B
3
2
6
B
C
1
2
5
4
2
2
3
3
2
2
6
5
4
R3 := R1 NATURAL JOIN R2
4
2
A
B
C
1
2
3
1
2
6
3
2
3
3
2
6
5
4
2
Рис. 2.19
Пример некорректной (необратимой) декомпозиции
Имеем некоторую реализацию отношения R{A,B,C} с определенными зна- чениями атрибутов числового типа в трех его кортежах. Декомпозиция этого отношения путем его проецирования на два различных подмножества атрибу- тов приведет к формированию отношений R1{A,B} и R2{В,C}, связанных по их общему атрибуту В. В результате естественного соединения отношений R1 и R2
будет создано отношение R3, кортежи которого формируются путем сцепления каждого кортежа отношения R1 с теми кортежами отношения R2, для которых выполняется условие естественного соединения R2.B = R1.B. Полученное отно- шение R3 содержит два «лишних» кортежа и не совпадает с исходным отноше- нием R.
Приведенный пример лишь иллюстрирует тот факт, что не всякая деком- позиция отношения является допустимой, но не позволяет практически приме- нить его для проверки корректности декомпозиции. Заметим, что в распоряже- нии разработчика БД, приступающего к ее нормализации, имеются только схе- мы отношений, и при этом невозможно спрогнозировать все возможные реали- зации их кортежей с конкретными значениями атрибутов.
11 / 19

69
Правило декомпозиции без потерь (известное как теорема Хита) форму- лируется с использованием результатов анализа функциональных зависимостей между атрибутами отношения.
Определение 2. Правило декомпозиции без потерь
Отсутствие потерь при декомпозиции отношения гарантируется в том случае, если от общего атрибута результирующих отношений функциональ- но зависит хотя бы один атрибут из оставшихся.
Если в отношении R{A,B,C} существуют ФЗ A
В или СВ, то R = (R PROJECT (A,B)) NATURAL JOIN (R PROJECT (B,C))
Анализируя отношение R (рис. 2.19), можно заметить, что в двух корте- жах этого отношения одинаковым значениям атрибута В соответствуют различ- ные значения атрибутов А и С. Из этого можно сделать вывод об отсутствии ФЗ
A
В и СВ и, как следствие, о некорректности проведения декомпозиции от- ношения по общему атрибуту В, что и подтверждается составом кортежей от- ношения R3.
T
A
B
C
T1:= T PROJECT
(A,B)
1
2
3
T2:= T PROJECT
(B,C)
A
B
3
2
3
B
C
1
2
5
4
2
2
3
3
2
2
3
5
4
T3 := T1 NATURAL JOIN T2
4
2
A
B
C
1
2
3
3
2
6
5
4
2
Рис. 2.20
Пример декомпозиции без потерь
В другом примере (рис. 2.20) в отношении Т существует ФЗ В
С (нали- чие этой ФЗ выявлено в результате семантического анализа предметной обла- сти и только подтверждено соответствующими значениями атрибутов в выбор- ке кортежей этого отношения — в двух его кортежах одинаковым значениям атрибута С = 3 соответствуют одинаковые значения атрибута В = 2).
В соответствии с правилами выполнения реляционной операции проек- ции, кортеж-дубликат удаляется из отношения Т2, что позволяет получить в ре- зультате естественного соединения отношений Т1 и Т2 отношение Т3, идентич- ное исходному отношению Т.
12 / 19

70
4.3.5. Нормальные формы отношений
Определение 3. 1-я нормальная форма
Отношение находится в 1-й НФ, если оно удовлетворяет базовым огра- ничениям реляционной модели данных: все атрибуты отношения атомарны и в отношении отсутствуют кортежи-дубликаты.
Отсутствие кортежей-дубликатов требует наличия в схеме отношения хо- тя бы одного возможного ключа — простого или составного атрибута, облада- ющего свойством уникальности и однозначно идентифицирующего кортеж.
В отношении, находящемся в 1-й НФ, существуют ФЗ каждого из его атрибутов от всех возможных ключей.
Определение 4. Полная функциональная зависимость
Функциональная зависимость A
B называется полной, если атрибут В функционально не зависит от любого подмножества атрибута А.
Определение 5. Детерминант
Детерминантом называется левая (определяющая) часть полной функ-
циональной зависимости.
Определение 6. Ключевые и неключевые атрибуты
Атрибуты отношения, входящие в состав возможных ключей, называ- ются ключевыми (или основными) атрибутами; остальные атрибуты отноше- ния называются неключевыми (или неосновными).
Определение 7. 2-я нормальная форма
Отношение находится во 2-й НФ, если оно находится в 1-й НФ и суще- ствуют полные ФЗ каждого неключевого атрибута от всех возможных ключей этого отношения.
Очевидно, что если все возможные ключи отношения атомарны, то это отношение уже находится во 2-й НФ.
Если отношение не находится во 2-й НФ, следует провести такую его де- композицию, при которой пары атрибутов, участвующих в неполных зависимо- стях, будут выделены в отдельные отношения.
Определение 8. Транзитивная функциональная зависимость
В отношении R{A,B,C} существует транзитивная ФЗ A
B, если имеются
ФЗ A
С и СВ и при этом отсутствует ФЗ СА.
Определение 9. 3-я нормальная форма
Отношение находится в 3-й НФ, если оно находится во 2-й НФ и при этом в отношении отсутствуют транзитивные ФЗ неключевых атрибутов от любого из возможных ключей.
13 / 19

71
Заметим, что отсутствие любых ФЗ между неключевыми атрибутами отношения гарантирует отсутствие транзитивных зависимостей его неключе- вых атрибутов от возможных ключей. Следовательно, для приведения к 3-й НФ отношения, находящегося во 2-й НФ, необходимо провести такую его декомпо- зицию, при которой пары взаимозависимых неключевых атрибутов будут вы- делены в отдельные отношения.
Определение 10. Нормальная форма Бойса — Кодда (НФБК)
Отношение находится в НФБК, если оно находится в 3-й НФ и при этом каждый детерминант отношения является его возможным ключом.
В отношении, находящемся в 3-й НФ, гарантированно отсутствуют не- полные ФЗ (определение 4) неключевых атрибутов от возможных ключей, а также любые ФЗ между неключевыми атрибутами. При этом, однако, не ис- ключается наличие ФЗ между ключевыми атрибутами, входящими в состав возможного ключа, что может приводить к проявлению различных аномалий в процессе эксплуатации БД. НФБК устраняет этот «структурный недостаток» схемы отношения, запрещая наличие в отношении атрибутов-детерминантов
(определение 5), являющихся «частями» составных возможных ключей.
Для приведения к НФБК отношения, находящегося в 3-й НФ, следует провести такую его декомпозицию, при которой пары взаимосвязанных ключе- вых атрибутов (при наличии в этом отношении внутриключевых связей) будут выделены в отдельные отношения. Заметим, что если в отношении, находящем- ся в 3-й НФ, отсутствуют составные возможные ключи, это отношение уже находится и в НФБК.
4-я нормальная форма базируется на концепции многозначных зависи- мостей между атрибутами отношения.
Определение 11. Многозначная зависимость
В отношении R{A,B,C} существует многозначная зависимость атрибута
А от атрибута В (обозначается как A
→→B) в том случае, если множество зна- чений атрибута B, соответствующее паре значений атрибутов A и C, зависит только от атрибута A и не зависит от атрибута С.
Определение 12. 4-я нормальная форма
Отношение R{A,B,C} находится в 4-й НФ, если при существовании мно-
гозначной зависимости A
→→ B существуют функциональные зависимости всех остальных атрибутов этого отношения от атрибута A.
Приведение к 4-й НФ отношения, находящегося в НФБК, также произво- дится путем его декомпозиции, исключающей многозначные зависимости в каждом из производных отношений. Соответствующие примеры рассмотрены в п. 4.3.6.
14 / 19

72
4.3.6. Пример нормализации реляционной базы данных
Продолжим рассмотрение модели экзаменационной ведомости, использо- ванной ранее (п. 4.3.1), для иллюстрации аномального поведения слабострукту- рированной базы данных.
Пусть задана следующая схема исходного отношения R
0
:
R
0
(Сем., Дисц., Студ., Курс, Спец., Группа, Препод., Дата, Оценка)
Анализируя реальные процессы проведения экзаменационных сессий
(с учетом несущественных упрощений этих процессов, вполне допустимых в условиях рассмотрения демонстрационного примера), получим следующий ис-
ходный набор ФЗ между атрибутами отношения R
0
ФЗ-1:
Сем.
Курс — номер семестра однозначно определяет номер курса, на котором учится группа студентов.
ФЗ-2:
Группа
(Курс, Спец.) —наименование группы однозначно определяет номер курса и специальность для этой группы.
ФЗ-3:
Студ.
(Группа, Спец.) — студент может входить в состав только одной группы и обучаться только по одной специальности.
ФЗ-4:
(Сем., Спец., Дисц., Группа)
Препод. — не допускается прием экзамена в одной группе одной специальности по одной дисциплине в одном семестре несколькими преподавателями.
ФЗ-5:
(Сем., Группа., Дисц.)
(Дата, Препод.) — группа сдает экза- мен по дисциплине строго в соответствии с расписанием экзаменационной сес- сии — одному преподавателю и в один день.
ФЗ-6:
(Студ., Дисц., Сем.)
(Дата, Препод., Оценка) — не допуска- ется индивидуальная (в том числе повторная и другому преподавателю) сдача экзаменов студентами вне группового расписания.
На следующем этапе нормализации отношения R
0
следует сформировать
минимальное покрытие ФЗ (п. 4.3.3), исключив из исходного набора избыточ- ные ФЗ, которые могут быть получены из других ФЗ применением к ним соот- ветствующих правил вывода (п. 4.3.4).
Зависимости ФЗ-2, ФЗ-3, ФЗ-5 и ФЗ-6 не соответствуют одному из требо- ваний, предъявляемых к минимальному покрытию, так как содержат состав-
ные атрибуты в своих правых частях. Исключаем эти ФЗ из минимального по- крытия, заменив их новыми ФЗ, полученными путем применения к исключае- мымзависимостям правила декомпозиции. Заметим, что новые ФЗ не противо- речат семантике предметной области.
Декомпозиция ФЗ-2Группа
(Курс, Спец.):
ФЗ-2.1 — Группа
Курс;
ФЗ-2.2Группа.
Спец.
Декомпозиция ФЗ-3Студ.
(Группа, Спец.):
ФЗ-3.1Студ.
Группа;
ФЗ-3.2Студ.
Спец.
15 / 19

73
Зависимость ФЗ-3.2 является избыточной, так как может быть получена из ФЗ-3.1 и ФЗ-2.2 по правилу транзитивности — исключаем ФЗ-3.2 из мини- мального покрытия.
Декомпозиция ФЗ-5(Сем., Группа., Дисц.)
(Дата, Препод.):
ФЗ-5.1(Сем., Группа., Дисц.)
Дата;
ФЗ-5.2(Сем., Группа., Дисц.)
Препод.
Декомпозиция ФЗ-6(Студ., Дисц., Сем.)
(Дата, Препод., Оценка):
ФЗ-6.1(Студ., Дисц., Сем.)
Дата;
ФЗ-6.2(Студ., Дисц., Сем.)
Препод.;
ФЗ-6.3(Студ., Дисц., Сем.)
Оценка.
Зависимости ФЗ-4 и ФЗ-5.2 являются избыточными, так как могут быть выведены из ФЗ-6.2 по правилу рефлексивности, поэтому исключаем их из ми- нимального покрытия.
Также исключаем из минимального покрытия и зависимость ФЗ-5.1 — она выводится из ФЗ-6.1 по этому же правилу.
В результате получим следующее неизбыточное множество функцио- нальных зависимостей отношения R
0
, составляющих минимальное покрытие:
ФЗ-1 — Сем.
Курс;
ФЗ-2.1 — Группа
Курс;
ФЗ-2.2 — Группа.
Спец.;
ФЗ-3.1 — Студ.
Группа;
ФЗ-6.1 — (Студ., Дисц., Сем.)
Дата;
ФЗ-6.2 — (Студ., Дисц., Сем.)
Препод.;
ФЗ-6.3 — (Студ., Дисц., Сем.)
Оценка.
Анализируя правые (определяющие) части зависимостей, вошедших в минимальное покрытие, можно сделать вывод о том, что единственным воз-
можным ключом отношения R
0
является составной атрибут (Студ., Дисц.,
Сем.), следовательно (определение 6), атрибуты Студ., Дисц., Сем. являются
основными атрибутами, а остальные атрибуты — Курс, Спец., Группа, Пре-
под., Дата, Оценка — получают статус неосновных атрибутов отношения.
R
0
(Студ., Дисц., Сем., Курс, Спец., Группа, Препод., Дата, Оценка)
1-я нормальная форма
Наличие в отношении R
0
первичного ключа, а также тот факт, что все ат- рибуты этого отношения атомарны (то есть не предполагается использование элементов их внутренней структуры в запросах к БД), позволяют сделать вывод о том (определение 3), что отношение R
0
находится в первой нормальной
форме.
2-я нормальная форма
Отношение R
0
не находится во второй нормальной форме, этому пре- пятствует наличие неполных зависимостей ФЗ-1 и ФЗ-3.1 неосновных атрибу- тов Курс и Группа от компонентов первичного ключа Сем. и Студ. (определе-
16 / 19

74
ние 7), а также наличие неполной транзитивной зависимости между атрибута- ми Студ.
Группа Спец. (определение 8).
Для приведения БД ко 2-й НФ следует декомпозировать отношение R
0
таким образом, чтобы атрибуты, участвующие в неполных зависимостях, были выделены в отдельные отношения.
Выполним операции проецирования отношения R
0
на соответствующие подмножества его атрибутов:
R
1
:= R
0
PROJECT (Сем., Курс);
R
2
:= R
0
PROJECT (Студ., Группа, Спец.);
R
3
:= R
0
PROJECT (Студ., Дисц., Сем., Препод., Дата, Оценка).
При выполнении этих операций соблюдено правило декомпозиции без
потерь (определение 2), так как в декомпозируемом отношении R
0
существуют зависимости некоторых его атрибутов от общих атрибутов пар результирую- щих отношений R
1
— R
3
и R
2
— R
3
.
Наличие общих атрибутов в парах полученных отношений позволяет
«собрать» исходное отношение операцией их естественного соединения:
R
0
:= (R
1
NATURAL JOIN (R
2
NATURAL JOIN R
3
ON R
2
.Студ. = R
2
.Студ.)
ON R
1
.Сем. = R
3
.Сем.)
Бинарное отношение R
1
(Сем., Курс) находится во 2-й НФ (как, впрочем, и во всех остальных, более сильных НФ, по причине своей бинарности).
Отношение R
2
(Студ., Группа, Спец.) не имеет составных возможных ключей, следовательно, это отношение также находится во 2-й НФ.
В отношении R
3
(Студ., Дисц., Сем., Препод., Дата, Оценка) остался со- ставной первичный ключ, но это отношение тоже находится во 2-й НФ, так как в нем отсутствуют неполные функциональные зависимости между неосновны- ми атрибутами от ключа отношения.
3-я нормальная форма
Отношение R
3
уже находится в 3-й НФ (определение 9), так как в нем от- сутствуют взаимозависимости между неосновными атрибутами и, как след- ствие, отсутствуют и транзитивные зависимости неосновных атрибутов от ключа.
Отношение R
2
не находится в 3-й НФ, так как в нем существует транзи- тивная зависимость неосновного атрибута Спец. от первичного ключа Студ.
(Студ.
Группа Спец.). Декомпозируем это отношение на два бинарных отношения R
4
(Студ., Группа) и R
5
(Группа, Спец.), связанных по общему атри- буту Группа. Каждое из этих отношений находится в 3-й, а также и во всех бо- лее сильных НФ.
Нормальная форма Бойса — Кодда
В отношении R
3
(Студ., Дисц., Сем., Препод., Дата, Оценка), находя- щемся в 3-й НФ, единственным детерминантом является составной ключ
(Студ., Дисц., Сем.), так как в этом отношении отсутствуют взаимозависимости между основными атрибутами и зависимости основных атрибутов от неоснов- ных. Следовательно (определение 10), отношение R
3
находится в НФБК.
17 / 19

75
В результате проведенной нормализации исходное отношение R
0
(Студ.,
Дисц., Сем., Курс, Спец., Группа, Препод., Дата, Оценка), находившееся толь- ко в 1-й НФ, было декомпозировано на четыре взаимосвязанных отношения, каждое из которых приведено к НФБК:
R
1
(Сем., Курс) —номера семестров по курсам обучения;
R
3
(Студ., Дисц., Сем., Препод., Дата, Оценка) —успеваемость студен- тов;
R
4
(Студ., Группа) —распределение студентов по группам;
R
5
(Группа, Спец.) —распределение групп по специальностям.
На каждом шаге декомпозиции строго выполнялось правило декомпози-
ции без потерь, общие атрибуты результирующих отношений составили пары
«первичный ключ — внешний ключ», что позволяет восстановить исходное от- ношение последовательным выполнением операций естественного соединения над результирующими отношениями:
R
0
:= (R
1
NATURAL JOIN R
3
ON R
1
.Сем. = R
3
.Сем.) NATURAL JOIN
(R
4
NATURAL JOIN R
5
ON R
4
.Группа = R
5
.Группа)
ON R
4
.Студ. = R
3
.Студ.)
4-я нормальная форма
Несмотря на приведение схемы БД к достаточно сильной НФБК, при формировании кортежей отношения R
3
не исключено проявление аномалии по-
полнения — регистрация результатов сдачи экзамена по одной дисциплине по- требует дублирования наименования этой дисциплины столько раз, сколько студентов изучали эту дисциплину. Причина такого дублирования — отсут- ствие 4-й НФ в этом отношении.
В отличие от рассмотренных выше нормальных форм отношений, 4-я НФ базируется на концепции многозначных зависимостей между атрибутами.
Если считать корректным утверждение о том, что каждый студент обязан сдавать экзамены по всем дисциплинам, соответствующим учебному плану его специальности, то в отношении R
3
существует многозначная зависимость
Студ.
→→Дисц. (определение 11), так как множество значений атрибута Дисц., соответствующее паре значений атрибутов Студ. и Cем., зависит только от ат- рибута Студ. и не зависит от атрибута Сем.
В соответствии с определением 12 отношение R
3
не находится в 4-й НФ, так как в этом отношении при существовании многозначной зависимости
Студ.
→→Дисц. не существует функциональных зависимостей всех остальных атрибутов от атрибута Студ. (в противном случае отношение R
3
не находилось бы даже во 2-й НФ, требующей наличия полных функциональных зависимостей всех неосновных атрибутов от составного ключа).
Для приведения схемы БД к 4-й НФ декомпозируем отношение R
3
на че- тыре отношения: отношения-справочники R
6
, R
7
и R
8
и связывающее их отно- шение R
9
:
R
6
(ID_Stud, Студ) — контингент студентов;
R
7
(ID_Disc., Дисц.) —перечень дисциплин;
18 / 19

76
R
8
(Сем.) —семестры;
R
9
(ID_Stud, ID_Disc., Сем., Препод., Дата, Оценка) — оценки.
Отношения R
6
(ID_Stud, Студ) и R
8
(Сем.) должны быть удалены из схе- мы БД, так как они дублируют имеющиеся отношения R
4
(Студ., Группа) и
R
1
(Сем., Курс).
Искусственные ключи ID_Stud и ID_Disc. (числового типа данных) добав- лены в схемы отношений в дополнение к естественным возможным ключам
(текстового типа) для снижения негативного эффекта от неизбежного дублиро- вания данных в кортежах отношения R
9
, их наличие не повлияет на результаты проведенного анализа функциональных зависимостей и декомпозиции отноше- ний.
Результирующая схема нормализованной базы данных, приведенной к
4-й НФ, показана на рисунке 2.21.
Рис. 2.21
Схема БД, полученная в результате нормализации исходного отношения R
0
Завершая рассмотрение технологий проектирования реляционных баз данных, попытаемся сравнить два подхода к реализации этих технологий, дол- гое время развивавшихся параллельно в условиях конкуренции друг с другом.
Последний из рассмотренных примеров иллюстрирует классический «ре- ляционный» подход к разработке логической модели данных путем нормализа- ции так называемого универсального отношения, включающего атрибуты всех объектов предметной области. Теория нормальных форм отношений разраба- тывалась применительно именно к такому подходу, не требовавшему предвари- тельной декомпозиции предметной области на начальных стадиях проекта базы данных.
Как видно из рисунка 2.21, в результате нормализации универсального отношения была сформирована реляционная модель, фактически отражающая структуру сущностей предметной области и связей между ними, но такое ре- шение было получено путем формального анализа и преобразования зависимо- стей между атрибутами универсального отношения на основе правил их выво- да, базирующихся на трех аксиомах Армстронга, и последовательной декомпо- зиции отношений с использованием правила декомпозиции без потерь, извест- ного как теорема Хита.
19 / 19

77
Следует заметить, что применение формализованного метода нормализа-
ции требует проведения неформального семантического анализа предметной области для выявления исходного множества зависимостей между атрибутами универсального отношения.
Параллельно с классическим реляционным подходом разрабатывался ин- фологический подход, предполагающий проведение семантического анализа на начальной стадии проекта базы данных, по результатам которого формируется объектная структура предметной области, то есть выделяются и именуются все объекты, выявляются и специфицируются их существенные свойства, класси- фицируются межобъектные связи. Схемы исходных отношений проектируемой
БД, получаемые путем копирования структур соответствующих сущностей ER- модели, как правило, уже находятся в 3-й НФ (а иногда и в НФБК), что суще- ственно сокращает процедуру нормализации, а в ряде случаев сводит ее к про- стой проверке «нормальности» схемы БД.
Критерием завершения процесса нормализации БД является приведение всех входящих в нее отношений к одной из сильных нормальных форм.
В большинстве случаев оказывается достаточно НФБК, гарантирующей отсут- ствие перечисленных выше аномалий, однако не исключающей дублирования данных в случае наличия многозначных зависимостей между атрибутами. Для устранения многозначных зависимостей отношение приводят к 4-й НФ.
На последнем этапе нормализации проводится контроль наличия в схеме базы данных и удаление дублирующих отношений, атрибуты которых уже при- сутствуют в других отношениях (как это и было сделано с отношениями R
6
и R
8
в рассмотренном выше примере).
Контрольные вопросы и задания
1. Дайте определения функциональной и многозначной зависимостей.
2. Сформулируйте аксиомы Армстронга и докажите на их основе правила вывода функциональных зависимостей между атрибутами отношения.
3. Что называют минимальным покрытием и каковы требования к нему?
Получите свою версию минимального покрытия для отношения R
0
из рассмот- ренного выше примера нормализации.
4. Сформулируйте теорему Хита. Что гарантирует отсутствие потерь при декомпозиции отношения?
5. Приведите определения и собственные примеры нормальных форм от- ношений.
1 / 19

78
ГЛАВА 5. ПРОЕКТНЫЙ ПРАКТИКУМ
5.1. Общие методические указания
Основная задача проектного практикума — ознакомление с техноло- гией проектирования реляционных БД и получение опыта использования
CASE-средств в процессе выполнения учебных программных проектов.
Структура и содержание. Проект базы данных студентом выполняется индивидуально в соответствии с утвержденной темой проекта. Типовые вари- анты тем приведены в п. 3.4.3, студент вправе предложить собственный вари- ант темы проекта, который должен быть согласован с преподавателем.
В составе проекта выполняются начальные этапы разработки несложной ба- зы данных, результаты которых представляются соответствующими моделями:
UML-модель вариантов использования; UML-диаграмма пакетов; ER-модель;
R-модели — исходная и нормализованная; схема реляционной БД, реализующая нормализованную R-модель в среде одного из доступных серверов баз данных.
Проектная документация оформляется в форме технического отчета, включающего все перечисленные выше графические диаграммы и описание процесса нормализации исходной R-модели.
Защита проекта проводится в форме публичного доклада по материалу представленного отчета. В процессе защиты оценивается полнота и качество выполнения заданий, грамотность использования инструментальных средств, правильность и обоснованность выводов по результатам работы, качество оформления графических материалов.
Программное обеспечение. Проектная часть выполняется с использова- нием UML-ориентированных CASE-средств, реализация схемы БД — в любом из доступных серверов баз данных. Решение о выборе ПО студент принимает самостоятельно.
Основная часть работы над проектом студентом выполняется самостоя- тельно. На практических занятиях рассматриваются учебные примеры выпол- нения и документирования проекта базы данных, обсуждается технология раз- работки моделей, заслушиваются сообщения разработчиков и анализируются представленные ими результаты выполнения этапов проекта.
Занятие № 1. Подготовительный этап:
– обсуждение примеров выполнения проектов баз данных, рассмотрен- ных в п. 3.5 и 4.2 учебника;
– согласование и утверждение тем учебных проектов.
Занятие № 2. Стадия технического задания:
– определение состава пользователей АИС и базовых функций, реализуе- мых АИС в интересах пользователей;
– разработка UML-диаграммы вариантов использования.
Занятие № 3. Стадия эскизного проекта:
– разработка UML-диаграммы пакетов АИС;
– разработка ER-моделей для локальных представлений (пакетов);
– объединение локальных ER-моделей.
2 / 19

79
Занятие № 4. Стадия технического проекта:
– разработка исходной реляционной модели данных;
– нормализация исходной реляционной модели;
– программная реализация схемы реляционной БД.
Занятие № 5. Защита проектов с демонстрацией результатов.
5.2. Типовые варианты тем
учебных проектов
1   2   3   4   5   6   7   8   9   ...   18


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