Proyectoequipo5.docx

  • Uploaded by: Juan Pablo Badal Arias
  • 0
  • 0
  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Proyectoequipo5.docx as PDF for free.

More details

  • Words: 6,597
  • Pages: 107
Programación en Bases de Datos

Profesor: Dr. Herman Aguilar Mayo Estudiante:  Juan Pablo Badal Arias Materia: Programación en Bases de Datos (Grupo 6A8) Fecha: 25/03/2019 División Académica: Informática y Sistemas Carrera Profesional: Licenciado en Sistemas Computacionales

Ejercicios

1

Programación en Bases de Datos

2

Contenido CAPITULO 1 ............................................................................................................................ 4 Suma (n1, n2) ............................................................................................................................ 4 ANEXO A. Suma .................................................................................................................... 5 Es primo (n)............................................................................................................................... 6 ANEXO B. Primo .................................................................................................................... 7 Factorial (n) ............................................................................................................................... 8 ANEXO C. Factorial ............................................................................................................... 9 Factorial Recursiva (n) .......................................................................................................... 10 ANEXO D. Factorial Recursiva ............................................................................................ 11 Sumatoria (n) .......................................................................................................................... 12 ANEXO E. Sumatoria ........................................................................................................... 13 Sumatoria Recursiva (n) ........................................................................................................ 14 ANEXO F. Sumatoria Recursiva .......................................................................................... 15 Es par (n) ................................................................................................................................. 16 ANEXO G. Par ...................................................................................................................... 17 Máximo Común Divisor (n1, n2) .......................................................................................... 18 ANEXO H. Máximo Común Divisor .................................................................................... 19 Máximo Común Divisor Recursivo (n1, n2) ........................................................................ 20 ANEXO I. Máximo Común Divisor Recursivo .................................................................... 21 Es Palíndromo ......................................................................................................................... 22 ANEXO J. Palíndromo .......................................................................................................... 23 Vocal Interna .......................................................................................................................... 24 ANEXO K. Vocal Interna ..................................................................................................... 25

Ejercicios

Programación en Bases de Datos

3

Consonante Interna ................................................................................................................ 26 ANEXO L. Consonante Interna ............................................................................................ 27 CAPITULO 2 .......................................................................................................................... 28 Modelo ..................................................................................................................................... 28 DDL ....................................................................................................................................... 29 CAPITULO 3 .......................................................................................................................... 41 Esquema .................................................................................................................................. 41 PRIMERA CORRIDA .......................................................................................................... 46 SEGUNDA CORRIDA ......................................................................................................... 59 CAPITULO 4 .......................................................................................................................... 71 Autenticar ................................................................................................................................ 71 Especificación........................................................................................................................ 73 PRIMERA CORRIDA .......................................................................................................... 80 SEGUNDA CORRIDA CON PASSWORD INCORRECTO .............................................. 84 Curp1 ....................................................................................................................................... 88 Especificación........................................................................................................................ 90 CORRIDA DE LA CURP ..................................................................................................... 95 Curp2 ....................................................................................................................................... 97 Especificación........................................................................................................................ 99 CALCULAR CURP DE LA MUJER ................................................................................. 104 CALCULAR CURP DEL HOMBRE ................................................................................. 106

Ejercicios

Programación en Bases de Datos CAPITULO 1 Suma (n1, n2) create or replace FUNCTION SUMAR_NUMEROS ( Z IN NUMBER , W IN NUMBER ) RETURN NUMBER AS

/*Se declaran las variables*/ Calcular NUMBER;

BEGIN

/*Se declara la operación*/ Calcular := Z + W;

/*Returna el valor*/ RETURN calcular; END SUMAR_NUMEROS;

Ejercicios

4

Programación en Bases de Datos ANEXO A. Suma

Ejercicios

5

Programación en Bases de Datos

Es primo (n) create or replace FUNCTION PRIMO ( Z IN NUMBER ) RETURN VARCHAR2 AS var1 varchar(20); BEGIN /*Se declara una condición donde a Z sera menos 1*/ FOR I IN 2..Z-1 LOOP /*Devuelve el resto de dividir Z entre I*/ IF MOD(Z,I)=0 THEN VAR1:='NO ES PRIMO'; /*Goto es una sentencia que desvia el flujo de la ejecución*/ GOTO paso1; ELSE VAR1:='ES PRIMO'; /*Se finaliza el ciclo FOR Y IF*/ END IF; END LOOP; /*Termina la ejecución de GOTO*/ <<paso1>> RETURN VAR1; END PRIMO;

Ejercicios

6

Programación en Bases de Datos ANEXO B. Primo

Ejercicios

7

Programación en Bases de Datos

8

Factorial (n) create or replace FUNCTION FACTORIAL ( Z IN NUMBER ) RETURN NUMBER AS fx int; BEGIN /*Inicializa con valor de 1 fx*/ fx:=1; /*Se declara un ciclo for hasta donde llegue Z sera multiplicado por fx*/ for i in 1..Z loop fx := fx * i; end loop; /*returna fx*/ RETURN fx; END FACTORIAL;

Ejercicios

Programación en Bases de Datos ANEXO C. Factorial

Ejercicios

9

Programación en Bases de Datos

Factorial Recursiva (n) create or replace FUNCTION FACTORIAL_RECURSIVA ( V_NUM IN NUMBER ) RETURN NUMBER AS

BEGIN

/*Si V_NUM es menor o igual que 1 va returna 1*/ IF (V_NUM<=1) THEN RETURN 1;

/*Si no se cumple la condición de arriba, entonces se hace la siguiente operación*/ ELSE RETURN V_NUM*FACTORIAL_RECURSIVA(V_NUM-1); END IF; END FACTORIAL_RECURSIVA;

Ejercicios

10

Programación en Bases de Datos ANEXO D. Factorial Recursiva

Ejercicios

11

Programación en Bases de Datos

Sumatoria (n) create or replace FUNCTION SUMATORIA ( SUMA IN NUMBER ) RETURN NUMBER AS

resul NUMBER;

BEGIN resul := 0; /*Se invoca el ciclo donde SUMA es el resultado esperado, para que sea sumado asi mismo*/ FOR i in 1..SUMA loop resul := resul + i;

/*Se finaliza el for y returna el valor*/ end loop; RETURN resul;

END SUMATORIA;

Ejercicios

12

Programación en Bases de Datos

ANEXO E. Sumatoria

Ejercicios

13

Programación en Bases de Datos

Sumatoria Recursiva (n) create or replace FUNCTION SUMATORIA_RECURSIVA ( N_NUM IN NUMBER ) RETURN NUMBER AS

