You are on page 1of 26

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.

com 1
Constelação
Banco de Dados

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 2
Questões de concursos
[IADES 2017 HEMOCENTRO/DF – Tecnologia da Informação – Questão 26]
Considere as tabelas aluno (matricula INT, nome CHAR, cod_curso INT) e
curso (cod_curso INT, curso CHAT, area CHAR), apresentadas a seguir.

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 3
Questões de concursos
[IADES 2017 HEMOCENTRO/DF – Tecnologia da Informação – Questão 26]
Qual dos comandos Structured Query Language (SQL) pode ser utilizado
para listar somente os alunos que cursam História?
● [A] select aluno.Nome from aluno,curso where aluno.cod_curso =
curso.cod_curso AND curso.curso = 'Historia';
● [B] select aluno.Nome from aluno,curso where curso.curso = 'Historia';
● [C] select aluno.Nome from aluno,curso where aluno.cod_curso =
'Historia';
● [D] select curso.curso from aluno,curso where aluno.cod_curso =
curso.cod_curso AND curso.curso = 'Historia';
● [E] select aluno.Nome from aluno,curso where curso.curso = 'Historia'
and aluno.cod_curso != curso.cod_curso;

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 4
Questões de concursos
[IADES 2017 HEMOCENTRO/DF – Tecnologia da Informação – Questão 26]
Qual dos comandos Structured Query Language (SQL) pode ser utilizado
para listar somente os alunos que cursam História?
● [A] select aluno.Nome from aluno,curso where aluno.cod_curso =
curso.cod_curso AND curso.curso = 'Historia';
● [B] select aluno.Nome from aluno,curso where curso.curso = 'Historia';
● [C] select aluno.Nome from aluno,curso where aluno.cod_curso =
'Historia';
● [D] select curso.curso from aluno,curso where aluno.cod_curso =
curso.cod_curso AND curso.curso = 'Historia';
● [E] select aluno.Nome from aluno,curso where curso.curso = 'Historia'
and aluno.cod_curso != curso.cod_curso;

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 5
Questões de concursos
[IADES 2017 HEMOCENTRO/DF – Tecnologia da Informação – Questão 28]
Considere as tabelas aluno (id INT, nome CHAR, curso INT) e curso (id INT,
nome CHAR), apresentadas a seguir.

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 6
Questões de concursos
[IADES 2017 HEMOCENTRO/DF – Tecnologia da Informação – Questão 28]
Após a execução de uma consulta Structured Query Language (SQL),
produziu-se exatamente o seguinte resultado:

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 7
Comentários
● SQL Joins
● São cláusulas usadas para combinar linhas de duas ou mais tabelas,
baseadas em campos comuns entre essas tabelas

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 8
Comentários
● SQL Joins
● Tipos:
– INNER JOIN
● Retorna todas as linhas quando há pelo menos uma correspondência em ambas
as tabelas
– LEFT JOIN
● Retorna:
– Todas as linhas da tabela da esquerda
– As linhas correspondentes da tabela da direita
– RIGHT JOIN
● Retorna:
– Todas as linhas da tabela direita
– As linhas correspondentes da tabela da esquerda
– FULL JOIN
● Retorna todas as linhas quando há uma correspondência em uma das tabelas

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 9
Comentários
● Exemplo:

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 10
Comentários
● Exemplo:

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 11
Comentários
● INNER JOIN

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 12
Comentários
● LEFT JOIN

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 13
Comentários
● RIGHT JOIN

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 14
Comentários

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 15
Referência
● INNER, CROSS, LEFT, RIGTH E FULL JOINS. Disponível em:
http://www.devmedia.com.br/inner-cross-left-rigth-e-full-joins/21016
● Qual é a diferença entre INNER JOIN e OUTER JOIN?. Disponível em:
http://pt.stackoverflow.com/questions/6441/qual-%C3%A9-a-diferen
%C3%A7a-entre-inner-join-e-outer-join
● SQL Joins. Disponível em: https://www.w3schools.com/sql/sql_join.asp

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 16
Questões de concursos
[IADES 2017 HEMOCENTRO/DF – Tecnologia da Informação – Questão 28]
Qual dos comandos SQL a seguir foi utilizado?
● [A] SELECT a.nome, c.nome FROM aluno a RIGHT JOIN curso c ON
a.curso = c.id;
● [B] SELECT a.nome, c.nome FROM aluno a LEFT JOIN curso c ON
a.curso = c.id UNION SELECT a.nome, c.nome FROM aluno a RIGHT JOIN
curso c ON a.curso = c.id;
● [C] SELECT a.nome, c.nome FROM aluno a LEFT JOIN curso c ON
a.curso = c.id;

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 17
Questões de concursos
[IADES 2017 HEMOCENTRO/DF – Tecnologia da Informação – Questão 28]
Qual dos comandos SQL a seguir foi utilizado?
● [D] SELECT a.nome, c.nome FROM aluno a INNER JOIN curso c ON
a.curso = c.id;
● [E] SELECT a.nome, c.nome FROM aluno a RIGHT JOIN curso c ON
a.curso = c.id UNION SELECT a.nome, c.nome FROM aluno a LEFT JOIN
curso c ON a.curso = c.id;

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 18
Questões de concursos
[IADES 2017 HEMOCENTRO/DF – Tecnologia da Informação – Questão 28]
Qual dos comandos SQL a seguir foi utilizado?
● [D] SELECT a.nome, c.nome FROM aluno a INNER JOIN curso c ON
a.curso = c.id;

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 19
Questões de concursos
[IADES 2017 HEMOCENTRO/DF – Tecnologia da Informação – Questão 34]
Considere uma tabela relacional “R” e seus atributos definidos por R
(F1,F2,F3,F4,F5) com dependências funcionais F1F2F3 → F4F5 e F5 →
F1F2. Com base nessas informações, assinale a alternativa que contém o
número total de superchaves distintas para essa tabela.
● [A] 2
● [B] 7
● [C] 8
● [D] 10
● [E] 12

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 20
Comentários
● Dependência funcional
● É uma restrição entre dois subconjuntos de atributos (A e B) de R, sendo
denotada por A →B
– A determina funcionalmente B
– B depende funcionalmente de A
● Exemplos:
– {#UFF} → {Nome, Idade, Curso}
– {Sigla, Sala, Hora} → {CodigoTurma, Professor}
– {Sigla} → {NomeDisciplina, NCreditos}

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 21
Comentários
● Superchave
● É um conjunto de atributos A1, ..., An tal que para qualquer atributo B da
relação, temos que A1, ..., An → B
● Chave
● É uma superchave mínima
– Um conjunto de atributos que:
● É superchave
● Nenhum subconjunto dele é também uma superchave

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 22
Referências
● Dependências Funcionais e Normalização. Disponível em:
http://www.ic.unicamp.br/~rocha/teaching/2012s2/mc536/aulas/aul
a-08-final.pdf
● Dependências Funcionais e Normalização. Disponível em:
http://www.inf.ufpr.br/carmem/ci218/slides/8-df-8pp.pdf

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 23
Questões de concursos
[IADES 2017 HEMOCENTRO/DF – Tecnologia da Informação – Questão 34]
Considere uma tabela relacional “R” e seus atributos definidos por R
(F1,F2,F3,F4,F5) com dependências funcionais F1F2F3 → F4F5 e F5 →
F1F2. Com base nessas informações, assinale a alternativa que contém o
número total de superchaves distintas para essa tabela.
● [A] 2
● [B] 7
● [C] 8
● [D] 10
● [E] 12

rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 24
'

www.itnerante.com.br/profile/RogerioAraujo
www.facebook.com/professorRogerioAraujo
rogerioaraujo.wordpress.com • twitter: @rgildoaraujo
rgildoaraujo@gmail.com • profrogeraoaraujo@gmail.com
www.youtube.com/rgildoaraujo
rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 25
rogerioaraujo.wordpress.com • twitter: @rgildoaraujo • rgildoaraujo@gmail.com 26