Você está na página 1de 19

TDE II - 2021-2

Universidade de Caxias do Sul


Disciplina: FBI4009 – Fundamentos de Banco de Dados
Professor: Daniel Luis Notari Aluno: William Bruno Basso
MODELO CONCEITUAL - DER
MODELO LÓGICO
instituicao (cnpj, razao) grupoturma (#idturma, idgrupo) avaliadores (#cpf, idavaliador, tipo)
campus (idcampus, local, #cnpj) pessoa (cpf, nome) trabalhoavaliadores (#idtrabalho,
curso (idcurso, eixotematico) aluno (matricula, #cpf, #idgrupo) #idavaliador)

cursocampus (#idcampus, #idcurso) professoralunoturma (#registro, avaliar (#idtrabalho, #idavaliador,


#matricula, #idturma) #idavaliacao)
disciplina (iddisciplina, credito)
endereco (#cpf, cep, bairro, cidade,
disciplinacurso (#idcurso, #iddisciplina) grupoaluno (#idgrupo, #matricula) estado, rua)
turma (idturma, #iddisciplina) mostra (idmostra, edicao, data)
aluno (#cpf, matricula)
turmadisciplina (#iddisciplina, trabalho (idtrabalho, titulo, resumo,
link) professor (#cpf, registro, area)
idturma)
grupotrabalhomostra (#idmostra, convidado (#cpf, especialidade)
grupo (#iddisciplina, #idturma,
idgrupo) #idgrupo, #idtrabalho) convite (idconvite, resposta,
avaliacao (idavaliacao, nota) ntrabalhos)
enviar (#cnpj, #idconvite, #idavaliador)
MODELO FÍSICO

CreateTables.sql

Insert.sql

Select.sql
1 - Listar o nome dos componentes de
cada grupo de cada turma

select p.nome, g.idgrupo, g.idturma


from aluno a, pessoa p, grupo g
where a.cpf = p.cpf and a.idgrupo = g.idgrupo
order by g.idturma
1 - Listar o nome dos componentes de
cada grupo de cada turma
Plano de execução:
1 - Listar o nome dos componentes de
cada grupo de cada turma
Explicação:
1. Junção interna onde a grupo.idgrupo for igual a
aluno.idgrupo
2. Junção interna onde aluno.cpf for igual a pessoa.cpf
3. Ordenação por turma
1 - Listar o nome dos componentes de
cada grupo de cada turma (INNER JOIN)

Mesma consulta porém utilizando INNER JOIN

select p.nome, g.idgrupo, g.idturma


from aluno a
inner join pessoa p on a.cpf = p.cpf
inner join grupo g on a.idgrupo = g.idgrupo
order by g.idturma
1 - Listar o nome dos componentes de
cada grupo de cada turma (INNER JOIN)
Plano de execução:
1 - Listar o nome dos componentes de
cada grupo de cada turma (INNER JOIN)
Explicação:
1. Junção interna onde a chave primária idgrupo da tabela
grupo for igual a chave primária idgrupo da tabela aluno.
2. Junção interna onde aluno.cpf for igual a pessoa.cpf
3. Ordenação por turma
2 - Listar os grupos por eixo temático
(I, II, III, IV, IV-B)

select c.eixotematico, g.idgrupo as Grupo


from curso c, grupo g, disciplinacurso dc, turma t
where c.idcurso = dc.idcurso
and dc.iddisciplina = t.iddisciplina
and t.idturma = g.idturma
order by c.eixotematico, g.idgrupo
2 - Listar os grupos por eixo temático
(I, II, III, IV, IV-B)
Plano de execução:
2 - Listar os grupos por eixo temático
(I, II, III, IV, IV-B)
Explicação:
1. Junção interna onde a chave primária idturma da tabela turma
for igual a chave primária idturma da tabela grupo.
2. Junção interna do resultado da operação anterior com a tabela
disciplinacurso onde a chave primária iddisciplina comum em
ambas forem iguais.
3. Junção interna do resultado da operação anterior com a tabela
curso onde a chave primária idcurso comum em ambas forem
iguais.
4. Ordenação por eixo temático
5. Ordenação por identificador do grupo
3 - Listar os grupos por campus

select cc.idcampus as Campus, g.idgrupo as Grupo


from cursocampus cc, disciplinacurso dc, grupo g, turma t
where cc.idcurso = dc.idcurso
and dc.iddisciplina = t.iddisciplina
and t.idturma = g.idturma
order by cc.idcampus, g.idgrupo
3 - Listar os grupos por campus

Plano de execução:
3 - Listar os grupos por campus

Explicação:
1. Junção interna com vinculação de chave primária entre as
tabelas turma e grupo.
2. Junção interna com vinculação de chave primária do
resultado da operação anterior com a tabela disciplinacurso.
3. Junção interna com vinculação de chave primária do
resultado da operação anterior com a tabela cursocampus.
4. Ordenação por identificador do campus
5. Ordenação por identificador do grupo
4 - Listar os avaliadores de cada grupo

select gtm.idgrupo as Grupo, a.idavaliador as Avaliador


from avaliar a, grupotrabalhomostra gtm
where a.idtrabalho = gtm.idtrabalho
order by gtm.idgrupo
4 - Listar os avaliadores de cada grupo

Plano de execução:
4 - Listar os avaliadores de cada grupo

Explicação:
1. Junção interna com vinculação de chave primária entre as
tabelas grupotrabalhomostra e avaliar.
2. Ordenação por identificador do grupo

Você também pode gostar