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 :

Modélisation table ayant pour champ un tableau


Sujet :

Schéma

  1. #1
    Membre averti Avatar de cyreel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 388
    Points : 324
    Points
    324
    Par défaut Modélisation table ayant pour champ un tableau
    Bonjour a tous,
    j'espère ne pas me tromper de section.
    Voila je dois faire la modélisation d'une base de données.
    Ma table s'appelle pays et l'un de ses champs est population; ma difficulté est que je dois afficher la population sous forme de tableau (année, population) sur dix ans.
    Je ne sais pas comment faire cette modélisation car si population est un champ comment enregistré la population par pour chaque année?

    Je commence a peine la modelisation des BDD alors soyez indulgent.
    j'espère avoir été explicite!!
    merci

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    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 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    Principe général de modélisation :
    On écrit des règles de gestion des données qui permettent ensuite de dessiner l'architecture des données puis d'en déduire les tables de données.

    Règle de gestion :
    Un pays a une population pour une certaine année

    Modèle Conceptuel de Données (MCD) :
    Pays -0,n----Peupler----0,n- Année

    De ce schéma théorique découlent les tables suivantes...

    Tables :
    Pays(P_Id, P_NomFrançais, ...)
    Année(A_Année)
    Peupler(P_A_IdPays, P_A_Année, P_A_Population)

    Les clés primaires sont soulignées et les clés étrangères sont en italique.

    Ce schéma est bon s'il est nécessaire de sortir par exemple la liste de la population d'un pays pour toutes les années comprises entre 2000 et 2009.

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT a.A_Année AS Année,    
      p.P_NomFrançais AS Pays,    
      pa.P_A_Population AS Population 
    FROM Année a 
    LEFT OUTER JOIN Peupler pa ONa.A_Année = pa.P_A_Année   
      INNER JOIN Pays p ON pa.P_A_IdPays = p.P_Id 
    WHERE p.P_NomFrancais = 'France' 
    ORDER BY a.A_Année



    Si on se contente de la liste de la population d'un pays pour les années qui sont renseignées et on ignore les autres, alors on peut simplifier le schéma en deux tables...

    MCD :
    Pays -0,n----Avoir----(1,1)- PopulationAnnuelle

    Notez ici que la cardinalité 1,1 est entre parenthèses, ce qui signifie qu'il y a une identification relative et qu'un tuple de l'entité PopulationAnnuelle dépend directement d'un seul élément de l'entité Pays.

    Tables :
    Pays(P_Id, P_NomFrançais, ...)
    PopulationAnnuelle(PA_IdPays, PA_Année, PA_Population)

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT pa.PA_Année AS Année,    
      p.P_NomFrançais AS Pays,    
      pa.PA_Population AS Population 
    FROM PopulationAnnuelle pa 
    INNER JOIN Pays p ON pa.PA_IdPays = p.P_Id 
    WHERE p.P_NomFrancais = 'France'
    ORDER BY pa.PA_Année
    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 !

  3. #3
    Membre averti Avatar de cyreel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 388
    Points : 324
    Points
    324
    Par défaut
    merci CinePhil,
    C'est exactement ce que je cherchais. Il se pourrait que je te sollicite encore.

  4. #4
    Membre averti Avatar de cyreel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 388
    Points : 324
    Points
    324
    Par défaut
    Encore une autre question.
    en plus de la population, je dois aussi afficher par année la production agricole, la peche, la foret, etc...
    Comment je m'y prend pour utiliser la meme table année?
    voici ce que j'ai fait:

    Modèle Conceptuel de Données (MCD) :
    Pays -0,n----lier----0,n- Année
    Année -0,n----produire---1,1- Agricole
    Année -0,n---exporter----1,1- Bois
    Année -0,n---peupler---0,n- Population

    etc...

    est-ce correct?
    merci de m'aider.

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    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 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    Cette extension de MCD ne va pas. Comment relier la production agricole à un pays ? Pour le moment elle n'est reliée qu'à une année... et une seule en plus ! Idem pour les autres chiffres.

    Je verrais plutôt un association ternaire :
    Pays -0,n----Quantifier----0,n- Information
    Année -0,n---------|
    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 !

  6. #6
    Membre averti Avatar de cyreel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 388
    Points : 324
    Points
    324
    Par défaut
    Bonjour CinePhil,
    merci pour ton aide.
    Je viens pour te présenter ce que j'ai fait par la suite.
    En plus des informations données plus haut sur la base de données celles-ci se sont ajoutées.
    Chaque Informations appartient à un type dont la liste est fixée et pour chaque pays un texte accompagne chaque type d'informations.
    Voici l'image de ce que j'ai réalisé avec MicroOLAP pour posgresql.
    Merci de corriger si il y a des erreurs.
    Merci!
    Images attachées Images attachées  

  7. #7
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    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 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    Si je vois bien, Quantile est une table associative. Elle ne devrait pas avoir d'identifiant propre mais son identifiant (clé primaire) devrait seulement être composée des clés importées des tables entrant en jeu dans l'association, soit le triplet (idPays, idAnnée, idInfos).
    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 !

Discussions similaires

  1. [AC-2013] Idée de modélisation table pour champs adresse
    Par toto159 dans le forum Modélisation
    Réponses: 2
    Dernier message: 14/11/2014, 20h34
  2. Insertion dans une table ayant un champ : table de réference
    Par futur_ingenieur dans le forum Oracle
    Réponses: 4
    Dernier message: 16/01/2013, 17h34
  3. Réponses: 6
    Dernier message: 10/01/2007, 10h30
  4. [Modélisation] Type de champs pour champs récurents ?
    Par shadeoner dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 24/03/2006, 12h29
  5. alias ou synonymes pour les tables ou les champs ?
    Par nanou9999 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 16/03/2006, 12h04

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