Baixe o app para aproveitar ainda mais
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) )
Compartilhar