Sunteți pe pagina 1din 23

UNIDAD 2 - BASES DE DATOS TRANSACCIONALES Y RELACIONALES

FASE 1 - MODELAMIENTO: MODELAR, DISEÑAR Y DESARROLLAR


BASES DE DATOS RELACIONALES

PARTICIPANTES:

CC: 74185505 – Leonardo José Vanegas Mojica


CC: 80108462 – Jack Dennis Quintero
CC: 79732320 – Gabriel Eduardo Ordoñez
CC: 8024974 – Hermes Castañeda Pernett
CC: 1007152988 – Harold Steven Romero

GRUPO No. 301125_2

Tutor:
MARIANO ESTEBAN ROMERO

Universidad Nacional Abierta y a Distancia – UNAD


Escuela Ciencias básicas, tecnología e ingeniería
Programa Ingeniería de Sistemas
Base de datos avanzada 301125
Periodo 16-04
Colombia
2019
TABLA DE CONTENIDO
INTRODUCCIÓN ........................................................................................................................................ 3
RESULTADO DE LA ACTIVIDAD........................................................................................................... 4
Publicación del rol escogido por el estudiante. ......................................................................... 4
Consultas con JOINS ........................................................................................................................... 4
Consultas con funciones .................................................................................................................... 8
Procedimientos Almacenados ........................................................................................................ 12
Disparadores o Trigger ..................................................................................................................... 15
Evidencias de la participación en el foro ................................................................................... 19
CONCLUSIONES ...................................................................................................................................... 21
BIBLIOGRAFÍA ......................................................................................................................................... 22
INTRODUCCIÓN

El siguiente trabajo colaborativo se presenta como evidencia del desarrollo de


la actividad: Unidad 2 fase 2 del curso Bases de datos avanzada. El manejo
avanzado de las instrucciones SQL como las instrucciones Join, los
procedimientos almacenados y los disparadores o triggers, representan
grandes herramientas avanzadas para el manejo de bases de datos.
La base teórica del presente trabajo, se fundamenta en los conceptos y
recursos puestos a disposición en el entorno del conocimiento del curso, así
mismo, para complementar los diferentes conocimientos aplicados al trabajo,
se rescataron diferentes fuentes, que permitieron incrementar el
conocimiento que fundamenta el desarrollo de la actividad.
De manera práctica, se pudo experimentar y desarrollar la actividad utilizando
la herramienta “Apex” de Oracle, lo que permitió poner en práctica el marco
conceptual y al mismo tiempo incrementar nuestras habilidades en el manejo
de las temáticas de la actividad.
El manejo de la herramienta de administración de base de datos Apex de
Oracle, proporción un nuevo reto, pues aunque la herramienta es muy
conocida, en cursos anteriores se habían manejado otros sistemas de
administración de bases de datos, esto pudo ampliar nuestra experiencia y
habilidades en una herramienta nueva y novedosa que brinda diferentes
ventajas frente a otros sistemas tradicionales.
Esperamos que el presente trabajo plasme de manera clara y concisa el
desarrollo de las actividades planteadas en la guía de evaluación, así mismo
esperamos que el presente texto pueda ser entendido de forma clara y
funcione como guía para el lector sobre estos importantes temas del manejo
de bases de datos avanzado.
RESULTADO DE LA ACTIVIDAD

Publicación del rol escogido por el estudiante.

Nombre Estudiante Rol Valoración del


Desempeño del Rol
Leonardo Vanegas Mojica Moderador 5
Jack Dennis Quintero Colaborador 5
Gabriel Eduardo Ordoñez Evaluador 5
Hermes Castatañeda Pernett Creativo 5
Harold Steven Romero Investigador 5

Importante: el grupo debe presentar todos los ejercicios independientemente de


los estudiantes que participen en el trabajo.

Consultas con JOINS

Gabriel Eduardo Ordoñez [INNER] JOIN ... ON:


Código:
SELECT
V.FEC_VENTA,
V.FEC_ENTREGA,
V.VALOR,
V.MEDIO_PAGO_ID,
VE.NOMBRE AS NOMBRE_VENDEDOR,
C.NOMBRE AS NOMBRE_CLIENTE,
C.TELEFONO AS TELEFONO_CLIENTE

