Ciclo de Vida de una Base de Datos
Durante el Ciclo de Vida del Desarrollo de Sistemas, los profesionales se encuentran en la búsqueda de soluciones a través
de la arquitectura de datos y del diseño de las aplicaciones del sistema de información.
Para ello,
es conveniente precisar que entendemos por:
Diseño de la Aplicación: corresponde al diseño lógico que define
los requerimientos de información actual y futura, funciones a ejecutar, elementos de datos, seguridad, claves, relaciones,
etc.
Diseño de Base de Datos: corresponde al Diseño físico que provee estructuras
y métodos de acceso para implantar la aplicación, rendimiento, copia de respaldo (backup), recuperación (restore), seguridad,
etc.
Ejemplo 1
Consideraciones Típicas de Diseño
Por lo general,
existen una serie de consideraciones típicas que deben adoptarse para realizar el diseño de base de datos. Estas son por lo
general las siguientes:
Flexibilidad y complejidad de las necesidades de usuarios.
Seguridad
Rendimiento
Tiempo de desarrollo
Independencia de datos
Almacenamiento (espacio) en disco
Tiempo de mantenimiento
Tiempo de backup y recuperación
En consecuencia,
durante el diseño de base de datos se debe BALANCEAR la "rapidez del tiempo de respuesta" y "espacio de almacenamiento" con
la "facilidad de uso".
Aproximaciones del Diseño
Cuando se entra en la fase de diseño, surgen una serie de alternativas
o aproximaciones que se realizan mentalmente, estas son:
a) Aproximación Intuitiva del Diseño, en donde se trata de
responder:
1. ¿Qué‚ datos se necesitan?
2. ¿Qué‚ relación hay entre ellos?
3. ¿Cómo se recuperan los datos?
4. ¿Cuáles son las claves?
5. ¿Cuáles son las claves de acceso rápido?
6. Dibuje la base de datos y optimice.
b) Aproximación Funcional, tratando de responder:
1. ¿Qué funciones se ejecutarán?
2. ¿Qué información se necesitará para cada función?
3. Agrupar información por función
4. Identificar relaciones
5. Dibujar la base de datos y optimizar.
Decisiones Comunes en el Diseño
Paralelamente al
proceso mental de diseño, surgen una serie de consideraciones referidas a:
1) Selección de clave de acceso.
1. ¿Cómo buscan datos los usuarios?
2. ¿Qué‚ otras claves se necesitan para acceso rápido
o frecuente?
Debe considerarse:
¿Cuántas? ¿Cuán rápido? ¿Cuán frecuente? y su impacto en el rendimiento (performance).
2) Selección de accesos.
1. ¿Cómo se relaciona cada ítem con todos los demás?
2. ¿Qué‚ se necesita para describir una entidad?
3. ¿Qué‚ se necesita para ejecutar una función?
Para lo cual es
necesario establecer las relaciones:
Uno a Uno (1::1)
Uno a Muchos (1::n)
Muchos a Muchos (n::m)
3) Selección de definición física de accesos.
Si las claves de
acceso son numerosas e impredecibles, entonces la definición debe ser automática.
Si los valores
de las claves deben ser validados, entonces la definición debe ser manual.
Si es necesario
almacenar datos adicionales con la clave, entonces la definición debe ser manual.
4) Selección de la capacidad de almacenamiento.
1. ¿Cuál es la capacidad necesaria para almacenar todos los
registros?
2. ¿Cuánto y cuán rápido crecerá la base de datos?
Teniendo
en cuenta consideraciones tales como:
Espacio en disco
Tipo de acceso físico
Tiempo de obtención de la copia de respaldo y recuperación
(backup / restore)
5) Selección de Tipo de usuario (único versus múltiples).
1. ¿Debe tener alguna función acceso exclusivo a base de datos?
2. ¿Los usuarios en consulta deben ser protegidos de las modificaciones
de otros?
3. ¿Los usuarios que modifican deben ser protegidos de otras
modificaciones?
Teniendo en cuenta
las consideraciones:
Impacto en rendimiento (performance)
Modos de acceso (apertura de base de datos)
Niveles de bloqueo (locking)
6) Selección del tipo de transacción (Batch versus On-line).
1. ¿La información que manipula es estética y/o dinámica?
2. ¿Cuán actualizada debe ser la información?
3. ¿Las modificaciones a datos "clave" debe realizarse On-line?
Teniendo en cuenta
las consideraciones:
Impacto en el rendimiento (performance)
Necesidad de los usuarios
7) Selección del proceso de copia de respaldo (backup) y recuperación.
1. ¿Cuán críticos son estos datos para la operación del negocio
de la empresa?
2. ¿Cuán seguido deben estar los datos disponibles para los
usuario? (horas por día, días por semana, etc.)
3. ¿Qué pérdida de datos podríamos soportar en el caso de una
falla catastrófica?
4. ¿Cuánto tiempo podemos perder en la recuperación?
Teniendo en cuenta
las consideraciones:
Tiempo de backup / restore
Impacto en rendimiento de logging.
Metodología
Es una colección
de técnicas basadas sobre una filosofía común o una forma de trabajo, que se establece en conjunto sobre una plataforma llamada
Ciclo de Vida del Desarrollo de Sistemas o simplemente Ciclo de Vida.
La metodología corresponde a
un conjunto de modelos, lenguajes y otras herramientas que nos facilitan la representación de los datos de cada fase del proceso
(análisis, diseño, construcción, etc.) junto con las reglas que permiten el paso de una fase a la siguiente.
Técnica
Es un procedimiento
para realizar alguna parte significativa del Ciclo de Vida de Desarrollo de Sistemas. Se han desarrollado muchas técnicas,
por ejemplo para la definición de requerimientos, para diseño de base de datos, para diseño computacional de aplicaciones,
para diseño de programas, para desarrollo de pruebas de implantación, para prototipos, y muchas más.
Para Edward Yourdon,
las técnicas son procedimientos similares a las recetas de un "Libro de Cocina" que ayudan a los profesionales a ir desde
una hoja de papel (pantalla), a un bien organizado modelo o diseño relacionado a un sistema o componente del mismo.
Herramienta
Las técnicas utilizan
a menudo una variedad de herramientas que se desarrollan para tal fin; es decir, una herramienta es cualquier recurso particular
a disposición de la metodología para realizar las operaciones que en ella se prevea. Estas generalmente están orientadas a:
Diagramas, como expresiones gráficas para modelar los requerimientos y la arquitectura del sistema de información o componente
del mismo.
Entre los más usados
tenemos:
Diagrama de Flujo de Datos (Data Flow Diagram)
Diagrama de Entidad Relación (Entity Relation Diagram)
Diagrama de Descomposición Funcional (Functional Decomposition
Diagram)
Diagramas para O-O (de clases, de objetos, etc.)
Formatos, que corresponden
a documentos estandarizados para facilitar la documentación y comunicación.
Repositorio, Diccionario
o Enciclopedia, que es una base de datos utilizada como soporte en el Ciclo de Vida del Desarrollo de Sistemas de Información
con base de datos. Permiten describir y registrar las características o atributos de cada componente u objeto de un sistema
o base de datos.
Especificaciones
Lógicas, que permiten definir las unidades procedurales de un sistema o primitivas (funciones básicas) como lo llaman algunos
autores. Por ejemplo: tablas de decisión, diagramas de acción, etc.
Ken Orr dice: "Las
herramientas tienen significado o toman vida dentro del contexto de la técnica o método del cual forman parte. Los diagramas
por si solos pueden ser mal interpretados o usados fuera de su contexto, sin comprender el propósito para el cual fueron creados,
ello puede llevar a confusiones y de ser así el desarrollo efectuado en base a aquellas premisas podría conducir a resultados
incorrectos".
Herramientas para la gestión completa de Bases de Datos
Las herramientas
ofrecen potentes funciones para la automatización y el mantenimiento del ciclo de vida completo de una base de dato Realiza
de forma transparente, las tareas más tediosas y repetitivas.
Ejemplo 2
Fase de Diseño
Disponen de una
sofisticada interfaz visual que le permite diseñar de forma precisa las bases de datos, capturando todos los detalles de la
información que debe manejar. Los mecanismos de automatización y mantenimiento ayudan a completar el análisis y diseño de
las bases de datos de manera completa e íntegra. Puede contener:
·
Ingeniería
inversa y directa
·
Completas
funciones gráficas para manejar proyectos complejos
·
Funciones
de adaptación de los diferentes editores y diccionarios de datos
·
Potentes
mecanismos de automatización de las relaciones de las bases de datos, claves, índices, etc.
·
Mecanismos
de herencia de atributos definibles por usuario
·
Validación
de objetos de la base de datos
Fase de Presentación
Una vez completado el diseño de la base de datos, se generan diagramas de alta calidad, destinados a la presentación de su
diseño desde diferentes puntos de vista y con varios niveles de detalle. Permite adaptar la presentación de cara a sus clientes
o compañeros, facilitando así el proceso iterativo de análisis, diseño y presentación. La presentación permite:
·
Controlar
los colores, letras, anotaciones y otros elementos gráficos
·
Resaltar
gráficamente las relaciones padre/hijo
·
Dividir
su diseño en múltiples diagramas más manejables
·
Incrustar
un diagrama en otro
·
Almacenar
múltiples visualizaciones para un mismo diagrama
·
Utilizar
funciones de navegación y zoom
Fase de Documentación
Una vez presentado
el modelo de datos, es muy importante documentar su diseño, ya que éste constituye los cimientos de su futura aplicación.
Aquí se pueden automatizar las tareas para la impresión de diagramas e informes con sus propios comentarios y atributos personales.
Fase de Generación del Código
Tras haber documentado ampliamente el proyecto, es necesario la generación de todo el código relacionado con la base de datos
como:
·
Código
DDL (Data Definition Language) para crear la base de datos
·
Triggers
y procedimientos almacenados para garantizar la integridad de los datos
·
Vistas
y consultas para extraer datos
·
Código
orientado a objeto que ofrece todos aquellos metadatos que su aplicación front-end pueda precisar.
Fase de Gestión de los Datos Físicos
Se debe tener la
capacidad de establecer un enlace directo entre el dominio conceptual y los datos físicos, de manera que resulta inmediato
mover datos de una base de datos a otra, generar datos de prueba, y ver y editar datos físicos garantizando su integridad.
Se debe poder:
·
Migrar
automáticamente los datos de una base de datos a otra diferente, construyendo la nueva base de datos si es necesario y realizando
las oportunas conversiones.
·
Validar
los datos físicos para comprobar si cumplen las restricciones del modelo, se respeta la unicidad, no existen registros huérfanos
y los campos enumerados contienen valores correctos, entre otras cosas.
·
Ver
y editar datos físicos.
Fase de Mantenimiento
Finalmente, la aplicación
está instalada y funcionando. De todas formas, es muy probable que su diseño requiera modificaciones y mejoras en un breve
espacio de tiempo.
Puesto que un modelo
se compone de muchos metadatos interrelacionados, cualquier cambio puede tener muchas implicaciones. Por ejemplo, cuando añade
un nuevo elemento a una clave primaria, es necesario crear claves foráneas, modificar o crear índices primarios y foráneos,
cambiar reglas de integridad referencial, modificar vistas y triggers, etc.
Aspectos comunes
De los ciclos de vida anteriores podemos observar que en los dos casos existe el diseño como primer punto, refiriéndose a
grandes rasgos cómo va a ser nuestra futura base de datos. Incluyendo todos los campos de información necesaria que se va
a utilizar, las descripciones, el rendimiento que se desea tener, la complejidad, el almacenamiento.
Todo esto servirá para darnos una idea de cómo tendremos una base de datos, y poder saber si es factible o no llevarla a cabo.
El segundo punto
del primer ejemplo del ciclo de vida se refiere a las aproximaciones del diseño y en el segundo ejemplo a la fase de presentación.
En la primera se trata por medio de preguntas mejorar el diseño anterior y abarcar más para poder concretar la base de datos
al igual que representar por medios gráficos como quedaría la base de datos en un futuro. El segundo caso genera diagramas
de alta calidad con diferentes puntos de vista para poder escoger la mejor presentación, También se eligen colores, texturas,
letras, anotaciones entre otros.
En el tercer punto del primer ejemplo se trata de las decisiones comunes en el diseño. En donde paralelamente al proceso mental
de diseño, surgen una serie de consideraciones referidas a la selección de clave de acceso, selección de accesos, selección
de definición física de accesos, selección de capacidad de almacenamiento, selección de tipo de usuario, selección del tipo
de transacción, selección del proceso de copia de respaldo y recuperación. Todo esto se refiera a cómo hacer efectivo e implantar
el punto uno y dos que hablaban del diseño. Ya se decide como realizar lo estudiado, la administración que se va a llevar,
el mantenimiento. Es decir en el tercer punto del primer ejemplo se engloban muchas actividades que terminan por crear la
base de datos.
El tercer
punto del segundo ejemplo nos habla de la documentación que es donde se empiezan a generar los cimientos de lo que será nuestra
base de datos.
El cuarto punto del segundo ejemplo es la generación del código, es aquí donde surge la base de datos y se puede llevar a
cabo con diferentes lenguajes.
El quinto
punto se refiere al gestor de la base de datos físicos que es el encargado de poder realizar los enlaces directos entre el
dominio conceptual y los datos físicos, de manera que resulte inmediato mover datos de una base de datos a otra, siempre y
cuando se garantice su integridad.
El sexto punto es el mantenimiento. Este punto es muy importante después de haber implantado y terminado la base de datos
ya que ayuda a que no decaiga y se siga realizando todo a como se dispuso en su diseño e implementación. También es necesario
el mantenimiento en caso de crecimiento o necesidad de hacer campos nuevos.
Por conclusión tenemos
que todo método es factible siempre y cuando se construya una base de datos con transparencia, integridad y automatizada.
Sin importar el número de pasos que llegue a tener su método. Además que es de suma importancia tener mantenimiento continuo
en las bases de datos, para estar monitoreando sus actividades y determinar si son necesarios cambios o no.
Propuesta del ciclo de vida del desarrollo de la base de datos
Estudiar necesidades
Definición de requisitos
Diseño
Presentación
Documentación
Implementación
Mantenimiento