croix
Le programme dans tes mails
Attention il est peut-être dans tes spams
Tu en apprendras plus sur notre mission, notre pédagogie, et notre programme.
Ton pigeon voyageur est en chemin attend 1 ou 2 minutes qu'il arrive !
Oops! Il semble que ça ne fonctionne pas. Si l'erreur persiste, n'hésite pas à nous contacter !
🔔

N'attends plus et lance toi !

Je m'informe gratuitement >

La clé primaire en SQL : A quoi ça sert ?

La clé primaire est l’un des outils principaux des bases de données (BDD) relationnelles. Elle permet d’identifier de façon unique chaque enregistrement d’une table. De plus, les clés primaires mettent en relation les différentes tables dans la base de données. Il est donc important de bien comprendre ce qu’est une clé primaire pour pouvoir exploiter les données de la bonne manière.

Clé primaire
Table des matières


Les bases de données SQL se fondent sur l’exploitation de tables qui stockent des enregistrements.


Les tables sont composées de lignes et de colonnes comme un tableau Excel :

  • Une ligne correspond à un enregistrement.
  • Un enregistrement est composé de plusieurs données, réparties dans plusieurs colonnes. Chaque donnée correspond à un champ. Un enregistrement est donc composé de plusieurs champs.
  • Une colonne correspond à un attribut qui permet de classifier un champ

Dans une table, chaque enregistrement est associé à plusieurs attributs.

Par exemple, imagine avoir accès à l’annuaire téléphonique regroupant toutes les personnes de nationalité française (soit un tableau avec plus 67 millions de lignes !)


Dans cet annuaire, un enregistrement est composé d’un nom, d’un prénom, d’un numéro de téléphone portable et d’une date de naissance.Chaque enregistrement est donc composé de 4 attributs.


Remarque :  Quand tu construis une table, réfléchis toujours aux attributs qui la composent. Ils doivent te fournir une information précise et unique (mettre le numéro de téléphone et le nom dans la même colonne n’aurait aucun sens).


Maintenant que tu connais les termes importants qui concernent les bases dedonnées, on peut s’attaquer à la notion de clé primaire !

Pourquoi utiliser une clé primaire?

Une clé primaire a deux qualités : 

  1. Elle permet d’identifier de manière unique les différents enregistrements qui composent une table,
  2. Elle facilite la mise en relation d’une table avec une autre.

Différencier les enregistrements d’une table

Dans un tableau on peut avoir affaire à des doublons dans certaines colonnes, ce qui empêche parfois de différencier les enregistrements.


Par exemple, dans un annuaire, il n’est pas rare de trouver plusieurs personnes qui portent le même prénom ou le même nom (en France, plus de 50 000 personnes s’appellent Dupont !).


Il peut même arriver que certaines portent le même prénom ET le même nom !

Sarah Connor - clé primaire

La clé primaire permet donc de différencier chaque enregistrement d’une table, même si un ou plusieurs de leurs attributs (nom, prénom etc…) sont identiques.

Mettre en relation deux tables 

La clé primaire est particulièrement indispensable dans le cadre des bases de données relationnelles, c'est-à-dire celles qui ont la particularité d’être découpées en plusieurs tables.


Par exemple, la base de données d’une boutique en ligne peut être composées de deux types de données :

  • les données associées aux produits achetés : Nom du produit et Prix
  • les données associées aux clients : Prénom, Nom et Adresse

Si on utilise seulement un tableau Excel pour gérer la base de données de cette boutique, on est obligé de répéter inutilement les informations des clients pour chaque produit acheté.

Base de données sur Excel

Afin d’éviter cette répétition, on sépare cette base de données en deux tables :

  • Une table “Commande” qui ne contient que la liste des produits achetés
  • Une table “Client” qui ne contient que la liste des clients
Base de donnée relationnelle sans clé primaire

Cette séparation permet d’alléger la quantité de données présents dans la base. Le problème dans l’exemple ci-dessus, c’est qu’on ne sait plus quel client a acheté quel(s) produit(s). Il faut donc trouver un moyen de mettre en relation les deux tables afin d’être capable de différencier les produits achetés par Jean Bonneau et Olivia Dupont.


C’est tout l’intérêt de la clé primaire : pouvoir mettre en relation une table avec une autre.


Attention : il ne faut pas confondre une clé primaire avec une clé étrangère.

Pour devenir Data analyst en entreprise, la maîtrise du langage SQL est un vrai plus sur ton CV. En suivant le bootcamp de Databird, ce langage n’aura plus de secret pour toi !

Découvrir la formation Data Analyst

Attributs d’une clé primaire en SQL

Un attribut est un composant d’un enregistrement. Dit plus simplement, dans un tableau, chaque colonne est un attribut.

 

Une clé primaire est composée d’un ou plusieurs attributs. Si elle a plusieurs attributs, on parle de clé multiple ou de clé composite.

 

Remarque : Idéalement, le moins une clé primaire a d’attributs, le mieux c’est.

 

Comme nous l’avons vu plus haut, les attributs « Prénom » et « Nom » ne peuvent pas servir de clé (multiple) primaire pour notre table « Annuaire ». En effet, deux personnes différentes peuvent avoir le même prénom ET le même nom.

 

 Pour résoudre ce problème deux solution sont envisageable :

  • Une clé multiple : On ajoute un attribut à la combinaison : Nom, Prénom et Date de naissance.
  • Un attribut clé : On ajoute un attribut dont le rôle exclusif est de servir de clé primaire.

La solution de l’attribut clé est privilégiée car elle est plus simple d’utilisation. C’est d’ailleurs pour cette raison que lorsqu’on achète un produit en ligne, on se voit attribuer un “ID client”.

 

Remarque : Dans un hôpital, on différencie les nouveaux-nés grâce à trois attributs : Nom, Prénom, Date de Naissance.


Comment définir une clé primaire ?

La clé primaire est définie au moment de la création d’une table.

La manière de définir la clé primaire dépend de l’outil que tu utilises. Dans cet article, nous te montrons comment faire en utilisant  une requête SQL et Microsoft Access

Définir une clé primaire avec une requête SQL :

Le langage SQL permet de définir, de manipuler et de contrôler les données d’une BDD relationnelle

Pour créer une nouvelle table, on peut utiliser la requête : CREATE TABLE.

 

Pour l’exemple, nous allons créer une table « Client » avec quatre attributs dont un « ID client » comme clé primaire :

1   CREATE TABLE Client (
2   Id client INT PRIMARY KEY,
3   Prenom VARCHAR (15),
4   Nom VARCHAR(15),
5   Date de naissance DATE
6   ) ;

Dans cette requête SQL, la première ligne consiste à créer et à définir le nom de la table. Les lignes 2,3,4 et 5 définissent les noms des différentes colonnes ainsi que la nature des données qu’on trouve à l’intérieur : INT, VARCHAR ou DATE.


En effet, chaque attribut est associé à un nom et à un type de donnée :

  • INT signifie “Integer” : il s’agit d’un chiffre entier
  • VARCHAR signifie “Variable character” : il s’agit d’une chaîne de caractères
  • DATE fait référence à une date

Remarque : Les chiffres entre parenthèses définissent le nombre de caractères maximum qu’on peut trouver au sein d’une colonne. Dans l’exemple ci-dessus, les champs des colonnes “Prenom” et “Nom” font au maximum 15 caractères.


Pour définir la clé primaire de la table, nous avons ajouté “PRIMARY KEY” à la deuxième ligne, après avoir précisé le type de données. Ainsi, “ID client” est définit comme la clé primaire de notre nouvelle table !


L’exécution de cette requête a alors créé une table (pour l’instant vide) :

Table créé avec SQL

Définir une clé primaire avec Microsoft Access :

Microsoft Access est un outil de la suite Office qui permet de créer et gérer, maintenir et éditer facilement des bases de données.

 

L’interface ressemble à Excel. Cependant, la particularité d’Access est de pouvoir créer des BDD relationnelles !

Microsoft-Access-Dashboard

La définition d’une clé primaire sur Microsoft Access se fait simplement en trois étapes :

  1. On crée la table et on nomme ses colonnes
  2. On sélectionne la ou les colonnes associées à la clé primaire
  3. On clique sur le bouton « Clé primaire », situé sous l’onglet « Création »
Clé primaire Access

Et voilà le tour est joué !


Le monde de la Data t’intéresse ? Viens jeter un coup d’œil à nos formations en Data Analyse et en SQL, et deviens-toi aussi un Databirdies !

Télécharger le programme de nos formations

Le rôle d’une clé primaire dans une base de données relationnelle

Nous l’avons vu plus haut la clé primaire a deux rôles : 

  1. Différencier les enregistrements d’une table
  2. Permettre de la mettre en relation avec d’autres tables

Effectivement, la clé primaire est indispensable au bon fonctionnement d’une BDD relationnelle.

 

Pas de clé primaire, pas de base de données relationnelles.

Pas de clé primaire, pas de SQL

Voici comment mettre en relation la table « Client » avec la table « Commande » grâce à la clé primaire :

Base de donnée relationnelle avec clé primaire

Comme on retrouve la colonne ID client dans les deux tables, il est maintenant facile de trouver les commandes de Jean Bonneau dans la table « Commande » : il suffit de filtrer les commandes associées à l’ID client 1. Idem pour Olivia Dupont où l’id client est 2. 

 

Dans cet exemple, tu as seulement deux tables. En entreprise, ce n’est pas toujours aussi simple !


En effet, en tant que Data analyst, tu peux être confronté à des BDD composées de dizaine de tables !

Grande base de donnée relationnelle avec clé primaire

Maintenant, tu comprends mieux pourquoi il est important de bien choisir les attributs d’une clé primaire. Celle-ci doit rester pertinente même lorsque la base de données évolue et pas seulement à un instant T. Sinon l’analyse ou la réalisation de jointures SQL peut vite devenir un cauchemar ! 


Quelques exemples d’erreurs à éviter lorsqu’il s’agit de définir une clé primaire :

  • Choisir un email : celui-ci peut changer avec le temps.
  • Choisir un numéro de sécurité sociale : certaines personnes peuvent avoir plus d’un numéro au cours de leur vie.
  • Choisir un numéro de téléphone : il est susceptible de changer.

C’est pourquoi la création d’un ID unique est souvent la solution la plus populaire !


Partagez cet article :
linkedIn iconfacebook iconInstagram icon
Tu souhaites te former à la data ? 
équipe DataBird formation data analyse

Tu souhaites devenir data analyst

Notre formation intensive en présentiel ou en distanciel en data analyse est ouverte à tous types de profils. Tu es intéressé pour rejoindre notre communauté ? Postule pour en savoir plus.

// Highlight JS