Sunteți pe pagina 1din 18

Planning des sances

Bases de donnes
M1 conomie et Socit conomie et Management Finance
Anne 2010-2011
Jrme Darmont

Jour

Horaire

Salle

Vendredi 24/09/10

12h00-13h45

Amphi Say

Vendredi 08/10/08

12h00-13h45

Amphi Say

Vendredi 22/10/08

12h00-13h45

Amphi Say

Vendredi 05/11/08

12h00-13h45

Amphi Say

Vendredi 12/11/08

12h00-13h45

Amphi Say

Vendredi 19/11/08

12h00-13h45

Amphi Say

http://eric.univ-lyon2.fr/~jdarmont/
Bases de donnes

Plan du cours





http://eric.univ-lyon2.fr/~jdarmont/

Organisation en fichiers

Introduction
Modle UML
Modle relationnel
Langage SQL

Saisie

Traitement

Fichier

Utilisateur
Fichier
Utilisateur
Saisie

Traitement

tat de sortie

Utilisateur

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

Limites des systmes fichiers




Particularisation de la saisie et des traitements en


fonction des fichiers
un ou plusieurs programmes par fichier

Contrle en diffr des donnes


augmentation des dlais et du risque derreur

Particularisation des fichiers en fonction des traitements


grande redondance des donnes

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

Organisation base de donnes

Utilisateur
Saisie
+
Contrles

Base de
Donnes

Traitements

tats de sortie

Utilisateur

Utilisateur

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

Avantages de lorganisation BD


Uniformisation de la saisie et standardisation des


traitements (ex. tous les rsultats de consultation sous
forme de listes et de tableaux)

Contrle immdiat de la validit des donnes

Partage de donnes entre plusieurs traitements


limitation de la redondance des donnes

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

Dfinitions

Proprits de lorganisation BD


Usage multiple des donnes

Accs facile, rapide, protg, souple, puissant

Cot rduit de stockage, de mise jour et de saisie

Disponibilit, exactitude, cohrence et protection des


donnes ; non redondance

volution aise et protection de linvestissement de


programmation

Indpendance des donnes et des programmes

Conception a priori

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

Systme de Gestion de Bases de Donnes (SGBD) :


Logiciel(s) assurant structuration, stockage,
maintenance, mise jour et consultation des donnes
dune BD

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

Indpendance physique : un remaniement de


lorganisation physique des donnes nentrane pas de
modification dans les programmes dapplication
(traitements).

Indpendance logique : un remaniement de


lorganisation logique des fichiers (ex. nouvelle rubrique)
nentrane pas de modification dans les programmes
dapplication non concerns.

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

Objectifs des SGBD

Manipulation facile des donnes : un utilisateur noninformaticien doit pouvoir manipuler simplement les
donnes (interrogation et mise jour).

Administration facile des donnes : un SGBD doit fournir


des outils pour dcrire les donnes, permettre le suivi de
ces structures et autoriser leur volution (tche de
ladministrateur de BD).

http://eric.univ-lyon2.fr/~jdarmont/

Base de donnes (BD) : Collection de donnes


cohrentes et structures

Objectifs des SGBD

Objectifs des SGBD

Bases de donnes

10

Efficacit des accs aux donnes : garantie dun bon


dbit (nombre de transactions excutes par seconde)
et dun bon temps de rponse (temps dattente moyen
pour une transaction).

Redondance contrle des donnes : diminution du


volume de stockage, pas de mise jour multiple ni
dincohrence.

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

11

Objectifs des SGBD




Fonctions des SGBD

Cohrence des donnes : ex. Lge dune personne doit


tre un nombre entier positif. Le SGBD doit veiller ce
que les applications respectent cette rgle (contrainte
dintgrit).
Partage des donnes : utilisation simultane des
donnes par diffrentes applications
Scurit des donnes : les donnes doivent tre
protges contre les accs non autoriss ou en cas de
panne.
http://eric.univ-lyon2.fr/~jdarmont/

Bases de donnes

12

Monde
Monderel
rel

Analyse

Conception

Transformation en
modle logique

Bases de donnes

Mise jour des donnes

Transformation des donnes

Contrle de lintgrit des donnes

Gestion de transactions et scurit

Bases de donnes




Schma
Schma
logique
logique

Langage de
Manipulation de
Donnes (LMD)

http://eric.univ-lyon2.fr/~jdarmont/

13

Introduction
Modle UML
Modle relationnel
Langage SQL

