Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Cours Algèbre Relationnel

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

Algèbre Relationnel

Année universitaire: 2020-20201


Introduction

L’algèbre relationnel est un:

- support mathématique cohérent sur lequel repose le modèle relationnel

- est un langage de requêtes dans des bases de données relationnelles.

Il s'agit de la théorie sous-jacente aux langages de requête des Systèmes

de Gestion de Base de Données « SGBD » comme SQL


Introduction

- Une base de données relationnelle est une base de données où

l'information est organisée dans des tableaux à deux dimensions

appelés des relations ou tables

Elle utilise les opérations de l'algèbre relationnelle telles que

l'intersection, la sélection et la jointure…


Introduction

Langage procédural : indique comment construire une nouvelle relation a

partir d’une ou plusieurs relations existantes,

 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) originale(s)

Le résultat de toute opération est une relation (propriété de fermeture)


Attribut, tuple

 Une relation est un ensemble d’éléments qui peut être représenté

par une table

 Chaque ligne de la table est appelée tuple ou nuplet

 Le nombre de lignes est appelée cardinalité de la relation

 Chaque colonne de la table est appelée attribut


Attribut, tuple

 Exemple : On a trois ensembles : Nom, Num_Cte et Rue avec

 Nom = {BenAli, Fouadi, Tahri }

 Num_Cte = {123, 124, 235 , 226}

 Rue = {rabat, kindi, sidi bouzid }


Schéma et relation

 Une table est une relation (au sens mathématique) qui a un nom

A1,,…. ,An sont des attributs

 R(A1,,... ,An) est un schéma de relation. (R est le nom du schéma de la relation)


Instance de relation
Emp Nom Num_Cte Rue

BenAli 124 Rabat

Fouadi 235 Rabat

Tahri 123 Kindi


Attribut(Emp) =
Cardinalité(Emp) =
Dom(Num_Cte) =

Dom(Nom) =
Instance de relation
Emp Nom Num_Cte Rue

BenAli 124 Rabat

Fouadi 235 Rabat

Tahri 123 Kindi


Attribut(Emp) = {Nom, Num_Cte, Rue}

Cardinalité(Emp) = 3
Dom(Num_Cte) = les entiers naturels (infini)

Dom(Nom) = chaînes de moins de 20 caractères (fini)


Les opérateurs de l’algèbre relationnel
On peut distinguer trois famille d’opérateurs de l’algèbre relationnel

 Les opérateur Unaires: (Sélection, Projection)

Ce sont les opérateurs les plus simples, ils permettent de produire une nouvelle relation à partir
d’une relation

 Les opérateurs binaires ensemblistes: ( Union, intersection, différence)

Ces opérateurs permettent de produire d’une nouvelle relation à partir de deux relations de même
degré et de même domaine

 Les opérateurs binaires ou n-aires: (Produit cartésien, Jointure, Division)

Ils permettent de produire d’une nouvelle relation à partir de deux ou plusieurs autres relations
Les opérateurs Unaires: Sélection

La sélection permet de choisir( Sélectionner) des tuples dans la

relation. Le résultat de la sélection est donc une nouvelle relation qui a

les mêmes attributs que R.

Si R est vide (ne contient aucune occurrence), la relation résulte de la

sélection est vide


Les opérateurs Unaires: Sélection

Tableau: Exemple de relation Personne

Sélection sur la relation Personne du tableau: 𝜎 𝑁𝑢𝑚é𝑟𝑜 ≥ 5 Personne


Les opérateurs Unaires: Sélection

Tableau: Exemple de relation Personne

Sélection sur la relation Personne du tableau: 𝝈 𝑵𝒖𝒎é𝒓𝒐 ≥ 𝟓 𝐏𝐞𝐫𝐬𝐨𝐧𝐧𝐞


Les opérateurs Unaires: Projection

La projection permet de choisir des attributs dans la relation. Si R est

vide, la relation résulte de la projection est vide, mais pas forcément

équivalente (elle contient généralement moins d’attributs).

Exemple de projection sur la relation Personne du tableau 2:

𝝅 𝑵𝒐𝒎 𝑷𝒆𝒓𝒔𝒐𝒏𝒏𝒆
Les opérateurs Unaires: Projection

La projection permet de choisir des attributs dans la relation. Si R est

vide, la relation résulte de la projection est vide, mais pas forcément

équivalente (elle contient généralement moins d’attributs).

Exemple de projection sur la relation Personne du tableau 2:

𝝅 𝑵𝒐𝒎 𝑷𝒆𝒓𝒔𝒐𝒏𝒏𝒆
Les opérateurs binaires ensemblistes: Union

L’Union est une opération portant sur deux relations R1 et R2 ayant le

même schéma et construisant une troisième relation constituée des n-

uplets appartenant à chacune des deux relations R1 et R2 sans doublon, on

la note :

R1 U R2
Les opérateurs binaires ensemblistes: Union

Exemple d’Union: R=R1 U R2


Les opérateurs binaires ensemblistes: Union

Exemple d’Union: R=R1 U R2


Les opérateurs binaires ensemblistes: Intersection

L’intersection est une opération portant sur deux relations R1 et R2 ayant

le même schéma et construisant une troisième relation dont les n-uplets

sont constitues de ceux appartenant aux deux relations, on la note 𝐑𝟏 ∩ 𝑹𝟐

𝐑 = 𝐑𝟏 ∩ 𝑹𝟐 𝒐𝒖 𝑹 = 𝑰𝑵𝑻𝑬𝑹𝑺𝑬𝑪𝑻(𝑹𝟏, 𝑹𝟐)
Les opérateurs binaires ensemblistes: Intersection

Exemple d’intersection: 𝐑 = 𝐑𝟏 ∩ 𝑹𝟐
Les opérateurs binaires ensemblistes: Intersection

Exemple d’intersection: 𝐑 = 𝐑𝟏 ∩ 𝑹𝟐
Les opérateurs binaires ensemblistes: Différence

La différence est une opération portant sur deux relations R1 et R2 ayant

le même schéma et construisant une troisième relation dont les n-uplets

sont constitues de ceux qui ne se trouvant que dans la relation R1;, on la

note 𝐑𝟏 − 𝑹𝟐

𝐑 = 𝐑𝟏 − 𝑹𝟐 𝒐𝒖 𝑹 = 𝑴𝑰𝑵𝑼𝑺(𝑹𝟏, 𝑹𝟐)
Les opérateurs binaires ensemblistes: Différence

Exemple de différence: 𝐑 = 𝐑𝟏 − 𝑹𝟐
Les opérateurs binaires ensemblistes: Différence

Exemple de différence: 𝐑 = 𝐑𝟏 − 𝑹𝟐
Les opérateurs binaires : Produit Cartésien

Le produit cartésien est une opération portant sur deux relations R1 et R2

et construit une troisième relation regroupant exclusivement toutes les

possibilités de combinaison des occurrences des relations R1 et R2;, on la

note 𝐑𝟏 𝒙 𝑹𝟐

𝐑 = 𝐑𝟏 𝒙 𝑹𝟐 𝒐𝒖 𝑹 = 𝑷𝒓𝒐𝒅𝒖𝒄𝒕(𝑹𝟏, 𝑹𝟐)
Les opérateurs binaires : Produit Cartésien

Exemple de produit cartésien: 𝐑 = 𝐀𝐦𝐢𝐞 𝒙 𝒄𝒂𝒅𝒆𝒂𝒖


Les opérateurs binaires : Produit Cartésien

Exemple de produit cartésien: 𝐑 = 𝐀𝐦𝐢𝐞 𝒙 𝒄𝒂𝒅𝒆𝒂𝒖


Les opérateurs binaires : Jointure

La jointure est une opération portant sur deux relations R1 et R2 et qui

construit une troisième relation regroupant exclusivement toutes les

possibilités de combinaison des occurrences des relations R1 et R2 qui

satisfont l’expression logique E. La jointure est notée 𝐑𝟏 ⨝𝑹𝟐

𝐑 = 𝐑𝟏 ⨝ 𝑹𝟐 𝒐𝒖 𝑹 = 𝑱𝒐𝒊𝒏𝒕(𝑹𝟏, 𝑹𝟐)
Les opérateurs binaires : Jointure

Exemple de jointure: 𝐑 = 𝐅𝐚𝐦𝐢𝐥𝐥𝐞 ⨝( 𝑨𝒈𝒆≤𝑨𝒈𝒆𝑪 𝒂𝒏𝒅 𝑷𝒓𝒊𝒙<𝟓𝟎 ) 𝒄𝒂𝒅𝒆𝒂𝒖


Les opérateurs binaires : Jointure

Exemple de jointure: 𝐑 = 𝐅𝐚𝐦𝐢𝐥𝐥𝐞 ⨝( 𝑨𝒈𝒆≤𝑨𝒈𝒆𝑪 𝒂𝒏𝒅 𝑷𝒓𝒊𝒙<𝟓𝟎 ) 𝒄𝒂𝒅𝒆𝒂𝒖


Les opérateurs binaires : Division

La division est une opération portant sur deux relations R1 et R2, telles que

le schéma de R2 est strictement inclus dans celui de R1, qui génère une

troisième relation regroupant toutes les parties d’occurrences de la

relation R1 et qui sont associées à toutes les occurrences de la relation R2.

La division est notée 𝐑𝟏 ÷ 𝑹𝟐

𝐑 = 𝐑𝟏 ÷ 𝑹𝟐 𝒐𝒖 𝑹 = 𝒅𝒊𝒗𝒊𝒔𝒊𝒐𝒏(𝑹𝟏, 𝑹𝟐)
Les opérateurs binaires : Division

Exemple de division: 𝐑 = 𝐄𝐧𝐬𝐞𝐢𝐠𝐧𝐞𝐦𝐞𝐧𝐭 ÷ 𝑬𝒕𝒖𝒅𝒊𝒂𝒏𝒕 , la relation R contient


donc tous les enseignants de la relation Enseignement qui enseigne
tous les étudiants de la relation Etudiants
Les opérateurs binaires : Division

