- •7.7.6. Определить общее количество поставщиков
- •7.7.7. Определить в поставках максимальное
- •7.7.8. Для каждой поставляемой детали указать номер и общий объем поставки в штуках
- •7.7.9. Указать номера всех типов деталей, поставляемых более чем одним поставщиком
- •7.7.10. Определить имена поставщиков детали с номером т2'
- •7.7.11. Определить имена поставщиков по крайней мере одной красной детали
- •7.7.12. Указать номера поставщиков, статус которых меньше текущего максимального статуса
- •7.7.13. Указать имена поставщиков детали с номером 'р2'
- •7.7.14. Выбрать имена поставщиков, которые не поставляют деталь с номером 'р2'
- •7.7.15. Определить имена поставщиков всех типов деталей
- •7.7.16. Определить номера деталей, которые либо весят более 16 фунтов, либо поставляются поставщиком с номером 's2', либо и то, и другое
- •7.8. Резюме
- •8.2. Ограничения типа
- •8.3. Ограничения атрибута
- •8.4. Ограничения переменной-отношения
- •8.5. Ограничения баз данных
- •8.6. "Золотое правило"
- •8.7. Ограничения состояния и ограничения перехода
- •8.8. Ключи
- •3. Пусть r1 и r2 — ссылающаяся и ссылочная переменные-отношения соответственно.
- •8.9. Средства языка sql
- •8.10. Резюме
- •9.1. Введение
- •9.2. Для чего нужны представления
- •9.3. Выборка данных из представлений
- •9.4. Обновление данных в представлениях
- •9.5. Моментальные снимки
- •9.6. Поддержка представлений в языке sql
- •9.7. Резюме
- •Часть III
- •10.1. Введение
- •10.2. Основные определения
- •10.3. Тривиальные и нетривиальные зависимости
- •10.4. Замыкание множества зависимостей
- •10.5. Замыкание множества атрибутов
- •10.6. Неприводимые множества зависимостей
- •10.7. Резюме
- •Глава 1 1
- •I Переменные-отношения в знф I
- •11.2. Декомпозиция без потерь
- •11.3. Первая, вторая и третья нормальные формы
- •11.4. Сохранение зависимостей
- •11.5. Нормальная форма Бойса-Кодда
- •11.6. Замечание по поводу атрибутов, содержащих в качестве значений отношения
- •11.7. Резюме
- •12.1. Введение
- •12.2. Многозначные зависимости и четвертая нормальная форма
- •12.3. Зависимости соединения и пятая нормальная форма
- •Соединение по комбинации атрибутов j#,s#
- •Исходное состояние spj
- •12.4. Общая схема процедуры нормализации
- •12.5. Денормализация
- •12.6. Ортогональное проектирование (небольшое отступление от темы)
- •12.7. Другие нормальные формы
- •12.8. Резюме
- •12.3. Brosda V., Vossen g. Update and Retrieval Through a Universal Schema Interface // acm tods. — December, 1988. — 13, № 4.
- •12.5. Date c.J. Will the Real Fourth Normal Form Please Stand Up? // c. J. Date and Hugh Darwen. Relational Database Writings 1989-1991.— Reading, Mass.: Addison-Wesley, 1992.
- •12.20.Kent w. The Universal Relation Revisited // acm tods. — December, 1983. — 8, № 4.
- •12.22.Maier d., Ullman j.D. Fragments of Relations // Proc. 1983 sigmod Intern. Conf. On Management of Data. — San Jose, Calif. — May, 1983.
- •12.24.Maier d., Ullman j.D. Maximal Objects and the Semantics of Universal Relation Databases // acm tods. — March, 1983. — 8, № 1.
- •Глава 13
- •13.1. Введение
- •13.2. Общий подход
- •Каждыи экземпляр сущности ности «Произведение"
- •13.3. Модель "сущность/связь"
- •13.5. Проектирование базы данных с помощью метода er-моделирования
- •13.6. Краткий анализ er-модели
- •13.7. Резюме
12.8. Резюме
В этой главе завершается обсуждение дальнейшей нормализации (начатое в главе 11), включая рассмотрение многозначных зависимостей, являющихся обобщением понятия функциональных зависимостей, а также зависимостей соединения, являющихся обобщениями многозначных зависимостей. Ниже даны определения этих понятий с неформальной точки зрения.
■ Переменная-отношение R{A, В, С} удовлетворяет многозначной зависимости А —н В j С тогда и только тогда, когда множество значений атрибута В, соответствующее заданной паре значений атрибутов (А, С), зависит только от значения атрибута А и аналогично множество значений атрибута С, соответствующее заданной паре значений атрибутов (А, В), зависит только от значения атрибута А. Такая переменная
отношение может быть подвергнута декомпозиции без потерь на проекции {А, В} и {А, С}, причем многозначные зависимости являются необходимым и достаточным условием допустимости такой декомпозиции (теорема Фейгина). ■ Переменная-отношение R{А, В, Z} удовлетворяет зависимости соединения *(А, В, Z) тогда и только тогда, когда она эквивалентна соединению ее проекций по атрибутам А, В, ..., Z. Такая переменная-отношение, очевидно, может быть разбита на эти проекции с обеспечением декомпозиции без потерь.
Переменная-отношение находится в 4НФ в том случае, если все существующие в ней многозначные зависимости одновременно являются функциональными зависимостями, исходящими от ее суперключей. Переменная-отношение находится в 5НФ (также называемой проекционно-соединительной нормальной формой) тогда и только тогда, когда все существующие в ней зависимости соединения одновременно являются функциональными зависимостями от ее суперключей. Пятая нормальная форма (которая всегда достижима) является окончательной нормальной формой по отношению к операциям проекции и соединения.
В этой главе была кратко описана общая схема процедуры нормализации, представленная в виде некоторой неформальной последовательности этапов с необходимыми комментариями. Затем было дано краткое описание принципа ортогонального проектирования, который неформально можно сформулировать следующим образом: никакие две переменные-отношения не должны иметь проекций с перекрывающимся смысловым значением. Наконец, здесь было дано краткое описание некоторых дополнительных нормальных форм.
В заключение следует отметить, что дальнейшие исследования в данной области необходимо считать чрезвычайно перспективными. Дело в том, что теория дальнейшей нормализации, которую теперь все чаше называют теорией зависимостей, представляет собой один из весьма субъективных научных разделов теории проектирования баз данных. Это значит, что, к сожалению, она ближе к искусству, чем к строгой методике. Для выработки последней необходимо найти более твердые принципы и разработать соответствующие рекомендации. Поэтому любой успех в дальнейшем изучении в данной теоретической области представляет значительный интерес для исследователей.
Упражнения
Рассматриваемые в этой главе переменные-отношения СТХ и SPJ (примеры их данных показаны на рис. 12.2 и 12.4) удовлетворяют некоторой многозначной зависимости и некоторой зависимости соединения соответственно, которые потенциальными ключами данных переменных-отношений не предполагаются. Выразите эту многозначную зависимость и эту зависимость соединения с помощью синтаксиса, использовавшегося в главе 8.
Пусть С — это некоторое множество, а переменная-отношение R{A, В} такова, что кортеж (а, Ь) содержится в R тогда и только тогда, когда а и Ь принадлежат множеству С. Какие функциональные и многозначные зависимости, а также зависимости соединения имеют место в переменной-отношении R? В какой нормальной форме находится эта переменная-отношение?
Пусть в некоторой базе данных содержится информация о торговых агентах, регионах сбыта и самой продукции. Каждый агент отвечает за сбыт в одном или нескольких регионах, и в каждом регионе имеется один или несколько торговых агентов. Аналогично каждый агент отвечает за сбыт одного или более видов продукции, а каждый вид продукции распространяется одним или несколькими торговыми агентами. Каждый вид продукции продается в каждом регионе, однако два торговых агента не могут продавать один и тот же продукт в одном и том же регионе. Каждый торговый агент продает один и тот же набор продукции в каждом регионе, за который он отвечает. Спроектируйте набор переменных-отношений, отвечающий указанным требованиям к данным.
В ответе к упр. 11.3 в главе 11 был приведен алгоритм декомпозиции без потерь для переменной-отношения Е с ее разбиением на множество переменных-отношений в НФБК. Измените этот алгоритм таким образом, чтобы выполнялось аналогичное преобразование, но уже в 4НФ.
(Модифицированная версия упр. 12.3.) Пусть в некоторой базе данных содержится информация о торговых агентах, регионах сбыта и самой продукции. Каждый торговый агент отвечает за сбыт продукции в одном или нескольких регионах, и в каждом регионе имеется один или более торговых агентов. Аналогично каждый торговый агент отвечает за сбыт одного или более видов продукции, а каждый вид продукции распространяется одним или несколькими торговыми агентами. Наконец, каждый вид продукции продается в одном или нескольких регионах и в каждом регионе продается один или несколько видов продукции. Более того, если торговый агент R отвечает за сбыт в регионе А, продукт Р продается в регионе А и торговый агент R отвечает за сбыт продукта Р, то агент R продает продукт Р в регионе А. Спроектируйте набор переменных-отношений, отвечающий указанным требованиям к данным.
Список литературы
12.1. Aho A.V., Beeri С, Ullman J. D. The Theory of Joins in Relational Databases // ACM TODS. — 1979. —4, № 3. (Впервые опубликована в Proc. 19th IEEE Symposium on Foundations of Computer Science. — October, 1977.)
Первая попытка рассмотреть переменную-отношение, которая не эквивалентна соединению любых двух своих проекций, но эквивалентна соединению трех или более проекций. Основное назначение статьи — представить алгоритм, который теперь называется алгоритмом преследования (chase), предназначенный для определения, является ли данная зависимость соединения логическим следствием данного набора функциональных зависимостей (пример проблемы включения приведен в [12.17]). Эта проблема эквивалентна определению, будет ли данная декомпозиция выполняться без потерь для заданного набора функциональных зависимостей. В статье также обсуждается вопрос о расширении алгоритма для случая, когда заданные зависимости являются не функциональными, а многозначными.
12.2. Beeri С, Fagin R., Howard J.H. A Complete Axiomatization for Functional and Multivalued Dependencies // Proc. 1977 ACM SIGMOD Intern. Conf. on Management of Data. — Toronto, Canada, August, 1977.
В этой работе результаты работы Армстронга (Armstrong) [10,1] обобщаются и распространяются на многозначные и функциональные зависимости. В частности, дается строгий и полный набор правил вывода для многозначных зависимостей.
Дополнение. Если множества атрибутов А, В, С совместно содержат все атрибуты переменной-отношения и А является супермножеством пересечения В п С, то А -*» В тогда и только тогда, когда А -*» С.
Рефлексивность. Если В является подмножеством А, то А В.
Прирашение. Если А -»-» В и С является подмножеством D, то AD -»-» ВС.
Транзитивность. Если А В и В —»-> С, то А С-В.
Далее следуют дополнительные полезные правила, которые выводятся из приведенных выше правил.
Псевдотранзитивность. Если А —>-> В и ВС D, то АС -»-> D-BC.
Объединение. Если А ->-» В и А С, то А -н ВС.
Декомпозиция. Если А -+> ВС, то А —>-> В п С, А В-СиА --*-» С-В.
В статье также представлены еще два правила, по которым можно вывести другие функциональные зависимости на основе определенных комбинаций функциональных и многозначных зависимостей.
Репликация. Если А —» В, то А -» В.
Слияние. Если А —»•» В, С —> D, D является подмножеством В, а пересечение В п С пусто, то А —» D.
Правила Армстронга (см. главу 10) вместе с правилами 1-4, 8 и 9 образуют строгий и полный набор правил для функциональных и многозначных зависимостей.
В статье также выведено еще одно полезное правило, связывающее функциональные и многозначные зависимости.
10. Если А -»■» В и АВ —» С, то А —> С-В.