Подтипы сущностей. Супертип. Пример. Преимущества и недостатки применения подтипов сущностей

Подтипы сущностей. Супертип. Пример. Преимущества и недостатки применения подтипов сущностей

Перед изучением данной темы рекомендуется ознакомиться со следующей темой:


Содержание



1. Что такое подтип сущности? Для чего используются подтипы сущностей? Пример

Подтипы сущностей вводятся в ER-модель с целью уменьшения общего количества атрибутов каждой сущности.

Каждая сущность имеет набор уникальных атрибутов. Однако, атрибуты разных сущностей могут повторяться. Поэтому, нужно так разработать ER-модель, чтобы количество повторяемых атрибутов в разных сущностях было минимальным или сведено к нулю.

Повторение атрибутов несет избыточность в базе данных. Размер базы данных становится необоснованно большим, поэтому эту проблему нужно исправлять. Для решения данной проблемы используются подтипы сущностей.

Идея использования подтипа сущности состоит в том, что для всего разнообразного набора сущностей выделяется супертип, который содержит общую для всех типов сущностей информацию. Детали (тонкости) каждого типа сущности выносятся по отдельности в несколько специализированных подтипов.

Пример.

Пусть нужно разработать базу данных сотрудников учебного заведения. В учебном заведении выделяются 3 сущности, каждая из которых представляет профессиональную группу сотрудников:

  • сущность Администрация;
  • сущность Преподаватель;
  • сущность Вспомогательный персонал.

Если для каждой сущности описать собственный набор атрибутов, то можно заметить, что некоторые атрибуты в разных сущностях будут повторяться.

Нижеследующие атрибуты являются общими для всех сущностей:

  • «Фамилия»;
  • «Имя»;
  • «Отчество»;
  • «Идентификационный номер».

Также можно выделить некоторые уникальные атрибуты:

  • тип сущности «Администрация» имеет административную ставку, название занимаемой должности и т.п.;
  • тип сущности «Преподаватель» имеет количество вычитанных часов, расценку за 1 час, категорию и т.п.;
  • тип сущности «Вспомогательный персонал» имеет ставку персонала, коэффициент выходного или невыходного дня (если сотрудник работал по выходным дням) и т.п.

Чтобы решить проблему избежания повторяемости данных, в ER-модель вносятся изменения, как показано на рисунке 1, а именно:

  • вводится супертип сущности «Сотрудник». Этот супертип содержит общие атрибуты для всех типов (подтипов) сущностей;
  • вводятся подтипы сущностей «Администрация», «Преподаватель», «Вспомогательный персонал». Каждый из подтипов сущностей имеет свои уникальные атрибуты.

супертип подтипы сущностей рисунок

Рис. 1. Изображение супертипа и подтипов на диаграмме

2. Что такое супертип сущности?

Супертип сущности – это такой тип сущности, в котором реализуются (описываются) только общие атрибуты для подтипов сущностей, которые используют этот супертип.

3. Как подтипы сущностей могут быть связаны между собой? Пример

Подтипы сущностей могут пересекаться или не пересекаться.

Если подтип одной сущности может подходить для подтипа другой сущности, то это означает что подтипы сущностей пересекаются между собой. В противном случае подтипы сущностей не пересекаются.

Пример. В учебном заведении сотрудник, который занимает административную должность (подтип Администрация) может быть преподавателем. То есть, подтип сущности Администрация пересекается с подтипом сущности Преподаватель.

Однако, сотрудник из подтипа сущности Вспомогательный персонал не может быть преподавателем. Поэтому подтип сущности Вспомогательный персонал не пересекается с подтипом Преподаватель.

С учетом вышесказанного, изображение супертипа и подтипов на диаграмме имеет вид, как изображено на рисунке 2.

супертип подтипы сущностей пересечение

Рис. 2. Супертип и подтипы сущностей с учетом пересечения между подтипами сущностей

На рисунке 2 между подтипами Администрация и Преподаватель есть обозначение с символом Gs. Это значит, что подтипы могут пересекаться. Между подтипами Преподаватель и Вспомогательный персонал есть обозначение с символом G. Это значит, что подтипы сущностей не пересекаются.

4. Какие недостатки влечет использование подтипов сущностей при проектировании баз данных?

Каждый супертип и подтип сущностей реализуется соответствующей таблицей. Поля таблицы есть атрибутами данного типа сущностей.

Недостатки использования подтипов сущностей состоят в том, что в целом усложняется работа по разработке базы данных. Трудности состоят в следующем:

  • сложность в организации взаимодействия между главной и подчиненной таблицами для реляционных баз данных;
  • в таблицах подтипов нужно дополнительно вводить первичные ключи для связывания с таблицей супертипа;
  • запросы на языке SQL становится более сложными, поскольку нужно обрабатывать данные в связанных таблицах;
  • сложность в обеспечении безопасного доступа пользователя к столбцам таблицы.

5. Какие преимущества дает использование подтипов сущностей при проектировании баз данных?

Преимущества использования подтипов сущностей:

  • избежание избыточности данных, поскольку каждый подтип содержит только уникальную информацию. Это в свою очередь приводит к уменьшению размера самой базы данных;
  • упрощение установки ограничений для любого атрибута, который соответствует столбцу таблицы реализующей конкретный подтип сущности;
  • уменьшение ошибок при программировании операций над таблицей, которая соответствует конкретному подтипу сущности;
  • гибкость в модификации структуры базы данных. Не нужно модифицировать таблицу супертипа в случае добавления/изменения структуры таблицы подтипа. Это, в свою очередь, приводит к тому, что не нужно переделывать всю программу управления базой данных.

6. Какой тип отношения устанавливается между супертипом и подтипом?

Между супертипом и подтипом устанавливается отношение «один к одному» или 1:1.


Связанные темы