Question

Je cherche des méthodes de stockage de données alternatives à SQL ( c'est-à-dire que je ne le dirons pas pas veux utiliser SQL, même pour les requêtes ) et est tombé sur unPeu de basé sur JSON.Parler avec des amis qui travaillent dans la base de données, ils ont dit que je ne devrais pas les considérer, mais ne serait pas élaboré. Quels sont les inconvénients potentiels (et pratiques) à utiliser JSON comme format de fichier de stockage de données?


J'ai pensé que Json serait meilleur que SQL pour ces raisons:

  1. JSON est strictement défini et n'a pas de saveurs (Oracle, Microsoft, MySQL, etc.)
  2. Étant donné que Google a commencé à faire de Chrome, les interprètes JS ont fait de la lecture, de l'analyse et de la sortie de JS (et donc Json) un processus rapide et facile .
  3. La base de données peut être pure JSON , effacement de la nécessité d'un interprète intermédiaire pour les navigateurs, etc.
  4. entre autres ...

Était-ce utile?

La solution

Je pense que vous voudrez peut-être jeter un oeil aux bases de données no-SQL: https://fr.wikipedia.org/wiki/nosql

Si vous aimez utiliser des données semblables à JSON, une personne que j'ai personnellement utilisée est mongodb.

Je ne l'ai pas utilisé comme source principale / unique de mes données d'application, mais uniquement à des fins secondaires. Mais, je suppose que vous pouvez essayer de l'utiliser comme votre principal stockage de données (je pense que beaucoup de gens font).

Qu'est-ce que j'ai essayé et était assez satisfaisant, était monongébo avec C # et en utilisant Mongovue comme application d'interface graphique pour exécuter des requêtes et une interaction avec la DB. Je n'étais pas très heureux avec Mongovue, mais il semble que c'était la meilleure option à l'époque.

Cependant, SQL DBS sont très bons pour définir des relations dans vos données. Par exemple. Référencer une entrée sur la table A d'une entrée sur la table B et ce genre de choses. En utilisant ces relations, vous pouvez rejoindre des tables et faire de nombreuses choses intéressantes. Je pense que c'est bien pour vous d'obtenir une certaine expérience sur ce domaine.

MongoDB n'est pas construit pour définir des relations (autant que je sache). Il a le concept de "documents", où vous stockez des informations dans un format JSON comme (avec clé / valeurs imbriquées). Vous pouvez interroger des documents, mais l'adhésion semble que vous aimez votre chemin autour de son utilisation normale: Comment exécuter l'équivalent d'une jointure SQL à mongodb? En outre, assurer la cohérence des données (de manière vraiment fiable) lorsque vous utilisez des relations à MongoDB vous semble assez impossible. Mais même si je me trompe et que c'est possible, cela sera 10 fois plus difficile la réaliser que par des dbs SQL.

Mais vous pouvez consulter la liste de Wikipedia et il pourrait y avoir une meilleure alternative que MongoDB pour vous.

Mais vous pouvez utiliser Pure JSON également sans système de DB.

Donc, dans Sommaire JSON SHOW SHOW SHOWS a (au moins) ces problèmes:

  • Pas bien à la définition et à l'utilisation de relations
  • Lorsque vous utilisez des relations, l'intégrité des données (ou plus probable, l'intégrité de référence) est difficile.
  • Si vous n'utilisez pas de bon système DB, mais vous venez de vider JSON dans un fichier, lorsque ce fichier devient trop gros, vous aurez des problèmes de performance. Imaginez interroger un tableau codé JSON 1 Go d'objets pour obtenir ceux que vous souhaitez. Vous devrez charger l'ensemble de la matrice sur la mémoire, traversera l'ensemble de celui-ci (puisque vous n'aurez aucun indices), puis (si vous n'avez pas épuisé de mémoire et votre connexion, à l'aide d'un réseau, vous n'avez pas expiré) obtiendra un résultat. La plupart des DBS no-SQL comme Mongodb et la plupart des DBS SQL n'ont pas de tels problèmes (au moins dans des quantités raisonnables de données). Ils sont corrects, ils soutiennent l'indexation, les références, les autorisations, les rôles et vous pouvez également définir le code d'exécution au niveau de DB (comme des déclencheurs et des procédures stockées). Certes, ils sont plus complexes, mais cette complexité peut être nécessaire la plupart des temps pour atteindre le résultat final.

Autres conseils

JSON ou JavaScript Notation d'objet, est un format standard ouvert qui utilise du texte lisible par l'homme pour transmettre des objets de données consistant en paires d'attributs-valeur.Il est principalement utilisé pour transmettre des données entre un serveur et une application Web, comme alternative à XML.

Vous cherchez plus la comparaison entre Base de données VS VS Stockage de fichiers à plat vraiment.

Même lorsque vous utilisez une DB relationnelle, une intégrité de données (ou une intégrité référentielle) est toujours difficile car les lignes sont généralement chronométrées.Très souvent, les clés étrangères ne sont pas appliquées à cause de cela.Quand une mise à jour d'une ligne se produit, vous avez 2 choix.Premièrement, «oubliez» la version précédente.Deuxièmement, mettez à jour la ligne d'origine et copiez la version précédente en une table d'historique «non relationnel» horodatampée où les clés étrangères sont inutiles.La plupart des données commerciales nécessitent des mises à jour.Les fonctionnalités permettant de maintenir l'intégrité référentielle dans des bases de données relationnelles sont inutiles pour ce type de données professionnelles (qui représente la plupart des données d'entreprise). Ce qui est nécessaire est une base de données temporelle ou une couche d'abstraction qui présente un utilisateur avec la version appropriée d'une ligne basée sur un contexte de temps.Idéalement dans 2 dimensions, c'est-à-dire un temps de transaction et du temps de compagnie (aka temps valide).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top