Buscar

bd3

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

-- 1 – Criar um banco de dados chamado: BD_Esquemas
create database BD_Esquemas
-- 2 – Crie três esquemas chamados Discente, Direcao e Aluno
create schema direcao
create schema discente
create schema aluno
-- 3 – Execute o script “CriaTabelas_ex.sql”
/*
drop table pessoa cascade;
drop table professor cascade;
drop table aluno cascade;
drop table disciplina cascade;
drop table curso cascade;
drop table projeto cascade;
drop table turma cascade;
drop table aluno.aluno_turma cascade;
*/
CREATE TABLE curso (
	codigo_curso INT,
 	nome VARCHAR(30) NOT NULL,
 	CONSTRAINT curso_pk PRIMARY KEY (codigo_curso)
);
 
 CREATE TABLE projeto (
 	codigo_projeto INT,
 	titulo VARCHAR(30) NOT NULL,
 	conceito VARCHAR(7),
 	hp VARCHAR(50),
 	CONSTRAINT projeto_pk PRIMARY KEY (codigo_projeto),
 	CONSTRAINT projeto_conceito_ck CHECK (conceito IN ('BOM', 'RUIM', 'REGULAR'))
 );
 CREATE TABLE pessoa (
 	matricula_pessoa INT,
 	nome VARCHAR(50) NOT NULL,
 	sexo CHAR(1) NOT NULL,
 	CONSTRAINT pessoa_pk PRIMARY KEY (matricula_pessoa)
 );
 
CREATE TABLE professor (
 	matricula_professor INT,
 	data_admissao DATE NOT NULL,
 	matricula_lider INT,
 	CONSTRAINT professor_pk PRIMARY KEY (matricula_professor),
 	CONSTRAINT professor_matricula_prof_fk FOREIGN KEY (matricula_professor) REFERENCES pessoa (matricula_pessoa),
 	CONSTRAINT professor_matricula_lider_fk FOREIGN KEY (matricula_lider) REFERENCES professor (matricula_professor)
 );
 
 CREATE TABLE disciplina (
 	codigo_disciplina INT,
 	ementa VARCHAR(50) NOT NULL,
 	conteudo_programatico VARCHAR(100) NOT NULL,
 	matricula_professor INT NOT NULL,
 	CONSTRAINT disciplina_pk PRIMARY KEY (codigo_disciplina),
 	CONSTRAINT disciplina_matricula_prof_fk FOREIGN KEY (matricula_professor) REFERENCES professor (matricula_professor)
 );
 
CREATE TABLE turma (
 	codigo_disciplina INT,
 	codigo_curso INT,
 	ano_semestre VARCHAR(6),
 	CONSTRAINT turma_pk PRIMARY KEY (ano_semestre),
 	CONSTRAINT turma_codigo_disciplina_fk FOREIGN KEY (codigo_disciplina) REFERENCES disciplina (codigo_disciplina),
 	CONSTRAINT turma_codigo_curso_fk FOREIGN KEY (codigo_curso) REFERENCES curso (codigo_curso),
 	CONSTRAINT turma_ano_semestre_ck CHECK (ano_semestre LIKE '____._')
 ); 
CREATE TABLE ministra (
	codigo_disciplina INT,
	codigo_curso INT,
	ano_semestre VARCHAR(6),
	matricula_professor INT,
	CONSTRAINT ministra_pk PRIMARY KEY (codigo_disciplina,codigo_curso,ano_semestre,matricula_professor),
	CONSTRAINT ministra_matricula_prof_fk FOREIGN KEY (matricula_professor) REFERENCES professor (matricula_professor)
);
CREATE TABLE aluno (
	matricula_aluno INT,
	nota_vestibular DECIMAL(5,3) NOT NULL,
	codigo_curso INT NOT NULL,
	CONSTRAINT aluno_pk PRIMARY KEY (matricula_aluno),
	CONSTRAINT aluno_matricula_aluno_fk FOREIGN KEY (matricula_aluno) REFERENCES pessoa (matricula_pessoa),
	CONSTRAINT aluno_codigo_curso_fk FOREIGN KEY (codigo_curso) REFERENCES curso (codigo_curso)
);
/*
4 – Crie as relações não criadas pelo script “CriaTabelas_ex.sql”, inserindo-as nos esquemas indicados:
Esquema “Aluno” : aluno_turma
Esquema “Aluno” : prova
Esquema “Direcao” : monitoria
*/
create table aluno.aluno_turma(
ano_semestre VARCHAR(6),
codigo_disciplina varchar(10),
codigo_curso varchar(10),
matricula_aluno int,
codigo_projeto varchar(15));
create table aluno.prova(
codigo_disciplina varchar(10),
codigo_curso varchar(10),
ano_semestre VARCHAR(6),
matricula_aluno int,
descricao varchar(200),
nota numeric);
create table direcao.monitoria(
codigo_disciplina varchar(10),
codigo_curso varchar(10),
matricula_aluno int,
matricula_professor int,
CONSTRAINT monitoria_ano_semestre_fk FOREIGN KEY (ano_semestre) REFERENCES public.turma (ano_semestre)
)

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando