от диаграммы классов к базе данных реляционной диаграммы - PullRequest
8 голосов
/ 05 марта 2011

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

Ответы [ 5 ]

3 голосов
/ 05 марта 2011

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

Однако существует система моделирования, которая находится на полпути между диаграммой классов и диаграммой отношений. Его называют диаграммой E-R, где E-R - сокращение от Entity-Relationship. В модели E-R весь предмет анализируется на «сущности», которые могут быть людьми, местами или вещами, которые имеют идентичность. Это могут быть даже нематериальные вещи, например, банковский счет. Отношения включают две или более сущностей и их утверждения об отношениях, которые составляют большую часть данных в базе данных. Значения данных являются экземплярами атрибутов, а атрибуты описывают либо сущности, либо отношения между сущностями.

Большинство диаграмм E-R, которые вы увидите в SO, действительно являются реляционными диаграммами, маскирующимися под ER-диаграммы. В истинной схеме ER внешние ключи отсутствуют, отношения многие ко многим могут быть изображены в виде одной линии, и такие вещи, как шаблоны gen-spec, выглядят почти так же, как в диаграммах классов. Фактически, ER-диаграмма может рассматриваться как проекция объектного мира только на мир данных.

Если вы изучите моделирование ЭР как отдельную деятельность из реляционного моделирования, в результате чего появится другая модель, вам будет довольно легко преобразовать диаграммы классов в диаграммы ЭР.

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

И то, что было названо «атрибутами» в модели ER (возможно, «свойствами» в модели классов), становится «столбцами» в реляционной модели.

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

3 голосов
/ 05 марта 2011

Не уверен, что вы подразумеваете под "диаграммой реляционной базы данных".Если вы ссылаетесь на сценарий SQL с предложениями DDL для создания реляционной схемы для вашей модели, то, возможно, вы можете просто посмотреть, как инструменты выполняют это преобразование (например, проверьте этот онлайн-генератор кода UML to SQL http://modeling -языков.com / content / uml2db-full-generation-generation-sql-scripts-database )

Большинство правил преобразований просты (класс-> таблица, атрибут -> столбец, ассоциация -> внешний ключ, ...) но вы можете поиграть с UML-диаграммами с классами наследования и ассоциации и посмотреть, как это переводится.

2 голосов
/ 11 марта 2011

Существует отличная статья, объясняющая это преобразование: Моделирование базы данных в UML

2 голосов
/ 06 марта 2011

Еще одна опция, которую я использую, - это добавление стереотипов базы данных в мою диаграмму классов.Он генерирует аннотацию Java-постоянства в моем коде.Наконец, я генерирую свой код из своего кода Java с помощью Hibernate.

Он работает очень хорошо !!

1 голос
/ 11 марта 2011

Используя Enterprise Architect , вы можете автоматически генерировать ваши модальные классы в модели реляционных баз данных, используя преобразования MDA (Model Driven Architecture). Это избавляет вас от необходимости заново делать все свои диаграммы вручную.

Дополнительная информация о Преобразованиях MDA

...