Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Introdução à modelagem de dados - Artigo Revista SQL Magazine 86
O artigo apresenta o assunto modelagem de dados, descrevendo os principais conceitos envolvidos no assunto e diferentes notações que podem ser aplicadas para modelagem dos dados.
[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da SQL Magazine 86
O objetivo deste artigo é apresentar uma visão geral sobre as habilidades de modelagem de dados fundamentais que todos os desenvolvedores devem ter, habilidades que podem ser aplicadas em projetos tradicionais que seguem uma abordagem em série e aplicadas em projetos ágeis que seguem uma abordagem evolucionária. Idealmente, todos profissionais de TI deveriam ter um entendimento básico sobre modelagem de dados. Eles não precisam ser especialistas neste assunto, mas deveriam estar preparados para se envolverem na criação de um modelo, estar apto a ler um modelo de dados existente, entender quando criar um modelo de dados e quando não criar e conhecer as técnicas de projeto de dados fundamentais.
Neste contexto, este artigo apresenta uma breve introdução sobre estas habilidades. Seu público principal são os desenvolvedores de aplicações que precisam obter um entendimento de alguma das atividades críticas realizadas por um DBA. Este entendimento deve levar ao conhecimento do que um DBA faz e por que faz, ajudando a estabelecer uma ponte de comunicação reduzindo a distância existente entre esses dois papéis fundamentais no desenvolvimento de software (desenvolvedor e DBA).
Modelagem de dados é o ato de explorar estruturas orientadas a dados. Como outros artefatos de modelagem, modelos de dados podem ser usados para uma variedade de propósitos, desde modelos conceituais de alto nível até modelos físicos de dados. Do ponto de vista de um desenvolvedor atuando no paradigma orientado a objetos, modelagem de dados é conceitualmente similar à modelagem de classes. Com a modelagem de dados identificamos tipos de entidades da mesma forma que na modelagem de classes identificamos classes. Atributos de dados são associados a tipos de entidades exatamente como associados atributos e operações às classes. Existem associações entre entidades, similar às associações entre classes – relacionamento, herança, composição e agregação são todos conceitos aplicáveis em modelagem de dados.
Modelagem de dados tradicional é diferente da modelagem de classes porque o seu foco é totalmente nos dados – modelos de classes permitem explorar os aspectos comportamentais e de dados em um domínio de aplicação, já com o modelo de dados podemos apenas explorar o aspecto dado. Por causa deste foco, projetistas de dados tendem a serem melhores em identificar os dados “corretos” em uma aplicação do que modeladores de objetos. No entanto, algumas pessoas modelam métodos de banco de dados (stored procedures, stored functions e triggers) quando estão realizando a modelagem física dos dados.
Apesar de o foco deste artigo ser modelagem de dados, existem normalmente alternativas para artefatos orientados a dados. Por exemplo, quando estamos na modelagem conceitual, os diagramas ORM (Object Role Model) não são a única opção. Além do Modelo Lógico de Dados, é comum a criação de diagramas de classes da UML.
Como modelos de dados são usados na prática?
Embora as questões de metodologias sejam abordadas depois, precisamos discutir como modelos de dados podem ser usados na prática para melhor entendê-los. Provavelmente, iremos nos deparar a três estilos básicos de modelos de dados:
· Modelos de dados conceituais: esses modelos, algumas vezes chamados modelos de domínio, são tipicamente usados para explorar conceitos do domínio com os envolvidos no projeto. Em equipes ágeis, modelos conceituais de alto nível são normalmente criados como parte do esforço inicial do entendimento dos requisitos do sistema, pois eles são usados para explorar as estruturas e conceitos de negócio estáticos de alto nível. Em equipes tradicionais (não ágeis), modelos de dados conceituais são normalmente criados como precursores aos modelos lógicos de dados (MLD) ou suas alternativas.
· Modelos Lógico de Dados (MLDs): MLDs são usados para explorar os conceitos do domínio e seus relacionados. Isso pode ser feito para o escopo de um simples projeto ou para uma empresa inteira. MLDs descrevem os tipos de entidades lógicas, tipicamente referenciadas simplesmente como tipos de entidades, os atributos de dados que descrevem essas entidades e os relacionamentos entre as entidades. MLDs são raramente usados em projetos ágeis apesar de normalmente estarem presentes em projetos tradicionais (onde eles raramente adicionam muito valor na prática).
· Modelos Físicos de Dados (MFDs): MFDs são usados para projetar o esquema interno de um banco de dados, descrevendo as tabelas de dados, as colunas de dados das tabelas e o relacionamento entre as tabelas. MFDs normalmente são bastante úteis em projetos ágeis e tradicionais, por isso este será o foco deste artigo: modelagem física dos dados.
Embora MLDs e MFDs parecerem similares, e eles de fato são, o nível de detalhes que eles modelam pode ser significativamente diferente. Isso porque o objetivo de cada diagrama é diferente – podemos usar um MLD para explorar conceitos do domínio com os envolvidos no projeto e MFD para definir o projeto do banco de dados. A Figura 1 apresenta um simples MLD e a Figura 2 um simples MFD, ambos modelando o conceito de clientes e endereços, assim como o relacionamento entre eles. Ambos os diagramas seguem a notação de Barker, que será descrita a seguir. Note como o MFD mostra mais detalhes, incluindo uma tabela associativa necessária para implementar a associação, assim como as chaves necessárias para manter os relacionamentos. Mais detalhes sobre esses conceitos serão descritos a seguir.
Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Arilo Cláudio Dias Neto
Doutor em Engenharia de Sistemas e Computação formado na COPPE/UFRJ e possui o certificado de Implementador do modelo MPS. Possui 7 anos de experiência em análise, desenvolvimento e teste de software. É editor técnico da Revista SQL Magazine, gerenciada pelo Grupo DevMedia.
2 COMENTÁRIOS
Pena não ter conseguido visualizar as figuras 6 e 7...



