Экзаменационные ответы одним файлом (1038657), страница 4
Текст из файла (страница 4)
A+=AB, C+=C, B+=BA
Покажем, что в этом случае R находится в 3НФ:
1) не первичный атрибут H, H=D
2) Y→H, H∉Y, Y=AC
3) X=BC, X=AC
Нельзя подобрать нужную тройку, потому R находится в 3НФ. Однако, отношение всё равно обладает аномалиями:
-
избыточности;
-
противоречивости;
-
включения;
-
удаления.
Для устранения этого вводится усиленная 3НФ - Бойса-Кодда.
ФЗ X→Y является неприводимой, если для любого подмножества Z⊂X выполняется Z↛Y (или Z→Y∉F+).
Пусть есть отношение R и F включает в себя нетривиальные неприводимые ФЗ. Тогда отношение R находится в нормальной форме Бойса-Кодда, если для любого X→Y∈F => X - ключ.
-
Задача: нормализовать схему отношений, используя практические приёмы нормализации.
Исходные данные: схема отношений R(сотрудник) = (номер_сотрудника, ФИО, должность, оклад, номер_заказа) = (A, B, C, D, E); функциональные зависимости F = (AEBCD, ABCD, CD).
БИЛЕТ 12
-
Алгоритм синтеза «хорошей» схемы базы данных. Преимущества и недостатки алгоритма.
Пусть U - универсальная схема отношения (множество всех атрибутов предметной области) и F - множество ФЗ.
-
построить УНП для F;
-
если среди ФЗ в УНП нет ФЗ, включающей все атрибуты из U, то добавить в УНП тривиальную ФЗ U→∅. Выполнение этого шага почти всегда обеспечивает свойство соединения без потерь будущей схемы БД;
-
привести все нетривиальные ФЗ из УНП к неприводимому виду (удалить лишние атрибуты в левых частях ФЗ);
-
разбить полученное множество ФЗ УНП на классы эквивалентности. Две зависимости Xi→Yi и Xj→Yj будем называть эквивалентными, если XiYi=XjYj. Далее введём обозначение Kr=XiYi - множество атрибутов в левой и правой частях ФЗ r-того класса эквивалентности;
-
построить граф иерархии полученных на предыдущем шаге классов эквивалентности. Правило построения: j-ый узел соединяем снизу с i-ым узлом, если Kj⊂Ki. В каждом узле записываются все ФЗ, соответствующего класса эквивалентности;
-
из каждого класса эквивалентности в графе иерархии оставить только одну ФЗ. Правила выбора:
-
удалить из класса эквивалентности лишние ФЗ;
-
если в классе эквивалентности осталось больше одной ФЗ, то выбрать ФЗ с меньшим числом атрибутов в левой части;
-
если у оставшихся ФЗ число атрибутов в левой части одинаково, то выбрать ту ФЗ, которая позволит редуцировать (вычеркнуть) большее число атрибутов справа у ФЗ, расположенных выше в графе иерархии;
-
если в результате не удалось выбрать ни одной, то выбрать произвольную;
-
редуцировать атрибуты справа в оставшихся ФЗ. Для этого просмотреть каждый путь снизу вверх в графе иерархии. Двигаясь по выбранному пути, выполнить следующие действия в каждом узле пути:
-
пусть X→Y - это ФЗ, записанная в данном узле. Каждый атрибут, принадлежащий правой части, вычеркнуть в правых частях ФЗ, расположенных в узлах этого пути по иерархии выше;
-
для тривиальной ФЗ U→∅ атрибуты вычёркиваются слева;
исключить из рассмотрения ФЗ с пустой правой частью (кроме редуцированной ФЗ U→∅). Исключённые на этом шаге ФЗ являются лишними и выводятся из оставшихся;
каждую оставшуюся в графе иерархий ФЗ V→W заменить на множество VW. Получившееся множество схем отношений обозначить как ρ;
для полученной на предыдущем шаге схемы БД проверить:
-
обладает ли она свойством соединия без потерь. Если не обладает, то добавить ключ универсальной схемы U в эту схему;
-
обладает ли ρ свойством сохранения ФЗ. Если нет, то, использовать зависимости, не вошедшие в проекцию X→Y∉ΠRi(F), для построения новых схем отношений, то есть добавить в ρ XY.
После выполнения всех шагов полученная схема ρ:
-
обладает свойством соединения без потерь;
-
обладает свойством сохранения ФЗ;
-
находится в 3НФ или НФБК;
-
содержит минимальное число схем отношений.
«+» :
-
определяет стандартную (математическую) процедуру построения схемы БД.
«-» :
-
очень трудно определить всё множество ФЗ, а алгоритм критичен к набору этих ФЗ;
-
при увеличении числа ФЗ возможно увеличение сложности вычисления алгоритма.
-
Задача: найти все ключи схемы отношений R, используя алгоритм построения ключа.
Исходные данные: схема отношений R=(A, B, C, D), множество функциональных зависимостей F=(ABDC, BCAD).
БИЛЕТ 13 (НЕ ПРОВЕРЯЛОСЬ)
-
Практические приёмы приведения схемы отношения к 1-ой, 2-ой и 3-ей нормальным формам.
Отношение находится в первой нормальной форме (сокращённо 1НФ), если все его атрибуты атомарны, то есть если ни один из его атрибутов нельзя разделить на более простые атрибуты, которые соответствуют каким-то другим свойствам описываемой сущности.
Схема отношений находится в 2НФ, если не существует ключа X, подмножества атрибутов Y⊂X и непервичного атрибута H, для которых выполняются условия:
-
X→Y;
-
Y→H;
-
Y↛X.
A1→Ai...Aj
X=A1A2, Y=A1⊂X, H∈(Ai...Aj):
1) X→Y, так как A1A2→A1
2) Y→H, так как A1→Ai...Aj
3) Y↛X, так как A+1=A1Ai...Aj, X⊈Y+
Схема отношений находится в 3НФ, если не существует ключа X, Y⊆R и непервичного атрибута H∉Y, для которых выполнялись бы условия:
-
X→Y∈F+;
-
Y→H∈F+;
-
Y→X∉F+,
A2→Ai...Aj
X=A1, Y=A2, H∈(Ai...Aj):
1) X→Y, так как A1→A2
2) Y→H, так как A2→Ai...Aj
3) Y↛X, так как A+2=A2Ai...Aj, X=A1∉Y+
-
Задача: построить схему базы данных , используя алгоритм синтеза «хорошей» схемы базы данных; проверить, 1) обладает ли эта схема базы данных свойством соединения без потерь и свойством сохранения функциональных зависимостей, 2) находятся ли схемы отношений базы данных в нормальной форме Бойса-Кодда.
Исходные данные: универсальная схема отношений U=(A,B,C,D,E,G), множество функциональных зависимостей F=(AB, CD, EG).
БИЛЕТ 14 (НЕ ПРОВЕРЯЛОСЬ)
-
Пример использования практических приёмов нормализации схем отношений.
R - схема отношения "Сотрудники".
A1 | табельный номер |
A5 | номер заказа |
A2 | ФИО |
A3 | должность |
A4 | оклад |
ФЗ:
A1A5→A2A3A4
A1→A2A3A4
A3→A4
Покажем, что эта схема не находится в 2НФ:
Можно найти ключ X=A1A5, Y=A1⊂X, H∉Y, H∈(A2,A3,A4):
1) X→Y
2) Y→H
3) Y↛X
R1 тоже не находится во 2НФ, потому что X=A1, Y=A3, H=A4:
1) X→Y
2) Y→H
3) Y↛X
Предположим, вдруг оказалось, что сотрудник может занимать несколько должностей, и ещё теперь в таблице надо хранить сведения о заказе. В этом случае схема преобразуется к следующему виду:
Но анализ показывает, что в этом случае таблицы R1 и R2 не находятся в 2НФ:
R1:
A1→A2, X=A1A3, Y=A2⊂X, H=A2
1) X→Y, так как A1A3→A1
2) Y→H, так как A1→A2
3) Y↛X, так как Y+=A1A2, X⊈Y+
R2:
A5→A6, X=A1A3A5, Y=A5⊂X, H=A6
1) X→Y, так как A1A3A5→A5
2) Y→H, так как A5→A6
3) Y↛X, так как Y+=A5A6, X=A1A3A5⊈Y+
Поэтому вновь перестроим схему:
Указанная схема имеет два недостатка:
-
в ключи R3, R1 и R4 входят атрибуты предметной области. При изменении формата табельного номера придётся обновить его R_1 и через CASCADE в R3 и R4. Поэтому всегда желательно иметь синтетические ключи - не связанные с предметной областью (ID);
-
в сущностях R2 и R5 ключи составные. Это увеличивает размер индекса и время поиска по этому индексу.
В силу этого, схему БД предлагается реорганизовать следующим образом (ввести синтетические ключи):
-
Задача: определить, обладает ли схема базы данных свойством сохранения функциональных зависимостей.
Исходные данные: схема базы данных =(DE, DG), множество функциональных зависимостей F=(DE, EG).
БИЛЕТ 15
-
Законы реляционной алгебры.
-
Закон коммутативности декартова произведения отношений
R1×R2=R2×R1, здесь и далее R1 и R2 - экземпляры отношений.
-
Закон ассоциативности декартова произведения
(R1×R2)×R3=R1×(R2×R3)
-
Закон каскада проекций
Допустим, (a1...an)⊆(b1...bn), ai, bi - это атрибуты отношения R, тогда Πa1...an(Πb1...bn(R))=Πa1...an(R)
-
Закон каскада селекций
Допустим, F=f1∧f2, тогда σF(R)=σf1(σf2(R))
-
Закон перестановки проекции и селекции
-
Допустим, в условия поиска F входят атрибуты только из множества a1...an, тогда Πa1...an(σF(R))=σF(Πa1...an(R))
-
Допустим, в условия поиска F входят атрибуты не только из множества a1...an, но и из b1...bn, тогда Πa1...an(σF(R))=Πa1...an(σF(Πa1...an,b1...bn(R)))
-
Селекция декартова произведения
Отношение f1 содержит атрибуты только из отношения R1, тогда σf1(R1×R2)=σf1(R1)×R2
Пусть F=f1∧f2 и в f1 входят атрибуты R1, а в f2 входят из R2, тогда σF(R1×R2)=σf1(R1)×σf2(R2)
-
Закон перестановки селекции и объединения
σF(R1⋃R2)=σf1(R1)⋃σf2(R2)
-
Закон перестановки селекции и разности отношений
σF(R1−R2)=σf1(R1)−σf2(R2)
-
Закон перестановки проекции и декартова произведения
b1...bn - это атрибуты отношения R1
c1...ck - это атрибуты отношения R2
Πb1...bn,c1...ck(R1×R2) = Πb1...bn(R1)×Πc1...ck(R2)
-
Закон перестановки проекции и объединения
Πa1...an(R1⋃R2)=Πa1...an(R1)⋃Πa1...an(R2)
-
Задача: построить схему базы данных , используя алгоритм синтеза «хорошей» схемы базы данных; проверить, 1) обладает ли эта схема базы данных свойством соединения без потерь и свойством сохранения функциональных зависимостей, 2) находятся ли схемы отношений базы данных в нормальной форме Бойса-Кодда.
Исходные данные: универсальная схема отношений U=(E,G,H,K), множество функциональных зависимостей F=(GK, KG, GHKE).
БИЛЕТ 16
-
Правила построения логического плана выполнения запроса к базе данных. Суть логической оптимизации. Шаги построения физического плана выполнения запроса к базе данных.
Построение логического плана
-
запрос преобразуется в формулу реляционной алгебры:
Оператор SELECT (без агрегирования, группирования и удаления дубликатов) может быть представлен так: