Vous êtes sur la page 1sur 60

www.centraliup.fr.

st

de
de
de

Thierry Spriet
Version rdite au format PDF et remise en page

Table des matires


1. GENERALITES SUR LES S.G.B.D ..............................................7
1.1.

Dfinition................................................................................................................. 7

1.2.

Historique................................................................................................................ 7

1.3.

Objectifs d'un SGBD idal ..................................................................................... 8

1.4.

Architecture d'un SGBD......................................................................................... 8

1.4.1.
1.4.2.
1.4.3.

1.5.

NIVEAU CONCEPTUEL .............................................................................................................. 9


NIVEAU INTERNE (ou PHYSIQUE) ............................................................................................ 9
NIVEAU EXTERNE...................................................................................................................... 9

Les utilisateurs de la base..................................................................................... 9

1.5.1.
1.5.2.
1.5.3.

L'ADMINISTRATEUR PRINCIPAL .............................................................................................. 9


LES ADMINISTRATEURS D'APPLICATIONS ............................................................................ 9
LES PROGRAMMEURS D'APPLICATIONS ............................................................................... 9

2. MODELES LOGIQUES DE DONNEES ......................................10


2.1.

Modle conceptuel ............................................................................................... 10

2.1.1.
2.1.2.
2.1.3.
2.1.4.

2.2.

Modle hirarchique............................................................................................. 13

2.2.1.
2.2.2.
2.2.3.

2.3.

REPRESENTATION DU SCHEMA............................................................................................ 13
AVANTAGES DU MODELE HIERARCHIQUE .......................................................................... 14
INCONVENIENTS DU MODELE HIERARCHIQUE................................................................... 14

Modle rseau ...................................................................................................... 15

2.3.1.
2.3.2.
2.3.3.

2.4.

OBJETS ..................................................................................................................................... 10
LIENS ......................................................................................................................................... 10
ENTITES .................................................................................................................................... 11
EXEMPLE .................................................................................................................................. 12

REPRESENTATION DU SCHEMA............................................................................................ 15
AVANTAGES DU MODELE RESEAU ....................................................................................... 15
INCONVENIENT DU MODELE RESEAU.................................................................................. 15

Modle relationnel ................................................................................................ 15

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 2/60

3. LE MODELE RELATIONNEL .....................................................16


3.1.

DEFINITIONS......................................................................................................... 16

3.1.1.
3.1.2.
3.1.3.
3.1.4.

3.2.

Conception de schmas relationnels ................................................................. 16

3.2.1.
3.2.2.
3.2.3.

3.3.

CLE DE RELATION ................................................................................................................... 20


LES TROIS PREMIERES FORMES NORMALES..................................................................... 20
PROPRIETES DES DECOMPOSITIONS EN 3NF.................................................................... 22
ALGORITHME DE DECOMPOSITION EN 3NF........................................................................ 22
FORME NORMALE DE BOYCE-CODD .................................................................................... 23

Dpendances multi values et 4NF .................................................................... 24

3.6.1.
3.6.2.
3.6.3.

3.7.

FERMETURE TRANSITIVE....................................................................................................... 19
COUVERTURE MINIMALE........................................................................................................ 20

Notion de cl et troisime forme normale .......................................................... 20

3.5.1.
3.5.2.
3.5.3.
3.5.4.
3.5.5.

3.6.

DEPENDANCE FONCTIONNELLE ........................................................................................... 18


PROPRIETES DES DEPENDANCES FONCTIONNELLES...................................................... 19
DEPENDANCES FONCTIONNELLES ELEMENTAIRES (DFE)............................................... 19

Fermeture transitive et couverture minimale..................................................... 19

3.4.1.
3.4.2.

3.5.

PROBLEMES DE REPRESENTATION DU REEL .................................................................... 17


APPROCHE PAR DECOMPOSITION ....................................................................................... 17
DECOMPOSITION..................................................................................................................... 18

Dpendances fonctionnelles............................................................................... 18

3.3.1.
3.3.2.
3.3.3.

3.4.

DOMAINE .................................................................................................................................. 16
RELATION ................................................................................................................................. 16
ATTRIBUT.................................................................................................................................. 16
BASE DE DONNEES RELATIONNELLE .................................................................................. 16

PROPRIETES DES DEPENDANCES MULTI-VALUEES.......................................................... 24


QUATRIEME FORME NORMALE : 4NF ................................................................................... 25
ALGORITHME DE DECOMPOSITION EN 4NF........................................................................ 25

Dpendances de jointure et 5NF......................................................................... 26

3.7.1.
3.7.2.

DEPENDANCES DE JOINTURE............................................................................................... 26
CINQUIEME FORME NORMALE : 5NF .................................................................................... 27

4. LANGAGES DE MANIPULATION DE DONNEES (LMD) ..........29


4.1.

INTRODUCTION .................................................................................................... 29

4.2.

L'ALGEBRE RELATIONNELLE ............................................................................ 29

4.2.1.
4.2.2.

OPERATIONS DE BASE ........................................................................................................... 29


OPERATIONS ADDITIONNELLES............................................................................................ 31

5. ORACLE: ARCHITECTURE FONCTIONNELLE........................35


5.1.

Noyau..................................................................................................................... 35

5.2.

DICTIONNAIRE DES DONNEES........................................................................... 35

5.3.

LA COUCHE SQL.................................................................................................. 36

5.4.

ARCHITECTURE REPARTIE D'ORACLE ............................................................. 36

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 3/60

6. ELEMENTS DE SQL...................................................................37
6.1.

INTRODUCTION .................................................................................................... 37

6.1.1.
6.1.2.

NOTATIONS .............................................................................................................................. 37
RELATIONS DE REFERENCE.................................................................................................. 37

6.2.

OBJETS DE LA BASE........................................................................................... 37

6.3.

SYNTAXE DES NOMS D'OBJETS........................................................................ 39

6.4.

TYPE DE DONNEES ............................................................................................. 39

6.4.1.
6.4.2.
6.4.3.
6.4.4.
6.4.5.

6.5.

Oprateurs ............................................................................................................ 41

6.5.1.
6.5.2.
6.5.3.
6.5.4.
6.5.5.

6.6.

TERMES .................................................................................................................................... 39
CARACTERES........................................................................................................................... 39
TEXTES ..................................................................................................................................... 39
NOMBRES ................................................................................................................................. 39
ECRITURE DES NOMBRES ENTIERS..................................................................................... 40
OPERATEURS ARITHMETIQUES............................................................................................ 41
OPERATEURS SUR LES CHAINES DE CARACTERES ......................................................... 41
OPERATEURS DE COMPARAISON ........................................................................................ 41
OPERATEURS LOGIQUES....................................................................................................... 42
OPERATEURS PARTICULIERS ............................................................................................... 42

Fonctions .............................................................................................................. 43

6.6.1.
6.6.2.
6.6.3.
6.6.4.
6.6.5.
6.6.6.
6.6.7.
6.6.8.

FONCTIONS NUMERIQUES SUR UNE LIGNE ....................................................................... 43


FONCTIONS POUR LES CARACTERES SUR UNE LIGNE .................................................... 43
FONCTIONS QUI TRANSFORMENT UN CARACTERE EN VALEUR NUMERIQUE ............. 44
FONCTIONS QUI REGROUPENT LES LIGNES DE RESULTAT ............................................ 44
CONVERSION DES TYPES DE DONNEES ............................................................................. 44
FONCTIONS POUR LES DATES.............................................................................................. 45
FONCTIONS UTILES ................................................................................................................ 45
FORMATS.................................................................................................................................. 45

7. PRINCIPALES INSTRUCTIONS SQL ........................................48


7.1.

Cration d'objets .................................................................................................. 48

7.1.1.
7.1.2.
7.1.3.
7.1.4.

CREATION D'UNE TABLE ........................................................................................................ 48


CREATION D'UNE VUE ............................................................................................................ 48
CREATION D'UNE SEQUENCE ............................................................................................... 49
CREATION D'UN SYNONYME.................................................................................................. 49

7.2.

Insertion de donnes ........................................................................................... 49

7.3.

Slection de donnes........................................................................................... 50

7.4.

Modification des donnes ................................................................................... 50

7.4.1.
7.4.2.

7.5.

MODIFICATION DES OBJETS.............................................................................. 51

7.5.1.
7.5.2.
7.5.3.

7.6.

MODIFICATION DES LIGNES DANS UNE TABLE .................................................................. 50


EFFACEMENT DE LIGNES DANS UNE TABLE OU DANS UNE VUE .................................... 50
MODIFICATION DES TABLES (INSERTION / SUPPRESSION DE COLONNES) .................. 51
MODIFICATION DES SEQUENCES ......................................................................................... 51
CHANGEMENT DE NOM D'UN OBJET .................................................................................... 51

Suppression d'objets ........................................................................................... 52

7.6.1.
7.6.2.
7.6.3.

TABLES ET VUES ..................................................................................................................... 52


SUPPRIMER DES SYNONYMES.............................................................................................. 52
SUPPRIMER DES SEQUENCES .............................................................................................. 52

7.7.

Validation des commandes ................................................................................. 52

7.8.

Invalidation des oprations ................................................................................. 52

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 4/60

8. SYNTAXE DES EXPRESSIONS.................................................53


9. SYNTAXE DES CONDITIONS ....................................................54
10. ADMINISTRATION .....................................................................55
10.1. Cration d'objets .................................................................................................. 55
10.1.1. CREATION DE LA BASE ................................................................................................................ 55
10.1.2. CREATION DE LA TABLESPACE (espace de rangement des donnes) ...................................... 55

10.2. Modification de la base ........................................................................................ 55


10.2.1. MODIFICATION DE L'ORGANISATION LOGIQUE ....................................................................... 55
10.2.2. MODIFICATION DE LA TABLESPACE .......................................................................................... 55
10.2.3. MODIFICATION DES UTILISATEURS (uniquement en DBA) ....................................................... 55

10.3. Privilges .............................................................................................................. 56


10.3.1. AUTORISATION D'ACCES A LA BASE ......................................................................................... 56
10.3.2. AUTORISATION D'ACCES A LA TABLESPACE ........................................................................... 56
10.3.3. ACCES AUX OBJETS..................................................................................................................... 56
10.3.4. SUPPRESSION D'ACCES A LA BASE (uniquement en DBA) ....................................................... 56
10.3.5. SUPPRESSION D'ACCES A UNE TABLESPACE ......................................................................... 56
10.3.6. SUPPRESSION D'ACCES AUX OBJETS (pour les propritaires de ces objets ou ceux ayant des
privilges sur ces objets) ............................................................................................................................. 56

11. SQL*PLUS - COMMANDES INTERACTIVES............................57


11.1. Dfinition de variables ......................................................................................... 57
11.2. Excution des commandes avec paramtres .................................................... 57
11.3. Ecriture des messages l'cran......................................................................... 57
11.4. Affectation de variables par lecture.................................................................... 57
11.5. Formatage des rsultats ...................................................................................... 57
11.5.1. FORMATAGE DES COLONNES .................................................................................................... 57
11.5.2. RUPTURES DE SEQUENCES DANS UN RAPPORT.................................................................... 58
11.5.3. TITRE D'UN RAPPORT .................................................................................................................. 58
11.5.4. IMPRESSION DE CALCUL SUR LES DONNEES.......................................................................... 59
11.5.5. SUPPRESSION DES OPTIONS ..................................................................................................... 59

11.6. Variables de l'environnement.............................................................................. 59


11.6.1. AFFECTATION D'UNE VARIABLE ................................................................................................. 59
11.6.2. VISUALISATION DES VARIABLES ................................................................................................ 59
11.6.3. IMPRESSION DE MESSAGES (pauses)........................................................................................ 59
11.6.4. SORTIE DES RESULTATS............................................................................................................. 60

11.7. Informations relatives aux objets........................................................................ 60


11.7.1. DESCRIPTION DES TABLES......................................................................................................... 60
11.7.2. ACCES AU DICTIONNAIRE ........................................................................................................... 60
11.7.3. OBJETS PROPRIETAIRES ............................................................................................................ 60
11.7.4. OBJETS ACCESSIBLES................................................................................................................. 60
11.7.5. PRIVILEGES ................................................................................................................................... 60

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 5/60

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 6/60

1. GENERALITES SUR LES S.G.B.D


1.1.

DEFINITION

BASE DE DONNEES : Collection de donnes dont la structure reflte les relations qui existent
entre ces donnes. Cette base de donnes est gre par un Systme de Gestion de Base de Donnes
(SGBD).
S.G.B.D : C'est un ensemble de procdures permettant :
La description des donnes et des relations les concernant.
L'interrogation de la base de donnes (ex: SNCF utilise le systme SOCRATE).
La mise jour des donnes (ventuelle redondance de donnes).
Le partage des donnes.
La protection des donnes de la base.

1.2.

HISTORIQUE

Annes 50-60 : A cette poque, des objets informatiques ont t structurs : des fichiers, avec
des modes d'accs ces fichiers (squentiel, squentiel index, direct ...).
Annes 62-63 : Apparition du concept de base de donnes.
Annes 65-70 : SGBD premire gnration (i.e : modle hirarchique [arbres] et rseau
[graphes]).
- IMS d'IBM (hirarchique).
- IDS de General Electric (rseau), a servi de modle pour CODASYL.
A partir des annes 70 : SGBD seconde gnration fonde sur le modle relationnel.
Avantages : plus de spcification des moyens d'accs aux donnes.
Annes 80 :
- MRDS (CII HB).
- QBE (Query By Example).
- SQL / IDS (IBM).
- INGRES.
- ORACLE (choisi pour ce cours).
Futur :

- Les donnes seront plus varies (textes, sons, images...).


- Bases de connaissances. Systmes experts.
- Bases de donnes dductives.
- Gnie logiciel et SGBD.
- Accs intelligent et naturels (langage naturel par exemple)
- Communication multimdia.

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 7/60

1.3.

OBJECTIFS D'UN SGBD IDEAL

Indpendance physique (donnes / programmes) : modifier la structure interne des donnes,


sans toucher le(s) programme(s).
Indpendance logique : pouvoir modifier le schma conceptuel sans modifier les programmes
(lors de rajout d'informations : tables).
Manipulation des donnes : il faut que les donnes puissent tre manipules distance par des
gens qui n'ont aucune connaissance de la structure interne de la base de donnes.
Efficacit des accs aux donnes :
- Convivialit : manipuler les donnes sans connaitre les structures (utilisateurs).
- Rapidit d'accs aux donnes : temps de rponse.
Administration centrale des donnes : organisation gnrale et administration de la base.
Non-redondance des donnes : une mme donne ne devrait apparatre qu'une seule fois dans
la base (il existe des cas o cela est impossible).
Intgrit des donnes : l'administrateur, lorsqu'il dfinit des donnes, dtermine des contraintes
sur l'intgrit des donnes.
Partageabilit des donnes.
Scurit des donnes :
- Contrles des droits d'accs.
- Reprises sur pannes.

1.4.

ARCHITECTURE D'UN SGBD


Utilisateurs

Programmes
Applications

Niveau externe

Sous modle
A

Niveau conceptuel

Niveau physique ou interne

Sous modle
B

Modle principal

Programmeurs
d'applications

Administrateurs
d'applications

Administrateur
gnral

Archivage

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 8/60

1.4.1.

NIVEAU CONCEPTUEL
Objets du monde
rel

Modlisation

Schma
Conceptuel

On dispose pour cela d'un Langage de Dfinition de Donnes (LDD) qui permet de dcrire le
schma conceptuel de notre base.
Notamment :
- Dfinir et nommer les catgories d'objets.
- Dfinir et nommer les relations entre objets.
- Exprimer des contraintes sur les donnes.

1.4.2.

NIVEAU INTERNE (ou PHYSIQUE)

Spcifications du stockage physique des donnes (fichiers, disques, etc.) et des mthodes
d'accs (index, chanages, etc.).

1.4.3.

NIVEAU EXTERNE

C'est une vue externe pour chaque groupe d'utilisateurs sur un sous-ensemble de la base.
Le schma externe est gnralement un sous schma du schma conceptuel mais il peut contenir des
informations supplmentaires (non prvues dans le schma gnral, mais ncessaires l'application
spcifique de celui-ci).

1.5.
1.5.1.

LES UTILISATEURS DE LA BASE


L'ADMINISTRATEUR PRINCIPAL
Dfinit le schma conceptuel.
Conditionne l'volution de la base.
Dfinit les modalits d'accs et de protection des donnes.

1.5.2.

LES ADMINISTRATEURS D'APPLICATIONS


Dfinit le sous modle adapt l'application.
Elabore les schmas externes (tables qui seront accessibles aux utilisateurs).
Dfinit des rgles de correspondance entre schma externe et schma interne.

C'est partir des travaux des administrateurs que va s'laborer le dictionnaire des donnes. Il
correspond la mmoire conserve de tous les objets ayant t crs. Ce dictionnaire permet de faire
des statistiques d'aprs coups et ne sera jamais effac.

1.5.3.

LES PROGRAMMEURS D'APPLICATIONS

Ils ralisent des bibliothques de programmes pour la manipulation et le traitement des donnes
(interrogation, mise jour, ...). On utilise pour cela un Langage de Manipulation de Donnes (LMD).
Exemple : langage SQL.

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 9/60

2. MODELES LOGIQUES DE DONNEES


2.1.

MODELE CONCEPTUEL
Objets, liens et entits (technique OLE).

2.1.1.

OBJETS

Un objet est la plus petite abstraction (donnes de mme type) qui a une signification pour
l'utilisateur.
Exemple :
AV#
AVION : nom de l'avion (B737, A320, ...).
AVCAP : capacit de l'avion (200, ...).
AVLOC : ville d'attache de l'avion.
AVREV : date de dernire rvision.
PL#
PLNOM
: nom de pilote.
PLADR : adresse d'un pilote (atomique, si l'adresse n'tait pas
restreinte un nom de ville, on aurait une entit).

2.1.2.

VOL#

: numro de vol (un vol a un et un seul numro).

V_D
V_A

: ville de dpart.
: ville d'arrive.

H_D
H_A
.
.
.

: heure de dpart.
: heure d'arrive.

LIENS
Un lien est une association entre objets qui traduit une contrainte de l'entreprise (au sens le plus

large).
Lien de type N:1 (liens fonctionnels)

Lien de type 1:N (liens hirarchiques)

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 10/60

Lien de type N:M (liens maills)

Exemple 1 : liens de type N:1


VOL# (V_D, V_A)
IB102------ (Toulouse, Madrid)
IB104 ----- (Toulouse, Barcelone)
IB106 ----- (Toulouse, Barcelone)
IB108 ----- (Marseille, Nice)
Exemple 2 : Liens de type 1:N
Date de naissance Personne
29/11/92 -----------------
29/11/92 -----------------
18/04/72 -----------------

Paul
Martine
Jacques

Exemple 3 : Liens de type N:M


Enseignement Module
Licence math -------------------- Prog
IUP1 -------------------------------- Prog
DESS DC ------------------------- Prog
IUP1 -------------------------------- Anglais

2.1.3.

ENTITES

Une entit est constitue d'objets et de liens fonctionnels. C'est un ensemble d'objets lis
fonctionnellement (N:1) qui reprsente une abstraction de l'entreprise et qui peut tre nomme.
Exemple : PILOTE est une entit constitue de manire unique d'un ensemble d'attributs (objets /
entits) tels que PLNOM, PLNUM et PLADR.

Entits statiques

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 11/60

Il n'y a que des attributs de type objet.


Exemple : L'entit AVION est compose des objets AVNOM, AVCAP et AVLOC.

Entits dynamiques
Dpendent d'autres entits statiques ou dynamiques.

Exemple : L'entit VOL est compose des objets VOL#, V_D, V_A, H_D et H_A.
existence est galement lie aux entits AVION et PILOTE.

2.1.4.

Son

EXEMPLE

Entits :

VOL, AVION et PILOTE.

Objets : VOL#, V_D, V_A, H_D et H_A.


AV#, AVNOM, AVCAP et AVLOC.
PL#, PLNOM et PLADR.

Liens smantiques intra et inter entits :

 Chaque VOL, AVION ou PILOTE est dtermine de manire unique par son numro.
VOL# N:1 PL#, AV#, V_D, V_A, H_D, H_A
PL#
N:1 PLNOM, PLADR
AV#
N:1 AVNOM, AVCAP, AVLOC

 Chaque avion peut tre conduit par plusieurs pilotes.


AVION N:M PILOTE

 Un pilote peut assurer plusieurs vols.


PILOTE 1:N VOL

 Un avion peut avoir un ou plusieurs vols.


AVION 1:N VOL

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 12/60

2.2.

MODELE HIERARCHIQUE

Reprsentation du schma sous la forme d'une arborescence. On va tre oblig de dupliquer des
informations car quelquefois, on ne pourra pas accder une information sans en connatre les
parents.

2.2.1. REPRESENTATION DU SCHEMA


Les liens sont exclusivement du type 1:N.
Le schma est exprim au moyen d'un arbre ordonn (arborescence).
Soient les entits :

On avait :

AVION
VOL (rsulte de la composition des entits AVION et PILOTE)
PILOTE

AVION N:M PILOTE


PILOTE 1:N VOL
AVION 1:N VOL

Reprsentation hirarchique :

PILOTE P1

Problme : Avec le modle hirarchique, il faut dupliquer AVION


pour y accder (problme de la relation N:M).
On peut choisir comme point de dpart l'entit AVION ou PILOTE.

V1

Point de dpart : AVION

AVION

AVION

N:M
PILOTE

N:M

V2

Vn

AVION
N:M

1:N

PILOTE

VOL

VOL - PILOTE

1:N
VOL

Point de dpart : PILOTE

PILOTE

N:M
AVION

PILOTE

N:M

PILOTE

N:M

1:N

AVION

VOL

VOL - AVION

1:N
VOL

Ces schmas caractrisent la base de donnes.

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 13/60

Par la suite, on aura :


AV1
AV2
.
.
.
AVn
PL1
PL2
.
.
.
PLn
VOL1
VOL2
.
.
.
VOLn

AV1

AV2

PL1 PL3 PL5

PL1 PL6 PL7

VOL3

VOL7

VOL3

VOL7

Duplication de l'information

2.2.2. AVANTAGES DU MODELE HIERARCHIQUE


Adquation du modle avec les entreprises structure arborescente.
Simplicit du modle et de son implmentation (structure d'arbre, les plus communment
utilises).
Adquation entre la structure du schma et les besoins des utilisateurs.

2.2.3. INCONVENIENTS DU MODELE HIERARCHIQUE


Impossibilit de reprsenter des liens de type N:M (entranant des redondances).
Anomalies dans les oprations de stockage.
La suppression d'un noeud entrane la disparition de tous les descendants (problme
de rcriture d'informations afin de maintenir les informations dans la base).
L'insertion d'une information demande la cration d'un segment parent (exemple :
Ajouter un vol sans en connatre encore le pilote).
Le remplacement d'une information doit s'effectuer pour toutes ses occurrences dans
les arbres distincts.
Chemin d'accs unique aux donnes.
Indpendance logique trs rduite.

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 14/60

