Chapitre 12 : Base de données relationnelles.

🕐 Historique:

  • 1956 : les disques durs
  • 1960 : Premières bases de données hiérarchiques
  • 1970 : Edgar F. COdd fait une thèse sur l'algèbre relationnellle. Cette thèse est à l'origine des bases de données relationnelles.
  • 1975 : Le modèle entité-association a été inventé par Peter Chen.

Source : wikipedia

1. Abréviations courantes :

A copier dans le cahier.

Il est courant de voir les abréviations suivantes lorsque l'on parle des bases de donnéesn relationnelles :

2. Les SGBD :

Un SGBD (Système de gestion de base de données) est un logiciel qui stocke, gère et partage des données, en masquant la complexité sous-jacente. Il est apparu dans les années 1960 pour répondre au besoin de manipuler efficacement de grands volumes d’informations.

Contrairement à un simple fichier CSV, l’utilisateur ne gère pas directement les fichiers : c’est le SGBD qui s’en occupe.

Il existe plusieurs types de SGBD :

Un SGBD se compose de différents programmes :

3. Les 3 étapes de la conception d'une base de données :

Concevoir une base de données peut être extrêmement difficile sur de gros projets.

Il est nécessaire donc de faire au préalable une représentation schématique d'une future base de données, puis de l'adapter sous forme de tableaux réalisables informatiquement et enfin de l'implémenter dans un système de gestion de bases de données.

4. Première étape : le schéma entité/association :

Le but de cette étape est de dégager des entités dans notre base de données.

A chaque entité, il y a un identifiant qui doit être unique afin de pouvoir distinguer sans confusion les identités entre elles.

Enfin, pour chaque entité, on peut stocker des attributs.

On représente ceci par ce schéma :

Une fois ceci fait et après avoir créer plusieurs entités, on schématise les associations entre celles-ci :

La cardinalité représente le nombre d'entités pouvant être associé à l'autre.

Dans le schéma précédent une "entité1" peut être associée à 0 ou une "entité2".

Une "entité2" peut être associée à une ou plusieurs "entité1".

5. Exemple : une chaîne de livraison de pizza

Copier l'exemple fait en classe dans le cahier.

En classe est présenté le schéma entité/association.

6. Deuxième étape : le modèle relationnel, les tableaux

Dans cette étape, les associations doivent être traduites soit en attribut supplémentaire, soit en entité supplémentaire.

Les entités sont d'abord recopiées à l'identique, les identifiants étant nommés "Primary Key".

7. Exemple : une chaîne de livraison de pizza

Copier l'exemple fait en classe dans le cahier.

A l'aide du schéma entité/association, on construit le modèle relationnel.

8. Clés primaires et clés étrangères

Clé primaire

Une clé primaire est un champ (ou un ensemble de champs) qui permet d’identifier de manière unique chaque ligne d’une table.

Propriétés d’une clé primaire :

Exemple :

Table ELEVE
id_eleve (clé primaire) | nom | classe
1                       | Alice | 1NSI
2                       | Bob   | 1NSI

Clé étrangère

Une clé étrangère est un champ d’une table qui fait référence à la clé primaire d’une autre table.

Elle permet de créer un lien entre deux tables.

Exemple :

Table NOTE
id_note | id_eleve (clé étrangère) | note
1       | 1                        | 15
2       | 2                        | 12

Ici, id_eleve est une clé étrangère qui référence la clé primaire id_eleve de la table ELEVE.

Unicité et intégrité

Les clés primaires et étrangères permettent de garantir la cohérence des données :

Erreurs classiques

9. Exercice :

À faire dans le cahier.

Contexte

On considère une base de données d’un lycée avec deux tables :

ELEVE(id_eleve, nom, prenom)
INSCRIPTION(id_inscription, id_eleve, specialite)

id_eleve est la clé primaire de la table ELEVE.
id_inscription est la clé primaire de la table INSCRIPTION.
id_eleve est une clé étrangère dans INSCRIPTION qui référence ELEVE(id_eleve).

Données

ELEVE
(1, "Durand", "Alice")
(2, "Martin", "Benoît")
(3, "Nguyen", "Chloé")

INSCRIPTION
(10, 1, "NSI")
(11, 1, "Maths")
(12, 2, "SES")

Questions

  1. Indique la clé primaire de chaque table et explique en une phrase à quoi sert une clé primaire.

  2. Quelle est la clé étrangère ? Explique en une phrase le rôle d’une clé étrangère.

  3. Que se passe-t-il si on essaie d’ajouter l’élève(2, "Petit", "David") dans ELEVE ? Pourquoi ?

  4. Que se passe-t-il si on essaie d’ajouter l’inscription (13, 4, "NSI") dans INSCRIPTION ? Pourquoi ?

  5. On veut supprimer l’élève d’identifiant 1. Explique pourquoi cela peut provoquer une erreur et donne une solution possible.

  6. Parmi les opérations suivantes, indique celles qui respectent l’intégrité référentielle, et justifie :

    1. Supprimer l’inscription (11, 1, "Maths")

    2. Supprimer l’élève(3, "Nguyen", "Chloé")

    3. Ajouter l’inscription (14, 2, "NSI")

    4. Ajouter l’inscription (10, 2, "NSI")