Hadhami 2
Hadhami 2
I- Introduction Générale :
Mise en situation
Lorsque vous accéder à un site web ou une application mobile il vous demande de vous inscrire
Exemple : lorsque vous accédez au facebook pour la première fois et que vous voulez s’inscrire, il vous
demande de créer un compte
Facebook vous demande de renseigner certains données personnelle (nom prénom, date de naissance ,
genre, adresse email, nom d’utilisateur, le mot de pase ….)
Et lorsque vous reconnecter une autre fois par votre nom d’utilisateur et votre mot de passe ) facebook vous
reconnue càd que les données insérer sont stockées quelque part et il seront récupérer de l’endroit où il sont
stockées.
Ces données sont insérées dans une base de données
1- Définition :
Une base de données est un ensemble de données relative à un ou
plusieurs domaines stockés de manière structurée, organisée et
avec le moins de redondance possible
Mme.Hadhami LAMINE 1
Gestion de données 3SI
4- Les modèles de Bases de données
a- Le modèle hiérarchique
Elles se présentent comme un arbre ordonné dont les sommets sont les objets et les arcs sont les liens de type
père fils (1 : n) (un fils ne peut avoir qu’un seul père et un objet père peut avoir plusieurs fils)
b- Le modèle réseau
Les bases de données réseau se présentent comme un graphe, c’est une forme proche de l’hiérarchique mais avec
des liens plus ouvert (n : m) (tous les types de liens sont possible).
c- Le modèle relationnel
Une BD relationnelle est composée de Tables. Une table est composée de colonnes (champs) et de lignes
(enregistrements). Deux tables peuvent être liées entre elles grâce à des champs identiques des deux côtés.
Mme.Hadhami LAMINE 2
Gestion de données 3SI
1- Tables
Activité1 : Soit la table Client dans une base de données « Gestion Location »
De quoi est composée la table client ?
…………………………………………………………
………………………………………………………..
………………………………………………………..
……………………………………………
…………………………………………..
……………………………………………
Les tables de données sont organisées en colonnes (ou champs, propriétés ou Attribut) et en ligne (ou
enregistrement, occurence ou n-uplet)
Toutes les données d’une même colonne sont de même type
Exemple : la colonne "Tel" contient les numéros de téléphone des clients
Chaque ligne d'une table contient les informations relatives à une occurrence d'un sujet
Exemple : (90909090, Salem Sallemi, 55 847 321, Gabes)
Mme.Hadhami LAMINE 3
Gestion de données 3SI
Clé étrangère : (Foreign key, clé secondaire, référence) Une colonne est dite clé étrangère dans une Table B, si
elle est une clé Primaire dans une Table A.
4- Les contraintes
Une contrainte est une règle appliquée à une colonne ou à une table et qui doit être toujours vérifiée à fin
d’assurer l’intégrité des données.
On distingue trois types de contraintes :
• Contrainte d’intégrité de tables : Permet d’assurer l’unicité des lignes des tables. Chaque table doit
avoir une la clé primaire.
• Contrainte d’intégrité référentielle : Permet d’assurer qu’une clé secondaire d’une table est reliée à
une clé primaire d’une autre table. Elle est représentée sous forme de lien entre tables.
• Contrainte de domaine : s’assurer de la validité des valeurs des colonnes (obligatoire ou pas, supérieur
à zéro , ….)
5- Représentation d’une base de données :
Après la présentation des différents objets qui décrivent une bd, on peut la représenter de façon homogène. Cette
représentation est dite model ou schéma de la base de données. Il existe deux formalismes de représentation :
a- La représentation textuelle d'une base de données :
C’est l'ensemble des schémas des tables de la base de données.
Pour distinguer la clé primaire il suffit de la souligner
Pour distinguer la clé étrangère il suffit d’ajouter #
Donner la représentation textuelle de la base de données Gestion location.
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
b- La représentation graphique d'une base de données :
Les clés primaires sont représentées en gras et les clés étrangères à l’aide d’un lien entre les deux tables.
Les symboles (∞) est placé du côté de la clé étrangère et le symbole (1) du côté de la clé primaire
référencée.
Mme.Hadhami LAMINE 4
Gestion de données 3SI
6- Les types de liaisons
a) Liaison de type [1 : 1]
Exemple : un directeur dirige un seul lycée
un lycée est dirigé par un seul directeur
b) Liaison de type [1 : N]
Exemple : un élève est inscrit à un seul établissement
un établissement contient plusieurs élèves
Mme.Hadhami LAMINE 5
Gestion de données 3SI
Série d’application 1 :
Exercice 1 :
Compléter les vides en utilisant la liste suivante :
Redondance – données – structurée – programmes – base- informations
Une base de données est une entité dans laquelle il est possible de stocker des données de façon …………… et
avec le moins de ………………………………………… possible.
Exercice 2 :
Relier par une flèche
Indépendance entre données et programme Ensemble de règles (unicité, référence et
. . valeur)
Centralisation des données Les données sont décrites indépendamment
. . des programmes
Intégrité Les données sont saisies une seule fois et
. . peuvent être utilisées par plusieurs
programmes et plusieurs utilisateurs
Exercice 3 :
Répondre par vrai (V)ou Faux (F) pour chacune des propositions suivante
Mme.Hadhami LAMINE 6
Gestion de données 3SI
Rappel
Exercice 1 :
Soit la table suivante :
Id_Eleve Nom Prenom Date_n Classe Que présente chaque colonne de la
1510 Tounsi Mohamed 01/07/2006 3SI1 table élève ?
1080 Sallami Habib 16/05/2005 4EG2 …………………………..
1203 Saidi Hayfa 03/07/2007 3SI1
1222 Zyoudi Imed 03/04/2006 3Math
En se basant sur le tableau suivant, par quoi est décrit chaque champ ? …………………………………..
Nom:Elève
Description:Liste des élèves de lycée Habib Bourguiba Gabes
Nom colonne Description Type de Taille Obligatoire Valeur par Valeurs
données défaut autorisées
ID_ELEVE Identifiant Numérique Entier oui
de l’élève
Nom chaîne 15 non
Prenom chaîne 15 non
Date_n Date de Date Entier non <Aujourd’hui( )
naissance
Classe chaîne 15 non
Exercice 2 : (contrainte d’intégrité)
Ci-dessous, on présente le contenu des trois tables Client, Article et Facture d’une base de données, avec :
…………………………………………………………………………………………………..
…………………………………………………………………………………………………..
…………………………………………………………………………………………………..
NB : On suppose qu’une facture ne concerne qu’un seul article.
Questions : En se basant sur les contenus de ces tables, il apparaît que trois contraintes d’intégrité n’ont pas été
respectées. Préciser l’anomalie et le nom de contrainte non respectée.
Anomalie rencontrée Contrainte d’intégrité non respectée
……………………………………………………
……………………………………………………………
……………………………………………………
……………………………………………………
……………………………………………………………
……………………………………………………
……………………………………………………
……………………………………………………………
……………………………………………………
Mme.Hadhami LAMINE 7
Gestion de données 3SI
Module2 : Gestion de Données
TP1 : Création et manipulation d’une base de données en
mode assisté
Objectif : Créer et Gérer des bases de données
Une société de vente de voitures offre à ses clients la possibilité de tester et évaluer les nouveaux modèles qu’elle
dispose. L’évaluation consiste à attribuer trois notes en fonction des critères suivants : sécurité, conduite et confort.
Soit la base de données de cette société décrite par la représentation textuelle suivante :
testeur ( numPermis , nom , prenom , genre ,adresse)
modeleVoiture ( idModele , libelle )
évaluations ( numPermis# , idModele# , dateTest , securite, conduite )
1) Ouvrir l’environnement de développement «Wampserver ».
2) Créer cette base de données en lui attribuant le nom "BD_3SI".
3) Créer les différentes tables en précisant la clé primaire pour chacune d’elles et en se référant à la définition
des champs présentée dans le tableau suivant :
Mme.Hadhami LAMINE 8
Gestion de données 3SI
Création et manipulation d’une base de données en
mode commande
I- Présentation
Le mode commande consiste à créer les différentes structures de la base de données à l'aide de commandes
du langage SQL.
Ce langage est composé de trois familles de commandes :
a) Le langage de définition de données (LDD) : Permet de créer, modifier et supprimer les structures de la
base de données :
➢ Création de tables : CREATE TABLE
➢ Modification de tables : ALTER TABLE
➢ Suppression de tables : DROP TABLE
b) Le langage de manipulation de données (LMD) : permet de manipuler le contenu de la BD :
➢ Insertion de lignes : INSERT
➢ Modification de lignes : UPDATE
➢ Suppression de lignes : DELETE
➢ Consultation de lignes : SELECT
c) Le langage de contrôle de données (LCD) : permet de contrôler l'utilisation de la base de données
(sécurité de la base, intégrité des données, …).
Mme.Hadhami LAMINE 9
Gestion de données 3SI
Mme.Hadhami LAMINE 10
Gestion de données 3SI
Création et manipulation d’une base de données en
mode commande
Correction application1 :
a) Création de la base de données :
Mme.Hadhami LAMINE 11
Gestion de données 3SI
Retenons :
1- Les contraintes sur une colonne : Permet de définir une contrainte d’intégrité sur une seule
colonne
• [NOT] NULL : L’option NULL signifie que la colonne n’est pas obligatoire, l’option NOT NULL veut dire
que la colonne est obligatoire.
Exemple : TelClient VARCHAR(8) NOT NULL
• DEFAULT : permet d’attribuer une valeur par défaut à cette colonne.
Exemple : QteComm INT(2) DEFAULT 1
• UNIQUE : empêche que deux enregistrements aient des valeurs identiques dans une colonne.
Exemple : TelClient VARCHAR(8) UNIQUE
• PRIMARY KEY : spécifie que la colonne est utilisée comme clé primaire.
Exemple : CodeArticle VARCHAR(10) PRIMARY KEY
• CHECK(condition) : active une condition permettant de vérifier la valeur saisie dans un enregistrement.
Exemple : Prix DECIMAL(12, 3) CHECK(Prix>0)
• REFERENCES Nom_table [(Nom_colonne)] [ON UPDATE CASCADE] [ON DELETE CASCADE] :
définit une contrainte d’intégrité référentielle.
ON UPDATE CASCADE : maintient l’intégrité référentielle en modifiant automatiquement les valeurs
d’une clé étrangère dépendant des valeurs d’une clé primaire modifiée.
ON DELETE CASCADE : maintient l’intégrité référentielle en supprimant automatiquement les valeurs
d’une clé étrangère dépendant des valeurs d’une clé primaire supprimée.
2- Les contraintes sur une table : Permet de définir une contrainte d'intégrité au niveau de la table.
Elle doit être utilisée lorsque la contrainte ne s'applique pas à une seule colonne.
La syntaxe est la suivante :
[CONSTRAINT Nom contrainte]
PRIMARY KEY (colonnel, colonne2, ...)
FOREIGN KEY (colonnel, colonne2, ...) REFERENCES
nom_table [(colonnel, colonne2, ...)][ON UPDATE CASCADE] [ON DELETE CASCADE]
CHECK (condition)
UNIQUE (colonnel, colonne2, ...)
CONSTRAINT Nom_contrainte : sert à attribuer un nom à la contrainte, elle est optionnelle.
PRIMARY KEY (Nom_colonne1, [Nom_colonne2, ...] : spécifie que les colonnes sont utilisées comme
clé primaire.
Exemple: CONSTRAINT p1 PRIMARY KEY(CodeLivre, NumAbonne, DateEmprunt)
Mme.Hadhami LAMINE 12
Gestion de données 3SI
FOREIGN KEY : définit une contrainte d'intégrité référentielle relative à plusieurs colonnes. Le nom de
la table précisé après REFERENCES est celui de la table mère, les noms des colonnes sont ceux des
colonnes vers lesquelles on se réfère.
Exemple: CONSTRAINT kel FOREIGN KEY(CodeLivre) REFERENCES Livre(CodeLivre) ON UPDATE
CASCADE ON DELETE CASCADE
CHECK (condition): mot clé associé à une condition qui doit être vérifiée pour chaque valeur insérée,
elle peut concerner ici plus qu'une colonne.
Exemple: CONSTRAINT ck1 CHECK(Age>18 AND Salaire > 1000);
UNIQUE (colonnel, colonne2, ...): on peut appliquer la contrainte UNIQUE sur un groupe de colonnes.
Exemple: CONSTRAINT ucI UNIQUE(Tel, Email);
Mme.Hadhami LAMINE 13
Gestion de données 3SI
- ADD CONSTRAINT [nom_contrainte] contrainte : Permet Ajouter une nouvelle contrainte à la table.
- MODIFY nom_colonne Type NOT NULL : Permet d’ajouter la contrainte NOT NULL
Mme.Hadhami LAMINE 14
Gestion de données 3SI
4) Supprimer une base de données
Pour supprimer une base de données on utilise la syntaxe suivante :
DROP DATABASE nom_base ;
Activité 1 :
Soit la représentation textuelle suivante de la base de données « commande_pizza »
Pizza (IdPizza, NomPizza, Details, Prix)
Client (Tel, Nom, Prenom, Adresse, MotPass, Age )
Commande (IdPizza#, Tel#, DateCmd, QteCmd)
Description des colonnes
Nom colonne Description Type Taille
IdPizza Identifiant d'une Pizza Texte 3
Nompizza Nom d'une Pizza Texte 30
Details Description d'une Pizza Texte 200
Prix Prix d'une Pizza Décimal 6,3
Tel Numéro de téléphone d'un client Texte 8
Nom Nom d'un client Texte 25
Prenom Prénom d'un client Texte 25
Adresse Adresse d'un client Texte 50
MotPass Mot de passe d'un client Texte 6
Age Age d’un client Entier 2
DateCmd Date et heure de la commande DateHeure
QteCmd Quantité commandée d'une Pizza Entier 1
a) En se référant à la description des colonnes indiquée ci-dessus, écrire les requêtes SQL permettant de
créer les tables de la base de données « commande_pizza »
……………………………………………………………………………………………………….
……………………………………………………………………………………………………….
……………………………………………………………………………………………………….
………………………………………………………………………………………………………
b) On souhaite ajouter une nouvelle colonne à la table « Client » nommé «AdrMail » de type chaîne
de caractères et de taille maximale égale à 50. Ecrire la requête SQL correspondante.
c) L’administrateur à oublier de mentionner la clé primaire de la table Client. Ecrire la requête SQL
permettant d’ajouter la clé primaire manquante.
d) Pour garantir la contrainte d’intégrité référentielle à la base de données, Ecrire la requête SQL
permettant d’ajouter la contrainte de clé étrangère (Tel) à la table commande.
e) On souhaite supprimer la colonne Age de la table Client. Ecrire la requête SQL correspondante.
Mme.Hadhami LAMINE 15
Gestion de données 3SI
f) On souhaite augmenter la taille maximale de la colonne « Adresse » de la table « Client » de 50 à
100 caractères. Ecrire la requête SQL correspondante.
g) Pour apporter plus d’efficacité à cette base de données, l’administrateur décide d’ajouter une
contrainte sur la colonne « QteCmd » de la table « Commande » afin de vérifier la validité de sa
valeur qui doit être comprise entre 1 et 10. Ecrire la requête SQL correspondante.
Correction activité1 :
a) alter table Client Add column AdrMail varchar(50) ;
b) alter table client add constraint primary key (Tel) ;
c) alter table commande
add constraint foreign key(Tel) references client(Tel) on update cascade on delete cascade
d) alter table client drop column Age;
e) alter table client Modify Adresse varchar(80)
f) alter table commande add constraint check(1<=QteCmd<=10)
Application :
Soit la base de données simplifiée intitulée « Gestion_abonnés » permettant de gérer les abonnements
ADSL d'un Fournisseur de Services Internet à travers ses différentes agences. Elle est décrite par la
représentation textuelle suivante :
CLIENT (CinCl, NomCl, PreCl, AdrCl, TelCl)
AGENCE (CodeAg, AdrAg, TelAg)
CONNEXION (CodeCnx, LibCnx, DebitCnx, PrixCnx)
ΑΒΟΝΝΕΜΕNT (NumAb, CinCl#, CodeCnx#, TelAb, DateAb, DureeAb)
NB:
Le champ DebitCnx est un entier exprimé en Méga octets (Mo)
Le champ DureeAb est un entier exprimé en nombre de mois
1. En supposant que les tables CLIENT, AGENCE et CONNEXION sont déjà créées, écrire la requête SQL
correspondante permettant de créer la table ABONNEMENT en tenant compte de la description suivante :
Mme.Hadhami LAMINE 16
Gestion de données 3SI
2. On souhaite ajouter à la table CLIENT une nouvelle colonne intitulée GenreCl de type texte et de
taille 1 caractère et qui ne peut prendre que la valeur « Η » ou « F ». Ecrire la requête SQL
correspondante.
3. Ecrire la requête SQL permettant de renommer le champ PreCl de la table CLIENT par PrenomCl.
4. Il s'est avéré que la taille du champ DureeAb de la table ABONNEMENT est insuffisante puisque la
durée de l'abonnement peut-être de 12 mois ou plus. Ecrire la requête SQL correspondante permettant de
modifier la taille du champ d'un entier d'un chiffre à un entier de 2 chiffres.
5. Lors de la création de la table CLIENT, l'administrateur a oublié de mentionner la clé primaire de la
table. Ecrire la requête SQL permettant d'ajouter la clé primaire manquante.
6. Dans le cas où la durée d'un abonnement n'est pas indiquée, on serait obligé d'attribuer une durée de 3
mois. Ecrire la requête SQL correspondante.
7. L'administrateur de la base s'est aperçu qu'il a omis d'ajouter le champ CodeAg dans la table
ΑΒΟΝΝΕΜΕNT. Ecrire la requête SQL permettant d'ajouter ce champ en tenant compte de la
description suivante :
8. Pour mieux gérer les données de la base, on souhaite ajouter une contrainte sur la colonne DebitCnx
en acceptant seulement l'une des valeurs suivantes (4; 8; 10; 12 et 20). Ecrire la requête SQL
correspondante pour ajouter cette contrainte.
•
Mme.Hadhami LAMINE 17
Gestion de données 3SI
2) Pour remédier à l'anomalie de redondance concernant les noms et prénoms des compositeurs dans la table
« CD », on propose d'améliorer cette base de données en tenant compte des règles de gestions suivantes :
R1: Chaque CD est caractérisé par un style musical (Oriental, Rap, Pop, ...)
R2: Chaque CD est enregistré par un seul artiste
R3: Un artiste peut enregistrer plusieurs CD
R4: Un compositeur peut composer plusieurs CD
R5: Un CD peut être composé par plusieurs compositeurs
Proposer une nouvelle description textuelle de cette base de données.
CD (NumCD, TitreCD, NBPistes, NomComp, PrenComp, CodStyle #, IdArtiste #)
STYLE (CodStyle, DesStyle)
ARTISTE (IdArtiste, NomArtiste, PrenArtiste)
Compositeur (IdComp, NomComp, PrenComp)
Chanson (NumCD#, IdComp#,DateComp)
Mme.Hadhami LAMINE 18