Numérique et Sciences Informatiques > Préparation aux Épreuves du Baccalauréat NSI > Révisions Thématiques > Bases de données

Révision Bases de Données : Introduction et Modèle Relationnel

Une introduction complète aux bases de données pour le Bac NSI. Apprenez les concepts fondamentaux, le modèle relationnel et les opérations de base avec des exemples concrets et des exercices corrigés.

Introduction aux Bases de Données

Les bases de données sont des systèmes informatiques conçus pour stocker et gérer de grandes quantités de données de manière organisée et efficace. Elles permettent de retrouver, modifier et supprimer des informations rapidement et facilement. Dans le monde numérique actuel, les bases de données sont omniprésentes, utilisées par des applications web aux systèmes de gestion d'entreprise. Elles permettent d’assurer la cohérence et l’intégrité des données, évitant ainsi les redondances et les erreurs. Sans les bases de données, il serait pratiquement impossible de gérer le volume d’informations que nous manipulons quotidiennement. Imaginez un monde sans bases de données: la recherche d'un simple produit sur un site de commerce en ligne prendrait un temps interminable, la réservation d'un billet d'avion serait un véritable casse-tête, et la gestion des dossiers médicaux serait un cauchemar logistique. Grâce aux bases de données, ces opérations sont fluides, rapides et sécurisées. Elles sont donc un pilier essentiel de l’infrastructure numérique moderne.

Le Modèle Relationnel

Le modèle relationnel, introduit par Edgar F. Codd dans les années 1970, est le modèle de données le plus largement utilisé pour les bases de données. Il repose sur l'organisation des données en tables, également appelées relations. Chaque table est composée de lignes (appelées tuples ou enregistrements) et de colonnes (appelées attributs ou champs).

Voici quelques concepts clés du modèle relationnel :

  • Relation (Table) : Un ensemble d'attributs et de tuples représentant une entité (par exemple, un étudiant, un produit, une commande). Une relation est un ensemble d'enregistrements (tuples) qui partagent les mêmes attributs (colonnes).
  • Tuple (Enregistrement) : Une ligne dans une table, représentant une instance particulière d'une entité. Par exemple, une ligne pourrait représenter un étudiant spécifique avec son nom, son prénom et son numéro d'étudiant.
  • Attribut (Champ) : Une colonne dans une table, représentant une caractéristique d'une entité. Par exemple, le nom, le prénom et le numéro d'étudiant sont des attributs de l'entité 'étudiant'.
  • Domaine : L'ensemble des valeurs possibles pour un attribut. Par exemple, le domaine de l'attribut 'âge' pourrait être l'ensemble des entiers positifs.
  • Clé Primaire : Un attribut (ou un ensemble d'attributs) qui identifie de manière unique chaque tuple dans une table. La clé primaire ne peut pas contenir de valeurs nulles. Par exemple, le numéro d'étudiant pourrait être la clé primaire de la table 'étudiant'.
  • Clé Étrangère : Un attribut dans une table qui fait référence à la clé primaire d'une autre table. Elle établit une relation entre les deux tables. Par exemple, une table 'commandes' pourrait avoir une clé étrangère faisant référence à la clé primaire de la table 'clients', indiquant quel client a passé chaque commande.

Exemple :

Prenons l'exemple d'une base de données pour gérer les étudiants et les cours dans une école. Nous pourrions avoir les tables suivantes :

  • Etudiants : (NuméroEtudiant, Nom, Prénom, DateNaissance)
  • Cours : (CodeCours, NomCours, Crédits)
  • Inscriptions : (NuméroEtudiant, CodeCours, DateInscription, Note)

Dans cet exemple, NuméroEtudiant et CodeCours sont les clés primaires des tables 'Etudiants' et 'Cours' respectivement. La table 'Inscriptions' a une clé primaire composite (NuméroEtudiant, CodeCours) et contient des clés étrangères faisant référence aux clés primaires des tables 'Etudiants' et 'Cours', établissant ainsi une relation entre les étudiants et les cours auxquels ils sont inscrits.

Intégrité Référentielle

L'intégrité référentielle est une contrainte fondamentale dans les bases de données relationnelles. Elle garantit que les relations entre les tables restent cohérentes. Plus précisément, elle impose que toute valeur d'une clé étrangère dans une table doit correspondre à une valeur existante dans la clé primaire de la table référencée.

Importance de l'Intégrité Référentielle :

  • Éviter les données orphelines : L'intégrité référentielle empêche l'ajout de tuples dans une table enfant (celle contenant la clé étrangère) si la valeur de la clé étrangère ne correspond pas à une valeur existante dans la table parent (celle contenant la clé primaire). Par exemple, on ne peut pas inscrire un étudiant à un cours si ce cours n'existe pas dans la table 'Cours'.
  • Maintenir la cohérence des données : Elle garantit que les relations entre les tables restent valides au fil du temps. Lorsqu'une ligne est supprimée dans la table parent, l'intégrité référentielle peut imposer des actions automatiques pour maintenir la cohérence, comme la suppression des lignes correspondantes dans la table enfant (suppression en cascade) ou la mise à jour des clés étrangères à NULL.

Exemple :

Reprenons l'exemple des tables 'Etudiants', 'Cours' et 'Inscriptions'. La table 'Inscriptions' contient des clés étrangères faisant référence aux clés primaires des tables 'Etudiants' et 'Cours'.

Si l'on tente d'insérer un nouvel enregistrement dans la table 'Inscriptions' avec un NuméroEtudiant qui n'existe pas dans la table 'Etudiants', l'opération sera rejetée par le système de gestion de base de données (SGBD). De même, si l'on tente de supprimer un cours de la table 'Cours' alors que des étudiants sont inscrits à ce cours dans la table 'Inscriptions', l'opération sera également rejetée (à moins que des règles de suppression en cascade n'aient été définies).

Opérations de Base : Sélection, Projection, Jointure

Les opérations de base du modèle relationnel permettent de manipuler et d'interroger les données stockées dans les tables. Les trois opérations les plus importantes sont la sélection, la projection et la jointure.

  • Sélection (Restriction) : La sélection permet de filtrer les tuples d'une table en fonction d'une condition. Elle renvoie un sous-ensemble des tuples qui satisfont cette condition. La sélection se note généralement σcondition(Relation).

    Exemple: σAge > 20(Etudiants) retourne tous les étudiants ayant plus de 20 ans.
  • Projection : La projection permet de sélectionner un sous-ensemble d'attributs (colonnes) d'une table. Elle renvoie une nouvelle table contenant uniquement les attributs spécifiés. La projection se note généralement πattribut1, attribut2, ...(Relation).

    Exemple: πNom, Prénom(Etudiants) retourne une table contenant uniquement les noms et prénoms des étudiants.
  • Jointure : La jointure permet de combiner les données de deux ou plusieurs tables en fonction d'une condition de liaison entre les attributs. Elle renvoie une nouvelle table contenant les attributs des tables combinées, pour les tuples qui satisfont la condition de liaison. Il existe plusieurs types de jointures (jointure interne, jointure externe, etc.). La jointure interne, la plus courante, ne conserve que les tuples qui ont une correspondance dans les deux tables. La jointure se note généralement Relation1 ⋈condition Relation2.

    Exemple: Etudiants ⋈Etudiants.NuméroEtudiant = Inscriptions.NuméroEtudiant Inscriptions retourne une table combinant les informations des étudiants et de leurs inscriptions, pour les étudiants qui sont inscrits à au moins un cours.

Ces trois opérations de base, combinées avec d'autres opérations comme l'union, l'intersection et la différence, permettent de construire des requêtes complexes pour extraire et manipuler les données stockées dans une base de données relationnelle.

Ce qu'il faut retenir

  • Bases de données : Systèmes organisés pour stocker et gérer des données.
  • Modèle Relationnel : Organisation des données en tables avec lignes (tuples) et colonnes (attributs).
  • Clé Primaire : Identifie de manière unique chaque enregistrement dans une table.
  • Clé Étrangère : Établit une relation entre deux tables.
  • Intégrité Référentielle : Garantit la cohérence des relations entre les tables.
  • Opérations de Base : Sélection (filtrer les enregistrements), Projection (sélectionner les colonnes), Jointure (combiner les tables).

FAQ

  • Quelle est la différence entre une clé primaire et une clé étrangère ?

    Une clé primaire identifie de manière unique chaque enregistrement dans une table, tandis qu'une clé étrangère fait référence à la clé primaire d'une autre table et établit une relation entre les deux.
  • Pourquoi l'intégrité référentielle est-elle importante ?

    L'intégrité référentielle garantit la cohérence des données en empêchant la création de relations incohérentes entre les tables.
  • Peut-on avoir plusieurs clés étrangères dans une table?

    Oui, une table peut contenir plusieurs clés étrangères, chacune référençant la clé primaire d'une autre table. Cela permet d'établir des relations complexes entre différentes entités dans la base de données.