Baixe o app para aproveitar ainda mais
Leia os materiais offline, sem usar a internet. Além de vários outros recursos!
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 *
Compartilhar