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

En previsión del inicio de la próxima transmisión en el curso de Bases de datos, preparamos un pequeño material de autor con consejos importantes para diseñar la base de datos. Esperamos que este material te sea útil.




Las bases de datos están en todas partes: desde simples blogs y directorios hasta sistemas de información confiables y grandes redes sociales. No es tan importante, una base de datos simple o compleja, cuánto es esencial diseñarla correctamente. Cuando la base se diseña sin pensar y sin una comprensión clara de la meta, no solo no es efectiva, sino que el trabajo adicional con la base será un verdadero tormento, un bosque infranqueable para los usuarios. Aquí hay algunos consejos de diseño de bases de datos para ayudarlo a crear un producto útil y fácil de usar.

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




Hoy en día, los métodos de desarrollo como Scrum o RAD (desarrollo rápido de aplicaciones) ayudan a los equipos de TI a desarrollar rápidamente bases de datos. Sin embargo, en la búsqueda del tiempo, la tentación es muy grande para sumergirse en la construcción de la base, imaginando vagamente cuál es el objetivo, cuáles deberían ser los resultados finales.

Como si el equipo estuviera enfocado en un trabajo eficiente y de alta velocidad, pero esto es un espejismo. Cuanto más lejos y más rápido profundice en el proyecto, más tiempo se necesitará para identificar y cambiar los errores en la base del proyecto.

Por lo tanto, lo primero que debe decidir es determinar el propósito de su base de datos. ¿Para qué tipo de aplicación se desarrolla la base de datos? ¿El usuario solo trabajará con registros y deberá prestar atención a las transacciones o está más interesado en el análisis de datos? ¿Dónde se debe desplegar la base? ¿Hará un seguimiento del comportamiento del cliente o simplemente gestionará la relación entre ellos?

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

2. ¿Qué datos elegir para el almacenamiento?




Planifica con anticipación. Reflexiones sobre lo que hará el sitio o el sistema en el futuro para el que se está diseñando la base de datos. Es importante ir más allá de los requisitos simples de las especificaciones técnicas. Solo por favor, no empiece a pensar de inmediato en todos los tipos de datos posibles que el usuario alguna vez almacenará. Piense mejor si los usuarios pueden publicar, cargar documentos o fotos, o intercambiar mensajes. Si es así, en la base de datos debe asignarles espacio.

Trabaje con un equipo, departamento u organización para el cual se apoyará la base del proyecto en el futuro. Conéctese con personas de todos los niveles, desde especialistas en servicio al cliente hasta jefes de departamento. Entonces, con la ayuda de los comentarios, obtienes una idea clara de los requisitos de la empresa.

Inevitablemente, las necesidades de los usuarios dentro de un solo departamento entrarán en conflicto. Si encuentra esto, no tenga miedo de confiar en su propia experiencia y encuentre un compromiso que se adapte a todas las partes y satisfaga el objetivo final de la base de datos. Asegúrese: en el futuro, +100500 en karma y una montaña de galletas volarán hacia usted.

3. Modelar datos con cuidado




Hay varios puntos clave a considerar al modelar datos. Como dijimos anteriormente, depende del propósito de la base de datos qué métodos usar en la simulación. Si diseñamos una base de datos para el procesamiento operativo de registros (OLTP), en otras palabras, para crearlos, editarlos y eliminarlos, entonces usamos el modelado de transacciones. Si la base de datos debe ser relacional, lo mejor es el modelado multidimensional.

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

Los modelos conceptuales describen las entidades y los tipos de datos que incluyen, así como las relaciones entre ellos. Divide tus datos en fragmentos lógicos: es mucho más fácil vivir.
Lo principal es una medida, no exagere.

Si una entidad es muy difícil de clasificar en una palabra o frase, entonces es hora de usar subtipos (entidades secundarias).

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

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

Los modelos conceptuales se implementan utilizando los lógicos. Estos modelos son como una hoja de ruta para diseñar una base de datos física. En el modelo lógico, se distinguen las entidades de datos comerciales, se determinan los tipos de datos, el estado de la clave de regla que rige la relación entre los datos.

Luego, el modelo de datos lógicos se compara con la plataforma previamente seleccionada del DBMS (sistema de gestión de bases de datos) y se obtiene el modelo físico. Describe una forma de almacenar datos físicamente.

4. Use tipos de datos adecuados




Usar el tipo de datos incorrecto puede conducir a datos menos precisos, dificultades para unir tablas, sincronizar atributos e inflar tamaños de archivo.
Para garantizar la integridad de la información, un atributo debe contener solo tipos de datos aceptables para él. Si se ingresa la edad en la base de datos, asegúrese de que los números enteros de un máximo de 3 dígitos estén almacenados en la columna.

Cree un mínimo de columnas vacías con un valor NULL. Si crea todas las columnas como NULL, esto es un 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 crearlos. Después de todo, no podemos completar las columnas "Fecha de fallecimiento" o "Fecha de despido" de antemano, no somos predictores para señalar con el dedo al cielo :-).

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

5. Prefiere natural




Cuando decida qué columna de la tabla elegir como clave, siempre preste atención a qué campos puede editar el usuario. Nunca los elija como clave, una mala idea. Cualquier cosa puede suceder, y debes garantizar la unicidad.

Es mejor utilizar una clave natural o comercial. Tiene sentido, por lo que evita la duplicación en la base de datos.

Si solo la clave comercial no es única (nombre, apellido, posición) y se repite en diferentes filas de la tabla o debe cambiarse, entonces la clave generada debe ser la clave artificial sustituta generada (clave artificial).

6. Normalizar con moderación




Para organizar eficazmente los datos en la base de datos, debe seguir un conjunto de recomendaciones y normalizar la base de datos. Hay cinco formas normales a seguir.
Usando la normalización, evita la redundancia y garantiza la integridad de los datos utilizados en la aplicación o en el sitio.

Como siempre, todo debe estar con moderación, incluso la normalización. Si la base de datos tiene demasiadas tablas con las mismas claves únicas, entonces se deja llevar y normaliza demasiado la base de datos. La normalización excesiva afecta negativamente el rendimiento de la base de datos.

7. Pruebe temprano, pruebe más seguido




Un plan de prueba y una prueba adecuada deberían ser parte del diseño de la base de datos.

Es mejor probar la base de datos a través de la integración continua. Modele el escenario "Un día en la vida de la base de datos" y verifique si se manejan todos los casos límite y qué interacciones del usuario son probables. Cuanto antes encuentre errores, más ahorrará tiempo y dinero.

Estos son solo siete consejos para ayudarlo a diseñar una excelente base de datos de rendimiento y eficiencia. Si los sigue, evitará la mayoría de los dolores de cabeza en el futuro. Estos consejos son solo la punta del iceberg en el modelado de bases de datos. Hay una gran cantidad de hacks de vida. ¿Cuáles usas?

Source: https://habr.com/ru/post/471016/


All Articles