Вы находитесь на странице: 1из 13

Modle Logique de Donne

Dfinition: le modle logique dcrit la structure de donnes


Objectifs:
viter les incohrences dans les donnes :

Une personne na quune date de naissance, le prix dun produit est unique, .
viter la redondance dinformation :

La mme information est stocke dans diffrentes relations


Anomalies: insertion, suppression, modification
viter les valeurs nulles:

Difficiles interprter : inconnu, connu mais non disponible, inapplicable


Rend les jointures difficiles spcifier
viter les jointures inutiles:

Amliorer les performances : la jointure est une opration coteuse

Relation

Modle Relationnel

Une relation met en correspondance des lments

Modle de niveau logique simple dfini par Edgar

appartenant des ensembles non ncessairement


distincts.

Frank Codd en 1970 (prix Turing en 1986)

Petit
Moyen

Rapide

Grand

Taille

Lent
Relation: Sous-ensemble
de Taille Vitesse (produit
cartsien)

Vitesse

Relation Mathmatique

Domaine
Les ensembles Di dune relation sont appels les domaines de la relation
Exemple: le domaine de lensemble Taille est {petit, moyen, grand}

Une relation entre n ensembles Di est un sous-

ensemble du produit cartsien des n ensembles D1

D2 Dn

Un domaine peut tre dfini par extension (liste des valeurs):


Exemple: {Rapide, Lent}

Par consquent, une relation est un ensemble de


n-uplets (a1, a2, , an) o ai Di

Un domaine peut tre dfini par intension (critres de restrictions sur les

n est appel degr de la relation

Certains domaines peuvent tre identiques. Il est cependant ncessaire de

valeurs):

Exemple: Tous les nombres pairs positifs

les distinguer dans la relation. Par consquent, un nom dattribut Ai est


associ chaque domaine correspondant son rle dans la relation

Une relation est not R(A1, A2, , An) o R est le nom de la relation
5

Schma Relationnel

Cl dune relation
Cl candidate: sous ensemble minimal dattributs qui permet

Un schma relationnel est:


Un ensemble de dfinitions de relation lies un mme
schma conceptuel
Les contraintes dintgrit associes ces relations (cls,
contraintes de domaines, de rfrences, )

didentifier chacun des n-uplets de la relation


Cl primaire: une des cls candidates choisie comme identifiant
Si les valeurs dun attribut Ai dune table doivent appartenir

lensemble des valeurs dun attribut Aj cl dune autre table, on


dira que Ai est une cl trangre

Notation:

