Vous êtes sur la page 1sur 145

Université Hassan II –Casablanca

Ecole Nationale Supérieure d’Électricité


et de mécanique

Système de Gestion de Bases de données


Relationnelles

Pr. M.CHERGUI
Département Mathématique Informatique
ENSEM- Casablanca

Dernière mise à jour : Octobre 2019

1
Plan
Introduction
Modélisation Entité/Association
Modèle relationnel
SQL

2
INTRODUCTION

3
Introduction
L’entreprise est un système complexe contenant un
très nombreux flux d’informations.
Quelque soit le type de l’entreprise elle doit avoir un
système destiné à collecter, mémoriser, traiter et
distribuer efficacement l’information.
Ce système d’information assurera le lien entre deux
autres systèmes de l’entreprise :
le système opérant
Système de pilotage
le système de pilotage
Système d’information

Système opérant

4
Introduction
Organisation d’un Système d’information

5
Introduction
Exemples de SI:
Application
Applications Web : Banques, ONCF, Sites marchands,
Réseaux Sociaux, etc.
CRM : Customer Relationship Management :
ERP : Entreprise Ressource Planning : SAP, SAGE…etc
Architecture
Client - Serveur
3 tiers/ n tiers
BD : Oracle, MySQL, SQL Server, PostrgreSQL, …

6
Introduction
Un Système d’Information permet de:
1. Distinguer entre données et traitements
2. Garantir l’intégrité des données
3. Fournir une performance acceptable de
l’activité de l’entreprise.

7
Distinguer entre données et traitements
Modèle des données indépendant des traitements
Traitements rationalisés appliqués aux données

Données Traitement

Système d’Information

Traitements appliqués aux données: CRUD et


regroupement
◦ Les traitements peuvent être regroupés par ensemble
de données, autrement dit par table

8
Distinguer entre données et traitements
Garantir l’intégrité des données :
Intégrité des données

Altération des données: physique Incohérence des données: logique

4 risques d’incohérence des données


Duplication des données avec des valeurs différentes.
Attributs calculées.
Perte d’une référence (d’un lien): intégrité référentielle.
Valeurs aberrantes.

9
Distinguer entre données et traitements

Performance acceptable de l’activité de l’entreprise

Performance des données

Dénormalisation et indexation:
SGBD et matériels: physique
logique

10
QU’EST CE QU’UNE
BASE DE DONNÉES?

11
Base de données
Ensemble structuré de données qui
modélisent le monde réel.
Enregistrement des faits, des opérations
au sein d'un organisme (administration,
banque, université, hôpital, ...)
Regroupement de données
(d’informations) en grand nombre. Ces
données décrivent des objets qu’on veut
manipuler
12
Exemples de BD
Une bibliothèque : les adhérents et le catalogues, le
retrait, le retour des livres par codes à barres, les
informations (livres disponibles, livres actuellement
empruntés par l’adhérents, etc.)

Le système de réservation de la SNCF : les trains , les


places dans les trains, la disponibilité et les horaires.

Le système de Scolarité : les étudiants les formations, les


enseignants, les notes, les documents, etc.

13
Allure de BD

14
Système de Gestion de Base de
Données (SGBD)
Le SGBD, Système de Gestion de Base de Données, en
anglais Database Managment System ( DBMS), est le
logiciel qui fournit les outils de gestion de la base de
données.
Il permet essentiellement de :
◦ Définir les données qu’on veut manipuler,
◦ Ajouter, modifier, supprimer des données
◦ Consulter des données
Exemple de SGBD:
MySQL, Oracle, PostgreSQL, Access mais pas Excel

15
Architecture SGBD
Modèle fondamental Client/Serveur

Application 1

BD dans le
SGBD DD

Application 2

UTILISATEUR CLIENTS SERVEUR

16
Architecture SGBD…A retenir
Une BD est stockée sur un ou plusieurs disques durs.
Pour une BD, il y a un SGBD et un seul.
Le SGBD et la BD sont en général sur la même machine.
Le SGBD peut gérer plusieurs BD.
Chaque application est un client.
Plusieurs clients peuvent communiquer avec le serveur.
Une application est un programme qui envoie des
commandes au SGBD pour manipuler les données de la BD
sur le disque dur.
Par exemple : un programme PHP enregistre une donnée dans
la BD ou récupère des informations dans la BD

17
Un SGBD… que manipule t-il?
il?
Bases de données : pour distinguer des applications
différentes.
Tables : pour mettre les données.
Index : pour optimiser les requêtes.
Contraintes d’intégrité : pour garantir la cohérence
des données.
Utilisateurs : pour se connecter à la BD.
Droits : pour limiter l’accès des utilisateurs à la BD.

Pour chacun de ces objets, le SGBD permet la


création, modification, suppression, la
consultation.

