- •Сикха Багуи и Ричард Ирп
- •Контрольные вопросы 1.1
- •Модели данных
- •Иерархическая Модель
- •Сетевая модель
- •Реляционная модель
- •Контрольные вопросы 1.2
- •Функциональные зависимости
- •Правило декомпозиции (разложения)
- •Правило объединения
- •Контрольные вопросы 1.3
- •Краткий обзор метода нормальных форм
- •Примеры 1нф, 2нф и 3нф
- •Упражнение 1.3
- •Глава 2: Базовая er-диаграмма – схема
- •Некоторые определения баз данных: Сущность, Связь, Атрибут
- •Начальная Методология
- •Еще об атрибутах
- •Простые или атомарные атрибуты
- •Многозначные атрибуты
- •Производный атрибуты
- •Описание Сущности на структурном английском языке
- •Сущность
- •Атрибуты
- •Методология er-проектирования
- •Примеры
- •Сущность
- •Атрибуты
- •Методология er проектирования
- •Итоги главы
- •Упражнения Главы
- •Упражнение 2.1
- •Упражнение 2.2
- •Проработка примера
- •Сущность
- •Глава 3: После первой диаграммы сущности
- •Проверка Сущности — замена атрибута сущностью
- •Методология er-проектирования
- •Определение вторичной сущности
- •Существует ли связь?
- •Атрибут или Связь?
- •Глава 4: Расширение связей/ Структурные
- •1(Полное участие):1:
- •Глава 5: Слабая Сущность
- •Грамматика Слабой Сущности
- •Контрольные вопросы 5.3
- •Упражнения Главы 5. Упражнение 5.1
- •Список литературы
- •Сущность
- •Атрибуты для отдела
- •Сущность
- •Атрибуты для служащего
- •Глава 6: Дальнейшее Расширение
- •Сущность
- •Атрибуты
- •Более двух Сущностей
- •С указанием всех атрибутов
- •Развитие базы данных
- •Глава 7: Троичные и er-диаграммы более высокого порядка
- •Глава 8: Обобщения и специализации.
- •Глава 9: Реляционные преобразования и
- •Глава 10: Краткий обзор модели Баркера
- •Глава 10. Упражнения.
1(Полное участие):1:
Директора, записанные в базе данных, должны управлять одним и только одним магазином,
или
Директора должны управлять по крайней мере одним магазином и могут управлять только одним магазином.
Отобразим эти связи (с некоторыми выборочными примерами):
Связи между МАГАЗИНОМ и ДИРЕКТОРОМ – двоичная связь типа 1:1, следовательно используя правило M3b_3, отношение МАГАЗИН будет расширено до следующего вида (путем добавления ключа ДИРЕКТОРА, номера соц. страхования, в МАГАЗИН в качестве внешнего ключа):


А отношение для сущности ДИРЕКТОР остается таким же, каким оно было представлено в предыдущей главе.

Следующим нашим шагом будет шаг 7:
Шаг 7. Представить «разработанную» базу данных пользователю, дополнив ее английским описанием всех сущностей, ключей, атрибутов и связей. Пересмотреть диаграмму в случае необходимости.
В итоге наша реляционная база данных была преобразована к виду (без данных):
(Примечание: первичные ключи подчеркнуты)

![]()
Мы продолжим рассмотрение данного учебного примера в конце Главы 5.
Глава 5: Слабая Сущность
Главы 2 и 3 были рассмотрены понятия сущности, атрибута и связи. В главе 4 были описаны структурные ограничения, определяющие каким именно образом связаны две сущности. В этой главе обсуждается понятие слабой сущности, используемое в Chen-модели. Слабые сущности могут сами по себе не иметь ключевых атрибутов, поскольку они зависят от сильных сущностей (которые имеют ключевые атрибуты). Слабая сущность имеет некоторые ограничения при использовании и образуют некоторые интересные диаграммы. Данная глава переопределяет шаги 3 и 4 методологии ER-дизайна, расширяя ее для учета понятия слабой сущности. Также приводится грамматика для описания слабых сущностей и правила преобразования таких диаграмм.
Сильные и Слабые Сущности
Как обсуждалось в Главе 2, возможны ситуации, когда трудно определить ключ для связи. Поэтому мы до сих пор рассматривали с сильными сущностями – то есть с теми, где ключ легко распознается. Сильная сущность почти всегда имеет уникальный идентификатор, который является набором всех ее атрибутов; уникальный идентификатор может быть атрибутом или группой атрибутов. Например, номер студента, номер автомобиля, номер водительских прав может являться уникальным идентификатором для сильных сущностей.
Слабой является сущность, которая для своего существования должна зависеть от другой сущности. Как было замечено ранее, слабая сущность может не иметь уникального идентификатора. Классическим примером сущности такого рода является сущность ПОДЧИНЕННЫЙ, связанная с сущностью СЛУЖАЩИЙ. Если бы создавалась БД о служащих и их подчиненных, то запись о подчиненном полностью зависела бы от записи о некотором служащем, в противном случае информация о подчиненных не хранилась бы в БД. Сущность СЛУЖАЩИЙ называется родительской, или идентифицирующей сущностью для слабой сущности ПОДЧИНЕННЫЙ
Каким образом слабая сущность отображается на диаграммах?
При создании базы данных у сущности появился бы многозначный атрибут имя_подчиненного, как изображено на рисунке 5.1. Пример данных для диаграммы:


Рисунок 5.1: Сущность СЛУЖАЩИЙ имеет многозначный атрибут имя_подчиненного
Предположим, что после переговоров с пользователем выяснилось, что потребуется собирать больше информации о подчиненных. Согласно нашей методологии, такое утверждение означает то, что подчиненные должны являться сущностью, поскольку они удовлетворяют критерию сущности. Следовательно, мы должны определить сущность ПОДЧИНЕННЫЙ и описать ее атрибуты. После нашей методологии, это подтверждение – что иждивенцы должны быть объектами; то есть они соответствуют критериям для "объекта", что бы мы сделали бы запись информации иждивенец. Следовательно, мы должны описать сущность ПОДЧИНЕННЫЙ. Введя сущность ПОДЧИНЕННЫЙ, расширим диаграмму, изображенную на рисунке 5.1:

Рисунок 5.2: ER-диаграмма СЛУЖАЩИЙ/ПОДЧИНЕННЫЙ в первом приближении
Рисунок 5.2 иллюстрирует ситуацию: сущность ПОДЧИНЕННЫЙ зависит от сущности СЛУЖАЩИЙ для своего существования. Она также не имеет определенного уникального идентификатора. Такая зависимость от сущности СЛУЖАЩИЙ делает сущность ПОДЧИНЕННЫЙ слабой. Поэтому характерным является то, что ни имя подчиненного, ни дата рождения, ни страховые пособия не являются сами по себе потенциальными ключами. Значение ни одного из этих атрибутов не будет уникальным. Не существует простого атрибута, выступающего в роли потенциального ключа.
В Chen-модели при разработке диаграмм слабые сущности изображаются в двойном прямоугольнике, а соответствующая связь с родительской сущностью – в двойном ромбе (см. рис. 5.3). Говорится, что слабая сущность ПОДЧИНЕННЫЙ идентифицируется сущностью СЛУЖАЩИЙ, поэтому сущность СЛУЖАЩИЙ называется родительской, или определяющей сущностью для ПОДЧИНЕННЫЙ.

