Introduction aux Bases de Données
Introduction aux 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
5 / 51
Introduction Motivation
6 / 51
Introduction Motivation
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
Domaines
Exemples de domaines
12 / 51
Modèle relationnel Domaines et types
Type de données
13 / 51
Modèle relationnel Domaines et types
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
14 / 51
Modèle relationnel Domaines et types
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
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
17 / 51
Modèle relationnel Instance du schéma relationnel
r ⊆ D1 × D2 × · · · × Dn ,
18 / 51
Modèle relationnel Instance du schéma relationnel
19 / 51
Modèle relationnel Contraintes
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
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
23 / 51
Modèle relationnel Clés étrangères
Clés étrangères
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
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
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
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)).
31 / 51
Algèbre relationnelle Opération - projection
32 / 51
Algèbre relationnelle Opération - projection
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
ρAnnée/Sortie (FILM)
34 / 51
Algèbre relationnelle Opérations ensemblistes - union, intersection, différence
A B A B
A−B B −A
A B A B
35 / 51
Algèbre relationnelle Opérations ensemblistes - union, intersection, différence
36 / 51
Algèbre relationnelle Opérations ensemblistes - union, intersection, différence
FILM1∪FILM2
37 / 51
Algèbre relationnelle Opérations ensemblistes - union, intersection, différence
FILM PERSONNE
Produit cartésien
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
(A1 , A2 , . . . , An , B1 , B2 , . . . , Bm ).
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
42 / 51
Algèbre relationnelle Jointure
Jointure : définition
FILM⨝[Link]=RÔ[Link] RÔLE
43 / 51
Algèbre relationnelle Jointure
(A1 , A2 , . . . , An , B1 , B2 , . . . , Bm ).
44 / 51
Algèbre relationnelle Jointure
θ-jointure
Ai θBj ,
45 / 51
Algèbre relationnelle Jointure
FILM * RÔLE
46 / 51
Algèbre relationnelle Jointure externe
FILM⟕RÔLE
47 / 51
Algèbre relationnelle Jointure externe
48 / 51
Algèbre relationnelle Jointure externe
Titre Rôle
The Big Lebowski The Dude
True Grit Rooster Cogburn
50 / 51
Algèbre relationnelle Combiner ces opérations
À suivre
51 / 51