18
SGBD..qui l’utilise
l’utilise??
L’administrateur :
les accès et les droits des utilisateurs : problème de
sécurité.
le bon fonctionnement des bases de données :
problème d’efficacité.
Le développeur:
Programme une application qui sera cliente du SGBD.
Accès à la BD à travers l’application cliente dite : «
calculette SQL ».
L’utilisateur final:
utilise une application cliente du SGBD. Il n’a accès à
la BD qu’à travers une application cliente spécifique.

19
Les SGBD les plus populaires

20
MODÉLISATION DE BD

21
Méthodologie générale de conception
d'une base de données
Analyse de la situation existante et des besoins
(clarification): création de Dictionnaire de données

Création d'un modèle conceptuel qui permet de


représenter tous les aspects importants du problème.

Traduction du modèle conceptuel en modèle


logique (et normalisation de ce modèle logique).

Implémentation d'une base de données dans un


SGBD, à partir du modèle logique (et optimisation).

22
Conception et implémentation de BD

23
Un mot sur la méthode MERISE
Merise: Méthode de conception SI 1978-1979.

Consultation nationale lancée en 1977 par le ministère


de l'Industrie pour choisir des sociétés de conseil en
informatique afin de définir une méthode de conception
de systèmes d'information.

Conçue par CTI (Centre Technique d'Informatique), et


le CETE (Centre d'Etudes Techniques de l'Equipement.

24
Cycle d’abstraction MERISE
SI manuel : Monde réel

Expression des Besoins

Modèle Conceptuel

Modèle Logique

Modèle Physique

SI informatisé

25
Cycle d’abstraction MERISE
L'expression des besoins MCC (Modèle
conceptuel de la communication)+ Dictionnaires
de données + graphe de dépendances fonctionnel.
MCD (Modèle conceptuel des données) décrit les
règles et les contraintes à prendre en compte, en E/A.
MLD (Modèle logique des données) qui
représente un choix logiciel pour le système
d'information.
Le modèle physique reflète un choix de SGBD et
implémentation de la BD ou logiciel et matériel pour SI.

26
LE MODELE CONCEPTUEL DE LA
COMMUNICATION

Dans cette partie on va voir les éléments


suivants:
Définition de l‘Organisation
Digramme de contexte
Diagramme Conceptuel de flux

27
Définition de l‘Organisation
Etape1:
Délimiter le système ( l’isoler) et les éléments
avec les quels il échange des flux d’information (
acteurs externes)

28
Définition de l‘Organisation:
Etape 2:
découper l'organisation en acteurs internes
(ou domaines).
Si les domaines d'une organisation sont
importants, on les décompose eux-
mêmes en sous-domaines.

29
Définition de l‘Organisation:
Etape 3
Analyser les flux d’information processus

Définition de l’organisation

Acteur1 Acteur3
Acteur2

Diagramme de Contexte

30
Diagramme de contexte:
Représenter les flux d'informations entre l'organisation et les acteurs
externes selon une représentation standard dans laquelle chaque
objet porte un nom
l'organisation est représentée par un rectangle
les acteurs externes sont représentés par des ellipses en pointillés.
les flux d'information sont représentés par des flèches dont
l'orientation désigne le sens du flux d'information

31
Exercice
une industrie de fabrication automobile marocaine fait le
montage des pièces automobile pour une marque X, elle
nécessite:
les ensembliers ou constructeurs, qui construisent les
véhicules par assemblage des pièces détachées fournies par
les équipementiers ;
les équipementiers, qui fabriquent les pièces nécessaires aux
véhicules telles que les châssis, les moteurs, les carrosseries,
les sièges, les équipements électriques, les pneumatiques ;
les designers, qui dessinent les nouveaux modèles ;
les organismes de législation et de contrôle, qui définissent
les pratiques autorisées et les pratiques interdites, par
exemple en termes sécurité routière et de gestion des
véhicules usagés.
Tracer le diagramme de contexte pour un éventuel SI qui
gère l’activité de cette industrie

32
Dictionnaire de données
document qui regroupe toutes les données que vous aurez à
conserver dans votre base (et qui figureront donc dans le
MCD). Pour chaque donnée, il indique :
Le code mnémonique : il s'agit d'un libellé désignant une
donnée (par exemple «titre_l» pour le titre d'un livre)
La désignation : il s'agit d'une mention décrivant ce à quoi
la donnée correspond (par exemple «titre du livre»)
Le type et taille de donnée :
◦ A ou Alphabétique : lorsque la donnée est uniquement
composée de caractères alphabétiques (de 'A' à 'Z' et de 'a' à 'z')
◦ N ou Numérique : lorsque la donnée est composée
uniquement de nombres (entiers ou réels)
◦ AN ou Alphanumérique : lorsque la donnée peut être
composée à la fois de caractères alphabétiques et numériques
◦ Date : lorsque la donnée est une date (au format AAAA-MM-JJ)
◦ Booléen :Vrai ou Faux

33
Exercice:: Dictionnaire de données
Exercice
: Un laboratoire de photo effectue le développement et le
tirage de films de clients. Les clients sont des points de
ventes qui confient leur films au laboratoire.les films à
développer sont placés dans une enveloppe individuelle
et numérotée sur laquelle on retrouve le nom, l’adresse,
le code postal et la ville du client ou du point de vente.
Chaque Client est identifié par un numéro unique. De
même, on retrouve sur l’enveloppe le type de film (
24*36, APS, CD) le type de travail à effectuer (
développement et tirage, tirage seul, développement
seul) le format ( 10*15,13*18,20*30) et la qualité (mat,
brillant) du tirage, le nombre d’exemplaire.

34
Correction: Dictionnaire de données

35
Dépendances Fonctionnelles
B dépend fonctionnellement de A si étant
donné une valeur de A, il existe une seule
valeur de B qui lui correspond et on note:
A B.
Exemple:
CIN nomCitoyen, prénomCitoyen
CodeBarre intituleLivre
CNE nomEtudiant, prenomEtudiant

36
Graphe de dépendances fonctionnelles
Un graphe qui fait apparaître les dépendances
fonctionnelles entre les données.
Il permet de regrouper les propriétés
Une DF n’est pas réversible
Exemple de GDF

37
FAISONS UN CAS RÉEL
ENSEMBLE?

38
39
Etape 1: ETABLIR LE DICTIONNAIRE DES DONNEES.

Il s'agit de recenser les différentes données, sachant que


l'on distingue 3 types de données :
Données élémentaires
Données calculées
Données paramètres

40
Dictionnaire de données

41
Etape 2: Elaborer la MATRICE DES DEPENDANCES
FONCTIONNELLES SIMPLES

Principe: Il s'agit d'un tableau à 2 entrées : En ligne et


en colonnes, on inscrit les données issues du
dictionnaire de données (données élémentaires
uniquement).
Méthode : Pour remplir ce tableau, On pose une
question pour chaque colonne de donnée :
Pour une valeur de cette donnée, existe-t-il une seule
valeur de la donnée située en ligne ?

Dans l'affirmative , on inscrit le chiffre 1 à l'intersection

42
Résultat

43
Etape 3: Elaborer la MATRICE DES DEPENDANCES
FONCTIONNELLES Réduite

Principe: Garder les sources de dépendances


fonctionnelles en Lignes et le reste des propriétés en
colonnes.
Méthode : Eliminer toute les colonnes entièrement
vide

44
45
Etape 4: Elimination des dépendances fonctionnelles
transitives
Principe : Une dépendance fonctionnelle (notée A B ) est dite transitive si
il existe une donnée C telle que A C et C B
Repérer les dépendances transitives :
Il y a un risque important de présence de dépendances fonctionnelles
transitives s'il existe plusieurs 1 sur la même ligne dans la matrice des
dépendances fonctionnelles.
Sur la ligne nom client, il y a deux 1. Cela signifie que :
Pour un numéro client, il y a un seul nom client
Pour un n° de facture, il y a un seul nom client
Eliminer les dépendances transitives
Cherchons laquelle de ces deux dépendances fonctionnelles peut être
supprimée.
Existe-t-il une donnée C telle que N° client à C et C à Nom client ? Non
Existe-t-il une donnée C telle que N° facture à C et C à Nom client ? Oui,
c'est N° client
En effet, N° facture N° client et N° client Nom client
Dans la colonne N° facture , on supprime le 1 sur la ligne Nom client On
répète l'opération pour les autres lignes.

46
47
Etape 5: RECHERCHE DES DEPENDANCES
FONCTIONNELLES COMPOSEES
Certaines données ne contiennent pas de 1 ni dans la ligne, ni dans la
colonne. Ces données ne sont donc pas reliées aux autres données.
Il n'existe pas de dépendances fonctionnelles simples entre ces données et
les autres données têtes de colonnes. Il s'agit donc de dépendances
fonctionnelles composées: ces données dépendent de 2 ou de plusieurs
données têtes de colonnes.

Dans l'exemple, la donnée Quantité n'est pas reliée aux données têtes de
colonnes; il s'agit donc d'une donnée qui va dépendre de plusieurs données
têtes de colonnes.
Une dépendance fonctionnelle composée est de la forme : A, B C
, elle se lit : Pour une valeur de A ET une valeur de B, on a une seule valeur
de C.
La donnée Quantité : Pour un N° de facture et une référence, il y a une
seule quantité. Elle se note : N° facture, référence Quantité.

ELABORATION DU MODELE CONCEPTUEL DE DONNEES

48
Etape 6: Passage GDF MCD

Règle 1: toute donnée du GDF devient propriété du MCD


Règle 2: toute donnée source de DF est identifiant d’entité.
Règle 3:Toute donnée cible de DF et non source d’une autre
DF devient propriété de l’entité dont la source est l’identifiant
Règle 4: une DF entre deux données sources de DF révèle
une association hiérarchique non porteuse de propriété
Règle 5: la présence d’une données concaténé ( association de
plusieurs données élémentaires) source de DF révèle une
association non hiérarchique porteuse de propriété(s).

49
MODÈLE CONCEPTUEL DE DONNÉES

50
Présentation du Modèle E/A
Le modèle E/A est un Formalisme graphique pour la
modélisation de données.

Origine : Travaux de Chen (USA), Tardieu(France), en


74/75

Succès dus à :
◦ langage graphique
◦ concepts simples
◦ Choses (objets)->entités
◦ liens entre les choses (objets)-> association
◦ regroupement des choses de même nature : classes
d’entités, classes d’association.

51
Entité
Entité: Chose ou objet identifiable sans
ambiguïté.
◦ Exemple : le cinéma ABC, le cinéma le
GAUMONT, l’acteur Woody Allen, le film « le
bonheur est dans le pré », le film « coups de
feu sur Broadway »,
Classe d’entités : regroupement d’entités de
même nature.
◦ Exemple : Cinéma, Acteurs, Films, etc.
Formalisme de classe d ’entité : représentation
graphique

52
Association
Une association : lien entre 2 ou plusieurs
entités
Exemple :
woody allen a joué dans “ Coups de feu sur brodway ”
Tannenbaum a écrit l’ouvrage Réseaux Informatique
Classe d’association : lien entre 2 ou plusieurs
classes d’entités.
Exemple : Jouer (entre FILMS et ACTEURS),
Affiche(entre CINEMA et FILMS),. REALISE
(entre REALISATEURS et FILMS)
Chaque Entité joue un rôle dans une
association
53
Modèle E/A

On parle d’entité pour désigner une classe d’entités et


d’association pour désigner une classe d’association

54
Propriété
Donnée élémentaire que l ’on perçoit sur une
entité ou une association
Exemple :
Pour les entités
◦ Nom, prénom pour l’entité ACTEURS
◦ Titre et Metteur en scène pour l’entité FILMS
◦ Nom et Adresse Pour l’entité CINEMA
Pour les associations : propriétés que l’on
met dans une association doivent
obligatoirement relier les entités:
durée/quantité…etc.

55
Identifiant
Chaque occurrence doit pouvoir être
repérée de manière unique et sans
ambiguïté, pour être distinguée de toutes
les autres par une propriété : Identifié.
non variable dans le temps.
Identifié d’association: implicite, obtenu en
juxtaposant les identifiants des entités qui
participent à la liaison.

56
Cardinalité
lien qui existe entre une entité et la relation à
laquelle elle est reliée.
Composé d'un couple comportant une borne
maximale et une borne minimale, intervalle dans
lequel la cardinalité d'une entité peut prendre sa
valeur:
la borne minimale (généralement 0 ou 1) décrit le nombre
minimum de fois qu'une entité peut participer à une relation
la borne maximale (généralement 1 ou n) décrit le nombre
maximum de fois qu'une entité peut participer à une relation

57
Cardinalité

58
Exemple modèle entité Association

59
Modèle conceptuel de données
C’est un schéma conceptuel représente :
Les faits et les évènements qui décrivent le monde à
modéliser. Exemple : une compagnie aérienne, ses
avions et ses pilotes.
Certaines contraintes. Exemple : un pilote ne doit volé
que s’il détient une licence en cours de validité et une
qualification correspondant au type d’avion.

Les différentes techniques de MCD : - Entité-Association


(en anglais E-R pour Entity Relationship) - Modèle
binaire - Modèle Z

60
A VOS MARQUES
MARQUES……
PRÊTS…
PRÊTS … MODÉLISER
MODÉLISER….
….

61
TD 1

TD 2 TD 2Bis

62
Associations réflexives
L’association réflexive est une association
binaire qui relie une entité à elle-même.
Une occurrence de l’association établit donc un
lien entre une occurrence de l’entité et une
autre occurrence de cette même entité.
Dans le cas d’une association non symétrique,
on doit faire porter le rôle sur chacun des
segments.

63
Associations réflexives

64
Exercice: Tracer GDF et MCD
Dans le cadre de la gestion des adhésions à un
club sportif , une personne peut s’inscrire en tant
que membre unique comme elle peut inscrire ses
enfants. Un adhérent a un nom, prénom, date de
naissance, CIN. Une personne peut s’inscrire pour
pratiquer un ou plusieurs sports identifiés par (
N°, intitulé du sport, entraineur) , l’adhésion
caractérisée par Id Adésion, peut être
semestrielle, mensuelle ou annuelle (type
d’adhésion), elle est caractérisée en plus du type
par ses frais, et année d’adhésion. Une adhésion
concerne un ou plusieurs sport.

65
Heritage
Quand le concepteur s’aperçoit que plusieurs
entités, proches mais distinctes, partagent un
ensemble de caractéristiques, il doit mettre en
œuvre un processus de création d’entités
génériques (ou entités sur-types) et d’entités
spécialisées (ou entités sous-types) appelé
«héritage ». Ce concept qui permet de
représenter le lien « est-un » ou « IS-A » entre
deux entités A et B (une occurrence de A est
une occurrence de B) est représenté
graphiquement par une flèche double allant de
A vers B.
66
Heritage::
Heritage

67
Exercice:

68
CORRECTION:

69
MODÈLE LOGIQUE DE DONNÉES

MODÈLE RELATIONNEL

70
Modèle Logique de données:

La description conceptuelle a permis de


représenter le plus fidèlement possible les
réalités de l’univers à informatiser.
Mais cette représentation ne peut pas être
directement manipulée et acceptée par un
système informatique.
Il est donc nécessaire de passer du niveau
conceptuel à second un niveau plus proche des
capacités des systèmes informatiques. Ce niveau,
appelé Niveau Logique,

71
Modèle Relationnel
Manière de modéliser les relations existantes entre
plusieurs informations, et de les ordonner entre elles.
Cette modélisation repose sur des principes
mathématiques mis en avant par E.F. Codd et
implémentés dans une base de données relationnelle.

72
Modèle Relationnel
Relationnel:: Terminologie
Domaine : ensemble de valeurs caractérisé par un
nom
Relation : sous-ensemble du produit cartésien d'une
liste de domaines caractérisé par un nom unique
◦ représentée sous forme de table à deux dimensions
◦ colonne = un domaine du produit cartésien
◦ un même domaine peut apparaître plusieurs fois
◦ ensemble de tuples sans doublon
Attribut : une colonne dans une relation
◦ caractérisé par un nom et dont les valeurs appartiennent à
un domaine
◦ les valeurs sont atomiques
tuple : une ligne d'une relation correspondant à un
enregistrement.

73
Table
Une table de base de données est un tableau
lignes-colonnes.
Les colonnes sont des attributs (=caractéristique =
propriété = champ)
Les lignes sont les tuples de la table (tuple =
élément = individu = objet)
La table est aussi appelée : relation

74
Clé primaire
Un champ ou un ensemble de champs –
qui permet d’identifier chaque ligne dans
la table de façon unique – Deux
enregistrements ne doivent pas avoir la
même valeur pour la clé.

75
Clé étrangère
Un champs (ou ensemble de champs) est
clé étrangère dans une table s’il fait
référence à une clé primaire dans une
autre table.

76
Modèle Logique de données:
Règles de passage MCD MLD
Chaque ligne correspond aux données d'un
objet enregistré.
Chaque colonne correspond à une propriété de
cet objet.
Son identifiant devient la clé primaire de la
relation.
Les autres propriétés deviennent les attributs
de la relation.

77
Modèle Logique de données:
Le passage MCD-MLD se fait selon les
cardinalités des classes d'entité participant à
la relation:
◦ R1:si une des classes d'entités possède une
cardinalité faible: la table aura en plus de ses
attributs le/ les identifiant(s) de la seconde classe.
◦ R2: si les deux classes d'entités possèdent une
cardinalité forte: on crée une table qui aura
comme attributs, les attributs des deux classes de
relation précédés des noms des classes
respectives, puis le (ou les) attribut(s) de relation
78
Règles de passage:

79
Règles de passage:

80
Régles de passage:

Héritage:

81
Types de contraintes
Nom de contraintes Explication

Intégrité de relation garantit des valeurs uniques pour les


identifiants

Intégrité de valeur Oblige des champs à être dans une


plage de données ou de valeurs
Intégrité de valorisation Impose une valeur pour des champs

Intégrité référentielle Cette contrainte impose que toute


valeur du champ clé étrangère
d’une table appartienne à l’ensemble
des valeurs du champ clé primaire
de la table CLIENT.

82
LE LANGAGE SQL

83
SQL
Structured Query Language

Le langage structuré de requêtes permet :


De manipuler les bases de données quel que soit le
logiciel utilisé
De réaliser des requêtes

LDD
Les instructions SQL:
LMD

8415
SQL: LANGAGE DE
SQL:
DESCRIPTION DE
DONNÉES

85
Langage de définition de données
Le langage de définition de données (LDD) est un langage
orienté au niveau de la structure de la base de données
permettant de/d’:
◦ créer, modifier, supprimer des objets.
◦ définir le domaine des données (nombre, chaîne de caractères,
date, booléen, . . .) et d’ajouter des contraintes de valeur sur les
données.
◦ autoriser ou interdire l’accès aux données.

Les instructions du LDD sont : CREATE, ALTER, DROP,


TRUNCATE.
Langage de manipulation de données
Le langage de manipulation de données (LMD) est
l’ensemble des commandes concernant la manipulation
des données dans une base de données.

Le LMD permet l’ajout, la suppression et la modification


de lignes, la visualisation du contenu des tables et leur
verrouillage.

Les instructions du LMD sont : INSERT, UPDATE,


DELETE, SELECT
Base de données
Création:
CREATE DATABASE ma_base
Ou si elle existe:
CREATE DATABASE IF NOT EXISTS ma_base
Suppression
DROP DATABASE ma_base
Ou si elle existe
DROP DATABASE IF EXISTS ma_base

88
Création de table

89
Création de table
Syntaxe:

Contrainte:
NOT NULL : empêche d’enregistrer une valeur nulle pour une colonne.
PRIMARY KEY : indiquer si cette colonne est considérée comme clé
primaire.
FOREIGN KEY : indique si cette colonne est considéré comme clé
étrangère

90
SQL AUTO_INCREMENT
Syntaxe

Cas particulier:
ALTER TABLE `nom_de__la_table` AUTO_INCREMENT=50;

Exemple:

91
Modification de table existante
Objectif: modifier une table existante.: ajouter une
colonne, supprimer une colonne ou modifier une
colonne existante, par exemple pour changer le type.
Syntaxe:

92
Modification de table existante: Instructions

Ajouter une colonne:


Syntaxe

Exemple

93
Modification de table existante: Instructions

Supprimer une colonne

Modifier une colonne

Renommer une colonne

94
Modification de table existante: Instructions

Ajout de clé étrangère:

95
Supprimer /vider une table
Syntaxe:
◦ Supprimer table

◦ Vider table

Exemple

96
SQL: LANGAGE DE
SQL:
MANIPULATION DE
DONNÉES

97
Insérer une /plusieurs ligne (s)
Syntaxe

Exemple:

98
Mettre à jour une ligne
Syntaxe

Exemple:

Modifier pour tous: UPDATE client SET pays = 'FRANCE'

99
Supprimer une ligne
Syntaxe

Exemple

100
Construction d'une requête SQL
Le raisonnement est le suivant :

Quoi ? quelles informations obtenir ?


Où ? dans quelles tables ?
Comment ? (jointures, restrictions…)

101
I. La projection
Thème - Requête n° 1 :
Afficher la liste des adhérents (Nom,
Prénom, Code postal, Ville)

Quoi ? SELECT Nom_adh,, Prénom_adh, Cp_adh,Ville_adh


Nom_adh

Où ? FROM ADHERENT

102
La projection

SELECT Critère de projection. C’est un ordre qui décrit les


champs que l’on désire extraire et afficher.

FROM C’est une clause qui précise les tables


nécessaires à la requête.
La présence de FROM est obligatoire et suit
SELECT.

103
La restriction

Thème - Requête n° 2 :
Afficher la liste des adhérents (numéro,
nom, prénom, index) dont l’index est
inférieur à 20

Quoi ? SELECT Num_adh,, Nom_adh,


Num_adh Nom_adh, Prénom_adh, Index_adh

Où ? FROM ADHERENT

Comment ? WHER Index_adh < 20


E
104
La restriction
WHERE
C’est une clause qui décrit les critères de
restriction.
S’il n’y a pas de restriction, la ligne WHERE
n’existe pas.

105
Le tri
Thème - Requête n° 3 :
Afficher la liste des adhérents (nom,
prénom, code postal, ville) dans
l’ordre alphabétique du nom.

Quoi ? SELECT Nom_adh,, Prénom_adh, Cp_adh,Ville_adh


Nom_adh

Où ? FROM ADHERENT

ORDER BY Nom_adh
Tri sur le nom

106
Le tri
ORDER BY
C’est une clause qui décrit les critères de TRI.
L’ordre croissant est traduit par ASC.
L’ordre décroissant est traduit par DESC.
En l’absence de paramètre, c’est ASC qui est
retenu par défaut.

107
Différents types de jointures SQL
(INNER) JOIN: Retourne les enregistrements ayant
des valeurs correspondantes dans les deux tables

LEFT (OUTER) JOIN: Renvoie tous les enregistrements de la


table de gauche et les enregistrements correspondants de la table
de droite e

108
Différents types de jointures SQL
RIGHT (OUTER) JOIN: Renvoie tous les
enregistrements de la table de droite et les
enregistrements correspondants de la table de gauche.

FULL (OUTER) JOIN: Renvoie tous les enregistrements


lorsqu'il y a une correspondance dans la table gauche ou droite

109
Fonctions d’agrégation statistiques
AVG() pour calculer la moyenne sur un
ensemble d’enregistrement
COUNT() pour compter le nombre
d’enregistrement sur une table ou une
colonne distincte
MAX() pour récupérer la valeur maximum
d’une colonne sur un ensemble de ligne.
Cela s’applique à la fois pour des données
numériques ou alphanumérique
MIN() pour récupérer la valeur minimum de
la même manière que MAX()
SUM() pour calculer la somme sur un
ensemble d’enregistrement

110
Fonctions d’agrégation statistiques

Syntaxe :
SELECT fonction(colonne) FROM table
Exemple:
SELECT COUNT(*) FROM table;
SELECT client, SUM(tarif) FROM achat GROUP BY client;
SELECT id, nom, MAX(prix) FROM produit

111
MODÈLE PHYSIQUE DE DONNÉES:
EXEMPLE : SGBD MS ACCESS

112
Access VS Excel
Access est un SGBDR qui permet de
gérer des volumes importants répartis
par nature dans des entités.
Les relations entre ses entités permettent
de rechercher d’imprimer des éléments
répartis dans différentes entités.

Entité 1 Relation Entité 2

113
Access VS Excel
Dans les filtres Excel on manipule une seule table.
On fait appel à Access lorsqu’on manipule plusieurs tables.
L’intérêt est de ne jamais saisir des informations
redondantes.
Si les coordonnées client sont déjà là on ne saisi que le code
au niveau de ses commandes

Client Commande

114
Objets Access
Il existe 6 types d’objet Access:

115
Objets Access

116
Table
Ensemble de données relatives à un sujet
spécifique.
La table organise les données en colonne (
champs) et en ligne ( enregistrements).

Champ

Enregistrement
Nom Prénom Age
Hourmi Kamal 24
Nouri Salwa 13

117
Requêtes
Questions qu’on pose à la Base de
Données et dont on obtient la réponse
dans une feuille dynamique.
On peut afficher les données de la réponse,
les mettre à jour…
Access permet de faire des requêtes via
SQL ou via interface graphique.

118
Formulaire
Il sert à afficher et à modifier les
enregistrements d’une où plusieurs tables
un par un.
Il permet de faire des contrôles sur des
champs provenant des requêtes
Il contient des champs textes, listes
déroulantes, étiquettes, cases à
cocher…etc.

119
Etat
Sert à afficher et à imprimer les données
de la bases.
Permet de faire des regroupement et des
calculs provenant des champs d’un table
ou d’une requête

120
Macro
Ensemble de taches automatisés.
On peut associer une macro à un
formulaire ou un état au niveau des
contrôle sur des champs.
Access fournit un assistant de création de
macro simple VBA permet de créer
des macro complexe.

121
Prise en main ACCESS
Types de données
Texte : Réservé pour les libellés, maxi 255 caractères
Mémo : Texte long de 32000 car maxi, ils ne peuvent pas être
indexés.
Numérique : Type numérique
Date/heure : Type numérique date ou heure
Monétaire : Type numérique, précision jusqu’à 15 chiffres à gauche
de la virgule et 4 à droite.
NuméroAuto : Nombre automatiquement incrémenté par Access
à chaque nouvel enregistrement. On ne peut pas les mettre à jour.
Oui/Non : Type de données pouvant être Actif ou Inactif (case à
cocher).Ils ne peuvent pas être indexés.
Liaison OLE : Pour lier l’enregistrement à une image (visible en
formulaire et état). Ils ne peuvent pas être indexés.
Pièce jointe : Permet de pointer un ou plusieurs fichiers
Lien hypertexte: Pour permettre une saisie d'adresse qui sera
liée directement.

122
Prise en main ACCESS
Clé primaire
Création:
Si vous ne définissez pas vous même une clé, Access propose lors du 1er
enregistrement de la table de la rajouter, il rajoute un champ contenant un
incrément automatique.
Sélectionnez la ligne ou les lignes par CTRL et cliquez sur le bouton Ou
Ruban Outils de tables – création – bouton Clé Primaire
Suppression:
Activez le menu Ruban Outils de tables – création – bouton Index
Sélectionnez la ligne de la clé primaire
Activez la touche Suppr
Particularité :
Une clé primaire est un champs indexé sans doublon
Champ indexé : champ inscrit dans la table des index dans Access. Cela
permet d'accélérer la recherche sur ce champ.
Sans doublon : Deux enregistrements dans cette table ne pourront pas
avoir la même valeur dans le champ déclaré en clé primaire.

123
Prise en main ACCESS
Relation entre tables:
Création:
1/ Fermer toutes les tables
2/ Menu OUTILS DE BASES DE DONNEES – RELATIONS
3/Choisir par double-clique les tables ou requêtes voulues et fermer la
fenêtre
4/ Cliquez sur le champ de la table père et faire glisser la souris vers le champ
correspondant dans la table fils
5/ Activez l’option Appliquer l’intégrité référentielle dans la mesure ou vous
désirez interdire la saisie d’une valeur dans le champ de la clé étrangère de
la table fils qui n’a pas encore été saisi dans le champ de la clé primaire de
la table père.
6/ Activez éventuellement les options mettre à jour en cascade et /ou Effacer
en cascade.

124
Prise en main ACCESS
METTRE A JOUR EN CASCADE
Si actif : La modification de la valeur de la clé
primaire dans la table père implique la
modification de la clé étrangère dans la table fils.
Si inactif : Il n’est pas possible de modifier le
contenu d’une clé primaire dans la table père.
EFFACER EN CASCADE
Si actif : La suppression d’un enregistrement côté
table père implique la suppression de tous les
enregistrements côté table fils.
Si inactif : La suppression d’un enregistrement
côté table père est interdite.

125
Les Requêtes
Une requête permet de définir des
critères de sélection afin d'afficher les
données qui vous intéresse dans la base.
La requête est une question posée à
la base de données
Extraire les Ajout ou modification
informations dans une Table

Intermédiaire entre Création ou


Tables suppression de Tables

créer des calculs sur


les champs

126
Les Requêtes
Les types de requêtes:
Requête SELECTION
Requête ACTION (Mise à jour, Ajout,
Création de table, Suppression)
Requête ANALYSE CROISE pour des
analyses à double entrée

127
Requêtes

L’écran en mode création de la requête est le suivant :

128
Définition des critères
> Strictement supérieur >= Supérieur ou égal
< Strictement inférieur <= Inférieur ou égal
<> Différent de
* remplace une chaîne de caractère et peut être
utilisé avec les champs déclarés en type texte et
date.

129
Définition des critères

130
Requête paramétrée
Quand le critère varie à chaque ouverture de la
requête, on définit une variable en lieu et place. Le
critère sera saisi dans une boite de dialogue à
l’ouverture.
Dans la ligne critère du champ à renseigner, tapez :
[Entrez la valeur voulue pour ce champ]:une donnée
Comme [Entrez la valeur voulu]: *une donnée
Entre [Saisir la 1ère valeur] Et [Saisir la dernière valeur]:
une sélection

131
Champs calculés
Méthode manuelle: Nom de la colonne :
[Champ]opérateur[Autre champ] Ou
Nom de la colonne : [Champ]opérateur
Constante

132
Types de Requêtes
➢ Requête création de table
Une table sera automatiquement créer lors de son
exécution. Si une table du même nom existe déjà, elle
sera écrasée après confirmation dans une boite de
dialogue.
➢ Requête ajout
Les enregistrements sélectionnés seront ajoutés à une
table existante. (Attention à la gestion automatique
des clés dans la table de destination).
➢ Requête mise à jour
Les enregistrements sélectionnés seront mis à jour dans
la table concernée. La formule ou les nouvelles
données se tape dans la ligne Mise à jour.
➢ Requête suppression
Les enregistrements sélectionnés seront supprimés.

133
Etapes de création;
1/ On génère la requête sélection avec les
champs et les critères de sélection
2/ On exécute une fois la requête pour
vérifier la cohérence des critères
3/ On choisit dans le menu Requête le type de
requête voulu et on termine l'information de
la requête suivant la nature de celle-ci.
4/ On exécute la requête par le menu Outils
de requête – Exécuter ou le bouton
On peut afficher la feuille de données qui va
être concernée par cette requête sans
l'exécuter immédiatement.
134
Formulaires
Trois modes d'affichage :
Mode création : pour modifier la
structure
Mode formulaire : pour saisir dans un
écran personnalisé
Mode feuille de données : pour saisir ou
visualiser en mode tableau

135
Mode création

136
Menu création

137
138
LES SOUS-
SOUS-FORMULAIRES
Le sous-formulaire permet de saisir
simultanément des informations dans deux
tables liées par une relation de 1 à n.
La table située côté 1 dans la relation
sera associée au formulaire principal.
Celle située côté n sera associée au
sous-formulaire.
Ces 2 formulaires seront visibles sous deux
noms différents, il est judicieux de leur
donner le même nom avec un suffixe pour
les différencier.
139
LES Etats
Un état permet de paramétrer un mode
d'impression.
Le mode état permet de visualiser l’état
à l’écran, avec une possibilité de se
déplacer par la touche Tabulation.
Le mode Aperçu permet d’effectuer un
aperçu avant impression.
le mode Page permet de paramétrer
cet état après l’avoir créer.

140
LES Etats
En-tête d'état : S'imprime une seule fois sur la
1ère page de l'état
En-tête de page : S'imprime en haut de chaque
page
En-tête de groupe : S'imprime en haut de
chaque groupe demandé
Détail : S'imprime une fois par enregistrement
Pied de groupe : S'imprime une fois en bas du
groupe effectué
Pied de page : S'imprime une fois pas page en
pied de page
Pied d'état : S'imprime une fois sur la dernière
page de l'état
141
Etiquettes

142
A l’application

143
Tutoriel de prise en main:
https://www.fbotutos.com/creer
https://www.fbotutos.com/creer--
base--de
base de--donnees
donnees--access.html

plus de détail sur les requêtes sql:


sql:
https://sql.sh
https://www.w3
https://www.w 3schools.com/sql/

144
Mini Projet
Gestion des achats
Gestion des jeux olympiques de l’école
Gestion d’une bibliothèque
Gestion des voyages dans une agence
Gestion d’un hôtel
Libre choix…à condition qu’il soit
consistant

145