2.3.

MODELE RESEAU
C'est un simple dveloppement du modle hirarchique.

2.3.1. REPRESENTATION DU SCHEMA


Le modle privilgie les liens de type 1:N. Il permet une reprsentation symtrique des liens de type
N:M. Le schma est exprim sous la forme d'un graphe.

Paul

Paris

Pierre

Nice

2 1 IT100 Paris Nice 17h 18h


1 IT110 Nice Paris 13h 14h
2 1 IT120 Nice Lyon 21h 22h
2 2 IT130 Toul. Paris 10h 11h
4 2 IT109 Paris Bord. 15h 16h

2 B707 150 Paris

Air

40

Paris

2.3.2. AVANTAGES DU MODELE RESEAU


Permet de reprsenter les liens N:M.
Elimination des redondances de donnes.
Cration d'accs multiples aux donnes.
Absence d'anomalies dans les oprations de stockage.

2.3.3. INCONVENIENT DU MODELE RESEAU


Pas d'indpendance vis vis des stratgies d'accs (pas d'accs direct).

2.4.

MODELE RELATIONNEL
Introduit par CODD chez IBM en 1970.

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 15/60

3. LE MODELE RELATIONNEL
3.1.

DEFINITIONS

3.1.1. DOMAINE
Un domaine est un ensemble de valeurs.
Exemples :

Domaine des villes


Domaine des noms :

:
V = {Paris, Nice, Avignon, ... } = D2
N = {Jean, Paul, Pierre, ... } = D1

3.1.2. RELATION
Une relation est un sous ensemble du produit cartsien d'une liste de domaines.

R D1 D 2 D3 ... Dn

Exemples :

Attribut

HABITE

Tuple
RELIE

D1
Paul
Martine
Pierre
Jacques

D2
Nice
Nice
Paris
Avignon

D2
Avignon

D2
Nice

3.1.3. ATTRIBUT
Un attribut est une colonne d'une relation caractrise par un nom.
La premire table ci-dessus dfinit la relation en extension (ensemble de tous les cas possibles un
instant donn).
La relation est dfinie en intention au moyen d'un schma qui contient le nom de la relation et la liste
des attributs.
Exemple :

HABITE (NOM, VILLE)

3.1.4. BASE DE DONNEES RELATIONNELLE


Une base de donnes relationnelle est un ensemble de schmas de relations.

3.2.

CONCEPTION DE SCHEMAS RELATIONNELS


Dans une SGBD relationnelle, les entits et les liens sont reprsents par des relations.

Exemple 1 :

L'entit AVION est reprsente par :


AVION (NUM_AV, NOM_AV, CAP_AV, LOC_AV)

Exemple 2 :

Le lien existant entre les entits PILOTE et AVION est VOL


VOL (PILOTE, AVION, V_D, V_A, H_D, H_A)

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 16/60

3.2.1. PROBLEMES DE REPRESENTATION DU REEL


VOL
IT12
IT14
IT15

PIL01
PIL01
PIL02

Paul
Paul
Yves

Nice
Nice
Pau

AV05
AV05
AV12

B747
B747
A300

500
500
300

Nice
Nice
Nice

Paris
Paris
Paris

12h
17h
7h

13h
18h
8h

3.2.2. APPROCHE PAR DECOMPOSITION


La relation universelle constitue de tous les attributs est dcompose en relations qui n'ont pas
les anomalies prcdentes.
Cette dcomposition ncessite deux oprations :
- La projection
- La jointure naturelle

 La projection
La projection consiste supprimer des attributs d'une relation et liminer les tuples en
double qui peuvent apparatre dans la nouvelle relation.
La projection de R (A1, A2, ... , An) sur les attributs Ai1, Ai2, ... Aip , avec il ik, est la relation R' (Ai1,
Ai2, ... Aip) et note Ai1, Ai2, ... Aip (R).
Exemple :

NUM_AV, NOM_AV, CAP_AV, LOC_AV (VOL)

NUM_AV
AV05
AV12

NOM_AV
B747
A300

CAP_AV
500
300

LOC_AV
Nice
Nice

 La jointure naturelle
La jointure naturelle de relations R (A1, A2, ... , An) et S (B1,B2, ... , Bp) est une relation
T ayant pour attributs l'union des attributs de R et de S, et pour tuples tous ceux obtenus par
concatnation des tuples de R et de S ayant mme valeur pour les attributs de mme nom.
De plus, la projection sur A1, A2, ... , An (T) est R,
et B1, B2, ... , Bp (T) = S.
Exemple :

R
S

R
AV01
AV02
AV12
AV13

B747
B747
A300
A300

S
B747
B747
A300

500
500
300

NUM_AV
AV01

Nice
Paris
Paris
NOM_AV
B747

CAP_AV
500

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

VILLE
Nice
Page 17/60

AV01
AV02
AV02
AV12
AV13

B747
B747
B747
A300
A300

500
500
500
300
300

Paris
Nice
Paris
Paris
Paris

 Proprits des jointures naturelles


La jointure naturelle est associative :
(RS) T = R (ST)
La jointure naturelle est commutative :
RS = SR

3.2.3. DECOMPOSITION
La dcomposition d'une relation R(A1, A2, ..., An) est le remplacement de R par une collection de
relations R1, R2, ... , Rp obtenues par projection de R et telles que R1R2R3 ... Rp ont mme
schma que R.
Une dcomposition est dite sans perte, si pour toute extension de R, on a :
R = R1R2R3 ... Rp

3.3.

DEPENDANCES FONCTIONNELLES
Va servir caractriser des relations qui peuvent tre dcomposes sans pertes.

N.B. : On montrera que s'il y a dpendance fonctionnelle, on peut dcomposer sans pertes.

3.3.1. DEPENDANCE FONCTIONNELLE


Soit R(A1, A2, ... , An) et X et Y des sous ensembles d'attributs de {A1 ,A2, ... , An}.
On dit que X dtermine Y (ou que Y dpend fonctionnellement de X), que l'on note (X Y) , si pour
toute extension r de R, pour tout tuples t1 et t2 de r, on a :
X (t1) = X (t2) Y (t1) = Y(t2)
Exemples :

NUM_PL NOM_PL (le nom du pilote dpend du numro de pilote)


NUM_PL ADR_PL
(NUM_AV, H_D, H_A) (V_D, V_A)
(NUM_AV, V_D, V_A)

/ (H_D, H_A)

(car l'avion peut faire un mme trajet


plusieurs fois).

Les dpendances fonctionnelles concernent l'intention des relations.


Remarque :
ne dpendent pas des tables).

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

