Базы данных. Лекции - База данных, лекционный курс. Базы данных лекционный курс
Скачать 1.23 Mb.
|
6.2. Некоторые комментарии к декомпозиционному методу проектирования В предыдущем разделе было сказано, что в процессе проектирования с помощью проекций декомпозицию следует осуществлять путем поиска цепочек функциональных зависимостей вида: А В, В С с последующим проецированием, порождаемым F-зависимостью, замыкающей цепочку. Обоснование данной процедуры выбора состоит в утверждении, что всеми средствами следует избегать выбора функциональной зависимости, зависимостная часть которой сама (целиком или частично) является детерминантом другой F-зависимости. Пусть имеется отношение r(A, B, C) и F-зависимости: А В, В С. Выберем для проведения проекции F-зависимость А В. Получим отношения: r1(A, B) и R2(A, С). Оба эти отношения находятся в НФБК, но F-зависимость В С утеряна (ни отношение r1, ни r2 автономно не содержат атрибуты, присутствующие в данной функциональной зависимости). С практической точки зрения это означает то, что нельзя будет утверждать, что некорректные связи между В и С не будут привнесены в БД. При использовании правила цепочки такой ситуации не возникает. Рассмотрим другой случай возможной потери функциональной зависимости при проектировании. Пусть имеется отношение r(A, C, B) и F-зависимости: А В, С В. Отношение r не находится в НФБК. Правило цепочки здесь неприложимо по причине их отсутствия. Если же одна из функциональных зависимостей будет выделена обычным способом, то другая будет потеряна: при выделении из r зависимости А В будут получены отношения: r1(A, B) и r2(A, C) и F-зависимость С В будет утеряна; при выделении из r зависимости С В будут получены отношения: r1(С, B) и r2(A, C) и F-зависимость А В будет утеряна. Если отношение R разбить на r1(A, B) и r2(C, В), то ни одна из функциональных зависимостей не будет утеряна. Такой путь не соответствует стандартному методу декомпозиции. В его основе (в некоторых литературных источниках данный метод называется методом синтеза) лежит следующее утверждение: все F-зависимости с одинаковыми детерминантами необходимо выделять в группы и каждой группе отводить свое собственное отношение (что мы и сделали). Метод синтеза используется как самостоятельно, так и в сочетании с методом декомпозиции (как альтернатива при поиске выхода из затруднительной ситуации). Тот факт, что существуют различные методы проектирования, которые могут быть использованы как порознь, так и до некоторой степени смешанным образом, свидетельствует о том, что проектирование БД является частично наукой, а частично искусством. 6.3. Некоторые модификации алгоритма декомпозиционного метода Процесс декомпозиции может осложниться из-за присутствия избыточных F-зависимостей. Избыточной функциональной зависимостью называют зависимость, заключающую в себе такую информацию, которая может быть получена на основе других зависимостей из числа использованных при проектировании БД. Поскольку избыточная F-зависимость не содержит уникальной информации, она может быть удалена из набора функциональных зависимостей без отрицательного воздействия на результаты. Избыточные F-зависимости удаляются на начальном этапе проектирования. Для уменьшения модификации исходного набора функциональных зависимостей и получения другого, эквивалентного ему, набора используются аксиомы вывода для F-зависимостей. Пусть r – отношение со схемой R, w, x, y, z – подмножества R. 1-я аксиома вывода. Рефлексивность. В r всегда имеет место Х Х (так как отношение всегда имеет не более одного кортежа). 2-я аксиома вывода. Пополнение. Если r удовлетворяет Х Y, то r удовлетворяет F-зависимости XZ Y (Х Y влечет за собой XZ Y). Например, дано отношение:
Отношение r удовлетворяет F-зависимости А В и, следовательно, функциональным зависимостям: АВ В, AC B, AD B, ABC B, ABD B, ACD B, ABCD В в силу второй аксиомы. 3-я аксиома вывода. Аддитивность (так же известна под названием – объединение). Если отношение r удовлетворяет X Y и X Z, то r удовлетворяет F-зависимости Х YZ. В рассматриваемом примере А В и А С, по третьей аксиоме А ВС. 4-я аксиома вывода. Проективность. Если отношение r удовлетворяет X YZ, то r удовлетворяет X Y и X Z. 5-я аксиома вывода. Транзитивность. Х Y и Y Z влечет за собой X Z. 6-я аксиома вывода. Псевдотранзитивность. Если r удовлетворяет зависимостям X Y и YZ W, то r удовлетворяет XZ W. 6.4. Использование аксиом вывода при удалении избыточных зависимостей Использование аксиомы пополнения Использование аксиомы аддитивности Если: то: Использование аксиомы проективности Если: то: Использование аксиомы транзитивности Исходный набор F-зависимостей: исключаем A E, так как A C и C E: исключаем B E, так как B C и C E: исключаем A С так как A B и B C: Получили неизбыточный набор функциональных зависимостей. Теперь, применив метод декомпозиции, можно получить набор НФБК – отношений. Имеем отношение r (A, B, C, E). Выделяя в отдельное отношение F-зависимость C E, разбиваем отношение r на r1 (C, E) и r2 (A, B, C). Отношение r1 находится в НФБК, r2 – нет. Выделяя в отдельное отношение зависимость B C, разбиваем r2 на отношения r3 (B, C) и r4 (A, B). Полученные отношения находятся в НФБК. Использование аксиомы псевдотранзитивности Имеем F-зависимости: Преподаватель Курс; Время, Курс Аудитория; Преподаватель, Время Аудитория. Зависимость Преподаватель, Время Аудитория - избыточная псевдотранзитивная зависимость, ее можно удалить. Использование нескольких аксиом Исходный набор F-зависимостей: Имеем: B D; B, C D. По аксиоме пополнения можно удалить B,C D. Получаем: Зависимость A B, C заменяем на A B и A C (аксиома проективности): По аксиоме транзитивности удаляем A D и A C: В полученном наборе F-зависимостей нет больше избыточных зависимостей – преобразование закончено. Следует обратить внимание на такой момент: избыточные F-зависимости необходимо удалять по одной, каждый раз заново анализируя получаемый набор функциональных зависимостей. В рассмотренном примере удаление избыточных F-зависимостей можно было выполнить в ином порядке: удалить A D (аксиома транзитивности); удалить B, C D (аксиома пополнения); заменить A B, C на A B и A C (аксиома проективности); удалить A C. В результате был бы получен точно такой же набор неизбыточных функциональных зависимостей. Графические формы диаграмм зависимостей упрощают выявление избыточных F-зависимостей, однако при большом числе атрибутов и функциональных зависимостей графический подход может оказаться слишком громоздким. Набор неизбыточных F-зависимостей, полученный путем удаления всех избыточных функциональных зависимостей из исходного набора с помощью аксиом вывода, называют минимальным покрытием. Минимальное покрытие не всегда является уникальным. Обратимся к БД «Консультант». Исходный набор F-зависимостей: По аксиоме транзитивности можно удалить как избыточную зависимость: а) № студента № телефона; б) № студента № комнаты. В результате будут получены два минимальных покрытия (первое – при выполнении пункта а); второе – при выполнении пункта б), использование которых приведет к построению тех же самых двух БД, проектирование которых уже обсуждалось нами. 6.5. Пересмотренный алгоритм проектирования реляционной базы данных Этапы проектирования: 1) Разрабатывается универсальное отношение для БД. 2) Определяются все функциональные зависимости, имеющиеся между атрибутами универсального отношения. 3) Из исходного набора функциональных зависимостей удаляются все избыточные с целью получения минимального покрытия. 4) Исходное отношение преобразуется в набор НФБК – отношений с использованием функциональных зависимостей полученного минимального покрытия. 5) Если может быть получено более чем одно минимальное покрытие, осуществляется сравнение результатов, получаемых на основе различных минимальных покрытий, с целью определения варианта, лучше других отвечающего требованиям проектирования конкретной БД. 6.6. Проверка отношений на завершающей фазе их проектирования Проверка отношений на завершающей фазе их проектирования состоит из трех пунктов. 1) Составляются списки F-зависимостей для каждого отношения. Данные списки проверяются следующим образом: а) одна и та же F-зависимость не должна появляться более, чем в одном отношении; б) полученный набор F-зависимостей должен: либо в точности совпадать с набором минимального покрытия; либо возможно его получение из набора минимального покрытия с помощью правил вывода. При недостоверности хотя бы одной из этих проверок следует проанализировать процесс проектирования для выявления ошибок и/или рассмотреть другие варианты проектирования. 2) Осуществляется проверка на наличие избыточных отношений. Отношение является избыточным, если: а) все его атрибуты находятся в одном другом отношении проектного набора; б) все его атрибуты могут быть найдены в отношении, которое может быть получено с помощью операции соединения других отношений проектного набора. Пример, иллюстрирующий первый тип избыточности. Имеется следующий проектный набор отношений: r1 (A, B) r2 (B, C, Y, Z) r3 (A, B, K) Отношение r1 является избыточным, так как все его атрибуты присутствуют в отношении r3. Пример, иллюстрирующий второй тип избыточности. Имеется следующий проектный набор отношений: r1 (A, C, X) r3 (D, K, F) r5 (D, E, G, H) r7 (A, B, D) r8 (A, B, E, G) Отношение r8 является избыточным, так как соединение отношений r5 и r7 даст в результате отношение r9 (A, B, D, E, G, H), которое содержит все атрибуты присутствующие в r8. Избыточные отношения исключаются из проектного набора. 3) Отношения рассматриваются с практической точки зрения. Изучается характер использования отношений в проектируемой БД и определяется, будут ли они поддерживать те типы запросов, которые предполагается использовать. Тесты для самоконтроля 1. Декомпозиция отношения r(A,B,C,D,E), для которого F-зависимости C B и C Е являются причиной того, что отношение не находится в НФБК, осуществляется следующим образом: а) r1(A, C, D); r2(C, B, E); б) r1(A, D); r2(C, B, E); в) r1(A, C, D); r2(B, E). 2. Проектирование методом декомпозиции завершается, когда: а) для каждого отношения список детерминантов будет совпадать со списком ключей; б) в каждом отношении будет по одному ключу; в) все отношения будут находиться в НФБК. 3. При проектировании методом декомпозиции отыскивают цепочку F-зависи-мостей вида A B C и выбирают для проекции: а) F-зависимость, зависимостная часть которой сама является детерминантом другой F-зависимости; б) крайнюю левую зависимость; в) крайнюю правую зависимость. 4. Избыточной F-зависимостью называют зависимость: а) заключающую в себе такую информацию, которая может быть получена на основе других F-зависимостей; б) все атрибуты которой находятся в одном другом отношении проектного на-бора; в) которая заключает в себе уникальную информацию. 5. Избыточные F-зависимости: а) не удаляются; б) удаляются на начальном этапе проектирования; в) удаляются в конце проектирования. 6. Аксиома пополнения: если отношение r удовлетворяет А B, а) то r удовлетворяет F-зависимости А B, C; б) то r удовлетворяет F-зависимости А, С B; в) то r удовлетворяет F-зависимости B A. 7. Отношение является избыточным, если: а) все его атрибуты находятся в одном другом отношении проектного набора; б) оно содержит в себе такую информацию, которая может быть получена на основе других F-зависимостей; в) все его атрибуты могут быть найдены в отношении, которое может быть получено с помощью операции соединения других отношений проектного набора. 8. Один из этапов декомпозиционного метода проектирования состоит: а) в удалении всех избыточных зависимостей; б) в определении всех функциональных зависимостей; в) в удалении избыточных отношений. 9. Аксиома проективности: а) если отношение r удовлетворяет X Y и X Z, то r удовлетворяет F-зависимости Х YZ; б) если отношение r удовлетворяет X YZ, то r удовлетворяет зависимостям X Y и X Z; в) если r удовлетворяет Х Y, то r удовлетворяет F-зависимости XZ Y 10. В некотором отношении может быть: а) несколько ключей; б) только один ключ. Задания для самостоятельного выполнения Дан набор F-зависимостей (варианты а – в): а) б) в) Используя аксиомы вывода, удалить все избыточные функциональные зависимости. 7. БЕЗОПАСНОСТЬ БАЗ ДАННЫХ Термины безопасность и целостность в контексте обсуждения баз данных часто используются совместно, хотя, на самом деле, это совершенно разные понятия. Термин безопасность относится к защите данных от несанкционированного доступа, изменения или разрушения данных, целостность – к точности или истинности данных. По-другому их можно описать следующим образом: Под безопасностью подразумевается, что пользователям разрешается выполнять некоторые действия. Под целостностью подразумевается, что эти действия выполняются кор-ректно. В современных СУБД поддерживается один из двух широко распространенных подходов к вопросу обеспечения безопасности данных, а именно избирательный подход или обязательный подход, либо оба подхода. В обоих подходах единицей данных или объектом данных, для которых должна быть создана система безопасности, может быть как вся база данных целиком или какой-либо набор отношений, так и некоторое значение данных для заданного атрибута внутри некоторого кортежа в определенном отношении. Эти подходы отличаются следующими свойствами: В случае избирательного управления некий пользователь обладает различными правами (привилегиями или полномочиями) при работе с объектами. Более того, разные пользователи обычно обладают и разными правами доступа к одному и тому же объекту. Поэтому избирательные схемы характеризуются значительной гибкостью. В случае обязательного управления, наоборот, каждому объекту данных присваивается некоторый классификационный уровень, а каждый пользователь обладает некоторым уровнем допуска. Таким образом, при таком подходе доступом к определенному объекту данных обладают только пользователи с соответствующим уровнем допуска. Поэтому обязательные схемы достаточно жестки и статичны. |