Files
Yggdrasil/infotro/SDi/database.md
T
2024-05-04 10:43:02 +02:00

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>![Database_style_null](medias/database-1_null.png)
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>![Database_style_object](medias/database-2_object.png)
3. En style Relationnel:
- Une table pour chaque classe.
- Chaque table à tous les attributs de la classe parente et de l'enfant.
<br>![Database_style_relation](medias/database-3_relation.png)
## 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.