- •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.7. Другие нормальные формы
Прежде чем завершить обсуждение вопросов нормализации, следует напомнить сделанное в главе 11 замечание о том, что, помимо уже описанных, существуют и другие нормальные формы. Дело в том, что теория нормализации и связанные с ней вопросы (в настоящее время эту область обычно называют теорией зависимостей) развились в значительную самостоятельную область знаний с обширной литературой. Исследования в данной области продолжаются и в настоящее время, причем довольно успешно. Однако сколько-нибудь углубленный обзор этих исследований выходит за рамки данной главы. Заинтересованный читатель найдет достаточно полный обзор полученных в этой области результатов в [12.17] (по состоянию на середину 1980-х годов). Ниже мы лишь кратко упомянем о некоторых из них.
1. Доменно-ключевая нормальная форма (ДКНФ). Эта форма была предложена Фейгином [12.15]. В отличие от рассмотренных выше нормальных форм, она не определяется в терминах функциональных зависимостей, многозначных зависимостей или зависимостей соединения. Вместо этого утверждается, что переменная-отношение R находится в ДКНФ тогда и только тогда, когда каждое наложенное на нее ограничение является логическим следствием ограничений доменов и ограничений ключей, наложенных на данную переменную-отношение R.
Ограничение домена в том смысле, в котором оно здесь употребляется, — это ограничение, предписывающее использование для определенного атрибута значений только из некоторого заданного домена. (В главе 8 это ограничение упоминается как ограничение атрибута, а не как ограничение домена.)
Ограничение ключа — это ограничение, утверждающее, что некоторый атрибут или комбинация атрибутов представляет собой потенциальный ключ.
Концептуально реализация ограничений, которые установлены для переменной-отношения, находящейся в ДКНФ, осуществляется очень просто, поскольку для этого достаточно реализовать поддержку ограничений домена и ключа, а все остальные ограничения будут приведены в действие автоматически. Обратите внимание, что под выражением "все остальные ограничения" подразумевается нечто большее, чем просто функциональные и многозначные зависимости или зависимости соединения. Фактически это выражение обозначает весь предикат данной переменной-отношения.
Фейгин в [12.15] показал, что любая переменная-отношение, находящаяся в ДКНФ, находится в 5НФ (а значит, в 4НФ и т.д.), а также в форме типа (3,3)НФ (подробнее! о ней рассказывается ниже). Однако не всегда можно привести переменную-! отношение к ДКНФ или получить ответ на вопрос "Когда такое приведение может быть выполнено?".
2. Нормальная форма типа "выборка — объединение". Вновь обратимся к переменной-отношению S с данными о поставщиках. Согласно описанной выше теории нормализации эта переменная-отношение находится в 5НФ и, следовательно, не характеризуется аномалиями и не нуждается в дальнейшем разбиении на проекции для устранения аномалий. Но зачем хранить сведения обо всех поставщиках в одной переменной-отношении? Может, было бы лучше разместить данные о поставщиках из Лондона в одном отношении (например, в отношении LS), из Парижа — в другом (например, в PS) и т.д.? Иначе говоря, может быть, стоило бы рассмотреть возможность декомпозиции на основе некоторого ограничения, а не на основе проекции? Лучше или хуже будет структура данных, полученная в результате такой декомпозиции? (Фактически она всегда получается хуже (см. упр. 7.8 в главе 7), однако классическая теория нормализации не может дать ответа на поставленные выше вопросы.)
Другим направлением в исследованиях нормализации является применение декомпозиции на основе операций, отличных от проекции. В рассматриваемом выше примере, как уже упоминалось, операцией декомпозиции является непересекающееся ограничение, а соответствующей операцией композиции — непересекающееся объединение. Таким образом, вполне возможно создать "ограничительно-объединительную" теорию нормализации, аналогичную, но ортогональную (независимую), относительно обсуждавшейся выше проекционно-соединительной теории нормализации7. Автору настоящей книги ничего не известно о достаточно развитых теориях подобного типа, однако некоторые исходные идеи можно найти в статье Смита [12.26], где дано определение новой нормальной формы под названием (3,3)НФ. Подразумевается, что переменная-отношение в (3,3)НФ уже находится в НФБК, однако необязательно находится в 4НФ, так же как переменная-отношение в 4НФ не обязательно находится в (3,3)НФ. Таким образом, как и предполагалось выше, приведение к форме типа (3,3)НФ является независимым по отношению к приведению к 4НФ (и 5НФ). Более подробно об этом можно прочесть в [12.14], [12.22].