Sie sind auf Seite 1von 58

Ministre de lEnseignement Suprieur,

de la Recherche Scientifique et de la Technologie


Direction Gnrale des Etudes Technologiques
Institut Suprieur des Etudes Technologiques de Djerba

Support de Cours

BASES DE DONNEES

labor par :

Mejdi BLAGHGI & Anis ASSS

Public cible :

Informatique (Niveau 2)
Options : Informatique Rseaux & Informatique Industrielle

Version 2007

Avant propos
Pr requis
- Notion de fichier
- Notion de variables
Objectifs gnraux
A la fin de ce module, ltudiant doit tre capable de :
- Dcouvrir les concepts de base des bases de donnes.

Bases de donnes

- Analyser une tude de cas donn afin de dgager le modle


entits/associations et le modle relationnel associ.
- Apprendre utiliser un langage normalis daccs aux donnes
(SQL).
Niveau cible
Etudiants du deuxime niveau des Etudes Suprieures
Technologiques.
Options : Informatique Rseaux et Informatique Industrielle.
Volume horaire
- 1h 30 de cours intgr.
Soit en total : 22,5h
- 1h 30 de Travaux Pratiques pour chaque groupe
Soit en total : 22,5h
Moyens pdagogiques
Tableau
Micro-ordinateurs
Vido projecteur
Polycopis de Travaux Dirigs
Evaluation
- Coefficient : 2
- Devoirs surveill :
- Examen TP, Moyenne des TP (Comptes rendus) :
- Examen semestriel :

30%
30%
40%

Tables de matires
CHAPITRE I : INTRODUCTION AUX BASES DE DONNEES ................................... 1
I. Introduction........................................................................................................ 2
II. Les systmes fichiers ..................................................................................... 2
II.1. Dfinition ....................................................................................................... 2
II.2. Limites........................................................................................................... 3
III. Les bases de donnes ...................................................................................... 3
III.1. Dfinition ...................................................................................................... 3
III.2. Types dutilisateurs de bases de donnes.......................................................... 4
IV. Les SGBD .......................................................................................................... 4
IV.1. 1. Dfinition................................................................................................... 4
IV.2. 2. Objectifs .................................................................................................... 4
IV.3. 3. Historique .................................................................................................. 5
V. Les niveaux dabstraction................................................................................... 5
V.1. Niveau externe ................................................................................................ 6
V.2. Niveau conceptuel ........................................................................................... 6
V.3. Niveau interne................................................................................................. 6

CHAPITRE II : LE MODELE ENTITES/ASSOCIATIONS...................................... 7


I. Gnralits ......................................................................................................... 8
II. Concepts de base............................................................................................... 8
II.1. Attribut .......................................................................................................... 8
II.2. Entit............................................................................................................. 9
III. Associations et Cardinalits ............................................................................. 9
III.1. Associations .................................................................................................. 9
III.2. Cardinalits ................................................................................................. 10
III.3. Types de cardinalits .................................................................................... 10
III.4. Attributs dassociation .................................................................................. 11
IV. Dmarche suivre pour produire un schma E/A........................................... 11
IV.1. Dmarche.................................................................................................... 11
IV.2. Exemple illustratif : Gestion simplifi de stock ................................................. 11

CHAPITRE III : LE MODELE RELATIONNEL ................................................. 14


I. Gnralits ....................................................................................................... 15
II. Concepts de base............................................................................................. 15
II.1. Relation ....................................................................................................... 15
II.2. Tuple ........................................................................................................... 15
II.3. Contraintes dintgrit ................................................................................... 15
III. Traduction E/A - relationnel .......................................................................... 16
III.1. Rgles ........................................................................................................ 16
III.2. Application .................................................................................................. 16
IV. Les dpendances fonctionnelles (DF) ............................................................. 16
IV.1. Dfinition..................................................................................................... 16
IV.2. Proprits des dpendances fonctionnelles ...................................................... 17
V. Normalisation................................................................................................... 17
V.1. Objectifs de la normalisation ........................................................................... 17
V.2. Premire forme normale (1FN) ........................................................................ 18
V.3. Deuxime forme normale (2FN) ...................................................................... 18

V.4. Troisime forme normale (3FN) ....................................................................... 18

CHAPITRE IV : LALGEBRE RELATIONNELLE ............................................... 19


I. Dfinition .......................................................................................................... 20
II. Oprateurs ensemblistes................................................................................. 20
II.1. Union........................................................................................................... 20
II.2. Intersection .................................................................................................. 20
II.3. Diffrence .................................................................................................... 21
II.4. Division........................................................................................................ 21
II.5. Produit cartsien ........................................................................................... 22
III. Oprateurs spcifiques .................................................................................. 23
III.1. Projection.................................................................................................... 23
III.2. Restriction................................................................................................... 23
III.3. Jointure ...................................................................................................... 24
IV. Exercice dapplication ..................................................................................... 25

CHAPITRE V : LE LANGAGE SQL ............................................................. 26


I. Prsentation de SQL ......................................................................................... 27
II. Dfinition de donnes...................................................................................... 27
II.1. Cration des tables........................................................................................ 27
II.2. Renommage des tables .................................................................................. 28
II.3. Destruction des tables ................................................................................... 28
II.4. Modification des tables................................................................................... 29
III. Manipulation de donnes ............................................................................... 30
III.1. Ajout de donnes ......................................................................................... 30
III.2. Modification de donnes................................................................................ 30
III.3. Suppression de donnes ............................................................................... 30
IV. Interrogation de donnes ............................................................................... 31
IV.1. Gnralits .................................................................................................. 31
IV.2. Projection .................................................................................................... 31
IV.3. Restriction ................................................................................................... 31
IV.4. Tri .............................................................................................................. 33
IV.5. Regroupement ............................................................................................. 34
IV.6. Oprateurs ensemblistes ............................................................................... 35
IV.7. Jointure ....................................................................................................... 36
V. Contrle de donnes......................................................................................... 36
V.1. Gestion des utilisateurs .................................................................................. 36
V.2. Gestion des privilges .................................................................................... 37

ANNEXES ............................................................................................. 1
BIBLIOGRAPHIE .................................................................................... 1

Liste des figures


Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure

1. Organisation de donnes en systmes fichiers.............................................. 3


2.Organisation de donnes en systmes fichiers............................................... 4
3. Niveaux dabstraction................................................................................... 6
4. Exemple dentit avec ses attributs ............................................................... 9
5. Exemple dassociation entre deux entits ....................................................... 9
6. Notation des cardinalits dassociations........................................................ 10
7. Exemple dassociation de type 1-1............................................................... 10
8. Exemple dassociation de type 1-N .............................................................. 10
9. Exemple dassociation de type M-N .............................................................. 11
10. Exemple dassociation de type M-N ............................................................ 11
11. Modle E / A de lexemple illustratif ........................................................... 13

Chapitre :

Introduction aux bases de donnes


Objectifs spcifiques
A la fin de ce chapitre, ltudiant doit tre capable de :
- Dfinir une base de donnes.
- Expliquer lintrt de lapproche base de donnes par rapport celle fichiers.
- Dfinir un Systme de Gestion de Bases de Donnes (SGBD)
- Enumrer les fonctions dun SGBD
- Diffrencier entre les niveaux dabstraction lors de la conception dune base de
donnes.
Plan du chapitre
I. Introduction
II. Les systmes fichiers
III. Les bases de donnes
IV. Les SGBD
V. Les niveaux dabstraction
Volume horaire
4 heures et demi

Chapitre 1 : Introduction aux bases de donnes

I. Introduction
Toute entreprise (tablissements d enseignement, ministres, banques, agences de voyages, transport,
sant,

) dispose d un ensemble de donnes qu elle propose de stocker, organiser, manipuler et

exploiter.
-

Stockage et organisation : saisir, insrer les informations et les enregistrer dans les
emplacements appropris dans le systme.

Manipulation : chercher, slectionner, mettre jour et supprimer les donnes archives dans le
systme.

Exploitation : rcuprer les donnes et les informations ncessaires afin de prendre une
dcision.

Au fil des annes, les quantits de donnes deviennent de plus en plus grandes. Certains experts (dans
le domaine des statistiques) estiment mme que le volume de donnes collectes par une entreprise
double tous les vingt mois.
Explosion vertigineuse du volume de donnes au sein des entreprises.
Recourir un moyen efficace de stockage, de manipulation et d exploitation de donnes.

II. Les systmes fichiers


II.1. Dfinition
Fichier : est un rcipient de donnes identifi par un nom constitu par un ensemble de fiches contenant
des informations systme ou utilisateur.
Les informations relatives un mme sujet sont dcrites sur une fiche.

Gestionnaire de fichiers : structur autour d un noyau appel analyseur, qui assure les fonctions de base,
savoir la cration/destruction des fichiers, lecture/criture d une suite d octets un certain
emplacement dans un fichier, l allocation de la mmoire, la localisation et la recherche des fichiers sur
les volumes mmoires.

Exemples :

Fiche

Gestionnaire des emplois de


temps

Fiche

Enseignants

Fiche

Salles

Etudiants

Chapitre 1 : Introduction aux bases de donnes

Fiche

Etudiants

Bibliothcaire

Fiche

Enseignants

Fiche

Ouvrages

Fiche

Etudiants

Directeur de foyer

Fiche

Chambres

Systme Fichiers
Figure 1. Organisation de donnes en systmes fichiers

II.2. Limites
Les systmes fichiers soulvent certaines limites savoir :
-

Dispersion des informations.

Contrle diffr de donnes.

Risque d incohrence de donnes.

Redondance de donnes.

Difficult d accs, d exploitation, d organisation et de maintenance.

III. Les bases de donnes


III.1. Dfinition
Une base de donnes est un ensemble de donnes d entreprise enregistres sur des supports
accessibles par l ordinateur pour satisfaire simultanment plusieurs utilisateurs de faon slective et en
1

temps opportun.[ ]

Donc, une base de donnes ncessite :


-

Un espace de stockage.

Une structuration et relations entres les donnes (smantique).

Un logiciel permettant l accs aux donnes stockes pour la recherche et la mise jour de
information.

Chapitre 1 : Introduction aux bases de donnes

Etudiants

Gestionnaire des emplois de


temps

Enseignants

Ouvrages
Bibliothcaire
Chambres

Salles

Directeur

Systme Base de donnes


Figure 2. Organisation de donnes en systmes base de donnes

III.2. Types dutilisateurs de bases de donnes


On distingue essentiellement trois types diffrents d utilisateurs bases de donnes savoir : [2]
-

