IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Schéma Discussion :

Importation de données sur des pays [MCD]


Sujet :

Schéma

  1. #1
    Membre régulier Avatar de tidou95220
    Homme Profil pro
    BI junior
    Inscrit en
    Novembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : BI junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2008
    Messages : 263
    Points : 90
    Points
    90
    Par défaut Importation de données sur des pays
    Bonjour,

    Je dois importer 200 (200pays) fichiers xls dont la structure de données est différente a 20% je dirais
    C'est une importation dynamique par le biais d'un fichier .bat qui répertorie tous mes fichier .xls

    exemple :

    IMPORTATION | EXPORTATION | PIB

    mais je peux avoir ( en fonction du pays )

    IMPORTATION | EXPORTATION | PIB | PNB

    j'ai vraiment aucune idé de conception merise....

  2. #2
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 452
    Points
    19 452
    Par défaut
    Bonjour.

    Donc si j'ai bien compris, tu veut enregistrer le contenu de tes fichiers xls dans une base de données via des scripts .bat ?

    Concernant les données importation et exportation ... s'agit-il de montants totales d'importation et d'exportation pour chaque Pays ?

    Si oui, je ne vois qu'une simple entité qui se dessine :

    Pays
    id_p
    nom_p
    PIB
    PNB
    importation
    exportation

    Ce qui donnera la table suivante :

    Pays (id_p (pk), nom_p, PIB, PNB, importation, exportation)

    Après ça reste relativement minimal comme modélisation vu les besoins que tu nous exprimes ... si tu pouvait donner plus de détails, on y verrait plus claire (dans quel cadre faut-il que ces données soient enregistrés en base ? est-ce pour compléter une base existante ? etc).

    Par exemple, il aurait été bien que l'entité pays ait une association reflexive importer ou exporter au choix qui se traduirait par la relation suivante :

    Exporter (id_p_exportateur#, id_p_importateur#, montant)

    Tu pourrais ainsi calculer les montants d'exportation ou d'importation total pour chaque pays. Cependant vu comment sont déjà organisée tes données je doute que ce soit faisable ...

    Cordialement,
    Idriss

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par tidou95220 Voir le message
    Bonjour,

    Je dois importer 200 (200pays) fichiers xls dont la structure de données est différente a 20% je dirais
    C'est une importation dynamique par le biais d'un fichier .bat qui répertorie tous mes fichier .xls

    exemple :

    IMPORTATION | EXPORTATION | PIB

    mais je peux avoir ( en fonction du pays )

    IMPORTATION | EXPORTATION | PIB | PNB
    Tu dis 200 fichiers pour 200 pays. Y a t-il une seule ligne de données sous la ligne d'en-tête de chaque pays ou bien plusieurs ? Et s'il y en a plusieurs, que représente chaque ligne ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  4. #4
    Membre régulier Avatar de tidou95220
    Homme Profil pro
    BI junior
    Inscrit en
    Novembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : BI junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2008
    Messages : 263
    Points : 90
    Points
    90
    Par défaut
    Voila ma balance commercial qui fait parti d'un de mes 15 indicateur
    donc sa formerai un type de table avec 5 colonne avec le id(pk)


    Uploaded with ImageShack.us

    mais un pays peut avoir 5 indicateur un autre 3.... j'ai 200 pays avec plus ou moins 8indicateurs par pays

  5. #5
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 452
    Points
    19 452
    Par défaut
    Bonjour.

    Oui dans ce cas là ça semble plus clair (ce que j'ai dit précédemment est à oublier) ... je t'ai mis en pièce jointe une des modélisations conceptuelles possibles.

    Ce qui donnerai au niveau relationnel :

    Pays (id_p, nom_p)
    Indices (id_p#, annee, PIB, PNB, importations, exportations)

    (Nul besoin de créer la relation Annee dans ce cas particulier).

    Cordialement,
    Idriss
    Images attachées Images attachées  

  6. #6
    Membre régulier Avatar de tidou95220
    Homme Profil pro
    BI junior
    Inscrit en
    Novembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : BI junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2008
    Messages : 263
    Points : 90
    Points
    90
    Par défaut
    Merci c'est super sympas

  7. #7
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 452
    Points
    19 452
    Par défaut
    Citation Envoyé par tidou95220 Voir le message
    Il n'y a aucune jointure entre Pays et indice ? par quelle colonne mes tables sont lié ( je veux dire plus clairement ou est la relation ? ) [...]
    Il manque pas un id_indices ? quelques chose d'unique dans la table.... je dit peut être n'importe quoi...
    Bien sur que ci, la jointure se fera sur la colonne id_p (identifiant de Pays). La clef primaire de la table Indices sera composées des colonnes id_p (clef étrangère vers Pays) et annee.

    J'ai oublié de vous légender le schéma précédant :

    X : clef primaire
    X# : clef étrangère

    En général lorsque vous avez une association avec des cardinalités 0/1,n de part et d'autres de cette association, celle-ci devient une relation dont la clef est composée des identifiants des tables qui l'entourent ...

    Dans le cas d'une entité date, année ou du même genre, il est bien souvent inutile de la traduire par une relation et c'est même préférable pour éviter la redondance :

    Ceci :

    Pays (id_p, nom_p)
    Annee (annee)
    Indices (id_p#, annee#, PIB, PNB, importations, exportations)

    devient donc ceci :

    Pays (id_p, nom_p)
    Indices (id_p#, annee, PIB, PNB, importations, exportations)

    Quant à la jointure, elle pourra ce faire comme ceci (en SQL) par exemple :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT PIB, PNB, importations, exportations
    FROM Indices i INNER JOIN Pays p
           ON i.id_p = p.id_p
    WHERE nom_p = 'angola'
    AND annee = 2009;

    Citation Envoyé par tidou95220 Voir le message
    Désolé j'ai vraiment pas de notion de bases relationnelles
    Voici un peu de lecture :

    Parlez-vous Merise ? (Michel Diviné)
    Et les tutoriels de DVP.

    Cordialement,
    Idriss

  8. #8
    Membre régulier Avatar de tidou95220
    Homme Profil pro
    BI junior
    Inscrit en
    Novembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : BI junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2008
    Messages : 263
    Points : 90
    Points
    90
    Par défaut
    je me suis directement focalisé sur ton image ^^ merci

  9. #9
    Membre régulier Avatar de tidou95220
    Homme Profil pro
    BI junior
    Inscrit en
    Novembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : BI junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2008
    Messages : 263
    Points : 90
    Points
    90
    Par défaut
    Je viens de faire ma table comme tu ma indiqué avec les FK et j'ai tester ta jointure c'est impec
    Mais je me retrouve face à un autre probleme parce que quand je vais importer toutes mes données PIB PNB et Exportation je vais me retrouver avec des champs NULL ??? pour mon id_p
    comment je pourrait importer et ajouté ma clé étrangere ?

  10. #10
    Membre régulier Avatar de tidou95220
    Homme Profil pro
    BI junior
    Inscrit en
    Novembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : BI junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2008
    Messages : 263
    Points : 90
    Points
    90
    Par défaut
    j'ajoute un champs id_p dans mon excel sinon....

    #1452 - Cannot add or update a child row: a foreign key constraint fails (`developpez`.`indices`, CONSTRAINT `indices_ibfk_1` FOREIGN KEY (`id_pays`) REFERENCES `pays` (`id_pays`) ON DELETE CASCADE ON UPDATE CASCADE)


    je delete le CASCADE .... c'est bien ça ?

    j'ai fait avec un NO ACTION sinon sa passe pas mais quand j'importe en CSV avec separation \t il me compte aussi le nom des mes colonne donc il veut pas m'importer.... donc je suis obliger de delete le nom de mes colone sur mon excel mais sa ne me convient pas pour mon automatisation
    arf trop de probleme lol enfin si en LOAD INFILE et je saute ma premiere ligne

  11. #11
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 452
    Points
    19 452
    Par défaut
    Citation Envoyé par tidou95220 Voir le message
    j'ajoute un champs id_p dans mon excel sinon....
    Nul besoin, il suffit que d'un champs qui s'auto-incrémente (c'est possible dans une grande majorité de SGBDR).

    Après il suffira de faire tes INSERT sur les champs à remplir (l'auto-incrémentation de l'id se fera toute seule) :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO Pays (nom_p) VALUES ('...');
    [...]

    Citation Envoyé par tidou95220 Voir le message
    je delete le CASCADE .... c'est bien ça ? [...]
    Faudrait nous préciser le SGBDR utilisé ... Et ces problèmes ne relève plus de la conception avec MERISE.

    P.S : utilises aussi les balises CODE (bouton #) pour que le code soit plus lisible ... tu as aussi une fonction pour t'éviter de reposter plusieurs messages à la suite.

    Cordialement,
    Idriss

  12. #12
    Membre régulier Avatar de tidou95220
    Homme Profil pro
    BI junior
    Inscrit en
    Novembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : BI junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2008
    Messages : 263
    Points : 90
    Points
    90
    Par défaut
    Encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/04/2010, 19h15
  2. Relier des données sur des éléments d'une form
    Par Takumi dans le forum Windows Forms
    Réponses: 5
    Dernier message: 18/01/2010, 16h06
  3. Pb gros import de données sur un serveur mutualisé
    Par yakalfer dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 17/09/2006, 13h20
  4. [DTS] Import de données avec des doublons
    Par Hotchotte dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 24/03/2005, 14h19
  5. Extraction de données sur des fichiers excel
    Par iupgeii dans le forum MFC
    Réponses: 3
    Dernier message: 23/01/2004, 13h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo