COURS bases de donnes de gestion

Documents pareils
Le langage SQL Rappels

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

1 Introduction et installation

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Bases de données relationnelles

Bases de données élémentaires Maude Manouvrier

Gestion des bases de données (2 e partie)

SOMMAIRE. Travailler avec les requêtes... 3

Créer le schéma relationnel d une base de données ACCESS

Langage SQL : créer et interroger une base

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

MODE OPERATOIRE OPENOFFICE BASE

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

16H Cours / 18H TD / 20H TP

TD n 10 : Ma première Base de Données

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1

Systèmes de Gestion de Bases de Données

Les bases de données

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Le Langage De Description De Données(LDD)

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

Dossier I Découverte de Base d Open Office

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

David LUCAS 15/01/10 Ludovic HUET Sébastien LE NECHET Jason JAMOT. Projet BO

Bases de Données. Plan

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

Cours Base de données relationnelles. M. Boughanem, IUP STRI

INTRODUCTION : Données structurées et accès simplifié

Thème : Gestion commerciale

Rappel sur les bases de données

Excel avancé. Frédéric Gava (MCF)

SQL Historique

A QUOI SERVENT LES BASES DE DONNÉES?

Objectifs du TP : Initiation à Access

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Créer une base de données

Utiliser une base de données

Bases de Données relationnelles et leurs systèmes de Gestion

Cours 4 : Agrégats et GROUP BY

Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

PROJET DE PORTAIL INTRANET YNNA

MODE OPERATOIRE CIEL GESTION COMMERCIALE VERSION EVOLUTION BTS PME PMI

COMPTABILITE SAGE LIGNE 30

DECOUVERTE DU LOGICIEL CIEL GESTION COMMERCIALE

Introduction au Système de Gestion de Base de Données et aux Base de Données

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

OpenOffice Base Gestionnaire de Base de Données

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

SUPPORT DE COURS ACCESS 2010

PHP 5. La base de données MySql. A. Belaïd 1

Information utiles. webpage : Google+ : digiusto/

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

Schéma relationnel et contraintes d intégrité : le cas ConduiteAuto

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

Reporting et Décisions 100

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Bases de données Outils de gestion

1 Modélisation d une base de données pour une société de bourse

Stopack : logiciel pour l entrepôt

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version /11/05

EXCEL TUTORIEL 2012/2013

Retour table des matières

Initiation à Excel. Frédéric Gava (MCF)

Database Manager Guide de l utilisateur DMAN-FR-01/01/12

COMPTA. Description des Commandes

Gestion électronique des procurations

Présentation du module Base de données spatio-temporelles

Excel 2007 Niveau 3 Page 1

Le Langage SQL version Oracle

TP Bases de données réparties

les Formulaires / Sous-Formulaires Présentation Créer un formulaire à partir d une table...3

Les Entrepôts de Données

1. Entrez le code client dans le champ << Code client >> si requis. Le code client est optionnel, on peut donc entrer simplement le nom du client.

Guide d'utilisation Coffre fort Primobox

L import : Mise à jour rapide de votre catalogue

1. Création d'un état Création d'un état Instantané Colonnes Création d'un état Instantané Tableau... 4

Cours Access 1) INTRODUCTION AU SGBD...4 2) LES TABLES...4

Enregistrement de votre Géorando Maxi Liberté

Les bases de données Page 1 / 8

Utiliser un tableau de données

Installation et configuration du logiciel BauBit

Mode opératoire CEGID Business Suite

Olivier Mondet

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

SQL MAP. Etude d un logiciel SQL Injection

GUIDE D UTILISATION DU CENTRE DE DONNÉES DE L ISU

Créer un tableau avec LibreOffice / Calc

FÉDÉRATION MAROCAINE DES SOCIÉTÉS D'ASSURANCES ET DE RÉASSURANCE FICHIER CENTRAL CRM. MANUEL D UTILISATION Version 1.0

Base de données relationnelle et requêtes SQL

TABLEAU CROISE DYNAMIQUE

Conception d une base de données

Transcription:

Economie et Gestion M. DHIBA YOUSSEF COURS bases de donnes de gestion - licence fondamentale - licences professionnelles Année Universitaire : 2014-2015 Y.DHIBA -FDM- 1

SOMMAIRE 1. Base de données : Notions de base..3 1.1 Définition....3 1.2 Types de données...3 1.3 Notions : Tables, Champs et Enregistrement...4 1.4 Notion de clé Primaire et règles de gestion...5 1.5 Systèmes de Gestion de Bases de Données....6 2 Gestion de bases de données....7 2.1 Gestion d une BD....7 2.2 Relation entre tables...12 3 Les requêtes : Extraire des informations d une BD.16 3.1 Définitions et Types de requêtes..16 3.2 Requête de sélection...16 3.3 Requête analyse croisée....23 3.4 Requête de mise à jour...24 3.5 Requête de suppression....25 4 Formuler les requêtes en SQL....30 5 Etudes de cas..37 Y.DHIBA -FDM- 2

1. Base de données : Notions de bases 1.1 Définition d une base de données Une base de données (BD) est un ensemble de données structurées, organisées et stockées dans des entités logiques appelées «Tables». Chaque donnée est caractérisée par un type de données. Chaque système d information d une entreprise repose sur une ou plusieurs BDs pour la gestion des données concernant, par exemple, les clients, les commandes, les produits, les stocks, le personnel, les salariés, les ventes etc. 1.2 Types de données Dans une BD, chaque donnée est caractérisée par un type de données permettant de spécifier la nature des valeurs que peut prendre cette donnée. Les types standards de données sont: - Texte: Concerne les valeurs alphanumériques (Suite de caractères ou de caractères et de chiffres). - Numérique: Concerne les valeurs numériques (entiers ou réels etc.). - Date et heure: Concerne les valeurs de type date (Date d une commande, date de livraison, date d embauche, date d inscription..etc.) ou les valeurs concernant les heures (heure de départ, heure d arrivée, heure d une transaction.). - Monétaire: Concerne les valeurs numériques contenant des symboles des unités monétaires comme $,,, DH.etc. Tous les traitements de calcul qu on peut faire sur les données numériques sont valables pour les données monétaires. - Oui/Non : Concerne les données qui ne peuvent avoir que deux valeurs possibles (oui ou non; vrai ou faux ). - Objet Multimédia ou Objet OLE: concerne les données qui peuvent être des images, des sons, des vidéos ou des fichiers. 1.3 Notions: Tables, Champs et Enregistrements. - Une Table est une structure qui regroupe un ensemble de données faisant référence à une entité logique (client, produit, fournisseurs etc.). Elle porte un nom et elle est composée d un ensemble de colonnes et de lignes. Y.DHIBA -FDM- 3

- Champ d une table: Un champ décrit une donnée d une table et correspond à une colonne de la table. Il porte un nom et il est caractérisé par un type de données. Chaque colonne d une table est réservée pour un et un seul champ et porte le nom de ce champ. - Enregistrement d une table: Un enregistrement correspond à une ligne d une table et il est constitué par une suite de valeur de chaque champ de la table. Un enregistrement donne une valeur réelle de l entité décrite par la table. Une BD peut être composée d une ou plusieurs tables. Chaque table a la structure suivante : Fig 1 : structure d une Table Ci-dessous un exemple de table d une BD pour la gestion des produits d une entreprise : Y.DHIBA -FDM- 4

1.4 Notion: Clé Primaire d une table. Fig 2 : Exemple de table d une BD - Une clé primaire ou principale d une table est un ou plusieurs champs de cette table permettant d identifier d une manière unique les différents enregistrements de cette table. Chaque table d une BD doit avoir une clé primaire. - Conséquence: une clé ne peut pas avoir une valeur vide (Null) et sa valeur ne peut pas se répéter dans la même table. - Exemple cas d une table pour gérer les clients-: Table_Clients( N Client, Nom, Prénom, Adresse, Ville) Fig3 : Exemple de clé primaire d une table Y.DHIBA -FDM- 5

Le choix d une clé primaire dépend des règles de gestion du cas étudié. Exemple: Dans une base de données de gestion des stocks, on dispose d une table dont la structure est: Table_Marchandise(Code_marchandise, Volume, Poids, N entrepôt) - Question: Déterminer la clé primaire de cette table, sachant les règles de gestion suivantes: - Une marchandise est caractérisé par un et un seul code; - Une marchandise peut être stocker dans un ou plusieurs entrepôts. - Solution: La clé primaire est (Code_marchandise, N entrepôt) et la table devrait s écrire comme: Table_Marchandise(Code_marchandise, N entrepôt, Volume, Poids) 1.5 Système de Gestion de Bases de Données. Définition : Un SGBD est un logiciel offrant un ensemble d objets permettant la création et la gestion des BDs. Il existe plusieurs SGBD sur le marché qui permettent la création des petites, moyennes ou grandes BDS tels que Access, Oracle ou SQL Serveur.etc. Y.DHIBA -FDM- 6

2. Gestion de bases de données sous Access. 2.1 Création d une base de données. - Access est un SGBD pour la gestion de petites et moyennes BDs. Chaque BD porte un nom et l extension «.mdb». - Etapes pour créer une BD: 1) Lancer l environnement Access; 2) Cliquer sur le bouton de menu est choisir l option «Nouveau»; 3) Donner un nom à la BD et choisir l emplacement de stockage de la BD ; 4) Cliquer sur «Créer» pour la création de la BD. Pour gérer une BD, Access propose principalement les objets suivants: Y.DHIBA -FDM- 7

A) Création d une Table: Pour créer une table dans une BD: -- Ouvrir la BD; -- Afficher la liste des «Objets Access» et cliquer sur l objet «Tables»; --Dans la barre de menu, cliquer sur «Créer» puis sur l élément «Création de Table» ; Exemple: Dans la BD «gestion des clients et commandes», créer la table suivante: -- Enregistrer la table sous le nom «T_Clients» et fermer cette table. Y.DHIBA -FDM- 8

-- Ouvrir la table «T_clients» en mode création et ajouter un nouveau champ «Adresse»; Remarque sur le type «NumAuto»: Le type de données «NumAuto» est un type numérique dont les valeurs sont attribuées et gérées par le SGBD. La première valeur est 1, la deuxième est 2.etc. Exemple: Dans la table «T_Clients», modifier le type de données du champ «N Client» pour qu il devient «NumAuto». Ouvrir la table en mode affichage, des enregistrements et vérifier les valeurs attribués par le SGBD à ce champ. Supprimer un enregistrement et ajouter un nouvel enregistrement. Que remarquez-vous? B) Quelques propriétés d un champ: -- Taille: Permet de limiter le nombre de caractères pour un champ texte. -- Valeur par défaut: permet de spécifier une valeur que va attribuer le SGBD à un champ -- Null interdit: Cette propriété peut avoir deux valeurs: oui (cad le champ accepte une valeur vide) ou non (cad le champ n accepte pas une valeur vide). d un -- Masque de saisie: Permet de spécifier une manière contrôlée pour saisir les valeurs champ ( Cas du Tél: ( ## ) ## / ## / ## / ## ). -- Dans la table «T_Clients», limiter le nombre de caractères à 15 pour les champs «Nom», «Prénom» et à 25 pour le champ «Adresse». Définir la valeur «Rabat» comme valeur par défaut pour le champ «Ville». Choisir les champs pour lesquels Null interdit est non. Définir un masque de saisi pour le champ «Tél». -- Propriété: Liste de choix: Permet d affecter une liste de valeurs à un champ donné. Par exemple, dans la table «T_Clients, on peut affecter une liste de valeur pour le champ «ville» de la façon suivante: Y.DHIBA -FDM- 9

C) Ajout et modification des enregistrements -- Ouvrir la table en mode création et: Définir un masque de saisi pour le champ tél; Choisir les champs pour lesquels la propriété «Null interdit» doit avoir la valeur «Non»; Définir la propriété «Taille» pour les champs Nom, Prénom et adresse; définir la valeur «Rabat» pour la propriété «Valeur par défaut» du champ «Ville». -- Passer en mode «Affichage» et Créer les enregistrements suivants: Exercice 1: Dans la base de données «gestion des clients et commandes», créer la ou les tables permettant de gérer les commandes des clients sur les différents produits sachant que: -- Une commande est caractérisé par un numéro de commande et la date de la commande; Y.DHIBA -FDM- 10

-- Une commande est faite par un et un seul client; -- une commande porte sur un ou plusieurs produits; -- Un client peut faire une ou plusieurs commandes mais à des dates différentes; -- Un produit peut être commandé plusieurs fois et par plusieurs clients. Solution: Dans la base de données «gestion des clients et commandes», pour gérer les commandes des clients sur les différents produits selon les règles proposées, on doit créer les deux tables suivantes : Remarque: Utilisation de la propriété «Liste de choix» pour avoir des informations provenant d une autre table Dans la table «T_commandes», on aimerait faciliter la saisie du champ «Num_Client» en fournissant des informations sur ce champ à partir de la table «Clients» de la manière suivante: Y.DHIBA -FDM- 11

Pour réaliser l exemple précédent: -- Ouvrir la table «Commandes» en mode création; -- Sélectionner le champ «Num_Client», cliquer sur la propriété «liste de choix» et procéder de la façon suivante: 2.2 Relation entre tables et Intégrité référentielle Une relation entre deux tables d une BD permet d exprimer le lien logique qui existe entre ces tables. L application de l intégrité référentielle, permet au SGBD de faire tous les contrôles nécessaires pour que le lien logique soit respecté au moment de l exploitation des tables. Y.DHIBA -FDM- 12

Exemple des incohérences dues au manque de relations entre tables : Pour établir une relation entre deux tables : Dans le cas de la BD «gestion des clients et commandes», pour établir une relation entre les deux tables «Clients» et «Commandes» ayant en commun le champ «N Client» : -- fermer toutes les tables et dans la barre de menu cliquer sur «Outils de base de données»; -- Cliquer sur l élément «relations» -- Un espace «relations» sera affiché, cliquer ensuite sur l élément «Afficher la table» -- Ajouter les deux tables «Clients» et «Commandes»; -- Glisser le champ «N Clt» de la table «Clients» jusqu au champ «N Client» de la table «Commandes»; -- Une fenêtre «Modifier les relations» apparait, cocher alors la case «Appliquer l intégrité référentielle»; -- Enfin, cliquer sur le bouton «Créer» pour obtenir la relation suivante : Cas d une relation Père/Fils Y.DHIBA -FDM- 13

Signification de cette relation: -- Le «1» signifie qu une commande correspond à un et un seul client. Le SGBD va refuser de créer une commande avec un «N Client» qui n existe pas dans la table «T_Clients»; -- L signifie qu un client peut faire une ou plusieurs commandes. Le SGBD va refuser de supprimer un client ayant encore des commandes. Remarque: Une relation entre deux tables suppose qu il y a un champ en commun entre ces tables et dont le nom peut être différent dans les deux tables mais qui doit avoir le même type de données dans ces tables. Exercice: Dans la base de données «gestion clients commandes», créer les relations possibles entres les différentes tables. Expliquer la signification des deux relations suivantes: Exercice: On veut gérer les approvisionnements et les entrées en stocks des différents produits fournis par les fournisseurs d une société. Pour cela : 1) Créer une nouvelle BD appelée «Gestion approvisionnements»; Y.DHIBA -FDM- 14

2) Créer les trois tables suivantes: -- T_Stock (Référence, Désignation, Qte_Stock); -- T_Fournisseurs(N Fournisseur, Nom, Ville, tél) -- T_Approvisionnements( Référence, N Fournisseur, Date, Qte_Livrée, PU). Sachant que: -- Un produit en stock est identifié par sa référence qui est de type Texte; -- Un fournisseur est identifié par son N Fournisseur qui est de type numérique et qui peut être attribué par le SGBD; -- Un produit peut être livré par un ou plusieurs fournisseurs; Un fournisseur peut livrer un ou plusieurs et peut livrer le même produit mais à des dates différentes (la date est limitée au JJ-Mois-Année). 3) Appliquer la propriété «Liste de choix» pour les champs de la table «T- Approvisionnements» qui ont en besoin. Définir les relations entre les tables et donner la signification de chacune de ces relations. 5) Remplir les tables avec les enregistrements suivants: Y.DHIBA -FDM- 15

3. Les requêtes : Extraire des informations d une BD 3.1 Définition et types de requêtes A) Définition: Une requête est une interrogation ou consultation de la BD pour extraire des informations selon différents points de vue ou pour la mise à jour des données ou la mise à jour de la structure de la BD. -- En générale, le langage utilisé pour formuler les requêtes est le langage SQL (Structured Querry Language). Access propose, en plus de ce langage, un mode appelé mode «QBE (Querry By Example)» pour faciliter l expression des requêtes. Une fois la requête est exprimé dans ce mode, Access se charge de la traduire en SQL avant de l exécuter. B) Type de requêtes: On distingue principalement les types de requêtes suivantes: - Requête de sélection: Permet de sélectionner des enregistrements à partir d une ou plusieurs tables d une BD avec la possibilité d exprimer des critères ou de faires des traitements de calcul. - Requête de mise à jour: Permet de modifier les valeurs de certains champs. - Requête de suppression: Permet de supprimer des enregistrements selon des critères. - Requête d analyse croisée: Favorise l analyse de données en permettant de transformer le résultat d une requête de sélection en un jeu de deux valeurs 3.2 Requête de sélection: - Création d une requête de sélection Pour créer une requête de sélection: -- Fermer toutes les tables ouvertes de la BD; -- Sélectionner l objet «Requêtes» dans la liste «Tous les objets Access» et cliquer sur «Créer» dans la barre de menu; -- Cliquer sur l élément «Création de requête»: C) Requête de sélection: Création d une requête de sélection Pour créer une requête de sélection: Y.DHIBA -FDM- 16

-- Fermer toutes les tables ouvertes de la BD; -- Sélectionner l objet «Requêtes» dans la liste «Tous les objets Access» et cliquer sur «Créer» dans la barre de menu; -- Cliquer sur l élément «Création de requête»: -- Ajouter, à partir de la fenêtre «Afficher la table», la ou les tables concernées par la requête; -- On obtient ensuite l interface suivante: Structure d une requête de sélection: Remarque : -- Une fois la requête est créée, on peut l enregistrer sous un nom significatif; -- A chaque fois qu une requête est exécutée elle consulte l état courant de la BD tenant compte de toutes les mises à jour. Requête de sélection avec des critères: Y.DHIBA -FDM- 17

Exemple 1: Dans la BD «gestion clients et commandes», on veut créer une requête permettant d afficher le n, le nom, le prénom et la ville des clients dont le nom commence par «S» et qui sont de casa ou Rabat. Le résultat doit être trié par ville : Principe: Les critères qui sont sur une même sont automatiquement liés par l opérateur «Et» et ceux qui sont placés sur deux lignes différentes sont liés par l opérateur «Ou». Requête de sélection avec des critères: L exemple 1 peut aussi être formulé de la façon suivante: Critères sur les données de type «Texte»: Le symbole «*» remplace une suite de caractères et le symbole «?» remplace un seul caractère. Y.DHIBA -FDM- 18

Exemple 2: Dans la BD «gestion clients et commandes», on veut sélectionner le n, le nom, le prénom des clients dont le nom ne commence ni par «S» ni par «M» et qui sont de casa, Marrakech, Kenitra ou Rabat: Exemple 3: Dans la BD «gestion clients et commandes», on veut sélectionner le n, le nom, le prénom des clients qui ne sont pas de «Rabat» et ayant fait des commandes entre le «01/09/2010» et le «30/09/10»: Requête de sélection paramétrée: Exemple: Dans la BD «gestion clients et commandes», on veut sélectionner les clients dont la ville est un paramètre (variable) qui sera déterminé au moment de l exécution de la requête: A l exécution de cette requête, on obtient la fenêtre suivante: Y.DHIBA -FDM- 19

Exercice: Dans la BD «Gestion clients commandes», Créer les requêtes suivantes: 1) Afficher les produits non disponibles en stock et qui sont commandés avec une quantité supérieur à 10. 2) Afficher les clients de «Casa» ou «Rabat» ayant passé des commandes entre deux dates données comme paramètres; 3) Afficher les produits disponibles en stock dont le PU est soit entre 100 et 300 soit entre 500 et 1000; et qui ont été commandés au cours de l année 2009. 4) Afficher les clients dont la ville est un paramètre et ayant passé des commandes contenant le produit R1 ou R2 ou R4 ou R5 au cours du mois de janvier 2010. 5) Afficher les commandes d un client dont le nom et le prénom sont des paramètres. 6) Afficher les commandes faites au cours des 45 derniers jours!. Requête de sélection avec les fonctions de traitement des dates: Quelques fonctions de traitement des dates: Y.DHIBA -FDM- 20

Remarque: Le premier paramètre de la fonction «Diffdate» peut avoir les valeurs suivantes: aaaa (différence en nombre d années); t (trimestre); ww (semaine); m (mois); h (heure); n (minute); s (seconde). Exemple1: Dans la BD «gestion clients et commandes», on veut sélectionner les clients ayant passé des commandes aujourd hui : Exemple2: Dans la BD «gestion clients et commandes», on veut sélectionner les clients ayant passé des commandes au cours du premier trimestre de l année 2010: Exemple3: Dans la BD «gestion clients et commandes», on veut sélectionner les commandes faites le lundi ou le Mardi ou le Jeudi du premier semestre de l année 2010 (afficher les mois en lettres alphabétiques): Exemple4: Dans la BD «gestion clients et commandes», on veut sélectionner les produits commandés au cours des derniers 60 Jours avec une quantité par commande inférieure à 100: Y.DHIBA -FDM- 21

Requête de sélection avec les fonctions de calcul: - Il s agit d introduire dans une requête des fonctions de calcul telles que: somme, moyenne, min, max etc. Ou des fonctions réservées au BD telles que: compte et regroupement. - Pour introduire des fonctions de calcul dans une requête en mode création, il suffit de cliquer sur l élément: Une ligne «opération» sera alors ajoutée dans la structure de la requête. Exemple1: la fonction compte: Dans la BD «gestion clients et commandes», on veut compter le nombre total de clients: Exemple2: la fonction regroupement: Dans la BD «gestion clients et commandes», on veut compter le nombre de clients par ville: Remarque : La fonction «regroupement» permet de factoriser un traitement effectué sur un champ en fonction de chaque valeur d un autre champ. Dans l exemple 2, la fonction «regroupement» permet de factoriser l opération «compte» effectuée sur le champ «N Client» en fonction de chaque valeur du champ «Ville». Y.DHIBA -FDM- 22

Exemple3: Dans la BD «gestion clients et commandes», on veut afficher pour chaque produit: la référence, la désignation, la quantité moyenne, la qté minimale, la quantité maximale, la quantité totale. On s intéresse aux quantités commandées par ville. 3.3 Requête analyse croisée: Une requête Analyse croisée permet de calculer et de restructurer des données afin d'en faciliter l'analyse. Elle permet d effectuer des calculs (somme, moyenne, compte etc.) pour des données regroupées en lignes ou en colonnes. Exemple1: Dans la BD «gestion clients et commandes», Pour chaque ville, calculer la quantité totale commandée, par les clients de cette ville, pour chaque produit. Chaque désignation d un produit doit être affiché dans une seule colonne et chaque ville doit être placer dans une seule ligne : - Créer une nouvelle requête en introduisant les tables : «Clients», «Commandes», «Lignes commandes» et produits. - Dans la zone «type de requête», cliquez sur le bouton «Analyse Croisée»: - Dans la ligne «Analyse» de la grille de la requête, choisir «en tête de ligne» pour le champ «Ville» et «en tête de colonne» pour le champ «Référence». Tout champ défini en ligne ou en colonne doit avoir «Regroupement» dans la zone «Opération». Choisir «Valeur» pour le champ «Quantité» et définir l opération somme pour ce champ dans la ligne «Opération»: Y.DHIBA -FDM- 23

Exemple2: Dans la BD «gestion clients et commandes», on veut créer une requête analyse croisée permettant d afficher les quantités totales mensuelles commandées pour chaque produit au cours du premier semestre de l année 2010. Les mois doivent être affichés en lettres alphabétiques et les produits doivent être affichés par leur désignation : Avant d exécuter cette requête et pour avoir les mois dans l ordre chronologique, cliquer avec le bouton droit sur la deuxième colonne et puis sur «propriétés». Ensuite, saisir les mois dans la propriété «En-têtes des colonnes» de la façon suivante: 3.4 Requête de mise à jour: Une requête de mise à jour permet d effectuer des modifications globales sur un ou plusieurs enregistrements dans une ou plusieurs tables. Ces modifications peuvent être conditionnées par un ou plusieurs critères. - Création de requêtes de mise à jour : - Créer une nouvelle requête en mode création et sélectionner la ou les tables contenant les champs concernés par la mise à jour. - Dans la zone «type de requête», cliquer sur l icône «mise à jour». Y.DHIBA -FDM- 24

- Dans la grille de la requête, placer les champs concernés par la mise à jour et spécifier l expression ou la valeur de mise à jour dans la cellule «mise à jour». Placer aussi les champs concernés éventuellement par les critères. - - Pour afficher la liste des enregistrements qui seront mis à jour, cliquez sur Affichage dans la zone «Résultats». - - Pour réaliser la mise à jour sur les enregistrements, cliquez sur Exécuter dans la zone «Résultats». - Remarque: Une mise à jour une fois exécutée ne pourra pas être annulée. Exemple 1: Dans la BD «gestion clients et commandes», on veut Augmenter de 20% le prix unitaire pour chaque produit dont le PU actuel est compris entre 20 Dh et 260 Dh: Exemple 2: Dans la BD «gestion clients et commandes», on veut doubler les quantités commandées par les clients de «casa» ou «rabat» pour les commandes du mois de Février 2010. 3.5 Requête de suppression: Une requête suppression permet de supprimer un ou plusieurs enregistrements d'une ou plusieurs tables. Une requête de suppression, supprime des enregistrements entiers, et non uniquement certains champs dans ces enregistrements. - Créer une nouvelle requête en mode création et sélectionner la ou les tables contenant les champs concernés par la mise à jour. Y.DHIBA -FDM- 25

- Dans la zone «type de requête», cliquer sur l icône «suppression»: - -Cliquer sur le symbole (*) dans la table à partir de laquelle la suppression sera réalisé. Si la suppression est conditionnée par des critères alors placer les champs de cette table ou des autres tables concernées par ces critères. - Pour afficher la liste des enregistrements qui seront mis à jour, cliquez sur Affichage dans la zone «Résultats». - Pour réaliser la mise à jour sur les enregistrements, cliquez sur Exécuter dans la zone «Résultats». Exemple 1: Dans la BD «gestion clients et commandes», on veut supprimer le client «SLIMANI Omar» sachant qu il n a pas de commandes: Remarque: Pour autoriser la suppression des enregistrements annexes dans le cas d une.relation père/fils, il faut choisir dans la relation: l option «Effacer en cascade les enregistrements correspondants»: Exercice: Dans la BD «Gestion clients commandes», Créer les requêtes suivantes: 1) Pour chaque client, afficher la commande la plus récente et la commande la plus ancienne. 2) Afficher le nombre de commandes faites mensuellement au cours des deux dernières années. Les mois doivent être affichés en lettres. Formuler la même requête pour que le nombre des dernières années soit un paramètre. Y.DHIBA -FDM- 26

3) Pour chaque client, afficher le nombre de commandes faites au cours d une année donnée et au cours d un mois dont le nom est un paramètre. (le nom et le prénom du client doivent être affichés dans une seule colonne). 4) Pour chaque commande, calculer le montant HT et le montant TTC avec taux de tva=20%. Formuler la même requête avec taux de tva variable. 5) Afficher les produits dont la dernière commande remonte à deux mois ou plus. 6) Pour chaque ville, afficher le nombre de commandes faites au cours des mois de janvier, mars, juin et septembre d une année donnée comme paramètre. 7) Créer une requête analyse croisée permettant d afficher le nombre de commandes faites annuellement par client. Le numéro, le nom et le prénom d un client doivent être placées dans une seule ligne. Etudes de cas 8) Créer une requête mise à jour paramétrée permettant de modifier l adresse ou le numéro de tél d un client dont le nom et prénom sont des paramètres. 9) Réduire de 10% les prix unitaires des produits qui ont été commandés au moins une fois avec une quantité inférieure à 5 au cours de mois de janvier 2010. 10) Le client n 1 décide de supprimer de la commande n 1 deux produits dont les désignations sont : «Vidéo Projecteur» et «Caméra Sony». 11) Supprimer les commandes du client n 3 faites au cours de mois de janvier 2010. 12) Créer une requête suppression paramétrée permettant de saisir le nom et prénom du client est de supprimer les commandes de ce client. Etude de cas 1: Le schéma simplifié d une base de données pour la gestion des commandes et des livraisons d un système d information, comprend les tables suivantes : Y.DHIBA -FDM- 27

Questions: 1) Que se passe t-il si on prend uniquement la «Référence» comme clé primaire de la table «Détail_livraisons»? Que se passe t-il si on prend uniquement «Num_livraison» comme clé de cette même table. 2) Donner la relation avec l intégrité référentielle entre la table fournisseurs et livraisons. Donner la signification et l utilité de l intégrité référentielle dans ce cas. 3) On suppose qu on a établit les relations avec l intégrité référentielle entre les différentes tables. Parmi les enregistrements suivants lesquels seront rejetés par le SGBD et pourquoi? 4) Formuler en mode QBE les requêtes suivantes: A- Afficher le numéro et la date des livraisons faites au cours du dernier mois de chaque trimestre d une année donnée. B- Pour chaque livraison, afficher le numéro, la date, le nombre de jours qui sont passés depuis la création de la livraison et le montant. Limiter la sélection uniquement pour les livraisons dont la durée est supérieur à 100 jours et ayant un montant < 5000 DH ou les livraisons faites au cours des 100 derniers jours avec un montant supérieur 10000 DH. Y.DHIBA -FDM- 28

C- Afficher, à l aide d une requête analyse croisée, les bénéfices mensuelles réalisés pour chaque produit au cours du premier semestre des deux derniers années. La référence et la désignation des produits doivent être affichées dans une même colonne. D- Effectuer une augmentation de prix de vente de 10% pour les produits dont la quantité en stock est comprise entre 1 et 100 et qui ont été commandés au cours des mois de janvier, mai ou septembre de l une des deux dernières années. 5) Comment faire pour avoir le ou les fournisseurs ayant réalisés le nombre maximum de livraison au cours d une année donnée? 6) A travers le schéma de cette BD, peut on connaitre les moments de pénurie de stock pour un produit donné? 7) Peut-on connaître les clients n ayant pas passés de commandes au cours d une période donnée? Etude de cas 2: Les ventes des produits d une entreprise sont gérées par une BD «gestion_ventes» où Chaque vente est assurée par un et un seul représentant et concerne un seul client. Le schéma simplifié de cette BD est le suivant : Questions: 1) Une vente peut-elle contenir deux ou plusieurs produits? (Justifier la réponse). Que se passe t-il si on prend (N vente, N représentant) comme clé de la table ventes? Proposer une amélioration de cette BD pour qu une vente puisse contenir plusieurs produits. 2) A partir des relations entre les tables, préciser les cas où une vente ne sera pas acceptée par le SGBD. Quels sont les champs de la table «vente» ayant besoin de la propriété «List de Choix». 3) Dites ce que permet de faire la requête suivante : Y.DHIBA -FDM- 29

4) Formuler en mode QBE les requêtes suivantes: A-Pour chaque produit, afficher le numéro, le nom et la quantité totale vendue au cours des lundi, mardi et mercredi du deuxième trimestre d une année donnée comme paramètre. B-Pour chaque représentant, afficher le numéro, le nom, l âge et l ancienneté. Limiter la recherche pour les représentants embauchés il y a plus que 20 ans. C- Donner une requête permettant d afficher pour chaque produit la quantité totale vendue quotidiennement au cours des 7 premiers jours du mois de janvier 2010. Limiter la recherche pour les produits dont le PU est entre 2089 et 6000 ou ceux dont la Qte totale dépasse 2000. D- Donner une requête de mise à jour permettant de modifier le prix unitaire d un produit dont le nom est un paramètre. E- Donner une requête mise à jour permettant de faire une augmentation de 25% sur les salaires bruts des représentants dont l ancienneté dépasse 7 ans ou dont l âge est entre à 30 et 35 ans. F-Donner une requête analyse croisée permettant d afficher le chiffre d affaire réalisée mensuellement par représentant et par catégorie de produit au cours du deuxième semestre des 5 dernières années. Les noms des mois doivent être affichés en colonne. G- Donner une requête analyse croisée permettant d afficher la quantité moyenne commandée par produit et par ville au cours des deux dernières semaines. Placer les villes en ligne. 4. Langage de requêtes structuré SQL (Structured Querry Language) SQL est un langage de requêtes structuré permettant la création et la gestion de bases de données relationnelles. Il a été conçu par IBM dans les années 70 et a été normalisé dés Y.DHIBA -FDM- 30

1986. SQL est passé de plusieurs normes et est aujourd hui considéré le langage standard des systèmes de gestion des bases de données relationnelles. SQL est composé de plusieurs parties contenant chacune un ensemble de commandes appelées «Clauses»: Dans ce cours, on s intéresse à la partie de SQL permettant l interrogation d une BD (Requêtes avec Clause SELECT ). A) Clause: Select From Syntaxe: Exemples:(Cas de la BD «gestion commandes et livraisons) 1) Afficher tous les champs de la table Clients: 2) Afficher la référence, la désignation et le prix unitaire de chaque produit: 3) Afficher la liste des villes des clients: B) Clauses «WHERE» et «ORDER By»: Pour exprimer respectivement des conditions sur les champs et Trier le résultat. Y.DHIBA -FDM- 31

Exemples:(Cas de la BD «gestion commandes et livraisons») - Afficher tous les clients de la ville «Casa» ou «Rabat»: - Afficher les clients dont le nom commence par «S» et qui ne sont pas de «Rabat». Trier le résultat par ordre croissant sur ville: - Afficher les commandes faites au cours de janvier 2012: C) Clause «WHERE» et Jointures entre deux tables Exemples:(Cas de la BD «gestion commandes et livraisons) - Afficher les commandes faites par les clients de casa ou rabat: - Pour chaque commande, afficher la quantité commandée de chaque produit: Y.DHIBA -FDM- 32

D) Les fonctions de calcul: Count, Sum, Avg, Min et Max Exemple: Afficher le nombre total de clients E) Clause: «Group by» : Pour regrouper le résultat d un calcul sur des champs en fonctions d autres champs. Exemples:(Cas de la BD «gestion commandes et livraisons) - Afficher le nombre de clients par ville: - Afficher le nombre de commandes faites par client: - Pour chaque produit commandé, afficher la quantité moyenne, la quantité minimale, la quantité maximale et la quantité totale commandée: Y.DHIBA -FDM- 33

- Pour chaque commande, donner le MHT et MTTC sachant que Taux TVA=14%: D) Clause «Having»: Permet d exprimer des critères sur des champs calculés. Elle est utilisée avec la clause «Group by». Exemples: - Afficher les villes ayant mois que 3 Clients: - Afficher les produits dont la Quantité totale commandée est entre 200 et 700: Y.DHIBA -FDM- 34

D) Fonctions traitement des date:. Remarque: Le premier paramètre de la fonction «Diffdate» peut avoir les valeurs suivantes: yyyy (différence en nombre d années); ww (semaine); m (mois); h (heure); n (minute); s (seconde). Exemples : Cas de la BD gestion des commandes et livraison dont le schéma relationnel est le suivant : - Calculer et afficher le nombre de commandes faites aujourd hui: Y.DHIBA -FDM- 35

- Calculer et afficher le nombre de commandes faites par client au cours du mois courant: - Afficher la liste des produits commandés au cours du mois précédent: E) Requêtes imbriquées: Il s agit d introduire une deuxième requête à l intérieure d une requête. Exemples: - Afficher les clients qui n ont pas passés de commandes au cours de 2010: Y.DHIBA -FDM- 36

- Afficher le produit dont la quantité commandée est maximale: 5. Etudes de cas Etude de cas Une entreprise dispose de plusieurs entrepôts pour stocker ses différents produits. La gestion des approvisionnements en produits (livrés par les fournisseurs) et les sorties des produits destinées aux clients, repose principalement sur une base de données dont le schéma simplifié est le suivant : Questions: 1) A quoi sert une clé primaire et qu est ce qu une requête de sélection? Que se passe t- il si on prend le couple (N Sortie, N Entrepôt) comme clé primaire de la table «Sortie»? 2) Un approvisionnement peut-il être stocké dans plusieurs entrepôts? Que se passe t-il Y.DHIBA -FDM- 37

si on n établit pas de relation entre les deux tables «Entrepôt» et «Sortie»? 3) Donner l explication et l utilité de la relation entre les deux tables «Produit» et «Lignes_Approvisionnement». 4) Dites ce que permet de faire la requête suivante : 5) Formuler en mode QBE les requêtes suivantes : A- Afficher les sorties effectuées un Lundi ou Mardi ou Vendredi du troisième trimestre de l année en cours. B- Afficher les produits qui ont été approvisionnés avec une quantité comprise entre 1000 et 2400 au cours des 15 premiers jours d un mois et d une année données comme paramètres C- Pour chaque approvisionnement, afficher le numéro, la date et le nombre de mois qui se sont passés depuis la création de l approvisionnement. Limiter la sélection uniquement pour les approvisionnements dont la durée dépasse trois mois et qui ne concernent pas les villes de «casa» et «rabat» ou les approvisionnements dont la durée ne dépasse pas un mois et qui ne concernent pas les produits dont la référence contienne les lettres «RS». D- Afficher les sorties effectués quotidiennement au cours de la première semaine du mois de Mars d une année donnée comme paramètre. Les jours doivent Y.DHIBA -FDM- 38

