Vous êtes sur la page 1sur 31

28/05/2021

Elément : Bases de Données


Cycle Ingénieur/ ENSAF
1ère Année

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

Elément 2 : Vue d’ensemble


Outline
• Elément 2: Bases de données
• Partie 1:
• Introduction
• Applications du système de base de données
• Objectif des systèmes de base de données
• Vue des données
• Langues de la base de données
• Conception de base de données
• Moteur de base de données
• Architecture de base de données
• Utilisateurs et administrateurs de bases de données
• Histoire des systèmes de bases de données

• Partie 2
3 • Algèbre Relationnelle - Relational Algebra

Rappel ... Data structure en relationnel


4

• Une table qui représente une relation a les


caractéristiques suivantes:
 Chaque cellule du tableau ne contient qu'une seule
valeur.
 Chaque colonne a un nom distinct, qui est le nom de
l'attribut qu'elle représente.
 Les valeurs d'une colonne proviennent toutes du même
domaine, car ce sont toutes des valeurs de l'attribut
correspondant.
 Chaque tuple ou ligne est distinct; il n'y a pas de tuples
en double.
 L'ordre des tuples ou des rangées est sans importance.
A. BOULAALAM

2
28/05/2021

Rappel ... Data structure en relationnel


5

• Toutes les données sont stockées dans différentes tables.


• Exemple de données tabulaires dans le modèle relationnel
Columns

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 :

Ds = {violet, indigo, vert, bleu, jaune, rouge, orangé}.

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

2. Cartesian product: Exemple


• Etant donner 3 domaines: D1 = {1,3} D2 =
{2,4,6} D3 = {3,6,9}
• Calculer le produit cartésien D1 × D2 × D3
D1 × D2 × D3 = {(1,2,3), (1,2,6), (1,2,9), (1,4,3), (1,4,6),
(1,4,9), (1,6,3), (1,6,6), (1,6,9), (3,2,3), (3,2,6), (3,2,9),
(3,4,3), (3,4,6), (3,4,9), (3,6,3), (3,6,6), (3,6,9)}

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

Contraintes d’Intégrité: domain, key, foreign key,


contraintes générale
30 Base de données relationnelle
• Une contrainte de clé primaire = appelée intégrité
d'entité
• Indique que aucun attribut d'une clé primaire ne peut avoir
une valeur nulle.
• Toutes les clés de relation doivent avoir des valeurs uniques.
• En SQL, nous pouvons identifier la clé primaire à l'aide d'une
contrainte de clé primaire lorsque nous créons la table.
• Le système SGBD appliquera alors automatiquement les
contraintes non nulles et d'unicité.
• Pour les clés candidates, la plupart des systèmes nous
permettent de spécifier à la fois une contrainte d'unicité et
une contrainte non nulle.
A. BOULAALAM

15
28/05/2021

Contraintes d’Intégrité: domain, key, foreign key,


contraintes générale
31 Base de données relationnelle
• Une règle d'intégrité appelée intégrité référentielle
s'applique aux clés étrangères:
• Si une clé étrangère FK existe dans une relation, la valeur de la FK
doit correspondre à la valeur de la clé primaire d'un tuple dans sa
relation d'origine, ou la valeur de la clé étrangère doit être
complètement nulle.
• Il existe plusieurs autres types de contraintes, appelées
contraintes générales.
• Les contraintes sont appliquées par le SGBD chaque fois
que des modifications sont apportées aux données.
• Le SGBD vérifie que les modifications ne violent pas les
contraintes avant de permettre leur acceptation dans la
table.
A. BOULAALAM

Représentation des schémas de BD relationnelles


32 Base de données relationnelle
• Un schéma de BDR peut avoir un certain nombre de
relations.
• Comment représenter un schéma?  le nom de
chaque relation, suivi des noms d'attribut entre
parenthèses, avec la clé primaire soulignée.
• La façon la plus claire d'afficher les clés étrangères
consiste à tracer des flèches des clés étrangères
vers les clés primaires auxquelles elles se réfèrent.
(Ou précéder par # mais avec le mm nom que la
PK)
A. BOULAALAM

16
28/05/2021

Représentation des schémas de BD relationnelles


33 Base de données relationnelle
• Pour l'exemple: Schéma de BD university

A. BOULAALAM

Langage de manipulation des données relationnelles


- Categories of DMLs -
34 Data Manipulation Languages
C’est quoi?
• Certains langages de BDR sont procéduraux ou
proscriptifs (procedural or proscriptive):
• l'utilisateur indique exactement au système comment manipuler
les données.
• L'algèbre relationnelle est un exemple de langage
procédural.
• D'autres sont non-procédurales ou déclaratives
(nonprocedural or declarative):
• l'utilisateur indique quelles données sont nécessaires mais pas
exactement comment elles doivent être localisées.
• Le calcul relationnel et SQL sont des langages non
procéduraux.
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

Algèbre Relationnelle… Operateurs


38 Introduction
• E. F. Codd a aussi inventé un ensemble d’opérations
qui peuvent être appliquées aux relations pour obtenir de nouvelles
relations résultantes.
• Ces opérations pourront être composées entre elles pour en cré
er de nouvelles.
• Ces opérations appliquées sur les relations permettront de
répondre à des besoins précis des utilisateurs.
• Le terme précis indique que les utilisateurs, parmi toutes les données
du SI, voudront en faire une extraction cohérente d’une ou plusieurs
relations pour obtenir des informations.
• Cette demande correspond à une recherche de données
répondant ou non à des conditions particulières.

A. BOULAALAM

19
28/05/2021

Algèbre relationnelle… Les opérations unaires


39

• Les opérations unaires:


• Permettre d’éliminer des tuples ou des attributs d’une
relation pour en construire une nouvelle.

• Ces opérations unaires répondent à des besoins de


consultation appelé aussi extraction d’informations
usuels.
• Six operateurs de base :
 Cartesian product: x
 select: 
 project: 
 union: 
 set difference: –
 rename: 
A. BOULAALAM

Algèbre relationnelle… Les opérations unaires


40 1. La projection
• La projection d’une relation R consiste à créer une nouvelle relation, à
partir de R mais en ne conservant que les attributs cités en opérande.
• a. Définition ... fonctionnement
• La projection (proj ou ) est l’opération qui consiste à :
 Elle produit un sous-ensemble (set) vertical de la table 
Supprimer, d’une relation, les attributs non mentionnés en
opérande
 Le résultat est défini comme la relation de k colonnes obtenue en
effaçant les colonnes non répertoriées
 Les lignes en double seront supprimées du résultat, car les
relations sont des ensembles (set)
 plaçant les valeurs dans une nouvelle table

A. BOULAALAM

20
28/05/2021

Algèbre relationnelle… Les opérations unaires


41 1. La projection
Notations
• PROJECT tableName OVER (colName, ..., colName) [GIVING
newTableName]
• or, symbolically
• [newTableName =] Π colName, ..., colName (tableName)
• La projection R’ de R sur A1,A2 s’écrira :
R’ = proj (R,A1,A2) = Π A1,A2 (R)
• La modélisation graphique
suivante est aussi possible :

A. BOULAALAM

Algèbre relationnelle… Les opérations unaires


42 1. La projection
Exemple d’illustration
• Faire un projection pour l’attr major OU Trouver les different domaines
d’etude principales (majors)
PROJECT Student OVER major GIVING Temp
• OU
Temp = Π major(Student)
• OU
Temp = PROJ(Student, major)
Résultat, une table Temp :

A. BOULAALAM

21
28/05/2021

Algèbre relationnelle… Les opérations unaires


43 1. La projection
• Question: Pourquoi faut-il éliminer les tuples en doublon qui
risquent d’apparaître?

 Si la clé primaire n’apparaît pas dans les opérandes


de la projection, la relation résultante n’aura pas de clé
primaire définie, d’où risque de tuples en double.

 De ce fait, une clé primaire est définie arbitrairement dans


le cas de la projection  Ce sera la
composition de tous les attributs
restants dans cette relation  ce qui permet d’éliminer
tout doublon dans les tuples.
A. BOULAALAM

Algèbre relationnelle… Les opérations unaires


44 1. La projection
b. Exercice TD
 Considérons la relation: CLIENT<NUCLI, NOCLI, PNCLI, DNCLI>.
NUCLI: numéro du client PK, nom (NOCLI), Prénom (PNCLI)
et date de naissance (DNCLI).
Cette relation en extension se présente ainsi :

A. BOULAALAM

22
28/05/2021

Algèbre relationnelle… Les opérations unaires


45 1. La projection
b. Exercice TD (suite)
Demande utilisateur: Nous ne voudrions connaître que les noms et
prénoms des clients
Traduisons cette demande : extraire de la relation client,
les attributs nom et prénom.
Pour répondre à cette demande: il faut appliquer une projection sur la
relation CLIENT pour créer une nouvelle relation PCLIENT1.

PCLIENT1 = PROJ (CLIENT, NOCLI, PNCLI) ou


= Π NOCLI, PNCLI (CLIENT)

A. BOULAALAM

Algèbre relationnelle… Les opérations unaires


46 1. La projection
b. Exercice TD (Fin)
La représentation graphique:

La relation PCLIENT1 en intention s’écrira :


PCLIENT1 (NOCLI, PNCLI)

La relation PCLIENT1 en extension


est de la forme suivante :

A. BOULAALAM

23
28/05/2021

Algèbre relationnelle… Les opérations unaires


47 1. La projection
b. Exemples (résumé)

À partir d’une relation R, il est possible de faire plusieurs


projections (autant que de compositions possibles, des attributs
de cette relation) pour créer plusieurs nouvelles relations.

A. BOULAALAM

Algèbre relationnelle… Les opérations unaires


48 2. La sélection (ou restriction)
• Garder que les tuples pour lesquels un attribut vérifie une
certaine propriété  sélectionne les tuples qui satisfont un
prédicat donné.
a. Définition ... Les notations possibles
La sélection (ou restriction) (SELECT ou σ) est l’opération qui
consiste, à partir d’une relation R (A1, A2,…An), à
créer une nouvelle relation R’(A1, A2…An) dont tous les
tuples vérifient une propriété d’un attribut Ai = prédicat.
SELECT tableName WHERE condition [GIVING newTableName]
[newTableName = ] σpredicate (table-name)
newTableName = σAi <opérateur> <valeur>(R)
newTableName = Restrict (R, Ai <opérateur> <valeur>)
newTableName = R[Ai <opérateur> <valeur>]
A. BOULAALAM

24
28/05/2021

Algèbre relationnelle… Les opérations unaires


49 2. La sélection (ou restriction)
• L’opérateur appartient à l’ensemble: {<, <=, >, >=, =,
≠, ∧ (AND), ∨ (OR), ¬ (NOT)}.
• La valeur appartient au domaine de l’attribut Ai.
• La modélisation graphique suivante est aussi possible :

• Cette opération construit une nouvelle relation R’ à partir


de R qui contient moins de tuples, mais pour laquelle
la clé primaire est conservée.
A. BOULAALAM

Algèbre relationnelle… Les opérations unaires


50 2. La sélection (ou restriction)
b. Exemples (DB university)
Nous voudrions trouver toutes les informations pour le student
Num: S1013
SELECT Student WHERE stuId = 'S1013' GIVING Result
OU
Result = σstuId='S1013' (Student)

A. BOULAALAM

25
28/05/2021

Algèbre relationnelle… Les opérations unaires


51 2. La sélection (ou restriction)
b. Exemples (DB university)
Nous voudrions trouver toutes les classes(cours) pour room H225:

SELECT Class WHERE room = 'H225' GIVING Answer


OU
Answer = σroom='H225' (Class)
Table Answer en extension:

A. BOULAALAM

Algèbre relationnelle… Les opérations unaires


52 2. La sélection (ou restriction)
b. Exercice TD
CLIENT<NUCLI, NOCLI, PNCLI, DNCLI>
Les utilisateurs n’ont besoin, pour leurs traitements, de ne
conserver que les clients qui ont 39 ans ou plus au 1er
janvier 2008.
Analysons cette demande :
 il n’y a aucun attribut à éliminer
(toutes les données des clients sont demandées)
Quel est l’attribut qui va nous permettre de savoir si
un client à 35 ans ou plus au 1er janvier 2008 ?
C’est l’attribut date de naissance DNCLI, il y a donc une
condition à apporter à DNCLI.
A. BOULAALAM

26
28/05/2021

Algèbre relationnelle… Les opérations unaires


53 2. La sélection (ou restriction)
b. Exercice TD
 mathématiquement : DNCLI ≤‘ 01/01/1973’, il faut que tous
les tuples conservés vérifient cette condition et il faut conserver toutes
les informations (attributs) concernant un client.
 c’est une sélection que l’on doit appliquer à la relation CLIENT pour
créer une nouvelle relation SCLIENT1.

 SCLIENT1= σDNCLI ≤ ‘01/01/1973’ (CLIENT)


= CLIENT [DNCLI ≤ ‘01/01/1973’]
= Restrict(CLIENT, DNCLI ≤‘01/01/1973’ )

A. BOULAALAM

Algèbre relationnelle… Les opérations unaires


54 2. La sélection (ou restriction)
b. Exercice TD
 La représentation graphique de
SCLIENT1 est la suivante :

 SCLIENT1 en intention s’écrira:


SCLIENT1 <NUCLI, NOCLI, PNCLI, DNCLI>.
 Le schéma de Relation résultante reste identique à celui de la relation
originelle : même clé primaire, même(s) attribut(s).

 SCLIENT1 en extension

A. BOULAALAM

27
28/05/2021

Algèbre relationnelle… Les opérations unaires


55 Exercice
Exercice 2
Soit la relation instructor en extension:

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

Composition des opérations relationnelles


56 Composition des opérations relationnelles
• Le résultat d'une opération d'algèbre relationnelle est une
relation et, par conséquent, les opérations d'algèbre
relationnelle peuvent être composées ensemble en une
expression d'algèbre relationnelle.
• Considérez la requête - Trouvez les noms de tous les
instructeurs du département de physique.

name( dept_name =“Physics” (instructor))

• Au lieu de donner le nom d'une relation comme argument


de l'opération de projection, nous donnons une expression
qui évalue une relation.
A. BOULAALAM

28
28/05/2021

Algèbre relationnelle… Les opérations unaires


57 Exercice
Exercice 3 Soit la relation section en extension:
Demande
Trouver l'ensemble de tous
les cours enseignés au
semestre d'automne (Fall)
2017
Πcourse_id (σsemester =
“Fall” ∧ year=2017
(section))
Demandes
Trouver l'ensemble des
identifiants de cours suivis
au printemps(Spring) 2018

Πcourse_id (σsemester = “Spring” ∧ year=2018 (section))

A. BOULAALAM

Algèbre relationnelle… Produits et jointures


58 Produits et jointures
 Produits et jointures
 Il existe plusieurs types de produits définis en
algèbre relationnelle.
 Pour deux tables, A et B, nous formons leur
produit, écrit:
A TIMES B ou A × B
 A × B : est une table formé en concaténant toutes
les lignes de A avec toutes les lignes de B.
 colonnes de A suivies des colonnes de B,
 largeur est la largeur de A plus la largeur de B.
A. BOULAALAM

29
28/05/2021

Algèbre relationnelle… Produits et jointures


59 Produits et jointures
• Produits et jointures
• Si A a x lignes et B a y lignes
•  alors A × B a x * y lignes.
• Exemple, le produit Student × Enroll a sept
colonnes MAIS deux d'entre elles sont appelées
stuId.
• Pour distinguer ces deux, nous utilisons les noms
qualifiés des tables d'origine ( Student.stuId et
Enroll.stuId.)
• Étant donné que Student a 7 lignes et Enroll a 9
lignes, le produit a 63 lignes.
A. BOULAALAM

Algèbre relationnelle… Produits et jointures


60 Produits et jointures
• Produits et jointures .... Exemple de Student × Enroll (DB university)

A. BOULAALAM

30
28/05/2021

Algèbre relationnelle… Produits et jointures


61 Produits et jointures
 Exercice: soient les 2 relations teaches et instuctor
teaches
instuctor

1. Analyser le produit cartésien r=instructor × teaches


2. Donner la relation r en intension et en extension
3. Appilquer une sélection sur r avec la condition instructor.ID=teaches.ID.
Remrques !!!!
A. BOULAALAM

62

A. BOULAALAM

31

Vous aimerez peut-être aussi