FROM VENTA V
INNER JOIN VENDEDOR VE
ON VE.VENDEDOR_ID = V.ID_VENDEDOR
INNER JOIN CLIENTE C
ON C.CLIENTE_ID = V.ID_CLIENTE
Resultado de la consulta:
Gabriel Eduardo Ordoñez LEFT [OUTER] JOIN:
Código:
SELECT
V.FEC_VENTA,
V.VALOR,
VD.NOMBRE,
VD.NUMERO_VENTAS
FROM VENTA V
LEFT OUTER JOIN VENDEDOR VD
ON VD.VENDEDOR_ID = V.ID_VENDEDOR

Resultado de la consulta:

RIGHT [OUTER] JOIN: HERMES CASTAÑEDA


Código:

select "vehiculo"."vehiculo_id" as "vehiculo_id",


"vehiculo"."placa" as "placa",
"vehiculo"."f_ingreso" as "f_ingreso",
"modelo"."modelo" as "modelo",
"marca"."marca" as "marca"
FROM "marca"
RIGHT JOIN ("modelo"
RIGHT JOIN "vehiculo" ON "modelo"."modelo_id" =
"vehiculo"."modelo_id") ON "marca"."marca_id" = "vehiculo"."marca_id";

Resultado de la consulta:

FULL [OUTER] JOIN: Leonardo José Vanegas Mojica


SELECT NOMBRES, APELLIDOS, CLCIUDAD, EMAIL
FROM CLIENTE
LEFT OUTER JOIN CIUDAD ON (CIUDAD_ID=CLCIUDAD);
Resultado de la consulta:
CROSS JOIN: HERMES CASTAÑEDA
Código:
select "marca"."marca","vehiculo"."vin" from "marca" cross join "vehiculo";
Resultado de la consulta:

Gabriel Eduardo Ordonez NATURAL JOIN:


Código:
SELECT
C.CONCESIONARIO,
CI.DESCRIPCION
FROM CONCESIONARIO C
NATURAL JOIN CIUDAD CI
ORDER BY C.CONCESIONARIO,CI.DESCRIPCION

Resultado de la consulta:
[INNER] JOIN ... USING: HAROLD STEVEN ROMERO
Código:
SELECT v."vin", v."placa", m."marca"
FROM "vehiculo" v
INNER JOIN "marca" m
ON v."marca_id" = m."marca_id"

Resultado de la consulta:

Consultas con funciones

COUNT(expresión)LEONARDO JOSÉ VANEGAS MOJICA


Código:
SELECT
COUNT ( * )
FROM VENTA

SUM(expresión) JACK DENNIS QUINTERO SIERRA


Código:
SELECT SUM ( VALOR)
FROM VENTA
Resultado de la consulta:
AVG(expresión) JACK DENNIS QUINTERO SIERRA
Código:
SELECT AVG ( VALOR)
FROM VENTA
Resultado de la consulta:
MIN(expresión): HERMES CASTAÑEDA
Código:
select min("f_ingreso") FROM "vehiculo";
Resultado de la consulta:

MAX(expresión): HAROLD STEVEN ROMERO


Código:
SELECT max("f_ingreso") FROM "vehiculo";
Resultado de la consulta:

COUNT(expresión)Gabriel Eduardo Ordoñez


Código:
select count(*) Total from vendedor

SUM(expresión) Gabriel Eduardo Ordoñez


Código:
select id_vendedor, sum(valor) "Total ventas" from venta group by
id_vendedor
Resultado de la consulta:

AVG(expresión) Gabriel Eduardo Ordoñez


Código:
select vendedor_id, avg(comision) "Average" from vendedor group
by vendedor_id
Resultado de la consulta:

MIN(expresión): Gabriel Eduardo Ordoñez


Código:
select min(valor) from venta
Resultado de la consulta:
MAX(expresión): Gabriel Eduardo Ordoñez
Código:
select max(valor) from venta
Resultado de la consulta:

Procedimientos Almacenados
Procedimiento 1 JACK DENNIS QUINTERO SIERRA
Código:
CREATE PROCEDURE SP_VENTAS @VTAID NUMBER(5,0)
AS
begin