être affichés en lettres alphabétiques. Etude de cas Une compagnie aérienne dispose d un système d information pour gérer les billets des passagers et les différents vols qu elle propose. Ce système d information repose principalement sur une base de données dont le schéma simplifié est le suivant : Questions: 1) Comment sont organisées les données dans une Base de données? Citer six types de données disponibles dans les SGBD. 2) Un même billet peut-il contenir plusieurs vols? (Justifier la réponse). 3) Peut-on associé le type «Texte» au champ «Prix_vol» de la table «Detail-Billets»? 4) Donner l explication et l utilité de la relation entre les deux tables «Avions» et «Vols». Que se passe t-il si on prend le couple («N Vol», «N Avion») comme clé de la table «Vols»? 5) Dites ce que permet de faire la requête suivante : Y.DHIBA -FDM- 39

6) Formuler en mode QBE les requêtes suivantes A- Pour chaque passager, afficher le numéro, le nom et le numéro de billet dont le nombre de vols est entre 2 et 5. Limiter la recherche pour les billets achetés au cours du troisième trimestre d une année donnée comme paramètre. B- Afficher les vols effectués dans les 15 premiers jours du mois de juin 2011 et dont la durée en nombre d heures dépasse 10 heures ou dont la ville de départ est «Tanger» ou «Agadir». C- Donner une requête mise à jour permettant de réduire de 15% le prix d un vol prévu pour un lundi ou mardi du mois de décembre 2011 et dont la ville d arrivée est un paramètre. D- Donner une requête analyse croisée permettant d afficher par ville de départ et par nationalité, le nombre de vols réalisés mensuellement au cours du premier Y.DHIBA -FDM- 40

semestre des trois dernières années. Les noms des mois doivent être affichés en colonne. E- Donner une requête de suppression permettant de supprimer les vols à destination de «Damas» prévus pour la première semaine du mois de décembre 2011. Etude de cas : Une société dispose de plusieurs vendeurs qui sont des salariés chargés d effectuer des visites aux clients pour leur vendre les différents produits qu elle propose. Chaque visite, effectuée par un vendeur à un client, engage des frais de déplacement et de restauration. Pour gérer les visites et les frais, la société dispose d un système d information qui repose principalement sur une base de données dont le schéma simplifié est le suivant : La table «T_Frais_Engagés» permet de stocker les frais de déplacement et de restauration engagés par les visites effectuées par un vendeur au cours d une période d une semaine. Dans la table «T_Périodes», on décrit une période (semaine) par un numéro, la date de début et la date de fin de la semaine. Questions : Y.DHIBA -FDM- 41

1) Qu est ce qu une base de données et à quoi sert une requête d analyse croisée? 2) Que se passe t-il si on prend le couple (N Visite, N Client) comme clé de la table «T_Visites»? 3) Donner l explication et l utilité de la relation entre les deux tables «T_Vendeurs» et «T_Frais_Engagés». 4) Dites ce que permet de faire la requête suivante : 5) Formuler en mode QBE les requêtes suivantes : A- Pour chaque vendeur, afficher le numéro, le nom, le prénom et le total des frais de déplacements engagés au cours d une année donnée comme paramètre. Limiter la recherche pour les vendeurs dont l ancienneté est supérieur à 10 ans. B- Afficher le nombre de visites effectuées par vendeur un Lundi ou Mardi ou Vendredi du troisième trimestre de l année en cours. Limier la recherche pour les visites ne concernant pas les clients de Casa et de Marrakech. C- Donner une requête mise à jour permettant de réduire de 15% les frais de déplacement engagés au cours du mois d août ou septembre d une année donnée comme paramètre. Y.DHIBA -FDM- 42

D- Donner une requête analyse croisée permettant d afficher le total des frais de restauration engagés annuellement par vendeur. Limiter cette requête pour les cinq dernières années. Afficher, par ligne, le nom et prénom de chaque vendeur. Les années doivent être affichées en colonne. L établissement ELECTROMEN est chargé de la maintenance de matériels électroménagers de haut de gamme. Outre le directeur, le personnel se compose de 4 secrétaires et d une trentaine de techniciens regroupés par spécialité dans sept ateliers. Pour gérer les réparations de matériels des clients, la société dispose d un système d information qui repose principalement sur une base de données dont le schéma simplifié est le suivant : Questions : 1) Définir les notions suivantes : SGBD; Table ; Clé primaire et requête. 2) Peut-on avoir une réparation faite dans deux ateliers? Un même matériel peut-il être sujet à plusieurs réparations? Que se passe t-il si on prend le couple (N Réparation, N Série) comme clé de la table «REPARATION»? 3) Donner l explication et l utilité de la relation entre les deux tables «CLIENT» et Y.DHIBA -FDM- 43

«MATERIEL». 4) Dites ce que permet de faire la requête suivante : 5) Formuler en mode QBE les requêtes suivantes : A- Pour chaque atelier, afficher le nom et la moyenne des frais de réparations effectuées au cours du premier semestre d une année donnée comme variable. B- Pour chaque atelier, afficher le numéro, le nom et le nombre de réparations faites au cours d une année donnée comme paramètre pour les clients de «Casa» ou «Rabat». Limiter la recherche pour les ateliers dont le nombre de techniciens est supérieur à 4. C- Afficher le nombre de matériels réparés par atelier au cours du troisième trimestre de l année 2015. Limier la recherche pour le matériel dont la durée de réparation n a pas dépassé 5 jours. Y.DHIBA -FDM- 44

D- Donner une requête mise à jour permettant de réduire de 25% les frais de réparations ayant une durée qui dépasse 10 jours ou celles faites au cours des mois d août ou septembre de 2015. E- Donner une requête analyse croisée permettant d afficher la durée moyenne de réparations (en nombre de jours) par type de matériel et par atelier. Limiter cette requête pour les cinq dernières années. Afficher le type de matériel en-tête de ligne et le nom de l atelier en-tête de colonne. Y.DHIBA -FDM- 45