Administrateurs de bases de donnes : Ils grent la base (les accs, les droits des utilisateurs,
les sauvegardes, les restaurations,

Concepteurs de bases de donnes et dveloppeurs d application : Ils reprsentent ceux qui


dfinissent, dcrivent et crent la base de donnes.

Utilisateurs finaux : manipulent la base de donnes. Il est possible de distinguer des familles
utilisateurs avec des droits diffrents vis--vis de l accs la base. On suppose qu ils n ont
aucune connaissance sur les bases de donnes.

IV. Les SGBD


IV.1. 1. Dfinition
Un SGBD (Systme de Gestion de Bases de Donnes) est un logiciel qui permet des utilisateurs de
dfinir, crer, mettre jour une base de donnes et d en contrler l accs [3]. C est un outil qui agit
comme interface entre la base de donnes et l utilisateur. Il fournit les moyens pour dfinir, contrler,
mmoriser, manipuler et traiter les donnes tout en assurant la scurit, l intgrit et la confidentialit
indispensables dans un environnement multi-utilisateurs.

IV.2. 2. Objectifs
On distingue essentiellement trois fonctions des SGBD savoir :
-

Description des donnes : Langage de Dfinition de Donnes (LDD).

Chapitre 1 : Introduction aux bases de donnes


-

Recherche, manipulation et mise jour de donnes : Langage de Manipulation de Donnes


(LMD).

Contrle de l intgrit et scurit de donnes : Langage de Contrle de Donnes (LCD).

En d autres termes, les objectifs d un SGBD peuvent tre rsums dans les points suivants :
-

Intgrit de donnes.

Indpendance donnes/programmes : Ajout d un nouveau champ ne provoque aucun problme


vis vis des autres champs.

Manipulation facile de donnes : un utilisateur non informaticien peut manipuler simplement les
donnes.

Scurit et administration de donnes.

Efficacit d accs aux donnes.

Redondance contrle de donnes.

Partage de donnes.

IV.3. 3. Historique
Jusqu aux annes 60 : Organisation classique en fichiers : systmes fichiers.

Fin des annes 60 : Premire gnration : apparition des premiers SGBD.


-

Sparation de la description des donnes de leur manipulation par les programmes d application.

Bass sur des modles navigationnels :


o

Modles hirarchiques : modles pre fils, structures d arbres,

(Exemples : Adabas,

DL/ 1 ou IMS (Information Management System))


o

Modles rseaux : modle pre fils, structure de graphes. (Exemples : SOCRATE, IIDS,
IDMS, IDS2, IMS2).

partir de 1970 : Deuxime gnration de SGBD partir du modle relationnel.


-

Enrichissement et simplification des SGBD afin de faciliter l accs aux donnes pour les
utilisateurs.

Modle mathmatique de base : l algbre relaionnelle

Exemples : ORACLE, SQL Server, DB2, Access, PostgreSQL, MySQL.

Dbut des annes 80 : Troisime gnration de SGBD bases sur des modles plus complexes [4] :
-

SGBD dductifs : modle logique, algbre boolenne, souvent avec un autre SGBD
(gnralement relationnel) qui gre le stockage, prsence d un moteur d infrence.

SGBD objets (SGBDOO) : modles inspirs des langages de programmation oriente objet
tels que Java, C++

utilisation de l encapsulation, l hritage, le polymorphisme,

Exemples : ONTOS, ObjectStore, VERSANT, ORION, O2.

V. Les niveaux dabstraction


La conception d une base de donnes passe essentiellement, comme le montre la figure 3, par trois
niveaux d abstraction savoir :

Chapitre 1 : Introduction aux bases de donnes

V.1. Niveau externe


Ce niveau prsente une vue de l organisation (ou d une partie) par des utilisateurs ou des applications.
En effet, il prend en charge le problme du dialogue avec les utilisateurs, c'est--dire l'analyse des
demandes de l'utilisateur, le contrle des droits d'accs de l'utilisateur, la prsentation des rsultats.

V.2. Niveau conceptuel


Il s agit d une reprsentation abstraite globale de l organisation et de ses mcanismes de gestion. Ce
niveau assure les fonctions de contrle global (optimisation globale des requtes, gestion des conflits
d'accs simultans, contrle gnral de la cohrence de l'ensemble ).

V.3. Niveau interne


Ce niveau s'occupe du stockage des donnes dans les supports physiques et de la gestion des
structures de mmorisation et d'accs (gestion des index, des cls, ...)

Monde rel

Analyse

Indpendant
du SGBD
Spcifications
de la BD

Conception

Dpendant
du SGBD

Schma
conceptuel

Schma logique
Transformation
en modle
logique
Conception
physique

Schma
interne

Figure 3. Niveaux d abstraction

Chapitre :

Le modle Entits/Associations
Objectifs spcifiques
A la fin de ce chapitre, ltudiant doit tre capable de :
- Assimiler la smantique du modle Entits/Associations
- Utiliser le formalisme du modle Entits/Associations
- Distinguer entre les diffrents types dattributs
- Analyser une tude de cas donn
- Modliser en Entits/Associations
Plan du chapitre
I. Gnralits
II. Concepts de base
III. Associations et cardinalits
IV. Dmarche suivre pour produire un schma E/A.
Volume horaire
4 heures et demi

Chapitre 2 : Le modle Entits / Associations

I. Gnralits
-

Le modle Entits/Associations est gnralement connu par le modle E/A.

C est un modle conceptuel conu dans les annes 1970 qui rsulte des travaux de BACHMAN,
CHEN, TARDIEU.

Il est essentiellement utilis pour la phase de conception initiale.

Il utilise une reprsentation graphique.

Mise en

uvre de la base de donnes : transformation du schma E/A en un schma logique de

SGBD.

II. Concepts de base


II.1. Attribut
Dfinition : Un attribut est dfini comme tant le champ ou la plus petite unit de donnes possdant un
nom.
Exemples : Nom, prnom, date_naissance, immatricule_voiture, raison sociale,

Notation : On prsente les attributs par des ellipses contenant leurs noms.

Exemples :

Nom

Prnom

CIN

Proprits :
-

Attribut simple : attribut non dcomposable en d autres attributs.


Exemples : Nom, Prnom, NCI, Email, Tlphone.

Attribut compos : la valeur de l attribut est une concatnation des valeurs de plusieurs attributs
simples.
Exemple : Adresse (Rue, Code postal, Ville).

Attribut driv : la valeur de l attribut est calcule ou dduite partir des valeurs des autres
attributs.
Exemples : Age, Moyenne, Dure

Valeur nulle (NULL) : pour un attribut, c est une valeur non dfinie.
Exemple : Pour un client dont on ne connat pas sa date de naissance, l attribut date_naissance
prend la valeur NULL.

Type d attribut : Entier, Rel, Date, Chane de caractres,

Domaine d attribut : Ensemble de valeurs admissibles pour un ou plusieurs attributs.


Exemple : Si le prix des produits est compris entre 1DT et 5DT, alors le domaine de l attribut prix
est [1..5].

Chapitre 2 : Le modle Entits / Associations

II.2. Entit
Dfinitions :
-

Une entit est un objet de l univers du discours = (sujet, thme)

Un type d entit permet de dfinir de faon conceptuelle une entit dont tous les membres
partagent les mmes caractristiques. [5]

Une occurrence d entit est constitue par l ensemble des valeurs de chacune des proprits
un type d entit.
Exemple :
Type d entit : Personne
Occurrences :
Mohamed

Ben Salah

05652124

Ali

Ben Abdallah

07412148

Salah

Ben Ali

06457986

Identifiant d une entit : caractrise de faon unique les occurrences d un type d entit.
Exemple : L attribut CIN de l entit Personne : Toute personne a un seul N de carte d identit
nationale qui le distingue des autres.

Notation : Chaque entit est reprsente par un rectangle et doit avoir un identifiant qui doit tre
soulign.
Etudiant

CIN de l tudiant

Prnom de l tudiant
Nom de l tudiant

Figure 4. Exemple d entit avec ses attributs

III. Associations et Cardinalits


III.1. Associations
Dfinition : Une association est une liaison perue entre plusieurs entits. Elle prsente un lien o
chaque entit lie joue un rle bien dtermin.
Exemple : Les clients commandent des produits.
client

commande

produit

Figure 5. Exemple d association entre deux entits


Les entits client, produit sont dites participantes la relation commande.

Chapitre 2 : Le modle Entits / Associations

III.2. Cardinalits
Dfinition : Les associations sont caractrises par des cardinalits. La cardinalit M-N attache une
entit indique les nombres minimal et maximal d instance d associations pour une instance de cette
entit.
Remarque : Une cardinalit se lit dans le sens entit vers association.

III.3. Types de cardinalits


Notations :
1

Plusieurs (0 N)

0-1

Optionnel (0 ou 1)

1-N

Obligatoire (1 ou plus)

M-N

Limit (de M N)

Figure 6. Notation des cardinalits d associations

Exemples :
-

Association 1-1 : Un client donn ne commande qu un seul produit. Un produit donn n est
command que par un seul client.

client

1-1

commande

1-1

produit

Figure 7. Exemple d association de type 1-1

Association 0 ou 1-N : Un client donn commande plusieurs produits. Un produit donn n est
command que par un seul client.

client

1-N

commande

1-1

produit

Figure 8. Exemple d association de type 1-N


Remarque : La cardinalit un plusieurs (1-N) peut tre aussi zro plusieurs (0-N) dans
le cas o un client existe mais peut ne pas commander de produit.

Association M-N : Un client donn commande plusieurs produits. Un produit donn est
command par un ou plusieurs clients.

client

1-N

commande

1-N

produit

10

Chapitre 2 : Le modle Entits / Associations

Figure 9. Exemple d association de type M-N

III.4. Attributs dassociation


Dans une association M-N, il est possible de caractriser l association par des attributs.
Exemple : Une commande est passe une date donne et concerne une quantit de produit fixe.

client

1-N

1-N

commande

date

produit

quantit

Figure 10. Exemple d association de type M-N

Remarques :
-

On peut avoir une association rflexive au niveau de la mme entit.

Une association peut l tre entre plus que deux entits.

IV. Dmarche suivre pour produire un schma E/A


IV.1. Dmarche
Afin de pouvoir produire un schma E/A relatif aux spcifications d une tude de cas, on procde
comme suit :
1. Recueil des besoins et identification des diffrents attributs.
2. Regrouper les attributs par entits.
3. Identifier les associations entre les entits ainsi que les attributs y associs.
4. Evaluer les cardinalits des associations.

IV.2. Exemple illustratif : Gestion simplifi de stock


Spcifications :
Les clients sont caractriss par un numro de client, un nom, un prnom, une date de
naissance et une adresse postale (rue, code postal et ville). Ils commandent une quantit
donne des produits une date donne.
Les produits sont caractriss par un numro de produit, une dsignation et un prix unitaire.
Chaque produit est fourni par un fournisseur unique (mais un fournisseur peut fournir plusieurs
produits).
Les fournisseurs sont caractriss par un numro de fournisseur, une raison sociale, une adresse
email et une adresse postale.

11

Chapitre 2 : Le modle Entits / Associations

Solution :
Les diffrents attributs associs ces spcifications peuvent tre rsums comme suit :

Nom de l attribut

Dsignation de l attribut

numCl

numro du client.

nomCl

nom du client.

prenomCl

prnom du client.

datenaisCl

date de naissance du client.

adrCl

adresse du client.

qtePc

quantit de produits commands.

dateCd

date de la commande

numPd

numro du produit.

designPd

dsignation du produit.

puPd

prix unitaire du produit.

numFr

numro du fournisseur.

rsFr

raison sociale du fournisseur.

emailFr

adresse email du fournisseur.

adrFr

adresse du fournisseur.

Les entits avec leurs attributs sont :


Nom de l entit

Attributs de l entit

Client

numCl, nomCl, prenomCl, datenaisCl, adrCl

Produit

numPd, designPd, puPd

Fournisseur

numFr, rasFr, emailFr, adrFr

Les associations entre les entits :


Nom de l association

Entits participantes

Attributs associs

commande

client et produit

qtePc, dateCd

fourniture

fournisseur et produit

12

Chapitre 2 : Le modle Entits / Associations

Enfin, le modle E/A se prsente comme suit :

rue

datenaisCl

numCl

codePostal

adrCl

Client

nomCl

1-N

prenomCl

qtePc

ville
commande

designPd
datCd

0-N
Produit

numPd

1-1
puPd
fourniture

0-N
Fournisseur

rue

codePostal

adrFr

numFr

rsFr

emailFr

ville
Figure 11. Modle E/A de l exemple illustratif

13

Chapitre :

Le modle relationnel
Objectifs spcifiques
A la fin de ce chapitre, ltudiant doit tre capable de :
- Apprendre les notions de base du modle relationnel
- Identifier les correspondances avec le modle E/A
- Traduire un modle E/A en un modle relationnel
- Dgager les dpendances fonctionnelles
- Normaliser une relation
Plan du chapitre
I. Gnralits
II. Concepts de base
III. Traduction E/A - relationnel
IV. Les dpendances fonctionnelles
V. Normalisation
Volume horaire
3 heures

Chapitre 3 : Le modle relationnel

I. Gnralits
Dfinition : Le modle relationnel est un modle logique associ aux SGBD relationnels.
Exemples : Oracle, DB2, SQLServer, Access, Dbase,

Objectifs du modle relationnel :


-

Indpendance physique : indpendance entre programmes d application et reprsentation interne


de donnes.

Traitement des problmes de cohrence et de redondance de donnes : problme non trait au


niveau des modles hirarchiques et rseaux.

Dveloppement des LMD non procduraux : modlisation et manipulation simples de donnes,


langages faciles utiliser.

Devenir un standard.

II. Concepts de base


II.1. Relation
Dfinition : Une relation R est un ensemble d attributs {A1, A2,

Notation : R(A1, A2,

, An}.

, An)

Exemple : Soit la relation Produit(numPd, designPd, puPd)


La relation Produit est l ensemble des attributs {numPd, designPd, puPd}

Remarque : Chaque attribut Ai prend ses valeurs dans un domaine dom(Ai).


Exemple : Le prix unitaire puPd est compris entre 0 et 10000. D o dom(puPd) = [0, 10000].

II.2. Tuple
Dfinition : Un tuple est un ensemble de valeurs t=<V1 V2

Vn> o Vi appartient dom(Ai).

Il noter que Vi peut aussi prendre la valeur nulle.

Exemple : <2, Prod1 , 300>

II.3. Contraintes dintgrit


Dfinition : Une contrainte d'intgrit est une clause permettant de contraindre la modification de tables,
faite par l'intermdiaire de requtes d'utilisateurs, afin que les donnes saisies dans la base soient
conformes aux donnes attendues.

Types :
-

Cl primaire : ensemble d attributs dont les valeurs permettent de distinguer les tuples les uns
des autres (identifiant).
Notation : la cl primaire doit tre souligne.

15

Chapitre 3 : Le modle relationnel


Exemple :
Soit la relation Produit(numPd, designPd, puPd)
attribut numPd prsente la cl primaire de la relation Produit.

Cl trangre : attribut qui est cl primaire d une autre relation.


Notation : La cl trangre doit tre prcde par #.
Exemple :
Produit(numPd, designPd, puPd, # numFr)
Le tuple Produit(1, Produit1 , 100, 1) signifie que le produit de numro 1 a
comme fournisseur numro 1.

Contraintes de domaine : les attributs doivent respecter une condition logique.

III. Traduction E/A - relationnel


III.1. Rgles
Pour traduire un modle Entits / Associations en modle relationnel, on applique les rgles suivantes :
-

Chaque entit devient une relation. Les attributs de l entit deviennent attributs de la relation.

L identifiant de l entit devient cl primaire de la relation.

Chaque association 1-1 est prise en compte en incluant la cl primaire d une des relations
comme cl trangre dans l autre relation.

Chaque association 1-N est prise en compte en incluant la cl primaire de la relation dont la
cardinalit maximale est N comme cl trangre dans l autre relation.

Chaque association M-N est prise en compte en crant une nouvelle relation dont la cl primaire
et la concatnation des cls primaires des relations participantes. Les attributs de l association
sont insrs dans cette nouvelle relation.

III.2. Application
exemple du modle Entits/Associations labor dans le chapitre prcdent (Chapitre 2, IV.2. Exemple
illustratif) se traduit en modle relationnel comme suit :
CLIENT (numCl, nomCl, prenomCl, datenaisCl, adrCl)
PRODUIT (numPd, designPd, puPd, #numFr)
FOURNISSEUR (numFr, rsFr, emailFr, adrFr)
COMMANDE (#numCl, #numPd, dateCd, qtePc)

IV. Les dpendances fonctionnelles (DF)


IV.1. Dfinition
Soit R (X, Y, Z) une relation o X, Y, et Z sont des ensembles d attributs. Z peut tre vide.
On dit que Y dpend fonctionnellement de X ou X dtermine Y not (X

Y) si tant donn une valeur de

X, il lui correspond une valeur unique de Y.

16

Chapitre 3 : Le modle relationnel


Exemple : Soit la relation PRODUIT (NumProd, Dsi, PrixUni)
NumProd
Dsi

Dsi,

PrixUni

Remarque : Il est essentiel de bien remarquer qu une dpendance fonctionnelle (en abrg, DF) est une
assertion sur toutes les valeurs possibles et non pas sur les valeurs actuelles : elle caractrise une
intention et non pas une extension d une relation.

IV.2. Proprits des dpendances fonctionnelles


Les dpendances fonctionnelles obissent certaines proprits connues sous le nom d'axiomes
d'Armstrong.[6]

- Rflexivit : Y X X Y
- Augmentation : X Y XZ YZ
-

Transitivit : X Y et Y Z X Z

D'autres proprits se dduisent de ces axiomes :

- Union : X Y et X Z X YZ
- Pseudo-transitivit : X Y et YW Z XW Z
- Dcomposition : X Y et Z Y X Z
L'intrt de ces axiomes et des proprits dduites est de pouvoir construire, partir d'un premier
ensemble de dpendances fonctionnelles, l'ensemble de toutes les dpendances fonctionnelles qu'elles
gnrent.

V. Normalisation
V.1. Objectifs de la normalisation
Exemple : Soit la relation COMMANDE_PRODUIT (NumProd, Quantite, NumFour, Adresse).

NumProd
101

Quantite
300

NumFour
901

Adresse
Av. Hbib Bourguiba

104

1000

902

Av. 7 Novembre

112

78

904

Rue 20 mars

103

250

901

Av. Hbib Bourguiba

Cette relation prsente diffrentes anomalies.


-

Anomalies de modification : Si l on souhaite mettre jour l adresse d un fournisseur, il faut le


faire pour tous les tuples concerns.

Anomalies d insertion : Pour ajouter un nouveau fournisseur, il faut obligatoirement fournir des
valeurs pour NumProd et Quantit.

Anomalies de suppression : La suppression du produit 104 fait perdre toutes les informations
concernant le fournisseur 902.

Pour faire face ce genre de problmes, on a recours la normalisation.


17

Chapitre 3 : Le modle relationnel


Objectifs de la normalisation :
-

Suppression des problmes de mise jour

Minimisation de l espace de stockage (limination des redondances)

V.2. Premire forme normale (1FN)


Dfinition : Une relation est en 1FN si tout attribut est atomique (n est pas dcomposable).
Exemple : Les relations PERSONNE (Nom, Prnoms, Age) et DEPARTEMENT (Nom, Adresse, Tel) ne
sont pas en 1FN si les attributs Prnoms et Adresse peuvent tre du type [Med, Ali] ou [73, Rue 20 Mars,
Tunis] respectivement.

V.3. Deuxime forme normale (2FN)


Dfinition : Une relation est en 2FN si :
-

elle est en 1FN ;

tout attribut non cl primaire est dpendant de la cl primaire entire.

Exemple :
La relation CLIENT (NumCli, Nom, Prnom, DateNaiss, Rue, CP, Ville) est en 2FN.
La relation COMMANDE_PRODUIT(NumProd, Quantite, NumFour, Ville) n est pas en 2FN car
on a NumProd, NumFour

Quantit et NumFour

Ville.

La dcomposition suivante donne deux relations en 2FN :


COMMANDE (NumProd, NumFour, Quantit) ;
FOURNISSEUR (NumFour, Ville).

V.4. Troisime forme normale (3FN)


Dfinition : Une relation est en 3FN si :
-

elle est en 2FN ;

il n existe aucune DF entre deux attributs non cl primaire.

Exemple :
La relation COMPAGNIE (Vol, Avion, Pilote) avec les DF :
Vol

Avion, Avion

Pilote et Vol

Pilote

est en 2FN, mais pas en 3FN.


Anomalies de mise jour sur la relation COMPAGNIE : Il n est pas possible d introduire un
nouvel avion sur un nouveau vol sans prciser le pilote correspondant.
La dcomposition suivante donne deux relations en 3FN qui permettent de retrouver (par
transitivit) toutes les DF : R1 (Vol, Avion) ; R2 (Avion, Pilote).

18

Chapitre :

Lalgbre relationnelle
Objectifs spcifiques
A la fin de ce chapitre, ltudiant doit tre capable de :
- Reconnatre lutilit des oprateurs ensemblistes et spcifiques
- Analyser des requtes plus ou moins complexes
- Appliquer les oprateurs appropris dans lexpression des requtes
Plan du chapitre
I. Dfinition
II. Oprateurs ensemblistes
III. Oprateurs spcifiques
IV. Exercice dapplication
Volume horaire
1 heures et demi

Chapitre 4 : L algbre relationnelle

I. Dfinition
algbre relationnelle est dfinie comme tant l ensemble d oprateurs qui s appliquent aux relations.
Rsultat : nouvelle relation qui peut son tour tre manipule.
algbre relationnelle permet d effectuer des recherches dans les relations.

II. Oprateurs ensemblistes


II.1. Union
Dfinition :
T= R U S ou T=UNION(R, S) contient tous les tuples appartenant aux deux relations R et S.
R et S doivent avoir mme schma.

Notation :
T

R
S
Exemple : R et S sont les relations PRODUIT de deux socits qui fusionnent et veulent unifier leur
catalogue.
R

NumProd

DesigProd

PrixProd

NumProd

DesigProd

PrixProd

Produit1

100

Produit3

500

Produit2

200

Produit2

200

NumProd

DesigProd

PrixProd

Produit1

100

Produit2

200

Produit3

500

Alors :

T=RUS

II.2. Intersection
Dfinition :
T=R

S ou T=INTERSECT(R, S) contient les tuples qui appartiennent la fois aux deux relations R et

S.
R et S doivent avoir mme schma.
Notation :

20

Chapitre 4 : L algbre relationnelle

Exemple : T regroupe les produits communs aux catalogues de deux socits.

T=R

NumProd

DesigProd

PrixProd

Produit2

200

II.3. Diffrence
Dfinition :
T=R

S ou T=MINUS(R, S) permet de retirer les tuples de la relation S existant dans la relation R.

Notation :

Exemple : Retirer les produits de la relation S existant dans la relation R.

NumProd

DesigProd

PrixProd

NumProd

DesigProd

PrixProd

Produit1

100

Produit2

200

Produit2

200

NumProd

DesigProd

PrixProd

Produit1

100

Alors :

T=R-S

II.4. Division
Dfinition :
T = R S ou T = DIVISION(R,S)
O R(A1, A2,
T(A1, A2,

, An) et S(Ap+1,

, An)

, Ap) contient tous les tuples tels que la concatnation chacun des tuples de S donne

toujours un tuple de R.

Notation :
T

21

Chapitre 4 : L algbre relationnelle

Exemple : La division de R par S fournit la relation T.

NumProd

DesigProd

PrixProd

DesigProd

Produit1

100

Produit2

Produit2

200

Alors :
T=RS
NumProd

PrixProd

100

II.5. Produit cartsien


Dfinition :
T=R X S ou T=PRODUCT(R, S) permet d associer chaque tuple de R chaque tuple de S.

Notation :
T

X
R

Exemple :

NumProd

DesigProd

PrixProd

NumFour

Produit1

100

Produit2

200

NumProd

DesigProd

PrixProd

NumFour

Produit1

100

Produit2

200

Alors :
T=RS

22

Chapitre 4 : L algbre relationnelle

III. Oprateurs spcifiques


III.1. Projection
Dfinition :
T= <A, B, C>( R ) ou T= PROJECT(R / A, B, C)
T ne contient que les attributs A, B et C de R.

Notation :
T

A, B, C

R
Exemple : Nom et prnom des clients.

R
numCli

prenomCli

nomCli

Salah

Ben Salah

Ali

Ben Ali

Alors :
T = PROJECT(R / prenomCli, nomCli)
prenomCli

nomCli

Salah

Ben Salah

Ali

Ben Ali

III.2. Restriction
Dfinition :
T= <C > (R) ou T=RESTRICT(R / C)
T ne contient que les attributs de R qui satisfont la condition C.

Notation :
T

23

Chapitre 4 : L algbre relationnelle

Exemple : La liste des clients ayant pour prnom Ali .

R
numCli

prenomCli

nomCli

Salah

Ben Salah

Ali

Ben Ali

Alors :

T = RESTRICT(Clients / prenom= Ali )


numCli

prenomCli

nomCli

Ali

Ben Ali

III.3. Jointure
Dfinition :
T=R >< S ou T=JOIN(R, S)
Produit cartsien R X S et Restriction A=B sur les attributs A de R et B de S.

Notation :
T

R.A

S.B

Exemple : La liste des tudiants ainsi que leurs classes.

Etudiant

Classe
NumClass

NumClass

NomClass

Ben Salah

PrenomEtu
d
Salah

Info11

Ben Ali

Ali

Info12

NumEtud

NomEtud

1
2
Alors :

Etudiant
NumEtud

NomEtud

Ben Salah

Ben Ali

PrenomEtu
d
Salah

NumClass

NomClass

Info11

Ali

Info12

24

Chapitre 4 : L algbre relationnelle

IV. Exercice dapplication


Soit le modle relationnel suivant :
CLIENT (NOC, NOM, ADRESSE)
SERVICE (NOS, INTITULE, LOCALISATION)
PIECE (NOP, DESIGNATION, COULEUR, POIDS)
ORDRE (#NOP, #NOS, #NOC, QUANTITE)

Proposer, en algbre relationnelle, une formulation des requtes suivantes.


1. Dtermine les NOS des services qui ont command pour le client C1.
2. Dterminer les NOS des services qui ont command une pice P1 pour le client C1.
3. Donner les NOS des services qui ont command une pice de couleur rouge pour le client C1.
4. Donner les NOC des clients qui ont en commande au moins toutes les pices commandes par
le service S1.
5. Donner les NOC des clients qui ont en commande des pices figurant uniquement dans les
commandes du service S1.
6. Donner les NOP des pices qui sont commandes au niveau local (pour ces pices, l adresse du
client et la localisation du service sont identiques).

25

Chapitre :

Le langage SQL
Objectifs spcifiques
A la fin de ce chapitre, ltudiant doit tre capable de :
- Apprendre crer une base de donnes en tenant compte des contraintes
dintgrit
- Savoir ajouter, modifier, supprimer des enregistrements dune table
- Construire des requtes dinterrogations correspondant des critres plus ou
moins complexes
- Appliquer des droits daccs une base de donnes
Plan du chapitre
I. Prsentation de SQL
II. Dfinition de donnes
III. Manipulation de donnes
IV. Interrogation de donnes
V. Contrle de donnes
Volume horaire
6 heures

Chapitre 5 : Le langage SQL

I. Prsentation de SQL
SQL signifie Structured Query Language est le langage des bases de donnes relationnelles rpandant
la fois aux problmatiques de cration des objets de base de donnes (modle), de manipulation des
donnes (algbre relationnelle), de gestion de la scurit (droits d accs), de traitements locaux de
donnes (procdures).[7]
Il s agit d un langage non procdural qui a t conu par IBM dans les annes 70. Il est devenu le
langage standard des systmes de gestion de bases de donnes relationnelles (SGBDR) depuis 1986.
Il est utilis par les principaux SGBDR du march : Oracle, SQL Server, MySQL, Access, DB2,
Remarque : Il existe plusieurs implmentations de SQL chez les principaux diteurs (Voir Annexes).
Dans le reste de ce chapitre, l implmentation utilise est celle du SGBD Oracle.

II. Dfinition de donnes


II.1. Cration des tables
Syntaxe : Pour crer une table, on fait recours l instruction suivante :
CREATE TABLE nom_table (
Attribut1 type1,
Attribut2 type2,
.,
Contrainte1,
Contrainte2,

);
Type des donnes : [8]
-

NUMBER( N ) : Entier N chiffres

NUMBER( N , M ) : Rel N chiffres au total, M aprs la virgule.

DATE : Date complte (date et/ou heure)

VARCHAR( N ), VARCHAR2( N ) : chane de N caractres (entre

) dont les espaces enfin de

la chane seront limins (longueur variable).


-

CHAR( N ) : Chane de N caractres (longueur fixe).

Contraintes d intgrit
Dfinition : Dans la dfinition d une table, on peut indiquer des contraintes d intgrit portant sur
une ou plusieurs colonnes.
Les contraintes possibles sont : UNIQUE, PRIMARY KEY, FOREIGN KEY

REFERENCES et

CHECK.
Chaque contrainte doit tre nomme pour pouvoir la mettre jour ultrieurement.

Cration :
- CONSTRAINT nom_contrainte UNIQUE (colonne1, colonne2,

) : interdit qu une

colonne, ou la concatnation de plusieurs colonnes, contiennent deux valeurs identiques.

27

Chapitre 5 : Le langage SQL

- CONSTRAINT nom_contrainte PRIMARY KEY (attribut1, attribut2,


attributs attribut1, attribut2,

) : l ensemble des

forment la cl primaire de la relation.

- CONSTRAINT nom_contrainte FOREIGN KEY (attribut_cl_trangre) REFERENCES


nom_table (attribut_rfrence) : l attribut de la relation en cours reprsente la cl
trangre qui fait rfrence la cl primaire de la table indique.

- CONSTRAINT

nom_contrainte

CHECK

(condition) :

contrainte

on

doit

obligatoirement satisfaire la condition telle qu elle est nonce.

Exemple :
CREATE TABLE CLASSE (
NUMCLASSE NUMBER(5),
NOMCLASSE VARCHAR2(10)
);

CREATE TABLE ETUDIANT (


NCE NUMBER(5),
NOM VARCHAR2(10),
PRENOM VARCHAR2(10),
NUMCLASSE VARCHAR2(10),
CONSTRAINT PK_ETUDIANT PRIMARY KEY(NCE),
CONSTRAINT U_NOM UNIQUE(NOM),
CONSTRAINT CK_NOM CHECK(NOM = UPPER(NOM)),
CONSTRAINT FK_ETUDIANT_CLASSE FOREIGN KEY(NUMCLASSE)
REFERENCES CLASSE(NUMCLASSE)
);

II.2. Renommage des tables


Syntaxe : Pour changer le nom d une table, on fait recours l instruction suivante :
RENAME Ancien_Nom
TO Nouveau_Nom ;

Exemple : Etant donn l entit ETUDIANT, si on souhaite la renommer par STUDENT, on crit :
RENAME ETUDIANT
TO STUDENT ;

II.3. Destruction des tables


Syntaxe : Pour supprimer le contenu d une table ainsi que son schma, on utilise l instruction qui suit :
DROP TABLE nom_table ;

28

Chapitre 5 : Le langage SQL

Remarque : Attention, la suppression d une table engendre la perte des donnes qu elle contient.
Exemple : Pour supprimer la table ETUDIANT ainsi que son contenu, on fait recours l instruction :
DROP TABLE ETUDIANT ;

II.4. Modification des tables


Il existe plusieurs modifications que l on peut effectuer sur une table donne.
Ajout d attributs : Aprs avoir cr la base de donnes, des tches de maintenance semblent tre parfois
ncessaires. D o l ajout d un nouvel attribut :
ALTER TABLE nom_table
ADD (attribut type,

);

Exemple : Etant donn la table Commande, l ajout du champ Montant cette table revient crire :
ALTER TABLE COMMANDE
ADD (MONTANT NUMBER(10,3)) ;

Modification des attributs : Aprs avoir cr la base de donnes, on peut modifier le type d un attribut en
utilisant l instruction suivante :
ALTER TABLE nom_table
MODIFY (attribut type,

);

Exemple : Modifier le nombre de chiffres du champ Montant de la table Commande ncessite le recours
l instruction :
ALTER TABLE COMMANDE
MODIFY (MONTANT NUMBER(12,3)) ;

Ajout de contraintes : Aprs avoir cr la base de donnes, on peut ajouter une nouvelle contrainte
intgrit grce l instruction suivante :
ALTER TABLE nom_table
ADD CONSTRAINT nom_contrainte definition_contrainte ;

Exemple : Ajouter une contrainte la table Commande qui permet d obliger des insertions de montants
positifs
ALTER TABLE COMMANDE
ADD CONSTRAINT CK_MONTANT CHECK(MONTANT >= 0) ;
Suppression de contraintes : Pour supprimer une contrainte, on procde comme indique la syntaxe de
cette instruction :
ALTER TABLE nom_table
DROP CONSTRAINT nom_contrainte ;

29

Chapitre 5 : Le langage SQL

Exemple : Supprimer la contrainte ck_montant de la table Commande


ALTER TABLE COMMANDE
DROP CONSTRAINT CK_MONTANT ;

III. Manipulation de donnes


III.1. Ajout de donnes
Syntaxe : Pour ajouter un tuple dans une table, on procde comme suit :
INSERT INTO nom_table
VALUES ( valeur_attribut1, valeur_attribut2,

);

Exemple : Etant donn la table Etudiant(NCE, nom, prenom, ville). Si on souhaite insrer les
informations d un nouvel tudiant disposant des informations suivantes (1234, Ben Salah, Salah,
Djerba), on crit :
INSERT INTO ETUDIANT
VALUES (1234, BEN SALAH , SALAH , DJERBA ) ;

III.2. Modification de donnes


Syntaxe : Pour modifier la valeur d un attribut relatif un ou plusieurs tuples d une table, on procde
comme suit :
UPDATE nom_table
SET attribut1 = valeur1, attribut2 = valeur2,
[WHERE condition] ;

Exemple : Etant donn la table Etudiant (NCE, nom, prenom, ville). Si jamais l tudiant Salah Ben Salah
habite maintenant Tunis, on crit dans ce cas :
UPDATE ETUDIANT
SET VILLE= TUNIS
WHERE NCE=1234 ;

III.3. Suppression de donnes


Syntaxe : Il s agit de supprimer un ou plusieurs tuples d une table. Pour ce faire, on crit :
DELETE FROM nom_table
[WHERE condition] ;

Exemple : Si on souhaite supprimer l tudiant de NCE 1234 de la table Etudiant, on crit :


DELETE FROM ETUDIANT
WHERE NCE=1234 ;

30

Chapitre 5 : Le langage SQL

IV. Interrogation de donnes


IV.1. Gnralits
Il s agit de chercher un ou plusieurs tuples de la base de donnes.
Syntaxe :
ordre SELECT possde six clauses diffrentes, dont seules les deux premires sont obligatoires.[9]
Elles sont donnes ci-dessous dans l ordre dans lequel elles doivent apparatre quand elles sont
utilises :
SELECT
FROM
[WHERE
GROUP BY
HAVING
ORDER BY

];

IV.2. Projection
Tous les attributs d une table :
SELECT *
FROM nom_table ;

Remarque : Il est possible de mettre le mot cl facultatif DISTINCT derrire l ordre SELECT. Il permet
liminer les duplications : si, dans le rsultat, plusieurs lignes sont identiques, une seule sera
conserve.

Exemple : Liste de tous les tudiants


SELECT *
FROM ETUDIANT ;

Quelques attributs :
SELECT attribut1, attribut2,
FROM nom_table ;

Exemple : Liste des noms des tudiants sans duplication


SELECT DISTINCT NOM
FROM ETUDIANT ;

IV.3. Restriction
Les restrictions se traduisent en SQL l aide du prdicat WHERE comme suit :
SELECT attribut1, attribut2,
FROM nom_table
WHERE predicat ;

31

Chapitre 5 : Le langage SQL


Un prdicat simple est la comparaison de deux expressions ou plus au moyen d un oprateur logique.
Les trois types d expressions (arithmtiques, caractres ou dates) peuvent tre compares au moyen
des oprateurs d galit ou d ordre (=, !=, <, <=, >, >=) :
-

pour les types date, la relation d ordre est l ordre chronologique

pour les types caractres, la relation d ordre est l ordre lexicographique.

Nous rsumons les principales formes de restrictions dans ce qui suit :


WHERE exp1 = exp2
Exemple : Liste des tudiants qui s appellent Ali
SELECT *
FROM ETUDIANT
WHERE PRENOM = ALI ;

WHERE exp1 != exp2


Exemple : Liste des tudiants qui ne s appellent pas Ali
SELECT *
FROM ETUDIANT
WHERE PRENOM != ALI ;

WHERE exp1 < exp2


WHERE exp1 <= exp2
Exemple : Liste des tudiants ayant les NCE infrieurs 100
SELECT *
FROM ETUDIANT
WHERE NCE <= 100 ;

WHERE exp1 > exp2_


WHERE exp1 >= exp2
Exemple : Liste des tudiants ayant les NCE suprieurs 100
SELECT *
FROM ETUDIANT
WHERE NCE >= 100 ;

WHERE exp1 BETWEEN exp2 AND exp3


La condition est vrai si exp1 est compris entre exp2 et exp3 (bornes incluses)
Exemple : Liste des tudiants ayant les NCE compris entre 100 et 200
SELECT *
FROM ETUDIANT
WHERE NCE BETWEEN 100 AND 200 ;

WHERE exp1 LIKE exp2 :

32

Chapitre 5 : Le langage SQL


LIKE teste l galit de deux chanes en tenant compte des caractres jokers dans la 2me chane:
_ remplace un caractre exactement,
% remplace une chane de caractres de longueur quelconque (y compris de longueur
nulle)
Exemple : Liste des tudiants ayant les noms commenant par

et contenant au moins 2

caractres.
SELECT *
FROM ETUDIANT
WHERE NOM LIKE A_% ;

WHERE exp1 IN (exp2, exp3,

Le prdicat est vrai si exp1 est gale l une des expressions de la liste entre parenthses.
Exemple : Liste des tudiants ayant les prnoms appartenant la liste (Ali, Salah, Bechir)
SELECT *
FROM ETUDIANT
WHERE PRENOM IN ( ALI , SALAH , BECHIR ) ;

WHERE exp IS NULL


Exemple : Liste des tudiants dont les prnoms sont non dfinis
SELECT *
FROM ETUDIANT
WHERE PRENOM IS NULL ;

WHERE EXISTS (sous_interrogation)


La clause EXISTS est suivie d une sous interrogation entre parenthses, et prend la valeur vraie
il existe au moins une ligne satisfaisant les conditions de la sous interrogation.
Exemple : Liste des noms des classes qui ont au moins un tudiant ayant le nom Ali .
SELECT NOMCLASSE FROM CLASSE
WHERE EXISTS (SELECT * FROM ETUDIANT
WHERE ETUDIANT.NUMCLASSE = CLASSE.NUMCLASSE
AND NOMETUDIANT= ALI );

Remarque :
On peut trouver, de mme, les ngations des prdicats BETWEEN, NULL, LIKE, IN, EXISTS savoir :
NOT BETWEEN, NOT NULL, NOT LIKE, NOT IN et NOT EXISTS.

IV.4. Tri
Les lignes constituant le rsultat d un SELECT sont obtenues dans un ordre indtermin. La clause
ORDER BY prcise l ordre dans lequel la liste des lignes slectionnes sera donne.

Syntaxe :

33

Chapitre 5 : Le langage SQL


ORDER BY exp1 [DESC], exp2 [DESC],
option facultative DESC donne un tri par ordre dcroissant. Par dfaut, l ordre est croissant.
Le tri se fait d abord selon la premire expression, puis les lignes ayant la mme valeur pour la premire
expression sont tries selon la deuxime,
Remarque : Les valeurs nulles sont toujours en tte quel que soit l ordre du tri (ascendant ou
descendant).

Exemple : Liste des tudiants ordonns par ordre croissant des NCE et dcroissant des noms
SELECT *
FROM ETUDIANT
ORDER BY NCE, NOM Desc;

IV.5. Regroupement
IV.5.1. La clause GROUP BY
Il est possible de subdiviser une table en groupes, chaque groupe tant l ensemble de lignes ayant une
valeur commune.
Syntaxe :
GROUP BY exp1, exp2,
Cette clause groupe en une seule ligne toutes les lignes pour lesquelles exp1, exp2,

ont la mme

valeur.

Remarques :
-

Cette clause se place juste aprs la clause WHERE, ou aprs la clause FROM si la clause
WHERE n existe pas.

Des lignes peuvent tre limines avant que le groupe ne soit form grce la clause WHERE.

Exemples :
Liste des dpartements ainsi que le nombre de leurs employs
SELECT DEPT, COUNT(*)
FROM EMP
GROUP BY DEPT;
Liste des dpartements ainsi que le nombre de leurs secrtaires
SELECT DEPT, COUNT(*)
FROM EMP
WHERE POSTE = SECRETAIRE
GROUP BY DEPT;

IV.5.2. La clause HAVING


HAVING sert prciser quels groupes doivent tre slectionns.
Elle se place aprs la clause GROUP BY.
Syntaxe :

34

Chapitre 5 : Le langage SQL


HAVING predicat

Remarque : Le prdicat suit la mme syntaxe que celui de la clause WHERE. Cependant, il ne peut
porter que sur des caractristiques de groupe (fonctions de groupe ou expression figurant dans la clause
GROUP BY)
Exemple :
SELECT DEPT, COUNT(*)
FROM EMP
WHERE POSTE = SECRETAIRE
GROUP BY DEPT
HAVING COUNT(*) > 1 ;

IV.6. Oprateurs ensemblistes


IV.6.1. Union
oprateur UNION permet de fusionner deux slections de tables pour obtenir un ensemble de lignes
gal la runion des lignes des deux slections. Les lignes communes n apparatront qu une fois.

Exemple : Liste des ingnieurs des deux filiales


SELECT * FROM EMP1 WHERE POSTE = INGENIEUR
UNION
SELECT * FROM EMP2 WHERE POSTE = INGENIEUR ;

IV.6.2. Diffrence
oprateur MINUS permet d ter d une slection les lignes obtenues dans une deuxime slection.

Exemple : Liste des dpartements qui ont des employs dans la premire filiale mais pas dans la
deuxime
SELECT DEPT FROM EMP1
MINUS
SELECT DEPT FROM EMP2;
IV.6.3. Intersection
oprateur INTERSECT permet d obtenir l ensemble des lignes communes deux interrogations.

Exemple : Liste des dpartements qui ont des employs dans les deux filiales
SELECT DEPT FROM EMP1
INTERSECT
SELECT DEPT FROM EMP2;

35

Chapitre 5 : Le langage SQL

IV.7. Jointure
IV.7.1. Dfinition
Quand on prcise plusieurs tables dans la clause FROM, on obtient le produit cartsien des tables.
Le produit cartsien de deux tables offre en gnral peu d intrt.
Ce qui est normalement souhait, c est de joindre les informations de diverses tables, en prcisant
quelles relations les relient entre elles. C est la clause WHERE qui permet d obtenir ce rsultat. Elle
vient limiter cette slection en ne conservant que le sous-ensemble du produit cartsien qui satisfait le
prdicat.
Exemple : Liste des noms des tudiants avec les noms de leurs classes
SELECT NOMETUDIANT, NOMCLASSE
FROM ETUDIANT, CLASSE
WHERE ETUDIANT.NUMCLASSE = CLASSE.NUMCLASSE ;
IV.7.2. Jointure dune table elle mme
Il peut tre utile de rassembler des informations venant d une ligne d une table avec des informations
venant d une autre ligne de la mme table.
Dans ce cas, il faut renommer au moins l une des deux tables en lui donnant un synonyme, afin de
pouvoir prfixer sans ambigut chaque nom de colonne.

Exemple : Lister les employs qui ont un suprieur en indiquant pour chacun le nom de son suprieur
SELECT EMP.NOME EMPLOYE, SUPE.NOME SUPERIEUR
FROM EMP, EMP SUPE
WHERE EMP.SUP = SUPE.MATR ;

V. Contrle de donnes
V.1. Gestion des utilisateurs
Tout accs la base de donnes s effectue par l intermdiaire de la notion d utilisateur (compte Oracle).
Chaque utilisateur est dfini par :
-

un nom d utilisateur

un mot de passe

un ensemble de privilges
V.1.1. Cration dun utilisateur

Syntaxe : Pour crer un utilisateur, on doit spcifier le nom de l utilisateur ainsi que le mot de passe via
instruction :
CREATE USER utilisateur IDENTIFIED BY mot_de_passe ;

Exemple :
CREATE USER ALI IDENTIFIED BY Ae3OPd ;

36

Chapitre 5 : Le langage SQL


V.1.2. Modification dun compte utilisateur
Syntaxe : Pour modifier le mot de passe d un utilisateur, on crit :
ALTER USER utilisateur IDENTIFIED BY nouveau_mot_de_passe ;

Exemple :
CREATE USER ALI IDENTIFIED BY A23ePs ;

V.1.3. Suppression dun utilisateur


Syntaxe : Pour supprimer un compte utilisateur, on crit :
DROP USER utilisateur [CASCADE] ;

utilisation de CASCADE signifie que la suppression de l utilisateur est accompagn par la suppression
de tous les schmas qu il a cr.
Exemple :
DROP USER Ali CASCADE ;

V.2. Gestion des privilges


V.2.1. Attribution de privilges
Un privilge peut tre attribu un utilisateur par l ordre GRANT.
Syntaxe :
GRANT privilge
[ON table]
TO utilisateur [WITH GRANT OPTION] ;

Remarque : Des droits peuvent tre accords tous les utilisateurs par un seul ordre GRANT en utilisant
le mot rserv PUBLIC la place du nom d utilisateur.

Principaux Privilges :
SELECT : lecture
INSERT : insertion
UPDATE : mise jour
DELETE : suppression
DBA, ALL : tous les privilges

Si la clause WITH GRANT OPTION est spcifie, le bnficiaire peut son tour assigner le privilge
qu il a reu d autres utilisateurs.

Exemples :
GRANT SELECT

37

Chapitre 5 : Le langage SQL


ON ETUDIANT
TO PUBLIC ;

GRANT UPADATE, DELETE


ON ETUDIANT
TO Ali WITH GRANT OPTION ;
V.2.2. Suppression des privilges
Un privilge peut tre enlev un utilisateur par l ordre REVOKE.

Syntaxe :
REVOKE privilge
[ON table]
FROM utilisateur ;

Exemples :
REVOKE SELECT
ON ETUDIANT
FROM Ali ;

38

Annexes
Annexes

Annexe I : Historique des SGBDR


Annexe II : La normalisation
Annexe III : Implmentation de SQL chez les principaux diteurs
Annexe IV : Prsentation de quelques fonctions SQL

Annexe I : Historique des SGBDR

Annexe I : Historique des SGBDR

Annexe II : La normalisation

Annexe II : La normalisation
I. Intrt de la normalisation dans la conception de base de donnes

Utilisation d une approche


descendante telle que la
modlisation EA
Sources de donnes
Utilisateurs
Conversion du modle EA
en un ensemble de relations
Spcification des
exigences des
utilisateurs
Formulaires utiliss et
tats gnrs au sein
de l entreprise
Sources qui dcrivent
entreprise, telles que le
dictionnaire de donnes
et les modles de
donnes de l entreprise

Ensemble de
relations bien conues
Seconde
approche

Utilisation de la normalisation en
tant qu une technique de
validation, pour vrifier la structure
de relations.

Premire
approche

Utilisation de la normalisation
Comme une technique montante
pour crer un ensemble de
relations.

Annexe II : La normalisation

II. Illustration graphique du processus de normalisation

Sources de donnes

Utilisateurs

Spcification des
exigences des
utilisateurs

Formulaires utiliss et
tats gnrs au sein
de l entreprise

Sources qui dcrivent


entreprise, telles que le
dictionnaire de donnes
et les modles de
donnes de l entreprise

Conversion des attributs en forme de


tableau
Forme non normalise
(UNF)
Suppression des groupes rptitifs

Premire Forme normale


(1NF)
Suppression des dpendances
partielles
Deuxime Forme normale
(2NF)
Suppression des dpendances
transitives
Troisime Forme normale
(3NF)

Annexe III : Implmentation de SQL chez les principaux diteurs

Annexe III : Implmentation de SQL chez les principaux diteurs


I. Diffrents types SQL disponibles
Type SQL

Oracle

IBM DB2

SQL Server

PostGreSQL

MySQL

CHAR

Oui

Oui

Oui

Oui

Oui

VARCHAR

Oui

Oui

Oui

Oui

Oui

NCHAR

Oui

GRAPHIC[(n)]

Oui

Non

Oui

NVARCHAR

Oui

VARGRAPHIC[(n)]

Oui

Non

Oui

CLOB

Oui

Oui

TEXT

TEXT

LONGTEXT

NCLOB

Oui

Non

NTEXT

Non

Non

DATE

Oui

Oui

Non

Oui

Oui

TIME

Non

Oui

Non

Oui

Oui

TIMESTAMP

Oui

Oui

DATETIME

Oui

DATETIME(2)

INTERVAL
TIME WITH TIME
ZONE
TIME STAMP
WITH TIME
ZONE
BIGINT

Oui

Non

Non

(1)

Non

Non

Non

Non

Oui

Non

Oui

Non

Non

Oui

Non

Oui

Oui

Oui

Oui

Oui

INTEGER

NUMBER

Oui

Oui

Oui

Oui

SMALLINT

Oui

Oui

Oui

Oui

Oui

FLOAT

Oui

Oui

Oui

Non

Oui

REAL
DOUBLE
PRECISION
NUMERIC

Oui

Oui

Oui

Oui

Oui

Oui

Oui

Non

Oui

Oui

Oui

NUMERIC

Oui

Oui

Oui

DECIMAL

Oui

Non

Non

Oui

Oui

BIT

Non

Non

Oui

Non

BIT VARYING

RAW

Non

Oui

Non

BOOLEAN

Non

Non

BINARY
VAR
BINARY
BIT

Oui

Non

BLOB

Oui

Oui

IMAGE

Non

LONGBLOB

LOCATOR

Non

Oui

Non

Non

Non

DATALINK

Non (3)

Oui

Non

Non

Non

MULTISET

Non (4)

Non

Non

Non

Non

XML

Oui (5)

Oui

Oui

Non

Non

(1) PostGresSQL possde un type INTERVAL spcifique.


(2) MySQL limite le date time une prcision de la seconde.
(3) Oracle n'implment pas le DATALINK, mais une rfrence de fichier via le type BFILE.
(4) Pas de MULTISET pour Oracle, mais un VARRAY proche avec utilisation de la fonction MULTISET.

Annexe III : Implmentation de SQL chez les principaux diteurs


(5) Oracle encapsule son XML dans un BLOB ce qui ne permet pas l'indexation interne du document
stock.

II. Longueur maximale des noms des objets :


Objet

Oracle

IBM DB2

MS SQL Server

PostGreSQL

MySQL

Base

128

63

64 (1)

Table, vue

30

128

128

63

64 (1)

Colonne

30

30

128

63

64

Contrainte

30

18

128

63

64

Index

30

128

128

63

64

(1) peut tre moins long en fonction de l'OS.

Annexe IV : Prsentation de quelques fonctions SQL

Annexe IV : Prsentation de quelques fonctions SQL


Nous allons dcrire ci-dessous les principales fonctions disponibles dans Oracle. Il faut remarquer que
ces fonctions ne sont pas standardises et ne sont pas toutes disponibles dans les autres SGBD.

I. Fonctions arithmtiques
ABS(n) : valeur absolue de n
MOD(n1, n2) : n1 modulo n2
POWER(n, e) : n la puissance e
ROUND(n[,p]) : arrondit n la prcision p (0 par dfaut)
SIGN(n) : -1 si n< 0, 0 si n=0 et 1i n>0
SQRT(n) : racine carr de n
TO_CHAR(n, format) : convertit n en chane de caractres
TRUNC(n[,p]) : tronque n la prcision p (0 par dfaut)
GREATEST(n1, n2,
LEAST(n1, n2,

) : maximum de n1, n2,

) : minimum de n1, n2,

TO_NUMBER(chane) : convertit la chane de caractres en numrique

II. Fonctions chanes de caractres


DECODE(crit, val1, res1[,val2, res2,

], defaut)

permet de choisir une valeur parmi une liste d expressions, en fonction de la valeur prise par une
expression servant de critre de slection : elle prend la valeur res1 si l expression crit a la valeur val1,
prend la valeur res2 si crit a la valeur val2,
val1, val2,

; si l expression crit n est gale aucune des expressions

, DECODE prend la valeur defaut par dfaut.

Les expressions rsultat (res1, res2,

, defaut) peuvent tre de types diffrents : caractre et

numrique, ou caractre et date (le rsultat est du type de la premire expression rencontre dans le
DECODE).
Les expressions val et res peuvent tre soit des constantes, soit des colonnes ou mme des expressions
rsultats de fonctions.

LENGTH(chane)
prend comme valeur la longueur de la chane.

SUBSTR(chane, position[, longueur])


extrait de la chane "chane" une sous-chane de longueur "longueur" commenant en position "position"
de la chane.
Le paramtre longueur est facultatif (par dfaut, la sous-chane va jusqu l extrmit de la chane).

INSTR(chane, sous_chane[, pos[, n]])

Annexe IV : Prsentation de quelques fonctions SQL


prend comme valeur la position de la sous-chane dans la chane (les positions sont numrotes partir
de 1). 0 signifie que la sous-chane n a pas t trouve dans la chane.
La recherche commence la position "pos" de la chane (paramtre facultatif qui vaut 1 par dfaut). Une
valeur ngative de "pos" signifie une position par rapport la fin de la chane.
Le dernier paramtre "n" permet de rechercher la nime occurrence de la sous-chane dans la chane.
Ce paramtre facultatif vaut 1 par dfaut.

UPPER(chane)
convertit les minuscules en majuscules

LOWER(chane)
convertit les majuscules en minuscules

LPAD(chane, long[, car])


complte ou tronque "chane" la longueur "long". La chane est complte gauche par le caractre (ou
la chane de caractres) "car".
Le paramtre "car" est optionnel. Par dfaut, chane est complte par des espaces.

RPAD(chane, long[, car])


fonction analogue LPAD mais, "chane" tant complte droite.

LTRIM(chane, car)
supprime les caractres l extrmit gauche de la chane "chane" tant qu ils appartiennent l ensemble
de caractres "car".

RTRIM(chane, car)
fonction analogue LTRIM mais, les caractres tant supprims l extrmit droite de la chane.

REPLACE(chane, ch1, ch2)


remplace "ch1" par "ch2" dans "chane"

TO_CHAR
La fonction TO_CHAR permet de convertir un nombre ou une date en chane de caractre en fonction
un format :
Pour les nombres : TO_CHAR(nombre, format)
nombre est une expression de type numrique
format est une chane de caractre pouvant contenir les caractres suivants :
-

9 reprsente un chiffre (non reprsent si non significatif)

0 reprsente un chiffre (reprsent mme si non significatif)

. point dcimal apparent

, une virgule apparatra cet endroit

$ un $ prcdera le premier chiffre significatif


7

Annexe IV : Prsentation de quelques fonctions SQL


-

B le nombre sera reprsente par des blancs s il vaut zro

MI le signe ngatif sera droite

PR un nombre ngatif sera entre < >

Pour les dates : TO_CHAR(date, format)


format indique le format sous lequel sera affiche date. C est une combinaison de codes ; en voici
quelques uns :
-

YYYY : anne en 4 chiffres

YY : deux derniers chiffres de l anne

WW : numro de la semaine dans l anne

MM : numro du mois

DDD : numro du jour dans l anne

DD : numro du jour dans le mois

D : numro du jour dans la semaine

HH ou HH12 : heure (sur 12 heures)

HH24 : heure (sur 24 heures)

MI : minutes

Tout caractre spcial insre dans le format sera reproduit dans la chane de caractres rsultat. On
peut galement insrer dans le format une chane de caractres quelconque, condition de la placer
entre guillemets.

TO_NUMBER(chane)
convertit une chane de caractres en nombre (quand la chane de caractres est compose de
caractres numriques)

ASCII(chane)
donne le code ASCII du premier caractre de chane.

CHR(n)
donne le caractre de code ASCII(n)

TO_DATE(chane, format)
permet de convertir une chane de caractres en donne de type date. Le format est identique celui de
la fonction TO_CHAR.

Fonctions de travail avec les dates


ROUND(date, prcision)
arrondit la date la prcision spcifie. La prcision est indique en utilisant un des masques de mise en
forme de la date.

TRUNC(date, prcision)

Annexe IV : Prsentation de quelques fonctions SQL


tronque la date la prcision spcifie (similaire ROUND).

SYSDATE
a pour valeur la date et l heure courante du systme d exploitation hte.

III. Fonctions de groupe


Les fonctions de groupes peuvent apparatre dans le SELECT ou le HAVING. Ce sont les fonctions
suivantes :
AVG : moyenne
SUM : somme
MIN : plus petite des valeurs
MAX : plus grande des valeurs
VARIANCE : variance
STDDEV : cart type
COUNT(*) : nombre de lignes
COUNT(col) : nombre de valeurs non nulles de la colonne
COUNT(DISTINCT col) : nombre de valeurs non nulles diffrentes

IV. Autres fonctions


USER
a pour valeur le nom sous lequel l utilisateur est entr dans Oracle.

NVL(exp, val)
permet de remplacer une valeur NULL de exp du par une valeur par dfaut val

Bibliographie
Bibliographie

[1] Georges GARDARIN Bases de donnes Eyrolles 2003.

[2] Thomas CONNOLLY, Carolyn BEGG Systmes de bases de donnes. Approche pratique de
la conception, de l implmentation et de l administration (cours et exercices)

Les ditions

Reynald Goulet Inc. 2005.

[3] Nicolas LARROUSSE Cration de bases de donnes PEARSON Education 2006.

[4] Pierre CRESCENZO Support de cours magistraux de Bases de donnes disponible sur le
site : http://www.crescenzo.nom.fr/CMBasesDeDonnees visit le 12/04/2007.

[5] Pierre CARRIER, Rmy HUDON, Suzanne JEAN Bases de donnes dans le dveloppement
de systmes Gatan Morin 1991.

[6] Jean-Pierre CHEINEY, Philippe PICOUET, Jean-Marc SAGLIO Systmes de Gestion de


Bases de Donnes disponible sur le site : http://www.bd.enst.fr/polyv7 visit le 24/03/2007.

[7] Frdric BROUARD, Christian SOUTOU SQL : Synthse de cours & exercices corrigs.
Collection Synthex. Pearson Education 2005.

[ 8 ] Roger CHAPUIS Les bases de donnes. ORACLE 8i. Dveloppement, administration,


optimisation Dunod, 2001.

[9] Richard GRIN Polycopi Langage SQL http://deptinfo.unice.fr/~grin/messupports visit


le 07/12/2006.

Das könnte Ihnen auch gefallen