Você está na página 1de 49

BANCO DE DADOS WEB

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

classificao agrupamento e agregao(order, group e having)


3

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

combinao de consultas (unions)


4

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

O que Banco de Dados?

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

Nmero de litros de vinho vendidos no ano de 2008

19567
A venda foi 14% menor em relao ao ano anterior.
15

Banco de dados (conceitos)


Bancos de dados (ou bases de dados): uma coleo de dados
interrelacionados, representando informaes sobre um domnio
especfico.
So conjuntos de registros dispostos em estrutura regular que
possibilita a reorganizao dos mesmos e produo de informao.
Um banco de dados normalmente agrupa registros utilizveis para
um mesmo fim.
Um banco de dados usualmente mantido e acessado por meio
de um software conhecido como Sistema Gerenciador de Banco de
Dados (SGBD). Normalmente um SGBD adota um modelo de dados,
de forma pura, reduzida ou estendida. Muitas vezes o termo banco
de dados usado como sinnimo de SGBD.
Exemplos: Oracle, Paradox, Access, DBase, MySQL, Interbase.

16

Objetivos de um SGBD
Isolar os usurios dos detalhes mais internos do banco

de dados (abstrao de dados).

Prover independncia de dados s aplicaes


(estrutura fsica de armazenamento e estratgia de
acesso).

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

Os dados so representados por colees de registros e os seus relacionamentos

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

Tabela cliente (DADOS)

CLIENTE

NOME

RUA

CIDADE

015

Jos

Figueiras

Campinas

021

Joo

Laranjeiras

Campinas

037

Antnio

Ip

Limeira

Tabela cliente_conta (RELACIONAMENTO)

Tabela CONTA (DADOS)

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

Banco de Dados Relacional

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

Por que usar um BD relacional?


Foram desenvolvidos para prover acesso facilitado
aos dados, possibilitando que os usurios utilizassem
uma grande variedade de abordagens no tratamento
das informaes.
Enquanto em um banco de dados hierrquico os
usurios precisam definir as questes de negcios de
maneira especfica, iniciando pela raiz do mesmo, nos
Bancos de Dados Relacionais os usurios podem fazer
perguntas relacionadas aos negcios atravs de
vrios pontos.
A linguagem padro dos Bancos de Dados
Relacionais a Structured Query Language, ou
simplesmente SQL, como mais conhecida.
29

Tabelas (ou relaes, ou entidades)


Na arquitetura de um banco de dados relacional usamos termos como: entidade(tabela),
tupla(linhas) e atributo(coluna).

Todos os dados de um banco de dados relacional so armazenados


em tabelas.
Uma tabela uma simples estrutura de linhas e colunas.
Em uma tabela, cada linha contm um mesmo conjunto de colunas
(atributos).
As tabelas associam-se entre si atravs de regras de
relacionamentos, estas regras consistem em associar um ou vrios
atributos de uma tabela com um ou vrios atributos de outra tabela.
Exemplo: A tabela vinho relaciona-se com a tabela vinicola. Atravs deste relacionamento esta ltima tabela fornece a lista de
vincolas para a tabela vinho.

vinho

1 vincola
30

Registros (ou linhas, ou tuplas)


Cada linha formada por uma lista ordenada de
colunas representa um registro, ou tupla.
Os registros no precisam conter informaes em
todas as colunas, podendo assumir valores nulos
quando assim se fizer necessrio.
Resumidamente, um registro uma instncia de uma
tabela, ou entidade.
Exemplo: O espumante Archibald uma instncia (registro) da tabela vinho, e a empresa
Williams's Wines a instncia (registro) da tabela vincola. Uma associao entre estas duas
tabelas criaria a seguinte instncia de relacionamento: Archibald produto da Williamss
Wines, onde o verbo ser representa uma ligao entre os registros distintos.

31

Colunas (ou campos ou atributos)


As colunas de uma tabela so tambm chamadas de
Atributos.
Ao conjunto de valores que um atributo pode assumir
chama-se domnio.
Por exemplo: em um campo do tipo numrico, sero
somente armazenados nmeros.

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

Interface com o usurio

Plataforma de execuo

Sistema de arquivos

Modelo cliente-servidor
Aplicao dividida em duas camadas

Requisio (request) - Input


Resposta (response) - Output

SGBD

Interface com o usurio

Sistema de
arquivos

Processos

Cliente (gordo)

Servidor

Sistemas baseados na Web


Modelo dividido em trs camadas

Requisio (request) - Input


Resposta (response) - Output

Sistema de
arquivos

Processos

Servidor WEB

SGBD
Sistema de
arquivos
Interface com o usurio

Cliente (magro)

Processos

Sistemas legados, SGBDs, etc.

Principais Web-Browsers

62,12%

0,36%

2,38%

24,43%
4,53%

Fonte:
Market Share by Net ApplicaLons
fev/2010

5,22%

Exibio de Pginas Estticas


Requisio (request) - Input

servidor web

Resposta (response) - Output

browser

url

h,p
path

link

Textos
Imagens
vdeos

usurio

Textos
Imagens
vdeos

arquivos

Exibio pginas dinmicas


Integrao HTML + PHP

Requisio (request) - Input

3. O

servidor Web
aciona o mdulo PHP.

2. um script PHP!

Resposta (response) - Output


SERVIDOR WEB

1. O

cliente (browser)
solicita uma pgina ao
servidor Web.

USURIO

4. O
6. O

cliente (browser) exibe


ao usurio o contedo
HTML.

5. O

servidor Web envia


a pgina HTML ao
cliente.

mdulo PHP interpreta os


trechos em PHP do script e
devolve ao servidor Web a pgina
processada.

Acesso base de dados


Integrao HTML + PHP + PostgreSQL

Requisio (request) - Input

3.

O script PHP estabelece


a conexo com o SGBD, e
executa a consulta.

Resposta (response) - Output

2.

O servidor Web
aciona o mdulo PHP.

SERVIDOR WEB

1.

O cliente (browser)
solicita uma pgina ao
servidor Web.

5.

O PHP processa os valores do


recurso (resource) e devolve ao
servidor Web a pgina formatada
em HTML.
SGBD PostgreSQL

4.
6.

O servidor Web envia


a pgina HTML ao cliente.

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

Como obter o PostgreSQL


Est disponvel para download em qualquer um dos mirrors
apresentados em seu site oficial:
www.postgresql.org
Para fins de estudo nesta disciplina utilizaremos o pacote
estendido Postgres Plus compilado pela EnterpriseBD.
www.enterprisedb.com/products/postgres_plus/download.do

Nessa distribuio temos algumas funcionalidades extra


implementadas como:
Suporte a depurao de instrues na linguagem PL/pgSQL
Ferramenta de migrao de dados do MySQL para PostgreSQL
Suporte replicao de dados (cluster) pela ferramenta Slony entre outras.
49

Você também pode gostar