31 lines
1.3 KiB
Markdown
31 lines
1.3 KiB
Markdown
<header><h1>
|
|
Database
|
|
</h1></header>
|
|
|
|
[Lab about databases and SQL](/infotro/SDi/labs/database/README.md).
|
|
|
|
# Relational database
|
|
Lorsque l'on fait une database, on peut représenter des objets de 3 manières différentes :
|
|
1. Avec des valeurs `NULL`:
|
|
- Une table pour tous les attributs de la classe parents et tous les enfants.
|
|
- Les attributs des enfants qui ne sont pas dans la table sont `NULL`.
|
|
<br>
|
|
2. En style Orienté Objet:
|
|
- Une table pour chaque classe.
|
|
- Chaque table a seulement ces attributs spécifiques.
|
|
- Les tables sont liées par des clés étrangères.
|
|
<br>
|
|
3. En style Relationnel:
|
|
- Une table pour chaque classe.
|
|
- Chaque table à tous les attributs de la classe parente et de l'enfant.
|
|
<br>
|
|
|
|
## Clés
|
|
- **Clé primaire** : identifie de manière unique une ligne dans une table (colonne unique ou combinaison unique).
|
|
- **Clé étrangère** : référence sur une clé primaire d'une table.
|
|
|
|
## Suppression
|
|
- **NO ACTION** : empêche la suppression si des lignes sont liées.
|
|
- **SET NULL** : met à `NULL` les valeurs liées.
|
|
- **CASCADE** : supprime les lignes liées.
|