L’objectif de l’activité est de créer une petite base de données concernant des pizzas, du point de vue d’un gérant de pizzeria : recettes, prix, ventes, notation, …
DB Browser for SQLite
L’activité s’appuie sur le logiciel DB Browser for SQLite, .
Sa version portable (sans installation) est accessible dans W:\DB Browser for SQLite.
DB Browser for SQLite
Site : http://sqlitebrowser.org/
DB Browser pour SQLite est un outil visuel et open source de haute qualité pour créer, concevoir et éditer des fichiers de base de données compatibles avec SQLite.
Il est destiné aux utilisateurs et aux développeurs souhaitant créer des bases de données, rechercher et modifier des données. Il utilise une interface similaire à une feuille de calcul et vous n’avez pas besoin d’apprendre des commandes SQL compliquées.
Les contrôles et les assistants sont disponibles pour les utilisateurs :
- Créer et compacter des fichiers de base de données
- Créer, définir, modifier et supprimer des tables
- Créer, définir et supprimer des index
- Parcourir, modifier, ajouter et supprimer des enregistrements
- Rechercher des enregistrements
- Importer et exporter des enregistrements sous forme de texte
- Importer et exporter des tables depuis / vers des fichiers CSV
- Importer et exporter des bases de données à partir de / vers des fichiers de vidage SQL
- Émettre des requêtes SQL et inspecter les résultats
- Examiner un journal de toutes les commandes SQL émises par l’application
Installation Windows / Mac OS
Télécharger l’application adaptée directement depuis le site de
DB Browser pour SQLite
Remarque : il existe pour Windows une version portable permettant à des utilisateurs ne possédant pas les privilèges administrateur d’utiliser DB Browser pour SQLite.
Installation Linux
sudo apt-get install sqlitebrowser
Schéma relationnel de la base de données
Voici le schéma relationnel (incomplet) de la base de données à réaliser :
Pizzas (id, nom, prix_vente)
Produits (id, nom, prix_kg, allergene)
Ventes (id, date, id_pizza, note_consommateur)
Analyse du schéma
Représenter ce schéma sous forme graphique.
Choisir les clés primaires des tables/relations.
Identifier les clés étrangères de ce schéma.
Définir les domaines de chacun des attributs des relations de la base (TEXT, INTEGER, REAL). Préciser les domaines pour les types de données qui ne sont pas pris en charge par SQLite (booléen, date, …), ou pour les attributs qui doivent être mieux contraints (note_consommateur, …)
Création de la base de données
Dans le logiciel, créer les trois tables/relations, en précisant dès le début, leur clé primaire. Observer avec attention la requête SQL qui se forme automatiquement dans la partie inférieure de la fenêtre. Donner aux attributs « identifiants » (id) la propriété « Auto Incrémentation » – AI) pour que le SGBD se charge de cette valeur automatiquement.
Ajouter les contraintes de clé étrangère (faire « Modifier la table », et agrandir la fenêtre jusqu’à voir apparaître la colonne « Clé étrangère »).
Ajouter à la base de données les deux pizzas ci-dessous :
- Margherita (10€)
- 4 Fromages (12€)
Ajouter à la base de données les produits suivants :
- Sauce tomate (2€/kg)
- Huile d’olive (15€/kg)
- Emmental (14€/kg) allèrgène
- Chèvre (18€/kg) allèrgène
- Bleu (14.5€/kg) allèrgène
- Mozzarella (5.5€/kg) allèrgène
- Basilic (26€/kg)
Composition des recettes de pizza
Pour faire une pizza, il faut plusieurs ingrédients. Or, une relation ne peut pas avoir d’attribut de type liste/tableau/n-uplet (comme on pourrait le faire en Python par exemple).
Afin d’associer des produits à une pizza, dans des quantités définies par la recette, on doit créer une nouvelle table qualifiée de table de liaison :
Ingredients(id_produit, id_pizza, quantite_kg)
Ajouter cette table/relation sur la forme graphique du schéma relationnel, puis sur la base de donnée créée avec le logiciel.
Ajouter les contraintes de clé étrangère.
Compléter la table Ingredients de la base de données pour composer les recettes suivantes.
- Margherita :
- Sauce tomate : 0,2 kg
- Mozzarella : 0,08 kg
- Huile d’olive : 0,01 kg
- Basilic : 0,008 kg
- 4 Fromages :
- Sauce tomate : 0,2 kg
- Mozzarella : 0,08 kg
- Bleu : 0.06 kg
- Chèvre : 0.05 kg
- Emmental : 0.06 kg
En déduire la clé primaire à utiliser pour cette relation, puis la définir sur le logiciel.
Exécution de requêtes
Dans l’onglet « Requêtes SQL », lancer des requêtes pour obtenir :
- La liste de tous les attributs de toutes les pizzas
- La liste de tous les produits allèrgènes
- La liste de tous les ingrédients de la pizza Margherita
- …