SELECT * FROM VENTA


WHERE VENTA_ID = @VTAID
END
Resultado de la consulta:
Procedimiento 2 LEONARDO JOSÉ VANEGAS MOJICA
Código:
CREATE OR REPLACE PROCEDURE VerificaVentaCarro [(carroid IN NUMBER)]
AS
begin

SELECT * FROM VENTA


WHERE VEHICULO_ID = (carroid);
END;

Resultado de la consulta:
Procedimiento 3 Gabriel Eduardo Ordoñez
Código:
CREATE OR REPLACE PROCEDURE SP_VENTAS_VENDEDOR
(
ID_VENDEDOR IN NUMBER DEFAULT 0
) AS
BEGIN
ID_VENDEDOR:= 0;
SELECT INTO
VE.NOMBRE "NOMBRE",
VE.COMISION,
VE.NUMERO_VENTAS,
VENTA_ID,
VALOR
FROM VENTA V
INNER JOIN VENDEDOR VE ON VE.VENDEDOR_ID = V.ID_VENDEDOR
WHERE VE.VENDEDOR_ID = ID_VENDEDOR;
END;
Resultado de la consulta:

Procedimiento 4. Hermes Castañeda


Código:
CREATE OR REPLACE PROCEDURE todosVehiculosVendidos
IS
BEGIN

UPDATE "vehiculo" SET vendido=1;

COMMIT;

END;
Resultado de la consulta:

Procedimiento 5: HAROLD STEVEN ROMERO


Código:
CREATE OR REPLACE PROCEDURE NumeroVentas(idCliente NUMBER) AS
BEGIN
update "cliente" set "numero_compras" = (select "numero_compras" from
"cliente" where "id_cliente" = idCliente ) + 1 where "id_cliente" = idCliente;
END;

begin
NumeroVentas(1);
end;

Resultado de la consulta:

Disparadores o Trigger
Trigger 1 JACK DENNIS QUINTERO SIERRA
Código:
CREATE OR REPLACE TRIGGER NUEVO_VENDEDOR
BEFORE INSERT
ON "VENDEDOR"
FOR EACH ROW
BEGIN
:new."numero_ventas" := 0;
END;

INSERT INTO "VENDEDOR"


("nombre","id_vendedor","comision","zona","ranking") VALUES
('JackQuintero',102,10,6,3);
Resultado de la consulta:

Trigger 2 LEONARDO JOSÉ VANEGAS MOJICA


Código:
create or replace trigger "VENTA_VERIFICA"
BEFORE
insert or update or delete on "REGISTROS_VENTA"
for each row
begin
INSERT INTO REGISTRO_VENTA (VENTA_ID, FECHA, VENDEDOR_ID)
VALUES (NEW.VENTA_ID, NOW() NEW.VENDEDOR_ID)

Resultado de la consulta:
Trigger 3 Gabriel Eduardo Ordoñez
Código:
CREATE OR REPLACE TRIGGER VALIDA_VALOR BEFORE INSERT ON
VENTA FOR EACH ROW
DECLARE
--VARIABLES
BEGIN
IF : NEW.VALOR < 0 THEN
: NEW.VALOR : = 0;
END IF;
END;
Resultado de la consulta:

Trigger 4. Hermes Castañeda


Código:
CREATE OR REPLACE TRIGGER before_insert_vehiculo
BEFORE INSERT
ON "vehiculo"
FOR EACH ROW

BEGIN

:new."vendido" := 0;

END;
Resultado de la consulta:
Trigger 5: HAROLD STEVEN ROMERO
Código:
CREATE OR REPLACE TRIGGER VEHICULOS_VENDIDOS_T2
BEFORE INSERT
ON "VEHICULOS_VENDIDOS"
FOR EACH ROW

BEGIN

:new."FECHA_CREACION" := SYSDATE;

END;

INSERT INTO
"VEHICULOS_VENDIDOS"("ID_VENTA_VEHICULO","AUTOMOVIL_ID",
"EMPLEADO_ID","CLIENTE_ID","VALOR") VALUES
(1,1,1,1,'115000000');
Select * from "VEHICULOS_VENDIDOS";
Resultado de la consulta:

