Salut, je suis ingénieur civil avec une certaine expérience de la programmation, mais je ne connais pas la vaste gamme d'options disponibles aujourd'hui. J'espère que vous pourrez me donner des conseils sur la meilleure façon de procéder.
Je veux créer et interroger une base de données de mesures de levé au sol dans un format de grille. Il y aura de nombreuses mesures pour chaque emplacement du réseau à différents moments du travail de terrassement, il y a donc une 4ème dimension du temps.
Les observations seront très probablement lues à partir d'un fichier texte. Dans chaque enregistrement, il y aura une position de grille (ligne et colonne) (2 x entiers), un niveau au sol (virgule flottante) et divers codes d'informations de chaîne (peut-être jusqu'à 30 caractères au total).
Les grilles pourraient être d'environ 10000 lignes x 10000 colonnes. Tous les emplacements sur la grille n'auraient pas un enregistrement dans chaque enquête, mais ils auraient généralement jusqu'à une centaine d'enregistrements. De nombreux emplacements de grille n'auraient aucun enregistrement (le site ne sera pas parfaitement rectangulaire).
Je souhaite rechercher les enregistrements, extraire des données et effectuer des calculs, par exemple calculer le niveau du sol le plus bas ou le plus haut pour chaque emplacement de grille. Je suis assez confiant que j'aurais la capacité de programmer cela assez simplement dans un langage comme FORTRAN, BASIC ou C en utilisant des tableaux. Beaucoup d'éléments du tableau seraient vides cependant et je suppose que ce n'est pas la bonne façon de le faire et les grandes bases de données comme celle-ci ont besoin d'outils spéciaux que je devrai apprendre à utiliser.
Je pense aux options possibles pour la plateforme -
Utilisez un programme de base de données. Je ne sais pas à quel point ceux-ci peuvent être puissants, mais j'imagine qu'ils auraient beaucoup de frais généraux avec l'interface graphique.
Utiliser SQL? Je ne connais pas grand-chose à ce sujet, mais il semble que ce soit le langage des bases de données. J'ai toujours utilisé des langages impératifs plutôt que déclaratifs et si je comprends bien de wikipedia que SQL est déclaratif, je suis un peu inquiet du changement. Je ne comprends pas bien le processus d'utilisation. Existe-t-il un compilateur qui crée des programmes de console? La base de données est-elle stockée sur disque? Désolé pour ces questions stupides.
Utilisez une API comme c-treeACE? Je pense que c'est peut-être la voie à suivre en m'offrant la familiarité d'un langage «faites ceci, puis faites cela» (malheureusement, c'est la façon dont je pense en tant qu'ingénieur!). Mais j'espère que la gestion de la mémoire et du traitement en arrière-plan offerte par l'API sera supérieure à ce que je pourrais réaliser avec d'énormes baies.
Ou pourrais-je le faire avec un langage orienté objet et laisser l'ordinateur s'inquiéter des besoins de stockage. Par exemple, si je stockais les enregistrements en tant qu'objets avec des méthodes et des propriétés qui m'aideraient à obtenir les résultats dont j'ai besoin de chaque enregistrement - serait-ce un énorme programme gonflé par rapport à 3)
Il y a probablement des centaines de millions d'enregistrements et je veux pouvoir les interroger et les traiter en quelques minutes et non en quelques heures (de préférence en secondes!) Sur un PC moderne fonctionnant sous Windows. Pour être plus précis, le mien est un processeur i7 avec 6 Go de RAM et 120 Go de SSD fonctionnant sous Windows 7 64 bits.
J'espère que quelqu'un a le temps de partager quelques mots de sagesse avec un débutant.