SGBD

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 49

1

Enseigné par : Mr DINY Oili


2
Définition et composants d'une base de données
Une base de données est une collection structurée de données organisées pour un
accès et une gestion efficaces. Elle est composée de plusieurs éléments :
 Données: Elles constituent le contenu de la base de données et peuvent être de
différents types (textes, nombres, images, etc.).
 Structure: La structure définit l'organisation des données dans la base de
données. Elle est généralement définie à l'aide d'un modèle de données.
 SGBD: Le SGBD (Système de Gestion de Bases de Données) est un logiciel qui
permet de:
 Stocker des données: Le SGBD stocke les données de manière structurée, ce qui
facilite leur accès et leur manipulation.
 Organiser des données: Le SGBD permet de organiser les données en tables, en
relations et en vues.
 Gérer des données: Le SGBD offre des outils pour ajouter, modifier, supprimer et
rechercher des données.
 Manipuler des données: Le SGBD permet de manipuler les données à l'aide de
langages de requête comme SQL
3
Fonctionnalités d’un SGBD
 Stockage des données: Le SGBD stocke les données de manière structurée, ce qui
facilite leur accès et leur manipulation.
 Organisation des données: Le SGBD permet de organiser les données en tables, en
relations et en vues.
 Gestion des données: Le SGBD offre des outils pour ajouter, modifier, supprimer et
rechercher des données.
 Manipulation des données: Le SGBD permet de manipuler les données à l'aide de
langages de requête comme SQL

Applications des SGBD


Les SGBD sont utilisés dans une grande variété d'applications, notamment :
 Gestion commerciale: facturation, comptabilité, gestion des stocks
 Gestion de la relation client (CRM): suivi des clients, prospection
 Ressources humaines: gestion du personnel, paie
 Production: planification, contrôle de la production
 Santé: dossiers médicaux, suivi des patients
 Enseignement: gestion des étudiants, inscription aux cours
4
Types de Bases de données
Il existe plusieurs types de BD, les plus courants étant :
 Bases de données relationnelles (SQL) :
 Basées sur le modèle relationnel, elles utilisent des tables pour stocker et organiser les
données.
 Elles reposent sur le langage SQL (Structured Query Language) pour interagir avec les
données.
 Exemples SGBD: MySQL, PostgreSQL, Oracle, SQL Server, etc.

 Bases de données NoSQL (Not Only SQL) :


 Conçues pour gérer des volumes importants de données non structurées ou semi-
structurées. Elles offrent une flexibilité accrue et peuvent gérer des schémas de données
changeants.
 Les types incluent les bases de données de documents, de colonnes, de graphes et de
paires clé-valeur.
 Exemples SGBD : MongoDB (documents), Cassandra (colonnes), Neo4j (graphes), Redis
(clé-valeur).

5
6
Qu'est-ce qu'une Base de Données Relationnelle ?
Une Base de Données Relationnelle est un système de gestion de base de données
(SGBD) qui repose sur le modèle relationnel, introduit par Edgar F. Codd dans les
années 1970.
Le modèle relationnel définit les données sous forme de tables avec des lignes et
des colonnes. Chaque table représente une relation, où les données sont
organisées de manière logique et structurée.
Exemple Attribut (Colone)

Table (relation)

ID voiture (*) ID carburant marque plaque


1 1 Renault 4526 DE
2 2 BMW 2563 DH Tuples ou N-uplets (ligne)
3 1 Mercédès 2459 KW

Clé primaire ID carburant (*) Type


Clé secondaire
1 Essence
2 Gasoil
7
3 Pétrole
Les étapes de modélisation de la BD
Le but de modéliser des données est d’obtenir un schéma de l’organisation
des données stable et invariant permettant de construire une solution
physique, concrètement, une base de données. Pour parvenir à ce résultat,
on procède par étapes e, utilisant la méthode Merise :

8
Dictionnaire des données DD
C'est une étape intermédiaire qui peut avoir son importance, surtout si vous êtes
plusieurs à travailler sur une même base de données, d'un volume important .C’est
un 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 :
Code mnémonique : il s'agit d'un libellé désignant une donnée (par exemple
«titre_l» pour le titre d'un livre) ;
Désignation : il s'agit d'une mention décrivant ce à quoi la donnée correspond (par
exemple «titre du livre») ;
Type de donnée :
 Entier: lorsque la donnée est uniquement composée de caractères numérique sans
virgule,
 Décimal: lorsque la donnée est composée des caractère numérique avec virgule
(réel),
 Chaine de caractère : 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 ;


Taille : elle s'exprime en nombre de caractères ou de chiffres. Dans le cas d'une
date au format AAAA-JJ-MM, on compte également le nombre de caractères, soit 10
caractères. Pour ce qui est du type booléen, nul besoin de préciser la taille; et
parfois des remarques ou observations complémentaires. 9
Dictionnaire des données DD
Exemple : Un système de gestion de commandes pour un magasin en ligne comprend
la gestion des clients, des articles et des commandes. Les clients s'enregistrent avec
des informations personnelles, chaque client ayant un identifiant unique. Les articles
sont répertoriés avec leur nom, leur prix et leur stock, chaque article ayant un
identifiant unique. Les clients passent des commandes en sélectionnant des articles,
enregistrant les quantités.
Dictionnaire de données correspondant
Code Mnémonique Désignation Type Taille Remarque ou observation
Num_Client numéro du Client Entier 10 Clé primaire, identifiant unique du client.
Nom_Client Nom du Client Chaîne 50
Prenom_Client Prénom du Client Chaîne 50
Adresse_Client Adresse du Client Chaîne 250
Email_Client Adresse Email du Client Chaîne 100
numéro de la Clé primaire, identifiant unique de la
Num_Commande Entier 10
Commande commande.
Date_Commande Date de la Commande Date 10 AAAA-MM-JJ
Clé primaire, identifiant unique de
Code_Article Code de l'Article Entier 10
l'article.
Nom_Article Nom de l'Article Chaîne 150
Prix_unitaire Prix de l'Article unitaire Décimal 30
Quantite_commandee Quantité Commandée Entier 6
10
Dépendance fonctionnelle DF
Définition: on dit qu'une propriétés (attribut) B est en DF de A si
A B
si on connait la valeur de A, on peut en déduire une seule valeur de B
Mais la réciproque est fausse (si on connait B, on ne peut pas en déduire A)
Les expressions suivantes sont équivalentes:
 Il y a une DF de A vers B

 B est en dépendance fonctionnelle de A

 B dépend fonctionnellement de A

DF avec attribut concaténé (DF Non élémentaire):

A+B C Num_commande + code_article quantite_commandee

Représentation GDF (Graphe de dépendance fonctionnelle)

A Num_commande
C quantite_commandée
B Code_article

Un attribut C peut avoir une DF qui repose sur la conjonction de plusieurs


11
attributs (A et B ... )
Dépendance fonctionnelle DF
Propriété des DF: La transitivité

A B
A C
B C

Num_commande Num_client
Num_commande adresse_client
Num_client Adresse_client

2 DF direct DF transitive
Propriété des DF: L’union
A B
A B,C
A C
Code_article Nom_article
Code_article Nom_article, Prix_unitaire
Code_article Prix_unitaire

Dans le graphe des DF, on met sur la Code_article


même ligne les attributs ayant la
même source
Nom_article Prix_unitaire 12
Dépendance fonctionnelle DF
Graphe de couverture minimale (GCM ou GDF)
Graphe de couverture minimale = réseau qui représente toutes les DF directes. Ces
DF doivent partir d'un identifiant.
Num_commande Code_article

Num_client Date_commande quantite_commandee Nom_article Prix_unitaire

Nom_client Email_client Adresse_client

Traduction du GCM vers un schéma Entité/Association


1. Souligner les identifiants;
2. Les attributs non identifiants qui dépendent directement d'un identifiant
unique forment ensemble une entité;
3. Les DF élémentaires entres les identifiants forment des associations binaires
dont les cardinalités maximales sont à 1 au départ de la DF et n à l'arrivée;
4. Les attributs non identifiants qui dépendent de plusieurs identifiant sont les
13
attributs d'une association dont les cardinalités maximales sont toutes n
DF vers Entité/Association (MCD)
Traduction du GCM vers un schéma Entité/Association

num_commande
1,n code_article
1,1 0,n

0,n

num_client date_commande qte_commandee nom_article prix_unitaire

nom_client email_client adresse_client

Clients Articles
(0,n) (1,1) Commandes (1,n) (0,n)
num_client Contenir
Passer code_article
nom_client num_commande qte_commandee nom_article
email_client date_commande
prix_unitaire
adresse_client
14
MCD – Modèle Conceptuel de Données
Définition
• Modèle Entité-Association
• Ensemble de concepts pour modéliser les données d'un Système d’information
• Ensemble de symboles graphiques
Entité
• Permet de modéliser un ensemble d'objets de même nature
• Un élément appartenant à cette entité est appelé occurrence
Attribut ou Propriété
• Donnée élémentaire d'une entité.
• Dans une occurrence la propriété accepte une seule valeur
Identifiant ou clé
• Attribut de l'entité qui permet de trouver une occurrence d'entité unique
• Identifiant peut être un entier auto-incrémenté, composé de plusieurs attributs
(clef composée), code avec une partie s’incrémente.
Occurrence
Entité
Identifiant Etudiants Etudiant_1
Etudiant_2
ou clé 1910001 Etudiant_3
CNE 1910002
JAO 1910003
Nom DUPON
Attribut Jean JAO
Prénom Jean
02/04/2002 Felix
Date_naissance 10/01/2001 15
10/01/2001
MCD – Modèle Conceptuel de Données
Les cardinalité
• Les cardinalités précisent la participation d'une entité à une relation.

Cardinalité Notation
Zéro ou Un (0,1)
Un et Un seul (1,1)
Zéro ou Plusieurs (0,n)
Un ou plusieurs (1,n)
Exemple de question

 Un client peut passer combien de commandes (au minimum/maximum) ?


Minimum: 0
Maximum: Plusieurs
 Une commande peut-elle être passée par combien de clients (au minimum
/maximum ) ?
Minimum: 1
Maximum: 1

Clients
(0,n) (1,1) Commandes
num_client Passer
nom_client num_commande
email_client date_commande
edresse_client
16
MCD – Modèle Conceptuel de Données
Relation binaire
• C’est la relation qui lie deux entité.

Clients Articles
(0,n) (1,1) Commandes (1,n) (0,n)
num_client Contenir
Passer code_article
nom_client num_commande qte_commandee nom_article
email_client date_commande
prix_unitaire
adresse_client

Relation ternaire
• C’est la relation qui lie trois entité.
dépôts  Un livre écrit par 1 ou plusieurs éditeur peut
num_dep être stocké dans 1 ou plusieurs dépôts
adresse_dep
(0,n)  Un éditeur peut éditer un ou plusieurs livres
qui peuvent êtres stockés dans un ou plusieurs
dépôts
livres (1,n) (1,n) éditeurs
stocker  Un dépôt peut contenir zéro ou plusieurs
isbn num_edit livres édités par un ou plusieurs éditeurs
qte
titre nom_edit

17
MCD – Modèle Conceptuel de Données
Association réflexive
• Une relation réflexive = les deux liaisons sont liées à une même entité.
• Chaque liaison devrait avoir un rôle.

Ex: Dans une usine, un salarié peut encadrer ses collègues

Salariés Salariés
(0,1) (0,n)
matricule matricule
nom encadrer nom
prenom prenom
date_naissance date_naissance
adresse adresse

Salariés (0,n)

matricule
nom encadrer
prenom
date_naissance
adresse
(0,1) 18
Normalisation d’un MCD
1- Normalisation des entités
• Les entités remplaçable par une association doivent être remplacées
Enseignants
cin Enseignants
nom_ens
prenom_ens cin
nom_ens
0,n prenom_ens

enseigner 0,n

1,1
seances matieres 0,n
matieres
1,1 concerner 0,n enseigner
Num_seance Code_mat Code_mat
tarif Nom_mat tarif Nom_mat

1,1
Avoir lieu 0,n
etablissements
Unicité de la séance pour un
0,n Code_etab
enseignant dans un établissement
etablissements Nom_etab
pour un matière
Code_etab
Nom_etab
19
Normalisation d’un MCD
 Les noms des entités, des association et d'attributs Enseignants
doivent être uniques, et voici quelques conventions cin
de nommage: nom_ens
prenom_ens
• Pour les entités: nom commun pluriel;
0,n
• Pour les association: verbe a l'infinitif (ou à la
forme passive accompagné d'un adverbe : être 0,n
matieres
enseigner
enseigné par); Code_mat
tarif Nom_mat
• Pour les attributs: nom commun singulier (si
besoin, accompagné du nom de l'entité ou 0,n

association dans laquelle il se trouve) etablissements


Code_etab
Nom_etab

 Les entité homogène doivent être fusionnées

Encadrants Salariés Salariés (0,n)

matricule (0,n) (0,1) matricule matricule


Nom Encadrer Nom Nom Encadrer
prenom prenom prenom
date_naissance date_naissance date_naissance
adresse adresse adresse
(0,1)
20
Normalisation d’un MCD
2- Normalisation des identifiants
 Chaque entité doit avoir un identifiant
 Quelques conseils pour les identifiants:
 éviter les identifiants composés de plusieurs attributs : risque de perdre
l'unicité des enregistrements en plus de perte de performance.
 éviter les identifiants qui peuvent changer au cours du temps.
 préférer un identifiant court pour une recherche rapide (performances).
 il est possible d'utiliser un entier qui s'incrémente automatiquement (risque
d'avoir deux enregistrements avec un numéro différents!)

Enseignants
Enseignants
cin
nom Nom
prenom prenom
date_naissance date_naissance
adresse adresse

21
Normalisation d’un MCD
3- Normalisation des attributs
 Les attributs en plusieurs catégories doivent être remplacés par une association
supplémentaire. Enseignants
adresses
cin (1,n) occuper (1,n)
Enseignants
nom num_adresse
type_adresse
cin prenom adresse
nom date_naissance
prenom
date_naissance
adresse_principale
adresse_secondaire Enseignants
(1,n) (1,1) adresses (1,1) (1,n) types
cin occuper concerner
nom num_adresse num_type
prenom adresse type
date_naissance

 Éviter les attributs calculables à partir d'autres attributs


 Autres attributs classiques comme l'âge qui est calculable à partir de la date de
naissance.
Commandes Articles
1,n 0,n
num_commande contenir code_article
date_commande nom_article
qte_commandee prix_unitaire
montant_totale
22
Normalisation d’un MCD
4- Normalisation des attributs des associations
 Les attributs d'une association doivent dépendre des identifiants de toutes les
entités en association dépôts
num_dep
adresse_dep

commandes (1,n) (0,n) articles (0,n)


contenir code_article
num_commande
qte_commandee nom_article
date_commande
prix_unitaire
livres (1,n) (1,n) éditeurs
stocker
isbn num_edit
qte
titre nom_edit

 L'entité avec une cardinalité maximale à 1 ( 1.1 ou 0.1) aspire toujours les attributs
de l'association. restaurants livraisons
(1,n) (1,1)
num_restaurant livrer num_livraison
nom nom_livreur Date_livraison
tel
adresse

restaurants
livraisons
(1,n) (1,1)
num_restaurant livrer
num_livraison
nom
date_livraison 23
tel
nom_livreur
adresse
Normalisation d’un MCD
5- Normalisation des associations
 Éliminer les associations fantômes : association dans laquelle toutes les entités
appartenant à sa collection sont impliquées une et une seule fois (toutes les
cardinalités sont 1,1). (1,1) (1,1) Cartes
Clients
appartenir
num_client num_carte
nom date_creation
prenom date_validation
Fusion
Clients
num_client
nom
prenom
 Éliminer les associations redondantes num_carte
date_creation
6- Normalisation des cardinalités date_validation

Même si on connait au moment de la conception un nombre exacte de cardinalités


minimale ou maximale, ce nombre peut évoluer au cours du temps ( si on exige à un
étudiant d'emprunter maximum 2 livres à un certain temps on peut lui permettre 5),
il est préférable donc de considérer :
 Une cardinalité minimale est toujours 0 ou 1
 Une cardinalité maximale est toujours 1 ou n (Impossible d'avoir une cardinalité
maximale à 0,l'association n'aurait pas de sens dans ce cas.)
 La gestion de ces exigences minimales et maximales est géré au niveau du SGBD à 24
l'aide des déclencheurs (triggers).
Normalisation d’un MCD
7- Les 3 formes normales
 1ère forme normale
 Dans une entité, chaque attribut est monovalué (ne peut avoir qu'une
seule valeur par ligne et nom pas une liste)
1FN  Aucun attribut n'est décomposable en plusieurs attributs significatifs
(sinon ces attributs l'objet d'une entité supplémentaire en association
avec la première)

diplomes enfants
cin_empl nom_emp prenom_empl date_embauche
type annee sexe prénom date_naiss

licence 2000 M Patric 2005


E42 Michel JEAN 21/02/2011
master 2003 F Alice 2008

employes
(1,1) (0,n) (0,n) (1,1) enfants
diplomes cin_empl
posséder nom_empl avoir num_enfant
num_diplome
prenom_empl sexe
type
date_embauche prenom_enfant
annee_obtention
diplomes date_naissance
enfants

25
Normalisation d’un MCD
7- Les 3 formes normales
 2ème forme normale
 Elle est en 1FN
2FN  Tout attribut non clé doit dépendre fonctionnellement de la totalité de la
clé
Lignes de commande
num_commande
code article
quantitee
prixUHT

N’est pas 2FN car prixUHT dépendant uniquement de code_article.


Il faut la décomposé.

Lignes de commande articles


num_commande code article
code article prixUHT
quantitee

26
Normalisation d’un MCD
7- Les 3 formes normales
 3ème forme normale
 Elle est en 2FN
3FN  Tout attribut doit dépendre directement de la clé (sans transitivité)
càd: aucun attribut ne doit dépendre d'un autre attribut non clé.

voitures
num_voiture
matricule
modele
couleur voitures(num voiture, matricule, modèle, couleur, puissance,
puissance carburant, constructeur, cin_propriétaire, nom_propriétaire)
carburant
constructeur
cin_proprietaire
nom_proprietaire

voitures
(1,n) (1,1) (1,1) (1,n)
proprietaires num_voiture modéles
posséder matricule être
cin_proprietaire modele
modele
nom_proprietaire puissance
couleur
constructeur
carburant
cin_proprietaire 27
MLD – Modelé logique de donnée
1- Définition
Le modèle logique des données est une transformation du modèle conceptuel des
données . C'est une présentation de la structure des données dans le niveau
logique.
La transformation s'applique en respectant un ensemble de règles de passage entre
un MCD vers un MLD.
On peut représenter le MLD sous forme graphique ou textuelle
2- Les trois règles principales

 Transformation des entités

 Transformation des associations (x,1)-(x,n)

 Transformation des associations (x,n)-(x,n)

Entités Associations 1:N Associations N:N

28
Les règles de passage MCD à MLD
 Un schéma relationnel = tables appelés aussi des relations liées par des
connecteurs entre les clés primaires et les clés étrangères correspondantes
 Pour repérer les clés primaires et clés étrangères dans un schéma relationnel, on
utilise la notation suivante:
 On souligne les clés primaires;
 On fait précéder les clés étrangères du symbole #.
Clients
(0,n) (1,1) Commandes
num_client passer
nom_client num_commande
MCD email_client date_commande
adresse_client

Clients
Commandes
MLD num_client
num_commande
nom_client
date_commande
email_client
#num_client
adresse_client

CLIENTS( num_client, nom_client,email_client, adresse_client )


COMMANDES( num_commande, date_commande, #num_client ) 29
Les règles de passage MCD à MLD
 Règle 1 ; Transformation des entités

Toute entité devient une table (relation) (les attributs deviennent des
colonnes ou champs, et l'identifiant devient clé primaire)

Clients (0,n) (1,1) (1,n) (0,n) Articles


Commandes
num_client passer Contenir
code_article
nom_client num_commande
MCD email_client date_commande qte_commandee nom_article
prix_unitaire
adresse_client

MLD Clients
Commandes
Articles
num_client code_article
nom_client num_commande
nom_article
email_client date_commande
prix_unitaire
adresse_client

30
Les règles de passage MCD à MLD
 Règle 2 ; Transformation des associations (x,1)-(x,n)
Une association binaire ayant des cardinalités (1,1) -(1.n) ou (1,1) - (0,n)
se traduit par l'immigration de l'identifiant de l'entité forte (ayant
cardinalité (1,n) ou (0,n)) vers l'entité faible (cardinalité (1,1)).

Clients (0,n) (1,1) (1,n) (0,n) Articles


Commandes
num_client passer Contenir
code_article
nom_client num_commande
MCD email_client date_commande qte_commandee nom_article
prix_unitaire
adresse_client

MLD Clients
Commandes
Articles
num_client code_article
nom_client num_commande
nom_article
email_client date_commande
prix_unitaire
adresse_client #num_client

La clé étrangère ne peut pas


recevoir la valeur NULL si la
cardinalité côté entité fils est 1.1
31
Les règles de passage MCD à MLD
 Règle 3 ; Transformation des associations (x,n)-(x,n)
Une association binaire de type n:n devient une table supplémentaire dont la clé
primaire est composée de la concaténation des deux clés étrangères (qui
référencent les deux clé primaires des deux tables en association).Les propriétés
deviennent colonnes(Attributs) de cette nouvelle table.

Clients (0,n) (1,1) (1,n) (0,n) Articles


Commandes
num_client passer Contenir
code_article
nom_client num_commande
MCD email_client date_commande qte_commandee nom_article
prix_unitaire
adresse_client

MLD Clients
Commandes LignesCommandes Articles
num_client
num_commande #num_commande code_article
nom_client
date_commande #code_article nom_article
email_client
#num_client qte_commandee prix_unitaire
adresse_client

32
Les règles de passage MCD à MLD
Règle 3 valable pour les associations ternaires (et quaternaires) de type
OBLIGATOIREMENT plusieurs à plusieurs
dépôts
num_dep
adresse_dep
(0,n)

livres (1,n) (1,n) éditeurs


MCD isbn
stocker
qte
num_edit
titre nom_edit

dépôts
MLD num_dep
adresse_dep Stock éditeurs
#num_dep num_edit
#isbn nom_edit
#num_edit
livres qte
isbn
titre

33
Les règles de passage MCD à MLD
Cas d’un association réflexive

Pièces (0,n)

num_piece Composer
nom
nbr
couleur
poids
MCD (0,n)

MLD Pièces Composition


num_piece num_piece_composee
nom Num_piece_composante
couleur nbr
poids

34
Modèle Physique de Données (MPD)
1- Définition

Modèle Physique de Données, représente la manière dont les données sont stockées
réellement dans un système de gestion de base de données (SGBD).
Contrairement au MCD (Modèle Conceptuel de Données) qui est une représentation
abstraite des données et de leurs relations, le MPD se concentre sur les détails de
mise en œuvre au niveau des structures de stockage, des types de données, des
index, des clés primaires et étrangères, ainsi que d'autres aspects spécifiques au
SGBD utilisé.
Le langage utilisé pour ce type d'opération est le SQL.
On peut également utiliser un outil qui permet de générer automatiquement la
base de données .

MCD -> MLD -> MPD


Entité -> Relation -> Table
Attributs -> Attributs -> Champs (ou colonnes)
Identifiant -> Clé primaire -> Clé primaire
35
Modèle Physique de Données (MPD)
Qu'est ce que c'est le langage SQL

SQL (Structured Query Language) est un langage de requête standard utilisé pour
gérer et manipuler des bases de données relationnelles. Il permet d'effectuer
diverses opérations telles que la récupération, l'insertion, la mise à jour et la
suppression de données dans une base de données.

• Un langage de définition de données(LDD ou DDL)·


Ex: CREATE TABLE, ALTER TABLE, DROP TABLE,…
• Un langage d'interrogation de données(LID)·
Ex: SELECT,…
• Un langage de manipulation de données(LMD ou DML)·
Ex: INSERT INTO, UPDATE, DELETE FROM,…
• Un langage de contrôle de données(LCD ou DCL)
Ex: GRANT, REVOKE, …

36
Langage de Définition de Données (LDD)
Le Langage de Définition de Données (LDD), également connu sous le nom de Data
Definition Language (DDL) en anglais, est une catégorie de langage de requête
utilisée pour définir et gérer la structure et la disposition des données dans une
base de données. Les commandes DDL permettent de créer, modifier et supprimer
des objets de base de données tels que des tables, des vues, des index, etc. Voici
quelques-unes des principales commandes DDL :
 CREATE TABLE : Utilisée pour créer une nouvelle table dans la base de
données avec une structure spécifiée.
CREATE TABLE nom_table (
colonne1 datatype [contrainte], - - Ceci un commentaire
colonne2 datatype [contrainte],
...
);

Exemple
CREATE TABLE Clients (
Clients num_client INT PRIMARY KEY,
num_client nom_client VARCHAR(100),
nom_client email_client VARCHAR(100),
email_client
adresse_client VARCHAR(255)
adresse_client
); 37
Langage de Définition de Données (LDD)
 ALTER TABLE : Cette commande permet d'ajouter, de modifier ou de supprimer des
colonnes dans une table existante, ainsi que d'appliquer des contraintes ou des
index.
ALTER TABLE nom_table
ADD colonne datatype [contrainte], - - Ceci pour ajouter une colonne
DROP COLUMN nom_colonne, - - Ceci pour supprimer un colonne
MODIFY COLUMN nom_colonne new_datatype; - - Ceci pour modifier le type
Exemple
Clients ALTER TABLE Clients
num_client ADD tel_client VARCHAR(20),
nom_client DROP COLUMN email_client,
tel_client
adresse_client MODIFY COLUMN adresse_client VARCHAR(500);

 DROP TABLE : Utilisée pour supprimer une table existante de la base de données.

DROP TABLE nom_table;

Exemple

DROP TABLE Clients; - - Ceci pour supprimer la table Clients


38
Langage de Définition de Données (LDD)
 CREATE INDEX : Utilisée pour créer un index sur une ou plusieurs colonnes, ce qui
accélère les opérations de recherche.
Les index peuvent être créés sur une ou plusieurs colonnes d'une table, selon les
besoins spécifiques de l'application. Ils sont souvent utilisés sur les colonnes
fréquemment utilisées dans les clauses WHERE, ORDER BY ou JOIN, ainsi que sur les
colonnes de clé étrangère pour améliorer les performances des jointures.

CREATE INDEX nom_index ON nom_table (colonne);


Exemple
Sur un seul colonne
CREATE INDEX idx_article ON Articles(nom_article);
Sur deux colonnes
CREATE INDEX idx_article ON Articles(nom_article,categorie);

 DROP INDEX : Utilisée pour supprimer un index existant de la base de données.

DROP INDEX nom_index;

Exemple

DROP INDEX idx_article; - - Ceci pour supprimer l’index idx_article 39


Langage de Définition de Données (LDD)
 CREATE VIEW: Utilisée pour créer une vue, qui est une représentation virtuelle des
données basée sur une ou plusieurs tables
CREATE VIEW nom_vue AS
SELECT colonne1, colonne2
FROM nom_table
WHERE condition;
Exemple
CREATE VIEW Vue_Details_Commandes AS
SELECT c.num_commande,c.date_commande,cl.nom_client,
lc.qte_commandee, a.designation,a.PrixUHT
FROM Commandes c JOIN Clients cl ON c.num_client =
cl.num_client JOIN LignesCommandes lc ON c.num_commande =
lc.num_commande JOIN Articles a ON lc.code_article =
a.code_article;

SELECT * FROM Vue_Details_Commandes; - - Ceci pour interroger le vue

 DROP VIEW : Utilisée pour supprimer une vue existante de la base de données.
DROP VIEW nom_vue;
40
DROP VIEW Vue_Details_Commandes; - - Ceci pour supprimer le vue
Langage d'interrogation de données(LID)
LID, également connu sous le nom de Data Query Language (DQL) en anglais, est une
catégorie de langage utilisée pour interroger et récupérer des données à partir d'une
base de données.
 SELECT : Elle est utilisée pour sélectionner des données spécifiques à partir d'une
ou plusieurs tables dans une base de données.
SELECT colonne1, colonne2
FROM nom_table
WHERE condition;
Exemples
SELECT * FROM Clients;- - Sélectionner toutes les colonnes de la table Clients

SELECT nom_client, email_client FROM Clients; /* Sélectionner les


noms et les adresses email des clients */
SELECT * FROM Articles WHERE PrixUHT > 100;/* Sélectionner les articles
dont le prix unitaire est supérieur à 100 euros*/

SELECT c.* FROM Clients c JOIN Commandes cmd ON c.num_client =


cmd.num_client WHERE cmd.date_commande > '2023-01-01’;
/* Sélectionner les clients qui ont passé des commandes après une date spécifique*/
41
Langage d'interrogation de données(LID)
 DISTINCT : Utilisée pour sélectionner des valeurs uniques dans une colonne donnée.

SELECT DISTINCT colonne


FROM nom_table;
Exemple
SELECT DISTINCT ville FROM Clients; /* Cela renverra une liste de toutes
les villes où se trouvent nos clients, sans répétitions de valeurs.*/

 ORDER BY : Utilisée pour trier les résultats selon une ou plusieurs colonnes, soit par
ordre croissant (ASC) soit par ordre décroissant (DESC).
SELECT * FROM nom_table ORDER BY colonne ASC;
Exemples
SELECT * FROM Articles ORDER BY prixUHT ASC;/* Cela renverra une liste
de tous les articles, triés par ordre croissant de prix.*/

SELECT * FROM Articles ORDER BY prixUHT DESC;/* Cela renverra une


liste de tous les articles, triés par ordre décroissant de prix.*/

42
Langage d'interrogation de données(LID)
 GROUP BY : Utilisée pour regrouper les résultats en fonction des valeurs d'une ou
plusieurs colonnes, généralement suivie de fonctions d'agrégation:
COUNT() : compter le nombre de lignes dans un groupe
SUM() : calculer la somme des valeurs dans un groupe.
AVG() : calculer la moyenne des valeurs dans un groupe.
MAX() ou MIN() : trouver la valeur maximale ou minimale dans un groupe. etc
SELECT colonne, COUNT(*) FROM nom_table
GROUP BY colonne;
SELECT num_commande, SUM(qte_commandee) AS quantite_totale
FROM LignesCommandes GROUP BY num_commande; /* retournera le numéro
de chaque commande avec le total des quantités commandées pour cette commande
spécifique..*/
 HAVING: Utilisée pour filtrer les résultats des requêtes GROUP BY basées sur des
conditions spécifiques.
SELECT colonne, COUNT(*) FROM nom_table GROUP BY colonne
HAVING COUNT(*) > 1;
SELECT num_client, COUNT(*) AS nombre_commandes FROM Commandes
GROUP BY num_client HAVING COUNT(*) > 3; /* Cette requête renverra
les numéros de client et le nombre total de commandes pour chaque client qui a
passé plus de 3 commandes..*/ 43
Langage de Manipulation de Données (LMD)
LMD également connu sous le nom de Data Manipulation Language (DML) en anglais,
est une catégorie de langage SQL utilisée pour manipuler les données stockées dans
une base de données relationnelle.
 INSERT INTO : Utilisée pour insérer de nouvelles lignes de données dans une table.
INSERT INTO nom_table (colonne1, colonne2, ...)
VALUES (valeur1, valeur2, ...);

Exemples

INSERT INTO Clients (num_client, nom_client, email_client)


VALUES (1, 'John Doe', '[email protected]’);
/* Insérer un nouveau client avec le numéro 1, le nom "John Doe" et l'e-mail
"[email protected]" dans la table "Clients".*/

Si la colonne « num_client" est une clé primaire auto-incrémentée et qu’ on n’a pas
besoin de spécifier sa valeur, SGBD attribuera automatiquement une nouvelle valeur
à la colonne « num_client" lors de l'insertion.
INSERT INTO Clients (nom_client, email_client)
VALUES ('John Doe', '[email protected]’);

44
Langage de manipulation de données (LMD)
 UPDATE : Utilisée pour mettre à jour des données existantes dans une table.
UPDATE nom_table
SET colonne1 = valeur1, colonne2 = valeur2, ...
WHERE condition;
Exemple
UPDATE Clients
SET email_client = '[email protected]'
WHERE num_client = 1;/* Mise à jour l'e-mail du client ayant numéro = 1 avec
la nouvelle valeur '[email protected]'.*/

 DELETE FROM : Utilisée pour supprimer des lignes de données d'une table.
DELETE FROM nom_table
WHERE condition;
Exemple
DELETE FROM Clients
WHERE num_client = 1;/* Supprimer toutes les lignes de la table "Clients" où la
valeur de la colonne « num_client" est égale à 1.*/

Il est important de noter que si on ne spécifie pas de condition dans la clause


WHERE, toutes les lignes de la table seront supprimées. 45
Langage de manipulation de données (LMD)
 SELECT INTO : Utilisée pour copier les résultats d'une requête SELECT dans une
nouvelle table.
SELECT colonne1, colonne2, ...
INTO nouvelle_table
FROM ancienne_table
WHERE condition;
Exemple

SELECT *
INTO ClientsVIP
FROM Clients
WHERE num_client IN (SELECT num_client FROM Commandes GROUP BY
num_client HAVING SUM(montant_commande) > 1000);

Cette commande sélectionne tous les clients de la table "Clients" dont le numéro
correspond à ceux ayant dépensé plus de 1000 euros en commandes (selon la sous-
requête), puis crée une nouvelle table "ClientsVIP" contenant ces clients ainsi que
toutes leurs colonnes.

46
Langage de Contrôle de Données (LCD)
LCD ou Data Control Language (DCL) en anglais , permet de gérer les autorisations et
les privilèges des utilisateurs, y compris la création, la modification et la suppression
des utilisateurs et des rôles, ainsi que l'octroi et la révocation des droits d'accès aux
tables et aux autres objets de la base de données.
 CREATE USER : Utilisée pour créer un nouvel utilisateur dans la base de données.

CREATE USER user_name IDENTIFIED BY 'password';

 DROP USER : Utilisée pour supprimer un utilisateur de la base de données.

DROP USER user_name;

 CREATE ROLE: Utilisée pour créer un nouveau rôle dans la base de données.

CREATE ROLE role_name;

 DROP ROLE: Utilisée pour supprimer un rôle de la base de données.

DROP ROLE role_name;

47
Langage de Contrôle de Données (LCD)
 GRANT : Utilisée pour accorder des privilèges d'accès sur des objets de la base de
données à un utilisateur ou à un rôle spécifique.

GRANT liste_permission
ON liste_objet
TO liste_utilisateurs_ou_roles
[WITH GRANT OPTION]; -- droit d’assigner les permissions
Exemples
GRANT SELECT, INSERT, UPDATE
ON Clients
TO jaomamy;/* Accorder les privilèges SELECT, INSERT et UPDATE sur une
table Clients à l’utilisateur jaomamy.*/

GRANT ALL PRIVILEGES ON DATABASE db_boutique TO user_name;


Accorder tous les privilèges sur toutes les tables de la base de données à un
utilisateur.*/

GRANT EXECUTE ON procedure_name TO role_name;/* Accorder le privilège


EXECUTE sur une procédure stockée à un rôle.*/

48
Langage de Contrôle de Données (LCD)
 REVOKE : Utilisée pour révoquer des privilèges d'accès sur des objets de la base
de données à un utilisateur ou à un rôle spécifique.

REVOKE liste_permission
ON liste_objet
TO liste_utilisateurs_ou_roles;

Exemples

REVOKE SELECT ON table_name FROM user_name;


/* Révoquer le privilège SELECT sur une table spécifique à un utilisateur.*/

REVOKE ALL PRIVILEGES ON table_name FROM role_name; /* Révoquer


tous les privilèges sur une table à un rôle.*/

REVOKE EXECUTE ON procedure_name FROM role_name; Révoquer le


privilège EXECUTE sur une procédure stockée à un rôle.*/

49

Vous aimerez peut-être aussi