79987

АВТОМАТИЗАЦИЯ ТРАНСЛЯЦИИ СХЕМ БАЗ ДАННЫХ ИЗ ERM-МОДЕЛИ В UML-МОДЕЛЬ

Дипломная

Информатика, кибернетика и программирование

Семантическая методика проектирования состоит из нескольких последовательных процессов: проектирование семантической схемы ПрО, трансляция этой схемы в реляционную модель и нормализация полученной реляционной схемы. Использование невыразительной семантической модели существенно усложняет процесс проектирования.

Русский

2015-02-15

1.4 MB

4 чел.

МИНОБРНАУКИ  РОССИИ

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Факультет информатики

Кафедра программной инженерии

 

                                                                                        

УДК 004.652

                                                                                          ДОПУСТИТЬ К ЗАЩИТЕ В ГАК

                                                          Зав.кафедрой, профессор, д.ф.-м.н.

                                                                                          ____________ О.А.Змеев  

                                                                       «_____»__________2013 г.

 

БАКАЛАВРСКАЯ  РАБОТА

 

АВТОМАТИЗАЦИЯ ТРАНСЛЯЦИИ СХЕМ БАЗ ДАННЫХ ИЗ ERM-МОДЕЛИ В UML-МОДЕЛЬ

по основной образовательной программе подготовки бакалавров

010400 – Информационные технологии

Данейко Анастасия Михайловна                                

Руководитель ВКР, к.т.н., доцент кафедры программной инженерии

____________ А.М. Бабанов

                                                     подпись

«_____»___________ 2013 г.

                                                                                               

                                                

Автор работы

                                                                                             студент группы № 1493

                                                                             _____________ А.М. Данейко

                                                                                             подпись

 

Электронная версия бакалаврской работы   Администратор электронной

помещена в электронную библиотеку.        библиотеки факультета

                                                                             _____________ Е.Н.Якунина

                                                                                             подпись

Томск 2013

Реферат

Бакалаврская работа, 30 с., 26 рис., 3 табл.

ERM-МОДЕЛЬ, UML-МОДЕЛЬ, ТРАНСЛЯЦИЯ СХЕМ, ПРАВИЛА ПРЕОБРАЗОВАНИЯ, VMSDK, Visual C#

Объект исследования: процесс трансляции схем баз данных из ERM-модели в UML-модель.

Цель: разработать модуль трансляции схем баз данных из ERM-модели в UML-модель.

Метод исследования: теоретический и экспериментальный.

Результаты работы: сформулированы правила преобразования схем баз данных из ERM-модели в UML-модель; спроектирован и реализован модуль трансляции схем баз данных из ERM-модели в UML-модель.

2

Содержание

Перечень терминов и условных обозначений            4

Введение                                                                                                                5

1 Модели данных, используемые в работе            6                                         

1.1 Семантическая методика проектирования схем баз данных        6

1.2 Основные элементы ERM-модели                                                      7

1.3 Основные элементы UML-модели                                                      9

2 Трансляция ERM-схемы данных в UML-схему данных                              12

2.1 Метамодели ERM и UML            12

2.2 Сравнительная характеристика ERM-модели и UML-модели      14

2.3 Правила трансляции ERM-схем данных в UML-схемы данных   16

 2.3.1. Трансляция множеств значений         16

 2.3.2. Трансляция множеств сущностей         17

 2.3.3. Трансляция множеств связей          19

3 Описание проектного модуля            23

3.1 Инструменты моделирования            23

3.2 Структура проектного модуля            24

Заключение               29

Список использованной литературы           30

3

Перечень терминов и условных обозначений

БД – база данных.

ПрО – предметная область.

CASE-средство - набор инструментов проектирования программного обеспечения, который помогает обеспечить высокое качество программ, отсутствие ошибок и простоту в обслуживании программных продуктов.

ERM-модель – модель «Сущность-связь-отображение» (англ. «Entity-Relationship-Mapping» Model).

UML-модель – модель, используемая в объектно-ориентированном программировании (англ. «Unified Modeling Language» Model).

ООСУБД – объектно-ориентированная система управления базами данных.

4

Введение

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

Одним из самых трудоемких процессов жизненного цикла базы данных является проектирование. Использование современных методик, таких как семантическая методика проектирования, позволяет облегчить и ускорить процесс.

Семантическая методика проектирования состоит из нескольких последовательных процессов: проектирование семантической схемы ПрО, трансляция этой схемы в реляционную модель и нормализация полученной реляционной схемы. Использование невыразительной семантической модели существенно усложняет процесс проектирования. Модель «Сущность – Связь – Отображение» [4] является наиболее подходящей для проектирования, так как она обладает наибольшими выразительными возможностями среди подобных моделей.

Трансляция из ERM-модели в UML-модель [5,6,7], будет актуальной в следующих случаях:

  1.  в случае использования ООСУБД, которая имеет интерфейс определения схемы в виде UML-диаграмм (например, СУБД Caché)
  2.  в случае использования ORM-инструментария и применения технологии CodeFirst (реляционная схема создается автоматически по определениям классов)

Целью данной бакалаврской работы является разработка правил преобразования ERM-схемы данных в UML-схему данных, а также реализация программного модуля, автоматизирующего трансляцию ERM-схемы данных в UML-схему данных.

5

1 Модели данных, используемые в работе

  1.  Семантическая методика проектирования схем баз данных

Проектирование является одной из важнейших фаз жизненного цикла любой информационной системы. От её результатов зависит успех всех остальных фаз и самой системы в будущем. В технологии баз данных для решения задачи проектирования БД разработаны различные методики. Реляционная методика, ставшая классикой, имеет целый ряд недостатков[1]. Развитие технологии баз данных требовало от исследователей новых, более удобных для проектировщиков, методик проектирования. Итогом исследований стала семантическая методика проектирования. Согласно семантической методике[1], проектирование можно разделить на несколько процессов:

1. Проектирование схемы предметной области с использованием некоторой семантической модели данных.

2. Трансляция полученной схемы в реляционную модель данных.

3. Проверка полученных отношений на удовлетворение требованиям нормальных форм и дальнейшая декомпозиция.

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

В сравнении с классической, семантическая методика проектирования имеет целый ряд преимуществ. Во-первых, в ней полностью устранена главная проблема реляционной методики – нетривиальный способ восприятия объектов окружающего мира, далекий от человеческого. Во-вторых, данная методика прекрасно подходит для анализа сложных предметных областей. Кроме того, в статье [2], автор указывает на скрытое, но очень важное преимущество семантической методики: «На этапе семантического моделирования производится важная документация, которая может оказаться очень полезной не только при проектировании схемы реляционной БД, но и при эксплуатации, сопровождении и развитии уже заполненной БД». В качестве доказательства преимущества семантической методики можно привести источники [1, 2, 3].

Однако и у семантической методики существуют уязвимости. Согласно статье А.М. Бабанова [1] «успех применения семантической методики проектирования, помимо знаний и умений проектировщика, определяют два фактора:

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

2. Детальность анализа схемы БД в применяемых правилах трансляции».

6

Таким образом, проектировщик при выборе невыразительной модели данных может создать неудобную для пользователя систему, не учитывающую все особенности предметной области. Аналогично, если правила трансляции не учитывают все особенности схемы-источника, результирующая схема может содержать большое количество избыточных элементов либо не соответствовать требованиям нормальных форм.

Вопрос выбора семантической модели данных является наиболее сложным и важным. На текущий момент наиболее популярной семантической моделью данных является ER-модель (Entity-Relationship). Результатом развития её идей является ERM-модель (Entity-Relationship-Mapping Model или модель «Сущность – Связь – Отображение»). А.М. Бабанов в своей статье[1] утверждает, что «применение ERM-модели в сочетании с детально проработанными правилами трансляции схем позволит приблизить семантическую методику проектирования БД к идеалу». В настоящее время ERM-модель динамично развивается.

Как было сказано ранее, существует две проблемы, которые можно решить при помощи трансляции ERM-модели в UML-модель. Однако правила для подобной трансляции еще не были сформулированы.

Из всего вышеизложенного следует цель данной курсовой работы: разработать модуль трансляции схем данных из ERM-модели в UML-модель.

Для достижения поставленной цели необходимо решить следующие задачи:

1. Сравнить ERM-модель и UML-модель.

2. Спроектировать подсхему метамодели UML, необходимую для данного исследования

3. Сформулировать правила преобразований схем баз данных из ERM-модели в UML-модель.

4. Создать модуль для трансляции схемы данных ERM-модели в схему данных UML-модели.

1.2 Основные элементы ERM-модели

Модель «Сущность – Связь – Отображение» была создана как расширение EER-модели для более детального описания закономерностей исследуемой предметной области. Наиболее полно модель описана А.М. Бабановым в статье «Семантическая модель "Сущность - Связь - Отображение"» [4].

7

Основной семантической концепцией ERM-модели является объект - уникальная целостность, которую человек в процессе мировосприятия и мышления способен отличить от всего того, что не является данной целостностью.

Второй семантической концепцией является отображение - некоторый закон предметной области, по которому каждому объекту моделируемого мира (прообразу) может быть поставлен в соответствие (а может быть, и нет) один или более объектов (образов).

Приведем определения основных понятий модели, представленные в статье [4].

Знакомые по ER-модели понятия «множество сущностей», «множество связей», «множество значений» обобщены понятием класс. Класс служит областью значения и областью определения для отображений. Кроме того, понятия специализации и категоризации подняты на уровень класса.

Область определения отображения – совокупность объектов, которые в силу смысла закона ϕ могли иметь в прошлом или имеют в настоящем или смогут иметь в будущем хотя бы один ϕ-образ.

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

Атрибутные отображения – частный случай отображений, областью

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

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

Отображение объекта х характеризует кардинальное число объекта х при отображении ϕ – мощность его области образов при этом отображении.

В ERM-модели для отображений введена алгебра отображений. В алгебру входят унарные и бинарные операции, результатом операции всегда является одно отображение.

Кроме того, между отображениями введены отношения следствия и эквивалентности.

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

Для специализаций определено понятие основания деления – такая характеристика предметов, входящих в объем делимого понятия, модификация которой и порождает систему членов деления.

8

1.3 Основные элементы UML-модели

Основными элементами языка UML являются:

  1.  Сущности – абстракции, которые являются основными элементами модели. К ним относятся классы, интерфейсы, кооперации, прецеденты, и т.д.
  2.  Отношения – способы связи сущностей. К ним относятся ассоциации, зависимости, обобщения, реализации.
  3.  Представления – возможность сгруппировать некоторое подмножество сущностей.

В данной работе используются следующие элементы языка UML.

Класс (англ. class) – это описание совокупности объектов с общими атрибутами, операциями, отношениями и семантикой. Класс реализует один или несколько интерфейсов. Графически класс изображается в виде прямоугольника, в котором обычно записаны его имя, атрибуты и операции, как показано на рис. 1.3.1.

Рис. 1.3.1. Класс

Каждый класс имеет атрибуты и операции.

Атрибут – это именованное свойство класса, включающее описание множества значений, которые могут принимать экземпляры этого свойства. Атрибуты представлены в разделе, который расположен под именем класса; при этом указываются только их имена (см. рис. 1.3.2).

Рис. 1.3.2. Атрибуты класса

9

Операцией называется реализация услуги, которую можно запросить у любого объекта класса для воздействия на поведение. Иными словами, операция – это абстракция того, что позволено делать с объектом. У всех объектов класса имеется общий набор операций. Класс может содержать любое число операций или не содержать их вовсе. На рис. 1.3.3 изображен класс с его операциями.

Рис. 1.3.3. Операции

Интерфейс (англ. interface) – это совокупность операций, которые определяют сервис (набор услуг), предоставляемый классом или компонентом. Таким образом, интерфейс описывает видимое извне поведение элемента. Интерфейс может представлять поведение класса или компонента полностью или частично; он определяет только спецификации операций (сигнатуры), но никогда – их реализации. Графически интерфейс изображается в виде круга, под которым пишется его имя, как показано на рис. 1.3.4. Интерфейс редко существует сам по себе – обычно он присоединяется к реализующему его классу или компоненту.

Рис. 1.3.4. Интерфейс

Ассоциация (англ. association) – структурное отношение, описывающее совокупность связей; связь – это соединение между объектами. Разновидностью ассоциации является агрегирование (англ. aggregation) – так называют структурное отношение между целым и его частями. Графически ассоциация изображается в виде прямой линии (иногда завершающейся стрелкой или содержащей метку), рядом с которой могут присутствовать дополнительные обозначения, например кратность и имена ролей. На рис. 1.3.5 показан пример отношения этого типа.

Рис. 1.3.5. Ассоциация

10

Обобщение (англ. generalization) – это отношение «специализация-обобщение», при котором объект специализированного элемента (потомок) может быть подставлен вместо объекта обобщенного элемента (родителя или предка). Таким образом, потомок (англ. child) наследует структуру и поведение своего родителя (англ. parent). Графически отношение обобщения изображается в виде линии с незакрашенной стрелкой, указывающей на родителя, как показано на рис. 1.3.6.

Рис. 1.3.6. Обобщение

11

2 Трансляция ERM-схемы в UML-схему

2.1 Метамодели ERM и UML

Для разработки модуля трансляции требуется наличие полного описания всех элементов модели данных и взаимосвязей между ними. Для этих целей можно использовать метамодели ERM и UML.

Последняя редакция метасхемы ERM-модели, спроектированная Бабановым А.М. [8], представлена на рис. 2.1.1. На этой схеме синим цветом обозначены базовые элементы ERM-модели, а белым цветом – производные.

Рис. 2.1.1. Метасхема ERM-модели

12

В рамках данной работы была рассмотрена только трансляция основных элементов ERM-модели, поэтому из представленной выше схемы была взята часть, на основе которой и происходила разработка правил преобразования (см. рис. 2.1.2).

Рис. 2.1.2. Подсхема метамодели ERM

Так как целью данного исследования является преобразование ERM-схем данных в UML-схемы данных, то представим схему, изображенную на рис. 2.1.2, в нотации языка UML.

Рис. 2.1.3. Подсхема метамодели ERM в нотации языка UML

13

Для работы с UML-моделью на основе нескольких источников также была спроектирована подсхема. Для поставленной в данной работе задачи мы решили использовать не полную метамодель, так как в ней очень много элементов, и все они нам не пригодятся, а лишь ее часть, необходимую для трансляции схем данных из ERM в UML. Итоговый вариант подсхемы метамодели UML представлен на рис. 2.1.2.

Рис. 2.1.4. Подсхема метамодели UML

2.2 Сравнительная характеристика ERM-модели и UML-модели

Представим все данные о структурах ERM и UML-моделей в виде таблицы (под соответствующим элементом подразумевается элемент, который может быть получен в результате трансляции без создания дополнительных объектов):

14

Таблица 1 – Сравнительный анализ ERM и UML-моделей данных

Элемент схемы ERM-модели

Соответствующий элемент схемы UML

Множество сущностей

UML-класс

Множество связей степени 2

UML-ассоциация

Множество связей степени 2 с атрибутами

-

Множество связей степени n>2

-

Множество значений

Примитивный тип

Декартово произведение множеств значений

Пользовательский тип

Функциональное атрибутное отображение множества сущностей во множество значений

Атрибут UML-класса

Атрибутное отображение от множества связей к множеству значений

Атрибут UML-класса

Нефункциональное атрибутное отображение

Атрибут UML-класса типа list

Специализация множеств сущностей

Обобщение(generalization)

Специализация множеств связей

-

Специализация множеств значений

Обобщение(generalization)

Категоризация множеств сущностей

Интерфейс

Категоризация множеств связей

-

Категоризация множеств значений

-

Основание деления

-

Слабость сущности по связи

-

Операции над отображениями

-

Отношение следствия между отображениями

-

Отношения эквивалентности между отображениями

-

Таким образом, трансляция без создания дополнительных элементов возможна для 10-ти элементов из 20-ти представленных в таблице.

15

2.3 Правила трансляции ERM-схем данных в UML-схемы данных

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

Таблица 2 – Правила трансляции

Элемент схемы ERM-модели

Соответствующий элемент схемы UML

Множество сущностей

UML-класс

Множество связей степени 2

UML-ассоциация

Множество связей степени 2 с атрибутами

UML-класс и две UML-ассоциации

Множество связей степени n>2

UML-класс и n UML-ассоциаций

Множество значений

Примитивный тип или Дополнительный UML-класс

Декартово произведение множеств значений

Пользовательский тип (структура)

Функциональное атрибутное отображение от множества сущностей к множеству значений

Атрибут UML-класса

Атрибутное отображение от множества связей к множеству значений

Атрибут UML-класса

Нефункциональное атрибутное отображение

Атрибут UML-класса типа list или Дополнительный UML-класс

2.3.1 Трансляция множеств значений

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

  1.  Каждое множество значений ERM-модели преобразуется в соответствующий примитивный UML-тип данных.
  2.  Создается UML-класс. Имя множества значений становится именем класса.

Рис.2.3.1. Трансляция множеств значений

16

  1.  Трансляция множеств сущностей

Каждому ERM-множеству сущностей соответствует UML-класс. Имя сущности становится именем класса.

Рис.2.3.2.1. Трансляция множеств сущностей

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

  1.  Полное функциональное атрибутное отображение становится атрибутом UML-класса. Имя отображения становится именем атрибута. ОЗО преобразуется в соответствующий примитивный UML-тип данных. Если ОЗО является декартовым произведением n ERM-множеств значений, то создается пользовательский тип данных (структура). Свойство атрибута Optional приобретает значение «false».

Рис.2.3.2.2. Трансляция полных функциональных отображений

17

  1.  

Частичное функциональное атрибутное отображение становится атрибутом UML-класса. Имя отображения становится именем атрибута. ОЗО преобразуется в соответствующий примитивный UML-тип данных. Если ОЗО является декартовым произведением n ERM-множеств значений, то создается пользовательский тип данных (структура). Свойство атрибута Optional приобретает значение «true».

Рис.2.3.2.3. Трансляция частичных функциональных отображений

  1.  Нефункциональное атрибутное отображение может транслироваться следующими способами. Выбор способа трансляции происходит во время работы модуля трансляции и зависит от выбора пользователя.

  1.  

Нефункциональное атрибутное отображение становится атрибутом UML-класса. Такой атрибут будет иметь тип list. ОЗО преобразуется в тип значений списка.

Рис. 2.3.2.4. Трансляция нефункциональных отображений первым способом

18

  1.  Создается дополнительный UML-класс. Имя класса равно имени отображения. Первичный и дополнительный классы связаны однонаправленной UML-ассоциацией. Кардинальные числа отображения становятся кардинальными числами UML-ассоциации.

Рис. 2.3.2.5. Трансляция нефункциональных отображений вторым способом

  1.  Трансляция множеств связей

Количество и состав порождаемых объектов зависит от степени ERM-множества связей и от наличия у него атрибутов:

Каждому множеству связей степени 2 без атрибутов ERM-модели соответствует ассоциация UML-модели. Имя множества связей становится именем ассоциации. КЧ отображения МнСущностей1 в МнСущностей2 становятся КЧ ассоциации, направленной из Класса1 в Класс2. КЧ отображения МнСущностей2 в МнСущностей1 становятся КЧ ассоциации, направленной из Класса2 в Класс1.

19

Рис.2.3.3.1. Трансляция множеств связей степени 2 без атрибутов

  1.  Каждое ERM-множество связей степени 2 с атрибутами порождает один класс UML-модели и две UML-ассоциации. Имя UML-класса совпадает с именем ERM-множества связей. Атрибуты ERM-множества связей становятся атрибутами UML-класса по правилам, аналогичным правилам для атрибутов ERM-множества сущностей. Трансляция параметров ERM-отображений описана в таблице 3.

Рис.2.3.3.2. Трансляция множеств связей степени 2 с атрибутами

20

Таблица 3 – Трансляция множеств связей степени 2 с атрибутами

Элемент ERM-схемы

Элемент UML-схемы

Роль МнСущностей1 в отображении МнСущностей1 -> МнСущностей2

Роль Сущности1 в связи

Роль МнСущностей2 в отображении МнСущностей2 -> МнСущностей1

Роль Сущности2 в связи

MinКЧ отображения МнСущностей1 -> МнСущностей2

MinКЧ ассоциации Класс1 <-> ДопКласс

MaxКЧ отображения МнСущностей1 -> МнСущностей2

MaxКЧ ассоциации Класс1 <-> ДопКласс

MinКЧ отображения МнСущностей2 -> МнСущностей1

MinКЧ ассоциации ДопКласс <-> Класс2

MaxКЧ отображения МнСущностей2 -> МнСущностей1

MaxКЧ ассоциации ДопКласс <-> Класс2

Имя МнСущностей1 + «_» + имя МнСвязей

Имя ассоциации Класс1 <-> ДопКласс

Имя МнСвязей + «_» + имя МнСущностей2

Имя ассоциации Класс1 <-> ДопКласс

  1.  ERM-множество связей степени n>2 независимо от наличия атрибутов порождает UML-класс и n UML-ассоциаций. Имя UML-класса совпадает с именем ERM-множества связей. Атрибуты ERM-множества связей становятся атрибутами UML- класса по правилам, аналогичным правилам для атрибутов ERM-множества сущностей. Параметры определяются аналогично правилам для множества связей степени 2 с атрибутами (пункт 2).

21

Рис.2.3.3.3. Трансляция множеств связей степени больше двух

22

3 Описание проектного модуля

3.1 Инструменты моделирования

Для работы со схемами был использован Microsoft Visual Studio Visualization and Modeling SDK – plug-in для Microsoft Visual Studio. С помощью него были реализованы два CASE-инструмента для построения схем. Инструмент для ERM-модели был разработан Анной Скачковой, инструмент для UML-модели - автором данной работы и Даниилом Андрющенко. Скриншоты данных инструментов можно увидеть на рис. 3.1.1 и 3.1.2.

Рис. 3.1.1. Инструмент для построения ERM-схем

23

Рис. 3.1.2. Инструмент для построения UML-схем

  1.  Структура проектного модуля

На основании сформулированных правил преобразования автором был разработан модуль трансляции. На рис. 3.2.1 представлен интерфейс модуля.

Рис. 3.2.1. Интерфейс модуля трансляции

24

Инструмент моделирования VMSDK, использованный в данной работе, представляет схему (рис. 3.2.2) в виде XML-кода (рис. 3.2.3), поэтому для создания модуля на языке C# было подключено пространство имен System.Xml, а также использован язык запросов XPath, помогающий обращаться к разным узлам XML-файла для дальнейшей работы с ними. Само преобразование осуществлялось при помощи XSLT – языка преобразования XML-документов. В процессе выполнения XSLT-преобразования задействованы: один или несколько входных XML-документов (в нашем случае это XML-код ERM-схемы данных), одна или несколько таблиц стилей XSLT (в ней содержатся правила преобразования), XSLT-процессор, один или несколько выходных документов (в нашем случае это полученный в результате преобразования XML-код UML-схемы данных). В простейшем случае XSLT-процессор получает на входе два документа — входной XML-документ и таблицу стилей XSLT — и создает на их основе выходной документ.

Рис. 3.2.2. ERM-схема

25

Рис. 3.2.3. XML-код представленной выше схемы

Ниже представлен фрагмент таблицы стилей XSLT, в которой содержатся правила преобразования. В нем представлены правила преобразования для множеств сущностей и множеств значений.

<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

    <xsl:output method="xml" indent="yes" encoding="UTF-8"/>

    <xsl:template match="/ermModel">

    <modelRoot xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" dslVersion="1.0.0.0"Id="77dbda01-d2fa-4a8e-ae10-d9ddf313474c" name="" xmlns="http://schemas.microsoft.com/dsltools/UMLCreator">

            <types> <!-- сначала выбираем множества значений, нигде не участвующие -->

                <xsl:for-each select="valueSet/ermModelHasValueSet/valueSet[count(role) = 0]">

                    <xsl:variable name="name" select="@name"/>

                    <modelClass name="{$name}"/>

                </xsl:for-each>

          <!-- затем выбираем множества сущностей, также нигде не участвующие -->

                <xsl:for-each select="elements/entitySet[count(role) = 0]">

                    <xsl:variable name="name" select="@name"/>

                    <modelClass name="{$name}"/>

                </xsl:for-each>

 

                <!-- перебираем все полные функциональные отображения -->

                <xsl:for-eachselect="attributeMapping/ermModelHasAttributeMapping/attributeMapping[@minCardinality='1' and @maxCardinality='1']">

                 

