Les dictionnaires sont des tableaux associatifs dans lesquels chaque clés est reliée à une valeur.
Un dictionnaire se crée avec des accolades.
dico = {} # Création d'une dictionnaire vide
dico = {'clé1' : 'valeur1', 'clé2' : 'valeur1', 'clé3' : 'valeur3'} # Création d'une dictionnaire avec 3 valeurs
Pour ajouter une valeur dans un dictionnaire, il faut indiquer une clé entre crochets.
mon_dico[clé] = valeur # Ajout de valeur à la "position" clé
Si on ajoute une valeur à une clé existante, cela remplacera l'ancienne valeur par la nouvelle.
À savoir : si on boucle sur un dictionnaire, Python nous renverra les clés :
for element in dico:
print(element) # Affiche clé1 puis clé2 puis clé3
Les dictionnaires sont des tableaux associatifs dans lesquels chaque clés est reliée à une valeur.
Un dictionnaire se crée avec des accolades.
dico = {} # Création d'une dictionnaire vide
dico = {'clé1' : 'valeur1', 'clé2' : 'valeur1', 'clé3' : 'valeur3'} # Création d'une dictionnaire avec 3 valeurs
Pour ajouter une valeur dans un dictionnaire, il faut indiquer une clé entre crochets.
mon_dico[clé] = valeur # Ajout de valeur à la "position" clé
Si on ajoute une valeur à une clé existante, cela remplacera l'ancienne valeur par la nouvelle.
À savoir : si on boucle sur un dictionnaire, Python nous renverra les clés :
for element in dico:
print(element) # Affiche clé1 puis clé2 puis clé3
NORMALISATION
Soit on fait un MCD (Modèle Conceptuel des Données), soit on fait une normalisation. On a vu le MCD dans la fiche sur la structuration de données, maintenant, on va voir la normalisation.
Une normalisation est une liste de variables que l'on souhaite voir figurer dans la base de données.
Les attributs de la normalisation doivent respecté 3 règles :
- 1ère forme normale (1NF) : il doit y avoir une colonne par variable.
Exemple :
fournisseurs(nom, adresses)
L'entité n’est pas en 1NF si on a plus de deux adresses pour un même nom de fournisseur.
Solution :
fournisseurs(nom, id_adresse)
adresses_fournisseur(id_adresse, adresse)
On a bien un id unique par adresse.
- 2ème forme normale (2NF) : il ne doit pas y avoir dans une table un attribut qui ne dépend que d'une partie de la clé.
Exemple :
composer(id_commande, id_produit, quantité, prix)
La clé est composée de la commande et du produit. L'entité n’est pas en 2NF car le prix ne dépend que du produit.
Solution :
composer(id_commande, id_produit, quantité)
produits(id_produit, prix)
- 3ème forme normale (3NF) : il ne doit pas y avoir de relation de dépendance fonctionnelle entre des attributs qui ne font pas partie d'une clé.
Exemple :
communes(id, nom, département, région)
L'entité n’est pas en 3NF car la région est déterminé à partir du département. On a donc une dépendance fonctionnelle.
Solution :
communes(id, nom_commune, nom_département)
départements(nom_département, région)
Pour éviter les redondances (répétition d’une même information sur plusieurs lignes), on peut décomposer une relation en la remplaçant par plusieurs relations.
Exemple :
Entité(id_commande, id_client, id_produit, prix)
Avec la décomposition, la relation Entité devient
Entité1(id_commande, id_client)
Entité2(id_produit, prix)
Entité3(id_commande, id_produit)
On crée une entité par clé, plus une entité liant les clés.
Une décomposition est sans perte d’information quand on peut reconstituer l'information d’origine par jointure des entités décomposées. Attention, il ne faut pas faire de décomposition avec perte d'informations.