Précédent   Forum des professionnels en informatique > Bases de données > Décisions SGBD > Débuter
Débuter Forum d'entraide : Comment débuter en base de données ? Tutoriels SGBD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/11/2010, 00h04   #1
Invité de passage
 
Inscription : septembre 2010
Messages : 19
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 19
Points : 4
Points : 4
Par défaut Creation Base de Donnée a partir de Fichiers CSV

Bonsoir,

Je ne sais trop si c'est faisable, tous les jours j'ai 2 fichier csv qui sont créés avec des données diverses tout les jours soit un peux prés 60 fichier csv par mois, je les ouvre avec access /excel et je fait mes rapports avec les données que j'exporte.

Je voudrais savoir si c'est possible de créer une BD avec SQL express 2010 par ex. pour mes fichiers csv, il me fait une base de données et comme ça je peux créer des liaisons avec excel à ma base de données pour créer mes rapports.

Est-ce que c'est faisable pour un nouveau en SQL?
grayfox1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 09h17   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 944
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 944
Points : 18 137
Points : 18 137
Envoyer un message via MSN à CinePhil
C'est faisable mais un peu complexe.

Un fichier CSV a une structure qui ressemble à une feuille de tableur : des lignes de données avec une colonne par type de données.
Avantage : c'est facile à lire, même par un néophyte.
Inconvénient : il y a beaucoup de données redondantes et une donnée peut être écrite de plusieurs façons, ce qui est éventuellement détectable par un humain mais beaucoup plus difficile par un ordinateur.

Une BDD relationnelle va permettre d'organiser les données en tables et établir des associations entre les tables.
Avantages : cohérence et unicité des données, possibilité de mettre des contraintes sur ces données...
Inconvénient : difficile, voire impossible, à lire directement sans passer par une interface externe programmée ou au prix de requêtes multi-tables plus ou moins complexes pour rétablir une vision des données plus humaine, style feuille de tableur.

Passer de l'un à l'autre est un exercice complexe.
Il faut analyser les fichiers CSV pour modéliser celles-ci. Durant cette analyse, il faut détecter quelles colonnes vont déterminer de manière unique les informations élémentaires.
Ensuite il faut créer la structure de la BDD à partir du modèle qu'on a établi.
Puis on importe les fichiers CSV dans des tables provisoires et on fait des requêtes sur ces tables pour alimenter la nouvelle base de données. C'est loin d'être facile et nécessite des vérifications des requêtes SELECT sur les tables provisoires avant l'importation des données dans la nouvelle BDD par des requêtes INSERT... SELECT.

Par contre, l'avantage de tout ce travail fastidieux est qu'ensuite on peut interroger les données de toutes manières qu'on veut, beaucoup plus facilement et plus rapidement qu'avec un tableur.

Et si les fichiers CSV qui arrivent régulièrement ont toujours la même structure et portent sur des données similaires, la procédure d'importation des données peut ensuite être automatisée par un script SQL, éventuellement avec un peu de programmation externe, en PHP par exemple.

Mais deux choses à faire absolument avant toute importation de nouvelles données :
SAUVEGARDE de la BDD et VERIFICATION après importation que les données restent cohérentes.

J'ai eu à faire cet exercice sur un extrait de deux années de mouvements de bovins pour un thésard, représentant plusieurs dizaines de millions de lignes. En analysant les données, j'ai trouvé des choses bizarres, telles que des mâles ayant eu des veaux, des vaches ayant eu un veau avant d'être adultes, des animaux morts avant d'être nés... Incohérences dans les données dues au fait que la BDNI, d'où étaient extraites ces données, avait changé de structure récemment et que les contrôles sur les données étaient minimaux afin de ne pas empêcher la saisie des informations par les agriculteurs.

Bon courage ! Et n'hésite pas à demander de l'aide dans les forums consacrés au Schéma pour la modélisation de la BDD ou dans les forums Langage SQL et ceux consacrés à ton SGBD pour les requêtes et autres procédures en SQL.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h19.


 
 
 
 
Partenaires

Hébergement Web