- •Ведение в реляционные субд. Понятие реляционной субд. Сущности Первичный и внешний ключ. Правила построения схемы бд.
- •2. Общая характеристика субд Access. Создание и редактирование базы данных средствами субд Access. Свойства реляционной таблицы. Отношения между таблицами.
- •3.Построение запросов в субд Access. Структура запроса. Условие на значение.Between, In, Like Многотабличные запросы, вычисляемые поля. Групповые операции.
- •4. Запросы с параметрами. Групповые операции. Вспомогательные запросы
- •5. Параметры объединения в запросах. Функция Nz. Параметры объединения в запросах. Перекрестные запросы. Запросы действия.
- •6.Реляционная модель. Операции реляционной алгебры.
- •7. Построение модели «Сущность-связь» Сущности и атрибуты. Категории сущностей. Ключи и индексы. Связи. Улучшение модели.
- •8. Структура стандарта sql Типы данных и операции sql. Агрегирующие функции. Примеры.
- •9 . Формирование запросов средствами sql. Вложенные запросы. Группировка данных. Соединение таблиц. Объединение запросов. Примеры.
- •3. По аналогии с левым можно определить правое внешнее соединение. Перепишем предыдущий пример с использованием его возможностей:
- •10. Модификация данных. Модификация объектов бд. Последовательности. Модификация и удаление таблиц. Примеры использования.
- •Создание таблиц. Ограничения Для создания таблиц базы данных используется оператор, который в простейшем случае описывается так:
- •11. Управление транзакциями. Представления. Управление транзакциями
- •Представления
- •12. .Общая концепция субд «Oracle».
- •13. Язык pl/sql. Основные типы данных и операторы.
- •Структура программы
- •Типы данных
- •14. Курсоры, их атрибуты. Использование цикла for. Курсоры
- •Атрибуты курсора
- •Использование цикла for для работы с курсорами
- •15. Обработка исключений. Пользовательские исключения. Возбуждение исключений.
- •16. Подпрограммы. Пакеты. Хранимые подпрограммы.
- •17. Триггеры Объявление, назначение и примеры использования. Модификация триггеров.
- •18. Администрирование базы данных и управление объектами. Разграничение доступа. Привилегии, роли.
- •Разграничение доступа
- •19. Управление параллельной обработкой данных. Блокировки.
- •20. Функциональные зависимости. Нормализация отношений. Нормальные формы.
- •21. Основные этапы проектирования реляционной базы данных. Концептуальное проектирование. Логическое проектирование. Физическое проектирование.
- •22. Распределенные бд. Хранилища данных. Определение и назначение. Понятие репликации. Варианты архитектуры хд. Гиперкуб. Его назначение и реализация средствами рсубд.
20. Функциональные зависимости. Нормализация отношений. Нормальные формы.
Функциональная зависимость – это связь между двумя множествами атрибутов, выделенных в рамках модели предметной области. Обратите внимание на то, что при изучении основ функциональных зависимостей понятие отношения еще не используется!
Итак, пусть заданы множествo X = {X1, …, Xn} P и атрибут Y P. Будем говорить, что множество X функционально определяет атрибут Y, если по значениям любого возможного кортежа (x1, …, xn), где xi Xi, можно однозначно определить значение атрибута Y. Это обозначается так: X Y. Множество X будем называть детерминантом функциональной зависимости. По аналогии можно определить функциональную зависимость между множествами атрибутов.
Среди всего множества функциональных зависимостей можно найти такие, которые являются следствиями других. Следующие утверждения позволяют вывести одно функциональные зависимости из других:
-Если верны функциональные зависимости X Y1, X Y2, то верна и зависимость X Y1Y2 (знак операции объединения здесь и в дальнейшем пропущен).
-Верно и обратное утверждение: X Y1Y2 X Y1, X Y2.
-Для любого множества атрибутов Z P из зависимости X Y выводится зависимость XZ YZ.
(следствие из утверждений 2 и 3). Для любого множества атрибутов Z P из зависимости X Y выводится зависимость XZ Y.
-(транзитивность) X Y, Y Z X Z.
студент {руководитель, рецензент, тема}
На основе понятия функциональных зависимостей можно переопределить понятие ключа отношения: пусть задано отношение R(A1, …, At). Ключом этого отношения назовем такое множество атрибутов A {A1, …, At}, что A A1…At, но ни для какого подмножества A A утверждение A A1…At несправедливо.
Нормализация отношений
Понятие нормализации отношений было предложено для того, чтобы устранить те или иные аномалии. Все отношения делятся на несколько нормальных форм, причем каждая последующая нормальная форма сужает класс допустимых отношений, но зато устраняет новые выявленные аномалии.
(1НФ): отношение, находящееся в 1НФ, не имеет составных атрибутов.
Отношение находится во второй нормальной форме (2НФ), если оно находится в 1НФ и в нем нет неключевых атрибутов, функционально зависящих от части ключа.
Если отношение не находится во 2НФ, его необходимо разбить на несколько, выделяя неключевые атрибуты, зависящие от части ключа, в отдельные отношения вместе с соответствующими частями ключа исходного отношения.
Определение. Отношение находится в третьей нормальной форме (3НФ), если оно находится во 2НФ и в нем нет неключевых атрибутов, функционально зависящих от других неключевых атрибутов.
Если отношение не находится в 3НФ, его необходимо разбить на несколько, выделяя неключевые атрибуты, зависящие от других неключевых атрибутов, в отдельные отношения вместе с атрибутами, от которых они функционально зависят.
Определение. Отношение находится в нормальной форме Бойса – Кодда (третьей усиленной нормальной форме) (НФБК, 3УНФ), если каждый детерминант функциональной зависимости с атрибутами из этого отношения является возможным ключом.
Определение. Отношение находится в четвертой нормальной форме (4НФ), если в нем нет многозначных зависимостей.
Для перевода отношения в 4НФ достаточно, как и ранее, выполнить его декомпозицию на несколько отношений. В общем случае исходное отношение делится на два: R1 (A, B) и R2 (A, С).
В нашем конкретном примере имеют место многозначные зависимости К А и К М. Поэтому следует разбить исходное отношение на два: