56 votes

À quel point vaut-il la peine d'utiliser une base de données?

J'ai une question concernant les bases de données et à quel point mérite d'être plongée dans un. Je suis principalement un intégré à l'ingénieur, mais je suis en train d'écrire une application à l'aide de Qt pour l'interface avec notre contrôleur.

Nous sommes à un étrange point où nous en avons assez de données qu'il serait possible de mettre en place une base de données (autour de 700 articles et de croissance) pour gérer tout ça, mais je ne suis pas sûr qu'il vaut la peine de le temps maintenant de traiter avec. Je n'ai pas de problèmes de mise en œuvre de l'interface graphique avec les fichiers générés à partir d'excel et analysées, mais il devient fastidieux et difficile à suivre, même avec des scripts VBA. J'ai été jouer avec la conversion de nos données en quelque chose de plus facile à gérer pour le côté applications avec Microsoft Access et qui semble bien fonctionner. Si cela fonctionne, je ne suis qu'un (ou plusieurs) à l'aide d'une base de données SQL et à l'aide de la bibliothèque Qt, d'accès et de modification.

Je n'ai pas beaucoup d'expérience de la gestion de données à ce niveau et je suis curieux de ce que peut être la meilleure façon d'aborder cette question. Alors quels sont les vrais avantages de l'utilisation d'une base de données si aucune dans ce cas? Je me rends compte de beaucoup de ce qui peut être très spécifiques à l'application, mais certaines des idées et des suggestions sur la façon de chevauchement de l'embarqué et de programmation de l'application de la ligne serait utile.

Ce n'est pas à propos de mettre une base de données dans un projet intégré. Il n'est également pas une entreprise type d'application, où les grandes bases de données sont couramment utilisés. Je suis en train de concevoir une interface graphique pour un seul utilisateur sur un ordinateur de bureau à l'interface avec un micro-contrôleur pour la surveillance et la configuration.


J'ai décidé d'aller avec SQLite. Vous pouvez faire des choses très intéressantes avec des données que je n'ai pas vraiment envisager une option lors du premier démarrage de ce projet.

41voto

Thomas Matthews Points 19838

Une base de données est utile lorsque:

  1. Votre application évolue à certains forme de données d'exécution.
  2. Vos dépenses au moment de la conception et de le développement externe de stockage de données les structures.
  3. Le partage de données entre des applications ou des les organisations (y compris les personnes)
  4. Les données ne sont plus courtes et simple.
  5. La Duplication Des Données

L'évolution de Pilotés par les Données d'Exécution
Lorsque les données changent, mais l'exécution n'est pas, c'est un signe de données, un programme axé sur la ou les parties du programme sont pilotés par les données. Un ensemble d'options de configuration est un signe d'une piloté par les données de la fonction, mais l'ensemble de l'application ne peuvent pas être pilotés par les données. Dans tous les cas, une base de données peut aider à gérer les données. (La bibliothèque de base de données ou de l'application ne doit pas être énorme comme Oracle, mais peut être maigre et signifie comme SQLite).

Conception et Développement de Structures de Données Externes
Poser des questions à un Débordement de Pile sur la sérialisation ou de la conversion des arbres et des listes d'utiliser des fichiers est une bonne indication que votre programme a obtenu son diplôme à l'aide d'une base de données. Aussi, si vous passez un peu de temps à la conception d'algorithmes pour stocker des données dans un fichier ou d'en concevoir de données dans un fichier est un bon moment à la recherche de l'utilisation d'une base de données.

Le Partage De Données
Si votre demande est le partage de données avec une autre application, d'un autre organisme ou une autre personne, une base de données peut aider. En utilisant une base de données, la cohérence des données est plus facile à atteindre. Un des gros problèmes dans la résolution de l'enquête est que les équipes ne sont pas en utilisant les mêmes données. Le client peut utiliser un ensemble de données; l'équipe de validation de l'autre et de développement à l'aide d'un jeu de données différent. Une base de données, gestion des versions plus facilement les données et permet aux entités d'utiliser les mêmes données.

De Données Complexes Les programmes commencent à l'aide de petites tables de codage en dur des données. Cela évolue en utilisant des données dynamiques avec des cartes, des arbres et des listes. Parfois, les données se développe à partir de deux colonnes à 8 ou plus. La base de données de la théorie et les bases de données qui peuvent soulager la complexité de l'organisation des données. Laisser la base de données s'inquiéter à propos de la gestion de données et de libérer de votre demande et de votre temps de développement. Après tout, la façon dont les données sont gérées n'est pas aussi important que la qualité des données et l'accessibilité.

La Duplication Des Données Souvent, lorsque le volume de données augmente, il y a toujours une attirance croissante pour dupliquer les données. Les bases de données et la théorie ne peut minimiser la duplication des données. Bases de données peut être configuré pour avertir contre les duplications.

Se déplaçant à l'aide d'une base de données a de nombreux facteurs à prendre en considération. Certains comprennent, mais ne sont pas limités à: la complexité des données, la duplication des données (y compris les parties des données), les délais du projet, les coûts de développement et les questions de licences. Si votre programme ne peut s'exécuter plus efficacement grâce à une base de données, puis le faire. Une base de données peut également gagner du temps de développement (et d'argent). Il y a d'autres tâches que vous et votre application peut être performant que la gestion des données. Laisser la gestion des données aux experts.

8voto

Robert Harvey Points 103562

Ce que vous décrivez ne ressemble pas à une entreprise typique de l'application, et beaucoup de réponses déjà posté ici supposent que c'est le genre d'application que vous êtes en train de parler, alors permettez-moi de vous donner un point de vue différent.

Si vous utilisez une base de données de 700 articles va dépendre grandement de la nature des données.

Je dirais qu'environ 90% du temps, à cette échelle, il vous permettra de bénéficier d'une lumière-poids de base de données comme SQLite, à condition que:

  1. Les données peuvent potentiellement augmenter sensiblement plus grande que ce que vous décrivez,
  2. Les données peuvent être partagées par plus d'un utilisateur,
  3. Vous devrez peut-être exécuter des requêtes sur les données (je ne pense pas que vous êtes en train de faire maintenant), et
  4. Les données peuvent facilement être décrite sous forme de tableau.

Les autres 10% du temps, vos données seront très structurée, hiérarchisée, basé sur l'objet, et n'entrent pas dans le modèle de table d'une base de données ou un tableau Excel. Si c'est le cas, pensez à l'aide de fichiers XML.

Je sais que les développeurs instinctivement comme pour jeter les bases de données à ce type de problèmes, mais si vous êtes actuellement à l'aide de données Excel pour créer des interfaces utilisateur (ou paramètres configuration de l'affichage), plutôt que d'afficher un enregistrement de client, XML peut être un meilleur ajustement. XML est plus expressive que Excel ou tables de base de données, et peut facilement être manipulé avec un simple éditeur de texte.

Parseurs XML de données et de liants pour le C++ sont faciles à trouver.

4voto

systempuntoout Points 27584

Je vous recommande d'introduire une Base de données dans votre application, votre application va gagner en souplesse et sera plus facile à maintenir et à améliorer avec de nouvelles fonctionnalités dans le futur.
Je voudrais commencer avec un léger fichier de base de db comme Sqlite.
Avec un bien conçu db, vous aurez:

  1. Réduit la redondance des données
  2. Une plus grande intégrité des données
  3. L'amélioration de la sécurité des données

Dernière mais pas moins, à l'aide d'une base de données vous permettra d'économiser de l' importation Excel/mise à jour/d'exportation de l'Enfer!

3voto

alex Points 3964

Raisons pour l'utilisation d'une base de données:

  • Des écritures simultanées. Il est facile à atteindre de la simultanéité dans les bases de données
  • Facile d'interrogation. SQL les requêtes ont tendance à être plus concis que le code de procédure de recherche des données. Les mises à jour, INSÉREZ INTOs pouvez également faire beaucoup de choses avec très peu de code
  • De l'intégrité. Les contraintes sont très faciles à définir et sont appliquées sans écrire de code. Si vous avez une valeur non nulle contrainte, vous pouvez être assuré que la valeur n'est pas null, pas besoin d'écrire des vérifications de n'importe où. Si vous avez une contrainte de clé étrangère en place, vous n'aurez pas de "dangling références".
  • Les performances sur de grands ensembles de données. L'indexation est très simple à ajouter à une base de données SQL

Raisons pour ne pas utiliser une base de données:

  • Il a tendance à être un supplément de dépendance (bien qu'il n'existe que très léger bases de données - j'aime H2 pour Java, par exemple)
  • Les données ne se prête pas à un schéma relationnel. Les choses qui sont fondamentalement de la clé/valeur des cartes. XML (bien que les bases de données sont souvent en charge de XPath, etc.).
  • Parfois, les fichiers sont plus commodes. Ils peuvent être diff ed, fusionné, édité avec un éditeur de texte, etc. Parfois, les feuilles de calcul peuvent être plus pratique (vous n'avez pas à construire un éditeur, vous pouvez utiliser un programme de feuille de calcul)
  • Vos données sont déjà quelque part d'autre

2voto

djna Points 34761

Je vois tout à fait un peu d'exigences que bien remplies par les bases de données:

1). Des requêtes Ad hoc. Trouvez-moi tous les {X} qui respectent les critères qui Y

2). De données avec une structure qui peut bénéficier de la normalisation - donnant des valeurs communes en différents "tableaux". Vous pouvez économiser de l'espace et de réduire la possibilité de l'incohérence de cette façon. Une fois que vous avez fait cela, puis ceux des requêtes ad-hoc commencer à être vraiment utile.

3). Les gros volumes de données. De données professionnelles sont très bons à faire bon usage de resoruces, intelligent requête optmisations et la pagination de stratégies. Essayer d'écrire ce genre de choses vous-même est un véritable défi.

Vous êtes clairement pas besoin de ce dernier, mais les deux autres, peut-être ne s'appliquent à vous.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X