# Bases de données
## Bases de données, c'est quoi ?
### Différents types
### BDD relationnelles

## Définitions et modélisation (aborder avec une approche pratique)
- Relation, schéma, attributs
- Contraintes : intégrité, unicité, inclusion
- Clés (primaire, étrangère...)
- Schéma relationnel
- Many to One, One to Many, Many to many et One to One

## SQL
- Manipuler des données
- Manipuler le schéma
- Atomicité (begin, commit, rollback)
- Jointures


# Orga
## TP
- Découverte du SQL et des bases de données
  - Docker pour lancer postgres ou mariadb
  - Utilisation de la console
  - Création d'une table, insertion de données, selection, mises à jour
  - update et delete
  - mise en place de contraintes
  - clés primaires
  - Création d'une seconde table et clés étrangères
  - jointures naturelles et normalisées
- Bases de données relationnelles avancées
  - Analyse et compréhension d'un MCD
  - Mise en oeuvre du schéma et paramétrage des droits (création des tables + insertion de données)
  - Modification/complétion du schéma
  - Modification du schéma
  - Atomicité
  - Faire une sauvegarde / restauration
  - Paramétrage du fichier de configuration
- Bonus : Optimiser une BDD
  - Introduction aux index
  - Analyse des performances d'une requête complexe + optimisation
  - Nettoyage d'une base

## Cours
- Retour sur le TP + Lire un MCD + Many to one / One to many / etc...
- Bonnes pratiques de maintenance des BDD

## TD
- Requêtes (2 séances)
- Analyse de schéma, amélioration de schéma, création de petits schémas


# Ressources 
[Merise](https://memento-dev.fr/docs/merise/mld)