Vous êtes sur la page 1sur 82

Enseignants

Mme I. GHARBI & Mr. N. MAJDOUB


2
▪ Base de données (BD)
C’est un outil permettant de stocker et de retrouver
l'intégralité de données brutes ou d'informations en
rapport avec un thème ou une activité; celles-ci peuvent
être reliées entre elles et de natures différentes .

▪ Système de Gestion de Bases de Données (SGBD) :


C’est un logiciel qui permet de décrire, manipuler, traiter
les ensembles de données formant la base. Il doit
également assurer la sécurité et la confidentialité des
données dans un environnement où de nombreux
utilisateurs ayant des besoins variés peuvent interagir
simultanément sur ces données.
▪ Exemples: Oracle, Sybase, MySql, DB2, Access …
3
▪ Stockage des informations : Une base de données stocke et gère un

ensemble d’informations relatives à un sujet particulier. Vous pouvez ajouter,


mettre à jour, revoir et organiser avec efficacité ces informations.

▪ Recherche des informations : Il est facile de retrouver instantanément des

données recherchées dans une base de données.

▪ Analyse et impression des informations : Vous pouvez effectuer des

analyses et des calculs sur les données contenues dans la base de données,
afin de prendre plus facilement des décisions rapides, précises et fiables.
Les informations peuvent être imprimées sous forme d’états.

4
5
Enregistrement Champ
▪ La table : c’est un ensemble de données organisées en lignes et en colonnes
▪ L’enregistrement (ou la ligne) : C’est l’ensemble des données relatives à la
même entité (le 2ème enregistrement de la table contient les informations
relatives au contact « Faouzi Tlili »)
▪ Le champ (colonne ou attribut) : C’est l’unité d’information dans une table.
Une table est constituée de différents champs
6
Gestion d’une collection d’albums

▪ Diviser pour mieux régner : Il faut toujours segmenter l’information en

éléments les plus petits possibles

Utiliser plusieurs tables


7
8
Clé primaire
Clé étrangère

#
9
Il existe trois types de relation :
1- La relation de type « un à plusieurs » (1 – n)

10
#
2- La relation de type « un à un » (1 – 1)

1 1

11
3- La relation de type « plusieurs à plusieurs » ( n – m )

12
#
#

13
14
►Exercice 1 -Enoncé

On désire créer une base de données concernant les activités


touristiques des stations de ski alpin. Chaque station de ski est
caractérisée par un numéro, un nom, une altitude et la région où elle
est située. Dans chaque station on peut trouver un ou plusieurs hôtels
caractérisés chacun par un numéro, un nom et une catégorie (le
nombre d’étoiles attribuées à l’hôtel). Un hôtel comprend plusieurs
chambres numérotées comme suit : étage + numéro. Chaque chambre
comporte un certain nombre de lits.

Modéliser les différentes tables de cette base de données et


établir les relations entre elles. 15
►Exercice 1 -Correction

1 n 1 n

n n
n 1

1
n

16
►Exercice 2 -Enoncé

On désire créer une base de données qui permet de gérer un


magasin. Sachant que:
▪ Un client passe une ou plusieurs commande
▪ Une commande contient un ou plusieurs produits
▪ Un fournisseur livre un ou plusieurs produits

Modéliser les différentes tables de cette base de données et


établir les relations entre elles.

17
►Exercice 2 -Correction

#
#

#
#

18
►Exercice 3 -Enoncé
On se propose de mettre en place une base de données qui permet
d'implanter le système d'information correspondant à un réseau de
location de voitures. On vous donne les informations suivantes :
- On dispose de plusieurs agences de location de voitures, chacune est
caractérisée par sa désignation, son adresse, et le nom de son
responsable.
- Une voiture est caractérisée par son numéro d’immatriculation, sa
marque, son modèle, sa couleur, sa puissance, son type d’énergie et
elle est gérée au niveau d’une agence donnée.
- un client est identifié par son identifiant, son nom et son adresse. Un
client se présente à une agence pour louer un véhicule pendant une
durée (en jours) à partir d'une date et avec un montant précis.
Modéliser les différentes tables de cette base de données et établir
les relations entre elles.

19
►Exercice 3 -Correction

1 n

1
1

n n

20
Il existe deux façons pour représenter une base de données
►Représentation graphique

21
►Représentation textuelle

Agence ( Designation_agence, Adresse, Nom responsable)


Voiture ( Immatriculation, Marque, Modèle, Couleur, Puissance, Type
d’énergie, #Designation_agence )
Client ( Identificateur, Nom, Adresse_Client )
Contrat ( #Designation_agence, #Identificateur, #Immatriculation, Date,
Durée, Montant )

22
23
24
25
26
La structure de la table permet de préciser les noms des champs qui la
composent ainsi que diverses propriétés comme, par exemple, le type de
données autorisées pour ce champ (texte, numérique, date, liste de choix ...),
sa taille et son format …

27
Dans le volet de navigation,
faites un clic droit sur la table
pour laquelle vous souhaitez
modifier la structure puis cliquez
sur l’option Mode création.

28
Chaque ligne contient les
informations relatives à
chaque champ (attribut):
- Le nom
- Le type de
- La description (optionnelle)

29
Type Description
Texte court Suite de valeurs alphanumériques (taille max=255)
Texte long Suite de valeurs alphanumériques (taille max=65535)
Numérique Représente des nombres avec ou sans décimal(taille max=4octets)
Date/heure Représente les valeurs de date et d’heure pour les années 100 à
9999
Monétaire Représente les valeurs monétaires
NuméroAuto Compteur qui s'incrémente automatiquement à chaque saisie d'un
nouvel enregistrement
Oui/non Champ ne pouvant contenir que deux valeurs (Vrai/faux, Oui/non,
Actif/inactif)
30
Type Description
Object OLE Objet crée par un logiciel autre qu'Access, par exemple une image, un
son ou un fichier Word
Lien hypertexte Adresse (URL) d’une page (renvoi à un fichier externe)
Pièce jointe Intègre un fichier directement dans la base de données
Calculé Permet de définir une expression en fonction d’autres champs
Assistant liste de Permet de déterminer une valeur à partir d'une liste de valeurs données
choix

31
Chaque champ possède des valeurs de propriétés qui sont des
caractéristiques permettant de définir le champ. Les propriétés disponibles
peuvent changer en fonction du type du champ sélectionné (Texte,
Numérique, NuméroAuto, Date/Heure...).
Propriété Description
Taille du champ Précise la taille des champs numériques et textuels
Format Détermine l’apparence du champ
Masque de Détermine la manière dont les données doivent être saisies
saisie
Décimales Nombre de chiffres après la virgule
32
Propriété Description
Légende Représente le nom du champ dans les feuilles de données
Valeur par défaut La valeur proposée automatiquement
Valide si Règle de validation des données saisies
Null interdit Si « oui », la valeur du champ doit être obligatoirement saisie
Chaîne vide Autorise ou non à entrer la valeur espace comme donnée
autorisée
Indexé Permet de définir un index afin d’accélérer les requêtes
Compression Autorise ou non la compression du champ
unicode
Mode IME Contrôle la conversion des caractères pour l’Asie orientale
33
Une liste de choix permet de sélectionner les valeurs au lieu de les saisir.
Après avoir choisi « Assistant liste de choix » comme type de données, Il
faudra :

1- Choisir la source des valeurs


composant la liste

34
2- Saisir les valeurs de la liste

35
Chaque table d’une base de données doit inclure un champ ou un ensemble
de champs permettant d’identifier chaque enregistrement de façon unique :
c’est la clé primaire.
Pour définir une clé primaire, il faut:
1-Accéder à la structure de la table en mode Création
2-Si la clé primaire utilise un seul champ, sélectionner la ligne
correspondante. Si la clé primaire utilise plusieurs champs, sélectionner les
lignes correspondantes en utilisant la touche Ctrl.
36
3- Faire un clic droit et choisir « Clé primaire »

37
Pour créer les relations entre les tables d’une base de données, il faut:
1- Fermer toutes les tables ouvertes puis cliquer sur le bouton
« Relations » dans l’onglet « Outils de base de données »

38
2- Pour ajouter une ou
plusieurs tables à la fenêtre
Relations, faire un clic droit et
choisir « Afficher la table»,
sélectionner les tables, cliquer
sur le bouton « Ajouter » puis
sur le bouton « Fermer »

39
3- Faire glisser la clé
primaire sur la clé
étrangère correspondante
puis sélectionner les
options adéquates et
cliquer sur « créer »…

40
Pour modifier ou
supprimer une relation, il
faut cliquer avec le bouton
droit sur la relation et
choisir l’option adéquate…

41
Pour saisir les enregistrements, il faut:
1- Ouvrir la table concernée en mode « Feuille de données »
2- Saisir les enregistrements ligne par ligne

42
Pour supprimer un enregistrement, il faut:
1- Sélectionner l’enregistrement concerné
2- Cliquer avec le bouton droit et choisir « Supprimer l’enregistrement »

43
Pour trier les enregistrements
d’une table, il faut:
1-Cliquer sur le bouton
visible à droite du nom du
champ sur lequel le tri doit
porter
2- Choisir l’option adéquate

44
Il existe plusieurs méthodes pour filtrer les données :
▪ Filtre commun : pour filtrer des valeurs spécifiques ou une plage de
valeurs

45
▪ Filtre par sélection : pour filtrer en comparant les valeurs du champ
choisi à une valeur sélectionnée

46
▪ Filtre par formulaire : pour filtrer plusieurs champs dans un formulaire
ou une feuille de données

47
▪ Filtre avancé : pour filtrer en utilisant des critères de filtre personnalisés

48
49
Pour faire une recherche, il suffit de sélectionner le champs sur lequel on va
faire la recherche et de cliquer sur l'icône puis spécifier les options
adéquates.

50
▪ Recherche avancée: Utilisation de caractères spéciaux

51
▪ Recherche avancée: Exemples

52
53
LES REQUÊTES
Une requête est une interrogation d'une base de données. Elle peut
comporter un certain nombre de critères pour préciser la demande. Il
existe plusieurs langages de requêtes, qui sont spécifiques à la structure
des bases de données. Le plus connu est le SQL (Structured Query
Language) qui permet de rechercher, d'ajouter, de modifier ou de
supprimer des données de la base.

Pour créer une requête sous MS Access, on peut utiliser le mode


création ou le mode SQL où on doit respecter la syntaxe du langage
SQL.

54
REQUÊTE DE SÉLECTION
Elle permet de sélectionner des enregistrements, de faire des calculs
et des regroupements. Elle ressemble au filtre, mais permet, en plus,
de travailler sur plusieurs tables simultanément.

Activité 1
En utilisant le mode création, créer sous MS ACCESS les requêtes
permettant de:
A1.1- Extraire les noms des fournisseurs qui sont situés à « Tunis ».
A1.2- Extraire les noms des fournisseurs qui ont fourni la pièce dont
le numéro est « P4 ».
55
REQUÊTE DE SÉLECTION
Exercice 1
En utilisant le mode création, créer sous MS ACCESS les requêtes
permettant de:
- R1: Extraire les noms des projets où le fournisseur « Martin » a
fourni la pièce « Vis 8 ».
- R2: Extraire les noms des fournisseurs qui ont fourni des pièces
dont le poids dépasse 15g et la couleur est bleu.
- R3: Extraire les noms des fournisseurs qui sont situés à « Tunis » ou
à « Sfax ».
- R4: Extraire les noms des fournisseurs qui ont fourni des pièces
dont la quantité est comprise entre 300 et 500
- R5: Extraire toutes les informations relatives aux projets dont le
nom contient la lettre « S ».
- R6: Extraire la quantité totale (Quantité_totale) fournie par chaque
fournisseur toutes pièces confondues (si la quantité totale est
supérieur à 1000)
56
DESC, colonne2 ASC

REQUÊTE DE SÉLECTION
Syntaxe en SQL

SELECT Noms_Colonnes /*séparés par des virgules*/

FROM Noms_tables /*séparés par des virgules*/

[WHERE condition(s)]

[ ORDER BY Noms_Colonnes DESC|ASC] /* ordre ascendant par défaut*/

[ GROUP BY Noms_Colonnes ]

[ HAVING condition(s) ];

57
REQUÊTE DE SÉLECTION

Activité 2- Enoncé
En utilisant le mode SQL, créer sous MS ACCESS les requêtes
permettant de:
A2.1- Extraire les noms des fournisseurs qui sont situés à « Tunis ».
A2.2- Extraire les noms des fournisseurs qui ont fourni la pièce dont
le numéro est « P4 ».

58
REQUÊTE DE SÉLECTION
Activité 2- Correction

A2.1- SELECT NomFou


FROM Fournisseur
WHERE VilleFou = "Tunis" ;

A2.2- SELECT NomFou


FROM Fournisseur, FPJ
WHERE NuPièce="p4"
AND Fournisseur.NuFou=FPJ.NuFou;

59
REQUÊTE DE SÉLECTION
Exercice 2 - Enoncé
En utilisant le mode SQL, créer sous MS ACCESS les requêtes
permettant de:
- SQL1: Extraire les noms des projets où le fournisseur « Martin » a
fourni la pièce « Vis 8 ».
- SQL2: Extraire les noms des fournisseurs qui ont fourni des pièces
dont le poids dépasse 15g et la couleur est bleu.
- SQL3: Extraire les noms des fournisseurs qui sont situés à « Tunis »
ou à « Sfax ».
- SQL4: Extraire les noms des fournisseurs qui ont fourni des pièces
dont la quantité est comprise entre 300 et 500
- SQL5: Extraire toutes les informations relatives aux projets dont le
nom contient la lettre « S ».
- SQL6: Extraire la quantité totale (Quantité_totale) fournie par
chaque fournisseur toutes pièces confondues (si la quantité totale
est supérieur à 1000) 60
REQUÊTE DE SÉLECTION

Exercice 2 - Correction
- SQL1: SELECT ProjNom
FROM Projet a, Pièce b, Fournisseur c, FPJ d
WHERE NomFou="martin"
AND NomPièce="vis 8"
AND c.NuFou = d.NuFou
AND b.NuPièce = d.NuPièce
AND a.NuProj = d.NuProj;

61
REQUÊTE DE SÉLECTION

Exercice 2 - Correction
- SQL2: SELECT DISTINCT NomFou
FROM Pièce, Fournisseur, FPJ
WHERE Poids>15
AND Couleur="bleu"
AND Fournisseur.NuFou=FPJ.NuFou
AND Pièce.NuPièce=FPJ.NuPièce;

62
REQUÊTE DE SÉLECTION
Exercice 2 - Correction
- SQL3: SELECT NomFou
FROM Fournisseur
WHERE VilleFou="Tunis" OR VilleFou="Sfax";
/* ou bien WHERE VilleFou IN("Tunis","Sfax")*/

63
REQUÊTE DE SÉLECTION

Exercice 2 - Correction
- SQL4: SELECT DISTINCT NomFou
FROM Fournisseur,FPJ
WHERE qte BETWEEN 300 AND 500
AND Fournisseur.NuFou=FPJ.NuFou;

64
REQUÊTE DE SÉLECTION

Exercice 2 - Correction
- SQL5: SELECT * FROM projet
WHERE ProjNom LIKE '*S*';

65
REQUÊTE DE SÉLECTION

Exercice 2 - Correction
- SQL6: SELECT NomFou, Sum(Qte) AS Quantité_Totale
FROM Fournisseur, FPJ
WHERE Fournisseur.NuFou=FPJ.NuFou
GROUP BY NomFou
HAVING Sum(QTE)>1000;

66
1- Création d’une table à partir d’une table existante

Activité 3
En utilisant le mode création, créer sous MS ACCESS la table
« Commande » qui contient les pièces de couleur rouge contenues dans
la table « Pièce ».

67
1- Création d’une table à partir d’une table existante

Syntaxe en SQL

SELECT Noms_Colonnes /*séparés par des virgules*/


INTO Nouvelle_table
FROM Noms_tables /*séparés par des virgules*/
[WHERE condition(s)]
[ ORDER BY Noms_Colonnes ]
[ GROUP BY Noms_Colonnes ] …;

68
1- Création d’une table à partir d’une table existante

Activité 4
En utilisant le mode SQL, créer sous MS ACCESS la table
« Commande2 » qui contient les pièces de couleur rouge contenues
dans la table « Pièce ».

SELECT * INTO Commande2


FROM Pièce
WHERE Couleur="Rouge";

69
2- Création d’une nouvelle table

Syntaxe en SQL

CREATE TABLE table (


-- définition des colonnes
colonne1 type1 [ NOT NULL ] [UNIQUE] [ DEFAULT valeur ] [ PRIMARY KEY ]
[ REFERENCES table ] [ CHECK condition ], colonne2 type2 ... ,
--contraintes de table
[CONSTRAINT nom_contrainte]
{ PRIMARY KEY (liste de colonnes) ],
| UNIQUE (liste de colonnes) ] , ... ,
| FOREIGN KEY (liste de colonnes) REFERENCES table ... )} ;
70
2- Création d’une nouvelle table

