Programmation Procédurale et SQL
|
|
- Marie-Jeanne Clément
- il y a 8 ans
- Total affichages :
Transcription
1 KWWSZZZDGHOHLPDJIUaGRQVH]FRXUV Programmation Procédurale et SQL Didier DONSEZ Université Joseph Fourier IMA IMAG/LSR/ADELE 'LGLHU'RQVH]#LPDJIU 'LGLHU'RQVH]#LHHHRUJ
2 2 Motivations (i) Limites de SQL Langage déclaratif (non procédural) facile d exprimer des requêtes MAIS pas de structure de contrôle boucle itérative, contrôle séquentiel Il existe parfois une solution en «pur SQL» Sinon Exemple du puzzle de Joe Celko Certes, il faut se creuser la tête Langage Procédural + SQL
3 Motivations (ii) 3 Besoins Procédure variables locales structures de contrôle ERXFOHLWpUDWLYHWHVWH[FHSWLRQ parcours du résultat d une requête ligne à ligne FXUVHXU LPEULFDWLRQGHVSDUFRXUVFXUVHXUVLPEULTXpV Exécution par le client / par le serveur Curseur «Pointeur» sur la ligne courante Transfert des valeurs entre la ligne pointée et les variables de la procédure
4 3 Solutions SQL Dynamique Interface SQL/CLI et Middleware ODBC et JDBC Embedded SQL in 3GL «SQL Procédural» 4
5 Remarque 1: Problème de l Impedance Mismatch 5 Typage différent entre SQL et C, C++, Java,... conversion, arithmétique 180%(5[ ¼ LQW"ORQJ" '(&,0$/[\180%(5[\ ¼ IORDW "GRXEOH" 9$5&+$5[ ¼ FKDU>[@"VWULQJ" constructeur de type Les valeurs NULL représentent les valeurs manquantes ou non renseignées absente des langages hôtes Logique à 3 niveaux 758(81.12:)$/6( 18// 18//,681.12:
6 Remarque 2: Risques de la programmation procédurale 6 La solution SQL pur n est pas trivial le développeur propose une solution procédurale suite de plusieurs requêtes SQL le développeur se substitue parfois à l optimiseur Exemple imbrication de curseurs sur deux tables pour réaliser une jointure
7 Interface SQL/CLI et Middleware ODBC et JDBC Motivations Dynamic SQL SQL/CLI ODBC JDBC DBI pour PERL Avantages et Inconvénients
8 8 Motivations Connexions simultanées vers plusieurs bases Consultation et Modification La requête n est analysée qu à l exécution son code SQL peut être généré ou saisis qu à l exécution 2 formes Dynamic SQL utilisation de sections (proche d Embedded SQL) SQL/CLI nécessite un précompilateur API bas niveau pour les applications
9 Dynamic SQL 9 Requêtes SQL chaîne de caractères décrivant la requête SQL la requête est analysée (PREPARE) à l exécution puis exécutée (EXECUTE) - Erreur de Syntaxe - + Absence de la source de données + Génération automatique de requêtes Exemple en C EXEC SQL BEGIN DECLARE SECTION; char requete[max_query_length]; EXEC SQL END DECLARE SECTION; while(1) { } printf("\nnouvelle requête:"); scanf("%s",requete); EXEC SQL 35(3$5( q FROM : requete; EXEC SQL (;(&87( q; printf("\nnouvellerequête:"); scanf("%s",requete); EXEC SQL (;(&87(,00(',$7( : requete;
10 10 L interface SQL/CLI CLI : Call Level Interface API normalisé par l ANSI Evolution dans SQL3, dans Oracle 8,... prise en compte des extensions Objet
11 Les Middlewares SQL/CLI 11 Plusieurs Offres ODBC SQL/CLI Open DataBase Connectivity (MicroSoft) JDBC Java DataBase Connectivity (JavaSoft) SQL/CLI IDAPI Integrated Database Application Interface (Borland) DAL Data Access Language (DEC/Apple) DRDA Distributed Remote Database Access (IBM/XOpen) A U SQL*Net (Oracle) Adapteur IDAPI P T I L I S A T E U R P L I C A T I O N S API Outils Interactif I D A P I pour DBase Adapteur IDAPI pour SQL*Net Adapteur IDAPI pour ODBC Driver ODBC pour Oracle Driver ODBC pour MSAccess TCP/IP fichiers locaux fichiers locaux Serveur ORACLE
12 12 ODBC 2SHQ 'DWD%DVH&RQQHFWLYLW\ Objectif Le "MiddleWare" offre une interface unique d'accéder aux données quelque soit le format, la localisation,... Indépendance Application / Serveurs BD (MultiVendeurs) Principes abstractions/concepts de SQL/CLI (ISO et ANSI) API MS Windows pour manipuler des Tables SQL dans des fichiers locaux servies par des serveurs SGBD Relationnels en mode Client/Serveur plusieurs sources accessibles simultanément
13 13 Architecture d ODBC Architecture Modulaire U T I L I S A T E U R utilisant des drivers d adaptation au format de la source de données au moyen d accès (protocole réseau, fichier local) A P P L I C A T I O N S Outils API Interactifs O D B C Driver ODBC pour Oracle Driver ODBC pour MS Access Driver ODBC pour CQL SQL/NET TCP/IP L E C TE U R SGF ISO Serveur Oracle Base Distante Fichier Local Carte GEMxCOS Base CQL
14 Configuration des sources ODBC 14
15 MicroSoft ADO $FWLYH; 'DWD2EMHW Composant ActiveX 15
16 ADO dans un ASP (i) 3DUFRXUVG XQHWDEOHDYHFXQFXUVHXU 16 #/$1*8$*( -6FULSW! LQFOXGH ILOH DGRMDYDVLQF! +70/!+($'!7,7/(!5HTXrWH6LPSOH7,7/(!+($'!%2'<! K!/LVWHGHV$XWHXUVK!KU! YDUFXU'LU 6HUYHU0DS3DWK??LLVVDPSOHV??VGN??DVS??GDWDEDVH??DXWKRUVPGE YDUR&RQQ 6HUYHU&UHDWH2EMHFW$'2'%&RQQHFWLRQ R&RQQ2SHQ'%4 FXU'LU'ULYHU ^0LFURVRIW$FFHVV'ULYHUPGE` 'ULYHU,G ),/ 06$FFHVV YDUR5V R&RQQ([HFXWH6(/(&7 )URPDXWKRUV! 7$%/(ERUGHU! ZKLOH R5VHRI^! WU! IRU,QGH[,QGH[R5VILHOGVFRXQW,QGH[^! 7' 9$OLJQ WRS! R5V,QGH[!7'! `! WU! R5V0RYH1H[W `! 7$%/(! R5VFORVH R&RQQFORVH! %2'<!+70/!
17 ADO dans un ASP (ii) $MRXWHW6XSSUHVVLRQG XQHOLJQH 17 K!6XSSUHVVLRQHW$MRXWG XQDXWHXUK!KU! «R5V 6HUYHU&UHDWH2EMHFW$'2'%5HFRUGVHW R5V$FWLYH&RQQHFWLRQ R&RQQ R5V6RXUFH 6(/(&7)520 DXWKRUV:KHUH R5V&XUVRU7\SH DG2SHQ6WDWLFR5V/RFN7\SH DG/RFN2SWLPLVWLF R5V2SHQR5V$GGQHZ R5V$XWKRU9DOXH -RKQ6WHLQEHFN R5V<HDU%RUQ9DOXH R5V8SGDWH 5HVSRQVH:ULWHS!$XWHXU,QVHUpR5V$XWKRUR5V<HDU%RUQR5V&ORVH R5V 6HUYHU&UHDWH2EMHFW$'2'%5HFRUGVHW R5V$FWLYH&RQQHFWLRQ R&RQQ R5V6RXUFH 6(/(&7)520 DXWKRUV :+(5( <HDU%RUQ DQG $XWKRU -RKQ6WHLQEHFN R5V&XUVRU7\SH DG2SHQ)RUZDUG2QO\ R5V/RFN7\SH DG/RFN2SWLPLVWLF R5V2SHQR5V'HOHWHR5V8SGDWH 5HVSRQVH:ULWHS!$XWHXU6XSSULPp3DXO(QILHOG R5V&ORVH! %2'<!+70/!
18 ADO dans un ASP (iii),qyrfdwlrqg XQH3URFpGXUH6WRFNpH 18 #/$1*8$*( -6FULSW! LQFOXGH ILOH DGRMDYDVLQF! +70/!+($'!7,7/(!,QYRFDWLRQG XQHSURFpGXUHVWRFNp7,7/(!+($'! %2'<! K!,QYRFDWLRQG XQHSURFpGXUHVWRFNpK!KU! YDUR&RQQ 6HUYHU&UHDWH2EMHFW$'2'%&RQQHFWLRQ YDUR&PG 6HUYHU&UHDWH2EMHFW$'2'%&RPPDQG R&RQQ2SHQ'61 /RFDO6HUYHU8,' VD3:' '$7$%$6( SXEV R&PG$FWLYH&RQQHFWLRQ R&RQQ R&PG&RPPDQG7H[W ^FDOO E\UR\DOW\"` R&PG3DUDPHWHUV$SSHQGR &PG&UHDWH3DUDPHWHU#3HUFHQWDJH DG,QWHJHU DG3DUDP,QSXW R&PG#3HUFHQWDJH YDUR5V R&PG([HFXWH!,'GHODXWHXU 5HVSRQVH:ULWHR5VDXBLG!%5! %2'<!+70/!
19 JDBC -DYD'DWD%DVH&RQQHFWLYLW\ 19 Motivations API Java pour manipuler des Tables SQL dans des fichiers locaux servies par un serveur BD une seule API uniforme pour tous les SGBDs (relationnels) abstractions/concepts de X/Open SQL Call Level Intf Même principe que les Middlewares comme ODBC
20 20 Architecture JDBC Composants d adaptation (Drivers) un driver pour chaque SGBD (Oracle, Sybase,...) un driver pour chaque format de fichier (Dbase,Paradox) $SSOL HQ-DYD $SSOL HQ-DYD JDBC Mng Pont JDBC / ODBC Driver JDBC pour DBase Driver JDBC pour SQL*Net Driver ODBC pour Oracle Driver ODBC pour MSAccess TCP/IP fichiers locaux fichiers locaux Serveur ORACLE
21 Drivers JDBC 21 4 types de drivers JDBC pur Java + DONC téléchargeable natif - installation du driver sur le client pont JDBC / ODBC - installation d ODBC et des drivers sur le client + utilisation des drivers ODBC existants serveur Middleware - encombrement serveur + protocole autre que TCP/IP
22 Drivers JDBC : pur Java vs Natif 22 $SSOLFDWLRQ$SSOHW -'%&0DQDJHU 'ULYHUHQSXU-DYD 6HUYHXU%' $SSOLFDWLRQ$SSOHW -'%&0DQDJHU 'ULYHU-DYD $3,1DWLYH&OLHQW%' && 6HUYHXU%'
23 Drivers JDBC : pont ODBC vs Middleware 23 $SSOLFDWLRQ$SSOHW -'%&0DQDJHU 'ULYHU-DYD2'%& 3RQW-'%&2'%&& 'ULYHU2'%&&& 6HUYHXU%' $SSOLFDWLRQ$SSOHW -'%&0DQDJHU 'ULYHU-DYD &OLHQW0LGGOHZDUH 6HUYHXU 0LGGOHZDUH $3,&OLHQW%' 2'%& 0QJ 'ULYHU2'%& 6HUYHXU%'
24 3DFNDJHMDYDVTO 24 Interfaces DriverManager Connection, PooledConnection, XAConnection Statement PreparedStatement CallableStatement ResultSet ResultSetMetaData DatabaseMetaData RowSet SQLData, SQLInput, SQLOutput Classes DriverManager, DriverPropertyInfo Date, Time, TimeStamp, Types, Struct, 64/([FHSWLRQ64/:DUQLQJ'DWD7UXQFDWLRQ
25 Connexion JDBC 25 classe java.sql.connection URL d une source de données (relationnelle) jdbc:<subprotocol>:<subname> jdbc:dcenaming:accounts-payable jdbc:dbnet://dbms.mycomp.com:356/ecom jdbc:msql://dbsv.acme.com/user jdbc:oracle:thin:@enee:1521:istv jdbc:odbc:ecom jdbc:odbc:ecom;cachesize=20;extensioncase=lower jdbc:odbc:ecom;uid=admin;pwd=nimda jdbc:gemdbjdbc:/1f00/1f10... Extension JDBC3.0 aux fichiers plats et aux feuilles de calcul
26 26 JDBC &XUVHXU ª FODVV (PSOR\H ^ SXEOLFVWDWLFYRLG PDLQ6WULQJ DUJV >@ WKURZV 64/([FHSWLRQ &ODVV1RW)RXQG([FHSWLRQ ^WU\^ &ODVVIRU1DPH RUDFOHMGEFGULYHU2UDFOH'ULYHU &ODVVIRU1DPHVXQMGEFRGEF-GEF2GEF'ULYHU 6WULQJ GEXUO MGEFRUDFOHRFL# &RQQHFWLRQFRQQ 'ULYHU0DQDJHUJHW&RQQHFWLRQGEXUOWRWRSDVVHPRW 6WDWHPHQWVWPW FRQFUHDWH6WDWHPHQW 5HVXOW6HWUV VWPWH[HFXWH4XHU\ 6(/(&7 QXPHPS QDPH VDODU\ )520(03/2<( ZKLOH UVQH[W^ 6WULQJV UVJHW6WULQJ IORDW I UVJHW)ORDWVDODU\ 6\VWHPRXWSULQWOQVJDJQHI `UVFORVH `FDWFK([FHSWLRQH^HSULQW6WDFN7UDFH``
27 27 JDBC YDOHXUQXOOH Rappel une valeur nulle (NULL) en SQL signifie : valeur inconnue, valeur non renseignée,... 5HVXOW6HWUV VWPWH[HFXWH4XHU\ 6(/(&7 QXPHPS QDPH VDODU\ )520(03/2<( ZKLOH UVQH[W^6WULQJV UVJHW6WULQJ IORDW I UVJHW)ORDWVDODU\ LIUVZDV1XOO 6\VWHPRXWSULQWOQ VQDSDVGHVDODLUH HOVH 6\VWHPRXWSULQWOQ VJDJQHI ` UVFORVH Remarque la méthode isnull() de JDBC0.5 permettait LIUVLV1XOO 6\VWHPRXWSULQWOQ VQDSDVGHVDODLUH HOVH 6\VWHPRXWSULQWOQ VJDJQHUVJHW)ORDW cependant l implantation étant difficile, elle a été abandonnée
28 JDBC SDVVDJHG DUJXPHQWVPRGLILFDWLRQWUDQVDFWLRQ 28 FODVV (PSOR\H ^ SXEOLFVWDWLFLQW XSGDWH(PSOR\H LQWQXP6WULQJQRP WKURZV 64/([FHSWLRQ &ODVV1RW)RXQG([FHSWLRQ ^WU\^ &ODVVIRU1DPH RUDFOHMGEFGULYHU2UDFOH'ULYHU 6WULQJ GEXUO MGEFRUDFOHRFL# &RQQHFWLRQFRQQ 'ULYHU0DQDJHUJHW&RQQHFWLRQGEXUOWRWRSDVVHPRW FRQQVHW$XWR&RPPLWIDOVH 3UHSDUHG6WDWHPHQW SVWPW FRQQSUHSDUH6WDWHPHQW 83'$7((PSOR\H 6(7VDODU\ "QDPH ":+(5(QXPHPS " SVPWFOHDU3DUDPHWHUV SVPWVHW1XOO SVPWVHW6WULQJQRPSVPWVHW,QWQXP LQWQE/LJQHV0RGLILHHV SVPWH[HFXWH8SGDWH LIQE/LJQHV0RGLILHHV FRQQFRPPLWHOVH FRQQUROOEDFN `FDWFK([FHSWLRQH^ HSULQW6WDFN7UDFH``
29 29 JDBC DSSHOG XQHSURFpGXUHVWRFNpH FODVV (PSOR\H ^ SXEOLFVWDWLFLQW SD\UDLVH &RQQHFWLRQFRQQLQWQXP WKURZV 64/([FHSWLRQ^ WU\ ^ &DOODEOH6WDWHPHQW FVWPW FRQQSUHSDUH&DOO^FDOO VSBSD\UDLVH""` FVWPWUHJLVWHU2XW3DUDPHWHUMDYDVTO7\SHV,17 SVPWVHW,QWQXP FVPWH[HFXWH UHWXUQ FVWPWJHW,QW `FDWFK([FHSWLRQH^ HSULQW6WDFN7UDFH``
30 JDBC 6WUHDPV$6&,,HW%LQDLUHV 30 FODVV (PSOR\H ^ SXEOLF VWDWLFYRLG LQIR&RQQHFWLRQFRQQ LQWQXP WKURZV 64/([FHSWLRQ^WU\ ^ 6WDWHPHQWVWPW FRQFUHDWH6WDWHPHQW 5HVXOW6HWUV VWPWH[HFXWH4XHU\ 6(/(&7 QDPHSKRWR FY )520(03/2<( ZKLOH UVQH[W^ 6WULQJV UVJHW6WULQJ %XIIHUHG5HDGHUFY QHZ %XIIHUHG5HDGHU QHZ,QSXW6WUHDP5HDGHUUVJHW$VFLL6WUHDPFY ZKLOHFYUHDG\^RXWSULQWOQFYUHDGOLQH` %XIIHUHG,QSXW6WUHDPJLI'DWD QHZ %XIIHUHG,QSXW6WUHDP QHZ %LQDU\,QSXW6WUHDPUVJHW%LQDU\6WUHDPSKRWR ZKLOHOHQ JLI'DWDUHDGEXIEXIOHQJWK ^ «` `UVFORVH
31 31 JDBC 5HVXOW6HW0HWD'DWD FODVV+70/5HVXOW6HW^/LYUH6HUYOHW([S SULYDWH5HVXOW6HWUV SXEOLF+70/5HVXOW6HW5HVXOW6HWUV^WKLVUV UV` SXEOLF6WULQJ WR6WULQJ^ 6WULQJ%XIIHURXW QHZ 6WULQJ%XIIHURXWDSSHQG7$%/(! 5HVXOW6HW0HWD'DWD UVPG UVJHW0HWD'DWD LQWQXPFROV UVPGJHW&ROXPQ&RXQW RXWDSSHQG75! IRULQWL LQXPFROVL^ RXWDSSHQG7+!DSSHQGUVPGJHW&ROXPQ/DEHOL ` RXWDSSHQG75! «
32 JDBC JHW2EMHFW 32 «VXLWHGH+70/5HVXOW6HWWR6WULQJ ZKLOH UVQH[W^ RXWDSSHQG75! IRULQW L LQXPFROVL^ RXWDSSHQG7+! 2EMHFWREM UVJHW2EMHFWL RXWDSSHQGREM QXOO" QEVSREMWR6WULQJ RXWDSSHQG7+! ` RXWDSSHQG75! ` RXWDSSHQG7$%/(!
33 33 JDBC JHW2EMHFW 5HVXOW6HWUV VWPWH[HFXWH4XHU\ 6(/(&7 QXPHPS QDPH VDODU\ )520(03/2<( ZKLOH UVQH[W^ 6WULQJV UVJHW6WULQJ IORDW I UVJHW)ORDWVDODU\ LIUVZDV1XOO«HOVH«ZDV1XOOWHVWHVLODGHUQLqUHYDOHXUHVW18// ` «ZKLOH UVQH[W^DOWHUQDWLYHDYHFJHW2EMHFW 2EMHFWREM REM UVJHW2EMHFW6WULQJV REMWR6WULQJ REM UVJHW2EMHFWVDODU\ LIREM QXOO«HOVH^WHVWHVLODYDOHXUHVW18// )ORDW I )ORDWREM«SHXWOHYHU&DVW([FHSWLRQ ``
34 Correspondance de type SQL-Java (i) 34 7\SH64/ 180(5,& '(&,0$/ %,7 7,1<,17 60$//,17,17(*(5 %,*,17 5($/ )/2$7 '28%/( MDYD0DWK%LJ'HFLPDO MDYD0DWK%LJ'HFLPDO ERROHDQ E\WH VKRUW LQWHJHU ORQJ IORDW GRXEOH GRXEOH 7\SH-DYD 7\SH-DYD UHWRXUQpSDUJHW2EMHFW MDYD0DWK%LJ'HFLPDO MDYD0DWK%LJ'HFLPDO %RROHDQ,QWHJHU,QWHJHU,QWHJHU /RQJ )ORDW 'RXEOH 'RXEOH 'RLWrWUHXWLOLVpSRXUOHVYDOHXUV PRQpWDLUHVSOXW{WTXH)ORDW 0pWKRGHUHFRPPDQGpH DXOLHXGHJHW2EMHFW MDYD0DWK%LJ'HFLPDO JHW%LJ'HFLPDO MDYD0DWK%LJ'HFLPDO JHW%LJ'HFLPDO ERROHDQJHW%RROHDQ E\WH JHW%\WH VKRUWJHW6KRUW LQWHJHUJHW,QW ORQJJHW/RQJ IORDWJHW)ORDW GRXEOHJHW'RXEOH GRXEOH JHW'RXEOH
35 Correspondance de type SQL-Java (ii) 35 7\SH64/ &+$5 9$5&+$5 /21*9$5&+$5 %,1$5< 9$5%,1$5< /21*9$5%,1$5< '$7( 7,0( 7,0(67$03 6WULQJ 6WULQJ 6WULQJ 7\SH-DYD MDYDVTO'DWH MDYDVTO7LPH MDYDVTO7LPHVWDPS 7\SH-DYD UHWRXUQpSDUJHW2EMHFW 6WULQJ 6WULQJ 6WULQJ MDYDVTO'DWH MDYDVTO7LPH MDYDVTO7LPHVWDPS 0pWKRGHUHFRPPDQGpH DXOLHXGHJHW2EMHFW 6WULQJ JHW6WULQJ 6WULQJ JHW6WULQJ,QSXW6WUHDP JHW$VFLL6WUHDP,QSXW6WUHDP JHW8QLFRGH6WUHDP JHW%LQDU\6WUHDP MDYDVTO'DWHJHW'DWH MDYDVTO7LPHJHW7LPH MDYDVTO7LPHVWDPS JHW7LPHVWDPS
36 36 Nouveaux types dans JDBC3.0 BOOLEAN DATALINK Prise en chaque de données externes au SGBD (fichier d images, )
37 Les exceptions dans JDBC 64/([FHSWLRQ64/:DUQLQJ'DWD7UXQFDWLRQ 37 «WU\ ^ 3UHSDUHG6WDWHPHQWSVWPW FRQQSUHSDUH6WDWHPHQW 83'$7( (PSOR\H 6(7 VDODU\ " QDPH ":+(5( QXPHPS " SVPWVHW1XOO SVPWVHW6WULQJQRP SVPWVHW,QW QXP QE/LJQHV0RGLILHHV SVPWH[HFXWH8SGDWH ` FDWFK'DWD7UXQFDWLRQ H^ 'HVGRQQpHVRQWpWpWURQTXpHVRQGpFLGHGHQHULHQIDLUH ` FDWFK64/([FHSWLRQH^ 6\VWHPRXWSULQWOQHJHW0HVVDJH ZKLOHH HJHW1H[W([FHSWLRQ QXOO^ 6\VWHPRXWSULQWOQHJHW0HVVDJH ` `
38 Evolution de JDBC 38 JDBC 1.0 (Janvier 1996) JDBC 2.0 (Mars 1998) JDBC 3.0 (Septembre 2000) Extensions de JDBC 2.x CORE et SE (Standard Exception) Parcours avant-arrière d un ResultSet Mise à jour depuis un ResultSet Batch de plusieurs ordres SQL3 datatypes les types étendus UDT (SQL_DATA) et références REF les types longs (BLOB, CLOB) et les ARRAY Validation à deux phases des transactions (XA) Pool de connexion, Cache de lignes sur le client RowSet (Composants JavaBean), DataSource et JNDI
39 Echapement SQL dans les Statements 39 6WDWHPHQWVWPW FRQFUHDWH6WDWHPHQW VWPWVHW(VFDSH3URFHVVLQJWUXH 5HVXOW6HWUV HFKDSHPHQW GHZLOGFDUG64/BHW UV VWPWH[HFXWH4XHU\6(/(&7QXPHPS )520(03/2<( :+(5(QDPH /,.(??B^HVFDSH??` DSSHOjGHVIRQFWLRQVGX6*%' UV VWPWH[HFXWH4XHU\6(/(&7 QXPHPS )520(03/2<( :+(5( QDPH ^IQXVHU` MRLQWXUHH[WHUQH UV VWPWH[HFXWH4XHU\6(/(&7 QXPHPS680DPRXQW )520^RM (03/2<(/()7287(5-2,16$/(86,1*QXPHPS` DSSHOGHSURFpGXUHVWRFNpH ^" FDOO ^FDOO
40 Positionnement dans un ResultSet 40 Méthodes : first, last, beforefirst, afterlast, absolute, previous, relative, movetocurrentrow 6WDWHPHQWVWPW FRQFUHDWH6WDWHPHQW 5HVXOW6HW7<3(B6&52//B6(16,7,9( 5HVXOW6HW&21&85B83'$7($%/( 5HVXOW6HWUV VWPWH[HFXWH4XHU\6(/(&7)520(PSOR\H UVILUVW UVXSGDWH)ORDW6DODU\I UVDEVROXWH )ORDW VDO UVJHW)ORDW6DODU\VDO UVXSGDWH)ORDWVDO UVUHODWLYHUVSUHYLRXV UVXSGDWH)ORDW6DODU\I UVXSGDWH5RZ UVXSGDWH5RZ UVXSGDWH5RZ
41 41 Mise à jour depuis Java 6WDWHPHQWVWPW FRQFUHDWH6WDWHPHQW5HVXOW6HW7<3(B6&52//B6(16,7,9( 5HVXOW6HW&21&85B83'$7($%/( 5HVXOW6HWXSUV VWPWH[HFXWH4XHU\ 83'$7((PSOR\H6(76DODU\ :+(5(1XP(PS XSUVODVW XSUVXSGDWH)ORDW6DODU\ XSUVFDQFHO5RZ8SGDWHV XSUVXSGDWH)ORDW6DODU\ XSUVXSGDWH5RZ
42 Insertion et suppression depuis Java 42 6WDWHPHQWVWPW FRQFUHDWH6WDWHPHQW 5HVXOW6HW7<3(B6&52//B6(16,7,9( 5HVXOW6HW&21&85B83'$7($%/( 5HVXOW6HWXSUV VWPWH[HFXWH4XHU\6(/(&7)520(PSOR\H XSUVPRYH7R,QVHUW5RZDXWUHVPpWKRGHVILUVW ODVWEHIRUH)LUVW DIWHU/DVW DEVROXWH SUHYLRXV UHODWLYHPRYH7R&XUUHQW5RZ XSUVXSGDWH6WULQJ1DPH-RVHSK XSUVXSGDWH,QW XSUVXSGDWH)ORDW6DODU\I XSUVLQVHUW5RZ XSUVODVW XSUVGHOHWH5RZ
43 Batch de plusieurs ordres 43 FRQVHW$XWR&RPPLWIDOVH 6WDWHPHQWVWPW FRQFUHDWH6WDWHPHQW VWPWDGG%DWFK,16(57,172 (PSOR\H 9$/8(6-DFTXHVI VWPWDGG%DWFK,16(57,172 (PSOR\H 9$/8(63DXOI VWPWDGG%DWFK,16(57,172 (PSOR\H 9$/8(60DULH18// LQW XSGDWH&RXQWV VWPWH[HFXWH%DWFK 3UHSDUHG6WDWHPHQWSVWPW FRQSUHSDUHG6WDWHPHQW,16(57,172 (PSOR\H 9$/8(6" "" SVWPWVHW,QWSVWPWVHW6WULQJ3LHUUHSVWPWVHW)ORDWI SVWPWDGG%DWFK SVWPWVHW,QWSVWPWVHW6WULQJ 0DGHOHLQHSVWPWVHW1XOO SVWPWDGG%DWFK LQW SVWPWH[HFXWH%DWFK FRQFRPPLW
44 Interface RowSet 44 Composants JavaBean pour des sources de données tabulaires étend ResultSet Modèle d événement JavaBean addrowsetlistener, removerowsetlistener peut être connecté à un bean PieChart par exemple Implémentations possibles JDBCRowSet (JDBC/TCP) CachedRowSet (RMI/IIOP) XWLOLVDEOHVSDUGHV3'$ WebRowSet (HTTP/XML) YRLU>:KLWHHWDO@S
45 45 DataSource Motivation rendre les programmes indépendants des sources de données Datasource une instance regroupe les informations de connexion (driver, dburl, user, password) puis est enregistrée dans un service de répertoire via JNDI puis récupérée via JNDI &RQWH[WFW[ QHZ,QLWLDO&RQWH[W 'DWD6RXUFHGV 'DWD6RXUFHFW[ORRNXSMGEF(PSOR\HH'% &RQQHFWLRQFQ[ GVJHW&RQQHFWLRQ «FRQFORVH Sous-classes XADataSource, ConnectionPoolDataSource
46 Pool de Connexions JDBC 46 Motivation réutiliser les connexions JDBC entre plusieurs threads (servlets, entity beans, ) au lieu de les créer puis de les clore impact important sur les performances d un serveur Servlet, Classes PooledConnection représente une des connexions gérées par le pool ConnectionEventListener permet de notifier les opérations effectuées sur le PooledConnection ConnectionPoolDataSource permet de récupérer un PooledConnection via JNDI 3RRO&RQQHFWLRQJHW3RROHG&RQQHFWLRQ
47 47 Autres interfaces Array représente un tableau SQL Struct Ref 2EMHFWJHW$UUD\5HVXOW6HWJHW5HVXOW6HW représente une structure SQL JHW$WWULEXWHV0DS P6WULQJ JHW64/1DPH7\SH représente une référence à une structure SQL SQLInput et SQLOutput représentent un type user-defined sous la forme d un flot (entrée-sortie) LQWUHDG,QWYRLGZULWH,QWLQWDWWU SQLData assure une correspondance personnalisable pour les types user-defined
48 Java-Aware Database JHW2EMHFWHWVHW2EMHFW 49 SGBDOO et JDBMS 5HVXOW6HWUV VWPWH[HFXWH4XHU\6(/(&7)520 (PSOR\H UVQH[W (PSOR\H H (PSOR\HUVJHW2EMHFW (PSOR\HP QHZ (PSOR\H0DWKLHX 3UHSDUHG6WDWHPHQWSVWPW FRQSUHSDUHG6WDWHPHQW,16(57,172(PSOR\H(PSOR\HBW9$/8(" SVWPWVHW2EMHFWP SVWPWH[HFXWH8SGDWH 5HPDUTXHOHE\WHFRGHQ HVWSDVVWRFNpLOIDXWXWLOLVHU &ODVVIRU1DPH
49 Principe de Sécurité de JDBC 50 respecte les principes Sécurité de Java JDK 1.0 et 1.1 / en changement avec JDK1.2 Application / Thrusted Applets EDVHVORFDOHV VHUYHXU%' Untrusted Applets / Untrusted JDBC Driver FRQQH[LRQDXVHUYHXU%' VL #GXVLWHGHFKDUJHPHQW
50 Utilisation : Application et Applets Application -'%& fichiers locaux Applet -'%& fichiers locaux Serveur BD Serveur BD Serveur HTTPD 51 chargement
51 Utilisation : Servlets (i) Serveur BD fichiers locaux HTTPD -HHYHV-LJVDZ 52 chargement Applet Invocation CGI Servlet -'%&
52 Utilisation : Servlets (ii) 53 Applet fichiers locaux HTTPD VHUYOHW GULYHU-'%& Serveur BD Invocation CGI Servlet -'%& chargement HTTPD -HHYHV-LJVDZ
53 JDBC et ANT 54 Tâche ANT pour envoyer des ordres SQL Via un driver JDBC Exemple avec McKoi HFKR!4XHU\ WDEOHVHFKR! VTO GULYHU ^GULYHU`XUO ^XUO`XVHULG ^XVHULG`SDVVZRUG ^SDVVZRUG` SULQW \HVFODVVSDWKUHI VTOGULYHUSDWK! WUDQVDFWLRQ!>&'$7$> 6(/(&7)520 $LU&UDIW 6(/(&7)520)OLJKW WUDQVDFWLRQ!>&'$7$> 6(/(&7)5207LFNHW 6(/(&7)520 &XVWRPHU
54 Le module DBI de PERL (i) $FFqVDX[%'V SDUGHVVFULSWV3(5/ 55 KWWSZZZKHUPHWLFDFRPWHFKQRORJLD'%, XVHVWULFWXVH'%, P\ GEK '%,!FRQQHFW GEL2UDFOHRUFOWRWRSDVVHGHPRW ^5DLVH(UURU!$XWR&RPPLW!` GLH'DWDEDVHFRQQHFWLRQ QRWPDGH'%,HUUVWU P\ #QDPHV 'X0D P\ VTO TT^6(/(&7QDPHVDODU\ )520 HPSOR\HHV :+(5( QDPH /,.("` P\ VWK GEK!SUHSDUHVTO IRU#QDPHV ^ VWK!ELQGBSDUDPB'%,64/B9$5&+$5VWK!H[HFXWH P\QRPVDOVWK!ELQGBFROXPQV XQGHI?QRP?VDO ZKLOHVWK!IHWFK^SULQWQRPHVWSD\pVDO?Q` ` VWK!ILQLVKGEK!GLVFRQQHFW
55 Le module DBI de PERL (ii) 7UDQVDFWLRQV 56 XVHVWULFWXVH'%, P\ GEK '%,!FRQQHFW GEL2UDFOHRUFOMHIIUH\MHIIVSDVVZRUG ^5DLVH(UURU!$XWR&RPPLW!` GLH'DWDEDVHFRQQHFWLRQ QRWPDGH'%,HUUVWU P\ #UHFRUGV P\ VTO TT^,16(57,172 HPSOR\HHV 9$/8(6"""` P\ VWK GEK!SUHSDUHVTO IRU#UHFRUGV^ HYDO ^ VWK!ELQGBSDUDP#B!>@'%,64/B,17(*(5 VWK!ELQGBSDUDP#B!>@'%,64/B9$5&+$5 VWK!ELQGBSDUDP#B!>@'%,64/B,17(*(5 VWK!H[HFXWHGEK!FRPPLW ` LI#^ ZDUQ 'DWDEDVHHUURU'%,HUUVWU?QGEK!UROOEDFN` ` VWK!ILQLVKGEK!GLVFRQQHFW
56 Embedded SQL Motivations Oracle Pro*C Informix ESQL SQLJ
57 58 Motivation Syntaxe plus concise que SQL/CLI Analyse statique Contrôle de la Syntaxe et du Typage Typage curseur dépendant de la Métabase Précompilation Source PL + ordres SQL imbriqués PréCompilateur E-SQL dans PL Source PL + ordres SQL/CLI imbriqués ou ordres natifs Compilateur PL Exécutable Base MetaBase
58 59 Embedded SQL Sections spéciales (;(&64/%(*,1(1''(&/$5(6(&7,21 pour les déclarations de variables 3GL partagées avec SQL (;(&64/6(/(&7«,172«pour l exécution d une requête SQL Précompilateurs C Java Informix ESQL/C Oracle Pro*C SQLJ 2UDFOH7DQGHP,%06\EDVH Java Relational Binding $UGHQW6RIWZDUH
59 60 Exemple Pro*C EXEC SQL INCLUDE SQLCA; /* manipulation des erreurs */ EXEC SQL BEGIN DECLARE SECTION; char nom[21]; float salaire; EXEC SQL END DECLARE SECTION; scanf("%s",nom); EXEC SQL EXECUTE SELECT salary INTO :salaire FROM Employe WHERE name = :nom; END-EXEC; if (sqlca.sqlcode!= 0) VTOHUUPFPHVVDJHG HUUHXUVTOHUUPOVDORQJXHXU else printf(" Erreur d execution.\n %.70s\n", sqlca.sqlerrm.sqlerrml, sqlca.sqlerrm.sqlerrmc); printf ("%s gagne %d $\n", nom, salaire);
60 Exemple de Curseur en Pro*C 61 EXEC SQL BEGIN DECLARE SECTION; char nom[21]; float salaire; EXEC SQL END DECLARE SECTION;... EXEC SQL DECLARE c CURSOR FOR SELECT name, salary FROM Employe WHERE salary > 10000; EXEC SQL OPEN CURSOR c; while(1) { EXEC SQL FETCH c INTO :nom, :salaire; if(not FOUND) break else printf ("%s gagne %d $\n", nom, salaire); } EXEC SQL CLOSE CURSOR c;
61 Informix ESQL/C 64 EXEC SQL DECLARE cursemp CURSOR FOR SELECT name, salary INTO QRPVDOQXOOBIODJ FROMEmploye FROM items FOR READ ONLY; EXEC SQL OPEN cursemp; while(sqlcode == 0) { EXEC SQL FETCH cursemp; if(sqlcode == 0) if (null_flag < 0)printf("%d gagne rien\n", nom) else printf("%s gagne %d$\n", nom, sal); } EXEC SQL CLOSE cursemp;
62 65 SQLJ - SQL Java SURSRVpSDU2UDFOH,%06\EDVH7DQGHPjO,62$16, Embedded-SQL dans Java vers un source Java avec des appels JDBC Exemple YRLG SULQWBVDODU\ 6WULQJQRPWKURZV 64/([FHSWLRQ^ LQW VDO VTOFRQWH[WFQ['5+ VTO ^6(/(&7VDODU\,172VDO)520(PSOR\H :+(5(QRP QDPH ` 6\VWHPRXWSULQWOQQRPHVWSD\pVDO VTO >FQ[5(&@^'(/(7()520(PSOR\H `VXUODFRQQH[LRQFQ[5(& `
63 SQLJ - Itérateurs 66 1RWLRQGHFXUVHXU VTO SXEOLF LWHUDWRU,WHU(PS 6WULQJ LQWGpFODUDWLRQG XQHFODVVHG LWpUDWHXU,WHU(PSLWHUGpFODUDWLRQG XQREMHW LWpUDWHXU 6WULQJQRPLQW VDOLQWF VTOLWHU ^6(/(&7QDPHVDODU\ )520(PSOR\H ` ZKLOH WUXH^ VTO ^)(7&+LWHU,172QRPVDO` LILWHUHQG)HWFKEUHDN LIF6\VWHPRXWSULQWOQQRPHVWSD\pVDO ` LWHUILUVWVHUHSRVLWLRQQHDXSUHPLHUUpVXOWDW ZKLOHLWHUQH[W^VHSRVLWLRQQHVXUOHVUpVXOWDWVHQSRVLWLRQLPSDLUH 6\VWHPRXWSULQWOQ LWHUQDPHHVWSD\pLWHUVDODU\ `
64 67 SQLJ - Autres Modification au niveau de l itérateur,whu(pslwhugpfodudwlrqg XQREMHW LWpUDWHXU VTOLWHU ^6(/(&7 QDPH VDODU\ )520 (PSOR\H `«VTO ^83'$7( (PSOR\H 6(7 VDODU\ VDODU\:+(5(&855(172)LWHU ` Valeurs Nulles MDYDVTO'DWHG QXOO LQW V QXOO VTO ^,16(57,172 (PSOR\H QDPH VDODU\ ELUWKGD\KREE\ 9$/8(6'XSRQGVG18//` Blocs et Atomicité YRLG 7UDQVIHUWLQW [LQW \LQW P^ VTO ^$720,&%(*,1 83'$7(&RPSWH6(7VROGH VROGHP:+(5(QXPFSW [ 83'$7(&RPSWH6(7VROGH VROGH P:+(5( QXPFSW \,16(57,1727UDQVIHUWVFSWFUHGLWFSWGHELWPRQWDQW9$/8(6[\P (1'``
65 SQLJ - Interopérabilité avec JDBC 68 Parcours d une requête SQLJ à partir d un Result6HW VTOMUXQWLPH5HVXOW6HW,WHUDWRULWHU VTOLWHU ^6(/(&7 QDPH VDODU\ )520 (PSOR\H ` MDYDVTO5HVXOW6HWUV LWHUJHW5HVXOW6HW ZKLOH UVQH[W^ 6WULQJV UVJHW6WULQJ IORDW I UVJHW)ORDWVDODU\ 6\VWHPRXWSULQWOQ VJDJQHI `UVFORVH Construction d un itérateur à partir d un ResultSet,WHU(PSLWHU 5HVXOW6HWUV VWPWH[HFXWH4XHU\6(/(&7QDPH VDODU\ )520(PSOR\H VTOLWHU UV ZKLOHLWHUQH[W^ 6\VWHPRXWSULQWOQ LWHUQDPHHVWSD\pLWHUVDODU\ `
66 69 JavaBlend Mapping transparent d objets Java avec les lignes d une base relationnelle Utilise l ODL de l ODMG pour la description
67 70 Extra JDBC p6spy : espion pour surveiller le «trafic» JDBC ObjectWeb XAPool : pool de connexions pour JDBC
68 SQL «Procédural» Motivations Architecture SQL3 / PSM Informix SPL Oracle PL/SQL Un nouveau venu : Java
69 Motivations pour un SQL procédural 72 Inconvénients Dynamic SQL et Middleware SQL (ODBC, JDBC,...) requête vérifiée à l exécution (runtime) typage faible variable hôte et curseur Embedded SQL in 3GL précompilation Dans les deux cas «impedance mismatch» code procédural du coté client (coût réseau) Begin For i=1 to 4 End Select... Client SQL SQL SQL SQL Serveur SQL BDR
70 Architecture Client-Serveur 73 Dynamic SQL et Embedded SQL Client Procédure anonyme Client Procédure stockée Client SQL SQL SQL PL/SQL RPC SQL Moteur PL/SQL Moteur PL/SQL Serveur SQL Procédure Stockée PL/SQL Serveur SQL Serveur SQL BDR BDR BDR
71 Architecture Client-Serveur 74 Triggers SQL Update, Delete, Insert Client Moteur PL/SQL Action PL/SQL d un Trigger Serveur SQL BDR
72 75 Standard et Langages Le standard SQL3 / PSM Les éditeurs Informix SPL Oracle PL/SQL Remarque Java est de plus en plus utilisé pour les «Java Stored Procedures» JVM sur le serveur BD
73 76 Utilisation dans Oracle Procédures anonymes Oracle SQL*PLUS, SQL*DBA Procédures Stockées Actions des Déclencheur Triggers Oracle SQL*MENU, SQL*FORMS
74 77 Bloc (Procédure) anonyme envoyé par le client au serveur Syntaxe DECLARE déclarations des variables locales -- optionel BEGIN suite d instructions PL/SQL ou de blocs anonymes EXCEPTION suite d instructions PL/SQL -- optionel ou de blocs anonymes END;. Run; -- provoque l exécution de la procédure anonyme
75 Typage des Variables 78 Type de Données SQL CHAR, VARCHAR2, NUMBER, DATE, BOOLEAN, LONG, RAW, ROWID Constructeur de type complexe RECORD, TABLE, TABLE of RECORDS ADT Abstract Data Type type «objet» Désignation du type d une colonne d un table QRPGHWDEOH!QRPGHFRORQQH!7<3(
76 79 Instructions Affectation Instructions SQL Requête SELECT, INSERT, UPDATE, DELETE Transaction COMMIT, ROLLBACK, SAVEPOINT Curseur DECLARE, OPEN, FETCH, CLOSE, WHERE CURRENT OF Structures de Contrôle imbrication illimitée IF...THEN...ELSIF...END IF boucles FOR, WHILE, LOOP et EXIT, GOTO Exceptions Exceptions internes au SGBD ou définies par l utilisateur Plusieurs niveaux d exception
77 Instructions 80 Affectation YDULDEOH! := YDULDEOHRXH[SUHVVLRQ!; SELECT YDULDEOH! INTO YDULDEOH! VXLWHGHODFODXVH )520:+(5(! ; Test IF FRQGLWLRQ! THEN LQVWUXFWLRQV! END IF; IF FRQGLWLRQ! THEN LQVWUXFWLRQV! ELSE LQVWUXFWLRQV! END IF; IF FRQGLWLRQ! THEN LQVWUXFWLRQV! ELSE LQVWUXFWLRQV! ELSIF FRQGLWLRQ! THEN LQVWUXFWLRQV! END IF; Boucles LOOP LQVWUXFWLRQV! EXIT WHEN FRQGLWLRQGHVRUWLH! LQVWUXFWLRQV! END LOOP; WHILE FRQGLWLRQ! LOOP LQVWUXFWLRQV! END LOOP; FOR YDULDEOH! IN YDOHXU! YDOHXU! LOOP LQVWUXFWLRQV! END LOOP;
78 Affection à partir d une requête 81 1 seule ligne retournée sinon erreur SELECT INTO DECLARE massesalairialeplus10000 Employe.salary%TYPE; BEGIN SELECT INTO FROM SUM(salary) massesalairialeplus10000 Employe WHERE salary > 10000; END; RETURNING DECLARE nomemploye.name%type, nouveausal Employe.salary%TYPE BEGIN END; UPDATEEmployeSET salary =salary * 1.1 WHERE numemp= 100 RETURNINGname, salary INTO nom, nouveausal;
79 Exceptions (i) 82 declare s Employe.salary%TYPE; --variable locale EHJLQ EHJLQ select salary into s from Employe where numemp = num; H[FHSWLRQ ZKHQ QRBGDWDBIRXQG EHJLQ s := -1; notifieerreur (num); -- Appel d une autre procédure HQG HQG H[FHSWLRQ ZKHQ QRBGDWDBIRXQG EHJLQ QRWLILH(UUHXUQXP -DPDLVDWWHLQW HQG ZKHQRWKHUVWKHQQXOO HQG
80 Exceptions (ii) 83 declare HB'HSDVVHPHQW (;&(37,21 GpFODUDWLRQG XQHH[FHSWLRQXWLOLVDWHXU s Employe.salary%TYPE; EHJLQ begin select sum(salary) into s from Employe; if s > then UDLVH HB'HSDVVHPHQW; end if; exception ZKHQ HB'HSDVVHPHQW begin RAISE_APPLICATION_ERROR(-20001, 'La masse salariale a explosé! ); end; when no_data_found begin notifieerreur2 (num); -- Jamais atteint end; when others then null; end;
81 84 Curseurs Déclaration CURSOR QRPFXU! IS UHTXrWH6(/(&7!; Usage Ouverture OPEN QRPFXU!; Parcours dans un boucle test d arrêt EXIT WHEN QRPFXU!%NOTFOUND; WHILE QRPFXU!%FOUND LOOP... récupération des valeurs dans des variables FETCH QRPFXU! INTO OLVWHGHYDULDEOHV! ; Fermeture CLOSE QRPFXU!;
82 Exemple de Curseur 85 CREATE OR REPLACE PROCEDURE augmentationsalaire( seuil INEmploye.salary%TYPE, augmentation IN NUMBER(2) ) AS sal Employe.salary%TYPE; num Employe.numemp%TYPE; &85625F,66(/(&7 VDODU\ QXPHPS )520 (PSOR\H; BEGIN 23(1F; )(7&+F,172VDO QXP; DWWHQWLRQjO RUGUHW\SHVFRPSDWLEOHV WHILE F)281' LOOP IF sal IS NOT NULL AND sal < seuil THEN UDPATE Employe SET salary = salary*(augmentation )/100 WHERE numemp = num; END IF; )(7&+F,172VDO QXP; END LOOP; &/26(F END;
83 Procédures et Fonctions 86 Plusieurs Types %ORFSURFpGXUHDQRQ\PH HQYR\pSDUOHFOLHQWDXVHUYHXU Procédure stockée, Fonction stockée stockées sur le serveur Procédure membre, Fonction membre méthodes membres des types objets Procédure externe écrit en LG3, utilise l API d Oracle OCI : 2UDFOH&DOO,QWHUIDFH peut être invoqué depuis PL/SQL Fonctionnalités générales Récursion illimitée Surcharge des paramètres Passage des paramètres avec des modes IN, OUT, INOUT
84 Procédures Stockées 87 Déclaration CREATE OR REPLACE PROCEDURE QRPSURF! ( OLVWDUJ! ) déclarations des variables locales (optionel) BEGIN suite d instructions PL/SQL EXCEPTIONS suite d instructions PL/SQL END;. Run; -- déclaration de la procédure stockée Liste des Arguments QRPDUJ PRGHW\SH PRGH : IN, OUT ou INOUT W\SH : de base (SQL92), NUMBER, ADT (SQL3) désignation du type d une colonne d un table WDEOH!FRORQQH!7<3( AS
85 Procédures Stockées 88 Exemple CREATE OR REPLACE PROCEDURE nouvelemploye( n INEmploye.name%TYPE, s INEmploye.salary%TYPE ) AS BEGIN INSERT INTOEmploye VALUE ( 123, n, s, NULL); END;. RUN; Invocation depuis un bloc anonyme BEGIN nouvelemploye( Martin, 10000); nouvelemploye( Dupont, 20000); END;. RUN;
86 Fonctions 89 create or replace function get_sal (numin Employe.numemp%TYPE) return Employe.salary%TYPE is s Employe.salary%TYPE; --variable locale begin begin select salary into s from Employe where numemp = num; exception when no_data_found begin s := -1; notifiererreur (num); -- Appel d une autre procédure end; when others then null; end; -- bloc imbriqué return s; end; -- function
87 Informix SPL 90 SPL (Stored Procedure Language) Définition de Procédures et de Fonctions Stockées CREATE PROCEDURE raise_prices( per_cent INT)... END PROCEDURE DOCUMENT "USAGE: EXECUTE PROCEDURE raise_prices(xxx)", "xxx = percentage from1-100"; CREATE FUNCTION find_group( id INT ) RETURNING INT, REAL;... END FUNCTION; DROP PROCEDURE raise_prices;
88 Informix SPL - Imbrication de bloc 91 CREATE PROCEDURE scope() DEFINE x,y,z INT; LET x = 5; LET y = 10; LET z = x + y; --zis15 BEGIN DEFINE x, q INT; DEFINE z CHAR(5); LET x = 100; LET q = x + y; -- q = 110 LET z = silly ; -- zreceivesacharacter value END LET y = x; -- yis now5 LET x = z; -- zis now15, not silly END PROCEDURE;
89 92 Informix SPL - Curseur CREATE_PROCEDURE increase_by_pct( pct INTEGER ) DEFINE s INTEGER; FOREACH sal_cursor FOR SELECT salary INTO s FROMemployee WHERE salary > LET s = s + s * ( pct/100 ); UPDATEemployeeSETsalary = s WHERE CURRENT OF sal_cursor; END FOREACH END PROCEDURE;
90 Informix SPL - Exception 93 BEGIN ON EXCEPTION IN (1) END EXCEPTION WITH RESUME -- do nothing significant (cont) BEGIN FOR i IN (1 TO 1000) FOREACH select..intoaa FROM t IF aa< 0 THEN RAISE EXCEPTION 1 ; -- emergency exit END IF END FOREACH END FOR RETURN 1; END --do something; -- emergency exit to this statement. TRACE Negative value returned ; RETURN -10; END
91 Java, Persistance et Bases de Données 96 Rendre persistant des objets Java 35% du travail du développeur passe dans le mapping Objet/JDBC Plusieurs solutions de stockage Sérialisation + Fichier / ne permet pas le partage et la recherche, n est pas incrémental JDBC API bas-niveau / impedance mismatch SQLJ Embedded SQL in Java / impedance mismatch JavaBlend JDO
92 97 JavaBlend OML Java de l ODMG2.0 ( classes additionnelles PersistentRoot et OID Dcollection,... Transparence au SQL Surcouche à JDBC
93 Java Data Objects (JDO) 98 Permet de rendre persistants des instances de n importe quelles classes Persistance transparente Accès direct aux membres Pas des méthodes set/get (accesseur/mutateur) Déréferenciation par. Instances persistante / transiente Architecture de base PersistenceManager Gère les accès, la sauvegarde, les transactions et les recherches entre les applications et les Data Stores Transaction Query Recherche sur critère. classes PersistenceCapable Interface que doit implémenter une classe dont des instances peuvent être persistentes
94 JDO - Query 99 Exemple class Employee{ String name; Integer salary; Employee manager; }... Collection extent = persistmngr.getextent(class.forname("employee"), false); Query q = persistmngr.newquery ( Class.forName("Employee"), // class extent, // candidates "salary > 50000" // filter ); Collection resultset = q.execute();
95 100 Java coté SGBD Java Stored Procedure/Function (Oracle) Procédures/Fonctions stockées écrites en Java (au lieu de PL/SQL) et utilisant JDBC ou SQLJ Java Triggers (Oracle) Actions des triggers écrites en Java (au lieu de PL/SQL) et utilisant JDBC ou SQLJ
96 101 Bibliographie - Autre PL/SQL Scott Urman, «Oracle8 PL/SQL Programming», ed Osborne-McGraw- Hill, Oracle Press Series, ISBN Steven Feuerstein, «Oracle PL/SQL Programming»,2nd Edition, ed O'Reilly. ISBN Steven Feuerstein, «Advanced Oracle PL/SQL Programming with Packages», ed O'Reilly, ISBN ADO La référence du programmeur ADO 2.0 (mi juin 99), Ed Eyrolles
97 102 Procédures stockées en.net Motivations Procédures et fonctions stockées Actions des Triggers ADT et Index sur ADT Fonctions complexes d agrégat Langage CLR : C#, Managed C++, J#, VB, Principes Chargement des assemblies Création des procédures
98 103 Chargement des assemblies CREATE ASSEMBLY <assembly id> FROM <path> WITH PERMISSION_SET=[SAFE EXTERNAL_ACCESS UNSAFE] CREATE ASSEMBLY Customer FROM 'C:\build\cust\customer.dll' 2 tables systèmes: sys.assemblies et sys.assembly_files
99 Création de procédures 104 CREATE PROCEDURE <procname> AS EXTERNAL NAME <assembly is>::<type name>::<method name> class Salary { public static int compute(int sal) { } } CREATE PROCEDURE int AS EXTERNAL NAME Customer::Salary::compute int EXEC ComputeSalary OUTPUT
100 105 Bibliographie JDBC S. White, M. Fisher, R. Cattell, G. Hamilton, M. Hapner, "JDBC API Tutorial and Reference", Ed Addison-Wesley, ISBN très complet (le plus complet) George Reese, «Database Programming with JDBC and Java with Packages», 1st Edition June 1997, ed O'Reilly, ISBN (ISBN en français) un peu incomplet Robert Orfali, Dan Harkey, «Client/Server Programming with Java and Corba», 2ème édition, 1998, Ed Wiley, ISBN X. Chapitres 23 à 26. mise en œuvre de JDBC en architecture multi-tiers benchmark TPC/AB avec JDBC Tutorial JDBC de
101 106 Bibliographie SQLJ Nirva Morisseau-Leroy, Martin Solomon, Gerald Momplaisir, Oracle9i SQLJ Programming, Oracle Press 2001, ISBN:
102 107 Bibliographie Revues DBMS Magazine DB2 Magazine Oracle On-line Magazine y sont publiés des «tips» sur PL/SQL
Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.
: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL
Plus en détailPanorama des Bases de Données
Panorama des Bases de Données Didier Donsez 8QLYHUVLWp-RVHSK)RXULHU*UHQREOH,0$,0$*/65$'(/( 'LGLHU'RQVH]#LPDJIU Didier Donsez, 1998-2002, Panorama des BDs 1 Le Modèle Relationnel 2 Un modèle de données
Plus en détailPanorama des Bases de Données
Panorama des Bases de Données Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes e-mail : donsez@univ-valenciennes.fr Le Modèle Relationnel Un modèle de données
Plus en détailJava et les bases de données
Michel Bonjour http://cuiwww.unige.ch/~bonjour CENTRE UNIVERSITAIRE D INFORMATIQUE UNIVERSITE DE GENEVE Plan Introduction JDBC: API SQL pour Java - JDBC, Java, ODBC, SQL - Architecture, interfaces, exemples
Plus en détailModule Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS
Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)
Plus en détailLes Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.
Les Triggers SQL Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr 1 Sommaire Motivations Trigger Ordre Trigger Ligne Condition Trigger
Plus en détailProgrammation d application Bases de données avec Java
Plan du document Programmation d application Bases de données avec Java INT Problématique slide 3 Correspondance diagramme de classe slide 4 UML vers schéma relationnel Programmation BD avec JDBC slide
Plus en détailLangage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL
Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions
Plus en détailJava DataBaseConnectivity
Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage
Plus en détailOpenPaaS Le réseau social d'entreprise
OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3
Plus en détailBases de données avancées
Bases de données avancées Jean-Yves Antoine LI - Université François Rabelais de Tours Jean-Yves.Antoine@univ-tours.fr UFR Sciences et Techniques IUP SIR Blois Master 1 Bases de Données avancées IUP Blois,
Plus en détailQuelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
Plus en détailTP Contraintes - Triggers
TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution
Plus en détailIntroduction à JDBC. Accès aux bases de données en Java
Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Introduction JDBC : Java Data Base Connectivity
Plus en détailApplication BdD et JDBC. Introduction 1/28. I Dans tout les cas, une seule problématique. I Quelques alternatives :
ntroduction 1/28 2/28 Anne-Cécile Caron Licence MAGE - Bases de Données 2013-2014 Application base de données Pour le développeur : Quel est l environnement? type de client (mode client serveur, intranet,...)
Plus en détail4. Utilisation d un SGBD : le langage SQL. 5. Normalisation
Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :
Plus en détailAccès aux bases de données
13 Accès aux bases de données Les bases de données fournissent un mécanisme de stockage persistant pour les données d application et dans bien des cas, elles sont essentielles au fonctionnement des applications.
Plus en détail//////////////////////////////////////////////////////////////////// Administration bases de données
////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données
Plus en détailModule BD et sites WEB
Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet Anne.Doucet@lip6.fr 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD
Plus en détailCOMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2
SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES
Plus en détailA QUOI SERVENT LES BASES DE DONNÉES?
BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès
Plus en détailJDBC le langage Java XVI-1 JMF
JDBC Java Database Connectivity XVI-1 JDBC JDBC est une API Java (ensemble de classes et d'interfaces défini par SUN et les acteurs du domaine des BD) permettant d'accéder aux bases de données à l'aide
Plus en détailNotes de cours : bases de données distribuées et repliquées
Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées
Plus en détailLaboratoires de bases de données. Laboratoire n 6. Programmation SQL. par Danièle BAYERS et Louis SWINNEN
Département Informatique Laboratoires de bases de données Laboratoire n 6 Programmation SQL par Danièle BAYERS et Louis SWINNEN Ce document est disponible sous licence Creative Commons indiquant qu il
Plus en détailLes Bases de Données et l Objet Introduction
Les Bases de Données et l Objet Introduction Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr Plan Définitions d un Objet Propriétés
Plus en détailA QUOI SERVENT LES BASES DE DONNÉES?
BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès
Plus en détailTP Programmation Java / JDBC / Oracle
TP Programmation Java / JDBC / Oracle 1. Connectivité avec une base de données Oracle au travers de l interface JDBC L interface de programmation (API) JDBC (Java DataBase Connectivity) est une librairie
Plus en détailORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010
ORACLE 10G DISTRIBUTION ET REPLICATION Distribution de données avec Oracle G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 1 Plan 12. Distribution de données 12.1 Génération des architectures C/S et Oracle
Plus en détailCompte Rendu d intégration d application
ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...
Plus en détailCours Bases de données
Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles
Plus en détailBases de Données Avancées PL/SQL
1/170 Bases de Données Avancées Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017
Plus en détailConfigurer la supervision pour une base MS SQL Server Viadéis Services
Configurer la supervision pour une base MS SQL Server Référence : 11588 Version N : 2.2 : Créé par : Téléphone : 0811 656 002 Sommaire 1. Création utilisateur MS SQL Server... 3 2. Configuration de l accès
Plus en détailPrésentation du PL/SQL
I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur
Plus en détailCours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry
Cours 3 Développement d une application BD 1 Plan du cours Gestion de la sécurité des données Optimisation des schémas de bases via la dénormalisation Utilisation de vues Placement du code applicatif dans
Plus en détailLe langage SQL (première partie) c Olivier Caron
Le langage SQL (première partie) 1 Plan Le S.G.B.D. postgres Le langage SQL Langage de manipulation de données Langage de requêtes 2 Quelques mots sur Postgres (1/2) Travaux de Stonebraker (Univ. Berkeley)
Plus en détailUtilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008
Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application
Plus en détailLa persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1
La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection
Plus en détailCHAPITRE 1 ARCHITECTURE
07/04/2014 Université des sciences et de la Technologie Houari Boumediene USTHB Alger Département d Informatique ADMINISTRATION ET TUNING DE BASES DE DONNÉES CHAPITRE 1 ARCHITECTURE RESPONSABLE DR K. BOUKHALFA
Plus en détailSGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)
SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients
Plus en détailPrésentation du module Base de données spatio-temporelles
Présentation du module Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes
Plus en détailInstitut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki
Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants
Plus en détailDevoir Data WareHouse
Université Paris XIII Institut Galilée Master 2-EID BENSI Ahmed CHARIFOU Evelyne Devoir Data WareHouse Optimisation, Transformation et Mise à jour utilisées par un ETL Mr R. NEFOUSSI Année 2007-2008 FICHE
Plus en détailBases de Données relationnelles et leurs systèmes de Gestion
III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation
Plus en détailArchitectures web/bases de données
Architectures web/bases de données I - Page web simple : HTML statique Le code HTML est le langage de base pour concevoir des pages destinées à être publiées sur le réseau Internet ou intranet. Ce n'est
Plus en détailA.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW
A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW Groupe : 322 Exploitation des Banques de données 420-PK6-SL (1-2-1) Étape : 3 Professeur Nom: Marcel Aubin Courriel : maubin@cegep-st-laurent.qc.ca
Plus en détailLangage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes
Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition
Plus en détailTable des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction
PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés
Plus en détailLicence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées
Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées ANNEE 2014 / 2015 Désignation de l enseignement : Bases de données Nom du document : TP SQL sous PostgreSQL Rédacteur :
Plus en détailBases de données Page 1 de 11. Bases de données. Prof. : Dzenan Ridjanovic
Bases de données Page 1 de 11 1- Objectifs généraux Bases de données Prof. : Dzenan Ridjanovic acquérir les principes et concepts fondamentaux dans le domaine des bases de données; développer les connaissances
Plus en détailIntroduction aux Bases de Données Relationnelles Conclusion - 1
Pratique d un : MySQL Objectifs des bases de données Où en sommes nous? Finalement, qu est-ce qu un? Modèle relationnel Algèbre relationnelle Conclusion SQL Conception et rétro-conception Protection de
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailOracle 8i sous Linux
Oracle 8i sous Linux Gilles Briard Éditions Eyrolles ISBN : 2-212-09135-4 2000 Avant-propos Linux est un système désormais éprouvé, comme son arrivée dans les entreprises l atteste. L engouement qu il
Plus en détailQuelques aspects du Relationnel-Objet du SGBD Oracle
Département informatique de l IUT (de l université) de Bordeaux Cours de Bases de Données : présentation partielle d un SGBD RO 12 août 2015 Olivier Guibert Quelques aspects du Relationnel-Objet du SGBD
Plus en détailIFT3030 Base de données. Chapitre 2 Architecture d une base de données
IFT3030 Base de données Chapitre 2 Architecture d une base de données Plan du cours Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées
Plus en détailAttaques applicatives
Attaques applicatives Attaques applicatives Exploitation d une mauvaise programmation des applications Ne touche pas le serveur lui-même mais son utilisation/ configuration Surtout populaire pour les sites
Plus en détailGestion de stock pour un magasin
Département d Informatique Université de Fribourg, Suisse http://diuf.unifr.ch Gestion de stock pour un magasin Stock online utilise ASP/MS-Access DO Thi Tra My No étudiant : 05-333-750 Travail de séminaire
Plus en détailCREATION WEB DYNAMIQUE
CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de
Plus en détailLES ACCES ODBC AVEC LE SYSTEME SAS
LES ACCES ODBC AVEC LE SYSTEME SAS I. Présentation II. SAS/ACCESS to ODBC III. Driver ODBC SAS IV. Driver ODBC SAS Universel V. Version 8 VI. Références I. Présentation Introduction ODBC, qui signifie
Plus en détailINTRODUCTION AUX BASES de DONNEES
INTRODUCTION AUX BASES de DONNEES Équipe Bases de Données LRI-Université Paris XI, Orsay Université Paris Sud Année 2003 2004 1 SGBD : Fonctionnalités et Principes Qu est qu une base de données? Un Système
Plus en détailCorrigés détaillés des exercices
Corrigés détaillés des exercices Diagramme des tables objet La figure suivante vous aidera dans la compréhension des manipulations des objets de la base. Client_type Client num nom adresse {telephone_vry}
Plus en détailLangage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr
Plus en détailTypes d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles
Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce
Plus en détailBases de données relationnelles
Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses
Plus en détailProgramme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)
Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée
Plus en détailLes bases de données
Les bases de données Introduction aux fonctions de tableur et logiciels ou langages spécialisés (MS-Access, Base, SQL ) Yves Roggeman Boulevard du Triomphe CP 212 B-1050 Bruxelles (Belgium) Idée intuitive
Plus en détailArchitecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués
Architecture JEE. Objectifs attendus Serveurs d applications JEE Systèmes distribués Architectures JEE Normes JEE couches logicielles, n-tiers framework JEE et design patterns 2007/02/28 Eric Hébert.eheb@yahoo.fr
Plus en détailJérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données
Base de Données Cours Introductif Base de Données Quelques chiffres Évolution annuelle moyenne 2004/2000 15% +20% 12% 5% 0.5% 2000 2004 L3G IA SG mono poste : Part de marché 5% 5% 10% Paradox 65% SG 15%
Plus en détailCours Bases de données 2ème année IUT
Cours Bases de données 2ème année IUT Cours Bilan : Des vues à PL/SQL corrigé Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Cas exemple 2 Les tables... 3 Vues et index 4 Privilèges 5 Fonctions
Plus en détailHala Skaf-Molli. Nancy-Université skaf@loria.fr 14 mai 2007
Bases de données avancées Hala Skaf-Molli Maître de Conférence Nancy-Université skaf@loria.fr 14 mai 2007 1 Introduction Dans ce cours, nous allons étudier les bases de données Orienté objets, bases de
Plus en détailLa base de données XML exist. A. Belaïd
La base de données XML exist Introduction Qu est-ce-que exist? C est une base de donnée native, entièrement écrite en Java XML n est pas une base de données en soi Bien qu il possède quelques caractéristiques
Plus en détailAuto-évaluation Oracle: cours de base
Auto-évaluation Oracle: cours de base Document: F0475Test.fm 14/01/2008 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION ORACLE: COURS DE
Plus en détail1. Introduction. Introduction au langage SQL3 (SQL 99) Plan. Sources du cours. 1. Introduction La norme SQL3 et ses composants
Introduction au langage SQL3 (SQL 99) Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU) Ecole Polytechnique Universitaire de Marseille Avril 2013 La norme SQL3 Les triggers : normalisation
Plus en détailOracle Le langage procédural PL/SQL
Oracle Le langage procédural PL/SQL Denis Roegel roegel@loria.fr IUT Nancy 2 1998/1999 Sommaire 1 Introduction 3 2 Création de packages 3 2.1 Procédures groupées.........................................
Plus en détailBTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais
BTS S.I.O. 2012-2013 PHP OBJET Module SLAM4 Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais Table des matières 1 But... 3 2 Les bases :... 3 3 Utilisation d'une classe : Instanciation...3
Plus en détailBases de Données. Stella MARC-ZWECKER. stella@unistra.u-strasbg.fr. Maître de conférences Dpt. Informatique - UdS
Bases de Données Stella MARC-ZWECKER Maître de conférences Dpt. Informatique - UdS stella@unistra.u-strasbg.fr 1 Plan du cours 1. Introduction aux BD et aux SGBD Objectifs, fonctionnalités et évolutions
Plus en détailPDO : PHP Data Object 1/13
PDO : PHP Data Object 1/13 Tous ne sont que des extensions... Les fonstions mysql_* : API mysql Les fonctions mysqli_* aussi Il en est de même pour PDO PDO (avec le pilote PDO MySQL Driver et Extension
Plus en détailPerformances. Gestion des serveurs (2/2) Clustering. Grid Computing
Présentation d Oracle 10g Chapitre VII Présentation d ORACLE 10g 7.1 Nouvelles fonctionnalités 7.2 Architecture d Oracle 10g 7.3 Outils annexes 7.4 Conclusions 7.1 Nouvelles fonctionnalités Gestion des
Plus en détailDéveloppement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France
Développement d applications Internet et réseaux avec LabVIEW Alexandre STANURSKI National Instruments France Quelles sont les possibilités? Publication de données Génération de rapports et de documents
Plus en détailConnexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC
Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC Sommaire 1. Objectifs et intérêts... 2 2. Intégrer le driver SQL Server dans SJSAS 9... 2 2.1. Télécharger
Plus en détailQui est Sybase ianywhere?
Sybase s ianywhere s Advantage Database Server Qui est Sybase ianywhere? Sybase ianywhere Sybase est la plus grande entreprise de logiciels et services exclusivement focalisée sur la gestion et la mobilisation
Plus en détailBases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications
Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications P.-A. Sunier, HEG-Arc Neuchâtel avec le concours de J. Greub pierre-andre.sunier@he-arc.ch http://lgl.isnetne.ch/
Plus en détailLe Langage SQL version Oracle
Université de Manouba École Supérieure d Économie Numérique Département des Technologies des Systèmes d Information Le Langage SQL version Oracle Document version 1.1 Mohamed Anis BACH TOBJI anis.bach@isg.rnu.tn
Plus en détailLe langage SQL pour Oracle - partie 1 : SQL comme LDD
Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1 SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger
Plus en détail633-2.2 Dialogue avec la base de données
633-2.2 Dialogue avec la base de données 3. Manipulation des données avec un langage hôte Cedric.Baudet@he-arc.ch 1 Références Filière Bachelor of Science en informatique de gestion Domaine Technologies
Plus en détail1. Introduction. Bases de données Réparties, Fédérées et Réplication. Plan. Bibliographie du cours
Bases de données Réparties, Fédérées et Réplication Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU) Ecole Polytechnique Universitaire de Marseille Avril 2013 1. Répartition & Fédération 2.
Plus en détailVulgarisation Java EE Java EE, c est quoi?
Paris, le 1 Février 2012 Vulgarisation Java EE Java EE, c est quoi? Sommaire Qu est ce que Java? Types d applications Java Environnements Java Versions de Java Java EE, c est quoi finalement? Standards
Plus en détailSQL Historique 1982 1986 1992
SQL Historique 1950-1960: gestion par simple fichier texte 1960: COBOL (début de notion de base de données) 1968: premier produit de sgbdr structuré (IBM -> IDMS) 1970-74: élaboration de l'outil d'analyse
Plus en détailImplémentation des SGBD
Implémentation des SGBD Structure générale des applications Application utilisateur accédant à des données d'une base Les programmes sous-jacents contiennent du code SQL Exécution : pendant l'exécution
Plus en détailCours Bases de données 2ème année IUT
Cours Bases de données 2ème année IUT Cours 12 : Concurrence d accès Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Accès concurrents Définitions Verrous Collisions Niveaux de cohérence Blocage
Plus en détailBD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer
Bases de Données Réparties Définition Architectures Outils d interface SGBD Réplication SGBD répartis hétérogènes BD réparties Principe : BD locales, accès locaux rapides accès aux autres SGBD du réseau
Plus en détailPL langage de programmation côté serveur. SQL à la base : types, expressions, requêtes
Introduction à PL langage de programmation côté serveur installation nécessaire : CREATE LANGUAGE ou createlang interprété : erreurs de syntaxe possibles à l exécution SQL à la base : types, expressions,
Plus en détailAdministration des bases de données. Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/
Administration des bases de données Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ Administration des bases de données II Objets avancés dans les bases de données OBJECTIFS 2.1. NOTIONS 2.1.1.
Plus en détailMise en œuvre des serveurs d application
Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés
Plus en détailModule BDR Master d Informatique (SAR)
Module BDR Master d Informatique (SAR) Cours 6- Bases de données réparties Anne Doucet Anne.Doucet@lip6.fr 1 Bases de Données Réparties Définition Conception Décomposition Fragmentation horizontale et
Plus en détailApplication web de gestion de comptes en banques
Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion
Plus en détailOlivier Mondet http://unidentified-one.net
T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage
Plus en détailAuto-évaluation Aperçu de l architecture Java EE
Auto-évaluation Aperçu de l architecture Java EE Document: f1218test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION APERÇU
Plus en détailSystèmes répartis. Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Systèmes répartis p.1/49
Systèmes répartis Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Systèmes répartis p.1/49 Systèmes répartis Définition très large : un système réparti est système informatique
Plus en détail