Pesquisar conteúdos

Encontre uma trilha ou aula pelo assunto.

Experimente pesquisar por “governança”, “ITIL” ou “planejamento”.

Conteúdo da trilha

Arquitetura, esquemas, instâncias e níveis de abstração

Compreenda como um SGBD separa visões, organização lógica e armazenamento físico, distinguindo esquema de instância.
Diagrama conecta diferentes visões ao esquema conceitual e ao armazenamento físico, comparando dois estados da mesma estrutura

Abstração separa o que você precisa saber do que o SGBD precisa fazer

Na aula anterior, diferenciamos banco de dados, SGBD e aplicação. Agora podemos observar a mesma base por perspectivas diferentes. A pessoa que estuda quer ver seu progresso; a aplicação precisa reconhecer estudantes, trilhas e conclusões; o SGBD precisa localizar páginas, índices e registros no armazenamento. Todas essas perspectivas tratam da mesma coleção, mas não exigem o mesmo nível de detalhe.

Abstração de dados é a separação dessas perspectivas para que cada participante trabalhe com as informações relevantes ao seu papel. Ela reduz o acoplamento entre aplicações e detalhes internos, permite oferecer visões diferentes da mesma base e cria espaço para mudar a implementação sem reescrever tudo acima dela.

Abstrair não significa fingir que as camadas inferiores não existem. Índices, arquivos e memória afetam desempenho, capacidade e recuperação. A ideia é evitar que cada tela ou regra de negócio dependa diretamente desses detalhes.

Os níveis externo, conceitual e interno descrevem a mesma base

O modelo de referência ANSI/X3/SPARC organiza a descrição de um banco em três níveis. Ele é um instrumento conceitual: produtos reais podem combinar responsabilidades ou usar nomes diferentes, portanto não devemos procurar obrigatoriamente três programas ou três arquivos separados.

Nível externo: visões para usos específicos

O nível externo representa como um grupo de usuários ou uma aplicação enxerga uma parte dos dados. Uma mesma base pode oferecer várias visões externas.

Na plataforma de estudos:

  • o estudante vê título da trilha, progresso e próximo conteúdo;
  • o editor vê status de publicação, descrição SEO e referências;
  • uma rotina de relatório vê totais agregados, sem precisar dos campos usados pela interface.

Uma visão externa pode ocultar campos, combinar dados ou apresentar um resultado derivado. Isso ajuda a simplificar o uso e pode apoiar o controle de acesso, mas uma visão sozinha não substitui autenticação, permissões e políticas corretas.

Nível conceitual: a estrutura lógica compartilhada

O nível conceitual descreve a estrutura global da base: tipos de objetos, atributos, relacionamentos e restrições relevantes para toda a organização. Ele integra as diferentes visões sem dizer em qual bloco do disco cada registro será colocado.

Neste nível, podemos declarar que um estudante realiza matrículas, que uma matrícula se refere a uma trilha existente e que uma conclusão associa estudante e conteúdo. A modelagem entidade-relacionamento e o modelo relacional, estudados nas próximas aulas, oferecem formas de elaborar essa descrição.

Nível interno: como os dados são mantidos

O nível interno, também chamado de nível físico, descreve estruturas usadas para armazenar e acessar os dados: organização de arquivos e páginas, formatos de registros, índices, particionamento, compressão e caminhos de acesso, conforme os recursos do SGBD.

Uma aplicação pode solicitar “as conclusões do estudante 104” sem indicar endereços físicos. O gerenciador transforma a operação lógica em ações sobre suas estruturas internas.

Três níveis conectados mostram visões de estudante e editor, uma estrutura conceitual compartilhada e estruturas físicas de armazenamento e índices
Os níveis não são três bancos independentes. São descrições da mesma base: várias visões externas são mapeadas para uma estrutura conceitual, que por sua vez é realizada por estruturas internas.
NívelResponde principalmenteExemplo
ExternoO que este usuário ou aplicação precisa enxergar?painel com progresso da trilha
ConceitualQuais objetos, relações e regras formam a base?estudantes, matrículas, conteúdos e conclusões
InternoComo o SGBD armazena e encontra os registros?páginas, arquivos, índices e partições

Esquema descreve; estado registra o momento atual

Um esquema descreve a estrutura do banco em determinado nível. Ele registra quais elementos podem existir, como se relacionam e quais regras são aplicáveis. O esquema tende a mudar quando os requisitos ou o projeto mudam.

O estado do banco de dados é o conjunto de valores armazenados em um instante. Em parte da literatura, esse estado também é chamado de instância do banco. Ele muda continuamente conforme registros são inseridos, alterados ou removidos.

Considere uma estrutura conceitual que estabelece:

  • cada trilha possui um identificador e um título;
  • cada conteúdo pertence a uma trilha;
  • cada conclusão liga um estudante a um conteúdo existente.

Essa descrição é o esquema. Hoje podem existir três trilhas e quarenta conteúdos; amanhã, quatro trilhas e quarenta e um conteúdos. Os valores mudaram, portanto o estado mudou, mas a estrutura pode continuar igual.

Uma planta estrutural permanece no centro enquanto dois retratos temporais mostram quantidades e registros diferentes que obedecem à mesma estrutura
O esquema funciona como uma descrição relativamente estável; cada estado é uma fotografia dos valores que satisfazem essa descrição em um momento. Alterar dados não implica alterar o esquema.

“Instância” depende do contexto

O termo instância possui mais de um uso legítimo. Em teoria e em materiais didáticos, “instância do banco” pode indicar o estado dos dados em um instante. Em documentação de produtos, a palavra pode nomear recursos de execução.

No Oracle AI Database, por exemplo, uma instância corresponde a estruturas de memória e processos que administram os arquivos do banco. No PostgreSQL, a documentação usa expressões como “instância do servidor” e “cluster de bancos” dentro de sua própria arquitetura. Esses usos não anulam a definição acadêmica; eles tratam de objetos diferentes.

Para evitar ambiguidade nesta trilha, usaremos estado do banco quando falarmos dos valores em determinado momento. Quando um produto usar “instância” para processos e memória, o contexto será declarado explicitamente.

Mapeamentos ligam as perspectivas

Uma visão externa não contém necessariamente uma cópia independente de todos os dados. O SGBD mantém mapeamentos que relacionam a visão externa à estrutura conceitual e a estrutura conceitual à implementação interna.

Quando o estudante abre o painel de progresso, a aplicação expressa uma necessidade em termos conhecidos por ela. O gerenciador relaciona essa solicitação à estrutura lógica, escolhe um caminho interno, acessa os registros e devolve um resultado no formato esperado pela aplicação.

Essa tradução explica por que o nível externo não precisa conhecer cada índice. Também explica por que mudanças não são mágicas: se uma alteração rompe um mapeamento ou remove algo de que a aplicação depende, a camada superior precisará ser adaptada.

Independência de dados limita o efeito das mudanças

Independência de dados é a capacidade de alterar o esquema em um nível sem obrigar uma mudança correspondente no nível acima, desde que os mapeamentos e os contratos necessários sejam preservados.

Existem duas formas principais.

Independência física

A independência física permite modificar estruturas internas sem alterar o esquema conceitual nem as aplicações. Exemplos possíveis incluem:

  • criar ou substituir um índice;
  • reorganizar páginas ou arquivos;
  • mudar uma estratégia de particionamento;
  • mover dados para outro dispositivo de armazenamento.

Se o resultado lógico permanece o mesmo, o painel do estudante não precisa saber qual índice foi usado. Essa separação permite melhorar desempenho e operação com impacto menor sobre as aplicações.

Independência lógica

A independência lógica permite evoluir o esquema conceitual preservando as visões externas existentes. Por exemplo, o modelo pode separar nome_completo em componentes mais estruturados e manter uma visão que continue entregando o nome no formato esperado por uma aplicação antiga.

Ela costuma ser mais difícil que a independência física, porque mudanças no significado ou nas relações frequentemente alcançam as aplicações. Remover um campo utilizado ou alterar sua semântica não pode ser escondido apenas por renomeá-lo.

Duas mudanças seguem caminhos diferentes: um novo índice permanece abaixo da estrutura conceitual, enquanto uma evolução lógica usa um mapeamento para preservar a visão externa
Independência não significa ausência de trabalho. O nível alterado e seus mapeamentos precisam ser ajustados; o benefício é preservar o contrato do nível superior quando isso for tecnicamente possível.

