Me bookmarked de Phil Factor blog Normalización y 'Ánima notitia copia' hoy como lo resume perfectamente el caso de y en contra de la normalización de ciertos tipos de datos. Ejecute la siguiente consulta en una instancia de SQL y vea si está de acuerdo.
SELECT * FROM sys.syslanguages
SQL le permite crear bases de datos relacionales. Sin embargo, incluso si huele mal, no es delito hacer cosas horriblemente no relacionales con una base de datos SQL siempre que sea necesario y se pueda notar la diferencia; no solo eso, sino también si conoce los riesgos y las implicaciones.
Usted mencionó que el archivo XML contiene "información adicional sobre los datos". ¿Hay algún beneficio en modelar esos metadatos en una base de datos relacional, tal vez con fines de interrogación? Si es así, puede haber un caso para extraer los datos relevantes y conservar el XML restante como un tipo de documento XML.
... si se le pasa una cadena JSON o XML, y se requiere que la almacene en una base de datos, entonces todo lo que necesita hacer es preguntarse, en su papel de Anima notitia copia (Alma de la base de datos) '¿Tengo alguna? interés en el contenido de este elemento de información? Si la respuesta es '¡No!' O 'nequequam! Entonces es un valor atómico, por complejo que sea.
El argumento de Phil Factor es que los campos no relacionales en una base de datos relacional son perfectamente aceptables si el campo se trata como atómico, es decir, no cambia, o cuando lo hace, todo el campo cambia, no una parte constituyente de él. La extensión natural de esto es que si su documento contiene elementos que le interesan, puede ser útil aplicar un modelo relacional a esos elementos.
Relevante para la pregunta pero principalmente para la fraseología, una última cita de Phil:
Naturalmente, nunca he creado a sabiendas una base de datos a la que Codd hubiera fruncido el ceño, pero en los bordes hay interfaces y fuentes de datos que he escrito que han provocado ataques entre los fundamentalistas de la Normalización.
¡No lo hemos hecho todos!