You are on page 1of 23

BASES DE DATOS AVANZADA

CÓDIGO:301125A_471

Fase 1 - Modelar, diseñar y desarrollar bases de datos relacionales

Presentado a:
VANESSA CAROLINA GUTIERREZ

Entregado por:

RAUL FABIAN BAREÑO AGUDELO


Código: 1030552549
DANIEL CABRERA PINZON
Código: 1032399078
TATIANA FERNANDA GOMEZ
Código: 1030557872
FREDY FERNEY GARNICA
Código: 1

Grupo: 301125_30

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD


ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
2018-03-22
BOGOTA D.C
TABLA DE CONTENIDO

Contenido
INTRODUCCION

DESCRIPCION DE LAS ENTIDADES ................................................................................................................. 4


DESCRIPCION DE ATRIBUTOS Y RESTRICCIONES ........................................................................................... 6
MATRIZ DE RELACIONES ............................................................................................................................... 8
DESCRIPCION AMPLIADA DE LAS RELACIONES ............................................................................................. 9
DESCRIPCION SEMANTICA DE LAS RELACIONES CON EL LENGUAJE ERDISH .............................................. 10
MODELO ENTIDAD RELACION ..................................................................................................................... 11
SCRIPTS DDL ................................................................................................................................................ 12
SCRIPTS DML ............................................................................................................................................... 16
DCL PERMISOS ............................................................................................................................................ 18
LINK APORTES INDIVIDUALES Momento Intermedio Fase 1. .................................................................... 20
ORGANIZACIÓN DEL INFORME Y EVIDENCIA DE PARTICIPACIÓN ................................. 20
CONCLUSIONES ........................................................................................................................................... 21
BIBLIOGRAFIA.............................................................................................................................................. 22
INTRODUCCION

El siguiente trabajo se muestra las etapas que se deben tener en cuenta para llegar a la

solución de un determinado problema encontrado en alguna área de una organización en

este caso para la cadena de agencia de viajes , se realizara la construcción de la base de

datos donde estudiaremos el modelo de entidad de relación para conceptualizar el

problema o caso de estudio y analizando el Lenguaje SQL para construir sentencias que

involucran varias tablas generando Subconsultas todo ello para la implementación y diseño de

una base de datos relacional.


DESCRIPCION DE LAS ENTIDADES

Entidad o Tipo de Justificación, explicación Ejemplo de Ejemplares Extensión Intención


Entidad de su existencia en el (Instancias)
Mundo del Problema
Inicialmente el problema • Código Ofrecer servicios de viajes y
nos plantea una sola • Nombre alojamientos a sus clientes
agencia, pero a futuro
Agencias podemos tener varias 1000
agencias, así que para hacer
escalable la solución se
agrega esta entidad
Proporcionar los datos de • Código Contar con un punto físico
Sucursales contacto de una sucursal • Dirección 1000 donde el cliente pueda
especifica • Teléfono consultar los planes de viaje
Conectar las entidades • Código agencia Conectar las entidades en
Agencias-sucursales 5000
agencias y sucursales • Código sucursal mención
Conectar las entidades • Código sucursal Conectar las entidades en
Sucursales-turistas 5000000
sucursales y turistas • Código turista mención
Proporcionar los datos de • Código Contratar un servicio de viajes
contacto de un turista • Nombre y/o alojamiento
Turistas (cliente) • Apellidos 1000000
• Dirección
• Teléfono
Proporcionar los datos de • Código Proporcionar hospedaje al
contacto y datos generales • Nombre turista
de un hotel • Dirección
Hoteles 100000
• Ciudad
• Teléfono
• No plazas disponibles
Conectar las entidades • Código Llevar el control de la reserva
turistas y hoteles, • Código hotel y fechas correspondientes
adicionalmente indica la • Código turista
Reservas 10000000
acomodación y fechas de • Código acomodación
ingreso y salida del • Fecha de llegada
visitante • Fecha de partida
Permitir incluir varios tipos • Código 10 Indica el tipo de acomodación
Acomodaciónes
de acomodación • Nombre que tendrá el turista en el hotel
Proporcionar los datos de • No de vuelo 1000000 Medio de transporte aéreo del
un vuelo • Fecha y hora turista
• Origen
Vuelos
• Destino
• Plazas totales
• Plazas disponibles clase turística
Vincular un vuelo con un • Código 5000000 Conectar las entidades en
turista • Código turista mención
Vuelos-turistas
• No de vuelo
• Código clase
Permitir incluir varios tipos • Código 10 Indica la clase en la cual se
Clases
de clases • Nombre ubicara el turista en el vuelo
DESCRIPCION DE ATRIBUTOS Y RESTRICCIONES

Nombre Entidad Atributos Identificador Tipo de Tamaño Obligatoriedad Cardinalidad Restricciones adicionales
Único (UID) Dato (Si/No) (1 o Muchos)
Lista Rango Restricción
(Texto,
de de general
Número,
Valores Valores
Fecha)
agencias codigo X N 4 SI 1
nombre T 50 NO 1
sucursales codigo X N 4 SI 1
direccion T 50 NO 1
telefono N 15 NO 1
agencias_sucursales codigo_agencia X N 4 SI 1
codigo_sucursal X N 4 SI 1
sucursales_turistas codigo_sucursal X N 4 SI 1
codigo_turista X N 4 SI 1
turistas codigo X N 4 SI 1
nombre T 50 NO 1
apellidos T 50 NO 1
direccion T 50 NO 1
telefono N 15 NO 1
hoteles codigo X N 4 SI 1
nombre T 50 NO 1
direccion T 50 NO 1
ciudad T 20 NO 1
telefono N 15 NO 1
plazas_disponibles N 3 SI 1
reservas codigo X N 4 SI 1
codigo_hotel N 4 SI 1
codigo_turista N 4 SI 1
codigo_acomodacion N 2 SI 1
fecha_ingreso F SI 1
fecha_salida F SI 1 fecha_salida
>
fecha_ingreso
acomodaciónes codigo X N 2 SI 1
nombre T 20 NO 1
vuelos numero_vuelo X T 4 SI 1
fecha_hora F SI 1
origen T 30 SI 1
destino T 30 SI 1
plazas_totales N 3 SI 1
plazas_disponibles_clase_turística N 3 SI 1
vuelos _turistas codigo X N 4 SI 1
codigo_turista N 4 SI 1
numero_vuelo T 4 SI 1
codigo_clase N 2 SI 1
clases codigo X N 2 SI 1
nombre T 30 NO 1
MATRIZ DE RELACIONES

Agencias Sucursales Turistas Hoteles


Agencias R1
Sucursales R2
Turistas R3
Vuelos R4
DESCRIPCION AMPLIADA DE LAS RELACIONES

Rela Entidad 1 Rol Entidad 2 Pregunta para Rta.Opc. Pregunta para determinar Rta. Grado Ayuda a Observac
ción determinar Cardinalidad Card. Identifica ión/Restri
Opcionalidad (Preguntar CUANTO ) r cciones/A
(Preguntar si está entidades tributos
obligado) Participa
ntes
R1 Agencias Dirige.. Sucursales Una agencia debe tener No Una agencia cuantas Muchos 1:M SI Llave
una sucursal asociada? sucursales puede tener compuesta
asociadas?
Sucursales Dirigido.. Agencias Una sucursal debe estar Si Una sucursal a cuantas 1
asociada a una agencia? agencias puede estar
asociada?
R2 Sucursales Afilian.. Turistas Una sucursal debe tener No Una sucursal cuantos turistas Muchos N:M SI Llave
turistas asociados? puede tener asociados? compuesta
Turistas Afiliado.. Sucursales Un turista debe estar Si Un turista a cuantas agencias Muchos
asociado a una agencia? puede estar asociado?
R3 Hoteles Hospeda.. Turistas Un hotel debe tener No Un hotel cuantos turistas Muchos SI
turistas asociados? puede tener asociados? N:M
Turistas Contratan.. Hoteles Un turista debe estar No Un turista a cuantas hoteles Muchos
asociado a un hotel? puede estar asociado?
R4 Vuelos Llevan.. Turistas Un vuelo debe tener Si Un vuelo cuantos turistas Muchos SI
turistas asociados? puede tener asociados? N:M
Turistas Abordan.. Vuelos Un turista debe estar No Un turista a cuantas vuelos Muchos
asociado a un vuelo? puede estar asociado?
DESCRIPCION SEMANTICA DE LAS RELACIONES CON EL LENGUAJE ERDISH

Rela Entidad 1 Rol Entidad 2 Pregunta para Rta.Opc. Pregunta para Rta. Descripción de la Relación de acuerdo con el
ción determinar determinar Card. ERDish
Opcionalidad Cardinalidad
(Preguntar si está (Preguntar CUANTO )
obligado)
R1 Agencias Dirige.. Sucursales Una agencia debe tener No Una agencia cuantas Muchos
una sucursal asociada? sucursales puede tener
asociadas?
Sucursales Dirigido.. Agencias Una sucursal debe estar Si Una sucursal a cuantas 1
asociada a una agencia? agencias puede estar
asociada?
R2 Sucursales Afilian.. Turistas Una sucursal debe tener No Una sucursal cuantos Muchos
turistas asociados? turistas puede tener
asociados?
Turistas Afiliado.. Sucursales Un turista debe estar Si Un turista a cuantas Muchos
asociado a una agencias puede estar
agencia? asociado?
R3 Hoteles Hospeda.. Turistas Un hotel debe tener No Un hotel cuantos turistas Muchos
turistas asociados? puede tener asociados?
Turistas Contratan.. Hoteles Un turista debe estar No Un turista a cuantas Muchos
asociado a un hotel? hoteles puede estar
asociado?
R4 Vuelos Llevan.. Turistas Un vuelo debe tener Si Un vuelo cuantos turistas Muchos
turistas asociados? puede tener asociados?
Turistas Abordan.. Vuelos Un turista debe estar No Un turista a cuantas Muchos
asociado a un vuelo? vuelos puede estar
asociado?
MODELO ENTIDAD RELACION
SCRIPTS DDL

CREATE TABLE "AGENCIAS" ( "CODIGO" NUMBER(4,0) GENERATED BY DEFAULT


AS IDENTITY,
"NOMBRE" VARCHAR2(50),
constraint "AGENCIAS_PK" PRIMARY KEY ("CODIGO") USING INDEX
ENABLE );
/
CREATE table "SUCURSALES" ( "CODIGO" NUMBER(4,0) GENERATED BY DEFAULT
AS IDENTITY,
"DIRECCION" VARCHAR2(50),
"TELEFONO" NUMBER(15,0),
constraint "SUCURSALES_PK" primary key ("CODIGO"));
/
CREATE table "AGENCIAS_SUCURSALES" (
"CODIGO_AGENCIA" NUMBER(4,0),
"CODIGO_SUCURSAL" NUMBER(4,0));
ALTER TABLE "AGENCIAS_SUCURSALES" add constraint
"AGENCIAS_SUCURSALES_PK" primary key
("CODIGO_AGENCIA","CODIGO_SUCURSAL");
/
ALTER TABLE "AGENCIAS_SUCURSALES" ADD CONSTRAINT "SUCURSALES_FK"
FOREIGN KEY ("CODIGO_SUCURSAL")
REFERENCES "SUCURSALES" ("CODIGO");

/
ALTER TABLE "AGENCIAS_SUCURSALES" ADD CONSTRAINT "AGENCIAS_FK"
FOREIGN KEY ("CODIGO_AGENCIA")
REFERENCES "AGENCIAS" ("CODIGO");
/
CREATE table "TURISTAS" ( "CODIGO" NUMBER(4,0) GENERATED BY DEFAULT
AS IDENTITY,
"NOMBRE" VARCHAR2(30),
"APELLIDOS" VARCHAR2(30),
"DIRECCION" VARCHAR2(50),
"TELEFONO" NUMBER(15,0),
constraint "TURISTAS_PK" primary key ("CODIGO"));
/
CREATE table "TURISTAS_SUCURSALES" (
"CODIGO_SUCURSAL" NUMBER(4,0) NOT NULL,
"CODIGO_TURISTA" NUMBER(4,0) NOT NULL);
/
alter table "TURISTAS_SUCURSALES" add constraint "TURISTAS_SUCURSALES_PK"
primary key ("CODIGO_SUCURSAL","CODIGO_TURISTA");
/

CREATE table "VUELOS" ( "NUMERO_VUELO" NUMBER(4,0) GENERATED BY


DEFAULT AS IDENTITY,
"FECHA_HORA" DATE NOT NULL,
"ORIGEN" VARCHAR2(30) NOT NULL,
"DESTINO" VARCHAR2(30) NOT NULL,
"PLAZAS_TOTALES" NUMBER(3,0),
"PLAZAS_DISP_CLASE_TURISTICA" NUMBER(3,0),
constraint "VUELOS_PK" primary key ("NUMERO_VUELO"));
/
CREATE table "CLASES" (
"CODIGO" NUMBER(2,0) GENERATED BY DEFAULT AS IDENTITY,
"NOMBRE" VARCHAR2(30),
constraint "CLASES_PK" primary key ("CODIGO"));
/
CREATE table "TURISTAS_VUELOS" (
"CODIGO" NUMBER(4,0) GENERATED BY DEFAULT AS IDENTITY,
"CODIGO_TURISTA" NUMBER(4,0) NOT NULL,
"NUMERO_VUELO" NUMBER(4,0) NOT NULL,
"CODIGO_CLASE" NUMBER(2,0) NOT NULL,
constraint "TURISTAS_VUELOS_PK" primary key ("CODIGO"));
/

ALTER TABLE "TURISTAS_VUELOS" ADD CONSTRAINT


"TURISTAS_VUELOS_TURISTAS_FK"
FOREIGN KEY ("CODIGO_TURISTA")
REFERENCES "TURISTAS" ("CODIGO");
/
ALTER TABLE "TURISTAS_VUELOS" ADD CONSTRAINT
"TURISTAS_VUELOS_VUELOS_FK"
FOREIGN KEY ("NUMERO_VUELO")
REFERENCES "VUELOS" ("NUMERO_VUELO");
/
ALTER TABLE "TURISTAS_VUELOS" ADD CONSTRAINT
"TURISTAS_VUELOS_CLASES_FK"
FOREIGN KEY ("CODIGO_CLASE")
REFERENCES "CLASES" ("CODIGO");
/
CREATE table "ACOMODACIONES" (
"CODIGO" NUMBER(2,0) GENERATED BY DEFAULT AS IDENTITY,
"NOMBRE" VARCHAR2(30),
constraint "ACOMODACIONES_PK" primary key ("CODIGO"));
/

CREATE table "HOTELES" (


"CODIGO" NUMBER(4,0) GENERATED BY DEFAULT AS IDENTITY,
"NOMBRE" VARCHAR2(30),
"DIRECCION" VARCHAR2(50),
"CIUDAD" VARCHAR2(30),
"TELEFONO" NUMBER(15,0),
"PLAZAS_DISPONIBLES" NUMBER(3,0),
constraint "HOTELES_PK" primary key ("CODIGO"));
/
CREATE table "RESERVAS" (
"CODIGO" NUMBER(4,0) GENERATED BY DEFAULT AS IDENTITY,
"CODIGO_TURISTA" NUMBER(4,0) NOT NULL,
"CODIGO_HOTEL" NUMBER(4,0) NOT NULL,
"CODIGO_ACOMODACION" NUMBER(2,0) NOT NULL,
"FECHA_INGRESO" DATE NOT NULL,
"FECHA_SALIDA" DATE,
constraint "RESERVAS_PK" primary key ("CODIGO"));
/

ALTER TABLE "RESERVAS" ADD CONSTRAINT "RESERVAS_TURISTAS_FK"


FOREIGN KEY ("CODIGO_TURISTA")
REFERENCES "TURISTAS" ("CODIGO");
/
ALTER TABLE "RESERVAS" ADD CONSTRAINT "RESERVAS_HOTELES_FK"
FOREIGN KEY ("CODIGO_HOTEL")
REFERENCES "HOTELES" ("CODIGO");
/
ALTER TABLE "RESERVAS" ADD CONSTRAINT
"RESERVAS_ACOMODACIONES_FK"
FOREIGN KEY ("CODIGO_ACOMODACION")
REFERENCES "ACOMODACIONES" ("CODIGO");
/

SCRIPTS DML

INSERT INTO AGENCIAS VALUES(1, 'Coosintour');


