В чем разница между «диаграммами классов» и «моделями данных» в UML? - PullRequest
4 голосов
/ 19 января 2012

У меня есть домашнее задание, и я должен нарисовать диаграмму классов И модель данных. Я написал диаграмму классов. Я не знаю, что делать с моделью данных. В чем различия?

По текстам в интернете они мне кажутся, то есть: диаграммы классов и модели данных - это одно и то же.

В чем разница между class diagrams и data models.

Ответы [ 3 ]

6 голосов
/ 19 января 2012

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

Диаграмма классов подробно описывает, как вы разбили свою систему на отдельные объекты, как эти объекты связаны друг с другом и какими-либо известными интерфейсами, которые они могут иметь. Каждый класс в диаграмме классов может содержать как данные, так и функции.

Например, класс Car имеет класс Engine, Steering Wheel и несколько классов Wheel, Door, Seat и Pedal, связанных с ним. Во всем этом диаграмма классов является статической.

Я не совсем уверен, что вы подразумеваете под моделью данных.

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

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

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

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

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

Класс на диаграмме классов может иметь свойства данных (переменные кода и т. Д.) И функциональные свойства (методы, процедуры, функции и т. Д.), Но эти элементы класса также могут иметь свойства доступа (приватные, общедоступные и т. Д.). Диаграмма классов также может показывать наследование, например Volkswagon - это Автомобиль, так же как и Ford, оба наследуют от Car, и это можно показать.

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

Это потому, что он моделирует не отдельные объекты, которые имеют данные и функцию, а данные, связанные с этими объектами. Например, таблица Car может иметь реляционную ссылку на таблицу производителей, в которой хранятся значения Volkswagon и Ford. Он может иметь столбец Колеса, но он покажет только количество колес. Хранимые процедуры для базы данных существуют на уровне, выделенном из данных - они используют данные, но не управляются или не принадлежат таблицам данных, из которых они получают данные.

Я, наверное, не очень хорошо объяснил себя, но надеюсь, что помог.

Вот полезный сайт

А вот еще и на этом сайте моделирование данных специально .

1 голос
/ 05 марта 2015

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

1 голос
/ 20 января 2012

Datamodeling - это не UML, который ориентирован на объектный подход.

Сказав, что вы можете моделировать внутри диаграммы классов на уровне объекта и создавать свою базу данных, используя аннотации Hibernate в коде Java. Я имею в виду, что вы создаете свой код и одновременно добавляете аннотацию постоянства. Это создаст вашу базу данных при развертывании.

UML, который не предназначен для моделирования данных, также может создавать данные на уровне развертывания, если вы используете профиль Omondo Persistence. Это означает, что вы можете моделировать на уровне объекта, а также создавать свою базу данных. Очень мощный подход, потому что этап создания данных теперь соединен с объектом

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

...