Pergunta

Qual é a diferença entre um modelo de domínio e de um modelo de dados?

Foi útil?

Solução

Um datamodel é um Projeto modelo que descreve apenas dados e suas relações. O modelo contém entidades, mas elas são descritas em termos de que dados Eles não possuem como agem com esses dados ou quais são suas responsabilidades.

Um modelo de domínio, por outro lado, é um modelo conceitual usado na análise de um domínio do problema. Ele descreve o domínio em termos de entidades que têm relações, dados e comportamento. Ele descreve as responsabilidades dessas entidades como relevantes para entender o domínio do problema.

BTW, uma excelente e muito curta introdução à UML é:

UML destilado: um breve guia para a linguagem de modelagem de objetos padrão

Outras dicas

UMA dados O modelo está focado na definição de esquema de banco de dados, incluindo tabelas, colunas e relacionamentos.

UMA domínio O modelo está focado no domínio dos negócios, incluindo conceitos (classes de objetos), comportamento (métodos/lógica) e relacionamentos.

Nos dois casos, a cardinalidade é usada para relacionamentos (por exemplo, 1: 1, 1: muitos, 0: muitos, ...).

Dito isto, você idealmente gostaria que o modelo de dados e o modelo de domínio estivessem intimamente relacionados, ou seja, uma pessoa com nome, ... e um MailingAddress, ... relaciona -se a uma tabela de pessoas com uma coluna de nome e um FK para uma tabela Mailing_addr entrada. Você precisa decidir onde a lógica está hospedada - nos objetos no sistema de software vs. no banco de dados por meio de procedimentos, gatilhos e outros.

Eu acho que o modelo de domínio e o modelo de dados agora são praticamente os mesmos com novas tecnologias de modelagem de cima para baixo. Quero dizer que você pode modelar em um diagrama de classe e adicionar apenas estereótipos de banco de dados no seu diagrama. Se você usar a ferramenta que eu uso, sua anotação EJB3 será imediatamente sincronizada com seu código. A próxima etapa é apenas usar um mapeador para criar seu banco de dados. Esta tecnologia funciona apenas com Java

Eu acho que é importante dar alguma clareza aqui para a posteridade.

Um modelo de dados é um desenho de como estruturar e representar informações.Por estrutura, quer dizer preocupações como "quinta forma normal".Por representação, quero dizer, a escolha de um computador de serialização, tais como número inteiro, ponto flutuante, ou seqüência de caracteres.

A prazo modelo de domínio na verdade, tem duas fundidos significados.

  • Um modelo de características essenciais de real ou imaginário coisas do mundo.Neste tipo de modelo, as classes representam humano, conceitos e instâncias são as coisas no mundo.Por exemplo, uma "Pessoa" classe teria instâncias, incluindo a mim e a você, e uma característica essencial pode ser que cada Pessoa tem uma mãe.Este tipo de modelo é chamado frequentemente um conceitual da ontologia ou o modelo conceitual e destina-se a fornecer significado.
  • Um modelo de informações necessárias sobre as coisas do mundo, geralmente com algum sistema em mente.Neste tipo de modelo, as classes representam informações que devem ser armazenadas sobre as coisas no mundo.Por exemplo, uma "Pessoa" classe teria instâncias que representam informações necessárias sobre a mim e a você, tais como nome, sobrenome, data de nascimento, atual, altura, e peso atual.Esta informação muitas vezes não não inclui todas as características essenciais, tais como as nossas mães, porque, para os fins de um determinado sistema, em que a informação não é necessária.Este tipo de modelo é chamado frequentemente um informações do modelo, conceitual dados modelo, ou operacional ontologia.

Tanto a UML e a CORUJA línguas podem ser utilizadas para representar qualquer tipo de modelo de domínio.Ambos podem ser considerados análise modelos, como eles são usados para analisar um domínio.Um é usado para compreender as coisas em um domínio, o outro é usado para reunir os requisitos para construir um determinado software ou sistema de banco de dados para as coisas em um domínio.Ambos são necessários, e, infelizmente, eles são geralmente confundidos tais que as pessoas que a construção de um modelo de análise encontram-se confusos sobre o que eles estão modelagem!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top