Schma
Schma
interne
interne

http://eric.univ-lyon2.fr/~jdarmont/

14

Gnralits

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

15

Classes et attributs

UML : Unified Modeling Language

Ensemble de formalismes graphiques


pour la modlisation oriente objet (analyse)

Auteurs : Rumbaugh, Booch, Jacobson

Standard de lOMG (Object Management Group) depuis


1997, soutenu par de nombreux diteurs de logiciels

Mise en uvre dune BD : transformation dun


diagramme de classes UML en schma logique

Bases de donnes

Recherche des donnes

Spcifique un
SGBD

Conception
physique

Indpendant d'un
SGBD

Schma
Schma
conceptuel
conceptuel

Description des donnes : Langage de Dfinition de


Donnes (LDD)

Plan du cours

Processus de conception dune BD

Spcifications
Spcifications
dedelalaBD
BD

http://eric.univ-lyon2.fr/~jdarmont/

16

Classe : Groupe dentits du monde rel


ayant les mmes caractristiques et le
mme comportement (ex. CLIENT)

Attribut : Proprit de la classe (ex. Nom


et Prnom du client)

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

17

Types dattribut


Type dattribut :





Exemple de classe avec ses attributs

Nombre entier
Nombre rel
Chane de caractres
Date

Valeur par dfaut (=)

http://eric.univ-lyon2.fr/~jdarmont/

Bases de donnes

18

Instances
Classe : ex. CLIENT

Instances (objets) de la classe CLIENT :


les clients






19

Identifiants

http://eric.univ-lyon2.fr/~jdarmont/

Bases de donnes

Liste des clients


Nom
Dupont
West
Martin
Durand
Titgoutte
Dupont
Dupont

Albert Dupont
James West
Marie Martin
Gaston Durand
...

Prnom
Albert
James
Marie
Gaston
Justine
Nomie
Albert

Date de Naissance
01/06/70
03/09/63
05/06/78
15/11/80
28/02/75
18/09/57
23/05/33

Etc.
...
...
...
...
...
...
...

Problme : Comment distinguer les Dupont ?


http://eric.univ-lyon2.fr/~jdarmont/

Bases de donnes

20

Identifiants


Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

21

Identifiants

Solution : Ajouter un attribut Numro de client !


Numro
1110
2002
3333
4042
5552
6789
7000

Bases de donnes

Nom
Dupont
West
Martin
Durand
Titgoutte
Dupont
Dupont

Prnom
Albert
James
Marie
Gaston
Justine
Nomie
Albert

http://eric.univ-lyon2.fr/~jdarmont/

Date de Naissance
01/06/70
03/09/63
05/06/78
05/11/80
28/02/75
18/09/57
23/05/33

22

Le numro de client est un attribut identifiant. Un


identifiant caractrise de faon unique les instances
dune classe.

NB : Dans le paradigme objet (OO), un objet est dj


identifi par son OID (Object IDentifier). La finalit de
notre utilisation dUML ntant pas OO, nous ajouterons
un attribut identifiant.

Convention graphique :
NB : Ne pas confondre avec
les attributs de classe UML
dont cest la notation usuelle

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

23

Associations


Associations rcursives et rles

Dfinition : liaison perue entre des classes


ex. Les clients commandent des produits.

Les classes CLIENT et PRODUIT peuvent tre qualifies de


participantes lassociation COMMANDE.

Degr ou arit dune association : nombre de classes participantes.


En gnral : associations binaires (de degr 2).

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

24

Multiplicit (ou cardinalit)









1
0..1
0..* ou *
1..*
M..N

Association rcursive : une mme instance de classe


peut jouer plusieurs rles dans la mme association
(ex. employs et suprieurs hirarchiques).

Rle : fonction de chaque


classe participante (+).

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

25

Associations 1-1

Dfinition : Indicateur qui montre combien dinstances de


la classe considre peuvent tre lies une instance
de lautre classe participant lassociation


ex. Un client donn ne commande quun seul produit. Un


produit donn nest command que par un seul client.

Un et un seul
Zro ou un
Zro ou plus
Un ou plus
De M N (M, N entiers)
Lire "Un client commande multiplicit (1) produit(s)".

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

26

Associations 1-N


NB : La multiplicit un plusieurs (1..*) peut aussi tre


zro plusieurs (0..* ou *).

http://eric.univ-lyon2.fr/~jdarmont/

http://eric.univ-lyon2.fr/~jdarmont/

27

Associations 0 ou 1-N

ex. Un client donn commande plusieurs produits. Un


produit donn nest command que par un seul client.

Bases de donnes

Bases de donnes

ex. Un client donn commande plusieurs produits. Un


produit donn est command au maximum par un client,
mais peut ne pas tre command.

NB : La multiplicit un plusieurs (1..*) peut aussi tre


zro plusieurs (0..* ou *).
28

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

29

Associations M-N


Classes-associations


ex. Un client donn commande plusieurs produits. Un


produit donn est command par plusieurs clients.

Dans une association M-N, il est possible de


caractriser lassociation par des attributs (qui par
dfinition doivent appartenir une classe).
ex. Une commande est passe une Date donne et concerne
une Quantit de produit fixe.

NB : Les multiplicits un plusieurs (1..*) peuvent


aussi tre zro plusieurs (0..* ou *).
Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

30

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

Exemple complet

Exemple complet

Notes dexamen : Spcifications

Notes dexamen : Spcifications (suite)

Les tudiants sont caractriss par un numro unique,


leur nom, prnom, date de naissance, rue, code postal
et ville.

Ils passent des preuves et obtiennent une note pour


chacune.

Les preuves sont caractrises par un code, ainsi que


la date et le lieu auxquels elles se droulent.

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

32

Exemple complet


Marche suivre pour produire un diagramme


de classes UML :

1.

Identifier les classes.

2.

Identifier les associations entre les classes.

3.

Identifier les attributs de chaque classe et de chaque


classe-association.

4.

valuer la multiplicit des associations.

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

Chaque preuve relve d'une matire unique (mais une


matire donne peut donner lieu plusieurs preuves).

Les matires sont caractrises par un code et un


intitul.

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

31

33

Exemple complet

34

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

35

Plan du cours





Gnralits

Introduction
Modle UML
Modle relationnel
Langage SQL

Le modle relationnel est un modle logique associ aux


SGBD relationnels (ex. Oracle, SQL Server, DB2,
MySQL, Access).

Objectifs du modle relationnel :







Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

36

Langages dinterrogation puissants et dclaratifs

Accs orient valeur

Grande simplicit, absence de considrations physiques

Description du schma trs rduite

LDD intgr au LMD

Grande dynamique de structure

Optimisation de requtes

Utilisation interactive ou partir dun langage hte


http://eric.univ-lyon2.fr/~jdarmont/

37

Une relation R est un ensemble dattributs {A1, A2, , An}.

Chaque attribut Ai prend ses valeurs dans un domaine


dom(Ai).
ex. Note [0, 20]
Lieu {'Amphi Say', 'Amphi Aubrac',
'Salle 201', 'Salle 301', }

38

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

39

Contraintes dintgrit

Un n-uplet t est un ensemble de valeurs t = <V1, V2, , Vn>


o Vi dom(Ai) ou Vi est la valeur nulle (NULL).

ex. <'InfoS2', '30-06-2011', 'Amphi Say'> est un n-uplet de


la relation EPREUVE.


http://eric.univ-lyon2.fr/~jdarmont/

ex. La relation EPREUVE est lensemble des attributs


{CodeEpreuve, Date, Lieu}


N-uplets


Bases de donnes

Relations et attributs

Caractristiques des systmes relationnels

Bases de donnes

Indpendance physique
Traitement du problme de redondance des donnes
LMD non procduraux (faciles utiliser)
Devenir un standard

Notation : R (A1, A2, , An)

ex. CodeEpreuve est cl primaire de la relation EPREUVE.




ex. EPREUVE (CodeEpreuve, Date, Lieu)

Cl primaire : Ensemble dattributs dont les valeurs


