Em termos de banco de dados, um esquema (pronuncia-se "skee-muh" ou "skee-mah") é a organização e estrutura de um banco de dados. Ambos os esquemas e esquemas podem ser usados como formas plurais.
Um esquema contém objetos de esquema, que podem ser tabelas, colunas, tipos de dados, visualizações, procedimentos armazenados, relacionamentos, chaves primárias, chaves estrangeiras etc.
Um esquema de banco de dados pode ser representado em um diagrama visual, que mostra os objetos do banco de dados e seu relacionamento entre si.
Acima está um exemplo simples de um diagrama de esquema. Ele mostra três tabelas, juntamente com seus tipos de dados, relacionamentos entre as tabelas, bem como suas chaves primárias e chaves estrangeiras.
Aqui está um exemplo mais complexo de um esquema de banco de dados:
Nesse caso, o diagrama de esquema foi separado em quatro seções:
- Dados do cliente :dados relacionados aos clientes, como nome, endereço etc.
- Negócios :dados necessários para administrar a empresa, como funcionários, localizações das lojas, detalhes de pagamento etc.
- Inventário :Detalhes sobre todos os produtos. Nesse caso, os produtos são filmes, portanto, contém dados como título do filme, sua categoria, os atores etc.
- Visualizações :visão especial dos dados usados para avaliações.
Então, olhando para esses diagramas de esquema, podemos ir em frente e criar um banco de dados. Na verdade, o MySQL Workbench permite que você gere um
CREATE TABLE
script diretamente do diagrama. Você pode usar o script para criar um banco de dados. Você pode até fazer engenharia reversa de um banco de dados em um diagrama. Um esquema e um banco de dados são a mesma coisa?
Há muita confusão sobre esquemas quando se trata de bancos de dados. A questão geralmente surge se há uma diferença entre esquemas e bancos de dados e, em caso afirmativo, qual é a diferença.
Depende do Fornecedor
Parte do motivo da confusão é que os sistemas de banco de dados tendem a abordar os esquemas à sua maneira.
- A documentação do MySQL afirma que fisicamente,
um esquema é sinônimo de banco de dados
. Portanto, um esquema e um banco de dados são a mesma coisa . - No entanto, a documentação do Oracle Database afirma que determinados objetos podem ser armazenados em um banco de dados, mas não em um esquema. Portanto, um esquema e um banco de dados são duas coisas diferentes .
- E de acordo com este artigo técnico do SQL Server, um esquema é uma entidade separada dentro do banco de dados. Então, são duas coisas diferentes .
Portanto, dependendo do RDBMS que você usa, esquemas e bancos de dados podem ou não ser a mesma coisa.
E o padrão SQL?
O padrão SQL ISO/IEC 9075-1 define um esquema como
uma coleção persistente e nomeada de descritores.
Se você estava confuso antes, espero que eu não tenha piorado…
Significado amplo
Outro motivo para a confusão provavelmente se deve ao fato de que o termo esquema tem um significado tão amplo. Tem diferentes conotações dentro de diferentes contextos.
A palavra esquema se origina da palavra grega skhēma , que significa forma , figura , forma , ou plano .
O esquema é usado na psicologia para descrever um padrão organizado de pensamento ou comportamento que organiza categorias de informações e as relações entre elas.
Antes de projetar um banco de dados, também precisamos analisar as categorias de informações e as relações entre elas. Precisamos criar um conceitual esquema antes mesmo de começarmos com o físico esquema dentro do SGBD.
No desenvolvimento de software, ao discutir esquemas, pode-se estar discutindo conceitual esquemas, físicos esquemas, internos esquemas, externos esquemas, lógico esquemas, etc. Cada um deles tem seu significado específico.
Definições de esquema por DBMS
Aqui está uma definição rápida de esquema dos três principais sistemas de banco de dados:
MySQL
Conceitualmente, um esquema é um conjunto de objetos de banco de dados inter-relacionados, como tabelas, colunas de tabelas, tipos de dados das colunas, índices, chaves estrangeiras e assim por diante.
….
No MySQL, fisicamente, um esquema é sinônimo de um banco de dados . Você pode substituir a palavra-chaveSCHEMA
em vez deDATABASE
na sintaxe SQL do MySQL, por exemplo, usandoCREATE SCHEMA
em vez deCREATE DATABASE
.
Fonte: "Glossário MySQL". Manual de referência do MySQL 5.7. MySQL. Recuperado em 6 de junho de 2016.
SQL Server
Os nomes de tabelas, campos, tipos de dados e chaves primárias e estrangeiras de um banco de dados.
"Glossário". Documentação técnica do SQL Server 2016. Rede de Desenvolvedores da Microsoft. Recuperado em 6 de junho de 2016.
Banco de dados Oracle
O sistema de esquema do Oracle Database é bem diferente dos outros sistemas. O esquema da Oracle está muito ligado ao usuário do banco de dados.
Um esquema é uma coleção de estruturas lógicas de dados ou objetos de esquema. Um esquema é de propriedade de um usuário de banco de dados e tem o mesmo nome desse usuário. Cada usuário possui um único esquema.
Fonte: "Objetos de banco de dados". Documentação do Oracle Database Online 12c Versão 1 (12.1). Central de Ajuda da Oracle. Recuperado em 6 de junho de 2016.
Este artigo sobre definições de esquema por DBMS fornece mais detalhes.
Criando esquemas
Apesar de suas diferenças na definição de esquemas, cada um dos três SGBDs mencionados acima suporta o
CREATE SCHEMA
demonstração. E é aí que a semelhança termina.
MySQL
No MySQL,
CREATE SCHEMA
cria um banco de dados. Isso ocorre porque
CREATE SCHEMA
é sinônimo de CREATE DATABASE
. Em outras palavras, você pode usar CREATE SCHEMA
ou CREATE DATABASE
para fazer a mesma coisa. Banco de dados Oracle
No Oracle Database, o
CREATE SCHEMA
declaração não cria realmente um esquema. Isso ocorre porque um esquema já foi criado com cada usuário do banco de dados. No Oracle, o
CREATE USER
instrução cria o esquema. No Oracle,
CREATE SCHEMA
instrução permite preencher seu esquema com tabelas e visualizações e conceder privilégios nesses objetos sem precisar emitir várias instruções SQL em várias transações. SQL Server
No SQL Server,
CREATE SCHEMA
criará um esquema com o nome que você der. Ao contrário do MySQL, o
CREATE SCHEMA
A instrução cria um esquema definido separadamente no banco de dados. Ao contrário da Oracle, o
CREATE SCHEMA
declaração realmente cria o esquema. No SQL Server, depois de criar o esquema, você pode adicionar usuários e objetos a ele.
Conclusão
O termo esquema pode ser usado em muitos contextos diferentes. No contexto da criação de esquemas em um sistema de gerenciamento de banco de dados específico, você precisará trabalhar com no entanto, o DBMS defina esquemas.
E quando você mudar para um novo DBMS, verifique como esse sistema define esquemas.