Modelagem de Dados 🎲🎲

A modelagem de dados é um processo essencial na área de programação e desenvolvimento de sistemas. Ela envolve a representação organizada e estruturada dos dados que um sistema manipula. Isso é fundamental para garantir a eficiência, integridade e facilidade de acesso às informações. A modelagem de dados segue algumas etapas chave:

  1. Análise de Requisitos: Compreender as necessidades do sistema e identificar os tipos de informações que serão armazenadas.
  2. Modelagem Conceitual: Criar um modelo de alto nível que representa as principais entidades (objetos) do sistema e suas relações.
  3. Modelagem Lógica: Converter o modelo conceitual em estruturas de dados que possam ser implementadas em um banco de dados, considerando as chaves primárias e estrangeiras.
  4. Normalização: Garantir que as tabelas do banco de dados estejam organizadas e otimizadas, reduzindo a redundância e melhorando a integridade.
  5. Modelagem Física: Definir os detalhes técnicos, como os tipos de dados, índices, partições e outras características específicas do banco de dados a ser utilizado.

Diferença entre Dado e Informação

Dado e informação são termos relacionados, mas possuem significados distintos:

Dado é uma representação bruta, objetiva e sem contexto. Pode ser números, textos, imagens, entre outros. São os "blocos de construção" das informações.

Informação, por outro lado, é o resultado do processamento e interpretação dos dados. Ela tem contexto e significado. Informação é o que podemos entender, utilizar e comunicar.

                

Para ilustrar a diferença, imagine que temos uma série de números: 5, 10, 15. Esses são dados. Agora, se interpretarmos esses números como a progressão aritmética de uma sequência, eles se transformam em uma informação, como a série de múltiplos de 5.

Exemplificrazy sobre Dado e Informação

No mundo da tecnologia, a distinção entre dado e informação é crucial. Dados são como os ingredientes crus, enquanto a informação é a deliciosa refeição que preparamos com esses ingredientes. Imagine uma receita de bolo: os ovos, a farinha e o açúcar são os dados, e o bolo pronto e saboroso é a informação que obtemos quando misturamos esses ingredientes e os cozinhamos. Assim como um chef transforma ingredientes em um prato gourmet, nós, programadores, transformamos dados em informações valiosas, fornecendo significado e contexto. É esse processo de transformação que torna a tecnologia tão poderosa, permitindo-nos compreender o mundo ao nosso redor e tomar decisões informadas.

Metadados

Os metadados são informações sobre informações. Eles descrevem os dados, fornecendo contexto, significado e características relevantes.
Em outras palavras, os metadados ajudam a entender, organizar e gerenciar os dados. Eles são fundamentais em diversos campos, incluindo programação e gerenciamento de conteúdo. Vamos explorar alguns aspectos importantes dos metadados:

  1. Descrição e Contexto: Os metadados descrevem o conteúdo dos dados, dando contexto e facilitando a compreensão. Isso é especialmente útil em sistemas de gerenciamento de informações, onde a busca por dados relevantes é aprimorada por informações descritivas.
  2. Estrutura e Relações: Os metadados podem especificar a estrutura dos dados, como campos em um banco de dados ou tags em um documento XML. Além disso, eles podem estabelecer relações entre diferentes conjuntos de dados, melhorando a organização e a integração.
  3. Gerenciamento e Rastreabilidade: Metadados auxiliam no gerenciamento de dados ao longo do tempo, fornecendo informações sobre criação, modificação e uso. Isso é crucial para a rastreabilidade e auditoria de dados.
  4. Padronização: A definição de padrões para metadados é essencial para garantir que as informações sejam consistentes e compreensíveis. Padrões como Dublin Core e Schema.org são amplamente utilizados para metadados em páginas da web.

Banco de Dados

Um banco de dados é um sistema organizado para armazenar, gerenciar e recuperar informações de maneira eficiente e estruturada. Ele atua como um repositório centralizado de dados que podem ser acessados, manipulados e consultados para apoiar processos de negócios, aplicações e análises. Bancos de dados são fundamentais para lidar com grandes volumes de informações, permitindo a organização, busca e recuperação de dados de maneira rápida e confiável.

