A modelagem de dados é o processo de criação de uma representação visual de todo um sistema de informação ou de partes dele para comunicar conexões entre pontos de dados e estruturas.
O objetivo é ilustrar os tipos de dados usados e armazenados no sistema, as relações entre esses tipos de dados, as formas como os dados podem ser agrupados e organizados e seus formatos e atributos.
Os modelos de dados são construídos em torno das necessidades de negócios.
As regras e os requisitos são definidos antecipadamente por meio do feedback das partes interessadas do negócio para que possam ser incorporados ao projeto de um novo sistema ou adaptados na iteração de um existente.
Os dados podem ser modelados em vários níveis de abstração.
O processo começa coletando informações sobre os requisitos de negócios das partes interessadas e dos usuários finais.
Essas regras de negócios são então traduzidas em estruturas de dados para formular um projeto de banco de dados concreto.
Um modelo de dados pode ser comparado a um roteiro, um projeto de arquiteto ou qualquer diagrama formal que facilite uma compreensão mais profunda do que está sendo projetado.
A modelagem de dados emprega esquemas padronizados e técnicas formais. Isso fornece uma maneira comum, consistente e previsível de definir e gerenciar recursos de dados em uma organização ou até mesmo além.
Idealmente, os modelos de dados são documentos vivos que evoluem junto com as mudanças nas necessidades de negócios.
Eles desempenham um papel importante no suporte aos processos de negócios e no planejamento da arquitetura e estratégia de TI.
Os modelos de dados podem ser compartilhados com fornecedores, parceiros e/ou colegas do setor.
Como qualquer processo de design, o design de banco de dados e sistema de informação começa em um alto nível de abstração e se torna cada vez mais concreto e específico.
Os modelos de dados geralmente podem ser divididos em três categorias, que variam de acordo com seu grau de abstração.
O processo começará com um modelo conceitual, progredirá para um modelo lógico e terminará com um modelo físico.
Cada tipo de modelo de dados é discutido em mais detalhes abaixo:
Modelos de dados conceituais. Eles também são chamados de modelos de domínio e oferecem uma visão geral do que o sistema conterá, como será organizado e quais regras de negócios estão envolvidas. Os modelos conceituais geralmente são criados como parte do processo de coleta dos requisitos iniciais do projeto. Normalmente, eles incluem classes de entidade (definindo os tipos de coisas que são importantes para o negócio representar no modelo de dados), suas características e restrições, os relacionamentos entre elas e requisitos relevantes de segurança e integridade de dados. Qualquer notação é tipicamente simples.
Modelos de dados lógicos . Eles são menos abstratos e fornecem mais detalhes sobre os conceitos e relacionamentos no domínio em consideração. Um dos vários sistemas formais de notação de modelagem de dados é seguido. Eles indicam atributos de dados, como tipos de dados e seus comprimentos correspondentes, e mostram os relacionamentos entre as entidades. Os modelos de dados lógicos não especificam nenhum requisito técnico do sistema. Esse estágio é frequentemente omitido em práticas ágeis ou DevOps . Os modelos de dados lógicos podem ser úteis em ambientes de implementação altamente procedimentais ou para projetos orientados a dados por natureza, como design de data warehouse ou desenvolvimento de sistema de relatórios.
Modelos de dados físicos. Eles fornecem um esquema de como os dados serão armazenados fisicamente em um banco de dados. Como tal, eles são os menos abstratos de todos. Eles oferecem um design finalizado que pode ser implementado como um banco de dados relacional , incluindo tabelas associativas que ilustram os relacionamentos entre entidades, bem como as chaves primárias e estrangeiras que serão usadas para manter esses relacionamentos. Os modelos de dados físicos podem incluir propriedades específicas do sistema de gerenciamento de banco de dados (DBMS), incluindo ajuste de desempenho.
Como disciplina, a modelagem de dados convida as partes interessadas a avaliar o processamento e o armazenamento de dados em detalhes minuciosos.
As técnicas de modelagem de dados têm convenções diferentes que determinam quais símbolos são usados para representar os dados, como os modelos são dispostos e como os requisitos de negócios são transmitidos.
Todas as abordagens fornecem fluxos de trabalho formalizados que incluem uma sequência de tarefas a serem executadas de maneira iterativa.
Esses fluxos de trabalho geralmente são assim:
Identifique as entidades. O processo de modelagem de dados começa com a identificação das coisas, eventos ou conceitos que são representados no conjunto de dados a ser modelado. Cada entidade deve ser coesa e logicamente distinta de todas as outras.
Identifique as principais propriedades de cada entidade. Cada tipo de entidade pode ser diferenciado de todos os outros porque possui uma ou mais propriedades exclusivas, chamadas de atributos. Por exemplo, uma entidade chamada “cliente” pode possuir atributos como nome, sobrenome, número de telefone e saudação, enquanto uma entidade chamada “endereço” pode incluir nome e número da rua, cidade, estado, país e CEP. .
Identificar relacionamentos entre entidades. O primeiro rascunho de um modelo de dados especificará a natureza dos relacionamentos que cada entidade tem com as outras. No exemplo acima, cada cliente “mora em” um endereço. Se esse modelo fosse expandido para incluir uma entidade chamada “pedidos”, cada pedido também seria enviado e cobrado em um endereço. Esses relacionamentos geralmente são documentados por meio de linguagem de modelagem unificada (UML).
Mapeie atributos para entidades completamente. Isso garantirá que o modelo reflita como a empresa usará os dados. Vários padrões formais de modelagem de dados estão em uso generalizado. Desenvolvedores orientados a objetos geralmente aplicam padrões de análise ou padrões de design, enquanto os stakeholders de outros domínios de negócios podem recorrer a outros padrões.
Atribua chaves conforme necessário e decida sobre um grau de normalização que equilibre a necessidade de reduzir a redundância com os requisitos de desempenho. A normalização é uma técnica para organizar modelos de dados (e os bancos de dados que eles representam) em que identificadores numéricos, chamados chaves, são atribuídos a grupos de dados para representar relacionamentos entre eles sem repetir os dados. Por exemplo, se cada cliente recebe uma chave, essa chave pode ser vinculada ao endereço e ao histórico de pedidos sem ter que repetir essas informações na tabela de nomes de clientes. A normalização tende a reduzir a quantidade de espaço de armazenamento que um banco de dados exigirá, mas pode prejudicar o desempenho da consulta.
Finalize e valide o modelo de dados. A modelagem de dados é um processo iterativo que deve ser repetido e refinado à medida que as necessidades de negócios mudam.
A modelagem de dados evoluiu juntamente com os sistemas de gerenciamento de banco de dados, com os tipos de modelo aumentando em complexidade à medida que as necessidades de armazenamento de dados das empresas aumentaram.
Aqui estão vários tipos de modelos:
Modelos de dados hierárquicos representam relacionamentos um-para-muitos em um formato de árvore. Nesse tipo de modelo, cada registro tem uma única raiz ou pai que mapeia para uma ou mais tabelas filhas. Este modelo foi implementado no IBM Information Management System (IMS), que foi introduzido em 1966 e rapidamente encontrou uso generalizado, especialmente no setor bancário. Embora essa abordagem seja menos eficiente do que os modelos de banco de dados desenvolvidos mais recentemente, ela ainda é usada em sistemas XML (Extensible Markup Language) e sistemas de informações geográficas (GISs).
Os modelos de dados relacionais foram inicialmente propostos pelo pesquisador da IBM EF Codd em 1970. Eles ainda são implementados hoje em muitos bancos de dados relacionais diferentes comumente usados na computação corporativa. A modelagem de dados relacionais não requer uma compreensão detalhada das propriedades físicas do armazenamento de dados que está sendo usado. Nele, os segmentos de dados são unidos explicitamente por meio do uso de tabelas, reduzindo a complexidade do banco de dados.
Bancos de dados relacionais frequentemente empregam linguagem de consulta estruturada (SQL) para gerenciamento de dados.
Esses bancos de dados funcionam bem para manter a integridade dos dados e minimizar a redundância.
Eles são frequentemente usados em sistemas de ponto de venda, bem como para outros tipos de processamento de transações.
Os modelos de dados de relacionamento de entidade (ER) usam diagramas formais para representar os relacionamentos entre entidades em um banco de dados. Várias ferramentas de modelagem ER são usadas por arquitetos de dados para criar mapas visuais que transmitem objetivos de design de banco de dados.
Modelos de dados orientados a objetos ganharam força como programação orientada a objetos e se tornaram populares em meados da década de 1990. Os “objetos” envolvidos são abstrações de entidades do mundo real. Os objetos são agrupados em hierarquias de classes e possuem recursos associados. Bancos de dados orientados a objetos podem incorporar tabelas, mas também podem suportar relacionamentos de dados mais complexos. Essa abordagem é empregada em bancos de dados multimídia e de hipertexto, bem como em outros casos de uso.
Os modelos de dados dimensionais foram desenvolvidos por Ralph Kimball e foram projetados para otimizar as velocidades de recuperação de dados para fins analíticos em um data warehouse . Enquanto os modelos relacionais e de ER enfatizam o armazenamento eficiente, os modelos dimensionais aumentam a redundância para facilitar a localização de informações para geração de relatórios e recuperação. Essa modelagem é normalmente usada em sistemas OLAP .
Dois modelos de dados dimensionais populares são o esquema em estrela, no qual os dados são organizados em fatos (itens mensuráveis) e dimensões (informações de referência), onde cada fato é cercado por suas dimensões associadas em um padrão semelhante a uma estrela. O outro é o esquema floco de neve, que se assemelha ao esquema em estrela, mas inclui camadas adicionais de dimensões associadas, tornando o padrão de ramificação mais complexo.
A modelagem de dados torna mais fácil para desenvolvedores, arquitetos de dados, analistas de negócios e outras partes interessadas visualizar e entender as relações entre os dados em um banco de dados ou data warehouse.
Além disso, pode:
Reduza erros no desenvolvimento de software e banco de dados.
Aumente a consistência na documentação e no design do sistema em toda a empresa.
Melhore o desempenho do aplicativo e do banco de dados.
Facilite o mapeamento de dados em toda a organização.
Melhore a comunicação entre desenvolvedores e equipes de inteligência de negócios.
Facilite e acelere o processo de projeto de banco de dados nos níveis conceitual, lógico e físico.
Inúmeras soluções de engenharia de software assistida por computador (CASE) comerciais e de código aberto são amplamente utilizadas hoje, incluindo várias ferramentas de modelagem, diagramação e visualização de dados. Aqui estão vários exemplos:
O erwin Data Modeler é uma ferramenta de modelagem de dados baseada na linguagem de modelagem de dados Integration DEFinition for Information Modeling (IDEF1X) que agora suporta outras metodologias de notação, incluindo uma abordagem dimensional.
O Enterprise Architect é uma ferramenta visual de modelagem e design que suporta a modelagem de sistemas e arquiteturas de informações corporativas, bem como aplicativos de software e bancos de dados. É baseado em linguagens e padrões orientados a objetos.
O ER/Studio é um software de design de banco de dados compatível com vários dos sistemas de gerenciamento de banco de dados mais populares da atualidade. Ele suporta modelagem de dados relacional e dimensional.
As ferramentas gratuitas de modelagem de dados incluem soluções de código aberto, como o Open ModelSphere.