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

 Firebird Discussion :

index et cle


Sujet :

Firebird

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    839
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 839
    Points : 262
    Points
    262
    Par défaut index et cle
    bonjour

    venant du bde/paradox je suis un peu perdu et je dois faire une confusion entre les cle (primaire et etrangère) et les index ?

    est ce que c'est pareil ?
    est ce qu'une cle doit avoir un index ?

    est ce que la cle principal est obligatoirement un index ? si oui faut il le creer ?

    merci

  2. #2
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    un index peut exister sans clé
    une clé est une contrainte qui a besoin d'un index (sur une clé primaire par exemple, un index unique est créé automatiquement, mais on peut spécifier le nom de cette contrainte et de l'index associé)
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut
    une clé est une contrainte qui a besoin d'un index
    C'est faux...

    Une clef primaire n'a besoin d'aucun index pour fonctionner. En effet une clef primaire implique la non nullité et l'assurance de l'unicité. Pour contrôler l'unicité il suffit de parcourir toutes les lignes de la table pour la valeur de clef à insérer et de vérifier si cette valeur n'y est pas déjà. Aucunement besoin d'un index pour cela.
    Cependant, l'utilisation d'un index permet d'améliorer la rapidité de recherche d'unicité. C'est pourquoi tous les SGBDR placent des index de manière systématique sous les contraintes PRIMARY KEY et UNIQUE.

    En revanche il n'y a pas création d'index lors de la pose d'une contrainte de clef étrangère (FOREIGN KEY) du fait de la possibilité de redondance ou d'inclusion des index. Mais il convient d'indexer toutes les colonnes impliquées dans les FK en général.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 735
    Points : 807
    Points
    807
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    C'est faux...
    Normalement, je crois que c'est pas trop dans la norme SQL (encore que je la connaisse plutôt pas trop) mais avec Firebird (et Interbase aussi), la création de l'index est automatique (enfin sous IBExpert) et on ne peut même pas le supprimer après...

  5. #5
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    oui MONSIEUR SQL...
    pardon j'aurais du écrire plus précisément :
    une clé est une contrainte qui a besoin d'un index pour être efficace
    et avec Firebird une contrainte de clé primaire ne peut exister sans index
    (et heureusement pour une simple raison de performance)
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  6. #6
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    J'ajouterai cependant, à la défense de Makowski qu'en firebird, une contrainte de foreign key crée automatiquement un index.
    Donc indexer les colonnes de clef étrangère en créant soi-même son index est une grosse erreur.

    Il me semble qu'il faut faire vraiment attention à ce qu'on dit sur ce forum...

Discussions similaires

  1. Script d'index et cle etrangere
    Par topolino dans le forum Administration
    Réponses: 3
    Dernier message: 30/04/2014, 16h55
  2. Index et cle primaire
    Par topolino dans le forum Développement
    Réponses: 4
    Dernier message: 13/11/2009, 14h33
  3. Problème d'index et cle
    Par winieloursonaub dans le forum Modélisation
    Réponses: 1
    Dernier message: 25/10/2009, 12h58
  4. Mise a jour de l'index de cle primaire
    Par Mercenary Developer dans le forum DB2
    Réponses: 2
    Dernier message: 10/10/2006, 21h15
  5. Différence entre la notion de clés et celle d'index
    Par Seth77 dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/09/2006, 18h44

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