Caso e-Bolsa con DB2 - … · Nota : En el tercer paso especificaremos si el procedimiento...

44

Transcript of Caso e-Bolsa con DB2 - … · Nota : En el tercer paso especificaremos si el procedimiento...

2

Indice

1. Un ABM completo de una tabla. ............................................................................................................ 3

1.a) Alta de una sucursal. ........................................................................................................................ 3

1.b) Baja de una sucursal. ....................................................................................................................... 6

1.c) Modificar una sucursal. .................................................................................................................. 10

Editor de Mandatos para ejecutar los Store Procedure antes generados. .............................................. 15

2. Creación de 3 Triggers........................................................................................................................... 16

2.a) Trigger para que no se pueda inserta un ID en la tabla Sucursal menor a 0. ............................... 16

2.b) Trigger para que no se pueda inserta nombres duplicados en la tabla Sucursal. ....................... 18

2.c) Trigger para que no se pueda inserta una comisión menor al 5%................................................ 20

3. Creación de 4 Índices. ........................................................................................................................... 22

3.a) Creamos un índice sobre la tabla Transacción. ............................................................................. 22

3.b) Creamos un índice sobre la tabla Cuenta Corriente. .................................................................... 25

3.c) Creamos un índice sobre la tabla Cuenta Corriente. .................................................................... 29

3.d) Creamos un índice sobre la tabla Activo. ...................................................................................... 32

4. Creación de Constraints. ....................................................................................................................... 36

4.a) Creación de llave primaria. ............................................................................................................ 36

4.b) Creación de llave foránea. ............................................................................................................. 38

4.c) Creación constraint de dominio. ................................................................................................... 40

4.e) Creación constraint de valores únicos. ......................................................................................... 42

4.e) Creación constraint de valores por defecto. ................................................................................. 43

3

Para el siguiente trabajo utilizamos IBM Data Studio Version 2.2.0.2.

1. Un ABM completo de una tabla.

1.a) Alta de una sucursal.

Nota: Dentro del IBM Data Studio generamos un nuevo proyecto el cual estará enlazado a la conexión

de base de datos que queremos trabajar.

Luego botón derecho en el proyecto � new Store Procedure.

En esta ventana seleccionaremos el proyecto al cual estamos conectados, el nombre del procedimiento

almacenado (Recordar anteponer el esquema al cual apuntamos) y el lenguaje SQL.

4

Nota: En el segundo paso, especificaremos la sentencia del procedimiento almacenado.

Este se puede crear utilizando el asistente o escribiéndolo a mano.

5

Nota: En el tercer paso especificaremos si el procedimiento almacenado trabajara con parámetros de

entrada y salida.

En nuestro caso declaramos dos parámetros de entrada, Nombre y Banco, haciendo referencia al

nombre de la Sucursal y el numero del ID correspondiente al Banco al cual pertenecerá nuestra sucursal

(clave foránea).

6

Nota: Al final se podrá visualizar un resumen del procedimiento almacenado que vamos a crear.

Para ejecutar este procedimiento solo tenemos que escribir en el editor de mandatos:

Call MONTANA.ALTASUCURSAL('Nuevo nombre de la sucursal',2);

1.b) Baja de una sucursal.

7

Nota: Dentro del IBM Data Studio generamos un nuevo proyecto el cual estará enlazado a la conexión

de base de datos que queremos trabajar.

Luego botón derecho en el proyecto � new Store Procedure.

En esta ventana seleccionaremos el proyecto al cual estamos conectados, el nombre del procedimiento

almacenado (Recordar anteponer el esquema al cual apuntamos) y el lenguaje SQL.

8

Nota: En el segundo paso, especificaremos la sentencia del procedimiento almacenado.

Este se puede crear utilizando el asistente o escribiéndolo a mano.

9

Nota: En el tercer paso especificaremos si el procedimiento almacenado trabajara con parámetros de

entrada y salida.

En nuestro caso declaramos dos parámetros de entrada, ID, haciendo referencia al identificador

principal de la tabla Sucursal a la cual queremos acceder para en este caso borrar.

10

Nota: Al final se podrá visualizar un resumen del procedimiento almacenado que vamos a crear.

Para ejecutar este procedimiento solo tenemos que escribir en el editor de mandatos:

Call MONTANA.BAJASUCURSAL(ID de la sucursal a eliminar);

1.c) Modificar una sucursal.

11

Nota: Dentro del IBM Data Studio generamos un nuevo proyecto el cual estará enlazado a la conexión

de base de datos que queremos trabajar.

Luego botón derecho en el proyecto � new Store Procedure.

En esta ventana seleccionaremos el proyecto al cual estamos conectados, el nombre del procedimiento

almacenado (Recordar anteponer el esquema al cual apuntamos) y el lenguaje SQL.

12

Nota: En el segundo paso, especificaremos la sentencia del procedimiento almacenado.

Este se puede crear utilizando el asistente o escribiéndolo a mano.

13

Nota: En el tercer paso especificaremos si el procedimiento almacenado trabajara con parámetros de

entrada y salida.

En nuestro caso declaramos 3 parámetros de entrada, ID, haciendo referencia al identificador principal

de la tabla Sucursal a la cual queremos acceder para en este caso actualizar, nuevoNombre, nuevo

nombre de la sucursal y idBanco haciendo referencia al banco que pertenecerá nuestra sucursal.

14

Nota: Al final se podrá visualizar un resumen del procedimiento almacenado que vamos a crear.

Para ejecutar este procedimiento solo tenemos que escribir en el editor de mandatos:

call MONTANA.MODIFICARSUCURSAL('Nombre',1,100);

15

Editor de Mandatos para ejecutar los Store Procedure antes generados.

16

2. Creación de 3 Triggers.

2.a) Trigger para que no se pueda inserta un ID en la tabla Sucursal menor a 0.

Nota: Dentro del centro de control de nuestra base de datos, encontramos la carpeta Activadores

hacemos clic derecho del Mouse � Crear.

En el wizard nos pedirá, Esquema del activador, nombre del Activador, en nuestro caso Banco , el

esquema de la tabla o vista y el nombre de la tabla o vista.

Momento de activar la acción, en nuestro caso la vamos a ejecutar Antes y la Operación que hace que

se ejecute el activador, Insertar ya que queremos que se ejecute al insertar una nueva fila en la tabla.

17

Nota: Aquí configuramos el Nombre de la correlación para las filas nuevas.

Y la acción activada.

En este caso verificamos que el campo Banco de la nueva fila a insertar no sea menor o = a 0), sino

mostramos un error en pantalla.

18

2.b) Trigger para que no se pueda inserta nombres duplicados en la tabla Sucursal.

Nota: Dentro del centro de control de nuestra base de datos, encontramos la carpeta Activadores

hacemos clic derecho del Mouse � Crear.

En el wizard nos pedirá, Esquema del activador, nombre del Activador, en nuestro caso Sucursal , el

esquema de la tabla o vista y el nombre de la tabla o vista.

Momento de activar la acción, en nuestro caso la vamos a ejecutar Antes y la Operación que hace que

se ejecute el activador, Insertar ya que queremos que se ejecute al insertar una nueva fila en la tabla.

19

Nota: Aquí configuramos el Nombre de la correlación para las filas nuevas.

Y la acción activada.

En este caso verificamos que el resultado de una selección sin duplicados de los nombres de las

sucursales sea = 1.

De ser así enviamos un mensaje de error de que el nombre ya esta utilizado.

20

2.c) Trigger para que no se pueda inserta una comisión menor al 5%.

Nota: Dentro del centro de control de nuestra base de datos, encontramos la carpeta Activadores

hacemos clic derecho del Mouse � Crear.

En el wizard nos pedirá, Esquema del activador, nombre del Activador, en nuestro caso Cliente , el

esquema de la tabla o vista y el nombre de la tabla o vista.

Momento de activar la acción, en nuestro caso la vamos a ejecutar Despues y la Operación que hace que

