Vous êtes sur la page 1sur 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

1 2

Modle Relationnel Relation


Modle de niveau logique simple dfini par Edgar Une relation met en correspondance des lments
Frank Codd en 1970 (prix Turing en 1986) appartenant des ensembles non ncessairement
distincts.

Petit
Moyen Rapide
Grand Lent
Relation: Sous-ensemble
de Taille Vitesse (produit
Taille cartsien) Vitesse
3 4

Relation Mathmatique Domaine


Une relation entre n ensembles Di est un sous- Les ensembles Di dune relation sont appels les domaines de la relation
Exemple: le domaine de lensemble Taille est {petit, moyen, grand}
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 Un domaine peut tre dfini par intension (critres de restrictions sur les
valeurs):
n-uplets (a1, a2, , an) o ai Di Exemple: Tous les nombres pairs positifs

Certains domaines peuvent tre identiques. Il est cependant ncessaire de


n est appel degr de la relation 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 6

1
Schma Relationnel Cl dune relation
Un schma relationnel est: Cl candidate: sous ensemble minimal dattributs qui permet
didentifier chacun des n-uplets de la relation
Un ensemble de dfinitions de relation lies un mme
schma conceptuel Cl primaire: une des cls candidates choisie comme identifiant
Les contraintes dintgrit associes ces relations (cls,
contraintes de domaines, de rfrences, ) 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 8

Vision Tabulaire du Modle Relationnel


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

9 10

Classe dEntit Association dont une seule des cardinalit maximum est n

ENTITE1 ENTITE2
ENTITE1
- Attr1_REF 1,1 ASSOCIATION
-,n - Attr2_REF
- Attr_REF - Attr1_1 - Attr2_1
- Attr1 - -
- - Attr1_N - Attr2_M
- AttrN

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

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

ENTITE2 (Attr2_REF, Attr2_1, , Attr2_M)

11 12

2
Association dont les deux cardinalits maximum sont n Association dont les deux cardinalit maximum sont 1
Solution 1
ENTITE1 ENTITE2 ENTITE1 ENTITE2

-,n ASSOCIATION -,n - 1,1 ASSOCIATION 0,1 -


- Attr1_REF Attr2_REF - Attr1_REF Attr2_REF
- Attr1_1 - AttrA_1 - Attr2_1 - Attr1_1 - Attr2_1
-
- - AttrA_k
- - -
- Attr1_N - Attr2_M - Attr1_N - Attr2_M

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

Unicit des occurrences


