Основы проектирования реляционных баз данных База данных: общее понятие База данных: • хранилище информации • отражает объект реального мира • имитирует деятельность объекта реального мира Реляционная модель • Структура: данные хранятся в виде совокупности двумерных таблиц (отношений) • Целостность: Существуют ограничения структуры для обеспечения непротиворечивости и целостности базы данных • Манипулирование: Существует набор операторов для воздействия на отношения (обновление содержимого отношений, создание новых отношений) Разработка структуры базы данных • Сбор информации • Проектирование 1. Метод декомпозиции - определение таблиц и ограничений на основе функциональных зависимостей 2. Метод ER-моделирования определение таблиц и ограничений на основе выделения сущностей, атрибутов и связей. Разработка структуры базы данных База данных: сбор информации База данных учебных заведений: •Школы: №1 • Преподаватели: Иванов, Кузнецов (школа №1) • Ученики: Петров, Сидоров, Федоров, Семенов, Алексеев (школа №1) • Обучение: Петров, Сидоров, Федоров - преподаватель Иванов Петров, Семенов, Алексеев - преподаватель Кузнецов Цели проектирования базы данных • Возможность хранения всех необходимых данных • Исключение избыточности данных • Минимизация количества отношений • Нормализация отношений Метод декомпозиции: Концепции • Универсальное отношение Отношение, содержащее все атрибуты и все данные • Функциональная зависимость • A, B – атрибуты или множества атрибутов А -> В (В функционально зависит от А), если Проектирование на основе метода декомпозиции • Составление универсального отношения • Декомпозиция универсального отношения: выделение в отдельные таблицы функционально зависимых столбцов • Создание первичных ключей для функционально независимых столбцов •Добавление столбцов – внешних ключей для поддержки непротиворечивости и целостности данных Метод декомпозиции: универсальное отношение №_школы 1 1 1 1 1 1 Школы №_школы_ №_препода ФИО_препо ФИО_учени №_школы_ преподават №_ученика вателя давателя ка ученика еля 1 Иванов 1 1 Петров 1 1 Иванов 1 2 Сидоров 1 1 Иванов 1 3 Федоров 1 2 Кузнецов 1 1 Петров 1 2 Кузнецов 1 4 Семенов 1 2 Кузнецов 1 5 Алексеев 1 Преподаватели Ученики Структура базы данных Школы Преподаватели № Фамилия № школы 1 Иванов 1 2 Кузнецов 1 № 1 № 1 2 3 4 5 Ученики Фамилия Петров Сидоров Федоров Семенов Алексеев № школы 1 1 1 1 1 Связи базы данных Школы № Ученики № школы № Фамилия № школы № преподавателя № № № школы Преподаватели № Фамилия № школы № ученика № № ученика № № преподавателя Метод ER-моделирования: Концепции • Сущность - существенный объект или факт, дискретная категория или совокупность взаимосвязанных данных, информацию о которых необходимо хранить • Атрибут - характеристика, которая описывает или классифицирует сущность Свойства: опциональность • Связь - двунаправленная ассоциация между двумя сущностями Свойства: опциональность, мощность Проектирование на основе метода ER-моделирования • Преобразование сущностей в таблицы • Преобразование атрибутов в столбцы •Выделение уникальных идентификаторов сущностей и преобразование их в первичные ключи • Преобразование связей во внешние ключи Проектирование баз данных: основные понятия (Entity-Relationship) Проектирование баз данных: основные понятия Проектирование баз данных: основные понятия Проектирование баз данных: основные понятия Проектирование баз данных: основные понятия Проектирование баз данных: основные понятия Нормализация Это процесс приведения структуры данных к реляционной форме с целью упрощения запросов, ввода, редактирования, удаления данных. Проектирование баз данных: основные понятия Нормализация Процесс приведения базы данных к нормальной форме Сводит к минимуму избыточность данных Уменьшает проблемы обеспечения целостности Выявляет пропущенные сущности, связи и таблицы Теория нормализации реляционных баз данных была разработана в конце 70-х годов 20 века. Согласно ей, выделяются шесть нормальных форм, пять из которых так и называются: первая, вторая, третья, четвертая, пятая нормальная форма, а также нормальная форма Бойса-Кодда, лежащая между третьей и четвертой. База данных считается нормализованной, если ее таблицы (по крайней мере, большинство таблиц) представлены как минимум в третьей нормальной форме. Часто многие таблицы нормализуются до четвертой нормальной формы, иногда, наоборот, производится денормализация. Использования таблиц в пятой нормальной форме (вернее сказать, сознательного приведения их к пятой нормальной форме) в реальных базах данных я лично не встречал. Главная цель нормализации базы данных - устранение избыточности и дублирования информации. В идеале при нормализации надо добиться, чтобы любое значение хранилось в базе в одном экземпляре, причем значение это не должно быть получено расчетным путем из других данных, хранящихся в базе. Проектирование баз данных: основные понятия Первая нормальная форма (1NF) Значения атрибутов атомарны, нет повторяющихся групп атрибутов (групп данных) Вторая нормальная форма (2NF) Таблица удовлетворяет 1NF; все атрибуты зависят от всего уникального идентификатора (UID) своей сущности Третья нормальная форма (3NF) Таблица удовлетворяет 2NF; атрибуты, не входящие в UID, не могут зависеть от других атрибутов, не входящих в Проектирование баз данных: основные понятия Нарушение нормальных форм Группы данных в столбцах «Employee_n» повторяются нарушение 1NF Проектирование баз данных: основные понятия Нарушение нормальных форм UID = {Column 1, Column 2} – нарушение 2NF UID = {Column 2} – нарушение 3NF Проектирование баз данных: основные понятия Проектирование баз данных: основные понятия Проектирование баз данных: основные понятия Проектирование баз данных: основные понятия Этапы проектирования баз данных Этапы проектирования баз данных Этапы проектирования баз данных Этапы проектирования баз данных Этапы проектирования баз данных Этапы проектирования баз данных Этапы проектирования баз данных Преобразование связи «многие-ко-многим»: • Создание отношения пересечения • Включение в отношение пересечения уникальных идентификаторов отношений • Создание составного первичного ключа в отношении пересечения с включением в него уникальных идентификаторов отношений Этапы проектирования баз данных Преподаватели № Фамилия № школы № ученика № № ученика № преподавателя № Ученики № Фамилия № школы № преподавателя Этапы проектирования баз данных Преподаватели № Фамилия № школы Ученики № Фамилия № школы № № преподавателя № Обучение № преподавателя № ученика № ученика Проект базы данных: пример PK Школы № Ученики № школы № Фамилия № школы № № № № школы Преподаватели № Фамилия № школы № ученика № № преподавателя Обучение № преподавателя № ученика Заключение • Общие понятия проектирования баз данных • Метод декомпозиции • Метод ER-моделирования • Этапы проектирования баз данных