Diseño de base de datos. Mejores prácticas

En previsión del inicio del próximo flujo a razón "Base de datos" Hemos preparado un pequeño material de autor con consejos importantes para diseñar una base de datos. Esperamos que este material te sea de utilidad.

Diseño de base de datos. Mejores prácticas

Las bases de datos están en todas partes: desde los blogs y directorios más simples hasta sistemas de información confiables y grandes redes sociales. Si la base de datos es simple o compleja no es tan importante como lo es diseñarla correctamente. Cuando una base de datos se diseña sin pensar y sin una comprensión clara del propósito, no sólo es ineficaz, sino que seguir trabajando con la base de datos será un verdadero tormento, un bosque impenetrable para los usuarios. A continuación se ofrecen algunos consejos de diseño de bases de datos que le ayudarán a crear un producto útil y fácil de usar.

1. Determinar para qué sirve la mesa y cuál es su estructura

Diseño de base de datos. Mejores prácticas

Hoy en día, los métodos de desarrollo como Scrum o RAD (Rapid Application Development) ayudan a los equipos de TI a desarrollar bases de datos rápidamente. Sin embargo, en aras del tiempo, es muy grande la tentación de lanzarse directamente a construir una base, imaginando vagamente cuál es el objetivo en sí, cuáles deberían ser los resultados finales.
 
Es como si el equipo se concentrara en un trabajo eficiente y rápido, pero esto es un espejismo. Cuanto más y más rápido se sumerja en la profundidad del proyecto, más tiempo le llevará identificar y cambiar errores en el diseño de la base de datos.

Entonces, lo primero que debes decidir es definir el propósito de tu base de datos. ¿Para qué tipo de aplicación se está desarrollando la base de datos? ¿El usuario solo trabajará con registros y deberá prestar atención a las transacciones, o estará más interesado en el análisis de datos? ¿Dónde debería desplegarse la base? ¿Seguirá el comportamiento de los clientes o simplemente gestionará las relaciones con ellos? 

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

2. ¿Qué datos debo elegir para el almacenamiento?

Diseño de base de datos. Mejores prácticas

Planifique con anticipación. Pensamientos sobre lo que hará en el futuro el sitio o sistema para el cual se está diseñando la base de datos. Es importante ir más allá de los simples requisitos de las especificaciones técnicas. Simplemente no empiece a pensar en todos los tipos posibles de datos que un usuario alguna vez almacenará. En su lugar, piense si los usuarios podrán escribir publicaciones, cargar documentos o fotografías, o intercambiar mensajes. Si este es el caso, entonces necesita asignarles espacio en la base de datos.

Trabaje con el equipo, departamento u organización para el cual se respaldará la base de diseño en el futuro. Comuníquese con personas de diferentes niveles, desde especialistas en servicio al cliente hasta jefes de departamento. De esta forma, con la ayuda del feedback, tendrás una idea clara de los requisitos de la empresa. 

Inevitablemente, las necesidades de los usuarios incluso dentro del mismo departamento entrarán en conflicto. Si se encuentra con esto, no tema confiar en su propia experiencia y encontrar un compromiso que se adapte a todas las partes y satisfaga 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. Modele los datos con cuidado

Diseño de base de datos. Mejores prácticas

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

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

Los modelos conceptuales describen entidades y los tipos de datos que incluyen, así como las relaciones entre ellas. Divida sus datos en fragmentos lógicos: esto hace la vida mucho más fácil.
Lo principal es la moderación, no te excedas.

Si una entidad es muy difícil de clasificar en una palabra o frase, entonces es momento de utilizar subtipos (entidades hijas).

Si una entidad lleva su propia vida, tiene atributos que describen su comportamiento y su apariencia, así como relaciones con otros objetos, entonces puede usar con seguridad no solo un subtipo, sino también un supertipo (entidad principal). 

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

Los modelos conceptuales se implementan utilizando modelos lógicos. Estos modelos son como una hoja de ruta para el diseño de bases de datos físicas. En el modelo lógico, se identifican entidades de datos comerciales, se determinan los tipos de datos y se determina el estado de la clave de regla que regula las relaciones entre los datos.

Luego se compara el Modelo Lógico de Datos con la plataforma DBMS (sistema de gestión de bases de datos) preseleccionada y se obtiene un Modelo Físico. Describe cómo se almacenan físicamente los datos.

4. Utilice los tipos de datos correctos

Diseño de base de datos. Mejores prácticas

El uso de un tipo de datos incorrecto puede generar datos menos precisos, dificultades para unir tablas, dificultades para sincronizar atributos y tamaños de archivos inflados.
Para garantizar la integridad de la información, un atributo debe contener sólo tipos de datos que le sean aceptables. Si se ingresa 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 un mínimo de columnas vacías con un valor NULL. Si crea todas las columnas como NULL, es un gran error. Si necesita una columna vacía para realizar una función comercial específica, cuando los datos son desconocidos o aún no tienen sentido, no dude en crearla. Después de todo, no podemos completar las columnas "Fecha de muerte" o "Fecha de despido" de antemano, no somos predictores que apuntan con el dedo al cielo :-).

La mayoría del software de modelado (ER/Studio, MySQL Workbench, SQL DBM, gliffy.com) data le permite crear prototipos de regiones de datos. Esto garantiza no sólo el tipo de datos correcto, la lógica de la aplicación y el buen rendimiento, sino también que el valor sea requerido.

5. Vuélvete natural

Diseño de base de datos. Mejores prácticas

Al decidir qué columna de una tabla usar como clave, considere siempre qué campos puede editar el usuario. Nunca los elijas como clave: es una mala idea. Cualquier cosa puede pasar, pero debes asegurarte de que sea único.

Lo mejor es utilizar una clave natural o empresarial. Tiene un significado semántico, por lo que evitarás duplicaciones en la base de datos. 

A menos que la clave comercial sea única (nombre, apellido, puesto) y se repita en diferentes filas de la tabla o deba cambiar, entonces la clave artificial generada debe designarse como clave principal.

6. Normalizar con moderación

Diseño de base de datos. Mejores prácticas

Para organizar eficazmente los datos en una base de datos, es necesario seguir un conjunto de pautas y normalizar la base de datos. Hay cinco formas normales a seguir.
Con la normalización, evita la redundancia y garantiza la integridad de los datos utilizados en su aplicación o sitio.

Como siempre, todo debe ser con moderación, incluso la normalización. Si hay demasiadas tablas en la base de datos con las mismas claves únicas, entonces se ha dejado llevar y ha sobrenormalizado la base de datos. La normalización excesiva afecta negativamente el rendimiento de la base de datos.

7. Pruebe temprano, pruebe con frecuencia

Diseño de base de datos. Mejores prácticas

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

La mejor manera de probar su base de datos es mediante la Integración Continua. Simule un escenario de “un día en la vida de una base de datos” y verifique si se manejan todos los casos extremos y qué interacciones del usuario son probables. Cuanto antes encuentre errores, más ahorrará tiempo y dinero.

Estos son sólo siete consejos que puede utilizar para diseñar una excelente base de datos de productividad y eficiencia. Si los sigues, evitarás la mayoría de dolores de cabeza en el futuro. Estos consejos son sólo la punta del iceberg en el modelado de bases de datos. Hay una gran cantidad de trucos para la vida. ¿Cuáles usas?

Fuente: habr.com

Añadir un comentario