Sunteți pe pagina 1din 26

UNIVERSIDAD NACIONAL

PEDRO RUIZ GALLO


FACULTAD DE INGENIERIA CIVIL
SISTEMAS Y ARQUITECTURA

CURSO
FUNDAMENTO DE BASE DE DATOS

DOCENTE
RIOS CAMPOS PILAR

TRABAJO
Final SQL

INTEGRANTES

 Aquino Silva Diego Alonso.


 Idrogo Montedoro Angel Alonso.
 Palacios Gamarra Giancarlo.

Lambayeque, Diciembre del 2018


INTRODUCCIÓN

La era de la tecnología y la información, en la cual nos encontramos inmersos,


obliga a las empresas a sacar el mayor provecho de sus recursos tecnológicos.

En este sentido, el diseño y modelaje de Bases de Datos cumple un papel muy


importante en la tarea del manejo de información, brindándole a los usuarios y dueños
de la información la capacidad de tener buena información en el momento preciso para
la toma de decisiones.

Este trabajo, tiene como objetivo, tal y como se verá durante su desarrollo,
recabar la información necesaria para elaborar un modelo de base de datos relacional
que le permita al hostal Moon Light manejar los datos relacionados con clientes,
empleados, habitaciones, formas de pago de manera confiable.

Para ello, se realizará un análisis de requerimientos de información, el cual servirá


como base para el desarrollo de un modelo conceptual.

Este modelo será llevado al proceso de Normalización para pasar luego a un modelo
lógico que servirá como materia prima para la posterior implementación del modelo
físico de datos, todo esto apegado a las necesidades de la empresa en cuanto a manejo
de información y los datos.
Objetivo General
 Crear un modelo de una base de datos relacional para el hostal Moon Light con el
fin de aportar una solución viable a los problemas de control sobre el inventario,
proveedores y clientes, empleados que tienen en la actualidad.

Objetivos Específicos
 Aplicar los conocimientos adquiridos en el curso de bases de datos uno con el fin
crear un modelo de bases de datos relacional eficiente y acorde con la
necesidades del hostal Moon Light.

 Proporcionar al hostal Moon Light una solución viable al problema de control de


datos que tienen actualmente.

 Identificar los requerimientos para el manejo de la información (entidades) del


hostal Moon Light.

 Cumplir con los requerimientos establecidos por la ingeniera para la elaboración


competente de este trabajo.

Metodología Aplicada:

Para el desarrollo de este trabajo se implementarán tres técnicas de análisis de


información las cuales nos permitirán establecer cuáles son los requerimientos, las
mismas se detallan a continuación:

 Entrevista (anexo Nº 1)
 Observación directa sobre los procesos objetos de estudio.
 Análisis de documentación de la empresa (anexo Nº 2)
 Análisis de la información y elaboración del modelo de datos.

Descripción de la Empresa
El hostal Moon Light está ubicado en la Victoria, es un lugar ideal para un plácido
descanso contamos con personal de calidad además brindamos los servicios de Jacuzzi,
agua caliente y fría, tv con cable, wifi, eventos sociales, estacionamiento privado,
Karaoke, amplias habitaciones y seguridad permanente garantizada.

En la actualidad el hostal Moon Light dispone de 29 habitaciones, 4 personas en el área


de limpieza en dos turnos, 1 lavandera, 1 guardián y 1 recepcionista en el área
administrativa del hostal.

Misión del Hostal


Nuestra misión es albergar a nuestros huéspedes en un ambiente con carácter rústico, el
cual respeta la cultura y arquitectura local, ofreciendo alta calidad y gran confort y una
atención personalizada en nuestros servicios, amparados en un mejoramiento continuo.

Visión del Hostal


La visión del Hostal Moon Light, es poder alcanzar un nivel de satisfacción absoluta en
nuestros huéspedes aplicando nuestros valores de honradez, puntualidad, higiene y
cortesía en todo momento, mediante la capacitación continua de nuestro personal.

Filosofía al Cliente
La satisfacción del cliente es crítico para nuestro éxito, así que vamos a ofrecer una
garantía incondicional de regreso de dinero a cualquiera que no esté satisfecho con sus
muebles. Esta garantía de retorno va a demostrar nuestro compromiso de ofrecer una
calidad excelente y al mismo tiempo asegurar la satisfacción del cliente.
Descripción del problema

Por ser un hostal mediano y recientemente fundado su dueño se permitía llevar los datos
de la empresa en cuadernos, sin embargo al ver el aumento en las ganancias, estos
recursos no le han sido suficientes y últimamente han propiciado una serie de desórdenes
que han dado al traste con un buen servicio al cliente.

El hostal Moon Light necesita implementar un sistema que le permita ejercer un mayor
control sobre clientes, las habitaciones, asistencia de los empleados. Es por este motivo
que se hace viable la creación de un sistema de información que permitiría ejercer el
control que el dueño requiere.

Fundamentalmente se debe mantener actualizada la información de la cual hoy se carece


control en el hostal, y permitiere al dueño comparar la habitación disponible en el
momento con la habitación que se encuentra ocupada para asegurarse de que es posible
cumplir con el plazo establecido previamente con el cliente.

Solución propuesta
Creación de un modelo de base de datos relacional que gestione los aspectos de los
cuales se carece control en la empresa. Este sistema debe proporcionar los medios para
el manejo de la información del hostal de manera correcta y ordenada.
Descripción de Requerimientos

El hostal Moon Light necesita implantar un sistema que le permita ejercer un mayor
control sobre clientes, las habitaciones disponibles, el stock del almacén; todo lo anterior
orientado al área de producción de la misma.

Con el análisis de los datos suministrado por los instrumentos de recopilación utilizados
para el estudio de los procesos realizados en el área de producción del Hostal fue posible
establecer cuáles son las fuentes de información necesarias que deben ser cubiertas por
este modelo.

El hostal realiza negocios con varios proveedores los cuales pueden ser particulares o
empresas el proceso de facturación y pago de los productos adquiridos es realizado en
forma independiente por el dueño del hostal por medio de un sistema que tiene un
rendimiento aceptable en este momento y son ajenos a este modelo de datos. Los
clientes del hostal realizan la cantidad de pedidos a recepción q deseen, los límites de
tiempo con respecto a la entrega son impuestos por el tipo de pedido y la cantidad de
trabajo existente en el hostal.

Los servicios que solicita el cliente a recepción con más frecuencia son:

 Servicio de taxi
 Servicio de comida rápida
SUPUESTOS

Supuesto 1:
Para registrar a un empleado el administrador del hotel emplea un código(DNI) para
cada uno de los empleados del hotel ,además de su nombre, número de teléfono y las
horas trabajadas.

Supuesto 2:
Un jefe es responsable de dirigir a otros empleados.

Supuesto 3:
El proceso del alquiler de una habitación es de acuerdo al tipo de habitación que deseen
y por qué tiempo.

Supuesto 4:
Para registrar a cada cliente el hostal almacena el DNI de cada cliente y el número de
habitación que se les otorgo.

Supuesto 5:
El hostal cuenta con diferentes tipos de habitaciones, a cada una ellas les pertenece un
número único asignado de acuerdo a su ubicación.

Supuesto 6:
Las formas de pago para acceder al servicio de alquiler de habitaciones se pueden dar de
muchas maneras para facilidad del cliente, se aceptan todo tipo de tarjetas o efectivo.
DETALLES DE ENTIDADES, ATRIBUTOS Y RELACIONES

Entidad Atributos Relacionada con

Hostal Nombre * Empleado


Cliente
Cochera
Habitación

Empleado Código *
Nombre Empleado
O Teléfono

H. de Trabajo

Forma de Pago Código - Forma * Cliente


Monto

Cochera Núm. De Estacionamiento * Cliente


Hostal

Cliente D.N.I * Cochera


O Nombre Hostal
Forma de Pago
Habitación

Habitación Núm. De habitación * Cliente


Tipo
Relación Habitación
Nombre de campo Tipo de dato nulos PK
N° Habitacion integer NN Y

Relación Cliente

Nombre de campo Tipo de dato nulos PK


DNI integer NN Y
Nombre Cadena NN N

Relación Habitación

Nombre de campo Tipo de dato nulos PK


Nº de habitación CHAR(8) NN Y

Relación forma de pago

Nombre de campo Tipo de dato nulos PK


Código-forma integer NN Y
monto Float NN N

Relación hostal

Nombre de campo Tipo de dato Nulos PK


Nombre cadena NN Y

Relación cochera

Nombre de campo Tipo de dato Nulos PK


N° Estacionamiento Numeric(3.0) NN Y

Relación cliente

Nombre de campo Tipo de dato Nulos PK


DNI Numeric (10) NN Y
Nombre Varchar (10) NN N
Modelo Físico de Datos
A continuación se presenta el código “scripts” que dará origen al modelo físico en el
Sistema de Gestión de Base de Datos:

REM Package definition

CREATE OR REPLACE PACKAGE adv_scripting AS

TYPE masked_errors IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;


skip_errors masked_errors;
start_step NUMBER;
stop_step NUMBER;
log_options NUMBER;
/*
log_options := 1 - log executed steps only + status + errors
log_options := 2 - option 1 + comments
log_options := 3 - option 1 + executed statement
*/
PROCEDURE EXEC_STATEMENT (
current_step NUMBER,
sql_statement VARCHAR2,
comments VARCHAR2);
PROCEDURE INIT_STEPS(
start_step_in NUMBER,
stop_step_in NUMBER,
log_option_in NUMBER);
PROCEDURE STOP_EXECUTION(tablename IN VARCHAR2);
FUNCTION GET_START_STEP RETURN NUMBER;
FUNCTION GET_STOP_STEP RETURN NUMBER;
END adv_scripting;
/
REM Package body definition

CREATE OR REPLACE PACKAGE BODY adv_scripting AS

FUNCTION GET_START_STEP RETURN NUMBER


IS
BEGIN
RETURN start_step;
END;

FUNCTION GET_STOP_STEP RETURN NUMBER


IS
BEGIN
RETURN stop_step;
END;

PROCEDURE STOP_EXECUTION(tablename IN VARCHAR2)


IS
msg varchar2(2000) := 'Script execution is interrupted because manual maintenance for table
';
BEGIN
DBMS_OUTPUT.PUT_LINE(msg||tablename||' is required');
raise_application_error(-20222,msg||tablename||' is required');
END;

PROCEDURE EXEC_STATEMENT (
current_step NUMBER,
sql_statement VARCHAR2,
comments VARCHAR2) IS
err_num NUMBER;
err_msg VARCHAR2(250);
out_msg VARCHAR2(1000);
raise_again boolean;
error_fl boolean;
st_time VARCHAR2(25);
end_time VARCHAR2(25);
BEGIN

if current_step >= start_step and (stop_step=0 OR current_step <= stop_step) then


