Document sous licence Creative Commons

On souhaite créer un langage permettant de d'assembler des documents situés dans une base de données. Un document est décrit par un titre, un auteur, un nombre de pages et une licence creative commons (CC) : cc-by, cc-by-nc, cc-by-nd, cc-by-sa, cc-by-nc-nd, cc-by-nc-sa.

Un document peut être :

  • soit un document maître, il dispose alors toujours d'un numéro d'enregistrement unique dans la base, et son titre sera toujours renseigné ;

  • soit un document esclave, il est alors membre d'un document maître.

Question

Proposez une représentation JSON des données (le document numéro 1 et ses deux documents esclaves) en vue d'expérimenter une solution MongoDB.

Indice

On notera que le numéro d'enregistrement doit être intégré au JSON, c'est une clé naturelle, puisqu'il fait partie du cahier des charges (il n'est pas ajouté au moment de l'implémentation technique, mais dès la modélisation UML).

Question

Donner un avantage et un inconvénient de cette approche non-relationnelle par rapport à une approche relationnelle. Vous n'avez le droit qu'à une seule phrase précise et synthétique pour l'avantage et une autre pour l'inconvénient, chacune s'appuyant sur le cas précis de l'exercice.