Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROJETO E OTIMIZAÇÃO DE BANCO DE DADOS ESTUDOS DE CASO ÁLGEBRA RELACIONAL 1- Dados o esquema abaixo, especificar as operações da álgebra relacional para as solicitações. Modelo Físico (derivado do modelo lógico e já normalizado) FORNECEDOR (CD-FORN, NOME-FORN, CD-CONDICAO) PRODUTO (CD-PROD, NOME-PROD, COR-PROD) PEDIDO (CD-FORN, CD-PROD, QTD-PEDIDA) a) Exiba o código e nome dos fornecedores; R: π CD-FORN, NOME-FORN (FORNECEDOR). b) Exiba o código e nome dos fornecedores que estão inativos (CD-CONDICAO=’I’); R: π CD-FORN, NOME-FORN ( σ CD-CONDICAO=’I’ (FORNECEDOR)) c) Exiba as informações dos fornecedores que forneceram o produto de código ‘PD-23’ e estão ativos (CD-CONDICAO=’A’); (utilizar junção com predicado); R: π CD-FORN, NOME-FORN (σ PRODUTO.CD-PROD=‘PD-23’ ^ FORNECEDOR.CD-CONDICAO=’A’(PRODUTO |X|FORNECEDOR)). d) Qual o nome dos fornecedores que forneceram pelo menos um produto cuja a cor é ‘VERDE’; R: π FORNECEDOR.NOME-FORN (σ PRODUTO.COR-PROD =‘VERDE’ (FORNECEDOR |X|PRODUTO)). e) Qual o nome dos produtos de cor ‘VERMELHA’ com pedidos em quantidade superior a 5000; R: π PRODUTO.NOME-PROD (σ PRODUTO.COR-PROD =‘VERMELHA’ ^ PEDIDO. QTD-PEDIDA > 5000 ^ PRODUTO. CD-PROD = PEDIDO. CDPROD (PRODUTO X PEDIDO)). f) Qual o código e nome dos fornecedores que forneceram algum produto. (trazer as linhas de resultado sem repetição); R: π FORNECEDOR.CD-FORN, FORNECEDOR.NOME-FORN (σ PEDIDO. QTD-PEDIDA > 0 ^ FORNECEDOR. CD-FORN = PEDIDO.CD-FORN (FORNECEDOR |X| PEDIDO)). 2- Dados o esquema abaixo, especificar as operações da álgebra relacional para as solicitações. Modelo Físico (derivado do modelo lógico e já normalizado) ALUNO (CD-ALUNO, NOME-ALUNO, END-ALUNO, SEXO-ALUNO) DISCIPLINA (CD-DISC, NOME-DISC, CH-DISC, CD-PROF) HISTORICO (CD-ALUNO, CD-DISC, NOTA) PROFESSOR (CD-PROF, NOME-PROFESSOR) a) Exiba o código, nome e sexo dos alunos; R: π CD-ALUNO, NOME-ALUNO, SEXO-ALUNO (ALUNO). b) Exiba o código, nome e sexo dos alunos do sexo masculino; R: π CD-ALUNO, NOME-ALUNO, SEXO-ALUNO (σ SEXO-ALUNO =’M’ (ALUNO)). c) Exiba o código da disciplina, nome dela e nome dos professores que a lecionam; R: π DISCIPLINA.CD-DISC, DISCIPLINA.NOME-DISC, PROFESSOR.NOME-PROFESSOR (σ DISCIPLINA.CD_PROF = PROFESSOR.CD_PROF (DISCIPLINA X PROFESSOR)) d) Exiba o código da disciplina e nome dos professores que lecionam a disciplina de nome ‘Cálculo-I’; R: π DISCIPLINA.CD-DISC, PROFESSOR.NOME-PROFESSOR (σ DISCIPLINA.NOME-DISC = ‘Cálculo-I’ ^ DISCIPLINA.CD_PROF = PROFESSOR.CD_PROF (DISCIPLINA X PROFESSOR)). e) Exiba as informações dos alunos que tiveram nota superior a 6 nas disciplinas de Modelagem e Cálculo-I? R: R: π ALUNO. NOME-ALUNO (σ DISCIPLINA.NOME-DISC = ‘CálculoI’ ^ DISCIPLINA.NOME-DISC = ‘Modelagem’ ^ HISTORICO.NOTA > 6.0 ^ ALUNO.CD-ALUNO = HISTORICO.CD-ALUNO ^ DISCIPLINA.CDDISC = HISTORICO.CD-DISC (ALUNO X HISTORICO X DISCIPLINA)). f) Qual o nome e código dos alunos que cursaram todas as disciplinas com carga horária (CH-DISC) maior que 50 horas, com nota superior a 7? R: π ALUNO. NOME-ALUNO, ALUNO.CD-ALUNO (σ DISCIPLINA.CHDISC > 50 ^ HISTORICO.NOTA > 7.0 ^ ALUNO.CDALUNO = HISTORICO.CD-ALUNO ^ DISCIPLINA.CD-DISC = HISTORICO.CD-DISC (ALUNO X HISTORICO X DISCIPLINA)). g) Quais nomes de disciplinas onde todos os alunos que já a cursaram obtiveram nota superior a 5? R: π DISCIPLINA. NOME-DISC (σ HISTORICO.NOTA > 5.0 ^ DISCIPLINA.CD-DISC = HISTORICO.CD-DISC (DISCIPLINA X HISTORICO)). 3- Dados o esquema abaixo, especificar as operações da álgebra relacional para as solicitações. EMPREGADO(RG, SEXO, DT_NASC, PNOME, NOMECOMP, RUA, CIDADE, ESTADO, SALARIO, DNUM) DEPARTAMENTO(DNUM,DNOME,GERRG,DT_INICIO) PROJETO(PNUM_PNOME, LOCALIZAÇÃO, DNUM) DEPENDENTE(ID_DEP, DEP_NOME,DEP_SEXO, DEP_DT, DEP_DT_NASC, RG) TRABALHA_EM(RG, PNUM, HORAS) LOCALIZACAO(LOCALIZACAO, DNUM) a) Retorne os empregados que trabalham no departamento 5; R: π PNOME, NOMECOMP (σ DNUM = 5 (EMPREGADO)). b) Retorne os empregados com salário maior que 3000,00; R: π PNOME, NOMECOMP (σ SALARIO> 3000,00 (EMPREGADO)). c) Retorne os empregados que trabalham no departamento 5 e têm salário maior que 3000,00; R: π PNOME, NOMECOMP (σ DNUM = 5 ^ SALARIO> 3000,00 (EMPREGADO)). d) Retorne os empregados que trabalham no departamento 5 e têm salário maior que 3000,00 ou que trabalham no departamento 4 e têm salário maior que 2000,00; R: R1: π PNOME, NOMECOMP (σ DNUM = 5 ^ SALARIO> 3000,00 (EMPREGADO)). R2: π PNOME, NOMECOMP (σ DNUM = 4 ^ SALARIO> 2000,00 (EMPREGADO)). R3: R1 U R2. e) Retorne o primeiro nome(pnome) e o salário de cada empregado; R: π PNOME, SALARIO(EMPREGADO). f) Retorne o primeiro nome(pnome) e o salário dos empregados que trabalham no departamento 5; R: π PNOME, SALARIO(σ DNUM= 5 (EMPREGADO)). g) Retorne o RG de todos os empregados que trabalham no departamento 5 ou supervisionam diretamente um empregado que trabalha no departamento 5; R: R1: π RG(σ DNUM= 5 (EMPREGADO)). R2: π GERRG(σ DNUM= 5 (DEPARTAMENTO)). R3: R1 U R2 h) Retorne os primeiros nomes de empregados que são iguais a nomes de dependentes; R: π EMPREGANDO.PNOME (σ EMPREGADO.PNOME = DEPENDENTE.DEP_NOME (EMPREGADO X DEPENDENTE). i) Retorne todas as combinações de primeiro nome de empregados e nome de dependentes; R: π EMPREGADO.PNOME, DEPENDENTE.DEP_NOME (EMPREGADO X DEPENDENTE) j) Retorne os nomes dos empregados e de seus respectivos dependentes; Dúvida (No R1 acho que eu poderia por somente NOMECOMP certo?) R: R1: π PNOME, NOMECOMP (EMPREGADO). R2: π DEP_NOME(DEPENDENTE). R3: R1 ∩ R2. k) Retorne o nome do gerente de cada departamento; Mesma Dúvida (Acho que eu poderia por somente NOMECOMP certo?) R: π EMPREGADO.PNOME, EMPREGADO.NOMECOMP, DEPARTAMENTO.DNOME (σ DEPARTAMENTO.GERRG ≠ “ “ ^ EMPREGADO.DNUM = DEPARTAMENTO.DNUM (EMPREGADO X DEPARTAMENTO)).
Compartilhar