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

Décisions SGBD Discussion :

cardinalité


Sujet :

Décisions SGBD

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 74
    Points : 65
    Points
    65
    Par défaut cardinalité
    bonjour
    i'ai commencé depuis un petit moment à etuider les bases de données. j'ai une question qui n'est pas pour une base de données particulière. concrètement la cardinalité sert a quoi? à construire des bases efficaces? a t elle un autre role?
    mercid 'avance

  2. #2
    Membre régulier Avatar de Isa31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 267
    Points : 109
    Points
    109
    Par défaut
    Bonjour,
    Les cardinalités te permettent de définir les différents liens entre tes tables.
    Elles articulent le schéma entité-relation.

    Isa

  3. #3
    Membre confirmé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    520
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 520
    Points : 543
    Points
    543
    Par défaut
    Pour schématiser, les cardinalités permettent de déterminer si une relation entre deux entités pourra prendre plusieurs valeurs ou non et comment il faudra la stocker.
    exemple:
    personne(1.1) => date de naissance(0.n)
    chaque personne a une et une seule date de naissance. Une date de naissance par contre peut correspondre à 0 ou n personnes.
    La date de naissance peut donc être considérée comme un attribut de l'entité personne et sera stockée comme un champs dans la table personne.

    par contre
    personne(0.n) => adresse (0.n)
    une personne peut ne pas avoir d'adresse ou en avoir plusieurs et une adresse peut correspondre à 0 ou plusieurs personnes.

    il faudra donc stocker les tables personne, adresse et la relation personne-adresse dans des tables à part
    Personne(per_code,per_nom etc..) Adresse (adr_code,adr_ville etc...)
    personne_relation(adr_code,per_code)
    7 fois à terre, 8 fois debout

  4. #4
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Pour plus d'informations foncez sur le site de SqlPro

    Bonne Lecture.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  5. #5
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    L'étude des cardinalités n'a rien à voir avec les SGBD c'est une analyse des relations entre vos données.

    Celà n'améliore pas les performances de votre base puisqu'il n'y a pas de cardinalité dans les bases.

    Les cardinalitées vous permettent de définir le modèle (shéma) de votre base (les entités qui seront regroupées dans une seule table (car cardinalité 1,1 de chaque coté), les cardinalitées de type 1,N des deux cotées engendre une table de relation. etc...)

    Bref les cardinalitées c'est en amont de la création de la base, c'est l'analyse préliminaire qui débouche sur le schéma de votre base.

    En concrètement les cardinalitées permettent de définir les regroupement/éclatement des tables et enfin définissent les contraintes d'intégritées de type référence sous la forme des clés étrangères.

    Plus généralement l'analyse préliminaire qui abouti à la création du shéma de votre base permet d'optenir une base optimisée (pas de redondance d'information), et intègre (contraintes d'intégrités).

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 74
    Points : 65
    Points
    65
    Par défaut
    cette etape doit etre toujours efectuée ou pour les petites bases cette etape peut etre on va dire laissée de coté.
    merci

  7. #7
    Membre confirmé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    520
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 520
    Points : 543
    Points
    543
    Par défaut
    Bien sûr qu'il faut toujours commencer par là.
    Si la base est mal conçue au départ, les travaux de maintenance risquent d'être très important par la suite.
    Si on reprend mon exemple personne-adresse:
    Sans cette analyse, on suppose qu'une personne a une seule adresse. Que se passe-t-il lorsque une personne demande, par exemple, a être livrée à une adresse et recevoir la facture à une autre adresse ?


    Pas le choix: il faut repenser le modèle, rajouter des tables, modifier toutes les parties de l'application qui utilisent les adresses etc...

    On ne peut se passer de cette analyse préliminaire que si l'on a beaucoup de temps et beaucoup d'argent à dépenser pour tout refaire plus tard
    7 fois à terre, 8 fois debout

  8. #8
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Si vous avez choisi d'utiliser un SGBD c'est que vous avez une certaine quantité de données ou du moins un certain nombre de type de données (colonnes).

    Si vous comptez utiliser le SGBD comme si vous utilisiez un fichier autant utiliser un fichier (ou dans .ini ou dans la base des registres), celà vous évitera de devoir installer un SGBD.

    A mon sens petit ou grosse base, il faut faire l'analyse préliminaire.

    Pour les petites, cette analyse pourra être rapide (moins approfondie) et pour les très petites, les personnes ayant l'habitude de faire ce genre d'analyse pourront même créer directement la base (mais l'analyse aura été faite dans la tête.)

    Bref un conseil faite une analyse celà vous évitera des surprises.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 74
    Points : 65
    Points
    65
    Par défaut
    merci de vos reponses

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

Discussions similaires

  1. conception - clef etrangère -cardinalité forte/faible
    Par sundjata dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 16/11/2005, 14h57
  2. Cardinalité dans PHPMyAdmin
    Par xmag dans le forum Requêtes
    Réponses: 1
    Dernier message: 19/08/2005, 09h31
  3. Récupérer les cardinalités
    Par Invité dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/08/2005, 09h12
  4. [Together] Gestion des cardinalités
    Par cladsam dans le forum Autres
    Réponses: 3
    Dernier message: 03/08/2005, 21h33
  5. Cardinalités
    Par Pingwin dans le forum Diagrammes de Classes
    Réponses: 6
    Dernier message: 30/01/2003, 18h22

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