
- •Конспект лекций
- •Раздел «бд. Субд. Основные понятия» 8
- •2. Жизненный цикл баз данных
- •3 Эксплуатационные характеристики базы данных
- •Раздел «бд. Субд. Основные понятия»
- •4. Управление параллельным доступом.
- •Раздел «бд. Субд. Основные понятия» Лекция №3 Место баз данных в архитектуре ис
- •1 Локальные ис
- •2 Ис в файл-серверной архитектуре
- •3 Ис в клиент-серверной архитектуре
- •4 Двухзвенные модели архитектуры
- •5 Трехзвенные модели
- •6 Монитор транзакций
- •7 Ис в Internet и intranet
- •Раздел «Концептуальный уровень проектирования бд» Лекция №4 Концептуальная модель данных. Сущности, атрибуты, ключи
- •1 Основные понятия
- •2 Задачи моделирования данных
- •3 Сущности
- •4 Атрибуты
- •5 Ключи
- •Раздел «Концептуальный уровень проектирования бд» Лекция №5 Концептуальная модель данных. Связи. Классы и подклассы. Концептуальная схема
- •1 Связи
- •2 Классы и подклассы
- •3 Источники данных для концептуального проектирования
- •4 Построение концептуальной схемы
- •5 Анализ концептуальной модели
- •Раздел «Логический уровень проектирования бд»
- •3.3 Реляционная модель
- •3.4 Объектно-реляционная модель
- •3.5 Объектно-ориентированная модель данных
- •3.6 Модель данных на основе xml
- •Раздел «Реляционная теория бд» Лекция №7 Реляционная модель данных. Основные понятия
- •1 Словарь терминов
- •2 Целостность реляционной модели
- •3 Математическое описание реляционной модели
- •Раздел «Реляционная теория бд» Лекция №8 Реляционная алгебра и реляционное исчисление
- •1 Реляционная алгебра. Теоретико-множественные операции
- •2 Реляционная алгебра. Специальные реляционные операции
- •3 Дополнительные реляционные операции
- •4 Примеры записи запросов
- •5 Реляционное исчисление
- •Раздел «Реляционная теория бд» Лекция №9 Нормализация реляционной модели. Функциональные зависимости
- •1 Что такое нормализация?
- •2 Функциональная зависимость
- •3 Теоремы о функциональных зависимостях
- •5 Алгоритм нормализации отношений. Метод декомпозиции
- •6 Другие нормальные формы
- •Раздел «Реляционная теория бд»
- •1.2 Связь частичная для одной из сущностей
- •1.3 Связь частичная для обеих сущностей
- •2 Реализация бинарной связи 1:m («один-ко-многим»)
- •2.1 Связь обязательная для m-связной сущности
- •2.2 Связь частичная для m-связной сущности
- •3 Бинарная связь n:m («многие-ко-многим»)
- •4 Связи более высокого порядка (n-арные)
- •5 Классы и подклассы
- •Раздел «Реляционная теория бд» Лекция №12 Стандарт idef1x
- •1 Стандарты моделирования данных
- •2 Основные понятия стандарта idef1x
- •3 Графический язык idef1x
- •Раздел «Физический уровень проектирования бд» Лекция №13 Физическая модель данных
- •1 Исходные данные для физического проектирования
- •2 Возможная методика перехода к физической модели на примере реляционной модели
- •2.1 Преобразование отношений в таблицы
- •2.2 Преобразование атрибутов в поля (столбцы) таблиц
- •2.3 Преобразование доменов в типы данных
- •2.4 Первичные ключи
- •2.5 Порядок расположения столбцов
- •2.6 Создание ссылочных ограничений
- •3 Факторы, влияющие на производительность бд
- •3.1 Индексы
- •3.2 Денормализация
- •Раздел «Язык sql» Лекция №14 Введение в язык sql. Команда Select
- •1 Стандарты
- •2 Возможности sql
- •3 Запросы на выборку данных
- •4 Примеры запросов
- •Раздел «Язык sql» Лекция №15 Команды определения данных
- •1 Команда create table
- •2 Команда alter table
- •3 Поддержка ограничений целостности
- •4. Редактирование записей в таблице
- •Раздел «Язык sql» Лекция №16 Дополнительные аспекты реляционной технологии
- •1 Проблемы, требующие решения
- •2 Запросы
- •3 Представления
- •4 Курсоры
- •5 Хранимые процедуры
- •6 Триггеры
- •7 Функции, определяемые пользователем
- •8 Транзакции
2 Функциональная зависимость
Нормализация реляционной модели основана на понятии функциональной зависимости.
Пусть дано отношение R.
Атрибут А функционально определяет атрибут В (А В), если каждому значению атрибута А в проекции R [A, B] соответствует единственное значение атрибута В. Например, в отношении СТУДЕНТ (№ зачётной книжки, Фамилия, Имя, Отчество, Дата рождения) можно выделить следующие функциональные зависимости: № зачётноё книжки Фамилия, № зачётной книжки Имя, № зачётной книжки Отчество, № зачётной книжки Дата рождения. В то же время, Фамилия функционально не определяет № зачётной книжки, так как одной и той же фамилии могут соответствовать несколько зачётных книжек.
Если А В и В А, то имеет место взаимно однозначная зависимость (А В), например, ИНН № зачётной книжки.
Определение функциональной зависимости можно распространить на любое число атрибутов в левой части: А1, А2, … ,Аn В, если каждому сочетанию значений атрибутов А1, А2,…, Аn соответствует единственное значение атрибута В.
Например, в отношении ЭКЗАМЕН (№ студента, код дисциплины, дата, код преподавателя, оценка) можно выявить следующие функциональные зависимости: № студента, код дисциплины оценка; № студента, код дисциплины, дата оценка; № студента, код дисциплины, дата, код преподавателя оценка; № студента, дата, код преподавателя оценка; код преподавателя, дата код дисциплины и др. Условием существования данных функциональных зависимостей являются следующие утверждения: по указанной дисциплине данному студенту может быть поставлена только одна оценка за всё время существования базы данных; на одну дату преподаватель может принимать только один экзамен; конкретную дисциплину на конкретную дату преподаёт только один преподаватель. Таким образом, функциональные зависимости отражают конкретные правила предметной области. Изменение правил влечёт за собой изменение функциональных зависимостей.
Используя понятие функциональной зависимости можно сформулировать следующее правило:
если спроектированная реляционная модель удовлетворяет критерию нормализации, то единственными функциональными зависимостями в отношениях должны быть зависимости вида К В, где К – первичный ключ отношения.
Из предыдущего утверждения можно дать такое определение ключа:
ключ – минимальное множество атрибутов, которое функционально определяет все атрибуты отношения по отдельности.
3 Теоремы о функциональных зависимостях
Теорема 1. Любое множество атрибутов функционально определяет любое своё подмножество.
А, В А; А, В В.
Теорема 2. Если А В и А С, то А В, С и обратно, если А В, С, то А В и А С.
Теорема 3. Называется теоремой о транзитивности: если А В и В С, то А С.
Теорема 4. Если А В, то А, С В, где С – любой атрибут отношения.
Теорема 5. Между атрибутами ключа не существует функциональных зависимостей.
Вернуться в содержание
Раздел «Реляционная теория БД»
Лекция №10
Нормальные формы отношений. Метод декомпозиции
1 Нормальные формы отношений
Нормальная форма отношения – это отношение с дополнительными ограничениями на хранящиеся в нем значения.
Первая нормальная форма (1НФ) – это отношение, в котором каждый его элемент имеет атомарное значение, принадлежащее соответствующему домену.
Вторая нормальная форма (2НФ) – это отношение, находящееся в первой нормальной форме и не содержащее неполных функциональных зависимостей.
Неполная функциональная зависимость имеет место, когда некоторый атрибут отношения зависит от подмножества атрибутов составного ключа.
Рассмотрим пример неполной функциональной зависимости. В примере функциональные зависимости будут изображены вертикально, что позволяет записывать их в более компактной форме. На рисунке 1 атрибут Количество зависит только от составного ключа, а атрибуты Имя поставщика и Сведения о поставщике зависят от подмножества составного ключа.
Рисунок 1 – Отношение, которое не находится во 2НФ
Недостатки такого отношения:
1) графы "Имя поставщика" и "Сведения о поставщике" не могут быть заполнены до фактической поставки конкретной партии;
2) если поставщик задержал поставку некоторой партии, то удаление кортежа приведёт к удалению сведений о поставщике;
3) если надо изменить сведения о поставщике, то их придётся менять во всех кортежах, где упоминается этот поставщик.
Для получения второй нормальной формы необходимо исходное отношение разделить на два отношения:
- отношение с составным ключом;
- отношение с ключом, являющимся подмножеством составного ключа.
Для рассматриваемого примера получим:
ПОСТАВЩИК (Номер поставщика, Имя поставщика, Сведения о поставщике);
ПАРТИЯ (Номер поставщика, Код товара, Номер партии товара, Количество).
Третья нормальная форма (3НФ) – это отношение, находящееся во второй нормальной форме и не содержащее транзитивных зависимостей.
Рассмотрим пример отношения, в котором присутствует транзитивная зависимость:
СТУДЕНТ (№студента, №группы, Код факультета).
В данном отношении №студента №группы, №группы Код факультета, №студента Код факультета.
Недостатки отношения:
1) избыточность данных (код факультета повторяется для всех студентов группы, хотя было бы достаточно указать его один раз для группы);
2) усложнение контроля целостности данных.
Для получения 3НФ необходимо разделить исходное отношение на два:
СТУДЕНТ (№студента, №группы) и ГРУППА (№группа, Код факультета).