- •Введение
- •1. Информационная система (ис):
- •2.Типы и структуры данных
- •2.1.Основные типы данных
- •2.1.Методы доступа к данным
- •2.1.1.Методы поиска по дереву
- •2.2.2.Хеширование
- •3. Представление данных с помощью модели "сущность-связь".
- •3.1.Элементы модели
- •3.2.Диаграмма "сущность-связь".
- •4. Даталогические модели
- •4.1.Иерархическая модель данных
- •4.1.1.Структура данных
- •4.1.2.Операции над данными, определенные в иерархической модели:
- •4.1.3. Ограничения целостности
- •4.2. Сетевая модель данных
- •4.2.1. Структура данных
- •4.2.2.Операции над данными
- •4.3. Реляционная модель данных
- •1. Основные понятия
- •4.3.1. Структура данных
- •4.3.2. Фундаментальные свойства отношений
- •4.3.2.1. Отсутствие кортежей-дубликатов
- •4.3.2.2. Отсутствие упорядоченности кортежей
- •4.3.2.3. Отсутствие упорядоченности атрибутов
- •4.3.2.4. Атомарность значений атрибутов
- •4.3.3.Свойства отношений.
- •4.3.4. Реляционная модель и модель сущность - связь
- •4.3.4.1. Преобразование er-модели в реляционную модель
- •5. Языки запросов к реляционным базам данных
- •5.1. Реляционная алгебра
- •Общая интерпретация реляционных операций
- •Замкнутость реляционной алгебры и операция переименования
- •Правила записи выражений реляционной алгебры
- •5.2. Реляционное исчисление кортежей
- •5.3. Реляционное исчисление доменов
- •5.3. Ограничения реляционных баз данных
- •5.4. Постреляционные субд
- •6. Проектирование информационных систем и баз данных
- •Информационное моделирование процессов предметной области и применение потоковых диаграмм
- •7. Проектирование реляционных баз данных с использованием нормализации
- •7.1. Основные свойства нормальных форм
- •7.2. Функциональная зависимость
- •2. Ни для какого зависимость
- •7.2.1. Аксиомы функциональных зависимостей
- •7.2.2. Вычисление замыканий
- •7.2.3. Полная функциональная зависимость
- •7.2.4. Транзитивная функциональная зависимость
- •7.2.5.2. Вторая нормальная форма
- •7.2.5.3. Третья нормальная форма
- •7.2.5.4. Нормальная форма Бойса-Кодда
- •7.2.5.5. Четвертая нормальная форма
- •7.2.5.6. Пятая нормальная форма
- •7.2.6. Функциональные зависимости и проектирование базы данных.
- •Дополнительная литература
2. Ни для какого зависимость
7.2.1. Аксиомы функциональных зависимостей
Очень часто для зависимости необходимо уметь определять. Для этого необходимо иметь правила вывода, которые указывают, как из одних зависимостей выводить другие. Множество таких правил называются аксиомами Амстронга. Предположим, что задана некоторая схема отношения с универсальным множеством атрибутови множество функциональных отношений, связывающих только атрибуты, принадлежащие. Тогда верны следующие аксиомы:
А1. (рефлексивность) Если , тологически следует из. ()
А2. (пополнение) Если и, то(Здесь и далеепонимается как объединениеи).
А3. (транзитивность) из иследует
Из аксиом Амстронга следуют другие правила:
Р4. (правило объединения) Если и, то
Доказательство.
1.Из .
2..
3. Из 1) и 2) следует
Р5. (правило псевдотранзитивности) Если и, то
Доказательство.
Из следует.
Далее транзитивность.
Р6. (правило декомпозиции) Если и, то
Доказательство. Вытекает из аксиом А1 и А3.
Введем понятие замыкания множества атрибутов относительно множества функциональных зависимостей. Пусть множество функциональных зависимостей на множестве атрибутови пусть. Тогда=может быть выведена изпо аксиомам Амстронга}
Лемма следует из аксиом Амстронга тогда и только тогда, когда.
7.2.2. Вычисление замыканий
Вычисление является вообще-то очень трудоемкой задачей. В самом деле, если,, тодля любого. Рассмотрим алгоритм вычисления.
1.
2.
Очевидно,
Пример: Пусть
и . Для вычислениянеобходимо найти все зависимости, которые имеют в левой части В, D или BD. Такая единственна. Поэтому. Для построениявыделяем правила. Тогда. Для вычислениянеобходимо рассмотреть,. Получаем, что
Пусть имножества зависимостей.иназываются эквивалентными, если. Говорят, чтопокрывает, если. Следующий результат устанавливает важное свойство, связанное с эквивалентностью.
Лемма. Каждое множество функциональных зависимостей покрывается некоторым множеством зависимостей, в которых ни одна из правых частей не имеет более одного атрибута.
Доказательство. Пусть множество зависимостейтаких, что для некоторой зависимостиизпринадлежит. Тогдаследует изпо правилу декомпозиции. Поэтому. Но, поскольку если, тоследует из,по правилам объединения.
7.2.3. Полная функциональная зависимость
Различают частичную и полную функциональные зависимости. Под частичной функциональной зависимостью понимают зависимость не ключевого параметра от части составного ключа. Под полной зависимостью понимают зависимость не ключевого параметра от всего составного ключа:
Функциональная зависимость R.X R.Y называется полной, если атрибут Y не зависит функционально от любого собственного подмножества X. (НАЗВ_ПОСТ., ТОВАР)ЦЕНА
7.2.4. Транзитивная функциональная зависимость
Избыточная функциональная зависимость - зависимость, заключающая в себе такую информацию, которая может быть получена на основе других зависимостей, имеющихся в базе данных. Функциональная зависимость R.X R.Y называется транзитивной, если существует такой атрибут Z, что имеются функциональные зависимости R.XR.Z и R.ZR.Y и отсутствует функциональная зависимость R.ZR.X.
Неключевой атрибут
Неключевым атрибутом называется любой атрибут отношения, не входящий в состав первичного ключа (в частности, первичного).
Взаимно независимые атрибуты
Два или более атрибута взаимно независимы, если ни один из этих атрибутов не является функционально зависимым от других.
Для обсуждения первой нормальной формы необходимо дать два определения:
Простой атрибут - атрибут, значения которого атомарны (неделимы).
Сложный атрибут - получается соединением нескольких атомарных атрибутов, которые могут быть определены на одном или разных доменах. (его также называют вектор или агрегат данных).
отношение находится в 1NF если значения всех его атрибутов атомарны.
В базе данных отдела кадров предприятия необходимо хранить сведения о служащих, которые можно попытаться представить в отношении
СЛУЖАЩИЙ(НОМЕР_СЛУЖАЩЕГО, ИМЯ, ДАТА_РОЖДЕНИЯ, ИСТОРИЯ_РАБОТЫ, ДЕТИ).
Из внимательного рассмотрения этого отношения следует, что атрибуты "история_работы" и "дети" являются сложными, более того, атрибут "история_работы" включает еще один сложный атрибут "история_зарплаты". Данные агрегаты выглядят следующим образом:
ИСТОРИЯ_РАБОТЫ (ДАТА_ПРИЕМА, НАЗВАНИЕ, ИСТОРИЯ_ЗАРПЛАТЫ),
ИСТОРИЯ_ЗАРПЛАТЫ (ДАТА_НАЗНАЧЕНИЯ, ЗАРПЛАТА),
ДЕТИ (ИМЯ_РЕБЕНКА, ГОД_РОЖДЕНИЯ).
Связь межу ними представлена графически на рис 1.
Рис1. Исходное отношение
Для приведения исходного отношения СЛУЖАЩИЙ к первой нормальной форме необходимо декомпозировать его на четыре отношения:
Рис2. Нормализованное множество отношений(первая форма).
Алгоритм нормализации описан Е.Ф.Коддом следующим образом:
Начиная с отношения, находящегося на верху дерева (рис. 1), берется его первичный ключ, и каждое непосредственно подчиненное отношение расширяется путем вставки домена или комбинации доменов этого первичного ключа.
Первичный Ключ каждого расширенного таким образом отношения состоит из Первичного Ключа, который был у этого отношения до расширения и добавленного Первичного Ключа родительского отношения.
После этого из родительского отношения вычеркиваются все непростые домены, удаляется верхний узел дерева, и эта же процедура повторяется для каждого из оставшихся поддеревьев.