Escolar Documentos
Profissional Documentos
Cultura Documentos
AULA 1
estrutura do curso e conceitos fundamentais
professor Luciano Roberto Rocha
www.lrocha.com
Contedo programtico
UNIDADE I
Conceitos fundamentais
diferenas entre mysql e postgresql
programas clientes: psql - pgadmin 3 - phppgadmin
terminal interativo psql: comandos
linguagem SQL: sublinguagens DCL, DDL e DML
criao de papis (Roles): usurios e grupos
criao de banco de dados
esquemas e tablespaces
tipo de dados
criao de tabelas
backup e restore
concesso e revogao de privilgios
Contedo programtico
UNIDADE II
Operadores:
lgicos, aritmticos, relacionais e especiais (like, between, null e is null )
insero de registros
atualizao de registros
excluso de registros
consultas
clusula distinct
clusula limit e offset
clusula where
funcoes bsicas:
upper, lower, min, max, avg, count, sum, stddev
Contedo programtico
UNIDADE III
integrao de linguagem de script com SGBD (tcnica dos 5 passos)
funes avanadas:
matemticas, de string, de formatao e de data e hora
subconsultas
condicionalidade (case when then e else)
junes:
self join
cross join
inner join
qualified join
left outer join, right outer join e full outer join
Contedo programtico
UNIDADE IV
Visualizaes (views)
clusulas de integridade restries(constraint), domnios (domain) e
verificaes (check)
Stored Procedures:
transactions
funes SQL
funes PL/PGSQL
disparadores (triggers)
manuteno e otimizao de banco de dados:
otimizao de SQL
criao de ndices (index)
uso das ferramentas vacuum e analyse
5
Competncias e habilidades
Analisar, projetar e implementar bancos de
dados para Web.
Aplicar tcnicas de manuteno e otimizao
de bases de dados.
Desenvolver e utilizar banco de dados em SGBDs
Relacionais para Web.
Compreender e elaborar projetos que envolvam
integrao de base de dados com aplicaes
desenvolvidas em linguagem de script em
ambiente web.
6
Procedimentos didticos
Exposio/Debate/Dilogo sobre o contedo
proposto no plano de curso.
Realizao de exerccios prticos com o auxlio
dos laboratrios para aplicao e utilizao de
Sistemas de Gerenciamento de Banco de Dados
Relacional.
Desenvolvimento de dinmicas/exerccios em
grupo e estudos de casos pertinentes disciplina.
Sistemtica de avaliao
Duas avaliaes parciais, tericas do contedo
ministrado em sala de aula com exerccios e
questes objetivas e/ou descritivas com peso de
3 pontos.
Duas avaliaes bimestrais, tericas ou prticas
dos conhecimentos trabalhados em sala de aula
por meio do desenvolvimento de exerccios de
implementao e aplicao dos temas
pertinentes a disciplina com peso de 7 pontos.
8
Referencial terico
BIBLIOGRAFIA BSICA:
MILANI, Andr. PostgreSQL - Guia do Programador - So Paulo: Novatec,
2008
Niederauer, Juliano. PostgreSQL - Guia de Consulta Rpida - 2 Ed. So
Paulo: Novatec, 2009
BIBLIOGRAFIA COMPLEMENTAR:
PostgreSQL - Documentao Oficial Traduzida (verso on-line)
disponvel em: http://pgdocptbr.sourceforge.net/pg80/index.html
PostgreSQL - Documentao Oficial Traduzida (verso em PDF)
disponvel em: http://www.lrocha.com/arquivos/curso_banco_web
9
Recursos tecnolgicos
XAMPP
h,p://www.apachefriends.org/en/xampp.html
www.enterprisedb.com/products/postgres_plus/download.do
h,p://phppgadmin.sourceforge.net/
10
Conceitos fundamentais
11
Conceitos fundamentais
12
Dados e informaes
Apesar de serem termos interligados e fazerem parte de um
mesmo contexto, possuem significados totalmente distintos.
Basicamente, um dado um conjunto de smbolos (alfanumrico
ou imagem), que no est agregado a nenhum conhecimento
especfico, tornando-o inutilizvel para quem no souber em qual
contexto est contido e o que representa.
Exemplo:
19567
13
Dados e informaes
Uma informao a agregao de um determinado
conhecimento a um dado.
Uma informao pode ser interpretada, enquanto um dado
apenas pode ser visualizado.
Exemplo:
Nmero de litros de vinho vendidos no ano de 2008
19567
14
Dados e informaes
Hierarquicamente, o dado serve como matria prima para o
alcance de uma informao, pois com base nele que pode ser
feita qualquer interpretao sobre seu valor, objetivando-se o
conhecimento.
DADO
INFORMAO
CONHECIMENTO
19567
A
venda
foi
14%
menor
em
relao
ao
ano
anterior.
15
16
Objetivos de um SGBD
Isolar os usurios dos detalhes mais internos do banco
17
Vantagens de um SGBD
rapidez na manipulao e no acesso informao;
reduo do esforo humano (desenvolvimento e
utilizao);
disponibilizao da informao no tempo necessrio;
controle integrado de informaes distribudas
fisicamente;
reduo de redundncia e de inconsistncia de
informaes;
compartilhamento de dados;
aplicao automtica de restries de segurana;
reduo de problemas de integridade.
18
Desvantagens de um SGBD
Sem dispositivos de controle adequados, a segurana pode
ficar comprometida; por exemplo, no caso de acesso no
autorizado a dados.
A integridade das informaes pode ser comprometida se
no houver mecanismos de controle; por exemplo no caso de
manipulao concorrente de dados.
A operao do sistema de banco de dados e o
desenvolvimento de aplicaes precisam ser feitos com muita
preciso para evitar que informaes no correspondam
realidade.
A administrao do sistema de banco de dados pode se
tornar muito complexa em ambientes distribudos, com grande
volume de informaes manipuladas por uma grande
quantidade de usurios.
19
Modelo de Dados
1000
Jos
5366
Laranjeiras
Ip
900
Campinas
10533
Antnio
Limeira
Joo
801
55
647
556
20
Modelo de Dados
NOME
RUA
CIDADE
CONTA
SALDO
Jos
Figueiras
Campinas
900
55
Joo
Laranjeiras Campinas
556
1000
Joo
Laranjeiras Campinas
647
5366
Antnio
Ip
Limeira
647
5366
Antnio
Ip
Limeira
801
10533
21
Modelo Hierrquico
Usado
nos
primeiros
sistemas
de
gesto
de
base
de
dados
mainframe
Os
dados
e
relacionamentos
so
representados
por
registros
e
ligaes
respecLvamente.
Jos
Os
registros
so
organizados
como
colees
arbitrrias
de
rvores.
Antnio
Figueiras Campinas
900
647
55
Joo
556
1000
5366
Ip
801
Limeira
10533
Laranjeiras Campinas
647
5366
22
Modelo de Rede
Semelhante
ao
modelo
hierrquico,
com
diferena
de
que
cada
registro
pai
pode
ser
ligado
a
mais
de
um
registro
lho
Jos
Joo
Antnio
900
55
556
1000
647
5366
801
10533
Figueiras Campinas
Laranjeiras Campinas
Ip
Limeira
23
Modelo Relacional
Conceito
criado
por
Edgar
Frank
Codd
em
1970
baseado
na
lgica
dos
predicados
e
na
teoria
dos
conjuntos
CLIENTE
NOME
RUA
CIDADE
015
Jos
Figueiras
Campinas
021
Joo
Laranjeiras
Campinas
037
Antnio
Ip
Limeira
CONTA
SALDO
900
556
647
801
55
1000
5366
10533
CLIENTE
CONTA
015
021
021
037
037
900
556
647
647
801
24
Conceitos fundamentais
25
Modelo de estudo
Projeto WineStore - Modelo Conceitual
26
Modelo de estudo
Projeto WineStore - Modelo Lgico
27
Modelo de estudo
Projeto WineStore - Modelo Fsico
28
vinho
1 vincola
30
31
32
Chave (key)
As tabelas relacionam-se umas as outras atravs de
chaves.
Uma chave um conjunto de um ou mais atributos que
determinam a unicidade de cada registro.
Temos dois tipos de chaves:
Chave primria: (PK - Primary Key) a chave que identifica cada
registro dando-lhe unicidade. A chave primria nunca se repetir.
Chave Estrangeira: (FK - Foreign Key) a chave formada atravs de
um relacionamento com a chave primria de outra tabela. Define
um relacionamento entre as tabelas e pode ocorrer repetidas vezes.
Caso a chave primria seja composta na origem, a chave
estrangeira tambm o ser.
33
Relacionamento (cardinalidade)
Relacionamento 1:1 (l-se relao um-para-um) - indica que as
tabelas tm relao unvoca entre si. Voc escolhe qual tabela vai
receber a chave estrangeira;
Exemplo:
Um cliente um usurio do sistema e todo usurio do sistema
um cliente;
cliente
usurio
34
Relacionamento (cardinalidade)
Relacionamento 1:n (l-se um-para-muitos) - a chave primria da
tabela que tem o lado 1 vai para a tabela do lado N. No lado N
ela chamada de chave estrangeira;
Exemplo:
Uma regio pode ter vrias vincolas, mas cada vincola
pertence apenas a essa regio.
vincola
situada
regio
35
Relacionamento (cardinalidade)
Relacionamento n:n ou n:m (l-se muitos-para-muitos) - quando tabelas
tm entre si relao n:m, necessrio criar uma nova tabela com as
chaves primrias das tabelas envolvidas, ficando assim uma chave
composta, ou seja, formada por diversos campos-chave de outras
tabelas. A relao ento se reduz para uma relao 1:n, sendo que o
lado n ficar com a nova tabela criada.
Exemplo:
Um pedido de compra pode ter vrias mercadorias, e um tipo
de mercadoria pode ser listada em vrios pedidos.
pedido
consiste
de
itens
36
Conceitos Fundamentais
PostgreSQL
37
Arquitetura de software
Modelos computacionais
Modelo standalone
Modelo cliente-servidor
Modelo em n camadas (sistemas distribudos)
Modelo em 3 camadas (apresentao-negcio-dados)
Sistemas baseados na Web
38
Modelo standalone
Todos
os
recursos
necessrios
a
execuo
do
programa
esto
localizados
em
apenas
uma
mquina
Processos
SGBD
Plataforma de execuo
Sistema de arquivos
Modelo cliente-servidor
Aplicao
dividida
em
duas
camadas
SGBD
Sistema
de
arquivos
Processos
Cliente (gordo)
Servidor
Sistema
de
arquivos
Processos
Servidor WEB
SGBD
Sistema
de
arquivos
Interface
com
o
usurio
Cliente (magro)
Processos
Principais Web-Browsers
62,12%
0,36%
2,38%
24,43%
4,53%
Fonte:
Market
Share
by
Net
ApplicaLons
fev/2010
5,22%
servidor web
browser
url
h,p
path
link
Textos
Imagens
vdeos
usurio
Textos
Imagens
vdeos
arquivos
3. O
servidor Web
aciona o mdulo PHP.
2. um script PHP!
1. O
cliente (browser)
solicita uma pgina ao
servidor Web.
USURIO
4. O
6. O
5. O
3.
2.
O servidor Web
aciona o mdulo PHP.
SERVIDOR WEB
1.
O cliente (browser)
solicita uma pgina ao
servidor Web.
5.
4.
6.
O SGBD interpreta a
instruo SQL e envia ao PHP
um recurso de consulta
(resource) com o conjunto de
resultados.
PostgreSQL (caractersticas)
Seu desenvolvimento teve incio no ano de 1985 (Berkeley CA).
um SGBD relacional, orientado a objeto e com forte suporte a
operaes ACID (Atomicidade, Consistncia, Isolamento e Durabilidade).
um software de livre distribuio, multiplataforma e tem seu
cdigo-fonte aberto.
Oferece suporte linguagem SQL nos padres SQL92/SQL99.
Em termos de recursos, pode ser comparado aos melhores
SGBDs comerciais existentes, sendo inclusive superior a alguns
deles.
O PostgreSQL introduziu conceitos do modelo objeto-relacional
que hoje esto disponveis em alguns bancos de dados
comerciais.
46
Arquitetura do PostgreSQL
Biblioteca
LIBPQ
Aplicao
(frontend)
MQUINA
CLIENTE
Processo
POSTMASTER
Banco de
Dados
Banco de
Dados
Banco de
Dados
MQUINA
SERVIDOR
47
Arquitetura do PostgreSQL
Biblioteca
LIBPQ
Aplicao
(frontend)
MQUINA
CLIENTE
processo-servidor
(backend)
Processo
POSTMASTER
Banco de
Dados
Banco de
Dados
Banco de
Dados
MQUINA
SERVIDOR
48