7
NORMALIZACION DE BASES DE DATOS Ejemplo de Normalización de una planilla de prestamos de dinero [AGOSTO de 2010] [Éste documento explica como diseñar la base de datos para el sistema de prestamista diario aplicando el proceso de normalización. No contiene explicación sobre la teoría de normalización de bases de datos por lo que se aconseja hacer consultas de forma adicional acerca de éste tema]. Juan Karlos Solórzano Benavidez. Ingeniero de Sistemas Universidad del Sinù-Monterìa Especialista en Desarrollo de Software Universidad del Magdalena-Santa Marta. Email: [email protected] [email protected]

Ejemplo de Normalizacion Prestadiario

Embed Size (px)

DESCRIPTION

Ejemplo aplicacion de normalizacion de Base de Datos

Citation preview

Page 1: Ejemplo de Normalizacion Prestadiario

NORMALIZACION DE BASES DE DATOS

Ejemplo de Normalización de una planilla de prestamos de dinero

[AGOSTO de 2010]

[Éste documento explica como diseñar la base de datos para el sistema de prestamista diario aplicando el proceso de normalización. No contiene explicación sobre la teoría de normalización de bases de datos por lo que se aconseja hacer consultas de forma adicional

Juan Karlos Solórzano Benavidez.Ingeniero de Sistemas Universidad del Sinù-Monterìa

Especialista en Desarrollo de Software Universidad del Magdalena-Santa Marta.Email: [email protected]

[email protected]

Page 2: Ejemplo de Normalizacion Prestadiario

acerca de éste tema].

Juan Karlos Solórzano Benavidez.Ingeniero de Sistemas Universidad del Sinù-Monterìa

Especialista en Desarrollo de Software Universidad del Magdalena-Santa Marta.

Page 3: Ejemplo de Normalizacion Prestadiario

DISEÑAR LA BASE DE DATOS PARA EL SISTEMA DE PRESTAMISTA DIARIO.OBJETIVOS DEL SISTEMA 1. IDENTIFICAR LAS TABLAS 2. IDENTIFICAR LAS RELACIONES ENTRE TABLAS 3. APLICAR EL PROCESO DE NORMALIZACION  

DESARROLLO

Para elaboración de la base de datos para el sistema de prestamista diario vamos a suponer que tenemos una empresa llamada Prestafacil S.A y que en esta empresa sus cobradores utilizan el siguiente formato para anotar los abonos hechos diariamente por los clientes.

Para llegar a un buen diseño de bases de datos debemos realizar un proceso de normalización que detallaremos a continuación.

Juan Karlos Solórzano Benavidez.Ingeniero de Sistemas Universidad del Sinù-Monterìa

Especialista en Desarrollo de Software Universidad del Magdalena-Santa Marta.

Page 4: Ejemplo de Normalizacion Prestadiario

FORMA NORMAL CERO (FORMA NO NORMALIZADA)

En este paso se hace una lista de todos los datos que aparecen en el documento, estos datos se convertirán en los campos de la base de datos. De este grupo se escoge un campo que identifique el grupo de forma única, en este el caso el numero_prestamo cumple con este propósito y nos servirá como llave primaria del grupo.

Numero_prestamoCantidad_prestadaFecha_prestamoTasa_de_interes_diariaFecha_de_vencimientoTasa_de_interes_por_moraNumero_cedula_nitNombre_clienteDirección_clienteTeléfono_clienteNumero_cedula_cobradorNombre_cobradorDirección_cobradorTeléfono_cobradorNumero_del_abonoCantidad_abonoFecha_abono

PRIMERA FORMA NORMAL

Se analiza el grupo obtenido en el paso anterior o forma no normalizada y se separa los campos que no se repiten de los campos que si se repiten, en el grupo de los datos que se repiten se debe agregar el campo que se eligió como identificador o llave primaria del paso anterior (Numero_prestamo) y que servirá como llave secundaria en el grupo que se repite.

GRUPO NO REPETITIVO GRUPO REPETITIVO

Numero_prestamoCantidad_prestadaFecha_prestamoTasa_de_interes_diariaFecha_de_vencimientoTasa_de_interes_por_moraNumero_cedula_nitNombre_clienteDirección_clienteTeléfono_clienteNumero_cedula_cobradorNombre_cobradorDirección_cobradorTeléfono_cobrador

Numero_del_abonoCantidad_abonoFecha_abonoNumero_prestamo

Juan Karlos Solórzano Benavidez.Ingeniero de Sistemas Universidad del Sinù-Monterìa

Especialista en Desarrollo de Software Universidad del Magdalena-Santa Marta.

Page 5: Ejemplo de Normalizacion Prestadiario

SEGUNDA FORMA NORMAL

En la segunda forma normal se analiza solo el grupo repetitivo, miramos si al implementar la base de datos todos los registros quedarían identificados si hacemos referencia a su llave primaria y no dependen de otro campo, como en este caso la cantidad_abono y fecha_abono guardan una relación directa con numero_del_abono y no dependen de ningún otro campo, entonces podemos prosegir a efectuar la tercera forma normal pues no aplica la segunda forma.

TERCERA FORMA NORMAL

En la tercera forma normal se analiza el grupo no repetitivo y se separan de dicho grupo aquellos datos que no dependen directamente de la llave primaria.

Para cada nuevo grupo que se forme se escoge una llave primaria y dicho campo se debe conservar en el grupo no repetitivo como llave secundaria.

GRUPO NO REPETITIVO GRUPO REPETITIVO

Numero_prestamoCantidad_prestadaFecha_prestamoTasa_de_interes_diariaFecha_de_vencimientoTasa_de_interes_por_moraNumero_cedula_nitNombre_clienteDirección_clienteTeléfono_clienteNumero_cedula_cobradorNombre_cobradorDirección_cobradorTeléfono_cobrador

Numero_del_abonoCantidad_abonoFecha_abonoNumero_prestamo

Grupo 1:Datos del préstamo Grupo 2:Datos del abono Grupo 3:Datos del cliente Grupo 4:Datos del cobrador

numero_prestamocantidad_prestadafecha_prestamotasa_de_interes_diariafecha_de_vencimientotasa_de_interes_por_moranumero_cedula_nitnumero_cedula_cobrador

numero_del_abonocantidad_abonofecha_abononumero_prestamo

numero_cedula_nitnombre_clientedirección_clienteteléfono_cliente

numero_cedula_cobradornombre_cobradordirección_cobradorteléfono_cobrador

Juan Karlos Solórzano Benavidez.Ingeniero de Sistemas Universidad del Sinù-Monterìa

Especialista en Desarrollo de Software Universidad del Magdalena-Santa Marta.

Datos del préstamo, la llave primaria de este grupo será Numero_prestamo

Datos del cliente, la llave primaria de este grupo será Numero_cedula_nit

Datos del cobrador, la lleve primaria de este grupo será numero_cedula_cobrador

Page 6: Ejemplo de Normalizacion Prestadiario

Mediante el proceso de normalización realizada hemos obtenido cuatro grupos de datos o campos, dichos grupos se convertirán en tablas y se relacionaran como se muestra a continuación.

Del anterior diagrama relacional podemos deducir que:

Un cliente puede tener varios prestamos, cada prestamos pertenece a un cliente

Un cobrador puede tener varios prestamos, cada préstamo es cobrado o atendido por un cobrador

Cada préstamo puede tener varios abonos, cada abono pertenece a un préstamo

Además de los datos presentes en las tablas es de interés conocer: Días de mora, intereses, intereses por mora y saldo, es importante anotar que dichos datos no están presentes en el modelo contemplado pues todos ellos SON DATOS CALCULADOS Y LOS DATOS CALCULADOS GENERALMENTE NO SE PONENCOMO CAMPOS EN LAS TABLAS SI NO QUE SE CALCULAN AL MOMENTO DE MOSTAR LA IMFORMACION, así por ejemplo.

DÍAS DE MORA: se calcula restando la fecha actual menos la fecha de vencimiento

INTERESES: Se calcula mediante la fórmula i=c*r*t, donde i son los interese, c es el capital o cantidad prestada, r es la tasa de interés diaria y t es el tiempo trascurrido en días desde la fecha de préstamo hasta la fecha actual y máximo hasta la fecha de vencimiento.

Juan Karlos Solórzano Benavidez.Ingeniero de Sistemas Universidad del Sinù-Monterìa

Especialista en Desarrollo de Software Universidad del Magdalena-Santa Marta.

cliente

numero_cedula_nitnombre_clientedirección_clienteteléfono_cliente

abono

numero_del_abonocantidad_abonofecha_abononumero_prestamo

prestamo

numero_prestamocantidad_prestadafecha_prestamotasa_de_interes_diariafecha_de_vencimientotasa_de_interes_por_moranumero_cedula_nitnumero_cedula_cobrador

cobrador

numero_cedula_cobradornombre_cobradordirección_cobradorteléfono_cobrador