Um BD é constituido de objetos: Tabelas, esquemas, visões, consultas, relatórios, procedimentos, triggers etc.

Modelo

Um modelo é uma representação simplificada de um sistema, objeto ou conceito real.
Ele é projetado para ajudar na compreensão, comunicação, análise, previsão ou simulação. Modelos são usados em diversos campos, desde ciência e engenharia até programação e tomada de decisões.
Um modelo pode ser uma abstração matemática, um esquema visual, uma simulação computacional ou qualquer outra forma de representação que facilite a compreensão ou a resolução de problemas.

Lembre-se de capturar detalhes o suficiente para que consiga construir o banco de acordo com a necesidade do projeto.

M.E.R.

  • Entidade: Compilação de Atributos sobre qual devemos possuir informações. (Ex: Clientes, Funcionários, Pedidos, Produtos)
    Esses atributos por vezes são chamados de instância de entidade, onde o atributo é uma ocorrência especificar de uma entidade.

  • Atributo: Qualidades ou Adjetivos que descrevem a entidade. (Ex: entidade: 'Fundos de Investimento' possui atributos como; Endereço, CNPJ, Razão Social...)
    Endereço por exemplo não é um campo atómico, ele é um Campo multivalorado pois pode conter: Logradouro, nome, bairro, CEP, Cidade e Estado, por tanto compensa separar em uma tabela de endereço ou fatiar o valor entre outras colunas do registro.
    Campos vetorizados diferente do multivalorado por outro lado pode conter multivalore só que do mesmo tipo ex: Telefone; 999999999-88888888-77777777, respectivamente referente a celular, telefone e telefone comercial. Neste caso também vale a divisão para subcampos.

  • Relacionamento: É uma associação entre entidades dado(geralmente) uma ação. (Ex: Cliente 'Compra' produto. o ID provavelmente identificaria o pedido)

D.E.R.

Representação gráfica associada ao MER

  • Retângulos: Representam entidades
  • Elipses: Representam atributos
  • Losangos: Representam relacionamentos
  • Linhas Ligam atributos a entidades e entidades a relacionamentos

Modelo Relacional

Componentes

O modelo relacional é um dos modelos de dados mais amplamente utilizados em sistemas de gerenciamento de banco de dados (SGBDs). Ele organiza os dados em **coleções de objetos** chamados **relações**. Cada relação é semelhante a uma tabela em um banco de dados, consistindo em linhas (registros ou Tuplas) e colunas (atributos) que armazenam informações relacionadas. Esse modelo oferece uma abordagem eficiente para representar e manipular dados.

Uma das características essenciais do modelo relacional é o conjunto de operadores que agem nas relações. Esses operadores incluem seleção (filtragem), projeção (seleção de colunas), junção (combinar informações de várias relações) e outras operações que permitem consultas sofisticadas. Esses operadores permitem que os usuários realizem análises complexas e recuperem informações específicas dos dados armazenados nas relações.

A **integridade de dados** é um componente crucial do modelo relacional. Isso envolve a aplicação de regras e restrições para garantir a **precisão e consistência** dos dados armazenados. A integridade de dados inclui a definição de chaves primárias para identificação única de registros, restrições de integridade referencial para manter a consistência entre relações relacionadas e outras regras que protegem a qualidade dos dados armazenados.

Esse modelo oferece vantagens em termos de simplicidade, flexibilidade e capacidade de consulta. Ele se tornou a base para muitos sistemas de banco de dados relacionais amplamente usados, oferecendo uma estrutura eficaz para armazenar e recuperar informações, além de garantir a integridade dos dados para tomada de decisões confiáveis.

Tuplas

No contexto de um banco de dados relacional, uma **tupla** é uma representação de um único registro ou linha em uma relação (também conhecida como tabela). Cada tupla contém dados relacionados aos atributos (colunas) definidos na relação. As tuplas são a unidade básica de armazenamento e gerenciamento de dados em um banco de dados relacional.

🔑

Chave Primária 🌟

Primary key (1ª Forma Normal) é um conceito fundamental no modelo relacional. Ela é um ou mais atributos selecionados para identificar **unicamente** cada tupla em uma relação. A chave primária garante que não haja duplicação de registros, o que é crucial para manter a integridade dos dados e permitir consultas precisas. Através da chave primária, podemos localizar e referenciar uma tupla específica de forma eficiente.

Uma chave primária deve atender a dois requisitos principais:
  1. unicidade (cada valor na chave primária deve ser único em relação a todas as tuplas)
  2. não nulidade (os valores da chave primária não podem ser nulos, ou seja, devem ter dados válidos)

O uso de chaves primárias é essencial para relacionar informações entre diferentes tabelas (relações) por meio de **chaves estrangeiras**, permitindo a criação de relações e consultas complexas, além de manter a consistência dos dados em todo o banco de dados.

Chave Natural e Chave Artificial

No contexto de bancos de dados, as chaves desempenham um papel fundamental na identificação única de registros em uma tabela. Existem dois tipos principais de chaves: chave natural e chave artificial.

Chave Natural

Uma chave natural é uma chave que é derivada dos próprios dados armazenados em um registro. Ela é baseada em informações intrínsecas ao registro e geralmente reflete uma característica única desse registro. Um exemplo clássico é o número de CPF (Cadastro de Pessoa Física) para identificar indivíduos em um banco de dados de pessoas. O CPF é uma chave natural porque é inerentemente único para cada pessoa.
O Problema é que ao trocar a regra de negócio voce pode ter que reestruturar a modelagem. Ex: A chave natural de um funcionário é o seu CPF (Cadastro de pessoa Física). Porém o negócio abriu uma filial em um outro pais, que contém um outro tipo de registro para identificar indivíduos.

Chave Artificial

Uma chave artificial, por outro lado, é uma chave que é atribuída de forma deliberada e externa aos registros, geralmente por um sistema de gerenciamento de banco de dados. Ela não tem relação direta com os dados reais do registro. Um exemplo de chave artificial é um número de identificação único gerado automaticamente pelo sistema para identificar produtos em um inventário. Essa chave é frequentemente um número sequencial que não possui significado intrínseco.
Ex: Autoincrement, sequenci, autogenerate...

Surrogate Key

Chave para visionamento de cadastro (OLAP)

Surrogate_Key ID NOME CIDADE ESTADO DATA_CADASTRO DATA_FIM
1 001 Hailton Oliveira São Paulo SP 2023-01-15 2023-04-20
2 001 Hailton Oliveira Salvador BA 2023-05-10 NULL

Chave Estrangeira 🔗

Uma chave estrangeira garante a integridade e a relação entre as tabelas, ajudando-nos a evitar erros e manter nossos dados consistentes. É como ter uma seta dizendo: "Ei, olhe lá, um pouco disso está ali".

Imagine que temos uma tabela de "Pedidos" e outra de "Clientes". A chave estrangeira na tabela "Pedidos" pode apontar para a chave primária da tabela "Clientes". Isso nos permite saber exatamente a quem pertence cada pedido.

Aplicando

Arquitetura de Três Níveis

A arquitetura de três níveis é uma abordagem amplamente utilizada para projetar sistemas de informações. Ela é dividida em três camadas distintas que desempenham papéis específicos na organização e gerenciamento de dados e funcionalidades:

Modelo Conceitual

O modelo conceitual é a camada mais alta da arquitetura. Ele se concentra em representar as entidades e relacionamentos de um sistema sem se preocupar com detalhes técnicos. É como criar um mapa abstrato do sistema, identificando as principais partes e como elas se relacionam. O modelo conceitual é valioso para entender os requisitos e a lógica do sistema antes de mergulhar nos detalhes técnicos.

Ação: Análise de Requisitos Documentar Requisitos.

Modelo Lógico

