Introduction à l'algèbre relationnelle
Introduction à l'algèbre relationnelle
Introduction à l’algèbre
relationnelle et les bases de
données
DR. MOHAMED MAHDI BENMOUSSA
Plan
• Introduction
• Origine
• Historique
• Définitions et concepts de base
• Algèbre relationnelle
• Bases de données relationnelles
• Langage SQL
Intérêt du cours Introduction
Gestion des
données
Utilisation
Utilisation
des bases
des fichiers
de données
Système de Système
gestions des de gestion
bases de données des fichiers
Système de gestion de fichiers Introduction
Avant les
Utilisation
bases de
des fichiers
données
Inconvénients :
Coût : • Connaître l’organisation
• Système rigide des fichiers
• Situation contraignantes • Ecrire un programme pour
• Gestion longue et couteuse manipuler les fichiers
• Données mal définit • Nouvelles applications
• … implique nouveaux
fichiers et programmes
Passage aux bases de données Introduction
Pourquoi les
bases de
données (BD)
Résoudre les
Apporter des
limites de
progrès
l’utilisation des
technique
fichiers
Accès des
Maniabilité et données à
mis à jour facile n’importe quel
moment
Utilisation de
systèmes de gestion
de bases de
données
Historique Introduction
1970 :
• Début SGBD réseaux et
hiérarchiques proches des
1960 :
fichiers
Système de gestion de
• Pas d’interrogation des bases s’il
fichiers sophistiqués
n’y a pas la position et sans
programme
1990 :
• SGBD relationnel
1980 :
domine le marché
Apparition des SGBD relationnels
• Début des SGBD
orientés objet
Définition Introduction
Niveau conceptuel :
• Description de la structure de toutes les données qui existent dans la BD
• Description des propriétés (relation entre bases) sémantiques
• Ps : pas de prise en compte de l’utilité de la base ou son implémentation
• Appellation « schéma conceptuel »
Concepts de base Introduction
Niveau externe :
• Description pour chaque utilisateur de sa conception des données
• Présentation des données sous plusieurs vues
• Appellation « schéma externe (vue) »
Architecture d’un SGBD Introduction
Interface
Interface d’accès
utilisateur physique
Besoin
utilisateur
SGBD BD
BD:
• Ensemble des informations relatives à une entreprise
• Liste du personnel
• Liste des clients
• Liste des produits
Niveau interne ou
Schéma
physique
interne
BD
Exemple Introduction
Analogie des niveaux avec déclaration de types :
Déclaration d'un enregistrement en C :
typedef struct
{ char nom[15];
char rue[25];
char ville[15];
}Client;
Au niveau externe :
L'enregistrement est décrit par des vues :
• Vue #1 : tous les clients demeurant dans la ville X
• Vue #2 : tous les clients ayant le même nom de famille
• Vue #3 : tous les clients demeurant sur la rue Y
Exemple Introduction
Au niveau conceptuel :
L'enregistrement est décrit par son contenu significatif et ses relations
Client
Nom Ville
Au niveau Physique : Rue
L'enregistrement est décrit comme un bloc d'emplacement mémoires consécutifs (mots
ou octets)
La modélisation se réalise en trois étapes principales qui qui correspondent à trois niveaux
d’abstraction différents.
I. Niveau conceptuel : représente le contenu de la base en
termes conceptuels, indépendamment de toute
considération informatique.
II. Niveau logique (relationnelle) : résulte de la traduction
du schéma conceptuel en un schéma propre à un type de BD.
III. Niveau physique : est utilisé pour décrire les méthodes
d’organisation et d’accès aux données de la base.
Conception des BD Introduction
I)- Modélisation conceptuel:
La modélisation est une étape fondamentale de la conception de la BD dans la mesure où, d’une part,
on y détermine le contenu de la BD et, d’autre part, on y définit la nature des relations entre les
concepts principaux.
Les éléments de base du modèle ER (entité-relation) ou E-A (entité-association) sont les suivants :
1. Les entités : définit comme un objet pouvant être identifie distinctement. Il existe deux catégories : entités régulières (son
existence ne dépend pas de l’existence d’une autre entité) et entités faibles (son existence dépend de l’existence d’une
autre entité)
2. Les attributs : caractéristiques ou propriétés des entités. Un attribut peut être obligatoire ou facultatif et avoir un domaine
de valeurs
3. Type de relation et cardinalités : représentent les liens existants entre les entités. Les relations sont caractérisées, comme
les entités, par un nom et éventuellement des attributs. Cardinalité est le nombre de participation d’une entité à une
relation (un à un, un à plusieurs, plusieurs à plusieurs, zéro à un et zéro à plusieurs).
4. L’identifiant : parmi tous les attributs de l’entité, l’identifiant est un attribut ou un ensemble d’attributs permettant de
déterminer une et une seule entité à l’intérieur de l’ensemble. Graphiquement les identifiants sont les attributs soulignés.
L’entité faible aura un identifiant composé de l’entité dont elle dépend et d’un autre attribut.
Conception des BD Introduction
I)- Modélisation conceptuel: exemple
Conception des BD Introduction
I)- Modélisation conceptuel: exemple
Une situation à modéliser peut avoir plusieurs schéma différents, chaque modèle présentant des
avantages et des inconvénients.
Pour mesurer la qualité d’une modélisation ER il existe plusieurs critères à utiliser de manière
combinée :
L’expressivité : traduit la richesse sémantique du schéma. Peut être caractérisée par exemple par le
nombre de concepts et/ou contraintes exprimés dans le tableau
La minimalité : tend à privilégier les schémas avec un nombre de redondances minimales
La lisibilité : consiste à évaluer la représentation graphique proprement dite
La simplicité : privilégie les schémas contenant un nombre de concepts minimum. On peut la
mesurer par exemple en calculant le nombre d’entités d’associations présent sur un schéma.
Conception des BD Introduction
I)- Modélisation conceptuel: construction d’un schéma conceptuel
1. Déterminer la liste des entités
1. Domaine : ensemble de valeur défini en extension ou en intension. Un domaine peut être simple ou
composé. Un domaine est simple si tous les éléments sont atomiques. Par exemple : l’ensemble des
salariés peut être définit en extension par employé, agent de maîtrise ou cadre. Un domaine est
composé si les éléments peuvent être décomposés. Par exemple : une date est décomposée d’un
jour, un mois et une année
2. Attribut : chaque colonne est appelée attribut et contient un ensemble des valeurs d’un domaine.
Chaque ligne représente un tuple.
3. Relation ou table : une relation est un tableau à deux dimensions. Le degré de la relation est le
nombre de colonnes ou des domaines considérés.
Conception des BD Introduction
II)- Modélisation logique relationnelle :
Conception des BD Introduction
II)- Modélisation logique relationnelle :
Les contraintes d’intégrité : permettent d’assurer la cohérence des données. Les contraintes d’intégrité
sont :
Contrainte de domaine : restriction de l’ensemble des valeurs possibles d’un attribut.
Contrainte de clé : définit un sous-ensemble minimal des colonnes tel que la table ne puisse contenir deux lignes ayant
même valeurs pour ces colonnes. Il y a trois types de clés :
Clé primaire : ensemble minimum d’attributs qui permet de distinguer chaque n-uplet de la table par rapport à tous les autres. Chaque table doit avoir une clé
primaire.
Clé candidate : ensemble minimum d’attributs susceptibles de jouer le rôle de la clé primaire.
Clé étrangère : fait référence à la clé primaire d’une autre table
Contrainte obligatoire : précise qu’un attribut ou plusieurs attributs doivent toujours avoir une valeur
Contrainte d’intégrité référentielle ou d’inclusion : lie deux colonnes ou deux ensembles de colonnes de deux tables
différentes.
Théorème de la normalisation :
Première forme normale : si elle ne contient que des attributs atomiques.
Deuxième forme normale : si elle ne contient que des attributs atomiques et, si de plus, il n’existe
pas de dépendance fonctionnelle entre une partie d’une clé et une colonne non clé de la table.
Troisième forme normale : si elle ne contient que des attributs atomiques, s’il n’existe pas de
dépendance fonctionnelle entre une partie d’une clé et une colonne non clé de la table et si, de
plus, aucune dépendance fonctionnelle entre les colonnes non clé.
Ainsi plus une table est normalisée moins elle comporte de redondances et donc de risques
d’incohérence sémantiques dans les schémas relationnels.
Conception des BD Introduction
II)- Modélisation logique relationnelle : Règles de conception d’un schéma relationnel
Règle 1 : toute entité est traduite en une table relationnelle dont les caractéristiques sont les suivantes
:
1. Le nom de la table est le nom de l’entité
2. La clé de la table est l’identifiant de l’entité
3. Les autres attributs de la table forment les autres colonnes de la table
Conception des BD Introduction
II)- Modélisation logique relationnelle : Règles de conception d’un schéma relationnel
Règle 2 : Toute relation binaire plusieurs à plusieurs
est traduite en une table relationnelle dont les
caractéristiques sont les suivantes :
1. Le nom de la table est le nom de la relation
2. La clé de la table est formée de la concaténation des
identifiants des entités participant à la relation
3. Les attributs spécifiques de la relation forment les autres
colonnes de la table
Langage procédural : indique comment construire une nouvelle relation à partir d’une
ou plusieurs relations existantes (relation est une base de données)
Langage abstrait, avec des opérations qui travaillent sur une (ou plusieurs) relation(s)
pour définir une nouvelle relation sans changer la (ou les) relation(s) original(s)
Le résultat de toute opération est une relation (propriété de fermeture) et qui
implique qu’il n’y a pas de doublons dans le résultat et permet l’écriture d’expressions
de calcul.
L’algèbre relationnelle utilise les opérateurs classiques de manipulation des
ensembles (union, intersection, différence et produit cartésien). Elle introduit
également des opérateurs propres aux bases de données (sélection, projection,
jointure et division). Ces opérateurs sont soit unaires soit binaires.
Algèbre relationnelle Introduction
Opérateurs
Opérations ensemblistes
fondamentales
Union
Sélection
Intersection
Projection
Différence
Produit cartésien
produit
Union
-
différence
Opérateurs
Autres opérations relationnels
Jointure Sélection
Intersection Projection
Division Jointure
… division
… -
Algèbre relationnelle Introduction
Opérateurs ensemblistes :
Les opérateurs ensemblistes correspondent aux opérateurs habituels de la théories
des ensembles
Ces opérateurs sont l’union, l’intersection et la différence
Le schéma suivant illustre l’effet des trois premiers opérateurs sur des tables de
mêmes schémas. Le résultat état la partie colorée.
Algèbre relationnelle Introduction
Opérateurs ensemblistes : Opérateur Union
Soient r et s, deux relations de schémas respectifs R et S. Les schémas R et S doivent
être union-compatibles.
Deux relations sont dites « union-compatibles » si elles ont le même schéma de
relation, c’est-à-dire qu’elles ont le même nombre d’attributs et que ceux-ci ont le
même domaine.
L’union des deux relations « 𝑅 ∪ 𝑆 » produit une nouvelle relation de schéma
identique à R et à S possédant les enregistrements appartenant à R ou à S ou aux
deux relations.
Algèbre relationnelle Introduction
Opérateurs ensemblistes : Opérateur Union
Type opération : binaire
Syntaxe : « 𝑅 ∪ 𝑆 »
Sémantique : réunit dans une même relation les tuples de R et ceux de S (sans
doublons)
Schéma : schéma (𝑅 ∪ 𝑆) = schéma (𝑅) = schéma (𝑆)
Précondition : schéma (𝑅) = schéma (𝑆)
Algèbre relationnelle Introduction
Opérateurs ensemblistes : Opérateur Union
Exemple :
Supposons que nous disposons de 2 tables produit : produit1 et produit2 exprimant le
fait que les produits sont stockés dans deux dépôts différents.
Question : lister tous les produits.
Réponse : réaliser l’union des deux tables de produit.
Algèbre relationnelle Introduction
NP LibP Coul Poids PU Qtes
Produit 1 P001 Robinet Gris 5 18.000 1200
P002 Prise Blanc 1.2 1.500 1000
P003 Câble Blanc 2 25.000 1500
P004 Peinture Blanc 25 33.000 900
Exemple :
Supposons que nous disposons de la table produit.
Question : Lister tous les produits dont le prix unitaire est < 33.000
Réponse : il faut réaliser une sélection sur les tuples dont le prix unitaire est < 33.000
σ[p] Produit avec p = PU < 33.000
Algèbre relationnelle Introduction
Opérateurs de BD : Sélection (σ) NP LibP Coul Poid PU Qtes
s
P001 Robinet Gris 5 18.000 1200
P002 Prise Blanc 1.2 1.500 1000
Produit1 P003 Câble Blanc 2 25.000 1500
P004 Peinture Blanc 25 33.000 900
P005 Poignée Gris 3 12.000 1300
P006 Serrure Jaune 2 47.000 1250
NP LibP Coul Poid PU Qtes
s
P001 Robinet Gris 5 18.000 1200
Produit2
P002 Prise Blanc 1.2 1.500 1000
P003 Câble Blanc 2 25.000 1500 Produit2 = σ[p] Produit avec p=PU < 33.000
P005 Poignée Gris 3 12.000 1300
Algèbre relationnelle Introduction
Opérateurs de BD : Sélection (σ)
Exemple : Lister tous les ouvrages dont Représentation graphique
Le genre est BD et dont l’éditeur est
Eyrolles
La projection est un opérateur unaire qui prend en entrée une relation r de schéma R
(A1; A2; …;An) et produit en sortie une nouvelle relation de schéma (A1; A2; …;Ai;Aj)
inclus dans R ayant comme enregistrements ceux de r restreints à ce sous-schéma
(A1; A2; ..;Ai;Aj).
Le but de la projection état de ne retenir que certains attributs dans une relation
(c’est-à-dire un ensemble de colonnes). A l’issue d’une projection, la relation
résultante peut contenir des doublons.
Algèbre relationnelle Introduction
Opérateurs de BD : Sélection (∏)
Type opération : unaire
Syntaxe : ∏ *attributs+ R (attributs : liste l’ensemble des attributs de R à conserver
dans le résultat.)
Notation fonctionnelle : R ,liste d’attributs-
Sémantique : crée une nouvelle relation de population l’ensemble des tuples de R
réduits aux seuls attributs de la liste spécifiée
Schéma : Schéma (résultat) ⊆ schéma (opérande)
Résultat : nombre tuples (résultat) = nombre tuples (opérande) (en comptant les
doublons)
Algèbre relationnelle Introduction
Opérateurs de BD : Sélection (∏)
Exemple :
Supposons maintenant que nous disposons de la table produit
Question : Lister toutes les désignations de produit
Réponse : il faut réaliser une projection sur la table produit pour ne garder que
l’attribut
LibP : ∏ [LibP] (Produit1)
Algèbre relationnelle Introduction
Opérateurs de BD : Sélection (∏) NP LibP Coul Poid PU Qtes
s
Produit2 = ∏[LibP] (Produit1)
P001 Robinet Gris 5 18.000 1200
P002 Prise Blanc 1.2 1.500 1000
Produit1 P003 Câble Blanc 2 25.000 1500
P004 Peinture Blanc 25 33.000 900
LibP P005 Poignée Gris 3 12.000 1300
P006 Serrure Jaune 2 47.000 1250
Robinet
Prise
Câble
Produit2
Peinture
Poignée
Serrure
Algèbre relationnelle Introduction
Opérateurs de BD : Division (/)
Le résultat de la division d’une relation R(X, Y) par une relation S(Y) est relation Q(X)
définie par :
Le schéma de Q est constitué de tous les attributs de R n’appartenant pas à S
Les tuples qj de Q tels que, quels que soit les tuples si de S, le tuple (qj, si) est un
tuple de R (c’est-à-dire QXS ⊆ R)
La division traite les requêtes de style « les … tels que TOUS les »
Algèbre relationnelle Introduction
Opérateurs de BD : Division (/)
Type d’opération : binaire
Syntaxe : R / S, soient R(A1, …, An) et S (A1, …, Am) avec n > m et A1, …, Am des
attributs de même nom dans R et S
R / S =,<am+1, am+2, …, an> / ∀ <a1, a2, …, am> ∈ S, existe <a1, a2, …, am, am+1, …,
an> ∈ R}
Sémantique : crée une nouvelle relation de population des tuples dont la
concaténation avec les n-uplets de S appartiennent à R
Schéma : schéma (résultat) ⊆ schéma (opérande)
Résultat : nombre tuples (résultat) <= nombre tuple (opérande)
Algèbre relationnelle Introduction
Opérateurs de BD : Division (/)
Exemple :
Question : quels sont les commandes qui portent sur tous les produits
Réponse : Diviser la relation ligne_Cmd par la relation produit (ne contenant pas de
NP).
Algèbre relationnelle Introduction
Opérateurs de BD : Division (/) NCmd NP Qte
Représentation graphique Ligne_Cmd C001 P001 250
Ligne_Cmd / Produit Produit C001 P002 300
C001 P003 100
NCmd Qte NP C001 P004 200
C001 P001 P001 C001 P005 550
C001 P002 P002 C001 P006 50
C001 P003 P003 C001 P007 100
C001 P004 P004 C001 P008 150
C001 P005 P005 C004 P009 70
C001 P006 P006 C004 P010 90
C001 P007 P007 C005 P011 650
C001 P008 P008 C005 P012 100
Algèbre relationnelle Introduction
Opérateurs de BD : Jointure (⋈)
Soient r et s deux relations de schémas respectifs R et S. La jointure de R et S, selon
une condition que doivent vérifier les valeurs des tuples est l’ensemble des tuples du
produit cartésien R x S satisfaisant cette condition. Donc on peut la considérer comme
un produit cartésien suivi d’une sélection.
La relation résultant de la jointure possède comme schéma l’union des deux schémas
R et S et comme enregistrements la concaténation des enregistrements de R avec
ceux de S qui répondent à la condition de sélection.
La condition de sélection utilise les opérateurs de comparaison (=, <, <=, >, >=, !=), les
connecteurs logiques (et, ou, non) et les parenthèses.
Lorsque le critère de sélection est l’égalité, on parle d’équi-jointure sinon on parle de
thétajointure.
Algèbre relationnelle Introduction
Opérateurs de BD : Jointure (⋈)
Type opération : binaire
But : créer toutes les combinaisons significatives entre tuples de deux relation (le
critère de combinaison est explicitement défini en paramètre de l’opération)
Syntaxe : R ⋈ [p] S, p : prédicat de sélection (condition de jointure)
Sémantique : combine certains tuples qui répondent à une condition
Schéma : schéma (R ⋈ [P] S) = schéma (R) ∪ schéma (S)
Algèbre relationnelle Introduction
Opérateurs de BD : Jointure (⋈)
Exemple :
Le langage SQL Introduction
Introduction :
SQL : Structured Query Language
Accéder aux données de la base de données
Langage adapté aux bases de données relationnelles
Existe sur tous les SGBD relationnels (Oracle, Access, …)
Défini par une norme ISO
Il est utilisé dans les bases de données Oracles depuis 1979
Le langage SQL Introduction
Caractéristiques de SQL :
SQL est un langage de définition de données (LDD), c’est-à-dire qu’il permet de créer
des tables dans une base de données relationnelle, ainsi que d’en modifier ou en
supprimer.
SQL est un langage de manipulation de données (LMD), cela signifie qu’il permet de
sélectionner, insérer, modifier ou supprimer des données dans une table d’une base
de données relationnelle.
Il est possible avec SQL de définir des permissions au niveau des utilisateurs d’une
base de données. On parle de DCL (Data control language).
Le langage SQL Introduction
Définition de données (LDD) : création de table
Pour créer une table, on utilise le couple de mots-clés « CREATE TABLE :
CREATE TABLE NomTable (
NomColonne1 TypeDonnée1 (longueur1),
NomColonne2 TypeDonnée2 (longueur2),
...
constraint nom_contrainte1 type_contrainte1, . . . );
Le langage SQL Introduction
Définition de données (LDD) : création de table
Il est possible de créer une table en insérant directement des lignes lors de la
création. On récupère les lignes à insérer avec « AS SELECT » :
CREATE TABLE NomTable (
NomColonne1 TypeDonnée1 (longueur1),
NomColonne2 TypeDonnée2 (longueur2),
...
);
AS SELECT NomChamp1, NomChamp2, . . .
FROM NomTable2
WHERE . . . ;
Le langage SQL Introduction
Définition de données (LDD) : création de table
Type de données :
Modification de colonnes
ALTER TABLE nom_table MODIFY (colonne1 type1, colonne2 type2);
Suppression de colonnes
ALTER TABLE nom_table DROP COLUMN (colonne1, colonne2);
Le langage SQL Introduction
Définition de données (LDD) : Modification de la structure
Exemples :
constraint nomcontrainte {
unique | primary key ( col1*,col2+…)
| foreign key ( col1*,col2+…)
references [schema+.table ( col1*,col2+…)
[ON DELETE CASCADE] | check (condition)
}
Suppression de contraintes :
ALTER TABLE nom_table
DROP CONSTRAINT nom_contrainte;
Le langage SQL Introduction
Définition de données (LDD) : Contraintes
Exemples :
Exemple :
INSERT INTO service (idSer, nomSer)
VALUES (50, ‘réseaux et Systèmes’);
Exemple :
UPDATE employe
SET nom = ‘Michel’, adresse = ‘toulouse’
WHERE idEmp = 100;
UPDATE employe
SET salaire = salaire * 1.1
WHERE idSer = ‘info’;
Le langage SQL Introduction
Langage de manipulation de données (LMD) : Suppression
Suppression de ligne (s) d’une table DELETE FROM nom_table
[WHERE prédicat;]
Exemples :