Arquitetura de abstração não é arquitetura de implantação

Os três níveis descrevem perspectivas sobre os dados. Eles não devem ser confundidos com uma arquitetura de implantação em duas ou três camadas.

Em um arranjo cliente-servidor, uma aplicação cliente solicita operações e um processo servidor do SGBD gerencia os arquivos e executa ações. O PostgreSQL documenta esse modelo e observa que cliente e servidor podem executar em máquinas diferentes. Já uma arquitetura de aplicação em três camadas costuma separar interface, lógica de negócio e acesso a dados.

Essas divisões podem coexistir:

  • níveis externo, conceitual e interno: separam descrições dos dados;
  • cliente e servidor: separam papéis de comunicação e processamento;
  • interface, aplicação e dados: separam responsabilidades do software.

Uma caixa em um diagrama de implantação não corresponde automaticamente a um nível de abstração. O nível externo pode ser consumido por várias interfaces, e o nível interno pode estar distribuído em mais de uma máquina.

Esquema também possui um significado específico em produtos SQL

Além do significado amplo de descrição estrutural, alguns produtos usam schema como um contêiner nomeado dentro de um banco. No PostgreSQL, um banco contém schemas, e estes contêm tabelas e outros objetos. Nomes como catalogo.trilhas podem qualificar um objeto pelo schema catalogo.

Esse contêiner não é sinônimo automático do “esquema conceitual” inteiro do modelo de três níveis. É uma estrutura concreta oferecida pelo produto para organizar nomes, objetos e permissões. Em outros SGBDs, propriedade, alcance e relação com usuários podem variar.

Aplicando os níveis ao Guia Estudos

Imagine que o painel do estudante mostre apenas título, percentual concluído e próximo conteúdo. Essa é uma visão externa orientada à tarefa. O editor possui outra visão, com status, data de publicação e metadados.

No nível conceitual, ambas dependem de uma estrutura compartilhada que relaciona área, trilha, módulo, conteúdo e progresso. No nível interno, o SGBD pode manter índices para localizar conteúdos por trilha ou progresso por estudante.

Se um índice for substituído, temos uma mudança física que idealmente não altera as telas. Se o projeto passar a permitir que um conteúdo pertença a mais de uma trilha, a mudança é lógica e pode atingir regras, consultas e interfaces. A classificação ajuda a estimar onde o impacto deve ser analisado.

Um roteiro útil é perguntar:

  1. qual visão precisa permanecer estável?
  2. qual parte da estrutura lógica mudou?
  3. qual detalhe físico pode ser ocultado?
  4. qual mapeamento ou contrato precisa ser preservado?

Erros comuns

  • tratar os três níveis como três bancos: eles são perspectivas relacionadas da mesma base;
  • confundir esquema com os dados atuais: esquema descreve; estado contém valores de um momento;
  • supor que qualquer alteração é transparente: mudanças de significado podem exigir adaptação das aplicações;
  • confundir nível interno com código da aplicação: o interno trata da representação usada pelo SGBD;
  • usar “instância” sem contexto: teoria e produtos podem empregar a palavra para objetos diferentes;
  • confundir arquitetura ANSI/SPARC com aplicação em três camadas: uma organiza descrições de dados; a outra organiza componentes de software;
  • imaginar que uma visão externa garante segurança: ela pode limitar exposição, mas precisa trabalhar com permissões e controles adequados.

O que você deve guardar

Abstração de dados permite descrever a mesma base em perspectivas apropriadas. O nível externo atende usos específicos; o conceitual integra objetos, relações e regras; o interno organiza armazenamento e caminhos de acesso. Mapeamentos conectam os níveis.

Esquema é a descrição de uma estrutura; estado é o conjunto de valores em determinado momento. O termo instância pode indicar esse estado ou, em produtos específicos, recursos de execução. Independência física e lógica procuram conter o impacto das mudanças, mas dependem de contratos e mapeamentos preservados.

Na próxima aula, compare os modelos relacionais, de documentos, chave-valor, colunares e de grafos pela forma como cada estrutura representa e acessa os dados.

Referências