Рисунок 5.3: ER-Диаграмма СЛУЖАЩИЙ-ПОДЧИНЕННЫЙ
Атрибуты для слабых сущностей определяются также, как и для сильных, с той лишь разницей, что для слабых сущностей может не существовать первичных ключей. Мы добавили несколько атрибутов, поэтому рисунок 5.3 отображает следующее (на упрощенной грамматике):
Подчиненный должен быть связан с одним служащим и служащий может иметь много подчиненных.
Сущность ПОДЧИНЕННЫЙ имеет следующие атрибуты: имя (составной атрибут), дата рождения, страховое пособие. Поскольку родителем для слабой сущности ПОДЧИНЕННЫЙ является сильная сущность СЛУЖАЩИЙ, процесс идентификации будет основываться на ключе сущности СЛУЖАЩИЙ и плюс некоторой информации о слабой сущности ПОДЧИНЕННЫЙ. Имя подходит в качестве потенциального ключа для ПОДЧИНЕННЫЙ, и оно будет называться частичным ключом.
На Рисунке 5.3, мы подчеркнули пунктиром неделимые части составного ключа имя. Имя является частичным ключом, поскольку оно идентифицирует подчиненного, но оно не является уникальным. Так как имя является составным атрибутом, то совокупность его составных частей определяет частичный ключ. Это предполагает то, что все подчиненные имеют уникальные имена.
На рисунке 5.3 мы не дали название связи, и обозначили его просто СП для сущностей СЛУЖАЩИЙ/ПОДЧИНЕННЫЙ. Подходящим названием могло бы стать «имеет»:
Служащие могут иметь много подчиненных.
или «подчиняются»
Служащие могут иметь много подчиненных, подчиняющихся им.
Также можно было использовать «связан с»
Служащие связаны со многими подчиненными..
Каждая из этих глагольных форм подразумевает избыточность (подчиняются) или вводит в заблуждение (связан с). Поэтому в данном случае лучшим вариантом будет просто оставить отношение без названия (СП)
Слабые Сущности и Структурные Ограничения
Слабые сущности всегда имеют полное или обязательное участие в связи слабой стороны с сильной стороной. В противном же случае мы будем иметь элемент в базе данных, который уникально не идентифицирован, и который не привязан к сильной сущности. В нашем примере СЛУЖАЩИЙ-ПОДЧИНЕННЫЙ это было бы похоже на запись о подчиненном, которая бы никак не была бы связана с некоторым служащим. Числовой коэффициент связи между сильной и слабой сущностью 1:M, хотя это не обязательно.
Слабые Сущности и Определяющая Родительская
Сущность
Существуют ситуации, в которых слабые сущности могут быть связаны с родительской сущностью, и в то же время существуют другие связи apart from родительской связи. К примеру, рассмотрим рисунок 5.4. На нем изображены две связи между сущностями СЛУЖАЩИЙ и АВТОМОБИЛЬ – «владеет» и «управляет». В данном случае АВТОМОБИЛЬ является слабой сущностью, поскольку при отсутствии служащих не было бы и автомобилей (то есть автомобиль должен иметь владельца-служащего, чтобы существовать в базе данных). Далее, автомобиль идентифицируется по своему владельцу; отметим, что связь «владеет» обозначена двойным ромбом и сущность АВТОМОБИЛЬ имеет полное участие в связи «владеет».

Рисунок 5.4: Слабая сущность с двумя связями.
На Рисунке 5.4 также изображена связь «управляет». Автомобиль управляется другими служащими помимо владельца. Все автомобили управляются некоторыми служащими и, следовательно, это полное участие. Однако, водитель-служащий может и не являться фактическим владельцем. Чтобы идентифицировать АВТОМОБИЛЬ, нам требуется связь «владеет», но могут существовать и другие водители помимо владельца.
Согласно Рисунку 5.4, один служащий может владеть несколькими автомобилями. Для ответа на вопрос, какими автомобилями владеет служащий, необходимо помимо номера служащего знать производителя, марку и цвет автомобиля. Поэтому атрибуты сущности АВТОМОБИЛЬ являются частичными ключами (подчеркнуты пунктиром на рисунке 5.4).
Контрольная точка 5.1
1. Как можно идентифицировать сильную сущность?
2. Как можно идентифицировать слабую сущность?
3. Какая линия связи (одинарная или двойная) вела бы к слабой сущности в диаграмме Chen-модели?
4. В каких типах связи в Chen-модели участвует слабая сущность?
5. Что такое частичный ключ?
Слабые Сущности связанные с другими Слабыми
Сущностями
Заключительный пункт, касающийся слабых сущностей. Факт того, что некоторая сущность является слабой, еще не запрещает ей быть родительской для другой слабой сущности. Рассмотрим рис. 5.6. На нем связь СЛУЖАЩИЙ/ПОДЧИНЕННЫЙ расширена таким образом, что подчиненные могут иметь хобби. (Неважно, для чего может возникнуть необходимость хранения такой информации, просто предположим такую ситуацию для примера).

