sql >> Base de Datos >  >> RDS >> Database

Diseño de base de datos

He estado practicando técnicas de bases de datos ágiles durante unos veinte años. Mi uso de estas técnicas no comenzó como un plan establecido; más bien, evolucionó con el tiempo mientras consultaba sobre varios proyectos. Tenía sentido buscar formas de trabajar más rápido y con una mayor interacción con el cliente.

Puedo pensar en al menos tres tipos de técnicas de bases de datos ágiles:

  • Modelado de datos
  • Desarrollo de almacenes de datos
  • Ingeniería inversa de bases de datos

Modelado ágil de datos

Muchos piensan que el modelado de datos es una tarea laboriosa. Pero ese no tiene por qué ser el caso. Puede sacar el modelado de datos de la trastienda y hacerlo frente a un cliente. Podría pensar que los clientes se desanimarían por la sangre técnica, pero no es así. El personal de negocios tiene pasión por su trabajo y una visión de adónde quiere ir. Están encantados de tener TI como un facilitador en lugar de un obstáculo.

Para un modelado de datos ágil, un desarrollador debe hacer lo siguiente:

  • Manejar con fluidez los conceptos de modelado de datos y una herramienta de modelado de datos.
  • Consiga una multitud amistosa para sus primeras veces. Tienes que probar tus técnicas con una audiencia cariñosa hasta que ganes confianza.
  • Tenga al menos un campeón de negocios en la audiencia:alguien que reciba el resultado de su trabajo, alguien que comprenda profundamente el negocio y ayude a impulsar a otros a llegar a un consenso.
  • Tener un proyecto sólido con un objetivo claro y una justificación comercial.

Con el modelado de datos ágil, los desarrolladores trabajan rápidamente y entregan revisiones de modelos frecuentes. Prefiero que las sesiones de modelado de datos no duren más de dos horas. Estas sesiones son intensas, con todos discutiendo ideas. Después de dos horas, los participantes necesitarán un descanso. También necesitará tiempo para limpiar el modelo y ponerse al día con la documentación.

Las técnicas ágiles se aplican a todas las facetas del modelado de datos, incluidos los sistemas operativos diarios, los almacenes de datos, los modelos de datos maestros y los modelos de datos empresariales.

Técnicas de desarrollo de almacenes de datos ágiles

Las técnicas ágiles también son importantes cuando se construye un almacén de datos. Específicamente, hay dos áreas en las que hemos estado aplicando estas técnicas al desarrollo de almacenes.

El primero es preparación de datos . Es una buena práctica utilizar tablas intermedias de preparación para proteger el almacén propiamente dicho de las fuentes operativas. Las tablas de preparación duplican los datos operativos y agregan metadatos, como el sistema de origen, la fecha de procesamiento, la marca de tiempo efectiva y la marca de tiempo de caducidad. Actualmente, la mayoría de los desarrolladores procesan datos de preparación con código ETL personalizado. (ETL es un acrónimo de Extraer, Transformar y Cargar). Hay al menos una herramienta (Datos A2B) que automatiza la creación y el llenado de esquemas de tablas provisionales.

También estamos utilizando técnicas ágiles para mejorar el procesamiento de datos del almacén . Para esto, preferimos una combinación de ETL y SQL. ETL se usa para tablas centrales con lógica compleja, mientras que SQL se usa para tablas periféricas, y hay muchas de ellas en un almacén típico. Es aproximadamente 10 veces más rápido escribir SQL que ETL. El código SQL también es más fácil de evolucionar y probar. Razonablemente, puede esperar reemplazar ETL con SQL para aproximadamente la mitad de las tablas; la cantidad exacta depende de la complejidad del almacén y de tus conocimientos de SQL.

Estas mejoras reducen la cantidad de código ETL que se necesita escribir mientras se implementa donde es más valioso:para grandes conjuntos de datos con múltiples fuentes para integrar y procesar.

Agilidad en ingeniería inversa de bases de datos

También utilizamos técnicas ágiles durante la ingeniería inversa. La ingeniería inversa toma un diseño existente y trabaja hacia atrás para inferir la intención lógica subyacente. La ingeniería inversa de bases de datos puede tener varias motivaciones. Es posible que esté convirtiendo de una plataforma de base de datos a otra. O puede estar tratando de comprender mejor el modelo con fines de mantenimiento. O puede estar tratando de salvar los requisitos implícitos en un esquema para que los tenga en cuenta el nuevo software.

Por lo general, comenzamos analizando el esquema existente. Un esquema a menudo está disponible y es algo que podemos estudiar rápidamente. Podemos aumentar esto con otros recursos, como documentación, datos y conversaciones con desarrolladores.

Una herramienta de modelado de datos es un recurso importante para estudiar el esquema. La mayoría de las herramientas pueden importar el esquema SQL para que pueda ver las tablas y cómo se conectan entre sí. A menudo, eso es suficiente para el análisis de ingeniería inversa.

Técnicas de bases de datos ágiles:la lección

El desarrollo ágil es un tema popular que tiene varias implicaciones para las bases de datos. Un enfoque ágil es útil para el modelado de datos, el desarrollo de almacenes de datos y la ingeniería inversa de bases de datos.

Michael Blaha es un consultor y formador que se especializa en concebir, diseñar, modelar, diseñar y ajustar bases de datos. Ha trabajado con decenas de organizaciones en todo el mundo. El Dr. Blaha es autor de siete patentes estadounidenses, siete libros, muchos artículos y dos cursos en video. Su publicación más reciente es el Agile Data Warehouse Design Video curso de O'Reilly. Recibió su doctorado de la Universidad de Washington en St. Louis y es alumno de GE Global Research en Schenectady, Nueva York. Puedes encontrar más información en su perfil de LinkedIn o en superdataguy.com.