Criação de Tabela em Banco
Por: João Vitor Almeida • 4/5/2016 • Abstract • 448 Palavras (2 Páginas) • 211 Visualizações
-- Exclui o Schema se já existir
DROP SCHEMA IF EXISTS cinema CASCADE;
-- Cria o Schema e seta como padrão
CREATE SCHEMA cinema;
SET search_path TO cinema;
-- Tabela Pessoa
CREATE TABLE Pessoa (
ID INT CONSTRAINT pessoapk PRIMARY KEY,
Nome VARCHAR NOT NULL,
Nacionalidade VARCHAR NOT NULL,
Sexo CHAR(1) NOT NULL /* Usamos M pra masculino, F pra feminino */,
DataNasc DATE NOT NULL,
DataFalec DATE,
Biografia TEXT NOT NULL,
CHECK((Sexo = 'M' OR Sexo = 'F') OR (Sexo = 'm' OR Sexo = 'f'))
);
-- Tabela Estudio
CREATE TABLE Estudio (
Nome VARCHAR CONSTRAINT estudiopk PRIMARY KEY,
DataFech DATE,
DataFun DATE NOT NULL,
Local VARCHAR
);
-- Tabela Set
CREATE TABLE Set (
NomeEstudio VARCHAR,
Nome VARCHAR,
Tamanho INT NOT NULL, /* Tamanhos 1, 2 e 3 (Pequeno, Médio e Grande) */
Local VARCHAR,
CONSTRAINT setpk PRIMARY KEY (NomeEstudio, Nome),
CONSTRAINT setfk FOREIGN KEY (NomeEstudio) REFERENCES Estudio(Nome) MATCH SIMPLE
ON DELETE NO ACTION ON UPDATE CASCADE,
CHECK(Tamanho >= 1),
CHECK(Tamanho <= 3)
);
-- Tabela Diretor
CREATE TABLE Diretor (
ID INT CONSTRAINT diretorpk PRIMARY KEY,
CONSTRAINT diretorfk FOREIGN KEY(ID) REFERENCES Pessoa(ID) MATCH SIMPLE
ON DELETE CASCADE ON UPDATE CASCADE
);
-- Tabela Filme
CREATE TABLE Filme (
Otitulo VARCHAR CONSTRAINT filmepk PRIMARY KEY,
Ptitulo VARCHAR NOT NULL,
Censura SMALLINT,
Ano INT NOT NULL,
Comentarios TEXT,
NomeEstudio VARCHAR CONSTRAINT filmefk1 REFERENCES Estudio(Nome) MATCH SIMPLE ON DELETE SET NULL ON UPDATE CASCADE,
ID_Diretor INT CONSTRAINT filmefk2 REFERENCES Diretor(ID) MATCH SIMPLE ON DELETE SET NULL ON UPDATE CASCADE,
Remake VARCHAR CONSTRAINT filmefk3 REFERENCES Filme(Otitulo) MATCH SIMPLE ON DELETE SET NULL ON UPDATE CASCADE
);
-- Tabela GeneroFilmes
CREATE TABLE GeneroFilme (
Genero VARCHAR NOT NULL,
TituloFilme VARCHAR REFERENCES Filme(Otitulo) MATCH SIMPLE ON DELETE NO ACTION ON UPDATE CASCADE,
CONSTRAINT generofpk PRIMARY KEY (TituloFilme, Genero)
);
-- Tabela Ator
CREATE TABLE Ator (
ID INT CONSTRAINT atorpk PRIMARY KEY REFERENCES Pessoa(ID) MATCH SIMPLE ON UPDATE CASCADE,
DataInicio DATE NOT NULL,
DataFinal DATE,
CHECK(DataFinal - DataInicio >= 0)
);
-- Tabela Atuacao
CREATE TABLE Atuacao (
ID_Ator INT REFERENCES Ator(ID) MATCH SIMPLE ON DELETE CASCADE ON UPDATE CASCADE,
TituloFilme VARCHAR REFERENCES Filme(Otitulo) MATCH SIMPLE ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT atpk
...