Diseño de Bases de Datos. Mejores prácticas

En la antesala del inicio de otro flujo del curso «Bases de Datos» hemos preparado un pequeño material autoral con importantes consejos sobre la construcción de bases de datos. Esperamos que este material sea útil para ti.

Diseño de Bases de Datos. Mejores prácticas

Las bases de datos están en todas partes: desde los blogs más simples y directorios hasta sistemas de información robustos y grandes redes sociales. No es tan importante si la base de datos es simple o compleja, sino que es crucial diseñarla correctamente. Cuando una base está diseñada sin pensar y sin un claro entendimiento del objetivo, no solo es ineficaz, sino que trabajar con ella se convierte en un verdadero tormento, una selva impenetrable para los usuarios. Aquí hay algunos consejos sobre la construcción de bases de datos que ayudarán a crear un producto útil y fácil de usar.

1. Define para qué es la tabla y cuál es su estructura

Diseño de Bases de Datos. Mejores prácticas

Hoy en día, métodos de desarrollo como Scrum o RAD (desarrollo rápido de aplicaciones) ayudan a los equipos de TI a desarrollar bases de datos rápidamente. Sin embargo, en la carrera contra el tiempo, es muy tentador sumergirse de inmediato en la construcción de la base, teniendo una idea vaga de cuál es el objetivo y cuáles deben ser los resultados finales.
 
Es como si el equipo se enfocara en un trabajo eficiente y rápido, pero eso es un espejismo. Cuanto más se profundiza en el proyecto, más tiempo se requerirá para identificar y corregir errores en el diseño de la base.

Por lo tanto, lo primero que hay que resolver es definir el objetivo para tu base de datos. ¿Para qué tipo de aplicación se está desarrollando la base? ¿El usuario solo trabajará con registros y se necesita prestar atención a las transacciones o está más interesado en el análisis de datos? ¿Dónde debe desplegarse la base? ¿Deben rastrear el comportamiento de los clientes o solo gestionar las relaciones entre ellos? 

Cuanto antes responda el equipo de diseño a estas preguntas, más suave y fluido será el proceso de diseño de la base de datos.

2. ¿Qué datos seleccionar para almacenar?

Diseño de Bases de Datos. Mejores prácticas

Planifica con anticipación. Piensa en lo que hará el sitio o sistema en el futuro, para el cual se está diseñando la base de datos. Es importante ir más allá de los simples requisitos del documento técnico. Solo, por favor, no empieces a pensar de inmediato en todos los posibles tipos de datos que el usuario pueda almacenar. Es mejor considerar si los usuarios podrán escribir publicaciones, cargar documentos o fotos, o intercambiar mensajes. Si es así, entonces la base de datos debe tener espacio para ellos.

Trabaja con el equipo, departamento u organización para los cuales se mantendrá en el futuro la base de datos diseñada. Comunícate con personas de diferentes niveles, desde especialistas en atención al cliente hasta jefes de departamento. Así, mediante retroalimentación, obtendrás una visión clara de los requisitos de la empresa. 

Inevitablemente, las necesidades de los usuarios dentro de un mismo departamento entrarán en conflicto. Si te enfrentas a esto, no temas apoyarte en tu propia experiencia y encontrar un compromiso que satisfaga a todas las partes y cumpla con el objetivo final de la base de datos. Ten la seguridad: en el futuro recibirás +100500 en karma y una montaña de galletas.

3. Modela los datos con cuidado

Diseño de Bases de Datos. Mejores prácticas

Hay varios puntos clave a los que debes prestar atención al modelar datos. Como mencionamos anteriormente, el propósito de la base de datos determina qué métodos utilizar al modelar. Si estamos diseñando una base de datos para procesamiento de registros en tiempo real (OLTP), es decir, para crear, editar y eliminar, utilizamos el modelado de transacciones. Si la base de datos debe ser relacional, es mejor aplicar modelado multidimensional.

Durante el modelado se construyen modelos conceptuales (CDM), físicos (PDM) y lógicos (LDM) de datos. 

Los modelos conceptuales describen las entidades y los tipos de datos que incluyen, así como las relaciones entre ellos. Divide tus datos en partes lógicas; así será mucho más fácil de manejar.
Lo principal es la medida, no te excedas.

Si una entidad es muy difícil de clasificar con una sola palabra o frase, es hora de usar subtipos (entidades hijas).

Si la entidad tiene vida propia, tiene atributos que describen su comportamiento y aspecto, así como relaciones con otros objetos, entonces se puede usar no solo el subtipo, sino también el supertipo (entidad padre). 

Si se ignora esta regla, otros desarrolladores se confundirán con su modelo y no comprenderán completamente los datos y las reglas para recopilarlos.

Los modelos conceptuales se implementan mediante modelos lógicos. Estos modelos son como un mapa para diseñar una base de datos física. En el modelo lógico, se destacan las entidades de los datos empresariales, se definen los tipos de datos, el estado del clave y las reglas que regulan las relaciones entre los datos.

Luego, el modelo lógico de datos se mapea a la plataforma de DBMS (sistemas de gestión de bases de datos) elegida con anticipación. gestión de bases de datos) y se obtiene el modelo físico. Este describe la forma física de almacenamiento de los datos.

4. Use tipos de datos adecuados

Diseño de Bases de Datos. Mejores prácticas

El uso de tipos de datos incorrectos puede llevar a datos menos precisos, dificultades en la unión de tablas, sincronización de atributos y al aumento del tamaño de archivos.
Para garantizar la integridad de la información, un atributo debe contener solo los tipos de datos aceptables. Si se introduce la edad en la base de datos, asegúrese de que la columna almacene números enteros de un máximo de 3 dígitos.

Cree el menor número posible de columnas vacías con valor NULL. Si crea todas las columnas como NULL, es un error grave. Sin embargo, si necesita una columna vacía para realizar una función empresarial específica, cuando los datos son desconocidos o aún no tienen sentido, hágalo sin dudar. Después de todo, no podemos llenar de antemano las columnas de “Fecha de fallecimiento” o “Fecha de despido”, no somos adivinos para señalar al azar :-).

La mayoría del software de modelado (ER/Studio, MySQL Workbench, SQL DBM, gliffy.com) permite crear prototipos de áreas de datos. Esto garantiza no solo el tipo de datos correcto, la lógica de la aplicación y un buen rendimiento, sino también la asignación obligatoria de valores.

5. Prefiera lo natural

Diseño de Bases de Datos. Mejores prácticas

Cuando decidas qué columna en la tabla elegir como clave, siempre presta atención a qué campos puede editar el usuario. Nunca selecciones esos como clave: es una mala idea. Puede ocurrir cualquier cosa y debes garantizar la unicidad.

Es mejor utilizar una clave natural o de negocio (natural key). Tiene un significado semántico, así evitarás la duplicación en la base de datos. 

A menos que la clave de negocio no sea única (nombre, apellido, puesto) y se repita en diferentes filas de la tabla o deba cambiarse, entonces es recomendable asignar como clave primaria una clave artificial o de sustitución (artificial key) generada.

6. Normaliza con moderación

Diseño de Bases de Datos. Mejores prácticas

Para organizar eficazmente los datos en la base de datos, es necesario seguir un conjunto de recomendaciones y normalizar la base de datos. Existen cinco formas normales que deben seguirse.
Con la normalización evitarás la redundancia y asegurarás la integridad de los datos que se utilizan en la aplicación o en el sitio web.

Como siempre, todo debe hacerse con moderación, incluso la normalización. Si hay demasiadas tablas en la base de datos con las mismas claves únicas, te has excedido y normalizado en exceso la base de datos. La normalización excesiva afecta negativamente el rendimiento de la base de datos.

7. Prueba temprano, prueba a menudo

Diseño de Bases de Datos. Mejores prácticas

El plan de pruebas y las pruebas adecuadas deben ser parte del diseño de la base de datos.

Lo mejor es probar la base de datos mediante la Integración Continua (Continuous Integration). Modela el escenario 'Un día en la vida de la base de datos' y verifica si se manejan todos los casos límite, cuáles interacciones de usuarios son probables. Cuanto antes encuentres errores, más ahorrarás tanto en tiempo como en dinero.

Estos son solo siete consejos con los que puedes diseñar una gran base de datos en cuanto a rendimiento y eficiencia. Si los sigues, evitarás la mayoría de los dolores de cabeza en el futuro. Estos consejos son solo la punta del iceberg en la modelación de bases de datos. Hay un gran número de trucos. ¿Cuáles usas tú?

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster