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 (REL1) REL2 operao (REL1,REL2) REL3

Operaes bsicas:
seleo projeo unio diferena produto cartesiano

Operadores da lgebra Relacional Seleo:


seleciona tuplas que satisfazem um certo predicado ou condio
Pessoas

Nome
Joo Maria Jos

Registro
1 2 3

a) selecionar tuplas cujo nome = Joo nome=Joo (Pessoa) Nome Registro


Joo 1

Operadores da lgebra Relacional


b) selecionar as tuplas de Pessoas cujo registro > 1 registro>1 (Pessoa)
Nome
Maria Jos

Registro
2 3

c) selecionar as tuplas de Pessoas com registro > 1 e


registro < 3

registro>1 registro < 3 (Pessoa)

Nome
Maria

Registro
2

Operadores da lgebra Relacional


Projeo:
gera novas relaes excluindo alguns atributos exemplo: projete o atributo Nome sobre a relao Pessoa Pessoa Nome
Joo Maria Jos

Registro
1 2 3

nome (Pessoa) Nome


Joo Maria Jos

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 ou emprstimo Unio: clientes com conta corrente


CONTACORRENTE
Nome Conta
1 2 3

Joo Maria Jos

UNIO
Nome
Joo Maria Jos Paulo Carlos

EMPRSTIMO
Nome
Paulo Maria Carlos

Emprstimo
100 200 300

Diferena:

Operadores da lgebra Relacional

tuplas que se encontram em uma relao, mas no em outra (ex: todos clientes sem emprstimo)
Nome
Joo Maria Jos 1 2 3

Conta

Nome

Emprstimo
100 200 300

= Nome
Joo Jos

Paulo Maria Carlos

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)
Nomecc
Joo Maria Jos 1 2 3

Conta

Nomeemp
Maria Maria Maria

Emprstimo
200 200 200

Operadores da lgebra Relacional


Operadores derivados:
interseco
tudo que est em ambas relaes (todos os clientes que possuem emprstimo)

CONTACORRENTE
Nome
Joo Maria Jos 1 2 3

EMPRSTIMO
Nome
Paulo Maria Carlos

Conta

Emprstimo
100 200 300

INTERS.
Nome
Maria

Operadores derivados

Operadores da lgebra Relacional

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: Nomecontacorrente = Nomeemprstimo projeo: Nomecontacorrente, Emprstimoemprstimo

Operadores da lgebra Relacional Juno natural

nomes dos atributos nas relaes da seleo so iguais Juno externa (outer join): evita perda de informao
( nome,endereo,cidade ) { Coyote,Toon,Hollywood } { Coelho,Tnel,Cenoura } { Smith,Revolver,Vale Morte} (nome,banco,salrio) { Coyote,Mesa,1500 } { Coelho,Mesa,1300 } { Gates, Msm, 5300 }

Juno: (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 (A1D1, A2D2, ...., AnDn, <restrio de integridade1>, ...., <restrio de integridadek>) Restries de integridade: primary key (Aj1, Aj2, ..., Ajm) - 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 from cliente 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
Nome
Joo Maria Jos 1 2 3

CADEIRA
Id
Aluno
1 2 10

Tipo
escolar normal poltrona

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

SELECT nome, id, tipo FROM aluno, cadeira WHERE id = aluno

FROM: produto cartesiano (ALUNO x CADEIRA) Nome Id Aluno Tipo


Joo Maria Jos Joo Maria Jos Joo Maria Jos 1 2 3 1 2 3 1 2 3 1 1 1 2 2 2 10 10 10 escolar escolar escolar normal normal normal poltrona poltrona poltrona

SELECT nome, id, tipo FROM aluno, cadeira WHERE id = aluno

WHERE: selecione tuplas cujo id = aluno Nome Id Aluno Tipo


Joo Maria 1 2 1 2 escolar normal

SELECT: projete os atributos nome, id, tipo


Nome
Joo Maria 1 2

Id

Tipo
escolar 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


Juno natural : (inner join)
emprstimo (banco,numero,saldo) { Centro, L-170, 3000 } { Satelite, L-230, 4000 } { Inpe, L-260, 300 } cliente (nome,emp_numero) { Joo, L-170 } { Sandra, L-230 } { Paulo, L-155 }

select * from emprestimo inner join cliente on emprestimo.numero = cliente.emp_numero { Centro, L-170, 3000, Joo, L-170} { Satelite, L-230, 4000, Sandra, L-230 }

SQL - Structured Query Language


Juno externa : (outer join)
emprstimo (banco,numero,saldo) { Centro, L-170, 3000 } { Satelite, L-230, 4000 } { Inpe, L-260, 300 } cliente (nome,emp_numero) { Joo, L-170 } { Sandra, L-230 } { Paulo, L-155 }

select * from emprestimo left outer join cliente on emprestimo.numero = cliente.emp_numero { Centro, L-170, 3000, Joo, 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

Identificao de Requisitos Modelo Conceitual Implementao

Implementao:
esquema de banco de dados

Projeto fsico:
estruturas de dados, mtodos de acesso, segurana

Projeto Fsico