Abdelhak BOULAALAM
abdelhak.boulaalam@usmba.ac.ma
https://sites.google.com/a/usmba.ac.ma/boulaalam/
1
OBJECTIFS DU MODULE
• Elément 1: Conception des systèmes d’information
• Apprendre à modéliser, choisir et utiliser les structures de
données standard.
• Concevoir des systèmes d’information ER EA (Méthode MERISE.
• Elément 2: Bases de données (Application sous Oracle)
• Concevoir et implémenter des bases de données relationnelles.
• Algèbre Relationnelle et SQL
• Implémentation sous Oracle
1
28/05/2021
• Partie 2
3 • Algèbre Relationnelle - Relational Algebra
2
28/05/2021
Rows
Ted Codd
Turing Award 1981
A. BOULAALAM
Algèbre relationnelle
A. BOULAALAM 6
3
28/05/2021
Algèbre relationnelle
7 Introduction
• Edgar Frank Codd inventeur du modèle relationnel ,
basé sur l’algèbre relationnelle.
• Il a conçu son modèle relationnel POUR faire
disparaître les inconvénients des model précédents (limites
modèle hiérarchique…).
• Codd décrit des règles que, devait obligatoirement suivre
un SGBD pour être relationnel.
• Ce modèle relationnel, bien que datant de plusieurs
décennies sert toujours de fondement aux bases de
données relationnelles.
A. BOULAALAM
Algèbre relationnelle
8 Introduction
• Pourquoi étudier l’algèbre relationnelle?? Ns Somme içi
• Comment les SGBDs Traitent les requêtes ?? Partie 2
A. BOULAALAM
4
28/05/2021
Algèbre relationnelle
9 Introduction- définition
• AR: Un langage procédural constitué d'un ensemble
d'opérations qui prennent une ou deux relations comme
entrée et produisent une nouvelle relation comme résultat.
• Concepts fondamentaux:
• domaine,
• attribut,
• relation,
• tuple,
• schéma de relation,
• clé de relation et base de données relationnelles.
• Les opérations de base:
• union, intersection, différence, projection, sélection, rename ...
A. BOULAALAM
Algèbre relationnelle
10 Concepts
1. Domaine
• Le concept de base de l’algèbre est l’ensemble:
• Une collection d’éléments cohérents liés par une condition
permettant de définir leur appartenance à ce groupe
Dans l’algèbre relationnelle, on parlera de domaine.
• Un domaine est un ensemble de valeurs. On le
représentera de la manière suivante:
D = {v1,v2,…vn}.
• Un domaine peut être un sous-ensemble d’un autre
domaine.
A. BOULAALAM
5
28/05/2021
Algèbre relationnelle
11 Concepts
1. Domaine (Exemples)
• Le domaine des booléens :
Db = {0,1}.
• Le domaine des couleurs primaires :
Dcp = {jaune, rouge, bleu}.
• Le domaine des couleurs spectrales, issues de la décomposi
tion de la lumière solaire par un prisme :
A. BOULAALAM
Algèbre relationnelle
12 Concepts
2. Produit cartésien - Cartesian product: x
• Le produit cartésien de n domaines D1, D2,… Dn est
l’ensemble des n_uplets <vD1, vD2,…vDn> tel que vDi
appartienne à Di.
• Ce produit cartésien est noté D1x D2x…xDn
Exemple :
• Le produit cartésien du domaine des booléens avec le do
maine des couleurs primaires, soit Db x Dcp,
va être constitué de 2_uplets (paires)
dont la première valeur appartiendra à Db et la deuxième
à Dcp.
Db x Dcp = {(0, rouge),(0, jaune), (0, bleu), (1, rouge),
(1, jaune), (1, bleu)}
A. BOULAALAM
6
28/05/2021
Algèbre relationnelle
13 Concepts
Exercice :
Soit S = {red, yellow, green} et T = {plaid, stripe, dot}.
Trouver le Cartesian product de S et T.
A. BOULAALAM
Algèbre relationnelle
14 Concepts
3. Tuple
• Un tuple une liste de valeurs provenant
de domaines.
• Donc, un n-uplet issu d’un produit cartésien de n
domaines.
Exemple 1 :
Si nous considérons le produit cartésien Db x
Dcp de l’exemple précédent, nous avons 6 tuples :
<0, rouge>, <0, jaune>, <0,bleu>, <1, rouge>,
<1, jaune>, <1, bleu>.
A. BOULAALAM
7
28/05/2021
Algèbre relationnelle
15 Concepts
3. Tuple
Exemple 2: la table instructor
Si nous considérons le tuple suivant :
<45565, Katz, Comp. Sci., 75000>
Contient des valeurs issues des 4 domaines: ID, name,
dept_name et salary
Il est issu du produit cartésien suivants : ID × name ×
dept_name × salary
exprime le fait que l’instrucor identifié 45565,
s’appelle Katz, enseigne dans le département Comp. Sci. Et
a un salaire de 75000 Dollar par exemple.
A. BOULAALAM
Algèbre relationnelle
16 Concepts
4. Relation
• Concept le plus important de l’algèbre relationnelle.
a. Définition et caractéristiques d’une relation
• Une relation est un sous-ensemble du produit cartésie
n de n domaines (n>0).
• Une relation est un ensemble de tuples. Une relation a de
0 à n tuple(s).
• Pourquoi parle-t-on de sous-ensemble de produit
cartésien ?
Parce que la relation n’est pas obligatoirement l’ensemble
exhaustif de tous les n_uplets créés par le produit
A. BOULAALAMcartésien.
8
28/05/2021
Algèbre relationnelle
17 A- Définition et caractéristiques d’une relation
4. Relation (Règles)
• Toute relation est déterminée par son nom.
• Chaque domaine participant au produit cartésien est appelé
attribut de la relation.
• Une relation a de 1 à n attribut(s).
• Un attribut contiendra des valeurs appartenant au même domaine.
• L’ordre de déclaration des attributs d’une relation n’a pas
d’importance.
• Lorsque plusieurs attributs prennent leurs valeurs dans le même
domaine, le rôle des attributs doit être précisé et
leurs noms doivent être différents. À l’intérieur d’une relation,
chaque attribut a un nom unique.
A. BOULAALAM
Algèbre relationnelle
18 A- Définition et caractéristiques d’une relation
4. Relation: Exemple 1 (BD university)
la relation Student a des attributs stuId, lastName, firstName, major et credits, chacun
avec leurs domaines correspondants.
La relation student est tout sous-ensemble du produit cartésien des domaines, ou tout
ensemble de 5 tuples dans lequel le premier élément stuId, puis lastName... firstName,
major et en fin credits. On peux spécifier le domaine avant la
Certains des 5 tuples sont: { valeur:
(S1001, Smith, Tom, History, 90),
Plus exactement, ces 5-tuples sont :
{
(S1002, Chin, Ann, Math, 36),
(stuId:S1001, lastName: Smith,
...} firstName:Tom, major:History, credits:90),
(stuId:S1002, lastName:Chin, firstName:Ann,
major:Math, credits:36),
A. BOULAALAM ...}
9
28/05/2021
Algèbre relationnelle
19 A- Définition et caractéristiques d’une relation
4. Relation
• La relation peut être exprimée sous deux formats :
• en intention schéma de Relation
• en extension table avec les données!
A. BOULAALAM
Algèbre relationnelle
20
4. Relation
b. Relation en intention : schéma de Relation
• Un schéma de relation est le nom de la relation suivi de ses attributs
et de leurs domaines d’appartenance.
Exemple :
• La relation ELEVE est un sous-ensemble du produit cartésien:
Numéro élève x Nom x Ville de naissance x Ville de résidence x Date de
naissance x Date d’inscription
• et a pour relation :
ELEVE (Numéro élève : Nombre, Nom : Nom, Ville de naissance :
Ville, Ville de résidence : Ville, Date de naissance : Date,
Date d’inscription : Date).
Pour alléger l’écriture, le schéma de relation se limite souvent au
A. BOULAALAMde la relation suivi de ses attributs.
nom
10
28/05/2021
Algèbre relationnelle
21 B- Relation en intention : schéma de Relation
4. Relation
• les attributs que nous manipulons sont des éléments du
dictionnaire de données dans lequel le format et le
type sont précisés.
Il sera facile de les typer, en se référant au dictionnaire.
Exemple :
La relation ELEVE:
Intention: ELEVE (Numéro élève : Nombre, Nom : Nom,
Ville de naissance : Ville, Ville de résidence
: Ville, Date de naissance : Date, Date d’inscription
: Date) peut être allégée :
Intention allégée ELEVE (Numéro élève, Nom ,
Ville de naissance , Ville de résidence,
Date
A. BOULAALAM
de naissance, Date d’inscription )
Algèbre relationnelle
22 c. Relation en extension : Relation sous forme tabulaire
4. Relation
c. Relation en extension : Relation sous forme tabulaire
• Quand la relation est exprimée en intention, ses tuples ne sont
pas visibles. Par contre, la présentation de la relation en
extension permet de les lister.
• La relation en extension est représentée sous forme de
tableau:
• Les lignes de la table sont les tuples.
• Chaque colonne de la table contient les valeurs d’un et un seul
domaine.
A. BOULAALAM
11
28/05/2021
Algèbre relationnelle
23 d. Clé de relation
4. Relation
d. Clé de relation
• Dans une relation, la clé de relation est l’un de ses
éléments le plus important.
• Une clé de relation est un attribut ou une composition
minimale d’attributs dont chacune des valeurs permet de
déterminer, d’une manière unique, un tuple de la relation.
• la valeur d’une clé (mono-attribut ou combinaison
minimale d’attributs) de relation ne peut exister
qu’une seule fois dans la relation en extension.
A. BOULAALAM
Algèbre relationnelle
24 d. Clé de relation
4. Relation
d. Clé de relation (Clés candidates et clé primaire)
• Dans une relation, il peut y avoir plusieurs attributs ou
compositions d’attributs qui permettent de déterminer,
d’une manière unique, un tuple de la relation ; mais il n’y a
qu’une seule clé de relation.
• Ces attributs ou ces compositions d’attributs sont donc
susceptibles de devenir clé de relation. Ils sont appelés
clés candidates.
Les clés candidates n’ont pas obligatoirement toutes le
même nombre d’attributs.
A. BOULAALAM
12
28/05/2021
Algèbre relationnelle
25 d. Clé de relation
4. Relation
d. Clé de relation (Clés candidates et clé primaire) -
règles
• Il n’y a qu’une seule clé par relation.
• Il faut donc faire un choix parmi les clés candidates.
• Ce choix se fera non pas par rapport aux attributs entre eux
mais au SI entier : à son métier, ses traitements, à ses
fonctionnalités…
• La clé de la relation choisie, elle sera appelée la clé
primaire de la relation.
A. BOULAALAM
Algèbre relationnelle
26 d. Clé de relation (Clés candidates et clé primaire)
4. Relation
Exercice
Considérez le schéma de relation contenant les
données de book pour une librairie:
Book (title, author, isbn,
publisher, pubDate, pubCity,
qtyOnHand)
Identifiez la clé primaire, en écrivant toutes les
hypothèses que vous devez faire pour justifier votre
choix.
A. BOULAALAM
13
28/05/2021
Algèbre relationnelle
27 Base de données relationnelle
5. Base de données relationnelle
• Une base de données relationnelle est un ensemble exhaustif et
cohérent de schémas de relations.
• Cet ensemble de tables doit répondre à la problématique
du Système d’Information qu’il représente.
Exemple :
La base de données relationnelle des produits d’une entreprise
industrielle pourra comporter les schémas de relation suivants :
• PRODUIT(N°Produit, Libellé, Date de fabrication, Prix).
• ARTICLE(N°Article, Libellé, QuantitéenStock)
• NOMENCLATURE( N°Produit, N°Article, Quantité).
• le schéma de relation ELEVE(Numéro élève, Nom,
Ville de naissance, Ville de résidence, …) n’y figurera pas !
Cette relation n’appartient pas à ce domaine d’études
A. BOULAALAM
BD et Contraintes d’Intégrité
contraintes générale
28 Base de données relationnelle
5. Base de données relationnelle
• Il est important de préserver l'intégrité:
l'exactitude et la cohérence interne, des données dans la BD.
• ne permettant pas aux utilisateurs d'entrer des données qui rendraient la
base de données incorrecte.
• Le modèle relationnel nous permet de définir des contraintes
d'intégrité integrity constraints (ICs), qui sont des règles ou des
restrictions qui s'appliquent à toutes les instances de la base de
données.
• Une partie du travail d'un SGBD consiste à appliquer les
contraintes d'intégrité,
• Pour garantir que toutes les données saisies créent une instance légale de la
base de données.
A. BOULAALAM
14
28/05/2021
BD et Contraintes d’Intégrité
contraintes générale
29 Base de données relationnelle
• Étant donné que chaque attribut a un domaine
associé
• il existe des restrictions sur l'ensemble de valeurs
autorisées pour les attributs des relations.
• Celles-ci sont appelées contraintes de domaine et peuvent être
appliquées en SQL en définissant le domaine d'un attribut
lorsque nous créons une table
• Une alternative consiste à utiliser l'un des types de données
intégrés et à ajouter une contrainte appelée l'option CHECK, qui
nous permet de spécifier que la valeur d'un attribut doit être
comprise dans un ensemble de valeurs spécifié, ou qu'il doit
obéir à un condition que nous spécifions à l'aide de prédicats
logiques.
A. BOULAALAM
15
28/05/2021
16
28/05/2021
A. BOULAALAM
17
28/05/2021
Categories of DMLs
35 Data Manipulation Languages
C’est quoi?
• Langues graphiques- graphical :
• permettant à l'utilisateur de donner un exemple ou une illustration des
données à rechercher.
• QBE (QueryByExample) est un langage graphique qui permet aux
utilisateurs de fournir des exemples de données qu'ils souhaitent récupérer.
• Langages de quatrième génération (4GL):
• permetent de créer une application personnalisée complète à l'aide de
quelques commandes dans un environnement convivial, souvent piloté par
menus.
• Certains systèmes acceptent une variété de langage naturel:
• parfois appelé langue de cinquième génération, une version restreinte de
l'anglais naturel qui permet à l'utilisateur de saisir les exigences d'une
application et de faire en sorte que le système utilise l'intelligence artificielle
pour produire une solution.
A. BOULAALAM
Categories of DMLs
Pourquoi l’AR?
36 Data Manipulation Languages
• L'algèbre relationnelle et le calcul relationnel sont des
langages formels non conviviaux.
• Ils ne sont pas implémentés sous leur forme native dans les
SGBD, mais les deux ont été utilisés comme base pour
d'autres langages de manipulation de données de niveau
supérieur pour les bases de données relationnelles telles
que SQL.
• Raison pour laquelle il faut obligatoirement voir l'algèbre
relationnelle ici:
• car elle illustre les opérations de base requises de tout langage de
manipulation de données, et elle sert de standard de comparaison
pour d'autres langages relationnels.
A. BOULAALAM
18
28/05/2021
Algèbre relationnelle
37 Introduction
• Pourquoi étudier l’algèbre relationnelle?? Ns Somme içi
• Comment les SGBDs Traitent les requêtes ?? Partie 2
A. BOULAALAM
A. BOULAALAM
19
28/05/2021
A. BOULAALAM
20
28/05/2021
A. BOULAALAM
A. BOULAALAM
21
28/05/2021
A. BOULAALAM
22
28/05/2021
A. BOULAALAM
A. BOULAALAM
23
28/05/2021
A. BOULAALAM
24
28/05/2021
A. BOULAALAM
25
28/05/2021
A. BOULAALAM
26
28/05/2021
A. BOULAALAM
SCLIENT1 en extension
A. BOULAALAM
27
28/05/2021
Demandes
1. Afficher les instructeurs du
département physique.
2. Afficher les instructeurs ayant
un salaire plus de 90000.
3. Afficher les instructeurs du
département physique et ayant
plus de 90000 comme salaire.
A. BOULAALAM
28
28/05/2021
A. BOULAALAM
29
28/05/2021
A. BOULAALAM
30
28/05/2021
62
A. BOULAALAM
31