ProjetoFísico
46 pág.

ProjetoFísico


DisciplinaAdministração de Banco de Dados584 materiais3.176 seguidores
Pré-visualização3 páginas
4. Ordem das tabelas na cláusula \u201cFROM\u201d
\ufffd Alguns otimizadores levam isso em consideração.
5. Divisão de consultas com múltiplos \u201cOR\u201d.
\ufffd Dividir e formular como uma UNIÃO de consultas.
\ufffd SELECT PNOME,UNOME,SALARIO,IDADE
FROM FUNCIONARIO WHERE IDADE > 45 OR SALARIO < 5000;
\ufffd SELECT PNOME,UNOME,SALARIO,IDADE
FROM FUNCIONARIO WHERE IDADE > 45 
UNION
SELECT PNOME,UNOME,SALARIO,IDADE
FROM FUNCIONARIO WHERE SALARIO < 5000;
PODE USAR ÍNDICES EM IDADE E SALÁRIO
Projeto Físico
Ajuste de Consultas
Prof. Luiz A.Prof. Luiz Vivacqua
Projeto Físico
\ufffdEstruturas de Armazenamento
Lógica Física
Tablespace
Tabela
Índice
1
*
1
*
Arquivo1
*
Tablespace define a localização de
armazenamento para tabelas e índices
Nível Lógico
Usar tablespaces diferentes para cada projeto.
Usar tablespaces diferentes para índice e tabela
Nível Físico
Usar unidades de disco diferentes para índices
e tabelas, melhorando o \u201cthrougput\u201d de E/S
Prof. Luiz A.Prof. Luiz Vivacqua
Projeto Físico
\ufffd Ambiente de desenvolvimento permite que as aplicações 
sejam testadas antes de entrarem em produção.
\ufffd Usar mesma versão do sistema operacional e sistema 
gerenciador de banco de dados.
\ufffd Se for possível usar também um ambiente de homologação
\ufffd Aplicação de patch e upgrade
\ufffd Testes de ferramentas auxiliares
\ufffd Documentar problemas e soluções
\ufffd Facilita o trabalho de suporte
\ufffd Testar a recuperação do backup antes de entra em produção
Ambientes de Desenvolvimento/Produção
Prof. Luiz A.Prof. Luiz Vivacqua
\ufffdPostgreSql
\ufffdArquitetura
\ufffdArmazenamento
\ufffdUsuário
\ufffdUtilitários
\ufffdSQL
Projeto Físico
Prof. Luiz A.Prof. Luiz Vivacqua
\ufffdO PostgreSQL é um sistema de gerenciamento de banco 
de dados objeto-relacional, derivado do pacote 
POSTGRES escrito na Universidade da Califórnia em 
Berkeley.
\ufffdQualquer plataforma Unix-compatível pode rodar 
PostgreSQL.
\ufffdA compatibilidade nativa para Windows está disponível 
desde a versão 8.0. Versões antigas do Windows 
baseadas no MSDOS (Win95, Win98, WinMe) podem 
rodar PostgreSQL usando Cygwin.
Projeto Físico
Prof. Luiz A.Prof. Luiz Vivacqua
\ufffdFundamentos da Arquitetura
\ufffd O PostgreSQL utiliza o modelo cliente-servidor.
\ufffd O processo servidor, que gerencia os arquivos de banco de 
dados, aceita conexões dos aplicativos-cliente e executa 
ações no banco de dados em nome dos clientes. O programa 
servidor de banco de dados se chama postgres.
\ufffd O aplicativo-cliente do usuário (frontend), que deseja 
executar operações de banco de dados, pode ser uma 
ferramenta no modo caractere, um aplicativo gráfico, um 
servidor Web que acessa o banco de dados para mostrar 
páginas Web, ou uma ferramenta especializada para 
manutenção do banco de dados. 
\ufffd Alguns aplicativos-cliente são fornecidos na distribuição do 
PostgreSQL, sendo a maioria desenvolvido pelos usuários.
Projeto Físico
Prof. Luiz A.Prof. Luiz Vivacqua
\ufffdArmazenamento
\ufffd Esquema
\u2022 É uma coleção de tabelas, visões, índices, tipos de dados e 
funções.
\u2022 Facilita a organização lógica dos objetos do banco
\u2022 Por padrão, as tabelas (e outros objetos) são colocadas 
automaticamente no esquema chamado &quot;public&quot;, presente 
em todos os banco de dados.
\ufffd Banco de Dados
\u2022 É uma coleção de esquemas. Quando um cliente se 
conecta a um servidor, ele especifica o banco de dados que 
ele quer acessar.
Projeto Físico
Prof. Luiz A.Prof. Luiz Vivacqua
\ufffd Tablespace
\ufffd Por padrão são criados dois tablespaces no PostgreSQL:
\u2022 pg_default \u2013 repositório padrão dos objetos e dados fornecidos 
pelos usuários
\u2022 pg_global \u2013 armazena o catálogo do servidor e templates
(protótipos) de banco de dados
\ufffd Para definir um tablespace é utilizado o comando CREATE 
TABLESPACE.
\u2022 CREATE TABLESPACE ´ST_TABELA´ OWNER vivacqua 
LOCATION 'c:/tablespace/tabelas';
Projeto Físico
Prof. Luiz A.Prof. Luiz Vivacqua
\u2022 Usuário
\u2022 Usuário é equivalente a Role com a exceção de que 
quando um usuário é criado é assumido que ele 
pode dar login enquanto que na Role isto não 
acontece. 
\u2022 Ex: create user vivacqua with createdb password 
'vivacqua'
Projeto Físico
Prof. Luiz A.Prof. Luiz Vivacqua
\ufffd Utilitários
\ufffd Backup
\u2022 Pgdump
\u2022 Pgrestore
\ufffd Carga / Extração
\u2022 Copy
\ufffd Recuperar o espaço em disco ocupado por registros deletados.
\u2022 Vacuum
\ufffd Coleta de estatísticas
\u2022 Analyse
Projeto Físico
Prof. Luiz A.Prof. Luiz Vivacqua
Projeto Físico
\u2022 PGADMIN
\u2022 Ferramenta cliente para projeto e administração distribuída gratuitamente
\u2022 Permite executar comandos SQL (DDL e DML)
Prof. Luiz A.Prof. Luiz Vivacqua
\ufffdSQL - (Structured Query Language)
\u2022 Surgiu no início na década de 70 pela IBM. 
\u2022 Em1980 o produto mudou seu nome para SQL.
\u2022 \u201cAmerican National Standards Institute\u201d é o mantenedor e 
responsável pelo padrão.
\u2022 A linguagem é enorme ( especificação contém + 2000 
páginas).
Os comandos de SQL podem ser usados interativamente como 
uma linguagem de consulta ou podem ser incorporados a 
programas de aplicações.
Projeto Físico
Prof. Luiz A.Prof. Luiz Vivacqua
Projeto Físico
A Linguagem de Definição de Dados:
\u2022 Subcategoria de SQL que permite a criação e a alteração dos 
objetos do banco de dados. 
\u2022 Normalmente, é de uso exclusivo do Administrador de Banco 
de Dados; contudo, seu uso fica sujeito à política da empresa.
\u2022 PRINCIPAIS COMANDOS DDL:
\u2013 CREATE, ALTER, DROP TABLE
\u2013 CREATE, DROP INDEX
\u2013 CREATE VIEW
Prof. Luiz A.Prof. Luiz Vivacqua
Projeto Físico
\ufffdCriando tabela
CREATE TABLE nome-da-tabela 
( definição-da-coluna1 , definição-da-coluna2, ..., definição-da-
colunaN )
ONDE
definição-da-coluna é definida como:
nome-da-coluna tipo-de-dado [CONSTRAINT]
Prof. Luiz A.Prof. Luiz Vivacqua
Projeto Físico
\ufffdPrincipais tipos de dados numéricos
\ufffd smallint 2 bytes inteiro com faixa pequena -32768 a +32767
\ufffd integer 4 bytes escolha usual para inteiro -2147483648 a 
+2147483647
\ufffd bigint 8 bytes inteiro com faixa larga -9223372036854775808 a
\ufffd 9223372036854775807
\ufffd decimal variável precisão especificada pelo usuário sem limite
\ufffd numeric variável precisão especificada pelo usuário sem limite
\ufffd serial 4 bytes inteiro com auto-incremento 1 a 2147483647
\ufffdPrincipais tipos de dados de caracteres
\ufffd character(n), char(n)
\ufffd character varying(n), varchar(n) \u2013 limite 1GB
Prof. Luiz A.Prof. Luiz Vivacqua
Projeto Físico
PRINCIPAIS CONSTRAINTS:
\ufffd Primary key \u2013 define a chave primária da tabela
\ufffd Foreign key \u2013 define uma chave estrangeira
\ufffd Unique \u2013 define que o valor da coluna é único 
\ufffd Not Null \u2013 especifica que a coluna não pode ter valores nulos
\ufffd Check \u2013 estabelece um domínio para os valores da coluna
Podem ser especificadas:
\ufffd na definição da coluna
\ufffd ao final da definição das colunas
\ufffd através do comando ALTER TABLE
Prof. Luiz A.Prof. Luiz Vivacqua
Projeto Físico
\ufffd Exemplos
CREATE TABLE DEPARTAMENTO
( CODIGO INTEGER PRIMARY KEY,
NOME CHAR(20) NOT NULL,
STATUS INTEGER,
CIDADE CHAR(20)
)
CREATE TABLE FUNCIONÁRIO
( MATRICULA INTEGER PRIMARY KEY,
NOME VARCHAR (20) NOT NULL,
SEXO CHAR (1),
DEPTO INTEGER,
CONSTRAINT FK_DEP FOREIGN KEY(DEPTO) REFERENCES 
DEPARTAMENTO (CODIGO)
);
Prof. Luiz A.Prof. Luiz Vivacqua
Projeto Físico
\ufffdAlterando a estrutura da tabela
\ufffd Adicionando coluna
\ufffd Removendo coluna
\ufffd Renomeando coluna
\ufffd Adicionando constraint
\ufffd Removendo constraint
Prof. Luiz A.Prof. Luiz Vivacqua
Projeto Físico
SINTAXE:
ALTER TABLE nome-da-tabela
ADD CONSTRAINT ou
DROP CONSTRAINT ou
ADD COLUMN ou
DROP COLUMN ou
RENAME TO novo_nome_tabela ou 
RENAME nome_da_coluna TO novo_nome_coluna
Prof. Luiz A.Prof. Luiz Vivacqua
Projeto Físico
Exemplos:
ALTER TABLE DEPARTAMENTO ADD TELEFONE CHAR(11);
TRANSFORMA A TABELA DE DEPARTAMENTO EM:
DEPARTAMENTO (CÓDIGO, NOME, STATUS, CIDADE, TELEFONE);
ALTER TABLE DEPARTAMENTO ADD CONSTRAINT 
FORNECEDOR_PK PRIMARY KEY (CODIGO);
CRIA A CHAVE PRIMÁRIA NA TABELA FORNECEDOR.
ALTER TABLE FUNCIONARIO 
ADD CONSTRAINT FK_DEPARTAMENTO FOREIGN KEY(DEPTO) 
REFERENCES DEPARTAMENTO( CODIGO);
CRIA O RELACIONAMENTO ENTRE UMA TABELA DEPARTAMENTO E A TABELA 
FUNCIONARIO.
ALTER TABLE FUNCIONÁRIO ADD CONSTRAINT