ASSOCIATION ( #Attr1_REF, #Attr2_REF, AttrA_1,..., AttrA_K) ASSOCIATION ( #Attr1_REF, #Attr2_REF) des cls trangres

Rien ne garanti quil y ait


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

Association faisant intervenir plus de deux entits


Association dont les deux cardinalit maximum sont 1 ENTITE2

Solution 2 - Attr2_REF
ENTITE1 ENTITE2 - Attr2_1
ENTITE1 -,n -
- Attr1_REF 1,1 ASSOCIATION 0,1 - Attr2_REF - Attr2_M
- Attr1_1 - Attr2_1 - Attr1_REF -,n ASSOCIATION
- - - Attr1_1 - AttrA_1
- Attr1_N - Attr2_M - ENTITE3
- - AttrA_k
- Attr1_N
-,n - Attr3_REF
- Attr3_1
-
Unicit des occurrences ENTITE1 ( Attr1_REF, Attr1_1, , Attr1_N) - Attr3_M
des cls trangres
ENTITE1 (Attr1_REF, Attr1_1, , Attr1_N, #Attr_REF2)
ASSOCIATION ( #Attr1_REF, #Attr2_REF, #Attr3_REF, AttrA_1,, AttrA_K )

ENTITE2 ( Attr2_REF,
ENTITE2 (Attr2_REF, Attr2_1, , Attr2_M) Attr2_1, ..., Attr2_M)
ENTITE3 ( Attr3_REF, Attr3_1, , Attr3_P)
16

Association rflexive Hritage


ENTITE0
ENTITE1 1,1 - Attr0_REF
- Attr0_1
-
- Attr1_REF ASSOCIATION - Attr0_N
- Attr1_1
-
- Attr1_N
-,N
ENTITE1 ENTITE2
- Attr1_1 - Attr2_1
Les entits spcialises
-
-

Attr1_M
-
-

Attr2_P
peuvent avoir des attributs
ENTITE1 ( Attr1_REF, Attr1,..., AttrN, #Attr1_REF_E) 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

3
Hritage
ENTITE0
Agrgation
- Attr0_REF Auditeur
- Attr0_1
- - IdAuditeur
- Attr0_N - Nom
- Prenom
0,n
Evalue

ENTITE1 ENTITE2 0,n


- Attr1_1 - Attr2_1 Entreprise
- - Service
- Attr1_M - Attr2_P 1,n Appartient 1,n
- Intitul - codeEntreprise
- NomEntreprise
- CA
Si ENTITE0 est sans instance:

ENTITE1(Attr0_REF, Attr0_1, , Attr0_N, Attr1_1, , Attr1_M) Appartient(#Intitul, #CodeEntreprise, )


ENTITE2(Attr0_REF, Attr0_1, , Attr0_N, Attr2_1, , Attr2_P) Evalue (#IdAuditeur, #Intitul, #CodeEntreprise, )

19 20

Relation universelle
Relation universelle: liste des attributs

Exemple:
employe( idEmp, nom, prenom, salaire,
service, directeurService,
projet, primeProjet )

21 22

Problme DEPENDANCES FONCTIONNELLES


employe( idEmp, nom, prenom, salaire, service, DEFINITION: Une dpendance fonctionnelle f est une
directeurService, projet, primeProjet ) expression
f: X Y
Problme principal : Redondance dinformation
les attributs service, directeurService, sont rpts pour chaque projet O X et Y sont des ensembles dattributs (on dit que f est dfinie
employ du service sur X Y).
Consquence : Anomalies
Anomalie dinsertion Une relation r(Z) satisfait la dpendance fonctionnelle f: X Y
il est difficile/impossible dinsrer un nouveau service tant quil na pas ssi
demploy affect (valeurs nulles) 1. X Y Z et
Anomalie de suppression
si le dernier employ dun service est supprim, le service est
2. tous les n-uplets t et t dans r(Z) qui ont les mmes
automatiquement supprim aussi. Pour viter cela, il faut prvoir un valeurs pour les attributs dans X, partagent galement les
traitement spcifique leffacement du dernier employ mmes valeurs pour les attributs Y :
Anomalie de modification
si une proprit associe un service est modifie, par ex. le directeur,
t,tr: t.X = t.X t.Y = t.Y.
tous les n-uplets doivent tre modifis
23 24

4
Proprits des dpendances fonctionnelles
Exemple dpendance fonctionnelle X, Y, Z sont des ensembles dattributs.
employe( idEmp, nom, prenom, salaire, service,
directeurService, projet, primeProjet ) Axiomes dArmstrong

Rflexivit :
idEmp nom, prenom, salaire, service, directeurService YX => {X Y}
Augmentation :
service directeurService {X Y} => {XZ YZ}
Transitivit :
idEmp, projet primeProjet {X Y, Y Z} => {X Z}

Rgles additionnelles (dduites des rgles de bases)

Les dpendances fonctionnelles expriment des Union :


{X Y, X Z } => {X YZ}
contraintes smantiques sur les donnes Pseudo transitivit :
{X Y, WY Z} => { WX Z }
Dcomposition :
{X YZ} => { X Y , X Z}

25 26

Infrence de DFs Infrence de DFs


Soit F un ensemble de dpendances fonctionnelles dfini sur un
ensemble dattributs U : Exemple:
F = {A C, B D}
On dit que F implique logiquement la DF X Y (avec XY Z) si
toutes les relations r(Z) qui satisfont toutes les dpendances On peut montrer que AB dtermine R=ABCD
fonctionnelles dans F, satisfont galement XY

On note alors : 1. ABABC (A C + augmentation)


F=X Y 2. ABCABCD (B D + augmentation)
Exemple: 3. AB ABCD (1.+2. + transitivit)

F = {A B, B C} = A C

27 28

Dpendance fonctionnelle lmentaire Dpendance fonctionnelle directe


Soit X un ensemble dattributs Soit X un ensemble dattributs,
X un sous-ensemble de X, X X Y un ensemble dattributs avec Y X, et Y X
A un attribut avec A X A un attribut, A Y

La dpendance fonctionnelle X A est directe sil nexiste


La dpendance fonctionnelle X A est lmentaire, sil pas Y tel que X Y et Y A
nexiste pas X tel que X A
Si Y existe la dpendance est transitive
Ex: {A C, AD C}
AD C non lmentaire Ex: {A C, AD C}
AD C est directe
{A C, C D, A D} {A C, C D, A D}
A D est lmentaire A D nest pas directe
29 30

5
Surcl, cl candidate et cl primaire Fermeture transitive
Soit R(Z) un schma de relation, F un ensemble de dpendances Infrence par le calcul de la fermeture transitive dun ensemble de
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
fonctionnelles F est lensemble de toutes les dpendances
X est un cl candidate de R, si X est une surcl et il nexiste pas de surcl fonctionnelles que lon peut dduire de F:
Y, qui est un sous-ensemble strict de X : Y X (cl minimale )
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
On peut trouver toutes cls dune relation partir dun ensemble de DF fonctionnelles X Y o
(infrence) XY Z et
X Y est dans la fermeture transitive de F.

31 32

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:
(MIN(F))+ = F+ F ={AB D, D C, C D, AB C}
il n'existe pas F' inclus dans MIN(F) tel que : (F')+ = F+
F={AB C, D C, C D}
F ELE(F+) MIN(F)
A,B C, D, E A,B C, E A,B C, E F et F sont quivalents(expriment les mme
A D,F,G,H A D,F,G,H,I,J,K A F contraintes). On note : F F
F D, G, H F D, G, H, I, J, K F D, G, H
D I, J, K D I, J, K D I, J, K
A,F J, K
F est plus compacte

33 34

quivalence et couverture minimale Graphe de dpendance


R_entreprise( idEmp, service, directeurService, salaire,
F est quivalent F(F F) ssi F+= F+ projet, primeProjet)
service directeurService
F est un ensemble minimal de DF ssi F ne contient pas de
DF X Y : idEmp service, salaire
redondante : F+=(F - { X Y })+ idEmp, projet primeProjet
redondante gauche (partielle) : XX implique XY F+
Ex: {A B, B C, AC D}
Dessiner graphe
AC D redondante gauche

F est une couverture minimale de F ssi Fermeture transitive


F F et
F est un ensemble minimal de DF
Correspondance E/A
35 36

6
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 40

DEUXIEME FORME NORMALE (2NF)


PREMIERE FORME NORMALE (1NF) R (A, B, C, D, E, F)
La relation a une cl. Les attributs sont composs Une relation R est en deuxime forme normale(2FN ou 2NF en Anglais) par rapport un
dune valeur atomique, non multi-value. 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
R (A, B, C, D, E, F) F= {idEmp idService, nom, salaire, nomService}

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


idEmp)

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


41 42

7
TROISIEME FORME NORMALE (3NF) Algorithme de dcomposition
- 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)
- Construire la relation universelle R, relation compose de tous les attributs
Une relation est en troisime forme normale si tous les attributs non cl sont en - Dterminer la cl primaire de la relation R, partir de MIN(F).
dpendance fonctionnelle lmentaire directe avec la cl. Il ne doit pas y avoir de - Pour chaque dpendance fonctionnelle, tant que la dpendance fonctionnelle ne contient
dpendance fonctionnelle entre des attributs non cl 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 La relation R (A, B, C) avec la DF {B>C} nest pas en 3 FN,
attributs non cl vers des attributs de la cl
elle sera dcompose en R (A, B) et R2 (B, C)
Exemple:
employe(idEmp, nom, salaire, idService, nomService, directeur) - Appliquer le processus de dcomposition sur les relations obtenues jusqu' l'obtention de
avec relations en 3FN. La dcomposition peut tre reprsente sous forme d'arbre, les feuilles de
F= {idEmp (nom, Salaire,idService), idService (nomService, directeur}) 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 44

A,B
A
C, E
F
Forme normale de Boyce-Codd
Observation: En 3FN, on peut encore avoir des DF transitives si les attributs dpendants
F D, G, H sont dans la cl.
D I, J, K
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
R (A, B, C, D, E, F, G, H, I, J, K) 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
R1 (A, B, C, E) R2 (A, D, F, G, H, I, J, K)
Cette dcomposition est SPI mais nest pas SPD

Exemple:
R21 (A, F) R22 (F, D, G, H, I, J, K) Projet (idEmp, idProjet, role, lieu)
avec { (idEmp, idProjet) (role, lieu), lieu idProjet }
Non BCFN

R221 (F, D, G, H) R222 (D, I, J, K) Dcomposition: Projet (idEmp, idProjet role) , Location (lieu, idProjet)

45 46

DEPENDANCES MULTIVALUEES QUATRIEME FORME NORMALE (4 NF)


idEtudiant filire sport
Soit R(X, Y, Z), si (x, y, z) R et (x, y, z) R (x, y, z) R, 10454 Mathmatique Football
(x, y, z) R
Alors 10454 Philosophie Musculation
X Y (et donc aussi X Z) 10454 Philosophie Football
10454 Mathmatique Musculation
Il existe une dpendance multivalue entre X et Y. 15838 Informatique Football

Remarque: les DF sont un cas particulier de DM

y1 z1 idEtudiant filire idEtudiant sport


10454 Mathmatique 10454 Football
x1 6 n-uplets dans la table
y2 10454 Philosophie 10454 Musculation
15838 Informatique 15838 Football
y3 z2
47 48

8
QUATRIEME FORME NORMALE (4 NF) QUATRIEME FORME NORMALE (4 NF)
Une relation est en quatrime forme normale si les a1 b1 c1
seules dpendances multivalues qui existent sont a1 b2 c1
R (A, B, C)
des dpendances fonctionnelles. a2 b1 c3
a1 b1 c2
R (A, B, C) a1 b2 c2
a2 b1 c2
a1 b1 c1
R1 (A, B) R2 (A, C)
a1 b2 c1
a2 b1 c3 a1 c1
a1 b1 c2
La relation R nest pas en 4FN a1 b1
a2 c3
a1 b2
a1 b2 c2 a1 c2
a2 b1
a2 b1 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
R (A, B, C) Dpendance de jointure
a1 b2 c1
Soit R(A1, A2, , An) un schma de relation et X1, X2,
a2 b1 c3
, Xm des sous-ensembles de (A1, A2, , An). On dit
a1 b1 c2 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)
La relation R est en 4FN R = R1(X1) R2(X2) Rm(Xm)
(Pas de n-uplet (a1, b2, c2)) 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) CINQUIEME FORME NORMALE (5 NF)


idVendeur organisme produit
a1 b1
1 CNT Assurance-vie
2 AXT Crdit immo R (A, B, C) a1 b2
a2 b1
1 CNT Crdit immo
2 CNT Crdit immo R3 (B, C) a2 b2
R1 (A, B) R2 (A, C)
2 AXT Crdit conso a1 c1

idVendeur organisme a1 b1 c1 a1 c2
idVendeur produit
1 CNT 1 Assurance-vie a1 b2 c1 a2 c2
2 AXT 1 Crdit immo a2 b1 c3 a2 c3
2 CNT 2 Crdit immo b1 c1
a1 b1 c2
organisme produit 2 Crdit conso a1 b2 c2 b1 c3
CNT Assurance-vie
a2 b2 c2 b1 c2
CNT Crdit immo
a2 b1 c2 b2 c2
AXT Crdit immo
AXT Crdit conso 53 54

9
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
- Sur cls primaires, cls trangres moins nombreuses (amlioration des performances des
consultations)
- Sur dautres attributs La taille de la base est augmente tant donn les
redondances
Consquences sur :
Les insertions entranent la rpercussion des mises jour
Les algorithmes de recherche, donc sur les performances sur plusieurs n-uplets (mises jour pnalises)
La taille de la base est augmente de la taille des index
Les insertions entranent une mise jour des index Rpartition verticale ou horizontale des tables
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
Standard tabli pour les SGBD relationnel Plusieurs mise--jour du langage:
SQL1: premire version standardise (1986,1987)
Driv de lalgbre relationnel
SQL2: mise jour majeure (type date, oprations
ensemblistes, )
SQL est un langage o lutilisateur dcrit le rsultat SQL3: dclencheurs, types composites, fonctionnalits
obtenir orientes objets,
SQL est non-procdural: le SGBD dtermine SQL:2003, SQL:2006, SQL:2008,
lenchanement des traitement effectuer afin
dobtenir le rsultat Variations par rapport au SQL standard propre
chaque SGBD

10
Dictionnaire de donnes
Langages de requtes Tables contenant les informations sur les objets de la base
Langage de Dfinition de Donnes (LDD): (mtadonnes)
Dfinition des relations, contraintes dintgrit
Normalis dans le standard SQL:
Dfinition des vues DEFINITION_SCHEMA (Tables, non directement accessibles)
INFORMATION_SCHEMA (Vues)
Dfinition des index (non standardise)
Dfinitions des droits: GRANT, REVOKE Sous Oracle, les vues du dictionnaires ont des noms de la forme:
Contrle de transaction: COMMIT, ROLLBACK, USER_<Objet> : objets appartenant lutilisateur courant
ALL_<Objet> : objets accessibles lutilisateur courant
DBA_<Objet> : tous les objets de la base (vue rserve
Langage de Manipulation de Donnes (LMD): ladministrateur)
Interrogation: SELECT
Quelques tables du dictionnaires : DICTIONARY (DICT),
Dfinition, modification, suppression: INSERT, UPDATE, USER_TABLES (TABS), USER_TAB_COLUMNS (COLS),
DELETE USER_USERS,

Type SQL: Numrique exact Type SQL: Numrique Rel


INTEGER (ou INT) REAL
Entier (prcision non standardise)
Point flottant (prcision non standardise)
Exemples : 2, 3, 459
Exemples : 3.27E-4, 24E5
SMALLINT
Petit entier (prcision non standardise)
DOUBLE PRECISION
Exemples : 2, 3, 459 Point flottant double prcision (non standardise)

NUMERIC(p, c) (ou DECIMAL(p, c) ou DEC(p, c)) Exemples : 3.27265378426E-4, 24E12

Nombre dcimal avec p chiffres au total, dont c chiffres aprs la FLOAT(n)


virgule
Point flottant
Exemples : 2.5, 456.342, 6
prcision minimale est de n chiffres pour la mantisse
Exemples : 3.27E-4, 24E5
Sous Oracle, tous ces types sont quivalent NUMBER (par
exemple, INT NUMBER(38))

Type SQL: Chane de caractres Type SQL: Date


Chane de caractres (VARYING et NATIONAL : SQL2 intermdiaire) Date et temps
CHARACTER(n) DATE
Chane de caractre de taille fixe gale n anne (quatre chiffres), mois (2 chiffres) et jour (2 chiffres)
Exemple : DATE '1998-08-25'
CHARACTER VARYING (n)
TIME[(p)]
Taille variable (max de n caractres) heure (2 chiffres), minutes (2 chiffres), secondes (2 +p chiffres)
NATIONAL CHARACTER(n) Exemple : TIME '14:04:32.25'
Ensemble de caractres alternatif spcifique l'implmentation TIMESTAMP[(p)]
NATIONAL CHARACTER VARYING(n) DATE + TIME
Taille variable Exemple : TIMESTAMP '1998-08-25 14:04:32.25'
INTERVAL
Reprsente un intervalle de temps.
Sous oracle:
CHARACTER CHAR Sous Oracle:
CHARACTER VARYING VARCHAR2 Date: prcision jusqu une seconde, format par dfaut dpend de la
configuration su SGBD (sous Codd; DD-MON-YY)
NATIONAL CHARACTER NCHAR TIMESTAMP, TIMESTAMP WITH TIME ZONE, INTERVAL YEAR
NATIONAL CHARACTER VARYING NVARCHAR2 TO MONTH, INTERVAL DAY TO SECOND

11
Type: autres Rappel SQL
Boolen CREATE TABLE (
Binaire long (SQL3) NomCol1 TYPE,
BINARY LARGE OBJECT (n) (BLOB(n))

Longue chane de caractre (SQL3)
CHARACTER LARGE OBJECT (n) (CLOB(n))
NomColn TYPE,
NATIONAL CHARACTER LARGE OBJECT (n) (NCLOB(n)) PRIMARY KEY (Col1, ),
FOREIGN KEY (Col1, )
Sous Oracle: REFERENCES tableEtrangres(ColEt1, )
Pas de type boolen
BLOB, CLOB, NCLOB disponible (4GB)
);

Jointures
Slection Syntaxe jointure SQL2 pour oracle:
plus explicite sur le type de jointure utilis
Extrait les conditions de jointures des critres de restrictions
Syntaxe
Jointure naturelle: NATURAL JOIN
SELECT [DISTINCT] col1 AS alias_col1, , coln Exemple:
SELECT * FROM dpt NATURAL JOIN empt;
FROM table t1, , table tn WHERE
Colonne de mme nom doit exister dans les deux tables
WHERE ;
Jointure: JOIN/ INNER JOIN ON
Exemple:
SELECT * FROM emp e1 INNER JOIN emp e2 ON e1.mgr=e2.emp
Oprations ensemblistes sur le rsultat des requtes WHERE ;
SQL: <req1> UNION| INTERSECT | EXCEPT <req2>
Jointure externe: LEFT/RIGHT/FULL OUTER JOIN
ORACLE: <req1> UNION| INTERSECT | MINUS <req2> 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

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 SELECT deptno, count(empno) as nbEmp from emp
GROUP BY deptno; GROUP BY deptno
HAVING count(empno) > 1;
empno name deptno
7639 SMITH 20 deptno nbEmp empno name deptno
7521 CLARK 20 20 2 7639 SMITH 20 deptno nbEmp
7834 KING 30 30 1 7521 CLARK 20 20 2
8456 SCOTT 40 40 2 7834 KING 30 40 2
6210 TURNER 40 50 1 8456 SCOTT 40
9566 WARD 50 6210 TURNER 40
9566 WARD 50
Colonne rsultat dune requte GROUP BY, uniquement colonne
de groupage ou rsultats de fonctions dagrgation Attention bien distinguer les conditions de restriction sur les n-
uplets (WHERE ) des conditions de restriction sur les groupes
Fonctions dagrgation: AVG, COUNT, MAX, MIN, SUM,
(HAVING )

12
Requtes corrles Tests dexistence
Sous-requte corrle la requte principale: EXISTS / NOT EXISTS

SELECT empno, name FROM emp e1 SELECT deptno FROM dpt


WHERE e1.sal > WHERE EXISTS
( SELECT MAX(e2.sal) FROM emp e2 ( SELECT * FROM emp
WHERE e2.mgr = e1.empno ); 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.
WITH RECURSIVE Chemin(x,y) AS
SELECT empno, name FROM emp e1 (SELECT x,y FROM Arc)
WHERE e1.sal > ALL UNION
( SELECT e2.sal FROM emp e2
WHERE e2.mgr = e1.empno);
(SELECT C1.x, C2.y Table Chemin
FROM Chemin C1, Chemin C2
x y
WHERE C1.y = C2.x)
SELECT * FROM Chemin; 1 3
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. 2 3
Table Arc 3 4
SELECT empno, name FROM emp e1 x y 3 5
WHERE e1.sal > ANY 1 3 1 4
( SELECT e2.sal FROM emp e2
WHERE e2.mgr = e1.empno);
2 3 1 5
3 4 2 4
3 5 2 5

Requtes rcursives (Oracle)


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

Possibilit dutiliser lattribut level pour connaitre la


profondeur de rcursivit

13