Académique Documents
Professionnel Documents
Culture Documents
Prsent par Abdoul Aziz Ciss Docteur en Cryptologie, Consultant ITSec LACGAA/FST/ CAD !"ail# ale$ciss%g"ail&co" 'eb# (((&ale$ciss&co" Tel# )) *+, -. -+
Contenu
Prsentation gnrale
Introduction Dfinitions
Modles et langages
Modle Entit-Association Modle relationnel Algbre relationnelle Langage SQL D endances fonctionnelles et nor!alisation
As ects s"st!es
#e rise a rs anne $estion de la concurrence
Conce ts a%ancs
Scurit & ti!isation
2 Dr. CISS-Bases de Donnes
Prsentation gnrale
Introduction
L'ob(ectif de ce cours est d'tudier les rinci es des bases de donnes) des bases de donnes relationnelles lus rcis!ent) et la !ise en rati*ue de ces rinci es. A la fin de ce cours) l'tudiant doit +tre en !esure de dcrire et de !ettre en rati*ue les notions essentielles lies au, bases de donnes) de conce%oir et de !ani uler ces dernires.
Dfinitions
Dfinition -. une base de donnes est un ense!ble d'infor!ations /fic0iers1 artag ar lusieurs utilisateurs. Dfinition 2. une base de donnes est un ense!ble structur de donnes /a1 enregistres sur des su orts accessibles ar l'ordinateur /b1 our satisfaire lusieurs utilisateurs si!ultan!ent/c1 de !anire slecti%e /d1 en un te! s o ortun /e1. /a1 organisation et descri tion des donnes /b1 stoc3age sur dis*ue /c1 artage des donnes /d1 confidentialit des donnes de c0a*ue utilisateur /e1 erfor!ance) efficacit
5 Dr. CISS-Bases de Donnes
SGBD
Dfinition. un s"st!e de gestion de bases de donnes /S$BD1 est un logiciel de 0aut ni%eau *ui er!et de !ani uler les infor!ations stoc3es dans une base de donnes. 7n S$BD er!et de crer et de !aintenir une base de donnes Dfinition d'une base de donnes /!odlisation) s cification des donnes 4 stoc3er1 Construction de la base de donnes /stoc3age effectif des donnes1 Mani ulation des donnes /a(outer) su ri!er) rec0erc0er1 E,e! les. &racle) IBM DB2) M"SQL) PostgreSQL) Microsoft SQL Ser%er) Access) etc.
8 Dr. CISS-Bases de Donnes
#$
Utilisateurs d!une BD
7ne BD est accessible ar lusieurs utilisateurs ) c0acun a%ec des ob(ectifs bien rcis et selon des interfaces dfinies ar le S$BD Il " a trois t" e d'utilisateurs our une BD l'ad!inistrateur de la BD l'utilisateur final le rogra!!eur /d%elo eur d'a lications1 L'ad!inistrateur de la base de donnes se c0arge de l'i! l!entation de celle-ci) assigne ou su ri!e des ni%eau, d'accs au, autres utilisateurs de la BD
## Dr. CISS-Bases de Donnes
Utilisateurs d!une BD
L'utilisateur final de la BD est la ersonne *ui interagit directe!ent a%ec le s"st!e. Il eut +tre un client) un o rateur) etc. Le d%elo eur d'a lications accde 4 une BD %ia des rogra!!es crits dans des langages de 0aut ni%eau tels *ue 9a%a) C::) P;P) etc. E,e! les d'a lications $estion des salaires $estion des co! tes bancaires $estion des rende<-%ous
#2 Dr. CISS-Bases de Donnes
%&ercice
Indi*uer *uel t" e d'utilisateur doit e,cuter les fonctions sui%antes our un s"st!e de aie d'une grande entre rise Ecrire un rogra!!e d'a lication our gnrer et i! ri!er les c0*ues 2. C0anger dans la BD l'adresse d'un e! lo" *ui a d!nag =. Crer un co! te d'utilisateur our un e! lo" nou%elle!ent e!bauc0
-.
#'
(od)les de donnes
7n !odle de donnes est un !o"en our dcrire la for!e logi*ue des donnes. E,e! le >ic0iers lats. accs s*uentiel Modle 0irarc0i*ue. !odle en arborescence Modle rseau. e,tension du !odle 0irarc0i*ue /liens) arborescence1 Modle relationnel. !odle en tables ou relations Modle ob(et. bas sur les ob(ets
#4 Dr. CISS-Bases de Donnes
Relationnel 1974-77
(od)le hirarchi*ue
7n S$BD 0irarc0i*ue rsente les donnes sous for!e d'un arbre /structure arborescente1. E,e! le
Cours
Mat0s
P0"si*ue
C0i!ie
$auss
#6
?e@ton
Bo0r
?e@ton
Monge
(od)le hirarchi*ue
Incon%nients #edondance des donnes Mani ulation difficile de donnes 0trognes AML. une a lication actuelle des S$BD 0irarc0i*ues APat0. langage de na%igation dans un docu!ent AML A*uer". langage d'interrogation d'un docu!ent AML IMS /Infor!ation Manage!ent S"ste!1. S$BD 0irarc0i*ue le lus connu
#7
(od)le rseau
7n S$BD rseau rsente les donnes sous for!e de structures a%ec des liens. E,e! le
C0i!ie
#8 Dr. CISS-Bases de Donnes
Monge
(od)le rseau
7n a%antage ar ra ort au !odle 0irarc0i*ue est la non redondance des donnes. Incon%nients Le sc0!a de la BD de%ient %ite co! le,e *uand la *uantit de donnes est tro i! ortante /co!bien de liens faudra t-il grerB1 Modle trs rigide our une e, loitation future E,e! le. S&C#ACE /S"st!e &ffrant 4 la Clientle des rser%ations d'Affaires et de Couris!e en Euro e1
#" Dr. CISS-Bases de Donnes
%&ercice
le !odle de donnes sui%ant est il 0irarc0i*ue ou rseauB
Plante
CoDt
2#
%&ercice
L'utilisateur doit-il faire a el au LDD ou LMD our acco! lir c0acune des t8c0es sui%antes C0anger l'adresse d'un client 2. Dfinir une table d'in%entaire =. Entrer les infor!ations d'un nou%el e! lo"
-.
2'
(od)le %ntit.+ssociation
27
Pro rit /ou Attribut1 . les entits /et les associations1 sont dcrites ar des ro rits caractrises ar un no! et un t" e Association /dfinition de C0en1. lien entre entits. Elle eut +tre binaire) ternaire ou n-aire.
28 Dr. CISS-Bases de Donnes
%ntit
E?CICE 7ne entit est un conce t our%u dGune e,istence ro re confor!e au, besoins de gestion de lGentre rise Elle eut re rsenter une notion concrte . CLIE?C) EC7DIA?C ou une notion abstraite .C#A9EC) CLIMAC S"non"!es . I?DIL7D7) &B9EC
'$
+ssociation
7ne association est un lien s!anti*ue entre deu, ou lusieurs entits. Sou%ent no!! ar un %erbe ou un substantif S"non"!e . #ELACI&?
'#
Pro1rit
P#&P#IECE . 7ne ro rit est une donne l!entaire er!ettant de dcrire une entit ou une association. Cette donne eut se !esurer ar une %aleur. S"non"!e . ACC#IB7C #E$LES DE BASE . 7ne entit ossde au !oins un attribut /son identifiant . ar e,e! le le ?H de co!!ande1. 7ne association eut ne as a%oir d'attributs
'2
Un diagra33e
''
781e d!entit
Le t" e d'une entit est co! os des l!ents sui%ants son no! la liste de ses attributs) a%ec o tionnelle!ent le do!aine o6 l'attribut rend ses %aleurs. les entiers) les c0aines de caractres) etc. l'indication de l'attribut er!ettant d'identifier l'entit &n dira *u'une entit e est une instance de son t" e E
'4
6es cardinalits
La cardinalit est une notion &BLI$AC&I#E du !odle *ui er!et de rsoudre la *uestion de lGano!alie dGune co!!ande *ui aurait ris la libert de ne oint co! orter de roduits. CGest donc lGe, ression dGune C&?C#AI?CE /une MloiM1 erNue sur le !onde rel) et *ue lGon crit dans le !odle. Par e,e! le) Mil nGest as ossible *uGune co!!ande ne concerne aucun roduitM. Co!!e il sGagit dGe, ri!er des lois) on ne eut our se faire *uGutiliser une autre loi . Pour une occurence de cette entit) co!bien " a-t-il dGoccurrences de lGassociation au,*uelles cette occurrence dGentit artici e) au lus et au !oins B
'5 Dr. CISS-Bases de Donnes
Cardinalits
Association -)7n client donn ne co!!ande *uGun seul roduit. 7n roduit donn nGest co!!and *ue ar un seul client.
CLIENT
1,1
Commande
1,1
PRODUIT
'6
Cardinalits
Association -)? 7n client donn co!!ande lusieurs roduits. 7n roduit donn nGest co!!and *ue ar un seul client.
CLIENT
1,N
Commande
1,1
PRODUIT
'7
Cardinalits
Association O)7n client donn co!!ande lusieurs roduits. 7n roduit donn est co!!and au !a,i!u! ar un seul client !ais eut ne as +tre co!!and.
CLIENT
1,N
Commande
0,1
PRODUIT
'8
Cardinalits
#ecette . Pour calculer la cardinalit) se P&SICI&??E# sur lGentit concerne et regarder E? >ACE co!bien de fois lGune de ses occurrences artici e 4 lGassociation. Puis se DEPLACE# du c5t de lGautre entit et faire la !+!e c0ose dans lGautre sens.
'"
Cardinalits
C A R D IN A L IT E S M IN IM U M : V a le u r D fin itio n O U n e o c c u rre n c e d e l'e n tit p e u t e x is te r s a n s p a rtic ip e r l'a s s o c ia tio n 1 U n e o c c u rre n c e d e l'e n tit p a rtic ip e n c e s s a ire m e n t a u m o in s u n e fo is u n e o c c u rre n c e d 'a s s o c ia tio n E x e m p le u n p ro d u it p e u t n e p a s tre com m and to u te c o m m a n d e c o n c e rn e a u m o in s u n p ro d u it
C A R D IN A L IT E S M A X IM U M : V a le u r D fin itio n 1 U n e o c c u rre n c e d e l'e n tit p a rtic ip e a u p lu s u n e fo is N U n e o c c u rre n c e d e l'e n tit p e u t p a rtic ip e r p lu s ie u rs fo is
4$
Cardinalits
O,1 1,1 ,N 1,N CONFIGURATIONS POSSIBLES : Une occurrence participe au m oins fois et au plus 1 fois l'assocciation Une occurrence participe exactem ent 1 fois l'assocciation Une occurrence peut ne pas participer ou participer plusieurs fois Une occurrence participe au m oins 1 fois, voire plusieurs
4#
6es identifiants
IDE?CI>IA?C DGE?CICE . Pro rit PA#CIC7LIE#E de lGentit telle *ue our c0acune des %aleurs de cette ro rit) il e,iste une occurrence 7?IQ7E de lGentit. #e!ar*ue . Si lGon ne sait as trou%er dGidentifiant 4 une entit) cGest *uGelle nGa eut +tre as dGe,istence ro re. Il ourrait donc sGagir dGune association. Prsentation . LGidentifiant est inscrit en t+te de la liste des ro rits et soulign. Dans les !odles trs denses il eut suffir 4 rsu!er les autres ro rits) our faciliter la lecture.
42 Dr. CISS-Bases de Donnes
Les identifiants
4'
6es identifiants
IDE?CI>IA?C DGASS&CIACI&? . 7ne association ?GA PAS DGIDE?CI>IA?C e, licite . lGassociation d end des entits *uGelle relie. Son identifiant se dduit ar calcul du roduit cartsien des identifiants des entits associes. E,e! le . Pour lGassociation C&?CE#?E *ui relie C&MMA?DE 4 P#&D7IC) lGidentifiant est le roduit cartsien de ?H Co!!ande et ?HProduit.
44 Dr. CISS-Bases de Donnes
46
47
48
5$
(od)le 9elationnel
5'
56
58
Quantit en stock 23 58 79
6$
6#
6'
64
or3alis3e 3ath3ati*ue
7n sc0!a relationnel # est un ense!ble fini de no!s d'attributs A-) A2) X) An. &n crit. # V YA-) A2) X) AnZ A c0a*ue attribut Ai est associ un ense!ble non %ide de %aleurs a eles do!aine de l'attribut Ai et not Di V Do! /Ai1 Soit D le roduit cartsien des ense!bles Di) ie D V D- D2 X Dn. 7ne relation r sur le sc0!a relationnel # est un ense!ble fini de corres ondances r V Yt-) t2) X) t!Z de # sur D.
Dr. CISS-Bases de Donnes
65
or3alis3e 3ath3ati*ue
7ne corres ondance indi%iduelle t3 est a ele tu le /ou ntu le1. Pour tout tu le t a artenant 4 la relation) on note t/Ai1 la %aleur de l'attribut Ai our le tu le t. 7ne condition i! ortante. Pour tout l!ent t de r) on a t/Ai1 Di La cardinalit de r est card(r) = m. Le degr de r est deg(r) = n
66 Dr. CISS-Bases de Donnes
or3alis3e 3ath3ati*ue
E,e! le d'une table 'Lol Q .
Numro 83 84 109 213 214
67
Arrive
H_dpart
Cap Skiring 9:55 St Louis Diourbel Dakar Tamba 12:00 6:00 1:13 8:15
or3alis3e 3ath3ati*ue
Le sc0!a relationnel corres ondant 4 la table RLols S est Lols /?u!ro) D art) Arri%e) ;[d art) ;[arri%1. Do!/?u!ro1 V Y-) 2) =) X) IIIZ. Do!/D art1 V Do!/Arri%e1 V YDa3ar) C0is) St Louis) Ca S3iring)Ca!ba) DiourbelZ. Do!/;[d art1 V Do!/;[arri%1 V YO.OO) O.O-) X) 2=.UW) 2=.UIZ.
68
;otion de cl
La notion de cl est un conce t fonda!ental du !odle relationnel arce *u'elle fournit le !canis!e de base our rcu rer des tu les dans une table d'une BD. La cl d'une relation est le lus etit sous-ense!ble des attributs *ui er!et d'identifier c0a*ue ligne de !anire uni*ue.
6"
7#
72
74
75
6a -aleur ;U66
Dans une relation) la %aleur ?7LL re rsente des donnes !an*uantes) inconnues ou des donnes ina licables. La %aleur ?7LL corres ond 4 une entre non renseigne /non saisie) non introduite) non obligatoire1. 7ne rgle /contrainte d'intgrit de la cl ri!aire1. aucun des attributs de la cl ri!aire ne doit +tre ?7LL /du fait *ue la cl ri!aire identifie de !anire uni*ue les tu les d'une relation1.
76 Dr. CISS-Bases de Donnes
6a -aleur ;U66
La rgle rcdente signifie *ue la saisie des %aleurs our les attributs de la cl ri!aire est obligatoire. 7n attribut n'a artenant as 4 la cl ri!aire eut a%oir la %aleur ?7LL. Attention. la %aleur ?7LL n'est as gale 4 O et ne re rsente aucune %aleur articulire our l'ordinateur.
77
%&ercice
Considrons la table DEPC et les lignes !ontres 4 la suite. Dire si ces les lignes eu%ent +tre ou non insres dans la table DEPC.
DEPARTEMENT 20 10 10 15
78 Dr. CISS-Bases de Donnes
BUDGET 12 700 000 31 575 000 13 500 000 9 200 000 10 500 000
7"
9)gles de 1assage
Association de 1 plusieurs Soit une relation de - 4 lusieurs entre deu, entits A et B. Le assage au !odle logi*ue suit les rgles sui%antes. &n cre les relations /tables1 #A et #B corres ondants res ecti%e!ent au, entits A et B. L'identifiant de B de%ient un attribut de #A Les %entuels identifiants de l'association entre A et B de%iennent des attributs de #A. L'ide est *u'une occurrence de A rfrence l'occurrence de B *ui lui est 4 l'aide d'une cl trangre. Dr. CISS-Bases deassocie Donnes
8$
+ssociation # , 1lusieurs
8#
82
8'
%&ercice
&n sou0aite infor!atiser des co!!andes et l'dition des additions d'un restaurant en utilisant une base de donnes. Le restaurant dis ose de lusieurs tables) c0acune identifie ar un nu!ro et le no!bre de con%i%es *u'elle eut rece%oir. Plusieurs ser%eurs tra%aillent dans le restaurant. 7ne table est tou(ours ser%ie ar un et un seul ser%eur. C0a*ue ser%eur est identifi ar un nu!ro) a un no! et un grade. 7n ser%eur est affect ar (ournes entires 4 une ou lusieurs tables. Les co!!andes) identifies ar un nu!ro) corres ondent tou(ours 4 une table uni*ue. &n connait l'0eure et la date d'encaisse!ent) le !ontant total) ainsi *ue le !o"en de aie!ent utilis. C0a*ue co!!ande orte sur un ou lusieurs lats. Les lats sont identifis ar un nu!ro) ont un no!) un t" e /entre) dessert) X1. Dans une co!!ande) c0a*ue ligne corres ond 4 un lat co!!and en une certaine *uantit. Crer un sc0!a EEA uis le traduire en !odle relationnel.
84 Dr. CISS-Bases de Donnes
%&ercice
Donne< le sc0!a relationnel corres ondant au !odle conce tuel sui%ant.
85
86
88
Cration d!une BD
Cration dune table . Cette o ration donne co!!e rsultat une table %ide /ne contenant aucun enregistre!ent1. Il faut rciser . Le no! de la tableT La descri tion de ses colonnes . no!) t" e de donnes et contraintes. SQL dis ose d'un no!bre de t" es de donnes . nu!ri*ues) al 0anu!ri*ues) logi*ues) dates et 0eures) etc.
8" Dr. CISS-Bases de Donnes
Cration d!une BD
Quelques types de donnes en SQL . !"E#E$ ou !" . entiers signs. C%A$AC"E$/ 1 ou C%A$/ 1 . c0a\ne de caractres. &A"E . dates etEou 0eures. '((LEA! . %aleur logi*ue R%raiS ou Rfau,S. &EC )AL/ ) *1 . no!bres dci!au, de c0iffres dont * a rs le oint dci!al /ne fonctionne as a%ec Access1. *L(A" . no!bre rel en %irgule flottante.
"$
Cration d!une BD
Quelques proprits des attributs en SQL . +$ )A$, -E, . cl ri!aire. *($E #! -E, . cl trangre. !.LL / !(" !.LL . %aleurs non obligatoires E obligatoires. &E*A.L" = Valeur . our dfinir une %aleur ar dfaut /ne fonctionne as sous Access1. C%EC- /Condition1. our contr5ler la %alidit des %aleurs /ne fonctionne as sous Access1.
"# Dr. CISS-Bases de Donnes
Cration d!une BD
Syntaxe SQL pour crer une nou0elle table . C$EA"E "A'LE ?o![table /c0a! - C" e[c0a! - ]contraintes de c0a! -^) X.) c0a! ? C" e[c0a! ? ]contraintes de c0a! -^1T #e!ar*ue . Coute co!!ande SQL se ter!ine ar un oint %irgule.
"2
Cration d!une BD
Exemple 1 .
C$EA"E "A'LE CLIE?C /ID !"E#E$) ?&M C%A$/-U1) P#E?&M C%A$/-U1) DACE?AIS &A"E) LILLE 2A$C%A$/2O1) CEL 2A$C%A$/-21) EMAIL 2A$C%A$/UO1) +$ )A$, -E, /ID11T
"'
Cration d!une BD
Exemple 3 .
C$EA"E "A'LE EC7DIA?C /ID !"E#E$ ) ?&M C%A$/-U1) P#E?&M C%A$/-U1) A$E !"E#E$ C%EC- /A$E 'E"4EE! -W A!& FO1) B&7#SIE# L(# CAL5 +$ )A$, -E, ( &)1T
"4
Cration d!une BD
E6E)+LE C()+LE"
"5
Cration d!une BD
Exemple complet .
C$EA"E "A'LE CLIE?C /IDCLIE?C !"E#E$ !(" !.LL) ?&MCLIE?C 2A$C%A$/-U1) P#E?&MCLIE?C 2A$C%A$/-U1) AD#CLIE?C 2A$C%A$/UO1) +$ )A$, -E, /IDCLIE?C11T
"6
Cration d!une BD
Exemple complet .
C$EA"E "A'LE A$E?CE /IDA$E?CE !"E#E$ !(" !.LL) ?&MA$E?CE 2A$C%A$/FO1) AD#A$E?CE 2A$C%A$/UO1) +$ )A$, -E, /IDA$E?CE11T
"7
Cration d!une BD
Exemple complet .
C$EA"E "A'LE C&MPCE /IDC&MPCE !"E#E$) S&LDE *L(A" ) ICLIE?C !"E#E$) IA$E?CE !"E#E$) +$ )A$, -E, /IDC&MPCE1) *($E #! -E, /ICLIE?C1 $E*E$E!CES CLIE?C /IDCLIE?C1) *($E #! -E, /IA$E?CE1 $E*E$E!CES A$E?CE /IDA$E?CE11T
"8
Cration d!une BD
)odi7ication de la structure dune table . Il " a trois t" es d'actions concernant la !odification de structure d'une table . A(outer une ou lusieurs colonnes. Su ri!er une ou lusieurs colonnes. Modifier les ro rits d'une ou de lusieurs colonnes. Les co!!andes SQL relati%es 4 ces actions . A&& &$(+ )(& *,
"" Dr. CISS-Bases de Donnes
Cration d!une BD
)odi7ication de la structure dune table . Pour !odifier la structure d'une table) on rcise tout d'abord le no! de celle-ci en cri%ant la co!!ande sui%ante . AL"E$ "A'LE Nom_table Ensuite) on s cifie la nature de l'action de !odification /a(out) su ression ou !odification1. Pour cela) il faut utiliser l'une des trois co!!andes . A&&) &$(+ ou )(& *,.
#$$ Dr. CISS-Bases de Donnes
Cration d!une BD
Exemples da8out 9 A(outer une colonne R A$E S dans la table R CLIE?C S . AL"E$ "A'LE CLIENT A&& A$E !"E#E$T A(outer une colonne R DACEC&MPCE S dans la table R C&MPCE S . AL"E$ "A'LE COMPTE A&& DACEC&MPCE &A"ET
#$#
Cration d!une BD
Exemples de suppression 9 Su ri!er la colonne R AD#A$E?CE S de la table R A$E?CE S . AL"E$ "A'LE CLIENT &$(+ AD#A$E?CET Su ri!er la colonne R DACEC&MPCE S de la table R C&MPCE S . AL"E$ "A'LE COMPTE &$(+ DACEC&MPCET
#$2
Cration d!une BD
Exemples de modi7ication dattributs 9 Modifier le t" e de la colonne R AD#A$E?CE S our *u'il soit un C;A#/-OO1 au lieu de C;A#/FO1 . AL"E$ "A'LE A ENCE )(& *, AD#A$E?CE C%A$/-OO1T Modifier la colonne R A$E S de la table R CLIE?C S our *u'elle soit obligatoire . AL"E$"A'LE CLEINT )(& *, A$E !" !(" !.LLT
#$'
6!alg)/re relationnelle
L'algbre relationnelle consiste en un ense!ble d'o rations *ui er!ettent de !ani uler des relations) considres co!!e des ense!bles de tu les. on eut ainsi faire l'union ou la diffrence de deu, relations) slectionner une artie de la relation) effectuer des roduits cartsiens ou des ro(ections) etc. 7ne ro rit fonda!entale de c0a*ue o ration est *u'elle rend une ou deu, relations en entre et roduit une relation en sortie. Cette ro rit er!et de co! oser des o rations. on eut) ar e,e! le) a li*uer une slection au rsultat d'un roduit cartsien) uis une ro(ection au rsultat d'une slection et ainsi de suite.
#$4 Dr. CISS-Bases de Donnes
6!alg)/re relationnelle
7ne requ:te est une e, ression algbri*ue *ui s'a li*ue 4 un ense!ble de relations /la base de donnes1 et roduit une relation finale /le rsultat de la re*u+te1. &n eut %oir l'algbre relationnelle co!!e un langage de rogra!!ation trs si! le *ui er!et d'e, ri!er des re*u+tes sur une base de donnes relationnelle.
#$5
>1rateur de slection
A li*ue 4 une relation r) la slection roduit une autre relation dont les lignes sont un sous-ense!ble des lignes de r *ui ont une %aleur articulire our un attribut s cifi*ue. La relation rsultante et r co! ortent les !+!es attributs. Si r est une relation sur le sc0!a R) A un attribut de r et a une %aleur a artenant 4 Dom(A)) alors la slection de r sur l'attribut A our la %aleur a est l'ense!ble des tu les t de la relation r tels *ue t(A) = a .
#$6
>1rateur de slection
Cela signifie *ue toutes les lignes de la nou%elle relation ont la %aleur a dans la colonne A. La slection se note A = a(r). Le rdicat
A = a doit +tre co!
= a.
= { t r / t(A) = a}.
>1rateur de slection
E,e! les d'a lication de l'o rateur de slection . _tudiants ns 4 Pi3ine . Lille de naissance V Pi3ine/Etudiant1. Produits de ri, unitaires -FUO . Pri, unitaire V -FUO/Produit1. E! lo"s de salaire infrieur 4 FOO OOO . Salaire ] FOOOOO/E! lo"1. Clients de rno! ''Moussa''. Prno! V Moussa/Client1.
#$8 Dr. CISS-Bases de Donnes
>1rateur de slection
Considrons la table R Etudiant S sui%ante.
CE 2010MTL 2010YHT 201034K 2010KOL 2010SK1
#$" Dr. CISS-Bases de Donnes
>1rateur de slection
#sultat de Lille de naissance V Pi3ine/Etudiant1 sur la table Etudiant .
##$
>1rateur de slection
Considrons la table R E! lo" S .
Code 1000 1001 1002 1003 1004 1005 1006 1007
###
Salaire 250 000 400 000 400 000 350 000 650 000 250 000 755 000 455 000
ge 28 45 48 48 45 27 47 49
>1rateur de slection
#sultat de Salaire ] FOO OOO/E! lo"1 sur la table E! lo" .
ge 28 48 27
##2
>1rateur de 1ro5ection
Cette o rateur c0oisit un ense!ble de colonnes. La ro(ection de la relation r sur un ense!ble X des attributs) note ar X(r), est une relation obtenue 4 artir de r en li!inant d'abord les colonnes de r non s cifies dans X) uis en su ri!ant tout tu le redondant /les doublons1. La ro(ection s'e, ri!e !at0!ati*ue!ent ar la relation .
X(r) = { t(X) / t r}
##'
>1rateur de 1ro5ection
E,e! les d'a lication de l'o rateur de ro(ection . Codes des clients .
Code
client(Client).
##4
>1rateur de 1ro5ection
Considrons la table R D arte!ent S .
Code 10 20 30 40 50 60 70 80
##5 Dr. CISS-Bases de Donnes
>1rateur de 1ro5ection
#sultat de l'o ration Lille/D arte!ent1 diffrents d arte!ents .
Ville Dakar This Mbour
Localisations des
##6
>1rateur de 1ro5ection
Les diffrents
>1rateur de 5ointure
C'est une relation binaire *ui er!et d'associer deu, relations d'une !+!e BD. En gnral) cet o rateur associe deu, relations sur tous leurs attributs co!!uns. La (ointure est constitue de tous les tu les rsultant de la concatnation des tu les de la re!ire relation a%ec ceu, de la seconde *ui ont des %aleurs identi*ues our un ense!ble co!!un d'attributs A.
##8 Dr. CISS-Bases de Donnes
>1rateur de 5ointure
Par attributs co!!uns) on entend des attributs *ui) bien *u'ils uissent ne as a%oir le !+!e no!) doi%ent a%oir le !+!e do!aine et la !+!e signification sous-(acente. Soit r une relation a%ec un ense!ble d'attributs relation a%e un ense!ble d'attributs S.
R
et
une
&n su ose de lus *ue R et S aient des attributs co!!uns) et soit X cet ense!ble d'attributs co!!uns.
##"
>1rateur de 5ointure
La (ointure de r et s) note r Jointure s) est une nou%elle relation dont les attributs sont les l!ents de R S En outre) our c0a*ue tu le t de cette nou%elle relation) les trois conditions sui%antes doi%ent +tre %rifies. t(R) = tr our un tu le tr de la relation r. t(S) = ts our un tu le ts de la relation s.
tr(X) = ts(X).
#2$
>1rateur de 5ointure
E,e! le . Considrons une table R D arte!ent S dont le sc0!a est /ID) ?&M) LILLE1 .
ID 100 200 300 NOM Comptabilit Marketing Ventes &partement VILLE Dakar This Mbour
#2#
>1rateur de 5ointure
Et une table R Personnel S dont le sc0!a est /ID) ?&M) DEPC) CIC#E1 .
ID 100 200 300 400
#22
+ersonnel
>1rateur de 5ointure
Dans cet e,e! le) les attributs co!!uns sont les attributs ''?o!'' et ''De t''. Du fait *ue les deu, tables ont un attribut co!!un) ID) our %iter de confondre l'attribut ID de la table D arte!ent a%ec celui de la table ersonnel) il est ncessaire de *ualifier c0a*ue attribut en le faisant sui%re du no! de la table corres ondante a%ant de les (oindre. De la !+!e !anire) l'attribut ?&M des deu, tables doit +tre *ualifie.
#2' Dr. CISS-Bases de Donnes
>1rateur de 5ointure
Dpartement Jointure Personnel
NOM VILLE ID DEPT PERS Comptabilit Dakar 300 Comptabilit Dakar Marketing Ventes This Mbour 400 200 100
#24
>1rateurs ense3/listes
Lunion . L'union de deu, relations r et s est la relation for!e ar les tu les *ui sont rsents dans r ou dans s. Elle se note ar r s. Lintersection . L'intersection de deu, relations r et s est la relation for!e ar les tu les *ui sont rsents si!ultan!ent dans r et s. Elle se note ar r s.
#25
>1rateurs ense3/listes
La di77rence . La diffrence de deu, relations r et s est la relation for!e ar les tu les *ui sont rsents dans r et non rsents dans s. Elle se note ar r - s.
Pour effectuer l'une de ces trois o rations) il faut *ue les deu, relations r et s soient compatibles. Deu, relations r et s sont dites co! atibles si elles ont le !+!e degr et leurs attributs ont les !+!es do!aines.
#26 Dr. CISS-Bases de Donnes
>1rateurs ense3/listes
E,e! le de l'union . ID 10 11 12 ID 29 12
#27
+rogrammeurs;C PROJET e-commerce Pare-feu e-commerce PROJET Site web e-commerce DEPT Ventes Informatique Ventes DEPT Informatique Ventes
+rogrammeurs;<a0a
>1rateurs ense3/listes
+rogrammeurs;C +rogrammeurs;<a0a ID 10 11 12 29 NOM Sarr Ndao Ba Fall PRENOM Idy Joseph Malick Moussa PROJET e-commerce Pare-feu e-commerce Site web DEPT Ventes Informatique Ventes Informatique
#28
>1rateurs ense3/listes
E,e! le de l'intersection . ID 10 11 12 ID 29 12
#2"
+rogrammeurs;C PROJET e-commerce Pare-feu e-commerce PROJET Site web e-commerce DEPT Ventes Informatique Ventes DEPT Informatique Ventes
+rogrammeurs;<a0a
>1rateurs ense3/listes
+rogrammeurs;C +rogrammeurs;<a0a ID 12 NOM Ba PRENOM Malick PROJET e-commerce DEPT Ventes
#'$
>1rateurs ense3/listes
E,e! le de la diffrence . ID 10 11 12 ID 29 12
#'#
+rogrammeurs;C PROJET e-commerce Pare-feu e-commerce PROJET Site web e-commerce DEPT Ventes Informatique Ventes DEPT Informatique Ventes
+rogrammeurs;<a0a
>1rateurs ense3/listes
+rogrammeurs;C = +rogrammeurs;<a0a ID 10 11 NOM Sarr Ndao PRENOM Idy Joseph PROJET e-commerce Pare-feu DEPT Ventes Informatique
+rogrammeurs;<a0a = +rogrammeurs;C ID 29
#'2
NOM Fall
PRENOM Moussa
DEPT Informatique
>1rateurs ense3/listes
Le produit cartsien . Le roduit cartsien de deu, relations r et s est la relation for!e en concatnant tous les tu les de r a%ec tous les tu les de s. Elle se note ar r s. #e!ar*ues .
Degr(r s) = Degr(r) + Degr(s).
#''
>1rateurs ense3/listes
E,e! le du roduit cartsien .
#'4
>1rateurs ense3/listes
ID_CLIENT 100 100 100 100 200 200 200 200 ARTICLE CODE A A A A B B B B A B C D A B C D NOM Bicyclette Chaussures Lunettes Gants Bicyclette Chaussures Lunettes Gants PRIX 250 90 150 35 250 90 150 35
6e langage S=6
Introduction
SQL est un langage *ui er!et d'interroger une BD sans se soucier de la re rsentation interne / 0"si*ue1 des donnes) de leur localisation) des c0e!ins d'accs ou des algorit0!es ncessaires. &n eut l'utiliser de !anire interacti%e) !ais gale!ent en association a%ec des interfaces gra 0i*ues) ou trs gnrale!ent des langages de rogra!!ation.
#'7
Slections si31les
Considrons la table R Etudiant S sui%ante.
CE 2010MTL 2010YHT 201034K 2010KOL 2010SK1
#'8 Dr. CISS-Bases de Donnes
Slections si31les
Pre!ire re*u+te. &n %eut connaitre le rno! et le no! de tous les tudiants *ui sont ns 4 Pi3ine. SELECT prenom, nom FROM WHERE ville_nce=Pikine Etudiant
Ce re!ier e,e! le !ontre la structure de base d'une re*u+te SQL) a%ec les trois clauses SELECT) FROM et WHERE.
#'"
Slections si31les
FROM indi*ue la /ou les1 tables dans les*uelles on trou%e les
#4$
Slections si31les
Dans l'e,e! le rcdent) l'inter rtation est si! le . on arcourt les n-u lets de la relation Etudiant. Pour c0a*ue n-u let) si l'attribut ville_nce a our %aleur Pikine) on lace les attributs Prenom et nom dans le rsultat. &n obtient donc le rsultat .
Prenom Yaya Abib Nom Sow Ndiaye
#4#
Slections si31les
Le rsultat d'un ordre SQL est tou(ours une relation /une table1 dont les attributs sont ceu, s cifis dans la clause SELECT. &n eut donc considrer en re!ire a roc0e ce rsultat co!!e un 'dcou age') 0ori<ontal et %ertical) de la table indi*ue dans le FROM) si!ilaire 4 une utilisation co!bine de la slection et de la ro(ection en algbre relationnelle. &n eut aussi a li*uer des fonctions au, %aleurs de c0a*ue tu le. Les fonctions a licables au, %aleurs des attributs sont ar e,e! les les o rateurs arit0!ti*ues our les attributs nu!ri*ues ou des !ani ulations de c0aines de caractres /concatnation) sous-c0a\ne) !ise en !a(uscule) X1 .
#42 Dr. CISS-Bases de Donnes
Slections si31les
E,e! le. SELECT prenom, UPPER(nom) FROM Etudiant WHERE ville_nce=Pikine &n e,trait cette fois ci le rno!) le no! en !a(uscule de tous les tudiants ns 4 Pi3ine. &n obtient alors.
Prenom Yaya Abib
#4' Dr. CISS-Bases de Donnes
6es dou/lons
SQL er!et l'e,istence de doublons dans les tables /il ne s'agit donc as d'ense!ble au sens strict du ter!e1. La s cification de cls er!et d'%iter les doublons dans les relations stoc3es) !ais il eu%ent a ara\tre dans le rsultat d'une re*u+te. E,e! le . SELECT ville_nce FROM Etudiant
#44
6es dou/lons
&n obtient alors.
Ville_Nce Pikine This Pikine Dakar Dakar
#45
6es dou/lons
Pour %iter d'obtenir des tu les identi*ues) on eut utiliser la clause DISTINCT E,e! le.
SELECT DISTINCT ville_nce FROM Etudiant
#46
#47
Pour trier en ordre dcroissant) on a(oute le !ot cl DESC a rs la liste des attributs.
#48 Dr. CISS-Bases de Donnes
6a clause WHERE
Dans la clause WHERE) on s cifie une condition boolenne ortant sur les attributs des relations du FROM. &n utilise our cela de !anire standard le AND) le OR) le NOT et les arent0ses our c0anger l'ordre de riorit des o rateurs boolens. E,e! le.
SELECT prenom, nom FROM Etudiant WHERE ville_nce = Pikine OR prenom = Khady
Dr. CISS-Bases de Donnes
#4"
6a clause WHERE
&n obtient.
Prenom 2010MTL 201034K 2010SK1 Nom Sow Ndiaye Seck
#5$
Date
Il est ossible de !ani uler des dates. Cous les s"st!es ro osaient bien a%ant la nor!alisation leur ro re for!at de date) et la nor!e rconise ar le SQL2 n'est de ce fait as sui%ie ar tous. 7ne date est s cifie en SQL2 ar le !ot-cl DACE sui%i d'une c0a\ne de caractres au for!at aaaa-mm-jj, ar e,e! le DATE 2011-03-09 Les <ros sont ncessaires afin *ue le !ois et le *uanti!e co! rennent s"st!ati*ue!ent deu, c0iffres. Dr. CISS-Bases de Donnes
#5#
Date
&n eut effectuer des re*u+tes 4 l'aide des co! arateurs usuels. Su osons ar e,e! le *u'il " ait une colonne date_de_nce dans la table Etudiant. &n eut alors lister l'ense!ble des tudiants *ui sont ns entre le -er 9an%ier -IJ= et le OI Mars -IWJ.
SELECT prenom, nom FROM Etudiant WHERE date_de_nce BETWEEN DATE 1973-01-01 AND DATE 1987-03-09
#52
#5'
>1rateur de 5ointure
E,e! le . Considrons une table R D arte!ent S dont le sc0!a est /ID) LIBELLE) LILLE1 .
ID 100 200 300 LIBELLE Comptabilit Marketing Ventes &partement VILLE Dakar This Mbour
#54
>1rateur de 5ointure
Et une table R Personnel S dont le sc0!a est /ID) ?&M) DEPC) CIC#E1 .
ID 100 200 300 400
#55
+ersonnel
@ointures
La (ointure est une des o rations les lus utiles /et donc une des lus courantes1 uis*u'elle er!et d'e, ri!er des re*u+tes ortant sur des donnes r arties dans lusieurs tables. La s"nta,e our e, ri!er des (ointures a%ec SQL est une e,tension directe de celle tudie rcde!!ent dans le cas des slections si! les . on donne si! le!ent la liste des tables concernes dans la clause FROM) et on e, ri!e les critres de ra roc0e!ent entre ces tables dans la clause WHERE.
#56
@ointures
Prenons l'e,e! le de la re*u+te sui%ante . donner le no! des e! lo"s a%ec le no! des %illes o6 ils tra%aillent.
SELECT nom, ville FROM Personnel, Departement WHERE dept = libelle
#57
@ointures
&n eut re!ar*uer *u'il n'" a as dans ce cas d'a!biguit sur les no!s des attributs . no! et de t %iennent de la table Personnel) tandis *ue %ille et no! %iennent de la table D arte!ent. Il eut arri%er /il arri%e de fait fr*ue!!ent1 *u'un !+!e no! d'attribut soit artag ar lusieurs tables i! li*ues dans une (ointure. Dans ce cas on rsout l'a!biguit en rfi,ant l'attribut ar le no! de la table.
#58
#5"
+rogrammeurs;<a0a
#6#
#62
+grgation
Les fonctionnalits d'agrgation de SQL er!ettent d'e, ri!er des conditions sur des grou es de tu les) et de constituer le rsultat ar agrgation de %aleurs au sein de c0a*ue grou e. La s"nta,e SQL fournit donc le !o"en de artitionner une relation en grou es selon certains critres) le !o"en d'e, ri!er des conditions sur ces grou es) des fonctions d'agrgation.
#6'
onctions d!agrgation
Ces fonctions s'a li*uent 4 une colonne) en gnral de t" e nu!ri*ue. Ce sont .
COUNT *ui co! te le no!bre de %aleurs non nulles! MAX et MIN. AVG *ui calcule la !o"enne des %aleurs de la colonne. SUM *ui effectue le cu!ul.
#64
onctions d!agrgation
Considrons la table R E! lo" S .
Code 1000 1001 1002 1003 1004 1005 1006 1007
#65
Salaire 250 000 400 000 400 000 350 000 650 000 250 000 755 000 455 000
ge 28 45 48 48 45 27 47 49
onctions d!agrgation
E,e! le. SELECT COUNT(Code), AVG(Salaire), MIN(Salaire), MAX(Salaire), SUM(Salaire) FROM Employe ;
#66
6a clause G9>UP BB
Dans les re*u+tes rcdentes) on a li*uait la fonction d'agrgation 4 l'ense!ble du rsultat d'une re*u+te /donc %entuelle!ent 4 l'ense!ble de la table elle-!+!e1. 7ne fonctionnalit co! l!entaire consiste 4 artitionner ce rsultat en grou es) et 4 a li*uer la ou les fonction/s1 4 c0a*ue grou e. &n construit les grou es en associant les tu les artageant la !+!e %aleur our une ou lusieurs colonnes
#67
6a clause G9>UP BB
E,e! le. Affic0er le salaire a%ec le no!bre d'e! lo"s corres ondant
SELECT Salaire , COUNT(Code) FROM Employe GROUP BY Salaire
#68
attributs dans les*uels on sou0aite lacer une %aleur. Les autres attributs seront donc 4 NULL /ou 4 la %aleur ar dfaut1. Cous les attributs s cifis NOT NULL /et sans %aleur ar dfaut1 doi%ent donc figurer dans une clause INSERT. Les v1, ... vn sont les %aleurs des attributs.
#6" Dr. CISS-Bases de Donnes
#7$
(odification
La !odification s'effectue a%ec la clause UPDATE. La s"nta,e est roc0e de celle du DELETE .
UPDATE R SET A1=v1, A2=v2, ... An=vn WHERE condition R est la relation) les Ai sont les attributs) les vi les nou%elles %aleurs et condition est toute condition %alide our la clause WHERE
#72
#7'