MongoDB: ¿Cómo representar un diagrama de esquema en una tesis?

Actualmente estoy escribiendo una tesis y necesito mostrar el esquema de mi MongoDB en un diagrama. No he encontrado recursos sobre diagramas para bases de datos basadas en documentos.

Hay diagramas de relación de entidad (ERD) para bases de datos relacionales. ¿Qué opciones tengo para MongoDB? Me di cuenta de que muchos blogs solo muestran el JSON sin procesar como su "diagrama", pero esto no es factible en mi tesis.

Aquí hay una muestra de una de mis estructuras JSON:

//MultiChoiceQuestion
{
    "title": "How are you?",
    "valid_answers" : [
        {
            "_id" : ObjectID(xxxx),
            "title": "Great",
            "isCorrect": true,
        },
        {
            "_id" : ObjectID(yyyy),
            "title": "OK",
            "isCorrect": false,
        },
        {
            "_id" : ObjectID(zzzz),
            "title": "Bad",
            "isCorrect": false,
        }
    ],
    "user_responses" : [
        {
            "user": ObjectID(aaaa),
            "answer": ObjectID(xxxx)
        },
        {
            "user": ObjectID(bbbb),
            "answer": ObjectID(xxxx)
        },
        {
            "user": ObjectID(cccc),
            "answer": ObjectID(yyyy)
        }
    ]
}

//User
{
    "_id": ObjectID(aaaa),
    "name": "Person A"
}
//User
{
    "_id": ObjectID(bbbb),
    "name": "Person B"
}
//User
{
    "_id": ObjectID(cccc),
    "name": "Person C"
}

Podría ser este un posible diagrama: Posible diagrama?

preguntado el 04 de julio de 12 a las 07:07

dado que el esquema solo se aplica a un solo documento, podría ser por eso que todos simplemente muestran el documento en sí. ningún otro documento de la colección tiene que tener el mismo esquema. -

Sí, pero en mi caso cada "Documento de opción múltiple" es exactamente igual, así que me gustaría mostrar eso. -

Aunque no hay un esquema explícito en un almacén de datos de MongoDB, casi siempre hay un esquema implícito que debe representarse. martinfowler.com/articles/schemaless -

2 Respuestas

Descubrimos que los diagramas de clase son en realidad una de las mejores formas de representar un diseño de esquema mongo.

Puede capturar la mayoría de los elementos que tendrá un documento, como matrices, objetos incrustados e incluso referencias.

Pautas generales que usamos para relacionar conceptos con uml

Incrustar = Agregación de composición

Referencia = Clase de asociación

Si no está familiarizado con la terminología uml, esta es una introducción decente.

Introducción a UML del sitio de IBM

Respondido 04 Jul 12, 16:07

Una mejor referencia podría ser ripublication.com/ijaer17/ijaerv12n5_12.pdf. Descubrí que el modelo de datos MongoDB se ajusta al diseño OOP en lugar del diseño ER. La colección incrustada se puede modelar como una clase interna. Diferentes patrones de documentos en una misma colección pueden diseñarse como diferentes clases heredadas. - Tae Sung Shin

Perdón, ¿por qué la referencia es igual a la clase de asociación? - luk aron

Hay una herramienta que hace diagramas para MongoDb, se llama DbSchema. Descubre el esquema escaneando datos de db. También sugeriría probar dos características de ellos:

  • relaciones virtuales que permiten explorar datos de diferentes colecciones al mismo tiempo. Una especie de JOIN entre diferentes colecciones.
  • Documentación HTML, también la usamos en presentaciones: los comentarios están al pasar el mouse (los diagramas se guardan como imágenes vectoriales).

Respondido el 01 de enero de 17 a las 06:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.