Emp(id_emp, age, salaire, #deptno)


Dpt(deptno, nom, lieu)
7

Vision Tabulaire du Modle Relationnel


une relation est une table deux dimensions
n-uplet ligne de la table
attribut colonne de la table

Classe dEntit

10

Association dont une seule des cardinalit maximum est n


ENTITE1

ENTITE1

Attr_REF
Attr1

AttrN

Attr1_REF
Attr1_1

Attr1_N

ENTITE2

1,1

ASSOCIATION

-,n

Attr2_REF
Attr2_1

Attr2_M

ENTITE1 (Attr1_REF, Attr1_1, , Attr1_N, #Attr2_REF)

Entite1(Attr_REF, Attr1, ...., AttrN)


ENTITE2 (Attr2_REF, Attr2_1, , Attr2_M)
11

12

Association dont les deux cardinalits maximum sont n


ENTITE1

Attr1_REF
Attr1_1

Attr1_N

Association dont les deux cardinalit maximum sont 1


Solution 1

ENTITE2

-,n

ASSOCIATION
- AttrA_1
-
- AttrA_k

-,n -

ENTITE1

Attr2_REF
Attr2_1

Attr2_M

ENTITE1 ( Attr1_REF, Attr1_1,..., Attr1_N)

ENTITE2

1,1

Attr1_REF
Attr1_1

Attr1_N

ASSOCIATION

0,1 -

Attr2_REF
Attr2_1

Attr2_M

ENTITE1 ( Attr1_REF, Attr1_1,..., Attr1_N)

ASSOCIATION ( #Attr1_REF, #Attr2_REF, AttrA_1,..., AttrA_K)

Unicit des occurrences


des cls trangres

ASSOCIATION ( #Attr1_REF, #Attr2_REF)

Rien ne garanti quil y ait


ENTITE2 ( Attr2_REF, Attr2_1,..., Attr2_M) une ENTITE2 associe
chaque ENTITE1

ENTITE2 ( Attr2_REF, Attr2_1,..., Attr2_M)


13

Association faisant intervenir plus de deux entits

Association dont les deux cardinalit maximum sont 1


Solution 2
ENTITE1

Attr1_REF
Attr1_1

Attr1_N

14

ENTITE2

ENTITE2

1,1

ASSOCIATION

0,1 -

-,n

ENTITE1

Attr2_REF
Attr2_1

Attr2_M

Unicit des occurrences


des cls trangres

-,n

Attr1_REF
Attr1_1

Attr1_N

Attr2_REF
Attr2_1

Attr2_M

Attr3_REF
Attr3_1

Attr3_M

ASSOCIATION
- AttrA_1
-
- AttrA_k

ENTITE3

-,n

ENTITE1 ( Attr1_REF, Attr1_1, , Attr1_N)

ENTITE1 (Attr1_REF, Attr1_1, , Attr1_N, #Attr_REF2)


ASSOCIATION ( #Attr1_REF, #Attr2_REF, #Attr3_REF, AttrA_1,, AttrA_K )

ENTITE2 ( Attr2_REF,
Attr2_1, ..., Attr2_M)

ENTITE2 (Attr2_REF, Attr2_1, , Attr2_M)

ENTITE3 ( Attr3_REF, Attr3_1, , Attr3_P)


16

Association rflexive
ENTITE1

Attr1_REF
Attr1_1

Attr1_N

Hritage
ENTITE0

1,1

ASSOCIATION

Attr0_REF
Attr0_1

Attr0_N

-,N
ENTITE1
-

ENTITE1 ( Attr1_REF, Attr1,..., AttrN, #Attr1_REF_E)

Attr1_1

Attr1_M

ENTITE2
-

Attr2_1

Attr2_P

Les entits spcialises


peuvent avoir des attributs
cls supplmentaires

ENTITE0(Attr0_REF, Attr0_1, , Attr0_N)


ENTITE1(Attr0_REF, Attr1_1, , Attr1_M)
ENTITE2(Attr0_REF, Attr2_1, , Attr2_P)
17

18

Hritage

Agrgation

ENTITE0
-

Attr0_REF
Attr0_1

Attr0_N

Auditeur

- IdAuditeur
- Nom
- Prenom

0,n
Evalue
ENTITE1
-

Attr1_1

Attr1_M

0,n

ENTITE2
-

Attr2_1

Attr2_P

Service

- Intitul

Si ENTITE0 est sans instance:

Entreprise
1,n

Appartient

1,n

- codeEntreprise
- NomEntreprise
- CA

Appartient(#Intitul, #CodeEntreprise, )
Evalue (#IdAuditeur, #Intitul, #CodeEntreprise, )

ENTITE1(Attr0_REF, Attr0_1, , Attr0_N, Attr1_1, , Attr1_M)


ENTITE2(Attr0_REF, Attr0_1, , Attr0_N, Attr2_1, , Attr2_P)

19

20

Relation universelle
Relation universelle: liste des attributs
Exemple:
employe(

idEmp,
nom, prenom, salaire,
service, directeurService,
projet, primeProjet )

21

Problme
employe(

22

DEPENDANCES FONCTIONNELLES

idEmp, nom, prenom, salaire, service,


directeurService, projet, primeProjet )

Problme principal : Redondance dinformation


les attributs service, directeurService, sont rpts pour chaque projet
employ du service
Consquence : Anomalies
Anomalie dinsertion
il est difficile/impossible dinsrer un nouveau service tant quil na pas
demploy affect (valeurs nulles)
Anomalie de suppression
si le dernier employ dun service est supprim, le service est
automatiquement supprim aussi. Pour viter cela, il faut prvoir un
traitement spcifique leffacement du dernier employ
Anomalie de modification
si une proprit associe un service est modifie, par ex. le directeur,
tous les n-uplets doivent tre modifis
23

DEFINITION: Une dpendance fonctionnelle f est une


expression
f: X Y
O X et Y sont des ensembles dattributs (on dit que f est dfinie
sur X Y).
Une relation r(Z) satisfait la dpendance fonctionnelle f: X Y
ssi
1. X Y Z et
2. tous les n-uplets t et t dans r(Z) qui ont les mmes
valeurs pour les attributs dans X, partagent galement les
mmes valeurs pour les attributs Y :
t,tr: t.X = t.X t.Y = t.Y.
24

Exemple dpendance fonctionnelle


employe(

idEmp, nom, prenom, salaire, service,


directeurService, projet, primeProjet )

Proprits des dpendances fonctionnelles


X, Y, Z sont des ensembles dattributs.
Axiomes dArmstrong
Rflexivit :
YX
Augmentation :
{X Y}
Transitivit :
{X Y, Y Z}

idEmp nom, prenom, salaire, service, directeurService


service directeurService
idEmp, projet primeProjet

=>

{X Y}

=>

{XZ YZ}

=>

{X Z}

Rgles additionnelles (dduites des rgles de bases)

Les dpendances fonctionnelles expriment des

Union :

{X Y, X Z }
Pseudo transitivit :
{X Y, WY Z}
Dcomposition :
{X YZ}

contraintes smantiques sur les donnes

=>

{X YZ}

=>

{ WX Z }

=>

{ X Y , X Z}

25

Infrence de DFs

26

Infrence de DFs

Soit F un ensemble de dpendances fonctionnelles dfini sur un


ensemble dattributs U :
On dit que F implique logiquement la DF X Y (avec XY Z) si
toutes les relations r(Z) qui satisfont toutes les dpendances
fonctionnelles dans F, satisfont galement XY

Exemple:
F = {A C, B D}
On peut montrer que AB dtermine R=ABCD
1. ABABC (A C + augmentation)
2. ABCABCD (B D + augmentation)
3. AB ABCD (1.+2. + transitivit)

On note alors :
F=X Y
Exemple:
F = {A B, B C} = A C
27

Dpendance fonctionnelle lmentaire


Soit

Dpendance fonctionnelle directe

X un ensemble dattributs
X un sous-ensemble de X, X X
A un attribut avec A X

Soit

La dpendance fonctionnelle X A est lmentaire, sil


nexiste pas X tel que X A
Ex:

28

X un ensemble dattributs,
Y un ensemble dattributs avec Y X, et Y X
A un attribut, A Y

La dpendance fonctionnelle X A est directe sil nexiste


pas Y tel que X Y et Y A
Si Y existe la dpendance est transitive

{A C, AD C}
AD C non lmentaire

Ex:

{A C, C D, A D}
A D est lmentaire

{A C, AD C}
AD C est directe
{A C, C D, A D}
A D nest pas directe

29

30

Surcl, cl candidate et cl primaire

Fermeture transitive
Infrence par le calcul de la fermeture transitive dun ensemble de

Soit R(Z) un schma de relation, F un ensemble de dpendances

fonctionnelles sur Z, et X un sous-ensemble des attributs de R Z:

DF

X est une surcl (superkey) de R avec F si F=X Z

La fermeture transitive (ou clture) dun ensemble de dpendances

X est un cl candidate de R, si X est une surcl et il nexiste pas de surcl

Y, qui est un sous-ensemble strict de X : Y X (cl minimale )

fonctionnelles F est lensemble de toutes les dpendances


fonctionnelles que lon peut dduire de F:

F+ = {X Y | F=X Y }

Remarques:
Une cl primaire est une cl candidate utilise pour organiser
physiquement les donnes

Une relation r(Z) satisfait un ensemble de dpendances

fonctionnelles F si elle satisfait toutes les dpendances


fonctionnelles X Y o

On peut trouver toutes cls dune relation partir dun ensemble de DF

XY Z et
X Y est dans la fermeture transitive de F.

(infrence)

31

Fermeture transitive d'un ensemble F (F+) :

quivalence et couverture minimale

F { DF lmentaires obtenues par transitivit


ou pseudo transitivit }

Deux ensembles de DF diffrents peuvent exprimer les

Couverture minimale d'un ensemble F (MIN(F)) :

mme contraintes:
F ={AB D, D C, C D, AB C}

(MIN(F))+ = F+
il n'existe pas F' inclus dans MIN(F) tel que : (F')+ = F+

32

ELE(F+)

F={AB C, D C, C D}

MIN(F)

A,B

C, D, E

A,B

C, E

A,B

C, E

D,F,G,H

D,F,G,H,I,J,K

D, G, H

D, G, H, I, J, K

D, G, H

I, J, K

I, J, K

I, J, K

A,F

J, K

F et F sont quivalents(expriment les mme

contraintes). On note : F F
F est plus compacte
33

Graphe de dpendance

quivalence et couverture minimale

R_entreprise( idEmp, service, directeurService, salaire,


projet, primeProjet)

F est quivalent F(F F) ssi F+= F+

service directeurService

F est un ensemble minimal de DF ssi F ne contient pas de

idEmp service, salaire

DF X Y :

idEmp, projet primeProjet

redondante : F+=(F - { X Y })+


redondante gauche (partielle) : XX implique XY F+

Ex:

34

{A B, B C, AC D}
AC D redondante gauche

Dessiner graphe
Fermeture transitive

F est une couverture minimale de F ssi


F F et
F est un ensemble minimal de DF

Correspondance E/A
35

36

Normalisation
Normalisation : Mthodologie de conception descendante pour

produire un bon schma par dcomposition dun schma


dorigine.

Le schma produit doit:


viter les anomalies de mises--jour : forme normale
prserver la smantique du schma dorigine : sans perte

dinformations et sans pertes de dpendances

Ide :
On part dun schma de relation R et dun ensemble de

dpendances fonctionnelles F dfinies sur R

On applique un ensemble de transformations logiques de R

en respectant les contraintes dfinies par F

37

38

Raffinement par dcomposition


Problme: Dcomposer le schma relationnel S avec les

dpendances fonctionnelles F en plusieurs relations sans perdre


des informations et des dpendances (si possible) dans F

Dcomposition sans perte dinformations (SPI): pour chaque

base de donnes du schma S qui satisfait F, il doit tre possible


de la reconstruire (par des jointures) partir des tables obtenues
aprs la dcomposition (par projection).

Dcomposition avec prservation des dpendances (SPD): il doit

tre possible de vrifier toutes les contraintes dfinies par F sans


effectuer de jointures (efficacit).

Impact sur les requtes ?


Le temps dexcution peut augmenter (si plus de jointures)
39

PREMIERE FORME NORMALE (1NF)


La relation a une cl. Les attributs sont composs
dune valeur atomique, non multi-value.

40

DEUXIEME FORME NORMALE (2NF)


R (A, B, C, D, E, F)
Une relation R est en deuxime forme normale(2FN ou 2NF en Anglais) par rapport un

ensemble de DF F ssi tout attribut nappartenant pas la cl de R dpend compltement


de la cl.
Les attributs non cl ne doivent pas dpendre que dune partie de la cl mais de sa totalit.
Exemple:

employe(idEmp, idService, nom, salaire, nomService)


avec
F= {idEmp idService, nom, salaire, nomService}

R (A, B, C, D, E, F)

employ n'est pas en 2FN (nom, salaire et nomService dpendent uniquement de


idEmp)
employ(idEmp , idService, nom, salaire, nomService) est 2FN
41

42

Algorithme de dcomposition

TROISIEME FORME NORMALE (3NF)

- Soit F un ensemble de dpendances fonctionnelles dfinies sur l'ensemble U des attributs


- Dterminer ELE(F+).
- Rechercher la couverture minimale de F ( MIN(F) ).

R (A, B, C, D, E, F)
Une relation est en troisime forme normale si tous les attributs non cl sont en
dpendance fonctionnelle lmentaire directe avec la cl. Il ne doit pas y avoir de
dpendance fonctionnelle entre des attributs non cl

- Construire la relation universelle R, relation compose de tous les attributs


- Dterminer la cl primaire de la relation R, partir de MIN(F).
- Pour chaque dpendance fonctionnelle, tant que la dpendance fonctionnelle ne contient
pas tous les attributs de la relation, dcomposer la relation R en deux nouvelles relations :

Il peut rester des dpendances fonctionnelles entre attributs de la cl et entre


attributs non cl vers des attributs de la cl
Exemple:
employe(idEmp, nom, salaire, idService, nomService, directeur)
avec
F= {idEmp (nom, Salaire,idService), idService (nomService, directeur})

La relation R (A, B, C) avec la DF {B>C} nest pas en 3 FN,


elle sera dcompose en R (A, B) et R2 (B, C)
- Appliquer le processus de dcomposition sur les relations obtenues jusqu' l'obtention de
relations en 3FN. La dcomposition peut tre reprsente sous forme d'arbre, les feuilles de
larbre constituent les relations de la base.

employe n'est pas en 3FN (idService nomService, directeur).


employe(idEmp, nom, salaire)
service( idService, nomService, directeur) est en 3FN
43

A,B

C, E

D, G, H

I, J, K

Forme normale de Boyce-Codd


Observation: En 3FN, on peut encore avoir des DF transitives si les attributs dpendants
sont dans la cl.
Dfinition : Soient R une relation et F un ensemble de DF. On dit que R est en forme
normale Boyce-Codd par rapport F (FNBC ou BCNF en Anglais), si pour toute DF
X A, X est la cl primaire de R.
=>
Tout attribut nappartenant pas la cl dpend compltement la cl et uniquement de
la cl
Il ny a pas de DF impliquant un attribut de la cl

R (A, B, C, D, E, F, G, H, I, J, K)

R2 (A, D, F, G, H, I, J, K)

R1 (A, B, C, E)

44

Cette dcomposition est SPI mais nest pas SPD

R21 (A, F)

Exemple:
Projet (idEmp, idProjet, role, lieu)
avec { (idEmp, idProjet) (role, lieu), lieu idProjet }
Non BCFN

R22 (F, D, G, H, I, J, K)

R221 (F, D, G, H) R222 (D, I, J, K)

Dcomposition: Projet (idEmp, idProjet role) , Location (lieu, idProjet)

45

DEPENDANCES MULTIVALUEES

46

QUATRIEME FORME NORMALE (4 NF)


idEtudiant

Soit R(X, Y, Z), si (x, y, z) R et (x, y, z) R (x, y, z) R,

(x, y, z) R
Alors
X Y (et donc aussi X Z)

Il existe une dpendance multivalue entre X et Y.

filire

sport

10454

Mathmatique

Football

10454

Philosophie

Musculation

10454

Philosophie

Football

10454

Mathmatique

Musculation

15838

Informatique

Football

Remarque: les DF sont un cas particulier de DM


y1
y2
y3

idEtudiant

z1
x1

6 n-uplets dans la table


z2
47

filire

idEtudiant

sport

10454

Mathmatique

10454

Football

10454

Philosophie

10454

Musculation

15838

Informatique

15838

Football
48

QUATRIEME FORME NORMALE (4 NF)

QUATRIEME FORME NORMALE (4 NF)

Une relation est en quatrime forme normale si les


seules dpendances multivalues qui existent sont
des dpendances fonctionnelles.

R (A, B, C)

R (A, B, C)
a1

b1

c1

a1

b2

c1

a2

b1

c3

a1

b1

c2

a1

b2

c2

a2

b1

R1 (A, B)
La relation R nest pas en 4FN

c2

a1

b1

a1

b2

a2

b1

a1

b1

c1

a1

b2

c1

a2

b1

c3

a1

b1

c2

a1

b2

c2

a2

b1

c2

R2 (A, C)
a1

c1

a2

c3

a1

c2

a2

c2

49

50

QUATRIEME FORME NORMALE (4 NF)

CINQUIEME FORME NORMALE (5 NF)


Une relation est en cinquime forme normale si et seulement si toute

dpendance de jointure est implique par les cls candidates de la


relation
a1

b1

c1

a1

b2

c1

a2

b1

c3

a1

b1

c2

R (A, B, C)

Dpendance de jointure

La relation R est en 4FN


(Pas de n-uplet (a1, b2, c2))

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 (X1, X2, ,Xm) si la
relation R est obtenue par la jointure de R1(X1), R2(X2),
, Rm(Xm)
R = R1(X1) R2(X2) Rm(Xm)
Lintersection de deux ensembles Xi et Xj peut tre non nulle

Proprit

Les dpendances multivalues sont des cas particuliers de


dpendances de jointure

51

52

CINQUIEME FORME NORMALE (4 NF)


idVendeur

organisme

produit

CNT

Assurance-vie

AXT

Crdit immo

CNT

Crdit immo

CNT

Crdit immo

AXT

Crdit conso

CINQUIEME FORME NORMALE (5 NF)


R (A, B, C)
R1 (A, B)

R2 (A, C)

R3 (B, C)

a1

b1

a1

b2

a2

b1

a2

b2

a1

c1

idVendeur

organisme

idVendeur

produit

a1

b1

c1

a1

c2

CNT

Assurance-vie

a1

b2

c1

a2

c2

AXT

Crdit immo

a2

b1

c3

a2

c3

CNT

Crdit immo

a1

b1

c2

b1

c1

Crdit conso

a1

b2

c2

b1

c3

a2

b2

c2

b1

c2

a2

b1

c2

b2

c2

organisme

produit

CNT

Assurance-vie

CNT

Crdit immo

AXT

Crdit immo

AXT

Crdit conso

53

54

OPTIMISATION A PARTIR DU SCHEMA LOGIQUE

Dnormalisation :

Sans modification de structure des tables de donnes

Implantation de tables non normalises


Consquences sur :

Indexation des tables

Lors des interrogations, les oprations de jointure sont


moins nombreuses (amlioration des performances des
consultations)

- Sur cls primaires, cls trangres


- Sur dautres attributs

La taille de la base est augmente tant donn les


redondances

Consquences sur :

Les insertions entranent la rpercussion des mises jour


sur plusieurs n-uplets (mises jour pnalises)

Les algorithmes de recherche, donc sur les performances


La taille de la base est augmente de la taille des index

Rpartition verticale ou horizontale des tables

Les insertions entranent une mise jour des index


Pas de consquences sur lcriture des requtes SQL

55

56

Avec modification de structure des tables de donnes


Ajouts de redondances :
- Attributs calculs, rsultat doprations sur
attributs prsents dans la base. Le calcul peut porter sur des
attributs appartenant des tables diffrentes
- Attributs cls trangres, associations redondantes
Consquences sur :
Lcriture des requtes. Les informations redondantes
tant prsentes dans la base il nest pas ncessaire de
refaire les calculs chaque interrogation (amlioration
des performances des consultations)
La taille de la base est augmente de la taille attributs
Les insertions entranent la rpercussion des mises jour afin
dassurer la cohrence des donnes (mises jour pnalises)
57

SQL

Standard SQL

Structured Query Langage

SQL est un standard ANSI/ISO


Plusieurs mise--jour du langage:
SQL1: premire version standardise (1986,1987)
SQL2: mise jour majeure (type date, oprations
ensemblistes, )
SQL3: dclencheurs, types composites, fonctionnalits
orientes objets,
SQL:2003, SQL:2006, SQL:2008,

Standard tabli pour les SGBD relationnel


Driv de lalgbre relationnel
SQL est un langage o lutilisateur dcrit le rsultat

obtenir
SQL est non-procdural: le SGBD dtermine

lenchanement des traitement effectuer afin


dobtenir le rsultat

Variations par rapport au SQL standard propre

chaque SGBD

10

Langages de requtes
Langage de Dfinition de Donnes (LDD):
Dfinition des relations, contraintes dintgrit
Dfinition des vues
Dfinition des index (non standardise)
Dfinitions des droits: GRANT, REVOKE
Contrle de transaction: COMMIT, ROLLBACK,
Langage de Manipulation de Donnes (LMD):
Interrogation: SELECT
Dfinition, modification, suppression: INSERT, UPDATE,
DELETE

Type SQL: Numrique exact


INTEGER (ou INT)
Entier (prcision non standardise)
Exemples : 2, 3, 459
SMALLINT
Petit entier (prcision non standardise)
Exemples : 2, 3, 459
NUMERIC(p, c) (ou DECIMAL(p, c) ou DEC(p, c))
Nombre dcimal avec p chiffres au total, dont c chiffres aprs la
virgule
Exemples : 2.5, 456.342, 6

Dictionnaire de donnes
Tables contenant les informations sur les objets de la base

(mtadonnes)

Normalis dans le standard SQL:


DEFINITION_SCHEMA (Tables, non directement accessibles)
INFORMATION_SCHEMA (Vues)

Sous Oracle, les vues du dictionnaires ont des noms de la forme:


USER_<Objet> : objets appartenant lutilisateur courant
ALL_<Objet> : objets accessibles lutilisateur courant
DBA_<Objet> : tous les objets de la base (vue rserve
ladministrateur)
Quelques tables du dictionnaires : DICTIONARY (DICT),

USER_TABLES (TABS), USER_TAB_COLUMNS (COLS),


USER_USERS,

Type SQL: Numrique Rel


REAL
Point flottant (prcision non standardise)
Exemples : 3.27E-4, 24E5
DOUBLE PRECISION
Point flottant double prcision (non standardise)
Exemples : 3.27265378426E-4, 24E12
FLOAT(n)
Point flottant

Sous Oracle, tous ces types sont quivalent NUMBER (par

prcision minimale est de n chiffres pour la mantisse

Exemples : 3.27E-4, 24E5

exemple, INT NUMBER(38))

Type SQL: Chane de caractres


Chane de caractres (VARYING et NATIONAL : SQL2 intermdiaire)
CHARACTER(n)

Chane de caractre de taille fixe gale n

CHARACTER VARYING (n)

Taille variable (max de n caractres)

NATIONAL CHARACTER(n)

Ensemble de caractres alternatif spcifique l'implmentation

NATIONAL CHARACTER VARYING(n)

Taille variable

Type SQL: Date


Date et temps
DATE

heure (2 chiffres), minutes (2 chiffres), secondes (2 +p chiffres)


Exemple : TIME '14:04:32.25'

TIMESTAMP[(p)]

DATE + TIME
Exemple : TIMESTAMP '1998-08-25 14:04:32.25'

INTERVAL

Sous oracle:
CHARACTER CHAR
CHARACTER VARYING VARCHAR2
NATIONAL CHARACTER NCHAR
NATIONAL CHARACTER VARYING NVARCHAR2

anne (quatre chiffres), mois (2 chiffres) et jour (2 chiffres)


Exemple : DATE '1998-08-25'

TIME[(p)]

Reprsente un intervalle de temps.

Sous Oracle:
Date: prcision jusqu une seconde, format par dfaut dpend de la
configuration su SGBD (sous Codd; DD-MON-YY)
TIMESTAMP, TIMESTAMP WITH TIME ZONE, INTERVAL YEAR
TO MONTH, INTERVAL DAY TO SECOND

11

Type: autres

Rappel SQL

Boolen
Binaire long (SQL3)
BINARY LARGE OBJECT (n) (BLOB(n))

Longue chane de caractre (SQL3)


CHARACTER LARGE OBJECT (n) (CLOB(n))
NATIONAL CHARACTER LARGE OBJECT (n) (NCLOB(n))

Sous Oracle:
Pas de type boolen
BLOB, CLOB, NCLOB disponible (4GB)

CREATE TABLE (
NomCol1
TYPE,

NomColn
TYPE,
PRIMARY KEY (Col1, ),
FOREIGN KEY (Col1, )
REFERENCES tableEtrangres(ColEt1, )
);

Jointures

Slection

Syntaxe jointure SQL2 pour oracle:


plus explicite sur le type de jointure utilis
Extrait les conditions de jointures des critres de restrictions

Jointure naturelle: NATURAL JOIN


Exemple:
SELECT * FROM dpt NATURAL JOIN empt;
WHERE
Colonne de mme nom doit exister dans les deux tables

Jointure: JOIN/ INNER JOIN ON


Exemple:
SELECT * FROM emp e1 INNER JOIN emp e2 ON e1.mgr=e2.emp
WHERE ;

Jointure externe: LEFT/RIGHT/FULL OUTER JOIN


Exemple:
SELECT * FROM emp LEFT OUTER JOIN dpt ON emp.dpt = dpt.deptno;
WHERE
Tous les n-uplet de emp seront affichs mme si la condition de jointure nest pas ralis. Dans ce cas,
les attributs de emp correspondant auront comme valeur NULL.

Produit cartsien: CROSS JOIN

Syntaxe

SELECT [DISTINCT] col1 AS alias_col1, , coln


FROM table t1, , table tn
WHERE ;
Oprations ensemblistes sur le rsultat des requtes

SQL:
ORACLE:

<req1> UNION| INTERSECT | EXCEPT <req2>


<req1> UNION| INTERSECT | MINUS <req2>

Fonctions dagrgation SQL

Fonctions dagrgation SQL

Partition dune table avec la clause GROUP BY

Restriction sur les groupes selectionns avec la clause HAVING

SELECT deptno, count(empno) as nbEmp from emp


GROUP BY deptno;

SELECT deptno, count(empno) as nbEmp from emp


GROUP BY deptno
HAVING count(empno) > 1;

empno

name

deptno

7639

SMITH

20

empno

name

deptno

7521

CLARK

20

20

7639

SMITH

20

7834

KING

30

30

7521

CLARK

20

20

8456

SCOTT

40

40

7834

KING

30

40

6210

TURNER

40

50

8456

SCOTT

40

9566

WARD

50

6210

TURNER

40

9566

WARD

50

deptno

nbEmp

Colonne rsultat dune requte GROUP BY, uniquement colonne

de groupage ou rsultats de fonctions dagrgation


Fonctions dagrgation: AVG, COUNT, MAX, MIN, SUM,

deptno

nbEmp

Attention bien distinguer les conditions de restriction sur les n-

uplets (WHERE ) des conditions de restriction sur les groupes


(HAVING )

12

Requtes corrles

Tests dexistence

Sous-requte corrle la requte principale:

EXISTS / NOT EXISTS

SELECT empno, name FROM emp e1


WHERE e1.sal >
( SELECT MAX(e2.sal) FROM emp e2
WHERE e2.mgr = e1.empno );

SELECT deptno FROM dpt


WHERE EXISTS
( SELECT * FROM emp
WHERE emp.deptno=dpt.deptno );

Requtes rcursives (SQL)

Quantificateurs

Parcours darborescence/graphe

ALL: le rsultat de la comparaison dune valeur au rsultat dune sous-requte doit tre

vrifi pour tous les n-uplets rsultat dune sous-requte.

SELECT empno, name FROM emp e1


WHERE e1.sal > ALL
( SELECT e2.sal FROM emp e2
WHERE e2.mgr = e1.empno);

SOME/ANY: le rsultat de la comparaison dune valeur au rsultat dune sous-requte

doit tre vrifi pour au moins un des n-uplets rsultat dune sous-requte.

SELECT empno, name FROM emp e1


WHERE e1.sal > ANY
( SELECT e2.sal FROM emp e2
WHERE e2.mgr = e1.empno);

WITH RECURSIVE Chemin(x,y) AS


(SELECT x,y FROM Arc)
UNION
(SELECT C1.x, C2.y
FROM Chemin C1, Chemin C2
WHERE C1.y = C2.x)
SELECT * FROM Chemin;

Table Arc
x
y
1
3
2
3
3
4
3
5

Table Chemin
x
y
1
3
2
3
3
4
3
5
1
4
1
5
2
4
2
5

Requtes rcursives (Oracle)


Parcours darborescence/graphe
SELECT x, y
FROM Chemin
START WITH x in (1,2,3)
CONNECT BY PRIOR y=x;

Table Arc
x
y
1
3
2
3
3
4
3
5

Table Chemin
x
y
1
3
2
3
3
4
3
5
1
4
1
5
2
4
2
5

Possibilit dutiliser lattribut level pour connaitre la

profondeur de rcursivit

13