(Elles

Page 18/60

3.3.2. PROPRIETES DES DEPENDANCES FONCTIONNELLES


Rflexivit : Y X X Y
Augmentation : X Y XZ YZ
Transitivit : X Y et Y Z X Z
Exemple :

On a
et

NUM_VOL (NUM_AV, H_D, H_A)


(NUM_AV, H_D, H_A) (V_D, V_A)

donc

NUM_VOL (V_D, V_A)

Union : (X Y et X Z) X YZ
Dmonstration :

si X Y XX XY (par augmentation) X XY
et X Z XY ZY (par augmentation)
donc X YZ (par transitivit)

Pseudo transitivit : (X Y et WY Z) WX Z
Dmonstration :

si X Y et WX WY (par augmentation)
or WY Z WX Z (par transitivit)

Dcomposition : si (X Y et Z Y) X Z

3.3.3. DEPENDANCES FONCTIONNELLES ELEMENTAIRES (DFE)


Une DFE est une dpendance X A, o A est un attribut unique non inclus dans X, et il n'existe
pas de X' contenu dans X tel que X' dtermine A.
Nota : La seule rgle s'appliquant sur les DFE est la transitivit.
Exemples :

(NUM_AV, H_D) V_D


(NUM_AV, H_D,H_A) V_D

3.4.

est une DFE.


n'est pas une DFE.

FERMETURE TRANSITIVE ET COUVERTURE MINIMALE

3.4.1. FERMETURE TRANSITIVE


Ensemble de DFE augment des DFE obtenues par transitivit.
Exemple :

F= {NUM_VOL NUM_PIL, NUM_VOL NUM_AV}

F+= F {NUM_VOL NOM_PIL, NUM_VOL ADR_PIL,


NUM_VOL NOM_AV, NUM_VOL CAP_AV, NUM_VOL LOC_AV}
obtenu avec

NUM_PIL (NOM_PIL, ADR_PIL) et


NUM_AV (NOM_AV, CAP_AV, LOC_AV)

Remarque : Deux ensembles de DFE sont quivalents s'ils ont la mme fermeture transitive.

Graphe des dpendances fonctionnelles

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 19/60

NUM_VOL

NUM_PIL
NOM_PIL

H_A

V_A

ADR_PIL

H_D

V_D

NUM_AV

LOC_AV

NOM_AV
CAP_AV

3.4.2. COUVERTURE MINIMALE


C'est un ensemble F de DFE associ un ensemble d'attributs vrifiant les proprits :
Aucune dpendance dans F n'est redondante.
i.e. : pour toute DF f de F, F - {f} n'est pas quivalente F
Toute DFE des attributs est dans la fermeture transitive F+ de F.
Remarque :

On montre que tout ensemble de DFE, quelqu'il soit, a une


couverture minimale qui n'est gnralement pas unique.

Exemple :

AVION(NUM_AV, NOM_AV, CAP_AV, LOC_AV)

Ensemble des DFE et fermeture transitive :


{NUM_AV NOM_AV, NUM_AV LOC_AV, NOM_AV CAP_AV,
NUM_AV CAP_AV}
Couverture minimale :
{NUM_AV NOM_AV, NUM_AV LOC_AV, NOM_AV CAP_AV}

3.5.

NOTION DE CLE ET TROISIEME FORME NORMALE

3.5.1. CLE DE RELATION


Une cl de relation R(A1, ..., An) est un sous-ensemble X des attributs tel que :
X A1, A2, ..., An
Il n'existe pas de sous-ensemble Y X tel que Y A1, A2, ..., An
Exemple :

Dans la BDD AVION, NUM_VOL est une cl de la relation VOL.

Remarques

1 : Toute relation possde au moins une cl (A1, ..., An A1, ..., An).
2 : Une relation peut avoir plusieurs cls :
- Cl primaire (primary key)
- Cls candidats

3.5.2. LES TROIS PREMIERES FORMES NORMALES


CODD : Dcomposition des relations sans perte.

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 20/60

 Premire forme normale


Une relation est en 1NF sit tout attribut est atomique.
Exemple :

PERSONNE(AGE, ADRESSE) n'est pas en 1NF si


ADRESSE(VILLE, RUE, NUMERO).

 Deuxime forme normale


Une relation est en 2NF ssi :
La relation est en 1NF
Tout attribut n'appartenant pas une cl ne dpend pas que d'une partie de cette cl.
Exemples

1:

Cl primaire NUM_VOL

2:

Cl (NUM_AV, H_D)
car

alors la relation VOL est en 2NF.

alors la relation VOL n'est pas en 2NF


NUM_AV
NOM_AV
CAP_AV
LOC_AV
Relation VOL dcompose en 2 relations :
AVION(NUM_AV, NOM_AV, LOC_AV, CAP_AV) en 2NF
VOL1(NUM_VOL, NUM_AV, NOM_PIL, NUM_PIL, ADR_PIL, H_D, H_A,
V_D, V_A) en 2NF

 Troisime forme normale


Une relation est en 3NF ssi :
La relation est en 2NF
Tout attribut n'appartenant pas la cl ne dpend pas d'un attribut non cl.
Exemples

1:

PILOTE(NUM_PIL, NOM_PIL, ADR_PIL) en 3NF.

2:

AVION(NUM_AV, NOM_AV, LOC_AV, CAP_AV) n'est pas en 3NF


car NOM_AV CAP_AV.

On dcompose :
TYPE(NOM_AV, CAP_AV) en 3NF
AVION1(NUM_AV, NOM_AV, LOC_AV) en 3NF

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 21/60

3.5.3. PROPRIETES DES DECOMPOSITIONS EN 3NF


C'est une dcomposition en {R1, R2, ..., Rp} d'une relation R qui prserve les DF est telle que la
fermeture transitive des DF de R est la mme que celle de l'union des DF de {R1, R2, ..., Rp}.
Exemple :

Si l'on dcompose maladroitement la relation AVION en


AVION1(NUM_AV, NOM_AV)
AVION2(NOM_AV, CAP_AV, LOC_AV)
Cette dcomposition ne prserve pas les DF.
On perd NUM_AV LOC_AV

Proprits :
La dcomposition prserve les DF.
La dcomposition est sans perte.
Cette dcomposition n'est pas forcment unique.

3.5.4. ALGORITHME DE DECOMPOSITION EN 3NF


Entre : Schmas ne contenant que des DF.
Sortie :

Schma (R1, R2, ..., Rn) avec Ri en 3NF, quel que soit i.

Etape 1
Soit F l'ensemble des DF. Pour toute DF f, rendre f lmentaire.
Soit F' l'ensemble obtenu.
Etape 2
Rechercher une couverture minimale de F' note MIN(F').
Etape 3
Partitionner MIN(F') en groupes F'1, F'2, ..., F'k tels que toutes les DF d'un mme groupe aient la
mme partie gauche.
Etape 4
Pour chaque groupe F'i, i =1, ..., k, construire un schma contenant les attributs de F'i et les DF
de F'i.
Les lments isols (non dtermins) sont regroups dans une relation dont ils constituent la cl.
Application de l'algorithme :

Etape 1
Toutes les DF sont lmentaires (voir graphe des DF prcdent).
Etape 2 et 3
Couverture minimale :
NUM_VOL NUM_AV
NUM_VOL H_A
NUM_VOL H_D

NUM_VOL NUM_PIL
NUM_VOL V_D
NUM_VOL V_A

NUM_AV NOM_AV

NUM_AV LOC_AV

NOM_AV CAP_AV
NUM_PIL NOM_PIL

Groupe F'1

Groupe F'2
Groupe F'3

NUM_PIL ADR_PIL Groupe F'4

Etape 4
On a les relations en 3NF suivantes :
Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 22/60

R1(NUM_VOL, NUM_AV, NUM_PIL, H_D, H_A, V_D, V_A)


R2(NUM_AV, NOM_AV, LOC_AV)
R3(NOM_AV, CAP_AV)
R4(NUM_PIL, NOM_PIL, ADR_PIL)
Les relations en 3NF comportent encore des redondances.
Autre exemple :
CODE_POSTAL(VILLE, RUE, CODE) en 3NF, avec la DFE CODE VILLE.

CP

VILLE
Paris
Paris
Paris
Paris

RUE
Arras
Jussieu
Monge
Le pic

CODE
75005
75008
75005
75008

3.5.5. FORME NORMALE DE BOYCE-CODD


Une relation est en BCNF ssi les seules DFE sont celles dans lesquelles une cl dtermine un
attribut.
Proprites :
Toute relation a une dcomposition en BCNF qui est sans perte.
Par contre, toute dcomposition en BCNF ne prserve pas les DF.
Exemple :

CP(VILLE, RUE, CODE) avec la DFE CODE VILLE


se dcompose en :
VILLE_CODE(VILLE, CODE)

VILLE_CODE

VILLE
Paris
Avignon

CODE
75002
84000

RUE_CODE(RUE, CODE)

RUE_CODE

RUE
Arras
Jussieu
Halles
Halles
Pasteur

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

CODE
75005
75005
75001
84000
84000

Page 23/60

3.6.

DEPENDANCES MULTI VALUEES ET 4NF


Soit la relation : ETUDIANT(NUM_ET, COURS, SPORT) en BNCF.

NUM_ET
100
100
100
100

COURS
SGBD
SGBD
PROG
PROG

SPORT
Tennis
Plonge
Tennis
Plonge

Soit R(A1, A2, ..., An) un schma de relation et X et Y des sous-ensembles de


{A1, ..., An}. On dit
que X multidtermine Y (not X Y) si tant donn des valeurs de X, il y a un ensemble de valeurs
associes de Y, et cet ensemble est indpendant des autres attributs Z = R - X - Y de la relation R.
(X Y) { (xyz) et (xy'z') R (xy'z) et (xyz') R}
Exemples :

X = {NUM_ET} Y = {COURS}
NUM_ET COURS et

Z = {SPORT}
NUM_ET SPORT

(100 SGBD Tennis) et (100 PROG Golf)


(100 PROG Tennis) et (100 SGBD Golf)

3.6.1. PROPRIETES DES DEPENDANCES MULTI-VALUEES

Les Dpendances Fonctionnelles sont des cas particuliers des Dpendances Multi-values :
Dm :

si X Y, alors par def :

xyz et x' y' z' R


et y = y'
donc x y' z et xyz R X Y

La complmentation :

si X Y, alors par def : X R - X - Y

Augmentation :

si ((X Y) et V W)) XW YV

Dm :

Transitivit :
Dm :

(x w x y v z) et (x w y' v' z') R


or V W v' = v
(x w x y z) et (x w y' z') R
or X Y, alors (x y w z') et (x y' w z) R
XW YV

Union :

(X Y) et (Y Z) (X Z - Y)

si Y Z = la transitivit est vrifie.


sinon, la proprit se dmontre...

si (X Y) et (X Z) X YZ

(ensemble des attributs de Y et Z)

 Une Dpendance Multi-value Elmentaire est une DM (X Y) o :


Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 24/60

- Y n'est pas vide et Y est disjoint de X.


- Il n'existe pas de DM X' Y' telle que X' X et Y' Y.

3.6.2. QUATRIEME FORME NORMALE : 4NF


Une relation est en 4NF ssi les seules DME sont celles dans lesquelles une cl (entire)
dtermine un attribut.

Du fait qu'une DF est une DM, une relation en 4NF est en BCNF.

Exemple :

ETUDIANT(NUM_ET, COURS, SPORT)

Cette relation est constitue des deux DME suivantes :


NUM_ET COURS
NUM_ET SPORT

ce ne sont pas des DME de la forme cl attribut

Donc la relation n'est pas en 4NF, il faut la dcomposer :

On dmontre que pour toute relation, il existe une dcomposition (pas forcment unique) en
relations en 4NF qui est sans perte.

Exemple de dcomposition :

ETUDIANT_COURS(NUM_ET, COURS) en 4NF


ETUDIANT_SPORT(NUM_ET, SPORT) en 4NF

3.6.3. ALGORITHME DE DECOMPOSITION EN 4NF


Entre : Schma R(X) contenant des DF et des DM.
Sortie : Schma de plusieurs relations {R1, R2, ..., Rn} avec les Ri en 4NF.

ETAPE 1 (initialisation) : S = {R}


ETAPE 2 (itration) :

Si T est un schma de S qui n'est pas en 4NF, chercher une DM non triviale
telle que W ne contienne pas une cl de T.

WV de T

Remplacer le schma T dans S par deux schmas T1(W,V) et T2(X - V)


munis des dpendances drives de la fermeture du schma T.

Rpter l'tape 2 tant qu'il existe dans S une relation qui n'est pas en 4NF.
ETAPE 3 (limination de la redondance) : Pour tout couple (Ri, Rj) de S, si Xi Xj, alors liminer Ri
de S.

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 25/60

3.7.

DEPENDANCES DE JOINTURE ET 5NF


Les relations en 4NF comportent encore des redondances et des anomalies.

Exemple :

VINS

VIN(BUVEUR, CRU, PRODUCTEUR)

BUVEUR
Yves
Yves
Henri
Paul

CRU
Chablis
Chablis
Volnay
Chablis

PRODUCTEUR
Claude
Nicolas
Nicolas
Nicolas

Cette relation est en 4NF mais comporte des redondances (ex: Nicolas produit du Chablis).

3.7.1. DEPENDANCES DE JOINTURE


Soit R(A1, A2, ..., An) un schma de relation et X1, X2, ..., Xm des sous-ensembles de {A1, A2,
..., An}.
On dit qu'il existe une dpendance de jointure DJ note : {XY, XZ} , si R est la jointure de ses
projections sur X1, X2, ..., Xm.
R = X1(R) X2(R) ... Xm(R)

 Les DM sont des cas particuliers de DJ. En effet, R(X, Y, Z) vrifiant la DM


XY, alors XZ satisfait la jointure {XY, XZ}.

Exemple :

VINS

R1

La relation VINS peut se dcomposer ainsi :


{BUVEUR CRU, BUVEUR PRODUCTEUR, CRU PRODUCTEUR}

BUVEUR
Yves
Yves
Henri
Paul
CRU
Chablis
Chablis
Volnay

R2

BUVEUR
Yves
Henri
Paul

R3

BUVEUR
Yves

CRU
Chablis
Chablis
Volnay
Chablis

PRODUCTEUR
Claude
Nicolas
Nicolas
Nicolas

PRODUCTEUR
Claude
Nicolas
Nicolas
CRU
Chablis
Volnay
Chablis

PRODUCTEUR
Claude

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 26/60

Yves
Henri
Paul

Nicolas
Nicolas
Nicolas

Or R est la jointure de ses projections.

R1
R2

BUVEUR
Yves
Yves
Henri
Paul
Paul

CRU
Chablis
Chablis
Volnay
Chablis
Chablis

PRODUCTEUR
Claude
Nicolas
Nicolas
Nicolas
Claude

R1
R2
R3

BUVEUR
Yves
Yves
Henri
Paul

CRU
Chablis
Chablis
Volnay
Chablis

PRODUCTEUR
Claude
Nicolas
Nicolas
Nicolas

3.7.2. CINQUIEME FORME NORMALE : 5NF


Les DJ sont induites par les cls candidates.
A titre d'exemple, soit R(A1, A2, A3, A4) , une relation ayant A1 et A2 comme cls candidates. Alors il
est possible de dcomposer la relation en :
{A1 A2, A1 A3, A1 A4} ou {A2 A1, A2 A3, A2 A4}

La connaissance des cls implique la connaissance de DJ.


PROCEDURE IMPLIQUE qui rpond vrai ou faux la question : est-ce qu'une DJ est implique par un
ensemble de cls K d'une relation R(X) ?

Fonction IMPLIQUE(K, DJ)


DJ : {X1, X2, ..., Xm}
K est un ensemble de cls, avec K1 X, K2 X, ..., KrX
soit S = {X1, ..., Xm}

Tant que il existe Ki, Y S et Z S tels que Ki Y Z


Faire
enlever Y et Z de S
ajouter Y Z dans S
Fin faire

Fin tant que


Si X S

alors IMPLIQUE := vrai;


sinon IMPLIQUE := faux;

Fin IMPLIQUE

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 27/60

Remarque: Une relation R est en 5NF si et seulement si toute DJ est implique par les cls
candidates de R.

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 28/60

4. LANGAGES DE MANIPULATION DE DONNEES (LMD)


4.1.

INTRODUCTION
Un LMD est constitu de commandes qui permettent :
L'interrogation de la base de donnes.
La modification de la base (insertion, mise jour, ...).
La programmation partir d'un langage Hte.
Il existe trois types de langages :
Langages fonds sur l'algbre relationnelle (SQL).
Langages fonds sur le calcul des prdicats et le calcul de tuples
(QUEL).
Langages fonds sur le calcul des prdicats et le calcul relationnel de
domaines (DRC).

4.2.

L'ALGEBRE RELATIONNELLE

4.2.1. OPERATIONS DE BASE


Ces oprations binaires (union, diffrence, produit cartsien) ou unaires (projection, restriction)
permettant de gnrer les autres (jointure, intersection, division).

4.2.1.1.

UNION DE DEUX RELATIONS

L'union de deux relations de mme schma R et S est une relation T de mme schma
contenant l'ensemble des tuples appartenant R ou S.

Notations:

T=RS
T = UNION (R,S)

Exemple:

VIN1

N
100
110
120

CRU
Chablis
Mdoc
Bourgogne

AN
1976
1978
1977

DEGRE
13
12
12

VIN2

N
100

CRU
Chablis

AN
1976

DEGRE
13

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 29/60

VIN1 VIN2

4.2.1.2.

200

Beaujolais

1979

11

N
100
110
120
100
120

CRU
Chablis
Mdoc
Bourgogne
Chablis
Beaujolais

AN
1976
1978
1977
1976
1979

DEGRE
13
12
12
13
11

DIFFERENCE DE DEUX RELATIONS

La diffrence R -S de deux relations R et S de mme schma est une relation T de mme


schma contenant les tuples appartenant R et n'appartenant pas S.
Notations:

T=R-S
T = MINUS (R,S)

Exemple : VIN1 - VIN2

VIN1 - VIN2

4.2.1.3.

N
110
120

R
CRU
Mdoc
Bourgogne

S
AN
1978
1977

DEGRE
12
12

PRODUIT CARTESIEN

Le produit cartsien de deux relations R et S de schmas


quelconques est une relation T ayant pour attribut la concatnation des
attributs de R et de S, et dont les tuples sont toutes les concatnations
d'un tuple de R un tuple de S.
Notations :

T=RS
T = TIMES(R, S)
T = PRODUCT(R, S)

Exemple :

VIN3

N
110
120

CRU
Mdoc
Mcon

AN
1978
1977

AGRICULTEUR

NOM
Paul
Ren

VILLE
Marseille
Avignon

REGION
B. du Rhne
Vaucluse

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

S
DEGRE
12
12

Page 30/60

N
110
110
120
120

CRU
Mdoc
Mdoc
Mcon
Mcon

AN
1978
1978
1977
1977

DEGRE
12
12
12
12

NOM
Paul
Ren
Paul
Ren

VILLE
Marseille
Avignon
Marseille
Avignon

REGION
B.d.R
Vaucluse
B.d.R
Vaucluse
R'

4.2.1.4.

PROJECTION

La projection d'une relation R(A1, A2, ..., An) sur les attributs Ai1,...., Aip
(ij ik et p < n) est une relation R'(Ai1, Ai2, ..., Aip) dont les tuples sont obtenus
par limination des valeurs de R n'appartenant pas R' et par suppression des
tuples en double.
Notations :

Ai1 , ..., Aip

Ai1, Ai2, ..., Aip (R) R(Ai1, Ai2, ..., Aip)


PROJECT(R/Ai1, Ai2, ..., Aip)

Exemple :

VINS

N
110
120
100
110

CRU
Mdoc
Mcon
Chablis
Bourgogne

AN
1978
1977
1976
1977

DEGRE
12
12
13
12

AN
1978
1977
1976

(VINS)

4.2.1.5.

DEGRE
12
12
13

AN,

DEGRE

RESTRICTION

Une formule de qualification atomique ou critre de slection atomique est de la forme Ai C, Ai


attribut, C constante, un oprateur parmi {< = > <= >= }.
Exemple :

DEGRE > 12
CRU = "Chablis"

La formule de qualification ou critre de slection est construite partir des qualifications atomiques et
des connecteurs logiques ET ou OU (priorit ET > priorit OU).
Exemple :

CRU = "Chablis"
ET
DEGRE < 12
(CRU = "Chablis" OU CRU = "Bourgogne") ET DEGRE < 12

La restriction de la relation R par la qualification Q est une relation R' de mme schma
dont les tuples sont ceux de R qui satisfont Q.
Notations :

Q (R)
R [Q]
RESTRICT(R/Q)

Exemple :

Q = AN = 1977

4.2.2. OPERATIONS ADDITIONNELLES


Dfinition:

Une qualification atomique multi-attributs est du type Ai Aj.

Exemple: CRU = VILLE


Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 31/60

Une qualification multi-attributs est construite partir des qualifications atomiques et des
connecteurs logiques.

4.2.2.1.

JOINTURE

La jointure de deux relations R et S selon une qualification Q est l'ensemble des tuples du
produit cartsien RS qui satisfont Q.
Notations:

RS

JOIN [R,S]
R S [Q]

Exemple: Jointure sur CRU = VILLE

VIN9

N
120
200
210

CRU
Mcon
Saumur
Saumur

VITICULTEUR

N
120
200
210

CRU
Mcon
Saumur
Saumur

NOM
Paul
Pierre
Jacques

ANNEE
1978
1977
1979

ANNEE
1978
1977
1979

DEGRE
12
12
14

VILLE
Tavel
Mcon
Saumur
DEGRE
12
12
14

REGION
Rhne
Bourgogne
Loire

NOM
Pierre
Jacques
Jacques

VILLE
Mcon
Saumur
Saumur

REGION
Bourgogne
Loire
Loire

Dfinitions:
On parle d'quijointure de R et S avec Ai et Bj si (Ai = Bj).
On parle de jointure de R et S avec Ai et Bj si (Ai Bj).
L'autojointure de R selon Ai est la jointure de R avec elle-mme selon (Ai = Ai).
La jointure naturelle de R et S est l'quijointure de R et S selon tous les attributs de
mme nom suivie d'une projection (On ne trouve pas deux colonnes tant composes des mmes
lments aprs jointure comme cela est le cas dans l'exemple prcdent).
La semi-jointure de la relation R par la relation Q est l'ensemble des tuples de R
participant la jointure de R et S selon Q.
Notation:

4.2.2.2.

R S

INTERSECTION

L'intersection de deux relations R et S de mme schma est une relation T de mme schma
contenant les tuples appartenant la fois R et S.

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 32/60

Notations:

RS
INTERSECT (R,S)

R S = R - (R - S)
R S = S - (S - R)

4.2.2.3.

DIVISION

Le quotient de la relation R(A1, A2, . . ., An) par la relation S(A p+1, . . ., An) est la relation T(A1,
. . ., Ap) forme de tous les tuples qui concatns avec chacun des tuples de S donne toujours un tuple
de S.
Notation: R S

T
DIVISION (R,S)

Si ai est une valeur de l'attribut Ai alors T est dfinie par:


T= { (a1 , . . ., ap) (ap+1 , . . ., an) S,
(a1 , . . ., ap, ap+1, . . ., an) R }

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 33/60

Exemple:

VIN10

CRU
Mcon
Mcon
Mcon
Saumur
Saumur
Chablis

TYPE

ANNEE
1977
1979

ANNEE
1977
1979
1980
1977
1979
1979

DEGRE
12
14
12
12
14
14

DEGRE
12
14

Quotient de VIN10 par TYPE:

CRU

4.2.2.4.

CRU
Mcon
Saumur

EXEMPLE D'APPLICATION

Soient les relations:

VIN (NUM_VIN, CRU, ANNEE, DEGRE)


BUVEURS (NUM_BUV, NOM, ADRESSE)
ABUS (NUM_BUV, NUM_VIN, QUANTITE)

Problme: Quels sont les noms et


adresses des buveurs ayant bu plus de dix
bouteilles de Chablis 1979 et quel est le
degr de ce vin ?

NOM
ADRESSE
DEGRE

NB

NB
BUVEUR

NB
DEGRE

NV

NV

Q>10

ABUS

CRU = CHABLIS et ANNEE = 1979

VINS

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 34/60

5. ORACLE: ARCHITECTURE FONCTIONNELLE


SQL*PLUS
PRO *

SQL

SQL*FORMS

DICTIONNAIRE
UTILITAIRES

SQL*CALC

NOYAU

SQL*REPORT

SQL*MENU
SQL*GRAPHS

5.1.

NOYAU
Connexion avec d'autres noyaux de Bases de Donnes rparties
Vrifications d'intgrit
Vrification de la cohrence de donnes
Contrle des accs concurrents
Gestion de la confidentialit des donnes
Reprise sur panne
Excution optimale des requtes
Gestion des acclrateurs (index, cluster)
Stockage physique des donnes

5.2.

DICTIONNAIRE DES DONNEES


C'est une mta base qui dcrit dynamiquement la Base de Donnes.

clusters, . . .)

