daniel paulo [email protected]. introdução neste capítulo trataremos a relação entre...

29
Daniel Paulo [email protected]

Upload: luiz-eduardo-klettenberg-coelho

Post on 07-Apr-2016

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

Daniel [email protected]

Page 2: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

IntroduçãoNeste capítulo trataremos a relação entre tabelas e

FILEGROUPS, bem como a alocação interna de dados das tabelas e índices.

Page 3: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

Criando TabelasTipos de tabelas- Regulares- Temporárias locais- Temporárias globais- Baseadas em consulta- Particionadas- Baseadas em arquivos (Filetable)

Page 4: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

CONSTRAINTS: São regras de integridade referencial impostas a um banco de dados -Primary Key: Identifica de forma única as linhas de uma tabela (Não aceita valores nulos)-UNIQUE: Garante que não exista valores duplicados na coluna (Pode aceitar 1 valor nulo)-CHECK: Cria uma regra para a validação da informação-NOT NULL: Garante que uma coluna não pode ter o valores Nulos-DEFAULT: Fornece um valor padrão para uma coluna quando nenhum é especificado-Foreign KEY: Realiza a ligação entre tabelas

Page 5: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

Tipos de Dados: São os tipo de valores permitidos para cada campo

Página 136 e 139

Page 6: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

Tabelas regulares: São aquelas criadas normalmente pelo comando CREATE TABLE.

Exemplo:CREATE TABLE TB_ALUNO( ID INT IDENTITY PRIMARY KEY, NOME VARCHAR(60), CPF CHAR(11),.....

Page 7: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

Tabelas temporárias locais: Tabelas criadas temporariamente para a conexão do usuário-São armazenadas no banco tempdb-Utilizar o símbolo # para tabela temporária associadas a conexão atual-Tabelas criadas localmente serão excluídas ao encerrar a conexão

Page 8: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

Tabelas temporárias globais: Tabelas criadas temporariamente para a conexão de todos os usuários.-São armazenadas no banco tempdb-Quando é utilizado o símbolo ## todos os outros usuários poderão visualizar-Tabelas globais serão excluídas quando todo os usuários conectados a elas encerram suas seções

Page 9: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

Tabelas baseadas em consultas: São as tabelas criadas a partir de uma consulta com a cláusula SELECT ... INTO

Page 10: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

Tabelas ParticionadasDivisão de uma tabela (Grande) em várias.-Melhoria do gerenciamento de espaço-Maior performance em consulta e gravação- Tabelas com grandes volumes de dados- Necessidade de dados para histórico e análise- Importação e exportação de grandes volumes de dados

Page 11: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

Aspectos Negativos-Chave não adequada pode levar a uma dispersão ruim dos dados-Dificuldade na manutenção e gerenciamento de índices

Page 12: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados
Page 13: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

Etapas:1. Analisar se a estrutura atual pode ser particionada ou se haverá algum

ganho dividindo o conteúdo do objeto;2. Determinar quais são as chaves do particionamento;3. Criar os filegroups necessários;4. Criar uma função de particionamento (partition function); 5. Criar um esquema de particionamento (partition scheme);6. Criar a tabela ou o índice no esquema;

Page 14: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

Exemplo

MOD_II_CAP_3_PARTICIONAMENTO

Page 15: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

Tabelas com CompressãoProcesso interno que ocorre em nível de linha páginaPode ser aplicada nos objetos:- Tabelas com ou sem índices clusterizados- Índices não clusterizados- Views indexadas

Não pode ser aplicado:- Tabelas e views do sistema- Tabelas que ultrapasse 8060 bytes

Page 16: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

Tabelas baseadas em arquivos (FILETABLE)Tipo especial de tabela utilizada por aplicações que precisem realizar buscas de arquivos e diretórios em

discos através do banco de dados.- As tabelas possuem API’s do sistema operacional- Utiliza FILETREAM- Suporte nativo e gerenciamento de diretórios e arquivos- Armazenamento de atributos de arquivos (nome, data de criação / modificação, etc)

Page 17: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

Considerações- Tabelas normais não podem ser convertidas em tabelas baseadas em arquivo- Não é possível criar CONSTRAINT- Não é possível criar uma tabela do tipo FILETABLE para tabelas temporárias- Bancos de sistemas não suportam FILETABLE

Page 18: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

CREATE TABLE DocumentoImpacta as FiletableWITH ( FileTable_Directory = ‘doc_impacta’)

Page 19: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

VIEWS (Visões)Uma VIEW é uma tabela virtual proveniente de tabelas referenciadas numa consulta.

Page 20: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

Vantagens oferecidas pelas VIEWSSimplificação do Código: Criação de um código de

programação mais limpo na medida em que podem conter um SELECT mais complexo.

Proteção de Acesso: Ocultam colunas de uma tabela

Segurança contra manipulação: Evita comandos de INSERT, UPDATE, DELETE e MERGE

Page 21: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

Para que VIEWS seja utilizada para INSERT- Todas as colunas NOT NULL possuam valor DEFAULT ou sejam

declaradas- Não utilizar funções nem agrupamentos- Não utilizar expressões aritméticas- Utilizar apenas uma tabela

Para que VIEWS seja utilizada para DELETE/UPDATE- Não utilizar funções nem agrupamentos- Utilizar apenas uma tabela

Page 22: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

CREATE VIEWENCRYTION - Protege o código fonte, impedindo que ele seja aberto a

partir do Object Explorer SCHEMABINDING - Cria uma view ligada às estruturas das tabelas às quais

faz referência. Não permite alterar a tabela sem que a VIEW seja alterada

CHECK OPTION - Impede a inclusão e a alteração de dados através da view que sejam incompatíveis com a cláusula WHERE da instrução SELECT

VIEW_METADATA – Envia informações dos METADADOS da VIEW em vez das tabelas

Page 23: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

ALTER VIEW – altera um view existente

DROP VIEW – Apaga uma view existente. Obs: Quando apagamos uma VIEW implica na exclusão de todas as permissões que tinham sido dadas sobre ela

Page 24: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

VIEWS indexadasÉ possível criar índices para uma VIEW para isso

devemos:- Utilizar a cláusula SCHEMABINDING - O primeiro índice deve ser CLUSTERED

Page 25: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

Criando SequênciasObjeto que retorna um número sequencial.- Pode ser utilizado em campos de chave primária- Mais de 1 aplicação pode utilizar a mesma sequência- Pode ser definido: Valor inicial, incremento, limite ou

reciclada- Também pode ser utilizada em memória (CACHE)

Page 26: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

-- Criação de uma sequênciaCREATE SEQUENCE SEQ_ALUNO ;

-- Criação de uma sequênciaCREATE SEQUENCE SEQ_ALUNO

START WITH 1000INCREMENT BY 10MINVALUE 10MAXVALUE 10000CYCLE CACHE 10

Page 27: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

Criando SinônimosObjeto que permite mascarar o nome de um objeto

Exemplo:CREATE SYNONYM TAB_ALUNO FOR DBO.ALUNO;

SELECT * FROM TAB_ALUNO;

Page 28: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

Criando TiposCria um tipo de dados baseado em outro

Exemplo:CREATE TYPE ENDERECO AS TABLE (DES_LOGRADOUROVARCHAR(50),NUM_LOGRADOURO VARCHAR(10),DES_BAIRRO VARCHAR(30),DES_CIDADE VARCHAR(30),NUM_CEP CHAR(8) )

Page 29: Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados

Laboratório páginas 176 à 183