Files
TermNSI/BDD_SGBD/RELATION.md

128 lines
5.6 KiB
Markdown
Raw Normal View History

2024-11-13 09:34:25 +01:00
## Le Modèle Relationnel : Fondations et Contraintes
----------------
### Le programme
![bo_relationnel](assets/bo_relationnel.png)
2024-11-13 09:34:25 +01:00
### Introduction : Le modèle qui a tout changé
Dans les années 1970, un chercheur d'IBM, **Edgar F. Codd**, propose un nouveau modèle pour organiser les données : le modèle relationnel. À l'époque, c'est une révolution. Les bases de données étaient alors gérées avec des structures hiérarchiques ou en réseau, complexes et rigides. Le modèle relationnel simplifie tout en utilisant des **tables** (ou relations) pour organiser les données. Résultat ? Une gestion plus efficace et un accès plus rapide aux informations.
Aujourd'hui, des outils comme MySQL, PostgreSQL ou SQLite appliquent toujours ce modèle. Et dire qu'il a commencé par une simple publication académique… Moralité : ne sous-estimez jamais le pouvoir d'un bon papier !
---
## Les Clés : Gardiennes de l'Ordre
2024-11-13 09:34:25 +01:00
### Clé Primaire (Primary Key)
2024-11-13 09:34:25 +01:00
#### **Définition**
La clé primaire est lattribut (ou combinaison dattributs) qui permet didentifier de manière unique chaque enregistrement dans une table. **Cest léquivalent dune carte didentité dans une base de données.**
#### **Exemple**
Table `Etudiants` :
| ID_Etudiant | Nom | Prénom | Age |
| ----------- | ------ | ------ | ---- |
| 1 | Dupont | Marie | 18 |
| 2 | Durant | Jean | 19 |
| 3 | Morel | Sophie | 20 |
Ici, la colonne `ID_Etudiant` est la clé primaire, car chaque valeur est unique et permet de distinguer les étudiants.
#### **Rôle crucial de la clé primaire**
- **Unicité** : Chaque enregistrement est unique.
- **Référence** : Les autres tables peuvent sy référer via des clés étrangères.
### Clé Étrangère (Foreign Key)
2024-11-13 09:34:25 +01:00
#### **Définition**
Une clé étrangère est un attribut dune table qui fait référence à la clé primaire dune autre table. Elle établit un lien logique entre les deux tables.
#### **Exemple**
Table `Cours` :
| ID_Cours | Nom_Cours | ID_Prof |
| -------- | ------------- | ------- |
| 101 | Mathématiques | 1 |
| 102 | Informatique | 2 |
| 103 | Histoire | 3 |
Table `Professeurs` :
| ID_Prof | Nom_Prof |
| ------- | -------- |
| 1 | Martin |
| 2 | Leroy |
| 3 | Dubois |
Ici, la colonne `ID_Prof` de la table `Cours` est une clé étrangère qui fait référence à la colonne `ID_Prof` de la table `Professeurs`. Cela permet de savoir quel professeur enseigne quel cours.
---
## Les Contraintes d'Intégrité : Les Règles du Jeu
2024-11-13 09:34:25 +01:00
Les contraintes dintégrité garantissent la cohérence des données dans une base de données relationnelle. Elles permettent d'éviter des erreurs telles que des données incohérentes ou incomplètes.
### Contrainte d'Intégrité d'Entité
2024-11-13 09:34:25 +01:00
**Définition** : La clé primaire ne doit jamais contenir de valeur `NULL` et doit être unique.
**Exemple** :
Dans la table `Etudiants`, il est impossible davoir deux fois le même `ID_Etudiant` ou un `ID_Etudiant` vide.
| ID_Etudiant | Nom | Prénom | Age |
| ----------- | ------ | ------ | ---- |
| 1 | Dupont | Marie | 18 |
| 2 | Durant | Jean | 19 |
| 1 | Morel | Sophie | 20 |
### Contrainte d'Intégrité Référentielle
2024-11-13 09:34:25 +01:00
**Définition** : Une clé étrangère doit toujours faire référence à une clé primaire existante dans la table référencée.
**Exemple** :
Si un cours dans la table `Cours` fait référence à un `ID_Prof` inexistant dans `Professeurs`, cela crée une incohérence.
| ID_Cours | Nom_Cours | ID_Prof |
| -------- | ------------- | ------- |
| 101 | Mathématiques | 1 |
| 102 | Informatique | 4 |
### Contrainte d'Intégrité de Domaine
2024-11-13 09:34:25 +01:00
**Définition** : Les valeurs dun attribut doivent respecter un type ou un domaine prédéfini.
**Exemple** :
Si lattribut `Age` est défini comme un entier positif, une valeur comme `-3` ou `Texte` serait invalide.
| ID_Etudiant | Nom | Prénom | Age |
| ----------- | ------ | ------ | ----- |
| 1 | Dupont | Marie | 18 |
| 2 | Durant | Jean | -3 |
| 3 | Morel | Sophie | Texte |
---
## Anecdote : Le bug de la clé étrangère oubliée
Dans les années 1990, une banque a oublié dappliquer la contrainte dintégrité référentielle dans sa base de données. Résultat : des milliers de transactions faisaient référence à des comptes clients inexistants. Moralité : quand on parle d'argent, mieux vaut éviter les erreurs de clé étrangère !
---
## Conclusion
Le modèle relationnel repose sur des concepts simples mais puissants. Les clés primaires et étrangères permettent de lier les données de manière cohérente, tandis que les contraintes d'intégrité assurent la fiabilité des informations.
**Poursuite :** nous verrons comment utiliser le langage SQL pour manipuler ces données et appliquer ces contraintes.
2024-11-13 09:34:25 +01:00
Et souvenez-vous : "Une base bien modélisée est comme une maison bien construite : elle résistera aux tempêtes (ou presque) !"
------
Auteur : Florian Mathieu
Licence CC BY NC
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Licence Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a> <br />Ce cours est mis à disposition selon les termes de la <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Licence Creative Commons Attribution - Pas dUtilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International</a>.