Рис. 5.6. ER-диаграмма СЛУЖАЩИЙ-ПОДЧИНЕННЫЙ-ХОБИИ
ПОДЧИНЕННЫЙ является слабой сущностью. Сущность ХОББИ также является слабой. Хобби будут идентифицироваться по своему типу (коллекционирование марок, баскетбол и т.д.) Атрибут тип является частичным ключом сущности ХОББИ.
Сущность ПОДЧИНЕННЫЙ является родительским для сущности ХОББИ, а сущность СЛУЖАЩИЙ является родительской для слабой сущности ПОДЧИНЕННЫЙ.
Данная ситуация была рассмотрена здесь для того, чтобы показать что возможность такой связи существует. Позже, когда мы будем преобразовывать данные связи, мы рассмотрим этот случай более подробно.
Контрольные вопросы 5.4.
1. Может ли слабая сущность зависеть от другой слабой сущности?
2. Может ли слабая сущность иметь «не слабую» связь с идентифицирующей (родительской) сущностью?
3. Может ли слабая сущность зависеть от нескольких сущностей одновременно (сильных и слабых)?
Возвращение к методологии
Добавление слабой сущности в ER-диаграмму заставляет нас вновь обратиться к методологии и сделать некоторые поправки. Мы могли обнаружить слабую сущность в одном из двух случаев: первый из них – это когда как мы рассматривали сущность «зависимый» с развитием многозначного атрибута; это должно произойти на этапе 3a и 3b:
Шаг 3: Исследовать атрибуты в первичной сущности (потенциально с помощью пользователя), чтобы выявить нужно ли записывать информацию о каких-либо атрибутах.
Шаг 3a: Если необходима информация об атрибуте, сделать атрибут сущностью и затем
Шаг 3b: Определите ее связь с родительской сущностью.
Добавляем следующее:
Шаг 3с: Если новая сущность для своего существования должна полностью зависеть от другой сущности, обозначить ее как слабую (в двойном прямоугольнике) и показать связь с идентифицирующей сущностью в двойном ромбе. Участие слабой сущности в связи является полным. Подчеркнуть пунктиром частичный ключ, идентифицирующий слабую сущность.
Во втором случае слабая сущность может появиться на шаге 4, на котором выявляются новые сущности:
Шаг 4: Если можно выделить еще одну сущность, изобразить диаграмму для этой сущности и ее атрибутов. Повторить шаг 2 чтобы выяснить, потенциально ли дальнейшее выделение сущностей.
Добавляем следующее:
Шаг 4a: Если дополнительная сущность или сущности не имеют потенциальных ключей, то изобразить их как слабые сущности (как описано на шаге 3c) и указать связь с идентифицирующей сущностью. Участие слабой сущности в связи является полным, или обязательным. Подчеркнуть пунктиром частичный ключ, идентифицирующий слабую сущность.
Заметим, что слабая сущность не может существовать без идентифицирующей ее сущности. Поэтому, если «обнаружена» слабая сущность, независимая от идентифицирующей сущности, необходимо немедленно установить связь.
