Banco de Dados II -...

31
Profa. Késsia Marchi Banco de Dados II Unipar Universidade Paranaense Disciplina: Banco de Dados II 3ª Série Profª: Késsia Marchi

Transcript of Banco de Dados II -...

Profa. Késsia Marchi

Banco de Dados II

Unipar – Universidade Paranaense

Disciplina: Banco de Dados II

3ª Série

Profª: Késsia Marchi

Profa. Késsia Marchi

Álgebra Relacional

• Linguagem de consulta procedural;

• Consiste em um conjunto básico de

operações, tendo como entrada uma ou

várias relações, produzindo novas

relações.

• Parte do modelo relacional de dados.

Profa. Késsia Marchi

Álgebra Relacional

• Para estudo, pode ser dividas em dois

grupos, sendo:

– Teoria de Conjuntos Matemáticos

– Específicas para Banco de Dados

Relacionais.

Profa. Késsia Marchi

Álgebra Relacional

• Teoria de Conjuntos Matemáticos

– União (union)

– Interseção (intersection)

– Diferença de conjunto (Set Difference)

– Produto Cartesiano (Cross Product)

Profa. Késsia Marchi

Álgebra Relacional

• Específicas para Banco de Dados

Relacionais.

– Seleção (Select)

– Projeção (Project)

– Renomear (Rename)

– Junção (Join)

– Entre outras.

Profa. Késsia Marchi

Álgebra Relacional

• Select, Project e Rename são operações

unárias;

• Operações adicionais foram criadas para

executas solicitações comum de Banco de

Dados

– Funções de Agregação

Profa. Késsia Marchi

Operação Select

• Seleciona um conjunto de tuplas (registros

(linhas)) de uma relação (tabela)

satisfazendo uma determinada

condição.

• Representada pelo sigma (σ).

Profa. Késsia Marchi

Operação Select

• Sua operação é indicada por:

– σ<condicao de selecao> (R)

• <condicao de selecao> expressão

booleana, especificada nos atributos da

relação R.

Profa. Késsia Marchi

Operação Select

• <condicao de selecao> é composta por:

– <nome do atributo>

– <op de comparacao>

• =, <, ≤, >, ≥, ≠

Profa. Késsia Marchi

Operação Select

• As cláusulas podem ser conectadas pelos

operadores booleanos.

– AND, OR e NOT

Profa. Késsia Marchi

Operação Projeção

• Seleciona determinadas colunas em uma

relação;

• Representada pelo pi (π)

Profa. Késsia Marchi

Operação Projeção

• Sua operação é indicada por:

– π <lista de atributos>(R)

• <lista de atributos> é a lista de atributos

desejados entre aqueles da relação R.

Profa. Késsia Marchi

Operação Re-nomear

(Rebatizar)

• Quebrar seqüência de operações

especificando as relações com resultados

intermediários;

• Útil em operações mais complexas como

Join e Union

Profa. Késsia Marchi

Operação Re-nomear

(Rebatizar)

• ALUNO σ nomeAlu = ‗Maria‘(Aluno)

• π nomeAlu (ALUNO)

• R(―Nome do Aluno‖) π nomeAlu (ALUNO)

– Se nenhum rename for aplicado, os nomes dos atributos na

relação de uma operação serão os mesmos da relação original

e na mesma ordem.

Profa. Késsia Marchi

Renomear em SQL

• SQL proporciona um mecanismo para

Rebatizar tanto relações quanto atributos,

usando a cláusula ‗as‘.

– Nome_antigo as novo_nome.

Profa. Késsia Marchi

Renomear em SQL

• Re-nomeando Atributos

– Select nomeAlu as ―Nome do Aluno‖ from

aluno where nomeAlu = ―Maria‖;

• A cláusula as pode ser omitida

– Select nomeAlu ―Nome do Aluno‖ from aluno

where nomeAlu = ―Maria‖;

Profa. Késsia Marchi

Renomear em SQL

• Re-nomeando Tabelas

– Select a.nomeAlu as ―Nome do Aluno‖ from

aluno a where a.nomeAlu = ―Maria‖;

Profa. Késsia Marchi

Operações de Álgebra Relacional a partir

da teoria dos conjuntos

• Este grupo de operações de álgebra

relacional são as operações matemáticas-

padrão de conjuntos.

Profa. Késsia Marchi

Operações de Álgebra Relacional a partir

da teoria dos conjuntos

• UNIÃO (UNION)

– O resultado da operação, indicada por R U S,

é uma relação que inclui todas as tuplas que

estão em R, ou em S, ou em ambas, R e S.

As tuplas repetidas são eliminadas

UNION

Profa. Késsia Marchi

Operações de Álgebra Relacional a partir

da teoria dos conjuntos

• Exemplo:– Recuperar todos os alunos residentes na ‗Rua D‘ ou na ‗Rua C‘,

não mostrando as tuplas repetidas.

• σ enderecoAlu = ‗Rua D‘(Aluno) U σ enderecoAlu = ‗RuaC‘(Aluno)

– Ou Renomeando:

• END_D σ enderecoAlu = ‗Rua D‘(Aluno)

• END_C σ enderecoAlu = ‗RuaC‘(Aluno)

• RESULTADO END_D U END_C

Profa. Késsia Marchi

Operações de SQL a partir da teoria dos

conjuntos

Select * from Aluno where enderecoAlu =

'Rua D‘

UNION

Select * from Aluno where enderecoAlu =

'Rua C';

Profa. Késsia Marchi

Operação União

• As relações r e s precisam ter o mesmo

grau, ou seja, mesmo número de

atributos;

• Os domínios (tipo de atributo) do i-ésimo

atributo de r e do i-ésimo atributo de s

devem ser os mesmos.

Profa. Késsia Marchi

Operações de Álgebra Relacional a partir

da teoria dos conjuntos

• INTERSEÇÃO (INTERSECTION)

– O resultado dessa operação, indicado por R

∩ S, é uma relação que inclui todas as tuplas

que estão em ambas, R e S.

INTERSECTION

Profa. Késsia Marchi

Operações de Álgebra Relacional a partir

da teoria dos conjuntos

• Exemplo:– Recuperar todos os Alunos residentes na ‗Rua D‘ e tenham data

de nascimento em 01/01/1980

• σ enderecoAlu = ‗Rua D‘(Aluno) ∩ σ dtnascAlu = ‘01-01-1980‘(Aluno)

– Ou Renomeando:

• END_D σ enderecoAlu = ‗Rua D‘(Aluno)

• NASC σ dtnascAlu = ‘01-01-1980‘(Aluno)

• RESULTADO END_D ∩ NASC

Profa. Késsia Marchi

Operações de SQL a partir da teoria dos

conjuntos

Select * from Aluno where enderecoAlu = 'Rua D‗

intersect

Select * from Aluno where dtnascAlu = '1980-01-01';

• Entretanto, esta cláusula não é reconhecida por todos

os SGBD‘s, podendo ser substituída por:

Select * from Aluno where enderecoAlu = 'Rua D‗ and

dtnascAlu = '1980-01-01'

Profa. Késsia Marchi

Operações de Álgebra Relacional a partir

da teoria dos conjuntos

• DIFERENÇA OU SUBTRAÇÃO (MINUS)

– O resultado dessa operação, indicado por R

— S, é uma relação que inclui todas as tuplas

que estão em R, mas não estão em S.

DIFFERENCE

Profa. Késsia Marchi

Operações de Álgebra Relacional a partir

da teoria dos conjuntos

• Exemplo:– Recuperar todos os Alunos residentes na ‗Rua D‘ e não tenham

data de nascimento em 01/01/1980

• σ enderecoAlu = ‗Rua D‘(Aluno) — σ dtnascAlu = ‘01-01-1980‘(Aluno)

– Ou Renomeando:

• END_D σ enderecoAlu = ‗Rua D‘(Aluno)

• NASC σ dtnascAlu = ‘01-01-1980‘(Aluno)

• RESULTADO END_D — NASC

Profa. Késsia Marchi

Operações de SQL a partir da teoria dos

conjuntos

Select * from Aluno where enderecoAlu = 'Rua D‗

except

Select * from Aluno where dtnascAlu = '1980-01-01';

• Entretanto, esta cláusula não é reconhecida por todos

os SGBD‘s, podendo substituída por:

Select * from Aluno where enderecoAlu = 'Rua D‗ and not

dtnascAlu = '1980-01-01'

Profa. Késsia Marchi

Operações de Consulta a partir da teoria

dos conjuntos

• União e Interseção são comutativas;

– R U S = S U R

• Podem ser tratadas como operações n-

árias aplicáveis a qualquer número de

relações, porque são operações

associativas;

– R U (S U T) = (R U S) U T

Profa. Késsia Marchi

Operações de Consulta a partir da teoria

dos conjuntos

• A operação de subtração não é

comutativa;

– R — S ≠ S — R

Profa. Késsia Marchi

Bibliografia

• KORTH, Henry F. e Silbershcatz,

Abraham. Sistemas de Banco de Dados,

Editora Makron Books; 2ª Edição

• ELMASRI, Ramez. Sistemas de Banco

de Dados. São Paulo: Editora Addison

Wesley, 2005.

• Damas, Luís; SQL, structured Query

language; LTC, 2007.