INSERT INTO AGENCIAS VALUES(2, 'Agencia de viajes Sur');
INSERT INTO AGENCIAS VALUES(3, 'Agencia de viajes Este');
INSERT INTO AGENCIAS VALUES(4, 'Agencia de viajes Norte');
INSERT INTO AGENCIAS VALUES(5, 'Agencia de viajes Oeste');

INSERT INTO SUCURSALES VALUES(1, 'Cra 5 No 6 - 70', 3114568745);


INSERT INTO SUCURSALES VALUES(2, 'Cra 45 No 12 - 45', 3124864845);
INSERT INTO SUCURSALES VALUES(3, 'Calle 15 No 78 - 12', 3104124845);
INSERT INTO SUCURSALES VALUES(4, 'Calle 20 No 47 - 11', 3156874512);
INSERT INTO SUCURSALES VALUES(5, 'Calle 11 No 25 - 84', 3204587555);

INSERT INTO AGENCIAS_SUCURSALES VALUES(1, 2);


INSERT INTO AGENCIAS_SUCURSALES VALUES(1, 3);
INSERT INTO AGENCIAS_SUCURSALES VALUES(2, 1);
INSERT INTO AGENCIAS_SUCURSALES VALUES(2, 2);
INSERT INTO AGENCIAS_SUCURSALES VALUES(3, 5);

INSERT INTO TURISTAS VALUES (2345, 'Juan ', 'Perez', 'Calle 100 3-4', '2096545');
INSERT INTO TURISTAS VALUES (5736, 'Juliana', 'Lopez', 'Cra 4 55-34', '3875609');
INSERT INTO TURISTAS VALUES (6354, 'David', 'Diaz', 'Calle 3 54-75', '4767675');
INSERT INTO TURISTAS VALUES (6456, 'Fernando', 'Gomez', 'Cra 66 34-37', '5875858');
INSERT INTO TURISTAS VALUES (1354, 'Camilo', 'Gomez', 'Cra 66 34-37', '5875858');

INSERT INTO TURISTAS_SUCURSALES VALUES (1, 2345);


INSERT INTO TURISTAS_SUCURSALES VALUES (2, 5736);
INSERT INTO TURISTAS_SUCURSALES VALUES (2, 6354);
INSERT INTO TURISTAS_SUCURSALES VALUES (3, 6456);
INSERT INTO TURISTAS_SUCURSALES VALUES (5, 1354);

INSERT INTO VUELOS VALUES (1020, '2018-03-04T12:08:56.235-0700', 'BOGOTA',


'MEDELLIN', 200, 150);
INSERT INTO VUELOS VALUES (1030, '2018-03-03T15:20:57.235-0700', 'BOGOTA',
'CALI', 250, 100);
INSERT INTO VUELOS VALUES (1010, '2018-03-02T10:10:58.235-0700', 'CARTAGENA',
'CALI', 250, 100);
INSERT INTO VUELOS VALUES (1040, '2018-03-01T18:32:59.235-0700', 'CARTAGENA',
'BOGOTA', 150, 20);
INSERT INTO VUELOS VALUES (1050, '2018-03-05T17:30:00.235-0700', 'CALI',
'BOGOTA', 150, 20);

INSERT INTO CLASES VALUES (1, 'ECONOMICA');


INSERT INTO CLASES VALUES (2, 'NORMAL');
INSERT INTO CLASES VALUES (3, 'EJECUTIVA');
INSERT INTO CLASES VALUES (4, 'VIP');
INSERT INTO TURISTAS_VUELOS VALUES (1, 2345, 1050, 2);
INSERT INTO TURISTAS_VUELOS VALUES (2, 5736, 1040, 4);
INSERT INTO TURISTAS_VUELOS VALUES (3, 1354, 1030, 4);
INSERT INTO TURISTAS_VUELOS VALUES (3, 1354, 1020, 1);

INSERT INTO HOTELES VALUES (100, 'Hotel Marriott', 'Calle 73 # 8-60', 'Bogota',
'2334455', 200);
INSERT INTO HOTELES VALUES (200, 'HolydayInn', 'Calle 26 69-D-91', 'Bogota', '4345667',
150);
INSERT INTO HOTELES VALUES (300, 'Hampton', 'cra 4 34-55', 'Cartagena', '3776654', 250);
INSERT INTO HOTELES VALUES (400, 'DannCarton', 'calle 6 34-23', 'Barranquilla',
'8766754', 250);
INSERT INTO HOTELES VALUES (500, 'Intercontinental', 'calle 2 87-23', 'Medellin',
'3444554', 100);

