A rigor, a diferença entre Database e Schema não existe no MySql.
No entanto, esse não é o caso em outros mecanismos de banco de dados, como o SQL Server. No servidor SQL :,
Cada tabela pertence a um agrupamento de objetos no banco de dados denominado esquema do banco de dados . É um contêiner ou namespace ( Querying Microsoft SQL Server 2012 )
Por padrão, todas as tabelas no SQL Server pertencem a um esquema padrão chamado dbo . Ao consultar uma tabela que não foi alocada a nenhum esquema específico, você pode fazer algo como:
SELECT *
FROM your_table
que é equivalente a:
SELECT *
FROM dbo.your_table
Agora, o servidor SQL permite a criação de diferentes esquemas, o que lhe dá a possibilidade de agrupar tabelas que compartilham uma finalidade semelhante. Isso ajuda a organizar o banco de dados.
Por exemplo, você pode criar um esquema chamado vendas , com tabelas como faturas , ordens de crédito (e qualquer outro relacionado com vendas), e outro esquema chamado lookup , com tabelas como países , moedas , tipos de assinatura (e qualquer outra tabela usada como lookup tabela).
As tabelas que são alocadas a um domínio específico são exibidas no SQL Server Studio Manager com o nome do esquema anexado ao nome da tabela (exatamente o mesmo que as tabelas que pertencem ao esquema dbo padrão ).
Existem esquemas especiais no SQL Server. Para citar o mesmo livro:
Existem vários esquemas de banco de dados integrados e não podem ser descartados ou alterados:
1) dbo , o esquema padrão.
2) convidado contém objetos disponíveis para um usuário convidado ("usuário convidado" é uma função especial no jargão do SQL Server, com algumas permissões padrão e altamente restritas). Raramente usado.
3) INFORMATION_SCHEMA , usado pelas Visualizações do Esquema de Informação
4) sys , reservado exclusivamente para uso interno do SQL Server
Os esquemas não são apenas para agrupamento. Na verdade, é possível conceder permissões diferentes para cada esquema a usuários diferentes, conforme descrito no MSDN .
Fazendo isso, a pesquisa de esquema mencionada acima pode ser disponibilizada para qualquer usuário padrão no banco de dados (por exemplo, SELECT
apenas permissões), enquanto uma tabela chamada supplybankaccountdetails pode ser alocada em um esquema diferente chamado financeiro , e dar acesso apenas aos usuários em o grupo accounts
(apenas um exemplo, essa é a ideia).
Finalmente, e citando o mesmo livro novamente:
Não é o mesmo esquema de banco de dados e esquema de tabela . O primeiro é o namespace de uma tabela, enquanto o último se refere à definição da tabela