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

 Oracle Discussion :

Table avec trois clés primaires


Sujet :

Oracle

  1. #1
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2009
    Messages : 447
    Points : 241
    Points
    241
    Par défaut Table avec trois clés primaires
    Bonjours à tous ,

    j'aimerais bien savoir pourquoi on a besoin de créer une table avec trois clé primaire, ça va nous servir à quoi exactement !

    et c'est quoi la difference entre , lorsque on définit les trois colonnes avec primary key au niveau de colonne , ou bien les trois colonnes avec primary key au niveau de table à la fois ,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    id1 PRIMARY KEY,
    id2 PRIMARY KEY,
    id3 PRIMARY KEY,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Primary key(id1,id2,id3)
    Merci beaucoup ,

    Crdt

  2. #2
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Par définition, une table ne peut avoir qu'une clé primaire.
    Par contre cette clé peut être sur plusieurs colonnes.

    S'il y a plusieurs clés, on peut créer des contraintes d'unicité avec colonnes not null, c'est logiquement équivalent. Mais 'primaire' il y en a qu'une. La différence est seulement au niveau physique où la clé primaire peut déterminer l'ordre de stockage (en IOT).

    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  3. #3
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Au fait,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL> create table t ( id1 number primary key , id2 number primary key );
    create table t ( id1 number primary key , id2 number primary key )
                                                         *
    ERROR at line 1:
    ORA-02260: table can have only one primary key
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  4. #4
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2009
    Messages : 447
    Points : 241
    Points
    241
    Par défaut
    ou merci ,
    mais lorsque on fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PRIMARY KEY(id1,id2,id3)
    tous les colonnes sont not null et uniques,
    mais ce que j'ai pas compris , c'est quoi l'utilité de faire 3 clés primaires sur la méme table !

    Merci

    CRdt

  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 805
    Points
    30 805
    Par défaut
    Il ne peut y avoir qu'UNE SEULE clé primaire sur une table, mais elle peut être composée de plusieurs colonnes.
    On vérifie alors l'unicité du tuple composé de ces colonnes et non l'unicité de chaque colonne de la clé primaire.
    Les tables dont la clé primaire est composée de plusieurs colonnes sont souvent des tables d'association, qui traduisent au niveau du modèle physique ce qui apparait dans le modèle conceptuel comme une relation n-m entre plusieurs tables.

    Exemple :
    Un élève peut suivre plusieurs cours, chaque cours est suivi par plusieurs élèves.
    J'aurai donc trois tables :
    Eleve(id_eleve*, description eleve)
    Cours(id_cours*, description cours)
    Cours_Suivi(id_eleve*, id_cours*) pour l'association entre l'élève et le cours
    La table cours_suivi a une clé primaire composée de deux colonnes.
    S'il y avait unicité sur l'une de ces deux colonnes, cela signifierait qu'un élève ne peut pas s'inscrire à plusieurs cours ou qu'un cours ne peut pas être suivi par plus d'un élève .
    L'unicité sur le tuple signifie qu'un élève ne peut pas être enregistré plusieurs fois pour le même cours.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  6. #6
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2009
    Messages : 447
    Points : 241
    Points
    241
    Par défaut
    Les tables dont la clé primaire est composée de plusieurs colonnes sont souvent des tables d'association, qui traduisent au niveau du modèle physique ce qui apparait dans le modèle conceptuel comme une relation n-m entre plusieurs tables.
    Merci pour la réponse , j'ai bien compris

    CRdt

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

Discussions similaires

  1. Création de table avec plusieurs clés primaires
    Par jeanjean0403 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 31/12/2007, 15h10
  2. Create Table avec deux clés primaires
    Par ulysse031 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 03/05/2007, 14h51
  3. Réponses: 5
    Dernier message: 12/03/2007, 10h21
  4. [C#] Supprimer des colonnes (Table avec 2 clés primaire)
    Par sara21 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 05/11/2006, 21h42
  5. [postgresql]creer une table avec plusieurs clés primaire??
    Par perlgirl dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/11/2004, 17h24

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