26

  <xsl:variable name="preImageName" select="inRole/mappingInRole/roleMoniker/@name"/>

                    <xsl:variable name="imageName" select="outRole/mappingOutRole/roleMoniker/@name"/>

                    <!-- Нашли роль прообраза. Теперь ищем соответствующее ей множество сущностей. -->

                    <xsl:for-eachselect="/ermModel/elements/entitySet/role/classifierReferencesRole/roleMoniker[@name=$preImageName]">

                        <xsl:variable name="entitySetName" select="../../../@name"/>

                        <!-- Нашли множество сущностей. Теперь ищем множество значений -->

                        <xsl:for-eachselect="/ermModel/valueSet/ermModelHasValueSet/valueSet/role/classifierReferencesRole/roleMoniker[@name=$imageName]">                         <xsl:variable name="valueSetName" select="../../../@name"/>                            <modelClass name="{$entitySetName}" type="{$valueSetName}"/>

                        </xsl:for-each>

                    </xsl:for-each>

                </xsl:for-each>

 

                <!-- перебираем все частичные функциональные отображения -->

                <xsl:for-eachselect="attributeMapping/ermModelHasAttributeMapping/attributeMapping[@minCardinality='0' and @maxCardinality='1']">

                    <xsl:variable name="preImageName" select="inRole/mappingInRole/roleMoniker/@name"/>

                    <xsl:variable name="imageName" select="outRole/mappingOutRole/roleMoniker/@name"/>

                    <!-- Нашли роль прообраза. Теперь ищем соответствующее ей множество сущностей. -->

                    <xsl:for-eachselect="/ermModel/elements/entitySet/role/classifierReferencesRole/roleMoniker[@name=$preImageName]">

                        <xsl:variable name="entitySetName" select="../../../@name"/>

                        <!-- Нашли множество сущностей. Теперь ищем множество значений -->

                        <xsl:for-eachselect="/ermModel/valueSet/ermModelHasValueSet/valueSet/role/classifierReferencesRole/roleMoniker[@name=$imageName]">

                            <xsl:variable name="valueSetName" select="../../../@name"/>

                            <modelClass name="{$entitySetName}" type="{$valueSetName}"/>

                        </xsl:for-each>

                    </xsl:for-each>

                </xsl:for-each>

 

                <!-- перебираем все нефункциональные отображения -->

                <xsl:for-eachselect="attributeMapping/ermModelHasAttributeMapping/attributeMapping[@minCardinality='0' and @maxCardinality='M']">

                    <xsl:variable name="preImageName" select="inRole/mappingInRole/roleMoniker/@name"/>

                    <xsl:variable name="imageName" select="outRole/mappingOutRole/roleMoniker/@name"/>

                    <!-- Нашли роль прообраза. Теперь ищем соответствующее ей множество сущностей. -->

                    <xsl:for-eachselect="/ermModel/elements/entitySet/role/classifierReferencesRole/roleMoniker[@name=$preImageName]">

                        <xsl:variable name="entitySetName" select="../../../@name"/>

                        <!-- Нашли множество сущностей. Теперь ищем множество значений -->

                        <xsl:for-eachselect="/ermModel/valueSet/ermModelHasValueSet/valueSet/role/classifierReferencesRole/roleMoniker[@name=$imageName]">

                            <xsl:variable name="valueSetName" select="../../../@name"/>

                            <modelClass name="{$entitySetName}" type="{$valueSetName}"/>

                        </xsl:for-each>

                    </xsl:for-each>

                </xsl:for-each>

            </types>

        </modelRoot>    </xsl:template> </xsl:stylesheet>

27

Полученный в результате трансляции XML-код UML-схемы данных (рис.3.2.4) можно визуализировать с помощью инструмента моделирования для UML-схем, о котором говорилось в предыдущей главе.

Рис. 3.2.4. XML-код, полученный в результате трансляции

Рис. 3.2.5. Полученная UML-схема 

28

Заключение

В рамках данной работы была спроектирована подсхема метамодели UML, необходимая для текущих исследований. Также было проведено сравнение ERM и UML-моделей данных, на основе которого сформулированы правила преобразования, спроектирован и реализован модуль трансляции схем данных из ERM-модели в UML-модель.

По мнению автора, следует продолжать исследования проблемы трансляции элементов схем из ERM-модели в UML-модель, так как правила преобразования могут иметь много разных вариантов в силу того, что трансляцию одного элемента в другой можно проводить разными путями. Также на данный момент не исследована проблема трансляции специализаций и категоризаций. Эта тема настолько глубока, что может стать темой отдельного исследования.

Так же следует отметить, что существует необходимость продолжать разработку CASE-инструментов для обеих моделей, так как в нем еще не реализованы некоторые элементы, необходимые для работы с ERM и UML-моделями.

29

Список использованной литературы

1. Бабанов А. М. Перспективы семантической методики проектирования БД, открывающиеся с применением ERM - модели данных // Информационные технологии и математическое моделирование (ИТТМ - 2009) : Материалы VIII Всерос. научн.-практ. конф. с межд. участием ( 13-14 ноября 2009 г.). - Томск : Изд-во Том. ун-та, 2009. - Ч. 1. - C. 107-110.

2. Миндалев И. В. Теория экономических информационных систем. Электронный учебно-методический комплекс [Электронный ресурс]. – 2009. Режим доступа: http://www.kgau.ru/istiki/teis/index.html (дата обращения: 06.03.2012).

3. Конноли Т. Базы данных. Проектирование, реализация и сопровождение. Теория и практика / Т. Конноли, К. Бегг – М.:Издательский дом «Вильяме», 2003. – 1440 с. 

4. Бабанов А.М. Семантическая модель "Сущность – Связь – Отображение" // Вестн./ Том. гос. ун-т. Сер. Управление, вычисл. техника и информатика. – 2007. – № 1. – С. 77–91.

5. Арлоу Д. UML 2 и Унифицированный процесс. Практ. объектно-ориентир. анализ и проектирование/Д.Арлоу, И.Нейштадт. - 2е изд. – Пер. с англ. – СПб: Символ-Плюс, 2007. – 624 с.

6. Фаулер М. UML. Основы. – Пер. с англ. – СПб.: Символ-Плюс, 2002. – 192 с.

7. Буч Г. UML. Руководство пользователя./Г.Буч, Дж. Рамбо, А.Джекобсон. – М.: ДМК Пресс,  2000. – 432 с. 

8. Бабанов А. М. Базовые и производные структурные понятия ERM-модели данных и изоморфное отношение между ними. // Вестник ТГУ. Управление, вычислительная техника и информатика. 2012.  №4.

30


 

А также другие работы, которые могут Вас заинтересовать

37323. ФИЛОСОФИЯ ОНТОЛОГИЯ И ТЕОРИЯ ПОЗНАНИЯ 284 KB
  Одна из задач философии – научить человека самостоятельно и творчески мыслить. Учебный курс философии предполагает как теоретический так и практический уровни. На практическом уровне студент должен научиться: использовать полученные теоретические знания для определения закономерностей развития и социальной значимости явлений и процессов действительного мира; анализировать имеющиеся точки зрения на вопрос; аргументировать собственную позицию; оценить личный вклад философа учёного деятеля культуры в развитие науки и культуры; использовать...
37324. ПРОЕКТИРОВАНИЕ АВТОМАТИЗИРОВАННЫХ СИСТЕМ 235.5 KB
  Заказная спецификация на приборы и средства автоматизации электроаппаратуру Приложение 7. Чертеж функциональной схемы автоматизации Приложение 10. ЦЕЛИ И ЗАДАЧИ КУРСОВОГО ПРОЕКТИРОВАНИЯ Выполнение курсового проекта по дисциплине “Проектирование автоматизированных систем†является подготовкой студентов к самостоятельной разработке проектов автоматизации в пищевой и химической промышленности. В процессе выполнения проекта студент должен показать глубину освоения теоретических и практических...
37325. Создать трехмерную модель сварного соединения и провести анализ ее напряженно-деформированного состояния под воздействием внешней статической нагрузки 471.5 KB
  Исходные данные Рисунок 1 – Изображение узла Сварное нахлесточное соединение. Рисунок 2 – Указание пути к файлу Рисунок 3 – Задание необходимых параметров вставки 3 Разбиение на конечные элементы Выберем пункт меню Mesh= Geometry= Solids Сетка= Геометрия= Тело. Рисунок 4 – Разбиение на конечные элементы На запрос о задании материала введем характеристики для Ст. Рисунок 5 – Задание характеристик для материала Далее появится панель utomesh Solids Авторазбиение твердых тел – рис.
37326. Учет резервов и кассовых операций предприятий 141.43 KB
  В повседневной деятельности организаций может возникать необходимость создания резерва для покрытия предстоящих расходов и платежей. Он создается за счет внутренних ресурсов путем включения в затраты производства или в расходы на продажу в отчетном году.
37327. Якорно-швартовное устройство 4.35 MB
  Якорные цепи от якоря через бортовой клюз, стопор и кулачковый барабан якорной лебёдки проходят в палубный клюз и цепной ящик, где укладывается излишек цепи. Общую длину и калибр якорной цепи определяют также по характеристике якорного снабжения Nc
37328. Технологический процесс изготовления детали “Форсунка” 133.5 KB
  Применяемый на ОАО «КАДВИ» технологический процесс изготовления детали «Форсунка» является вполне современным. Весь технологический процесс механической обработки разработан исходя из получения заготовки методом литья, что определяет выбор технологических баз как для первой...
37329. Таможенная служба Российской Федерации 90 KB
  Большинство законодательных и нормативных актов регулирующих таможенное дело были унифицированы на практике применяются основы таможенных законодательств государств участников СНГ. Созданы представительства таможенной службы России при таможенных службах Белоруссии и Казахстана и Киргизской республикой. Отменены таможенные ограничения во взаимной торговле нет больше необходимости содержать таможенную инфраструктуру ненужными стали почти девять тысяч километров внутренних границ 16 таможен 50 таможенных постов 64 автомобильных и 28...
37331. Аналитическое и табличное представление булевой функции 315.5 KB
  Аналитическое и табличное представление булевой функции. Представление функции в ДНСФ. Минимизация функции по формулам склеивания. Минимизация функции методом Карно.