Beruflich Dokumente
Kultur Dokumente
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
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"
4/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
Donnes, Bases de donnes et SGBD
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"
4/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
Donnes, Bases de donnes et SGBD
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"
4/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
Donnes, Bases de donnes et SGBD
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"
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
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
6/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
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
6/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
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
6/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
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
6/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
SGBD
7/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
SGBD
8/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Introduction
SGBD
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 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 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
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
13/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle Entit/Association
Le modle
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.
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.
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
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
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
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
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
21/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Dfinition
Introduction
21/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Dfinition
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
22/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Dfinition
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
22/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Dfinition
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
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.
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.
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 .
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 .
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
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
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
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
31/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Langage de dfinition de donnes (LDD) : SQL2
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))
32/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Langage de dfinition de donnes (LDD) : SQL2
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))
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
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))
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))
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))
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)
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)
Contraintes
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
38/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Langage de dfinition de donnes (LDD) : SQL2
39/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le modle relationnel
Langage de dfinition de donnes (LDD) : SQL2
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.
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.
42/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
Introduction
43/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
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 .
44/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
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 .
44/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
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 .
44/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
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
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
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
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
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
Station Activite
47/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
48/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Lalgbre relationnelle
Les oprateurs de lalgbre relationnelle
48/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
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
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
50/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
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
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
55/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes simples SQL
Slections simples
Doublons
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
58/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes simples SQL
La clause WHERE
Conditions
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.
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.
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.
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.
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.
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
62/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes sur plusieurs tables
Jointures
62/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes sur plusieurs tables
Jointures
62/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes sur plusieurs tables
63/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes sur plusieurs tables
63/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Requtes sur plusieurs tables
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
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
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 )
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 )
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 )
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
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
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
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
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
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
73/74
Cours bases de donnes <idir.aitsadoune@supelec.fr> Formation continue 2013/2014
Le langage SQL
Mises--jour
74/74