Buscar

Operações em Modelos Relacionais

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
*
MATEMÁTICA DISCRETA – AULA 10
PROFESSORA HELGA BODSTEIN, D.Sc. 
Aula 10
Esquema Relacional e 
Otimizações Algébricas
*
*
Conteúdo
Operações relacionais utilizando Modelos Relacionais
Otimização Algébrica
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Modelo Relacional – Manipulação
Duas categorias de linguagens
- Formais:	
	Álgebra relacional e Cálculo relacional
- Comerciais (baseadas nas linguagens formais)
	SQL
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Modelo Relacional – Manipulação
Álgebra Relacional
	Operadores para consulta e alteração de relações
Linguagem procedural
 - uma expressão na álgebra define uma execução sequencial de operadores;
 - a execução de cada operador produz uma relação; 
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Modelo Relacional – Manipulação
Esquema Relacional
	Para a realização das operações não é necessário conhecer as tuplas envolvidas.
	É necessário aplicar as expressões pertinentes para alcançar o objetivo da consulta. 
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Modelo Relacional – Manipulação
Esquema Relacional
Exemplos:
- AMBULATÓRIO (Numero, Andar, Capacidade)
- MÉDICO (Matricula, Nome, CRM, Especialidade)
- PACIENTE (Codigo, Nome, CPF, Dt.Nascimento, Doença)
- CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero, PACIENTE-Codigo, Data, Hora) 
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Modelo Relacional – Manipulação
Esquema Relacional
Podemos trabalhar as operações vistas até agora através da utilização do esquema relacional.
, , -, U, ∩, X, 
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Modelo Relacional – Manipulação
Exemplos
 1 - Buscar os dados dos pacientes que estão com sarampo.
PACIENTE (Codigo, Nome, CPF, Dt.Nascimento, Doença)
PACIENTE (Codigo, Nome, CPF, Dt.Nascimento, Doença)
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Modelo Relacional – Manipulação
Exemplos
 1 - Buscar os dados dos pacientes que estão com sarampo.
PACIENTE (Codigo, Nome, CPF, Dt.Nascimento, Doença)
 
RESULTADO ← Doença = sarampo (PACIENTE)
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplos
 2 - Buscar os dados dos ambulatórios do quarto andar. Estes ambulatórios devem ter capacidade igual a 50 ou número superior a 10.
AMBULATÓRIO (Numero, Andar, Capacidade)
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplos
 2 - Buscar os dados dos ambulatórios do quarto andar. Estes ambulatórios devem ter capacidade igual a 50 ou número superior a 10.
AMBULATÓRIO (Numero, Andar, Capacidade)
Andar = 4 ^ (Capacidade = 50 v Número > 10) (AMBULATÓRIO)
ou
Andar = 4 and (Capacidade = 50 or Número > 10) (AMBULATÓRIO)
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplos
3 - Buscar o nome e a especialidade de todos os médicos.
MÉDICO (Matricula, Nome, CRM, Especialidade-Código)
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplos
3 - Buscar o nome e a especialidade de todos os médicos.
MÉDICO (Matricula, Nome, CRM, Especialidade-Código)
 Nome, Especialidade (MÉDICO)
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplos
4 - Buscar os números dos ambulatórios com capacidade superior a 50, exceto aqueles do segundo e quarto andares
AMBULATÓRIO (Numero, Andar, Capacidade)
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplos
4 - Buscar os números dos ambulatórios com capacidade superior a 50, exceto aqueles do segundo e quarto andares
AMBULATÓRIO (Numero, Andar, Capacidade)
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplos
4 - Buscar os números dos ambulatórios com capacidade superior a 50, exceto aqueles do segundo e quarto andares
AMBULATÓRIO (Numero, Andar, Capacidade)
1º PASSO: Selecionar as tuplas de interesse.
 Capacidade >50 ^ Andar <> 2 ^ andar <> 4 (AMBULATÓRIO)
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplos
4 - Buscar os números dos ambulatórios com capacidade superior a 50, exceto aqueles do segundo e quarto andares
AMBULATÓRIO (Numero, Andar, Capacidade)
2º PASSO: Projetar o resultado para obter o atributo de interesse:
Número( Capacidade >50 ^ Andar <> 2 ^ andar <> 4 (AMBULATÓRIO))
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplos
5 - Buscar nome e o CRM dos médicos de especialidade dermatologia que realizaram consulta no ambulatório de número 15.
MÉDICO (Matricula, Nome, CRM, Especialidade)
CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero, PACIENTE-Codigo, Data, Hora) 
AMBULATÓRIO (Numero, Andar, Capacidade)
= dermatologia
= 15
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplos
5 - Buscar nome e o CRM dos médicos de especialidade dermatologia que realizaram consulta no ambulatório de número 15.
MÉDICO (Matricula, Nome, CRM, Especialidade)
CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero, PACIENTE-Codigo, Data, Hora) 
AMBULATÓRIO (Numero, Andar, Capacidade)
= dermatologia
= 15
= 15
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
5 - Buscar nome e o CRM dos médicos de especialidade dermatologia que realizaram consulta no ambulatório de número 15.
MÉDICO (Matricula, Nome, CRM, Especialidade)
CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero, PACIENTE-Codigo, Data, Hora) 
AMBULATÓRIO (Numero, Andar, Capacidade)
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
5 - Buscar nome e o CRM dos médicos de especialidade dermatologia que realizaram consulta no ambulatório de número 15.
MÉDICO (Matricula, Nome, CRM, Especialidade)
CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero, PACIENTE-Codigo, Data, Hora) 
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
5 - Buscar nome e o CRM dos médicos de especialidade dermatologia que realizaram consulta no ambulatório de número 15.
1º PASSO: Junção entre Médico e Consulta, pelo atributo Matrícula do Médico:
MÉDICO CONSULTA
 Matricula = MEDICO-Matricula
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplos
1º PASSO: Junção entre Médico e Consulta, pelo atributo Matrícula do Médico:
MÉDICO CONSULTA
 Matricula = MEDICO-Matricula
Este resultado terá todos os atributos de MÉDICO e os atributos de CONSULTA!
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplos
2º PASSO: Selecionar as tuplas de acordo com os critérios, no resultado da JUNÇÃO:
MÉDICO (Matricula, Nome, CRM, Especialidade)
CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero, PACIENTE-Codigo, Data, Hora)
MEDICO.ESPECIALIDADE=dermatologia^CONSULTA.AMBULATORIO-Numero=15 MÉDICO CONSULTA
 Matricula = MEDICO-Matricula
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplos
3º PASSO: Projetar o(s) atributo(s) de interesse:
MÉDICO (Matricula, Nome, CRM, Especialidade)
MEDICO.Nome, MEDICO.CRM MEDICO.ESPECIALIDADE=dermatologia^CONSULTA.AMBULATORIO-Nuumero=15 MÉDICO CONSULTA
 Matricula = MEDICO-Matricula
objetivos
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplos
6 - Buscar os nomes dos médicos que atenderam pacientes com dengue no dia 15/01/2009.
AMBULATÓRIO (Numero, Andar, Capacidade)
MÉDICO (Matricula, Nome, CRM, Especialidade)
PACIENTE (Codigo, Nome, CPF, Dt.Nascimento, Doença)
CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero, PACIENTE-Codigo, Data, Hora) 
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
6 - Buscar os nomes dos médicos que atenderam pacientes com dengue no dia 15/01/2009.
AMBULATÓRIO (Numero, Andar, Capacidade)
MÉDICO (Matricula, Nome, CRM, Especialidade)
PACIENTE (Codigo, Nome, CPF, Dt.Nascimento,
Doença)
CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero, PACIENTE-Codigo, Data, Hora) 
= dengue
= 15/01/2009
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
6 - Buscar os nomes dos médicos que atenderam pacientes com dengue no dia 15/01/2009.
MÉDICO (Matricula, Nome, CRM, Especialidade)
PACIENTE (Codigo, Nome, CPF, Dt.Nascimento, Doença)
CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero, PACIENTE-Codigo, Data, Hora) 
= dengue
= 15/01/2009
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
6 - Buscar os nomes dos médicos que atenderam pacientes com dengue no dia 15/01/2009.
MÉDICO (Matricula, Nome, CRM, Especialidade)
PACIENTE (Codigo, Nome, CPF, Dt.Nascimento, Doença)
CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero, PACIENTE-Codigo, Data, Hora) 
= dengue
= 15/01/2009
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
1º PASSO: Junção entre Paciente e Consulta, pelo atributo Código do Paciente:
PACIENTE CONSULTA
 Código= PACIENTE-Codigo
Este resultado terá todos os atributos de PACIENTE e os atributos de CONSULTA!
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
2º PASSO: Selecionar as tuplas de acordo com os critérios, no resultado da JUNÇÃO:
PACIENTE (Codigo, Nome, CPF, Dt.Nascimento, Doença)
CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero, PACIENTE-Codigo, Data, Hora) 
PACIENTE.Doença=dengue^CONSULTA.Data=15/01/2009 PACIENTE CONSULTA
 Código= PACIENTE-Codigo
= dengue
= 15/01/2009
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
3º PASSO: Junção com a relação MÉDICO.
MÉDICO (Matricula, Nome, CRM, Especialidade)
PACIENTE (Codigo, Nome, CPF, Dt.Nascimento, Doença)
CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero, PACIENTE-Codigo, Data, Hora) 
		 MEDICO
 Matricula = CONSULTA.MEDICO-Matrícula
PACIENTE.Doença=dengue^CONSULTA.Data=15/01/2009 PACIENTE CONSULTA
 Código= PACIENTE-Codigo
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
4º PASSO: Projeção do atributo de interesse.
MÉDICO (Matricula, Nome, CRM, Especialidade)
 
MEDICO.Nome MEDICO
 Matricula = CONSULTA.MEDICO-Matrícula
PACIENTE.Doença=dengue^CONSULTA.Data=15/01/2009 PACIENTE CONSULTA
 Código= PACIENTE-Codigo
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Esquema Relacional
FUNCIONÁRIO (Matrícula, Nome, Sexo, CPF, Rua, Número, Complemento)
PROJETO (Código, Nome, Descrição, Valor)
ALOCAÇÃO (Func-Matricula, Proj-Codigo, Data-início, Data-Término)
DEPENDENTE (Func-Matricula, Numero, Nome, Sexo, Parentesco) 
 
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplo: Buscar o código e o nome dos projetos de valor superior a 500.000,00. 
FUNCIONÁRIO (Matrícula, Nome, Sexo, CPF, Rua, Número, Complemento)
PROJETO (Código, Nome, Descrição, Valor)
ALOCAÇÃO (Func-Matricula, Proj-Codigo, Data-início, Data-Término)
DEPENDENTE (Func-Matricula, Numero, Nome, Sexo, Parentesco) 
 
> 500.000,00
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplo: Buscar o código e o nome dos projetos de valor superior a 500.000,00. 
1º PASSO: Selecionar as tuplas de interesse.
PROJETO (Código, Nome, Descrição, Valor)
Valor>500.000,00 (PROJETO)
> 500.000,00
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplo: Buscar o código e o nome dos projetos de valor superior a 500.000,00. 
2º PASSO: Projetar os atributos de interesse.
PROJETO (Código, Nome, Descrição, Valor)
Codigo,Nome (Valor>500.000,00 (PROJETO))
> 500.000,00
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplo: Buscar o nome dos dependentes dos funcionários do sexo masculino.
FUNCIONÁRIO (Matrícula, Nome, Sexo, CPF, Rua, Número, Complemento)
PROJETO (Código, Nome, Descrição, Valor)
ALOCAÇÃO (Func-Matricula, Proj-Codigo, Data-início, Data-Término)
DEPENDENTE (Func-Matricula, Numero, Nome, Sexo, Parentesco) 
 
= masculino
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplo: Buscar o nome dos dependentes dos funcionários do sexo masculino.
1º PASSO: Junção entre FUNCIONÁRIO e DEPENDENTE, através da matrícula.
FUNCIONÁRIO (Matrícula, Nome, Sexo, CPF, Rua, Número, Complemento)
DEPENDENTE (Func-Matricula, Numero, Nome, Sexo, Parentesco) 
FUNCIONÁRIO DEPENDENTE
 Matricula = Func-Matricula 
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplo: Buscar o nome dos dependentes dos funcionários do sexo masculino.
2º PASSO: Selecionar as tuplas de acordo com o(s) critério(s), no resultado da JUNÇÃO:
FUNCIONÁRIO (Matrícula, Nome, Sexo, CPF, Rua, Número, Complemento)
DEPENDENTE (Func-Matricula, Numero, Nome, Sexo, Parentesco) 
FUNCIONARIO.Sexo=masculino FUNCIONÁRIO DEPENDENTE
 Matricula = Func-Matricula 
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplo: Buscar o nome dos dependentes dos funcionários do sexo masculino.
3º PASSO: Projetar o(s) atributo(s) de interesse:
DEPENDENTE (Func-Matricula, Numero, Nome, Sexo, Parentesco) 
DEPENDENTE.NOME FUNCIONARIO.Sexo=masculino FUNCIONÁRIO DEPENDENTE
 Matricula = Func-Matricula 
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplo: Buscar o nome dos funcionários alocados entre 02/03/2009 até 02/08/2009, no projeto de nome “sistema x”.
FUNCIONÁRIO (Matrícula, Nome, Sexo, CPF, Rua, Número, Complemento)
PROJETO (Código, Nome, Descrição, Valor)
ALOCAÇÃO (Func-Matricula, Proj-Codigo, Data-início, Data-Término)
DEPENDENTE (Func-Matricula, Numero, Nome, Sexo, Parentesco) 
 
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplo: Buscar o nome dos funcionários alocados entre 02/03/2009 até 02/08/2009, no projeto de nome “sistema x”.
FUNCIONÁRIO (Matrícula, Nome, Sexo, CPF, Rua, Número, Complemento)
PROJETO (Código, Nome, Descrição, Valor)
ALOCAÇÃO (Func-Matricula, Proj-Codigo, Data-início, Data-Término)
DEPENDENTE (Func-Matricula, Numero, Nome, Sexo, Parentesco) 
 
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplo: Buscar o nome dos funcionários alocados entre 02/03/2009 até 02/08/2009, no projeto de nome “sistema x”.
FUNCIONÁRIO (Matrícula, Nome, Sexo, CPF, Rua, Número, Complemento)
PROJETO (Código, Nome, Descrição, Valor)
ALOCAÇÃO (Func-Matricula, Proj-Codigo, Data-início, Data-Término)
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplo: Buscar o nome dos funcionários alocados entre 02/03/2009 até 02/08/2009, no projeto de nome “sistema x”.
1º PASSO: Junção entre PROJETO e ALOCAÇÃO, através de código.
PROJETO ALOCAÇÂO
 Codigo = Proj-Codigo 
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplo: Buscar o nome dos funcionários alocados entre 02/03/2009 até 02/08/2009, no projeto de nome “sistema x”.
2º PASSO: Selecionar as tuplas de acordo com o(s) critério(s), no resultado da JUNÇÃO:
PROJETO (Código, Nome, Descrição, Valor)
ALOCAÇÃO (Func-Matricula, Proj-Codigo, Data-início, Data-Término)
PROJETO.Nome=sistemax^ALOCAÇÂO.Data-inicio>=02/03/2009^ALOCAÇÂO.Data-término>=02/03/2009 			PROJETO ALOCAÇÂO
 Codigo = Proj-Codigo 
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplo: Buscar o nome dos funcionários alocados entre 02/03/2009 até 02/08/2009, no projeto de nome “sistema x”.
3º PASSO: Aplicar
Junção entre FUNCIONARIO e o resultado obtido através da Matrícula do funcionário.
FUNCIONÁRIO (Matrícula, Nome, Sexo, CPF, Rua, Número, Complemento)
PROJETO (Código, Nome, Descrição, Valor)
ALOCAÇÃO (Func-Matricula, Proj-Codigo, Data-início, Data-Término)
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplo: Buscar o nome dos funcionários alocados entre 02/03/2009 até 02/08/2009, no projeto de nome “sistema x”.
3º PASSO: Aplicar Junção entre FUNCIONARIO e o resultado obtido.
FUNCIONÁRIO 
 Matrícula = ALOCAÇÃO. Func-Matricula
PROJETO.Codigo=sistemax^ALOCAÇÂO.Data-inicio>=02/03/2009^ALOCAÇÂO.Data-término>=02/03/2009 			PROJETO ALOCAÇÂO
 Codigo = Proj-Codigo 
*
*
Aula 10 – Modelos Relacionais e Otimizações Algébricas
Exemplo: Buscar o nome dos funcionários alocados entre 02/03/2009 até 02/08/2009, no projeto de nome “sistema x”.
4º PASSO: Projetar o atributo de interesse.
FUNCIONÁRIO (Matrícula, Nome, Sexo, CPF, Rua, Número, Complemento)
 FUNCIOÁRIO.Nome	FUNCIONÁRIO 
 Matrícula = ALOCAÇÃO. Func-Matricula
PROJETO.Codigo=sistemax^ALOCAÇÂO.Data-inicio>=02/03/2009^ALOCAÇÂO.Data-término>=02/03/2009
 			PROJETO ALOCAÇÂO
 Codigo = Proj-Codigo 
objetivo
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais