обеспечить основу для интерпретации внешних и внутренних синтаксических форм, которые представляют информацию о проблемной области;
обеспечить основу для взаимного отображения внешних и внутренних схем.
В подходах сущность-атрибут-связь роль концептуальной схемы чаще понимается как результат определенной стадии интерактивного процесса проектирования. На последующих стадиях эта концептуальная схема преобразуется вручную во внешние и внутренние модели данных.
Г.1 Фундаментальные понятия
В подходах сущность-атрибут-связь считается, что проблемная область состоит из базовых понятий сущностей, которые могут иметь атрибуты и связи между сущностями. В некоторых подходах связи также могут иметь атрибуты.
Сущность — это любой конкретный или абстрактный объект в проблемной области.
Атрибут — это наблюдаемое свойство сущности или наблюдаемое свойство ассоциации между сущностями проблемной области.
Атрибут имеет значение.
Связь — это наблюдаемая ассоциация между сущностями проблемной области.
Атрибуты и связи являются высказываниями о сущностях. Атрибуты — это одноместные или двухместные высказывания о единичной сущности или связи, часто ассоциирующие определенное значение с этой сущностью или связью. Связи — это высказывания о двух или более сущностях (А-местные высказывания).
Объекты, имеющие общие свойства, относятся к одному типу. Тип — это классификация подобных объектов. Три основных абстракции подходов сущность-атрибут-связь — тип-сущности, тип-атрибута и тип- связи.
В подходах сущность-атрибут-связь совместно с понятием типа часто используют понятия «реализация» и «совокупность». Реализация определенного типа определяется как уникальный отдельный объект, принадлежащий к этому типу. Совокупность типа — это некоторая совокупность реализации этого типа, которая время от времени может меняться. Обычно, это совокупность всех сущностей данного типа, которые встречаются в соответствующем пространстве сущностей. Тип-сущности — это классификация сущностей, каждая из которых имеет подобные атрибуты, связанные с ней. Каждая реализация типа-сущности должна быть уникальна и поэтому отличима от всех других реализаций этого типа-сущности. В подходах сущность-атрибут-связь сущности различаются посредством одного или более атрибутов, называемых идентификатором. Тип-атрибута — это классификация подобных атрибутов всех реализаций сущности, относящихся к одному типу-сущности, или всех реализаций связи соответствующего типа. Индивидуальная реализация типа-атрибута, ассоциируемая с индивидуальной реализацией типа-сущности или типа-связи, рассматривается как значение атрибута. В данном разделе используется термин «значение-атрибута». Пара <тип-атрибута, значение-атрибута> «идентифицирует» атрибут-сущности. Говорят также, что значения атрибутов, входящих в идентификатор, идентифицируют сущность.
Тип-связи в подходах сущность-атрибут-связь — это связь, определенная на одном или более типах- сущности.
Понятие связи между сущностями — основополагающее для подходов сущность-атрибут-связь. Однако не следует предполагать, что тип-сущности может участвовать только в одном типе-связи. Можно определить любое число типов-связи, в которых принимает участие тип-сущности. Не следует также предполагать, что только один тип-связи может определяться на совокупности типов-сущности. Может быть определено любое число типов-связи, включающих в себя одну и ту же совокупность типов-сущности. Там, где определяются два или более типа-связи на одной и той же совокупности типов-сущности, необходимо различать типы-связи, приписывая им одно или несколько имен.
Некоторые подходы сущность-атрибут-связь также различают типы-значений. Тип-значения — это классификация совокупности значений-атрибута, которые могут образовывать пары с определенным типом-атри- бута, и, таким образом, будут атрибутами для сущностей определенного типа-сущности или для связей определенного типа-связи. Тип-значения всегда тесно связан с одним или более типами-атрибута. Другой термин для типа-значения, используемый некоторыми авторами, — домен.
В некоторых подходах сущность-атрибут-связь типы-сущности не могут пересекаться, т. е. определенная сущность может принадлежать только к одному типу-сущности. В других случаях типы-сущности могут пересекаться, т. е. определенная сущность может относиться к нескольким типам-сущности. Это замечание применимо также к типам-атрибута, типам-связи и типам-значения.
Между вариантами подходов сущность-атрибут-связь существуют различия, особенно по отношению к характеристикам связей.
В подходах сущность-атрибут-связь связи могут классифицироваться по трем критериям:
размерность типа-связи;
функциональность типа-связи;
полные и частичные связи.
Размерность типа-связи — это число реализаций сущности в одной реализации типа-связи.
Тип-связи размерности п называют п-арным типом-связи.
Некоторые подходы сущность-атрибут-связь ограничиваются бинарными типами-связи. Более того, некоторые из них не допускают бинарные типы-связи на одном типе-сущности.
Функциональность типа-связи иллюстрируется по отношению к двум различным типам-сущности. Возможными видами функциональности для бинарного типа-связи, определенного на типах-сущности А и В, являются:
один-к-одному (1-1), когда одна реализация А может быть связана только с одной реализацией В, и каждая реализация В может быть связана только с одной реализацией А;
один-ко-многим (1-п), когда одна реализация А может иметь одну или более связей, каждую с одной реализацией В, но каждая реализация В может иметь только одну связь с одной реализацией А;
многие-ко-многим (т-п), когда одна реализация А может иметь одну или более связей, каждая с одной реализацией В, и каждая реализация В может иметь несколько связей, каждая с одной реализацией А.
Соответствующие типы функциональности можно определить также и для п-арных типов-связи.
На практике эту характеристику рассматривают вместе с характеристикой полной или частичной связи.
Полная связь, определенная на типах-сущностях А и В, требует, чтобы каждая реализация А и В принимали участие в какой-либо связи этого типа-связи.
Частичная связь, определенная на типах-сущности А и В, требует, чтобы некоторые, но не обязательно все, реализации А и некоторые, но не обязательно все, реализации В участвовали в какой-либо связи этого типа-связи.
Возможны четыре случая, полностью независимые от функциональности связи:
А все все некоторые некоторые |
В все (полная) некоторые т все > (частичная) некоторые J |
Комбинация функциональности и полноты/частичности устанавливает мощность связи.
Мощность связи — это число, указывающее, сколько раз реализация типа-сущность участвует в связях определенного типа-связи.
Понятие функциональной зависимости применяется только к множеству реализаций-связи, но можно определить функциональную зависимость между подмножеством совокупностей типов-сущности и другим ти-
пом-сущности.
Некоторые подходы сущность-атрибут-связь, которые допускают только бинарные типы-связи, ограничиваются типами-связи «один-ко-многим», включая «один-к-одному» и «нуль или один-ко-многим». В других допускаются также бинарные типы-связи «многие-ко-многим».
В общем случае, не только сущности, но также и связи могут иметь атрибуты. Но некоторые подходы сущность-атрибут-связь (обычно те, которые допускают только бинарные связи) не позволяют связям иметь атрибуты.
Далее в обсуждении подходов сущность-атрибут-связь выбраны следующие характеристики связей:
допускаются п-арные типы-связи;
допускаются типы-связи «многие-ко-многим»;
допускаются атрибуты связей.
Г.2 Грамматика и семантика
Необходимы лингвистические конструкции для именования и описания сущностей, атрибутов, типов- сущности и т. д. Все подходы сущность-атрибут-связь имеют такие конструкции — явно определяемые или неявно предполагаемые.
Основными лингвистическими конструкциями являются:
имена-типа-сущности — лексические объекты, которые ссылаются на типы-сущности;
имена-типа-атрибута — лексические объекты, которые ссылаются на типы-атрибута;
имена-типа-связи — лексические объекты, которые ссылаются на типы-связи.
Для подходов, различающих также типы-значения или домены, дополнительно необходимы имена- типа-значения или имена-доменов — лексические объекты, ссылающиеся на типы-значения или домены.
Для имен-типа будут использоваться прописные буквы.
В формальных языках, использующихся в подходах сущность-атрибут-связь для описания проблемной области, необходимы более сложные конструкции для описания различных типов. Для этих конструкций будет использоваться общий термин «описание». Описание — это граф. рисунок или языковая конструкция, которая описывает тип, а также перечисляет его характеристики. Некоторые авторы используют слово «тип» для понятия «описание-типа».
В подходах сущность-атрибут-связь, рассматриваемых в данном приложении, выделим следующие описания:
описания-типа-сущности, перечисляющие типы-атрибута и другие характеристики (такие, как идентификатор) для типов-сущности;
описания-типа-атрибута, перечисляющие характеристики типов-атрибута;
описания-типа-связи, перечисляющие типы-сущности, на которых определен тип-связи, и дополнительные характеристики, такие, как категория типа-связи, мощность, типы-атрибута при их наличии.
В вариантах, в которых предусмотрены типы-значения или домены, они тоже должны быть описаны посредством описаний-типов-значения или описаний-доменов, перечисляющих характеристики типов-значения.
Ниже приводится синтаксис языка, используемого в этом приложении, для описания концептуальной схемы для примера проблемной области из приложения Б. Но, как уже было замечено, его не следует интерпретировать как предложение для стандартизации этого языка в подходах сущность-атрибут-связь.
концептуальная-схема |
= ’’CONCEPTUAL SCHEMA” имя-концептуальной-схемы описание-типа-сущности {описание-типа-сущности} описание-типа-связи {описание-типа-связи}. |
описание-типа-сущности |
= ’ENTITY-TYPE” имя-типа-сущности ’IDENTIFIER” идентификатор ’DESCRIPTION” описание-типа-атрибута {описание-типа-атрибута}. |
описание-типа-связи |
= ’RELATIONSHIP-TYPE” имя-типа-связи ’DIMENSION” целое-без-знака ’COLLECTION” имя-типа-сущности {имя-типа-сущности} ’CARDINALITY” имя-типа-сущности mine ”,” maxc {имя-типа-сущности mine ”,” maxc} {’FUNCTIONAL DEPENDENCY” имя-типа-сущности {имя-типа-сущности} ”ON имя-типа-сущности} [’IDENTIFIER” идентификатор] [’DESCRIPTION” описание-типа-атрибута {описание-типа-атрибута}]. |
описание-типа-атрибута mine maxc имя-концептуальной-схемы имя-типа-сущности идентификатор имя-типа-атрибута имя-типа-связи идентифицирующее-имя |
= имя-типа-атрибута. = целое-без-знака | буква. = целое-без-знака | буква. = идентифицирующее-имя. = идентифицирующее-имя. = имя-типа-атрибута {”,” имя-типа-атрибута}. = идентифицирующее-имя. = идентифицирующее-имя. = буква {буква | цифра | дефис}. |
Буква, цифра, дефис и целое-без-знака далее не определяются.
Идентифицирующие-имена должны быть уникальными в пределах концептуальной схемы.
Г.З Моделирование
Методы моделирования на основе подходов сущность-атрибут-связь. Эти методы можно поделить на две категории.
В методах непосредственного моделирования проблемной области сущности и связи идентифицируются в высказываниях проблемной области.
Моделирование в два этапа состоит из:
идентификации атрибутов, т. е. любых значений, несущих информацию;
построения типов-сущности и типов-связи посредством анализа типов-атрибута.
Г.З.1 Некоторые прагматические правила моделирования
В подходах сущность-атрибут-связь связи определяются между сущностями, а не между атрибутами, следовательно, важен выбор сущностей. Предложены некоторые прагматические правила, позволяющие решать такие проблемы:
если тип-сущности имеет только один соответствующий тип-атрибута, его, возможно, следует классифицировать как тип-атрибута какого-либо другого типа-сущности;
если атрибуты нескольких сущностей ссылаются на одну и ту же сущность, эта сущность должна классифицироваться как полноправный тип-сущности.
Объяснение этих прагматических правил показывает, что выбор должен производиться посредством изучения проблемной области, а не только ее описания. Решение о том, что является типом-атрибута, а что типом-сущности, не может быть принято априори. Подход сущность-атрибут-связь — итеративный, и то, что представляется атрибутом на ранней стадии процесса моделирования, может оказаться сущностью и наоборот.
Связи — это не сущности. Однако можно построить сущность, которая является трансформацией связи.
Для этого может существовать несколько причин. Одна причина — дать понятию, первоначально представленному типом-связи, особый идентификатор, а не использовать идентификаторы совокупности сущностей, другая — обеспечить наиболее удобное, по мнению проектировщика, представление проблемной области.
Г.З.2 Формальные правила моделирования
Верификация
Верификация позволяет гарантировать, что каждая реализация типа-сущности или типа-связи имеет только одно значение любого типа-атрибута.