Projeto e otimização banco de dados
Por: Rafael Alves Silveira • 4/11/2017 • Trabalho acadêmico • 1.611 Palavras (7 Páginas) • 513 Visualizações
[pic 1]
CENTRO UNIVERSITÁRIO ESTÁCIO DO CEARÁ
PÓS-GRADUAÇÃO EM ENGENHARIA DE SOFTWARE
- Estrutura do banco de dados - proposta do trabalho
[pic 2]
- Script de criação da estrutura de banco de dados (DDL)
CREATE TABLE Curso
(
CodC CHAR(5) NOT NULL,
NomeC VARCHAR(20) NOT NULL,
DuracaoC INTEGER NOT NULL,
MensC INTEGER NOT NULL,
UNIQUE(NomeC),
PRIMARY KEY (CodC)
);
CREATE TABLE Professor
(
CodP CHAR(5) NOT NULL,
NomeP VARCHAR(20) NOT NULL,
CidadeP VARCHAR(20) NOT NULL,
TituloP VARCHAR(20) NOT NULL,
UNIQUE (NomeP),
PRIMARY KEY (CodP)
);
CREATE TABLE Disciplina
(
CodD CHAR(5) NOT NULL,
NomeD VARCHAR(20) NOT NULL,
CargaD INTEGER NOT NULL,
AreaD VARCHAR(20),
PreReqD CHAR(5),
UNIQUE (NomeD),
PRIMARY KEY (CodD),
FOREIGN KEY (PreReqD)
REFERENCES Disciplina (CodD)
);
CREATE TABLE Grade
(
CodC CHAR(5) NOT NULL,
CodD CHAR(5) NOT NULL,
CodP CHAR(5) NOT NULL,
Sala INTEGER NOT NULL,
PRIMARY KEY (CodC,CodD,CodP),
FOREIGN KEY (CodC) REFERENCES Curso (CodC),
FOREIGN KEY (CodD) REFERENCES Disciplina (CodD),
FOREIGN KEY (CodP) REFERENCES Professor (CodP)
);
- Inserção de dados na base
INSERT INTO Curso(CodC, NomeC, DuracaoC, MensC) VALUES
('C1', 'Análise Sist', 4, 400),
('C2','Eng Mecatrônica', 5, 600),
('C3','Ciência Comp', 4, 450),
('C4','Eng Elétrica', 4, 600),
('C5','Turismo', 3, 350);
INSERT INTO Professor(CodP, NomeP, CidadeP, TituloP)VALUES
('P1','Joaquim', 'Rib Preto', 'Mestre'),
('P2','Paulo', 'Batatais', 'Espec'),
('P3','André', 'Rib Preto', 'Doutor'),
('P4','Gil', 'S Carlos', 'Doutor'),
('P5','Juliana', 'S Carlos', 'Pós Doc');
INSERT INTO Disciplina(CodD, NomeD, CargaD, AreaD, PreReqD) VALUES
('D2','Cálculo1', 4, 'Matemática', null),
('D1','TLP1', 2, 'Computação', 'D2'),
('D3','Inglês', 2, 'Humanas', null),
('D4','Ed Física', 3, 'Saúde', null),
('D5','G Analítica', 5, 'Matemática', 'D2'),
('D6','Projeto Final', 6, 'null', 'D1');
INSERT INTO Grade(CodC, CodD, CodP, Sala) VALUES
('C1','D6','P1',305),
('C2','D2','P2',305),
('C3','D2','P2',305),
('C4','D1','P4',201),
('C4','D3','P3',204),
('C5','D4','P3',204),
('C5','D4','P4',207);
- Consultas solicitadas para o trabalho (SQL)
/*a)Código e nome das disciplinas com carga horária entre 3 e 5 inclusive e que não
sejam da área de Saúde.*/
SELECT CodD, NomeD FROM Disciplina
WHERE CargaD BETWEEN 3 AND 5 AND AreaD NOT LIKE 'Saúde';
/*b)Nome das disciplinas com carga horária menor que 5 e que sejam ministradas por
professores doutores.*/
SELECT DISTINCT NomeD FROM Disciplina d
...