Apres Oracle et Sybase, on continu notre exploration des SGBD les plus utilisés dans les SI des grosses entreprises, on s’intéressera aujourd’hui a IBM DB2, qui selon les études de part de marché talonne Oracle. Pour plus de théorie sur DB2 et son histoire.
On va installer DB2 sur une machine Ubunutu 64 bits, la version gratuite est la DB2 express, vous pouvez la télécharger a partir du site d’IBM.
Une fois l’archive récupéré, dezipper la :
tar xvfz db2_v1012_linuxx64_expc.tar.gz cd expc/
Pour vérifier que vous avez tout ce qu’il faut pour installer DB2 sur votre machine, lancer la commande suivante :
./db2prereqcheck # Verifier les dependances
Apres vous pouvez lancer la procédure d’installation, soit en mode graphique :
./db2setup
Ou en mode console :
./db2_install
L’installation se passe normalement sans grand problème. Normalement 3 users seront crées par la procédure d’installation :
- Utilisateur db2das dont le groupe est : db2dasgrp.
- Utilisateur db2inst1 dont le groupe est : db2inst1grp.
- Utilisateur db2fenc1 dont le groupe est : db2fenc1grp.
Notez bien les mots de passes de ces users, vous en aurez certainement besoin.
Le service DB2 écoute par défaut sur le port 50000, vous pouvez voir ça dans le fichier /etc/services, dans mon cas j’ai les deux lignes suivantes :
tocdb2inst1 50000/tcp txtch_db2inst1 55000/tcp
Ce que vous pouvez confirmer (en tant que root) par la commande :
root@tcoServer:~# lsof -i :50000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME db2sysc 23901 db2inst1 3u IPv4 582386 0t0 TCP *:tocdb2inst1 (LISTEN)
Apres l’installation, switcher vers le user db2inst1 :
su - db2inst1
Vérifier bien que vous avez ces répertoires : /home/db2inst1/sqllib/bin, /home/db2inst1/sqllib/adm, /home/db2inst1/sqllib/misc, /home/db2inst1/sqllib/db2tss/bin dans votre $PATH et lancer la commande :
db2fs
Normalement a ce stade tout fonctionne et vous avez une instance de DB2 qui est lancé sur votre machine, voici quelques commandes pour la phase apprentissage :
- Pour lancer et stopper DB2 (utilisateur db2inst) :
db2start # Lancer db2stop # Stopper
La commande db2 est utilisée pour les interactions avec la base DB2.
- Pour créer une base :
db2 create database dbtest
- Pour supprimer une base :
db2 drop database dbtest
- Se connecter a une base (par exemple la base SAMPLE installée par défaut pour faciliter la phase d’apprentissage) :
db2inst1@tcoServer:~$ db2 (c) Copyright IBM Corporation 1993,2007 Interpréteur de commandes de DB2 Client 10.1.2 Vous pouvez lancer les commandes du gestionnaire de bases de données et les instructions SQL à partir de l'invite db2 =>. Exemple : db2 => connect to sample db2 => bind sample.bnd Pour obtenir l'aide générale, entrez : ?. Pour obtenir de l'aide sur les commandes, entrez : ? commande, où commande est le ou les premiers mots clés d'une commande du gestionnaire de bases de données. Exemple : ? CATALOG DATABASE pour obtenir une aide sur la commande CATALOG DATABASE. ? CATALOG pour obtenir une aide sur toutes les commandes CATALOG. Pour quitter le mode interactif db2, entrez QUIT à l'invite. En dehors du mode interactif, toutes les commandes doivent être précédées de 'db2'. Pour afficher la définition en cours des options de commande, entrez LIST COMMAND OPTIONS. Pour obtenir une aide plus détaillée, consultez le manuel de référence en ligne.
- Connection a la base SAMPLE :
connect to sample Informations de connexion à la base de données Serveur de base de données = DB2/LINUXX8664 10.1.2 ID utilisateur SQL = DB2INST1 Alias local de la base de données = SAMPLE
- Un select sur une table :
select * from employee EMPNO FIRSTNME MIDINIT LASTNAME WORKDEPT PHONENO HIREDATE JOB EDLEVEL SEX BIRTHDATE SALARY BONUS COMM ------ ------------ ------- --------------- -------- ------- ---------- -------- ------- --- ---------- ----------- ----------- ----------- 000010 CHRISTINE I HAAS A00 3978 01.01.1995 PRES 18 F 24.08.1963 152750,00 1000,00 4220,00 000020 MICHAEL L THOMPSON B01 3476 10.10.2003 MANAGER 18 M 02.02.1978 94250,00 800,00 3300,00 000030 SALLY A KWAN C01 4738 05.04.2005 MANAGER 20 F 11.05.1971 98250,00 800,00 3060,00 000050 JOHN B GEYER E01 6789 17.08.1979 MANAGER 16 M 15.09.1955 80175,00 800,00 3214,00 000060 IRVING F STERN D11 6423 14.09.2003 MANAGER 16 M 07.07.1975 72250,00 500,00 2580,00 000070 EVA D PULASKI D21 7831 30.09.2005 MANAGER 16 F 26.05.2003 96170,00 700,00 2893,00 000090 EILEEN W HENDERSON E11 5498 15.08.2000 MANAGER 16 F 15.05.1971 89750,00 600,00 2380,00 000100 THEODORE Q SPENSER E21 0972 19.06.2000 MANAGER 14 M 18.12.1980 86150,00 500,00 2092,00 000110 VINCENZO G LUCCHESSI A00 3490 16.05.1988 SALESREP 19 M 05.11.1959 66500,00 900,00 3720,00 000120 SEAN O'CONNELL A00 2167 05.12.1993 CLERK 14 M 18.10.1972 49250,00 600,00 2340,00 000130 DELORES M QUINTANA C01 4578 28.07.2001 ANALYST 16 F 15.09.1955 73800,00 500,00 1904,00 000140 HEATHER A NICHOLLS C01 1793 15.12.2006 ANALYST 18 F 19.01.1976 68420,00 600,00 2274,00 000150 BRUCE ADAMSON D11 4510 12.02.2002 DESIGNER 16 M 17.05.1977 55280,00 500,00 2022,00 000160 ELIZABETH R PIANKA D11 3782 11.10.2006 DESIGNER 17 F 12.04.1980 62250,00 400,00 1780,00 000170 MASATOSHI J YOSHIMURA D11 2890 15.09.1999 DESIGNER 16 M 05.01.1981 44680,00 500,00 1974,00 000180 MARILYN S SCOUTTEN D11 1682 07.07.2003 DESIGNER 17 F 21.02.1979 51340,00 500,00 1707,00 000190 JAMES H WALKER D11 2986 26.07.2004 DESIGNER 16 M 25.06.1982 50450,00 400,00 1636,00 000200 DAVID BROWN D11 4501 03.03.2002 DESIGNER 16 M 29.05.1971 57740,00 600,00 2217,00 000210 WILLIAM T JONES D11 0942 11.04.1998 DESIGNER 17 M 23.02.2003 68270,00 400,00 1462,00 000220 JENNIFER K LUTZ D11 0672 29.08.1998 DESIGNER 18 F 19.03.1978 49840,00 600,00 2387,00 000230 JAMES J JEFFERSON D21 2094 21.11.1996 CLERK 14 M 30.05.1980 42180,00 400,00 1774,00 000240 SALVATORE M MARINO D21 3780 05.12.2004 CLERK 17 M 31.03.2002 48760,00 600,00 2301,00 000250 DANIEL S SMITH D21 0961 30.10.1999 CLERK 15 M 12.11.1969 49180,00 400,00 1534,00 000260 SYBIL P JOHNSON D21 8953 11.09.2005 CLERK 16 F 05.10.1976 47250,00 300,00 1380,00 000270 MARIA L PEREZ D21 9001 30.09.2006 CLERK 15 F 26.05.2003 37380,00 500,00 2190,00 000280 ETHEL R SCHNEIDER E11 8997 24.03.1997 OPERATOR 17 F 28.03.1976 36250,00 500,00 2100,00 000290 JOHN R PARKER E11 4502 30.05.2006 OPERATOR 12 M 09.07.1985 35340,00 300,00 1227,00 000300 PHILIP X SMITH E11 2095 19.06.2002 OPERATOR 14 M 27.10.1976 37750,00 400,00 1420,00 000310 MAUDE F SETRIGHT E11 3332 12.09.1994 OPERATOR 12 F 21.04.1961 35900,00 300,00 1272,00 000320 RAMLAL V MEHTA E21 9990 07.07.1995 FIELDREP 16 M 11.08.1962 39950,00 400,00 1596,00 000330 WING LEE E21 2103 23.02.2006 FIELDREP 14 M 18.07.1971 45370,00 500,00 2030,00 000340 JASON R GOUNOT E21 5698 05.05.1977 FIELDREP 16 M 17.05.1956 43840,00 500,00 1907,00 200010 DIAN J HEMMINGER A00 3978 01.01.1995 SALESREP 18 F 14.08.1973 46500,00 1000,00 4220,00 200120 GREG ORLANDO A00 2167 05.05.2002 CLERK 14 M 18.10.1972 39250,00 600,00 2340,00 200140 KIM N NATZ C01 1793 15.12.2006 ANALYST 18 F 19.01.1976 68420,00 600,00 2274,00 200170 KIYOSHI YAMAMOTO D11 2890 15.09.2005 DESIGNER 16 M 05.01.1981 64680,00 500,00 1974,00 200220 REBA K JOHN D11 0672 29.08.2005 DESIGNER 18 F 19.03.1978 69840,00 600,00 2387,00 200240 ROBERT M MONTEVERDE D21 3780 05.12.2004 CLERK 17 M 31.03.1984 37760,00 600,00 2301,00 200280 EILEEN R SCHWARTZ E11 8997 24.03.1997 OPERATOR 17 F 28.03.1966 46250,00 500,00 2100,00 200310 MICHELLE F SPRINGER E11 3332 12.09.1994 OPERATOR 12 F 21.04.1961 35900,00 300,00 1272,00 200330 HELENA WONG E21 2103 23.02.2006 FIELDREP 14 F 18.07.1971 35370,00 500,00 2030,00 200340 ROY R ALONZO E21 5698 05.07.1997 FIELDREP 16 M 17.05.1956 31840,00 500,00 1907,00 42 enregistrement(s) sélectionné(s).
- Pour lister les tables :
list tables Table/Vue Schéma Type Création - Horodatage ------------------------------- --------------- ----- -------------------------- ACT DB2INST1 T 2013-05-23-01.30.02.396372 ADEFUSR DB2INST1 S 2013-05-23-01.30.17.146519 CATALOG DB2INST1 T 2013-05-23-01.31.01.431569 CL_SCHED DB2INST1 T 2013-05-23-01.29.29.856617 CUSTOMER DB2INST1 T 2013-05-23-01.30.43.579152 DEPARTMENT DB2INST1 T 2013-05-23-01.29.32.195835 DEPT DB2INST1 A 2013-05-23-01.29.36.172624 EMP DB2INST1 A 2013-05-23-01.29.40.428434 EMPACT DB2INST1 A 2013-05-23-01.30.02.393982 EMPLOYEE DB2INST1 T 2013-05-23-01.29.36.173795 EMPMDC DB2INST1 T 2013-05-23-01.30.22.138427 EMPPROJACT DB2INST1 T 2013-05-23-01.30.00.729395 EMP_ACT DB2INST1 A 2013-05-23-01.30.02.395511 EMP_PHOTO DB2INST1 T 2013-05-23-01.29.40.429204 EMP_RESUME DB2INST1 T 2013-05-23-01.29.47.084699 INVENTORY DB2INST1 T 2013-05-23-01.30.40.159159 IN_TRAY DB2INST1 T 2013-05-23-01.30.06.130722 ORG DB2INST1 T 2013-05-23-01.30.07.773072 PRODUCT DB2INST1 T 2013-05-23-01.30.33.548553 PRODUCTSUPPLIER DB2INST1 T 2013-05-23-01.31.12.025637 PROJ DB2INST1 A 2013-05-23-01.29.57.164584 PROJACT DB2INST1 T 2013-05-23-01.29.57.165706 PROJECT DB2INST1 T 2013-05-23-01.29.53.795562 PURCHASEORDER DB2INST1 T 2013-05-23-01.30.48.933200 SALES DB2INST1 T 2013-05-23-01.30.11.112601 STAFF DB2INST1 T 2013-05-23-01.30.09.481588 STAFFG DB2INST1 T 2013-05-23-01.30.14.195043 SUPPLIERS DB2INST1 T 2013-05-23-01.31.06.896476 VACT DB2INST1 V 2013-05-23-01.30.12.986770 VASTRDE1 DB2INST1 V 2013-05-23-01.30.13.234430 VASTRDE2 DB2INST1 V 2013-05-23-01.30.13.236593 VDEPMG1 DB2INST1 V 2013-05-23-01.30.13.164910 VDEPT DB2INST1 V 2013-05-23-01.30.12.809794 VEMP DB2INST1 V 2013-05-23-01.30.12.972318 VEMPDPT1 DB2INST1 V 2013-05-23-01.30.13.231911 VEMPLP DB2INST1 V 2013-05-23-01.30.13.246656 VEMPPROJACT DB2INST1 V 2013-05-23-01.30.13.149585 VFORPLA DB2INST1 V 2013-05-23-01.30.13.242261 VHDEPT DB2INST1 V 2013-05-23-01.30.12.970620 VPHONE DB2INST1 V 2013-05-23-01.30.13.245638 VPROJ DB2INST1 V 2013-05-23-01.30.12.973785 VPROJACT DB2INST1 V 2013-05-23-01.30.13.042211 VPROJRE1 DB2INST1 V 2013-05-23-01.30.13.238412 VPSTRDE1 DB2INST1 V 2013-05-23-01.30.13.239795 VPSTRDE2 DB2INST1 V 2013-05-23-01.30.13.241133 VSTAFAC1 DB2INST1 V 2013-05-23-01.30.13.243341 VSTAFAC2 DB2INST1 V 2013-05-23-01.30.13.244449 47 enregistrement(s) sélectionné(s).
- Pour avoir la structure d’une table :
describe table customer Nom colonne données Nom type données colonne Echelle Nulls ------------------------------- --------- ------------------- ---------- ----- ------ CID SYSIBM BIGINT 8 0 Non INFO SYSIBM XML 0 0 Oui HISTORY SYSIBM XML 0 0 Oui 3 enregistrement(s) sélectionné(s).
Si vous êtes fan des clients graphiques, IBM vous offre IBM DATA STUDIO un eclipse like qui vous permet d’accéder a DB2 et faire beaucoup de ce que vous pouvez faire en ligne de commande.
Dans un prochain article, on va savoir comment on peut accéder a notre base a partir d’un client distant via plusieurs méthodes.