La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

DOSSIER 07 – Interroger une base de données

Présentations similaires


Présentation au sujet: "DOSSIER 07 – Interroger une base de données"— Transcription de la présentation:

1 DOSSIER 07 – Interroger une base de données

2 DOSSIER 07 Problématique

3 Problématique La base de données Facturation contient tout un ensemble d’informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de boulangerie). Nous allons apprendre à la « faire parler », à exploiter cette mine d’informations pour mieux connaître sa clientèle et ainsi améliorer sans cesse sa politique commerciale. Nous allons voir pourquoi le lourd travail de structuration mené précédemment va maintenant porter ses fruits.

4 Activité 1 – Une vue d’ensemble de la base de données « Facturation »
DOSSIER 07 Activité 1 – Une vue d’ensemble de la base de données « Facturation »

5 Une vue d’ensemble de la base de données «Facturation »
Voici comment se présente, sous Access (logiciel de gestion de base de données relationnels), le schéma relationnel de la base de données étudiée au préalable. Modèle Relationnel des Données Table 1 : PRODUITS (Reference du produit, Designation du produit, Prix unitaire du produit) Clé primaire : Reference du produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference du produit, N°_facture, Quantite) Clé primaire : Reference du produit, N°_facture Clé étrangère : Reference du produit en référence à Reference du produit de PRODUITS N°_facture en référence à N°_facture de FACTURES Table 3 : FACTURES (N°_facture, Date de la facture, Payée, Code de la categorie, N° client dans la categorie) Clé primaire : N°_facture Clé étrangère : Code de la categorie + N° client dans la categorie en référence à Code de la categorie + N° client dans la categorie de CLIENTS Table 4 : CLIENTS (Code de la categorie, N°_client dans la categorie, Nom de l’entreprise, Adresse, Adresse Suite, Code postal, Montant des achats, Suivi par le représentant n°, Téléphone, ) Clé primaire : Code de la categorie + N° client dans la categorie Clé étrangère : Code postal en référence à Code postal de VILLES Table 5 : VILLES (Code postal, Nom de la ville) Clé primaire : Code postal

6 Une vue d’ensemble de la base de données «Facturation »
Modèle Relationnel des Données Table 1 : PRODUITS (Reference du produit, Designation du produit, Prix unitaire du produit) Clé primaire : Reference du produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference du produit, N°_facture, Quantite) Clé primaire : Reference du produit, N°_facture Clé étrangère : Reference du produit en référence à Reference du produit de PRODUITS N°_facture en référence à N°_facture de FACTURES Table 3 : FACTURES (N°_facture, Date de la facture, Payée, Code de la categorie, N° client dans la categorie) Clé primaire : N°_facture Clé étrangère : Code de la categorie + N° client dans la categorie en référence à Code de la categorie + N° client dans la categorie de CLIENTS Table 4 : CLIENTS (Code de la categorie, N°_client dans la categorie, Nom de l’entreprise, Adresse, Adresse Suite, Code postal, Montant des achats, Suivi par le représentant n°, Téléphone, ) Clé primaire : Code de la categorie + N° client dans la categorie Clé étrangère : Code postal en référence à Code postal de VILLES Table 5 : VILLES (Code postal, Nom de la ville) Clé primaire : Code postal 01. Que représente chaque table ? Chaque table représente la structure d’une table, on peut distinguer les différents attributs (champs) contenus dans chaque catégorie d’information. Avec le logiciel Access, chaque fenêtre représente le schéma (la structure) d’une table.

7 Une vue d’ensemble de la base de données «Facturation »
Modèle Relationnel des Données Table 1 : PRODUITS (Reference du produit, Designation du produit, Prix unitaire du produit) Clé primaire : Reference du produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference du produit, N°_facture, Quantite) Clé primaire : Reference du produit, N°_facture Clé étrangère : Reference du produit en référence à Reference du produit de PRODUITS N°_facture en référence à N°_facture de FACTURES Table 3 : FACTURES (N°_facture, Date de la facture, Payée, Code de la categorie, N° client dans la categorie) Clé primaire : N°_facture Clé étrangère : Code de la categorie + N° client dans la categorie en référence à Code de la categorie + N° client dans la categorie de CLIENTS Table 4 : CLIENTS (Code de la categorie, N°_client dans la categorie, Nom de l’entreprise, Adresse, Adresse Suite, Code postal, Montant des achats, Suivi par le représentant n°, Téléphone, ) Clé primaire : Code de la categorie + N° client dans la categorie Clé étrangère : Code postal en référence à Code postal de VILLES Table 5 : VILLES (Code postal, Nom de la ville) Clé primaire : Code postal 02. Que représentent les clés primaires ? Ils représentent la donnée qui permet d’identifier un individu par rapport à un autre (parfois la clé primaire peut être composée de plusieurs attributs). Avec le logiciel Access, chaque clé primaire est affichée en gras (la clé primaire peut être formée de deux champs (ou davantage). Chacun d’eux est représenté en gras mais, par définition, il n’y a qu’une clé primaire).

8 Une vue d’ensemble de la base de données «Facturation »
Modèle Relationnel des Données Table 1 : PRODUITS (Reference du produit, Designation du produit, Prix unitaire du produit) Clé primaire : Reference du produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference du produit, N°_facture, Quantite) Clé primaire : Reference du produit, N°_facture Clé étrangère : Reference du produit en référence à Reference du produit de PRODUITS N°_facture en référence à N°_facture de FACTURES Table 3 : FACTURES (N°_facture, Date de la facture, Payée, Code de la categorie, N° client dans la categorie) Clé primaire : N°_facture Clé étrangère : Code de la categorie + N° client dans la categorie en référence à Code de la categorie + N° client dans la categorie de CLIENTS Table 4 : CLIENTS (Code de la categorie, N°_client dans la categorie, Nom de l’entreprise, Adresse, Adresse Suite, Code postal, Montant des achats, Suivi par le représentant n°, Téléphone, ) Clé primaire : Code de la categorie + N° client dans la categorie Clé étrangère : Code postal en référence à Code postal de VILLES Table 5 : VILLES (Code postal, Nom de la ville) Clé primaire : Code postal 03. Donnez la signification de la clé étrangère. Chaque clé étrangère montre le lien entre les tables. Son origine est une clé étrangère et son extrémité est la clé primaire qu’elle doit référencer. Les liens entre les tables symbolisent les liens entre les diverses tables qui partent d’une clé étrangère pour pointer sur une clé primaire.

9 Une vue d’ensemble de la base de données «Facturation »
Modèle Relationnel des Données Table 1 : PRODUITS (Reference du produit, Designation du produit, Prix unitaire du produit) Clé primaire : Reference du produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference du produit, N°_facture, Quantite) Clé primaire : Reference du produit, N°_facture Clé étrangère : Reference du produit en référence à Reference du produit de PRODUITS N°_facture en référence à N°_facture de FACTURES Table 3 : FACTURES (N°_facture, Date de la facture, Payée, Code de la categorie, N° client dans la categorie) Clé primaire : N°_facture Clé étrangère : Code de la categorie + N° client dans la categorie en référence à Code de la categorie + N° client dans la categorie de CLIENTS Table 4 : CLIENTS (Code de la categorie, N°_client dans la categorie, Nom de l’entreprise, Adresse, Adresse Suite, Code postal, Montant des achats, Suivi par le représentant n°, Téléphone, ) Clé primaire : Code de la categorie + N° client dans la categorie Clé étrangère : Code postal en référence à Code postal de VILLES Table 5 : VILLES (Code postal, Nom de la ville) Clé primaire : Code postal 04. Comment interprétez-vous le chiffre 1 et le symbole mathématique de l’infini ∞, qui signifie « plusieurs ». Sous Access, le symbole ∞ est du côté de la clé étrangère et le chiffre 1 (singulier) du côté de la clé primaire.

10 Une vue d’ensemble de la base de données «Facturation »
Modèle Relationnel des Données Table 1 : PRODUITS (Reference du produit, Designation du produit, Prix unitaire du produit) Clé primaire : Reference du produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference du produit, N°_facture, Quantite) Clé primaire : Reference du produit, N°_facture Clé étrangère : Reference du produit en référence à Reference du produit de PRODUITS N°_facture en référence à N°_facture de FACTURES Table 3 : FACTURES (N°_facture, Date de la facture, Payée, Code de la categorie, N° client dans la categorie) Clé primaire : N°_facture Clé étrangère : Code de la categorie + N° client dans la categorie en référence à Code de la categorie + N° client dans la categorie de CLIENTS Table 4 : CLIENTS (Code de la categorie, N°_client dans la categorie, Nom de l’entreprise, Adresse, Adresse Suite, Code postal, Montant des achats, Suivi par le représentant n°, Téléphone, ) Clé primaire : Code de la categorie + N° client dans la categorie Clé étrangère : Code postal en référence à Code postal de VILLES Table 5 : VILLES (Code postal, Nom de la ville) Clé primaire : Code postal 05. Pourquoi la fenêtre qui contient le schéma de la base de données s’appelle « Relations ». Sous Access, le schéma s’appelle « Relations » parce que son principal intérêt est de montrer les liens, les relations entre les tables.

