Está en la página 1de 4

Ejercicio 4.

6 por Alejandro Almendras Nina

Modelo relacional:
revistaDDL.sql:
ALTER TABLE REVISTA DROP CONSTRAINT fk_foto_portada;

drop table secciones;


drop table fotografias;
drop table fotografo;
drop table hecho_por;
drop table autor;
drop table articulos;
drop table revista;

create table revista(


numero number(3),
fecha_pub date,
num_paginas number(2),
titulo varchar2(40),
foto_portada number(3),

CONSTRAINT pk_revista PRIMARY KEY(numero)


);

create table articulos(


id_articulo number(3),
titulo varchar2(40),
sinopsis varchar2(200),
num_secciones number(2),
pag_inicial number(2) NOT NULL,
pag_final number(2) NOT NULL,
num_revista number(3),

CONSTRAINT pk_articulos PRIMARY KEY(id_articulo),


CONSTRAINT fk_articulos FOREIGN KEY(num_revista) REFERENCES revista(numero),
CONSTRAINT ck_articulos CHECK(LENGTH(titulo)>=5 AND LENGTH(sinopsis)>=40)
);

create table secciones(


id_seccion number(3),
titulo_sec varchar2(40),
texto_comp_sec varchar2(200),
num_articulo number(3),

CONSTRAINT pk_secciones PRIMARY KEY(id_seccion),


CONSTRAINT fk_secciones FOREIGN KEY(num_articulo) REFERENCES articulos(id_articulo),
CONSTRAINT ck_secciones CHECK(LENGTH(titulo_sec)>=5 AND LENGTH(texto_comp_sec)>=100)
);

create table autor(


id_autor number(3),
nombre varchar2(60),
primer_apellido varchar2(50),
telefono number(9),
correo varchar2(30),
ig_account varchar2(20),

CONSTRAINT pk_autor PRIMARY KEY(id_autor),


CONSTRAINT ck_autor CHECK(LENGTH(nombre)>=3 AND LENGTH(primer_apellido)>=4)
);

create table hecho_por(


autor_art number(3),
art_escrito number(3),
CONSTRAINT pk_hecho_por PRIMARY KEY(autor_art,art_escrito),
CONSTRAINT fk_autor_art FOREIGN KEY(autor_art) REFERENCES autor(id_autor),
CONSTRAINT fk_art_escrito FOREIGN KEY(art_escrito) REFERENCES articulos(id_articulo)
);

create table fotografo(


id_fotografo number(3),
nombre varchar2(60),
primer_apellido varchar2(50),
telefono number(9),
correo varchar2(30),
ig_account varchar2(20),

CONSTRAINT pk_fotografo PRIMARY KEY(id_fotografo),


CONSTRAINT ck_fotografo CHECK(LENGTH(nombre)>=3 AND LENGTH(primer_apellido)>=4)
);
create table fotografias(
id_foto number(3),
tamano number(7),
lugar_descriptivo varchar2(50),
pago number(5,2),
fotografo_autor number(3),
incluido_en_art number(3),

CONSTRAINT pk_fotografias PRIMARY KEY(id_foto),


CONSTRAINT ck_fotografias CHECK(LENGTH(lugar_descriptivo)>=10 AND (pago)>0),
CONSTRAINT fk_fotografo_autor FOREIGN KEY(fotografo_autor) REFERENCES fotografo(id_fotografo),
CONSTRAINT fk_incluido_en_art FOREIGN KEY(incluido_en_art) REFERENCES articulos(id_articulo)
);

ALTER TABLE REVISTA ADD CONSTRAINT fk_foto_portada FOREIGN KEY(foto_portada) REFERENCES


fotografias(id_foto);

SQL Developer:

También podría gustarte