Tout ce que j'ai appris à l'école, c'est SQL qui enregistre les données dans des tables. En ce moment, je travaille sur un projet où les données sont stockées dans des fichiers XML. De plus, chaque XML contient une référence aux fichiers visuels (JPEG).
Le XML lui-même contient plus de mille points de coordonnées, ainsi que des informations supplémentaires sur les données.
À mon avis, cela n'aurait aucun sens de stocker ces informations dans des tableaux. De plus, je ne pouvais pas non plus stocker de fichiers JPEG avec SQL.
Quelle serait la solution appropriée ou y a-t-il une erreur de raisonnement de mon côté?
Comme vous pouvez le voir, je suis assez nouveau dans les bases de données. Donc, toutes suggestions, liens et conseils constructifs sont les bienvenus.
la source
Réponses:
Tout ce dont vous avez besoin est la persistance de votre XML. Utilisez une solution NoSQL ou le système de fichiers.
Il n'y a aucun avantage à utiliser un SGBDR, sauf si vous souhaitez l'utiliser à la place de NoSQL ou du système de fichiers.
la source
J'ai mis en signet le billet de blog de Phil Factor Normalisation et 'Anima notitia copia' aujourd'hui car il résume parfaitement les arguments pour et contre la normalisation de certains types de données. Exécutez la requête suivante sur une instance SQL et voyez si vous êtes d'accord.
Vous avez mentionné que le fichier XML contient "des informations supplémentaires sur les données". Y a-t-il un avantage à modéliser ces métadonnées dans une base de données relationnelle, à des fins d'interrogation peut-être? Si tel est le cas, il peut être utile d'extraire les données pertinentes et de conserver le XML restant en tant que type de document XML.
L'argument de Phil Factor est que les champs non relationnels dans une base de données relationnelle sont parfaitement acceptables si le champ est traité comme atomique, c'est-à-dire qu'il ne change pas, ou quand il fait tout le champ change, pas une partie constitutive de celui-ci. L'extension naturelle de cela est que si votre document contient des éléments qui vous intéressent, il peut être utile d'appliquer un modèle relationnel à ces éléments.
Relatif à la question mais surtout pour la phraséologie, une dernière citation de Phil:
N'avons-nous pas tous!
la source
En ce qui concerne les bases de données Oracle, la réponse est non . Toutes les données d'une base de données sont stockées dans des tables, même des métadonnées. Les données peuvent être stockées dans des files d'attente, mais ce ne sont que des façons différentes d'utiliser les tables. Les fichiers XML peuvent être stockés en dehors d'une base de données, mais cela ne répondrait pas à votre exigence "dans la base de données".
Au-delà de votre question, les fichiers JPEG ou tout autre fichier peuvent être stockés dans une base de données. Ils auraient besoin d'une table et d'une colonne LOB (BLOB ou CLOB). XML pourrait également être stocké de cette façon, mais l'importation des données XML dans la base de données vous permettrait d'opérer sur les données d'une manière qui ne peut pas être effectuée facilement maintenant. Il offrirait également d'autres avantages des bases de données, notamment: redondance réduite, accessibilité, concurrence, évolutivité, interopérabilité, sécurité, récupération et performances.
Si les avantages d'une base de données n'atteignent pas vos objectifs, n'en utilisez pas.
la source
Il me semble que vous essayez de mettre en œuvre une base de données spatiale . Il s'agit d'une sorte de base de données relationnelle (ou d'un complément aux produits de base de données existants, par exemple Oracle Spatial, postGIS) qui prend en charge les fonctions de types de données spatiales et est utilisé pour optimiser le stockage et les requêtes de données relatives aux caractéristiques spatiales telles que les limites polygonales, les points et couches. Le XML que vous avez ressemble à des paires de coordonnées de limite et les images associées ressemblent à des éléments graphiques à afficher dans cette limite. Si les données conviennent, envisagez une base de données spatiale relationnelle qui offre une modélisation spatiale intégrée pour fournir des fonctionnalités que vous auriez autrement trouvé difficiles ou longues à implémenter.
la source