- •Белорусский государственный университет модели данных и субд Учебное пособие
- •Введение
- •Раздел 5 посвящен семантическим или инфологическим моделям, используемым в современных программных системах поддержки проектирования, называемых case-системами (Computer Aided Software Engineering).
- •Раздел 10 посвящен вопросам распределенной обработки данных, здесь рассматриваются проектирование распределенных систем обработки данных, уделяется большое внимание фрагментации данных.
- •1. Основные понятия и определения теории баз данных.
- •1.1. Причины возникновения систем баз данных.
- •1.3. Системы управления базами данных.
- •2. Классификация моделей данных.
- •2.1. Моделирование данных.
- •2.2. Иерархическая модель.
- •2.3. Сетевая модель.
- •2.4. Реляционная модель.
- •2.5. Объектно-ориентированная модель.
- •2.6. Объектно-реляционная модель.
- •2.7. Многомерная модель.
- •3. Реляционная алгебра и реляционное исчисление.
- •3.1. Реляционная алгебра.
- •3.2. Реляционное исчисление.
- •4. Проектирование реляционных баз данных на основе нормализации.
- •4.1. Нормализация отношений, цели нормализации.
- •4.2. Структура функциональных зависимостей.
- •4.2.1. Функциональные зависимости и их свойства.
- •4.2.2. Ключи схем отношений.
- •4.2.3. Полные и неполные функциональные зависимости.
- •4.2.4. Покрытие множеств зависимостей.
- •4.2.5. Декомпозиция схем отношений.
- •4.2.6. Декомпозиции, сохраняющие зависимости.
- •4.3 Нормальные формы отношений.
- •4.3.1. Первая и вторая нормальные формы схем отношений.
- •4.3.2. Третья нормальная форма схем отношений.
- •4.3.4. Четвертая нормальная форма схем отношений.
- •4.3.5. Пятая нормальная форма схем отношений.
- •5. Семантическое моделирование
- •5.1. Цели и средства семантического моделирования.
- •5.2. Метод “сущность-связь”.
- •5.3. Этапы моделирования.
- •5.4. Правила формирования отношений.
- •Формирование отношений для связи 1:1.
- •Формирование отношений для связи 1:м.
- •6. Структура субд и основные функции.
- •6.1. Типовая организация современной субд.
- •6.2. Поддержка языков бд.
- •6.3. Управление данными во внешней памяти.
- •6.4. Управление буферами оперативной памяти.
- •6.5. Управление транзакциями.
- •6.6. Журнализация и восстановление после сбоев.
- •7. Управление транзакциями.
- •7.1. Свойства транзакций. Проблемы параллельного выполнения.
- •7.2. Консервативные методы управления транзакциями.
- •7.2.1. Метод блокировки.
- •7.2.2. Метод временных отметок.
- •7.3. Оптимистические методы управления транзакциями.
- •7.4. Уровень детализации блокируемых элементов данных.
- •8. Восстановление базы данных после сбоев.
- •8.1. Основные принципы и функции восстановления.
- •8.3. Создание контрольных точек.
- •8.4. Методы восстановления.
- •9. Защита баз данных.
- •9.1. Основные понятия.
- •9.2. Компьютерные средства защиты.
- •9.3. Некомпьютерные средства защиты.
- •10. Распределенные базы данных
- •10.1. Основные концепции.
- •10.2. Функции распределенных субд.
- •10.3. Разработка распределенных реляционных баз данных.
- •10.4. Распределение данных.
- •10.5. Фрагментация.
- •10. 6. Обеспечение прозрачности в рсубд.
- •11. Введение в субд oracle.
- •11.1. Характеристика субд Oracle.
- •11.2. Объекты базы данных Oracle.
- •11.4. Архитектура базы данных Oracle.
- •11.5. Архитектура экземпляра базы данных Oracle.
- •11.6. Формирование базы данных и экземпляра Oracle.
- •12. Основы языка sql.
- •12.1. Алфавит и лексемы языка sql.
- •12.2. Типы данных языка sql.
- •12.3. Операторы языка sql.
- •12.4. Операции языка sql.
- •12.5. Функции языка sql.
- •12.6. Создание, модификация и удаление таблиц.
- •12.7. Выбор информации из базы данных.
- •13. Основы языка pl/sql.
- •13.1. Алфавит и лексемы языка.
- •13.3. Типы данных и объявление переменных.
- •13.4. Операторы.
- •13.5. Курсоры.
- •13.6. Обработка исключительных ситуаций.
- •13.7. Триггеры базы данных.
- •13.8. Хранимые процедуры и функции.
- •13.9. Пакеты.
- •13.10. Объекты.
- •Литература
4. Проектирование реляционных баз данных на основе нормализации.
4.1. Нормализация отношений, цели нормализации.
Как уже отмечалось, задача проектирования реляционной базы данных заключается в выборе схемы базы из множества альтернативных вариантов, то есть, по сути, требуется определить набор схем отношений базы данных. Для удовлетворения этих требований необходимо определить, из каких отношений должна состоять база данных и какие атрибуты должны входить в эти отношения. Основной подход заключается в следующем. Предполагается существование некоторого универсального отношения, содержащего все атрибуты базы данных, затем на основе анализа связей между атрибутами делаются попытки осуществить декомпозицию универсального отношения, то есть перейти к нескольким отношениям меньшей размерности, удовлетворяющих определенным условиям, причем исходное отношение должно восстанавливаться с помощью операции естественного соединения реляционной алгебры. Прежде чем перейти к рассмотрению методики построения оптимальной схемы базы данных, рассмотрим наиболее часто встречающиеся недостатки схем отношений или аномалии отношений. Например, рассмотрим схему отношения:
Изготовители = (назв_изгот, адрес_изгот, изделие, колич_за_год, цена)
Эта схема имеет ряд недостатков, указанных ниже.
Избыточность. Адрес изготовителя повторяется для каждого изготовляемого изделия.
Потенциальная противоречивость (аномалии обновления). Вследствие избыточности возможно обновление адреса изготовителя в одном кортеже, оставляя его неизменным в другом, то есть, возможна ситуация, когда база данных содержит различные адреса для одного изготовителя.
Аномалии включения. В базу данных не может быть записан адрес изготовителя, если не известно, какие изделия и в каком количестве он изготовляет.
Аномалии удаления. Обратная проблема появляется при необходимости удаления всех изделий, изготавливаемых определенным изготовителем, вследствие чего мы теряем его адрес, что не всегда желательно.
В этом примере все перечисленные недостатки исчезают, если заменить исходное отношение двумя отношениями:
Изг_адр = (назв_изгот, адрес_изгот)
Изг__изд = (назв_изгот, изделие, колич_за_год, цена)
Однако приведенная декомпозиция имеет существенный недостаток, чтобы получить адреса изготовителей требуется выполнить операцию естественного соединения, которая работает сравнительно медленно, тем не менее, приведенная декомпозиция явно предпочтительнее исходной схемы отношения.
Теория реляционных баз данных обладает мощным инструментом, который способен помочь разработчику оптимальным образом спроектировать структуру отношений базы данных. Этот инструмент – метод нормализации отношений. Нормализация отношений – пошаговый процесс разложения (декомпозиции) исходных отношений базы данных на более простые. Каждая ступень этого процесса приводит схему отношений базы данных в последовательные нормальные формы. Каждая следующая нормальная форма обладает «лучшими» свойствами, чем предыдущая. Каждой нормальной форме соответствует некоторый набор ограничений. Отношение находится в определенной нормальной форме, если оно удовлетворяет набору ограничений этой формы.
Процесс нормализации основан на понятии функциональной зависимости атрибутов.