11 Une vue d’ensemble de la base de données «Facturation »
Modèle Relationnel des Données Table 1 : PRODUITS (Reference du produit, Designation du produit, Prix unitaire du produit) Clé primaire : Reference du produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference du produit, N°_facture, Quantite) Clé primaire : Reference du produit, N°_facture Clé étrangère : Reference du produit en référence à Reference du produit de PRODUITS N°_facture en référence à N°_facture de FACTURES Table 3 : FACTURES (N°_facture, Date de la facture, Payée, Code de la categorie, N° client dans la categorie) Clé primaire : N°_facture Clé étrangère : Code de la categorie + N° client dans la categorie en référence à Code de la categorie + N° client dans la categorie de CLIENTS Table 4 : CLIENTS (Code de la categorie, N°_client dans la categorie, Nom de l’entreprise, Adresse, Adresse Suite, Code postal, Montant des achats, Suivi par le représentant n°, Téléphone, ) Clé primaire : Code de la categorie + N° client dans la categorie Clé étrangère : Code postal en référence à Code postal de VILLES Table 5 : VILLES (Code postal, Nom de la ville) Clé primaire : Code postal 06. Chacun des quatre traitements ci-après évoque une opération sur la table CLIENTS. Pourriez-vous lui donner un nom ? Affichage de la liste des clients : Lecture ou Consultation ou Interrogation

12 Une vue d’ensemble de la base de données «Facturation »
Modèle Relationnel des Données Table 1 : PRODUITS (Reference du produit, Designation du produit, Prix unitaire du produit) Clé primaire : Reference du produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference du produit, N°_facture, Quantite) Clé primaire : Reference du produit, N°_facture Clé étrangère : Reference du produit en référence à Reference du produit de PRODUITS N°_facture en référence à N°_facture de FACTURES Table 3 : FACTURES (N°_facture, Date de la facture, Payée, Code de la categorie, N° client dans la categorie) Clé primaire : N°_facture Clé étrangère : Code de la categorie + N° client dans la categorie en référence à Code de la categorie + N° client dans la categorie de CLIENTS Table 4 : CLIENTS (Code de la categorie, N°_client dans la categorie, Nom de l’entreprise, Adresse, Adresse Suite, Code postal, Montant des achats, Suivi par le représentant n°, Téléphone, ) Clé primaire : Code de la categorie + N° client dans la categorie Clé étrangère : Code postal en référence à Code postal de VILLES Table 5 : VILLES (Code postal, Nom de la ville) Clé primaire : Code postal 06. Chacun des quatre traitements ci-après évoque une opération sur la table CLIENTS. Pourriez-vous lui donner un nom ? Écriture ou Enregistrement Enregistrement d’un client :

13 Une vue d’ensemble de la base de données «Facturation »
Modèle Relationnel des Données Table 1 : PRODUITS (Reference du produit, Designation du produit, Prix unitaire du produit) Clé primaire : Reference du produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference du produit, N°_facture, Quantite) Clé primaire : Reference du produit, N°_facture Clé étrangère : Reference du produit en référence à Reference du produit de PRODUITS N°_facture en référence à N°_facture de FACTURES Table 3 : FACTURES (N°_facture, Date de la facture, Payée, Code de la categorie, N° client dans la categorie) Clé primaire : N°_facture Clé étrangère : Code de la categorie + N° client dans la categorie en référence à Code de la categorie + N° client dans la categorie de CLIENTS Table 4 : CLIENTS (Code de la categorie, N°_client dans la categorie, Nom de l’entreprise, Adresse, Adresse Suite, Code postal, Montant des achats, Suivi par le représentant n°, Téléphone, ) Clé primaire : Code de la categorie + N° client dans la categorie Clé étrangère : Code postal en référence à Code postal de VILLES Table 5 : VILLES (Code postal, Nom de la ville) Clé primaire : Code postal 06. Chacun des quatre traitements ci-après évoque une opération sur la table CLIENTS. Pourriez-vous lui donner un nom ? Modification Modification de l’adresse d’un client :

14 Une vue d’ensemble de la base de données «Facturation »
Modèle Relationnel des Données Table 1 : PRODUITS (Reference du produit, Designation du produit, Prix unitaire du produit) Clé primaire : Reference du produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference du produit, N°_facture, Quantite) Clé primaire : Reference du produit, N°_facture Clé étrangère : Reference du produit en référence à Reference du produit de PRODUITS N°_facture en référence à N°_facture de FACTURES Table 3 : FACTURES (N°_facture, Date de la facture, Payée, Code de la categorie, N° client dans la categorie) Clé primaire : N°_facture Clé étrangère : Code de la categorie + N° client dans la categorie en référence à Code de la categorie + N° client dans la categorie de CLIENTS Table 4 : CLIENTS (Code de la categorie, N°_client dans la categorie, Nom de l’entreprise, Adresse, Adresse Suite, Code postal, Montant des achats, Suivi par le représentant n°, Téléphone, ) Clé primaire : Code de la categorie + N° client dans la categorie Clé étrangère : Code postal en référence à Code postal de VILLES Table 5 : VILLES (Code postal, Nom de la ville) Clé primaire : Code postal 06. Chacun des quatre traitements ci-après évoque une opération sur la table CLIENTS. Pourriez-vous lui donner un nom ? Suppression Suppression d’un client :

15 DOSSIER 07 Activité 2 – Quelques opérations sur la base de données « Facturation »

16 Quelques opérations sur la base de données « Facturation »
Code de la catégorie N° client dans la catégorie Nom de l’entreprise Adresse Adresse suite Code postal Suivi par le représentant n° Montant des achats BOU 001 Anis & Miel 7 chemin de Cassis 13010 R2 3 584,00 € 002 Les moulins de Pvce 74 bd R. Rolland R4 2 458,00 € EPI Bataille 17 rue des Trois Rois 13006 18 245,00 € HYP Auchan 485 bd des Bartavelles ZI Les Paluds 13400 R1 105 147,00 € Casino 47 route de Cuques La Valentine 13011 250 475,00 € 003 Leclerc 5 route de Cabriès Plan de campagne 13480 85 560,00 € PAT Les Moulins de Pvce 45 av. M. Pagnol R3 5 780,00 € SUP Intermarché 30 rue Pierre 13456 1 854,00 € 145 bd P. Claudel 15 784,00 € Cette opération ne concerne que les colonnes. On affiche les trois premières colonnes et la dernière. 7. Par rapport à la table CLIENTS, cette opération concerne-t-elle les lignes ou les colonnes ? Code postal Nom de la ville 13010 Marseille 13011 13400 Aubagne Code de la catégorie N° client dans la catégorie Nom de l’entreprise Montant des achats BOU 001 Anis et Miel 3 584,00 € 002 Les Moulins de Pvce 2 458,00 € EPI Bataille 18 245,00 € HYP Auchan ,00 € Casino ,00 € 003 Leclerc 85 560,00 € PAT 5 780,00 € SUP Intermarché 1 854,00 € 15 784,00 € Voici, sous la forme d’une table, la liste des clients avec leur numéro (Code de la catégorie et N° client dans la catégorie), le nom de l’entreprise et le montant de leurs achats (obtenu par le biais d’une requête).

17 N° client dans la catégorie N° client dans la catégorie
Quelques opérations sur la base de données « Facturation » Code de la catégorie N° client dans la catégorie Nom de l’entreprise Montant des achats BOU 001 Anis et Miel 3 584,00 € 002 Les Moulins de Pvce 2 458,00 € EPI Bataille 18 245,00 € HYP Auchan ,00 € Casino ,00 € 003 Leclerc 85 560,00 € PAT 5 780,00 € SUP Intermarché 1 854,00 € 15 784,00 € 8. Par rapport à la requête obtenue précédemment, quelle modification a été apportée ci-dessous ? Code de la catégorie N° client dans la catégorie Nom de l’entreprise Montant des achats BOU 001 Anis et Miel 3 584,00 € HYP Auchan ,00 € EPI Bataille 18 245,00 € 002 Casino ,00 € SUP 15 784,00 € Intermarché 1 854,00 € 003 Leclerc 85 560,00 € Les Moulins de Pvce 2 458,00 € PAT 5 780,00 € La colonne Nom de l’entreprise a été classée dans l’ordre croissant (alphabétique).

18 Quelques opérations sur la base de données « Facturation »
Code de la catégorie N° client dans la catégorie Nom de l’entreprise Adresse Adresse suite Code postal Suivi par le représentant n° Montant des achats BOU 001 Anis & Miel 7 chemin de Cassis 13010 R2 3 584,00 € 002 Les moulins de Pvce 74 bd R. Rolland R4 2 458,00 € EPI Bataille 17 rue des Trois Rois 13006 18 245,00 € HYP Auchan 485 bd des Bartavelles ZI Les Paluds 13400 R1 105 147,00 € Casino 47 route de Cuques La Valentine 13011 250 475,00 € 003 Leclerc 5 route de Cabriès Plan de campagne 13480 85 560,00 € PAT Les Moulins de Pvce 45 av. M. Pagnol R3 5 780,00 € SUP Intermarché 30 rue Pierre 13456 1 854,00 € 145 bd P. Claudel 15 784,00 € Code postal Nom de la ville 13010 Marseille Centre 13011 Marseille Est 13400 Aubagne Code de la catégorie N° client dans la catégorie Nom de l’entreprise Montant des achats Nom de la ville BOU 001 Anis et Miel 3 584,00 € Marseille Centre SUP 002 Casino 15 784,00 € PAT Les Moulins de Pvce 5 780,00 € Voici, sous la forme d’une table, une deuxième requête. 9. Pourquoi tous les clients ne sont-ils pas présents ? L’opération n’affiche que les clients qui résident sur Marseille Centre.

19 Quelques opérations sur la base de données « Facturation »
Code de la catégorie N° client dans la catégorie Nom de l’entreprise Adresse Adresse suite Code postal Suivi par le représentant n° Montant des achats BOU 001 Anis & Miel 7 chemin de Cassis 13010 R2 3 584,00 € 002 Les moulins de Pvce 74 bd R. Rolland R4 2 458,00 € EPI Bataille 17 rue des Trois Rois 13006 18 245,00 € HYP Auchan 485 bd des Bartavelles ZI Les Paluds 13400 R1 105 147,00 € Casino 47 route de Cuques La Valentine 13011 250 475,00 € 003 Leclerc 5 route de Cabriès Plan de campagne 13480 85 560,00 € PAT Les Moulins de Pvce 45 av. M. Pagnol R3 5 780,00 € SUP Intermarché 30 rue Pierre 13456 1 854,00 € 145 bd P. Claudel 15 784,00 € Code postal Nom de la ville 13010 Marseille Centre 13011 Marseille Est 13400 Aubagne Code de la catégorie N° client dans la catégorie Nom de l’entreprise Montant des achats Nom de la ville BOU 001 Anis et Miel 3 584,00 € Marseille Centre SUP 002 Casino 15 784,00 € PAT Les Moulins de Pvce 5 780,00 € Voici, sous la forme d’une table, une deuxième requête. 10. Quelle est donc cette nouvelle opération ? En quoi consiste-t-elle ? Cette nouvelle opération s’attache principalement aux lignes (aux enregistrements) à afficher en fonction d’un critère, ici la ville, dont une valeur est donnée.

20 Quelques opérations sur la base de données « Facturation »
Code de la catégorie N° client dans la catégorie Nom de l’entreprise Adresse Adresse suite Code postal Suivi par le représentant n° Montant des achats BOU 001 Anis & Miel 7 chemin de Cassis 13010 R2 3 584,00 € 002 Les moulins de Pvce 74 bd R. Rolland R4 2 458,00 € EPI Bataille 17 rue des Trois Rois 13006 18 245,00 € HYP Auchan 485 bd des Bartavelles ZI Les Paluds 13400 R1 105 147,00 € Casino 47 route de Cuques La Valentine 13011 250 475,00 € 003 Leclerc 5 route de Cabriès Plan de campagne 13480 85 560,00 € PAT Les Moulins de Pvce 45 av. M. Pagnol R3 5 780,00 € SUP Intermarché 30 rue Pierre 13456 1 854,00 € 145 bd P. Claudel 15 784,00 € Code postal Nom de la ville 13010 Marseille Centre 13011 Marseille Est 13400 Aubagne Code de la catégorie N° client dans la catégorie Nom de l’entreprise Montant des achats Nom de la ville BOU 001 Anis et Miel 3 584,00 € Marseille Centre SUP 002 Casino 15 784,00 € PAT Les Moulins de Pvce 5 780,00 € Voici, sous la forme d’une table, une deuxième requête. 11. Quelles tables ont été consultées pour obtenir cette requête ? On doit consulter les tables CLIENTS et VILLES, puisque le Nom de la ville est dans VILLES et toutes les autres informations dans CLIENTS.

21 Quelques opérations sur la base de données « Facturation »
Code de la catégorie N° client dans la catégorie Nom de l’entreprise Adresse Adresse suite Code postal Suivi par le représentant n° Montant des achats BOU 001 Anis & Miel 7 chemin de Cassis 13010 R2 3 584,00 € 002 Les moulins de Pvce 74 bd R. Rolland R4 2 458,00 € EPI Bataille 17 rue des Trois Rois 13006 18 245,00 € HYP Auchan 485 bd des Bartavelles ZI Les Paluds 13400 R1 105 147,00 € Casino 47 route de Cuques La Valentine 13011 250 475,00 € 003 Leclerc 5 route de Cabriès Plan de campagne 13480 85 560,00 € PAT Les Moulins de Pvce 45 av. M. Pagnol R3 5 780,00 € SUP Intermarché 30 rue Pierre 13456 1 854,00 € 145 bd P. Claudel 15 784,00 € Code postal Nom de la ville 13010 Marseille Centre 13011 Marseille Est 13400 Aubagne Code de la catégorie N° client dans la catégorie Nom de l’entreprise Montant des achats Code postal BOU 001 Anis et Miel 3 584,00 € 13010 SUP 002 Casino 15 784,00 € PAT Les Moulins de Pvce 5 780,00 € Voici, sous la forme d’une table, une deuxième requête. 12. Comment faites-vous le lien (la relation) entre elles ? Le lien se fait grâce à la clé étrangère Code postal, qui, dans CLIENTS, référence le Code postal de la table VILLES et permet ainsi de trouver son nom.

22 Activité 3 – Parlons un peu SQL
DOSSIER 07 Activité 3 – Parlons un peu SQL

23 Parlons un peu SQL Sur la norme du langage SQL, on vous communique les informations suivantes : Select traduit la projection et indique, à sa suite, les champs qui doivent être affichés ; From indique à quelle table appartiennent les champs ; Les champs sont séparés par une virgule ; Pour éviter toute erreur lors de l’exécution de la requête par le SGBDR, lorsque le nom d’un champ comprend des espaces, on doit l’encadrer par des crochets. Requête SQL : SELECT CLIENTS.[Code de la catégorie], CLIENTS.[N° client dans la catégorie], CLIENTS.[Nom de l’entreprise], CLIENTS.[Montant des achats] FROM CLIENTS; Voici, la même requête exprimée par le biais du logiciel ACCESS.

24 Parlons un peu SQL Requête SQL : 13. Que fait cette requête ?
SELECT CLIENTS.[Code de la catégorie], CLIENTS.[N° client dans la catégorie], CLIENTS.[Nom de l’entreprise], CLIENTS.[Montant des achats] FROM CLIENTS; 13. Que fait cette requête ? Cette requête permet d’afficher la liste des clients, en projetant (sélectionnant) certains champs de la table (Code de la catégorie, N° client dans la catégorie, Nom de l’entreprise et Montant des achats). Voici, le résultat de la requête exprimée par le biais du logiciel ACCESS.

25 Parlons un peu SQL Requête SQL :
SELECT DISTINCT CLIENTS.[Code de la catégorie] FROM CLIENTS; 14. Que fait cette requête, sachant que le mot « Distinct » élimine les répétitions d’une même valeur (les doublons) ? Cette requête affiche tous les codes de la catégorie directement à partir de la table CLIENTS ). Remarque : SELECT CATEGORIE.[Code de la catégorie] FROM CATEGORIE donne le même résultat. Voici, le résultat de la requête exprimée par le biais du logiciel ACCESS.

26 Parlons un peu SQL Sur la norme du langage SQL, il est possible de trier les données, dans l’ordre croissant (alphabétique) ou non. Requête SQL : SELECT CLIENTS.[Code de la catégorie], CLIENTS.[N° client dans la catégorie], CLIENTS.[Nom de l’entreprise], CLIENTS.[Montant des achats] FROM CLIENTS ORDER BY CLIENTS.[Nom de l’entreprise] ASC; Voici, la même requête exprimée par le biais du logiciel ACCESS.

27 Parlons un peu SQL Requête SQL : SELECT CLIENTS.[Code de la catégorie], CLIENTS.[N° client dans la catégorie], CLIENTS.[Nom de l’entreprise], CLIENTS.[Montant des achats] FROM CLIENTS ORDER BY CLIENTS.[Nom de l’entreprise] ASC; 15. Quelle est la clause qui permet de trier les données ? La clause ORDER BY … ASC classe dans l’ordre croissant un champ particulier, ici le nom de l’entreprise. Remarque : Pour effectuer un tri décroissant il faut utiliser la clause ORDER BY … DESC. Voici, le résultat de la requête exprimée par le biais du logiciel ACCESS.

28 Parlons un peu SQL Sur la norme du langage SQL, il est possible d’extraire certaines données en fonction d’un critère de sélection bien précis. Requête SQL : SELECT CLIENTS.[Code de la catégorie], CLIENTS.[N° client dans la catégorie], CLIENTS.[Nom de l’entreprise], CLIENTS.[Montant des achats] FROM CLIENTS WHERE CLIENTS.[Code de la catégorie] = « BOU » ORDER BY CLIENTS.[Nom de l’entreprise] ASC; Voici, la même requête exprimée par le biais du logiciel ACCESS.

29 Parlons un peu SQL Requête SQL : SELECT CLIENTS.[Code de la catégorie], CLIENTS.[N° client dans la catégorie], CLIENTS.[Nom de l’entreprise], CLIENTS.[Montant des achats] FROM CLIENTS WHERE CLIENTS.[Code de la catégorie] = « BOU » ORDER BY CLIENTS.[Nom de l’entreprise] ASC; 16. Quelle est la clause qui permet d’extraire certaines données ? La clause WHERE permet d’extraire certaines données à partir d’un critère bien précis. Remarque : On peut utiliser différents opérateurs de comparaison (=, >, <, >=, <=, …) Voici, le résultat de la requête exprimée par le biais du logiciel ACCESS.

30 Parlons un peu SQL Application : Il vous est demandé d’établir la liste des clients (par ordre alphabétique) qui ont acheté pour moins de 20 000 € (leur identifiant, leur nom et le montant des achats correspondant). 17. Quelle est la table concernée par cette requête ? La table CLIENTS est nécessaire pour réaliser cette requête

31 Parlons un peu SQL Application : Il vous est demandé d’établir la liste des clients (par ordre alphabétique) qui ont acheté pour moins de 20 000 € (leur identifiant, leur nom et le montant des achats correspondant). Code de la catégorie N° client catégorie Nom de l’entreprise Montant des achats 18. Quels sont les champs nécessaires pour cette requête ? Les champs nécessaires sont : Code de la catégorie, N° dans la catégorie, Nom de l’entreprise, Montant des achats.

32 Parlons un peu SQL Application : Il vous est demandé d’établir la liste des clients (par ordre alphabétique) qui ont acheté pour moins de 20 000 € (leur identifiant, leur nom et le montant des achats correspondant). Croissant 19. Quel champ peut être concerné pour trier les clients dans l’ordre alphabétique ? Le champ Nom de l’entreprise va permettre de trier la liste des clients par ordre alphabétique.

33 Parlons un peu SQL Application : Il vous est demandé d’établir la liste des clients (par ordre alphabétique) qui ont acheté pour moins de 20 000 € (leur identifiant, leur nom et le montant des achats correspondant). < 20. Sur quel champ le critère de restriction va-t-il être posé ? Le champ Montant des achats va contenir le critère de restriction afin d’obtenir uniquement la liste des clients pour lequel le montant des achats est inférieur à €.

34 Parlons un peu SQL 21 Écrivez cette requête sous la forme SQL.
CLIENTS.[Nom de l’entreprise] SELECT CLIENTS.[Code de la catégorie] CLIENTS.[N° dans la catégorie] CLIENTS.[Nom de l’entreprise] CLIENTS.[Montant des achats] CLIENTS.[Montant des achats] CLIENTS FROM 21 Écrivez cette requête sous la forme SQL. WHERE ORDER BY ; , <20000 , , ASC

35 Parlons un peu SQL Application : Il vous est demandé d’établir la liste des clients (par ordre alphabétique) qui ont acheté pour moins de 20 000 € (leur identifiant, leur nom et le montant des achats correspondant). SELECT CLIENTS.[Code de la catégorie], CLIENTS.[N° dans la catégorie], CLIENTS.[Nom de l’entreprise], CLIENTS.[Montant des achats], FROM CLIENTS WHERE CLIENTS .[Montant des achats]<20000 ORDER BY CLIENTS.[Nom de l’entreprise] ASC; 22. Quel est le critère qui détermine la fin d’une requête ? Le « ; » permet de mettre fin à l’expression d’une requête.

36 Activité 4 – Le lien entre les différentes tables
DOSSIER 07 Activité 4 – Le lien entre les différentes tables

37 Les liens entre les différentes tables
Il vous est demandé de présenter la liste des clients avec leur identité, le montant des achats et leur taux de remise, dans l’ordre alphabétique du nom de l’entreprise du client. 23. Quelles sont les tables concernées par cette requête ? La table CLIENTS est nécessaire pour réaliser cette requête. Mais également la table CATEGORIE est nécessaire pour connaître le taux de remise.

38 Les liens entre les différentes tables
Application : Il vous est demandé d’établir la liste des clients (par ordre alphabétique) qui ont acheté pour moins de 20 000 € (leur identifiant, leur nom et le montant des achats correspondant). SELECT CLIENTS.[Code de la catégorie], CLIENTS.[N° dans la catégorie], CLIENTS.[Nom de l’entreprise], CLIENTS.[Montant des achats], CATEGORIE.[Taux de remise] FROM CLIENTS, CATEGORIE WHERE CLIENTS.[Code de la catégorie]=CATEGORIE.[Code de la catégorie] ORDER BY CLIENTS.[Nom de l’entreprise] ASC; 24. Quel est le critère qui permet de relier (jointure) les deux tables nécessaires à cette requête ? Dans la clause WHERE on retrouve le lien qui permet de relier la clé étrangère (de la table CLIENTS) vers sa clé primaire (de la table CATEGORIE). De plus on retrouve le nom de la table CATEGORIE dans la clause FROM.

39 Les liens entre les différentes tables
Application : Il vous est demandé d’établir la liste des clients, par ordre alphabétique (afficher le nom des clients et leur adresse complète). 25. Quelles sont les tables concernées par cette requête ? La table CLIENTS est nécessaire pour réaliser cette requête. Mais également la table VILLES est nécessaire pour Extraire uniquement les clients de la ville d’Aubagne.

40 Les liens entre les différentes tables
Application : Il vous est demandé d’établir la liste des clients, par ordre alphabétique (afficher le nom des clients et leur adresse complète). Nom de l’entreprise Nom de la ville Adresse Suite Code postal 26. Quels sont les champs nécessaires pour cette requête ? Les champs nécessaires sont : Nom de l’entreprise, Adresse, Suite, Code postal, et Nom de la ville.

41 Les liens entre les différentes tables
Application : Il vous est demandé d’établir la liste des clients, par ordre alphabétique (afficher le nom des clients et leur adresse complète). Croissant 27. Quel champ peut être concerné pour trier les clients dans l’ordre alphabétique ? Le champ Nom de l’entreprise va permettre de trier la liste des clients par ordre alphabétique.

42 Les liens entre les différentes tables
Application : Il vous est demandé d’établir la liste des clients, par ordre alphabétique (afficher le nom des clients et leur adresse complète). 28. Quel est le champ qui permet de relier (jointure) les deux tables ? Le champ Code postal permet de relier la table CLIENTS à la table VILLES.

43 Les liens entre les différentes tables
VILLES.[Code postal] CLIENTS.[Code postal] CLIENTS.[Nom de l’entreprise] SELECT CLIENTS.[Nom de l’entreprise] CLIENTS.[Adresse] CLIENTS.[Suite] CLIENTS.[Code postal] VILLES.[Nom de la ville] CLIENTS VILLES FROM 29 Écrivez cette requête sous la forme SQL. WHERE ORDER BY ; , = , , , , ASC

44 Les liens entre les différentes tables
Application : Il vous est demandé d’établir la liste des clients, par ordre alphabétique (afficher le nom des clients et leur adresse complète). SELECT CLIENTS.[Nom de l’entreprise], CLIENTS.[Adresse], CLIENTS.[Suite], CLIENTS.[Code postal], VILLES.[Nom de la ville] FROM CLIENTS, VILLES WHERE CLIENTS.[Code postal]=VILLES.[Code postal] ORDER BY CLIENTS.[Nom de l’entreprise] ASC; Voici le résultat de la requête

45 Le vocabulaire d’une table de données
Une table est un tableau constitué de lignes et de colonnes. Elle a un nom qui renseigne sur son contenu. 3. Identifiez le vocabulaire d’une table de données. Nom d’un champ (attribut) Nom de la table Tableau 4 : PRODUITS Schéma de la table Référence du produit Désignation du produit Prix unitaire du produit F001 Farine de blé 2,40 L001 Levure de bière 21,50 L002 Levain naturel 11,45 S001 Sucre glace 11,00 S002 Sucre vanillé 8,30 Enregistrements Chaque ligne de la table est appelée enregistrement.

46 L’identifiant VILLES FACTURES PRODUITS
4. Pour les tableaux 2, 3 et 4, vous constatez qu’il y a une colonne dans laquelle il est impossible de retrouver deux fois la même valeur. Quelle est-elle ? VILLES Tableau 2 : Code postal Nom de la ville 13010 Marseille 13011 13400 Aubagne Code postal 13010 13011 13400 FACTURES Tableau 3 : N° facture 1 2 3 5 N° facture Date de la facture Code de la catégorie N° client dans la catégorie 1 06/01/ N BOU 001 2 HYP 3 07/01/ N 002 5 04/01/ N Tableau 4 : PRODUITS Référence du produit Désignation du produit Prix unitaire du produit F001 Farine de blé 2,40 L001 Levure de bière 21,50 L002 Levain naturel 11,45 S001 Sucre glace 11,00 S002 Sucre vanillé 8,30 Référence du produit F001 L001 L002 S001 S002

47 L’identifiant VILLES FACTURES PRODUITS
5. Quel est le rôle d’une donnée unique ? VILLES Tableau 2 : Code postal Nom de la ville 13010 Marseille 13011 13400 Aubagne Dans chacun de ces trois tableaux, la colonne citée ci-dessus permet d’identifier un enregistrement : dans l’ordre, une ville, une facture, un produit. Ce champ joue donc un rôle déterminant et c’est pourquoi il est placé en premier, dans le sens de la lecture. Il est donc impossible que deux lignes d’un même tableau soient identiques. FACTURES Tableau 3 : N° facture Date de la facture Code de la catégorie N° client dans la catégorie 1 06/01/ N BOU 001 2 HYP 3 07/01/ N 002 5 04/01/ N Tableau 4 : PRODUITS Référence du produit Désignation du produit Prix unitaire du produit F001 Farine de blé 2,40 L001 Levure de bière 21,50 L002 Levain naturel 11,45 S001 Sucre glace 11,00 S002 Sucre vanillé 8,30

48 N° client dans la catégorie Raison sociale du client
L’identifiant Tableau 1 : CLIENTS Code de la catégorie N° client dans la catégorie Raison sociale du client Adresse Adresse suite Code postal BOU 001 Anis & Miel 7 chemin de Cassis 13010 HYP Aurayons 485 bd des Bartavelles ZI Les Paluds 13400 002 Toutestla 47 route de Cuques La Valentine 13011 Tableau 5 : LIGNE_FACTURES Référence du produit N° facture Quantité F001 1 100 3 125 5 250 L001 10 2 75 74 L002 50 S001 150 44 S002 30 6. Est-ce le cas pour les tableaux 1 et 5 ? Dans les tableaux 1 et 5, ce n’est pas une colonne qui joue ce rôle mais un ensemble de deux colonnes :  pour le tableau 1, il s’agit de Code de la catégorie et N° client dans la catégorie ;  pour le tableau 5, il s’agit de Référence du produit et N° facture. L’ensemble de ces deux colonnes joue le même rôle d’identification pour ces deux tableaux. Elles identifient, ensemble, dans l’ordre, un client, une ligne_facture.

49 Le vocabulaire d’une table de données
Une table est un tableau constitué de lignes et de colonnes. Elle a un nom qui renseigne sur son contenu. 7. Proposez une définition de la catégorie de données qui permet d’identifier un enregistrement par rapport à un autre. Tableau 4 : PRODUITS Clé primaire Référence du produit Désignation du produit Prix unitaire du produit F001 Farine de blé 2,40 L001 Levure de bière 21,50 L002 Levain naturel 11,45 S001 Sucre glace 11,00 S002 Sucre vanillé 8,30 Chaque enregistrement doit pouvoir être identifié sans confusion possible. Pour cela, chaque table doit comprendre une clé primaire. La clé primaire est un champ ou un groupe de champs qui permettent d’identifier de façon unique chaque enregistrement de la table.

50 La dépendance entre données
FACTURES Tableau 3 : N° facture Date de la facture Code de la catégorie N° client dans la catégorie 1 06/01/ N BOU 001 2 HYP 3 07/01/ N 002 5 04/01/ N 8. Pour une valeur de N° facture, est-il possible de trouver plusieurs valeurs de Date de la facture ? Pour un N° facture, on ne peut trouver qu’une date : la date à laquelle elle est émise. N° facture Date de la facture On peut noter : Une donnée b dépend fonctionnellement d’une donnée a, si, à une valeur de a, correspond une et une seule valeur de b. On la note a  b. 9. L’inverse est-il vrai ? L’inverse n’est pas vrai car, à une date donnée, il peut y avoir plusieurs factures émises.

51 La dépendance entre données
FACTURES Tableau 3 : La Dépendance fonctionnelle (DF) a  b est directe s’il n’existe pas de donnée c telle que a  c  b ; sinon, elle est dite « Indirecte ». N° facture Date de la facture Code de la catégorie N° client dans la catégorie 1 06/01/ N BOU 001 2 HYP 3 07/01/ N 002 5 04/01/ N 10. Pour une valeur de N° facture, est-il possible de trouver plusieurs valeurs de Code de la catégorie ? de N° client dans la catégorie ? Justifiez vos réponses. Ce n’est pas possible dans les deux cas, puisqu’une facture ne correspond qu’à un client, lui-même identifié par un Code de la catégorie et un N° client dans la catégorie. 11. Faites le lien avec la notion de clé primaire. On peut constater que tous les champs (attributs) du tableau FACTURES sont en dépendance fonctionnelle avec N° facture, qui est donc la clé primaire de la table FACTURES. 12. La DF N° Facture  Date de la facture est-elle en DF directe ? Oui car la date de la facture dépend directement du numéro de la facture.

52 La dépendance entre données
Tableau 1 : CLIENTS Code de la catégorie N° client dans la catégorie Raison sociale du client Adresse Adresse suite Code postal BOU 001 Anis & Miel 7 chemin de Cassis 13010 HYP Aurayons 485 bd des Bartavelles ZI Les Paluds 13400 002 Toutestla 47 route de Cuques La Valentine 13011 VILLES Tableau 2 : La Dépendance fonctionnelle (DF) a  b est directe s’il n’existe pas de donnée c telle que a  c  b ; sinon, elle est dite « Indirecte ». Code postal Nom de la ville 13010 Marseille 13011 13400 Aubagne 13. La Dépendance Fonctionnelle Code de la catégorie, N° client dans la catégorie  Nom de la ville est-elle en DF directe ? Non car le nom de la ville dépend directement du code postal (cet attribut est en dépendance fonctionnelle indirecte avec le Code de la catégorie et le N° client dans la catégorie.

53 La dépendance entre données
14. Pour une valeur de Référence du produit, est-il possible de trouver plusieurs valeurs de Quantité ? Tableau 5 : LIGNE_FACTURES Une donnée b dépend fonctionnellement d’une donnée a, si, à une valeur de a, correspond une et une seule valeur de b. On la note a  b. La source de la dépendance fonctionnelle (à gauche de la flèche) peut être constituée de plusieurs données. Soit ici : (Référence du produit, N° Facture)  Quantité On la note (a, b)  c. Référence du produit N° facture Quantité F001 1 100 3 125 5 250 L001 10 2 75 74 L002 50 S001 150 44 S002 30 Oui, puisqu’un même produit peut être facturé dans de multiples factures et à chaque fois avec des quantités différentes. 15. Pour une valeur de N° facture, est-il possible de trouver plusieurs valeurs de Quantité ? Oui, au sein d’une facture, plusieurs produits sont facturés et ils ne le sont pas forcément pour la même quantité. 16. Pour un couple de valeurs (Référence du produit, N° facture), est-il possible de trouver plusieurs valeurs de Quantité ? Faites le lien avec la notion de clé primaire ? On ne peut pas trouver plusieurs valeurs de Quantité car, au sein d’une facture, un produit n’est facturé qu’une fois. (Référence du produit, N° facture) est la clé primaire de cette table que nous pouvons nommer LIGNE_FACTURES, puisque chaque ligne du tableau représente la ligne d’une facture.

54 La dépendance entre données
Tableau 1 : CLIENTS Code de la catégorie N° client dans la catégorie Raison sociale du client Adresse Adresse suite Code postal BOU 001 Anis & Miel 7 chemin de Cassis 13010 HYP Aurayons 485 bd des Bartavelles ZI Les Paluds 13400 002 Toutestla 47 route de Cuques La Valentine 13011 17. Pour une valeur de Raison sociale du client, peut-on trouver plusieurs valeurs de Code postal ? Oui, puisqu’il peut y avoir plusieurs clients avec la même raison sociale. Par exemple : plusieurs hypermarchés Aurayons mais situés dans des endroits différent. 18. Pour un couple de valeurs (Code de la catégorie, N° client dans la catégorie), peut-on trouver plusieurs valeurs de Code postal ? Non, car il ne peut s’agir que d’un client et ce couple de valeurs, que l’on pourrait d’ailleurs nommer Numéro de client, l’identifie.

55 La dépendance entre données
Tableau 1 : CLIENTS La dépendance fonctionnelle (a, b)  c. est unique si c dépend bien du couple (a, b) et non pas uniquement de a ou uniquement de b. La question ne se pose pas dans le cas où la source de la DF est constituée d’une donnée. Code de la catégorie N° client dans la catégorie Raison sociale du client Adresse Adresse suite Code postal BOU 001 Anis & Miel 7 chemin de Cassis 13010 HYP Aurayons 485 bd des Bartavelles ZI Les Paluds 13400 002 Toutestla 47 route de Cuques La Valentine 13011 19. Que forment finalement les deux premières colonnes de ce tableau ? Le couple (Code de la catégorie, N° client dans la catégorie) forme la clé primaire de la table CLIENTS. Ce numéro (au sens large) est formé de la catégorie à laquelle appartient le client et d’un numéro d’ordre. Cette codification hiérarchisée n’est possible que si le client ne change jamais de catégorie, car une clé primaire doit être stable (relativement à un « horizon » de gestion à court, moyen ou long terme). La politique commerciale (prix, distribution, etc.) de l’entreprise est en grande partie basée sur la répartition de sa clientèle en différentes catégories. .

56 Principe de structuration des données dans les tables
Tableau 1 : CLIENTS Code de la catégorie N° client dans la catégorie Raison sociale du client Adresse Adresse suite Code postal BOU 001 Anis & Miel 7 chemin de Cassis 13010 HYP Aurayons 485 bd des Bartavelles ZI Les Paluds 13400 002 Toutestla 47 route de Cuques La Valentine 13011 La notion de dépendance fonctionnelle permet de structurer méthodiquement les informations dans les tables, de telle sorte que chaque donnée n’y figure q’une seule fois et qu’elle soit repérable à partir d’une clé primaire. Tous les champs doivent dépendre uniquement et directement de la clé primaire de la table. VILLES Tableau 2 : Code postal Nom de la ville 13010 Marseille 13011 13400 Aubagne LIGNE_FACTURES Tableau 5 : Référence du produit N° facture Quantité F001 1 100 3 125 5 250 L001 10 2 75 74 L002 50 S001 150 44 S002 30 FACTURES Tableau 3 : N° facture Date de la facture Code de la catégorie N° client dans la catégorie 1 06/01/ N BOU 001 2 HYP 3 07/01/ N 002 5 04/01/ N Tableau 4 : PRODUITS Référence du produit Désignation du produit Prix unitaire du produit F001 Farine de blé 2,40 L001 Levure de bière 21,50 L002 Levain naturel 11,45 S001 Sucre glace 11,00 S002 Sucre vanillé 8,30

57 Activité 4 – Le lien entre les différentes tables
DOSSIER 06 Activité 4 – Le lien entre les différentes tables

58 Le lien entre les tables
Tableau 1 : CLIENTS Code de la catégorie N° client dans la catégorie Raison sociale du client Adresse Adresse suite Code postal BOU 001 Anis & Miel 7 chemin de Cassis 13010 HYP Aurayons 485 bd des Bartavelles ZI Les Paluds 13400 002 Toutestla 47 route de Cuques La Valentine 13011 Tableau 2 : VILLES Code postal Nom de la ville 13010 Marseille 13011 13400 Aubagne (Code le la catégorie, N° client dans la catégorie) 20. Pour un couple de valeurs (Code de la catégorie, N° client dans la catégorie), peut-on trouver plusieurs valeurs de Nom de la ville ? Code postal Non, car un client n’a qu’une adresse, mais on peut aussi le démontrer (comme en mathématiques) : Code postal (Code le la catégorie, N° client dans la catégorie) Nom de la ville Donc par transitivité (jointure) Nom de la ville

59 Le lien entre les tables
Tableau 1 : CLIENTS Code de la catégorie N° client dans la catégorie Raison sociale du client Adresse Adresse suite Code postal BOU 001 Anis & Miel 7 chemin de Cassis 13010 HYP Aurayons 485 bd des Bartavelles ZI Les Paluds 13400 002 Toutestla 47 route de Cuques La Valentine 13011 Tableau 2 : VILLES Code postal Nom de la ville 13010 Marseille 13011 13400 Aubagne 21. Puisque Nom de la ville se trouve dans le tableau 2, de quel attribut dépend-il directement ? 21. Puisque Nom de la ville se trouve dans le tableau 2, de quel attribut dépend-il directement ? Nom de la ville dépend de Code postal, qui est la clé primaire de la table VILLES. 22. Pourquoi alors n’est-il pas présent dans le tableau 1 ? Il n’est pas présent dans la table CLIENTS puisque le Code postal l’est déjà. Donc, par transitivité, on retrouve sans problème le Nom de la ville. Remarquons la présence, dans la table CLIENTS, de la clé primaire de la table VILLES. Cette présence assure le lien entre ces deux tables, on pourrait même écrire : CLIENTS → VILLES, qui exprime tout simplement qu’à un client correspond une ville : celle où il est domicilié.

60 Le lien entre les tables
LIGNE_FACTURES Tableau 5 : Tableau 4 : PRODUITS Référence du produit N° facture Quantité F001 1 100 3 125 5 250 L001 10 2 75 74 L002 50 S001 150 44 S002 30 Référence du produit Désignation du produit Prix unitaire du produit F001 Farine de blé 2,40 L001 Levure de bière 21,50 L002 Levain naturel 11,45 S001 Sucre glace 11,00 S002 Sucre vanillé 8,30 23. Pourquoi, dans le tableau 5, ne trouve-t-on ni la désignation du produit, ni le prix unitaire du produit ? Désignation du produit et Prix unitaire du produit dépendent directement de Référence du produit, clé primaire de la table PRODUITS. Donc, connaissant l’un, on connaît les deux autres.

61 Le lien entre les tables
LIGNE_FACTURES Tableau 5 : FACTURES Référence du produit N° facture Quantité F001 1 100 3 125 5 250 L001 10 2 75 74 L002 50 S001 150 44 S002 30 Tableau 3 : N° facture Date de la facture Code de la catégorie N° client dans la catégorie 1 06/01/ N BOU 001 2 HYP 3 07/01/ N 002 5 04/01/ N 24. Quelles sont les informations que l’on retrouve dans plusieurs tableaux ? Pourquoi ? Ce sont exclusivement les clés primaires de certaines tables que l’on retrouve dans d’autres tables. Cette redondance assure le lien entre les tables et permet de naviguer, de « surfer » d’une clé étrangère vers une clé primaire pour aller « à la pêche » aux informations. Exemple : N° facture est à la fois dans le tableau LIGNE_FACTURES et dans le tableau FACTURES ; cette redondance assure le lien entre les deux tableaux : une facture est envoyée à une date bien précise.

62 Le lien entre les tables
Tableau 1 : CLIENTS Code de la catégorie N° client dans la catégorie Raison sociale du client Adresse Adresse suite Code postal BOU 001 Anis & Miel 7 chemin de Cassis 13010 HYP Aurayons 485 bd des Bartavelles ZI Les Paluds 13400 002 Toutestla 47 route de Cuques La Valentine 13011 Tableau 2 : VILLES Code postal Nom de la ville 13010 Marseille 13011 13400 Aubagne La clé étrangère permet d’établir une relation entre deux tables. Une clé étrangère est la présence dans une table d’une clé primaire d’une autre table. Une valeur de clé étrangère fait donc référence à la même valeur de la clé primaire d’une autre table. Les seules redondances de données autorisées sont donc liées à la présence de clés étrangères.

63 Activité 5 – La représentation du Modèle Relationnel
DOSSIER 06 Activité 5 – La représentation du Modèle Relationnel

64 La représentation du Modèle Relationnel
Modèle Relationnel des Données Table 1 : PRODUITS (Reference_produit, Designation_produit, Prix_unitaire) Clé primaire : Reference_produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference_produit, N°_facture, Quantite_facturee) Clé primaire : Reference_produit, N°_facture Clé étrangère : Reference_produit en référence à Reference_produit de Produits N°_facture en référence à N°_facture de Factures Table 3 : FACTURES (N°_facture, Date_facture, Code_categorie, N°_client_categorie) Clé primaire : N°_facture Clé étrangère : Code_categorie + N°_client_categorie en référence à Code_categorie + N°_client_categorie de Clients Table 4 : CLIENTS (Code_categorie, N°_client_categorie, Raison_sociale, Adresse, Suite, Code postal) Clé primaire : Code_categorie + N°_client_categorie Clé étrangère : Code_postal en référence à Code_postal de Villes Table 5 : VILLES (Code_postal, Nom_ville) Clé primaire : Code_postal 25. À quoi ce schéma va-t-il servir ? Ce schéma relationnel va servir à créer physiquement, à l’aide d’un logiciel de type SGBDR, la base de données sur le disque d’un ordinateur. Si cette base est au service de tous, l’ordinateur sera alors qualifié de « serveur de données » et le SGBDR de « SGBDR réseau » .

65 La représentation du Modèle Relationnel
Modèle Relationnel des Données Table 1 : PRODUITS (Reference_produit, Designation_produit, Prix_unitaire) Clé primaire : Reference_produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference_produit, N°_facture, Quantite_facturee) Clé primaire : Reference_produit, N°_facture Clé étrangère : Reference_produit en référence à Reference_produit de Produits N°_facture en référence à N°_facture de Factures Table 3 : FACTURES (N°_facture, Date_facture, Code_categorie, N°_client_categorie) Clé primaire : N°_facture Clé étrangère : Code_categorie + N°_client_categorie en référence à Code_categorie + N°_client_categorie de Clients Table 4 : CLIENTS (Code_categorie, N°_client_categorie, Raison_sociale, Adresse, Suite, Code postal) Clé primaire : Code_categorie + N°_client_categorie Clé étrangère : Code_postal en référence à Code_postal de Villes Table 5 : VILLES (Code_postal, Nom_ville) Clé primaire : Code_postal 26. À quel domaine de gestion correspond-il ? Le domaine de gestion concerné est celui de la gestion des factures envers les clients de l’entreprise. Plus généralement, il concerne la gestion des produits facturés puisque cette base permettra d’enregistrer les changements de prix de vente unitaire des produits, par exemple.

66 La représentation du Modèle Relationnel
Modèle Relationnel des Données Table 1 : PRODUITS (Reference_produit, Designation_produit, Prix_unitaire) Clé primaire : Reference_produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference_produit, N°_facture, Quantite_facturee) Clé primaire : Reference_produit, N°_facture Clé étrangère : Reference_produit en référence à Reference_produit de Produits N°_facture en référence à N°_facture de Factures Table 3 : FACTURES (N°_facture, Date_facture, Code_categorie, N°_client_categorie) Clé primaire : N°_facture Clé étrangère : Code_categorie + N°_client_categorie en référence à Code_categorie + N°_client_categorie de Clients Table 4 : CLIENTS (Code_categorie, N°_client_categorie, Raison_sociale, Adresse, Suite, Code postal) Clé primaire : Code_categorie + N°_client_categorie Clé étrangère : Code_postal en référence à Code_postal de Villes Table 5 : VILLES (Code_postal, Nom_ville) Clé primaire : Code_postal 27. Quels attributs (champs) pouvez-vous ajouter dans la table CLIENTS ? On peut ajouter, par exemple, le numéro de téléphone et l’adresse électronique ( ).

67 La représentation du Modèle Relationnel
Modèle Relationnel des Données Table 1 : PRODUITS (Reference_produit, Designation_produit, Prix_unitaire) Clé primaire : Reference_produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference_produit, N°_facture, Quantite_facturee) Clé primaire : Reference_produit, N°_facture Clé étrangère : Reference_produit en référence à Reference_produit de Produits N°_facture en référence à N°_facture de Factures Table 3 : FACTURES (N°_facture, Date_facture, Code_categorie, N°_client_categorie) Clé primaire : N°_facture Clé étrangère : Code_categorie + N°_client_categorie en référence à Code_categorie + N°_client_categorie de Clients Table 4 : CLIENTS (Code_categorie, N°_client_categorie, Raison_sociale, Adresse, Suite, Code postal) Clé primaire : Code_categorie + N°_client_categorie Clé étrangère : Code_postal en référence à Code_postal de Villes Table 5 : VILLES (Code_postal, Nom_ville) Clé primaire : Code_postal 28. Repérez la clé primaire de la Table PRODUITS. C’est un attribut (ou champ) qui va permettre d’identifier et de rendre unique chaque produit (enregistrement). 29. Pourquoi la désignation du produit n’a pas été retenue comme un élément qui permet de l’identifier ? Comme deux individus peuvent avoir le même nom, il a été préférable d’ajouter un attribut supplémentaire (Reference_produit) qui ici permettra de bien le distinguer.

68 La représentation du Modèle Relationnel
Modèle Relationnel des Données Table 1 : PRODUITS (Reference_produit, Designation_produit, Prix_unitaire) Clé primaire : Reference_produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference_produit, N°_facture, Quantite_facturee) Clé primaire : Reference_produit, N°_facture Clé étrangère : Reference_produit en référence à Reference_produit de Produits N°_facture en référence à N°_facture de Factures Table 3 : FACTURES (N°_facture, Date_facture, Code_categorie, N°_client_categorie) Clé primaire : N°_facture Clé étrangère : Code_categorie + N°_client_categorie en référence à Code_categorie + N°_client_categorie de Clients Table 4 : CLIENTS (Code_categorie, N°_client_categorie, Raison_sociale, Adresse, Suite, Code postal) Clé primaire : Code_categorie + N°_client_categorie Clé étrangère : Code_postal en référence à Code_postal de Villes Table 5 : VILLES (Code_postal, Nom_ville) Clé primaire : Code_postal 30. Donnez la signification de la clé étrangère. Chaque clé étrangère montre le lien entre les tables. Son origine est une clé étrangère et son extrémité est la clé primaire qu’elle doit référencer. Remarquons que certaines clés primaires et étrangères sont composées de plusieurs attributs (champs).

69 La représentation du Modèle Relationnel
Modèle Relationnel des Données Table 1 : PRODUITS (Reference_produit, Designation_produit, Prix_unitaire) Clé primaire : Reference_produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference_produit, N°_facture, Quantite_facturee) Clé primaire : Reference_produit, N°_facture Clé étrangère : Reference_produit en référence à Reference_produit de Produits N°_facture en référence à N°_facture de Factures Table 3 : FACTURES (N°_facture, Date_facture, Code_categorie, N°_client_categorie) Clé primaire : N°_facture Clé étrangère : Code_categorie + N°_client_categorie en référence à Code_categorie + N°_client_categorie de Clients Table 4 : CLIENTS (Code_categorie, N°_client_categorie, Raison_sociale, Adresse, Suite, Code postal) Clé primaire : Code_categorie + N°_client_categorie Clé étrangère : Code_postal en référence à Code_postal de Villes Table 5 : VILLES (Code_postal, Nom_ville) Clé primaire : Code_postal 31. A partir du Modèle relationnel ci-dessus, répondez par vrai ou par faux à l’affirmation suivante : Vrai Faux Un client peut être domicilié dans plusieurs villes.

70 La représentation du Modèle Relationnel
Modèle Relationnel des Données Table 1 : PRODUITS (Reference_produit, Designation_produit, Prix_unitaire) Clé primaire : Reference_produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference_produit, N°_facture, Quantite_facturee) Clé primaire : Reference_produit, N°_facture Clé étrangère : Reference_produit en référence à Reference_produit de Produits N°_facture en référence à N°_facture de Factures Table 3 : FACTURES (N°_facture, Date_facture, Code_categorie, N°_client_categorie) Clé primaire : N°_facture Clé étrangère : Code_categorie + N°_client_categorie en référence à Code_categorie + N°_client_categorie de Clients Table 4 : CLIENTS (Code_categorie, N°_client_categorie, Raison_sociale, Adresse, Suite, Code postal) Clé primaire : Code_categorie + N°_client_categorie Clé étrangère : Code_postal en référence à Code_postal de Villes Table 5 : VILLES (Code_postal, Nom_ville) Clé primaire : Code_postal 31. A partir du Modèle relationnel ci-dessus, répondez par vrai ou par faux à l’affirmation suivante : Vrai Faux Une facture peut correspondre à un seul produit.

