Bases de Dados

Propaganda

Departamento
de
Engenharia
Informática
2009/2010
Bases
de
Dados
1º
semestre
Lab
1:
Introdução
ao
ambiente
O
ficheiro
bank.sql
contém
um
conjunto
de
instruções
SQL
para
criar
a
base
de
dados
de
exemplo
ilustrada
na
Figura
1.
Figura
1.
Base
de
dados
de
exemplo
Para
criar
a
base
de
dados
é
necessário
criar
as
tabelas
e
carregar
os
registos
de
cada
tabela.
A
criação
das
tabelas
é
feita
com
recurso
à
instrução
CREATE
TABLE.
Por
exemplo,
a
tabela
de
clientes
pode
ser
criada
com
a
seguinte
instrução:
create table customer
(customer_name
varchar(255)
customer_street
varchar(255)
customer_city
varchar(255)
primary key(customer_name));
not null unique,
not null,
not null,
Esta
instrução
especifica
o
nome
da
tabela,
os
nomes
das
três
colunas,
o
tipo
de
cada
coluna,
e
ainda
restrições
tais
como
os
valores
não
poderem
ser
NULL
e
o
facto
da
chave
primária
da
tabela
ser
o
nome
do
cliente.
IST/DEI
Pág.
1
de
6
BD
Os
registos
de
cada
tabela
são
carregados
através
de
instruções
do
tipo
INSERT.
Por
exemplo:
insert into customer values ('Jones','Main','Harrison');
em
que
são
especificados,
respectivamente,
os
valores
de
cada
coluna
pela
mesma
ordem
em
que
estes
foram
definidos
aquando
da
criação
da
tabela1.
Esta
instrução
resulta
na
criação
de
um
novo
registo
na
tabela
de
clientes.
Note‐se
que
o
ficheiro
bank.sql
inclui
instruções
para
inserir
mais
registos
na
base
de
dados
do
que
aqueles
que
se
encontram
exemplificados
na
Figura
1.
Estes
registos
serão
usados
para
realizar
vários
testes
sobre
a
base
de
dados.
Em
aulas
de
laboratório
futuras,
iremos
utilizar
esta
base
de
dados
para
demonstrar
vários
dos
conceitos
da
disciplina.
Configurações
Para
começar
a
usar
o
sistema
Postgres
disponível
na
infra‐estrutura
do
IST,
deverá
proceder
aos
seguintes
passos:
1. Aceda
à
página
de
self‐service
do
CIIST:
https://ciist.ist.utl.pt/servicos/self_service/index.php
2. Active
os
serviços
shell,
web
e
cgi
3. Abra
uma
sessão
SSH
para
o
cluster
sigma.ist.utl.pt
(em
Windows
pode
usar
um
dos
clientes
“SSH
Secure
Shell”
ou
“PuTTY”;
em
Linux
deve
usar
o
comando
“ssh”)
4. Uma
vez
ligado
ao
cluster
sigma,
execute
o
comando:
psql_reset
5. Ligue‐se
ao
Postrgres
com
o
comando:
psql
‐h
db.ist.utl.pt
6. Use
a
password
dada
pelo
psql_reset
Utilização
da
linha
de
comando
Em
geral
todos
os
sistemas
de
gestão
de
base
de
dados
dispõem
de
uma
linha
de
comando
através
da
qual
é
possível
executar
instruções
SQL
e
também
outros
comandos
de
administração
e
manutenção
do
sistema.
7. Faça
download
do
ficheiro
bank.sql
que
acompanha
este
guia
de
laboratório.
1
Existem
outras
variantes
da
instrução
INSERT
com
as
quais
é
possível
especificar
os
valores
por
outra
ordem,
ou
especificar
apenas
alguns
dos
valores
pretendidos
deixando
os
restantes
a
NULL
ou
com
o
valor
por
omissão
(default
value,
que
neste
caso
não
foi
especificado)
IST/DEI
Pág.
2
de
6
BD
8. Usando
um
cliente
de
SFTP
(“WinSCP”
em
Windows;
“scp”
em
Linux)
coloque
o
ficheiro
bank.sql
num
directório
dentro
da
sua
conta
no
cluster
sigma.ist.utl.pt
9. Abra
uma
sessão
SSH
para
o
cluster
sigma.ist.utl.pt
(ou
utilize
a
sessão
anterior)
e
navegue
até
ao
directório
onde
guardou
o
ficheiro.
10. Invoque
o
programa
psql
com
o
comando:
psql
‐h
db.ist.utl.pt
11. Uma
vez
dentro
do
sistema,
utilize
o
comando
\h
para
obter
informação
sobre
todos
os
comandos
SQL
disponíveis.
Use
\q
para
sair.
12. Utilize
o
comando
\?
para
obter
informação
sobre
todos
os
comandos
de
administração
disponíveis.
13. Se
precisar
de
sair
do
programa,
pode
utilizar
a
qualquer
momento
o
comando:
\q
14. Na
lista
de
comandos
de
administração
terá
notado
a
existência
de
um
comando
nesta
forma:
\i
FILE
execute
commands
from
file
É
este
commando
que
vamos
utilizar
para
executar
as
instruções
no
ficheiro
bank.sql.
15. Para
se
ligar
à
sua
base
de
dados,
utilize
o
comando:
\c
istxxxxx
(onde
istxxxxx
é
o
seu
nome
de
utilizador).
Pretendem‐se
executar
as
instruções
do
ficheiro
bank.sql
na
sua
base
de
dados.
16. De
seguida,
execute
o
comando:
\i
bank.sql
O
Postgres
produz
algumas
mensagens
à
medida
que
executa
as
instruções
do
ficheiro.
17. Para
listar
as
tabelas
da
base
de
dados,
use
o
comando:
\d
18. Após
a
ligação
à
base
de
dados
pode
fazer
algumas
consultas,
nomeadamente:
• ver
a
lista
completa
de
clientes:
SELECT
*
FROM
customer;
• ver
a
lista
completa
de
contas:
SELECT
*
FROM
account;
Em
aulas
futuras
verá
como
obter
a
resposta
a
consultas
mais
complicadas.
19. O
tempo
que
o
sistema
demora
a
responder
a
algumas
consultas
é
um
factor
importante
quando
o
volume
de
dados
é
considerável.
Execute
o
comando:
\timing
IST/DEI
Pág.
3
de
6
BD
20. Repita
as
consultas
anteriores.
Passará
a
ver
o
tempo
que
o
sistema
demora
a
responder.
Obter
informação
sobre
o
esquema
de
uma
base
de
dados
Para
uma
base
de
dados
existente
no
sistema
mas
sobre
a
qual
não
haja
documentação,
é
possível
usar
instruções
especiais
para
obter
informação
sobre
os
artefactos
existentes
no
sistema
(bases
de
dados,
tabelas,
vistas,
funções,
etc.).
Geralmente
estes
mecanismos
são
proprietários
e
diferentes
para
cada
sistema.
No
Postgres
essas
funcionalidades
estão
disponíveis
através
do
comando
\d
e
variantes.
21. Utilize
o
comando
\l
(‘L’
pequeno)
para
obter
de
todas
as
bases
de
dados
existentes
no
sistema.
22. Para
se
ligar
à
sua
base
de
dados,
utilize
o
comando:
\c
istxxxxx
(onde
istxxxxx
é
o
seu
nome
de
utilizador)
23. Obtenha
informação
sobre
as
tabelas
de
clientes
e
contas:
\d
customer
\d
account
Confirme
que
esta
descrição
corresponde
às
especificações
com
que
essas
tabelas
foram
criadas.
24. Use
o
comando
\q
para
sair
do
sistema
e
voltar
ao
terminal.
Utilização
da
ferramenta
de
administração
A
linha
de
comando
é
geralmente
a
forma
de
ter
acesso
a
todas
as
funcionalidades
do
sistema.
No
entanto,
para
um
conjunto
limitado
de
tarefas
é
possível
recorrer
a
ferramentas
mais
simples.
O
sistema
Postgres
inclui
uma
ferramenta
de
administração
designada
pgAdmin
III.
25. No
PC
do
laboratório,
abra
a
aplicação
pgAdmin
III
(se
estiver
a
usar
Linux
pode
invocar
a
aplicação
pgAdmin
com
o
comando
“pgadmin3”)
26. Clique
no
botão
de
adicionar
ligação
e
escreva
db.ist.utl.pt
como
nome
e
sistema
anfitrião.
Especifique
também
o
nome
de
utilizador
e
password
(dada
por
psql_reset)
IST/DEI
Pág.
4
de
6
BD
27. Expanda
a
árvore
e
localize
a
sua
base
de
dados,
bem
como
as
tabelas,
que
foram
criadas
quando
executou
\i
bank.sql
na
linha
de
comando.
28. No
menu
de
ferramentas,
abra
a
ferramenta
“query
tool”
(“ferramenta
de
consulta”
se
o
sistema
estiver
em
português)
29. Escreva
as
mesmas
consultas
que
realizou
anteriormente
(p.ex.
SELECT
*
FROM
customer;)
Após
escrever
o
comando
SQL
use
o
botão
“executar
consulta”.
Observe
os
resultados.
30. Repita
as
mesmas
consultas
mas
agora
utilize
o
botão
“explicar
consulta”.
31. Repare
que
o
sistema
mostra
graficamente
o
plano
de
execução
que
seguiu
para
responder
à
consulta.
Para
perguntas
simples
como
esta,
foi
necessária
apenas
uma
operação
de
pesquisa
sequencial.
Mais
para
a
frente
na
disciplina
veremos
como
o
sistema
gera
planos
para
responder
a
perguntas
mais
complexas.
Gerar
o
script
de
uma
base
de
dados
A
base
de
dados
de
exemplo
foi
criada
com
recurso
a
um
script
(ficheiro
de
texto)
com
uma
série
de
instruções
SQL.
Durante
a
utilização
da
base
de
dados
serão
adicionados,
removidos
e
alterados
registos,
de
modo
que
o
estado
da
base
de
dados
é
o
resultado
das
operações
realizadas.
A
qualquer
momento
é
possível
gerar
um
script
quer
para
efeitos
de
backup,
quer
para
efeitos
de
replicação
da
base
de
dados
noutro
sistema.
Em
geral
existem
mecanismos
próprios
que
são
mais
adequados
para
esse
efeito,
mas
o
script
de
criação
de
uma
base
de
dados
é
útil
em
muitas
ocasiões.
32. Abra
uma
sessão
SSH
para
o
cluster
sigma.ist.utl.pt
(ou
utilize
a
sessão
anterior)
e
invoque
o
programa
pg_dump
com
o
comando:
pg_dump
‐h
db.ist.utl.pt
33. Verá
que
o
programa
produz
o
script
no
terminal.
Vamos
redireccionar
o
output
de
forma
a
guardar
o
script
num
ficheiro.
Invoque
novamente
o
programa
pg_dump
com
os
seguinte
parâmetros:
pg_dump
‐h
db.ist.utl.pt
>
backup.sql
onde
backup.sql
é
o
nome
do
ficheiro
que
será
criado.
IST/DEI
Pág.
5
de
6
BD
34. Para
ver
o
conteúdo
do
ficheiro
backup.sql
use
o
comando:
cat
backup.sql
35. Compare
o
conteúdo
de
backup.sql
com
bank.sql.
Alguns
elementos
não
existiam
no
ficheiro
original.
Contudo,
observe
que
apesar
de
usar
instruções
diferentes
este
script
criará
uma
base
de
dados
idêntica
à
original.
Lista
de
comandos
Postgres
utilizados
\h
\q
\?
\i
file
\c
database
\d
\timing
\l
\d
table
Obter
informação
sobre
todos
os
comandos
SQL
disponíveis.
Sair
da
linha
de
comando
do
Postgres.
Obter
informação
sobre
todos
os
comandos
de
administração.
Executar
os
comandos
contidos
no
ficheiro
indicado.
Ligar
à
base
de
dados
indicada.
Listas
as
tabelas
da
base
de
dados
actual.
Mostrar
o
tempo
de
execução
das
consultas.
Listar
todas
as
bases
de
dados
existentes
no
sistema.
Obter
informação
sobre
a
estrutura
de
uma
tabela.
IST/DEI
Pág.
6
de
6

Download