INSERT INTO ACOMODACIONES VALUES (1, 'SENCILLA');


INSERT INTO ACOMODACIONES VALUES (2, 'DOBLE');

INSERT INTO RESERVAS VALUES (1, 1354, 200, 1, '2018-02-20T11:25:00.235-0700',


'2018-02-21T11:25:00.235-0700');
INSERT INTO RESERVAS VALUES (2, 5736, 400, 2, '2018-02-22T15:50:00.235-0700',
'2018-02-24T15:50:00.235-0700');

DCL PERMISOS
Usuario administrador
CREATE USER 'admin' IDENTIFIED BY '123456789';

GRANT ALL ON `AgenciaViajes`.* TO 'admin';


GRANT ALL ON TABLE `AgenciaViajes`.`Hotel` TO 'admin';
GRANT SELECT ON TABLE `AgenciaViajes`.* TO 'admin';
GRANT SELECT, INSERT, TRIGGER ON TABLE `AgenciaViajes`.* TO 'admin';
GRANT SELECT, INSERT, TRIGGER, UPDATE, DELETE ON TABLE `AgenciaViajes`.*TO
'admin';
GRANT EXECUTE ON ROUTINE `AgenciaViajes`.*TO 'admin';

Usuario de consulta
CREATE USER 'consulta' IDENTIFIED BY 'consulta123';

GRANT SELECT ON TABLE `AgenciaViajes`.*TO 'consulta';


LINK APORTES INDIVIDUALES Momento Intermedio Fase 1.

https://drive.google.com/file/d/192xv-XTkpnMi_MAo8Bl2-ogllVsWGUNK/view?usp=sharing

ORGANIZACIÓN DEL INFORME Y EVIDENCIA DE PARTICIPACIÓN EN


LOS TEMAS DE FORO DE LA FASE

participantes Tema No. Fechas de ¿Rangos de Pertinencia ¿Aporte con


Participación participación Fechas? Oportunidad Referencia?
(Si/No)
Daniel Cabrera 1 27-02 ok Si

Tatiana Gómez Actividad 2. 1 10-03 Ok si


Web Conference
Raul Bareño 2 06-03 06 al 10 de marzo ok si
1
Fredy Garnica 1 18-03 regular si

Daniel Cabrera Actividad 4. 1 27-02 ok Si


Tatiana Gómez Web Conference 0
Raul Bareño 2 1 21-03 ok si
Fredy Garnica 1 18-03 ok si
Daniel Cabrera Actividad 7. 0

Tatiana Gómez Integración de 2 19-03 19 al 21 de marzo ok Si


los Informes 2 21-03 ok si
Raul Bareño
Parciales
Fredy Garnica 0
CONCLUSIONES

por medio de este trabajo pudimos identificar los principales momentos del proceso de diseño de

bases de datos relacionales y todas sus etapas del proceso: análisis o modelado entidad relación o

modelado conceptual diseño o modelado relacional o diseño logico/físico y desarrollo

implementacion o diseño fisico aplicando metodologías y tecnología o recursos correspondientes

para aplicar el lenguaje SQL e implemetar la base de datos y realizar consultas.


BIBLIOGRAFIA

Presentación Unidad 1
Ibo Cerra, Unad. ( 2017) Modelo de Datos Entidad Relación,
Modelo Entidad Relación. Modelo Lógico o
Conceptual. https://ibocerra.wixsite.com/unadbdbasico

Montovelle Andres , Ordoñez Jaime , (2012) Tutorial de Oracle Application Express 3.2.1
(APEX) con generación de un sistema prototipo Call center. Cuenca,
http://docplayer.es/6688622-Universidad-del-azuay.html

Sosa Flores, M. & López Vázquez, M. (2007) Diseño de bases


de datos relacionales. Córdoba, AR: El Cid Editor.
http://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/reader.act
ion?ppg=4&docID=3175111&tm=1516383203753

You might also like