Aluno: Wellington Santos RA: 20993835
Analise atentamente o projeto lógico do banco de dados para um sistema de cadastro de alunos, onde chaves primárias estão grifadas e as chaves estrangeiras em itálico.
Aluno (Codigo_RA, Cod_end, nome,email, RG, CPF)
Endereco(Cod_end, rua, nro, complement, cep)
Curso (Codigo_Curso, nomecurso, coordenadorcurso, anoliberacao)
Disciplinas(Codigo_Disciplina, Codigo_Curso, disciplina, professor, anograde, semestregrade)
Professor (Codigo_Matricula, Cod_end, nome,email, RG, CPF)
Historico ( Historico_Codigo, Codigo_RA, Codigo_Curso, Codigo_Disciplina, data_matricula, data_conclusao)
Utilizando os conceitos vistos nas Unidades de 1 a 3 da disciplina Projeto e Administração de BD desenvolva as questões abaixo.
Os comandos devem ser criados para o SSBD PostSQL estudado na unidade 2.
- (0,75) Escolha duas tabelas do projeto conceitual acima e elabore os comandos SQLDDL para criação destas tabelas.
- (0,75) Para as tabelas criadas no item 1, elabore os comandos SQLDML para inserção de valores nas duas tabelas. Insira pelo menos 3 (três) linhas em cada tabela.
- Elabore os comandos SQLDML para consultar no banco de dados do sistema de vendas as seguintes informações:
- (0,5) Liste o nome e o endereço dos alunos que estão no curso de "GTI" e "TADS".
- (0.5) Liste os nomes das disciplinas do curso "TADS".
(0,75) Escolha duas tabelas do projeto conceitual acima e elabore os comandos SQLDDL para criação destas tabelas.
CREATE TABLE Aluno (
Codigo_RA NUMERIC(20) NOT NULL PRIMARY KEY,
Cod_End NUMERIC(20) NOT NULL FOREIGN KEY REFERENCES Endereco(Cod_End),
nome VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL,
rg NUMERIC(10) NOT NULL, -- pensando em um SGBD somente para brasileiros
CPF NUMERIC(10) NOT NULL -- pensando em um SGBD somente para brasileiros
)
CREATE TABLE Endereco (
Cod_End NUMERIC(20) NOT NULL PRIMARY KEY,
rua VARCHAR(100) NOT NULL,
nro VARCHAR(20) NOT NULL, -- pensando em números como 20A
complement VARCHAR(30) NOT NULL DEFAULT '',
cep NUMERIC(8) NOT NULL
)
(0,75) Para as tabelas criadas no item 1, elabore os comandos SQLDML para inserção de valores nas duas tabelas. Insira pelo menos 3 (três) linhas em cada tabela.
-- Aluno 1
INSERT INTO ENDERECO (Cod_End, rua, nro, complement, cep)
VALUES (1, 'Rua tupi', '123', 'Lado A', 01233000);
INSERT INTO Aluno (Codigo_RA, Cod_End, nome, email, rg, cpf)
VALUES (1273622, 1, 'José da Silva', '[email protected]', 1234567890, 123456789010);
-- Aluno 2
INSERT INTO ENDERECO (Cod_End, rua, nro, complement, cep)
VALUES (2, 'Rua Augusta', '123', '', 03033000);
INSERT INTO Aluno (Codigo_RA, Cod_End, nome, email, rg, cpf)
VALUES (981723, 2, 'Josimar Santos', '[email protected]', 0987654321, 1111111111);
-- Aluno 3
INSERT INTO ENDERECO (Cod_End, rua, nro, complement, cep)
VALUES (3, 'Av. Pacaembu', '123', 'apto 123', 03033000);
INSERT INTO Aluno (Codigo_RA, Cod_End, nome, email, rg, cpf)
VALUES (6257362, 3, 'Silvio Santos', '[email protected]', 78126319287, 123456789010);
(0,5) Liste o nome e o endereço dos alunos que estão no curso de "GTI" e "TADS".
SELECT Aluno.nome, Endereco.*
FROM ALUNO
INNER JOIN Endereco ON Aluno.Cod_End = Endereco.Cod_End
INNER JOIN Historico ON Aluno.Codigo_RA = Historico.Codigo_RA
INNER JOIN Curso ON Historico.Codigo_Curso = Curso.Codico_Curso
WHERE
Curso.nomecurso IN ("GTI", "TADS")
AND Historico.data_conclusao IS NULL -- ainda cursando
(0.5) Liste os nomes das disciplinas do curso "TADS".
SELECT Disciplinas.disciplina
FROM Disciplinas
INNER JOIN Curso ON Disciplinas.Codigo_Curso = Curso.Codico_Curso
WHERE
Curso.nomecurso = "TADS"