- •Основы проектирования баз данных.
- •Функциональные зависимости.
- •Аксиомы вывода.
- •Применение аксиом вывода.
- •Ориентированные ациклические графы вывода.
- •Основные определения.
- •Покрытия и эквивалентность.
- •Минимальные покрытия.
- •Кольцевые покрытия и составные зависимости.
- •Нормальные формы реляционных баз данных.
- •Первая нормальная форма бд.
- •Аномалии и вторая нормальная форма бд.
- •Избыточность данных и третья нормальная форма.
- •Многозначные зависимости и четвертая нормальная форма.
- •Нормальная форма вида «проекция-соединение».
- •Концепция модели «Сущность-связь».
- •Типы сущностей.
- •Атрибуты.
- •Типы атрибутов.
- •Типы связей.
- •Структурные ограничения.
Основы проектирования баз данных.
«Жизнь требует движений». АРИСТОТЕЛЬ, 384-322гг. до н.э.
Обычная технология проектирования схемы реляционной базы данных (РБД) строится на результатах системного анализа предметной области. Главным вопросом является выделение атрибутов универсального отношения и функциональных зависимостей между ними. Существуют многочисленные инструментальные средства поддержки проектирования схем РБД типа BPwinи т.п. Для заданных множеств атрибутов и функциональных зависимостей они обеспечивают автоматическую генерацию схемы реляционной базы данных. Для понимания этого процесса необходимо иметь представление о алгоритмах и основных понятиях, используемых для анализа полноты множества функциональных зависимостей, методов вывода новых зависимостей и т.д. Эти аспекты проектирования и рассматриваются в данном разделе.
Для небольших схем реляционных баз данных можно построить схему РБД в ручную, но если атрибутов в базе более 100, то это весьма затруднительно. Ситуацию спасает возможность разработки схемы по частям, но тогда потребуется достаточно сложная процедура «склейки частей». С другой стороны, разработчик схемы РБД должен уметь контролировать результаты автоматического синтеза. Проэтому для профессионалов высокого класса объзательно глубокое понимание теории РБД.
В мировой практике проектирования схем реляционных баз данных выработаны определенные правила, называемые нормальными формами (1-ая, 2-ая, 3-я, ...) для схем реляционных отношений и схемы реляционной базы в целом, выполнение которых желательно на наиболее высоком уровне (что но не всегда так просто достигается). Уровень нормализации схемы РБД связан с типами существующих между атрибутами функциональных зависимостей и определением схем реляционных отношений. Но потребность в высших нормальных формах возникает относительно редко. Заметим, что задача построения оптимальной схемы РБД в общем случае не может быть решена, поэтому как и другие NP-полные задачи предсталяет простор для эвристик, что требует глубокого изучения и понимания конкретной предменой области. Иначе говоря, даже при наличии хорошо разработанных автоматических методах, проектирование схем РБД остается искусством.
Функциональные зависимости.
«Достоинство стиля заключается в ясности.» АРИСТОТЕЛЬ, 384-322гг. до н.э.
Любое априорное знание о различного рода ограничениях, накладываемое на совокупности данных (представления предметных областей) может понизить избыточность данных и повысить их надежность. К данным целям мы и стремимся. Одним из способов формализации знаний о предметных областях является установление зависимостей между ними. Дадим строгое определение самой простой, так называемой F-зависимости, используя реляционные операции.
Пусть r(R) – отношение со схемой R, а X и Y - подмножества R. Отношение r(R) удовлетворяет функциональной зависимости XY, если Y(X=x(r(R))) имеет не более одного кортежа для каждого X-значения x. В F-зависимости XY принято называть X – правой частью (областью отправления), а Y- левой (областью прибытия).
Проверка условия выполнения зависимости XY для экземпляра отношения r(R) может быть построена на основе сортировки кортежей по значениям X-атрибутов. После проведения сортировки, кортежи с одинаковыми X-значениями окажутся рядом. Если одинаковые значения X-атрибутов в кортежах имеют также и одинаковые Y-значения, функциональная зависимостьXYвыполняется.
Очевидно, что определение F-зависимости допускает два экстремальных случая, а именно X и Y. В первос случае это травиальная зависимость , которой удовлетворяет любой экземпляр со схемой, содержащей подмножество атрибутов X. Для F-зависмости Y необходимо, чтобы все Y-значения кортежей совпадали. В дальнейшем эти случаи F-зависимостей рассмативаться не будут.
Заметим, что в общем случае для экземпляра отношения r(R) существует некоторое семейство F-зависимостей, которому этот экземпляр отношения удовлетворяет. Проблема в том, что в одном состоянии он может удовлетворять семейству зависимостей, а в другом состоянии – нет.
Нам требуется выделить такое семейство зависимостей, которому удовлетворяют все допустимые состояния. Это не так просто, как кажется. Чтобы его определить необходимы семантические знания обо всех экземплярах отношений со схемой R.