ATIVIDADE– N4
GRADUAÇÃO: Tecnologia em Análise e Desenvolvimento de Sistemas
COORDENADOR: Prof. Me. Adriana Ohashi Kei Sato
DISCIPLINA: Desenvolvimento de Banco de Dados
DOCENTE: Prof. Márcio Cavalcante
DISCENTE: Felipe Schaitel
RM: 24112424
DESENVOLVIMENTO DE BANCO DE DADOS
PRIMEIRA PARTE DA ATIVIDADE IMPORTAR BD “faculdade” PARA XAMPP
1 BAIXAR NO MOODLE O ARQUIVO [Link]
2 ABRIR EDIÇÃO E COPIAR
3 ABRIR XAMPP E CONECTAR A [Link]
Clicar em consulta, colar o código copiado e pressionar executar:
4 EXPORTAR BANCO DE DADOS “faculdade”
É necessário anexar o arquivo exportado ao Moodle para a entrega da atividade.
SEGUNDA PARTE DA ATIVIDADE - DER COM ENTIDADE “NOTAS”
Comparadores =, >, <, >= IN ou NOT IN
Conceito JOIN
Comando UPDATE: SELECT, FROM, WHERE, GROUP BY, HAVING SUM
CREATE DATABASE = cria o banco de dados
Id = identificador dos nomes dos alunos é a chave primária
Id = chave primária para as disciplinas
Id = chave primária da tabela
Aluno_id relaciona aluno e disciplina e Disciplina_id relaciona disciplina com aluno.
CASE = para calcular a media. Se a media da nota for NULL tem que retornar como “SEM
NOTA”
CÓDIGO
CREATE DATABASE IF NOT EXISTS faculdade_simplificada;
USE faculdade_simplificada;
CREATE TABLE alunos (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100) NOT NULL
);
INSERT INTO alunos (nome) VALUES
('João Silva'),
('Maria Oliveira'),
('Pedro Santos'),
('Ana Costa');
CREATE TABLE disciplinas (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100) NOT NULL
);
INSERT INTO disciplinas (nome) VALUES
('Matemática'),
('Física'),
('Química'),
('História');
CREATE TABLE disciplinas_realizadas (
id INT AUTO_INCREMENT PRIMARY KEY,
aluno_id INT,
disciplina_id INT,
concluiu BOOLEAN DEFAULT FALSE,
FOREIGN KEY (aluno_id) REFERENCES alunos(id),
FOREIGN KEY (disciplina_id) REFERENCES disciplinas(id)
);
INSERT INTO disciplinas_realizadas (aluno_id, disciplina_id,
concluiu) VALUES
(1, 1, TRUE),
(1, 2, TRUE),
(2, 3, FALSE),
(3, 4, TRUE),
(4, 1, TRUE);
CREATE TABLE notas (
id INT AUTO_INCREMENT PRIMARY KEY,
aluno_id INT,
disciplina_id INT,
nota DECIMAL(5, 2),
FOREIGN KEY (aluno_id) REFERENCES alunos(id),
FOREIGN KEY (disciplina_id) REFERENCES disciplinas(id)
);
INSERT INTO notas (aluno_id, disciplina_id, nota) VALUES
(1, 1, 7.5),
(1, 2, 8.0),
(2, 3, 6.5),
(3, 4, 9.0);
SELECT
[Link] AS aluno,
[Link] AS disciplina,
CASE
WHEN AVG([Link]) IS NULL THEN 'SEM NOTA'
ELSE AVG([Link])
END AS media
FROM
alunos
LEFT JOIN
disciplinas_realizadas ON [Link] =
disciplinas_realizadas.aluno_id
LEFT JOIN
disciplinas ON disciplinas_realizadas.disciplina_id =
[Link]
LEFT JOIN
notas ON [Link] = notas.aluno_id AND [Link] =
notas.disciplina_id
GROUP BY
[Link], [Link]
ORDER BY
[Link], [Link];
Referencias bibliográficas
Material didático da disciplina. Disponível no Moodle BA
W3Schools. SQL Tutorial. Disponível em: [Link] Acesso em: 20 nov. 2024.
W3Schools. SQL CASE Statement. Disponível em: [Link] Acesso
em: 20 nov. 2024.
Microsoft. SQL Samples - Where Are They?. Disponível em:
[Link] Acesso em:
20 nov. 2024.
W3Schools. SQL Quick Reference. Disponível em: [Link]
Acesso em: 20 nov. 2024.
W3Schools. SQL Examples. Disponível em: [Link] Acesso
em: 20 nov. 2024.