Базы данных_Лекц4-14.pptx
- Количество слайдов: 17
Функциональные зависимости между атрибутами отношения «Библиотека» Диаграмма ФЗ Математическая форма представления ФЗ 1. 2. 3. 4. 5. 6. 7. Шифр → Авт Шифр → Назв Шифр → Год Шифр → Экз Билет → ФИО Билет→ Тел Шифр, Билет → Дата 1
Декомпозиция без потерь при естественном соединении Пусть имеем отношение R (A, B, C, D, E, …). Атрибут А - первичный ключ отношения, от него функционально зависят все остальные атрибуты. Кроме того, существует ФЗ C D, наличие которой мешает отношению R находиться в НФБК, так как С, являясь детерминантом отношения, не является его ключом. Следует разбить отношение R на два: R 1 (C, D) и R 2 (A, B, C, E, …). Отношение R 1 является проекцией отношения R. Атрибуты функциональной зависимости, на которую выполняется проекция, переходят в новое отношение, при этом атрибут (совокупность атрибутов) левой части остается и в исходном отношении. 2
Избыточные ФЗ Определение. Функциональная зависимость называется избыточной, если не заключает в себе информации, которую нельзя получить из других ФЗ. Избыточная ФЗ, как не содержащая уникальной информации может и должна быть удалена из набора ФЗ. Найти и удалить избыточные ФЗ можно с помощью правил, которые называются правилами вывода. Основные правила вывода: n n n Транзитивность Объединение Добавление Декомпозиция Псевдотранзитивность 3
Правила вывода Транзитивность. Если имеем ФЗ A В и B C, то существует ФЗ A С, которая называется транзитивной. Транзитивная зависимость является избыточной. Нестандартным случаем транзитивной зависимости является циклическая зависимость A ↔ B, B ↔ C, C ↔ A. При исключении любой из этих ФЗ две оставшиеся перестают быть избыточными. Объединение. Если имеем ФЗ A В и А C, то существует ФЗ A В, С. Это правило позволяет сократить количество ФЗ отношения путем замены нескольких ФЗ с одинаковыми левыми частями одной. Добавление. Если имеем A В, то ФЗ A, Z B или ФЗ A, X В, X являются корректными, но избыточными. Декомпозиция. Если имеем ФЗ A В, C то ее можно заменить двумя ФЗ: A В и A С. Псевдотранзитивность. Если имеем ФЗ A В и B, C X, то существует ФЗ A, C X, которая называется псевдотранзитивной ФЗ и является избыточной 4
Устранение избыточных ФЗ в отношении «Библиотека» Дважды применим правило объединения – сначала по отношению к ФЗ 1, 2, 3, 4, а затем по отношению к ФЗ 5, 6. В итоге получим: 1. Шифр → Авт, Назв, Год, Экз 2. Билет → ФИО, Тел 3. Шифр, Билет → Дата 5
Минимальное покрытие Определение. Набор не избыточных ФЗ, полученный путем удаления из исходного набора всех избыточных ФЗ с помощью правил вывода, называется минимальным покрытием. Применяя разные правила вывода в различном порядке, можно получить разные минимальные покрытия, но на практике обычно стремятся получить любое из них Получив минимальное покрытие, можно приступать к декомпозиции отношения 6
Декомпозиция отношения “Библиотека”(шаг 1) 2 кандидата на проекцию – ФЗ 1 и ФЗ 2. Выберем, например, первую. Получим два отношения: n отношение R 1 с атрибутами Шифр, Авт, Назв, Год, Экз, между которыми существует единственная ФЗ: Шифр → Авт, Назв, Год, Экз, n отношение R 2 с атрибутами Билет, ФИО, Тел, Шифр, Дата, в котором есть две ФЗ: Билет → ФИО, Тел Шифр, Билет → Дата R 1 - Книга R 2 R 1 находится в НФБК R 2 не находится в НФБК 7
Декомпозиция отношения “Библиотека”(шаг 2) R 2 R 3 - Читатель R 4 - Читает Выполним проекцию отношения R 2 на атрибуты ФЗ Билет → ФИО, Тел. Получим отношение R 3 с атрибутами Билет, ФИО, Тел и ФЗ Билет → ФИО, Тел В оставшемся отношении R 4 с атрибутами Шифр, Билет, Дата, также имеется только одна ФЗ, а именно: Шифр, Билет → Дата 8
Устранение аномалий Разбиение одного универсального отношения на три привело к автоматическому устранению аномалий обновления, удаления и вставки : n n n Номер телефона при наличии в БД единственного отношения надо было изменить столько раз, сколько книг взял читатель. После разбиения отношения на три, нужно изменить номер телефона только в одной строке отношения Читатель. Существовала и проблема удаления строк при возврате книги читателем. Теперь эта операция требует удаления строки отношения Читает, тем самым разрывается связь между читателем и книгой, но сведения о книге, находящиеся в отношении Книга, не исчезают, как и сведения о читателе, хранящиеся в отношении Читатель. Исчезла аномалия добавления. Теперь не может быть частично заполненных строк в каждом из отношений. Если в библиотеку записывается новый читатель, то строка добавляется в отношение Читатель, и операция не затрагивает другие отношения БД. Если библиотека получила новую книгу, то сведения о ней помещаются в отношение Книга. При выдаче книги читателю, добавляется строка со сведениями о том, кто, какую книгу и когда взял, в таблицу Читает. При этом и сведения о книге и сведения о читателе, которому ее выдают, уже есть в БД, соответственно в отношениях Книга и Читатель. 9
Выбор ФЗ для первой проекции Следует избегать выбора ФЗ, правая часть которой полностью или частично является детерминантом другой ФЗ. Ищут цепочки вида А В С, и используют крайнюю правую зависимость. Почему? Если попробовать, имея цепочку А В С, выполнить проекцию на ФЗ А В, то получим отношение R 1(A, B) и отношение R 2(A, С). Оба эти отношения находятся в НФБК, но ни одно из них не содержит ФЗ В С, которая присутствует в исходном отношении. Т. о. , в результате декомпозиции произошла потеря одной из ФЗ исходного отношения, что является недопустимым, поскольку искажается семантика предметной области. 10
Последовательность шагов метода декомпозиции 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Разработать универсальное отношение. Определить все ФЗ между атрибутами отношения. Исключить избыточные ФЗ и получить минимальное покрытие. Определить, находится ли отношение в НФБК. Если да, то все оставить без изменения. Если нет, то выбрать ФЗ для проекции и разложить отношение на два. Повторить шаг 4 для каждого нового, полученного при разложении, отношения. Процесс декомпозиции завершается, когда окажется, что все полученные отношения находятся в НФБК. Полученный набор отношений проанализировать на предмет смысловой связности атрибутов, хранящихся в отношениях. Проверить, поддерживает ли полученный набор отношений предполагаемые запросы и операции обновления. Анализ запросов может потребовать добавления в БД новых атрибутов, связей между отношениями и даже новых, обычно связных, отношений. Проконтролировать отсутствие избыточных ФЗ. 11
Проверка отсутствия в наборе отношений избыточных ФЗ n n Одна и та же ФЗ не должна присутствовать более, чем в одном отношении. Набор ФЗ, распределенных по разным отношениям, должен совпадать с минимальным покрытием. Если это не так, то нужно показать, что перейти к минимальному покрытию от итогового набора ФЗ или наоборот можно, последовательно применяя правила вывода. Если осуществить такой переход не удается, то в процессе проектирования была допущена ошибка, и последовательность шагов следует повторить, может быть, воспользовавшись для первой проекции другой ФЗ.
Избыточные отношения Отношение является избыточным в двух случаях: n n Если все его атрибуты присутствуют в другом отношении. Например, имеем БД, состоящую из 3 -х отношений: R 1(A, B), R 2(B, C, Y, Z), R 3(A, B, D). Отношение R 1 в этом наборе является избыточным, поскольку оба его атрибута: А и В содержатся в отношении R 3. Если все его атрибуты присутствуют в отношении, которое может быть получено из других отношений БД с помощью последовательности операций естественного соединения над ними. Пусть имеем БД из пяти отношений: R 1(A, C, X), R 2(D, K, F), R 3(D, E, G, H), R 4(A, B, D), R 5(A, B, E, G). Если применить операцию соединения к отношениям R 3 и R 4, то получим отношение R 6(A, B, D, E, G, H). Поскольку в этом отношении содержатся все атрибуты отношения R 5, то R 5 является избыточным отношением. Если применить операцию соединения к паре отношений R 3, R 5, то избыточным окажется отношение R 4.
Анализ набора отношений БД Библиотека на предмет смысловой связности и соответствия запросам n Смысловая связность атрибутов, составляющих каждое из отношений, не нарушена. В отношении Читатель, присутствуют атрибуты, характеризующие читателя – ФИО, Билет, Тел. Отношение Книга содержит только атрибуты, характеризующие библиотечную книгу Шифр, Авт, Назв, Год, Экз. Отношение Читает, являясь связным отношением, содержит первичные ключи объектных отношений Книга и Читатель, а также атрибут Дата, относящийся в равной степени как к книге, так и к читателю. n Заключение о соответствии полученного набора отношений предполагаемым запросам можно дать только, имея перечень запросов. Пусть имеем следующие запросы: 1. Кто из читателей является читателем библиотеки уже более 10 лет? 2. Кто из читателей брал книги в предыдущем месяце? Для реализации запроса 1 нужна коррекция набора атрибутов БД и ФЗ. Требуется добавление атрибута Дата. Записи, который функционально зависит от атрибута Билет и должен размещаться в отношении Читатель Для реализации запроса 2 нельзя при возврате книги читателем удалять строку из таблицы Читает. Надо добавить в отношение Читает атрибут Дата. Возврата, функционально зависящий, как и атрибут Дата (изменим его имя на Дата. Закрепления), от совокупности атрибутов Шифр и Билет. Если читатель еще не вернул книгу, будет заполнено только поле Дата. Закрепления, а когда книга возвращается в библиотеку, появляется значение и в поле Дата. Возврата.
Анализ набора отношений БД Библиотека на предмет наличия избыточных ФЗ и отношений • Избыточность ФЗ: • • • в отношении Книга присутствует одна ФЗ Шифр → Авт, Назв, Год, Экз, в отношении Читатель одна ФЗ Билет → ФИО, Тел , в отношении Читает одна ФЗ Шифр, Билет → Дата. Каждая ФЗ присутствует только в одном отношении, а набор из трех ФЗ, распределенный по трем отношениям совпадает с исходным минимальным покрытием. • Избыточность отношений: Избыточных отношений нет, т. к. • • очевидно, что атрибуты ни одного из отношений полностью не присутствуют в другом. выполнять операции соединения имеет смысл, если атрибут, находящийся в одном отношении, находится и в другом. Это относится к атрибутам правых частей ФЗ. Атрибуты левых частей могут присутствовать в нескольких отношениях при наличии связи между отношениями по этим атрибутам. В нашем случае атрибуты Авт, Назв, Год, Экз, находятся только в отношении Книга, атрибуты ФИО и Тел – только в отношении Читатель, а атрибут Дата – только в отношении Читает. Атрибут Шифр присутствует в двух отношениях – Книга и Читает, а атрибут Билет – в отношениях Читатель и Читает, но оба используются для связи.
Связи между отношениями БД Библиотека
Действия, которые выполняются на стадии реализации БД n n n Средствами выбранной для реализации СУБД вводятся описания (схемы) всех составляющих базу данных отношений. Разрабатываются интерфейсы пользователей разных категорий. Сюда входит разработка экранных форм для ввода и отображения данных, удобных экранных способов доступа к хранящимся в базе данным, создание выходных форм (отчетов), обеспечивающих максимальную информативность и удобство восприятия. Разрабатывается программное обеспечение прикладной системы, реализующее все необходимые операции с БД для всех категорий пользователей. БД заполняется отладочными данными. Производится отладка и тестирование разработанной прикладной системы. 17
Базы данных_Лекц4-14.pptx