71 La représentation du Modèle Relationnel
Modèle Relationnel des Données Table 1 : PRODUITS (Reference_produit, Designation_produit, Prix_unitaire) Clé primaire : Reference_produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference_produit, N°_facture, Quantite_facturee) Clé primaire : Reference_produit, N°_facture Clé étrangère : Reference_produit en référence à Reference_produit de Produits N°_facture en référence à N°_facture de Factures Table 3 : FACTURES (N°_facture, Date_facture, Code_categorie, N°_client_categorie) Clé primaire : N°_facture Clé étrangère : Code_categorie + N°_client_categorie en référence à Code_categorie + N°_client_categorie de Clients Table 4 : CLIENTS (Code_categorie, N°_client_categorie, Raison_sociale, Adresse, Suite, Code postal) Clé primaire : Code_categorie + N°_client_categorie Clé étrangère : Code_postal en référence à Code_postal de Villes Table 5 : VILLES (Code_postal, Nom_ville) Clé primaire : Code_postal 31. A partir du Modèle relationnel ci-dessus, répondez par vrai ou par faux à l’affirmation suivante : Vrai Faux Une facture peut concerner plusieurs clients.

72 La représentation du Modèle Relationnel
Modèle Relationnel des Données Table 1 : PRODUITS (Reference_produit, Designation_produit, Prix_unitaire) Clé primaire : Reference_produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference_produit, N°_facture, Quantite_facturee) Clé primaire : Reference_produit, N°_facture Clé étrangère : Reference_produit en référence à Reference_produit de Produits N°_facture en référence à N°_facture de Factures Table 3 : FACTURES (N°_facture, Date_facture, Code_categorie, N°_client_categorie) Clé primaire : N°_facture Clé étrangère : Code_categorie + N°_client_categorie en référence à Code_categorie + N°_client_categorie de Clients Table 4 : CLIENTS (Code_categorie, N°_client_categorie, Raison_sociale, Adresse, Suite, Code postal) Clé primaire : Code_categorie + N°_client_categorie Clé étrangère : Code_postal en référence à Code_postal de Villes Table 5 : VILLES (Code_postal, Nom_ville) Clé primaire : Code_postal 31. A partir du Modèle relationnel ci-dessus, répondez par vrai ou par faux à l’affirmation suivante : Vrai Faux Un produit peut être facturé dans plusieurs factures.

73 La représentation du Modèle Relationnel
Modèle Relationnel des Données Table 1 : PRODUITS (Reference_produit, Designation_produit, Prix_unitaire) Clé primaire : Reference_produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference_produit, N°_facture, Quantite_facturee) Clé primaire : Reference_produit, N°_facture Clé étrangère : Reference_produit en référence à Reference_produit de Produits N°_facture en référence à N°_facture de Factures Table 3 : FACTURES (N°_facture, Date_facture, Code_categorie, N°_client_categorie) Clé primaire : N°_facture Clé étrangère : Code_categorie + N°_client_categorie en référence à Code_categorie + N°_client_categorie de Clients Table 4 : CLIENTS (Code_categorie, N°_client_categorie, Raison_sociale, Adresse, Suite, Code postal) Clé primaire : Code_categorie + N°_client_categorie Clé étrangère : Code_postal en référence à Code_postal de Villes Table 5 : VILLES (Code_postal, Nom_ville) Clé primaire : Code_postal 31. A partir du Modèle relationnel ci-dessus, répondez par vrai ou par faux à l’affirmation suivante : Vrai Faux Pour une date donnée, il ne peut y avoir qu’une seule facture.

74 La représentation du Modèle Relationnel
Modèle Relationnel des Données Table 1 : PRODUITS (Reference_produit, Designation_produit, Prix_unitaire) Clé primaire : Reference_produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference_produit, N°_facture, Quantite_facturee) Clé primaire : Reference_produit, N°_facture Clé étrangère : Reference_produit en référence à Reference_produit de Produits N°_facture en référence à N°_facture de Factures Table 3 : FACTURES (N°_facture, Date_facture, Code_categorie, N°_client_categorie) Clé primaire : N°_facture Clé étrangère : Code_categorie + N°_client_categorie en référence à Code_categorie + N°_client_categorie de Clients Table 4 : CLIENTS (Code_categorie, N°_client_categorie, Raison_sociale, Adresse, Suite, Code postal) Clé primaire : Code_categorie + N°_client_categorie Clé étrangère : Code_postal en référence à Code_postal de Villes Table 5 : VILLES (Code_postal, Nom_ville) Clé primaire : Code_postal 31. A partir du Modèle relationnel ci-dessus, répondez par vrai ou par faux à l’affirmation suivante : Vrai Faux Un produit peut n’être encore présent dans aucune facture.

75 La représentation du Modèle Relationnel
Modèle Relationnel des Données Table 1 : PRODUITS (Reference_produit, Designation_produit, Prix_unitaire) Clé primaire : Reference_produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference_produit, N°_facture, Quantite_facturee) Clé primaire : Reference_produit, N°_facture Clé étrangère : Reference_produit en référence à Reference_produit de Produits N°_facture en référence à N°_facture de Factures Table 3 : FACTURES (N°_facture, Date_facture, Code_categorie, N°_client_categorie) Clé primaire : N°_facture Clé étrangère : Code_categorie + N°_client_categorie en référence à Code_categorie + N°_client_categorie de Clients Table 4 : CLIENTS (Code_categorie, N°_client_categorie, Raison_sociale, Adresse, Suite, Code postal) Clé primaire : Code_categorie + N°_client_categorie Clé étrangère : Code_postal en référence à Code_postal de Villes Table 5 : VILLES (Code_postal, Nom_ville) Clé primaire : Code_postal 31. A partir du Modèle relationnel ci-dessus, répondez par vrai ou par faux à l’affirmation suivante : Vrai Faux Un client n’appartient qu’à une catégorie.

76 La représentation du Modèle Relationnel
Modèle Relationnel des Données Table 1 : PRODUITS (Reference_produit, Designation_produit, Prix_unitaire) Clé primaire : Reference_produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference_produit, N°_facture, Quantite_facturee) Clé primaire : Reference_produit, N°_facture Clé étrangère : Reference_produit en référence à Reference_produit de Produits N°_facture en référence à N°_facture de Factures Table 3 : FACTURES (N°_facture, Date_facture, Code_categorie, N°_client_categorie) Clé primaire : N°_facture Clé étrangère : Code_categorie + N°_client_categorie en référence à Code_categorie + N°_client_categorie de Clients Table 4 : CLIENTS (Code_categorie, N°_client_categorie, Raison_sociale, Adresse, Suite, Code postal) Clé primaire : Code_categorie + N°_client_categorie Clé étrangère : Code_postal en référence à Code_postal de Villes Table 5 : VILLES (Code_postal, Nom_ville) Clé primaire : Code_postal 31. A partir du Modèle relationnel ci-dessus, répondez par vrai ou par faux à l’affirmation suivante : Vrai Faux Une catégorie comprend au moins un client.

77 La représentation du Modèle Relationnel
Modèle Relationnel des Données Table 1 : PRODUITS (Reference_produit, Designation_produit, Prix_unitaire) Clé primaire : Reference_produit Clé étrangère : Table 2 : LIGNE_FACTURES (Reference_produit, N°_facture, Quantite_facturee) Clé primaire : Reference_produit, N°_facture Clé étrangère : Reference_produit en référence à Reference_produit de Produits N°_facture en référence à N°_facture de Factures Table 3 : FACTURES (N°_facture, Date_facture, Code_categorie, N°_client_categorie) Clé primaire : N°_facture Clé étrangère : Code_categorie + N°_client_categorie en référence à Code_categorie + N°_client_categorie de Clients Table 4 : CLIENTS (Code_categorie, N°_client_categorie, Raison_sociale, Adresse, Suite, Code postal) Clé primaire : Code_categorie + N°_client_categorie Clé étrangère : Code_postal en référence à Code_postal de Villes Table 5 : VILLES (Code_postal, Nom_ville) Clé primaire : Code_postal 31. A partir du Modèle relationnel ci-dessus, répondez par vrai ou par faux à l’affirmation suivante : Vrai Faux Une facture peut ne contenir aucun produit.

78 La représentation du Modèle Relationnel
Voici une présentation du Schéma relationnel à partir d’un logiciel de base de données (tel qu’Access), les clés primaires sont en gras. Les clés étrangères apparaissent en italique. « Reference_produit » et « N°_facture » sont en gras et en italique, car ils forment ensemble la clé primaire de LIGNE_FACTURES et chacun est clé étrangère. Les différentes lettres précise le type de données (T = Texte, N = Numérique, D = Date).

79 Diaporama adapté et automatisé par M. Grard (enseignant)
Première STG Gestion Diaporama adapté et automatisé par M. Grard (enseignant) Sources : Éditions Nathan Technique Collection : Equilibre Éditions Fontaine Picard Première STG Retour vers les liens


Télécharger ppt "DOSSIER 07 – Interroger une base de données"

Présentations similaires


Annonces Google