Todo lo que aprendí en la escuela fue SQL, que guarda los datos en tablas. En este momento estoy trabajando en un proyecto donde los datos se almacenan en archivos XML. Además, cada XML contiene una referencia a archivos visuales (JPEG).
El propio XML contiene más de mil puntos de coordenadas, más información adicional sobre los datos.
En mi opinión, no tendría sentido almacenar esta información en tablas. Además, tampoco podía almacenar archivos JPEG con SQL.
¿Cuál sería la solución adecuada o hay un error en el razonamiento de mi parte?
Como puede ver, soy bastante nuevo en las bases de datos. Por lo tanto, cualquier sugerencia constructiva, enlaces y consejos es bienvenida.
database-design
xml
チ ー ズ パ ン
fuente
fuente
Respuestas:
Todo lo que necesitas es la persistencia de tu XML. Use una solución NoSQL o el sistema de archivos.
No hay ningún beneficio en usar un RDBMS, a menos que desee usarlo en lugar de NoSQL o el sistema de archivos.
fuente
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.
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.
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:
¡No lo hemos hecho todos!
fuente
En lo que respecta a las bases de datos Oracle, la respuesta es que no puede . Todos los datos en una base de datos se almacenan en tablas, incluso metadatos. Los datos se pueden almacenar en colas, pero esas son solo una forma diferente de usar tablas. Los archivos XML se pueden almacenar fuera de una base de datos, pero eso no cumpliría con el requisito "en la base de datos".
Yendo más allá de su pregunta planteada, los archivos JPEG o cualquier otro archivo pueden almacenarse en una base de datos. Requerirían una tabla y una columna LOB (BLOB o CLOB). El XML también podría almacenarse de esta manera, pero importar los datos XML a la base de datos le permitiría operar con los datos de una manera que ahora no se puede hacer fácilmente. También proporcionaría otros beneficios de las bases de datos, que incluyen: Redundancia reducida, Accesibilidad, Concurrencia, Escalabilidad, Interoperabilidad, Seguridad, Recuperación y Rendimiento.
Si los beneficios de una base de datos no promueven sus objetivos, entonces no use uno.
fuente
Me parece que está intentando implementar una base de datos espacial . Este es un tipo de base de datos relacional (o un complemento para productos de bases de datos existentes, por ejemplo, Oracle Spatial, postGIS) que admite funciones de tipos de datos espaciales y se utiliza para optimizar el almacenamiento y las consultas de datos relacionados con características espaciales como límites poligonales, puntos y capas. El XML que tiene suena como pares de coordenadas de límite y las imágenes asociadas suenan como elementos de arte para mostrar en ese límite. Si los datos se ajustan, considere una base de datos espacial relacional que ofrezca modelado espacial incorporado para proporcionar una funcionalidad que de otro modo sería difícil de implementar.
fuente