Syntaxe en SQL

▪ Principaux types de données ▪ Contraintes d'intégrité


VARCHAR(n) NOT NULL --valeur nulle impossible
SMALLINT UNIQUE --unicité d'un attribut
INTEGER PRIMARY KEY --clé primaire
DECIMAL(n,m) FOREIGN KEY --clé étrangère
DATE CHECK --conditions

71
2- Création d’une nouvelle table

Activité 5
En utilisant le mode SQL, créer la table « Client » avec les champs
suivants:
- NuClient: texte (4) , clé primaire
- NomClient: texte(15), non nul
- Téléphone: Entier, unique

CREATE TABLE Client (


NuClient VARCHAR(4) PRIMARY KEY,
NomClient VARCHAR(15) NOT NULL,
Téléphone INT UNIQUE);
72
1- Insertion d’enregistrements à partir d’une table existante

La requête d’ajout permet de copier tout ou une partie des enregistrements


d'une table (la table source) à la fin d'une autre table (la table cible).

Activité 6
En utilisant le mode création, ajouter à la table « Commande » toutes les
pièces de la table « Pièce » dont la couleur est « bleu » .

73
1- Insertion d’enregistrements à partir d’une table existante

Syntaxe en SQL

INSERT INTO Table_cible (colonne1, colonne2, … , colonnen)


SELECT colonne1, colonne2, … , colonnen
FROM Table_source
[WHERE condition(s)]
[ ORDER BY Noms_Colonnes ]
[ GROUP BY Noms_Colonnes ] …;

74
1- Insertion d’enregistrements à partir d’une table existante

Activité 7
En utilisant le mode SQL, ajouter à la table « Commande2 » toutes les
pièces de la table « Pièce » dont la couleur est « bleu » .

INSERT INTO Commande2 ( NuPièce, NomPièce, Poids, Couleur )


SELECT NuPièce, NomPièce, Poids, Couleur
FROM Pièce
WHERE Couleur="bleu";

75
2- Insertion de nouveaux enregistrements

Syntaxe en SQL

INSERT INTO table [ (liste de colonnes) ]


VALUES (liste de valeurs);

- Si la liste de colonnes n'est pas spécifiée, tous les attributs de la table


seront considérés
- Si seulement certaines colonnes sont spécifiées, les autres sont insérées
avec la valeur NULL

76
2- Insertion de nouveaux enregistrements

Activité 8
En utilisant le mode SQL, insérer dans la table « Client », le client
identifié par les informations suivantes:
NuClient: C1 NomClient: Tounsi Téléphone: 22123456

INSERT INTO Client (NuClient, NomClient, Téléphone)


