Lo primero que los desarrolladores deben saber sobre las bases de datos es esto: ¿para qué sirven las bases de datos ? No cómo funcionan, ni cómo construye uno, ni cómo escribe código para recuperar o actualizar los datos en una base de datos. ¿Pero para qué son?
Desafortunadamente, la respuesta a este es un objetivo en movimiento. En el apogeo de las bases de datos, desde los años setenta hasta principios de los noventa, las bases de datos eran para compartir datos. Si estaba utilizando una base de datos y no compartía datos, estaba involucrado en un proyecto académico o estaba desperdiciando recursos, incluido usted mismo. Configurar una base de datos y domesticar un DBMS fueron tareas tan monumentales que la recuperación de la inversión, en términos de datos explotados varias veces, tuvo que ser enorme para igualar la inversión.
En los últimos 15 años, las bases de datos se han utilizado para almacenar los datos persistentes asociados con una sola aplicación. Crear una base de datos para MySQL , Access o SQL Server ha vuelto tan rutinaria que las bases de datos se han convertido casi en una parte rutinaria de una aplicación ordinaria. A veces, esa misión limitada inicial se ve empujada hacia arriba por el arrastre de la misión, a medida que el valor real de los datos se hace evidente. Desafortunadamente, las bases de datos que fueron diseñadas con un solo propósito en mente a menudo fallan dramáticamente cuando comienzan a ser empujadas a un rol que abarca toda la empresa y es de misión crítica.
La segunda cosa que los desarrolladores necesitan aprender sobre las bases de datos es la vista completa del mundo centrada en los datos . La visión del mundo centrada en los datos es más diferente de la visión del mundo centrada en el proceso que cualquier cosa que la mayoría de los desarrolladores hayan aprendido. En comparación con esta brecha, la brecha entre la programación estructurada y la programación orientada a objetos es relativamente pequeña.
Lo tercero que los desarrolladores deben aprender, al menos en una descripción general, es el modelado de datos, que incluye el modelado conceptual de datos, el modelado de datos lógicos y el modelado de datos físicos.
El modelado conceptual de datos es realmente un análisis de requisitos desde un punto de vista centrado en los datos.
El modelado lógico de datos es generalmente la aplicación de un modelo de datos específico a los requisitos descubiertos en el modelado conceptual de datos. El modelo relacional se usa mucho más que cualquier otro modelo específico, y los desarrolladores necesitan aprender el modelo relacional con seguridad. Diseñar un modelo relacional poderoso y relevante para un requisito no trivial no es una tarea trivial. No puede construir buenas tablas SQL si no comprende el modelo relacional.
El modelado de datos físicos generalmente es específico de DBMS, y no necesita ser aprendido con mucho detalle, a menos que el desarrollador sea también el creador de la base de datos o el DBA. Lo que los desarrolladores deben comprender es la medida en que el diseño de la base de datos física se puede separar del diseño lógico de la base de datos, y la medida en que se puede producir una base de datos de alta velocidad simplemente modificando el diseño físico.
Lo siguiente que los desarrolladores deben aprender es que, si bien la velocidad (rendimiento) es importante, otras medidas de bondad de diseño son aún más importantes , como la capacidad de revisar y ampliar el alcance de la base de datos en el futuro, o la simplicidad de la programación.
Finalmente, cualquiera que se meta con las bases de datos debe comprender que el valor de los datos a menudo supera al sistema que los capturó .
¡Uf!