Skip to content

Instantly share code, notes, and snippets.

@manuwell
Last active November 19, 2018 22:30
Show Gist options
  • Save manuwell/8abe5da1916eadb9ed469f981efb8505 to your computer and use it in GitHub Desktop.
Save manuwell/8abe5da1916eadb9ed469f981efb8505 to your computer and use it in GitHub Desktop.
Adm Banco Dados

Aluno: Wellington Santos RA: 20993835

Questão

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.

  1. (0,75) Escolha duas tabelas do projeto conceitual acima e elabore os comandos SQLDDL para criação destas tabelas.
  2. (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.
  3. Elabore os comandos SQLDML para consultar no banco de dados do sistema de vendas as seguintes informações:
  4. (0,5) Liste o nome e o endereço dos alunos que estão no curso de "GTI" e "TADS".
  5. (0.5) Liste os nomes das disciplinas do curso "TADS".

Respostas

(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', 'jose.silva@mailinator.com', 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', 'josimar.santos@mailinator.com', 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', 'silvio.santos@mailinator.com', 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"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment