ban1001-_aula9a.pdf

16
Álgebra, Cálculo Relacional e SQL (Select) – Parte3 BAN1 – Banco de Dados 1 Prof. Clélio Ferreira

Transcript of ban1001-_aula9a.pdf

Page 1: ban1001-_aula9a.pdf

Álgebra, Cálculo Relacional e SQL (Select) – Parte3

BAN1 – Banco de Dados 1 Prof. Clélio Ferreira

Page 2: ban1001-_aula9a.pdf

ÁLGEBRA RELACIONAL

Classificação dos operadores: • Fundamentais:

Unários: seleção, projeção; Binários: produto cartesiano, união e diferença.

• Derivados: Binários: intersecção, junção e divisão.

• Especiais Renomeação (unário) e atribuição Operador de alteração (unário)

Page 3: ban1001-_aula9a.pdf

RENOMEAÇÃO

Altera o nome de uma relação e/ou dos seus atributo. Notação:

Page 4: ban1001-_aula9a.pdf

RENOMEAÇÃO - MAPEAMENTO PARA SQL

Exemplo: selecionar código e nome dos pacientes como “Codigo” e “Nome” SELECT cdPaciente AS Codigo, nmPaciente AS Nome FROM paciente

Page 5: ban1001-_aula9a.pdf

UNIÃO, DIFERENÇA E INTERSECÇÃO

Levando em consideração que as relações podem ser tratadas como conjuntos, podemos então aplicar um conjunto de operações matemáticas sobre as mesmas. Estas operações são: união () , intersecção () e diferença (). Este conjunto de operações não é unitário, ou seja, podem ser aplicadas sobre mais de uma tabela, porém, existe a necessidade das tabelas possuírem tuplas exatamente do mesmo tipo. Operam somente sobre duas relações R1 e R2 ditas compatíveis:

grau(R1) = grau(R2) (número de colunas) para i de 1 até grau(R1): domínio(atributo ai de R1) = domínio(atributo ai de R2)

Grau do resultado: grau(R1) (ou grau(R2)).

Page 6: ban1001-_aula9a.pdf

UNIÃO

Retorna a união das tuplas de duas relações R1 e R2; Eliminação automática de duplicatas; Notação: relação 1 relação 2 O resultado desta operação representada por R1 R2 é uma relação T que inclui todas as tuplas que se encontram em R1 e todas as tuplas que se encontram em R2;

Page 7: ban1001-_aula9a.pdf

DIFERENÇA

Retorna as tuplas presentes em R1 e ausentes em R2; Notação: relação 1 - relação 2 O resultado desta operação representada por R1 R2 é uma relação T que inclui todas as tuplas que estão em R1 mas não estão em R2.

Page 8: ban1001-_aula9a.pdf

INTERSECÇÃO

Retorna as tuplas comuns a R1 e R2; Notação:

relação 1 relação 2

O resultado desta operação representada por R1 R2 é uma relação T que inclui as tuplas que se encontram em R1 e em R2 ao mesmo tempo.

Page 9: ban1001-_aula9a.pdf

UNIÃO DE TABELAS

OBS: Não existe um mapeamento direto das operações de

União, Diferença e Intersecção para SQL! Implementando a união da álgebra relacional: CUIDADO: Exige tabelas compatíveis: Exemplo: Buscar o código e nome dos pacientes e médicos. SELECT cdPaciente, nmPaciente FROM paciente UNION SELECT cdMedico, nmMedico FROM medico

Page 10: ban1001-_aula9a.pdf

JUNÇÃO (JOIN) A operação junção atua de forma similar á operação produto cartesiano, porém, a tabela resultante conterá apenas as combinações das tuplas que se relacionam de acordo com uma determinada condição de junção. Retorna a combinação de tuplas de duas relações R1 e R2 que satisfazem um predicado; Notação:

Page 11: ban1001-_aula9a.pdf

JUNÇÃO (JOIN)

Page 12: ban1001-_aula9a.pdf

MAPEAMENTO PARA SQL

Page 13: ban1001-_aula9a.pdf

EXEMPLO

Page 14: ban1001-_aula9a.pdf

EXERCÍCIO AVALIATIVO Dadas as tabelas abaixo :

Page 15: ban1001-_aula9a.pdf

EXERCÍCIO AVALIATIVO 1 - Descreva graficamente as relações resultantes das consultas abaixo (continuação do exercício Aula 7) : n) πnome, telefone (σind_conclusão=S (<Ex-Alunos>)) π nome, telefone (σ ind_conclusão= S (<Alunos>)) o) π nome, telefone (σ ind_conclusão= S (<Ex- Alunos>)) π nome, telefone (σ curso = 1A (<Alunos>)) p) πnome,telefone (σind_conclusão= N (<Alunos>)) πnome, telefone (σ ind_conclusão= S (<ex-Alunos>)) q) πnome,telefone (σind_conclusão= S (<Alunos>)) - σ ind_conclusão= S (<ex-Alunos>) r) πalunos.nome,alunos.telefone, curso.descricao (σ curso.codigo = alunos.curso (σind_conclusão= S (<Alunos X Curso >) s) πex alunos.nome,ex alunos.endereco, curso.descricao (σ curso.codigo = ex alunos.curso (σind_conclusão= S (<ex Alunos X Cursos >)

Page 16: ban1001-_aula9a.pdf

EXERCÍCIO AVALIATIVO 2 - Escreva as expressões em álgebra relacional referentes as situações abaixo : a) Selecione os nomes, endereços e telefones dos alunos atuais que pertencem

a curso 2A. b) Selecione os nomes, telefones e indicador de conclusão de curso de alunos

atuais. c) Selecione os nomes, telefones e indicador de conclusão de curso de alunos

atuais que desistiram do curso. d) Selecione os nomes, telefones dos ex alunos que desistiram do curso. e) Selecione os nomes, telefones dos ex alunos que terminaram o curso. f) Busque as informações descrição curso, ano e período de alunos atuais. g) Busque as informações descrição curso, ano e período de ex alunos que

desistiram do curso. h) Busque as informações de nome, telefone e endereço dos ex alunos que não

estejam cursando outro curso atualmente. i) Busque as informações referentes ao nome e indicador de conclusão de curso

de alunos que já terminaram outros cursos.