Utiliser une base de données est-il cohérent dans mon cas ?

sensa6on Messages postés 130 Date d'inscription   Statut Membre Dernière intervention   -  
sensa6on Messages postés 130 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour/Bonsoir,

Je suis actuellement étudiant dans le domaine de l'informatique, 95% du temps que je passe devant mon écran m'emmène bien plus loin que ce que l'on nous enseigne.
J'ai en ce moment un projet d'ordre personnel visant à automatiser certaines actions (sur Windows), je développe donc une application en C# qui s'améliore de jours en jours !

Pour l'instant je me contente de coder la logique du programme et de faire en sorte d'avoir une interface utilisateur fonctionnelle mais à terme mon application devra s'appuyer sur une base de données d'environ 2000 entrées et agir en fonction.
Je précise que je serais le seul utilisateur à consulter ces informations (en local donc), en fait moi je n'aurai même pas besoin de savoir qui vaut quoi, seul le programme en aura besoin. Mais bon à la limite j'imagine qu'il est possible de faire des statistiques en rapport avec mes données. Dans mon cas ça reste superflu.

Je suis novice dans le domaine et je n'ai pas d'expérience professionnelle sur le sujet.

Je me pose donc ces 2 questions :

1) Mon application justifie elle l'emploi d'une base de données ?
Je pourrais très bien stocker mes données dans un fichier texte par exemple et lire/écrire celui-ci quand j'ai besoin.

2) Si oui, que choisir entre MySQL et Access ?
Je possède office 365 université avec Access inclus dedans, j'ai ouvert une nouvelle feuille pour voir de quoi ça avait l'air, pour l'instant ça me fait penser à Excel ... J'imagine qu'on peut stocker nos variables dans les cases voilà tout.
Sachant cela, lequel des 2 SGBD cités au-dessus semble le plus adapté en terme de rapidité, compatibilité et d'utilisation dans l'industrie (en effet tout cela a aussi une portée pédagogique, si je dois manipuler une BDD autant que cela me serve plus tard).

Merci d'avance ...

Amicalement
sensa6on
A voir également:

1 réponse

dsy73 Messages postés 9252 Date d'inscription   Statut Contributeur Dernière intervention   2 485
 
Salut

tu ne donnes pas suffisament de détails sur tes besoins, ton application et son évolution pour répondre correctement à ta question.

Mais, à ta place, j'oublierais Access (!?) et MySQL. Un SQLite devrait suffire et t'évitera de gérer un fichier "plat".
2
jee pee Messages postés 41539 Date d'inscription   Statut Modérateur Dernière intervention   9 722
 
Bonjour,

Je suis du même avis.

En local, sqlite, ou toute solution de même type semble idéale. Par exemple firefox utilise sqlite pour stocker ses infos en local (paramètres, favoris,...)

cdlt
0
sensa6on Messages postés 130 Date d'inscription   Statut Membre Dernière intervention   78
 
Mes besoins sont simples, le programme doit avoir sous la main environ 2000 informations (comprenant 4-5 paramètres chacune environ), aucun accès extérieur à ces informations désiré donc en local comme vous l'avez dit, pas d'évolution désirée. L'appli doit juste fonctionner au moment T.
Je peux détailler plus si vous me préciser les paramètres qui vous semblent importants.
Ce que j'ai oublié de préciser par contre c'est que je veux que la recherche d'information dans cette BDD soit très réactive.
Je ne souhaite pas stocker des Go et des Go, le nombre d'entrées de variera jamais.
0
dsy73 Messages postés 9252 Date d'inscription   Statut Contributeur Dernière intervention   2 485
 
Pour résumer :
- 2000 enregistrements (pas de variations)
- 5 valeurs par enregistrement
- stockage local
- recherche rapide => indexation

Mais que fais ton application exactement ? Automatiser des actions ne m'explique pas grand chose. Tu es parti sur une piste pour le stockage mais il existe peut-être d'autres pistes auxquelles tu n'as pas pensé.
0
jee pee Messages postés 41539 Date d'inscription   Statut Modérateur Dernière intervention   9 722
 
2000 enregistrements tu peux aussi bien les stocker dans un fichier texte et les charger en mémoire. Tu n'as pas indiqué ce que tu stockes, mais à 100 caractères par enregistrement cela ne fait que 200 000 caractères ce qui n'est rien en mémoire. Le temps d'accès en mémoire, même séquentiel sur 1000 (moyenne) doit être négligeable. Et pour le fun tu peux même faire une bonne vieille recherche par dichotomie.

Tu pourrais aussi utiliser un stockage d'information dans un fichier de type xml, c'est comme sqlite, une autre méthode utilisée par les programmes, applications, pour stocker des infos. On trouve des méthodes de recherche des infos dans les fichiers xml chiadés : http://www.dcs.gla.ac.uk/~mounia/Papers/CORIABelief.pdf ;-)
0
sensa6on Messages postés 130 Date d'inscription   Statut Membre Dernière intervention   78
 
Merci pour vos réponses, cela confirme le fait que l'utilisation d'une base de donnée n'est pas forcément la meilleure solution dans mon cas.

Chacun des 2000 enregistrements est fait de la sorte (bien que je n'ai pas fini de définir exactement les besoins de mon programme).
-> 5 valeurs dont :
1 string d'environ 30 caractères,
2 bool
2 int compris entre -10 000 et +10 000.

D'après les recommandations d'une connaissance, j'ai fait des essai avec un fichier CSV (une feuille excel donc) mais étant donné que le format n'est pas natif du .NET et qu'il propriétaire je me dirige vers un fichier XML qui lui s'accordera parfaitement au projet et à mes besoins.

Après quelques tests le système de balise me permet de faire une recherche puissante, rapide, exactement ce qu'il me faut. Je voulais donner à mon projet une dimension pédagogique en m'efforçant d'apprendre à manipuler les BDD mais je remets ça à plus tard.

A la place je pense donc utiliser le fichier XML pour faire une sorte de webvisu, l'inclure dans une page HTML en outre. (avec un refresh toutes les 10 minutes par exemple).
Au moins j'aborderai une partie plus orientée Web mais non moins utile à mon avis.
0