Modelagem de banco de dados com UML

Este artigo trata da modelagem de banco de dados usando uma extensão da UML para prover a modelagem relacional de banco de dados.

Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo

Este artigo trata da modelagem de banco de dados usando uma extensão da UML para prover a modelagem relacional de banco de dados.

Para que serve

Serve como um guia apresentando uma extensão da UML para a modelagem de dados relacional e dicas para transformar modelos de objeto em modelos relacionais.

Em que situação o tema é útil

A UML tem se tornado um padrão mundial para modelagem de software. A sua aplicação também para a tarefa de modelagem de dados representa a unificação de uma linguagem para atuar no desenvolvimento de software, simplificando tarefas de desenvolvimento, projeto e manutenção.

Resumo DevMan

O modelo de classes na UML é o principal artefato produzido para representar a estrutura lógica de um software. Ele captura tanto os requisitos de dados como o comportamento dos objetos no domínio do modelo. A sua aplicação também para a tarefa de modelagem de dados representa a unificação de uma linguagem para atuar no desenvolvimento de software, simplificando tarefas de desenvolvimento, projeto e manutenção.

Quando é necessário prover um mecanismo de persistência de dados confiável, flexível e eficiente para sistemas computacionais, os projetistas de hoje se deparam com muitas escolhas. Na perspectiva tecnológica, a escolha usualmente é entre pura orientação a objetos, objeto-relacional híbrida, pura relacional e soluções customizadas baseadas em formatos abertos ou proprietários (exemplo: XML, OLE structured storage).

Este artigo aborda uma dessas escolhas, que seria a adoção de uma camada de modelo de classe orientado a objetos no topo de um banco de dados puramente relacional. Não estaremos discutindo se esta seria a melhor ou mais simples solução, mas pragmaticamente ela seria uma das mais comuns e uma das que possui mais potencial.

Começaremos com uma rápida volta por dois domínios de projeto que estaremos tentando integrar: primeiro o modelo de classes orientado a objetos como representado na UML (Unified Modeling Language) e segundo o modelo de banco de dados relacional.

Para cada domínio nós olharemos apenas as principais funcionalidades que irão afetar nossa tarefa. Iremos então olhar as técnicas e principais questões envolvidas no mapeamento do modelo de classes para o modelo de banco de dados, incluindo persistência de objetos, comportamento dos objetos, relacionamento entre objetos e identidade dos objetos. Iremos concluir com uma revisão sobre o Perfil de Dados da UML (UML Data Profile).

Iremos assumir que os leitores já possuem alguma familiaridade com projeto de software usando o paradigma de orientação a objetos, UML e modelagem relacional de dados.

O modelo de classes da UML

O modelo de classes na UML é o principal artefato produzido para representar a estrutura lógica de um software. Ele captura tanto os requisitos de dados como o comportamento dos objetos no domínio do modelo. As técnicas para descobrir e elaborar este modelo estão fora do escopo deste artigo, então iremos assumir a existência de um modelo de classes bem projetado que requer o mapeamento para um banco de dados relacional.

A classe é a entidade lógica básica no UML. Ela define tanto os dados como o comportamento de uma unidade estrutural. Uma classe é um template ou modelo a partir do qual instâncias ou objetos são criados em tempo de execução (durante o uso do software). Quando desenvolvemos um modelo lógico como uma hierarquia estrutural em UML nós explicitamente lidamos com classes.

Quando trabalhamos com diagramas dinâmicos da UML, como diagramas de sequência e colaboração, trabalhamos com objetos ou instâncias de classes e suas interações em tempo de execução.

O princípio do encapsulamento de dados é baseado na localização do efeito. Uma classe possui elementos de dados internos pelos quais ela é responsável. O acesso a esses elementos de dados deve ser através do comportamento exposto da classe ou alguma interface que esta disponibilize. A aderência a este princípio resulta em código mais simples de ser mantido.

Comportamento de uma Classe"

[...] continue lendo...

Artigos relacionados