Banco de Dados
Por: dudu9317 • 25/2/2016 • Trabalho acadêmico • 1.293 Palavras (6 Páginas) • 310 Visualizações
-- QUESTÃO 1
CREATE TABLE Departamento(
cod_depto SERIAL CONSTRAINT PK_Departamento PRIMARY KEY,
nome_depto VARCHAR(30) NOT NULL,
localizacao VARCHAR(30) NOT NULL
);
CREATE TABLE Funcionario(
matricula VARCHAR(12) CONSTRAINT PK_Funcionario PRIMARY KEY,
nome_func VARCHAR(80) NOT NULL,
anos_servico NUMERIC CHECK (anos_servico >=0),
salario REAL CHECK (salario >= 0 AND salario <= 10000),
cod_depto INTEGER CONSTRAINT FK_cod_depto REFERENCES Departamento (cod_depto)
);
CREATE TABLE Divisao(
cod_div SERIAL CONSTRAINT PK_Divisao PRIMARY KEY,
nome_div VARCHAR(30) NOT NULL,
cod_depto_div INTEGER CONSTRAINT FK_cod_depto_div REFERENCES Departamento (cod_depto)
);
CREATE TABLE Gerencia(
mat_ger VARCHAR(12),
cod_depto INTEGER,
CONSTRAINT PK_Gerencia PRIMARY KEY (mat_ger, cod_depto),
CONSTRAINT FK_mat_ger FOREIGN KEY (mat_ger) REFERENCES Funcionario (matricula),
CONSTRAINT FK_cod_depto FOREIGN KEY (cod_depto) REFERENCES Departamento (cod_depto)
);
CREATE TABLE Projeto(
cod_proj SERIAL CONSTRAINT PK_Projeto PRIMARY KEY,
nome_proj VARCHAR(50) NOT NULL,
inicio DATE NOT NULL,
fim DATE CHECK (fim>=inicio) NULL
);
CREATE TABLE Aloca(
cod_proj INTEGER,
mat_func VARCHAR(12),
data_alocacao DATE NOT NULL,
CONSTRAINT PK_Aloca PRIMARY KEY (cod_proj,mat_func),
CONSTRAINT cod_proj FOREIGN KEY (cod_proj) REFERENCES Projeto (cod_proj),
CONSTRAINT mat_func FOREIGN KEY (mat_func) REFERENCES Funcionario (matricula)
);
CREATE TABLE Coordena(
cod_proj INTEGER,
mat_func VARCHAR(12),
data_alocacao DATE NOT NULL,
CONSTRAINT PK_Coordena PRIMARY KEY (cod_proj,mat_func),
CONSTRAINT cod_proj FOREIGN KEY (cod_proj) REFERENCES Projeto (cod_proj),
CONSTRAINT mat_func FOREIGN KEY (mat_func) REFERENCES Funcionario (matricula)
);
CREATE TABLE Supervisiona(
mat_supervisor VARCHAR(12),
mat_subordinado VARCHAR(12),
CONSTRAINT PK_Supervisiona PRIMARY KEY (mat_supervisor, mat_subordinado),
CONSTRAINT FK_mat_supervisor FOREIGN KEY (mat_supervisor) REFERENCES Funcionario(matricula),
CONSTRAINT FK_mat_subordinado FOREIGN KEY (mat_subordinado) REFERENCES Funcionario(matricula)
);
-- QUESTÃO 2
INSERT INTO Departamento (nome_depto, localizacao) values ('Administracao', 'Diamantina');
INSERT INTO Departamento (nome_depto, localizacao) values ('Recursos Humanos', 'Diamantina');
INSERT INTO Departamento (nome_depto, localizacao) values ('Administracao', 'Montes Claros');
INSERT INTO Departamento (nome_depto, localizacao) values ('Recursos Humanos', 'Montes Claros');
-- QUESTÃO 3
INSERT INTO Divisao (cod_depto_div, nome_div) values ('1', 'Divisao Financeira');
INSERT INTO Divisao (cod_depto_div, nome_div) values ('1', 'Divisao de Almoxarifado');
INSERT INTO Divisao (cod_depto_div, nome_div) values ('2', 'Divisao de Pagamento');
INSERT INTO Divisao (cod_depto_div, nome_div) values ('2', 'Divisao de Concurso');
INSERT INTO Divisao (cod_depto_div, nome_div) values ('3', 'Divisao Financeira');
INSERT INTO Divisao (cod_depto_div, nome_div) values ('3', 'Divisao de Almoxarifado');
INSERT INTO Divisao (cod_depto_div, nome_div) values ('4', 'Divisao de Pagamento');
INSERT INTO Divisao (cod_depto_div, nome_div) values ('4', 'Divisao de Concurso');
-- QUESTAO 4
INSERT INTO Funcionario (matricula, nome_func, anos_servico, salario, cod_depto) values ('A12B12C12D01', 'Pelé', '12', '10000.00', '1'); -- 10012.20
INSERT INTO Funcionario (matricula, nome_func, anos_servico, salario, cod_depto) values ('A12B12C12D02', 'Zico', '5', '482.20', '2');
INSERT INTO Funcionario (matricula, nome_func, anos_servico, salario, cod_depto) values ('A12B12C12D03', 'Maradona', '10', '4002.20', '4');
INSERT INTO Funcionario (matricula, nome_func, anos_servico,
...