Le modèle relationnel: algèbre
relationnel et calcul relationnel
KINDO A AZIZE / UNIVERSITE NAZI BONI
Objectifs
Aperçu du modèle relationnel
le lien entre l’algèbre relationnel et les relations dans le modèle relationnel.
les propriétés d’une base de données relationnelles
Comment identifier les clés candidates, primaire et étrangère.
Intégrité reférentielle
Formulation des requêtes en algèbre et calcul relationnel
KINDO A AZIZE / UNIVERSITE NAZI BONI
Exemple: représentation tabulaire
les données sont organisées sous forme de
tables à deux dimensions, encore appelées
relations, dont les lignes sont appelées n-uplet
ou tuple en anglais ;
KINDO A AZIZE / UNIVERSITE NAZI BONI
Le modèle relationnel
Il repose sur des bases théoriques solides, notamment la théorie des ensembles et la
logique mathématique(théorie des prédicats d'ordre 1).
Les objectifs du modèle relationnel :
proposer des schémas de données faciles à utiliser,
améliorer l'indépendance logique et physique,
mettre à la disposition des utilisateurs des langages de haut niveau pouvant
éventuellement être utilisés par des non informaticiens,
optimiser les accès à la base de données,
améliorer l'intégrité et la confidentialité,
fournir une approche méthodologique dans la construction des schémas.
KINDO A AZIZE / UNIVERSITE NAZI BONI
Passage au relationnel
Transformation des ensembles d’entités :
Chaque ensemble d'entités/classes E =>
une relation R dont le schéma est celui de l'ensemble d'entités/classe
l'identificateur de E devient la clé de R
Chaque ensemble d'entités faibles/association qualifiée E =>
une relation R qui comprend tous les attributs de E + l'identificateur de l'ensemble d'entités fortes/classe
associé(e)
Une association binaire de type n : m devient une table supplémentaire
Une association non binaire est traduite par une table supplémentaire dont la clé primaire
est composée d’autant de clés étrangères que d’entités en association
Généralisation-spécialisation/héritage =>
l'ensemble d'entités généralisante/classe mère E => une relation R
chaque ensemble d'entités Ei spécialisé/classe fille => une relation Ri dans laquelle l'identifiant est de
même domaine que l'identifiant de E
KINDO A AZIZE / UNIVERSITE NAZI BONI
Concepts de base
Domaine : Ensemble de valeurs caractérisé par un nom.
D1 = {voiture, moteur, roue, châssis, essieu, culasse, piston, bielle, pneu }
D2 = {1,2,3,4,5}
Relation : Sous-ensemble du produit cartésien d’une liste de domaines caractérisé par un nom.
Attribut : Colonne d’une relation caractérisée par un nom. Ceci permet de rendre l’ordre des
colonnes sans importance.
Tuple : Ligne d’une relation correspondant à un enregistrement.
Schéma de relation : Nom de la relation suivi de la liste des attributs et de la définition de
leurs domaines. Un schéma de relation est noté sous la forme : R (A1 : D1, A2 : D2..., Ai : Di...
An : Dn)
KINDO A AZIZE / UNIVERSITE NAZI BONI
Concepts de base
Le produit cartésien de domaines D1, D2,…, Di,…, Dn est l’ensemble des n-
uplets ou tuples (v1,v2,…, vi, …, vn) tels que vi Di.
Cardinalité : nombre de tuples de la relation. Exemple la cardinalité dans
DEPT est 4
L’ordre des lignes et des colonnes n’est pas significatif
Pas de lignes identiques
Le nom d’une relation est unique dans une BD
KINDO A AZIZE / UNIVERSITE NAZI BONI
Concepts de base
Une super-clé d'une relation est un sous-ensemble d’attributs dont les valeurs
identifient un unique tuple de cette relation.
Par définition, l'ensemble des attributs d'une relation est une super-clé de cette
dernière.
La clé d'une relation, également désignée clé primaire, est une super-clé
minimale.
Une super-clé est minimale si aucun sous-ensemble strict de la super-clé est une
super-clé.
Il est possible de distinguer deux types de clé dans une relation :
la clé primaire est une clé choisie de manière arbitraire,
une clé alternative est une clé autre que la clé primaire.
KINDO A AZIZE / UNIVERSITE NAZI BONI
Concepts de base
Clé étrangère
Soit R2 une relation, un sous-ensemble d’attributs FK dans R2 est dit clé étrangère
lorsque:
il existe une relation R1 de clé primaire PK (R1 peut être R2)
à tout instant, chaque valeur de FK dans R2 est identique à une valeur de PK dans R1
On fera précéder les clés étrangères du caractère dièse (#).
Propriétés
Il n’est pas nécessaire d’avoir pour toute valeur de PK dans R1 une valeur identique
de FK dans R2 ;
Un attribut d’une clé étrangère peut faire partie d’une clé candidate de sa relation ;
Chaque attribut d’une clé étrangère doit être défini sur le même domaine que son
équivalent dans la clé primaire correspondante.
KINDO A AZIZE / UNIVERSITE NAZI BONI
Concepts de base
Contrainte référentielle (Referential constraint)
Contrainte d’intégrité portant sur une relation R1, consistant à imposer que la valeur d’un groupe d’attributs
apparaisse comme valeur de clé dans une autre relation R2.
Valeur nulle (Null value)
Valeur conventionnelle introduite dans une relation pour représenter une information inconnue ou inapplicable.
Contrainte d’entité (Entity constraint)
Contrainte d’intégrité imposant que toute relation possède une clé primaire et que tout attribut participant à
cette clé primaire soit non nul.
Contrainte de domaine (Domain constraint)
Contrainte d’intégrité imposant qu’une colonne d’une relation doit comporter des valeurs vérifiant une
assertion logique.
KINDO A AZIZE / UNIVERSITE NAZI BONI
Concepts de base
Le schéma d’une relation représente son intention c’est-à-dire les propriétés
(au moins certaines) communes et invariantes des tuples qu’elle va contenir
au cours du temps.
Exemple:
• EMP(MATR: entier, NOME: Chaine de caractère, POSTE: Chaine de caractère, SUP:
entier, DATEEMB: date, SAL: décimal, COMM: décimal, DEPT: entier)
• DEPT(DEPT: entier, NOMD: Chaine de caractère, LIEU: Chaine de caractère)
KINDO A AZIZE / UNIVERSITE NAZI BONI
Concepts de base
une table représente une extension d’une relation c’est-à-dire
une vue des n-uples qu’elle contient à un instant donné. Une
extension d’une relation R est aussi appelée instance de R.
L’intention est le résultat de la description des données, alors
qu’une extension (ou instance) fait suite à des manipulations et
représente un état de la base.
KINDO A AZIZE / UNIVERSITE NAZI BONI
Algèbre et calcul relationnel
Algèbre relation
Opérateurs unaires
Opérateurs ensemblistes
Opérateurs binaires
Opérateurs additionnels
Exemple de requêtes en algèbre relationnel
Calcul relationnel
Le calcul relationnel à variables domaines
Le calcul relationnel à variables tuples
KINDO A AZIZE / UNIVERSITE NAZI BONI
Algèbre et calcul relationnel
L'algèbre relationnelle et le calcul relationnel sont des langues formelles
associées au modèle relationnel.
De façon informelle,
L'algèbre relationnelle est un langage procédural (de haut niveau) et
Le calcul relationnel est une langage non procédurale.
Cependant, formellement les deux sont équivalents les uns aux autres.
KINDO A AZIZE / UNIVERSITE NAZI BONI
Algèbre relationnelle
Les opérations d'algèbre rationnelle fonctionnent sur une ou plusieurs
relations pour définir une autre relation sans changer les relations d'origine.
Dans cela, les opérandes et les résultats sont des relations, de sorte que la
sortie d'une opération peut être entrée dans une autre opération.
Cela permet d'imbriquer les expressions, tout comme dans l'arithmétique.
Cette propriété s'appelle la fermeture.
KINDO A AZIZE / UNIVERSITE NAZI BONI
Algèbre relationnelle
L’algèbre relationnelle regroupe plusieurs types d’opérateurs
Opérations unaire
SELECTION (symbole: σ (sigma))
PROJECTION (symbole: π (pi))
RENOMMER(symbole: ρ (rho))
Opérations ensemblistes
UNION ( ∪ ), INTERSECTION ( ∩ ), DIFFERENCE (or MINUS, – )
PRODUIT CARTESIEN ( x )
Opérateur Binaire
JOINTURE (plusieurs variants de JOINTURE existent)
DIVISION
Operateurs Additionnel
OUTER JOINS
FONCTION D’AGREGATION
SUM, COUNT, AVG, MIN, MAX
KINDO A AZIZE / UNIVERSITE NAZI BONI
Algèbre relationnelle
Il existe 5 opérations de base, dans l'algèbre relationnelle, qui effectue la
plupart des opérations de récupération de données nécessaires.
Sélection
Projection
Produit Cartésien
Union
Différence
Also operations that can be expressed by 5 basic operations.
KINDO A AZIZE / UNIVERSITE NAZI BONI
Algèbre relationnelle
KINDO A AZIZE / UNIVERSITE NAZI BONI
Algèbre relationnelle
KINDO A AZIZE / UNIVERSITE NAZI BONI
Soit la table emp
KINDO A AZIZE / UNIVERSITE NAZI BONI
SELECTION(σ)
La sélection encore appelée restriction, extrait les tuples d'une relation qui
satisfait une condition donnée.
σCond(EMP)
σPOSTE=SECRETAIRE(EMP)
KINDO A AZIZE / UNIVERSITE NAZI BONI
PROJECTION (π)
Extrait les attributs spécifiés (colonnes) d'une relation.
πx(R)
. π MATR,NOME,POSTE(EMP)
KINDO A AZIZE / UNIVERSITE NAZI BONI
Produit cartésien (×)
Opération portant sur deux relation R et S, consistant à construire une
relation RXS ayant pour schéma la concaténation de ceux des relations
opérandes et pour tuples toutes les combinaisons des tuples des relations
opérandes.
Exemple soit les tables U et V
UxV =
KINDO A AZIZE / UNIVERSITE NAZI BONI
Produit cartésien (×) et SELECTION(σ)
σU.B=V.B (πA,B(u)xπC,B (V))
KINDO A AZIZE / UNIVERSITE NAZI BONI
UNION (∪)
Opération portant sur deux relations de même schéma R et S consistant à
construire une relation de même schéma R3 ayant pour tuples ceux
appartenant à R ou S ou aux deux relations.
Notation : RESULT = UNION (R1,R2) = R1 ∪ R2
Exemple : Soit R=πB(u) et S=πB (V)
RUS
Remarques :L'union ne peut porter que sur deux relations ayant le même
schéma de table c'est-à-dire sur deux tables ayant strictement les mêmes
attributs. On dit dans ce cas que les relations sont compatibles.
KINDO A AZIZE / UNIVERSITE NAZI BONI
INTERSECTION (∩):
L'intersection est une opération portant sur deux relations de même schéma R1
et R2. Elle consiste à construire une relation R de même schéma que R1 et R2
ayant pour tuples ceux appartenant à la fois à R1 et R2.
Notation R=INTERSECT (R1,R2) = AND (R1, R2) = R1 ∩ R2
Remarques : L'intersection ne peut porter que sur deux relations ayant le même
schéma de table c'est-à-dire sur deux tables ayant strictement les mêmes
attributs.
Exemple : Soit R=πB(u) et S=πB (V)
R∩S
KINDO A AZIZE / UNIVERSITE NAZI BONI
DIFFERENCE(-)
La différence est une opération portant sur deux relations de même schéma
R1 et R2. Elle consiste à construire une relation RESULT de même schéma que
R1 et R2 ayant pour tuples ceux appartenant à R1 et n'appartenant pas à R2.
Notation : RESULT = MINUS (R1,R2) = R1 – R2 = R1 \ R2
Exemple : Soit R=πB(U) et S=πB (V)
R-S S-R
KINDO A AZIZE / UNIVERSITE NAZI BONI
JOINTURE
Join conditionnel:
R c S c ( R S)
(sid) sname rating age (sid) bid day
22 dustin 7 45.0 58 103 11/12/96
31 lubber 8 55.5 58 103 11/12/96
S1 R1
S1. sid R1. sid
Le Schéma du résultat est le même que celui du produit Cartésien.
Moins de tuples que dans le produit Cartésien; pourrait être calculé de manière
plus efficiente.
Parfois appelé theta-join.
Joins (Suite)
Equi-Join: Un cas spécial du join conditionnel où la
condition c contient seulement des égalités.
sid sname rating age bid day
22 dustin 7 45.0 101 10/10/96
58 rusty 10 35.0 103 11/12/96
S1 R1
sid
Schéma du résultat similaire au produit Cartésien, mais
contient seulement une copie des attributs pour lesquels
l’égalité est spécifiée.
Join naturel: Equi-join dans lequel il y a égalité entre tous
les attributs ayant le même nom dans les deux relations.
Autres opérations
KINDO A AZIZE / UNIVERSITE NAZI BONI
DIVISION
Certaines requêtes contenant le terme « pour tous »
Soient r(R) et s(S) avec S⊆R
la relation r ÷ s a pour schéma R – S
KINDO A AZIZE / UNIVERSITE NAZI BONI