
- •Установочный модуль
- •Введение
- •Модуль 1
- •Реляционная алгебра
- •Отсутствующие данные
- •Пустые значения
- •Неопределенные значения
- •Интерпретации
- •Правила вычисления выражений
- •Следствия
- •Проверка условий
- •Реляционные объекты данных
- •Формальные определения
- •Домены и атрибуты
- •Схема отношения
- •Именованное значение атрибута
- •Кортеж
- •Отношение
- •Схема базы данных
- •База данных
- •Операции реляционной алгебры
- •Унарные операции
- •Бинарные операции
- •Варианты операции соединения
- •Производные операции
- •Пример построения выражения реляционной алгебры
- •Понятие базовых и виртуальных отношений
- •Понятие полноты реляционной алгебры
- •Формирование запросов на языке SQL
- •Металингвистические символы
- •Реализация операций реляционной алгебры
- •Пример использования подзапросов
- •Группирующие запросы
- •Упорядочение результатов
- •Вопросы для самоконтроля
- •Упражнения
- •Построение выражений реляционной алгебры
- •Модуль 2
- •Базовые и виртуальные отношения
- •Типы данных
- •Базовые типы данных
- •Типы данных, определяемые пользователем
- •Первичные и кандидатные ключи
- •Создание базовых отношений
- •Индексы
- •Модификация базовых отношений
- •Вставка строк
- •Обновление строк
- •Удаление строк
- •Целостность
- •Декларативная поддержка
- •Пример декларативной поддержки целостности
- •Транзакции и блокировки
- •Триггеры
- •Виртуальные отношения
- •Вопросы для самоконтроля
- •Упражнения
- •Декларативная поддержка целостности
- •Модуль 3
- •Нормальные формы
- •Функциональные зависимости (ФЗ)
- •Правила вывода Армстронга
- •Производные правила вывода
- •Независимость правил Армстронга
- •Полнота системы правил Армстронга
- •Нормальные формы
- •Первая нормальная форма (1NF)
- •Вторая нормальная форма (2NF)
- •Третья нормальная форма (3NF)
- •Нормальная форма Бойса-Кодда (Boyce, Codd; NFBC)
- •Пример построения нормализованных схем отношений
- •Вопросы для самоконтроля
- •Модуль 4
- •Проектирование схем баз данных
- •Уровни логической модели
- •Миграция ключей и виды связей
- •Классификация кластеров
- •Иерархическая рекурсия
- •Абстрактная схема
- •Обобщения
- •Пример реализации иерархической рекурсии
- •Сетевая рекурсия
- •Абстрактная схема
- •Сетевая реализация иерархической рекурсии
- •Обобщения
- •Пример реализации сетевой рекурсии
- •Ассоциация
- •Детализация связей многие-ко-многим
- •Обобщения
- •Пример реализации ассоциации
- •Обобщение
- •Абстрактная схема
- •Пример реализации обобщения
- •Композиция
- •Абстрактная схема
- •Пример реализации композиции
- •Агрегация
- •Абстрактная схема
- •Пример реализации агрегации
- •Унификация атрибутов
- •Вопросы для самоконтроля
- •Упражнения
- •Иерархическая рекурсия
- •Сетевая рекурсия
- •Ассоциация
- •Обобщение
- •Композиция
- •Агрегация
- •Дополнительные главы
- •Технологии баз данных
- •Информационные системы
- •Жизненный цикл ИС
- •СУБД и БД
- •Жизненный цикл БД и средства проектирования
- •Модели данных
- •Иерархическая модель данных
- •Сетевая модель данных
- •Реляционная модель данных
- •Постреляционная модель данных
- •Объектно-ориентированные модели данных
- •XML как модель данных
- •Многомерная модель данных (OLAP)
- •Основные функции СУБД
- •Управление данными во внешней памяти
- •Управление буферами оперативной памяти
- •Управление транзакциями
- •Журнализация и восстановление БД после сбоев
- •Поддержка языков баз данных
- •Типовая организация СУБД
- •Модели взаимодействия с БД
- •Модель с централизованной архитектурой
- •Модель с автономными персональными компьютерами
- •Архитектура «файл-сервер»
- •Архитектура «клиент-сервер»
- •Архитектура «клиент-сервер» трехзвенная
- •Распределенные базы данных
- •Технология тиражирования данных
- •Понятие «фрактал»
- •Геометрические фракталы
- •Алгебраические фракталы
- •Стохастические фракталы
- •Системы итерируемых функций
- •Вопросы для самоконтроля
- •Литература
- •Список иллюстраций
- •Список таблиц

5.7. Обобщение
5.7.1. Абстрактная схема
Обобщение реализуется как взаимосвязь одного родительского с несколькими дочерними классами, описываемая категориальными, то есть полностью идентифицирующими связями. При обобщении реализуется иерархия категорий (иерархия наследования). Родительский класс определяет класс обобщенных сущностей, характеризуемых атрибутами, общими для сущностей дочерних классов (категориальных сущностей).
Термин «обобщение» соответствует переходу от детализированных, категориальных сущностей к обобщенной сущности. Обратный переход называется детализацией.
Иерархии категорий делятся на два типа – полные и неполные. В полной иерархии категорий одному экземпляру обобщенной сущности обязательно соответствует экземпляр какой-либо категориальной сущности. Если иерархия категорий еще не выстроена полностью и в классе обобщенных сущностей могут существовать экземпляры, которые не имеют соответствующих экземпляров в классе категориальных сущностей, то такая иерархия категорий будет неполной.
На презентационных диаграммах связь «обобщение-категория» удобно изображать в нотации UML (рис. 5.25).
Рис. 5.25.: Связь «обобщение-категория» в нотации UML
Построим абстрактные диаграммы, реализующие обобщение в реляционной модели (рис. 5.26,

5.27).
Рис. 5.26.: Обобщение. Абстрактная презентационная диаграмма
Примечание. Вид при обобщении – это центральное место триады «род – вид – индивид». Стрелки, идущие от категорий к обобщению, можно и не сливать
Полную или неполную иерархию категорий описывает данная схема реализации обобщения? Неполную, так как это не противоречит кратностям, устанавливаемым на дочерних концах связей.
5.7.2. Пример реализации обобщения
Практическое задание. Построить реляционную модель, основанную на обобщенном понятии Учащийся и описывающую категориальные понятия Школьник, Студент и Аспирант. При этом
1) Построить презентационную диаграмму.

Рис. 5.27.: Обобщение. Абстрактная ключевая диаграмма
Примечание. В родительский класс обобщенных сущностей выносятся АТРИБУТЫ, общие для всех категориальных сущностей

2)Построить ключевую диаграмму. Привести маркеры атрибутов ключей и указать кратности связей. Для идентификации учащегося использовать значение суррогатного ключа. Какой вид связей используется?
3)Сформулировать и записать на псевдокоде декларативные правила поддержания ссылочной целостности. Обосновать на содержательном уровне выбор правил.
4)Привести пример в табличной форме.
Решение. Презентационная и ключевая диаграммы представлены на рис. 5.28, 5.29 соответственно.
Рис. 5.28.: Обобщение. Презентационная диаграмма (см. 5.7.2)
При обобщении связи могут быть только полностью идентифицирующими, то есть категориальными.

Рис. 5.29.: Обобщение. Ключевая диаграмма (см. 5.7.2)
Примечание. Здесь для краткости указан составной атрибут ФИО, что для ключевых диаграмм допустимо
Приведем фрагмент оператора создания базового отношения Школьники (аналогично и для отношений Студенты и Аспиранты) с определением правил поддержания ссылочной целостности:
create table Школьники primary key(КодУ)
foreign key(КодУ) references Учащиеся(КодУ) on delete cascade
Определять правило поддержания ссылочной целостности при обновлении родительского ключа КодУ нет необходимости, так как этот ключ – суррогатный и обновлению не подлежит. Вместо правила каскадного удаления могло бы быть сформулировано правило ограничения restrict, но не set null, так КодУ в дочернем отношении является первичным ключом и null-значений не допускает.
Пример в табличной форме приведен в табл. 5.4, 5.5.
Таблица 5.4.: Обобщение. Пример в табличной форме (см. 5.7.2, табл. 5.5)
|
Учащиеся |
|
|
|
||
|
КодУ |
Ф |
И |
О |
... |
|
|
|
|
|
|
|
|
|
1 |
Примеров |
Пример |
Примерович |
|
|
|
2 |
Иванов |
Иван |
Иванович |
|
|
|
3 |
Петров |
Петр |
Петрович |
|
|
|
4 |
Сидоров |
Сидор |
Сидорович |
|
|
|
|
|
|
|
|
|