Exemple de division: 𝐑 = 𝐄𝐧𝐬𝐞𝐢𝐠𝐧𝐞𝐦𝐞𝐧𝐭 ÷ 𝑬𝒕𝒖𝒅𝒊𝒂𝒏𝒕 , la relation R contient


donc tous les enseignants de la relation Enseignement qui enseigne
tous les étudiants de la relation Etudiants
Exemple de cours

Base de données permettant la gestion d’avions, de trajets et de pilotes

-Chaque trajet, avion ou pilote est déterminé d’une manière unique


par un numéro
-Chaque avion peut être conduit par plusieurs pilotes et chaque pilote
peut conduire plusieurs avions
-Un pilote peut assurer plusieurs trajets
-Un avion peut servir sur plusieurs trajets
Exemple de cours

Pilote (num_pilote, nom_pilote,adr_pilote)


Trajet (num_trajet, ville_départ, ville_arrivée, heure_départ, heure_arrivée)
Vol (num_vol, num_pilote,num_trajet, num_avion, date)
Avion (num_avion, type, compagnie)
Modèle (type, capacité, constructeur)
dom (num_pilote) = entier {1 ..300}
dom (nom_pilote) = chaîne de caractères (30)
dom (adr_pilote) = {Marrakech, Casablanca, Paris}
dom (num_avion) = entier {1 .. 500}
dom (type) = {A300, A310, A320, Concorde}
dom (capacité) = entier {150 ..750}
dom (num_vol) = {100 .. 1000}
dom (ville_départ) = dom (ville_arrivée) = {Marrakech, Casablanca, Paris}
dom (heure_départ) = dom (heure_arrivée) = entier {1 .. 2359}
dom (date_vol) = date
dom (constructeur) = {Air_France, British_Airways, …}
Exercices

 CLIENT(numéro, nom, adresse, téléphone)


 PRODUIT (référence, marque, prix)
 VENTE(numéro, ref produit#, no client#, date)
Exercices

1. Afficher les clients qui habitent Paris ou Nice


2. Afficher les ventes des clients N° 120 du 20 oct 04
3. Afficher les clients qui n’habitent pas Nice
4. Afficher la référence du produit et numéro de client
5. Afficher le nom et l’adresse des clients de Nice
6. Afficher le nom des clients avec les dates et leurs achats
7. Afficher pour le clients numéro 125, le numéro de vente et la marque des
produit achetés
Exercices
Exercices
Règles sur les relations

 Chaque attribut est atomique;

 Chaque tuple est unique, les doublons ne sont pas autorisés;

 L’ordre des tuples est sans signification;

 L’ordre des attributs est sans signification;

 Les attributs prennent leurs valeurs dans un seul domaine


Clé candidate – clé primaire

 Une clé primaire d’une relation est un attribut ou un groupe


d’attributs de la relation qui identifie un tuple unique (clé
primaire =identifiant)

 Une relation possède une et une seule clé primaire mais peut
présenter plusieurs clés candidates qui pourraient jouer ce rôle
Valeur nulle

 Lors de l’insertion de tuples dans une relation, il arrive qu’un attribut


soit inconnu ou non défini, on introduit une valeur conventionnelle
notée nulle appelée valeur nulle

 Une clé primaire ne peut avoir une valeur nulle

 Tout SGBD relationnel doit vérifier l’unicité et le caractère défini (no


nul) des valeurs de la clé primaire
Clé étrangère

 Dans tout schéma relationnel, il existe 2 types de relation:


- Les relations qui représentent des entités de l’univers modélisé, elles sont statiques ou
indépendantes (ex. les relations Avion et Pilote)
- Les relations dont l’existence des tuples dépend des valeurs d’attributs situées dans
d’autres relations, elles sont dynamiques ou dépendantes (ex. la relation Vol)

La dépendance est caractérisée par la présence de clés étrangères


(expression de dépendances fonctionnelles)

Une clé étrangère est une clé primaire dans une autre relation

Exemple:
Vol (num_vol, num_pilote, num_trajet, num_avion, date)
Pilote (num_pilote, nom_pilote, ad_pilote)
Contrainte d’intégrité de référence
 Lors de l’insertion d’un tuple dans la relation Vol, le système doit vérifier que la
valeur de num_pilote correspond bien à une valeur de num_pilote dans la
relation pilote

 Lors de la suppression d’un tuple dans pilote, 4 types de contrôle peuvent être
faits:

- interdire la suppression si une valeur correspondante de num_pilote existe


dans Vol

- supprimer ces valeurs

- avertir l’utilisateur d’une incohérence

- mettre ces valeurs à une valeur nulle


Contrainte de domaine
 Le système doit vérifier la validité des valeurs d’un attribut

 Toute comparaison d’attribut n’est acceptée que si ces attributs sont définis sur
le même domaine.

Le schéma relationnel contient donc:

 Ensemble des relations

 Ensemble des domaines

 Ensemble des contraintes d’intégrité

- de domaine

- d’entité

- de référence

Vous aimerez peut-être aussi