
- •Содержание
- •Основные понятия
- •Понятие данных
- •Файловые системы
- •Системы баз данных
- •История развития субд
- •Трехуровневая архитектура ansi/sparc
- •Общая характеристика моделей данных
- •Основные понятия модели данных
- •Представление статических и динамических свойств
- •Общая характеристика структурных компонентов. Множества: домены и атрибуты
- •Общая характеристика структурных компонентов. Отношения: сущности
- •Общая характеристика структурных компонентов. Отношения: связи
- •Общая характеристика ограничений целостности
- •Модель данных «сущность – связь»
- •Уровни представления информации
- •Уровень 1 – информация о сущностях и связях
- •Уровень 2. Структура информации
- •Ограничения целостности в модели сущность-связь
- •Расширенная модель данных сущность-связь: нотация idef1x
- •Реляционная модель данных
- •Базовые структурные компоненты реляционной модели данных
- •Целостная часть реляционной модели данных
- •Языковые средства описания данных
- •Манипуляционная часть реляционной модели данных
- •Подмножество sql для манипулирования данными
- •Примеры написания запросов
- •I. И еще несколько примеров написания запросов из документации [10]
- •Краткая характеристика языка sql pl db2® udb
- •Дополнительные возможности описания ограничений целостности
- •Дополнительные возможности db2
- •Описание данных
- •Манипулирование данными
- •Дополнительные возможности формирования запросов
- •Типы данных, определенные пользователем
- •Функции, определенные пользователем
- •Теория проектирования реляционных баз данных
- •Цели проектирования
- •Функциональные зависимости
- •1. Рефлексивность
- •2. Пополнение
- •3. Транзитивность
- •4. Псевдотранзитивность
- •5. Аддитивность (объединение)
- •6. Декомпозиция (проективность)
- •7. Композиция
- •Нормализация отношений
- •Внутренние структуры хранения
- •Структурная схема обработки запроса
- •Бинарные деревья
- •Многоходовые деревья
- •Сравнение методов индексирования
- •Создание индексов в db2®
- •Организация файлов базы данных в db2®
Расширенная модель данных сущность-связь: нотация idef1x
В нотации IDEF1x используются графические элементы для представления диаграммы сущность – связь, несколько отличающиеся от элементов, введенных П.Ченом; кроме того, накладываются некоторые дополнительные ограничения. Но в главном сохраняются все положения модели, предложенной П.Ченом.
Основными структурными компонентами остаются сущности и связи.
Сущность также представляется прямоугольником. Регулярное отношение сущности модели П.Чена в IDEF1x называется сущностью, независимой по идентификации, и представляется прямоугольником с прямыми углами. Слабое отношение сущности в IDEF1x называется сущностью, зависимой по идентификации, и представляется прямоугольником с закругленными углами. И в том, и в другом случае название сущности задается существительным в единственном числе и помещается над прямоугольником; кроме того, сущности присваивается дополнительно идентификационный номер в виде En (Entity), где n – порядковый номер сущности в разрабатываемой модели базы данных. Внутри прямоугольника размечаются атрибуты сущности. Область атрибутов делится по вертикали на две части; в верхней части записываются атрибуты первичного ключа, в нижней – все прочие атрибуты. Экземпляры сущности, зависимой по идентификации, идентифицируются с учетом связи. Если для сущности определены дополнительные ключи, они определяются как альтернативные и помечаются аббревиатурой AKm.n (Alternative Key), где m – номер альтернативного ключа, n – номер атрибута в составе данного ключа. Например, регулярное отношение сущности СОТРУДНИК с атрибутами Табельный номер (первичный ключ), Фамилия И.О., Серия и Номер паспорта (составной ключ), ИНН (еще один ключ), Дата рождения и Адрес в нотации IDEF1x будет представлена следующим образом (Рис. 3.12):
Рис. 3.12. Представление сущности в нотации IDEF1x
В IDEF1x, в отличие от модели П.Чена, определены только бинарные связи. Каждая бинарная связь именуется (определяется) глаголом или глагольной фразой. Именование бинарной связи осуществляется для двух отображений. Имена связей выбираются таким образом, чтобы можно было составить осмысленную фразу, включив в нее имя первой сущности, вовлеченной в связь, имя связи и имя второй сущности. Например, если между сущностями СОТРУДНИК и ОТДЕЛ определена связь, отражающая тот факт, что сотрудник зачислен в отдел, для такой связи можно сформулировать следующие два отображения:
Отдел состоит из нуля или более сотрудников;
Сотрудник зачислен в один отдел.
В данном примере связь получает имя "состоит из / зачислен в".
Допускается представление связей типа 1 : n и n : n. Связи типа 1 : n в IDEF1x называются определенными связями, типа n : n – неопределенными. Неопределенные связи могут быть использованы только на начальных этапах проектирования схемы базы данных и представляются линиями с жирными точками на двух концах связи (Рис. 3.13). В окончательном варианте все неопределенные связи должны быть заменены определенными в соответствии с правилами, установленными в IDEF1x.
Рис. 3.13. Представление в IDEF1x неопределенной связи
В определенной связи сущность, находящаяся на конце связи "один", называется родительской, на конце "много" – дочерней. Определенная связь именуется только для одного отображения – родительской сущности в дочернюю. В дочерней сущности появляются специальные атрибуты, представляющие связь – внешний ключ, помеченный аббревиатурой FKm.n (Foreign Key), где m – номер внешнего ключа (одна сущность может участвовать в нескольких связях), n – номер атрибута в составе внешнего ключа (для составных ключей). Атрибуты внешнего ключа в дочерней сущности появляются в результате миграции (передачи) по связи атрибутов первичного ключа родительской сущности.
В IDEF1x различаются следующие разновидности определенной связи.
Определенная не идентифицирующая обязательная связь представляется пунктирной линией с жирной точкой на конце дочерней сущности. Дочерняя сущность, вовлеченная в такую связь, идентифицируется только собственными атрибутами и представляет собой сущность, независимую по идентификации; поэтому атрибуты связи (внешнего ключа) размещаются в области прочих атрибутов. Каждый экземпляр дочерней сущности обязательно связан с одним экземпляром родительской сущности.
Пусть, например, определены сущности СОТРУДНИК (см. пример на рис. 3.11), ОТДЕЛ с атрибутами Номер отдела (первичный ключ) и Название (ключ), и ДОЛЖНОСТЬ с атрибутами Код должности, Квалификация (составной первичный ключ), Название должности, Оклад. Между сущностями ОТДЕЛ и СОТРУДНИК определена связь "состоит из / зачислен в", а между сущностями СОТРУДНИК и ДОЛЖНОСТЬ – связь "замещает / замещается":
Должность замещается нулем или более сотрудников;
Сотрудник замещает одну (конкретную) должность.
Сотрудник обязательно должен быть зачислен в отдел и должен замещать определенную должность. Такие связи представляются следующей диаграммой (Рис. 3.14):
Рис. 3.14. Представление определенной не идентифицирующей обязательной связи
Определенная не идентифицирующая необязательная связь представляется пунктирной линией с жирной точкой на конце дочерней сущности и прозрачным ромбиком на стороне родительской сущности. Дочерняя сущность, вовлеченная в такую связь, также идентифицируется только собственными атрибутами и представляет сущность, независимую по идентификации. Но в данном случае могут существовать экземпляры дочерней сущности, не связанные ни с одним экземпляром родительской сущности.
Рассмотрим пример. Пусть определены сущности КЛАСС с атрибутами Год обучения, Группа (составной первичный ключ), Дата формирования, Категория, и УЧИТЕЛЬ с атрибутами Личный номер (первичный ключ), Фамилия И.О., Ставка. Между этими сущностями определена связь "назначен классным руководителем / имеет классного руководителя":
Учитель назначен классным руководителем в нуль или более классов;
Класс имеет одного классного руководителя или не имеет классного руководителя.
Такая связь может быть представлена диаграммой, приведенной ниже (Рис. 3.15).
Рис. 3.15. Представление определенной не идентифицирующей необязательной связи
Определенная идентифицирующая обязательная связь представляется сплошной линией с жирной точкой на конце дочерней сущности. Дочерняя сущность, вовлеченная в такую связь, идентифицируется с учетом связи и представляет собой сущность, зависимую по идентификации. Атрибуты внешнего ключа в дочерней сущности, зависимой по идентификации, размещаются в области первичного ключа.
Пусть, например, определена сущность СОТРУДНИК в соответствии с примером, приведенным на рис. 3.11, и сущность ЧЛЕН БРИГАДЫ с атрибутами Табельный номер сотрудника, Номер бригады, Дата зачисления в бригаду, Дата отчисления из бригады. Между этими сущностями определена связь "является / является":
Сотрудник является членом нуля или более бригад;
Член бригады является сотрудником.
Для идентификации экземпляра сущности ЧЛЕН БРИГАДЫ необходимо учитывать связь между этими сущностями (Рис. 3.16).
Рис. 3.16. Представление определенной идентифицирующей обязательной связи
Кроме определенной и неопределенной связей, в IDEF1x существует еще один тип связи – категория. Этот тип связи устанавливает тот факт, что одно множество сущностей является подмножеством другого. Рассмотрим, например, представление сотрудников некоторого учебного подразделения (кафедры). Сотрудники кафедры могут быть штатными сотрудниками или совместителями. Тогда множества сущностей ШТАТНЫЙ СОТРУДНИК и СОВМЕСТИТЕЛЬ являются подмножествами множества сущностей СОТРУДНИК и, следовательно, вступают в связь типа категория. Сущность, вовлеченная в такую связь и определяющая полное множество, называется родовой сущностью (в данном примере сущность СОТРУДНИК – родовая сущность). Сущности, определяющие подмножества, называются сущностями типа категория. Сущности типа категория идентифицируются точно так же, как и родовая сущность, и поэтому являются зависимыми по идентификации. В родовую сущность должен быть включен атрибут, позволяющий определить, к какой сущности типа категория относится каждый экземпляр родовой сущности (дискриминатор категории; например, в приведенном выше примере в родовой сущности СОТРУДНИК будет определен атрибут – дискриминатор категории Тип сотрудника).
Если каждый экземпляр родовой сущности обязательно входит в какую-то (одну) сущность типа категория, такая связь называется полной категорией. Если же могут существовать экземпляры родовой сущности, не включенные ни в одну из сущностей типа категория, тогда говорят о неполной категории.
Одна и та же сущность может быть определена как родовая в нескольких связях типа категория. Например, кроме приведенной выше классификации сотрудников кафедры можно использовать еще и следующую: сотрудник является преподавателем или относится к учебно-вспомогательному персоналу. Такая категория является неполной, так как на кафедре существуют еще администрация и научные сотрудники, которые не выделены в отдельную категорию. Для второй классификации используется собственный атрибут – дискриминатор категории, например, Статус сотрудника (Рис. 3.17).
Рис. 3.17. Представление связи типа категория: а) полная категория, б) неполная категория
Диаграмма сущность-связь, соответствующая модели П. Чена (Рис. 3.10), в нотации IDEF1x будет иметь следующий вид (Рис. 3.18). Следует отметить, что связи типа n : n, допустимые в модели (и на диаграмме) П. Чена, в нотации IDEF1x представляются дополнительными сущностями (часто зависимыми по идентификации) с двумя связями типа 1 : n.
Рис. 3.18. Пример диаграммы сущность – связь в нотации IDEF1x