BEGIN

/*Si N_NUM es menor o igual que 1 va returna 1*/ IF (N_NUM<=1) THEN RETURN 1;

/*Si no se cumple la condición de arriba, entonces se hace la operación*/ ELSE

/*Se llama asi mismo la función*/ RETURN N_NUM+SUMATORIA_RECURSIVA (N_NUM-1); END IF; END SUMATORIA_RECURSIVA;

Ejercicios

14

Programación en Bases de Datos ANEXO F. Sumatoria Recursiva

Ejercicios

15

Programación en Bases de Datos

Es par (n) create or replace FUNCTION ES_PAR ( Z IN NUMBER ) RETURN VARCHAR AS res varchar(20); BEGIN

/*Se declara la condición donde cada numero de Z se divide en 2*/ IF MOD (Z, 2)=0 then /*Mostrara el mensaje'*/ res:='Es par';

else /*En el caso que no se cumpla sera impar por default*/ res:='Es impar'; end if; RETURN res; END ES_PAR;

Ejercicios

16

Programación en Bases de Datos ANEXO G. Par

Ejercicios

17

Programación en Bases de Datos

Máximo Común Divisor (n1, n2) create or replace FUNCTION MCD ( Z IN NUMBER , Y IN NUMBER ) RETURN NUMBER AS BEGIN /*Son condiciones donde Y y Z no deben ser 0 y si es asi returnara el mismo*/ If Y = 0 Then Return Z; Else If Z = 0 Then Return Y; /*Donde Z debe ser mayor o igual a Y para determinar el MCD de los numeros teclados*/ Else If Z >= Y Then Return MCD(Z - Y, Y); Else Return MCD(Z, Y - Z); End if; End if; End if; END MCD;

Ejercicios

18

Programación en Bases de Datos ANEXO H. Máximo Común Divisor

Ejercicios

19

Programación en Bases de Datos

Máximo Común Divisor Recursivo (n1, n2) create or replace FUNCTION MCD_RECURSIVO ( Z IN NUMBER , Y IN NUMBER ) RETURN VARCHAR2 AS MCD NUMBER; BEGIN /*Si Z es menor que Y entonces se divide*/ If Z < Y Then Return MCD_RECURSIVO (Y, Z); Else /*Si Y es igual a 0, returna 0*/ If Y = 0 Then Return Z; Else /*Sino returna asi mismo*/ Return MCD_RECURSIVO (Y, MOD (Z, Y)); End if; End if; END MCD_RECURSIVO;

Ejercicios

20

Programación en Bases de Datos ANEXO I. Máximo Común Divisor Recursivo

Ejercicios

21

Programación en Bases de Datos

Es Palíndromo create or replace FUNCTION PALINDROMO ( STR IN VARCHAR2 ) RETURN VARCHAR2 AS l VARCHAR2(50); t VARCHAR2(50); resul varchar2(50); len varchar2(50); BEGIN len := length(str); FOR i IN REVERSE 1..len LOOP l := Substr(STR, i, 1); /*aquí || Se utilizan para la concatenación de cuerdas*/ t := t ||'' ||l; END LOOP; /*Si t es igual a STR entonces es palindromo sino sera lo contrario*/ IF t = STR THEN resul := ('Es palindromo'); ELSE resul :=('No palindromo'); END IF; return resul; END PALINDROMO;

Ejercicios

22

Programación en Bases de Datos ANEXO J. Palíndromo

Ejercicios

23

Programación en Bases de Datos

Vocal Interna create or replace FUNCTION VOCALINTERNA ( NOMBRE IN VARCHAR2 ) RETURN VARCHAR2 AS C CHAR; BEGIN /*Va comenzar en la posición dos*/ FOR i IN 2..Length(NOMBRE) LOOP c := Substr(NOMBRE, i, 1);

/*Compruebe si el carácter actual es vocal*/ IF c IN ( 'A', 'E', 'I', 'O', 'U' ) OR c IN ( 'a', 'e', 'i', 'o', 'u' ) THEN

RETURN c; END IF; END LOOP; END VOCALINTERNA;

Ejercicios

24

Programación en Bases de Datos ANEXO K. Vocal Interna

Ejercicios

25

Programación en Bases de Datos

Consonante Interna create or replace FUNCTION COSONANTEINTERNA ( NOMBRE IN VARCHAR2 ) RETURN VARCHAR2 AS C CHAR; BEGIN /*Va comenzar en la posición dos*/ FOR i IN 2..Length(NOMBRE) LOOP c := Substr(NOMBRE, i, 1);

/*Compruebe si el carácter actual es cosonante*/ IF c IN ( 'B', 'C', 'D', 'F', 'G','H','J','K','L','M','N','Ñ','P','Q', 'R','S','T','V','W','X','Y','Z' ) OR c IN ( 'b', 'c', 'd', 'f', 'g','h','j','k','l','m','n','ñ','p','q', 'r','s','t','v','w','x','y','z' ) THEN RETURN c; END IF; END LOOP; END COSONANTEINTERNA;

Ejercicios

26

Programación en Bases de Datos ANEXO L. Consonante Interna

Ejercicios

27

Programación en Bases de Datos CAPITULO 2 Modelo

Ejercicios

28

Programación en Bases de Datos

29

DDL -- Generado por Oracle SQL Developer Data Modeler 18.4.0.339.1532 -en: 2019-03-08 12:31:33 CST -sitio: Oracle Database 11g -tipo: Oracle Database 11g

CREATE TABLE actores ( actor_id NUMBER(10) NOT NULL, nombre VARCHAR2(50) NOT NULL, apellido_paterno VARCHAR2(50), apellido_materno VARCHAR2(50) ); COMMENT ON TABLE actores IS 'Es el actor principal de la pelÝcula, por el c·al es necesario saber el dato del protagonista.'; COMMENT ON COLUMN actores.actor_id IS 'Esta columna es la llave primaria de la tabla actor. Sera llenada con una secuencia.'; COMMENT ON COLUMN actores.nombre IS 'Este es el nombre del actor. Debe de ir en may·scula.'; COMMENT ON COLUMN actores.apellido_paterno IS 'Este es el apellido paterno del actor. Debe de ir en may·scula.'; COMMENT ON COLUMN actores.apellido_materno IS 'Este es el apellido materno del actor. Debe de ir en may·scula.'; ALTER TABLE actores ADD CONSTRAINT actores_ck_apellidos CHECK ( apellido_paterno IS NOT NULL OR apellido_materno IS NOT NULL ); ALTER TABLE actores ADD CONSTRAINT actores_pk PRIMARY KEY ( actor_id ); CREATE TABLE asientos ( asiento_id NUMBER(10) NOT NULL, fila VARCHAR2(10) NOT NULL, numero NUMBER(10) NOT NULL, sala_id NUMBER(10) NOT NULL ); COMMENT ON TABLE asientos IS 'Registro de los asientos que seran ocupados por los clientes.';

Ejercicios

30

Programación en Bases de Datos COMMENT ON COLUMN asientos.asiento_id IS 'Esta columna es la llave primaria de la tabla asiento. Sera llenada con una secuencia.'; COMMENT ON COLUMN asientos.fila IS 'La fila estara agrupada por numeros, por el c·al el cliente va a eligir c·al le parece adecuada.'; COMMENT ON COLUMN asientos.numero IS 'Es el n·mero de fila que va a ocupar el cliente.'; COMMENT ON COLUMN asientos.sala_id IS 'Este el tipo de sala que el cliente quiere ver, ya sea en 2D, 3D et...'; ALTER TABLE asientos ADD CONSTRAINT asientos_pk PRIMARY KEY ( asiento_id ); CREATE TABLE boletos ( boleto_id NUMBER(10) NOT fecha DATE NOT NULL, precio NUMBER(20) NOT funcion_id NUMBER(10) NOT asiento_id NUMBER(10) NOT pelicula_id NUMBER(10) NOT cliente_id NUMBER(10) NOT );

NULL, NULL, NULL, NULL, NULL, NULL

COMMENT ON TABLE boletos IS 'Aqui sera registrado los boletos que fueron comprados o Internet.';

reservados por

COMMENT ON COLUMN boletos.boleto_id IS 'Esta columna es la llave primaria de la tabla boleto. Sera llenada con una secuencia.'; COMMENT ON COLUMN boletos.fecha IS 'Fecha en la que el boleto fue comprando para darle acceso total al cliente.'; COMMENT ON COLUMN boletos.precio IS 'Precio de la pelÝcula que se esta comprando el cliente.'; COMMENT ON COLUMN boletos.funcion_id IS 'Es el registro de la pelÝcula de tal manera que el cliente allß elegido.'; COMMENT ON COLUMN boletos.asiento_id IS 'Asiento elegido por el cliente.'; COMMENT ON COLUMN boletos.pelicula_id IS 'Nombre de la pelÝcula que el cliente eligi¾

en el boleto.';

COMMENT ON COLUMN boletos.cliente_id IS 'Nombre dek cliente que esta comprando el boleto.';

Ejercicios

Programación en Bases de Datos

31

ALTER TABLE boletos ADD CONSTRAINT boletos_ck_precio CHECK ( precio >= 0 ); ALTER TABLE boletos ADD CONSTRAINT boletos_pk PRIMARY KEY ( boleto_id ); CREATE TABLE cines cine_id nombre direccion telefono municipio_id );

