classDiagram
    class Joueuse {
        identifiant
        nom
        prenom
        elo
        identifiant du club
    }
Structurer une base de données pour qu’elle soit :
Définition
Une dépendance fonctionnelle indique qu’une colonne (ou un ensemble de colonnes) détermine de manière unique une autre colonne :
| Nom | Description | 
|---|---|
| Réflexivité | (X, Y) → X | 
| Augmentation | Si X → Y, alors XZ → YZ | 
| Transitivité | Si X → Y et Y → Z alors, X → Z | 
| Nom | Description | 
|---|---|
| Union | Si X → Y et X → Z, alors X → YZ | 
| Décomposition | Si X → YZ, alors X → Z et X → Y | 
| Pseudo-transitivité | Si X → Y et WY → Z alors WX → Z | 
Dépendance Fonctionnelle Élémentaire
X → Y est élémentaire s’il n’existe aucun sous-ensemble strict Z inclus dans X tel que Z → Y
Dépendance Fonctionnelle Directe
X → Y est directe s’il n’existe pas de Z tel que X → Z et Z → Y
Définition
La normalisation vise à organiser les données :
Définition
Une relation est 1NF si tous ses attributs sont atomiques.
Définition
Une relation est 2NF si :
Autrement dit, tous les attributs sont déterminés par la clé complète.
Exemple de relation non 2NF :
Définition
Une relation est 3NF si :
Autrement dit, un attribut ne peut pas dépendre fonctionnellement d’un autre attribut non clé.
Exemple de relation non 3NF :
Passer en 3NF
Créer une table pays
Définition
UML est un langage de modélisation graphique standardisé utilisé pour spécifier, visualiser, concevoir et documenter différents aspects des systèmes logiciels.
Il offre une série de diagrammes pour représenter différents aspects d’un système.
Modèle conceptuel
classDiagram
    class Joueuse {
        identifiant
        nom
        prenom
        elo
        identifiant du club
    }
Modèle physique
classDiagram
    class joueuse {
        id_joueuse SERIAL PK
        nom        VARCHAR50
        prenom     VARCHAR50
        elo        INT
        #id_club   INT
    }
classDiagram
    direction LR
    class joueuse {
        id_joueuse SERIAL PK
        nom        VARCHAR50
        prenom     VARCHAR50
        elo        INT
        #id_club   INT
    }
    
    class club {
        id_club   SERIAL PK
        nom       VARCHAR50
        ville     VARCHAR50
    }
    joueuse "*" -- "0..1" club
classDiagram
    direction LR
    class joueuse {
        id_joueuse SERIAL PK
        nom        VARCHAR50
        prenom     VARCHAR50
        elo        INT
        #id_club   INT
    }
    
    class partie {
        #id_blanc     INT
        #id_noir      INT
        #id_resultat  INT
    }
    partie "*" --> "1" joueuse : jouée avec les blancs par ▶
    partie "*" --> "1" joueuse : jouée avec les noirs par ▶
classDiagram
    direction LR
    class joueuse {
        id_joueuse SERIAL PK
        nom        VARCHAR50
        prenom     VARCHAR50
        elo        INT
        #id_club   INT
    }
    
    class participe {
        #id_joueuse     INT
        #id_tournoi     INT
    }
    class tournoi {
        #id_tournoi     INT
        nom             INT
    }
    joueuse "1" -- "*" participe
    participe "*" -- "1" tournoi
De nombreux outils existent pour faire des diagrammes UML, soit en mode graphique ou code, par exemple :