Carayon Matthieu Rambourg Yann M2 STRI 2008 BD réparties – TP1 Travail en mode connecté Unix Connexion à telline Ici, nous nous connectons à la machine telline.cict.fr avec un client X. Le PC sur lequel nous travaillons nous sert uniquement de terminal pour l’affichage. Notre session est ouverte sur telline, et nos applications tourneront sur telline. Connexion à sqlplus sans connect string Une fois connecté sur telline, nous lançons la commande sqlplus. Comme expliqué précédemment, sqlplus n’est pas exécuté sur notre machine mais sur telline. Le fait d’exécuter sqlplus sans connect string va nous connecter par défaut sur la base SQL de la machine telline. Une fois connecté, il est nécessaire de changer le mot de passe par défaut. Ensuite nous pouvons exécuter le script de création de la base SQL. Une fois le fichier executer nous pouvons vérifier que les tables sont bien crées. SQL> select * from clients; NUM_CLIENT ---------1 2 3 NOM_CLIENT --------------Tuffery Soutou Teste ADRESSE_CLIENT ---------------------------------------1 place du tertre 31000 toulouse 8 rue breuil 31000 toulouse 12 avenue leclerc 31000 toulouse MOT_DE_PAS ---------aaa bbb ccc DATE_DERN SECTEUR --------- ---------11-FEB-06 1 20-DEC-05 2 08-JAN-06 2 SQL> select * from comptes; NUM_COMPTE ---------1 2 3 4 5 6 7 LIBELLE_COMPTE -----------------------------compte courant Tuffery compte epargne Tuffery compte courant Soutou livret a Soutou compte courant Teste livret a Teste compte epargne Teste DATE_COMM SOLDE_COMPTE DECOUVERT_AUTORISE --------- ------------ -----------------1200 0 11-JAN-06 5800 0 17-DEC-05 -250 -1000 07-NOV-05 440 0 2000 -2000 500 0 28-DEC-05 750 0 TYP NUM_CLIENT --- ---------cc 1 cel 1 cc 2 a 2 cc 3 a 3 cel 3 7 rows selected. Carayon – Rambourg BD réparties – TP1 Pages 1 sur 10 Connexion à sqlplus avec connect string Connexion à Telline Ici nous nous connectons à une base de données avec le client sqlplus mais en utilisant la connect string vers_etu923. Cette connect string nous permet d’ouvrir une connexion avec la base SQL de telline. % sqlplus m2str40@vers_etu923 SQL*Plus: Release 9.2.0.3.0 - Production on Mon Oct 1 15:09:44 2007 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Enter password: Connected to: Oracle9i Enterprise Edition Release 9.2.0.3.0 - 64bit Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.3.0 - Production SQL> select table_name from user_tables; TABLE_NAME -----------------------------CLIENTS COMPTES OPERATIONS TYPE_COMPTE TYPE_OPERATION Nous pouvons constater que les tables crées avec le script sont toujours là. Ceci nous montre deux choses : les données sont persistantes à travers les sessions la connect string vers_etu923 nous connecte bien à telline puisque nous retrouvons les tables crées précédemment. Connexion à brehat Le principe ici est le même sauf que la connect string est différente et pointe vers la base SQL du serveur brehat. Déjà, des la connexion, nous pouvons voir que nous nous connectons à une base différente puisque le mot de passe demandé ici est le mot de passe par défaut et qu’il est nécessaire de le changer à nouveau. % sqlplus m2str40@vers_aux92 SQL*Plus: Release 9.2.0.3.0 - Production on Mon Oct 1 15:10:16 2007 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Enter password: Connected to: Oracle9i Enterprise Edition Release 9.2.0.3.0 - Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.3.0 - Production SQL> select table_name from user_tables; no rows selected Le select ici ne retourne aucun nom de table, la base de données est donc vide. Nous pouvons bien voir que nous sommes connecté à une base de données différente. Cela nous montre que les données crées précédemment sont bien stockées sur la base de telline, et que en se connectant à une autre bas de données on ne les retrouve pas. Carayon – Rambourg BD réparties – TP1 Pages 2 sur 10 Travail en mode client lourd Oracle La salle de TP dans laquelle nous nous trouvions (U3-210) ne nous a pas permis de traiter cette question. En effet le client lourd oracle n’était pas installé sur la machine, et nos droits d’utilisateurs ne nous permettent pas de l’installer. Cela nous montre l’un des inconvénients du client lourd, à savoir la nécessité d’installation d’un logiciel sur la machine cliente, ce qui n’est pas toujours possible. Travail en mode Terminal Server Nous retrouvons ici les données précédentes, ce qui est tout à fait logique. Cela nous montre l’indépendance de la base de données face au moyen de connexion. Nous utilisons ici un client lourd oracle exécuté sur la machine distante. Rien n’est exécuté sur notre PC excepté le client TSWeb. Toutes les applications sont exécutés sur le serveur TSWeb. Carayon – Rambourg BD réparties – TP1 Pages 3 sur 10 L’inconvénient ici est de devoir installer un ActiveX. Outre les failles de sécurités bien connues d’Internet Explorer via les ActiveX et donc la réticence particulière à l’utilisation de ceux ci, cela pose un énorme problème en terme d’interopérabilité, puisque l’utilisation est impossible avec les autres navigateurs. Travail en mode client léger Web Ici nous nous connectons avec un navigateur à un serveur web installé sur le serveur brehat. C’est ce serveur web qui se chargera de la connexion avec la base de données. Seuls des pages html classiques transiterons entre le serveur brehat et notre pc. Nous utilisons sur brehat la connect string vers_etu923. Nous pouvons vérifier que nos tables sont bien retrouvées. Ce mode de connexion à l’avantage de pouvoir être exécuté depuis n’importe quelle machine disposant d’un accès au réseau et d’un navigateur web. Il s’agit de la solution la plus interopérable. Cependant son utilisation est plus lente que l’utilisation d’un client lourd (plus de données à faire passer sur le réseau + perte de temps de la création des pages par le serveur web). Ainsi pour une utilisation intensive de SQL, le client lourd SQL ou le mode connecté en mode console seront préférables pour leur rapidité. Carayon – Rambourg BD réparties – TP1 Pages 4 sur 10 Affichage des informations du dictionnaire Exemple de requêtes de mise en page : COLUMN OBJECT_NAME FORMAT A20 HEADING 'NOM des OBJETS'; break on object_type ; Exemple de requête pour voir la modification du format d’affichage : select object_name, object_type from user_objects; Résultat : Avec du formatage, seulement les 20 premiers caractères sont affichés et le nom de la colonne est modifié. Requête sur la table USER_TAB_COLUMNS break on data_type COLUMN TABLE_NAME FORMAT A20 HEADING 'NOM de la table' select * from USER_TAB_COLUMNS; Résultats : Carayon – Rambourg BD réparties – TP1 Pages 5 sur 10 Requête sur les tables USER_CONTRAINTS et USER_CONS_COLUMNS (utilisation des jointures) break on t1.table_name; SELECT t1.table_name,t1.constraint_name,column_name,constraint_type,search_condition,r_constraint_name FROM user_constraints t1,user_cons_columns t2 WHERE t1.constraint_name=t2.constraint_name ORDER BY t1.table_name; Résultat : Carayon – Rambourg BD réparties – TP1 Pages 6 sur 10 Requête sur la table USER_INDEXES : COLUMN TABLE_NAME FORMAT A20 HEADING 'NOM de la table' SELECT TABLE_NAME, INDEX_NAME as "Nom index",UNIQUENESS "Unicité" FROM USER_INDEXES ; Résultat : Carayon – Rambourg BD réparties – TP1 Pages 7 sur 10 Requête sur la table USER_INDEXES : COLUMN SEQUENCE_NAME FORMAT A30 HEADING 'NOM de la séquence' select * from USER_SEQUENCES ; Résultat Carayon – Rambourg BD réparties – TP1 Pages 8 sur 10 Affichage du contenu des tables crées select select select select select * * * * * from from from from from CLIENTS; COMPTES; OPERATIONS; TYPE_COMPTE; TYPE_OPERATION; Résultat : Carayon – Rambourg BD réparties – TP1 Pages 9 sur 10 Carayon – Rambourg BD réparties – TP1 Pages 10 sur 10