Откройте актуальную версию документа прямо сейчас
Если вы являетесь пользователем интернет-версии системы ГАРАНТ, вы можете открыть этот документ прямо сейчас или запросить по Горячей линии в системе.
Приложение Г
(справочное)
Подходы сущность-атрибут-связь
Основная цель данного приложения - изложить понятия, имеющиеся в большинстве подходов сущность-атрибут-связь.
Учитывая цели концептуальной схемы, можно указать следующие роли этих подходов;
а) обеспечить общую основу для понимания поведения проблемной области.
Основные понятия - сущность, атрибут и связь - кажутся простыми для понимания и обучения, хотя часто трудно сделать верный выбор на основе анализа части мира, составляющей проблемную область. Особое внимание обращается на структуру связей между сущностями;
б) определить допустимые изменения и манипулирование информацией о проблемной области.
В подходах сущность-атрибут-связь использование основных понятий создает некоторую жесткость по сравнению с другими классами подходов. Например, различие между атрибутом и связью приводит к возникновению некоторых трудностей при модификации концептуальной схемы. Поскольку в большинстве подходов сущность-атрибут-связь не сформулированы динамические ограничения, управление допустимым манипулированием довольно ограничено;
в) обеспечить основу для интерпретации внешних и внутренних синтаксических форм, которые представляют информацию о проблемной области;
г) обеспечить основу для взаимного отображения внешних и внутренних схем.
В подходах сущность-атрибут-связь роль концептуальной схемы чаще понимается как результат определенной стадии интерактивного процесса проектирования. На последующих стадиях эта концептуальная схема преобразуется вручную во внешние и внутренние модели данных.
Г.1 Фундаментальные понятия
В подходах сущность-атрибут-связь считается, что проблемная область состоит из базовых понятий сущностей, которые могут иметь атрибуты и связи между сущностями. В некоторых подходах связи также могут иметь атрибуты.
Сущность - это любой конкретный или абстрактный объект в проблемной области.
Атрибут - это наблюдаемое свойство сущности или наблюдаемое свойство ассоциации между сущностями проблемной области.
Атрибут имеет значение.
Связь - это наблюдаемая ассоциация между сущностями проблемной области.
Атрибуты и связи являются высказываниями о сущностях. Атрибуты - это одноместные или двухместные высказывания о единичной сущности или связи, часто ассоциирующие определенное значение с этой сущностью или связью. Связи - это высказывания о двух или более сущностях (N-местные высказывания).
Объекты, имеющие общие свойства, относятся к одному типу. Тип - это классификация подобных объектов. Три основных абстракции подходов сущность-атрибут-связь - тип-сущности, тип-атрибута и тип-связи.
В подходах сущность-атрибут-связь совместно с понятием типа часто используют понятия "реализация" и "совокупность". Реализация определенного типа определяется как уникальный отдельный объект, принадлежащий к этому типу. Совокупность типа - это некоторая совокупность реализации этого типа, которая время от времени может меняться. Обычно, это совокупность всех сущностей данного типа, которые встречаются в соответствующем пространстве сущностей. Тип-сущности - это классификация сущностей, каждая из которых имеет подобные атрибуты, связанные с ней. Каждая реализация типа-сущности должна быть уникальна и поэтому отличима от всех других реализаций этого типа-сущности. В подходах сущность-атрибут-связь сущности различаются посредством одного или более атрибутов, называемых идентификатором. Тип-атрибута - это классификация подобных атрибутов всех реализаций сущности, относящихся к одному типу-сущности, или всех реализаций связи соответствующего типа. Индивидуальная реализация типа-атрибута, ассоциируемая с индивидуальной реализацией типа-сущности или типа-связи, рассматривается как значение атрибута. В данном разделе используется термин "значение-атрибута". Пара <тип-атрибута, значение-атрибута> "идентифицирует" атрибут-сущности. Говорят также, что значения атрибутов, входящих в идентификатор, идентифицируют сущность.
Тип-связи в подходах сущность-атрибут-связь - это связь, определенная на одном или более типах-сущности.
Понятие связи между сущностями - основополагающее для подходов сущность-атрибут-связь. Однако не следует предполагать, что тип-сущности может участвовать только в одном типе-связи. Можно определить любое число типов-связи, в которых принимает участие тип-сущности. Не следует также предполагать, что только один тип-связи может определяться на совокупности типов-сущности. Может быть определено любое число типов-связи, включающих в себя одну и ту же совокупность типов-сущности. Там, где определяются два или более типа-связи на одной и той же совокупности типов-сущности, необходимо различать типы-связи, приписывая им одно или несколько имен.
Некоторые подходы сущность-атрибут-связь также различают типы-значений. Тип-значения - это классификация совокупности значений-атрибута, которые могут образовывать пары с определенным типом-атрибута, и, таким образом, будут атрибутами для сущностей определенного типа-сущности или для связей определенного типа-связи. Тип-значения всегда тесно связан с одним или более типами-атрибута. Другой термин для типа-значения, используемый некоторыми авторами, - домен.
В некоторых подходах сущность-атрибут-связь типы-сущности не могут пересекаться, т.е. определенная сущность может принадлежать только к одному типу-сущности. В других случаях типы-сущности могут пересекаться, т.е. определенная сущность может относиться к нескольким типам-сущности. Это замечание применимо также к типам-атрибута, типам-связи и типам-значения.
Между вариантами подходов сущность-атрибут-связь существуют различия, особенно по отношению к характеристикам связей.
В подходах сущность-атрибут-связь связи могут классифицироваться по трем критериям:
- размерность типа-связи;
- функциональность типа-связи;
- полные и частичные связи.
Размерность типа-связи - это число реализаций сущности в одной реализации типа-связи.
Тип-связи размерности n называют n-арным типом-связи.
Некоторые подходы сущность-атрибут-связь ограничиваются бинарными типами-связи. Более того, некоторые из них не допускают бинарные типы-связи на одном типе-сущности.
Функциональность типа-связи иллюстрируется по отношению к двум различным типам-сущности. Возможными видами функциональности для бинарного типа-связи, определенного на типах-сущности А и В, являются:
- один-к-одному (1-1), когда одна реализация А может быть связана только с одной реализацией В, и каждая реализация В может быть связана только с одной реализацией A;
- один-ко-многим (1-n), когда одна реализация А может иметь одну или более связей, каждую с одной реализацией В, но каждая реализация В может иметь только одну связь с одной реализацией А
- многие-ко-многим (m-n), когда одна реализация А может иметь одну или более связей, каждая с одной реализацией В, и каждая реализация В может иметь несколько связей, каждая с одной реализацией А.
Соответствующие типы функциональности можно определить также и для n-арных типов-связи.
На практике эту характеристику рассматривают вместе с характеристикой полной или частичной связи.
Полная связь, определенная на тип ах-сущностях А и В, требует, чтобы каждая реализация А и В принимали участие в какой-либо связи этого типа-связи.
Частичная связь, определенная на типах-сущности А и В, требует, чтобы некоторые, но не обязательно все, реализации А и некоторые, но не обязательно все, реализации В участвовали в какой-либо связи этого типа-связи.
Возможны четыре случая, полностью независимые от функциональности связи:
А |
В |
|
все |
все |
(полная) |
все некоторые некоторые |
(частичная) |
Комбинация функциональности и полноты/частичности устанавливает мощность связи.
Мощность связи - это число, указывающее, сколько раз реализация типа-сущность участвует в связях определенного типа-связи.
Понятие функциональной зависимости применяется только к множеству реализации-связи, но можно определить функциональную зависимость между подмножеством совокупностей типов-сущности и другим типам-сущности.
Некоторые подходы сущность-атрибут-связь, которые допускают только бинарные типы-связи, ограничиваются типами-связи "один-ко-многим", включая "один-к-одному" и "нуль или один-ко-многим". В других допускаются также бинарные типы-связи "многие-ко-многим",
В общем случае, не только сущности, но также и связи могут иметь атрибуты. Но некоторые подходы сущность-атрибут-связь (обычно те, которые допускают только бинарные связи) не позволяют связям иметь атрибуты.
Далее в обсуждении подходов сущность-атрибут-связь выбраны следующие характеристики связей:
- допускаются n-арные типы-связи;
- допускаются типы-связи "многие-ко-многим";
- допускаются атрибуты связей.
Г.2 Грамматика и семантика
Необходимы лингвистические конструкции для именования и описания сущностей, атрибутов, типов-сущности и т.д. Все подходы сущность-атрибут-связь имеют такие конструкции - явно определяемые или неявно предполагаемые.
Основными лингвистическими конструкциями являются:
- имена-типа-сущности - лексические объекты, которые ссылаются на типы-сущности;
- имена-типа-атрибута - лексические объекты, которые ссылаются на типы-атрибута;
- имена-типа-связи - лексические объекты, которые ссылаются на типы-связи.
Для подходов, различающих также типы-значения или домены, дополнительно необходимы имена-типа-значения или имена-доменов - лексические объекты, ссылающиеся на типы-значения или домены.
Для имен-типа будут использоваться прописные буквы.
В формальных языках, использующихся в подходах сущность-атрибут-связь для описания проблемной области, необходимы более сложные конструкции для описания различных типов. Для этих конструкций будет использоваться общий термин "описание". Описание - это граф. рисунок или языковая конструкция, которая описывает тип, а также перечисляет его характеристики. Некоторые авторы используют слово "тип" для понятия "описание-типа".
В подходах сущность-атрибут-связь, рассматриваемых в данном приложении, выделим следующие описания:
- описания-типа-сущности, перечисляющие типы-атрибута и другие характеристики (такие, как идентификатор) для типов-сущности;
- описания-типа-атрибута, перечисляющие характеристики типов-атрибута;
- описания-типа-связи, перечисляющие типы-сущности, на которых определен тип-связи, и дополнительные характеристики, такие, как категория типа-связи, мощность, типы-атрибута при их наличии.
В вариантах, в которых предусмотрены типы-значения или домены, они тоже должны быть описаны посредством описаний-типов-значения или описаний-доменов, перечисляющих характеристики типов-значения.
Ниже приводится синтаксис языка, используемого в этом приложении, для описания концептуальной схемы для примера проблемной области из приложения Б. Но, как уже было замечено, его не следует интерпретировать как предложение для стандартизации этого языка в подходах сущность-атрибут-связь.
концептуальная-схема |
= "CONCEPTUAL SCHEMA" |
|
имя-концептуальной-схемы |
|
описание-типа-сущности |
|
{описание-типа-сущности} |
|
описание-типа-связи |
|
{описание-типа-связи}. |
описание-типа-сущности |
= "ENTITY-TYPE" имя-типа-сущности |
|
"IDENTIFIER" идентификатор |
|
"DESCRIPTION" описание-типа-атрибута |
|
{описание-типа-атрибута}. |
описание-типа-связи |
= "RELATIONSHIP-TYPE" имя-типа-связи |
|
"DIMENSION" целое-без-знака |
|
"COLLECTION" имя-типа-сущности |
|
{имя-типа-сущности} |
|
"CARDINALITY" |
|
имя-типа-сущности minс "," maxc |
|
{имя-типа-сущности minс "," maxc} |
|
{"FUNCTIONAL DEPENDENCY" |
|
имя-типа-сущности {имя-типа-сущности} |
|
"ON имя-типа-сущности} |
|
["IDENTIFIER" идентификатор] |
|
["DESCRIPTION" |
|
описание-типа-атрибута |
|
{описание-типа-атрибута}]. |
описание-типа-атрибута |
= имя-типа-атрибута. |
minс |
= целое-без-знака | буква. |
maxc |
= целое-без-знака | буква. |
имя-концептуальной-схемы |
= идентифицирующее-имя. |
имя-типа-сущности |
= идентифицирующее-имя. |
идентификатор |
= имя-типа-атрибута {"," имя-типа-атрибута}. |
имя-типа-атрибута |
= идентифицирующее-имя. |
имя-типа-связи |
= идентифицирующее-имя. |
идентифицирующее-имя |
= буква {буква | цифра | дефис}. |
Буква, цифра, дефис и целое-без-знака далее не определяются.
Идентифицирующие-имена должны быть уникальными в пределах концептуальной схемы.
Г.3 Моделирование
Методы моделирования на основе подходов сущность-атрибут-связь. Эти методы можно поделить на две категории.
В методах непосредственного моделирования проблемной области сущности и связи идентифицируются в высказываниях проблемной области.
Моделирование в два этапа состоит из:
- идентификации атрибутов, т.е. любых значений, несущих информацию;
- построения типов-сущности и типов-связи посредством анализа типов-атрибута.
Г.3.1 Некоторые прагматические правила моделирования
В подходах сущность-атрибут-связь связи определяются между сущностями, а не между атрибутами, следовательно, важен выбор сущностей. Предложены некоторые прагматические правила, позволяющие решать такие проблемы:
а) если тип-сущности имеет только один соответствующий тип-атрибута, его, возможно, следует классифицировать как тип-атрибута какого-либо другого типа-сущности;
б) если атрибуты нескольких сущностей ссылаются на одну и ту же сущность, эта сущность должна классифицироваться как полноправный тип-сущности.
Объяснение этих прагматических правил показывает, что выбор должен производиться посредством изучения проблемной области, а не только ее описания. Решение о том, что является типом-атрибута, а что типом-сущности, не может быть принято априори. Подход сущность-атрибут-связь - итеративный, и то, что представляется атрибутом на ранней стадии процесса моделирования, может оказаться сущностью и наоборот.
Связи - это не сущности. Однако можно построить сущность, которая является трансформацией связи.
Для этого может существовать несколько причин. Одна причина - дать понятию, первоначально представленному типом-связи, особый идентификатор, а не использовать идентификаторы совокупности сущностей, другая - обеспечить наиболее удобное, по мнению проектировщика, представление проблемной области.
Г.3.2 Формальные правила моделирования
Верификация
Верификация позволяет гарантировать, что каждая реализация типа-сущности или типа-связи имеет только одно значение любого типа-атрибута.
Нормализация
Нормализация в подходе сущность-атрибут-связь гарантирует, что ни один атрибут связи не может быть верифицированным по отношению к подмножеству идентификатора связи.
Декомпозиция
Декомпозиция в подходах сущность-атрибут-связь позволяет без потери семантики разбить тип-связи размерности n на несколько типов-связи с меньшими размерностями при условии сохранения функциональных зависимостей, определенных для типа-связи. Необходимо убедиться, что в общей части используются одни и те же реализации.
Г.4 Пример описания
Описание концептуальной схемы па языке, определенном в разделе Г.2:
CONCEPTUAL SCHEMA |
регистрация-автомобилей |
|||
ENTITY-TYPE |
изготовитель |
|||
IDENTIFIER |
ид-изготовителя |
|||
DESCRIPTION |
ид-изготовителя |
|||
|
функционирует |
|||
ENTITY-TYPE |
модель-автомобиля |
|||
IDENTIFIER |
ид-модели |
|||
DESCRIPTION |
ид-модели |
|||
|
описание-расхода-топлива |
|||
ENTITY-TYPE |
автомобиль |
|||
IDENTIFIER |
регистрационный-номер |
|||
DESCRIPTION |
регистрационный-номер |
|||
|
серийный-номер |
|||
|
дата-уничтожения |
|||
ENTITY-TYPE |
расход-топлива |
|||
IDENTIFIER |
ид-года |
|||
DESCRIPTION |
ид-года |
|||
|
-расходы |
|||
ENTITY-TYPE |
гараж |
|||
IDENTIFIER |
|
ид-гаража |
||
DESCRIPTION |
|
ид-гаража торгует |
||
ENTITY-TYPE |
|
человек |
||
IDENTIFIER |
|
ид-человека |
||
DESCRIPTION |
|
ид-человека |
||
ENTITY-TYPE |
|
передача |
||
IDENTIFIER |
|
передаваемый-автомобиль дата-передачи, последовательный-номер |
||
DESCRIPTION |
|
передаваемый-автомобиль дата-передачи, последовательный-номер |
||
RELATIONSHIP-TYPE |
производится-кем |
|||
DIMENSION |
|
2 |
||
COLLECTION |
|
изготовитель модель-автомобиля |
||
CARDINALITY |
|
изготовитель 0, n модель-автомобиля 1, 1 |
||
RELATIONSHIP-TYPE |
производится-кем |
|||
DIMENSION |
|
2 |
||
COLLECTION |
|
изготовитель автомобиль |
||
CARDINALITY |
|
изготовитель 0, n автомобиль 1, 1 |
||
RELATIONSHIP-TYPE |
является-моделью |
|||
DIMENSION |
|
2 |
||
COLLECTION |
|
модель-автомобиля автомобиль |
||
CARDINALITY |
|
изготовитель 0, n автомобиль 1, 1 |
||
RELATIONSHIP-TYPE |
год-выпуска |
|||
DIMENSION |
|
2 |
||
COLLECTION |
|
расход-топлива автомобиль |
||
CARDINALITY |
|
расход-топлива 0, n автомобиль 1, 1 |
||
RELATIONSHIP-TYPE |
передача-иг |
|||
DIMENSION |
|
4 |
||
COLLECTION |
|
автомобиль передача изготовитель гараж |
||
CARDINALITY |
|
автомобиль 0, n передача 1, 1 изготовитель 0, n гараж 0, n |
||
RELATIONSHIP-TYPE
|
передача-гч |
|||
DIMENSION |
|
4 |
||
COLLECTION |
|
автомобиль передача гараж человек |
||
CARDINALITY |
|
автомобиль 0, n передача 1, n гараж 0, n человек 0, n |
||
RELATIONSHIP-TYPE DIMENSION COLLECTION |
передача-иг 4 автомобиль |
|||
|
передача человек гараж |
|||
CARDINALITY |
автомобиль 0, n передача 1, n человек 0, n гараж 0, n |
|||
RELATIONSHIP-TYPE DIMENSION COLLECTION |
передача-чч 4 автомобиль |
|||
CARDINALITY |
передача человек автомобиль 0, n |
|||
|
передача 1, n человек 0, n |
|||
|
человек 0, n |
Г.5 Контрольный список для концептуальной схемы
Дальнейший анализ иллюстрирует, собраны ли в концептуальной схеме все необходимые высказывания о проблемной области. Знак Е подразумевает, что в модели данное утверждение описано, * отсылает к примечаниям в конце раздела.
Замечания по подходам сущность-атрибут-связь
* Помета в круглых скобках означает, что концептуальная схема обеспечивает описание утверждения в информационной базе, но это утверждение не может быть выражено в виде правила. Ограничения уникальности в пунктах 14 и 19 поддерживаются, но не на все время. Так, отсутствует правило, которое запрещало бы иметь двум разным автомобилям один и тот же регистрационный номер, но в различные моменты времени.
* Правила установления полномочий не включены (например, пункты 3, 4, 9, 11 и 13).
* Правила проверки достоверности, хотя они и являются статическими, не включены (например, пункты 5, 10, 24, 25, 31, 36 и 39).
* Взаимное исключение связей не включено (например, пункт 37).
* Не включены динамические правила или ограничения, поэтому пункты 6, 20 и 32 не применимы. Заметим, что в пункте 20 не имеется в виду статическое ограничение "любая определенная модель автомобиля производится одним изготовителем в один момент времени".
* Предписывающие правила взаимодействия не являются частью концептуальной схемы (например, пункты 16, 18, 21, 29, 40).
Г.6 Отображение концептуальной схемы сущность-атрибут-связь в схему сетевой базы данных и схему реляционной базы данных
Процедуру преобразования концептуальной схемы сущность-атрибут-связь сначала в схему сетевой базы данных и затем в схему реляционной базы данных можно в общих чертах охарактеризовать следующим образом:
а) поместить типы-атрибута одного типа-сущности в тип-записи;
б) взять типы-связи "один-ко-многим" и преобразовать их в типы-набора;
в) преобразовать типы-связи "многое-ко-многим", n-арные (n>2) типы-связи и типы-связи, имеющие типы-атрибуты, в типы-записи и преобразовать соединительные линии в типы-набора.
Чтобы получить реляционную схему базы данных, следует отобразить типы-записи в отношениях. При этом наборы следует представить "ключами-владельцев", которые ссылаются на "кортежи-владельцев" (например, производится-кем в модель-автомобиля).
Если вы являетесь пользователем интернет-версии системы ГАРАНТ, вы можете открыть этот документ прямо сейчас или запросить по Горячей линии в системе.