Archive

Archive for the ‘optimización de sistemas de información’ Category

Índices en bases de datos

2009/11/05 2 comments

Índice en base de datos

  • Estructura de datos que mejora la velocidad de las operaciones
  • Se utiliza sobre campos donde se hagan frecuentes búsquedas
  • Pueden ser creados utilizando una o más columnas
  • Son construidos sonre árboles B, B+, B* o sobre mezclas de ellos

Ventajas de utilizar índices

  • Se evita una búsqueda en la tabla completa
  • Se evita la sobrecarga de CPU, disco y concurrencia
  • Se evitan las lecturas secuenciales
  • Mayor rapidez en la ejecución de consultas

Desventajas al utilizar índices

  • Desventaja para las tablas que utilizan frecuentemente un insert, delete o update ya que los índices se actualizan cada que se modifica una columna
  • Ocupan espacio, a veces más que los propios datos

Ejercicio

Para demostrar la rapidez de una consulta al utilizar índices, se creó una base de datos y se agregó aproximadamente 1 millón de registros

En la siguiente foto podemos observar el tiempo que tarda una consulta sin índice en una tabla con más de 1 millón de registros, el cual es de 45 segundos en total:

Sin índice

Consulta sin índice

Podemos observar como el tiempo ha disminuido considerablemente cuando utilizamos índices en nuestra tabla, bajando el tiempo de consulta a 6 segundos aproximadamente:

Con índice

Consulta con índice

Si desean descargar la práctica para hacer pruebas. Los tiempos pueden variar dependiendo de la velocidad de CPU y la memoria Ram que tenga la computadora

http://dl.dropbox.com/u/1955604/Tareas/Optimizaci%C3%B3n%20de%20Sistemas%20de%20Informaci%C3%B3n/Indices.zip

Ejemplos de normalización de base de datos

Ejemplos vistos en clase

Ejemplo 1. Control de rotaciones

Se requiere llevar un control de las rotaciones de vigilantes de una empresa. Un vigilante cubre un turno de 6 horas, o si él lo desea puede cubrir un turno doble de 12 horas, pero no más. Cada semana se reciben las solicitudes de horas extras por parte de los vigilantes y se realiza la asignación de rotación para los 7 días de la siguiente semana.

Si el vigilante no realiza una petición de horas extras, en cada ciclo se le asignan 6 horas. Un ciclo se cumple cuando cada vigilante ha cubierto un turno. Si el vigilante realiza una petición de horas extras, se le asigna un turno de 12 horas.

Actualmente la empresa tiene 7 vigilantes contratados, pero se espera contratar más en los siguientes meses. Se desea tener un registro con los datos personales de los vigilantes, llevar un control del tiempo que ha trabajado y generar el reporte de rotación automáticamente cada semana.

Vigilantes Solicitudes Turnos
*vigi N(5) *soli N(10) *turn N(2)
vigilante C(40) +vigi N(5) h_inicio N(8)
domicilio C(50) +turn N(2) h_fin N(8)
sueldo N(15,2) f_inicio D desc_turno C(40)
f_fin D
peticion L

Ejemplo 2. Control de material didáctico

En una institución de educación superior se cuenta con material bibliográfico grabado en Discos Compactos (CD) y se requiere llevar un control de los préstamos de estos CD a los alumnos. Cada alumno tiene un número de control de 8 dígitos, su nombre completo y la carrera que cursa. Un CD se identifica con una clave de 4 dígitos, además tiene un nombre y se registra la cantidad en existencia y la cantidad disponible para préstamo.

Un CD se presta al alumno por 3 días, si no lo regresa en el plazo se le hará un cargo de $1.20 por cada día de retraso. Se desea tener un registro de las existencias, los préstamos y las multas generadas, ya sea diaria, semanal o por periodo determinados por el usuario.

Alumnos Prestamos Discos
*alum N(8) *pres N(10) *disc N(4)
alumno C(40) +disc N(4) clave N(4)
carrera C(20) +alum N(8) disco C(20)
f_prestamo D cant_disp N(3)
f_entrega D cant_exis N(3)
f_entregada D
cargo N(15,2)

Ejemplo 3. Control de cheques
Se necesita llevar un control de los cheques de varias instituciones bancarias expedidos como gastos de una empresa. Cada cheque se identifica por un número no mayor de 8 dígitos o letras, pertenece a una institución bancaria, tiene una fecha de expedición, un cliente que lo recibe y un monto.

Se desea saber cuántos cheques se han expedido en un periodo determinado por el usuario, agrupados por institución bancaria y con totales por banco.

Bancos Cheques Clientes
*ban N(3) *cheq N(20) *cli N(10)
banco C(20) +ban N(3) cliente C(40)
+cli N(10)
cheque C(8)
f_exped D
monto N(15,2)

Normalización de base de datos

2009/10/07 1 comment

Referencia:
http://dl.getdropbox.com/u/1955604/Tareas/Optimizaci%C3%B3n%20de%20Sistemas%20de%20Informaci%C3%B3n/Optativa1_NormalizacionBDteoria.pdf

Diseño de una base de datos

  • A partir de los requerimientos se diseña una estructura donde se almacena la información
  • Se definen tablas, campos (nombre, tipo y longitud), índices de ordenamiento y relaciones
  • Se utiliza una metodología de normalización para evaluar si está diseñada correctamente
  • Las primeras tres formas normales son las más utilizadas, también existe la cuarta, quinta y la Boyce-Codd

Formas normales

  • Primera forma normal (1FN)
    • Identificar cada dato independiente
    • Diseñar el campo para almacenarlo
    • Para cada campo se especifica el nombre, tipo y longitud
    • El nombre debe identificar el dato que representa
    • El tipo de dato debe ser de la misma naturaleza que el dato que representa
    • La longitud debe ser suficiente para almacenar el dato que representa
    • Se agrupan campos tomando en cuenta su similitud
  • Segunda forma normal (2FN)
    • Separa campos en tablas
    • Asignar clave de ordenamiento
    • Verificar que los campos dependan directamente de la clave
    • La clave permite identificar de manera única cada registro y optimiza las búsquedas
  • Tercera forma normal (3FN)
    • Eliminar redundancia moviendo campos a otra tabla cuya información es repetitiva
    • Se debe analizar el incremento en la complejidad, costos de memoria y procesador antes de separar la tabla

Práctica 3 en Optimización de sistemas de información

2009/09/17 2 comments

Lo mismo que la práctica 2, solo que ahora tenemos un buscador por el nombre del cliente, y además, está limitado para que solo aparezcan los primeros 5 registros

Práctica 3 utilizando un buscador de datos

Práctica 3 utilizando un buscador de datos

Descargar: http://dl.getdropbox.com/u/1955604/Practica3.zip

Práctica 2 en Optimización de sistemas de información

Utilizamos un DataGridView, con las funciones agregar, modificar y eliminar. Se puede seleccionar un registro y se mostrarán los datos en los campos correspondientes.

Práctica 2 en Optimización de sistemas de información

Práctica 2 en Optimización de sistemas de información

El otro blog: http://alharita.blogspot.com/2009/09/practica-2-en-optimizacion-de-sistemas.html
Descargar: https://dl.getdropbox.com/u/1955604/Practica2.zip

Práctica 1 en Optimización de sistemas de información

2009/09/08 1 comment

En esta forma podemos agregar, modificar y eliminar un registro de una base de datos access. También podemos navegar por medio de cuatro botones, principio, atrás, adelante y final.

El propósito de la práctica es ver lo incómodo es buscar un registro cuando ya contamos con muchos en nuestra base de datos

Práctica 1 de Optimización de Sistemas de Información

Práctica 1 de Optimización de Sistemas de Información

Entra a mi blog de programación, en donde se explicará con detalle lo que sucede detrás de todo el código

http://alharita.blogspot.com/2009/09/practica-1-en-optimizacion-de-sistemas.html

También puedes descargar la práctica 1 haciendo click en el siguiente link

https://dl.getdropbox.com/u/1955604/Practica1.zip

Si se tiene alguna duda, serán respondidos en otro blog

Unidades de Optimización de Sistemas de Información

Impartida por Carlos Alfonso Gámez Carrillo, está estudiando el doctorado

Unidades

I. Optimización de interfaces
II. Optimización de la estructura de la base de datos
III. Optimización de procedimientos
IV. Optimización de algoritmos

Herramientas

  • C#
  • MySQL

Prácticas

1. Diseñar un formulario que tenga campos para capturar el número de cliente, el nombre y el domicilio, además de agregar, modificar y eliminar dicha información y 4 botones de navegación (Último, atrás, adelante y primero)
Completada aquí

2. Parecida a la práctica 1, solo que esta vez se utilizará un DataGrid en lugar de los botones de navegación

3. Parecida a la práctica 2, pero se utilizará un texto de búsqueda para minimizar resultados en el DataGrid

Follow

Get every new post delivered to your Inbox.