O modelo lógico está no meio da arquitetura. Ele traduz o modelo conceitual em uma estrutura de dados e regras de negócios mais detalhadas. Aqui, começamos a definir tabelas, relacionamentos, regras de validação e operações de consulta. É onde a abstração do modelo conceitual começa a tomar forma tangível. O modelo lógico é independente de plataformas específicas de banco de dados e serve como um guia para a implementação.

Ação: Expressar o modelo de dados Documentar Esquema.

Modelo Físico

O modelo físico é a camada mais baixa e concreta. Ele se concentra na implementação real do sistema em um ambiente específico, considerando detalhes técnicos como tipos de dados, índices, particionamento e otimização de consultas. Aqui, as tabelas do modelo lógico são transformadas em estruturas de banco de dados reais. O modelo físico é fortemente influenciado pela plataforma de banco de dados escolhida e pelas considerações de desempenho.

Ação: Especificações Especificar armazenamento e segurança.

Ação: Implementação Inserir dados reais e realizar manutenção.

Ambiente OLAP, Esquemas ⭐❄️

No mundo dos bancos de dados e análise, o ambiente OLAP (Processamento Analítico Online) desempenha um papel crucial na extração de informações valiosas a partir de grandes conjuntos de dados. Dois esquemas de design de banco de dados amplamente utilizados em ambientes OLAP são o esquema Star e o esquema Snowflake.

Esquema Star⭐

O esquema Star é conhecido por sua simplicidade e desempenho sólido. Nesse esquema, os dados são organizados em:

  1. Tabela central de fatos (fact table) que contém medidas quantitativas e se conecta diretamente a;
  2. Tabelas de dimensão (dimension tables) que armazenam informações descritivas.
Essa estrutura simplificada permite consultas rápidas e eficientes, tornando o esquema Star uma escolha sólida para análises que exigem respostas rápidas.

A Tabela fato guarda as chaves que apontam para as dimensões referente a composição do Fato.
Não existe ligação além das dimensões, dimensão não liga em dimensão

Esquema Snowflake❄️

O esquema Snowflake é uma variação do esquema Star que busca a normalização dos dados, resultando em uma estrutura mais complexa com várias tabelas de dimensão interligadas. Embora isso possa levar a uma economia de espaço, pode complicar as consultas e impactar o desempenho, especialmente em ambientes OLAP, onde a agilidade nas consultas é fundamental. O esquema Snowflake é mais adequado quando a conservação de espaço é uma prioridade e o desempenho pode ser sacrificado em certa medida.

Performance

A performance de cada modelo depende dos requisitos específicos de análise e das consultas a serem executadas. O esquema Star tende a oferecer melhor desempenho para consultas simples e frequentes devido à sua estrutura mais denormalizada. Ele minimiza a complexidade das consultas, resultando em tempos de resposta mais curtos.

Por outro lado, o esquema Snowflake pode ser mais eficiente em termos de armazenamento, mas as consultas podem ser mais complexas e, portanto, mais lentas. A decisão entre os dois modelos deve levar em consideração as necessidades específicas de análise e as prioridades de desempenho versus economia de espaço.

> OLAP: Data Marts DataWareHose | Ambiente Estrategico | Staging AREA: ETL | Ambiente Tatico | área e transformação OLTP: SQL, XML, XLSX | Ambiente Operacional |
Cubo

Bibliografia

Para aprofundar seus conhecimentos em data warehousing e business intelligence, você pode consultar as seguintes referências:

  1. Data Warehouse Toolkit - Autor: Ralph Kimball. Esta obra é um guia essencial para a criação e implementação de data warehouses eficazes. Kimball oferece insights valiosos sobre a modelagem dimensional e as melhores práticas em data warehousing.
  2. Business Intelligence com SQL Server na Prática - Autores: Thiago Alvarenga Leite e Cristiano Galvão. Este livro fornece orientações práticas sobre como utilizar o Microsoft SQL Server para implementar soluções de business intelligence. Ele abrange desde a extração de dados até a criação de relatórios e análises.