- •Установочный модуль
- •Введение
- •Модуль 1
- •Реляционная алгебра
- •Отсутствующие данные
- •Пустые значения
- •Неопределенные значения
- •Интерпретации
- •Правила вычисления выражений
- •Следствия
- •Проверка условий
- •Реляционные объекты данных
- •Формальные определения
- •Домены и атрибуты
- •Схема отношения
- •Именованное значение атрибута
- •Кортеж
- •Отношение
- •Схема базы данных
- •База данных
- •Операции реляционной алгебры
- •Унарные операции
- •Бинарные операции
- •Варианты операции соединения
- •Производные операции
- •Пример построения выражения реляционной алгебры
- •Понятие базовых и виртуальных отношений
- •Понятие полноты реляционной алгебры
- •Формирование запросов на языке SQL
- •Металингвистические символы
- •Реализация операций реляционной алгебры
- •Пример использования подзапросов
- •Группирующие запросы
- •Упорядочение результатов
- •Вопросы для самоконтроля
- •Упражнения
- •Построение выражений реляционной алгебры
- •Модуль 2
- •Базовые и виртуальные отношения
- •Типы данных
- •Базовые типы данных
- •Типы данных, определяемые пользователем
- •Первичные и кандидатные ключи
- •Создание базовых отношений
- •Индексы
- •Модификация базовых отношений
- •Вставка строк
- •Обновление строк
- •Удаление строк
- •Целостность
- •Декларативная поддержка
- •Пример декларативной поддержки целостности
- •Транзакции и блокировки
- •Триггеры
- •Виртуальные отношения
- •Вопросы для самоконтроля
- •Упражнения
- •Декларативная поддержка целостности
- •Модуль 3
- •Нормальные формы
- •Функциональные зависимости (ФЗ)
- •Правила вывода Армстронга
- •Производные правила вывода
- •Независимость правил Армстронга
- •Полнота системы правил Армстронга
- •Нормальные формы
- •Первая нормальная форма (1NF)
- •Вторая нормальная форма (2NF)
- •Третья нормальная форма (3NF)
- •Нормальная форма Бойса-Кодда (Boyce, Codd; NFBC)
- •Пример построения нормализованных схем отношений
- •Вопросы для самоконтроля
- •Модуль 4
- •Проектирование схем баз данных
- •Уровни логической модели
- •Миграция ключей и виды связей
- •Классификация кластеров
- •Иерархическая рекурсия
- •Абстрактная схема
- •Обобщения
- •Пример реализации иерархической рекурсии
- •Сетевая рекурсия
- •Абстрактная схема
- •Сетевая реализация иерархической рекурсии
- •Обобщения
- •Пример реализации сетевой рекурсии
- •Ассоциация
- •Детализация связей многие-ко-многим
- •Обобщения
- •Пример реализации ассоциации
- •Обобщение
- •Абстрактная схема
- •Пример реализации обобщения
- •Композиция
- •Абстрактная схема
- •Пример реализации композиции
- •Агрегация
- •Абстрактная схема
- •Пример реализации агрегации
- •Унификация атрибутов
- •Вопросы для самоконтроля
- •Упражнения
- •Иерархическая рекурсия
- •Сетевая рекурсия
- •Ассоциация
- •Обобщение
- •Композиция
- •Агрегация
- •Дополнительные главы
- •Технологии баз данных
- •Информационные системы
- •Жизненный цикл ИС
- •СУБД и БД
- •Жизненный цикл БД и средства проектирования
- •Модели данных
- •Иерархическая модель данных
- •Сетевая модель данных
- •Реляционная модель данных
- •Постреляционная модель данных
- •Объектно-ориентированные модели данных
- •XML как модель данных
- •Многомерная модель данных (OLAP)
- •Основные функции СУБД
- •Управление данными во внешней памяти
- •Управление буферами оперативной памяти
- •Управление транзакциями
- •Журнализация и восстановление БД после сбоев
- •Поддержка языков баз данных
- •Типовая организация СУБД
- •Модели взаимодействия с БД
- •Модель с централизованной архитектурой
- •Модель с автономными персональными компьютерами
- •Архитектура «файл-сервер»
- •Архитектура «клиент-сервер»
- •Архитектура «клиент-сервер» трехзвенная
- •Распределенные базы данных
- •Технология тиражирования данных
- •Понятие «фрактал»
- •Геометрические фракталы
- •Алгебраические фракталы
- •Стохастические фракталы
- •Системы итерируемых функций
- •Вопросы для самоконтроля
- •Литература
- •Список иллюстраций
- •Список таблиц
5.10. Унификация атрибутов
Если при миграции ключей в один и тот же дочерний класс попадают совпадающие по смыслу атрибуты из разных родительских классов, то эти атрибуты необходимо слить, то есть провести так называемую унификацию атрибутов.
Например, в случае, когда сотрудник может работать в организации, числясь не более чем в одном отделе, вначале получим ключевую диаграмму до унификации атрибутов (рис. 5.41).
Рис. 5.41.: Ключевая диаграмма до унификации атрибутов
Вверхней части диаграммы установлена связь один-ко-многим (1 : 0 : : : 1) между Организациями
иих Отделами. Отделы уникально идентифицируются своими кодами в пределах организации.
Влевой части диаграммы установлена связь один-ко-многим (1 : 0 : : : 1) между Организациями
иих Сотрудниками. Сотрудники уникально идентифицируются своими табельными номерами в пределах организации.
В правой части диаграммы установлена связь не-более-один-ко-многим (0 : : : 1 : 0 : : : 1) между Отделами и Сотрудниками организации (не все сотрудники организации числятся в отделах).
Таким образом, атрибут КодОрг попадает в класс Сотрудники дважды – один раз из класса Организации с маркером PF, и один раз из класса Отделы с маркером FK. При унификации атрибут КодОрг получает статус атрибута первичного/внешнего ключа PF, поглощающего статус атрибута внешнего ключа (рис. 5.42).
Рис. 5.42.: Ключевая диаграмма после унификации атрибутов
В заключение приведем фрагмент оператора создания базового отношения Сотрудники:
create table Сотрудники КодОтд null
primary key(КодОрг, № таб)
foreign key(КодОрг) references Организации(КодОрг) foreign key(КодОрг, КодОтд)
references Отделы(КодОрг, КодОтд)
5.11. Вопросы для самоконтроля
Уровни логической модели
Что понимается под классом сущностей и экземпляром класса сущностей?
Что понимается под наименованием и кратностью роли класса в связи, наименованием связи?
Укажите типичные кратности и их изображение.
Приведите наиболее важные типы связей.
Какому уровню представления информации о структуре данных соответствуют презентационные диаграммы?
Какому уровню представления информации о структуре данных соответствуют ключевые диаграммы?
Почему ключевые диаграммы основываются именно на первичных ключах?
Какому уровню представления информации о структуре данных соответствуют полные атрибутивные диаграммы?
Миграция ключей и виды связей
Что понимается под миграцией ключей? Какие классы называются родительскими и дочерними?
Укажите нотацию для маркеров атрибутов.
Изобразите схемы миграции первичного ключа.
Какая связь называется идентифицирующей? Полностью и неполностью идентифицирующей?
Какая связь называется неидентифицирующей? Обязательной и необязательной неидентифицирующей?
Какие кратности (проектируемые или спроектированные) устанавливаются на концах связей на диаграммах различных уровней?
Что указывается в секции ограничений при изображении классов сущностей?
Какие типы связей устанавливаются в зависимости от видов связей и почему?
Какие виды связей являются необязательными на родительском конце связи?
Какие виды связей являются необязательными на дочернем конце связи?
Классификация кластеров
Как можно подойти к выделению кластеров сущностей? Укажите основания классификации. Иерархическая рекурсия
Какая рекурсивная связь называется иерархической?
Постройте абстрактную презентационную диаграмму, реализующую иерархическую рекурсию в реляционной модели.
Постройте абстрактную ключевую диаграмму, реализующую иерархическую рекурсию в реляционной модели. Приведите пример в табличной форме.
Какие соображения лежат в основе реализации иерархической рекурсии?
Может ли схема иерархической рекурсии описывать не одну иерархию, а несколько однотипных иерархий (то есть не дерево, а лес)?
Как в схеме иерархической рекурсии моделируется взвешенное дерево?
Как описать более сложную иерархию, например, с двумя предками для описания отношений отец-дитя, мать-дитя?
Сетевая рекурсия
Какая рекурсивная связь называется сетевой?
Когда класс ассоциативных сущностей называется именующим?
Постройте абстрактную презентационную диаграмму, реализующую сетевую рекурсию в реляционной модели.
Постройте абстрактную ключевую диаграмму, реализующую сетевую рекурсию в реляционной модели. Приведите пример в табличной форме.
Ориентированный или неориентированный граф описывает абстрактная ключевая диаграмма?
Какие соображения лежат в основе реализации сетевой рекурсии?
В чем заключается сетевая реализация иерархической рекурсии?
Как можно описать взвешенный граф?
Как можно описать взвешенный мультиграф? Ассоциация
Какой кластер сущностей называется ассоциацией?
Когда класс ассоциативных сущностей называется именующим?
Какая ассоциация называется n-арной?
Постройте абстрактную презентационную диаграмму, детализирующую связь многие-ко-многим (0 : : : 1 : 0 : : : 1) в реляционной модели.
Постройте абстрактную ключевую диаграмму, детализирующую связь многие-ко-многим (0 : : : 1 : 0 : : : 1) в реляционной модели.
Какой граф описывает абстрактная ключевая диаграмма, детализирующая связь многие-ко- многим (0 : : : 1 : 0 : : : 1)?
Какие соображения лежат в основе реализации связи многие-ко-многим (0 : : : 1 : 0 : : : 1)?
Поясните принцип «индивидуализации» ребер на примере графика приема пациентов. Обобщение
Какой кластер сущностей называется обобщением?
Как называется переход от обобщенной сущности к категориальным?
Что понимается под полными и неполными иерархиями категорий?
Как на презентационных диаграммах связь «обобщение-категория» изображается в нотации UML?
Постройте абстрактную презентационную диаграмму, реализующую обобщение в реляционной модели.
Постройте абстрактную ключевую диаграмму, реализующую обобщение в реляционной модели.
Полную или неполную иерархию категорий описывает абстрактная ключевая диаграмма? Композиция
Какой кластер сущностей называется композицией?
Какие виды связей устанавливаются между компонентами и композитом?
Почему полностью идентифицирующие связи используются не только при обобщении, но и при композиции?
В чем проявляются различия образования композиции с помощью установления неполностью идентифицирующих и обязательных неидентифицирующих связей?
Как на презентационных диаграммах связь «композит-компонент» изображается в нотации UML?
Постройте абстрактную презентационную диаграмму, реализующую композицию в реляционной модели.
Постройте абстрактную ключевую диаграмму, реализующую композицию в реляционной модели.
Агрегация
Какой кластер сущностей называется агрегацией?
Какой вид связи устанавливается между компонентами и агрегатом?
В каком случае компонент существует вне агрегата?
Как на презентационных диаграммах связь «агрегат-компонент» изображается в нотации UML?
Постройте абстрактную презентационную диаграмму, реализующую агрегацию в реляционной модели.
Постройте абстрактную ключевую диаграмму, реализующую агрегацию в реляционной модели. Унификация атрибутов
Что понимается под унификацией атрибутов? Приведите пример.