- •1.Информационные системы
- •2.Основные понятия теории баз данных
- •2.1.Предметная область
- •2.2.Пользователи информационной системы
- •2.3.Интеграция данных Достоинства интеграции данных
- •Проблемы, связанные с интеграцией данных
- •Функции администратора бд
- •Проектирование и развитие бд
- •3.Архитектура информационной системы
- •4.Сетевые базы данных
- •4.1.Способы упорядочения подчиненных записей
- •4.2.Режим включения подчиненных записей
- •4.3.Режим исключения подчиненных записей
- •4.4.Операции над данными
- •5.Иерархические базы данных
- •5.1.Операции над данными
- •6.Реляционные базы данных
- •6.1.Цели проектирования баз данных
- •6.2.Универсальные отношения
- •6.3.Проблемы, связанные с использованием единственного отношения
- •Проблема вставки.
- •Проблема обновления.
- •Проблема удаления.
- •6.4.Функциональные зависимости
- •6.5.Нормальные формы отношений Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
- •Третья усиленная форма или нормальная форма Бойса–Кодда (нфбк)
- •6.6.Общая схема проектирования баз данных
- •6.7.Избыточные функциональные зависимости. Правила вывода
- •Правило 1. Избыточные зависимости
- •6.8.Схема проектирования баз данных методом декомпозиции
- •7.Метод проектирования бд «Сущность-связь»
- •7.1.Сущности и связи
- •Диаграмма еr–экземпляров:
- •Д иаграмма er–типа:
- •7.2.Степень связи
- •Правило 1.
- •Правило 2.
- •Правило 3.
- •Правило 4.
- •Правило 5.
- •7.3.Бинарные связи степени m:n.
- •Правило 6.
- •Пример проектирования с использованием связей степенью м:n
- •7.4.Связи более высокого порядка
- •Правило 7
- •Пример проектирования с использованием связей более высокого порядка
- •7.5.Использование ролей
- •Правило 8
- •Пример проектирования с использованием ролей
- •8.Постреляционные базы данных
- •8.1.Ограничения реляционных баз данных.
- •Недостатки реляционных баз данных
- •8.2.Системы управления базами данных следующего поколения
- •Абстрактные типы данных
- •Генерация систем баз данных, ориентированных на приложения
- •8.3.Ориентация на расширенную реляционную модель
- •Расширенная реляционная модель
- •9.Объектно-ориентированные субд.
- •9.1.Объектно-ориентированная парадигма.
- •Структура:
- •Целостность данных:
- •Средства манипулирования данными:
- •9.2.Анализ эффективности объектно-ориентированных баз данных Преимущества объектно-ориентированных баз данных:
- •Недостатки объектно-ориентированных баз данных:
- •9.3.Стандарт odmg.
- •Объектная модель
- •Язык описания объектов
- •Язык объектных запросов
- •Связывание с оо-языками
- •9.4.Объектные расширения реляционных субд. Язык sql-3.
- •10.Базы знаний
- •10.1.Понятие системы баз знаний.
- •10.2.Структура системы базы знаний Компоненты Системы баз знаний (сбз):
- •Экстенсиональная и интенсиональная части базы данных
- •10.3.Активные базы данных
- •10.4.Дедуктивные базы данных
- •10.5.Инструментальные средства построения систем баз знаний.
- •11.Язык sql
- •11.1.Стандарт языка доступа к бд
- •11.2.Классификация операторов sql
- •Ddl (data definition language) – операторы определения объектов бд.
- •Insert into (Вставка записей).
- •Update (Редактирование записей).
- •Delete (Удаление записей).
- •Оператор select.
- •Модификатор distinct (предотвращение выборки повторяющихся слов).
- •Order by (упорядочение строк в результате запроса).
- •Использование псевдонимов (alias).
- •11.4.Арифметические выражения.
- •11.5.Групповые функции.
- •Предложение having.
- •11.6.Вложенные запросы.
- •Подзапросы, возвращающие набор значений.
- •Подзапросы, возвращающие значения из нескольких столбцов.
- •Составные запросы с несколькими подзапросами.
- •Синхронизация повторяющихся подзапросов
- •Комбинация нескольких команд Select
- •11.7.Индексы
- •7. Метод проектирования бд «Сущность-связь» 41
- •8. Постреляционные базы данных 75
- •9. Объектно-ориентированные субд. 81
- •10. Базы знаний 87
- •11. Язык sql 93
Правило 6.
Если связь бинарная, ее степень m:n, то при любых классах принадлежности обеих сущностей для хранения информации необходимо три отношения. В двух отношениях хранится информация о двух сущностях (по отношению на сущность). Ключами этих отношений будут ключи соответствующих сущностей. В третьем отношении хранится информация о связи. В него включаются ключевые атрибуты обеих сущностей. Ключом этого отношения будет пара этих атрибутов.
Пример проектирования с использованием связей степенью м:n
Проектируется БД, предназначенная для хранения информации о проводниках- рыболовах и об обслуживающих ими озерах. Профсоюз не возражает, чтобы сразу несколькими проводниками обслуживалось одно озеро. Туристы, нанимающие рыбаков, интересуются видами раб, которые водятся в озерах, самыми крупными экземплярами, пойманными за сезон в регионе и лучшей наживкой для каждого вида рыб в регионе.
Представляющими интерес атрибутами являются:
Фамилия проводника - П_фам
Номер телефона - Т_ном
Оплата задень - Оплата
Название озера - Н_озера
Максимальный размер группы - Размер
Рыболовная оценка озера - Оценка
Виды рыб - Вид
Вес самого большого экземпляра каждого вида - Вес
Лучшая наживка для каждого вида - Рыб_наж
Из предметной области выделяем:
Сущности - ПРОВОДНИК, ОЗЕРО, РЫБА
Связи - ОБСЛУЖИВАЕТСЯ, ВОДИТСЯ
По ER-диаграмме составляем отношения:
для правила (4) – Проводник (Пфам, …,Нозеро)
Озеро (Нозеро,…)
для правила (6 ) – Озеро (Нозеро,…)
Рыба (вид,…)
Водится (Нозеро, вид,…)
Далее составим отношения для всей схемы в общем:
Проводник (Пфам, Тном, оплата, размер, Нозеро)
Озеро (Нозеро, оценка)
Рыба (вид, вес, наживка)
Водится (Нозеро, вид)
Проверяем возможность ключей и детерминантов:
Если анализировать данные отношения, то обнаружим, что все находятся в НФБК, следовательно аномалий не будет.
7.4.Связи более высокого порядка
Рассмотрим предыдущий пример. Предположим, что туристы, нанимающие проводника, хотят знать, какую рыбу предпочитает ловить проводник.
Связь между сущностями ПРОВОДНИК и РЫБА показали пунктиром.
Определяем отношения:
а) Проводник (Пфам,…,Нозеро)
Озеро (озеро,…)
б) Озеро (озеро,…)
Рыба (Вид,…)
Водится (озеро, вид,…)
в) Проводник (Пфам,…,вид)
Рыба (вид,…)
В данных отношениях есть повторяющиеся, вычеркиваем их (это Озеро,Рыба) и переписываем оставшиеся отношения для нашей БД:
Проводник (Пфам,…,озеро, вид)
Водится (озеро, вид,…)
Озеро (озеро,…)
Рыба (Вид,…)
Вывод : бинарных связей оказалось достаточно.
Усложним задачу. Предположим, что проводник может обслуживать несколько озер. При этом он может предпочитать ловить разную рыбу в разных озерах.
Например:
П1 обслуживает О1 и О2
П2 обслуживает О2
П1 предпочитает Р1 в О1
П1 предпочитает Р2 в О2
П2 предпочитает Р2 в О2
Составим ER- диаграмму
Изобразим ситуацию в виде диаграммы, в которой все связи бинарные:
Строим отношения:
Для а) Проводник (Пфам,…)
Озеро (озеро,…)
Обслуживает (Пфам, озеро)
Для б) Водится (озеро,…,вид)
Озеро (озеро,…)
Рыба (вид,…)
Для в) Проводник (Пфам,…)
Рыба (вид,…)
Предпочитает (Пфам, вид,…)
Вычеркиваем из полученных отношений повторяющиеся:
Проводник (Пфам,…)
Озеро (озеро)
Обслуживает (Пфам, озеро)
Водится (озеро,…,вид)
Рыба (вид,…)
Предпочитает (Пфам, вид,…) – некорректное отношение
Из полученных отношений можно заключить, что П1 обслуживает О1, в О1 водится Р2. П1 предпочитает ловить Р2. П1 предпочитает ловить в О1 Р2, что неверно. Следовательно, в данном случае только бинарными связями обойтись нельзя. Причина неудачи образования этой связи только с помощью бинарных связей заключается в следующем, что Пi проводник предпочитает ловить рыбу Рi в озере Оi т.е. здесь объединяются три сущности и такое высказывание нельзя заменить комбинациями из двух сущностей (т.е. заменить на бинарные связи).
Правильная модель должна использовать трехсторонний вид связи.
И в этой форме зарисовываем нашу предыдущую запись:
Рисуем ER–диаграмму:
