Anda di halaman 1dari 50

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)


= sarampo
objetivos
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)


= sarampo
objetivos

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.
> 10 =4

AMBULATÓRIO (Numero, Andar, Capacidade)


= 50
objetivos
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)

objetivos
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)

objetivos

 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
<> 4 e <> 2

AMBULATÓRIO (Numero, Andar, Capacidade)


> 50
objetivo
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
<> 4 e <> 2

AMBULATÓRIO (Numero, Andar, Capacidade)


> 50
objetivo

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
<> 4 e <> 2

AMBULATÓRIO (Numero, Andar, Capacidade)


> 50
objetivo

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. objetivos
= dermatologia

MÉDICO (Matricula, Nome, CRM, Especialidade)

CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero,


PACIENTE-Codigo, Data, Hora)

AMBULATÓRIO (Numero, Andar, Capacidade)


= 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. objetivos
= dermatologia

MÉDICO (Matricula, Nome, CRM, Especialidade)

CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero,


= 15
PACIENTE-Codigo, Data, Hora)

AMBULATÓRIO (Numero, Andar, Capacidade)


= 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. objetivos
= dermatologia

MÉDICO (Matricula, Nome, CRM, Especialidade)

CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero,


= 15
PACIENTE-Codigo, Data, Hora)

AMBULATÓRIO (Numero, Andar, Capacidade)


= 15 NÃO SERÁ NECESSÁRIA
PARA ESTA CONSULTA!!!
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.
objetivos
= dermatologia

MÉDICO (Matricula, Nome, CRM, Especialidade)

CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero,


PACIENTE-Codigo, Data, Hora) = 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.

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:
= dermatologia

MÉDICO (Matricula, Nome, CRM, Especialidade)

CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero,


PACIENTE-Codigo, Data, Hora) = 15

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)

objetivos

MEDICO.Nome, MEDICO.CRM  MEDICO.ESPECIALIDADE=dermatologia^CONSULTA.AMBULATORIO-Nuumero=15 MÉDICO CONSULTA


Matricula = MEDICO-Matricula
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. NÃO SERÁ NECESSÁRIA
PARA ESTA CONSULTA!!!

AMBULATÓRIO (Numero, Andar, Capacidade)


objetivo

MÉDICO (Matricula, Nome, CRM, Especialidade)


= dengue

PACIENTE (Codigo, Nome, CPF, Dt.Nascimento, Doença)

CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero,


PACIENTE-Codigo, Data, Hora)
=
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.

objetivo

MÉDICO (Matricula, Nome, CRM, Especialidade)


= dengue

PACIENTE (Codigo, Nome, CPF, Dt.Nascimento, Doença)

CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero,


PACIENTE-Codigo, Data, Hora)
=
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.

objetivo

MÉDICO (Matricula, Nome, CRM, Especialidade)


= dengue

PACIENTE (Codigo, Nome, CPF, Dt.Nascimento, Doença)

CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero,


PACIENTE-Codigo, Data, Hora)
=
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:
= dengue

PACIENTE (Codigo, Nome, CPF, Dt.Nascimento, Doença)

CONSULTA (MEDICO-Matricula, AMBULATORIO-Numero,


PACIENTE-Codigo, Data, Hora)
= 15/01/2009

PACIENTE.Doença=dengue^CONSULTA.Data=15/01/2009 PACIENTE CONSULTA


Código= PACIENTE-Codigo
Aula 10 – Modelos Relacionais e Otimizações Algébricas

3º PASSO: Junção com a relação MÉDICO.


objetivo

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.


objetivo

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)


objetivos > 500.000,00

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.

1º PASSO: Selecionar as tuplas de interesse.

objetivos > 500.000,00


PROJETO (Código, Nome, Descrição, Valor)

Valor>500.000,00 (PROJETO)
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.


objetivos > 500.000,00
PROJETO (Código, Nome, Descrição, Valor)

Codigo,Nome (Valor>500.000,00 (PROJETO))


Aula 10 – Modelos Relacionais e Otimizações Algébricas

Exemplo: Buscar o nome dos dependentes dos funcionários do


sexo masculino.
= 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)


objetivo

DEPENDENTE (Func-Matricula, Numero, Nome, Sexo, Parentesco)


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:
= masculino

FUNCIONÁRIO (Matrícula, Nome, Sexo, CPF, Rua, Número, Complemento)


objetivo

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:


objetivo
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”.
objetivo
FUNCIONÁRIO (Matrícula, Nome, Sexo, CPF, Rua, Número, Complemento)
= sistema x

PROJETO (Código, Nome, Descrição, Valor)


>=02/03/2009 <= 02/08/2009

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”.

objetivo

FUNCIONÁRIO (Matrícula, Nome, Sexo, CPF, Rua, Número, Complemento)


= sistema x

PROJETO (Código, Nome, Descrição, Valor)


>=02/03/2009 <= 02/08/2009

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:
= sistema x
>=02/03/2009
PROJETO (Código, Nome, Descrição, Valor) <= 02/08/2009

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.
objetivo
FUNCIONÁRIO (Matrícula, Nome, Sexo, CPF, Rua, Número, Complemento)
= sistema x

PROJETO (Código, Nome, Descrição, Valor)


>=02/03/2009 <= 02/08/2009

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.


objetivo
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

Anda mungkin juga menyukai