Cours Info Appliquée S6 - 2020
Cours Info Appliquée S6 - 2020
Semestre 6
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
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
15
Identifiant, clé primaire et clé étrangère
Identifiants
17
Clé primaire
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
Relations entre les tables d’une BD
Livres
Nom Auteur
Prénom Auteur
Date de naissance de l’auteur
Nationalité auteur
Titre
Nbre pages
Année d’édition
Éditeur
36
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
37
Trouver un moyen pour savoir exactement à Auteurs
N° Auteur
quel auteur correspond chaque livre.
Nom Auteur
ajouter dans la table Auteurs un champ qui Prénom Auteur
va identifier de façon unique chaque Date de naissance
enregistrement Clé Primaire Nationalité
38
Définitions
39
Relation un-à-un
40
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
Couleur
Prénom
Puissance
Ville
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
43
Exemple 2
44
Relation Plusieurs à Plusieurs (n - m)
Exemple
Table Auteur
Table Livre
49
Outils de base de données Relations
50
Afficher la table Ajouter Auteur + Ajouter Livre Fermer
51
Glisser N°auteur (table auteur) vers N°auteur (table Livre)
52
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.
54
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. 56
Application 1
Un service financier réalise un audit de données bancaires. Le
schéma relationnel de ces données est le suivant :
– Client (IdClient, Nom, Prénom, Ville, Tél)
– Compte (IdCompte, IdClient, DateCréation, Solde)
– Action (IdAction, IdCompte, DateAction, Montant)
Table : Client
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 1/3/2012 350200
124 3 2/1/2013 16K890
125 2 10/4/2013 680000
124 4 2/1/2014 25000 58
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.
59
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 :
60
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
61
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 extraites 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.
62
Requête sélection
63
La fenêtre « Afficher la table » s’ouvre.
Ajouter, à partir de la fenêtre « Afficher la table », la ou les
tables concernées par la requête. Ajouter par exemple la table
Clients et refermer la fenêtre.
64
On obtient ensuite l’interface suivante:
Remarque :
Une requête qui exploite une seule table est dite requête
monotable ou simple
65
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
73
Exemple 2
Afficher le code, le nom et le prénom des clients 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.
75
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.
76
5. On termine le code par un point virgule « ; »
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 ;
79
Exemples
On reprend les exemples précédents en mode SQL
80
Ou bien :
82
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
83
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. 84
Remarque :
86
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
87
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. 88
Remarque :
Alias