Académique Documents
Professionnel Documents
Culture Documents
Informatique Appliqui Séance 1
Informatique Appliqui Séance 1
Séance 1
Amal EL MZABI
Introduction aux Bases de données
Systèmes de Gestion de Base de Données ACCESS
2
Plan
1. Définition d’une base données
2. Principales fonctions d’une base de données
3. Bases de données relationnelles
4. Système de Gestion de Base des données
5. Création d’une base de données sur le SGBD
Microsoft Access
6. Table, Champs, Enregistrement et Clés
7. Types de relations
8. Requêtes (QBE et SQL)
3
Définition
optimale.
4
Fonctions principales d’une BD
6
• Données accessibles directement selon de multiples critères.
7
Avantages d’utilisation d’une BD
• Recherche facile
10
Exemple: Base de données pour la gestion des commandes
11
Chaque table d’une BDR a la structure suivante :
12
Ci-dessous un exemple de table d’une BD pour la gestion des
commandes d’une entreprise
Enregistrements Nom de la table: Commandes
Commandes
Nu_cmd
Code_Client Champs
Date_cmd
Cmd_réglée
2. La modélisation.
15
Identifiant, clé primaire et clé étrangère
Identifiants
17
Clé primaire
Une table peut posséder plusieurs identifiants. On choisit l'un
d'eux, qu'on déclare clé primaire. Les autres sont dès lors des
identifiants secondaires.
Une clé peut être simple (un seul champ) ou composée (plusieurs
champs), et ne peut être jamais nulle ou répétée
Clé étrangère
Un champ (ou ensemble de champs) est clé étrangère dans une table
s’il fait référence à une clé primaire dans une autre table.
Identifiant, clé primaire et clé étrangère
Clé primaire
Clé étrangère
19
Système de Gestion de Base de Données
Exemple de SGBDR :
ACCESS pour gérer des petites bases de données.
ORACLE, très performant pour les grandes BD mais coute très cher
SQLSERVER, outils de Microsoft concurrent de oracle (coute cher)
MYSQL, performant et gratuit 20
Création de tables d’une base de données
Règles de gestion
21
Tables de la base de données
22
Système de Gestion de Base de Données - Access
23
Création d’une base de données
24
Les Composantes du SGBDR ACCESS
25
Les Composantes du SGBD ACCESS
Autres composantes:
sur la base ;
27
Commentaire sur le champ
La liste des champs (ajouter les commentaire)
(ajouter les champs) Types de chaque champ
(définir les types)
28
Définir les types des données
29
Ajouter une clé primaire
30
Type de données d’un champ
31
− 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.
Mode d’affichage
35
Université Hassan II - Casablanca
Faculté des sciences juridiques, économiques et sociales
Mohammedia
Séance 2
Amal EL MZABI
Relations entre les tables d’une BD
Livres
Nom Auteur
Prénom Auteur
Nationalité auteur
Titre
Nbre pages
Année d’édition
Éditeur
2
Il est plus judicieux de créer ici deux tables, il faut toujours regrouper dans
une même table toutes les informations relatives au même « sujet »
Auteurs
Nom Auteur
Livres
Prénom Auteur
Nom Auteur
Prénom Auteur Date de naissance
3
Trouver un moyen pour savoir exactement à Auteurs
4
Définitions
5
Relation un-à-un
6
Table 1 Table 2
Enregistrement 1 Enregistrement 1
Enregistrement 2 Enregistrement 2
Enregistrement 3 Enregistrement 3
Enregistrement 4 Enregistrement 4
Enregistrement 5 Enregistrement 5
Exemple
Possède
Personne Voiture
1 1
Num_permis Immatricule
Nom Marque
Prénom Couleur
Ville Puissance
Table 2
Table 1
Enregistrement 1
Enregistrement 1
Enregistrement 2
Enregistrement 2
Enregistrement 3
Enregistrement 4
Enregistrement 5
Clé secondaire
Clé primaire
Auteurs Livres
1 n
N° Auteur N° Auteur
9
Exemple 2
10
Relation Plusieurs à Plusieurs (n - m)
Exemple
Table Auteur
Table Livre
15
Outils de base de données → Relations
16
Afficher la table → Ajouter Auteur + Ajouter Livre → Fermer
17
Glisser N°auteur (table auteur) vers N°auteur (table Livre)
18
Cette relation signifie qu’un auteur peut être
associé à plusieurs livres et un livre est
associé à un seul auteur.
L’intégrité référentielle
Un ensemble de règles suivies par Access pour gérer les relations
entre tables et éviter des incohérences dans une base de données.
Elle empêche de supprimer accidentellement des enregistrements dans
une table mère quand il existe des enregistrements correspondants
dans la table Fille.
20
Prenons l'exemple de gestion Fournisseurs/Produits : un fournisseur
fournit plusieurs produits.
Effacer en cascade
Si cette option est cochée et que vous supprimez un fournisseur,
tous ses produits seront automatiquement détruites.
Inversement, si la case n'est pas cochée, il sera impossible de
supprimer un fournisseur tant que tous ses produits n'ont pas été
détruites. 22
Application 1
Un service financier réalise un audit de données bancaires. Le
schéma relationnel de ces données est le suivant :
Table : Clients
IdClient Nom Prenom Ville Tél
1 Amine Casablanca 0663562773
Salim Rajae Tanger 0662152435
3 Amine Jamal Agadir 0661661610
4 Nasri Reda Tanger 0670263560
Table : Compte
IdCompte IdClient DateCréation Solde
123 1 10/3/2012 350200
124 3 12/1/2013 16I890
125 2 10/4/2013 680000
124 4 2/11/2014 255000
24
✓ Pour table Client :
Le 2ème enregistrement car le champ « IdClient » étant
la clé primaire ne peut pas être vide ou nulle.
25
Application 2
Le responsable du complexe cinématographique a mis en place cette
base de données afin de gérer les projections des films dans les
différentes salles de cinéma :
Acteur (Num_acteur, Nom, Prénom)
Jouer (Num_acteur, Num_Film, Rôle)
Film (Num_Film, Titre, Genre, Année)
Projection (Num_Ciné, Num_Film, Date)
Cinéma (Num_Ciné, Nom, Adresse)
1. Quelles sont les clés primaires et les clés secondaires de chaque
table ? Justifiez votre réponse.
2. Tracez les relations entre les tables de cette base de donnée.
26
Application 3: Base de données
« Gestion de Commandes »
La BD « Gestion de commandes », qui sera utilisée pour le reste du
cours, contient les quatre tables suivantes : Clients, Commandes,
Produits et Détails_Commande, dont le schéma relationnel est :
27
Les requêtes
La requête est une action qui porte sur plusieurs
enregistrements. Elle sert à exploiter les données contenues
dans les tables.
Elle permet de:
➢ Trier des données
➢ Extraire des données par critères
➢ Produire des calculs
➢ Créer, Modifier des tables
Le SGBD Access permet de créer des requêtes en utilisant
soit une interface graphique QBE, soit le langage SQL
28
Types de requêtes
✓ La requête sélection : Elle permet de sélectionner des
enregistrements qui répondent aux critères demandés, de faire des
calculs et des regroupements. Elles ressemblent beaucoup aux filtres,
mais permettent, en plus, de travailler sur plusieurs tables simultanément.
✓ La requête d'Analyse croisée : Cette requête présente ses résultats
sous forme de tableau (de type Excel). On l'utilisera pour comparer des
valeurs, dégager des tendances.
✓ La requête de Création de table : Cette requête crée une table à
partir des données qu'elle a extraite dans une ou plusieurs autres tables.
✓ La requête Mise à Jour : Elle modifie le contenu d'un ou plusieurs
champs d'une ou plusieurs tables. C'est le moyen le plus efficace pour
mettre à jour un grand nombre d'enregistrements en une seule opération.
✓ La requête Ajout : Cette requête ajoute les données qu'elle a
extraites à la fin d'une table déjà existante.
✓ La requête Suppression : Cette requête supprime un ou plusieurs
enregistrements dans une ou plusieurs tables.
29
Requête sélection
31
On obtient ensuite l’interface suivante:
Remarque :
Une requête qui exploite une seule table est dite requête
monotable ou simple
32
Structure et paramétrage d’une requête de sélection
Nom de la
requête
Liste des
champs
Les
paramètres
de la requête
Séance 3
Amal EL MZABI
Exemple de requête de sélection avec des critères
Dans notre BD « Gestions de Commandes », on souhaite afficher, le
code, le nom, le prénom et la ville des clients habitants Casablanca
ou Rabat. Le résultat doit être trié par Nom en ordre croissant.
Pour ce faire, nous allons double-cliquer sur tous les champs
nécessaires à savoir : CodeClient, Nom, Prenom, Ville.
4
Exemple 2
Afficher le code, le nom et le prénom des clients, ainsi que la
ville dont le nom ne commence ni par « A » ni par « S » et qui
sont de Casablanca ou Mohammedia.
Cette requête sert à voir les caractères spéciaux tel que " * " et "?".
Le caractère "?" est utile pour remplacer un caractère dans la
requête. Par exemple, une recherche sur b?lle pourrait donner les
résultats suivants: balle, belle, bille, bulle.
6
Création d’une requête simple de
sélection en mode SQL
1. La construction d'une requête commence par
l'identification des informations à afficher (Clause
SELECT)
2. On détermine ensuite les restrictions nécessaires à
l'obtention du résultat (clause WHERE)
3. On repère ensuite dans le modèle relationnel la ou les
tables concernées par l'ensemble des champs mis en
ouvre dans les points 1 et 2 : on en déduit les tables
nécessaires à la clause FROM
4. On triera enfin grâce à la clause ORDER BY éventuelle.
5. On termine le code par un point virgule « ; »
7
Une requête sélection SQL commence toujours par la clause SELECT
et se termine par un point virgule.
Syntaxe exemple :
Select champ1, champ2, …
From tableSource
WHERE « Conditions sur les champs »
Order by [champ i] ASC/DESC ;
10
Exemples
On reprend les exemples précédents en mode SQL
11
Ou bien :
Séance 4
Amal EL MZABI
Requête de sélection avec des champs
calculés
2
Exemple : Dans la BD « Gestion des commandes », on souhaite
afficher le numéro des commandes contenant le produit de
référence « Pdt01 », la quantité commandée et le prix total hors
taxes
Alias
3
Requête de sélection avec les fonctions
de traitement des dates
Quelques fonctions de traitement des dates:
Fonction Signification
Jour(Date) Affiche le jour de la date en paramètre
Mois(Date) Affiche le mois de la date en
paramètre
Année(Date) Affiche l’année de la date en
paramètre
Date() Affiche la date d’aujourd’hui (du
système)
Affiche la différence en nombre
Diffdate("format"; date1; d’années, de jours, de mois, de
date2) trimestres,… entre la date « date1 » et
la date « date2 ».
Format(Date; "format") Affiche le mois/jour de la date en
lettres alphabétiques. 4
Remarque :
6
Exemple :
Dans la BD « Gestion des commandes », on souhaite afficher le
code du client, le numéro et la date de leurs commandes faites au
cours du premier trimestre de l’année 2019 : Alias
Ou
7
Requête de sélection avec les fonctions
de traitement des dates en SQL
Fonctions de traitement des dates :
Fonction Signification
Day(Date) Affiche le jour de la date en paramètre
Month(Date) Affiche le mois de la date en
paramètre
Year(Date) Affiche l’année de la date en
paramètre
Date() Affiche la date d’aujourd’hui (du
système)
Affiche la différence en nombre
Datediff("format", date1, d’années, de jours, de mois, de
date2) trimestres,… entre la date « date1 » et
la date « date2 ».
Format(Date, "format") Affiche le mois/jour de la date en
lettres alphabétiques. 8
Remarque :
Ou bien :
Alias
Séance 6
Amal EL MZABI
Requête de sélection paramétrée
2
Pour regrouper innombrables requêtes dans une seule
dite paramétrée.
Exécutez la requête :
Taper la ville
recherchée ici
5
Comme vous avez précisé que Ville recherchée = Mohammedia
(comme critère de Ville), la requête vous renvoie les clients de
Mohammedia
6
Cette fois, Entrez Casablanca et cliquez sur OK. Les clients de
Casablanca apparaissent.
En mode SQL :
Exemple 1 :
Afficher le numéro et la date des commandes faites par les
clients de Mohammedia.
11
Les tables sources La relation
12
En mode SQL :
ON Clients.CodeClient = Commandes.CodeClient
Pour marquer qu’il y a une relation entre deux tables reliant la clé
primaire et la clé secondaire on utilise la syntaxe suivante :
Ville = "Mohammedia" ;
15
La tables Clients et DétailsCommande ne sont pas reliées entre elles,
d’où la nécessité d’ajouter la table Commandes même si elle n’est pas
utilisée dans la grille en bas.
En mode SQL :
17
Université Hassan II - Casablanca
Faculté des sciences juridiques, économiques et sociales
Mohammedia
Séance 7
Amal EL MZABI
Requête de sélection avec opération
bouton
Alias
6
En mode SQL :
Select fonction(champ)
From Table_Source
[Where Condition]
Group by Nom_Champ;
8
Reprenons l’exemple précédent :
Exemple 2
9
En mode SQL :
Group By Desig; 10
Conditions sur les fonctions d'agrégation en SQL
Il n'est pas possible d'utiliser la clause WHERE pour faire
des conditions sur une fonction d'agrégation. Par exemple, si
dans l’exemple 2, on veut afficher les désignations dont la
quantité totale est plus de 40, la requête suivante ne
fonctionnera pas.
Group By Desig; 11
Alors il faut utiliser la clause HAVING. Cette clause se
place juste après le GROUP BY.
12
Gestion de base de données sous Access
Partie IV :
4. Afficher pour chaque client, le code, le nom et le prénom dans une seul
lettres.
uniquement pour les commandes dont la durée (nombre d’année qui sont
1
Université Hassan II - Casablanca
Faculté des sciences juridiques, économiques et sociales
Mohammedia
Séance 8
Amal EL MZABI
Les Requêtes ACTION
Une requête action est, au départ, une requête sélection que l’on
transforme par la suite.
Pour créer une requête action :
➢ On affiche d’abord une requête sélection
➢ Ensuite on transforme cette requête sélection en requête
action en activant le bouton correspondant au type de requête
souhaité du groupe «Type de requête » que l’on trouve dans
l’onglet Créer des « Outils de requête ».
Une fois transformée en requête action, le nom de la requête
apparaît dans le Volet de navigation avec un point d'exclamation
noir et une icône indiquant son type.
3
Affichage et exécution
Une fois la requête sélection convertie en requête action, et
avant de l’exécuter, vérifiez les résultats obtenus en basculant
l’affichage du mode Création en mode Feuille de données par le
bouton « Affichage ».
Pour exécuter la requête action : retournez si nécessaire en
mode Création et cliquez sur le bouton « Exécuter ».
Pour ce faire : 5
1. Créer une requête sélection et ajouter les critères pour
afficher toutes les informations des clients de Casablanca.
6
3. Taper le nom de la table à créer, ClientsCasa. Il est
possible de choisir dans la liste une table déjà existante et
l’écraser par la nouvelle.
Mode SQL
Pour créer une table à partir d’une autre table ou des résultats
d’une requête on utilise la syntaxe suivante :
10
− Une ligne Ajouter à s’ajoute à la requête sélection :
11
Mode SQL
Pour créer une requête Ajout on utilise la syntaxe suivante :
14
Requête Mise à jour
Mode SQL
17
Pour notre premier exemple, le code SQL est :
18
Vérifiez les résultats en basculant l’affichage en mode Feuille
de données avant d’exécuter la requête.
Mode SQL
Ou bien
UPDATE (Clients INNER JOIN Commandes ON
Clients.CodeClient = Commandes.CodeClient) INNER JOIN
DétailsCommande ON Commandes.NumCmd =
DétailsCommande.NumCmd SET Quantité = [Quantité]*2
WHERE Ville = "Rabat" AND Day([DateCmd]) <= 15 AND
Month([DateCmd]) = 3 AND Year([DateCmd]) = 2019; 19
Requête Suppression
DELETE Commandes.*
FROM Commandes
WHERE CodeClient = "B300" And Month([DateCmd]) In (6,7)
And Year([DateCmd]) = 2018;
22
Requête analyse croisée
Une requête d'analyse croisée est l'équivalent du tableau croisé
dynamique dans Excel. Elle permet de répondre à des questions
du type « qui a commandé combien de quoi ? », et retourne le
résultat sous forme d'un tableau comportant des champs en ligne
et en colonne, avec, dans chaque case la réponse à la question.
Entête des
colonnes
26
Mode SQL
TRANSFORM Sum(Quantité)
SELECT Ville
FROM Clients, Commandes, DétailsCommande, Produits
Where Clients.CodeClient = Commandes.CodeClient And
Commandes.NumCmd = DétailsCommande.NumCmd And
Produits.Ref = DétailsCommande.Ref
GROUP By Ville
PIVOT Desig ;
28
Mode SQL
29
Exercice
30