raise_again := false;
err_num:=0;
error_fl:=false;
begin
st_time:= to_char(sysdate,'yyyymmdd hh24:mi:ss');
execute immediate (sql_statement);
end_time:= to_char(sysdate,'yyyymmdd hh24:mi:ss');
EXCEPTION
WHEN OTHERS THEN
err_num := SQLCODE;
err_msg := SUBSTR(SQLERRM, 1, 250);
end_time:= to_char(sysdate,'yyyymmdd hh24:mi:ss');
error_fl:=true;
if err_num=0 then
out_msg:=' Ok ';
elsif skip_errors.EXISTS(err_num) then
out_msg:= ' Masked error '|| err_num;
else
raise_again := true;
out_msg:=' Error ' ||err_num;
end if;
DBMS_OUTPUT.PUT_LINE('Step '||current_step||out_msg||' time: '||st_time||' -
'||end_time);
if log_options = 2 then
DBMS_OUTPUT.PUT_LINE( comments);
elsif log_options = 3 then
DBMS_OUTPUT.PUT_LINE( substr(sql_statement,1,250) );
end if;
if err_num<>0 then
DBMS_OUTPUT.PUT_LINE('');
DBMS_OUTPUT.PUT_LINE(err_msg);
end if;
DBMS_OUTPUT.PUT_LINE('');
DBMS_OUTPUT.PUT_LINE('');
if raise_again then
RAISE;
end if;
end;
if not error_fl then
out_msg:=' Ok ';
DBMS_OUTPUT.PUT_LINE('Step '||current_step||out_msg||' time: '||st_time||' -
'||end_time);
if log_options = 2 then
DBMS_OUTPUT.PUT_LINE( comments);
elsif log_options = 3 then
DBMS_OUTPUT.PUT_LINE( substr(sql_statement,1,250) );
end if;
DBMS_OUTPUT.PUT_LINE('');
DBMS_OUTPUT.PUT_LINE('');
end if;
end if;

END;

PROCEDURE INIT_STEPS(
start_step_in NUMBER,
stop_step_in NUMBER,
log_option_in NUMBER) IS
BEGIN
start_step := start_step_in;
stop_step := stop_step_in;
log_options := log_option_in;
END;
BEGIN
start_step :=0;
stop_step :=0;
-- dynamic settings - depends on log options set in Oracle SQL Developer Modeler
log_options := 2;
-- dynamic settings - depends on list of errors to skip set in Oracle SQL Developer Modeler
END adv_scripting;

-- static part

define start_in = 0;
define stop_in = 0;
define log_option_in = 1;

accept start_in NUMBER PROMPT 'Enter start step>'

accept stop_in NUMBER PROMPT 'Enter stop step>'


accept log_file PROMPT 'Enter log file>'

PROMPT Enter log option :


PROMPT log option := 1 - logs executed steps only + status + errors
PROMPT log option := 2 - option 1 + comments
PROMPT log option := 3 - option 1 + executed statement
accept log_option_in NUMBER PROMPT 'Enter log option - 1,2 or 3>'

SET SERVEROUTPUT ON

SET SERVEROUTPUT ON FORMAT WRAP

set termout off


set verify off
set feedback off

begin
DBMS_OUTPUT.ENABLE(500000);
end;
/

execute adv_scripting.INIT_STEPS(&start_in,&stop_in,&log_option_in)

spool &log_file

WHENEVER SQLERROR EXIT 22 COMMIT

-- Step10
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
CREATE TABLE CLIENTE
(
D.N.I CHAR (8) NOT NULL ,
nombre VARCHAR2 ,
nombre1 VARCHAR2 (60) NOT NULL
)
';
comments := 'CREATE TABLE CLIENTE ';
adv_scripting.EXEC_STATEMENT(10,statement,comments);
end;
/
-- end Step10
-- Step20
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
ALTER TABLE CLIENTE
ADD CONSTRAINT CLIENTE_PK PRIMARY KEY ( D.N.I )
';
comments := 'ALTER TABLE CLIENTE
ADD CONSTRAINT CLIENTE_PK ';
adv_scripting.EXEC_STATEMENT(20,statement,comments);
end;
/
-- end Step20

-- Step30
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
CREATE TABLE COCHERA
(
n°_de_estacionamiento CHAR NOT NULL ,
D.N.I CHAR (8) NOT NULL
)
';
comments := 'CREATE TABLE COCHERA ';
adv_scripting.EXEC_STATEMENT(30,statement,comments);
end;
/
-- end Step30

-- Step40
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
CREATE UNIQUE INDEX COCHERA__IDX ON COCHERA
(
D.N.I ASC
)
';
comments := 'CREATE UNIQUE INDEX COCHERA__IDX ';
adv_scripting.EXEC_STATEMENT(40,statement,comments);
end;
/
-- end Step40

-- Step50
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
ALTER TABLE COCHERA
ADD CONSTRAINT COCHERA_PK PRIMARY KEY ( n°_de_estacionamiento )
';
comments := 'ALTER TABLE COCHERA
ADD CONSTRAINT COCHERA_PK ';
adv_scripting.EXEC_STATEMENT(50,statement,comments);
end;
/
-- end Step50

-- Step60
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
CREATE TABLE EMPLEADO
(
código CHAR NOT NULL ,
nombre VARCHAR2 NOT NULL ,
teléfono CHAR (8) ,
h."_de_trabajo" CHAR NOT NULL ,
código1 CHAR NOT NULL ,
nombre1 VARCHAR2 (60) NOT NULL ,
nombre11 VARCHAR2 (60) NOT NULL
)
';
comments := 'CREATE TABLE EMPLEADO ';
adv_scripting.EXEC_STATEMENT(60,statement,comments);
end;
/
-- end Step60
-- Step70
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
CREATE UNIQUE INDEX EMPLEADO__IDX ON EMPLEADO
(
código1 ASC ,
nombre11 ASC
)
';
comments := 'CREATE UNIQUE INDEX EMPLEADO__IDX ';
adv_scripting.EXEC_STATEMENT(70,statement,comments);
end;
/
-- end Step70

-- Step80
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
ALTER TABLE EMPLEADO
ADD CONSTRAINT EMPLEADO_PK PRIMARY KEY ( código, nombre1 )
';
comments := 'ALTER TABLE EMPLEADO
ADD CONSTRAINT EMPLEADO_PK ';
adv_scripting.EXEC_STATEMENT(80,statement,comments);
end;
/
-- end Step80

-- Step90
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
CREATE TABLE FORMA_DE_PAGO
(
"código-forma" INTEGER NOT NULL ,
monto FLOAT NOT NULL ,
D.N.I1 CHAR (8) NOT NULL ,
D.N.I CHAR (8) NOT NULL
)
';
comments := 'CREATE TABLE FORMA_DE_PAGO ';
adv_scripting.EXEC_STATEMENT(90,statement,comments);
end;
/
-- end Step90

-- Step100
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
ALTER TABLE FORMA_DE_PAGO
ADD CONSTRAINT FORMA_DE_PAGO_PK PRIMARY KEY ( "código-forma", D.N.I1 )
';
comments := 'ALTER TABLE FORMA_DE_PAGO
ADD CONSTRAINT FORMA_DE_PAGO_PK ';
adv_scripting.EXEC_STATEMENT(100,statement,comments);
end;
/
-- end Step100

-- Step110
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
CREATE TABLE HABITACIÓN
(
n°_de_habitación CHAR NOT NULL ,
D.N.I CHAR (8) NOT NULL ,
nombre VARCHAR2 (60) NOT NULL ,
Precio FLOAT (2) NOT NULL
)
';
comments := 'CREATE TABLE HABITACIÓN ';
adv_scripting.EXEC_STATEMENT(110,statement,comments);
end;
/
-- end Step110
-- Step120
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
ALTER TABLE HABITACIÓN
ADD CONSTRAINT HABITACIÓN_PK PRIMARY KEY ( n°_de_habitación, nombre )
';
comments := 'ALTER TABLE HABITACIÓN
ADD CONSTRAINT HABITACIÓN_PK ';
adv_scripting.EXEC_STATEMENT(120,statement,comments);
end;
/
-- end Step120

-- Step130
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
CREATE TABLE HOSTAL
(
nombre VARCHAR2 (60) NOT NULL
)
';
comments := 'CREATE TABLE HOSTAL ';
adv_scripting.EXEC_STATEMENT(130,statement,comments);
end;
/
-- end Step130

-- Step140
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
ALTER TABLE HOSTAL
ADD CONSTRAINT HOSTAL_PK PRIMARY KEY ( nombre )
';
comments := 'ALTER TABLE HOSTAL
ADD CONSTRAINT HOSTAL_PK ';
adv_scripting.EXEC_STATEMENT(140,statement,comments);
end;
/
-- end Step140

-- Step150
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
CREATE TABLE NORMAL
(
n°_de_habitación CHAR NOT NULL ,
valor INTEGER NOT NULL ,
nombre VARCHAR2 (60) NOT NULL
)
';
comments := 'CREATE TABLE NORMAL ';
adv_scripting.EXEC_STATEMENT(150,statement,comments);
end;
/
-- end Step150

-- Step160
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
ALTER TABLE NORMAL
ADD CONSTRAINT NORMAL_PK PRIMARY KEY ( valor )
';
comments := 'ALTER TABLE NORMAL
ADD CONSTRAINT NORMAL_PK ';
adv_scripting.EXEC_STATEMENT(160,statement,comments);
end;
/
-- end Step160
-- Step170
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
CREATE TABLE SIMPLE
(
n°_de_habitación CHAR NOT NULL ,
código INTEGER NOT NULL ,
nombre VARCHAR2 (60) NOT NULL
)
';
comments := 'CREATE TABLE SIMPLE ';
adv_scripting.EXEC_STATEMENT(170,statement,comments);
end;
/
-- end Step170

-- Step180
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
ALTER TABLE SIMPLE
ADD CONSTRAINT SIMPLE_PK PRIMARY KEY ( código )
';
comments := 'ALTER TABLE SIMPLE
ADD CONSTRAINT SIMPLE_PK ';
adv_scripting.EXEC_STATEMENT(180,statement,comments);
end;
/
-- end Step180

-- Step190
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
CREATE TABLE VIP
(
id INTEGER NOT NULL ,
n°_de_habitación CHAR NOT NULL ,
nombre VARCHAR2 (60) NOT NULL
)
';
comments := 'CREATE TABLE VIP ';
adv_scripting.EXEC_STATEMENT(190,statement,comments);
end;
/
-- end Step190

-- Step200
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
ALTER TABLE VIP
ADD CONSTRAINT VIP_PK PRIMARY KEY ( id )
';
comments := 'ALTER TABLE VIP
ADD CONSTRAINT VIP_PK ';
adv_scripting.EXEC_STATEMENT(200,statement,comments);
end;
/
-- end Step200

-- Step210
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
ALTER TABLE NORMAL
ADD CONSTRAINT Relation_10 FOREIGN KEY
(
n°_de_habitación,
nombre
)
REFERENCES HABITACIÓN
(
n°_de_habitación,
nombre
)
ON DELETE CASCADE
';
comments := 'ALTER TABLE NORMAL
ADD CONSTRAINT Relation_10 FOREIGN KEY ';
adv_scripting.EXEC_STATEMENT(210,statement,comments);
end;
/
-- end Step210

-- Step220
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
ALTER TABLE CLIENTE
ADD CONSTRAINT Relation_10 FOREIGN KEY
(
nombre1
)
REFERENCES HOSTAL
(
nombre
)
';
comments := 'ALTER TABLE CLIENTE
ADD CONSTRAINT Relation_10 FOREIGN KEY ';
adv_scripting.EXEC_STATEMENT(220,statement,comments);
end;
/
-- end Step220

-- Step230
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
ALTER TABLE FORMA_DE_PAGO
ADD CONSTRAINT Relation_13 FOREIGN KEY
(
D.N.I1
)
REFERENCES CLIENTE
(
D.N.I
)
ON DELETE CASCADE
';
comments := 'ALTER TABLE FORMA_DE_PAGO
ADD CONSTRAINT Relation_13 FOREIGN KEY ';
adv_scripting.EXEC_STATEMENT(230,statement,comments);
end;
/
-- end Step230

-- Step240
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
ALTER TABLE EMPLEADO
ADD CONSTRAINT Relation_2 FOREIGN KEY
(
código1,
nombre11
)
REFERENCES EMPLEADO
(
código,
nombre1
)
ON DELETE CASCADE
';
comments := 'ALTER TABLE EMPLEADO
ADD CONSTRAINT Relation_2 FOREIGN KEY ';
adv_scripting.EXEC_STATEMENT(240,statement,comments);
end;
/
-- end Step240

-- Step250
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
ALTER TABLE EMPLEADO
ADD CONSTRAINT Relation_4 FOREIGN KEY
(
nombre1
)
REFERENCES HOSTAL
(
nombre
)
ON DELETE CASCADE
';
comments := 'ALTER TABLE EMPLEADO
ADD CONSTRAINT Relation_4 FOREIGN KEY ';
adv_scripting.EXEC_STATEMENT(250,statement,comments);
end;
/
-- end Step250

-- Step260
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
ALTER TABLE COCHERA
ADD CONSTRAINT Relation_5 FOREIGN KEY
(
D.N.I
)
REFERENCES CLIENTE
(
D.N.I
)
';
comments := 'ALTER TABLE COCHERA
ADD CONSTRAINT Relation_5 FOREIGN KEY ';
adv_scripting.EXEC_STATEMENT(260,statement,comments);
end;
/
-- end Step260

-- Step270
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
ALTER TABLE VIP
ADD CONSTRAINT Relation_8 FOREIGN KEY
(
n°_de_habitación,
nombre
)
REFERENCES HABITACIÓN
(
n°_de_habitación,
nombre
)
ON DELETE CASCADE
';
comments := 'ALTER TABLE VIP
ADD CONSTRAINT Relation_8 FOREIGN KEY ';
adv_scripting.EXEC_STATEMENT(270,statement,comments);
end;
/
-- end Step270

-- Step280
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
ALTER TABLE HABITACIÓN
ADD CONSTRAINT Relation_8 FOREIGN KEY
(
nombre
)
REFERENCES HOSTAL
(
nombre
)
ON DELETE CASCADE
';
comments := 'ALTER TABLE HABITACIÓN
ADD CONSTRAINT Relation_8 FOREIGN KEY ';
adv_scripting.EXEC_STATEMENT(280,statement,comments);
end;
/
-- end Step280

-- Step290
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
ALTER TABLE SIMPLE
ADD CONSTRAINT Relation_9 FOREIGN KEY
(
n°_de_habitación,
nombre
)
REFERENCES HABITACIÓN
(
n°_de_habitación,
nombre
)
ON DELETE CASCADE
';
comments := 'ALTER TABLE SIMPLE
ADD CONSTRAINT Relation_9 FOREIGN KEY ';
adv_scripting.EXEC_STATEMENT(290,statement,comments);
end;
/
-- end Step290

-- Step300
declare
statement varchar2(32000);
comments varchar2(200);
begin
statement :=
'
ALTER TABLE HABITACIÓN
ADD CONSTRAINT Relation_9 FOREIGN KEY
(
D.N.I
)
REFERENCES CLIENTE
(
D.N.I
)
';
comments := 'ALTER TABLE HABITACIÓN
ADD CONSTRAINT Relation_9 FOREIGN KEY ';
adv_scripting.EXEC_STATEMENT(300,statement,comments);
end;
/
-- end Step300

spool off
set termout on
set verify on
set feedback on

S-ar putea să vă placă și