Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Белобжеский_Лекции_по_ББД.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
5.5 Mб
Скачать

Низходящее проектирование бд на основе er-модели Модель «сущность—связь» и ее варианты

Модель «сущность—связь» (entity-relationship model, E-R model) представляет собой совокупность понятий и графических символов для построения концепту­альных схем. Модель «сущность—связь» была предложена Питером Ченом и опуб­ликована им в 1976 году. В своей статье Чен описал основные элементы модели. Позже к этой модели были добавлены подтипы (речь о которых пойдет далее), результатом чего стала расширенная модель «сущность—связь» (extended E-R model). На сегодняшний день, как правило, когда говорят о модели «сущность-связь», имеют в виду именно расширенный ее вариант.

Версии модели «сущность—связь»

Идеи, лежащие в основе расширенной модели «сущность—связь», были взяты на вооружение широким кругом профессионалов в области моделирования данных и проектирования баз данных, и сегодня почти все проекты по моделированию данных используют ту или иную ее модификацию. К сожалению, в ходу имеется несколько различных версий этой модели. Одна из них, носящая название инфор­мационной инженерии (information engineering, IE), была разработана Джеймсом Мартином в 1990 году. Она меньше всего распространена в современной про­мышленности, и мы не будем рассматривать ее далее.

В 1993 году. Национальный институт стандартов и технологии (National Institute of Standards and Technology) анонсировал еще одну версию модели «сущность—связь» в качестве национального стандарта США. Данная версия получила название IDEF1X, что расшифровывается как «Integrated Definition 1, Extended» — «Единый стандарт, версия 1, расширенная». Этот стандарт включает в себя основные идеи модели «сущность—связь», но использует для их представ­ления другие графические символы. В стандарте IDEF1X предусмотрены сред­ства для разработки как концептуальных, так и внутренних схем, а также методы преобразования первых во вторые.

На этом, однако, путаница не кончается. Новая объектно-ориентированная модель разработки под названием UML (Universal Modeling Language — универ­сальный язык моделирования) также взяла за основу модель «сущность—связь», но при этом ввела свои собственные символы и привнесла объектно-ориентиро­ванную специфику.

В конечном счете мы имеем исходную модель «сущность—связь», расширен­ную модель «сущность—связь», информационную инженерию, национальный стандарт IDEF1X и UML. Эту ситуацию можно заклеймить как абсурдную (тако­вой она в действительности и является), однако тем самым мы не сможем в ней ничего изменить. Вопрос звучит так: что мы со всем этим будем делать?

Выбор версии модели

Проще всего было бы вскинуть руки и сказать: «Чем связываться со всеми этими версиями, давайте лучше сосредоточимся на расширенной модели „сущность-связь", а остальные версии рассмотрим потом, если понадобится». Проблема за­ключается в том, что когда модель IDEF1X стала национальным стандартом, компании, занимавшиеся разработкой средств для моделирования данных, были вынуждены обеспечить соответствие своих продуктов этому стандарту, чтобы иметь возможность продавать их правительственным учреждениям. Игнориро­вать такой большой рынок было бы непростительно, поэтому большинство попу­лярных в настоящее время программных продуктов для моделирования данных, например, ERWin и Visio, используют IDEF1X. А это значит, что именно с верси­ей IDEF1X вам, вероятнее всего, придется сталкиваться в вашей практике, и даже чаще, чем с расширенной моделью «сущность—связь».

В то же время, растущая популярность объектно-ориентированной системной разработки и объектно-ориентированного программирования дала толчок рас­пространению UML. Однако изначально UML предназначался в первую очередь для моделирования процессов и программ, и, по мнению многих, он пока не го­тов к использованию в качестве полноценного средства моделирования данных. Должно пройти еще какое-то время, прежде чем UML достигнет той стадии зрелости, на которой находятся модель IDEF1X и информационная инженерия. Кроме того, если вы не знакомы с концепциями объектно-ориентированного программирования, UML может оставить у вас странное впечатление.

По правде говоря, какое бы решение мы ни приняли в этой ситуации, оно все равно будет неудовлетворительным. Тем не менее, наш подход будет таков: зна­ние классической расширенной модели «сущность—связь» необходимо, потому что содержащиеся в ней идеи и символы лежат в основе всех без исключения версий, а также потому, что данная модель столь широко распространена в про­мышленности. К несчастью, без знания модели IDEF1X также не обойтись, по­скольку вам наверняка придется работать со средствами моделирования данных, а они по большей части следуют именно этой версии. Ну и, наконец, следует по крайней мере ориентироваться в символах, используемых в UML.

Исходя из вышесказанного, структура этой главы будет такова. Сначала будет описана расширенная модель «сущность—связь» в ее классическом варианте. Далее мы представим версию IDEF1X, которая не только использует другие сим­волы, но и по-другому классифицирует связи. В заключительном разделе главы будет вкратце рассмотрено использование модели «сущность—связь» в UML.

В оставшейся части книги будет использоваться либо расширенная модель «сущность—связь», либо стандарт IDEF1X. Хотя временами это будет затруд­нять изложение, мы не видим другого способа хорошо подготовить вас к реше­нию задач, с которыми вы можете столкнуться в ходе вашей будущей карьеры.