( NUMBER(10) NOT NULL, VARCHAR2(50) NOT NULL, VARCHAR2(100) NOT NULL, NUMBER(10) NOT NULL, NUMBER(10) NOT NULL

COMMENT ON TABLE cines IS 'Aqui se registra la informaci¾n del cine para dar su localizaci¾n de ubicaci¾n para el cliente.'; COMMENT ON COLUMN cines.cine_id IS 'Esta columna es la llave primaria de la tabla cine. Sera llenada con una secuencia.'; COMMENT ON COLUMN cines.nombre IS 'Es el nombre del cine en la c·al elige el cliente para ver la funci¾n de la pelÝcula que desea ver. Debe de ir en may·scula.' ; COMMENT ON COLUMN cines.direccion IS 'Esta es la direcci¾n en donde se localiza el ciine para ver la pelÝcula.'; COMMENT ON COLUMN cines.telefono IS 'Este es el n·mero del cine para contactarlo. Debe de ir solo 10 digÝtos en este caso.'; COMMENT ON COLUMN cines.municipio_id IS 'Es lugar en donde el cine se encuentra ubicado por ello se debe saber el municipio.'; ALTER TABLE cines ADD CONSTRAINT telefono_ck_1 CHECK ( telefono = 10 ); ALTER TABLE cines ADD CONSTRAINT cines_pk PRIMARY KEY ( cine_id ); CREATE TABLE clasificaciones ( clasificacion_id NUMBER(10) NOT NULL, nombre VARCHAR2(50) NOT NULL, descripcion VARCHAR2(200) NOT NULL ); COMMENT ON TABLE clasificaciones IS 'Son las clasificaciones que se manejan en el cine, va dependiendo del genero de la pelÝcula.'; COMMENT ON COLUMN clasificaciones.clasificacion_id IS 'Esta columna es la llave primaria de la tabla clasificacion. Sera llenada con una secuencia.';

Ejercicios

Programación en Bases de Datos COMMENT ON COLUMN clasificaciones.nombre IS 'Este es el nombre de la clasificacion. Debe de ir en may·scula.'; COMMENT ON COLUMN clasificaciones.descripcion IS 'Sera la descripci¾n en general de la clasificac¾n para saber c·al es preferible para el tipo de cliente ya sea ni±os o adultos.' ; ALTER TABLE clasificaciones ADD CONSTRAINT clasificaciones_pk PRIMARY KEY ( clasificacion_id ); CREATE TABLE clientes ( cliente_id nombre apellido_paterno apellido_materno "fecha_nacimiento " telefono email calle numero_callle sexo localidad_id municipio_id );

NUMBER(10) NOT NULL, VARCHAR2(50) NOT NULL, VARCHAR2(50), VARCHAR2(50), DATE NOT NULL, NUMBER(10) NOT NULL, VARCHAR2(50) NOT NULL, VARCHAR2(100) NOT NULL, VARCHAR2(10) NOT NULL, NUMBER(1) NOT NULL, NUMBER(10) NOT NULL, NUMBER(10) NOT NULL

COMMENT ON TABLE clientes IS 'Tabla para registrar a los clientes del cine, habrß el cliente 1 como mostrador para ventas de clientes no registrados.'; COMMENT ON COLUMN clientes.cliente_id IS 'Esta columna es la llave primaria de la tabla cliente. Sera llenada con una secuencia.'; COMMENT ON COLUMN clientes.nombre IS 'Este es el nombre del cliente. Debe de ir en may·scula.'; COMMENT ON COLUMN clientes.apellido_paterno IS 'Este es el apellido paterno del cliente. Debe de ir en may·scula.'; COMMENT ON COLUMN clientes.apellido_materno IS 'Este es el apellido materno del cliente. Debe de ir en may·scula.'; COMMENT ON COLUMN clientes."fecha_nacimiento " IS 'Este esta es la fecha de nacimiento del cliente. Nos sirve para obtener la edad del cliente.'; COMMENT ON COLUMN clientes.telefono IS 'Este es el n·mero del cliente. Debe de ir solo 10 digÝtos en este caso.'; COMMENT ON COLUMN clientes.email IS

Ejercicios

32

Programación en Bases de Datos

33

'Este es email del cliente. Debe ir en may·scula y con el simbolo @.'; COMMENT ON COLUMN clientes.calle IS 'Esta es la calle en donde se localiza el cliente. Debe de ir en may·scula.'; COMMENT ON COLUMN clientes.numero_callle IS 'Este es el numero de calle del cliente para su locaclizaci¾n mas especificada.'; COMMENT ON COLUMN clientes.sexo IS 'En este caso se manejaran 1 que representara el sexo femenino y 2 sera en este caso masculino del sexo del cliente.'; COMMENT ON COLUMN clientes.localidad_id IS 'Es necesario saber en donde vive el cliente en este caso se debe especificar su localidad.'; COMMENT ON COLUMN clientes.municipio_id IS 'Es necesario saber en donde naci¾ el cliente en este caso se debe especificar su municipio.'; ALTER TABLE clientes ADD CONSTRAINT clientes_ck_apellidos CHECK ( apellido_paterno IS NOT NULL OR apellido_materno IS NOT NULL ); ALTER TABLE clientes ADD CONSTRAINT clientes_ck_correo CHECK ( email LIKE '%@%.%' ); ALTER TABLE clientes ADD constraint clientes_ck_sexo CHECK ( check(sexo IN( '1', '2' ));) ; ALTER TABLE clientes ADD CONSTRAINT clientes_ck_telefono CHECK ( telefono = 10 ); ALTER TABLE clientes ADD CONSTRAINT clientes_pk PRIMARY KEY ( cliente_id ); CREATE TABLE creditos ( credito_id NUMBER(10) pelicula_id NUMBER(10) actor_id NUMBER(10) orden NUMBER(10) );

NOT NOT NOT NOT

NULL, NULL, NULL, NULL

COMMENT ON TABLE creditos IS 'Es el registro de todas las personas que contribuyeron a la creaci¾n del video. Desde los protagonistas hasta el ayudante del asistente.' ; COMMENT ON COLUMN creditos.credito_id IS 'Esta columna es la llave primaria de la tabla credito. Sera llenada con una secuencia.'; COMMENT ON COLUMN creditos.pelicula_id IS

Ejercicios

Programación en Bases de Datos 'Aqui se muestra el crÚdito de la pelÝcula proyectada a lo ·ltimo de quienes colaboraron.'; COMMENT ON COLUMN creditos.actor_id IS 'Este es actor principal que interpreta la pelÝcula.'; COMMENT ON COLUMN creditos.orden IS 'Se va ordenar para cuando se muestre la cartelera se muestre el actor principal.'; ALTER TABLE creditos ADD CONSTRAINT creditos_pk PRIMARY KEY ( credito_id ); CREATE TABLE estados ( estado_id NUMBER(50) NOT NULL, nombre VARCHAR2(50) NOT NULL, clave_segoto VARCHAR2(2) NOT NULL ); COMMENT ON TABLE estados IS 'Registro de los estados donde el cliente se ubica.'; COMMENT ON COLUMN estados.estado_id IS 'Esta columna es la llave primaria de la tabla estado. Sera llenada con una secuencia.'; COMMENT ON COLUMN estados.nombre IS 'Es el nombre del estado. Debe de ir en may·scula.'; COMMENT ON COLUMN estados.clave_segoto IS 'Es una clave del estado para identificarlo.'; ALTER TABLE estados ADD CONSTRAINT estados_pk PRIMARY KEY ( estado_id ); CREATE TABLE funciones ( funcion_id NUMBER(10) NOT fecha DATE NOT NULL, precio NUMBER(20) NOT sala_id NUMBER(10) NOT pelicula_id NUMBER(10) NOT );

NULL, NULL, NULL, NULL

COMMENT ON TABLE funciones IS 'PelÝcula registrada para la proxima funci¾n a estrenar.'; COMMENT ON COLUMN funciones.funcion_id IS 'Esta columna es la llave primaria de la tabla funcion. Sera llenada con una secuencia.'; COMMENT ON COLUMN funciones.fecha IS 'Fecha en la que la funcion se va a a estrenar.';

Ejercicios

34

Programación en Bases de Datos

35

COMMENT ON COLUMN funciones.precio IS 'Precio de la pelÝcula que va a costar.'; COMMENT ON COLUMN funciones.sala_id IS 'Es el tipo de salas que estara disponible la pelÝcula.'; COMMENT ON COLUMN funciones.pelicula_id IS 'Nombre de la pelÝcula que sera registrada.'; ALTER TABLE funciones ADD CONSTRAINT funciones_ck_precio CHECK ( precio >= 0 ); ALTER TABLE funciones ADD CONSTRAINT funciones_pk PRIMARY KEY ( funcion_id ); CREATE TABLE generos ( genero_id NUMBER(10) NOT NULL, nombre VARCHAR2(50) NOT NULL, descripcion VARCHAR2(200) NOT NULL ); COMMENT ON TABLE generos IS 'Es el registro del tipo de pelÝcula que se va a estrenar en este caso puede que sea de aventuras Comedias, Dramßticas o de Terror etc...' ; COMMENT ON COLUMN generos.genero_id IS 'Esta columna es la llave primaria de la tabla genero. Sera llenada con una secuencia.'; COMMENT ON COLUMN generos.nombre IS 'Este es el nombre del genero. Debe de ir en may·scula.'; COMMENT ON COLUMN generos.descripcion IS 'Esta campo sera la descripci¾n del genero.'; ALTER TABLE generos ADD CONSTRAINT generos_pk PRIMARY KEY ( genero_id ); CREATE TABLE idiomas ( idioma_id NUMBER(10) NOT NULL, nombre VARCHAR2(50) NOT NULL, subtitulo VARCHAR2(50) NOT NULL ); COMMENT ON TABLE idiomas IS 'Este sera el idoma de la pelÝcula y de igual manera se registrara el subtitulo de dicha pelÝcula.'; COMMENT ON COLUMN idiomas.idioma_id IS 'Esta columna es la llave primaria de la tabla idioma. Sera llenada con una secuencia.'; COMMENT ON COLUMN idiomas.nombre IS

Ejercicios

Programación en Bases de Datos

36

'Este es el nombre del idioma por el c·al pueda variar el idioma. Debe de ir en may·scula.'; COMMENT ON COLUMN idiomas.subtitulo IS 'Este es el nombre del subtitulo por el c·al pueda variar el idioma. Debe de ir en may·scula.'; ALTER TABLE idiomas ADD CONSTRAINT idiomas_pkv2 PRIMARY KEY ( idioma_id ); CREATE TABLE localidades ( localidad_id NUMBER(10) NOT NULL, nombre VARCHAR2(50) NOT NULL, codigo_postal NUMBER(5) NOT NULL, municipio_id NUMBER(10) NOT NULL ); COMMENT ON TABLE localidades IS 'Registro de las localidades donde se localiza el cliente ya que si es por lÝnea su compra es necesario conocer su direcci¾n exacta por si gana premios.' ; COMMENT ON COLUMN localidades.localidad_id IS 'Esta columna es la llave primaria de la tabla localidad. Sera llenada con una secuencia.'; COMMENT ON COLUMN localidades.nombre IS 'Es el nombre de la localidad en la c·al se ubica el cliente para que lo puedan ubicar.Debe de ir en may·scula.'; COMMENT ON COLUMN localidades.codigo_postal IS 'Es un identificador del municipio. Debe de ir solo 5 digÝtos en este caso.'; COMMENT ON COLUMN localidades.municipio_id IS 'Es el municipio al que pertenece la localidad.'; ALTER TABLE localidades ADD CONSTRAINT localidades_pk PRIMARY KEY ( localidad_id ); CREATE TABLE municipios ( municipio_id NUMBER(10) NOT NULL, nombre VARCHAR2(50) NOT NULL, estado_id NUMBER(50) NOT NULL ); COMMENT ON TABLE municipios IS 'Registro de los municipios donde se ubica el cliente.'; COMMENT ON COLUMN municipios.municipio_id IS 'Esta columna es la llave primaria de la tabla municipio. Sera llenada con una secuencia.'; COMMENT ON COLUMN municipios.nombre IS

Ejercicios

Programación en Bases de Datos 'Es el nombre del municipio. Debe de ir en may·scula.'; COMMENT ON COLUMN municipios.estado_id IS 'Es el estado al que pertenece el municipio.'; ALTER TABLE municipios ADD CONSTRAINT municipios_pk PRIMARY KEY ( municipio_id ); CREATE TABLE peliculas pelicula_id titulo duracion sinopsi genero_id clasificacion_id idioma_id );