Evidencias de la participación en el foro


Se espera que cada estudiante presente las evidencias de su participación en
el foro con relación al Desarrollo Fase 1 - Unidad 1, al igual que comentarios
significativos a los aportes de los demás compañeros del grupo.

Nombre Estudiante 1: JACK DENNIS QUINTERO SIERRA


Imagen 1 Imagen 2

Nombre Estudiante 2: LEONARDO JOSÉ VANEGAS MOJICA


Imagen 1 Imagen 2

Nombre Estudiante 3: Gabriel Eduardo Ordoñez


Imagen 1 Imagen 2

Nombre Hermes Castañeda:


Imagen 1 Imagen 2

Nombre Estudiante 5: Harold Romero


CONCLUSIONES

Al realizar este trabajo práctico de base de datos en la plataforma Apex


Oracle, se evidencia la definición, requerimientos y características de las
sentencias que dan lugar a las instrucciones para seleccionar, insertar,
consultar los registros y dar los permisos requeridos en una base de datos.

El desarrollo de la actividad pudo evidenciar la importancia de conocer las


instrucciones avanzadas de SQL, como Join, Campos calculados con funciones
y Triggers o disparadores. Gracias a la puesta en práctica de estas
instrucciones en la base de datos, ahora se cuenta con un marco conceptual
más avanzado sobre este importante campo del desarrollo de sistemas.

El estudio de las instrucciones avanzadas de SQL anteriormente nombradas,


evidenciaron su importancia, para la automatización y el mantenimiento de
un sistema de bases de datos ya establecido, estas técnicas y conocimientos
brindaron un gran aporte de conocimientos prácticos útiles en el campo
profesional.

Así mismo le puesta en práctica de la actividad sobre la plataforma Apex de


Oracle, impulsó la adopción de nuevas estrategias de manejo sobre un
sistema de bases de datos que no era familiar para algunos estudiantes, esto
fortaleció conocimientos que con anterioridad se tenían sobre otros sistemas
gestores de bases de datos, y brindó una nueva metodología de trabajo para
futuros desarrollos de bases de datos a nivel profesional.
BIBLIOGRAFÍA

SQL Joins. (2019). Recuperado de:


https://www.w3schools.com/sql/sql_join.asp

Buytaert, V. (2019). Oracle SQL join techniques. Recuperado de:


https://apexplained.wordpress.com/2015/01/18/oracle-sql-join-techniques/

Principales tipos de JOINS en SQL. (2019). Recuperado de:


https://diego.com.es/principales-tipos-de-joins-en-sql

Here, S., Functions, A., Functions, A., Functions, C., Functions, D.,
Functions, S. and Functions, O. (2019). Oracle SUM() Aggregate Function By
Practical Examples. [online] Oracle Tutorial. Recuperado de:
https://www.oracletutorial.com/oracle-aggregate-functions/oracle-sum/

SQL Stored Procedures. (2019). Recuperado de:


https://www.w3schools.com/sql/sql_stored_procedures.asp

Oracle PL/SQL Stored Procedure & Functions with Examples. (2019).


Recuperado de: https://www.guru99.com/subprograms-procedures-
functions-pl-sql.html

Oracle / PLSQL: Procedures. (2019). Recuperado de:


https://www.techonthenet.com/oracle/procedures.php

Developing and Using Stored Procedures. (2019). Recuperado de:


https://docs.oracle.com/cd/B28359_01/appdev.111/b28843/tdddg_procedure
s.html
Here, S., Functions, A., Functions, A., Functions, C., Functions, D.,
Functions, S., & Tutorial, P. (2019). Oracle Trigger. Recuperado de:
https://www.oracletutorial.com/plsql-tutorial/oracle-trigger/

Curso SQL. Triggers I (Disparadores). Vídeo 20. (2019). [Video].


Recuperado de: https://www.youtube.com/watch?v=kDu_5F159QA

Managing Triggers. (2019). Recuperado de:


https://docs.oracle.com/database/apex-5.1/AEUTL/managing-
triggers.htm#AEUTL167
Farina, D. (2019). SQL Server Trigger Example. Recuperado de:
https://www.mssqltips.com/sqlservertip/5909/sql-server-trigger-example/

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