VALUES ("C1", "Tounsi", 22123456);

77
Activité 9
A- En utilisant le mode création, changer la ville du fournisseur « Ben
Salem » en « Gabes ».
B- En utilisant le mode SQL, changer la ville du fournisseur « Ben Salem »
en « Sousse».

Syntaxe en SQL Exemple


UPDATE table(s) UPDATE Fournisseur
SET VilleFou = "Sousse"
SET liste_affectations
WHERE NomFou="Ben Salem;
[WHERE condition(s)];

L'absence de la clause WHERE signifie que les changements doivent être


appliqués à toutes les lignes de la table cible.
78
Activité 10
A- En utilisant le mode création, augmenter de 10% la quantité fournie
par le fournisseur « Zarrouk ».
B- En utilisant le mode SQL, diviser par 2 la quantité fournie par le
fournisseur « Derbel ».

UPDATE Fournisseur,FPJ
SET Qte = Qte/2
WHERE NomFou="derbel"
AND Fournisseur.NuFou=FPJ.NuFou;
79
Une requête de suppression permet de supprimer un groupe
d'enregistrements qui répondent à un critère donné.

Activité 11
En utilisant le mode création,
A- Supprimer à partir de la table « Commande », les pièces dont le
poids est supérieur à 16g.
B- Supprimer toutes les commandes fournies par le fournisseur
« Hssine ».
80
Syntaxe en SQL

DELETE FROM table


[WHERE condition(s)];

En absence de la clause WHERE, toutes les lignes de la table seront supprimées.

Activité 12
En utilisant le mode SQL,
A- Supprimer le client « Tounsi».
B- Supprimer toutes les commandes fournies par le fournisseur « Ben
salem ».
81
A- DELETE FROM Client

WHERE NomClient="Tounsi";

B- DELETE FROM fpj

WHERE nufou IN (SELECT nufou

FROM fournisseur

WHERE nomfou="ben salem");

82

Vous aimerez peut-être aussi