Um esquema de banco de dados é uma coleção de metadados que descreve os relacionamentos entre objetos e informações em um banco de dados.
Uma maneira fácil de visualizar um esquema é pensar nele como uma caixa que contém tabelas, procedimentos armazenados, visualizações e ativos de dados relacionados. Um esquema define a infraestrutura desta caixa.
Esquema de banco de dados: Contêineres de ativos de dados
Em seu nível básico, um esquema serve como um contêiner para ativos de dados. No entanto, diferentes fornecedores de banco de dados estruturam seus esquemas de maneiras diferentes.
O Oracle, por exemplo, trata cada esquema como uma conta de usuário. Para criar um novo esquema, um administrador de banco de dados cria um novo usuário de banco de dados com o nome do esquema pretendido.
Por que os esquema de banco de dados são importantes
Como os esquemas constituem um recurso estrutural básico de um banco de dados, a maioria dos ambientes de banco de dados aplica permissões de acesso a objetos em um nível de esquema.
Por exemplo, o banco de dados de uma empresa pode conter uma série de usuários. Cada usuário incorre em um esquema, mas o acesso a diferentes esquemas é concedido individualmente, e com a granularidade de permissões, a usuários fora do esquema inicial.
A maioria das ferramentas de gerenciamento de banco de dados não lista esquemas; em vez disso, eles listam bancos de dados e usuários.
Por exemplo, uma empresa cria contas de usuário (esquemas) para Bob e Jane. Ele também cria contas para departamentos como RH e Marketing. Em seguida, dá a um analista em cada departamento acesso à conta do esquema de seu departamento.
O analista de RH cria tabelas e exibições dentro do esquema de RH e concede a Bob acesso para ler (mas não gravar) uma tabela de RH que lista os nomes e números de identificação dos funcionários. Além disso, o analista de RH pode conceder acesso a Jane para ler e gravar em uma tabela de RH que lista os números de telefone dos funcionários.
Ao conceder acesso dessa forma, apenas as funções e usuários certos podem ler, gravar ou modificar os dados em um ativo de dados autocontido no banco de dados maior.
Cada mecanismo de banco de dados considera os esquemas como o método básico de segregação de dados em um ambiente multiusuário.
Diferentes mecanismos de banco de dados tratam usuários e esquemas de maneira diferente. Consulte a documentação de seu mecanismo de banco de dados para descobrir a sintaxe e os modelos lógicos que envolvem os usuários, esquemas e concessões de permissões.
Criação de esquema de banco de dados
Um esquema é formalmente definido usando Structured Query Language (SQL). Por exemplo, no Oracle, você cria um esquema criando a conta de usuário que o possui:
CREATE USER bob
IDENTIFIED BY Temporary_password
DEFAULT TABLESPACE exemplo
QUOTA 10M ON exemplo
TEMPORARY TABLESPACE temp
QUOTA 5M ON system
PROFILE app_user
PASSWORD EXPIRE ;
Outros usuários recebem acesso a novos esquemas em virtude de seu nome de usuário ou por uma ou mais funções às quais a conta do usuário foi adicionada.
Esquemas vs. Modelos de Dados
Como um modelo de dados, um esquema não é intrinsecamente estruturado para fazer nada. Em vez disso, é uma infraestrutura para oferecer suporte a permissões de segmentação em um banco de dados.
Um modelo de dados é uma coleção de tabelas e visualizações unidas em chaves específicas. Esses ativos de dados, juntos, atendem a uma finalidade comercial. É aceitável aplicar um modelo de dados a um esquema – para modelos de dados grandes e complexos, associá-los a esquemas torna a administração de banco de dados inteligente. Mas não é logicamente necessário usar um esquema para um modelo de dados ou tratar um modelo de dados como um esquema.
Por exemplo, o departamento de RH pode incluir um modelo de dados para análises de desempenho de funcionários em seu esquema. Em vez de criar um esquema para essas revisões, o modelo de dados pode ficar no esquema de RH (junto com outros modelos de dados) e permanecer logicamente distinto por meio de prefixos da tabela e nomes de exibição para os objetos no modelo de dados.
O modelo de dados pode receber um nome informal, como avaliações de desempenho , e então todas as tabelas e visualizações podem ser prefixadas por pr_. A tabela de listagem de funcionários pode ser referenciada como hr.pr_employee sem exigir um novo esquema para as avaliações de desempenho.
Perguntas frequentes
Enquanto um esquema de banco de dados fornece uma descrição do banco de dados, um estado de banco de dados se refere ao conteúdo de um banco de dados em um determinado momento.
Um esquema relacional descreve os relacionamentos entre tabelas e itens que estão associados uns aos outros.