Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

O que é um esquema de banco de dados?


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 esquemasesquemas 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 formafigura , 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-chave SCHEMA em vez de DATABASE na sintaxe SQL do MySQL, por exemplo, usando CREATE SCHEMA em vez de CREATE 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.