Vous êtes sur la page 1sur 142

Cours bases de donnes <idir.aitsadoune@supelec.

fr> Formation continue 2013/2014

Introduction aux bases de donnes


Formation continue

Idir AIT SADOUNE

idir.aitsadoune@supelec.fr
cole Suprieure dlectricit
Dpartement Informatique
Gif sur Yvette

2013/2014

1/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014

Plan
1 Introduction
Donnes, Bases de donnes et SGBD
SGBD
2 Le modle Entit/Association
Principes gnraux
Le modle
Avantages et inconvnients
3 Le modle relationnel
Dfinition
Passage dun schma E/A un schma relationnel
Langage de dfinition de donnes (LDD) : SQL2
4 Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
5 Le langage SQL
Requtes simples SQL
Requtes sur plusieurs tables
Requtes imbriques
Agrgation
Mises--jour
2/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014

Plan
1 Introduction
Donnes, Bases de donnes et SGBD
SGBD
2 Le modle Entit/Association
Principes gnraux
Le modle
Avantages et inconvnients
3 Le modle relationnel
Dfinition
Passage dun schma E/A un schma relationnel
Langage de dfinition de donnes (LDD) : SQL2
4 Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
5 Le langage SQL
Requtes simples SQL
Requtes sur plusieurs tables
Requtes imbriques
Agrgation
Mises--jour
2/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014

Plan
1 Introduction
Donnes, Bases de donnes et SGBD
SGBD
2 Le modle Entit/Association
Principes gnraux
Le modle
Avantages et inconvnients
3 Le modle relationnel
Dfinition
Passage dun schma E/A un schma relationnel
Langage de dfinition de donnes (LDD) : SQL2
4 Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
5 Le langage SQL
Requtes simples SQL
Requtes sur plusieurs tables
Requtes imbriques
Agrgation
Mises--jour
2/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014

Plan
1 Introduction
Donnes, Bases de donnes et SGBD
SGBD
2 Le modle Entit/Association
Principes gnraux
Le modle
Avantages et inconvnients
3 Le modle relationnel
Dfinition
Passage dun schma E/A un schma relationnel
Langage de dfinition de donnes (LDD) : SQL2
4 Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
5 Le langage SQL
Requtes simples SQL
Requtes sur plusieurs tables
Requtes imbriques
Agrgation
Mises--jour
2/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014

Plan
1 Introduction
Donnes, Bases de donnes et SGBD
SGBD
2 Le modle Entit/Association
Principes gnraux
Le modle
Avantages et inconvnients
3 Le modle relationnel
Dfinition
Passage dun schma E/A un schma relationnel
Langage de dfinition de donnes (LDD) : SQL2
4 Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
5 Le langage SQL
Requtes simples SQL
Requtes sur plusieurs tables
Requtes imbriques
Agrgation
Mises--jour
2/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
Donnes, Bases de donnes et SGBD

Plan
1 Introduction
Donnes, Bases de donnes et SGBD
SGBD
2 Le modle Entit/Association
Principes gnraux
Le modle
Avantages et inconvnients
3 Le modle relationnel
Dfinition
Passage dun schma E/A un schma relationnel
Langage de dfinition de donnes (LDD) : SQL2
4 Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
5 Le langage SQL
Requtes simples SQL
Requtes sur plusieurs tables
Requtes imbriques
Agrgation
Mises--jour
3/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
Donnes, Bases de donnes et SGBD

Donnes et bases de donnes

Donne
Une donne est une information quelconque
Ex. "Cette personne sappelle Jean"
Une donne est une relation entre des information
Ex. "Jean enseigne les mathmatiques"

Base de donne (BD)


Une BD est un ensemble volumineux dinformation mmoris de manire
permanente
Une BD est un gros ensemble dinformations structures mmorises sur un
support permanent.

4/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
Donnes, Bases de donnes et SGBD

Donnes et bases de donnes

Donne
Une donne est une information quelconque
Ex. "Cette personne sappelle Jean"
Une donne est une relation entre des information
Ex. "Jean enseigne les mathmatiques"

Base de donne (BD)


Une BD est un ensemble volumineux dinformation mmoris de manire
permanente
Une BD est un gros ensemble dinformations structures mmorises sur un
support permanent.

4/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
Donnes, Bases de donnes et SGBD

Donnes et bases de donnes

Donne
Une donne est une information quelconque
Ex. "Cette personne sappelle Jean"
Une donne est une relation entre des information
Ex. "Jean enseigne les mathmatiques"

Base de donne (BD)


Une BD est un ensemble volumineux dinformation mmoris de manire
permanente
Une BD est un gros ensemble dinformations structures mmorises sur un
support permanent.

4/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
Donnes, Bases de donnes et SGBD

Donnes et bases de donnes

Donne
Une donne est une information quelconque
Ex. "Cette personne sappelle Jean"
Une donne est une relation entre des information
Ex. "Jean enseigne les mathmatiques"

Base de donne (BD)


Une BD est un ensemble volumineux dinformation mmoris de manire
permanente
Une BD est un gros ensemble dinformations structures mmorises sur un
support permanent.

4/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
SGBD

Plan
1 Introduction
Donnes, Bases de donnes et SGBD
SGBD
2 Le modle Entit/Association
Principes gnraux
Le modle
Avantages et inconvnients
3 Le modle relationnel
Dfinition
Passage dun schma E/A un schma relationnel
Langage de dfinition de donnes (LDD) : SQL2
4 Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
5 Le langage SQL
Requtes simples SQL
Requtes sur plusieurs tables
Requtes imbriques
Agrgation
Mises--jour
5/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
SGBD

Systme de Gestion de Bases de Donnes (SGBD)

Gestion dune BD
Une organisation base base sur des fichiers ?
lourdeur daccs aux donnes
manque de scurit
absence de contrle de concurrence

Solution
Un systme charg de grer les fichiers constituant une base de donnes, de prendre
en charge les fonctionnalits de protection et de scurit et de fournir les diffrents
types dinterface ncessaires laccs aux donnes

Systme de Gestion de Bases de Donnes (SGBD)


Un Systme de Gestion de Bases de Donnes (SGBD) est un logiciel de haut niveau
qui permet de manipuler les informations stockes dans une base de donnes.

6/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
SGBD

Systme de Gestion de Bases de Donnes (SGBD)

Gestion dune BD
Une organisation base base sur des fichiers ?
lourdeur daccs aux donnes
manque de scurit
absence de contrle de concurrence

Solution
Un systme charg de grer les fichiers constituant une base de donnes, de prendre
en charge les fonctionnalits de protection et de scurit et de fournir les diffrents
types dinterface ncessaires laccs aux donnes

Systme de Gestion de Bases de Donnes (SGBD)


Un Systme de Gestion de Bases de Donnes (SGBD) est un logiciel de haut niveau
qui permet de manipuler les informations stockes dans une base de donnes.

6/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
SGBD

Systme de Gestion de Bases de Donnes (SGBD)

Gestion dune BD
Une organisation base base sur des fichiers ?
lourdeur daccs aux donnes
manque de scurit
absence de contrle de concurrence

Solution
Un systme charg de grer les fichiers constituant une base de donnes, de prendre
en charge les fonctionnalits de protection et de scurit et de fournir les diffrents
types dinterface ncessaires laccs aux donnes

Systme de Gestion de Bases de Donnes (SGBD)


Un Systme de Gestion de Bases de Donnes (SGBD) est un logiciel de haut niveau
qui permet de manipuler les informations stockes dans une base de donnes.

6/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
SGBD

Systme de Gestion de Bases de Donnes (SGBD)

Gestion dune BD
Une organisation base base sur des fichiers ?
lourdeur daccs aux donnes
manque de scurit
absence de contrle de concurrence

Solution
Un systme charg de grer les fichiers constituant une base de donnes, de prendre
en charge les fonctionnalits de protection et de scurit et de fournir les diffrents
types dinterface ncessaires laccs aux donnes

Systme de Gestion de Bases de Donnes (SGBD)


Un Systme de Gestion de Bases de Donnes (SGBD) est un logiciel de haut niveau
qui permet de manipuler les informations stockes dans une base de donnes.

6/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
SGBD

Utilisation dun SGBD 1/2

lments essentiels pour un SGBD


Dfinition du schma de donnes en utilisant les modles de donnes du SGBD
Le modle conceptuel (1) : la description du systme dinformation
(Modle entit association)
Le modle logique (2) : interface avec le SGBD
Dfinition des donnes
Oprations sur les donnes (Cration, modification, destruction et
recherche)
Le modle physique (3) : fichiers

7/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
SGBD

Utilisation dun SGBD 2/2

Partager les donnes entre plusieurs utilisateurs. (Mcanisme de transaction).


Grer les conflits si les deux font des mises--jour.
Offrir un mcanisme de retour en arrire
Donner une image cohrente des donnes si lun fait des requtes et
lautre des mises--jour.
Optimiser les performances, par le rglage de lorganisation physique des
donnes.
Lorganisation physique des donnes

8/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
SGBD

Utilisation dun SGBD 2/2

Partager les donnes entre plusieurs utilisateurs. (Mcanisme de transaction).


Grer les conflits si les deux font des mises--jour.
Offrir un mcanisme de retour en arrire
Donner une image cohrente des donnes si lun fait des requtes et
lautre des mises--jour.
Optimiser les performances, par le rglage de lorganisation physique des
donnes.
Lorganisation physique des donnes

8/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle Entit/Association
Principes gnraux

Plan
1 Introduction
Donnes, Bases de donnes et SGBD
SGBD
2 Le modle Entit/Association
Principes gnraux
Le modle
Avantages et inconvnients
3 Le modle relationnel
Dfinition
Passage dun schma E/A un schma relationnel
Langage de dfinition de donnes (LDD) : SQL2
4 Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
5 Le langage SQL
Requtes simples SQL
Requtes sur plusieurs tables
Requtes imbriques
Agrgation
Mises--jour
9/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle Entit/Association
Principes gnraux

Introduction

le modle Entit/Association (E/A) est utilis pour la conception de bases de


donnes.
le modle E/A a pour caractristiques dtre simple et puissant pour reprsenter
des structures relationnelles (reprsentation graphique).

le schma E/A dcrit lapplication vise (une abstraction dun domaine dtude)
une abstraction consiste choisir certains aspects de la ralit perue (et donc
liminer les autres)

10/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle Entit/Association
Principes gnraux

Introduction

le modle Entit/Association (E/A) est utilis pour la conception de bases de


donnes.
le modle E/A a pour caractristiques dtre simple et puissant pour reprsenter
des structures relationnelles (reprsentation graphique).

le schma E/A dcrit lapplication vise (une abstraction dun domaine dtude)
une abstraction consiste choisir certains aspects de la ralit perue (et donc
liminer les autres)

10/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle Entit/Association
Principes gnraux

Prsentation informelle

des entits, reprsentes par des rectangles,


des associations entre entits reprsentes par des liens entre ces rectangles.

11/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle Entit/Association
Le modle

Plan
1 Introduction
Donnes, Bases de donnes et SGBD
SGBD
2 Le modle Entit/Association
Principes gnraux
Le modle
Avantages et inconvnients
3 Le modle relationnel
Dfinition
Passage dun schma E/A un schma relationnel
Langage de dfinition de donnes (LDD) : SQL2
4 Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
5 Le langage SQL
Requtes simples SQL
Requtes sur plusieurs tables
Requtes imbriques
Agrgation
Mises--jour
12/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle Entit/Association
Le modle

Entits, attributs et identifiants

on dsigne par entit tout objet identifiable et pertinent pour lapplication.


les entits sont caractrises par des proprits (attributs).
un attribut est dsign par un nom et prend ses valeurs dans un domaine
numrable comme les entiers, les chanes de caractres, les dates, etc.

Dfinition formelle dune entit


Le type dune entit est compos des lments suivants :
son nom ;
la liste de ses attributs avec, optionnellement le domaine o lattribut prend
ses valeurs ;
lindication du (ou des) attribut(s) permettant didentifier lentit.

13/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle Entit/Association
Le modle

Entits, attributs et identifiants

on dsigne par entit tout objet identifiable et pertinent pour lapplication.


les entits sont caractrises par des proprits (attributs).
un attribut est dsign par un nom et prend ses valeurs dans un domaine
numrable comme les entiers, les chanes de caractres, les dates, etc.

Dfinition formelle dune entit


Le type dune entit est compos des lments suivants :
son nom ;
la liste de ses attributs avec, optionnellement le domaine o lattribut prend
ses valeurs ;
lindication du (ou des) attribut(s) permettant didentifier lentit.

13/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle Entit/Association
Le modle

Identifiants
Dfinition formelle dune cl
Soit E un type dentit et A lensemble des attributs de E . Une cl de E est un
sous-ensemble minimal de A permettant didentifier de manire unique une entit
parmi nimporte quelle extension de E

Il est possible davoir plusieurs cls pour un mme ensemble dentits. Dans ce cas on
en choisit une comme cl primaire, et les autres comme cls secondaires.

Les caractristiques dune bonne cl primaire sont les suivantes :


sa valeur est connue pour toute entit ;
on ne doit jamais avoir besoin de la modifier ;
enfin, pour des raisons de performance, sa taille de stockage doit tre la
plus petite possible.

14/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle Entit/Association
Le modle

Identifiants
Dfinition formelle dune cl
Soit E un type dentit et A lensemble des attributs de E . Une cl de E est un
sous-ensemble minimal de A permettant didentifier de manire unique une entit
parmi nimporte quelle extension de E

Il est possible davoir plusieurs cls pour un mme ensemble dentits. Dans ce cas on
en choisit une comme cl primaire, et les autres comme cls secondaires.

Les caractristiques dune bonne cl primaire sont les suivantes :


sa valeur est connue pour toute entit ;
on ne doit jamais avoir besoin de la modifier ;
enfin, pour des raisons de performance, sa taille de stockage doit tre la
plus petite possible.

14/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle Entit/Association
Le modle

Associations binaires

La reprsentation (et le stockage) dentits indpendantes les unes des autres est de
peu dutilit

Prenons lexemple de lassociation reprsentant le fait quun ralisateur met en scne


des films.
certains ralisateurs mettent en scne plusieurs films ;
inversement, un film est mis en scne par au plus un ralisateur.

15/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle Entit/Association
Le modle

Associations binaires

La reprsentation (et le stockage) dentits indpendantes les unes des autres est de
peu dutilit

Prenons lexemple de lassociation reprsentant le fait quun ralisateur met en scne


des films.
certains ralisateurs mettent en scne plusieurs films ;
inversement, un film est mis en scne par au plus un ralisateur.

15/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle Entit/Association
Le modle

Associations binaires

Dfinitions
Une association binaire entre les ensembles dentits E1 et E2 , est un ensemble
de couples (e1 , e2 ), avec e1 E1 et e2 E2 .
Soit une association (E1 , E2 ) entre deux types dentits. La cardinalit de
lassociation pour Ei , i {1, 2}, est une paire [min, max] telle que :
Le symbole max (min) dsigne le nombre maximal (minimal) de fois o
une une entit ei de E1 peut intervenir dans lassociation.
La cl dune association (binaire) entre un type dentit E1 et un type dentit E2
est le couple constitu de la cl c1 de E1 et de la cl c2 de E2 .

16/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle Entit/Association
Le modle

Associations binaires

Dfinitions
Une association binaire entre les ensembles dentits E1 et E2 , est un ensemble
de couples (e1 , e2 ), avec e1 E1 et e2 E2 .
Soit une association (E1 , E2 ) entre deux types dentits. La cardinalit de
lassociation pour Ei , i {1, 2}, est une paire [min, max] telle que :
Le symbole max (min) dsigne le nombre maximal (minimal) de fois o
une une entit ei de E1 peut intervenir dans lassociation.
La cl dune association (binaire) entre un type dentit E1 et un type dentit E2
est le couple constitu de la cl c1 de E1 et de la cl c2 de E2 .

16/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle Entit/Association
Le modle

Associations binaires

Dfinitions
Une association binaire entre les ensembles dentits E1 et E2 , est un ensemble
de couples (e1 , e2 ), avec e1 E1 et e2 E2 .
Soit une association (E1 , E2 ) entre deux types dentits. La cardinalit de
lassociation pour Ei , i {1, 2}, est une paire [min, max] telle que :
Le symbole max (min) dsigne le nombre maximal (minimal) de fois o
une une entit ei de E1 peut intervenir dans lassociation.
La cl dune association (binaire) entre un type dentit E1 et un type dentit E2
est le couple constitu de la cl c1 de E1 et de la cl c2 de E2 .

16/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle Entit/Association
Le modle

Associations gnralises

Dfinitions
Une association n-aire entre n types dentits E1 , E2 , ..., En est un ensemble de
n-uplets (e1 , e2 , ..., en ) o chaque ei appartient Ei

17/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle Entit/Association
Avantages et inconvnients

Plan
1 Introduction
Donnes, Bases de donnes et SGBD
SGBD
2 Le modle Entit/Association
Principes gnraux
Le modle
Avantages et inconvnients
3 Le modle relationnel
Dfinition
Passage dun schma E/A un schma relationnel
Langage de dfinition de donnes (LDD) : SQL2
4 Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
5 Le langage SQL
Requtes simples SQL
Requtes sur plusieurs tables
Requtes imbriques
Agrgation
Mises--jour
18/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle Entit/Association
Avantages et inconvnients

Avantages et inconvnients du modle E/A

Avantages
Le modle Entit/Association est simple et pratique.
Il ny a que 3 concepts : entits, associations et attributs.
Il est appropri une reprsentation graphique intuitive, mme sil existe
beaucoup de conventions.
Il permet de modliser rapidement des structures pas trop complexes.

Inconvnients
non-dterminisme : il ny a pas de rgle absolue pour dterminer ce qui est
entit, attribut ou relation.
il est difficile dexprimer des contraintes dintgrit, des structures complexes.
il ne propose pas doprations sur les donnes.

19/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle Entit/Association
Avantages et inconvnients

Avantages et inconvnients du modle E/A

Avantages
Le modle Entit/Association est simple et pratique.
Il ny a que 3 concepts : entits, associations et attributs.
Il est appropri une reprsentation graphique intuitive, mme sil existe
beaucoup de conventions.
Il permet de modliser rapidement des structures pas trop complexes.

Inconvnients
non-dterminisme : il ny a pas de rgle absolue pour dterminer ce qui est
entit, attribut ou relation.
il est difficile dexprimer des contraintes dintgrit, des structures complexes.
il ne propose pas doprations sur les donnes.

19/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Dfinition

Plan
1 Introduction
Donnes, Bases de donnes et SGBD
SGBD
2 Le modle Entit/Association
Principes gnraux
Le modle
Avantages et inconvnients
3 Le modle relationnel
Dfinition
Passage dun schma E/A un schma relationnel
Langage de dfinition de donnes (LDD) : SQL2
4 Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
5 Le langage SQL
Requtes simples SQL
Requtes sur plusieurs tables
Requtes imbriques
Agrgation
Mises--jour
20/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Dfinition

Introduction

Un modle de donnes dfinit un mode de reprsentation de linformation selon trois


composantes :
Des structures de donnes (Langage de Dfinition de Donnes (DDL)).
Des contraintes qui permettent de spcifier les rgles que doit respecter une
base de donnes (Langage de Dfinition de Donnes (DDL))
Des oprations pour manipuler les donnes, en interrogation et en mise jour
(Langage de Manipulation de Donnes (DML))

Un modle de donnes doit dtre indpendant de la reprsentation physique.


Le modle relationnel offre une totale indpendance entre les reprsentations
logique et physique.

21/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Dfinition

Introduction

Un modle de donnes dfinit un mode de reprsentation de linformation selon trois


composantes :
Des structures de donnes (Langage de Dfinition de Donnes (DDL)).
Des contraintes qui permettent de spcifier les rgles que doit respecter une
base de donnes (Langage de Dfinition de Donnes (DDL))
Des oprations pour manipuler les donnes, en interrogation et en mise jour
(Langage de Manipulation de Donnes (DML))

Un modle de donnes doit dtre indpendant de la reprsentation physique.


Le modle relationnel offre une totale indpendance entre les reprsentations
logique et physique.

21/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Dfinition

Dfinition dun schma relationnel

Le modle relationnel est un modle trs simple bas sur une seule structure, la
relation.
Un schma de relation est simplement un nom suivi de la liste des attributs,
chaque attribut tant associ son domaine.
La syntaxe est : R(A1 : D1 , A2 : D2 , ..., An : Dn ) o les Ai sont les noms
dattributs et les Di les domaines.
Larit dune relation est le nombre de ses attributs

Une instance dune relation R, ou simplement relation se dfinit


mathmatiquement comme un sous ensemble fini du produit cartsien des
domaines des attributs de R.
La cl dune relation est le plus petit sous-ensemble des attributs qui permet
didentifier chaque ligne de manire unique.
Un tuple est une liste de n valeurs (v1 , v2 , ..., vn ) o chaque valeur vi est la
valeur dun attribut Ai de domaine Di : vi Di .

22/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Dfinition

Dfinition dun schma relationnel

Le modle relationnel est un modle trs simple bas sur une seule structure, la
relation.
Un schma de relation est simplement un nom suivi de la liste des attributs,
chaque attribut tant associ son domaine.
La syntaxe est : R(A1 : D1 , A2 : D2 , ..., An : Dn ) o les Ai sont les noms
dattributs et les Di les domaines.
Larit dune relation est le nombre de ses attributs

Une instance dune relation R, ou simplement relation se dfinit


mathmatiquement comme un sous ensemble fini du produit cartsien des
domaines des attributs de R.
La cl dune relation est le plus petit sous-ensemble des attributs qui permet
didentifier chaque ligne de manire unique.
Un tuple est une liste de n valeurs (v1 , v2 , ..., vn ) o chaque valeur vi est la
valeur dun attribut Ai de domaine Di : vi Di .

22/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Dfinition

Dfinition dun schma relationnel

Film (titre : string, anne : number, genre : string)


(Alien, 1979, Science-Fiction)
(Vertigo, 1958, Suspense)
(Volte-face, 1997, Thriller)
(Pulp Fiction, 1995, Policier)

23/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Passage dun schma E/A un schma relationnel

Plan
1 Introduction
Donnes, Bases de donnes et SGBD
SGBD
2 Le modle Entit/Association
Principes gnraux
Le modle
Avantages et inconvnients
3 Le modle relationnel
Dfinition
Passage dun schma E/A un schma relationnel
Langage de dfinition de donnes (LDD) : SQL2
4 Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
5 Le langage SQL
Requtes simples SQL
Requtes sur plusieurs tables
Requtes imbriques
Agrgation
Mises--jour
24/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Passage dun schma E/A un schma relationnel

Principe

On passe dun modle disposant de deux structures (entits et associations) un


modle disposant dune seule structure (relations).

25/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Passage dun schma E/A un schma relationnel

Rgles gnrales

Entits
On cre une relation de mme nom que lentit.
Chaque proprit de lentit, y compris lidentifiant, devient un attribut de la
relation.
Les attributs de lidentifiant constituent la cl de la relation.

Film (idFilm, titre, anne, genre, rsum)


Artiste (idArtiste, nom, prnom, anneNaissance)
Internaute (email, nom, prnom, rgion)
Pays (code, nom, langue)

26/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Passage dun schma E/A un schma relationnel

Rgles gnrales

Entits
On cre une relation de mme nom que lentit.
Chaque proprit de lentit, y compris lidentifiant, devient un attribut de la
relation.
Les attributs de lidentifiant constituent la cl de la relation.

Film (idFilm, titre, anne, genre, rsum)


Artiste (idArtiste, nom, prnom, anneNaissance)
Internaute (email, nom, prnom, rgion)
Pays (code, nom, langue)

26/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Passage dun schma E/A un schma relationnel

Rgles gnrales

Associations de un plusieurs
Soit une association de un plusieurs 1 entre A et B. Le passage au modle logique
suit les rgles suivantes :
On cre les relations RA et RB correspondant respectivement aux entits A et B.
Lidentifiant de B devient un attribut de RA .

Film (idFilm, titre, anne, genre, rsum, idArtiste, codePays)


Artiste (idArtiste, nom, prnom, anneNaissance)
Pays (codePays, nom, langue)

27/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Passage dun schma E/A un schma relationnel

Rgles gnrales

Associations de un plusieurs
Soit une association de un plusieurs 1 entre A et B. Le passage au modle logique
suit les rgles suivantes :
On cre les relations RA et RB correspondant respectivement aux entits A et B.
Lidentifiant de B devient un attribut de RA .

Film (idFilm, titre, anne, genre, rsum, idArtiste, codePays)


Artiste (idArtiste, nom, prnom, anneNaissance)
Pays (codePays, nom, langue)

27/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Passage dun schma E/A un schma relationnel

Rgles gnrales

Associations de plusieurs plusieurs


Soit une association n-m entre A et B.
On cre les relations RA et RB correspondant respectivement aux entits A et B.
On cre une relation RAB pour lassociation.
La cl de RA et la cl de RB deviennent des attributs de RAB .
La cl de cette relation est la concatnation des cls des relations RA et RB .
Les proprits de lassociation deviennent des attributs de RAB

Film (idFilm, titre, anne, genre, rsum, idMES, codePays)


Artiste (idArtiste, nom, prnom, anneNaissance)
Role (idFilm, idArtiste, nomRle)

28/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Passage dun schma E/A un schma relationnel

Rgles gnrales

Associations de plusieurs plusieurs


Soit une association n-m entre A et B.
On cre les relations RA et RB correspondant respectivement aux entits A et B.
On cre une relation RAB pour lassociation.
La cl de RA et la cl de RB deviennent des attributs de RAB .
La cl de cette relation est la concatnation des cls des relations RA et RB .
Les proprits de lassociation deviennent des attributs de RAB

Film (idFilm, titre, anne, genre, rsum, idMES, codePays)


Artiste (idArtiste, nom, prnom, anneNaissance)
Role (idFilm, idArtiste, nomRle)

28/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Passage dun schma E/A un schma relationnel

Rgles gnrales

Points non abords


Dpendances fonctionnelles
Normalisation du schma relationnel
Diffrentes formes normales (1 FN, 2 FN, 3 FN, ...)

29/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Langage de dfinition de donnes (LDD) : SQL2

Plan
1 Introduction
Donnes, Bases de donnes et SGBD
SGBD
2 Le modle Entit/Association
Principes gnraux
Le modle
Avantages et inconvnients
3 Le modle relationnel
Dfinition
Passage dun schma E/A un schma relationnel
Langage de dfinition de donnes (LDD) : SQL2
4 Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
5 Le langage SQL
Requtes simples SQL
Requtes sur plusieurs tables
Requtes imbriques
Agrgation
Mises--jour
30/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Langage de dfinition de donnes (LDD) : SQL2

Les types SQL

31/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Langage de dfinition de donnes (LDD) : SQL2

Cration des tables/relations

CREATE TABLE
CREATE TABLE Internaute (email VARCHAR (50) NOT NULL,
nom VARCHAR (20) NOT NULL,
prenom VARCHAR (20),
motDePasse VARCHAR (60) NOT NULL,
anneeNaiss DECIMAL (4))

CREATE TABLE Cinma (nom VARCHAR (50) NOT NULL,


adresse VARCHAR (50) DEFAULT Inconnue)

32/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Langage de dfinition de donnes (LDD) : SQL2

Cration des tables/relations

CREATE TABLE
CREATE TABLE Internaute (email VARCHAR (50) NOT NULL,
nom VARCHAR (20) NOT NULL,
prenom VARCHAR (20),
motDePasse VARCHAR (60) NOT NULL,
anneeNaiss DECIMAL (4))

CREATE TABLE Cinma (nom VARCHAR (50) NOT NULL,


adresse VARCHAR (50) DEFAULT Inconnue)

32/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Langage de dfinition de donnes (LDD) : SQL2

Contraintes

Les rgles : contraintes dintgrit


Un attribut doit toujours avoir une valeur.
Un attribut (ou un ensemble dattributs) constitue(nt) la cl de la relation.
Un attribut dans une table est lie la cl primaire dune autre table (intgrit
rfrentielle).
La valeur dun attribut doit tre unique au sein de la relation.
Enfin toute rgle sappliquant la valeur dun attribut.

33/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Langage de dfinition de donnes (LDD) : SQL2

Contraintes
Cl primaire : PRIMARY KEY
CREATE TABLE Internaute (email VARCHAR (50) NOT NULL,
nom VARCHAR (20) NOT NULL,
prenom VARCHAR (20),
motDePasse VARCHAR (60) NOT NULL,
anneeNaiss DECIMAL (4),
PRIMARY KEY (email))

Cl secondaire : UNIQUE
CREATE TABLE Artiste (id INTEGER NOT NULL,
nom VARCHAR (20) NOT NULL,
prenom VARCHAR (20) NOT NULL,
anneeNaiss INTEGER,
PRIMARY KEY (id),
UNIQUE (nom, prenom))

CREATE TABLE Cinema ( nom VARCHAR (20) NOT NULL,


adresse VARCHAR (50) UNIQUE,
PRIMARY KEY (nom))
34/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Langage de dfinition de donnes (LDD) : SQL2

Contraintes
Cl primaire : PRIMARY KEY
CREATE TABLE Internaute (email VARCHAR (50) NOT NULL,
nom VARCHAR (20) NOT NULL,
prenom VARCHAR (20),
motDePasse VARCHAR (60) NOT NULL,
anneeNaiss DECIMAL (4),
PRIMARY KEY (email))

Cl secondaire : UNIQUE
CREATE TABLE Artiste (id INTEGER NOT NULL,
nom VARCHAR (20) NOT NULL,
prenom VARCHAR (20) NOT NULL,
anneeNaiss INTEGER,
PRIMARY KEY (id),
UNIQUE (nom, prenom))

CREATE TABLE Cinema ( nom VARCHAR (20) NOT NULL,


adresse VARCHAR (50) UNIQUE,
PRIMARY KEY (nom))
34/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Langage de dfinition de donnes (LDD) : SQL2

Contraintes
Cl primaire : PRIMARY KEY
CREATE TABLE Internaute (email VARCHAR (50) NOT NULL,
nom VARCHAR (20) NOT NULL,
prenom VARCHAR (20),
motDePasse VARCHAR (60) NOT NULL,
anneeNaiss DECIMAL (4),
PRIMARY KEY (email))

Cl secondaire : UNIQUE
CREATE TABLE Artiste (id INTEGER NOT NULL,
nom VARCHAR (20) NOT NULL,
prenom VARCHAR (20) NOT NULL,
anneeNaiss INTEGER,
PRIMARY KEY (id),
UNIQUE (nom, prenom))

CREATE TABLE Cinema ( nom VARCHAR (20) NOT NULL,


adresse VARCHAR (50) UNIQUE,
PRIMARY KEY (nom))
34/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Langage de dfinition de donnes (LDD) : SQL2

Contraintes
Cl trangre : FOREIGN KEY
CREATE TABLE Film (idFilm INTEGER NOT NULL,
titre VARCHAR (50) NOT NULL,
annee INTEGER NOT NULL,
idMES INTEGER,
codePays INTEGER,
PRIMARY KEY (idFilm),
FOREIGN KEY (idMES) REFERENCES Artiste,
FOREIGN KEY (codePays) REFERENCES Pays)

CREATE TABLE Film (idFilm INTEGER NOT NULL,


titre VARCHAR (50) NOT NULL,
annee INTEGER NOT NULL,
idMES INTEGER,
codePays INTEGER,
PRIMARY KEY (idFilm),
FOREIGN KEY (idMES) REFERENCES Artiste
ON DELETE SET NULL,
FOREIGN KEY (codePays) REFERENCES Pays)
35/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Langage de dfinition de donnes (LDD) : SQL2

Contraintes
Cl trangre : FOREIGN KEY
CREATE TABLE Film (idFilm INTEGER NOT NULL,
titre VARCHAR (50) NOT NULL,
annee INTEGER NOT NULL,
idMES INTEGER,
codePays INTEGER,
PRIMARY KEY (idFilm),
FOREIGN KEY (idMES) REFERENCES Artiste,
FOREIGN KEY (codePays) REFERENCES Pays)

CREATE TABLE Film (idFilm INTEGER NOT NULL,


titre VARCHAR (50) NOT NULL,
annee INTEGER NOT NULL,
idMES INTEGER,
codePays INTEGER,
PRIMARY KEY (idFilm),
FOREIGN KEY (idMES) REFERENCES Artiste
ON DELETE SET NULL,
FOREIGN KEY (codePays) REFERENCES Pays)
35/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Langage de dfinition de donnes (LDD) : SQL2

Contraintes

CREATE TABLE Salle (nomCinema VARCHAR (30) NOT NULL,


no INTEGER NOT NULL,
capacite INTEGER NOT NULL,
PRIMARY KEY (nomCinema, no),
FOREIGN KEY (nomCinema) REFERENCES Cinema
ON DELETE CASCADE
ON UPDATE CASCADE)

36/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Langage de dfinition de donnes (LDD) : SQL2

Contraintes

CHECK (condition)
CREATE TABLE Film (idFilm INTEGER NOT NULL,
titre VARCHAR (50) NOT NULL,
annee INTEGER NOT NULL
CHECK (annee BETWEEN 1890 AND 2000) NOT NULL,
genre VARCHAR (10)
CHECK (genre IN (Histoire,Western,Drame)),
idMES INTEGER,
codePays INTEGER,
PRIMARY KEY (idFilm),
FOREIGN KEY (idMES) REFERENCES Artiste,
FOREIGN KEY (codePays) REFERENCES Pays)

37/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Langage de dfinition de donnes (LDD) : SQL2

Contraintes

Les points non abords : Modification du schma


Modification des attributs
Cration dindex
...

38/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Langage de dfinition de donnes (LDD) : SQL2

TD : Gestion (simplifie) dun vido-club

Le propritaire dun vido-club dsire conserver toutes les informations ncessaires


la bonne gestion de celui-ci. Vous lavez interrog, et voici les notes que vous avez
prises :
Les films peuvent tre sur diffrents supports (Blu_ray, DVD, . . .).
Un mme film peut tre prsent en plusieurs exemplaires.
Les clients connaissent parfois le titre du film quils veulent emprunter.
Les clients demandent souvent les films disponibles de tel acteur, tel ralisateur, ou
portant sur tel thme.
Les films sont classs par catgories (policier, comdies, etc.).
Les clients sont connus par leur nom, prnom, adresse.
Chaque exemplaire dun film a un numro dinventaire.
Les clients achtent des crdits avant de pouvoir emprunter.
La facturation dpend de la dure de lemprunt et intervient la restitution de lobjet
lou. Le tarif est de 1 crdit par tranche de 3h pour un Blu_ray et de 2 crdits par
tranche de 3h pour les DVD.
Les clients doivent pouvoir tre fidliss par un systme de bonus.
Le vido-club achte rgulirement des films soit parce quils viennent de sortir, soit
parce quils sont emprunts souvent.
Le vido-club aime bien sortir rgulirement des statistiques sur les films les plus
emprunts du mois, les clients qui empruntent le plus, . . .

39/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Langage de dfinition de donnes (LDD) : SQL2

TD : Gestion (simplifie) dun vido-club

Travail excuter
- Modliser les donnes en utilisant un modle entit/association.
- Donner les relations correspondantes
- Crer les tables correspondantes en prcisant les contraintes dintgrit

40/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle

Plan
1 Introduction
Donnes, Bases de donnes et SGBD
SGBD
2 Le modle Entit/Association
Principes gnraux
Le modle
Avantages et inconvnients
3 Le modle relationnel
Dfinition
Passage dun schma E/A un schma relationnel
Langage de dfinition de donnes (LDD) : SQL2
4 Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
5 Le langage SQL
Requtes simples SQL
Requtes sur plusieurs tables
Requtes imbriques
Agrgation
Mises--jour
41/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle

Introduction

Dfinitions
Une requte est une expression algbrique qui sapplique un ensemble de
relations (la base de donnes) et produit une relation finale (le rsultat de la
requte).
On peut voir lalgbre relationnelle comme un langage de programmation qui
permet dexprimer des requtes sur une base de donnes relationnelle.

Les oprateurs de lalgbre relationnelle


1 la slection, dnote ;
2 la projection, dnote ;
3 le produit cartsien, dnot ;
4 lunion, dnot ;
5 la diffrence, dnote ;
6 la jointure, dnote n
o

42/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle

Introduction

Dfinitions
Une requte est une expression algbrique qui sapplique un ensemble de
relations (la base de donnes) et produit une relation finale (le rsultat de la
requte).
On peut voir lalgbre relationnelle comme un langage de programmation qui
permet dexprimer des requtes sur une base de donnes relationnelle.

Les oprateurs de lalgbre relationnelle


1 la slection, dnote ;
2 la projection, dnote ;
3 le produit cartsien, dnot ;
4 lunion, dnot ;
5 la diffrence, dnote ;
6 la jointure, dnote n
o

42/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle

Introduction

BD dun organisme de voyage


Station (nomStation, capacit, lieu, rgion, tarif)
Activite (nomStation, libell, prix)
Client (id, nom, prnom, ville, rgion, solde)
Sjour (idClient, station, dbut, nbPlaces)

43/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle

Les oprateurs de lalgbre relationnelle

La slection,
La slection F (R) sapplique une relation R et extrait de cette relation les tuples qui
satisfont un critre de slection, F . Ce critre peut tre :
La comparaison entre un attribut de la relation, A, et une constante a.
La comparaison entre deux attributs A1 et A2 .

region=0 Antilles0 (Station)

44/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle

Les oprateurs de lalgbre relationnelle

La slection,
La slection F (R) sapplique une relation R et extrait de cette relation les tuples qui
satisfont un critre de slection, F . Ce critre peut tre :
La comparaison entre un attribut de la relation, A, et une constante a.
La comparaison entre deux attributs A1 et A2 .

region=0 Antilles0 (Station)

44/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle

Les oprateurs de lalgbre relationnelle

La slection,
La slection F (R) sapplique une relation R et extrait de cette relation les tuples qui
satisfont un critre de slection, F . Ce critre peut tre :
La comparaison entre un attribut de la relation, A, et une constante a.
La comparaison entre deux attributs A1 et A2 .

region=0 Antilles0 (Station)

44/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle

Les oprateurs de lalgbre relationnelle

La projection,
La projection A1 ,A2 ,...,An (R) sapplique une relation R et ne garde que les attributs
A1 , A2 , ..., An . Donc, contrairement la slection, on ne supprime pas des lignes mais
des colonnes.

nomStation,region (Station)

45/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle

Les oprateurs de lalgbre relationnelle

La projection,
La projection A1 ,A2 ,...,An (R) sapplique une relation R et ne garde que les attributs
A1 , A2 , ..., An . Donc, contrairement la slection, on ne supprime pas des lignes mais
des colonnes.

nomStation,region (Station)

45/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle

Les oprateurs de lalgbre relationnelle

La projection,
La projection A1 ,A2 ,...,An (R) sapplique une relation R et ne garde que les attributs
A1 , A2 , ..., An . Donc, contrairement la slection, on ne supprime pas des lignes mais
des colonnes.

nomStation,region (Station)

45/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle

Les oprateurs de lalgbre relationnelle

Le produit cartsien,
Le produit cartsien entre deux relations R et S se note R S, et permet de crer une
nouvelle relation o chaque tuple de R est associ chaque tuple de S.

46/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle

Les oprateurs de lalgbre relationnelle

Le produit cartsien,
Le produit cartsien entre deux relations R et S se note R S, et permet de crer une
nouvelle relation o chaque tuple de R est associ chaque tuple de S.

46/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle

Les oprateurs de lalgbre relationnelle

Station Activite

47/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle

Les oprateurs de lalgbre relationnelle

S.nomStation=A.nomStation (Station Activite)

48/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle

Les oprateurs de lalgbre relationnelle

S.nomStation=A.nomStation (Station Activite)

48/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle

Les oprateurs de lalgbre relationnelle

La jointure, o
n
Toutes les requtes exprimables avec lalgbre relationnelle peuvent se
construire avec les 5 oprateurs prsents.
En pratique, il existe dautres oprations, trs couramment utilises, qui peuvent
se construire par composition des oprations de base. La plus importante est la
jointure.

Une jointure R noF S peut tre dfinie tant quivalent F (R S). Le critre de
rapprochement F peut tre nimporte quelle opration de comparaison liant un attribut
de R un attribut de F .

49/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle

Les oprateurs de lalgbre relationnelle

La jointure, o
n
Toutes les requtes exprimables avec lalgbre relationnelle peuvent se
construire avec les 5 oprateurs prsents.
En pratique, il existe dautres oprations, trs couramment utilises, qui peuvent
se construire par composition des oprations de base. La plus importante est la
jointure.

Une jointure R noF S peut tre dfinie tant quivalent F (R S). Le critre de
rapprochement F peut tre nimporte quelle opration de comparaison liant un attribut
de R un attribut de F .

49/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle

Les oprateurs de lalgbre relationnelle

oS.nomStation=A.nomStation Activite = S.nomStation=A.nomStation (Station Activite)


Station n

50/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle

Les oprateurs de lalgbre relationnelle

Lunion,
Lexpression R S cre une relation comprenant tous les tuples existant dans lune ou
lautre des relations R et S. Il existe une condition imprative : les deux relations
doivent avoir le mme schma, cest--dire mme nombre dattributs, mmes noms et
mmes types.

La diffrence,
La diffrence sapplique deux relations qui ont le mme schma. Lexpression R S
a alors pour rsultat tous les tuples de R qui ne sont pas dans S.

51/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle

Les oprateurs de lalgbre relationnelle

Lunion,
Lexpression R S cre une relation comprenant tous les tuples existant dans lune ou
lautre des relations R et S. Il existe une condition imprative : les deux relations
doivent avoir le mme schma, cest--dire mme nombre dattributs, mmes noms et
mmes types.

La diffrence,
La diffrence sapplique deux relations qui ont le mme schma. Lexpression R S
a alors pour rsultat tous les tuples de R qui ne sont pas dans S.

51/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes simples SQL

Plan
1 Introduction
Donnes, Bases de donnes et SGBD
SGBD
2 Le modle Entit/Association
Principes gnraux
Le modle
Avantages et inconvnients
3 Le modle relationnel
Dfinition
Passage dun schma E/A un schma relationnel
Langage de dfinition de donnes (LDD) : SQL2
4 Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
5 Le langage SQL
Requtes simples SQL
Requtes sur plusieurs tables
Requtes imbriques
Agrgation
Mises--jour
52/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes simples SQL

Slections simples

La structure de base
Une requte SQL de base contient trois clauses :
1 SELECT indique la liste des attributs constituant le rsultat.
2 FROM indique la (ou les) tables dans lesquelles on trouve les attributs utiles la
requte.
3 WHERE indique les conditions que doivent satisfaire les n-uplets de la base pour
faire partie du rsultat.

SELECT nomStation
FROM Station
WHERE region = Antilles

53/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes simples SQL

Slections simples

La structure de base
Une requte SQL de base contient trois clauses :
1 SELECT indique la liste des attributs constituant le rsultat.
2 FROM indique la (ou les) tables dans lesquelles on trouve les attributs utiles la
requte.
3 WHERE indique les conditions que doivent satisfaire les n-uplets de la base pour
faire partie du rsultat.

SELECT nomStation
FROM Station
WHERE region = Antilles

53/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes simples SQL

Slections simples

La structure de base
Dans une requte SQL, on peut :
1 Renommer les attributs.
2 Appliquer des fonctions aux valeurs de chaque tuple.
3 Introduire des constantes.

54/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes simples SQL

Slections simples

Renommage

SELECT libelle, (prix / 6.56 AS prixEnEuros), Cours de leuro = , 6.56 AS cours


FROM Activite
WHERE nomStation = Santalba

55/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes simples SQL

Slections simples

Doublons

SELECT DISTINCT libelle


FROM Activite

56/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes simples SQL

Slections simples

Tri du rsultat

SELECT *
FROM Activite
ORDER BY Prix

SELECT *
FROM Activite
ORDER BY Prix DESC

57/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes simples SQL

Slections simples

Tri du rsultat

SELECT *
FROM Activite
ORDER BY Prix

SELECT *
FROM Activite
ORDER BY Prix DESC

57/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes simples SQL

La clause WHERE
Conditions

SELECT nomStation, libelle


FROM Activite
WHERE nomStation = Santalba
AND (prix > 50 AND prix < 120)

SELECT nomStation, libelle


FROM Activite
WHERE nomStation = Santalba
AND prix BETWEEN 50 AND 120

58/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes simples SQL

La clause WHERE
Conditions

SELECT nomStation, libelle


FROM Activite
WHERE nomStation = Santalba
AND (prix > 50 AND prix < 120)

SELECT nomStation, libelle


FROM Activite
WHERE nomStation = Santalba
AND prix BETWEEN 50 AND 120

58/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes simples SQL

La clause WHERE
Chanes de caractres
Il existe des motifs de recherches laide de la clause LIKE. Le caractre 0 _0 dsigne
nimporte quel caractre, et le 0 %0 nimporte quelle chane de caractres.

SELECT nomStation
FROM Station
WHERE nomStation LIKE %a

SELECT nomStation
FROM Station
WHERE nomStation LIKE V ______

Dates
Une date est spcifie par le mot-cl DATE et dune chane de caractres au format
aaaa-mm-jj.
SELECT idClient
FROM Sejour
WHERE debut BETWEEN DATE 1998-07-01 AND DATE 1998-07-31
59/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes simples SQL

La clause WHERE
Chanes de caractres
Il existe des motifs de recherches laide de la clause LIKE. Le caractre 0 _0 dsigne
nimporte quel caractre, et le 0 %0 nimporte quelle chane de caractres.

SELECT nomStation
FROM Station
WHERE nomStation LIKE %a

SELECT nomStation
FROM Station
WHERE nomStation LIKE V ______

Dates
Une date est spcifie par le mot-cl DATE et dune chane de caractres au format
aaaa-mm-jj.
SELECT idClient
FROM Sejour
WHERE debut BETWEEN DATE 1998-07-01 AND DATE 1998-07-31
59/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes simples SQL

La clause WHERE
Chanes de caractres
Il existe des motifs de recherches laide de la clause LIKE. Le caractre 0 _0 dsigne
nimporte quel caractre, et le 0 %0 nimporte quelle chane de caractres.

SELECT nomStation
FROM Station
WHERE nomStation LIKE %a

SELECT nomStation
FROM Station
WHERE nomStation LIKE V ______

Dates
Une date est spcifie par le mot-cl DATE et dune chane de caractres au format
aaaa-mm-jj.
SELECT idClient
FROM Sejour
WHERE debut BETWEEN DATE 1998-07-01 AND DATE 1998-07-31
59/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes simples SQL

La clause WHERE
Chanes de caractres
Il existe des motifs de recherches laide de la clause LIKE. Le caractre 0 _0 dsigne
nimporte quel caractre, et le 0 %0 nimporte quelle chane de caractres.

SELECT nomStation
FROM Station
WHERE nomStation LIKE %a

SELECT nomStation
FROM Station
WHERE nomStation LIKE V ______

Dates
Une date est spcifie par le mot-cl DATE et dune chane de caractres au format
aaaa-mm-jj.
SELECT idClient
FROM Sejour
WHERE debut BETWEEN DATE 1998-07-01 AND DATE 1998-07-31
59/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes sur plusieurs tables

Plan
1 Introduction
Donnes, Bases de donnes et SGBD
SGBD
2 Le modle Entit/Association
Principes gnraux
Le modle
Avantages et inconvnients
3 Le modle relationnel
Dfinition
Passage dun schma E/A un schma relationnel
Langage de dfinition de donnes (LDD) : SQL2
4 Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
5 Le langage SQL
Requtes simples SQL
Requtes sur plusieurs tables
Requtes imbriques
Agrgation
Mises--jour
60/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes sur plusieurs tables

Jointures
Dfinition
La jointure permet dexprimer des requtes portant sur des donnes rparties
dans plusieurs tables.
La syntaxe pour exprimer des jointures est une extension directe de celle
tudie prcdemment dans le cas des slections simples.

BD dun organisme de voyage


Station (nomStation, capacit, lieu, rgion, tarif)
Activite (nomStation, libell, prix)
Client (id, nom, prnom, ville, rgion, solde)
Sjour (idClient, station, dbut, nbPlaces)

donner le nom des clients avec le nom des stations o ils ont sjourn.
SELECT nom, station
FROM Client, Sejour
WHERE id = idClient
Le nom du client est dans la table Client, linformation sur le lien client/station dans la
table Sejour
61/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes sur plusieurs tables

Jointures
Dfinition
La jointure permet dexprimer des requtes portant sur des donnes rparties
dans plusieurs tables.
La syntaxe pour exprimer des jointures est une extension directe de celle
tudie prcdemment dans le cas des slections simples.

BD dun organisme de voyage


Station (nomStation, capacit, lieu, rgion, tarif)
Activite (nomStation, libell, prix)
Client (id, nom, prnom, ville, rgion, solde)
Sjour (idClient, station, dbut, nbPlaces)

donner le nom des clients avec le nom des stations o ils ont sjourn.
SELECT nom, station
FROM Client, Sejour
WHERE id = idClient
Le nom du client est dans la table Client, linformation sur le lien client/station dans la
table Sejour
61/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes sur plusieurs tables

Jointures
Dfinition
La jointure permet dexprimer des requtes portant sur des donnes rparties
dans plusieurs tables.
La syntaxe pour exprimer des jointures est une extension directe de celle
tudie prcdemment dans le cas des slections simples.

BD dun organisme de voyage


Station (nomStation, capacit, lieu, rgion, tarif)
Activite (nomStation, libell, prix)
Client (id, nom, prnom, ville, rgion, solde)
Sjour (idClient, station, dbut, nbPlaces)

donner le nom des clients avec le nom des stations o ils ont sjourn.
SELECT nom, station
FROM Client, Sejour
WHERE id = idClient
Le nom du client est dans la table Client, linformation sur le lien client/station dans la
table Sejour
61/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes sur plusieurs tables

Jointures
Dfinition
La jointure permet dexprimer des requtes portant sur des donnes rparties
dans plusieurs tables.
La syntaxe pour exprimer des jointures est une extension directe de celle
tudie prcdemment dans le cas des slections simples.

BD dun organisme de voyage


Station (nomStation, capacit, lieu, rgion, tarif)
Activite (nomStation, libell, prix)
Client (id, nom, prnom, ville, rgion, solde)
Sjour (idClient, station, dbut, nbPlaces)

donner le nom des clients avec le nom des stations o ils ont sjourn.
SELECT nom, station
FROM Client, Sejour
WHERE id = idClient
Le nom du client est dans la table Client, linformation sur le lien client/station dans la
table Sejour
61/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes sur plusieurs tables

Jointures
Dfinition
La jointure permet dexprimer des requtes portant sur des donnes rparties
dans plusieurs tables.
La syntaxe pour exprimer des jointures est une extension directe de celle
tudie prcdemment dans le cas des slections simples.

BD dun organisme de voyage


Station (nomStation, capacit, lieu, rgion, tarif)
Activite (nomStation, libell, prix)
Client (id, nom, prnom, ville, rgion, solde)
Sjour (idClient, station, dbut, nbPlaces)

donner le nom des clients avec le nom des stations o ils ont sjourn.
SELECT nom, station
FROM Client, Sejour
WHERE id = idClient
Le nom du client est dans la table Client, linformation sur le lien client/station dans la
table Sejour
61/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes sur plusieurs tables

Jointures

Gestion des ambiguts


afficher le nom dune station, son tarif hebdomadaire, ses activits et leurs prix.

SELECT nomStation, tarif, libelle, prix


FROM Station, Activite
WHERE Station.nomStation = Activite.nomStation

SELECT S.nomStation, tarif, libelle, prix


FROM Station S, Activite A
WHERE S.nomStation = A.nomStation

62/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes sur plusieurs tables

Jointures

Gestion des ambiguts


afficher le nom dune station, son tarif hebdomadaire, ses activits et leurs prix.

SELECT nomStation, tarif, libelle, prix


FROM Station, Activite
WHERE Station.nomStation = Activite.nomStation

SELECT S.nomStation, tarif, libelle, prix


FROM Station S, Activite A
WHERE S.nomStation = A.nomStation

62/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes sur plusieurs tables

Jointures

Gestion des ambiguts


afficher le nom dune station, son tarif hebdomadaire, ses activits et leurs prix.

SELECT nomStation, tarif, libelle, prix


FROM Station, Activite
WHERE Station.nomStation = Activite.nomStation

SELECT S.nomStation, tarif, libelle, prix


FROM Station S, Activite A
WHERE S.nomStation = A.nomStation

62/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes sur plusieurs tables

Union, intersection et diffrence

SELECT region FROM Station


UNION
SELECT region FROM Client

SELECT region FROM Station


INTERSECT
SELECT region FROM Client

SELECT region FROM Station


EXCEPT
SELECT region FROM Client

63/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes sur plusieurs tables

Union, intersection et diffrence

SELECT region FROM Station


UNION
SELECT region FROM Client

SELECT region FROM Station


INTERSECT
SELECT region FROM Client

SELECT region FROM Station


EXCEPT
SELECT region FROM Client

63/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes sur plusieurs tables

Union, intersection et diffrence

SELECT region FROM Station


UNION
SELECT region FROM Client

SELECT region FROM Station


INTERSECT
SELECT region FROM Client

SELECT region FROM Station


EXCEPT
SELECT region FROM Client

63/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes imbriques

Plan
1 Introduction
Donnes, Bases de donnes et SGBD
SGBD
2 Le modle Entit/Association
Principes gnraux
Le modle
Avantages et inconvnients
3 Le modle relationnel
Dfinition
Passage dun schma E/A un schma relationnel
Langage de dfinition de donnes (LDD) : SQL2
4 Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
5 Le langage SQL
Requtes simples SQL
Requtes sur plusieurs tables
Requtes imbriques
Agrgation
Mises--jour
64/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes imbriques

Conditions portant sur des relations

SELECT nom, prenom


FROM Client
WHERE region = (SELECT region FROM Station WHERE nomStation = Santalba)

Voici les conditions que lon peut exprimer sur une relation R construite avec une
requte imbrique.
EXISTS R. Renvoie TRUE si R nest pas vide.
t IN R, o t est un tuple dont le type est celui de R.
v cmp ANY R, o cmp est un comparateur.
v cmp ALL R, o cmp est un comparateur.
De plus, toutes ces expressions peuvent tre prfixes par NOT pour obtenir la
ngation

65/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes imbriques

Conditions portant sur des relations

SELECT nom, prenom


FROM Client
WHERE region = (SELECT region FROM Station WHERE nomStation = Santalba)

Voici les conditions que lon peut exprimer sur une relation R construite avec une
requte imbrique.
EXISTS R. Renvoie TRUE si R nest pas vide.
t IN R, o t est un tuple dont le type est celui de R.
v cmp ANY R, o cmp est un comparateur.
v cmp ALL R, o cmp est un comparateur.
De plus, toutes ces expressions peuvent tre prfixes par NOT pour obtenir la
ngation

65/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes imbriques

Conditions portant sur des relations

SELECT nom, prenom


FROM Client
WHERE region = (SELECT region FROM Station WHERE nomStation = Santalba)

Voici les conditions que lon peut exprimer sur une relation R construite avec une
requte imbrique.
EXISTS R. Renvoie TRUE si R nest pas vide.
t IN R, o t est un tuple dont le type est celui de R.
v cmp ANY R, o cmp est un comparateur.
v cmp ALL R, o cmp est un comparateur.
De plus, toutes ces expressions peuvent tre prfixes par NOT pour obtenir la
ngation

65/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes imbriques

Conditions portant sur des relations

SELECT nom, prenom


FROM Client
WHERE region = (SELECT region FROM Station WHERE nomStation = Santalba)

Voici les conditions que lon peut exprimer sur une relation R construite avec une
requte imbrique.
EXISTS R. Renvoie TRUE si R nest pas vide.
t IN R, o t est un tuple dont le type est celui de R.
v cmp ANY R, o cmp est un comparateur.
v cmp ALL R, o cmp est un comparateur.
De plus, toutes ces expressions peuvent tre prfixes par NOT pour obtenir la
ngation

65/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Agrgation

Plan
1 Introduction
Donnes, Bases de donnes et SGBD
SGBD
2 Le modle Entit/Association
Principes gnraux
Le modle
Avantages et inconvnients
3 Le modle relationnel
Dfinition
Passage dun schma E/A un schma relationnel
Langage de dfinition de donnes (LDD) : SQL2
4 Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
5 Le langage SQL
Requtes simples SQL
Requtes sur plusieurs tables
Requtes imbriques
Agrgation
Mises--jour
66/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Agrgation

Fonctions dagrgation

Dfinition
Ces fonctions sappliquent une colonne, en gnral de type numrique. Ce sont :
COUNT qui compte le nombre de valeurs non nulles.
MAX et MIN.
AVG qui calcule la moyenne des valeurs de la colonne.
SUM qui effectue le cumul.

SELECT COUNT(nomStation), AVG(tarif), MIN(tarif)


FROM Station

Combien de places a rserv Mr Kerouac pour lensemble des sjours ?.


SELECT SUM (nbPlaces)
FROM Client, Sejour
WHERE nom = Kerouac
AND id = idClient

67/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Agrgation

Fonctions dagrgation

Dfinition
Ces fonctions sappliquent une colonne, en gnral de type numrique. Ce sont :
COUNT qui compte le nombre de valeurs non nulles.
MAX et MIN.
AVG qui calcule la moyenne des valeurs de la colonne.
SUM qui effectue le cumul.

SELECT COUNT(nomStation), AVG(tarif), MIN(tarif)


FROM Station

Combien de places a rserv Mr Kerouac pour lensemble des sjours ?.


SELECT SUM (nbPlaces)
FROM Client, Sejour
WHERE nom = Kerouac
AND id = idClient

67/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Agrgation

Fonctions dagrgation

Dfinition
Ces fonctions sappliquent une colonne, en gnral de type numrique. Ce sont :
COUNT qui compte le nombre de valeurs non nulles.
MAX et MIN.
AVG qui calcule la moyenne des valeurs de la colonne.
SUM qui effectue le cumul.

SELECT COUNT(nomStation), AVG(tarif), MIN(tarif)


FROM Station

Combien de places a rserv Mr Kerouac pour lensemble des sjours ?.


SELECT SUM (nbPlaces)
FROM Client, Sejour
WHERE nom = Kerouac
AND id = idClient

67/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Agrgation

Fonctions dagrgation

Dfinition
Ces fonctions sappliquent une colonne, en gnral de type numrique. Ce sont :
COUNT qui compte le nombre de valeurs non nulles.
MAX et MIN.
AVG qui calcule la moyenne des valeurs de la colonne.
SUM qui effectue le cumul.

SELECT COUNT(nomStation), AVG(tarif), MIN(tarif)


FROM Station

Combien de places a rserv Mr Kerouac pour lensemble des sjours ?.


SELECT SUM (nbPlaces)
FROM Client, Sejour
WHERE nom = Kerouac
AND id = idClient

67/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Agrgation

La clause GROUP BY

Dfinition
Dans les requtes prcdentes, on appliquait la fonction dagrgation lensemble du
rsultat dune requte. Une fonctionnalit complmentaire consiste partitioner ce
rsultat en groupes, et appliquer la ou les fonction(s) chaque groupe.

afficher les rgions avec le nombre de stations


SELECT region, COUNT(nomStation)
FROM Station
GROUP BY region

On souhaite consulter le nombre de places rserves, par client.


SELECT nom, SUM(nbPlaces)
FROM Client, Sejour
WHERE id = idClient
GROUP BY id, nom

68/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Agrgation

La clause GROUP BY

Dfinition
Dans les requtes prcdentes, on appliquait la fonction dagrgation lensemble du
rsultat dune requte. Une fonctionnalit complmentaire consiste partitioner ce
rsultat en groupes, et appliquer la ou les fonction(s) chaque groupe.

afficher les rgions avec le nombre de stations


SELECT region, COUNT(nomStation)
FROM Station
GROUP BY region

On souhaite consulter le nombre de places rserves, par client.


SELECT nom, SUM(nbPlaces)
FROM Client, Sejour
WHERE id = idClient
GROUP BY id, nom

68/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Agrgation

La clause GROUP BY

Dfinition
Dans les requtes prcdentes, on appliquait la fonction dagrgation lensemble du
rsultat dune requte. Une fonctionnalit complmentaire consiste partitioner ce
rsultat en groupes, et appliquer la ou les fonction(s) chaque groupe.

afficher les rgions avec le nombre de stations


SELECT region, COUNT(nomStation)
FROM Station
GROUP BY region

On souhaite consulter le nombre de places rserves, par client.


SELECT nom, SUM(nbPlaces)
FROM Client, Sejour
WHERE id = idClient
GROUP BY id, nom

68/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Agrgation

La clause GROUP BY

Dfinition
Dans les requtes prcdentes, on appliquait la fonction dagrgation lensemble du
rsultat dune requte. Une fonctionnalit complmentaire consiste partitioner ce
rsultat en groupes, et appliquer la ou les fonction(s) chaque groupe.

afficher les rgions avec le nombre de stations


SELECT region, COUNT(nomStation)
FROM Station
GROUP BY region

On souhaite consulter le nombre de places rserves, par client.


SELECT nom, SUM(nbPlaces)
FROM Client, Sejour
WHERE id = idClient
GROUP BY id, nom

68/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Agrgation

La clause GROUP BY

Dfinition
Dans les requtes prcdentes, on appliquait la fonction dagrgation lensemble du
rsultat dune requte. Une fonctionnalit complmentaire consiste partitioner ce
rsultat en groupes, et appliquer la ou les fonction(s) chaque groupe.

afficher les rgions avec le nombre de stations


SELECT region, COUNT(nomStation)
FROM Station
GROUP BY region

On souhaite consulter le nombre de places rserves, par client.


SELECT nom, SUM(nbPlaces)
FROM Client, Sejour
WHERE id = idClient
GROUP BY id, nom

68/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Agrgation

La clause HAVING

Dfinition
On peut faire porter des conditions sur les groupes avec la clause HAVING. La clause
WHERE ne peut exprimer des conditions que sur les tuples pris un un.

On souhaite consulter le nombre de places rserves, par client, pour les clients ayant
rserv plus de 10 places.
SELECT nom, SUM(nbPlaces)
FROM Client, Sejour
WHERE id = idClient
GROUP BY nom
HAVING SUM(nbPlaces) >= 10

69/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Agrgation

La clause HAVING

Dfinition
On peut faire porter des conditions sur les groupes avec la clause HAVING. La clause
WHERE ne peut exprimer des conditions que sur les tuples pris un un.

On souhaite consulter le nombre de places rserves, par client, pour les clients ayant
rserv plus de 10 places.
SELECT nom, SUM(nbPlaces)
FROM Client, Sejour
WHERE id = idClient
GROUP BY nom
HAVING SUM(nbPlaces) >= 10

69/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Agrgation

La clause HAVING

Dfinition
On peut faire porter des conditions sur les groupes avec la clause HAVING. La clause
WHERE ne peut exprimer des conditions que sur les tuples pris un un.

On souhaite consulter le nombre de places rserves, par client, pour les clients ayant
rserv plus de 10 places.
SELECT nom, SUM(nbPlaces)
FROM Client, Sejour
WHERE id = idClient
GROUP BY nom
HAVING SUM(nbPlaces) >= 10

69/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Mises--jour

Plan
1 Introduction
Donnes, Bases de donnes et SGBD
SGBD
2 Le modle Entit/Association
Principes gnraux
Le modle
Avantages et inconvnients
3 Le modle relationnel
Dfinition
Passage dun schma E/A un schma relationnel
Langage de dfinition de donnes (LDD) : SQL2
4 Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
5 Le langage SQL
Requtes simples SQL
Requtes sur plusieurs tables
Requtes imbriques
Agrgation
Mises--jour
70/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Mises--jour

Insertion

Dfinition
Linsertion seffectue avec la commande INSERT dont la syntaxe est la suivante :
INSERT INTO R(A1 , A2 , ...An ) VALUES (v1 , v2 , ...vn )

INSERT INTO Client (id, nom, prenom)


VALUES (40, Ait Sadoune, Idir)

INSERT INTO Sites (lieu, region)


SELECT lieu, region FROM Station

71/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Mises--jour

Insertion

Dfinition
Linsertion seffectue avec la commande INSERT dont la syntaxe est la suivante :
INSERT INTO R(A1 , A2 , ...An ) VALUES (v1 , v2 , ...vn )

INSERT INTO Client (id, nom, prenom)


VALUES (40, Ait Sadoune, Idir)

INSERT INTO Sites (lieu, region)


SELECT lieu, region FROM Station

71/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Mises--jour

Insertion

Dfinition
Linsertion seffectue avec la commande INSERT dont la syntaxe est la suivante :
INSERT INTO R(A1 , A2 , ...An ) VALUES (v1 , v2 , ...vn )

INSERT INTO Client (id, nom, prenom)


VALUES (40, Ait Sadoune, Idir)

INSERT INTO Sites (lieu, region)


SELECT lieu, region FROM Station

71/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Mises--jour

Destruction

Dfinition
La destruction seffectue avec la clause DELETE dont la syntaxe est :
DELETE FROM R WHERE condition

Destruction de tous les clients dont le nom commence par M.


DELETE FROM Client
WHERE nom LIKE M%

72/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Mises--jour

Destruction

Dfinition
La destruction seffectue avec la clause DELETE dont la syntaxe est :
DELETE FROM R WHERE condition

Destruction de tous les clients dont le nom commence par M.


DELETE FROM Client
WHERE nom LIKE M%

72/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Mises--jour

Destruction

Dfinition
La destruction seffectue avec la clause DELETE dont la syntaxe est :
DELETE FROM R WHERE condition

Destruction de tous les clients dont le nom commence par M.


DELETE FROM Client
WHERE nom LIKE M%

72/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Mises--jour

Modification

Dfinition
La modification seffectue avec la clause UPDATE.
UPDATE R SET A1 = v1 , ..., An = vn
WHERE condition

augmenter le prix des activits de la station Passac de 10%.


UPDATE Activite
SET prix = prix 1.1
WHERE nomStation = Passac

73/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Mises--jour

Modification

Dfinition
La modification seffectue avec la clause UPDATE.
UPDATE R SET A1 = v1 , ..., An = vn
WHERE condition

augmenter le prix des activits de la station Passac de 10%.


UPDATE Activite
SET prix = prix 1.1
WHERE nomStation = Passac

73/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Mises--jour

Modification

Dfinition
La modification seffectue avec la clause UPDATE.
UPDATE R SET A1 = v1 , ..., An = vn
WHERE condition

augmenter le prix des activits de la station Passac de 10%.


UPDATE Activite
SET prix = prix 1.1
WHERE nomStation = Passac

73/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Mises--jour

TD : Gestion (simplifie) dun vido-club

* Lancer le programme "SQLiteSpy.exe"


* Chargez le fichier de la base de donnes "Videoclub.db3" (menu File > Open
Database...)
1 - A partir des tables, retrouvez le schma des relations.
Avez-vous des commentaires sur la faon dont sont enregistres les identits des
acteurs et des ralisateurs ?

2 - trouvez les requtes SQL permettant de rpondre aux questions suivantes


* Quels sont les films plus rcents que 2008 ?
* Quels sont les films dans lesquels joue Belmondo ?
* Quel est de ralisateur du film "Gran Torino" ?
* Quels sont les films raliss par "Clint Eastwood" ?
* Dans quels films peut-on voir Alain Delon et Simone Signoret ?
* Quels sont les exemplaires actuellement en location ?
* Quels sont les films de Claude Chabrol actuellement disponibles la location ?
* Quels sont les 10 Films possdant le plus dexemplaires

74/74