O que são Schemas?

Os Schemas são uma coleção de objetos dentro de um determinado database (banco de dados), servem para agrupar objetos no nível de aplicação como também para simplesmente fazer divisões departamentais. Schemas são bastante utilizados em padrões de sistema de banco de dados. São muito importantes para a performance e segurança.

Este recurso existe desde o SQL Server 2000, mas que não foi dado a devida importância.

Para se ter uma ideia do que seria um Schema, vamos mostrar no SQL Server 2008, no banco AdventureWorks, quais são os Schemas desse banco. Para isso entre no Management Studio, conecte-se, expanda a pasta DATABASES, expanda também a pasta do banco e em seguida a pasta TABLES, como mostra a Figura 1:

Object Explorer mostrando os Schemas do banco AdventureWorks

Figura 1.Object Explorer mostrando os Schemas do banco AdventureWorks.

Na figura acima é mostrado os Schemas do banco de dados (marcados de vermelho), sendo que o padrão é o dbo, ou seja, se você tentar criar uma tabela ou fazer uma inserção em uma tabela e não fazer referencia a um Schema, ela será criada ou o dado será inserido no Schemadbo (padrão).

Após essa breve explicação, vamos dar inicio a criação de Schemas, nesse primeiro momento, vamos utilizar comandos T-SQL, antes eu criei um banco de dados de nome EXEMPLO_SCHEMA.

Listagem 1.Comando de criação de Schema

CREATE SCHEMA [nome_esquema]
AUTHORIZATION dbo

Para confirmar a criação do Schema, expanda a pasta SECURITY e em seguida a pasta SCHEMAS no banco dados utilizado, como mostra a Figura 2:

Janela do Object Explorer mostrando o Schema FUNCIONARIO criado

Figura 2.Object Explorer mostrando o Schema FUNCIONARIO criado.

Vamos criar uma tabela sem nenhuma referência a Schemas, veja o exemplo abaixo.

Listagem 2.Criando uma tabela sem referência a Schema

CREATE TABLE FUNCIONARIO (
	COD INT,
	NOME VARCHAR (50)
)
GO

Confira o resultado do código, expanda a pasta TABLES no banco de dados em uso, verifique que a tabela criada está no Schema padrão dbo, como mostra a Figura 3:

Object Explorer mostrando a tabela criada no Schema dbo

Figura 3.Object Explorer mostrando a tabela criada no Schemadbo.

Agora vamos criar uma tabela no Schema criado (CONTABILIDADE), veja o exemplo abaixo.

Listagem 3.Criando uma tabela no Schema FUNCIONARIO.

CREATE TABLE FUNCIONARIO.CONTABILIDADE (
COD INT,
NOME VARCHAR (GO)
)
GO

Veja que foi criada uma tabela com o nome FUNCIONARIO no Schema FUNCIONARIO, como mostra a Figura 4:

Object Explorer mostrando as duas tabelas criadas uma no Schemadbo

Figura 4.Object Explorer mostrando as duas tabelas criadas uma no Schema dbo e a outra no Schema FUNCIONARIO.

Veja agora alguns comandos de inserção e seleção de dados utilizando ou não o conceito de Schemas.

Listagem 4.Inserindo dados na tabela utilizando o comando comum sem referência a Schema.

INSERT INTO FUNCIONARIO VALUES (01, ‘ALGUEM DA SILVA’)

Listagem 5.Selecionando dados da tabela sem referenciar a Schema.

SELECT * FROM FUNCIONARIO

Listagem 6.Inserindo dados utilizando referência ao esquema FUNCIONARIO.

INSERT INTO FUNCIONARIO.CONTABILIDADE VALUES (01 ‘ALGUEM DA SILVA’)

Listagem 7.Selecionando dados utilizando referência ao esquema FUNCIONARIO.

SELECT * FROM FUNCIONARIO.CONTABILIDADE

Com isso finalizo este artigo que mostrou de forma bem básica informações sobre schemas no SQL Server, obrigado e até o próximo artigo.