script
CREATE TABLE CONSTANTE(
ID NUMBER(5) NOT NULL,
PADRE NUMBER(5) NOT NULL,
NOMBRE VARCHAR2(20) NOT NULL,
CONSTRAINT CON_PK PRIMARY KEY(ID));
CREATE TABLE PELICULA(
ID NUMBER(5) NOT NULL,
CODIGO NUMBER(20) NOT NULL,
NOMBRE VARCHAR2(20) NOT NULL,
DESCRIPCION VARCHAR2(20),
ACTOREs VARCHAR2(20),
ANO NUMBER(4) NOT NULL,
ALQUILADA NUMBER(1) NOT NULL,
DURACION NUMBER(3) NOT NULL,
ID_TIPO_FORMATO NUMBER(5) NOT NULL,
ID_TIPO_GENERO NUMBER(5) NOT NULL,
CONSTRAINT PEL_PK PRIMARY KEY(ID),
CONSTRAINT PEL_FOCON_FK FOREIGN KEY (ID_TIPO_FORMATO) REFERENCES CONSTANTE(ID),
CONSTRAINT PEL_GECON_FK FOREIGN KEY (ID_TIPO_GENERO) REFERENCES CONSTANTE(ID));
CREATE TABLE CAJA(
ID_TIPO_CAJA NUMBER(5) NOT NULL,
VALOR NUMBER(15,3) NOT NULL,
DIAS NUMBER(3) NOT NULL,
MULTAS NUMBER(15,3) NOT NULL,
CONSTRAINT CAJ_PK PRIMARY KEY(ID_TIPO_CAJA),
CONSTRAINT CAJ_CACON_FK FOREIGN KEY (ID_TIPO_CAJA) REFERENCES CONSTANTE(ID));
CREATE TABLE SUBTITULO(
ID_PELICULA NUMBER(5) NOT NULL,
ID_TIPO_SUBTITULO NUMBER(5) NOT NULL,
CONSTRAINT SUB_PK PRIMARY KEY(ID_PELICULA,ID_TIPO_SUBTITULO),
CONSTRAINT SUB_PEL_FK FOREIGN KEY (ID_PELICULA) REFERENCES PELICULA(ID),
CONSTRAINT SUB_SUCON_FK FOREIGN KEY (ID_TIPO_SUBTITULO) REFERENCES CONSTANTE(ID));
CREATE TABLE AUDIO(
ID_PELICULA NUMBER(5) NOT NULL,
ID_TIPO_AUDIO NUMBER(5) NOT NULL,
CONSTRAINT AUD_PK PRIMARY KEY(ID_PELICULA,ID_TIPO_AUDIO),
CONSTRAINT AUD_PEL_FK FOREIGN KEY (ID_PELICULA) REFERENCES PELICULA(ID),
CONSTRAINT AUD_AUCON_FK FOREIGN KEY (ID_TIPO_AUDIO) REFERENCES CONSTANTE(ID));
CREATE TABLE CONTRATO(
ID NUMBER(5) NOT NULL,
NUMERO NUMBER(20) NOT NULL,
FECHA DATE NOT NULL,
ID_PERSONA NUMBER(5) NOT NULL,
CONSTRAINT CONT_PK PRIMARY KEY(ID)),
CONSTRAINT CONT_PER_FK FOREIGN KEY (ID_PERSONA) REFERENCES PERSONA(ID));
CREATE TABLE PERSONA(
ID NUMBER(5) NOT NULL,
TIPO_DOC VARCHAR2(2) CHECK (TIPO_DOC=’TI’ OR TIPO_DOC=’CC’ OR TIPO_DOC=’CE’) NOT
NULL,
NUM_DOC NUMBER(20) NOT NULL,
Página 1
script
NOMBRE1 VARCHAR2(20) NOT NULL,
NOMBRE2 VARCHAR2(20) NOT NULL,
APELLIDO1 VARCHAR2(20) NOT NULL,
APELLIDO2 VARCHAR2(20) NOT NULL,
DIRECCION VARCHAR2(20) NOT NULL,
TELEFONO NUMBER(20) NOT NULL,
NOMBRE_EMPRESA VARCHAR2(20),
DIRECCION_EMPRESA VARCHAR2(20),
TELEFONO_EMPRESA NUMBER(20),
EMAIL VARCHAR2(80),
ID_CONTRATO NUMBER(5) NOT NULL,
ID_TIPO_PARENTESCO NUMBER(5) NOT NULL,
TIPO_PERSONA VARCHAR2(1) CHECK (TIPO_PERSONA=’R’ OR TIPO_PERSONA=’A’ OR
TIPO_PERSONA=’P’) NOT NULL,
CONSTRAINT PER_PK PRIMARY KEY(ID),
CONSTRAINT PER_CONT_FK FOREIGN KEY (ID_CONTRATO) REFERENCES CONTRATO(ID),
CONSTRAINT PER_PACON_FK FOREIGN KEY (ID_TIPO_PARENTESCO) REFERENCES CONSTANTE(ID));
CREATE TABLE REFERENCIAS(
ID NUMBER(5) NOT NULL,
NOMBRE VARCHAR2(20) NOT NULL,
TELEFONO NUMBER(20) NOT NULL,
ID_CONTRATO NUMBER(5) NOT NULL,
CONSTRAINT REF_PK PRIMARY KEY(ID),
CONSTRAINT REF_CONT_FK FOREIGN KEY (ID_CONTRATO) REFERENCES CONTRATO(ID));
CREATE TABLE FACTURA(
ID NUMBER(5) NOT NULL,
FECHA DATE NOT NULL,
VALOR NUMBER(15,3) NOT NULL,
PAGADO NUMBER(1) NOT NULL,
ID_CONTRATO NUMBER(5) NOT NULL,
CONSTRAINT FAC_PK PRIMARY KEY(ID),
CONSTRAINT FAC_CONT_FK FOREIGN KEY (ID_CONTRATO) REFERENCES CONTRATO(ID));
CREATE TABLE DETALLE(
ID NUMBER(5) NOT NULL,
VALOR NUMBER(15,3) NOT NULL,
FECHA_ENTREGA DATE NOT NULL,
ID_PELICULA NUMBER(5) NOT NULL,
ID_TIPO_DETALLE NUMBER(5) NOT NULL,
ID_FACTURA NUMBER(5) NOT NULL,
CONSTRAINT DET_PK PRIMARY KEY(ID),
CONSTRAINT DET_PEL_FK FOREIGN KEY (ID_PELICULA) REFERENCES PELICULA(ID),
CONSTRAINT DET_DECON_FK FOREIGN KEY (ID_TIPO_DETALLE) REFERENCES CONSTANTE(ID),
CONSTRAINT DET_FAC_FK FOREIGN KEY (ID_FACTURA) REFERENCES FACTURA(ID));
ALTER TABLE PELICULA
ADD CONSTRAINT PEL_CODIGO_UK
UNIQUE(CODIGO)
ENABLE VALIDATE;
ALTER TABLE CONTRATO
ADD CONSTRAINT CON_NUMERO_UK
UNIQUE(NUMERO)
ENABLE VALIDATE;
Página 2
script
ALTER TABLE PERSONA
ADD CONSTRAINT PER_CEDULA_UK
UNIQUE(CEDULA)
ENABLE VALIDATE;
CREATE UNIQUE INDEX PEL_CODIGO_UI
ON PELICULA (CODIGO);
CREATE UNIQUE INDEX CON_NUMERO_UI
ON CONTRATO (NUMERO);
CREATE UNIQUE INDEX PER_CEDULA_UI
ON PERSONA (CEDULA);
CREATE UNIQUE INDEX PEL_ID_TIPO_FORMATO_UI
ON PELICULA (ID_TIPO_FORMATO);
CREATE UNIQUE INDEX PEL_ID_TIPO_GENERO_UI
ON PELICULA (ID_TIPO_GENERO);
CREATE UNIQUE INDEX AUD_ID_TIPO_CAJA_UI
ON CAJA (ID_TIPO_CAJA);
CREATE UNIQUE INDEX AUD_ID_PELICULA_UI
ON AUDIO (ID_PELICULA);
CREATE UNIQUE INDEX AUD_ID_TIPO_AUDIO_UI
ON AUDIO (ID_TIPO_AUDIO);
CREATE UNIQUE INDEX CONT_ID_PERSONA_UI
ON CONTRATO (ID_PERSONA);
CREATE UNIQUE INDEX PER_ID_CONTRATO_UI
ON PERSONA (ID_CONTRATO);
CREATE UNIQUE INDEX PER_ID_TIPO_PARENTESCO_UI
ON PERSONA (ID_TIPO_PARENTESCO);
CREATE UNIQUE INDEX PER_ID_TIPO_PERSONA_UI
ON PERSONA (ID_TIPO_PERSONA);
CREATE UNIQUE INDEX PER_ID_TIPO_ACCESO_UI
ON PERSONA (ID_TIPO_ACCESO);
CREATE UNIQUE INDEX REF_ID_CONTRATO_UI
ON REFERENCIA (ID_CONTRATO);
CREATE UNIQUE INDEX FAC_ID_CONTRATO_UI
ON FACTURA (ID_CONTRATO);
CREATE UNIQUE INDEX DET_ID_PELICULA_UI
ON DETALLE (ID_PELICULA);
CREATE UNIQUE INDEX DET_ID_TIPO_DETALLE_UI
ON DETALLE (ID_TIPO_DETALLE);
CREATE UNIQUE INDEX DET_ID_FACTURA_UI
ON DETALLE (ID_FACTURA);
Página 3
script
CREATE SEQUENCE CONSTANTE_SEQ;
CREATE SEQUENCE PELICULA_SEQ;
CREATE SEQUENCE PERSONA_SEQ;
CREATE SEQUENCE REFERENCIAS_SEQ;
CREATE SEQUENCE CONTRATO_SEQ;
CREATE SEQUENCE FACTURA_SEQ;
CREATE SEQUENCE DETALLE_FACTURA_SEQ;
CREATE SEQUENCE ROL_SEQ;
Página 4