Vous êtes sur la page 1sur 85

lgebra Relacional

degas@uesc.br http://alvarodegas.cjb.net/

lgebra Relacional

O que

a R, b R operao a b = c c R

O que

Se e so relaes (tabelas) Uma operao sobre e precisa resultar em algum que necessariamente ser uma relao Operaes

Unrias (Seleo, Projeo) Binrias (Juno, Produto Cartesiano, Diviso, Unio, Interseco, Diferena)

Clculo e lgebra?

Clculo Relacional: operaes para se obter um resultado.

Sentena declarativa

lgebra Relacional: operaes definidas em como se obter um resultado

Sequncia de operaes

lgebra: duas operaes podem gerar o mesmo resultado

Mas possuir custo computacional diverso Otimizao

Porque lgebra?

Um formalismo Definio de operaes sobre os conjuntos de dados til para implementar Execuo de consultas Otimizao de consultas Afinal: como garantir que as operaes (em SQL por exemplo) so efetivamente executveis? SQL implementa a lgebra Relacional

lgebra de Sacos e de Conjuntos

Conjuntos coleo de exemplares

Sem repetio Com repetio {A, B, C} um conjunto {A, B, B, C, C} um saco

Sacos coleo de objetos

Ex:

Na prtica h diferena?

H operaes sobre conjuntos que so anlogas

Unio

Conjuntos: Omitem as repeties Sacos: Permite repeties

Interseco Diferena

Exemplos

Conjuntos

{A, B, C, D} {A, C, D, E} = {A, B, C, D, E} {A, B, C, D} {A, C, D, E} = {A, C, D} {A, B, C, D} {A, C, D, E} = {B}

Operar {1, 3, 5, 7, 9, 11, 13} com {2, 3, 5, 7, 11, 13}

Exemplos

Sacos

{A, B, B, B, C} {A, A, B, D} = {A, A, A, B, B, B, C, D} (lista cada elemento m+n vezes) {A, B, B, B, C} {A, A, B, D} = {A, B} (lista cada elemento m vezes, m o menor nmero) {A, B, B, B, C} {A, A, B, D} = {B, B, C} (lista cada elemento m-n vezes, no mnimo 0)

Operar {1, 1, 2, 2, 2, 3, 4} com {1, 2, 3, 5}

Para efeitos prticos

Redefinio de operaes

Unio e Unio Total (Union e Union All)

Unio elimina as duplicaes

Interseco e Interseco Total (Intersection e Intersection All)

Interseco elimina as duplicaes Diferena elimina duplicaes

Diferena e Diferena Total (Minus e Minus All)

Definies

lgebra relacional: operadores

Sobre relaes (no sobre tuplas individuais) possivelmente unitrias Resultando relaes

Permite aninhamento de operaes

Operadores definidos

Seleo Restringe tuplas (linhas) Projeo Restringe atributos (colunas) Juno Combina tuplas segundo uma condio Diviso Restringe tuplas e atributos Unio Unio das relaes (atributos iguais) Interseco Interseco das relaes (idem) Diferena Diferena das relaes (idem) Produto Cartesiano Gera combinaes

Unio
Fornecedor
Matricula 001 010 100 Nome Jos Carla Jaqueline

Cliente
Matricula 000 001 002 Nome Maria Jos Jaqueline

Fornecedor Cliente
Matricula 001 010 100 000 002 Nome Jos Carla Jaqueline Maria Jaqueline

Consideraes

Unio: operao entre duas relaes trazendo todas as tuplas presentes em qualquer delas, onde

As relaes devem ter uma estrutura similar mesmo nmero de atributos e domnios compatveis Linhas duplicadas so eliminadas

Interseco
Fornecedor
Matricula 001 010 100 Nome Jos Carla Jaqueline

Cliente
Matricula 000 001 002 Nome Maria Jos Jaqueline

Fornecedor Cliente
Matricula 101 Nome Jos

Consideraes

Interseo: operao entre duas relaes trazendo todas as tuplas presentes em ambas.

As relaes devem ter uma estrutura similar mesmo nmero de atributos e domnios compatveis Linhas duplicadas so eliminadas

Diferena
Fornecedor
Matricula 001 010 100 Nome Jos Carla Jaqueline

Cliente
Matricula 000 001 002 Nome Maria Jos Jaqueline

Fornecedor Cliente
Matricula 010 100 Nome Carla Jaqueline

Consideraes

Diferena: operao entre duas relaes resultando em tuplas que esto na primeira e no na segunda.

A - B diferente de B - A (mostre)

Em SQL

Select from FORNECEDOR UNION / INTERSECTION / MINUS (EXCEPT) Select from CLIENTE

Representao Grfica
Unio Interseco Diferena

Seleo condio(relao)

Unrio: opera sobre uma relao apenas Gera uma relao contendo todos os atributos das tuplas selecionadas

As que satisfazem a condio

Exemplo
Alunos
Matricula 01001 01002 02001 Nome Antnio Jaqueline Nbia Sexo M F F Curso Comp Comp Quim

Sexo=F(Alunos)
Matricula 01002 02001

Nome Jaqueline Nbia

Sexo F F

Curso Comp Quim

Sexo=F Curso=Quim(Alunos)
Matricula 02001 Nome Nbia Sexo F Curso Quim

Exemplo
Alunos
Matricula 01001 01002 02001 Nome Antnio Jaqueline Nbia Sexo M F F

Em SQL Select Curso FROM Alunos Comp WHERE Sexo = 'F'


Comp Quim

Sexo=F(Alunos)
Matricula 01002 02001

Nome Jaqueline Nbia

Sexo F F

Curso Comp Quim

Sexo=F Curso=Quim(Alunos)
Matricula 02001 Nome Nbia Sexo F Curso Quim

Exemplo
Alunos
Matricula 01001 01002 02001 Nome Antnio Jaqueline Nbia Sexo M F Curso Comp

Sexo=F(Alunos)
Matricula 01002 02001

Nome Jaqueline Nbia

Em SQL Comp Select Quim F FROM Alunos WHERE Curso Sexo = 'F' AND Sexo Curso='Quim'
F F Comp Quim

Sexo=F Curso=Quim(Alunos)
Matricula 02001 Nome Nbia Sexo F Curso Quim

Projeo A1,A2An(relao)

Unrio Gera uma relao que contm todas as tuplas da original

E alguns atributos

Exemplo
Nome, Sexo(Alunos)
Nome Antonio Jacqueline Nbia Sexo M F F

Sexo(Alunos)
Sexo M F F

Exemplo
Nome, Sexo(Alunos)
Nome Antonio Jacqueline Nbia Sexo M F F

Sexo(Alunos)
Sexo M F F

Em SQL Select Nome, Sexo FROM Alunos

Exemplo
Nome, Sexo(Alunos)
Nome Antonio Jacqueline Nbia Sexo M F F

Sexo(Alunos)
Sexo M F F

Em SQL Select Sexo FROM Alunos

Propriedades

Seleo

Comutativa: cond1 (cond2 (R)) = cond2 (cond1 (R)) Seleo de selees Conjuno de condies

cond1 (cond2 (R)) = cond1cond2 (R))

Projeo

Projeo de Projeo Concatenao de atributos

a1,a2 (a3,a4(R)) = a1,a2,a3,a4(R))

Projees + Selees

Matrcula, Nome e Salrio dos funcionrios do departamento 5

nominic, nomefim, numat, sal ( ndepto = 5 (Empreg) )

Matrcula e Salrio dos funcionrios do departamento 5 que recebem at 500 numat, sal ( ndepto = 5 sal<=300 (Empregado) ) Salrio dos funcionrios do departamento 5 OU do sexo feminino (duas opes: qual a melhor?) sal ( ndepto = 5 sexo='F' (Empregado) )

sal ( ndepto = 5 sexo='F' ( sexo,sal,ndepto Empregado) )

Operaes Acessrias

Alias ()

Emp5

ndepto = 5

(Empregado)

Emp5ns nominic, sal (Emp5) Emp5Fs sal ( ndepto = 5 sexo='F' (Empregado) ) NomeSal(nome, salario)

nominic, sal (Emp5)

Renomear

Emp5ns ( nominic, sal ( ndepto = 5 (Empregado) ) ) Emp5Fs ( sal ( ndepto = 5 sexo='F' (Empregado) ) )

Operaes Acessrias

Alias ()

Em SQL Create view emp5 as Emp5 ndepto = 5 (Empregado) Select * From Empregado Emp5ns nominic, sal (Emp5) Where ndepto=5
Emp5Fs sal ( ndepto = 5 sexo='F' (Empregado) ) NomeSal(nome, salario)

nominic, sal (Emp5)

Renomear

Emp5ns ( nominic, sal ( ndepto = 5 (Empregado) ) ) Emp5Fs ( sal ( ndepto = 5 sexo='F' (Empregado) ) )

Operaes Acessrias

Alias ()

Em SQL Create view emp5ns as Emp5ns nominic, sal (Emp5) Select nomicic, sal From Emp5
Emp5

ndepto = 5

(Empregado)

Emp5Fs sal ( ndepto = 5 sexo='F' (Empregado) ) NomeSal(nome, salario)

nominic, sal (Emp5)

Renomear

Emp5ns ( nominic, sal ( ndepto = 5 (Empregado) ) ) Emp5Fs ( sal ( ndepto = 5 sexo='F' (Empregado) ) )

Operaes Acessrias

Alias ()

Em SQL Create view emp5Fs as Emp5 ndepto = 5 (Empregado) Select sal Empregado Emp5ns nominic, sal From (Emp5) Where ndepto=5 OR sexo='F'
Emp5Fs sal ( ndepto = 5 sexo='F' (Empregado) ) NomeSal(nome, salario)

nominic, sal (Emp5)

Renomear

Emp5ns ( nominic, sal ( ndepto = 5 (Empregado) ) ) Emp5Fs ( sal ( ndepto = 5 sexo='F' (Empregado) ) )

Operaes Acessrias

Alias ()

Emp5

ndepto = 5

(Empregado)

Emp5ns nominic, sal (Emp5) Emp5Fs sal ( ndepto = 5 sexo='F' (Empregado) )

Em SQL NomeSal(nome, salario) nominic, sal (Emp5) Select * from ( Select sal as Emp5FS Renomear From Empregado Emp5ns ( nominic, salWhere ( ndepto = ) 5 (Empregado) ndepto=5 OR )sexo='F' )

Emp5Fs ( sal ( ndepto = 5 sexo='F' (Empregado) ) )

Combina duas relaes

Produto Cartesiano Relao1 X Relao2

Gera uma relao cujas tuplas so todas as combinaes das tuplas das relaes originais

A A B C A X Y

X Y X Y X Y

B B C C

Exemplo
Cursos
Cod Comp Filos Quim Nome_Curso B. Cincia da Computao B. Filosofia Quimica rea Exatas Humanas Exatas

Alunos
Matricula 01001 01002 02001 03001 Nome Antnio Jaqueline Nbia La Sexo M F F F Curso Comp Comp Quim Filos

Cursos X Alunos
C od C om p F ilo s Q u im C om p F ilo s Q u im C om p F ilo s Q u im C om p F ilo s Q u im N om e_C u rso

Exemplo (cont)
rea E x a ta s H um ana s E x a ta s E x a ta s H um ana s E x a ta s E x a ta s H um ana s E x a ta s E x a ta s H um ana s E x a ta s M a tr . 01001 01001 01001 01002 01002 01002 02001 02001 02001 03001 03001 03001 N om e A n t n io A n t n io A n t n io J a q u e lin e J a q u e lin e J a q u e lin e N b ia N b ia N b ia L a L a L a Sexo M M M F F F F F F F F F C u rso C om p C om p C om p C om p C om p C om p Q u im Q u im Q u im F ilo s F ilo s F ilo s

B . C i n c ia d a C o m p u ta o B . F ilo s o fia Q u im ic a B . C i n c ia d a C o m p u ta o B . F ilo s o fia Q u im ic a B . C i n c ia d a C o m p u ta o B . F ilo s o fia Q u im ic a B . C i n c ia d a C o m p u ta o B . F ilo s o fia Q u im ic a

Cursos X Alunos
C od C om p F ilo s Q u im C om p F ilo s Q u im C om p F ilo s Q u im C om p F ilo s Q u im N om e_C u rso

Exemplo
rea E x a ta s H um ana s E x a ta s E x a ta s H um ana s E x a ta s E x a ta s H um ana s E x a ta s E x a ta s H um ana s E x a ta s

Em SQL (cont) Select * From Cursos, Alunos


M a tr . 01001 01001 01001 01002 01002 01002 02001 02001 02001 03001 03001 03001 N om e A n t n io A n t n io A n t n io J a q u e lin e J a q u e lin e J a q u e lin e N b ia N b ia N b ia L a L a L a Sexo M M M F F F F F F F F F C u rso C om p C om p C om p C om p C om p C om p Q u im Q u im Q u im F ilo s F ilo s F ilo s

B . C i n c ia d a C o m p u ta o B . F ilo s o fia Q u im ic a B . C i n c ia d a C o m p u ta o B . F ilo s o fia Q u im ic a B . C i n c ia d a C o m p u ta o B . F ilo s o fia Q u im ic a B . C i n c ia d a C o m p u ta o B . F ilo s o fia Q u im ic a

cod=curso (Cursos X Alunos)


C od C om p C om p Q u im F ilo s N o m e_ C u rso B . C i n c ia d a C o m p u ta o B . C i n c ia d a C o m p u ta o Q u im ic a B . F ilo s o fia rea

Exemplo (cont)
M a tr. 01001 01002 02001 03001 N om e A n t n io J a q u e lin e N b ia L a Sexo M F F F C u rso C om p C om p Q u im F ilo s

E x a ta s E x a ta s E x a ta s H um anas

cod=curso (Cursos X Alunos)


C od C om p C om p Q u im F ilo s N o m e_ C u rso B . C i n c ia d a C o m p u ta o B . C i n c ia d a C o m p u ta o Q u im ic a B . F ilo s o fia rea

Exemplo

Em SQL (cont) Select * From Cursos, Alunos Where cod=curso


M a tr. 01001 01002 02001 03001 N om e A n t n io J a q u e lin e N b ia L a Sexo M F F F C u rso C om p C om p Q u im F ilo s

E x a ta s E x a ta s E x a ta s H um anas

Juno Relao1condio Relao2

Combina as tuplas de duas relaes segundo uma condio.


Condio baseada em atributos das relaes compartilhando um domnio. As tuplas das relaes so combinadas quando condio for verdadeira. Geralmente a condio uma igualdade entre atributos

Exemplo
Cursos
Cod Comp Filos Quim Nome_Curso B. Cincia da Computao B. Filosofia Quimica rea Exatas Humanas Exatas

Alunos
Matricula 01001 01002 02001 03001 Nome Antnio Jaqueline Nbia La Sex o M F F F Curso Com p Com p Quim Filos

Exemplo
Cursos

Cursos.cod = Alunos.Curso

Alunos

C od C om p C om p Q u im F ilo s

N o m e_C u rso B . C i n c ia d a C o m p u ta o B . C i n c ia d a C o m p u ta o Q u im ic a B . F ilo s o fia

rea E x a ta s E x a ta s E x a ta s H um an

M a tr . 01001 01002 02001 03001

N om e A n t n io J a q u e lin e N b ia L a

Sexo M F F F

C u rso C om p C om p Q u im F ilo s

Exemplo
Cursos

Cursos.cod = Alunos.Curso

Alunos

C od C om p C om p Q u im F ilo s

N o m e_C u rso B . C i n c ia d a C o m p u ta o B . C i n c ia d a C o m p u ta o Q u im ic a B . F ilo s o fia

rea E x a ta s E x a ta s E x a ta s H um an

M a tr . 01001 01002 02001 03001

N om e A n t n io J a q u e lin e N b ia L a

Sexo M F F F

C u rso C om p C om p Q u im F ilo s

Select * From Alunos JOIN Cursos ON Cursos.cod = Alunos.curso

Em SQL

Juno Igual

Quando a condio uma igualdade

Equijoin: a relao resultante ter sempre duas colunas idnticas.

Outras condies podem utilizadas em uma juno, como maior, menor, between, etc.

Exemplo
Receitas
Num 001 002 003 Valor 150 175 85

Despesas
Num 101 102 103 Valor 140 155 170

Exemplo
Receitas
Num 001 003 003 003

Valor 150 175 175 175

Despesas.valor < Receitas.Valor

Despesas

Num 101 101 102 103

Valor 140 140 155 170

Exemplo
Receitas
Num 001 003 003 003

Valor 150 175 175 175

Despesas.valor < Receitas.Valor

Despesas

Num 101 101 102 103

Valor 140 140 155 170

Select * From receitas JOIN despesas ON despesas.valor < receitas.valor

Em SQL

Juno Natural Relao1*Relao2


Uma Juno Natural um Equijoin onde um dos atributos idnticos eliminado. Combina as tuplas de duas relaes que tem atributos comuns (mesmo nome), Gera uma relao com tuplas onde atributos comuns apresentam o mesmo valor. Um dos atributos idnticos eliminado, evitando a duplicidade

Exemplo
Observar os atributos Com mesmo nome!
Cursos
Curso Comp Filos Quim Nome_Curso B. Cincia da Computao B. Filosofia Quimica Nome Antnio Jaqueline Nbia La Sex o M F F F rea Exatas Humanas Exatas Curso Com p Com p Quim Filos

Alunos
Matricula 01001 01002 02001 03001

Exemplo
Cursos
C u rso C om p C om p Q u im F ilo s

*Alunos
rea E x a ta s E x a ta s E x a ta s H um an M a tr . 01001 01002 02001 03001 N om e A n t n io J a q u e lin e N b ia L a Sexo M F F F

N o m e_ C u rso B . C i n c ia d a C o m p u ta o B . C i n c ia d a C o m p u ta o Q u im ic a B . F ilo s o fia

Um nico atributo Curso

Exemplo
Cursos
C u rso C om p C om p Q u im F ilo s

*Alunos
rea E x a ta s E x a ta s E x a ta s H um an M a tr . 01001 01002 02001 03001 N om e A n t n io J a q u e lin e N b ia L a Sexo M F F F

N o m e_ C u rso B . C i n c ia d a C o m p u ta o B . C i n c ia d a C o m p u ta o Q u im ic a B . F ilo s o fia

Em SQL Select * From Cursos NATURAL JOIN Aunos

Juno Interna (Inner Join)

O modelo relacional definiu o operador de juno apenas com as caractersticas apresentadas at aqui. Posteriormente este tipo ficou conhecido como Inner Join e a operao de juno foi estendida com a definio de Outer Join. Inner Join seleciona apenas as tuplas com valores iguais As que no esto relacionadas so omitidas

Exemplo
Funcionarios
Mat 301 482 127 185 079 246 128 248 Nome Joo Miguel Roberto Dora Esmeralda Jaqueline Leandro Marcos Setor 01 02 04 02 01 03

Setores
Setor 01 02 03 04 05 06 Nome_Setor Rec. Humanos Contabilidade Vendas Diretoria Informtica Patrimnio

Exemplo
Funcionarios
Mat 301 482 127 185 079 246 Nome Joo Miguel Roberto Dora Esmeralda Jaqueline

Setores
Setor 01 02 04 02 01 03

Nome_Setor Rec. Humanos Contabilidade Diretoria Contabilidade Rec. Humanos Vendas

Funcionrios sem setor no so relacionados!

Juno Externa (Outer Join)

Uma extenso do operador de juno: tratamento de tuplas no relacionadas. Mantm na relao resultante TODAS as tuplas de uma ou mais relaes participantes da juno.

Juno Externa (Outer Join)

Se desejamos incluir tuplas de uma relao mesmo que os valores no sejam pareados na outra. Outer Join = Inner Join + Tuplas da relao sem correspondncia

As tuplas sem correspondncia tem seus atributos da juno completados com nulos

Juno Externa (Outer Join)

Foram definidos trs tipos de Outer Joins entre duas relaes:

Left Join = Right Join = Full Join ==

Funcionarios = Setores
Mat 301 482 127 185 079 246 128 248 Nome Joo Miguel Roberto Dora Esmeralda Jaqueline Leandro Marcos Setor 01 02 04 02 01 03

Left Join
Nome_Setor Rec. Humanos Contabilidade Diretoria Contabilidade Rec. Humanos Vendas

Inner Join + Tuplas no relacionadas da relao esquerda

Funcionarios = Setores
Mat 301 482 127 185 079 246 128 248 Nome Joo Miguel Roberto Dora Esmeralda Jaqueline Leandro Marcos Setor 01 02 04 02 01 03

Left Join
Nome_Setor Rec. Humanos Contabilidade Diretoria Contabilidade Rec. Humanos Vendas

Em SQL Inner Join + Tuplas no relacionadas Select * da relao esquerda From funcionarios NATURAL LEFT JOIN Aunos

Right Join
Funcionarios = Setores
Mat 301 482 127 185 079 246 Nome Joo Miguel Roberto Dora Esmeralda Jaqueline Setor 01 02 04 02 01 03 05 06 Nome_Setor Rec. Humanos Contabilidade Diretoria Contabilidade Rec. Humanos Vendas Informtica Patrimnio

Inner Join + Tuplas no relacionadas da relao direita

Right Join
Funcionarios = Setores
Mat 301 482 127 185 079 246 Nome Joo Miguel Roberto Dora Esmeralda Jaqueline Setor 01 02 04 02 01 03 05 06 Nome_Setor Rec. Humanos Contabilidade Diretoria Contabilidade Rec. Humanos Vendas Informtica Patrimnio

Em SQL Inner Join + Tuplas no relacionadas Select * da relao direita From funcionarios NATURAL LEFT JOIN Aunos

Funcionarios == Setores
Mat Nome Joo Miguel Roberto Dora Esmeralda Jaqueline Leandro Marcos 05 06 Setor 01 02 04 02 01 03 301 482 127 185 079 246 128 248

Full Join
Nome_Setor Rec. Humanos Contabilidade Diretoria Contabilidade Rec. Humanos Vendas

Informtica Patrimnio

Inner Join + Tuplas no relacionadas das relao direita e esquerda

Funcionarios == Setores
Mat Nome Joo Miguel Roberto Dora Esmeralda Jaqueline Leandro Marcos 05 06 Setor 01 02 04 02 01 03 301 482 127 185 079 246 128 248

Full Join
Nome_Setor Rec. Humanos Contabilidade Diretoria Contabilidade Rec. Humanos Vendas

Informtica Patrimnio

Select * Inner Join + Tuplas no relacionadas From funcionarios das relao direita e esquerda NATURAL FULL JOIN Aunos

Em SQL

Mais sobre junes


Junes podem gerar alto custo computacional Junes no conhecem regras de integridade

Exceto se forem instrudas a faz-lo Select * from r1 LEFT/RIGHT/FULL JOIN r2 on CONDIO R1 =condio R2 R1 =condio R2 R1 ==condio R2

A juno externa no precisa ser natural

Exerccios

Expresses na lgebra Relacional para recuperar Nome e salrio dos empregados que esto lotados no Departamento de Pesquisa.

Lista de nmeros de projetos que tenham um Silva (ltimo nome) que trabalha nele ou que seja chefe do departamento que o controla. Nomes dos empregados que no tm dependentes. Nomes dos empregados e nomes de seus supervisores diretos

Nome e salrio dos empregados que esto lotados no Departamento de Pesquisa

nominic, nomefim, sal ( nomedep = 'Pesquisa'

( Empregadondepto = numdep Departamento ) )

nominic, nomefim, sal (Empregadondepto = numdep (


nomedep = 'Pesquisa'

( Departamento ) ) )

nominic, nomefim, sal (Empregadondepto = numdep ( numdep ( nomedep = 'Pesquisa' ( Departamento ) ) ) )

Lista de nmeros de projetos que tenham um Silva (ltimo nome) que trabalha nele ou que seja chefe do departamento que o controla.
nominic, numproj(nomefim=Silva(Empreg )numat=empnumTrab))

nominic, numproj(Proj * Depnchefe=numat (nomefim=Silva( Empreg)))

Nomes dos empregados que no tm dependentes

nominic, nomefim

(Empreg)

nominic, nomefim

(Empreg Depen)

numat=empnum

Nomes dos empregados e nomes de seus supervisores diretos


E.nominic, E.nomefim, S.nominic, S.nomefim( E(Empregado)E.nsup=S.numat S(Empregado))

Diviso Relao1Relao2

Diviso a operao entre duas relaes onde:


Uma o dividendo e outra o divisor As relaes devem possuir um ou mais atributos em comum (mesmos nomes) A relao dividendo (A) deve possuir atributos adicionais

Fazendo A

Resultado

Atributos: os da relao dividendo (A) que no fazem parte da relao divisor (B). Tuplas: as da relao dividendo (A) que satisfazem a comparao com todas as tuplas da relao divisor (B)

Exemplo
M a tF u n c 301 301 301 482 482 127 127 127 P roj 73 02 11 02 11 73 43 02

P roj 02 11

M a tF u n c 301 482

O atributo exclusivo da primeira relao, com tuplas onde ele se casa com atributos da segunda relao!

Extenses da lgebra Relacional

Projeo generalizada Agrupamento Ordenao Eliminao de tuplas repetidas

Projeo generalizada

Usar expresses e clculos nas projees Para cada dependente informar o ltimo nome do empregado de quem ele depende, o nome do dependente e a diferena de idade entre o empregado e o dependente.

nomefim, depen, E.dtnasc D.dtnasc

(E(Empreg)

numat=numemp

D(Depen) )

Projeo generalizada

Usar expresses e clculos nas projees Para cada dependente informar o ltimo nome do empregado de quem ele depende, o nome do dependente e a diferena de idade entre o empregado e o dependente.

nomefim, depen, E.dtnasc D.dtnasc

(E(Empreg)

numat=numemp

D(Depen) )

Em SQL

Select nomefin, depen, e.dtnasc-d.dtnasc From empregado e join dependente d on numat=numemp

Agrupamento -

E funes de agrupamento Ateno para


Atributos de agrupamento Funes de agregao TODAS AS COLUNAS QUE SO PROJETADAS OU ESTO EM FUNES OU SO ATRIBUTOS DE AGREGAO!

Cdigo dos projeto, e o total de horas trabalhadas e o total de empregados que trabalham em cada um deles.

numproj, COUNT(*), SUM(horas) (numproj (TrabalhaEm))

Agrupamento -

E funes de agrupamento Ateno para


Select numproj, count(*), sum(horas) Atributos de agrupamento From trabalhaem Funes de agregao Goup by numproj TODAS AS COLUNAS QUE SO PROJETADAS OU ESTO EM FUNES OU SO ATRIBUTOS DE AGREGAO!

Em SQL

Cdigo dos projeto, e o total de horas trabalhadas e o total de empregados que trabalham em cada um deles.

numproj, COUNT(*), SUM(horas) (numproj (TrabalhaEm))

Ordenao

L (R)

Ordena as projees Lista de aniversariantes: empregados e dependentes em ordem alfabtica do nome e em seguida na ordem drescente da data de nascimento

nominic,dtnasc (nominic,dtnasc (Empregado) D(nominic,dtnasc) (depend,dtnasc (Dependente)))

Ordenao

L (R)

Em SQL Ordena as projees Select nominic, dtnasc from

(Select nominic, dtnasc from empregado Lista de aniversariantes: empregados e Union dependentes em ordem alfabtica do nome e Select depend nominic dtnasc from dependente) BY nominic, dtnasc em seguida na ORDER ordem drescente da data de nascimento

nominic,dtnasc (nominic,dtnasc (Empregado) D(nominic,dtnasc) (depend,dtnasc (Dependente)))

Eliminador de Tuplas Repetidas (R)

Quando se trabalha com uma lgebra estendida que permita a repetio de tuplas SQL Exemplo: Relacione quais so os salrios que so pagos no departamento 5.

( sal ( ndepto = 5 (Empregado) ) )

Eliminador de Tuplas Repetidas (R)

Quando se trabalha com uma lgebra Select DISTINCT sal empregado estendida que permita a repetio From de tuplas SQL
Where ndepto=5

Em SQL

Exemplo: Relacione quais so os salrios que so pagos no departamento 5.

( sal ( ndepto = 5 (Empregado) ) )

lgebra Relacional

"Se a Religio recusa caminhar com a Cincia, a Cincia avana sozinha. " (Allan Kardec)

Vous aimerez peut-être aussi