Académique Documents
Professionnel Documents
Culture Documents
40
I. Principe du modèle relationnel
1. Historique
Modèle logique proposé par Edgar Frank Codd (centre de recherche d’IBM)
en 1970
Basé sur la notion de relations au sens mathématique, la théorie des ensembles
et la logique des prédicats du 1er ordre
41
I. Principe du modèle relationnel
2. Caractéristiques
Les données sont organisées sous forme de tables à deux dimensions : relations
Les colonnes sont appelées des attributs et les lignes des tuples
Les données sont manipulées par des opérateurs de l'algèbre relationnelle
L'état cohérent de la base est défini par un ensemble de contraintes d'intégrité.
Exemple
Produits
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 125000
2 Parfum Cosmétique 85000
3 Biscuit Alimentaire 100
4 Boite lait 1 L Alimentaire 500
42
I. Principe du modèle relationnel
3. Concepts du modèle relationnel
Attribut : une colonne nommée d’une relation. Un attribut est toujours associé à un
domaine.
Domaine : un ensemble d’instances d’un type élémentaire. Exemple : les entiers,
les réels, les chaînes de caractères, etc. Il est interdit en relationnel de manipuler des
valeurs instances de types structurés : graphes, de listes, d’enregistrements, etc.
Relation : sous-ensemble du produit cartésien de n domaines d’attributs (n>0)
Schéma de relation : Un schéma de relation est un nom (de relation) suivi de la
liste des attributs avec leurs domaines
R(A1:D1…., An:Dn)
43
I. Principe du modèle relationnel
3. Concepts du modèle relationnel
Produits
RefProd Nom Catégorie PrixUnitaire Attributs
1 Dattes Mie Alimentaire 125000
2 Parfum Cosmétique 85000
3 Biscuit Alimentaire 100
4 Boite lait 1 L Alimentaire 500
44
I. Principe du modèle relationnel
3. Concepts du modèle relationnel
Produits
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 125000
2 Parfum Cosmétique 85000 Relation/ table
3 Biscuit Alimentaire 100
4 Boite lait 1 L Alimentaire 500
45
I. Principe du modèle relationnel
3. Concepts du modèle relationnel
Produits
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 125000
2 Parfum Cosmétique 85000
3 Biscuit Alimentaire 100 Tuple
4 Boite lait 1 L Alimentaire 500
5 Cahier 100 P Scolaire 100
Arité (Produits)= 4
Cardinalité (Produits)= 5
RefProd : clé primaire dans Produits
47
Exemple de base de données
48
II. Algèbre relationnelle
1. Définition
49
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle
Opérateurs ensemblistes
Union
Intersection
Différence
Produit cartésien
Opérateurs spécifiques
Sélection
Projection
Jointure
Division
50
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle
Opérateurs ensemblistes
Union
Intersection
Différence
Produit cartésien
51
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle
Opérateurs ensemblistes
Union
Intersection
Différence
Produit cartésien
Opérateurs spécifiques
Sélection Opérateurs unaires
Projection
Jointure
Division
52
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle
Exemple
Donner la liste des clients qui habitent Kaédi
Prédicat
Clients
NumClient NomClient Ville Telephone
1 Souley Med Kaédi 88.55.88.66 NumClient NomClient Ville Telephone
2 Fatimétou Ali Nouadhibou 77.66.33.22 1 Souley Med Kaédi 88.55.88.66
3 Demba Sow Djeol 77.33.88.22 4 Sidi Med Kaédi 55.22.10.25
4 Sidi Med Kaédi 55.22.10.25
53
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle
Exemple
Donner les noms des clients et leur ville
Clients
NumClient NomClient Ville Telephone NomClient Ville
1 Souley Med Kaédi 88.55.88.66 Souley Med Kaédi
2 Fatimétou Ali Nouadhibou 77.66.33.22 Fatimétou Ali Nouadhibou
3 Demba Sow Djeol 77.33.88.22 Demba Sow Djeol
4 Sidi Med Kaédi 55.22.10.25 Sidi Med Kaédi
𝑽𝒊𝒍𝒍𝒆
Ville Donner les noms des villes des clients
Kaédi Doublons à supprimer
Nouadhibou
Djeol
Kaédi 54
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle
Exemple
Donner les noms des clients et leur ville
Clients
NumClient NomClient Ville Telephone NomClient Ville
1 Souley Med Kaédi 88.55.88.66 Souley Med Kaédi
2 Fatimétou Ali Nouadhibou 77.66.33.22 Fatimétou Ali Nouadhibou
3 Demba Sow Djeol 77.33.88.22 Demba Sow Djeol
4 Sidi Med Kaédi 55.22.10.25 Sidi Med Kaédi
𝑽𝒊𝒍𝒍𝒆
Ville Donner les noms des villes des clients
Kaédi
Nouadhibou Doublons à supprimer
Djeol
55
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle
Union :
R et S doivent avoir le même schéma et le résultat est une relation comprenant tous
les tuples existant dans l’une ou l’autre des 2 relations.
R S
R S
A B A B
A B
X Y O P
X Y
Z T X Y
Z T
U V
O P
U V
56
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle
Intersection :
R et S doivent avoir le même schéma et le résultat est une relation comprenant tous
les tuples présents à la fois dans R et S.
R S
R S
A B A B
A B
X Y O P
X Y
Z T X Y
U V
57
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle
Différence :
R et S doivent avoir le même schéma et le résultat est une relation comprenant tous
les tuples présents dans R et non dans S.
R S
R S
A B A B
A B
X Y O P
Z T
Z T X Y
U V
58
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle
Produit cartésien : x
Le produit cartésien entre 2 relations R et S: RxS est une relation où chaque tuple de
R est associé à chaque tuple de S. R et S peuvent être de schéma quelconque.
R S RxS
A B C D A B C D
X Y O P X Y O P
Z T Q W X Y Q W
U V X Y U V
Z T O P
Z T Q W
Z T U V
59
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle
Jointure :
La jointure entre 2 relations R et S consiste à joindre les tuples de R et S pour
lesquelles les valeurs d’un ou de plusieurs attributs sont identiques. Souvent ces
attributs correspondent à la clé primaire d’une des relations et la clé étrangère dans
l’autre relation.
x
P : est le critère de rapprochement pouvant être tout opérateur de
comparaison liant un attribut de R à un attribut de S
<;<=;>;>=;!=;=
Théta-jointure
60
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle
Jointure :
La jointure entre 2 relations R et S consiste à joindre les tuples de R et S pour
lesquelles les valeurs d’un ou de plusieurs attributs sont identiques. Souvent ces
attributs correspondent à la clé primaire d’une des relations et la clé étrangère dans
l’autre relation.
Produits Ventes
Produits.RefProd=Ventes.Refprod
61
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle
Jointure naturelle :
La jointure naturelle est une équijointure des relations R et S sur tous les attributs
communs en retirant les occurrences multiples d’attributs.
62
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle
Jointure naturelle :
Produits
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 125000
2 Parfum Cosmétique 85000
3 Biscuit Alimentaire 100
4 Boite lait 1 L Alimentaire 500
Ventes
NumProd NumClient NumVendeur DateV Quantite Montant
2 5 1 05/10/2018 3 255000
2 5 1 31/12/2018 1 85000
3 3 2 10/07/2018 1 15000
4 4 3 10/12/2018 3 300
Produits Ventes
RefProd=NumProd
63
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle
Jointure naturelle :
Produits Ventes
RefProd Nom Catégorie PrixUnitaire NumProd NumClient NumVendeur DateV Quantite Montant
2 Parfum Cosmétique 85000 2 5 1 05/10/2018 3 255000
2 Parfum Cosmétique 85000 2 5 1 31/12/2018 1 85000
3 Biscuit Alimentaire 100 3 3 2 10/07/2018 1 15000
4 Boite lait 1 L Alimentaire 500 4 4 3 10/12/2018 3 300
Produits Ventes
RefProd Nom Catégorie PrixUnitaire NumClient NumVendeur DateV Quantite Montant
2 Parfum Cosmétique 85000 5 1 05/10/2018 3 255000
2 Parfum Cosmétique 85000 5 1 31/12/2018 1 85000
3 Biscuit Alimentaire 100 3 2 10/07/2018 1 15000
4 Boite lait 1 L Alimentaire 500 4 3 10/12/2018 3 300
Division :
Soit R et S, 2 relations dont l’ensemble des attributs de S est inclus dans l’ensemble
des attributs de R.
La division de R par S, R S est une relation P qui comporte les attributs
appartenant à R mais n'appartenant pas à S et l'ensemble des tuples qui concaténés à
ceux de S donnent toujours un tuple de R.
R
S P
A B
X1 Y1 B A
X1 Y2 Y1 X1
X2 Y1 Y2 X2
X2 Y2
X3 Y2
Quels sont les X dans A associés à tous les Y dans B?
65
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle
Exemple
66
II. Algèbre relationnelle Produits (RefProd, Désignation, Catégorie, PrixUnitaire)
68
I. Le Langage de Définition de Données (LDD)
1. Types SQL selon la norme ANSI
69
I. Le Langage de Définition de Données (LDD)
CREATE DATABASE [IF NOT EXISTS] Nom_Bdd : Création d’une base de données de nom
Nom_Bdd
CONDITION
71
I. Le Langage de Définition de Données (LDD)
3. Création des tables
Telephone integer(8))
CREATE TABLE Ventes (RefProd integer, NumClient integer, NumVendeur integer, DateVente
date, Quantite int, Montant float)
Clés primaires?
72
I. Le Langage de Définition de Données (LDD)
3. Création des tables
CREATE TABLE Produits (RefProd integer, nom char(20) NOT NULL, Catégorie char(20),
PrixUnitaire float)
Contrainte DEFAULT: permet d’insérer une valeur par défaut dans une
colonne lors de l’insertion d’un tuple sans préciser de valeur pour la colonne
Contrainte UNIQUE: permet de garantir que les valeurs dans une colonne
ou un ensemble de colonnes sont toutes différentes
CREATE TABLE Produits (RefProd integer, nom char(20), Catégorie char(20)
74
I. Le Langage de Définition de Données (LDD)
3. Création des tables
Contrainte de clé primaire : PRIMARY KEY
Primary Key (Attribut) : si clé primaire mono-attribut
Primary Key (Attribut1, …, Attributn) : si multi-attribut
CREATE TABLE Produits (RefProd int primary key, nom char(20), Catégorie char(20),
PrixUnitaire float)
CREATE TABLE Clients (NumClient int primary key, NomClient varchar(30), Adresse text,
Telephone int(8))
CREATE TABLE Ventes (RefProd int, NumClient int, NumVendeur int, DateVente date, Quantite
int, Montant float)
CREATE TABLE Ventes (RefProd int, NumClient int, NumVendeur int, DateVente
date, Quantite int, Montant float,
PRIMARY KEY(RefProd,NumClient, DateVente))
Les 3 champs participent à la clé primaire
75
I. Le Langage de Définition de Données (LDD)
3. Création des tables
CREATE TABLE Ventes (RefProd int, NumClient int, NumVendeur int, DateVente date NOT NULL,
Quantite int, Montant float, PRIMARY KEY(RefProd,NumClient, DateVente))
76
I. Le Langage de Définition de Données (LDD)
3. Création des tables
Contrainte de clé primaire : PRIMARY KEY
77
I. Le Langage de Définition de Données (LDD)
3. Création des tables
Contrainte de clé étrangère : FOREIGN KEY
CREATE TABLE Ventes (RefProd int, NumClient int, NumVendeur int, DateVente
date, Quantite int, Montant float,
78
I. Le Langage de Définition de Données (LDD)
3. Création des tables
Contrainte de clé étrangère : FOREIGN KEY
79
I. Le Langage de Définition de Données (LDD)
4. Modification d’une table
80
I. Le Langage de Définition de Données (LDD)
4. Modification d’une table
82
I. Le Langage de Définition de Données (LDD)
4. Modification d’une table
Modification l’attribut Catégorie (fixer une valeur par défaut) SET DEFAULT
83
I. Le Langage de Définition de Données (LDD)
5. Suppression d’une table
84
I. Le Langage de Manipulation de Données (LMD)
1. Commandes du LMD
85
I. Le Langage de Manipulation de Données (LMD)
2. Insertion des données
A1, ... ,An : Les noms des attributs dans lesquels une valeur sera placée
Les attributs non mentionnés seront :
à NULL s’ils ne sont pas spécifiés NOT NULL
ou à la valeur par défaut si définie
Les attributs spécifiés NOT NULL et sans valeur par défaut doivent
obligatoirement figurer dans une clause INSERT.
Les valeur1, ... valeurn sont les valeurs des attributs
86
I. Le Langage de Manipulation de Données (LMD)
2. Insertion des données
PRODUITS
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 5000
87
I. Le Langage de Manipulation de Données (LMD)
2. Insertion des données
Insertion dans l’ordre des colonnes en précisant des valeurs pour tous les
attributs : pas nécessaire d’indiquer les noms des attributs dans ce cas
PRODUITS
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 5000
2 Parfum Cosmétique 15000
88
I. Le Langage de Manipulation de Données (LMD)
2. Insertion des données
PRODUITS
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 4500 Modification d’un tuple
2 Parfum Cosmétique 15000
3 Biscuit Alimentaire 100
PRODUITS
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 4050
2 Parfum Homme Luxe 13500
3 Biscuit Alimentaire 90
91
I. Le Langage de Manipulation de Données (LMD)
4. Suppression des tuples
PRODUITS
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 4050
2 Parfum Homme Luxe 13500
3 Biscuit Alimentaire 90
Attention
DELETE FROM produits;
Suppression de tous les tuples si
aucune condition n’est spécifiée RefProd Nom Catégorie PrixUnitaire
92
I. Le Langage de Manipulation de Données (LMD)
5. Sélection des données
Format d’une requête SELECT
93
I. Le Langage de Manipulation de Données (LMD)
5. Sélection des données
94
I. Le Langage de Manipulation de Données (LMD)
5. Sélection des données
Nom Catégorie
PRODUITS Parfum Cosmétique
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 5000
2 Parfum Cosmétique 15000
3 Biscuit Alimentaire 100
95
I. Le Langage de Manipulation de Données (LMD)
5. Sélection des données
Catégorie Catégorie
Alimentaire Alimentaire
Catégorie
x
Alimentaire
Cosmétique Cosmétique
Cosmétique
Alimentaire Alimentaire
96
I. Le Langage de Manipulation de Données (LMD)
5. Sélection des données
Les conditions de recherche
Comparaison
• PrixUnitaire>10000
• Catégorie=’’Alimentaire’’
• PrixUnitaire<=5000 AND Catégorie=’’Alimentaire’’
Appartenance à une étendue ou à un intervalle
• PrixUnitaire BETWEEN 10000 AND 20000
Appartenance à un ensemble
• Catégorie IN (’’Alimentaire’’,’’Cosmétique’’)
Correspondance à un masque si des critères de type chaine de caractère
• Catégorie LIKE ’’Cosm%’’ Cosmétique/ Cosmétiques/ Cosmetique…
• Catégorie LIKE ’’%Cosmétiqu_’’ Cosmétique
• Catégorie LIKE ’’%Cosm_tiqu_’’ Cosmetique
nul
Catégorie IS NULL
97
I. Le Langage de Manipulation de Données (LMD)
5. Sélection des données
98
I. Le Langage de Manipulation de Données (LMD)
5. Sélection des données
Utilisation des opérateurs
99
I. Le Langage de Manipulation de Données (LMD)
5. Sélection des données
Utilisation des opérateurs sur les chaînes de caractères
100
I. Le Langage de Manipulation de Données (LMD)
5. Sélection des données : Jointure
Produits
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 125000
2 Parfum Cosmétique 85000
3 Biscuit Alimentaire 100
4 Boite lait 1 L Alimentaire 500
Ventes
NumProd NumClient NumVendeur DateV Quantite Montant
2 5 1 05/10/2018 3 255000
2 5 1 31/12/2018 1 85000
3 3 2 10/07/2018 1 15000
4 4 3 10/12/2018 3 300
101
I. Le Langage de Manipulation de Données (LMD)
5. Sélection des données : Jointure
102