Você está na página 1de 28

lgebra Relacional

Conjunto de operaes que usa uma ou duas relaes


como entrada e gera uma relao de sada
operao (REL
1
) REL
2
operao (REL
1
,REL
2
) REL
3
Operaes bsicas:
seleo
projeo
unio
diferena
produto cartesiano
Operadores da lgebra
Relacional
Seleo:
seleciona tuplas que satisfazem um certo predicado
ou condio
Pessoas
a) selecionar tuplas cujo nome = J oo

nome=J oo
(Pessoa)
Nome Registro
J oo 1
Maria 2
J os 3

Nome Registro
J oo 1

Operadores da lgebra
Relacional
b) selecionar as tuplas de Pessoas cujo registro > 1

registro>1
(Pessoa)
c) selecionar as tuplas de Pessoas com registro > 1 e
registro < 3

registro>1 registro < 3


(Pessoa)
Nome Registro
Maria 2
J os 3

Nome Registro
Maria 2

Operadores da lgebra
Relacional
Projeo:
gera novas relaes excluindo alguns atributos
exemplo: projete o atributo Nome sobre a relao
Pessoa
Pessoa
nome
(Pessoa)
Nome Registro
J oo 1
Maria 2
J os 3

Nome
J oo
Maria
J os

Operadores da lgebra
Relacional
Unio:
unio de atributos do mesmo domnio que
esto em relaes diferentes
as relaes devem possuir o mesmo nmero
de atributos
exemplo: encontre todos os clientes da
agncia que possuem conta corrente ou
emprstimo.
Relaes existentes para a agncia:
CONTACORRENTE e EMPRSTIMOS
Operadores da lgebra
Relacional
Unio: clientes com conta corrente ou emprstimo
CONTACORRENTE
EMPRSTIMO
Nome Conta
J oo 1
Maria 2
J os 3

Nome Emprstimo
Paulo 100
Maria 200
Carlos 300

Nome
J oo
Maria
J os
Paulo
Carlos

UNIO
=
Operadores da lgebra
Relacional
Diferena:
tuplas que se encontram em uma relao, mas no
em outra (ex: todos clientes sem emprstimo)
Nome Conta
J oo 1
Maria 2
J os 3

Nome Emprstimo
Paulo 100
Maria 200
Carlos 300

Nome
J oo
J os

DIFERENA
=
-
Operadores da lgebra
Relacional
Produto Cartesiano
combina operaes entre duas relaes
unio de atributos forma a nova relao
(todos clientes com conta corrente X emprstimo de
Maria)
Nome
cc
Conta Nome
emp
Emprstimo
J oo 1 Maria 200
Maria 2 Maria 200
J os 3 Maria 200

Operadores da lgebra
Relacional
Operadores derivados:
interseco
tudo que est em ambas relaes
(todos os clientes que possuem emprstimo)
CONTACORRENTE EMPRSTIMO
Nome Conta
J oo 1
Maria 2
J os 3

Nome Emprstimo
Paulo 100
Maria 200
Carlos 300

INTERS.
Nome
Maria

Operadores da lgebra
Relacional
Operadores derivados
juno: inclui um produto cartesiano, seguido
de uma seleo (pode ter projeo ao final)
(nomes dos clientes com conta corrente e
nmero de emprstimo)
prod. cartesiano: CONTACORRENTE X EMPRSTIMO
seleo: Nome
contacorrente
= Nome
emprstimo
projeo: Nome
contacorrente
, Emprstimo
emprstimo
Operadores da lgebra
Relacional
J uno natural
nomes dos atributos nas relaes da seleo so
iguais
J uno externa (outer join): evita perda de informao
( nome,endereo,cidade ) (nome,banco,salrio)
{Coyote,Toon,Hollywood } {Coyote,Mesa,1500 }
{Coelho,Tnel,Cenoura } {Coelho,Mesa,1300 }
{Smith,Revolver,Vale Morte} {Gates, Msm, 5300 }
J uno: (nome,endereo,cidade,banco,salrio)
{Coyote, Toon, Hollywood, Mesa, 1500 }
{Coelho, Tnel, Cenoura, Mesa, 1300 }
lgebra Relacional
Funes de agregao
retorna um valor nico de resultado a partir de uma
coleo de valores
sum: soma dos valores {sum
salrio
(inpe) }
avg: mdia dos valores
count: total de tens na coleo
min e max: mnimo e mximo valores da coleo
count-distinct: elimina duplicao primeiro e conta o
total
SQL - Structured Query
Language
Linguagem de banco de dados relacional
linguagem de definio de dados (DDL)
linguagem de manipulao de dados (DML)
definio de vistas
integridade
controle de transao
SQL - Structured Query
Language
Linguagem de Definio de Dados (DDL)
responsvel por criar, alterar e excluir
entidades, colunas, relacionamentos etc.
Linguagem de Manipulao de Dados
(DML)
permite ao usurio manipular os dados.
Incluir, alterar e excluir dados de uma
entidade.
SQL - Structured Query
Language
Linguagem de definio de dados (DDL)
esquema para cada relao
domnio de valores associados a cada
atributo
restries de integridade
ndices para cada relao
segurana e autorizao de acesso para
cada relao
estrutura de dados em disco para cada
relao
SQL - Structured Query
Language
Definio de esquema:
comando create table - cria uma nova tabela
create table r (A
1
D
1
, A
2
D
2
, ...., A
n
D
n
,
<restrio de integridade
1
>,
....,
<restrio de integridade
k
>)
Restries de integridade:
primary key (A
j1
, A
j2
, ..., A
jm
) - define chave
check (P) - verifica predicado
SQL - Structured Query
Language
create table cliente
(nome char(20) not null,
endereo char(30),
cidade char(30),
primary key (nome))
create table contacorrente
(nmero char(10) not null,
banco char(30),
saldo integer,
primary key (nmero),
check (saldo >= 0))
SQL - Structured Query
Language
Definio de esquema:
comando drop table - elimina tabela do banco
drop table cliente
comando delete from- elimina todos os registros
delete fromcliente
comando alter table - altera tabela do banco
alter table cliente add A D : adiciona atributo A com domnio D
alter table cliente drop A : elimina atributo A
SQL - Linguagem de Consulta
Sintaxe:
SELECT <atributos> FROM <relaes> WHERE<expresso>
SELECT: corresponde ao operador projeo da lgebra
relacional
FROM: corresponde ao operador produto cartesiano da
lgebra relacional
WHERE: corresponde ao operador seleo da lgebra
relacional
Exemplos de Consultas
ALUNO CADEIRA
SELECT nome FROM aluno WHERE id = 1
FROM: todos as tuplas da relao aluno
WHERE: selecione as tuplas cujo id = 1
SELECT: projete o atributo nome
Nome Id
J oo 1
Maria 2
J os 3

Aluno Tipo
1 escolar
2 normal
10 poltrona

SELECT nome, id, tipo FROMaluno, cadeira WHERE id = aluno
FROM: produto cartesiano (ALUNO x CADEIRA)
Nome Id Aluno Tipo
J oo 1 1 escolar
Maria 2 1 escolar
J os 3 1 escolar
J oo 1 2 normal
Maria 2 2 normal
J os 3 2 normal
J oo 1 10 poltrona
Maria 2 10 poltrona
J os 3 10 poltrona

SELECT nome, id, tipo FROM aluno, cadeira WHERE id = aluno
WHERE: selecione tuplas cujo id = aluno
SELECT: projete os atributos nome, id, tipo
Nome Id Aluno Tipo
J oo 1 1 escolar
Maria 2 2 normal

Nome Id Tipo
J oo 1 escolar
Maria 2 normal

SQL - Structured Query
Language
Operaes em conjunto de caracteres (strings) :
O caracter % representa qualquer sub-string
O caracter _ representa qualquer caracter
O termo like utilizado para comparar padres
Carl%: qualquer nome que comece com Carl
%ulo%: qualquer nome que possui ulo
_ _ _: qualquer nome com 3 caracteres
select nome
from cliente
where endereco like %Ademar%
SQL - Structured Query
Language
Funes de agregao
Mdia: avg
select avg (saldo) from conta_corrente
where banco_nome = Brasil
Clusula group by :
junta as tuplas com atributos em group by de mesmo valor
select banco_nome, avg (saldo)
from conta_corrente
group by banco_nome
SQL - Structured Query
Language
Funes de agregao
Contador : count
recupere o nmero de tuplas ou registros na relao cliente
select count (*) from cliente
Mnimo : min
Mximo : max
Soma : sum
SQL - Structured Query
Language
J uno natural : (inner join)
emprstimo (banco,numero,saldo) cliente (nome,emp_numero)
{Centro, L-170, 3000 } {J oo, L-170 }
{Satelite, L-230, 4000 } {Sandra, L-230 }
{Inpe, L-260, 300 } {Paulo, L-155 }
select *
from emprestimo inner join cliente on
emprestimo.numero = cliente.emp_numero
{Centro, L-170, 3000, J oo, L-170}
{Satelite, L-230, 4000, Sandra, L-230 }
SQL - Structured Query
Language
J uno externa : (outer join)
emprstimo (banco,numero,saldo) cliente (nome,emp_numero)
{Centro, L-170, 3000 } {J oo, L-170 }
{Satelite, L-230, 4000 } {Sandra, L-230 }
{Inpe, L-260, 300 } {Paulo, L-155 }
select *
from emprestimo left outer join cliente on
emprestimo.numero = cliente.emp_numero
{Centro, L-170, 3000, J oo, L-170}
{Satelite, L-230, 4000, Sandra, L-230 }
{Inpe, L-260, 1700, null, null, }
Passos na Modelagem de BD
Requisitos:
identificao dos dados
Modelagem conceitual:
mapear viso do usurio em
um conjunto de dados
descreve entidades, atributos
e relacionamentos
Implementao:
esquema de banco de dados
Projeto fsico:
estruturas de dados, mtodos de
acesso, segurana
Identificao de
Requisitos
Modelo
Conceitual
Implementao
Projeto Fsico

Você também pode gostar