se ejecute el activador, Insertar ya que queremos que se ejecute al insertar una nueva fila en la tabla.

21

Nota: Aquí configuramos el Nombre de la correlación para las filas nuevas.

Y la acción activada.

En este caso verificamos primero que el porcentaje de comisión a insertar sea menor a 6, de ser así

actualizamos el campo de comisión del cliente al valor 10.

22

3. Creación de 4 Índices.

3.a) Creamos un índice sobre la tabla Transacción.

Nota: Para crear un índice nos posicionamos sobre la tabla a la cual le queremos agregar uno, hacemos

botón derecho del Mouse, � Crear Índice.

23

Nota: En este paso configuramos el nombre del índice y agregamos un comentario.

24

Nota: En este paso especificamos la clave del índice, en nuestro caso elegimos la columna Operador.

25

Nota: En este ultimo paso observamos el resumen de la generación del índice..

Importante: Existe un paso anterior “opciones” para poder configurar las opciones de rendimiento del

índice.

3.b) Creamos un índice sobre la tabla Cuenta Corriente.

26

Nota: Para crear un índice nos posicionamos sobre la tabla a la cual le queremos agregar uno, hacemos

botón derecho del Mouse, � Crear Índice.

27

Nota: En este paso configuramos el nombre del índice y agregamos un comentario.

Nota: En este paso especificamos la clave del índice, en nuestro caso elegimos la columna Operador.

28

Nota: En este ultimo paso observamos el resumen de la generación del índice.

Importante: Existe un paso anterior “opciones” para poder configurar las opciones de rendimiento del

índice.

29

3.c) Creamos un índice sobre la tabla Cuenta Corriente.

Nota: Para crear un índice nos posicionamos sobre la tabla a la cual le queremos agregar uno, hacemos

botón derecho del Mouse, � Crear Índice.

30

Nota: En este paso configuramos el nombre del índice y agregamos un comentario.

31

Nota: En este paso especificamos la clave del índice, en nuestro caso elegimos la columna Operador.

32

Nota: En este ultimo paso observamos el resumen de la generación del índice..

Importante: Existe un paso anterior “opciones” para poder configurar las opciones de rendimiento del

índice.

3.d) Creamos un índice sobre la tabla Activo.

33

Nota: Para crear un índice nos posicionamos sobre la tabla a la cual le queremos agregar uno, hacemos

botón derecho del Mouse, � Crear Índice.

34

Nota: En este paso configuramos el nombre del índice y agregamos un comentario.

Nota: En este paso especificamos la clave del índice, en nuestro caso elegimos la columna Operador.

35

Nota: En este ultimo paso observamos el resumen de la generación del índice..

Importante: Existe un paso anterior “opciones” para poder configurar las opciones de rendimiento del

índice.

36

4. Creación de Constraints.

4.a) Creación de llave primaria.

Sobre la tabla Banco.

Nota: Para agregar una llave primaria, desde el Centro de control hacemos clic derecho del Mouse sobre

la tabla � Modificar.

En la solapa “Claves” hacemos clic en “Añadir Primaria”.

Ahí le damos un nombre a la clave primaria y elegimos cual o cuales son los campos que la componen.

Sobre la tabla Sucursal.

Nota: Para agregar una llave primaria, desde el Centro de control hacemos clic derecho del Mouse sobre

la tabla � Modificar.

En la solapa “Claves” hacemos clic en “Añadir Primaria”.

37

Ahí le damos un nombre a la clave primaria y elegimos cual o cuales son los campos que la componen.

Sobre la tabla Cliente.

Nota: Para agregar una llave primaria, desde el Centro de control hacemos clic derecho del Mouse sobre

la tabla � Modificar.

En la solapa “Claves” hacemos clic en “Añadir Primaria”.

Ahí le damos un nombre a la clave primaria y elegimos cual o cuales son los campos que la componen.

Sobre la tabla Operador.

Nota: Para agregar una llave primaria, desde el Centro de control hacemos clic derecho del Mouse sobre

la tabla � Modificar.

En la solapa “Claves” hacemos clic en “Añadir Primaria”.

Ahí le damos un nombre a la clave primaria y elegimos cual o cuales son los campos que la componen.

38

4.b) Creación de llave foránea.

Sobre la tabla Cuenta corriente.

Nota: Para agregar una llave foránea, desde el Centro de control hacemos clic derecho del Mouse sobre

la tabla � Modificar.

En la solapa “Claves” hacemos clic en “Añadir Foránea”.

Ahí le damos un nombre a la clave foránea y elegimos cual o cuales son los campos que la componen,

haciendo la relación con la columna de la tabla padre.

39

Nota: Para agregar una llave foránea, desde el Centro de control hacemos clic derecho del Mouse sobre

la tabla � Modificar.

En la solapa “Claves” hacemos clic en “Añadir Foránea”.

Ahí le damos un nombre a la clave foránea y elegimos cual o cuales son los campos que la componen,

haciendo la relación con la columna de la tabla padre.

40

4.c) Creación constraint de dominio.

Sobre la tabla sucursal.

Nota: Para agregar restricción, desde el Centro de control hacemos clic derecho del Mouse sobre la

tabla � Modificar.

En la solapa “Restricciones de comprobación” hacemos clic en “Añadir”.

Ahí le damos un nombre a la restricción y elegimos cual será la condición de comprobación.

Nota: Después nos mostrara cual será el plan de ejecución.

41

Sobre la tabla Comisión.

Nota: Para agregar restricción, desde el Centro de control hacemos clic derecho del Mouse sobre la

tabla � Modificar.

En la solapa “Restricciones de comprobación” hacemos clic en “Añadir”.

Ahí le damos un nombre a la restricción y elegimos cual será la condición de comprobación.

4.d) Creación constraint de valores no nulos.

Sobre la tabla Sucursal.

42

Nota: Para agregar restricción, desde el Centro de control hacemos clic derecho del Mouse sobre la

tabla � Modificar.

En la solapa “Restricciones de comprobación” hacemos clic en “Añadir”.

Ahí le damos un nombre a la restricción y elegimos cual será la condición de comprobación.

Sobre la tabla Banco.

Nota: Para agregar restricción, desde el Centro de control hacemos clic derecho del Mouse sobre la

tabla � Modificar.

En la solapa “Restricciones de comprobación” hacemos clic en “Añadir”.

Ahí le damos un nombre a la restricción y elegimos cual será la condición de comprobación.

4.e) Creación constraint de valores únicos.

Sobre la tabla Banco.

ALTER TABLE MONTANA.BANCO ADD CONSTRAINT CC1278277168093 UNIQUE (Nombre);

Sobre la tabla Sucursal.

ALTER TABLE MONTANA.SUCURSAL ADD CONSTRAINT C1278277168094 UNIQUE (Nombre);

Nota: Estos cambios se realizaron desde el Editor de mandatos ya que la tabla ya existía en la base de

datos.

Importante: Para que sea Unique tiene que ser NOT NULL.

43

4.e) Creación constraint de valores por defecto.

Sobre la tabla Banco.

Nota: Para agregar un valor por defecto a una columna, desde el Centro de control hacemos clic

derecho del Mouse sobre la tabla � Modificar.

En la solapa “Columnas” hacemos clic en “Añadir”, o si ya existe la columna en

“Valor por omisión” le agregamos el valor por defecto a la columna si esta vendría sin ningún valor.

Sobre la tabla Sucursal.

ALTER TABLE MONTANA.SUCURSAL ALTER COLUMN NOMBRE SET DEFAULT 'Suc';

Nota: Desde el editor de mandatos se puede alterar la estructura de una tabla y sobre una columna

específica.

44

Aclaración:

Estos trabajos fueron desarrollados por alumnos de la Universidad Abierta Interamericana. Los

enunciados de los trabajos prácticos pertenecen al libro "FUNDAMENTOS DE DISEÑO Y MODELADO DE

DATOS" de MORTEO FRANCISCO, BOCALANDRO NICOLAS L. E., CASCON HERNAN G. y otros.