Você está na página 1de 36

SISTEMAS DE BANCO

DE DADOS

Prof. Adriano Pereira Maranho

1
LGEBRA RELACIONAL

Coleo de operaes usadas para manipular


relaes
Grupos de operaes
Operaes relacionais
Seleo; projeo; juno
Operaes de conjunto
Unio; interseo; diferena; produto cartesiano
Operaes especiais

2
LGEBRA RELACIONAL
Linguagem de consulta para bancos de dados
relacionais
Coleo de operadores sobre relaes
Desenvolvida por Codd
Linguagem procedimental
Operaes bsicas
Seleo ()
Projeo ()
Unio ()
Operaes Unrias
Diferena (-)
Produto cartesiano (x)
Operaes Binrias
3
LGEBRA RELACIONAL

Operao de seleo
Exemplo
Considere a relao Empregado
Empregado(matr, nome, ender, cpf, salrio, lotao)
Listar todos os empregados que ganham salrio maior que
5000
Resp : salrio>5000 (Empregado)
Listar todos os empregados do departamento com cdigo igual
a 002 e que ganham salrios maior que 5000

4
LGEBRA RELACIONAL

Operao de Projeo
Seleciona um subconjunto de atributos de uma
relao
Notao
Ai1, Ai2,, Ain(r)

r uma relao com esquema R(A1, A2, , An)


{Ai1, Ai2, , Ain} {A1, A2, , An}

Projeo de R sobre os atributos Ai1, Ai2, , Ain

Exemplo
Listar o nome e salrio de todos os funcionrios 5
LGEBRA RELACIONAL

Operao de Unio
Executa a unio de duas relaes compatveis
Duas relaes com esquemas R(A1, A2, , An) e
S(B1, B2, , Bn) so compatveis
Apresentam o mesmo nmero de atributos dom(Ai )=
dom(Bi), 0<in
Notao
r s

6
Operador de Unio
Exemplo
Considere as seguintes relaes
Empregado(matr, nome, ender, dt-nasc, cpf, salrio, lotao)
Dependente(nome-dep, data-nasc, matr-resp)

Liste
o nome e data de nascimento de todos os
funcionrios e dependentes existentes na empresa
nome, dt-nasc (Empregado) nome-dep, data-nasc (Dependente)

7
LGEBRA RELACIONAL

Operao de Diferena
O resultado da operao r - s uma relao que
contm todas as tuplas de r que no pertencem a s
r e s so relaes compatveis

Exemplo
Considerando que na empresa s existam as
relaes
Empregado e Dependente que referem-se a pessoas,
execute a seguinte consulta. Listar nomes de
empregados, desde que no existam dependentes com
mesmo nome 8
LGEBRA RELACIONAL
Operao de Produto Cartesiano
Sejam r e s relaes com esquemas R(A1, A2,
, An) e S(B1, B2, , Bm), respectivamente
Resultado da operao r x s uma relao
T(r.A1, r.A2, , r.An, s.B1, s.B2, , s.Bm)
com n+m atributos

cada tupla de T uma combinao entre uma


tupla de r e uma tupla de s
tT v r e u s, tal que t[Ai]=v[Ai],
0<in, e t[Bj]=u[Bj], 0<jm
Se a cardinalidade de r nr tuplas e a
9
LGEBRA RELACIONAL

Operao de Produto Cartesiano (cont.)


Exemplo
Sejam r e s mostradas abaixo. Calcule r x s
r s
A B A B C
a1 b1 a1 b1 c1
a1 b2 a2 b3 c3
a2 b1 a2 b1 c4

10
LGEBRA RELACIONAL

Operao de Juno theta (theta-join)


Sejam r e s relaes com esquemas R(A1, A2, ,
An) e S(B1, B2, , Bm), respectivamente
O resultado da operao juno theta entre r e s
uma relao T(r.A1, r.A2, , r.An, s.B1, s.B2, ,
s.Bm) definida por
R condio s = condio (r x s)
cada tupla de T uma combinao entre uma tupla
de r e uma tupla de s, sempre que a combinao
satisfaa condio de juno
11
LGEBRA RELACIONAL

Operao de juno theta (cont.)


Exemplo
Sejam r e s mostradas abaixo.
Calcule T= r |x| r.B s.B s
r s
A B A B C
a1 b1 a1 b1 c1
a1 b2 a2 b3 c3
a2 b1 a2 b1 c4

12
LGEBRA RELACIONAL

Operao de Juno de Igualdade (Equijoin)


Operao de juno theta, cujo operador de
comparao a igualdade (=)
Sejam r e s relaes com esquemas R(A1, A2, ,
An) e S(B1, B2, , Bm), respectivamente
O resultado da operao juno de igualdade entre
r e s uma relao T(r.A1, r.A2, , r.An, s.B1, s.B2,
, s.Bm) definida por
R condio s = condio (r x s)

13
LGEBRA RELACIONAL
Operao de Juno de Igualdade (cont.)
Exemplo
Considere as relaes Departamento (d) e
Empregado (e) mostradas abaixo. Calcule a
seguinte juno de igualdade
Departamento d.cod_d =e.lotacao Empregado
cod- nome ender gerente matr nome cpf salario lotacao
dep
1 ze 34 2000 3
1 LOG X,10 4 2 de 23 4000 2

2 RH Y,20 2 3 di 56 1500 1

3 FIN Z,30 1 4 li 12 2500 1

5 gi 89 1200 2
14
LGEBRA RELACIONAL

Operao Juno de Igualdade


Exemplo: Para cada empregado, listar seu
nome e o nome do departamento onde
est lotado.
Resp : e.nome, d.nome (Departamento d.cod_d
=e.lotacao Empregado)

15
LGEBRA RELACIONAL
Operao de Juno Natural (Natural Join)
Operao de juno de igualdade
Todos os atributos com o mesmo nome nas
duas relaes participam obrigatoriamente da
condio de juno
Envolvidos no operador de comparao (=)
Aparecem s uma vez na relao resultado

Sejam r e s relaes com esquemas R(A1, A2, ,


An, B1, B2, , Bi) e S(B1, B2, , Bi, C1, C2, ,
Cm), respectivamente
O resultado da operao juno natural entre r e s
uma relao T(r.A1, r.A2, , r.An,B1, B2, ,
16
Bi,s.C1, s.C2, ,s.Cm) definida por
LGREBRA RELACIONAL

Operao de Juno Natural (cont.)


Exemplo
Considere as relaes Departamento (d) e
Empregado (e) mostradas abaixo. Calcule a
seguinte juno de igualdade
Departamento Empregado
cod- nome ender gerente matr nome cpf salario cod_dep
dep
1 ze 34 2000 3
1 LOG X,10 4 2 de 23 4000 2

2 RH Y,20 2 3 di 56 1500 1

3 FIN Z,30 1 4 li 12 2500 1

5 gi 89 1200 2
17
LGEBRA RELACIONAL
Operao de Interseo
O resultado da operao r s uma relao que
contm todas as tuplas de r e que pertencem a s
r e s so relaes compatveis

O resultado de r s definido por


r s= r - (r-s)
Operao de diviso
Sejam r e s relaes com esquemas R(A1, A2, ,
An, B1, B2, , Bm) e S(B1, B2, , Bm),
respectivamente
Resultado da operao r s 18
LGEBRA RELACIONAL

Operao de Diviso
Exemplo:
R S RS
A B C C A B
a1 b1 c1 c1 a1 b3
a1 b3 c1 c2
a1 b3 c2 c3
a1 b3 c3
a2 b2 c3

Resultado da operao da diviso de s por


r definido por 19
LGEBRA RELACIONAL

Operao de Atribuio (assignment)


s vezes, importante escrever uma
expresso da lgebra relacional em diferentes
partes
Atribuir resultados das partes a relaes
temporrias
Notao
:=

Exemplo
rel1 R-S(( R-S(r) x s) - R-S,S(r)) 20
LGEBRA RELACIONAL
Funes Agregadas
Funes aplicadas sobre uma coleo de valores
do banco de dados
Sum

Max

Min

Count

Distinct

21
LGEBRA RELACIONAL

Funes Agregadas (cont.)


Exemplos
Considere a relao Empregado(matr, nome, ender,
salrio, cpf, lotao)
matr a chave primria de Empregado

Encontre o nmero de empregados lotados no


departamento 001
count( matr (lotao=001 (Empregado)))
Encontre o maior salrio da empresa
max( salrio(Empregado))

22
LGEBRA RELACIONAL
Operao de Juno Externa (outer-join)
Considere as seguintes relaes
Vendedor(matr,nome, ender, salrio, cpf, lotao)
Vendas(matr-vend,cod-item,quantidade, pr-venda)

Considere a seguinte consulta


Listar
o histrico de vendas de cada vendedor
Esquema do resultado
Res(matr,nome,cod-item,quantidade,pr-venda)

Res(Vendedor Vendas)
Consulta com perda de informao
No aparecero no resultado 23
LGEBRA RELACIONAL

Definir uma operao que evite esta perda de


informao
Outer join
Adcionar tuplas extras ao resultado de uma juno
natural
Operao de outer-join (cont.)
Tipos
Juno externa esquerda (left outer join)
Juno externa direita (right outer join)

Juno externa completa (full outer join)

left outer join 24


PROJETO DE BANCO DE DADOS - FASES

25
PROJETO DE BANCO DE DADOS - FASES
1. Anlise (especificao) de requisitos
Projetistade banco de dados deve realizar
entrevista com usurios prospectivos do
banco de dados
Entender e documentar os requisitos de dados
2. Projeto conceitual
Com base nos requisitos de dados
Criar
um esquema conceitual para o banco de
dados
Modelo de dados conceitual:MER,Construir um
DER
26
PROJETO DE BANCO DE DADOS - FASES
4. Projeto Fsico
Definir
estruturas de armazenamento
Como e onde devem ser armazenadas as tabelas
Uma tabela em um arquivo
Vrias tabelas em um nico arquivo

Definir caminhos de acesso


Definir ndices
Definir tipo de ndice
Ordenado: Primrio, Secundrio
Hash

Utilizar critrios de performance


27
PROJETO DE BANCO DE DADOS - FASES

5. Implementao
Com base no DR definido na fase 3 e as estruturas
de armazenamento e caminhos de acesso
definidos na fase anterior
Criar o banco de dados
Expresses DDL
Carregar o BD

28
PROJETO DE BANCO DE DADOS - MAPEAMENTO

Mapeamento do MER para um Banco de


Dados Relacional
Ferramentas CASE
Modelagem ER grfica
Gerao automtica de esquema (DDL)

Algoritmo de mapeamento
Sete passos

29
PROJETO DE BANCO DE DADOS -
MAPEAMENTO
Diagrama relacional (DR)
Ferramenta
grfica utilizada para representar
um esquema de banco de dados relacional
A partir de um DER, pode-se construir um
DR como descrito a seguir
Passo 1
Para cada conjunto de entidades E, deve ser
criada uma tabela como todos os atributos de
E
Escolher uma chave candidata para ser a
chave primria da tabela 30
PROJETO DE BANCO DE DADOS -
MAPEAMENTO

Passo 2
Para cada relacionamento binrio 1:1 entre os
conjuntos de entidades E1 e E2
Escolher uma das tabelas, por exemplo E2, e incluir
como chave estrangeira em E2 a chave primria da
outra tabela (E1)
Critrio de escolha
Entidade com participao total no relacionamento
Atributosde relacionamentos devem ser includos
na tabela com chave estrangeira
Ex :?? 31
PROJETO DE BANCO DE DADOS -
MAPEAMENTO

Passo 3
Para cada relacionamento binrio 1:N entre os
conjuntos de entidades E1 e E2
Identificaro conjunto de entidades que participa do lado
N (suponha que seja E2)
Incluir como chave estrangeira na tabela E2 a chave
primria da outra tabela (E1)
Atributos de relacionamentos devem ser includos na
tabela com chave estrangeira
Ex: ??

32
PROJETO DE BANCO DE DADOS -
MAPEAMENTO

Passo 4
Para cada relacionamento binrio N:N entre os
conjuntos de entidades E1 e E2
Criar uma nova tabela auxiliar tab-aux para representar o
relacionamento
Incluir como chaves estrangeiras na tabela tab-aux as
chaves primrias de E1 e E2
Estes dois atributos comporo a chave primria de tab-
aux
Atributos de relacionamentos devem ser includos na
tabela tab-aux
Ex: ?? 33
PROJETO DE BANCO DE DADOS -
MAPEAMENTO

Passo 5
Para relacionamento de grau maior que 2
Criar uma nova tabela auxiliar tab-aux para representar o
relacionamento
Incluir como chaves estrangeiras na tabela tab-aux as
chaves primrias das tabelas que participam do
relacionamento
Estes atributos comporo a chave primria de tab-aux

Ex: ??

34
PROJETO DE BANCO DE DADOS -
MAPEAMENTO

Passo 6
Para cada conjunto de entidades fracas F
Cria uma tabela TFr com todos os atributos de F
Incluir como chave estrangeira de TF a chave primria da
tabela correspondentes ao conjunto de entidades fortes
R
A chave primria de TFr ser a chave parcial de F mais a
chave primria de R
Ex: ??

35
PROJETO DE BANCO DE DADOS -
MAPEAMENTO

Passo 7
Para cada atributo multivalorado A de um
conjunto de entidades E1
Criar uma tabela T com o atributo A
Incluir como chave estrangeira em T a chave
primria de E1
A chave primria de T ser composta do atributo A
mais a chave primria de E1
Ex: ??

Como Mapear
Especializao/Generalizao e Agregao
36

Você também pode gostar