la programmation vnementielle Cours N1 : Introduction. Support de cours de Soheib BAARIR*.
Page web : pagesperso-systeme.lip6.fr/Souheib.Baarir/bdvba/support.htm E-mail : souheib.baarir@u-paris10.fr
Universit Paris Ouest Nanterre la Dfense. 2009-2010.
* Adapt du cours de B. COFFIN. Reproduction interdite sans autorisation crite de lauteur. 2 Contexte gnral : introduction laborer le systme dinformation dun organisme.
Un Systme dInformation (SI): ensemble des moyens humains et informatiques permettant, le stockage, la transformation et la restitution de linformation, de lorganisme tudi. 3 3 Systme dInformation
(Mmoire + Capacit de traitement)
(Base de Donnes (BD) + Programmation) Contexte gnral : systme dinformation 4 Base de Donnes Ensemble dinformations complexes. Respecte les caractristiques : 1. Structuration. 2. Non redondance. 3. Cohrence. 4. Indpendance aux programmes. 5. Scurit. Plusieurs modles (types) de BD : les BD hirarchiques, les BD en rseau, les BD relationnelles, les BD objet. SGBD + Outils et langages de Programmation SGBD : ACCESS Systme de Gestion de Base de Donnes (SGBD) : Logiciel(s) assurant, structuration, stockage, maintenance, mise jour et, consultation, des donnes dune BD.
Microsoft ACCESS : est un logiciel intgrant, SGBD Relationnel : BD Relationnelle, diteur graphique , SQL, Des langages de programmation vnementielle : Visuel Basic pour Application (VBA), des interfaces de visualisation : Formulaires, tats. ACCESS : une architecture trs simplifi 6 6 BDR Requtes SQL diteur Graphique Interfaces de visualisation Programmes VBA Moteur de BD Moteurs dInterprtation SGBD Traitements Le cours concerne Premire partie du cours Deuxime partie du cours 7 BD Relationnelles Trs rpandues en pratique.
Reposent sur les concepts de lalgbre relationnelle. Fait partie de la thorie des ensembles. Domaines, Relations, Oprateurs relationnelsetc.
Manipules (interroges et mises jour) par un langage dclaratif : Structured Query Language (SQL). On dcrit ce quon veut obtenir, la machine fait le reste. 8 Algbre relationnelle : introduction Un ensemble peut tre : Infini : N, ensemble des nombres entiers Vide : | On appelle cardinal dun ensemble fini le nombre de ses lments : |A| = 5. Dfinition dun ensemble (suffisante pour nous) : cest une collection dlments.
Fini : A ={1, 3, 24, 20, 0} 9 Algbre relationnelle : domaine et relation Une relation est un sous-ensemble (fini) du produit Cartsien dune liste de domaines. Un domaine est un ensemble dont les lments sont des valeurs atomiques. A = {vert, jaune, rouge} , B = {allum, teint} , C= {(vert,allum), (jaune,teint)}
{ } i i n 1 n 1 A a i, ) a , , (a A A R = - - = Produit Cartsien : Cardinal dun produit Cartsien : n 1 n 1 A A A A - - = - - Sous-ensemble dun produit Cartsien : n 1 A A B - - _ Schma dune relation : ) A , , A ( R n 1 Un lment dune relation est appel n-uplet Attributs. 10 A = {vert, jaune, rouge} B = {allum, teint} R1 = A B = { (vert, allum), (vert, teint), (jaune, allum), (jaune, teint), (rouge, allum), (rouge, teint)}. |R1|=|A B| = | A | x | B | = 3 x 2 = 6 Exemples R2 = A | = A 1 domaine Relation unaire.
N domaines Relation n-aire. Le produit Cartsien de A et B ? Dautres relations
11 Algbre relationnelle : oprations Pour dfinir une Algbre sur des ensembles, il faut dfinir des oprateurs. Nos ensembles sont des relations Oprateurs entre les relations.
Proprit de fermeture : oprateurs entre relations pour produire de nouvelle relations.
Oprateurs binaires : Sur un mme schma : union, intersection, diffrence.
Sur des schmas diffrents : produit cartsien, jointure, division. 12 Oprateurs unaires : Restriction Supprime des n-uplets de une relation R qui ne satisfont pas une condition C. R RESTRICTION C (R) C est une expression boolenne construite partir : dexpression simples, attribut R op constante A4 > 5, A7 = "Dupont " attribut R op attribut R
A6 < A8, de connecteurs logique (et, ou, non) sur des expressions simples, (A4 > 5) et (A6 < A8). R(A1,,A8) op={=,>,<,} 13 Oprateurs unaires : Exemple de Restriction A = {vert, jaune, rouge} B = {allum, teint} R = A B = { (vert, allum), (vert, teint),(jaune, allum), (jaune, teint), (rouge, allum), (rouge, teint)}. R = RESTRICTION A=rouge (R) ? R = {(rouge, allum),(rouge, teint)}. R = RESTRICTION A=vert et B=allum (R) ? R = {(vert, allum)}. 14 Oprateurs unaires : Projection Supprime des attributs dune relation R. R PROJECTION (A1, , An) (R) R est la relation de schma R(A1,,An), ayant comme n-uplets ceux de R mais, restreints au sous-schma (A1,,An).
15 Oprateurs unaires : Exemple de Projection Soit le schma de relation : R(Nclient, nom, prenom,ville).
R = {(100,Paper,Luc,Reims), (101,Gloglo,Thomas,Reims) , (102,Machin,Jean,Epernay), (103,Trico,Bob,Paris), (104,Zoeo,Paulo,Paris), (106,Toc,Pablo,Pantin)}
R = PROJECTION (nom, prenom) (R) ?
R = {(Paper,Luc),(Gloglo,Thomas),(Machin,Jean), (Trico,Bob),(Zoeo,Paulo),(Toc,Pablo)} 16 Oprateurs binaires : union Fusionne deux relations ayant les mmes attributs en une seule relation. R UNION(R,S) R est une relation ayant le mme schma que R, dont les n-uplets sont ceux de R et de S, les doublons sont supprims. 17 Soit : R(NClient, nom, prenom,ville). R= {(100,Paper,Luc,Reims), (101,Gloglo,Thomas,Reims)}
Soit : S(NClient, nom, prenom,ville). S={(102,Machin,Jean,Epernay), (103,Trico,Bob,Paris)}
R = UNION(R,S) ? R= R U S = {(100,Paper,Luc,Reims), (101,Gloglo,Thomas,Reims), (102,Machin,Jean,Epernay), (103,Trico,Bob,Paris)}
Oprateurs binaires : exemple dunion 18 Oprateurs binaires : Intersection Fournit n-uplets prsents dans les deux relations la fois. R INTERSECTION(R,S) R est une relation de schma gal au schma de R, ayant les n-uplets prsents dans R et dans S. 19 Soit : R(NClient, nom, prenom,ville). R= {(100,Paper,Luc,Reims), (101,Gloglo,Thomas,Reims)}
Soit : S(NClient, nom, prenom,ville). S={(102,Machin,Jean,Epernay), (101,Gloglo,Thomas,Reims)}
R = INTERSECTION(R,S) ? R= RS = {(101,Gloglo,Thomas,Reims)}
Oprateurs binaires : exemple dintersection 20 Oprateurs binaires : Diffrence Fournit les n-uplets d une relation qui n appartiennent pas une autre relation R DIFFERENCE(R, S) R est une relation de schma R, contenant les n-uplets de R qui ne sont pas dans S. Attention : DIFFERENCE(R,S) DIFFERENCE(S,R) 21 Oprateurs binaires : Exemple de Diffrence Soit : Etudiant(N tudiant, Nom, Anne) Etudiant = {(20,Dupont, 2009), (27,Durand,2008) (40,Thomas,2001)}
Soit : Etudiant2001= RESTRICTION Anne=2001 (Etudiant) Etudiant2001= {(40,Thomas,2001)}
R = DIFFERENCE(Etudiant,Etudiant2001) ? R=Etudiant-Etudiant2001 = {(20,Dupont, 2009), (27,Durand,2008)} 22 Oprateurs binaires : Produit Cartsien R PRODUIT(R, S) Le produit cartsien deux relations R et S de schmas quelconque est une relation R,
ayant pour attributs la concatnation des attributs de R et de S et,
dont les n-uples sont constitus de toutes les concatnations dun n-uplet de R un n-uplet de S. 23 Oprateurs binaires : Jointure R et S deux relations dfinies sur des schmas diffrents, avec des attributs de mme domaine. R est une relation dont le schma est construit par lunion des schmas de R et de S, dont les n-uplets sont la concatnation des n-uplets de R et de S, si et seulement si, ils ont la mme valeur pour les attributs communs (de mme domaine) Cette jointure est appele qui-jointure ou naturelle. R JOINTURE C (R,S) O C est de la forme (attribut R = attribut S ) +
24 Oprateurs binaires : Exemple de Jointure Soit : Etudiant(N tudiant, Nom tudiant, Code rgion) Etudiant = {(20,Dupont, 75), (27,Durand,94) (40,Thomas,92)}
Soit : Rgion(N rgion, Nom rgion) Rgion= {(75,Paris), (94,Val de Marne), (92,Nanterre)}
R = JOINTURE (Code rgion = N rgion) (Etudiant,Rgion) ? R(N tudiant, Nom tudiant, Code rgion, N rgion, Nom rgion) R = {(20,Dupont, 75,75, Paris),(27,Durand,94,94, Val de Marne), (40,Thomas,92,92,Nanterre)} 25 Oprateurs binaires : Division Soit R, dfinie sur un schma compos des ensembles dattributs X et Y (XY) S est dfinie sur un schma compos de Y R DIVISION(R,S) R est une relation dont le schma est X ((XY) / Y), qui comprend tous les n-uplets dont, le produit cartsien avec les n-uplets de S sont dans R. 26 Oprateurs binaires : Exemple de Division Soit : Participe(Nom Athlte , Epreuve) R = {(Dupont,200 m), (Dupont,400 m), (Dupont,110 m) (Machin,400 m), (Martin 110 m)}
Soit : Epreuve (Epreuve) S= {(200 m),(400 m), (110 m)}
R = DIVISION (Participe, Epreuve) ? R(Nom Athlte) R = {(Dupont)}