0% ont trouvé ce document utile (0 vote)
3 vues51 pages

Introduction aux Bases de Données

Transféré par

Abdou Fadhul
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues51 pages

Introduction aux Bases de Données

Transféré par

Abdou Fadhul
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Bases de données

Cours 1
Introduction et Schémas relationnels

Marie Pelleau
[Link]@[Link]

14 avril 2025

1 / 51
Introduction

1 Introduction
Organisation
Références
Motivation
Historique
SGBD

2 Modèle relationnel

3 Algèbre relationnelle

2 / 51
Introduction Organisation

Organisation

Page du cours
[Link]
Cours et TP
6 séances de cours (≈ 1h)
suivies de 6 séances de TP (dans la foulée, ≈ 2h)
Évaluation
un TP noté

3 / 51
Introduction Références

Quelques références pour ce cours :


Database Management Systems, Ramakrishnan, Gehrke
Fundamentals of Database Systems, Elmasri, Navathe
Bases de données : concepts, utilisation et développement,
Hainaut
Database Design and Relational Theory : Normal Forms and All
That Jazz, 2nd Edition, C.J. Date
Use the index, Luke, A Guide to Database Performance for
Developers, [Link]
Joe Celko’s SQL for Smarties, Advanced SQL Programming,
Celko, 2014
Polycopié de Philippe Rigaux, Cours de bases de données,
[Link]
coursBD_Rigaux.pdf
...
4 / 51
Introduction Motivation

Énorme quantité de données à notre disposition (et connue sur nous).


But : exploiter des ensembles de données complexes.
Besoin : outils efficaces pour gérer et extraire informations.

Base de données : collection de données (exemples : activités d’une


ou plusieurs société, gestion d’une université).

SGBD (Système de Gestion de Base de Données) : logiciel qui permet


de gérer une BD partagée par plusieurs utilisateurs.

5 / 51
Introduction Motivation

Gérer des données

Alternative aux SGBD : utiliser des fichiers et écrire du code spécifique


pour les gérer.
But du cours : donner une introduction aux SGBD en insistant sur les
façons de
concevoir une BD
utiliser un SGBD efficacement.
Détails plus techniques :
Conception de bases de données (schémas entités-associations).
Langage SQL.
Gestion des transactions.

6 / 51
Introduction Motivation

Exemples de bases de données

De nombreuses situations concrètes peuvent être modalisées par une


base de données :
Achats au supermarché
Achats à l’aide d’une carte bancaire
Visite à une bibliothèque de la ville
Livre de recettes
SMS/MMS sur un smartphone
https ://[Link]/
Les informations ne seront pas rangées en vrac. Exemple :
True Grit est un film américain de Joel Coen et Ethan Coen (2010)
Acteurs principaux : Hailee Steinfeld (Mattie Ross), Jeff Bridges
(Rooster Cogburn), Matt Damon (LaBoeuf)
But : regrouper les informations de façon efficace

7 / 51
Introduction Historique

Historique
Charles Bachman (General Electric) début années 1960 ; modèle
réseau.
Prix Turing 1973.
Fin des années 1960 : IBM crée le SGDB Information Management
System (IMS) ; modèle hiérarchique.
Utilisé par Saturn V (programme lunaire), encore utilisé pour des
distributeurs automatiques de billets.
1970 : Edgar Codd (IBM) propose nouveau système pour représenter
les données ; modèle relationnel.
Développement rapide de SGBD utilisant modèle relationnel et
recherches théoriques.
Prix Turing 1981.
Années 1980 : consolidation de la position dominante du modèle
relationnel. Langage de requête SQL standard (ANSI et ISO).
Années 2000 : remise en cause de la domination du modèle relationnel
avec le développement des grandes entreprises Internet (NoSQL).
8 / 51
Modèle relationnel

1 Introduction

2 Modèle relationnel
Concepts
Domaines et types
Instance du schéma relationnel
Contraintes
Clés étrangères

3 Algèbre relationnelle

9 / 51
Modèle relationnel Concepts

Concepts du modèle relationnel


Base de données : collection de relations.
Informellement, relation = table. Exemple : Classification classique des espèces
animales.
Nom Eucaryote Multicellulaire Propriété
bactéries faux faux
archées faux faux
protistes vrai faux
champignons vrai vrai décompose
végétaux vrai vrai photosynthétise
animaux vrai vrai ingère
Ligne de la table : n-uplet (tuple).
n-uplet : objet que l’on veut gérer dans la BD (espèce animale,
étudiant, voiture, ...)
Objets du même type sur les différentes lignes (on ne mélange pas
étudiants et animaux !)
colonne : propriété des objets, appelée attribut.
10 / 51
Modèle relationnel Domaines et types

Domaines

Domaine : ensemble de valeurs atomiques (indivisibles) pour un


attribut donné.
Mauvais exemple de relation : pas d’atomicité.
espèce
bactéries : procaryotes unicellulaires
archées : procaryotes unicellulaires
protistes : eucaryotes unicellulaires
champignons : eucaryotes multicellulaires qui décomposent
végétaux : eucaryotes multicellulaires qui photosynthétisent
animaux : eucaryotes multicellulaires qui ingèrent
Spécifier domaine : donner un type de données dans lequel prendre les
valeurs.
11 / 51
Modèle relationnel Domaines et types

Exemples de domaines

Numéros de téléphone : l’ensemble des numéros de téléphones à 10


chiffres valables en France.
Numéros de sécurité sociale : l’ensemble des numéros de sécurité
sociale à 15 chiffres valides.
Notes : valeurs possibles des notes d’un cours ; chacune doit être un
nombre réel (à virgule) entre 0 et 20.
Âge des employés : âge possible des employés d’une entreprise ; chacun
doit être un entier entre 16 et 70 ans.
Département de l’université : l’ensemble des noms des départements
de l’université, par exemple, mathématiques, informatique, physique...

12 / 51
Modèle relationnel Domaines et types

Type de données

Définitions du transparent précédent : définitions logiques.


Spécifier aussi types de données.
Exemples :
Numéros de téléphone : chaîne de 10 caractères, chaque caractère est
un chiffre (décimal).
Âge : nombre entier entre 16 et 70.
Eucaryote (pour espèce animale) : booléen (V/F).

13 / 51
Modèle relationnel Domaines et types

Types de données numériques

Type Représente
SMALLINT Nombre entier [-32768, 32767]
INT Nombre entier [-2147483648, 2147483647]
BIGINT Nombre entier [-9223372036854775808, 9223372036854775807]
SERIAL Nombre entier incrémenté automatiquement (le SGBD gère la numérotation)
DOUBLE Nombre réel [-1.7976931348623157E+308, 1.7976931348623157E+308]
FLOAT Nombre réel [-3.402823466E+38, 3.402823466E+38]
NUMERIC(n,d) Nombre à virgule de n chiffres dont d décimales

Nombres entiers positifs seulement : UNSIGNED


Les valeurs possibles sont décalées (ex : de 0 à 65535 pour SMALLINT)

14 / 51
Modèle relationnel Domaines et types

Types de données autres

Type Représente
VARCHAR(n) Chaîne d’au plus n caractères
CHAR(n) Chaîne d’exactement n caractères
TEXT Chaîne de taille non limitée
DATE Date au format ‘aaaa-mm-jj’
TIME Heure au format ‘hh:mm:ss’
BIT(n) Vecteurs de n bits

Chaînes de caractères :
VARCHAR si le nombre de caractères peut varier
CHAR s’il est fixe (Exemple : immatriculation d’un véhicule)
TEXT si le texte peut être très long (plusieurs centaines de caractères)

15 / 51
Modèle relationnel Domaines et types

En pratique

Schéma relationnel R(A1 , A2 , . . . , An )


liste d’attributs A1 , A2 , . . . , An
chaque attribut Ai a pour domaine Di .

n : degré ou arité de R.
Exemple : relation de degré 4 qui stocke des informations sur les films.
FILM(No, Titre, DateSortie, Pays)
Ou avec les types de données :
FILM(No : SMALLINT, Titre : VARCHAR(50), DateSortie :
DATE, Pays : CHAR(3))

16 / 51
Modèle relationnel Instance du schéma relationnel

Instance du schéma relationnel

Une instance r du schéma relationnel R(A1 , A2 , . . . , An ) est un


ensemble de n-uplets (lignes).
Chaque n-uplet t = (v1 , v2 , . . . , vn ) est une liste ordonnée de n valeurs
où vi est élément du domaine de Ai ou NULL.
Cette valeur NULL signifie « inconnue » ou « non applicable ».
Exemple : une instance de schéma relationnel :
ETUDIANT
Nom Prénom Numéro Tél fixe Adresse Tél portable
Leroy Richard 210236 0123456789 2 Rue Papu Rennes 0610111213
Calzati Giovanni 210282 0132456798 3 Avenue Valrose Nice 0610111111
Dumas Céline 214781 NULL 4 Rue Barla Nice 0701010101
Kachour Élise 236230 0217212121 NULL NULL

17 / 51
Modèle relationnel Instance du schéma relationnel

Instance de schéma relationnel (2)

On peut utiliser le vocabulaire de la théorie des ensembles.


Une instance de relation r du schéma R(A1 , . . . , An ) est

r ⊆ D1 × D2 × · · · × Dn ,

où Di est le domaine de l’attribut Ai pour tout i.


Conséquence : si |D| = cardinal de D, alors le nombre total de
n-uplets (lignes) possibles est |D1 | · |D2 | · · · · · |Dn |.
Cardinal : nombre total de n-uplets (lignes) de la relation.

r ensemble de n-uplets : pas de répétition, deux n-uplets (lignes)


sont toujours différents.

18 / 51
Modèle relationnel Instance du schéma relationnel

Instance de schéma relationnel (3)

Deux attributs peuvent avoir le même domaine, mais des


interprétations différentes.
Exemple : TRAJET(Ville Dép, Ville Arr), alors les deux attributs
ont le même domaine (celui des noms de Ville).

Le choix de l’ordre des colonnes n’est pas important, mais on le


conserve par commodité.
L’ordre des n-uplets (lignes) n’a pas d’importance.

19 / 51
Modèle relationnel Contraintes

Contraintes du domaine relationnel

On ajoute des contraintes sur le schéma relationnel pour pouvoir le


manipuler convenablement ou qu’il réponde à nos objectifs.
Contraintes de domaine : les composantes de chaque n-uplet doivent
appartenir au domaine spécifié au départ.
Contraintes de clés. Rappel : les n-uplets (lignes) sont deux-à-deux
distincts.
il existe un sous-ensemble d’attributs sur lequels deux n-uplets de la
relation diffèrent toujours. Cet ensemble est appelé super-clé.
Une clé candidate est une super-clé minimale.
Parmi les clés candidates, on en choisit une et on l’appelle clé primaire.
Dans le schéma relationnel, on souligne le ou les attributs composant la
clé primaire.

20 / 51
Modèle relationnel Contraintes

Contraintes de clés

Exemple : ESPÈCE
Nom Eucaryote Multicellulaire Propriété
bactéries faux faux NULL
archées faux faux NULL
protistes vrai faux NULL
champignons vrai vrai décompose
végétaux vrai vrai photosynthétise
animaux vrai vrai ingère
Schéma relationnel :
ESPÈCE(Nom, Eucaryote, Multicellulaire, Propriété)

21 / 51
Modèle relationnel Contraintes

Contraintes de clés (suite)

Exemple : DOCUMENT
Id Langue Description
rapport1 français
rapport1 anglais Le rapport 1 en anglais
rapport2 français Le rapport 2 en français
rapport3 anglais Le rapport 3 en anglais
Schéma relationnel :
DOCUMENT(Id, Langue, Description)
La clé primaire est composée et est formée du couple (Id, Langue).

22 / 51
Modèle relationnel Contraintes

Contraintes du modèle relationnel (suite)

Contraintes de valeur NULL.


On spécifie à l’avance si une valeur NULL est admissible ou non.
Exemple : toute espèce doit avoir un nom valide ; l’attribut Nom est NOT
NULL.
Contraintes d’intégrité.
1 La clé primaire ne peut pas être NULL.
2 Contraintes d’intégrité référentielles :
Règles spécifiées entre deux relations pour compatiblité.
Informellement : un n-uplet d’une relation R2 qui fait référence à une
autre relation R1 doit faire référence à un n-uplet existant et unique
dans la relation R1 .
Exemple : CLIENT(No client, Nom, Adresse)
ACHAT(No produit, No client, Date, Qte)
Un n-uplet de la relation ACHAT doit contenir un No client qui existe
et est unique dans CLIENT.

23 / 51
Modèle relationnel Clés étrangères

Clés étrangères

Définition précise : soient R1 , R2 deux schémas relationels. Un


ensemble d’attributs (ou n-uplet) CE de R1 qui fait référence à la
relation R2 est clé étrangère si les règles suivantes sont vérifiées :
Les attributs de CE ont le(s) même(s) domaine(s) que les attributs
référencés AR de R1
Le n-uplet AR doit être unique
Une valeur de CE pour un n-uplet de R2 est soit une valeur existante
de AR dans R1 , soit NULL.

Clé étrangère = ensemble unique d’attributs d’une autre relation.


Dans le schéma relationnel, on souligne en pointillés les attributs
composant les clés étrangères.
CLIENT(No client, Nom, Adresse)
ACHAT(No produit, No client, Date, Qte)

24 / 51
Modèle relationnel Clés étrangères

Exemple
No Nom AnnéeNaiss
1 Jeff Bridges 1949
Rôle ActeurNo FilmNo
2 Ethan Coen 1954
Walter Sobchak 4 1005
3 Joel Coen 1957
The Dude 1 1005
4 John Goodman 1952
Rooster Cogburn 8 1001
5 Henry Hathaway 1898
Rooster Cogburn 1 1020
6 Bong Joon-ho 1969
Mattie Ross 7 1020
7 Hailee Steinfeld 1996
8 John Wayne 1907 RÔLE

PERSONNE

RéalNo FilmNo
FilmNo Titre Année
3 1005
1001 True Grit 1969
2 1020
1005 The Big Lebowski 1998
3 1020
1020 True Grit 2010
5 1001
1030 Parasite 2019
6 1030
FILM
RÉALISATION
25 / 51
Modèle relationnel Clés étrangères

Schéma relationnel de l’exemple précédent

Schéma relationnel obtenu :


PERSONNE(No, Nom, AnnéeNaiss)
RÔLE(Rôle, ActeurNo, FilmNo)
RÉALISATION(RéalNo, FilmNo)
FILM(FilmNo, Titre, Année)
Remarques :
Dans RÉALISATION, la clé primaire est le couple (RéalNo, FilmNo)
Dans RÔLE, FilmNo est partie de clé primaire et est également clé
étrangère, on souligne avec deux traits.

26 / 51
Algèbre relationnelle

1 Introduction

2 Modèle relationnel

3 Algèbre relationnelle
Présentation
Opération - sélection
Opération - projection
Opération - renommage
Opérations ensemblistes - union, intersection, différence
Opérations ensemblistes - produit cartésien
Jointure
Jointure externe
Combiner ces opérations

27 / 51
Algèbre relationnelle Présentation

Une relation peut être vue comme une table dont les colonnes sont les
attributs. Les lignes de la table sont appelées n-uplets en français,
tuples en anglais.
Algèbre relationnelle : définir des opérations sur les relations.
Résultats des opérations : des relations.
Peut paraître assez abstrait (au premier abord), mais constituent la
base des requêtes SQL (dans un cours prochain).

28 / 51
Algèbre relationnelle Opération - sélection

Sélection – définition et exemples de bases


Sélection : choisir un sous-ensemble des n-uplets (lignes) qui
vérifient la condition de sélection. Notation : σ
Sélection peut être vue comme filtrage :
Séparation des n-uplets en 2 paquets : ceux qui vérifient la condition
(conservés) et les autres (rejetés).
Exemples :
Films dont le titre est True Grit : σTitre=‘True Grit’ (FILM)
FilmNo Titre Année

1001 True Grit 1969


1020 True Grit 2010

σTitre=‘True Grit’ (FILM)

Films sortis avant 2000 : σAnnée < 2000 (FILM)


FilmNo Titre Année

1001 True Grit 1969


1005 The Big Lebowski 1998

σAnnée < 2000 (FILM)

29 / 51
Algèbre relationnelle Opération - sélection

Sélection – généralités
Notation : sélection sur une relation R :
σ<condition de sélection> (R)
Condition formée d’un nombre quelconque de clauses de la forme
<nom attribut> <op. comparaison> <valeur constante>
ou <nom attribut> <op. comparaison> <nom attribut>
où <op. comparaison> est un des opérateurs =, <, 6, >, >, 6=.
Les clauses peuvent être reliées par les opérateurs booléens et, ou,
non (négation ¬).
Exemple : sélectionner les personnes dont le numéro est 1 ou nées
dans les années 1950 :
No Nom AnnéeNaiss
1 Jeff Bridges 1949
2 Ethan Coen 1954
3 Joel Coen 1957
4 John Goodman 1952

σNo = 1 ou (AnnéeNaiss > 1950 et AnnéeNaiss 6 1959) (PERSONNE)


30 / 51
Algèbre relationnelle Opération - sélection

Sélection – propriétés

Propriétés
Le résultat d’une sélection à partir d’une relation R est une relation de
même degré (nombre d’attributs) que R.
Le cardinal (nombres de n-uplets ou lignes) d’une sélection à partir
d’une relation R est inférieur ou égal au cardinal de R.
L’opération de sélection est commutative :
σ<cond1> (σ<cond2> (R)) = σ<cond2> (σ<cond1> (R)).

En effet, σ<cond1> (σ<cond2> (R)) = σ<cond1> et <cond2> (R).

31 / 51
Algèbre relationnelle Opération - projection

Projection – définition et exemples de bases

Projection : sélectionner certaines colonnes de la table (et jeter


les autres). Notation : π.
Projection utilisée si seuls certains attributs (colonnes) nous
intéressent.
Exemples : titres, années des films, puis titres des films
Titre Année
True Grit 1969 Titre
The Big Lebowski 1998 True Grit
True Grit 2010 The Big Lebowski
Parasite 2019 Parasite

πTitre,Année (FILM) πTitre (FILM)

Les répétitions sont éliminées.

32 / 51
Algèbre relationnelle Opération - projection

Projection – cas général

Notation : projection pour une relation R : π<liste d’attributs> (R)


Il est possible que des n-uplets (lignes) identiques apparaissent. Mais
la projection supprime les n-uplets identiques.
Le résultat de l’opération de projection est donc un ensemble d’uplets
distincts deux à deux (et donc une relation valide).

Propriétés
Le cardinal (nombres de n-uplets ou lignes) d’une projection à partir
d’une relation R est inférieur ou égal au cardinal de R.
La projection est idempotente :
π<cond> (π<cond> (R)) = π<cond> (R).

33 / 51
Algèbre relationnelle Opération - renommage

Renommage – définition

Le renommage consiste à changer le nom d’une colonne (un attribut).


Exemple : renommer l’attribut Année en Sortie
FilmNo Titre Sortie
1001 True Grit 1969
1005 The Big Lebowski 1998
1020 True Grit 2010
1030 Parasite 2019

ρAnnée/Sortie (FILM)

34 / 51
Algèbre relationnelle Opérations ensemblistes - union, intersection, différence

On peut utiliser les opérations standard de la théorie des ensembles


pour manipuler les relations.
A∩B A∪B

A B A B

A−B B −A

A B A B

35 / 51
Algèbre relationnelle Opérations ensemblistes - union, intersection, différence

Union, intersection, différence

Les relations R(A1 , . . . , An ) et S(B1 , . . . , Bm ) sont dites compatibles si


les deux conditions suivantes sont vérifiées :
elles ont même degré (même nombre d’attributs, ou encore de
colonnes, ou encore n = m)
pour tout i, 1 6 i 6 n, Ai et Bi ont même domaine.
Pour deux relations R et S compatibles,
l’union de R et S, notée R ∪ S, est la relation qui contient les n-uplets
qui sont dans R, dans S, et dans les deux à la fois. Les répétitions sont
éliminées.
L’intersection de R et S, notée R ∩ S, est la relation qui contient les
n-uplets qui sont dans R et dans S.
La différence de R et S, notée R−S est la relation qui contient les
n-uplets qui sont dans R et pas dans S.
Par convention, les noms des attributs sont ceux de la 1ère relation. On
peut toujours faire un renommage au besoin.

36 / 51
Algèbre relationnelle Opérations ensemblistes - union, intersection, différence

Union, intersection, différence : exemples


FilmNo Titre Année
FilmNo Titre Année
1001 True Grit 1969
1001 True Grit 1969
1005 The Big Lebowski 1998
1011 The African Queen 1951
1020 True Grit 2010
1025 Birdman 2014
1030 Parasite 2019
FILM2
FILM1

Les relations FILM1 et FILM2 sont compatibles.


FilmNo Titre Année
FilmNo Titre Année 1005 The Big Lebowski 1998
1001 True Grit 1969 1020 True Grit 2010
1030 Parasite 2019
FILM1∩FILM2
FILM1−FILM2

FilmNo Titre Année


1001 True Grit 1969
1005 The Big Lebowski 1998 FilmNo Titre Année
1020 True Grit 2010 1011 The African Queen 1951
1030 Parasite 2019 1025 Birdman 2014
1011 The African Queen 1951
FILM2−FILM1
1025 Birdman 2014

FILM1∪FILM2
37 / 51
Algèbre relationnelle Opérations ensemblistes - union, intersection, différence

Union, intersection, différence : exemples


FilmNo Titre Année No Nom AnnéeNaiss
1001 True Grit 1969 1 Jeff Bridges 1949
1005 The Big Lebowski 1998 2 Ethan Coen 1954
1020 True Grit 2010 3 Joel Coen 1957
1030 Parasite 2019 4 John Goodman 1952

FILM PERSONNE

Les relations FILM et PERSONNE sont compatibles.


FilmNo Titre Année
1001 True Grit 1969
FilmNo Titre Année 1005 The Big Lebowski 1998
1020 True Grit 2010
FILM∩PERSONNE
1030 Parasite 2019

FilmNo Titre Année FILM−PERSONNE

1001 True Grit 1969


1005 The Big Lebowski 1998 No Nom AnnéeNaiss
1020 True Grit 2010 1 Jeff Bridges 1949
1030 Parasite 2019 2 Ethan Coen 1954
1 Jeff Bridges 1949 3 Joel Coen 1957
2 Ethan Coen 1954 4 John Goodman 1952
3 Joel Coen 1957
PERSONNE−FILM
4 John Goodman 1952
38 / 51
Algèbre relationnelle Opérations ensemblistes - produit cartésien

Produit cartésien

R et S deux relations (pas de compatibilité requise).


Le produit cartésien de R et S, noté R × S est la relation dont les
n-uplets (lignes) sont obtenus en combinant tous les n-uplets de R
avec ceux de S.
Exemple : FILM × RÔLE

39 / 51
Algèbre relationnelle Opérations ensemblistes - produit cartésien

