Um esquema de banco de dados funciona como um modelo de como um banco de dados é organizado e estruturado. Ele define como as tabelas do banco de dados são dispostas, quais campos elas contêm e como essas tabelas se relacionam, possibilitando o acesso aos dados de maneira consistente e previsível. À medida que os sistemas de dados se tornam mais complexos, os esquemas de banco de dados se tornam mais importantes. Um esquema de banco de dados bem projetado facilita a manutenção dos dados pelas equipes e o acesso confiável a eles em bancos de dados operacionais, analíticos e distribuídos.
Em geral, três tipos de esquema distintos são normalmente usados no projeto de um banco de dados: o esquema de banco de dados conceitual, o esquema de banco de dados lógico e o esquema de banco de dados físico.
Em plataformas modernas, os esquemas de banco de dados também suportam governança centralizada e controle de acesso em escala, como visto em ferramentas como o Unity Catalog. Para equipes que trabalham com padrões de arquitetura de dados, é essencial entender como o design do esquema de banco de dados se alinha com o design mais amplo do sistema.
Um esquema de banco de dados é a estrutura que define como os dados são organizados, armazenados e acessados em um banco de dados. O termo esquema de banco de dados descreve a disposição das tabelas do banco de dados, os relacionamentos entre as entidades de dados e os objetos do banco de dados que suportam as operações de dados.
Esquemas de banco de dados definem:
Enquanto o esquema de banco de dados define a estrutura, uma instância de banco de dados se refere aos dados reais armazenados em um determinado momento. Schemas de banco de dados são implementados e gerenciados em plataformas de sistemas de gerenciamento de banco de dados, como Oracle Database e sistemas de banco de dados SQL.
Esquemas de banco de dados também fazem parte de uma arquitetura de dados mais ampla, ajudando a alinhar o armazenamento, o processamento e a governança entre sistemas.
Uma tabela de banco de dados é uma única estrutura de armazenamento usada para armazenar dados em um formato tabular de linhas e colunas. Ela representa uma entidade específica — como clientes, pedidos ou produtos — e armazena os dados existentes.
Um schema de banco de dados é a estrutura de todo o banco de dados. O esquema de banco de dados define a organização das tabelas do banco de dados, como elas se relacionam e como outros objetos de banco de dados são usados e acessados.
O schema do banco de dados é o projeto de construção. As tabelas do banco de dados são as salas individuais.
Na maioria dos casos, um banco de dados contém várias tabelas em um único esquema lógico. As tabelas são usadas juntamente com outros objetos de esquema, como índices e views.
Para saber mais sobre como esquemas e tabelas de banco de dados são integrados no plano geral de dados, consulte nosso Glossário de Arquitetura de Dados. Compreender a relação entre o design de esquema de banco de dados e as práticas de modelagem de dados é crucial para os designers de banco de dados.
Os esquemas de banco de dados são normalmente divididos em três tipos: esquema de banco de dados conceitual, esquema de banco de dados lógico e esquema de banco de dados físico. Essa separação ajuda a distinguir a intenção, a estrutura e a implementação, tornando os bancos de dados mais fáceis de projetar, manter e evoluir. Cada tipo de esquema de banco de dados atende a um propósito e a um grupo de partes interessadas distintos, mas eles trabalham juntos como parte de um processo de design de esquema unificado.
Na prática, essa separação dá suporte aos fluxos de trabalho modernos de engenharia de dados, permitindo que as equipes evoluam a estrutura sem interromper os sistemas downstream.
O esquema conceitual fornece uma visão de alto nível dos dados. Ele se concentra nas entidades e relacionamentos de negócios, sem detalhes técnicos.
Pontos principais:
O esquema de banco de dados lógico é a estrutura de dados detalhada que representa o esquema conceitual.
Inclui:
A estrutura lógica do banco de dados permanece independente do banco de dados e pode seguir abordagens de modelagem de dados em camadas, como a arquitetura medallion.
O esquema de banco de dados físico representa como os dados são armazenados e acessados em um sistema de banco de dados.
O esquema físico do banco de dados descreve:
Este nível geralmente é gerenciado por um administrador de banco de dados. O esquema físico inclui detalhes sobre como a estrutura lógica é implementada em uma infraestrutura de dados específica.
Um esquema de banco de dados é composto por várias partes principais que trabalham juntas para armazenar, recuperar e proteger dados. Os principais componentes de um esquema de banco de dados podem ser entendidos da seguinte forma:
O principal local onde os dados são armazenados em um esquema de banco de dados é em suas tabelas de banco de dados. Cada coluna em um esquema de banco de dados tem sua própria estrutura de tabela e tipos de dados, o que garante consistência no armazenamento de dados.
Além das tabelas de banco de dados, outros objetos de banco de dados podem ser entendidos como:
A capacidade de acessar esses objetos de esquema é controlada por meio de permissões, que garantem que apenas usuários de banco de dados autorizados possam acessar dados confidenciais em um esquema de banco de dados.
Para equipes que trabalham com governança de dados, é fundamental entender como as permissões de esquema de banco de dados se alinham a políticas de governança mais amplas.
Essas chaves garantem a integridade dos dados em um esquema de banco de dados.
A chave primária em uma tabela identifica exclusivamente cada registro. Cada linha em uma tabela pode ser identificada exclusivamente usando uma chave primária. A presença de uma chave primária garante que não sejam armazenados dados duplicados em uma tabela. Uma chave primária inteira pode consistir em chaves primárias e estrangeiras trabalhando juntas.
As chaves estrangeiras conectam duas ou mais tabelas em um esquema de banco de dados. As chaves estrangeiras se conectam a uma chave primária em outra tabela, estabelecendo relacionamentos de dados.
Esses relacionamentos são fundamentais em bancos de dados relacionais e sistemas de banco de dados SQL modernos, onde a confiabilidade transacional depende de fortes garantias de transações ACID. O uso adequado de chaves primárias e estrangeiras garante a consistência dos dados em todo o banco de dados.
Os tipos de dados definem quais tipos de valores são permitidos nas colunas. Os tipos comuns incluem:
A Linguagem de Definição de Dados (DDL) é usada para definir ou modificar esquemas e tabelas de banco de dados usando instruções create database.
As regras são usadas para adicionar recursos de segurança, como:
Ter essas regras definidas no nível do esquema garante que os bancos de dados mantenham os dados precisos e consistentes.
Índices e views são usados para melhorar o desempenho, a usabilidade e o controle em um esquema de banco de dados.
Os índices são usados para melhorar o desempenho das queries, acelerando a recuperação de dados de colunas que são frequentemente pesquisadas. No entanto, sabe-se que os índices degradam o desempenho de gravação, pois precisam ser atualizados cada vez que os dados são inseridos, atualizados ou excluídos.
Views são tabelas virtuais usadas para representar tabelas reais, geralmente para facilitar a escrita de consultas ou para limitar o acesso a dados específicos.
Um esquema de banco de dados bem projetado equilibrará desempenho com complexidade, garantindo um bom desempenho e evitando complexidade desnecessária.
As abordagens podem ser adequadas para diferentes tipos de atividades relacionadas a dados. A escolha da abordagem de design do esquema depende de como os dados serão usados.
O esquema em estrela é uma técnica simples de modelagem de dados usada em data warehousing. Ele possui:
Motivos para usar a modelagem de dados de esquema estrela:
O padrão de esquema em estrela é fundamental em arquiteturas de data warehouse.
Em um esquema snowflake, os dados são normalizados para reduzir os requisitos de armazenamento, dividindo as tabelas de dimensão em várias tabelas de dimensão.
As vantagens de usar um esquema floco de neve em vez de um esquema em estrela incluem:
Os designs de esquema snowflake também podem ser usados quando os dados nas dimensões são compartilhados em v ários contextos ou quando precisam ser mais normalizados. Tanto os padrões de esquema em estrela quanto os de floco de neve envolvem uma tabela de fatos central cercada por tabelas de dimensão.
O esquema hierárquico é aquele em que os dados são organizados em uma estrutura de árvore com relações pai-filho, em que cada filho tem um pai usando um modelo hierárquico.
Esse tipo de esquema é mais bem usado para dados que têm uma hierarquia inerente, como uma estrutura organizacional ou um documento XML. O esquema hierárquico é menos flexível que o esquema relacional e não pode lidar com relações de muitos para muitos. Este schema ainda é usado em algumas aplicações, embora o modelo hierárquico tenha sido amplamente substituído por bancos de dados relacionais.
Bancos de dados NoSQL também têm considerações de design de esquema. Diferentemente dos bancos de dados relacionais, eles podem não precisar de um esquema antes de poderem se conectar ao banco de dados e armazenar dados.
Os padrões de design de esquema mais comuns para bancos de dados NoSQL incluem:
Esses sistemas priorizam a flexibilidade e a escalabilidade, mas geralmente oferecem menos garantias de consistência integradas. Aplicações modernas, incluindo pesquisa baseada em vetores e queries de similaridade, estendem ainda mais essas vantagens e desvantagens em bancos de dados vetoriais. Entender quando usar bancos de dados NoSQL em vez de designs de esquema de banco de dados relacional tradicionais é importante para projetistas de banco de dados.
O design do esquema de banco de dados é um processo cíclico que vai desde a compreensão dos requisitos de negócios até a implementação de um banco de dados funcional.
O processo começa com o entendimento dos requisitos do negócio. Neste passo, a equipe:
É importante levar em consideração a escalabilidade, a segurança de dados confidenciais e quaisquer regras e leis no processo, pois é difícil implementar essas considerações no futuro.
Depois que os requisitos do negócio são identificados, a equipe cria diagramas de entidade-relacionamento, que são um modelo de alto nível dos dados no banco de dados. No design conceitual do banco de dados, a equipe:
Um diagrama de entidade-relacionamento fornece uma representação visual útil para que as pessoas de negócios e da área técnica cheguem a um acordo. O design conceitual deve ser verificado para garantir que corresponda às necessidades reais antes de passar para o próximo passo.
O esquema lógico transforma o modelo conceitual em um esquema de banco de dados detalhado que está pronto para implementação.
Durante esta etapa:
Neste estágio, o esquema lógico do banco de dados é preciso o suficiente para a implementação, mas ainda independente de um sistema de banco de dados específico. O esquema lógico serve como uma ponte entre o esquema conceitual e o esquema físico.
O esquema físico representa a implementação do banco de dados em um sistema de tecnologia de banco de dados específico.
Este passo normalmente envolve:
Caso os esquemas de banco de dados sejam transferidos de outro sistema ou para um sistema existente, a migração de dados é um passo importante. O esquema de banco de dados físico deve levar em conta os requisitos específicos da plataforma de gerenciamento de banco de dados de destino.
A normalização e a integridade de dados andam de mãos dadas e ajudam a garantir que os dados sejam precisos, consistentes e fáceis de manter.
A normalização do banco de dados é o processo de organização de dados para reduzir a redundância e melhorar a integridade de dados. A normalização é comumente descrita usando formas normais progressivas, incluindo 1NF, 2NF e 3NF.
A normalização do banco de dados divide uma tabela grande em tabelas de dados menores e relacionadas. Isso ajuda a:
Em alguns casos, a normalização torna as coisas mais lentas. A desnormalização é uma técnica de design de banco de dados em que:
A desnormalização é usada em data warehousing e analítica, e em projetos de esquema em estrela e esquema em floco de neve para cargas de trabalho de processamento analítico on-line.
O objetivo de um bom design de esquema é acomodar padrões comuns de acesso a dados. Na maioria das vezes, isso significa projetar um esquema normalizado para facilitar o entendimento e, em seguida, fazer pequenas alterações para melhorar o desempenho ou a usabilidade.
A consistência também é importante para a usabilidade, permitindo que muitas pessoas trabalhem com os dados sem confusão. O projeto de esquema não é um processo único. É importante revisar o esquema com frequência e fazer alterações para evitar que uma pequena limitação se torne uma grande limitação.
Esquemas de banco de dados escaláveis baseiam-se em alguns conceitos simples:
Esses conceitos são importantes em grandes bancos de dados de warehouse. Compreender a relação entre o projeto de esquema de banco de dados e os princípios de arquitetura de dados garante a escalabilidade.
O design do schema também desempenha um papel fundamental na segurança e governança de dados.
Para organizações que implementam estratégias abrangentes de governança de dados, as permissões de esquema de banco de dados são um controle fundamental.
Erros de design de esquema podem levar a problemas de qualidade de dados e desempenho:
O SQL é usado para definir schemas de banco de dados. O SQL fornece instruções sobre como os schemas de banco de dados são criados, alterados e mantidos atualizados em relação à forma como os dados são armazenados ou acessados.
As tarefas mais comuns de gerenciamento de esquema de banco de dados em SQL envolvem um conjunto de instruções básicas da Linguagem de Definição de Dados (DDL).
Criar esquemas e tabelas: a instrução CREATE SCHEMA cria um namespace, enquanto CREATE TABLE cria tabelas de banco de dados no esquema. Os comandos de esquema SQL são fundamentais para o gerenciamento de banco de dados.
Definir estrutura e relacionamentos: as colunas, os tipos de dados, a chave primária, as chaves estrangeiras e outras restrições são definidos nas definições da tabela. O esquema define como os objetos do banco de dados se relacionam.
Modificar tabelas existentes: a instrução ALTER TABLE permite que os usuários adicionem colunas ou alterem tipos de dados e restrições na estrutura do banco de dados SQL.
Remover objetos de esquema: a instrução DROP TABLE ou DROP SCHEMA exclui uma tabela ou um esquema, com pleno conhecimento da potencial perda de dados.
Estas são as instruções de gerenciamento de esquema SQL mais importantes, que são usadas em mecanismos de analítica distribuída, como o Spark SQL.
Apesar de o SQL ser um padrão, o gerenciamento de esquemas pode variar entre diferentes bancos de dados.
Oracle Database vs. SQL Server: os esquemas do Oracle Database são associados a usuários do banco de dados, enquanto os esquemas do SQL Server são unidades organizacionais separadas. A arquitetura do sistema de gerenciamento de banco de dados difere entre as plataformas.
Outra terminologia de banco de dados: o MySQL se refere a isso como um banco de dados, enquanto o PostgreSQL se refere a isso como um esquema. Cada sistema de banco de dados tem convenções exclusivas.
Problemas de portabilidade: diferentes tipos de dados, restrições, indexação e sintaxe DDL podem dificultar a migração de um esquema de um sistema de banco de dados para outro.
Devido a essas variações, o gerenciamento de esquemas de banco de dados geralmente requer ajustes específicos do banco de dados, mesmo quando os designs seguem as práticas padrão de SQL. Um administrador de banco de dados deve entender essas diferenças de plataforma.
Esquemas de banco de dados são usados em sistemas de dados modernos, incluindo data warehouses, data lakes e plataformas de transmissão. Embora a tecnologia de banco de dados usada seja diferente, o objetivo de usar um esquema é o mesmo: fornecer estrutura, significado e consistência aos dados.
As plataformas de dados em cloud gerenciam esquemas de banco de dados em grande escala, especificamente entre dados e usuários compartilhados.
Pontos-chave:
Esses padrões são típicos em plataformas de analítica nativo cloud, construídas em torno de um modelo de data warehouse unificado. As plataformas de nuvem modernas tratam o esquema de banco de dados como uma camada de governança principal.
Alterar o esquema do banco de dados em um ambiente de produção é difícil, especialmente quando várias tabelas e cargas de trabalho dependem do esquema do banco de dados.
As abordagens comuns para evoluir o esquema do banco de dados incluem:
Essas práticas dão suporte à evolução do esquema confiável em ambientes modernos de engenharia de dados.
O esquema de banco de dados desempenha um papel fundamental na governança de dados e compliance.
O esquema de banco de dados fornece o seguinte:
Esses recursos de esquema de banco de dados garantem a criação de um ambiente de governança de dados, conforme implementado no Unity Catalog. Os dados do esquema tornam-se uma fonte da verdade para a organização de dados e o gerenciamento de banco de dados.
Um sistema de e-commerce simples oferece uma maneira prática de ver como os esquemas de banco de dados são aplicados em cenários do mundo real.
Em um sistema transacional de e-commerce, o esquema de banco de dados é projetado para suportar as operações do dia a dia, como fazer pedidos e gerenciar clientes para o processamento de transações online.
Um esquema de banco de dados relacional típico inclui:
Estas tabelas de banco de dados são conectadas usando chaves primárias e estrangeiras:
Essa estrutura impõe relacionamentos de um para muitos, minimiza a redundância e mantém a integridade de dados para cargas de trabalho transacionais. O design do esquema do banco de dados garante a consistência dos dados em operações de processamento de transações online.
Para relatórios e analíticas, este esquema transacional geralmente é transformado em um padrão de esquema em estrela.
Neste padrão:
Este design de esquema simplifica as queries e oferece suporte a relatórios eficientes em data warehouses e sistemas de Business Intelligence usando o processamento analítico on-line.
O projeto de esquema equilibra a integridade de dados, o desempenho da query e a eficiência do armazenamento.
Para mais detalhes sobre o esquema em estrela e as decisões de modelagem dimensional, consulte o blog Implementing Dimensional Data Warehouse.
Um esquema de banco de dados bem projetado é fundamental para sistemas de dados confiáveis e de alto desempenho. Ao separar a intenção conceitual, a estrutura lógica e a implementação física, os esquemas de banco de dados oferecem suporte à clareza, à escalabilidade e à manutenibilidade a longo prazo.
O design de schema funciona melhor como um processo iterativo de design, teste e refinamento. Ferramentas como ERDs, ferramentas de modelagem de banco de dados e clientes SQL apoiam essa evolução. Um administrador de banco de dados e designers de banco de dados devem colaborar durante todo o processo para garantir que o design do schema do banco de dados atenda a todos os requisitos.
Para continuar aprendendo, pratique o design de schemas, aprofunde seu entendimento sobre normalização de banco de dados e explore diferentes padrões de design de schema. Para uma base mais ampla, consulte o Glossário de Arquitetura de Dados.
Entender como os princípios de esquema de banco de dados se aplicam às práticas modernas de arquitetura de dados e modelagem de dados ajudará você a construir sistemas de dados mais eficazes que escalam de acordo com as necessidades da sua organização. Seja trabalhando com bancos de dados relacionais, bancos de dados NoSQL ou sistemas híbridos, um design de schema de banco de dados sólido continua sendo essencial.
