Оставим пока в стороне ответ на вопрос, почему проекты реляционных баз данных бывают плохими, т.е. зачем нужно проектировать реляционную базу данных. Попытаемся сначала ответить на вопросы "В чем заключается
Как известно, основной единицей представления данных в реляционной модели является отношение, которое математически задается списком имен атрибутов, иначе -
На практике построение логической модели базы данных, независимо от используемой модели данных, выполняется с учетом двух основных требований: исключить избыточность и максимально повысить надежность данных. Эти требования вытекают из требования коллективного использования данных группой пользователей. Формальных средств описания данных, необходимых для проверки правильности заполнения конструкций моделей, явно недостаточно. Выбор сущностей, атрибутов и фиксация взаимосвязей между сущностями зависит от семантики предметной области и выполняется системным аналитиком субъективно в соответствии с его личным пониманием специфики прикладной задачи. Разные люди определяют и представляют данные по-разному.
Поэтому любое априорное знание об ограничениях предметной области, накладываемых на взаимосвязи между данными и значения данных, и знания об их свойствах и взаимоотношениях между ними может сыграть определенную роль в соблюдении указанных выше требований. Формализация таких априорных знаний о свойствах данных предметной области базы данных нашла свое отражение в концепции
Кортежи отношений могут представлять экземпляры
Априорные ограничения предметной области на взаимосвязь значений отдельных атрибутов оказывают наибольшее влияние на процесс проектирования
Вспомним определение функции как соответствия множества аргументов определенным значениям из множества определения функции и способы задания функций: формула, график и перечисление (таблица). Нетрудно понять, что
Определение 1. Пусть
r (A1, A2, ..., An)-схема отношения R, aXиY- подмножестваr. Говорят, чтоХфункционально определяетY, если каждому значению атрибутовкортежа отношения изХсоответствует не более одного значения атрибутов того жекортежа отношения изY. Такая ФЗ обозначается как $$F: Х \to Y$$.
Как видно из определения,
Пример. Понятие функциональной зависимости Продемонстрируем понятие функциональной зависимости на примере графика полетов аэропорта. ГРАФИК_ПОЛЕТОВ (Пилот, Рейс, Дата_вылета, Время_вылета)
| Иванов | 100 | 8.07 | 10:20 |
| Иванов | 102 | 9.07 | 13:30 |
| Исаев | 90 | 7.07 | 6:00 |
| Исаев | 100 | 11.07 | 10:20 |
| Исаев | 103 | 10.07 | 19:30 |
| Петров | 100 | 12.07 | 10:20 |
| Петров | 102 | 11.07 | 13:30 |
| Фролов | 90 | 8.07 | 6:00 |
| Фролов | 90 | 12.07 | 6:00 |
| Фролов | 104 | 14.07 | 13:30 |
Известно, что:
Следовательно:
"Время_вылета" функционально зависим от "Рейс": "Рейс" -> "Время_{} вылета" ;"Рейс" функционально зависим от {"Пилот", "Дата_вылета", "Время_вылета"}: {"Пилот", "Дата_вылета", "Время_вылета"} -> "Рейс" ;"Пилот" функционально зависим от {"Рейс", "Дата_вылета"}: {"Рейс", "Дата_вылета"} -> "Пилот".Важной задачей при выявлении
Определение 2. Пусть имеется отношение
Rсо схемойr,XиY- два подмножестваR. ФЗ $$F: X \to Y$$ имеет место наR, если множество $$\pi_y (\sigma_{X=x} (R))$$ имеет не более одного кортежа для каждого значениях. Такая ФЗ называется такжеF-зависимостью.
Как видно из определения, формальная проверка наличия ФЗ $$F: X \to Y$$ в отношении R состоит в выборе (
Алгоритм, который проверяет, удовлетворяет ли отношение R ФЗ $$F: X \to Y$$, состоит в сортировке отношения по значениям
Ясно, что если семантика предметной области базы данных сложна, то проверить кортежи на принадлежность к ФЗ достаточно сложно. Сложно вообще установить наличие самой
r и, в сущности, не могут быть получены формальными методами. Единственный способ установления r - это исследование семантики атрибутов
Здесь уместно высказать гипотезу о том, почему бывают хорошие и плохие проекты баз данных. Во-первых, в силу субъективности подходов к
Для определения ФЗ предметной области часто бывает недостаточно определить все
Введем определение.
Определение 3. Говорят, что неключевой атрибут функционально полно зависит от
составного ключа , если он функционально зависит от ключа, но не находится вфункциональной зависимости ни от какой частисоставного ключа . Если неключевой атрибут зависит от частисоставного ключа , то говорят очастичной ФЗ .
Пример. Частичные и полные ФЗ
ПРЕПОДАВАТЕЛЬ_ПРЕДМЕТ (Личный номер, Предмет, Фамилия, Должность, Оклад, Часы)
| 1. | Иванов | доцент | 25000 | Математика | 40 |
| 2. | Исаев | доцент | 25000 | Физика | 50 |
| 3. | Фролов | профессор | 50000 | Химия | 30 |
Предмет -> Часы. Значения атрибута Фамилия зависят от значений атрибутов Личный_номер-Предмет, т.е. имеем полную функциональную зависимость {Личный_номер, Предмет} -> Фамилия.
Рассмотрим проблему избыточности данных с точки зрения существования определенных
Таким образом, выявление определенных
Каким образом можно использовать это наблюдение с учетом семантики данных для конструирования отношений? Имеет смысл разбить все возможные зависимости на определенные типы ФЗ, и на основе этой классификации проанализировать, какие типы ФЗ к каким аномалиям в выполнении
Определение 4. Пусть
X, Y, Z- атрибуты отношенияR. Если при этом имеются ФЗ $$X \to Y$$ и $$Y \to Z$$, но отсутствуют ФЗ $$Z \to Y$$ и $$Y \to X$$, то говорят, чтоZтранзитивно зависит отХ. Такие ФЗ называютсятранзитивными (Т-зависимостями).
Пример. Транзитивные ФЗ
Личный номер преподавателя определяет его должность, т.е. имеет место ФЗ Личный_номер -> Должность. С другой стороны, согласно тарификации каждой должности назначается определенный оклад, т.е. имеет место ФЗ Должность -> Оклад. Каждый преподаватель получает за работу соответствующий должности оклад, т.е. оклад преподавателя определяется через его должность.
Очевидно, что семантическая связь между атрибутами отношения может носить неоднозначный характер, это порождает существование класса 1:N (один ко многим), M:1 (многие к одному) и M:N (многие ко многим).
Определение 5. Пусть
r- некотораясхема отношения ,XиY- подмножества атрибутовr. Если при заданных значениях атрибутов из{X}существует некоторое множество, состоящее из нуля или более взаимосвязанных значений атрибутов из{Y}, никак не связанных со значениями других атрибутов этого отношенияr - X - Y, то говорят о существованиимногозначной зависимости между атрибутамиXиY: $$MV: X \to\to Y$$ (класс MV-зависимостей).
Формально t и s, такие, что их значения совпадают по атрибутам из Х, т.е. t[X] = s[X], то данное отношение содержит кортежи w и v, такие, что
w[X] = v[X] = t[X] = s[X],w[Y] = t[Y], w[r - X - Y] = s[r - X - Y],v[Y] = s[Y], v[r - X - Y] = t[r - X - Y].Фактически Y в кортежах t и s можно поменять местами и получить два новых кортежа, также принадлежащих отношению R.
Разделение установленных J -
Пусть U -
$$R = \pi_{r1} (R) >< \pi_{r2} (R) >< \dots >< \pi_p(R)$$Определение 6. Пусть
r = {r_1, …, r_p}- множество схем наU. Отношение R \subset U удовлетворяет зависимости по соединению, еслиRразлагается без потерь наrкак
Процесс выделения новых классов натуральные числа -> целые числа -> . В
Однако для практических целей
Известно, что функции могут образовывать пространства, и в пространствах выполняются различные операции. В нашем случае для каждой базы данных на множестве ее отношений можно рассмотреть все возможные, допустимые в семантическом смысле функциональные зависимости. Для каждого отношения существует вполне определенное множество ФЗ между его атрибутами. На практике число рассматриваемых атрибутов и ФЗ конечно (!).
Поскольку ФЗ являются высказываниями об атрибутах
Математически эту задачу можно поставить следующим образом. Пусть U {A1, A2, ..., An} - (X, Y), таких, что $$X \to Y$$, задает структуру ФЗ отношения R. Такое отношение называют еще универсальным отношением. Задача состоит в построении такого набора ФЗ, из которого могут быть получены все ФЗ базы данных.
Например, r можно логически вывести из $$A \to B$$ и $$B \to C$$. Пусть отношение содержит два кортежа - t и s, совпадающие по атрибуту А, но не совпадающие по С. Нужно выяснить, совпадают ли кортежи t и s по атрибуту В. Если это не так, то нарушается зависимость $$А \to В$$. Если существует совпадение для В, то, поскольку по условию не совпадают компоненты по С, то будет нарушена зависимость $$В \to С$$. Таким образом, отношение удовлетворяет зависимости $$А \to С$$.
Такие рассуждения позволяют ввести следующие определения.
Определение 7. Пусть
F- множество ФЗ длясхемы отношения r, $$X \to Y$$ - некоторая ФЗ. Говорят, что ФЗ $$X \to Y$$ логически следует изF, если для каждого отношенияRсо схемойr, удовлетворяющего ФЗ изF, удовлетворяется также зависимость $$X \to Y$$.
В примере выше мы видели, что если F содержит ФЗ из $$A \to B$$ и $$B \to C$$, то зависимость $$А \to С$$ логически следует из F.
Определение 8. Пусть
F- множество ФЗ длясхемы отношения r. Тогда замыканиемF+множества ФЗFназывается множество ФЗ, которое логически следует изF.Fназывается полным семейством ФЗ, еслиF+ = F.
Пример (без доказательства). Пусть $$r = ABC, F=\{A \to B, B \to C\}$$. Тогда F+ состоит из всех зависимостей $$X \to Y$$, таких, что выполняется одно из следующих условий:
X содержит A, т.е. $$ABC \to AB, AB \to BC$$ или $$A\to С$$ ;X содержит B, но не A, и Y не содержит A, т.е. $$BC \to B, B \to C$$ или B ;Теперь можно уточнить понятие ключа отношения. Предполагается, что для
Определение 9. Пусть
F- множество ФЗ длясхемы отношения R(A1, A2, ..., An). Подмножество атрибутовXназываетсяключом отношения R, если ФЗ: $$X \to A_1 A_2 \dots A_n$$ принадлежитF+и не для какого собственного подмножества $$Y \subseteq X$$ ФЗ: $$Y \to A_1 A_2 \dots A_n$$ не принадлежитF+.
Таким образом, заданный аналитиком ключ некоторого набора
Пример. Многозначность при выборе ключа
Рассмотрим схему отношения R (город, адрес, почтовый_индекс). В этом случае существуют следующие нетривиальные, т.е. имеющие смысл в контексте предметной области, ФЗ город, адрес -> почтовый_индекс (полный адрес определяет почтовый индекс) и почтовый_индекс -> город (почтовый индекс определяет город, но не адрес). Легко убедиться, что оба множества атрибутов {город, адрес} и {адрес, почтовый_индекс} являются ключами отношения. Какой из них выбрать, решает проектировщик базы данных.
Для того чтобы определить ключи отношений и логические следствия ФЗ для заданной F+ или для заданного F уметь определять, принадлежит ли данная ФЗ его замыканию F+. Для этого необходимо иметь набор правил - операций над ФЗ, позволяющих ими манипулировать.
Набор правил вывода должен быть полным, т.е. давать возможность вывести все зависимости из F+, и надежным, т.е. не позволять вывести зависимость из F, не принадлежащую F+. Таким образом, правила вывода, называемые также аксиомами вывода R(A1, A2, ..., Am) на заданном универсальном множестве атрибутов U по заданному множеству ФЗ F = {F1, F2, ..., Fk}.
Далее представлены восемь аксиом вывода
Пример. Определение ключа отношения с помощью правил вывода
Используя три первых аксиомы вывода, покажем, что пара атрибутов {адрес, почтовый_индекс} из примера выше являются (город, адрес, почтовый_индекс), иначе имеет место ФЗ адрес, почтовый_индекс -> город, адрес, почтовый_индекс. Задана ФЗ: почтовый_индекс -> город. Используя аксиому пополнения, пополним эту ФЗ атрибутом адрес, получаем адрес, почтовый_индекс -> город, адрес. Задана ФЗ город, адрес -> почтовый_индекс. Используя аксиому пополнения, пополнив эту ФЗ атрибутами город, адрес, получим город, адрес -> город, адрес, почтовый_индекс. Тогда по аксиоме транзитивности получаем адрес, почтовый_индекс -> город, адрес, почтовый_индекс.
Можно доказать утверждение о том, что настоящие правила вывода позволяют по заданному множеству ФЗ F построить все зависимости, допускаемые на U. Таким образом, система правил вывода ФЗ 1-6 является надежной и полной.
Покажем, как можно доказать утверждение о полноте и надежности аксиом вывода. Аксиомы 1, 2 и 3 составляют независимое подмножество среди всех шести аксиом и называются
Надежность аксиом заключается в том, что если ФЗ $$Х \to Y$$ выведена из F с помощью этих аксиом, то она справедлива на любом отношении, на котором справедливы ФЗ из F. Аксиома рефлексивности является надежной, так как нельзя иметь отношение R с двумя кортежами, которые совпадают по Х, но не совпадают по некоторому его подмножеству. Для доказательства аксиомы пополнения предположим, что имеется отношение R и справедлива ФЗ $$Х \to Y$$ на R. Однако есть два кортежа t и s, которые совпадают по атрибутам XZ, но не совпадают по YZ. Поскольку они не могут совпадать по какому-либо атрибуту из Z, то они не должны совпадать по некоторому атрибуту из Y. Тогда они совпадают по X, но не совпадают по Y, что противоречит существованию ФЗ $$Х \to Y$$. Надежность аксиомы транзитивности уже была доказана в настоящем
учебном элементе ранее.
Для доказательства полноты аксиом вывода введем понятие замыкания множества атрибутов X относительно множества ФЗ F.
Определение 10. Пусть
F- множество ФЗ на множестве атрибутовUи $$X \subseteq U$$. Тогда замыканиемX+множества ФЗFназывается множество атрибутовА, таких, что ФЗ $$Х \to A$$ может быть выведена изFпо аксиомам 1-3.
Нетрудно показать, что ФЗ $$Х \to Y$$ следует из аксиом 1-3 тогда и только тогда, когда $$Y \subseteq X^+$$. По определению замыкания для каждого атрибута из Y выводится ФЗ $$Х \to атрибут$$. По аксиоме объединения имеет место ФЗ $$Х \to Y$$. Обратно, если выполняется ФЗ $$Х \to Y$$, то по аксиоме декомпозиции имеет место ФЗ $$Х\to$$ каждый атрибут из Y, и, следовательно, имеет место $$Y \subseteq X^+$$.
Теперь, для того чтобы показать полноту аксиом 1-3, покажем, что если при заданном F ФЗ $$Х \to Y$$ не может быть выведена из данных аксиом, то должно существовать такое отношение, в котором справедливы все ФЗ F, кроме ФЗ $$Х \to Y$$.
Рассмотрим отношение R с двумя кортежами:
| X+ | другие атрибуты |
|---|---|
| 1 1 … 1 | 1 1 … 1 |
| 1 1 … 1 | 0 0 … 0 |
Все зависимости из F справедливы на R. Следует показать, что $$Х \to Y$$ не удовлетворяется на R. Допустим обратное. Из $$X \subseteq Х^+$$ следует $$Y \subseteq Х^+$$, иначе два кортежа, совпадая по Х, не совпадают по Y. Тогда ФЗ $$Х \to Y$$ следует из аксиом 1-3, что приводит к противоречию. Таким образом, аксиомы 1-3 полны.
На основе аксиом вывода можно уточнить понятие замыкания множества ФЗ $$F - F^+$$, как наименьшего множества, содержащего F, которое не может быть расширено за F с помощью аксиом 1, 2 и 3. Понятие замыкания является основным при доказательстве приведенного выше утверждения. Оно также важно при определении, имеет ли множество ФЗ F зависимость $$Х \to Y$$. Для этого достаточно проверить, принадлежит ли рассматриваемая зависимость множеству F+.
Вычисление замыкания конечного множества ФЗ является трудоемкой задачей, так как необходимо перебрать множество всех подмножеств, а таких множеств, как известно, 2n, где n - число элементов исходного множества. Однако вычислить замыкание X+ для данного множества атрибутов несложно. Алгоритм вычисления приведен ниже. Можно показать, что этот алгоритм корректно вычисляет замыкание X+.
Алгоритм вычисления X+
Input: U - конечное множество атрибутов, множество ФЗ F на U, множество $$X \subseteq U$$. Output:
X+
Х0естьХ.Xi+1естьXiплюс множество атрибутовА, для которых вFсуществует ФЗ $$Y \to Z, A \subseteq Z, Y \subseteq X^i$$.Условие завершения. Так как
U- конечно и $$X = X^0 \subseteq \dots \subseteq X^i \subseteq \dots К \subseteq$$, то существуетi, такое, чтоXi = Xi+1.Пример. Вычислим
Х+Пусть $$F = {AB \to C, C \to A, BC \to D, ACD \to B, D \to EG, BE \to C, CG \to BD, CE \to AG} и X=BD$$.
$$X^0=BD$$ Находим ФЗ, которые в левой части имеют $$B, D, BD - D \to EG$$. Присоединим E и G к X0.X1 = BDEG. Находим ФЗ с левыми частями из $$Х^1 - D \to EG, BE \to C. X^2 = BCDEG$$. Находим ФЗ с левыми частями из $$Х^2 - C \to A, BC \to D, CG \to BD, CE \to AG. X^3 = ABCDEG$$.$$X^4 = X^3 \dot (BD)^+ = ABCDEG$$.
Попытаемся теперь выяснить, какова роль F -зависимостей в реляционных базах данных. Как показали исследования, класс F -зависимостей оказывает существенное влияние на построение согласованных
Одной из основных целей
В начале F -зависимостей. Чем меньшим числом отношений их можно представить, тем лучше.
Определение 11. Два множества F-зависимостей
FиGнад схемойrотношенияRэквивалентны, если их замыкания совпадают, т.е.F+ = G+.
Эквивалентность двух множеств ФЗ F и G устанавливается следующим образом: для каждой ФЗ $$Х \to Y$$ из F проверяется ее принадлежность G+ ; для этого вычисляется Y+ ; затем проверяется вложение Z в Y+ ; если каждая зависимость F принадлежит G+, то каждая зависимость в F+ принадлежит G+ ; далее повторяем процедуру для G по отношению к F.
Следствием введения понятия эквивалентности является следующий важный факт: каждое множество ФЗ покрывается некоторым множеством ФЗ, в которых ни одна из правых частей не имеет более одного атрибута (правила декомпозиции и объединения). Таким образом, существует набор эквивалентных схем для каждой исходной
Теория
Определение 12. Множество
F-зависимостейFнеизбыточно, если у него нет собственного подмножества, эквивалентного ему самому.
Определение 13. Множество
F-зависимостейFминимально, если оно содержит не больше F-зависимостей, чем любое эквивалентное ему множество.
F можно детализировать следующим образом:
F содержит один атрибут;F множество $$F - {Х \to А}$$ не эквивалентно F ;F и собственного подмножества $$Z \subseteq X$$ множества $$F - {Х \to А}{Z \to А}$$ не эквивалентны.Доказано, что для каждого множества ФЗ F существует эквивалентное ему F может существовать несколько
Алгоритмы проверки избыточности
Алгоритм REDUNDANT ( F )
input: Множество F
output: True, если F избыточно
1. temp = false
for any X ->Y < F do
if MEMBER ( F - { X -> Y } , X -> Y ) then temp = True
Return ( temp )
Алгоритм NONREDUN ( G )
input: Множество ФЗ G
output: Неизбыточное покрытие G
1. F = G
for any X ->Y > G do
if MEMBER (F - { X -> Y }, X -> Y ) then
F = F - { X -> Y }
Return (F)
Алгоритмы построения
Алгоритм MINIMAZE (G)
input: Множество ФЗ G
output: Минимальное покрытие G
F = NONREDUN ( G )
Построить непустые множества Еf(X)+, состоящие из ФЗ, с левой частью,
эквивалентной Х. Ef(X) - подмножество Ef(X)+, отвечающее атрибуту Х.
for any Ef(X) из Ef(X)+ do
for any Y -> U из Ef(X) do
for any Z -> V <> Y->U из Еf(X) do
if DDERIVERS ( F, Y, -> Z ) then
заменить Y->U и Z->V на Z->UV в F
Return(F)
Примеры. Построение
Пусть F = {AB -> C, C -> A, BC -> D, .
Расщепив правые части с помощью правила декомпозиции, получим
AB -> C, C -> A, BC -> D, .
CE -> A - избыточна, так как следует из C -> A.
CG -> B - избыточна, так как следует из CG -> D, C -> A, .
Больше избыточных ФЗ нет.
может быть замещена CD -> В, так как C -> A.
Первое МП:
AB -> C, C -> A, BC -> D, CD -> B, D -> E, D -> G, BE -> C, CG -> D, CE -> G.
Построим второе МП, исключив CE -> A, CG -> D, AC -> DB:
AB -> C, C -> A, BC -> D, D -> E, D -> G, BE -> C, CG ->В, CE -> G
Так же как и для F -зависимостей, можно определить правила вывода для многозначных MV -зависимостей, и определить их взаимоотношения с F -зависимостями, а далее показать совместную полноту правил вывода F - и MV -зависимостей.
Правила вывода для MV-зависимостей:
X Y, то имеет место МФЗ $$WX \to \to V \cap; Y$$.Совместные правила вывода для F - и MV -зависимостей:
Справедливо следующее утверждение: система правил вывода F1-F3, MV1-MV3, FMV1 и FMV2 является надежной и полной.
Правила декомпозиции и объединения MV -зависимостей позволяют сформулировать следующее утверждение. Пусть U - множество атрибутов, тогда можно построить разбиение U-X на множества $$Y_1, Y_2, \dots, Y_k$$, такое, что при $$Z \subseteq U-X$$ имеет место МФЗ $$X \to\to Z$$, если только Z является объединением некоторого числа Yi. Набор множеств Y1, Y2, ..., Yk называется базисом Х F - и MV -зависимостей. Каждое Yi может состоять из одного атрибута.
Пусть D - множество F - и MV -зависимостей, тогда, так же как и для F-зависимостей, замыкание D+ множества D может быть логически выведено по аксиомам F1-F3, MV1-MV3, FMV1 и FMV2. Однако этот процесс может потребовать времени, пропорционального eL, где L - число ФЗ в D.
На практике часто требуется только знать, следует ли из D конкретная ФЗ $$X \to\to Z$$ или $$X\toZ$$. Этого достаточно, чтобы исключить избыточные ФЗ. Для того чтобы определить, имеет ли место MV -зависимость $$X \to \to Z$$, достаточно построить базис Х зависимостей и посмотреть, является ли Z - X объединением каких-либо его множеств. Для вычисления базиса зависимостей Х относительно D достаточно найти базис относительно множества МФЗ М, где М состоит из а) всех МФЗ из D и б) множества МФЗ $$X \to \to А_i, i = 1, 2, \dots, n$$ для каждой ФЗ $$X \to Y$$ в D, где $$Y = A_1, A_2, \dots, A_n$$.
Ниже приведен алгоритм вычисления базиса Х ФЗ относительно M.
Алгоритм вычисления базиса
input: Множество MV-зависимостей М на множестве атрибутов$$U, Х \subseteq U$$
output: Базис Х относительно М.
Y - X, либо U - X - Y.Z1, Z2 и заменять ее множествами $$Z_1 - Z_2, Z_2 - Z_1 и Z_1 \cup Z_2$$, отбрасывая пустое множество $$(Z_1 \subseteq Z_2)$$. В результате получим множество S.Y - W.Теория
F- и MV -зависимостями. В рамках данных аксиом преобразования схем отношений реляционных баз данных будут эквивалентными.Литература: [3], [11], [14], [15], [20], [31], [43], [44], [45].
Оставим пока в стороне ответ на вопрос, почему проекты реляционных баз данных бывают плохими, т.е. зачем нужно проектировать реляционную базу данных. Попытаемся сначала ответить на вопросы "В чем заключается
Как известно, основной единицей представления данных в реляционной модели является отношение, которое математически задается списком имен атрибутов, иначе -
На практике построение логической модели базы данных, независимо от используемой модели данных, выполняется с учетом двух основных требований: исключить избыточность и максимально повысить надежность данных. Эти требования вытекают из требования коллективного использования данных группой пользователей. Формальных средств описания данных, необходимых для проверки правильности заполнения конструкций моделей, явно недостаточно. Выбор сущностей, атрибутов и фиксация взаимосвязей между сущностями зависит от семантики предметной области и выполняется системным аналитиком субъективно в соответствии с его личным пониманием специфики прикладной задачи. Разные люди определяют и представляют данные по-разному.
Поэтому любое априорное знание об ограничениях предметной области, накладываемых на взаимосвязи между данными и значения данных, и знания об их свойствах и взаимоотношениях между ними может сыграть определенную роль в соблюдении указанных выше требований. Формализация таких априорных знаний о свойствах данных предметной области базы данных нашла свое отражение в концепции
Кортежи отношений могут представлять экземпляры
Априорные ограничения предметной области на взаимосвязь значений отдельных атрибутов оказывают наибольшее влияние на процесс проектирования
Вспомним определение функции как соответствия множества аргументов определенным значениям из множества определения функции и способы задания функций: формула, график и перечисление (таблица). Нетрудно понять, что
Определение 1. Пусть
r (A1, A2, ..., An)-схема отношения R, aXиY- подмножестваr. Говорят, чтоХфункционально определяетY, если каждому значению атрибутовкортежа отношения изХсоответствует не более одного значения атрибутов того жекортежа отношения изY. Такая ФЗ обозначается как $$F: Х \to Y$$.
Как видно из определения,
Пример. Понятие функциональной зависимости Продемонстрируем понятие функциональной зависимости на примере графика полетов аэропорта. ГРАФИК_ПОЛЕТОВ (Пилот, Рейс, Дата_вылета, Время_вылета)
| Иванов | 100 | 8.07 | 10:20 |
| Иванов | 102 | 9.07 | 13:30 |
| Исаев | 90 | 7.07 | 6:00 |
| Исаев | 100 | 11.07 | 10:20 |
| Исаев | 103 | 10.07 | 19:30 |
| Петров | 100 | 12.07 | 10:20 |
| Петров | 102 | 11.07 | 13:30 |
| Фролов | 90 | 8.07 | 6:00 |
| Фролов | 90 | 12.07 | 6:00 |
| Фролов | 104 | 14.07 | 13:30 |
Известно, что:
Следовательно:
"Время_вылета" функционально зависим от "Рейс": "Рейс" -> "Время_{} вылета" ;"Рейс" функционально зависим от {"Пилот", "Дата_вылета", "Время_вылета"}: {"Пилот", "Дата_вылета", "Время_вылета"} -> "Рейс" ;"Пилот" функционально зависим от {"Рейс", "Дата_вылета"}: {"Рейс", "Дата_вылета"} -> "Пилот".Важной задачей при выявлении
Определение 2. Пусть имеется отношение
Rсо схемойr,XиY- два подмножестваR. ФЗ $$F: X \to Y$$ имеет место наR, если множество $$\pi_y (\sigma_{X=x} (R))$$ имеет не более одного кортежа для каждого значениях. Такая ФЗ называется такжеF-зависимостью.
Как видно из определения, формальная проверка наличия ФЗ $$F: X \to Y$$ в отношении R состоит в выборе (
Алгоритм, который проверяет, удовлетворяет ли отношение R ФЗ $$F: X \to Y$$, состоит в сортировке отношения по значениям
Ясно, что если семантика предметной области базы данных сложна, то проверить кортежи на принадлежность к ФЗ достаточно сложно. Сложно вообще установить наличие самой
r и, в сущности, не могут быть получены формальными методами. Единственный способ установления r - это исследование семантики атрибутов
Здесь уместно высказать гипотезу о том, почему бывают хорошие и плохие проекты баз данных. Во-первых, в силу субъективности подходов к
Для определения ФЗ предметной области часто бывает недостаточно определить все
Введем определение.
Определение 3. Говорят, что неключевой атрибут функционально полно зависит от
составного ключа , если он функционально зависит от ключа, но не находится вфункциональной зависимости ни от какой частисоставного ключа . Если неключевой атрибут зависит от частисоставного ключа , то говорят очастичной ФЗ .
Пример. Частичные и полные ФЗ
ПРЕПОДАВАТЕЛЬ_ПРЕДМЕТ (Личный номер, Предмет, Фамилия, Должность, Оклад, Часы)
| 1. | Иванов | доцент | 25000 | Математика | 40 |
| 2. | Исаев | доцент | 25000 | Физика | 50 |
| 3. | Фролов | профессор | 50000 | Химия | 30 |
Предмет -> Часы. Значения атрибута Фамилия зависят от значений атрибутов Личный_номер-Предмет, т.е. имеем полную функциональную зависимость {Личный_номер, Предмет} -> Фамилия.
Рассмотрим проблему избыточности данных с точки зрения существования определенных
Таким образом, выявление определенных
Каким образом можно использовать это наблюдение с учетом семантики данных для конструирования отношений? Имеет смысл разбить все возможные зависимости на определенные типы ФЗ, и на основе этой классификации проанализировать, какие типы ФЗ к каким аномалиям в выполнении
Определение 4. Пусть
X, Y, Z- атрибуты отношенияR. Если при этом имеются ФЗ $$X \to Y$$ и $$Y \to Z$$, но отсутствуют ФЗ $$Z \to Y$$ и $$Y \to X$$, то говорят, чтоZтранзитивно зависит отХ. Такие ФЗ называютсятранзитивными (Т-зависимостями).
Пример. Транзитивные ФЗ
Личный номер преподавателя определяет его должность, т.е. имеет место ФЗ Личный_номер -> Должность. С другой стороны, согласно тарификации каждой должности назначается определенный оклад, т.е. имеет место ФЗ Должность -> Оклад. Каждый преподаватель получает за работу соответствующий должности оклад, т.е. оклад преподавателя определяется через его должность.
Очевидно, что семантическая связь между атрибутами отношения может носить неоднозначный характер, это порождает существование класса 1:N (один ко многим), M:1 (многие к одному) и M:N (многие ко многим).
Определение 5. Пусть
r- некотораясхема отношения ,XиY- подмножества атрибутовr. Если при заданных значениях атрибутов из{X}существует некоторое множество, состоящее из нуля или более взаимосвязанных значений атрибутов из{Y}, никак не связанных со значениями других атрибутов этого отношенияr - X - Y, то говорят о существованиимногозначной зависимости между атрибутамиXиY: $$MV: X \to\to Y$$ (класс MV-зависимостей).
Формально t и s, такие, что их значения совпадают по атрибутам из Х, т.е. t[X] = s[X], то данное отношение содержит кортежи w и v, такие, что
w[X] = v[X] = t[X] = s[X],w[Y] = t[Y], w[r - X - Y] = s[r - X - Y],v[Y] = s[Y], v[r - X - Y] = t[r - X - Y].Фактически Y в кортежах t и s можно поменять местами и получить два новых кортежа, также принадлежащих отношению R.
Разделение установленных J -
Пусть U -
$$R = \pi_{r1} (R) >< \pi_{r2} (R) >< \dots >< \pi_p(R)$$Определение 6. Пусть
r = {r_1, …, r_p}- множество схем наU. Отношение R \subset U удовлетворяет зависимости по соединению, еслиRразлагается без потерь наrкак
Процесс выделения новых классов натуральные числа -> целые числа -> . В
Однако для практических целей
Известно, что функции могут образовывать пространства, и в пространствах выполняются различные операции. В нашем случае для каждой базы данных на множестве ее отношений можно рассмотреть все возможные, допустимые в семантическом смысле функциональные зависимости. Для каждого отношения существует вполне определенное множество ФЗ между его атрибутами. На практике число рассматриваемых атрибутов и ФЗ конечно (!).
Поскольку ФЗ являются высказываниями об атрибутах
Математически эту задачу можно поставить следующим образом. Пусть U {A1, A2, ..., An} - (X, Y), таких, что $$X \to Y$$, задает структуру ФЗ отношения R. Такое отношение называют еще универсальным отношением. Задача состоит в построении такого набора ФЗ, из которого могут быть получены все ФЗ базы данных.
Например, r можно логически вывести из $$A \to B$$ и $$B \to C$$. Пусть отношение содержит два кортежа - t и s, совпадающие по атрибуту А, но не совпадающие по С. Нужно выяснить, совпадают ли кортежи t и s по атрибуту В. Если это не так, то нарушается зависимость $$А \to В$$. Если существует совпадение для В, то, поскольку по условию не совпадают компоненты по С, то будет нарушена зависимость $$В \to С$$. Таким образом, отношение удовлетворяет зависимости $$А \to С$$.
Такие рассуждения позволяют ввести следующие определения.
Определение 7. Пусть
F- множество ФЗ длясхемы отношения r, $$X \to Y$$ - некоторая ФЗ. Говорят, что ФЗ $$X \to Y$$ логически следует изF, если для каждого отношенияRсо схемойr, удовлетворяющего ФЗ изF, удовлетворяется также зависимость $$X \to Y$$.
В примере выше мы видели, что если F содержит ФЗ из $$A \to B$$ и $$B \to C$$, то зависимость $$А \to С$$ логически следует из F.
Определение 8. Пусть
F- множество ФЗ длясхемы отношения r. Тогда замыканиемF+множества ФЗFназывается множество ФЗ, которое логически следует изF.Fназывается полным семейством ФЗ, еслиF+ = F.
Пример (без доказательства). Пусть $$r = ABC, F=\{A \to B, B \to C\}$$. Тогда F+ состоит из всех зависимостей $$X \to Y$$, таких, что выполняется одно из следующих условий:
X содержит A, т.е. $$ABC \to AB, AB \to BC$$ или $$A\to С$$ ;X содержит B, но не A, и Y не содержит A, т.е. $$BC \to B, B \to C$$ или B ;Теперь можно уточнить понятие ключа отношения. Предполагается, что для
Определение 9. Пусть
F- множество ФЗ длясхемы отношения R(A1, A2, ..., An). Подмножество атрибутовXназываетсяключом отношения R, если ФЗ: $$X \to A_1 A_2 \dots A_n$$ принадлежитF+и не для какого собственного подмножества $$Y \subseteq X$$ ФЗ: $$Y \to A_1 A_2 \dots A_n$$ не принадлежитF+.
Таким образом, заданный аналитиком ключ некоторого набора
Пример. Многозначность при выборе ключа
Рассмотрим схему отношения R (город, адрес, почтовый_индекс). В этом случае существуют следующие нетривиальные, т.е. имеющие смысл в контексте предметной области, ФЗ город, адрес -> почтовый_индекс (полный адрес определяет почтовый индекс) и почтовый_индекс -> город (почтовый индекс определяет город, но не адрес). Легко убедиться, что оба множества атрибутов {город, адрес} и {адрес, почтовый_индекс} являются ключами отношения. Какой из них выбрать, решает проектировщик базы данных.
Для того чтобы определить ключи отношений и логические следствия ФЗ для заданной F+ или для заданного F уметь определять, принадлежит ли данная ФЗ его замыканию F+. Для этого необходимо иметь набор правил - операций над ФЗ, позволяющих ими манипулировать.
Набор правил вывода должен быть полным, т.е. давать возможность вывести все зависимости из F+, и надежным, т.е. не позволять вывести зависимость из F, не принадлежащую F+. Таким образом, правила вывода, называемые также аксиомами вывода R(A1, A2, ..., Am) на заданном универсальном множестве атрибутов U по заданному множеству ФЗ F = {F1, F2, ..., Fk}.
Далее представлены восемь аксиом вывода
Пример. Определение ключа отношения с помощью правил вывода
Используя три первых аксиомы вывода, покажем, что пара атрибутов {адрес, почтовый_индекс} из примера выше являются (город, адрес, почтовый_индекс), иначе имеет место ФЗ адрес, почтовый_индекс -> город, адрес, почтовый_индекс. Задана ФЗ: почтовый_индекс -> город. Используя аксиому пополнения, пополним эту ФЗ атрибутом адрес, получаем адрес, почтовый_индекс -> город, адрес. Задана ФЗ город, адрес -> почтовый_индекс. Используя аксиому пополнения, пополнив эту ФЗ атрибутами город, адрес, получим город, адрес -> город, адрес, почтовый_индекс. Тогда по аксиоме транзитивности получаем адрес, почтовый_индекс -> город, адрес, почтовый_индекс.
Можно доказать утверждение о том, что настоящие правила вывода позволяют по заданному множеству ФЗ F построить все зависимости, допускаемые на U. Таким образом, система правил вывода ФЗ 1-6 является надежной и полной.
Покажем, как можно доказать утверждение о полноте и надежности аксиом вывода. Аксиомы 1, 2 и 3 составляют независимое подмножество среди всех шести аксиом и называются
Надежность аксиом заключается в том, что если ФЗ $$Х \to Y$$ выведена из F с помощью этих аксиом, то она справедлива на любом отношении, на котором справедливы ФЗ из F. Аксиома рефлексивности является надежной, так как нельзя иметь отношение R с двумя кортежами, которые совпадают по Х, но не совпадают по некоторому его подмножеству. Для доказательства аксиомы пополнения предположим, что имеется отношение R и справедлива ФЗ $$Х \to Y$$ на R. Однако есть два кортежа t и s, которые совпадают по атрибутам XZ, но не совпадают по YZ. Поскольку они не могут совпадать по какому-либо атрибуту из Z, то они не должны совпадать по некоторому атрибуту из Y. Тогда они совпадают по X, но не совпадают по Y, что противоречит существованию ФЗ $$Х \to Y$$. Надежность аксиомы транзитивности уже была доказана в настоящем
учебном элементе ранее.
Для доказательства полноты аксиом вывода введем понятие замыкания множества атрибутов X относительно множества ФЗ F.
Определение 10. Пусть
F- множество ФЗ на множестве атрибутовUи $$X \subseteq U$$. Тогда замыканиемX+множества ФЗFназывается множество атрибутовА, таких, что ФЗ $$Х \to A$$ может быть выведена изFпо аксиомам 1-3.
Нетрудно показать, что ФЗ $$Х \to Y$$ следует из аксиом 1-3 тогда и только тогда, когда $$Y \subseteq X^+$$. По определению замыкания для каждого атрибута из Y выводится ФЗ $$Х \to атрибут$$. По аксиоме объединения имеет место ФЗ $$Х \to Y$$. Обратно, если выполняется ФЗ $$Х \to Y$$, то по аксиоме декомпозиции имеет место ФЗ $$Х\to$$ каждый атрибут из Y, и, следовательно, имеет место $$Y \subseteq X^+$$.
Теперь, для того чтобы показать полноту аксиом 1-3, покажем, что если при заданном F ФЗ $$Х \to Y$$ не может быть выведена из данных аксиом, то должно существовать такое отношение, в котором справедливы все ФЗ F, кроме ФЗ $$Х \to Y$$.
Рассмотрим отношение R с двумя кортежами:
| X+ | другие атрибуты |
|---|---|
| 1 1 … 1 | 1 1 … 1 |
| 1 1 … 1 | 0 0 … 0 |
Все зависимости из F справедливы на R. Следует показать, что $$Х \to Y$$ не удовлетворяется на R. Допустим обратное. Из $$X \subseteq Х^+$$ следует $$Y \subseteq Х^+$$, иначе два кортежа, совпадая по Х, не совпадают по Y. Тогда ФЗ $$Х \to Y$$ следует из аксиом 1-3, что приводит к противоречию. Таким образом, аксиомы 1-3 полны.
На основе аксиом вывода можно уточнить понятие замыкания множества ФЗ $$F - F^+$$, как наименьшего множества, содержащего F, которое не может быть расширено за F с помощью аксиом 1, 2 и 3. Понятие замыкания является основным при доказательстве приведенного выше утверждения. Оно также важно при определении, имеет ли множество ФЗ F зависимость $$Х \to Y$$. Для этого достаточно проверить, принадлежит ли рассматриваемая зависимость множеству F+.
Вычисление замыкания конечного множества ФЗ является трудоемкой задачей, так как необходимо перебрать множество всех подмножеств, а таких множеств, как известно, 2n, где n - число элементов исходного множества. Однако вычислить замыкание X+ для данного множества атрибутов несложно. Алгоритм вычисления приведен ниже. Можно показать, что этот алгоритм корректно вычисляет замыкание X+.
Алгоритм вычисления X+
Input: U - конечное множество атрибутов, множество ФЗ F на U, множество $$X \subseteq U$$. Output:
X+
Х0естьХ.Xi+1естьXiплюс множество атрибутовА, для которых вFсуществует ФЗ $$Y \to Z, A \subseteq Z, Y \subseteq X^i$$.Условие завершения. Так как
U- конечно и $$X = X^0 \subseteq \dots \subseteq X^i \subseteq \dots К \subseteq$$, то существуетi, такое, чтоXi = Xi+1.Пример. Вычислим
Х+Пусть $$F = {AB \to C, C \to A, BC \to D, ACD \to B, D \to EG, BE \to C, CG \to BD, CE \to AG} и X=BD$$.
$$X^0=BD$$ Находим ФЗ, которые в левой части имеют $$B, D, BD - D \to EG$$. Присоединим E и G к X0.X1 = BDEG. Находим ФЗ с левыми частями из $$Х^1 - D \to EG, BE \to C. X^2 = BCDEG$$. Находим ФЗ с левыми частями из $$Х^2 - C \to A, BC \to D, CG \to BD, CE \to AG. X^3 = ABCDEG$$.$$X^4 = X^3 \dot (BD)^+ = ABCDEG$$.
Попытаемся теперь выяснить, какова роль F -зависимостей в реляционных базах данных. Как показали исследования, класс F -зависимостей оказывает существенное влияние на построение согласованных
Одной из основных целей
В начале F -зависимостей. Чем меньшим числом отношений их можно представить, тем лучше.
Определение 11. Два множества F-зависимостей
FиGнад схемойrотношенияRэквивалентны, если их замыкания совпадают, т.е.F+ = G+.
Эквивалентность двух множеств ФЗ F и G устанавливается следующим образом: для каждой ФЗ $$Х \to Y$$ из F проверяется ее принадлежность G+ ; для этого вычисляется Y+ ; затем проверяется вложение Z в Y+ ; если каждая зависимость F принадлежит G+, то каждая зависимость в F+ принадлежит G+ ; далее повторяем процедуру для G по отношению к F.
Следствием введения понятия эквивалентности является следующий важный факт: каждое множество ФЗ покрывается некоторым множеством ФЗ, в которых ни одна из правых частей не имеет более одного атрибута (правила декомпозиции и объединения). Таким образом, существует набор эквивалентных схем для каждой исходной
Теория
Определение 12. Множество
F-зависимостейFнеизбыточно, если у него нет собственного подмножества, эквивалентного ему самому.
Определение 13. Множество
F-зависимостейFминимально, если оно содержит не больше F-зависимостей, чем любое эквивалентное ему множество.
F можно детализировать следующим образом:
F содержит один атрибут;F множество $$F - {Х \to А}$$ не эквивалентно F ;F и собственного подмножества $$Z \subseteq X$$ множества $$F - {Х \to А}{Z \to А}$$ не эквивалентны.Доказано, что для каждого множества ФЗ F существует эквивалентное ему F может существовать несколько
Алгоритмы проверки избыточности
Алгоритм REDUNDANT ( F )
input: Множество F
output: True, если F избыточно
1. temp = false
for any X ->Y < F do
if MEMBER ( F - { X -> Y } , X -> Y ) then temp = True
Return ( temp )
Алгоритм NONREDUN ( G )
input: Множество ФЗ G
output: Неизбыточное покрытие G
1. F = G
for any X ->Y > G do
if MEMBER (F - { X -> Y }, X -> Y ) then
F = F - { X -> Y }
Return (F)
Алгоритмы построения
Алгоритм MINIMAZE (G)
input: Множество ФЗ G
output: Минимальное покрытие G
F = NONREDUN ( G )
Построить непустые множества Еf(X)+, состоящие из ФЗ, с левой частью,
эквивалентной Х. Ef(X) - подмножество Ef(X)+, отвечающее атрибуту Х.
for any Ef(X) из Ef(X)+ do
for any Y -> U из Ef(X) do
for any Z -> V <> Y->U из Еf(X) do
if DDERIVERS ( F, Y, -> Z ) then
заменить Y->U и Z->V на Z->UV в F
Return(F)
Примеры. Построение
Пусть F = {AB -> C, C -> A, BC -> D, .
Расщепив правые части с помощью правила декомпозиции, получим
AB -> C, C -> A, BC -> D, .
CE -> A - избыточна, так как следует из C -> A.
CG -> B - избыточна, так как следует из CG -> D, C -> A, .
Больше избыточных ФЗ нет.
может быть замещена CD -> В, так как C -> A.
Первое МП:
AB -> C, C -> A, BC -> D, CD -> B, D -> E, D -> G, BE -> C, CG -> D, CE -> G.
Построим второе МП, исключив CE -> A, CG -> D, AC -> DB:
AB -> C, C -> A, BC -> D, D -> E, D -> G, BE -> C, CG ->В, CE -> G
Так же как и для F -зависимостей, можно определить правила вывода для многозначных MV -зависимостей, и определить их взаимоотношения с F -зависимостями, а далее показать совместную полноту правил вывода F - и MV -зависимостей.
Правила вывода для MV-зависимостей:
X Y, то имеет место МФЗ $$WX \to \to V \cap; Y$$.Совместные правила вывода для F - и MV -зависимостей:
Справедливо следующее утверждение: система правил вывода F1-F3, MV1-MV3, FMV1 и FMV2 является надежной и полной.
Правила декомпозиции и объединения MV -зависимостей позволяют сформулировать следующее утверждение. Пусть U - множество атрибутов, тогда можно построить разбиение U-X на множества $$Y_1, Y_2, \dots, Y_k$$, такое, что при $$Z \subseteq U-X$$ имеет место МФЗ $$X \to\to Z$$, если только Z является объединением некоторого числа Yi. Набор множеств Y1, Y2, ..., Yk называется базисом Х F - и MV -зависимостей. Каждое Yi может состоять из одного атрибута.
Пусть D - множество F - и MV -зависимостей, тогда, так же как и для F-зависимостей, замыкание D+ множества D может быть логически выведено по аксиомам F1-F3, MV1-MV3, FMV1 и FMV2. Однако этот процесс может потребовать времени, пропорционального eL, где L - число ФЗ в D.
На практике часто требуется только знать, следует ли из D конкретная ФЗ $$X \to\to Z$$ или $$X\toZ$$. Этого достаточно, чтобы исключить избыточные ФЗ. Для того чтобы определить, имеет ли место MV -зависимость $$X \to \to Z$$, достаточно построить базис Х зависимостей и посмотреть, является ли Z - X объединением каких-либо его множеств. Для вычисления базиса зависимостей Х относительно D достаточно найти базис относительно множества МФЗ М, где М состоит из а) всех МФЗ из D и б) множества МФЗ $$X \to \to А_i, i = 1, 2, \dots, n$$ для каждой ФЗ $$X \to Y$$ в D, где $$Y = A_1, A_2, \dots, A_n$$.
Ниже приведен алгоритм вычисления базиса Х ФЗ относительно M.
Алгоритм вычисления базиса
input: Множество MV-зависимостей М на множестве атрибутов$$U, Х \subseteq U$$
output: Базис Х относительно М.
Y - X, либо U - X - Y.Z1, Z2 и заменять ее множествами $$Z_1 - Z_2, Z_2 - Z_1 и Z_1 \cup Z_2$$, отбрасывая пустое множество $$(Z_1 \subseteq Z_2)$$. В результате получим множество S.Y - W.Теория
F- и MV -зависимостями. В рамках данных аксиом преобразования схем отношений реляционных баз данных будут эквивалентными.Литература: [3], [11], [14], [15], [20], [31], [43], [44], [45].
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.