FILM × RÔLE
[Link] Titre Année Rôle ActeurNo RÔ[Link]
1001 True Grit 1969 Walter Sobchak 4 1005
1001 True Grit 1969 The Dude 1 1005
1001 True Grit 1969 Rooster Cogburn 8 1001
1001 True Grit 1969 Rooster Cogburn 1 1020
1001 True Grit 1969 Mattie Ross 7 1020
1005 The Big Lebowski 1998 Walter Sobchak 4 1005
1005 The Big Lebowski 1998 The Dude 1 1005
1005 The Big Lebowski 1998 Rooster Cogburn 8 1001
1005 The Big Lebowski 1998 Rooster Cogburn 1 1020
1005 The Big Lebowski 1998 Mattie Ross 7 1020
1020 True Grit 2010 Walter Sobchak 4 1005
1020 True Grit 2010 The Dude 1 1005
1020 True Grit 2010 Rooster Cogburn 8 1001
1020 True Grit 2010 Rooster Cogburn 1 1020
1020 True Grit 2010 Mattie Ross 7 1020
1030 Parasite 2019 Walter Sobchak 4 1005
1030 Parasite 2019 The Dude 1 1005
1030 Parasite 2019 Rooster Cogburn 8 1001
1030 Parasite 2019 Rooster Cogburn 1 1020
1030 Parasite 2019 Mattie Ross 7 1020
40 / 51
Algèbre relationnelle Opérations ensemblistes - produit cartésien

Produit cartésien – cas général

R(A1 , A2 , . . . , An ) et S(B1 , B2 , . . . , Bm ) deux relations.


Alors R × S relation de degré n + m et d’attributs

(A1 , A2 , . . . , An , B1 , B2 , . . . , Bm ).

Cardinal(R × S)= Cardinal(R) × Cardinal(S)

Quel intérêt ? Seul, peu pertinent. Plus utile suivi d’une sélection pour
faire correspondre les attributs.

41 / 51
Algèbre relationnelle Opérations ensemblistes - produit cartésien

Sélection sur le produit cartésien

[Link] Titre Année Rôle ActeurNo RÔ[Link]


1001 True Grit 1969 Rooster Cogburn 8 1001
1005 The Big Lebowski 1998 Walter Sobchak 4 1005
1005 The Big Lebowski 1998 The Dude 1 1005
1020 True Grit 2010 Rooster Cogburn 1 1020
1020 True Grit 2010 Mattie Ross 7 1020

σ[Link] = RÔ[Link] (FILM × RÔLE)

; Films avec les rôles correspondants.


Produit cartésien puis sélection : opération très courante, peut être
vue comme une jointure.

42 / 51
Algèbre relationnelle Jointure

Jointure : définition

Jointure, dénotée par ⨝, utilisée pour combiner des n-uplets


apparentés de deux relations en un n-uplet « plus long ».
Pour obtenir l’ensemble des films avec les rôles.
[Link] Titre Année Rôle ActeurNo RÔ[Link]
1001 True Grit 1969 Rooster Cogburn 8 1001
1005 The Big Lebowski 1998 Walter Sobchak 4 1005
1005 The Big Lebowski 1998 The Dude 1 1005
1020 True Grit 2010 Rooster Cogburn 1 1020
1020 True Grit 2010 Mattie Ross 7 1020

FILM⨝[Link]=RÔ[Link] RÔLE

43 / 51
Algèbre relationnelle Jointure

Jointure : cas général

Forme générale d’une jointure sur deux relations R(A1 , A2 , . . . , An ) et


S(B1 , B2 , . . . , Bm ) :
R⨝<condition jointure> S
Résultat de cette opération : relation à n + m attributs

(A1 , A2 , . . . , An , B1 , B2 , . . . , Bm ).

Les n-uplets de la jointure sont formés d’uplets de R concaténés avec


des n-uplets de S pourvu qu’ils vérifient la condition de jointure.
La condition de jointure est spécifiée sur les attributs de R et de S.

44 / 51
Algèbre relationnelle Jointure

θ-jointure

Une condition de jointure générale est de la forme


<condition> et <condition> et ... et <condition>
où <condition> est de la forme

Ai θBj ,

où Ai (attribut de R) et Bj (attribut de S) ont le même domaine, et θ est


une des comparaisons =, <, 6, >, >, 6=.
Une jointure avec une telle condition générale est appelée θ-jointure.

45 / 51
Algèbre relationnelle Jointure

Équijointure et jointure naturelle

Les jointures avec égalité (=) sont appelées équijointures.


Le résultat d’une équijointure comporte deux attributs identiques, l’un
provenant de la relation R1, l’autre provenant de R2.
; jointure naturelle, notation *
il faut que les deux attributs aient le même nom.
Exemple : combiner FILM et RÔLE pour obtenir aussi le nom du film
correspondant à chaque rôle.
La jointure naturelle supprime l’un des deux attributs dupliqués.
FilmNo Titre Année Rôle ActeurNo

1001 True Grit 1969 Rooster Cogburn 8


1005 The Big Lebowski 1998 Walter Sobchak 4
1005 The Big Lebowski 1998 The Dude 1
1020 True Grit 2010 Rooster Cogburn 1
1020 True Grit 2010 Mattie Ross 7

FILM * RÔLE

46 / 51
Algèbre relationnelle Jointure externe

Jointure externe gauche


Dans la jointure naturelle précédente, le film Parasite n’apparaît pas,
parce qu’aucun rôle de ce film n’est renseigné dans la relation RÔLE.
Jointure externe gauche de R et S :
uplets de R et de S qui vérifient le critère de jointure sur leurs noms
d’attributs communs (i.e. jointure naturelle),
ainsi que les uplets de R qui n’ont pas d’uplets correspondants dans S.
Notation : R⟕S.
Exemple : FILM⟕RÔLE
FilmNo Titre Année Rôle ActeurNo
1001 True Grit 1969 Rooster Cogburn 8
1005 The Big Lebowski 1998 Walter Sobchak 4
1005 The Big Lebowski 1998 The Dude 1
1020 True Grit 2010 Rooster Cogburn 1
1020 True Grit 2010 Mattie Ross 7
1030 Parasite 2019 NULL NULL

FILM⟕RÔLE

47 / 51
Algèbre relationnelle Jointure externe

Jointures externes droite et totale

Jointure externe droite de R et S (notation R ⟖ S) :


uplets de R et de S qui vérifient le critère de jointure sur leurs noms
d’attributs communs (i.e. jointure naturelle),
ainsi que les uplets de S qui n’ont pas d’uplets correspondants dans R.
Jointure externe totale de R et S (notation R ⟗ S) :
uplets de R et de S qui vérifient le critère de jointure sur leurs noms
d’attributs communs (i.e. jointure naturelle),
ainsi que les uplets de R qui n’ont pas d’uplets correspondants dans S.
ainsi que les uplets de S qui n’ont pas d’uplets correspondants dans R.

48 / 51
Algèbre relationnelle Jointure externe

Jointures externe totale


Définissons une relation ANCIENS = σAnnéeNaiss < 1955 (PERSONNE) et
renommons l’attribut RéalNo en No pour préparer la jointure.
No Nom AnnéeNaiss No FilmNo
1 Jeff Bridges 1949 3 1005
2 Ethan Coen 1954 2 1020
4 John Goodman 1952 3 1020
5 Henry Hathaway 1898 5 1001
8 John Wayne 1907 6 1030

ANCIENS = σAnnéeNaiss < 1955 (PERSONNE) RÉAL = ρRéalNo/No (RÉALISATION)

Jointure externe totale :


No Nom AnnéeNaiss FilmNo
1 Jeff Bridges 1949 NULL
2 Ethan Coen 1954 1020
3 NULL NULL 1005
3 NULL NULL 1020
4 John Goodman 1952 NULL
5 Henry Hathaway 1898 1001
6 NULL NULL 1030
8 John Wayne 1907 NULL
49 / 51
Algèbre relationnelle Combiner ces opérations

Combiner toutes ces opérations

On peut combiner toutes les opérations pour obtenir les informations


qui nous intéressent.
Tous les rôles de Jeff Bridges avec les titres correspondants :

πTitre,Rôle (RÔLE * FILM) * ρNo/ActeurNo σNom=‘Jeff Bridges’ (PERSONNE)

Titre Rôle
The Big Lebowski The Dude
True Grit Rooster Cogburn

50 / 51
Algèbre relationnelle Combiner ces opérations

À suivre

Dans un prochain cours : concep-


tion et premiers éléments de SQL.

51 / 51

Vous aimerez peut-être aussi