permettent de distinguer les n-uplets les uns des autres
(notion d'identifiant).

Cl trangre : Attribut qui est cl primaire dune autre


relation.
ex. Connatre la matire dont relve chaque preuve
ajout de lattribut CodeMat la relation EPREUVE

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

40

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

41

Contraintes dintgrit en pratique

Contraintes dintgrit


(au niveau des n-uplets)

Notations : Cls primaires soulignes, cls trangres


postfixes par le caractre #.
CodeEpr

Date

Lieu

Codemat#

ECOS101

15/01/2011

Amphi Say

ECO

Contraintes de domaine : Les attributs doivent respecter


une condition logique.

ECOS102

16/01/2011

Amphi Say

ECO

ex. Note 0 ET Note 20

GESS201

25/05/2011

Salle 201

GES

INFOS101

20/01/2011

Salle 101

INFO

ex. EPREUVE (CodeEpreuve, Date, Lieu, CodeMat#)




Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

42

Traduction UML-relationnel
1.

MATIERE

EPREUVE

Bases de donnes

Codemat

Intitul

ECO

conomie

GES

Gestion

INFO

Informatique

http://eric.univ-lyon2.fr/~jdarmont/

43

Traduction UML-relationnel

Chaque classe devient une relation. Les attributs de la


classe deviennent attributs de la relation. Lidentifiant de
la classe devient cl primaire de la relation.

2.

Chaque association 1-1 est prise en compte en incluant la


cl primaire dune des relations comme cl trangre dans
lautre relation.
ex. Si un tudiant peut possder une (et une seule) carte
CUMUL, on aura :

ex. ETUDIANT (NumEtu, Nom, Prnom,


DateNaiss, Rue, CP, Ville)

CARTE (NumCarte, Crdit, )


ETUDIANT (NumEtu, Nom, Prnom, DateNaiss,
Rue, CP, Ville, NumCarte#)

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

44

Traduction UML-relationnel
3.

ex. EPREUVE (CodeEpreuve, Date, Lieu, CodeMat#)

45

4.

Chaque association M-N est prise en compte en crant


une nouvelle relation dont la cl primaire et la
concatnation des cls primaires des relations
participantes. Les attributs de la classe-association sont
insrs dans cette nouvelle relation si ncessaire.
ex. PASSE (NumEtu#, CodeEpreuve#, Note)

MATIERE (CodeMat, Intitul)

http://eric.univ-lyon2.fr/~jdarmont/

http://eric.univ-lyon2.fr/~jdarmont/

Traduction UML-relationnel

Chaque association 1-N est prise en compte en incluant la


cl primaire de la relation dont la multiplicit maximale est
1 comme cl trangre dans lautre relation.

Bases de donnes

Bases de donnes

46

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

47

Traduction UML-relationnel


Problme de la redondance

Schma relationnel complet de lexemple

[En dehors des cls trangres]


ex. Soit la relation COMMANDE_PRODUIT.


ETUDIANT (NumEtu, Nom, Prnom, DateNaiss,


Rue, CP, Ville)
NumProd
101
104
112
103

EPREUVE (CodeEpreuve, Date, Lieu, CodeMat#)


MATIERE (CodeMat, Intitul)

Quantit
300
1000
78
250

NumFour
901
902
904
901

Adresse
Quai des brumes
Quai Claude Bernard
Quai des Marans
Quai des brumes

PASSE (NumEtu#, CodeEpreuve#, Note)


Cette relation prsente diffrentes anomalies.
Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

48

Anomalies de modification : Si lon souhaite mettre jour


ladresse dun fournisseur, il faut le faire pour tous les nuplets concerns.

Anomalies dinsertion : Pour ajouter un fournisseur


nouveau, il faut obligatoirement fournir des valeurs pour
NumProd et Quantit.

Anomalies de suppression : Ex. La suppression du


produit 104 fait perdre toutes les informations
concernant le fournisseur 902.

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

50

Dpendances fonctionnelles


http://eric.univ-lyon2.fr/~jdarmont/

49

Objectifs de la normalisation

Anomalies lies la redondance




Bases de donnes

Suppression des problmes de mise jour

Minimisation de lespace de stockage


(limination des redondances)

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

51

Proprits des DF

Soit R (X, Y, Z) une relation o X, Y, et Z sont des


ensembles dattributs. Z peut tre vide.

Rgles d'infrence d'Armstrong

Dfinition : Y dpend fonctionnellement de X (X Y) si


cest toujours la mme valeur de Y qui est associe X
dans la relation R.

Rflexivit :
Si Y X alors X Y.

Augmentation :
Si W Z et X Y alors X, Z Y, W.

Transitivit :
Si X Y et Y Z alors X Z.

ex. PRODUIT (NumProd, Dsi, Prix)


DF possibles :

Bases de donnes

NumProd Dsi
Dsi Prix
http://eric.univ-lyon2.fr/~jdarmont/

52

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

53

Proprits des DF

Premire forme normale

Pseudo-transitivit :
Si X Y et Y, Z T alors X, Z T.

Une relation est en 1FN si tout attribut nest pas


dcomposable.

Union :
Si X Y et X Z alors X Y, Z.

ex. Les relations PERSONNE (Nom, Prnoms, Age) et


DEPARTEMENT (Nom, Adresse, Tel) ne sont pas en
1FN si les attributs Prnoms et Adresse peuvent tre du
type [Jean, Paul] ou [Rue de Marseille, Lyon].

Dcomposition :
Si Z Y et X Y alors X Z.

NB : La notation X, Y signifie X Y.

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

54

Deuxime forme normale




Bases de donnes

ex. La relation CLIENT (NumCli, Nom, Prnom,


DateNaiss, Rue, CP, Ville) est en 2FN.

http://eric.univ-lyon2.fr/~jdarmont/

Une relation est en 3FN si :


 elle est en 2FN ;
 il nexiste aucune DF entre deux attributs non cl
primaire.

ex. La relation MUSIQUE (NoChanson, NoChanteur,


Nom) avec les DF

ex. La relation COMMANDE_PRODUIT (NumProd,


Quantit, NumFour, Ville) nest pas en 2FN car on a :
NumProd, NumFour Qt et NumFour Ville.
La dcomposition suivante donne deux relations en 2FN :
COMMANDE (NumProd, NumFour, Quantit)
FOURNISSEUR (NumFour, Ville).

56

Troisime forme normale




Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

Anomalies de mise jour sur la relation MUSIQUE : il


nest pas possible dintroduire un nouveau chanteur sans
prciser la chanson correspondante.

La dcomposition suivante donne deux relations en 3FN


qui permettent de retrouver (par transitivit) toutes les
DF :
R1 (NoChanson, NoChanteur) ;

NoChanson Nom est en 2FN, mais pas en 3FN.

R2 (NoChanteur, Nom).

http://eric.univ-lyon2.fr/~jdarmont/

57

Troisime forme normale

NoChanson NoChanteur, NoChanteur Nom et

Bases de donnes

55

Deuxime forme normale

Une relation est en 2FN si :


 elle est en 1FN ;
 tout attribut non cl primaire est dpendant de la cl
primaire entire.

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

58

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

59

10

Algbre relationnelle

Oprateurs ensemblistes

Ensemble doprateurs qui sappliquent aux relations

Rsultat : nouvelle relation qui peut son tour tre


manipule

Lalgbre relationnelle permet deffectuer des recherches


dans les relations.

Union : T = R S ou T = UNION (R, S)


R et S doivent avoir mme schma.
ex. R et S sont les relations PRODUIT de deux socits
qui fusionnent et veulent unifier leur catalogue.
Notation graphique :

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

60

Oprateurs ensemblistes


http://eric.univ-lyon2.fr/~jdarmont/

Bases de donnes

Oprateurs ensemblistes

Intersection : T = R S ou
T = INTERSECT (R, S)
R et S doivent avoir mme schma.

Diffrence : T = R - S ou T = MINUS (R, S)


R et S doivent avoir mme schma.
ex. Permet de retirer les produits de la relation S
existant dans la relation R.

ex. Permet de trouver les produits communs aux


catalogues de deux socits.

Notation graphique :

Notation graphique :

R
Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

62

Oprateurs ensemblistes


61

http://eric.univ-lyon2.fr/~jdarmont/

Bases de donnes

63

Produit cartsien

Produit cartsien : T = R x S
ou T = PRODUCT (R, S)

ex.

Associe chaque n-uplet de R chaque n-uplet de S.

NumProd
0
1

Dsi
P1
P2

NumFour
10
20
30

RaisonSoc
F1
F2
F3

NumFour
10
10
20
20
30
30

RaisonSoc
F1
F1
F2
F2
F3
F3

Notation graphique :

T
x
R

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

64

Bases de donnes

NumProd
0
1
0
1
0
1

Dsi
P1
P2
P1
P2
P1
P2

http://eric.univ-lyon2.fr/~jdarmont/

65

11

Oprateurs ensemblistes


Division
ex.

Division : T = R S ou T = DIVISION (R, S)

NumCli
1
1
1
2
3
3

R (A1, A2, , An) S (Ap+1, , An)


T (A1, A2, , Ap) contient tous les n-uplets tels que leur
concatnation chacun des n-uplets de S donne toujours
un n-uplet de R.
Notation graphique :

Date
22/09/99
22/09/99
10/10/99
15/10/99
22/09/99
10/10/99

Quantit
1
5
2
9
1
2

Date
Quantit
22/09/99
1
10/10/99
2

R
Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

66

Oprateurs spcifiques


Bases de donnes

NumCli
1
3

http://eric.univ-lyon2.fr/~jdarmont/

67

Oprateurs spcifiques

Projection : T = <A, B, C> (R)


ou T = PROJECT (R / A, B, C)

T ne contient que les attributs A, B et C de R.


ex. Noms et prnoms des clients.

Restriction : T = <C> (R)


ou T = RESTRICT (R / C)
T ne contient que les attributs de R qui satisfont la
condition C.
ex. C = Clients qui habitent Lyon.

Notation graphique :

Notation graphique :

A, B, C
C

R
Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

68

69

Commandes avec le nom du client (et pas seulement


son numro)

Jointure naturelle : T = R >< S


ou T = JOIN (R, S)
Produit cartsien R x S et restriction A = B sur les
attributs A R et B S.

Nom, Date,
Quantite

Notation graphique :

T
A
R

NumCli

NumCli
=
CLIENT COMMANDE

B
S
*Requte

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

Exemple de requte*

Oprateurs spcifiques


Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

70

Bases de donnes

: enchanement doprations
http://eric.univ-lyon2.fr/~jdarmont/

71

12

Exemple de requte

Exemple de requte

Dcomposition des oprations


CL

CO

NumCli
1
2
3

Nom
C1
C2
C3

NumCli
1
3
3

Date Quantit
22/09/99
1
22/09/99
5
22/09/99
2

http://eric.univ-lyon2.fr/~jdarmont/

Bases de donnes

72

Exemple de requte
CL >< CO
CL.NumCli
1
3
3
Nom
C1
C3
C3

Nom
C1
C3
C3

CO.NumCli
1
3
3

Date Quantit
22/09/99
1
22/09/99
5
22/09/99
2

http://eric.univ-lyon2.fr/~jdarmont/

74

Plan du cours





CO.NumCli
1
1
1
3
3
3
3
3
3

Date Quantit
22/09/99
1
22/09/99
1
22/09/99
1
22/09/99
5
22/09/99
5
22/09/99
5
22/09/99
2
22/09/99
2
22/09/99
2

http://eric.univ-lyon2.fr/~jdarmont/

73

http://eric.univ-lyon2.fr/~jdarmont/

Niveau 1 : Systmes non relationnels.


Supportent uniquement la structure tabulaire.

Niveau 2 : Systmes relationnellement minimaux.


Permettent les oprations de slection, projection et
jointure.

Niveau 3 : Systmes relationnellement complets. Toutes


les oprations de lalgbre relationnelle.

Niveau 4 : Systmes relationnellement pleins.


Permettent la dfinition des contraintes dintgrit.

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

75

Gnralits

Introduction
Modle UML
Modle relationnel
Langage SQL

Bases de donnes

Bases de donnes

Nom
C1
C2
C3
C1
C2
C3
C1
C2
C3

Classification des SGBD relationnels

Date Quantit <Nom, Date, Quantit> (CL >< CO)


22/09/99
1
22/09/99
5 (Projection sur les attributs Nom,
22/09/99
2 Date, Quantit)

Bases de donnes

CL.NumCli
1
2
3
1
2
3
1
2
3

76

SQL : Structured Query Language, issu de SEQUEL


(Structured English as a QUery Language)

SQL permet la dfinition, la manipulation et le contrle


dune base de donnes relationnelle. Il se base sur
lalgbre relationnelle.

SQL est un standard depuis 1986.

Nous adoptons dans ce chapitre la syntaxe du SQL


d'Oracle (trs proche de la norme).

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

77

13

Types de donnes principaux




NUMBER(n) : nombre entier n chiffres

NUMBER(n, m) : nombre rel n chiffres au total


(virgule comprise) et m chiffres aprs la virgule

Contraintes dintgrit


Mot cl CONSTRAINT

Identification par un nom de contrainte

Cl primaire :
PRIMARY KEY (cl)

VARCHAR(n) : chane de caractres de taille n

DATE : date au format JJ-MM-AAAA

Cl trangre :
FOREIGN KEY (cl) REFERENCES table(attribut)

Contrainte de domaine :
CHECK (condition)

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

78

Dfinition des donnes


ex.
CREATE TABLE Client (

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

79

Modifications structurelles

NumCli NUMBER(8),
Nom VARCHAR(1000),
DateNaiss DATE,
Salaire NUMBER(8,2),
NumEmp NUMBER(3),

Ajout dattributs
ALTER TABLE nom_table ADD (attribut TYPE, );
ex. ALTER TABLE Client ADD (tel NUMBER(8));

Modifications dattributs
ALTER TABLE nom_table MODIFY (attribut TYPE, );

CONSTRAINT Cle_pri PRIMARY KEY (NumCli),

ex. ALTER TABLE Client MODIFY (tel NUMBER(10));


CONSTRAINT Cle_etr FOREIGN KEY (NumEmp)
REFERENCES Employeur(NumEmp),

ex. ALTER TABLE Client DROP COLUMN tel;

);
Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

80

Modifications structurelles


Suppression d'attributs
ALTER TABLE nom_table DROP COLUMN attribut, ...;

CONSTRAINT Sal_ok CHECK (Salaire >= 1286.09)

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

81

Index

Ajout de contrainte
ALTER TABLE nom_table
ADD CONSTRAINT nom_contrainte dfinition_contrainte;
ex. ALTER TABLE Client
ADD CONSTRAINT sal_ok CHECK (salaire > 0);

Dfinition : Structure de donnes physique permettant


d'acclrer les accs aux donnes

Exemple :
CREATE INDEX Idx_etu ON Etudiant (Nom);

Suppression de contrainte
ALTER TABLE nom_table DROP CONSTRAINT nom_contrainte;

ex. ALTER TABLE Client


DROP CONSTRAINT sal_ok;

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

82

NB : La cl primaire d'une relation est


automatiquement indexe.

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

83

14

Mise jour des donnes




Interrogation des donnes




Ajout dun n-uplet


ex. INSERT INTO Produit
VALUES (400, Nouveau produit, 78.90);

Par lexemple, sur la base ETUDIANTS


ETUDIANT (NumEtu, Nom, Prnom, DateNaiss,
Rue, CP, Ville)

Modification de la valeur dun attribut

EPREUVE (CodeEpreuve, Date, Lieu, CodeMat#)

ex. UPDATE Etudiant SET Nom=Dudule


WHERE NumEtu = 333333;

MATIERE (CodeMat, Intitul)


PASSE (NumEtu#, CodeEpreuve#, Note)

Suppression de n-uplets
ex. DELETE FROM Etudiant
WHERE Ville = Lyon;

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

84

toile, tri et champs calculs




Tous les n-uplets dune table : toile (*)


ex. SELECT * FROM Etudiant;

Tri du rsultat
ex. Par ordre alphabtique [inverse] de nom
SELECT * FROM Etudiant
ORDER BY Nom [DESC];

http://eric.univ-lyon2.fr/~jdarmont/

http://eric.univ-lyon2.fr/~jdarmont/

85

Projection et restriction

Champs calculs
ex. Transformation de notes sur 20 en notes sur 40
SELECT Note * 2 FROM Passe;

Bases de donnes

Bases de donnes

86

Oprateurs de restriction

Projection
ex. Noms et Prnoms des tudiants, uniquement (pas les
autres attributs)
SELECT Nom, Prnom FROM Etudiant;

Suppression des doublons


ex. SELECT DISTINCT Nom FROM Etudiant;

Restriction
ex. tudiants qui habitent Lyon
SELECT * FROM Etudiant
WHERE Ville = Lyon;

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

87

Oprateurs de restriction

ex. preuves se droulant aprs le 01/01/2006

ex. tudiants habitant une ville dont le nom se


termine par sur-Sane

SELECT * FROM Epreuve


WHERE Date >= '01-01-2006';

SELECT * FROM Etudiant


WHERE Ville LIKE %sur-Sane;

ex. Notes comprises entre 10 et 20


SELECT * FROM Passe
WHERE Note BETWEEN 10 AND 20;

sur-Sane%
%sur%

commence par sur-Sane


contient le mot sur

ex. Notes indtermines (sans valeur)


SELECT * FROM Passe
WHERE Note IS NULL;

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

88

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

89

15

Oprateurs de restriction

Fonctions dagrgat

ex. Prnoms des tudiants dont le nom est Dupont,


Durand ou Martin
SELECT Prnom FROM Etudiant
WHERE Nom IN (Dupont, Durand, Martin);

NB : Possibilit dutiliser la ngation pour tous ces


prdicats : NOT BETWEEN, NOT NULL, NOT LIKE,
NOT IN.

Elles oprent sur un ensemble de valeurs.

AVG(), VARIANCE(), STDDEV() : moyenne, variance et


cart-type des valeurs

SUM() : somme des valeurs

MIN(), MAX() : valeur minimum, valeur maximum

COUNT() : nombre de valeurs

ex. Moyenne des notes


SELECT AVG(Note) FROM Passe;

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

90

Fonction COUNT et oprateur DISTINCT

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

91

Exemple
Table PASSE

ex. Nombre total de notes

NumEtu
1000
3000
3000

SELECT COUNT(*) FROM Passe;


SELECT COUNT(NumEtu) FROM Passe;

CodeEpreuve
InfoS2
EcoS1
InfoS1

Note
13.0
12.5
15.0

ex. Nombre d'tudiants nots


COUNT(NumEtu) Rsultat = 3
COUNT(DISTINCT NumEtu) Rsultat = 2

SELECT COUNT(DISTINCT NumEtu) FROM Passe;

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

92

Jointure

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

93

Jointure
ex. Idem avec le numro d'tudiant en plus

ex. Liste des notes avec le nom des tudiants

SELECT E.NumEtu, Nom, Prnom, Note


FROM Etudiant E, Passe P
WHERE E.NumEtu = P.NumEtu
ORDER BY Nom, Prnom;

SELECT Nom, Prnom, Note


FROM Etudiant, Passe
WHERE Etudiant.NumEtu = Passe.NumEtu;

NB : Utilisation dalias (E et P) pour allger lcriture +


tri par nom et prnom.

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

94

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

95

16

Jointure

Prdicats dexistence

Jointure exprime avec le prdicat IN

ex. Notes des preuves passes le 23 septembre 2006


SELECT Note FROM Passe
WHERE CodeEpreuve IN (
SELECT CodeEpreuve FROM Epreuve
WHERE Date = 23-09-2006
);

http://eric.univ-lyon2.fr/~jdarmont/

96

Prdicats de dnombrement


SELECT NumEtu, AVG(Note)


FROM Passe
GROUP BY NumEtu;

SELECT NumEtu, COUNT(Note)


FROM Passe
GROUP BY NumEtu;

98

Groupement

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

99

Oprations ensemblistes

ex. Note moyenne pour les tudiants ayant pass


moins de 5 preuves

INTERSECT, MINUS, UNION

SELECT NumEtu, AVG(Note)


FROM Passe
GROUP BY NumEtu
HAVING COUNT(*) < 5;

ex. Code des preuves ayant soit lieu dans l'amphi


136, soit ayant t passes par l'tudiant n2222
SELECT CodeEpreuve FROM Epreuve
WHERE Lieu = 'Amphi 136'
UNION
SELECT CodeEpreuve FROM Passe
WHERE NumEtu = 2222;

La clause HAVING ne sutilise quavec


GROUP BY.

NB : HAVING : valuation de condition sur un rsultat


de groupement (a posteriori)
WHERE : valuation de condition a priori
Bases de donnes

97

ex. Nombre de notes par tudiant

SELECT DISTINCT NumEtu FROM Passe


WHERE Note > ALL [ANY] (
SELECT Note FROM Passe
WHERE NumEtu = 1000
);

Attention :

http://eric.univ-lyon2.fr/~jdarmont/

ex. Moyenne de chaque tudiant

ex. Numros des tudiants qui ont obtenu au moins une


note suprieure chacune [ au moins une] des notes
obtenues par l'tudiant client n1000.

http://eric.univ-lyon2.fr/~jdarmont/

Bases de donnes

Groupement

Prdicats ALL / ANY

Bases de donnes

ex. tudiants qui ont pass au moins une preuve [nont


pass aucune preuve]
SELECT * FROM Etudiant E
WHERE [NOT] EXISTS (
SELECT * FROM Passe P
WHERE E.NumEtu = P.NumEtu );

NB : Il est possible dimbriquer des requtes.

Bases de donnes

Prdicats EXISTS / NOT EXISTS

http://eric.univ-lyon2.fr/~jdarmont/

100

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

101

17

Tutoriel SQL

Plan du cours

Pour approfondir SQL en ligne






Introduction
Modle UML
Modle relationnel
Langage SQL

http://eric.univ-lyon2.fr/~jdarmont/tutoriel-sql/
Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

102

Bases de donnes

http://eric.univ-lyon2.fr/~jdarmont/

103

18

S-ar putea să vă placă și