Description des objets (tables, vues, index, squences, synonymes,


Utilisateurs, leurs droits, mots de passe, . . .

Utilisations du dictionnaire:
Documentation
Administration de la Base de Donnes

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 35/60

5.3.

5.4.

LA COUCHE SQL
LDD:

Cration, modification, suppression des structures de donnes.

LMD:

Consultation, insertion, modification et suppression des donnes.

ARCHITECTURE REPARTIE D'ORACLE


Il y a deux types de rpartition:
Rpartition des applications: Clients

Serveur
SQL*Net

Rpartition des donnes: Sites diffrents contenant des donnes.

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 36/60

6. ELEMENTS DE SQL
6.1.

INTRODUCTION

6.1.1. NOTATIONS
[ exp ]
...
{ exp exp exp }
exp

:
:
:
:

l'expression est optionnelle.


suite d'lments du mme type.
choix entre plusieurs expressions.
valeur par dfaut.

6.1.2. RELATIONS DE REFERENCE


AVION (NUM_AVION, NOM_AVION, CAPACITE, LOCALISATION)
PILOTE (NUM_PILOTE, NOM_PILOTE, ADRESSE)
VOL

(NUM_VOL,
NUM_AVION,
HEURE_DEP, HEURE_ARR)

NUM_PILOTE,

VILLE_DEP,

VILLE_ARR,

DUAL
SQL > SELECT sysdate FROM dual;
SQL > SELECT ascii ('Q') FROM dual;

6.2.

{retourne la date systme}


{retourne le code ascii du caractre Q}

OBJETS DE LA BASE

BASE DE DONNEES
(DATABASE)

Fichier dans lesquels ORACLE mmorise les


donnes.

TABLE
(TABLE)

Structure de mmorisation des donnes.


Exemple: AVION, VOL, PILOTE.

COLONNE
(COLUMN)
LIGNE
(ROW)
VALEUR
(VALUE)
VUE
(VIEW)

Attribut.
Exemple: capacit, ...
Reprsente une entit unique.
Ordre des lignes indiffrent.
Ordonner avec ORDER BY.
Donne l'intersection d'une ligne et d'une colonne.
Une valeur peut tre nulle (i.e.: Il n'y a pas de valeur
cet endroit).
Reprsentation logique d'une table constitue soit
par une autre table, soit par une combinaison
d'autres tables (ou tables de base).

Les donnes sont drives des tables de base


C'est une table virtuelle!
Les vues sont utilises comme des tables.

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 37/60

Si une vue est constitue d'une seule table, les


oprations effectues sur la vue affectent la table de
base.
Utilisation des vues:
Ajouter un niveau de scurit pour limiter
les oprations des utilisateurs.
Constituer des donnes complexes partir
de plusieurs tables.
Modifier les noms d'attributs.

INDEX
(INDEX)

Permet d'accder plus rapidement aux lignes ou de


forcer l'unicit des lignes.

CLUSTER
(CLUSTER)

Permet de structurer les donnes d'une ou de


plusieurs tables en liant physiquement des groupes
de lignes.

CLE PRIMAIRE
(PRIMARY KEY)

Utilise pour identifier de manire unique une ligne.

CLES ETRANGERES
(FOREIGN KEYS)

Reprsentent des relations entre les tables.

CLE UNIQUE
(UNIQUE KEY)

Cl primaire telle que :


Une colonne dfinie comme cl unique doit
avoir des valeurs diffrentes.
nulle.
table.

Une cl unique ne peut pas avoir une valeur


Il peut y avoir plusieurs cls uniques par

Une cl unique peut comporter plusieurs


colonnes.

CONTRAINTE
(CONSTRAINT)

Les contraintes sont imposes soit une colonne


soit une table entire.

SEQUENCE
(SEQUENCE)

Objet utilis pour gnrer des entiers.

SYNONYME
(SYNONYM)

Nom donn un objet qui permet de le rfrencier.

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 38/60

6.3.

SYNTAXE DES NOMS D'OBJETS


1.

Le nom d'un objet comporte au plus 30 caractres.


(8 pour les noms de la base)

2.

Le nom peut contenir le caractre quote ( ' ).

3.

Le nom peut tre crit en majuscules ou en minuscules, c'est la mme

4.

Un nom doit commencer par une lettre.

5.

Un nom contient les caractres: lettres, chiffres, et '.

6.

Un nom ne doit pas tre un identificateur d'ORACLE.

7.

Un nom ne doit pas tre un identificateur pour un objet dj utilis.

chose.

8.
Pour un objet qui est dsign au moyen d'un prfixe (ORAC1.VOL) on
insrer des blancs autour du point (ORAC1 . VOL).

peut

9.
Un nom peut contenir n'importe quel caractre s'il est inclu entre
guillemets ( " ).
Exemples:

6.4.

vol, nom_de_pilote, orac1 . avion, "Date de naissance"

TYPE DE DONNEES

6.4.1. TERMES
LITERAL
(LITERAL)

Valeur constante.
Chaque litral a un type.

VARIABLE
(VARIABLE)

Dsigne un litral quelconque.

6.4.2. CARACTERES
CHAR ou VARCHAR

Tout caractre imprimable.


Une colonne dfinie
255 caractres.

CHAR (n)

comme

CHAR

au

plus

Il y a n caractres dans la colonne.

6.4.3. TEXTES
Syntaxe: ' [ caractres] . . . '
Maximum : 255 caractres.
Le caractre quote ( ' ) doit tre dupliqu.
Exemples:

'oracle.dbo'
'aujourd''hui c''est Jeudi'

6.4.4. NOMBRES
6.4.4.1.

DEFINITION DE COLONNES

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 39/60

Syntaxe: NUMBER [ ( prcision [ , dcimal ] ) ]


Si rien n'est indiqu, la longueur maximale est de 38 chiffres.
"Prcision" indique le nombre total de chiffres.
"dcimal" indique le nombre total de chiffres aprs la virgule.
Exemples:

SQL > CREATE TABLE table1


(colonne1
NUMBER(5)
(colonne2
NUMBER(15,2));

6.4.5. ECRITURE DES NOMBRES ENTIERS


Syntaxe: [ + / - ] chiffre [ chiffre . . . ] [ K | M ]
K multiplie par 1024.
M multiplie par 1048576.
Un entier est reprsent sur 38 chiffres.
Exemples:

6.4.5.1.

-255
29K
6M

NOMBRES DECIMAUX

Syntaxe: [ + / - ] chiffre [ chiffre . . . ] [ chiffre . . . ] [ { Exp | Mult } ]


Mult [ K | M]
Exp { e | E } [ + | - ] chiffre [ chiffre . . . ]
Exemples:

6.4.5.2.

634
7E2
25e-03
256K
-57.36e-12

DATES

Syntaxe: SYSDATE
Centurie, anne, mois, jour, heure, minute, seconde
Le format standard pour l'heure est: 12:00:00 am
Le format standard pour la date est: DD-MMM-YY
05-SEP-91

6.4.5.3.

CONVERSIONS ENTRE TYPES DE DONNEES


nombre caractres
date caractres

TO_char
TO_number
TO_date

6.4.5.4.

chane de chiffres nombre


caractres date
nombre date

VALEURS NULLES

IS NULL
IS NOT NULL
Les conditions values sur une valeur NULLE sont affectes FALSE.

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 40/60

6.5.

OPERATEURS

6.5.1. OPERATEURS ARITHMETIQUES


Oprateur

Fonction

()

forcer la priorit

oprateur unaire

Exemple
select (x+y) / (x-y)
where x < -2

/
+

where x > y / 2
where y > x - 2

oprateur binaire

6.5.2. OPERATEURS SUR LES CHAINES DE CARACTERES


Oprateur

Fonction

Exemple

concatnation de chanes
(255 caractres maximum)

select 'nom' nom

6.5.3. OPERATEURS DE COMPARAISON


(rsultat : TRUE, FALSE)
Oprateur

Fonction

Exemple

()

force l'valuation

not (a=1 or b=1)

galit

where cap = 300

!= ^= <
<>

ingalit

where cap != 300

>

suprieur

where cap > 300

<

infrieur

where cap < 300

>=

suprieur ou gal

where cap >= 300

<=

infrieur ou gal

where cap <= 300

IN

appartenance une liste


ANY

where x in ('A'...'Z')

NOT IN

non-appartenance une liste


!= ALL

ANY

comparer une valeur avec


celles obtenues comme
rsultat d'une sous question

where loc = any


(select loc from
avion where cap>300)

ALL

comparer une valeur avec


toutes celles d'une liste
obtenues par une sousquestion

where cap > all


(select cap from
avion where cap>300)

[NOT]
BETWEEN X and Y

[non] compris entre X et Y

where x between
1 and 9

where x not in (1,2)

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 41/60

[NOT] EXISTS

TRUE s'il existe ou n'existe


pas une ligne rpondant
une question

[NOT] LIKE

[non] concidence avec la


chane qui suit
( "%" remplace toute chane
"_" remplace 1 caractre)

where nomav like


'air %'
(airbus A300)
(air___A300)

IS [NOT] NULL

teste si une valeur est nulle


ou non

where x is null

where exists
(select numpil from
avion where adr='Pau')

6.5.4. OPERATEURS LOGIQUES


()

force l'valuation

not (a = b and c = d)

NOT

ngation

where not (x is null)

AND

conjonction

where x =1 and y = 1

OR

disjonction

where x = 1 or y = 1

UNION

regroupe toutes les lignes


distinctes de 2 questions

select ... union select ...

INTERSECT

donne les lignes distinctes


communes aux 2 questions

select.. intersect..select

MINUS

donnes les lignes


distinctes de la 1re question
qui ne sont pas dans la 2me

select ...minus select ...

6.5.5. OPERATEURS PARTICULIERS


Oprateur

Fonction

Exemple

slection de toutes les


colonnes d'une table

select from avion ;

compte toutes les lignes o


"exp" n'est pas nulle

select count(cap) from


avion ;

COUNT()

compte toutes les lignes


une seule fois

select count() from


avion ;

DISTINCT

donne les lignes une seule


fois

select distinct nomav


from avion ;

COUNT(exp)

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 42/60

6.6.

FONCTIONS

6.6.1. FONCTIONS NUMERIQUES SUR UNE LIGNE


ABS
Exemple :

abs(n)

valeur absolue de n

SQL> select abs(-15) "valeur absolue" from dual;


valeur absolue
15

CEIL

ceil(n)

plus petit entier infrieur ou gal n

FLOOR

floor(n)

plus grand entier suprieur ou gal n

MOD

mod(n,m)

n modulo m

POWER

power(n,m)

nm

ROUND

round(n [,m])

arrondi avec 0 ou m chiffres aprs le point

SIGN

sign(n)

-1 si n < 0 ; 0 si n = 0 ; 1 si n > 0

SQRT

sqrt(n)

TRUNC

trunc(n [,m])

n
n est tronqu avec 0 ou m dcimales

6.6.2. FONCTIONS POUR LES CARACTERES SUR UNE LIGNE


CHR
Exemple :

chr(n)

caractres dont la valeur ASCII est n

SQL> select chr(75) "caractre" from dual;


caractre
K

INITCAP

initcap(c)

crit la chane avec une majuscule pour le 1er car.

LOWER

lower(c)

chane crite en minuscules

LPAD

lpad(c1 ,n [, c2])

la chane c1 est complte gauche jusqu' la


longueur n par des occurrences de c2 (des blancs

si c2 est omis).

LTRIM

ltrim(c [,s])
supprime les occurrences de s de la partie
gauche de c (blancs si s est omis).

RPAD

rpad(c1 ,n [, c2])
si c2 est omis).

la chane c1 est complte droite jusqu' la


longueur n par des occurrences de c2 (des blancs

RTRIM

rtrim(c [,s])

SOUNDEX

soundex(c)
retourne des chanes de caractres qui se
prononcent de la mme manire que c.

Exemple :

supprime les occurrences de s de la partie droite


de c (blancs si s est omis).

SQL> select nompil from pilote where (nompil) = soundex('jake');


nompil

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 43/60

Jacques

SUBSTR

substr(c, m, [,n])

retourne la partie de la chane c commenant


partir du caractre la position m et de longueur
n (jusqu' la fin si n est omis).

TRANSLATE translate(c, s, r)

change dans c toutes les occurrences de s en r.

UPPER

la chane c est crite en majuscules.

upper(c)

6.6.3. FONCTIONS QUI TRANSFORMENT UN CARACTERE EN VALEUR


NUMERIQUE
ASCII

ascii(c)

renvoie la valeur ascii du caractre c.

INSTR

instr(c1,c2[,n[,m]])

position de la mime occurrence de c2 dans


c1 commenant la position n (1 si n et m

omis).

LENGTH

length(c)

longueur de c

6.6.4. FONCTIONS QUI REGROUPENT LES LIGNES DE RESULTAT


AVG

avg([distinctall] col)
nulles d'une colonne.

calcule la moyenne des valeurs non

COUNT

count([distinctall] exp)
pas nulle.

calcule le nombre de lignes o exp n'est

MAX

max([distinctall] exp)
accessibles par exp.

calcule le maximum des valeurs

MIN

min([distinctall] exp)
accessibles par exp.

calcule le minimum des valeurs

STDDEV

stddev([distinctall] col)
la colonne.

cart type entre les valeurs non nulles de

SUM

sum([distinctall] col)

somme entre les valeurs non nulles de la


colonne.

VARIANCE

variance([distinctall] col)

variance entre les valeurs non nulles de la


colonne.

COUNT()

6.6.5. CONVERSION DES TYPES DE DONNEES


6.6.5.1.

CONVERSION NOMBRE CARACTERE

TO_CHAR to_char(n [,fmt])


Exemple :

TO_DATE

SQL> select to_char(17145,'$099,999') "caract" from dual;


caract
$017,145
to_date(c [,fmt])

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 44/60

Exemple :

6.6.5.2.

SQL> insert into indices (date_promotion) select


to_date('may 1,1991','month dd, yyyy) from dual;

CONVERSION CARACTERE NOMBRE

TO_NUMBER

to_number(c)

squence de chiffres nombre

6.6.6. FONCTIONS POUR LES DATES


ADD_MONTH (d, n)

ajoute les mois n partir de la date d

LAST_DAY (d)

retourne la date du dernier jour du mois de d

MONTH_BETWEEN (d, e) nombre de mois entre les dates d et e


NEXT_DAY (d, c)

date du jour suivant c de la semaine d

SYSDATE

date du jour

ROUND (d [, format])

date arrondie

Exemples :

SQL> SELECT ROUND(TO_DATE('28-apr-91'), 'year')


"1er de l'an" from DUAL;
1er de l'an
01-JAN-92
SQL> SELECT TRUNC(TO_DATE('28-apr-91'),'year')
"1er de l'an" from DUAL;
1er de l'an
01-JAN-91

GREATEST (d1, d2)


LEAST (d1, d2)

date la plus rcente de d1 et d2


date la plus ancienne de d1 et d2

6.6.7. FONCTIONS UTILES


DECODE (exp, s1, r1 [s2, r2] ... [d]) Chaque fois que exp est gal si, ri est
retourn, sinon d est retourn.
SQL> SELECT nomav, DECODE(cap, 300, 'gros', 100, 'petit',
Exemple :
'moyen') from avion;
nomav cap
atr
b747
DC9

petit
gros
moyen

NVL (e1, e2)

si e1 est nul, NVL retourne e2, sinon e1

VID

entier identifiant l'utilisateur

USER

nom de l'utilisateur

VSIZE (exp)

nombre d'octets pour reprsenter une expression ORACLE

6.6.8. FORMATS

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 45/60

6.6.8.1.

NOMBRES

Caractre

Exemple

Description

9999
de la reprsentation.

9 est le nombre de caractres

0
$

0999
$9999

crit des 0 avant le nombre.


prfixe la valeur avec $.

B999

crit les 0 avec des blancs.

MI

9999MI

PR

9999PR

crit "" aprs les valeurs


ngatives.
valeurs ngatives crites entre
"<" et ">".

,
.

9,999
9.999

999V99
de 9 aprs V.
9.999EEEE

6.6.8.2.

multiplie par 10 fois le nombre


crit en notation scientifique

DATES

CC ou SCC

centurie, "S" prfixe avant J-C avec "."

YYYY ou SYYY anne sur 4 chiffres (1993)


YEAR ou SYEAR

anne sur 3 caractres.

YYY ou YY ou Y
Q

quart de l'anne (1 : jan .. mars , 2 : avril .. juin ... )

MONTH

mois sur 9 caractres

MON

mois sur 3 caractres

MM

mois en nombre (01 .. 12)

WW

semaine de l'anne (1 .. 52)

semaine des mois

DDD

jour de l'anne (1 .. 366)

DD

jour du mois (1 .. 31)

DAY

nom du jour sur 9 caractres

DY

abrg du jour sur 3 caractres

nombre de jours depuis le 1 jan 4712 B_C

AM / PM
HH24

heure du jour (1 .. 24)

HH ou HHR

heure du jour (1 .. 12)

MI

minutes (0 .. 59)

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 46/60

SS

secondes (0 .. 59)

.SSSS

secondes aprs minuit (1 .. 863999)

/. , .

ponctuation dans le rsultat

" ... "

chane dans le rsultat

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 47/60

7. PRINCIPALES INSTRUCTIONS SQL


7.1.

CREATION D'OBJETS

7.1.1. CREATION D'UNE TABLE


CREATE TABLE [utilisateur.] table (colonne_def [,colonne_def] ...) [AS question]
avec colonne_def de la forme :
colonne

type de donnes

- colonne
- type de donnes
- DEFAULT exp
- contrainte
(dfinie par Oracle

[DEFAULT exp] [contrainte]

: identificateur
: charnumberdate
: exp est la valeur par dfaut de la colonne.
: limite les variations des valeurs pour la colonne.
: SYS_Cn , n tant le n de contrainte)
CONSTRAINT nom

NULL / NOT NULL


UNIQUE
CHECK condition

Ex : check(dname = upper(dname))

Exemples :
CREATE TABLE
Dpartement
( Depno
Depname
Loc

number(2),
char(14),
char(13));

CREATE TABLE
Employee
( Empno
number(4) not null,
Ename
char(10),
Job
char(9),
HGR
number(4),
Hiredate
date,
Sal
number(7,2) check (sal>40000) constraint
sal_min,
Comm
number(7,2),
depno number(2));

7.1.2. CREATION D'UNE VUE


CREATE VIEW
[utilisateur.] vue AS question [WITH CHECK OPTION
[CONSTRAINT contrainte]]
Exemple :
create view bons_avions AS select from Avion
where numav NOT IN (select numav from vol) with check option;

Contrainte
(oblige vrifier la contrainte si on entre un nouvel lment dans la vue).

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 48/60

7.1.3. CREATION D'UNE SEQUENCE


CREATE SEQUENCE [utilisateur.] squence
[INCREMENT BY n1]
[START WITH n2]
[MAXVALUE n3NOMAXVALUE]
def =10E27-1
[MINVALUE n4NOMINVALUE]
def =-10E27-1
(soulign pris par dfaut)
[CYCLENOCYCLE]
[CACHE n5NOCACHE]
[ORDERNOORDER]
NEXTVAL
CURRVAL

: valeur suivante
: valeur courante

sequence.NEXTVAL
Exemples : CREATE SEQUENCE numpil
start with 1
increment by 1
nomaxvalue;
INSERT INTO pilote
VALUES (numpil.NEXTVAL, 'frantz', 'Munich', 35000);

7.1.4. CREATION D'UN SYNONYME


CREATE [PUBLIC] SYNONYM [utilisateur.] synonyme FOR [utilisateur.] objet

7.2.

INSERTION DE DONNEES

INSERT INTO [utilisateur.] {tablevue} [(colonne [,colonne] ...)]


{VALUES (valeur [,valeur] ...)question}
Exemples :

INSERT INTO Dept VALUES (30, 'recherch', 'Avignon');


INSERT INTO Promotion (Ename, Job, Sal, Comm)
select Ename, Job, Sal, Comm from Employe
where Comm > 0.25sal;
INSERT INTO vol_paris

select numvol, numav, numpil, va, hd, ha


from vol where vd = 'Paris';

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 49/60

7.3.

SELECTION DE DONNEES

SELECT [ALLDISTINCT]
{[utilisateur.] {tablevue}.exp[c_alias]}
(c_alias = colonne alias)
[,{utilisateur.] {tablevue}.exp[c_alias]}] ...
FROM [utilisateur.] {tablevue}.[t_alias]
[,[utilisateur.] {tablevue}.[t_alias]] ...
[WHERE condition]
[CONNECT BY condition] [START WITH condition]
[GROUP BY exp [,exp] ... [HAVING condition]]
[{UNIONINTERSECTMINUS} question]
[ORDER BY {expposition} [ascdesc] [,{expposition} [ascdesc]] ... ]

(position de la colonne partir de laquelle s'effectue le tri}


Exemple :

Quels sont les vols en correspondance directe ou indirecte au dpart de


Paris ?

SELECT numvol, vd, va from vol connect by vd = PRIOR va start with vd = 'Paris';

7.4.

MODIFICATION DES DONNEES

7.4.1. MODIFICATION DES LIGNES DANS UNE TABLE


UPDATE [utilisateur.] {tablevue} [alias]
SET colonne = exp [colonne = exp] ...
WHERE condition;

UPDATE [utilisateur.] {tablevue} [alias]

SET (colonne [, colonne] ... ) = (question)


[, (colonne [, colonne] ... = (question) ... ]
WHERE condition;

- La clause WHERE est facultative.


- UPDATE permet de modifier une seule ligne, un ensemble de lignes ou
toutes les lignes d'une table.

Exemple :

UPDATE avion
SET cap = cap +10
WHERE nomav = 'ATR';

7.4.2. EFFACEMENT DE LIGNES DANS UNE TABLE OU DANS UNE VUE


DELETE FROM [utilisateur.] {tablevue} [t_alias]
WHERE condition;
Exemple :

DELETE FROM pilote where numpil = 5;

Si la condition WHERE n'est pas prcise, toutes les lignes de la table seront effaces !

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 50/60

7.5.

MODIFICATION DES OBJETS

7.5.1. MODIFICATION DES TABLES (INSERTION / SUPPRESSION DE


COLONNES)
AJOUTER UNE COLONNE
ALTER TABLE [utilisateur.] table
ADD (colonne colonne_def [, colonne colonne_def ...]);
Exemple : rajouter une colonne "salaire" la table PILOTE (si salaire > 20000)
ALTER TABLE pilote ADD (sal NUMBER (7, 2) CHECK sal > 20000
CONSTRAINT sal_num);

- La valeur des champs rajouts est nulle. Il n'est donc pas possible de prciser la condition
"NOT NULL".
- La (ou les) colonne rajoute est la dernire de la table.
- Attention, l'ajout d'une nouvelle colonne dans une table provoque une rorganisation (au
moins partielle) de la base de donnes. Si une vue a t dfinie au moyen de colonnes faisant partie
des modifications, elle doit tre supprime puis recre.

SUPPRIMER UNE COLONNE


ALTER TABLE [utilisateur.] table
DROP colonne;

ALTER TABLE [utilisateur.] table


DROP CONSTRAINT contrainte;

MODIFIER LA LARGEUR D'UN CHAMP


ALTER TABLE [utilisateur.] table
MODIFY (colonne colonne_def [, colonne colonne_def ...]);
Exemple : agrandir la colonne nompil et supprimer la contrainte sal_num.
ALTER TABLE pilote
MODIFY (nompil CHAR(20))
DROP CONSTRAINT sal_num;

7.5.2. MODIFICATION DES SEQUENCES


ALTER SEQUENCE [utilisateur.] sequence
[INCREMENT BY n]
[START WITH n]
[MAXVALUE nnom_maxvalue]
[MINVALUE nnom_minvalue]
[CYCLENOCYCLE]
[CACHE nNOCACHE]
[ORDERNOORDER];

7.5.3. CHANGEMENT DE NOM D'UN OBJET


RENAME ancien_nom TO nouveau_nom;
Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 51/60

!
7.6.

concerne les tables, vues et synonymes.

SUPPRESSION D'OBJETS

7.6.1. TABLES ET VUES


7.6.1.1.

TABLES

DROP TABLE [utilisateur.] table;

suppression possible si propritaire en DBA.

supprime - toutes les lignes de la table


- tous les privilges de la table
- invalide les vues et synonymes de la table

7.6.1.2.

VUES

DROP VIEW [utilisateur.] vue;

7.6.2. SUPPRIMER DES SYNONYMES


DROP [PUBLIC] SYNONYM [utilisateur.] synonyme;

7.6.3. SUPPRIMER DES SEQUENCES


DROP SEQUENCE [utilisateur.] squence;

On peut toujours revenir sur ce que l'on a fait :

7.7.

VALIDATION DES COMMANDES


COMMIT [WORK];

7.8.

valide toutes les commandes que l'on a faites

INVALIDATION DES OPRATIONS


ROLLBACK [WORK] [TO [SAVEPOINT] savepoint];

FIXER UN SAVEPOINT : SAVEPOINT savepoint;

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 52/60

8. SYNTAXE DES EXPRESSIONS


FORME 1 : colonne / constante ou valeur spciale
[table.] colonne
texte / nombre
nullsysdatemduser
(sequence.CURVALsequence.NEXTVAL)

FORME 2 : fonction
nom_fonction([distinctall] exp [, exp] ... )
Exemples :

length('Blake')
round(1234.56743)

FORME 3 : liste parenthse d'expressions (priorit dcroissante)


Priorit
(exp)
dcroissante + exp expprior exp
expexpexp/exp
exp+expexpexpexpexp

FORME 4 : combinaison d'expressions


(exp [, exp] ... )

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 53/60

9. SYNTAXE DES CONDITIONS


EVALUEES A TRUE OU FALSE
FORME 1 : comparaison avec une expression ou le rsultat d'une
question

<exp> <oprateur de comparaison> <exp>


Exemple :

ename = 'SMITH'

<exp> <oprateur de comparaison> <exp_liste>


<exp_liste> <gal ou diffrent> <question>

FORME 2 : comparaison avec l'un ou tous les membres d'une liste ou rsultat d'une
question

<exp> <op_comparaison> {anyall} (<exp> [, <exp>] ... )


<exp> <op_comparaison> {anyall} <question>
<exp_liste> <gal ou diffrent> {anyall} (<exp_liste>[, <exp_liste>] ... )
<exp_liste> <gal ou diffrent> {anyall} <question>

FORME 3 : test d'appartenance une liste sur une question


<exp> [NOT] in (<exp> [, <exp>] ... )
<exp> [NOT] in <question>
<exp_liste> [NOT] in (<exp_liste>[, <exp_liste>] ... )
<exp_liste> [NOT] in <question>

FORME 4 : test d'inclusion


<exp> [NOT] between <exp> and <exp>

FORME 5 :

<exp> is [NOT] null

FORME 6 :

exists <question>

FORME 7 : combinaison d'autres conditions (priorit dcroissante)


(<condition>)
not <condition>
<condition> and <condition>
<condition> or <condition>

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 54/60

10. ADMINISTRATION
10.1. CREATION D'OBJETS
10.1.1. CREATION DE LA BASE
CREATE DATABASE [base] (base [8 car. max.] = ORACLE si non spcifi)
[CONTROL FILE REUSE]
[LOGFILE fichier_spec [, fichier_spec] ... ]
[MAXLOGFILE entier]
[MAXDATAFILE entier]
[MAXINSTANCE entier]
[ARCHIVELOGNOARCHIVELOG]
[EXCLUSIVE]
avec "fichier_spec" : nom [SIZE entier [KM]] [REUSE] (les fichiers peuvent tre rutiliss)

 Dans le fichier INIT.ORA cr lors de la cration de la base, se trouvent les noms des fichiers
LOGFILE.

10.1.2. CREATION DE LA TABLESPACE (espace de rangement des donnes)


CREATE TABLESPACE nom
DATAFILE fichier_spec [, fichier_spec] ...
[DEFAULT STORAGE ([INITIAL n] [NEXT n] [MINEXTENTS n] [MAXEXTENTS n]
[PCINCREASE n])
[ONLINEOFFLINE]
avec INITIAL par dfaut 1024 octets, MIN 4096 octets et MAX 4095 MO.

10.2. MODIFICATION DE LA BASE


10.2.1. MODIFICATION DE L'ORGANISATION LOGIQUE
ALTER DATABASE [base]
{ADD LOGFILE fichier_spec [, fichier_spec] ...
DROP LOGFILE fichier_spec [, fichier_spec] ...
RENAME LOGFILE fichier_spec [, fichier_spec] ...
TO fichier_spec [, fichier_spec] ...
ARCHIVELOGNOARCHIVELOG
MOUNT[[EXCLUSIVE]SHARED]DISMOUNT
OPENCLOSE [NORMALIMMEDIATE]}

10.2.2. MODIFICATION DE LA TABLESPACE


ALTER TABLESPACE nom
{ADD DATAFILE fichier_spec [, fichier_spec] ...
RENAME DATAFILE fichier_spec [, fichier_spec] ...
TO fichier_spec [, fichier_spec] ...
DEFAULT STORAGE([INITIAL n] [NEXT n] [MINEXTENTS n]
[MAXEXTENTS n] [PCINCREASE n])
ONLINEOFFLINE[NORMALIMMEDIATE]
{BEGINEND} BACKUP}

10.2.3. MODIFICATION DES UTILISATEURS (uniquement en DBA)


Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 55/60

ALTER USER nom [IDENTIFIED BY mot_de_passe]


[DEFAULT TABLESPACE tablespace]
[TEMPORARY TABLESPACE tablespace]

10.3. PRIVILEGES
10.3.1. AUTORISATION D'ACCES A LA BASE
GRANT db_privilge [, db_privilge] ... TO utilisateur [, utilisateur] ...
[IDENTIFIED BY mot_de_passe [, mot_de_passe] ... ]
avec db_privilge :

privilge DBA
possibilit de se connecter (CONNECT) ou
RESOURCE (crer des tables dans la base)

ou

10.3.2. AUTORISATION D'ACCES A LA TABLESPACE


GRANT RESOURCE [(quota [KM)] ON tablespace TO {PUBLICutilisateur}
[, utilisateur] ...

10.3.3. ACCES AUX OBJETS


GRANT {objet_priv [, objet_priv] ... ALL [PRIVILEGES]}
ON [utilisateur.] objet
TO {PUBLICutilisateur} [, utilisateur] ... [WITH GRANT OPTION]

10.3.4. SUPPRESSION D'ACCES A LA BASE (uniquement en DBA)


REVOKE {CONNECT [, RESOURCE] [, DBA]} FROM utilisateur [, utilisateur] ...

10.3.5. SUPPRESSION D'ACCES A UNE TABLESPACE


REVOKE RESOURCE ON tablespace FROM utilisateur [, utilisateur] ...

10.3.6. SUPPRESSION D'ACCES AUX OBJETS (pour les propritaires de ces


objets ou ceux ayant des privilges sur ces objets)
REVOKE {objet_priv [, objet_priv] ...ALL [PRIVILEGE]}
ON [utilisateur.] objet FROM {PUBLICutilisateur} [, utilisateur] ...

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 56/60

11. SQL*PLUS - COMMANDES INTERACTIVES


11.1. DEFINITION DE VARIABLES
DEF[INE] [variablevariable = texte]

On peut dfinir 240 variables maximum

SQL>DEF

: liste les variables existantes

[& : select &col ... from &table]

11.2. EXECUTION DES COMMANDES AVEC PARAMETRES


STA[RT] fichier [.ext] [arg1 arg2 ... ]
Exemples : SELECT from vol where vol = '&1' and hd <&2;
vols au dpart de Paris aprs 10h : SQL>STA vol_vd_hd Paris 10;

11.3. ECRITURE DES MESSAGES A L'ECRAN


PROMPT [texte]

11.4. AFFECTATION DE VARIABLES PAR LECTURE


ACC[EPT] variable [NUM[BER]CHAR]
[PROMPT texteNOPR[OMPT]] [HIDE] (supprime l'affichage lors de l'entre)
Exemple : SQL>ACC salaire NUM PROMPT 'salaire : '

11.5. FORMATAGE DES RESULTATS


11.5.1. FORMATAGE DES COLONNES
COL[UMN] [{columnexp} [options] ... ]
OPTIONS LES PLUS UTILISEES :

CLE [ AR ]

DEF [ AULT ]

remet les valeurs par dfaut

FOLD_A[FTER] n : insre un RC aprs la tte de col. et chaque lig. de la col.


FOLD_B[EFORE] n : insre un retour chariot avant la tte de colonne et avant
chaque ligne de la colonne.

FOR[MAT] format
Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 57/60

HEA[DING] texte
'capacitavion' capacit (fait l'criture sur deux lignes)
avion

JUS[TIFY] {L[EFT]C[ENTER]R[IGHT]}
NEWL[INE] : passe la ligne avant d'crire la valeur de la colonne.
NOPRI[NT]PRI[NT]
NUL[L] chane_car : affecte NULL quelque chose, ou affecte des blancs.
ONOFF : contrle le statut de sortie des attributs de la colonne.
11.5.2. RUPTURES DE SEQUENCES DANS UN RAPPORT
BREAK [ON rapport_lment [[action] [action]]]
rapport lment

{colonneexpROWREPORT}

action

[SKI[P] nSKI[P] PAGE]


[NODUP[LICATES]DUP[LICATES]]

Action faite : -

chaque
fois
qu'un
lment
de
"colonne"
change
de
valeur.
- chaque fois qu'un lment de "exp" (valeur) change de valeur.

11.5.3. TITRE D'UN RAPPORT


BTI[TLE] [spe_impression [textevariable] ... ][OFFON]

: Bas de page

TTI[TLE] [spe_impression [textevariable] ... ][OFFON]

: Haut de page

avec
spe_impression :
COL n
S[KIP] [n]
TAB n

: positionne le titre colonne n


: saute n lignes aprs le titre (n = 0 : mme ligne).
: positionne n colonnes - plus loin si n >0
- moins loin si n <0
LE[FT]CE[NTER]R[IGHT]
BOLD
FORMAT c
texte : texte du titre
variable :

SQL.LNO
SQL.PNO

: N de ligne courante
: N de page courante

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 58/60

11.5.4. IMPRESSION DE CALCUL SUR LES DONNEES


COMP[UTE] [fonction ... ] OF {expcolonne} ON {expcolonneREPORTROW}
fonction :

- AVG (nombre)
- COU[NT] pour compter les lignes ayant une valeur NULL
- MAX[IMUM] nombre, char
- NUM[BER] pour compter toutes les lignes
- STD
- SUM
- VAR[IANCE]

11.5.5. SUPPRESSION DES OPTIONS


CL[EAR] option
option :

- BRE[AKS]
- BUFF[ER]
- CO[LUMNS]
- COMP[UTES]
- SCR[EEN]
- SQL (vide le buffer : CLEAR SQL)

11.6. VARIABLES DE L'ENVIRONNEMENT


11.6.1. AFFECTATION D'UNE VARIABLE
SET variable_systme valeur
avec variable systme :
- ECHO {OFFON}
- HEA[DING] {OFFON}
- LIN[ESIDE] {80n}
1n500
n : nombre de lignes entre le haut et le titre.
- NEWP[AGE] {1n}
- NULL texte
- NUMF[ORMAT] format
format : format par dfaut pour les nombres.
- NUM[WIDTH] {10n}
- PAGES[IZE] {54n} n : nb de lignes entre le haut & bas de page.
- PAU[SE] {OFFONtexte} s'arrte aprs chaque impression
d'une page en affichant texte
- SPA[CE] {1n} n10 n : nombre de blancs entre les colonnes.

11.6.2. VISUALISATION DES VARIABLES


SHO[W] option SHOW ALL : toutes les variables
variables systme : - BTI[TLE]
- TTI
- LNO
- PNO
- REL[EASE]
- SPOO[L]
- USER

11.6.3. IMPRESSION DE MESSAGES (pauses)

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 59/60

PAU[SE] texte

11.6.4. SORTIE DES RESULTATS


SPO[OL] [fichier[. extension]OFFOUT]
LST par dfaut

OFF : arrte la sortie sur le spool

OUT : et imprime

11.7. INFORMATIONS RELATIVES AUX OBJETS


11.7.1. DESCRIPTION DES TABLES
DESC[RIBE] [utilisateur.] objet

11.7.2. ACCES AU DICTIONNAIRE


11.7.2.1. DICTIONNAIRE
SQL>select from dict;

11.7.2.2. UTILISATEURS
SQL>select from all_users;

11.7.3. OBJETS PROPRIETAIRES


SQL>select from cat;
tabs
: tables
cat
: no tables
syn
: no synonymes
seq
: squences
obj
: objets
ind
: indexes
cols
: colonnes

11.7.4. OBJETS ACCESSIBLES


all_tables
: toutes tables accessibles
accessibles_tables
: toutes tables et vues accessibles
accessibles_columns

11.7.5. PRIVILEGES
SQL>select from myprior;

0 si non

1 si oui

Licence Gnie Mathmatique et Informatique - Systmes de Gestion de Base de Donnes

Page 60/60