No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Desnormalizaci贸n

19/22
Recursos

Aportes 4

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Seria muy interesante ahondar mas en el tema de los patrones de MongoDB, ya que parece ser un tema central en el modelado de las DB NoSQL.

Desnormalizacion

Es el proceso de optimizar el funcionamiento de una BD agregando datos redundantes.

  • Esto es hacer duplicidad de datos y agregar direcciones no essenciales para acelerar las consultas o reducir la cantidad.

  • Esta mal visto la duplicidad de datos en una base de datos relacional, pero en una base de datos documental puede ser un aliado. Porque nos ahorramos consultas o aceleramos esas mismas consultas por tener indexacion.

  • Tambien permite mantener datos historicos, datos que no queremos que cambien en una instancia, aunque tengan cambios sus origines.

  • Reduce los Join y simplifica las consultas.

Ejemplo

Tenemos una coleccion 鈥榦rder鈥 que esta desnormalizada, donde se hace embeding a los productos como items. Estos tendran la referencia sus productos correspondientes (product_id), datos extra como la cantidad (qty) y datos que pueden o no ser actualizados por ser una instancia de la orden (title, price) y que se quieran acceder rapidamente.

Insercion

db.orders.insertOne({
    user_id: ObjectId('6497b8b4affb4e4355c4f297'),
    date: '2020-12-12',
    items: [
        {
            name: 'Producto 1',
            qty: 1,
            price: 12,
            product_id: ObjectId('649923f457514437ac501dd4')
        },
        {
            name: 'Producto 2',
            qty: 2,
            price: 22,
            product_id: ObjectId('649923f457514437ac501dd4')
        }
    ]
})

Nunca se me hab铆a ocurrido este m茅todo.
B谩sicamente combinar un objeto embebido, con una relaci贸n referenciada y repetir los campos importantes (tambi茅n presentes en la relaci贸n anterior) para poder acceder a ellos r谩pidamente, y si hace falta algo mas especifico, llamar a la relaci贸n como tal para tener la informaci贸n completa, es brillante.

La desnormalizaci贸n la encontr茅 en la pr谩ctica, me era mas sencillo guardar ciertos datos en un mismo documento para realizar un reporte mas adelante. Se complica si tienes relaciones pero si haces desnormalizaci贸n se simplifica much铆simo. Excelente ejemplo de esta clase.