( NUMBER(10) NOT NULL, VARCHAR2(200) NOT NULL, NUMBER(3) NOT NULL, VARCHAR2(4000) NOT NULL, NUMBER(10) NOT NULL, NUMBER(10) NOT NULL, NUMBER(10) NOT NULL

COMMENT ON TABLE peliculas IS 'Es para registrar la pelicula que estan aproximamente a estranarse.'; COMMENT ON COLUMN peliculas.pelicula_id IS 'Esta columna es la llave primaria de la tabla pelicula. Sera llenada con una secuencia. '; COMMENT ON COLUMN peliculas.titulo IS 'Nombre del titulo de la pelicula con el c·al sera registrada para su pr¾ximo estreno.'; COMMENT ON COLUMN peliculas.duracion IS 'La duraci¾n sera en minutos, es el tiempo en que tarda la pelÝcula.'; COMMENT ON COLUMN peliculas.sinopsi IS 'Es una introducci¾n de lo que se trata la pelÝcula.'; COMMENT ON COLUMN peliculas.genero_id IS 'Registro del genero que pertenece a la pelÝcula.'; COMMENT ON COLUMN peliculas.clasificacion_id IS 'Es el tipo de clasificaci¾n ya sea para ni±os, adultos o para ambos.'; COMMENT ON COLUMN peliculas.idioma_id IS 'Es el idoma que esta la pelÝcula que se vaya a ver.'; ALTER TABLE peliculas ADD CONSTRAINT peliculas_pk PRIMARY KEY ( pelicula_id ); CREATE TABLE salas ( sala_id NUMBER(10) NOT NULL, nombre VARCHAR2(10) NOT NULL, cine_id NUMBER(10) NOT NULL ); COMMENT ON TABLE salas IS

Ejercicios

37

Programación en Bases de Datos 'Es el tipo de sala en donde va a ver el cliente la pelÝcula ya sea en 2D, 3D etc...'; COMMENT ON COLUMN salas.sala_id IS 'Esta columna es la llave primaria de la tabla sala. Sera llenada con una secuencia.'; COMMENT ON COLUMN salas.nombre IS 'Este es el nombre de la sala. Debe de ir en may·scula.'; COMMENT ON COLUMN salas.cine_id IS 'Es la ubicaci¾n del cine en donde va a ver la pelÝcula el cliente.'; ALTER TABLE salas ADD CONSTRAINT salas_pk PRIMARY KEY ( sala_id ); ALTER TABLE asientos ADD CONSTRAINT asientos_salas_fk FOREIGN KEY ( sala_id ) REFERENCES salas ( sala_id ); ALTER TABLE boletos ADD CONSTRAINT boletos_asientos_fk FOREIGN KEY ( asiento_id ) REFERENCES asientos ( asiento_id ); ALTER TABLE boletos ADD CONSTRAINT boletos_clientes_fk FOREIGN KEY ( cliente_id ) REFERENCES clientes ( cliente_id ); ALTER TABLE boletos ADD CONSTRAINT boletos_funciones_fk FOREIGN KEY ( funcion_id ) REFERENCES funciones ( funcion_id ); ALTER TABLE boletos ADD CONSTRAINT boletos_peliculas_fk FOREIGN KEY ( pelicula_id ) REFERENCES peliculas ( pelicula_id ); ALTER TABLE cines ADD CONSTRAINT cines_municipios_fk FOREIGN KEY ( municipio_id ) REFERENCES municipios ( municipio_id ); ALTER TABLE clientes ADD CONSTRAINT clientes_localidades_fk FOREIGN KEY ( localidad_id ) REFERENCES localidades ( localidad_id ); ALTER TABLE clientes ADD CONSTRAINT clientes_municipios_fk FOREIGN KEY ( municipio_id ) REFERENCES municipios ( municipio_id ); ALTER TABLE creditos ADD CONSTRAINT creditos_actores_fk FOREIGN KEY ( actor_id ) REFERENCES actores ( actor_id ); ALTER TABLE creditos ADD CONSTRAINT creditos_peliculas_fk FOREIGN KEY ( pelicula_id )

Ejercicios

38

Programación en Bases de Datos REFERENCES peliculas ( pelicula_id ); ALTER TABLE funciones ADD CONSTRAINT funciones_peliculas_fk FOREIGN KEY ( pelicula_id ) REFERENCES peliculas ( pelicula_id ); ALTER TABLE funciones ADD CONSTRAINT funciones_salas_fk FOREIGN KEY ( sala_id ) REFERENCES salas ( sala_id ); ALTER TABLE localidades ADD CONSTRAINT localidades_municipios_fk FOREIGN KEY ( municipio_id ) REFERENCES municipios ( municipio_id ); ALTER TABLE municipios ADD CONSTRAINT municipios_estados_fk FOREIGN KEY ( estado_id ) REFERENCES estados ( estado_id ); ALTER TABLE peliculas ADD CONSTRAINT peliculas_clasificaciones_fk FOREIGN KEY ( clasificacion_id ) REFERENCES clasificaciones ( clasificacion_id ); ALTER TABLE peliculas ADD CONSTRAINT peliculas_generos_fk FOREIGN KEY ( genero_id ) REFERENCES generos ( genero_id ); ALTER TABLE peliculas ADD CONSTRAINT peliculas_idiomas_fk FOREIGN KEY ( idioma_id ) REFERENCES idiomas ( idioma_id ); ALTER TABLE salas ADD CONSTRAINT salas_cines_fk FOREIGN KEY ( cine_id ) REFERENCES cines ( cine_id );

------------------

Informe de Resumen de Oracle SQL Developer Data Modeler: CREATE TABLE CREATE INDEX ALTER TABLE CREATE VIEW ALTER VIEW CREATE PACKAGE CREATE PACKAGE BODY CREATE PROCEDURE CREATE FUNCTION CREATE TRIGGER ALTER TRIGGER CREATE COLLECTION TYPE CREATE STRUCTURED TYPE CREATE STRUCTURED TYPE BODY CREATE CLUSTER

15 0 41 0 0 0 0 0 0 0 0 0 0 0 0

Ejercicios

39

Programación en Bases de Datos --------------------------

CREATE CREATE CREATE CREATE CREATE CREATE CREATE CREATE CREATE CREATE CREATE CREATE CREATE

CONTEXT DATABASE DIMENSION DIRECTORY DISK GROUP ROLE ROLLBACK SEGMENT SEQUENCE MATERIALIZED VIEW MATERIALIZED VIEW LOG SYNONYM TABLESPACE USER

0 0 0 0 0 0 0 0 0 0 0 0 0

DROP TABLESPACE DROP DATABASE

0 0

REDACTION POLICY

0

ORDS DROP SCHEMA ORDS ENABLE SCHEMA ORDS ENABLE OBJECT

0 0 0

ERRORS WARNINGS

0 0

Ejercicios

40

Programación en Bases de Datos CAPITULO 3 Esquema

Ejercicios

41

Programación en Bases de Datos 

Aquí se visualiza el modelo relacional así como se muestra se da aceptar.

Ejercicios

42

Programación en Bases de Datos 

Aquí es para generar el archivo DDL.

Ejercicios

43

Programación en Bases de Datos 

Aquí es donde se generan las tablas y se genera el código del DDL para copiar.

Ejercicios

44

Programación en Bases de Datos 

Se entra en el programa de SQLDeveloper para crear las tablas.

Ejercicios

45

Programación en Bases de Datos PRIMERA CORRIDA 

Aquí se pega el código DDL y se ejecuta para la creación de las tablas.

Ejercicios

46

Programación en Bases de Datos 

Aquí se está ejecutando las tablas.

Ejercicios

47

Programación en Bases de Datos 

Se muestran los resultados obtenidos de la ejecución finalizada en SQLDeveloper.

Ejercicios

48

Programación en Bases de Datos

Ejercicios

49

Programación en Bases de Datos 

50

Se muestra a continuación los errores identificados que se deben corregir, en general solo era un error que generaba los demás errores.

Ejercicios

Programación en Bases de Datos

Ejercicios

51

Programación en Bases de Datos

Ejercicios

52

Programación en Bases de Datos

Ejercicios

53

Programación en Bases de Datos

Ejercicios

54

Programación en Bases de Datos

Ejercicios

55

Programación en Bases de Datos

Ejercicios

56

Programación en Bases de Datos

Ejercicios

57

Programación en Bases de Datos

Ejercicios

58

Programación en Bases de Datos SEGUNDA CORRIDA 

59

Aquí se vuelve a generar el DDL pero se debe dar clic en “DROP” y seleccionar posteriormente tablas, para que elimine las tablas como entrada y vuelva ejecutar el código desde 0.

Ejercicios

Programación en Bases de Datos 

Aquí s e ejecuta primero la instrucción “DROP” para borrar las tablas.

Ejercicios

60

Programación en Bases de Datos 

En la segunda corrida ya se muestra las tablas correctamente ejecutadas.

Ejercicios

61

Programación en Bases de Datos

Ejercicios

62

Programación en Bases de Datos

Ejercicios

63

Programación en Bases de Datos

Ejercicios

64

Programación en Bases de Datos

Ejercicios

65

Programación en Bases de Datos

Ejercicios

66

Programación en Bases de Datos

Ejercicios

67

Programación en Bases de Datos

Ejercicios

68

Programación en Bases de Datos

Ejercicios

69

Programación en Bases de Datos



Se muestra en nuestra base de datos las tablas ya guardadas

Ejercicios

70

Programación en Bases de Datos CAPITULO 4

71

Autenticar create or replace PROCEDURE AUTENTICAR ( P_USUARIO_ID IN NUMBER , P_PASSWORD IN OUT VARCHAR2 , P_NOMBRE OUT VARCHAR2 , P_FECHA OUT DATE , P_VALIDO OUT NUMBER , P_ERROR OUT VARCHAR2 ) AS BEGIN /*El parametro con el nombre p_valido que inicializa en 0 indica que el usuario o password no son válidos y si es asi se manda un mensaje de texto que está almacenado en el parametro p_error*/ p_valido:=0; p_error := 'usuario / password no valido'; /*Se hace un for donde se declara la variable U que sera de entrada y se integra en parentesis el select que es para seleccionar el nombre de la tabla usuarios donde se valida si es igual al dato de la base de datos*/ for u in (select nombre from usuarios where usuario_id = p_usuario_id and password = p_password) loop /*Indica que el password no se mostrara en el campo ya ejecutado de manera correcta de lo contrario si es inválido lo mostrara porque no es null*/ p_password := null; /*Aqui trae el nombre del usuario de la tabla por medio la variable U ya declara anteriormente*/ p_nombre := u.nombre; /*Muestra la fecha en la que accedió el usuario, ya que se extrae con sysdate*/ p_fecha := sysdate;

Ejercicios

Programación en Bases de Datos /*Indica que accedió el usuario correctamente*/ p_valido:=1; /*Aqui es donde muestra el mensaje de texto del error de usuario y password declarado al principio*/ p_error:=null; /*Termina el ciclo for*/ end loop; END AUTENTICAR;

Ejercicios

72

Programación en Bases de Datos

Especificación

p_usuario_id: entrada carácter, contiene la clave de usuario a autenticar. p_password: entrada y salida varchar2, contiene la contraseña del usuario a autenticar (debería ser un hash), se limpia para que no regrese. p_nombre: salida carácter, nombre del usuario autenticado, nulo si no lo es. p_fecha: salida date, contiene la fecha y hora del servidor al momento de ser autenticado, nulo si no lo es. p_valido: salida numérica, 0 no autenticado, 1 sí autenticado, usa valores lógicos con número, podría ser otra codificación. p_error: salida carácter, mensaje de error en caso de no ser válido.

Ejercicios

73

Programación en Bases de Datos En la hoja de trabajo de mi base de datos cree en la tabla usuario con los atributos usuario_id, nombre y password ya que se utilizarán para insertar los datos del usuario y validar el autenticar para que el usuario sea validado en el sistema y de igual manera se hace un ALTER TABLE que indica la llave primaria que es la clave única del registro.

Se inserta los datos en la tabla que creamos de USUARIOS con sus atributos correspondientes, y así sucesivamente se va guardando en la tabla y en el mensaje de salida se muestra que la fila fue insertada. Como se muestra a continuación:

Ejercicios

74

Programación en Bases de Datos

Ejercicios

75

Programación en Bases de Datos

Ejercicios

76

Programación en Bases de Datos



Se muestra los datos ya almacenados en la tabla USUARIOS.

Ejercicios

77

Programación en Bases de Datos

78

Se debe crear el procedimiento AUTENTICAR donde se le debe especificar los parámetros que se utilizaran ya sea IN, IN OUT o OUT y el tipo de dato para identificar si va ir de Varchar2, Number y Date etc. Ya que al aceptar crea la estructura principal para declarar la lógica del problema a resolver.

Ejercicios

Programación en Bases de Datos

79

Se muestra la estructura del procedimiento con los parámetros definidos, ahora declarar en el BEGIN la instrucción que va a realizar en este caso se va a validar la tabla USUARIOS con los datos ya existentes en caso contrario se debe indicar con un mensaje que el “usuario o password no son válidos”.

Ejercicios

Programación en Bases de Datos PRIMERA CORRIDA 

Se ejecuta el procedimiento para hacer la prueba si el usuario existe en la tabla USUARIOS.



Se muestra de bajo la acción ejecutada correctamente a la base de datos.

Ejercicios

80

Programación en Bases de Datos 

81

Aquí se muestra que el usuario Óscar Gómez López está registrado y que su password es correcto. Sucesivamente se ira mostrando los resultados de los campos correspondientes.

Ejercicios

Programación en Bases de Datos 

Se muestra la fecha en que el usuario accedió.



1 significa que fue valido solo un usuario en este caso contrario mostraría 0.

Ejercicios

82

Programación en Bases de Datos 

No se muestra ningún error porque el usuario accedió correctamente.

Ejercicios

83

Programación en Bases de Datos SEGUNDA CORRIDA CON PASSWORD INCORRECTO

Ejercicios

84

Programación en Bases de Datos

85



Se muestra el password porque no coincide con el dato registrado en la tabla USUARIOS.



No se muestra el nombre porque el usuario_id no coincidió con la base de datos donde está registrado los nombres.

Ejercicios

Programación en Bases de Datos 

No procede porque el usuario no accedió correctamente.



No accedió el usuario por lo que nos mostrara en 0.

Ejercicios

86

Programación en Bases de Datos 

Muestra el mensaje de “usuario / password no valido” donde el texto lo dice todo que no coincidieron con la base de datos.

Ejercicios

87

Programación en Bases de Datos

88

Curp1 CREATE OR REPLACE PROCEDURE CURP1 ( P_NOMBRE IN VARCHAR2 , P_APELLIDO_PATERNO IN VARCHAR2 , P_APELLIDO_MATERNO IN VARCHAR2 , P_FECHA_NACIMIENTO IN DATE , P_SEXO IN VARCHAR2 , P_ESTADO IN VARCHAR2 , P_CURP OUT VARCHAR2 ) AS

v_SEXO VARCHAR(10); V_ESTADO VARCHAR(10);

BEGIN

/*Se declara un if donde al ingresar al campo p_sexo debemos colocar 1 si es mujer de lo contrario cualquier numero mayor a 1 sera hombre*/

if p_SEXO=1 then v_SEXO:='M'; else v_SEXO:='H';

/*Se termina el if*/ end if;

Ejercicios

Programación en Bases de Datos

89

/*Aqui se manda a llamar la tabla estados donde esta almacenados las clave segob donde se le pasara al parametro v_estado cuando el estado_id sea igual al dato del campo p_estado*/

Select clave_segob into V_ESTADO from estados where estado_id = p_estado;

/*En el parámetro p_curp se hace una concatenación donde las letras se irán poniendo juntas, también se declara un SUBSTR que es para obtener una parte específica de una cadena de caracteres y de igual manera se manda a llamar la función de vocal y consonante interna*/

P_CURP := substr (P_APELLIDO_PATERNO, 1,1) || VOCALINTERNA(p_APELLIDO_PATERNO)|| substr (p_APELLIDO_MATERNO, 1,1) || substr (p_NOMBRE, 1,1)|| to_char (p_FECHA_NACIMIENTO, 'yymmdd')|| v_sexo|| v_estado||COSONANTEINTERNA(p_APELLIDO_PATERNO)|| COSONANTEINTERNA (p_APELLIDO_MATERNO)||COSONANTEINTERNA(p_NOMBRE);

END CURP1;

Ejercicios

Programación en Bases de Datos

Especificación

p_nombre: entrada del carácter, nombre de la persona para calcular su CURP. p_apellido_paterno: entrada del carácter, contiene el primer apellido de la persona para para calcular su CURP. p_apellido_materno: entrada del carácter, contiene el segundo apellido de la persona para para calcular su CURP. p_fecha_nacimiento: entrada como DATE, contiene la fecha en la que nació la persona para calcular su CURP. p_sexo: entrada del carácter, contiene el sexo ya sea hombre que será representado con “H” y mujer con “M” al momento de calcular la CURP. p_estado: entrada del carácter, donde contiene por medio del ID la clave SEGOB usada para identificar el estado en el cálculo de la CURP. p_curp: salida del carácter, donde se mostrará la CURP de la persona ya concatenada.

Ejercicios

90

Programación en Bases de Datos 

91

Se muestra a continuación que se insertaron los datos en la tabla ESTADOS como su clave SEGOB de cada uno, para que se pueda utilizar en el procedimiento de la CURP.

Ejercicios

Programación en Bases de Datos 

Se muestra los datos insertados correctamente.



Ahora se muestran los datos almacenados correctamente en la base de datos.

Ejercicios

92

Programación en Bases de Datos

93

Se debe crear el procedimiento CURP1 donde se le debe especificar los parámetros que se utilizaran y el tipo de dato. Ya que solo P_CURP será de salida porque mostrará las letras concatenadas de los datos parámetros declarados.

Ejercicios

Programación en Bases de Datos 

94

Se muestra el procedimiento ya guardado y listo para comenzar a declarar las variables o parámetros para extraer las cadenas con SUBSTR y de igual manera con un SELECT se extraerá la clave SEBOG para cada estado.

Ejercicios

Programación en Bases de Datos CORRIDA DE LA CURP 

Se ejecuta el procedimiento para sacar mi CURP, ya que los parámetros son de entradas.



La ejecución del procedimiento fue ejecutada correctamente.

Ejercicios

95

Programación en Bases de Datos 

Se muestra como salida la CURP1 ya calculada correctamente.

Ejercicios

96

Programación en Bases de Datos

97

Curp2 create or replace PROCEDURE CURP2 ( P_PERSONA_ID IN VARCHAR2 , P_CURP OUT VARCHAR2 ) AS v_SEXO VARCHAR(10); V_ESTADO VARCHAR(10); BEGIN

/*Se hace un for donde se declara la variable U que sera de entrada y se integra en parentesis el select que es para seleccionar los campos de la tabla personas donde persona_id sea igual al parametro p_persona_id donde sera de entrada para hacer la comparacion en la base de datos*/

for u in (select APELLIDO_PATERNO, APELLIDO_MATERNO, NOMBRE,FECHA_NACIMIENTO,SEXO, ESTADO from personas where persona_id = p_persona_id) loop

/*Se declara un if donde se declara u.sexo para recibir el dato que contiene en la tabla persona y asi comparar ese dato y obtener si es 1 colocar M de mujer de lo contrario cualquier numero mayor a 1 sera hombre*/

if u.SEXO=1 then v_SEXO:='M'; else v_SEXO:='H';

/*Se termina el if*/ end if;

Ejercicios

Programación en Bases de Datos

98

/*Aqui se manda a llamar la tabla estados donde esta almacenados las clave segob donde se le pasara al parametro v_estado que va extraer la clave cuando el nombre de la tabla estados sea igual al dato del nombre del campo estado de la tabla personas entonces trae su clave segob que esta en la tabla estados*/

Select clave_segob into v_estado from estados where NOMBRE = u.estado;

/*En el parámetro p_curp se hace una concatenación donde las letras se irán poniendo juntas, también se declara un SUBSTR que es para obtener una parte específica de una cadena de caracteres y de igual manera se manda a llamar la función de vocal y consonante interna y de igual manera se extraera de la tabla personas con la variable u de entrada*/

P_CURP := substr (u.APELLIDO_PATERNO, 1,1)|| VOCALINTERNA(u.APELLIDO_PATERNO)|| substr (u.APELLIDO_MATERNO, 1,1) || substr (u.NOMBRE, 1,1) || to_char (u.FECHA_NACIMIENTO, 'yymmdd')||v_SEXO||v_estado||COSONANTEINTERNA(u.APELLIDO_PATERNO)||COSONANTEINTER NA(u.APELLIDO_MATERNO)||COSONANTEINTERNA(u.NOMBRE);

/*Se termina el for*/

END LOOP;

END CURP2;

Ejercicios

Programación en Bases de Datos

Especificación

p_persona_id: entrada del carácter, contiene la clave para identificar a la persona que se requiera calcular su CURP. p_curp: salida del carácter, donde se mostrará la CURP de la persona ya concatenada.

Ejercicios

99

Programación en Bases de Datos 

100

Se crea la tabla personas con los datos necesarios y la llave primaria, como también la columna estado donde se ingresará el estado donde pertenece la persona y así declarar en el procedimiento donde nombre que pertenece en la tabla ESTADOS sea igual al campo estado y así extraer la clave SEGOB.

Ejercicios

Programación en Bases de Datos 

Se muestra a continuación que se insertaron los datos en la tabla PERSONAS con su estado de cada uno donde nació, para que se pueda utilizar en el procedimiento de la CURP.



Ahora se muestran los datos almacenados correctamente en la tabla personas listo para calcular su CURP.

Ejercicios

101

Programación en Bases de Datos 

102

Se debe crear el procedimiento CURP2 donde se le debe especifican dos parámetros que son persona_id que será de entrada y P_CURP de salida.

Ejercicios

Programación en Bases de Datos

103

Se muestra la estructura del procedimiento con los parámetros definidos, ahora declarar en el BEGIN la instrucción que va a realizar en este caso se va a calcular la CURP de cada persona mediante el ID con los datos respetivamente guardados en la base de datos de la tabla persona.

Ejercicios

Programación en Bases de Datos CALCULAR CURP DE LA MUJER 

104

Se inicializa el procedimiento CURP2 con un ID de MUJER para calcular su CURP ya que solo se maneja como entrada persona_id y P_CURP como de salida.

Ejercicios

Programación en Bases de Datos 

105

Procedimiento ejecutado correctamente y se muestra que se extrajo la M de mujer en la tabla de personas que esta con el número 1 que representa en el código del IF como M.

Ejercicios

Programación en Bases de Datos CALCULAR CURP DEL HOMBRE 

106

Se ejecuta la segunda corrida del procedimiento CURP2 con un ID de HOMBRE para calcular su CURP ya que solo se maneja como entrada persona_id y P_CURP como de salida.

Ejercicios

Programación en Bases de Datos 

107

Procedimiento ejecutado correctamente y se muestra que se extrajo la H del hombre en la tabla de personas que esta con el número 2 que representa en el código del IF con else como H.

Ejercicios

More Documents from "Juan Pablo Badal Arias"