rem Descoberta de Conhecimento em Banco de Dados - prof. Duncan
rem aula pratica de modelagem OLTP
rem 
rem O objetivo desta aula pratica eh modelar e implementar um modelo OLAP
rem floco de neve em um SGBD
rem
rem Para tanto, sera utilizado o banco de dados 
rem Academico (alunos, disciplinas, professores, historico)
rem
rem Este arquivo contem a criacao das tabelas e a producao dos valores 
rem agregados nas mesmas
rem
rem No arquivo estao indicados os pontos onde devem ser feitas as quebras no
rem copy/paste do Notepad (Bloco de Notas) para o sqlplus
rem

prompt comandos de consulta aas tabelas
select * from alunos;
select * from disciplinas;
select * from professores;
select * from historico;

prompt exemplos de consultas OLAP no banco de dados Academico
prompt Exemplo 1
select Matricula, Disciplina, Turma, Ano_Sem, count(nota) as num_notas, avg(nota) as media
from alunos natural left join historico
group by cube (Matricula, Disciplina, Turma, Ano_Sem);

prompt Exemplo 2
select distinct Matricula, Disciplina, Turma, Ano_Sem, count(nota) as num_notas, avg(nota) as media
from alunos natural left join historico
group by cube (Matricula, Disciplina, Turma, Ano_Sem);

prompt Exemplo 3
select Matricula, Disciplina, Turma, Ano_Sem, count(nota) as num_notas, avg(nota) as media
from alunos natural left join historico
group by cube (Matricula, Disciplina, Turma, Ano_Sem)
having count(nota) > 0;

prompt Exemplo 4
select distinct Matricula, Disciplina, Turma, Ano_Sem, count(nota) as num_notas, avg(nota) as media
from alunos natural left join historico
group by cube (Matricula, Disciplina, Turma, Ano_Sem)
having count(nota) > 0;

--
-- Questoes para reflexao:
--
--    Quais as diferencas entre os 4 exemplos? Por que?
--
--    Por que aparecem linhas iguais na saida no exemplo 1, 
--    mesmo com todas as colunas em branco (valores nao validos) exceto num_notas?
--
-- Exercicios:
--
--    Procurem elaborar as consultas usando disciplinas e historico,
--    disciplinas e professores e historico.
--

prompt >>>>>>>>>>>>>>>>>>>>>>>>fim<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<.


