Database-SQL-RDBMS HOW-TO pour Linux
Al Dev (Alavoor Vasudevan) alavoor@yahoo.com
v13.0,23 Octobre 1999, (version française 28 Octobre 1999)
Ce document est un "guide pratique" pour la mise en place rapide d'un
moteur de Base de Données SQL et des outils frontaux sur un système
Unix. Il traite également du langage standard International ANSI/ISO
SQL et passe en revue les mérites/avantages d'un moteur de Base de
Données développé dans le cadre mondial de l'environnement de
développement ouvert d'internet. Ce document explique COMMENT mettre
en place une Base de Données Relationnelle SQL Objet de la nouvelle
génération "PostgreSQL" sur votre système unix qui pourra être
utilisée comme Base de Données Serveur d'Application ou Serveur Web.
PostgreSQL implémente un sous-ensemble des normes Internationales ISO
et ANSI SQL 1998,92,89. Ce document donne aussi des informations sur
les programmes d'interface à la base de données tels que interfaces
utilisateur graphiques (GUI), outils RAD (Développement Rapide
d'Application ), interfaçage des langages de programmation ("C",
"C++", Java, Perl), pilotes ODBC, JDBC ainsi que sur les outils et
programmes interfaçage d'une Base de Données Web . L'information
donnée ici est valable pour toutes autres plates-formes unix et autres
Bases de Données. Cette information sera très utile aux nouveaux util
isateurs des Bases de Données, de PostgreSQL et du langage SQL. Ce
document comporte aussi un didacticiel SQL et les spécifications de la
syntaxe SQL qui devrait être très utile aux débutants. Les gens
expérimentés trouveront dans ce document un guide de référence très
pratique. Pour les étudiants, l'information donnée ici leur permettra
d'obtenir le code source du Système de Gestion de Base de Données
Relationnel (SGBDR) PostgreSQL à partir duquel ils pourront étudier
comment un moteur de SGBDR SQL est écrit.
______________________________________________________________________
Table des matières
1. Introduction
2. Autres Formats de ce Document
3. Les lois de la Physique s'appliquent au logiciel !
4. Qu'est-ce que PostgreSQL ?
5. Où le trouver?
6. PostgreSQL à grands pas
6.1 Installation et tests
6.2 Maximum RPM
6.3 Test de PyGreSQL - Interface Python
6.4 Test de Perl - Interface Perl
6.5 Test des interfaces libpq, libpq++
6.6 Test des interfaces Java
6.7 Test des interfaces ecpg
6.8 Test des exemples SQL - Types and fonctions définis par l'utilisateur
6.9 Test des interfaces Tcl/Tk
6.10 Test des interfaces ODBC
6.11 Test des interfaces de la feuille de travail Motif MPSQL
6.12 Vérification
7. PostgreSQL Supporte des Base de Données extrêmement grandes > 200 Gigas
8. PostgreSQL est-il fiable?
9. Outil GUI frontal pour PostgreSQL (Interface Utilisateur Graphique)
10. Pilotes d'interface pour PostgreSQL
10.1 ODBC Pilotes pour PostgreSQL
10.2 Pilotes UDBC pour PostgreSQL
10.3 Pilotes JDBC pour PostgreSQL
10.4 Java pour PostgreSQL
11. Pilote d'interface de SGBD Perl (Database Interface DBI) pour PostgreSQL
11.1 interface Perl 5 pour PostgreSQL
11.2 DBI Interface de Base de Données Perl
11.2.1 Qu'est-ce que DBI ?
11.2.2 Pilote DBI pour PostgreSQL DBD-Pg-0.89
11.2.3 Support technique sur DBI
11.2.4 Qu'est-ce que c'est que DBI, DBperl, Oraperl and *perl?
11.2.5 Spécifications DBI
11.2.6 Problèmes de compilation ou "Il échoue aux tests"
11.2.7 DBI est-il supporté sur les plates-formes Windows 95 / NT ?
11.2.8 Qu'est-ce que DBM? Et pourquoi dois-je utiliser DBI à sa place?
11.2.9 Est-ce que < insérez une fonctionnalité ici > est supporté par DBI?
11.2.10 Est-ce que DBI est d'une quelconque utilité pour la programmation CGI?
11.2.11 Comment puis-je obtenir un temps de connexion plus rapide avec DBD::Oracle et CGI CGI?
11.2.12 Comment puis-je obtenir une connexion persistante avec DBI et CGI?
11.2.13 "Quand je lance un script perl de la ligne de commande, ça marche, mais, quand je le lance sous httpd, ça échoue!" Pourquoi?
11.2.14 Puis-je faire de l'exécution en parallèle avec DBI?
11.2.15 Comment puis-je invoquer des procédures enregistrées avec DBI?
11.2.16 Comment puis-je récupérer les valeurs de retour de procédures enregistrées avec DBI?
11.2.17 Comment puis-je créer ou supprimer une base de données avec DBI?
11.2.18 Comment les valeurs NULL sont-elles prises en compte par DBI?
11.2.19 Qu'est-ce que c'est que ces histoires de méthodes func?
11.2.20 Assistance et formation payante
12. Outils de Gestion PostgreSQL
12.1 PGACCESS - Un GUI pour la gestion de PostgreSQL
12.2 Outil Windows interactif de génération de requête pour PostgreSQL
12.3 Outil interactif de génération de requête pour PostgreSQL - ISQL
12.4 MPMGR - Un outil de gestion de Base de Données pour PostgresSQL
13. Mise en place de plusieurs machines PostgreSQL avec un seul moniteur
14. Outils et Applications pour PostgreSQL
14.1 PostgreSQL 4GL pour les applications de bases de données web - Le système de développement AppGEN
14.2 WWW Web interface pour PostgresSQL - DBENGINE
15. Module Apache Webserver pour PostgreSQL - NeoSoft NeoWebScript
15.1 HEITML, extension, côté serveur de HTML et langage 4GL pour PostgreSQL
15.2 Serveur Web America On-line AOL pour PostgreSQL
15.3 Outil Système de suivi de Problème/Projet pour PostgreSQL
15.4 Conversion de fichiers dbase dbf en fichiers PostgreSQL
16. Outil de Conception/Implémentation pour SGBD Web pour PostgreSQL - EARPW
16.1 EARP, c'est quoi ?
16.2 Implantation
16.3 Ce dont vous avez besoin pour faire fonctionner EARP
16.4 Comment fonctionne-t-il?
16.5 Où puis-je le trouver?
17. PHP Pré-processeur Hypertexte - Langage de script côté serveur, avec HTML intégré, pour PostgreSQL
17.1 Fonctionnalités principales
17.2 Crédits
17.3 PHP 3 - Bref Historique
17.4 Bon, que puis-je faire avec PHP/FI?
17.5 Un simple exemple
17.6 Redirection CGI
17.6.1 Notes Apache 1.0.x
17.6.2 HTTPD Netscape
17.6.3 HTTPD NCSA
17.7 Lancer PHP/FI à partir de la ligne de commande
18. Interface Python pour PostgreSQL
18.1 Où le trouver PyGres ?
18.2 Information et support
19. Passerelle entre PostgreSQL et WWW - WDB-P95
19.1 Le serveur PostgresSQL, pgperl, et httpd doivent-ils résider sur le même hôte?
20. Interfaces au langage "C", "C++", ESQL/C et Opérateurs sur les bits pour PostgreSQL
20.1 Interface "C"
20.2 "C++" interface
20.3 ESQL/C
20.4 Opérateurs sur les bits pour PostgreSQL
21. Les Codes Kanji Japonais pour PostgreSQL
22. Portage de PostgreSQL pour Windows 95/Windows NT
23. Mailing Lists
23.1 Obtenir un compte e-mail Gratuit
23.2 Liste de Diffusion Anglaise
23.3 Archive des listes de diffusion
23.4 Liste de Diffusion Espagnole
24. Livres et Documentations
24.1 Guides utilisateur et Manuels
24.2 Documentation en ligne
24.3 Documents de Référence: Ouvrages de référence utiles :
24.4 Documents de Spécifications ANSI/ISO SQL - SQL 1992, SQL 1998
24.5 Syntaxe de l'ANSI/ISO SQL 1992
24.6 Syntaxe de l'ANSI/ISO SQL 1998
24.7 Didacticiel SQL pour les débutants
24.8 Extension Temporelle à SQL92
24.9 Partie 0 - Acquisition des Documents ISO/ANSI SQL
24.10 Partie 1 - Etat Actuel de l'ISO/ANSI SQL
24.11 Partie 2 - Fondements ISO/ANSI SQL
24.12 Partie 3 - Interface d'Appel SQL ISO/ANSI
24.13 Partie 4 - Modules Mémorisés Persistants ISO/ANSI SQL
24.14 Partie 5 - ISO/ANSI SQL/Liens
24.15 Partie 6 - Interface de Spécialisation (SQL/XA) ISO/ANSI SQL XA)
24.16 Partie 7 - ISO/ANSI SQL Temporel
24.16.1 INTRODUCTION
24.16.2 ÉTUDE DE CAS - ENREGISTREMENT DE L'INFORMATION COURANTE
24.16.3 ÉTUDE DE CAS - ENREGISTREMENT DE L'INFORMATION HISTORIQUE
24.16.4 ÉTUDE DE CAS - PROJECTION
24.16.5 ÉTUDE DE CAS - JOINTURE
24.16.6 ÉTUDE DE CAS - AGRÉGATS
24.16.7 RÉSUMÉ
24.17 Partie 8 - SQL MULTIMEDIA ISO/ANSI (SQL/MM)
25. Support Technique pour PostgreSQL
26. Aspects Économiques et Commerciaux
27. Liste des autre Bases de Données
28. Indications pour la recherche sur le World Wide Web Internet
29. Conclusion
30. FAQ - Questions sur PostgreSQL
31. Notice de Copyright
32. Appendice A - Syntaxe de l' ANSI/ISO SQL 1992
33. Appendice B - Tutoriel SQL à l'usage des débutants
33.1 Didacticiel pour PostgreSQL
33.2 Pointeurs URL Internet
34. Appendix C - Instructions pour une installation rapide de Linux
______________________________________________________________________
11.. IInnttrroodduuccttiioonn
Le but de ce document est de fournir une liste de pointeurs/URL
détaillée de façon à mettre rapidement en oeuvre PostgreSQL et de
mettre en avant l'intérêt des systèmes à Code Source Ouvert tel que
PostgreSQL, Linux.
Tout système informatique au monde a besoin d'une base de données pour
stocker/retrouver les informations. La première raison pour laquelle
on utilise un ordinateur est de stocker, retrouver et traiter
l'information et de faire cela très rapidement, et donc, de faire
économiser du temps. En même temps, le système doit être simple,
robuste, rapide, fiable, économique et d'utilisation aisée. La Base
de Données constitue une PPAARRTTIIEE VVIITTAALLEE DDUU SSYYSSTTÈÈMMEE des plus importantes
car elle contient les données indispensables de toute compagnie au
monde. Les systèmes de gestion de base de données les plus courants
sont basés sur les spécifications ISO (International Standard
Organisation) SQL lesquelles sont également basées sur les normes
américaines ANSI SQL. Les spécifications les plus courantes
généralement utilisées sont l'ISO/ANSI SQL 1992. La prochaine norme,
encore en cours de développement est la SQL 1998/99 aussi appelée
SQL-3. Les systèmes de gestion de bases de données les plus répandus
tels que Oracle, Sybase et Informix s'appuient sur ces standards ou
essaient de les implémenter.
Il y a plus de 20 variétés, commerciales/internet, de systèmes de
gestion de base de données actuellement utilisés dans le monde et
beaucoup plus dans un futur proche. En l'absence d'une norme telle que
l'ANSI/ISO SQL, il serait très difficile pour l'utilisateur de
développer une application une fois pour toutes et de l'utiliser avec
tous les systèmes de gestion de bases de données. L'utilisateur veut
développer son application une fois pour toutes en utilisant les
normes ISO SQL, ODBC, JDBC afin qu'elle puisse être déployée sur une
grande variété de systèmes de gestion de base de données a travers le
monde.
PostgreSQL est la Base de Donnée LIBRE la plus populaire au monde qui
implémente la plupart des normes ISO SQL, ANSI SQL/98, SQL/92 et ANSI
SQL/89 RDBMS. PostgreSQL est une base de données relationnelle Objet
de la nouvelle génération et les futures normes ANSI SQL tels que le
SQL 1998 (SQL-3) et au-delà traiteront de manière croissante de bases
de données Objet et de types de données Objet. PostgreSQL est le seul
SGBD (RDBMS - Relational Data Base Management System) au monde qui
supporte les bases de données Objet et SQL. Ce document vous explique
comment installer le système de gestion de base de données, comment
mettre en place la base de données Web, la base de données application
, les frontaux GUIs et les programmes interfaçage. On ne saurait trop
RECOMMANDER d'écrire vos applications bases de données 100 %
compatibles avec les normes ISO/ANSI SQL, ODBC, JDBC ceci rendant
votre application portable sur de multiples SGBD (Systèmes de gestion
de Bases de Données) tels que PostgreSQL, Oracle, Sybase, Informix
etc.
La haute qualité, et un large ensemble de possibilités de PostgreSQL
viennent du fait que ce système est développé suivant le principe du
«Modèle de développement à Code Source Ouvert». Les modèles à Code
Source Ouvert sont ceux ou la totalité du code source est fournie et
ou le développement se fait à travers l'internet par une très vaste
communauté de cerveaux humains en réseau. La tendance future des
développement logiciels réside dans ce que l'on appelle les "super
autoroutes de l'information" qui s'étendent à travers le monde entier.
Dans les années à venir, la croissance d'internet va être explosive et
de ce fait favorisera l'adoption de PostgreSQL par la communauté des
utilisateurs de bases de données.
Par l'application des principes de la statistique, des mathématiques
et de la science à la qualité des logiciels, on obtient la meilleure
qualité des logiciels 'à Code Source Ouvert' tel que PostgreSQL en
mettant le code source des programmes à la disposition d'un grand
nombre de cerveaux humains interconnectés par les super-autoroutes de
l'information. Plus le nombre de cerveaux au travail sera grand,
meilleure sera la qualité du logiciel produit. Le modèle "à Code
Source Ouvert" évite aussi de RRÉÉIINNVVEENNTTEERR LLAA RROOUUEE, supprime LLAA
DDUUPPLLIICCAATTIIOONN DDUU TTRRAAVVAAIILLtout en étant particulièrement économique, en
diminuant les délais de distribution et en suivant les lois
économiques modernes d'optimisation des ressources nationales et
globales. Une fois qu'un logiciel a été réalisé par d'autres, vous
NN''AAVVEEZZ PPAASS à recommencer le travail. Vous ne perdrez pas un temps
précieux sur quelque chose qui a déjà été CCOORRRREECCTTEEMMEENNTT réalisé. Votre
temps est extrêmement précieux et il faut l'utiliser de manière
efficace, car vous ne disposez que de 8 heures par jour pour
travailler!!. Dans un futur proche, à l'aube du 21-ième siècle, la
manière de se procurer un logiciel va changer. Les utilisateurs
accorderont en premier lieu leur préférence aux logiciels ouverts tel
PostgreSQL, Linux etc...
En achetant des binaires vous n'obtenez pas la véritable propriété du
logiciel et ce n'est pas juste. Acheter un logiciel _p_e_u_t devenir une
attitude archaïque. On a seulement besoin d'acheter un bon matériel,
il vaut mieux dépenser de l'argent en matériel et trouver le logiciel
sur internet. Le point important, c'est que llee ggrrooss dduu ttrraavvaaiill est
effectué par le matériel. Le matériel est le cheval de bataille et le
logiciel est là pour le piloter. Le matériel est tellement plus
compliqué que seulement 6 pays sur 180 au monde ont démontré leur
capacité à concevoir et à fabriquer les composants d'ordinateurs. La
conception et la fabrication de composants d'ordinateurs est une
technologie avancée. C'est un processus très complexe, requérant de
très larges investissements en usine et en machines de production
maîtrisant la technologie des 0.18 micron. Des milliards de
transistors/circuits sont implantés sur une petite puce de silicium.
Des compagnies telles que Applied Material, AMD, Intel, Cyrix,
Hitachi, Ibm et autres ont dépensé d'importantes quantités d'hommes-
ans de travail pour maîtriser des hautes technologies telles que la
Micro-électronique et la Nano-électronique (Micro signifie millionième
de mètre et Nano signifie milliardième de mètre). La technologie
actuelle utilise la micro-électronique à 0.35 microns avec des
conducteurs en aluminium, celle de 0.25 microns utilise des
conducteurs de cuivre. Dans un futur proche, la technologie des 0.10
microns avec conducteurs de cuivre et même la nano-électronique sera
utilisées pour les circuits intégrés d'ordinateurs. Les conducteurs
en aluminium seront détrônés par ceux en cuivre sur les puces
d'ordinateurs, car le cuivre est meilleur conducteur d'électrons. En
photo-lithographie, l'extrême ultraviolet, les rayons X ou les
techniques de faisceau d'electrons seront utilisées pour graver des
circuits de taille inférieure à 0.15 microns. Dans environ 20 ans,
les circuits en silicium seront remplacées par des ordinateurs
moléculaires et des circuits biologiques qui seront des millions de
fois plus rapides que les circuits en silicium. Les molécules sont
des groupes d'atomes, et les atomes sont de minuscules particules
constituant la matière première première de tout ce qui nous entoure.
Les ordinateurs moléculaires utiliseront les molécules en tant
qu'interrupteurs électroniques ultra rapides. Lorsque l'interrupteur
est fermé (ON), on obtient la valeur 1 et quand il est ouvert (OFF),
la valeur 0. Tous les programmes d'ordinateurs au monde utilisent
l'algèbre binaire (nombres 0 et 1). Le tableau ci-dessous montre les
progrès et les tendances futures des puces d'ordinateurs.
Progrès dans les capacités des puces dans le futur
**************************************************
+--------------------------------+--------+--------+--------+--------+-------+---------+
| Item/Année | 1997 | 1999 | 2001 | 2003 | 2012 | 2020 |
+--------------------------------+--------+--------+--------+--------+-------+---------+
| Technologie (micron) | 0.25 | 0.18 | 0.15 | 0.13 | 0.05 |< 0.00001|
+--------------------------------+--------+--------+--------+--------+-------+---------+
| Taille de la puce(mm) | 200 | 300 | 300 | 300 | 45 | Mol/bio |
+--------------------------------+--------+--------+--------+--------+-------+---------+
| Tension mini. de fonctionnement| 1.8-2.5| 1.5-1.8| 1.2-1.5| 1.2-1.5|0.5-0.6| < 0.001 |
+--------------------------------+--------+--------+--------+--------+-------+---------+
| Puissance dissipée maximum | 70 | 90 | 110 | 130 | 175 | 600 |
+--------------------------------+--------+--------+--------+--------+-------+---------+
| fréquence de fonct. puce (MHz)| 750 | 1250 | 1500 | 2100 | 10000 | > 50 000|
+--------------------------------+--------+--------+--------+--------+-------+---------+
| Capacité mémoire DRAM | 256 MB | 1 GB | 2 GB | 4 GB | 256 GB| > 1000GB|
+--------------------------------+--------+--------+--------+--------+-------+---------+
Comme on peut le voir c'est le matériel qui est important et de haute
technologie, le logiciel est une technologie moins difficile à
maîtriser. Donc la fabrication de matériel est vitale pour l'économie
nationale!. Des compagnies comme Compaq, Dell, Sun Microsystems, HP,
IBM qui fabriquent des ordinateurs contribuent de façon importante à
l'économie U.S. aujourd'hui et dans le futur!!
D'un autre côté, chaque pays au monde développe/produit du logiciel.
En fait, n'importe qui dans le monde, avec un petit PC économique,
peut créer un système serveur de base de données Oracle. Mais cela
lui prendra environ 10 ans (Le serveur de base de données Oracle
correspond à plus de 10 hommes-ans de travail). Un homme-an correspond
au travail d'un homme à temps plein pendant une année. Si 10 personnes
travaillent pendant un an cela correspond à 10 hommes-ans.
Les SGBD tels que Oracle, Informix, Sybase, IBM DB2 (Unix) sont écrits
en langage "C" et les binaires créés par compilation de ces sources
sont fournis aux clients. Les SGBD Oracle, Sybase, Informix sont des
programmes "C" à 100 %!!.
Puisqu'une masse importante de travail a été effectuée sur PostgreSQL
au cours des 14 dernières années, cela n'aurait aucun sens de recréer
ex-nihilo un autre système de gestion de base de données satisfaisant
aux normes ANSI/ISO SQL. Il est bien plus intéressant de prendre le
code existant de PostgreSQL, de commencer à l'utiliser, de l'améliorer
et d'y ajouter les fonctionnalités manquantes.
PostgreSQL n'est pas seulement un SGBD libre mais aussi un "Produit
Internet" de bonne qualité.
On peut prédire que la demande de produits "Fabriqué sur Internet" va
croître exponentiellement. Ces produits étant de haute qualité, de
faible coût et ayant une base d'utilisateurs et de développeurs
extrêmement large. Les pays qui n'utilisent pas les produits
"Fabriqué sur Internet" seront les oubliés de "la Révolution mondiale
Internet" et resteront loin derrière les autres pays. La raison
provient de ce "qu'Internet" lui-même est la PPLLUUSS GGRRAANNDDEE compagnie de
logiciels!
22.. AAuuttrreess FFoorrmmaattss ddee ccee DDooccuummeenntt
Ce document est publié en 10 formats différents qui sont - DVI,
Postscript, Latex, LyX, GNU-info, HTML, RTF(Rich Text Format), Texte
simple, Pages de manuel Unix et SGML.
· Vous pouvez obtenir ce document HOWTO en tant que fichier tar dans
les formats HTML, DVI, Postscript ou SGML de -
· Le format texte simple se trouve dans:
· Des traductions dans d'autres langues telles que le Français,
l'Allemand, l'Espagnol, le Chinois se trouvent dans
Toute aide que vous
pourriez apporter pour le traduire dans d'autres langues sera la
bienvenue.
Ce document est rédigé à l'aide d'un outil appelé "SGML tool" que
l'on peut obtenir de - Pour
compiler le texte source, vous utilisez des commandes telles que :
· sgml2html databasehowto.sgml (pour générer un fichier html)
· sgml2rtf databasehowto.sgml (pour générer un fichier RTF)
· sgml2latex databasehowto.sgml (pour générer un fichier latex)
Ce document se trouve à -
·
Vous pouvez également le trouver sur les sites miroirs suivants -
·
·
·
·
· Vous pouvez trouver d'autres sites miroirs proches de chez vous (au
sens d'adresse réseau) à
choisissez un site et allez dans le répertoire
/LDP/HOWTO/PostgreSQL-HOWTO.html
Pour visualiser le document au format dvi, utilisez le programme xdvi.
Le programme xdvi se trouve dans le paquetage tetex-xdvi*.rpm de
Redhat Linux que l'on trouve en choisissant les menus : Panneau de
contrôle | Applications | Publication | TeX. Pour lire le document,
tapez la commande -
xdvi -geometry 80x90 howto.dvi
man xdvi
Et redimensionnez l'écran à l'aide du mulot. Consultez la page de
manuel concernant xdvi. Pour naviguer dans le document, utilisez les
touches Flèches, Page précédente ,Page suivante. Vous pouvez aussi
utiliser les lettres 'f', 'd', 'u', 'c', 'l', 'r', 'p', 'n' pour vous
déplacer vers le haut, vers le bas, au centre, vers la page
précédente, Pour désactiver le menu expert, tapez 'x'.
Vous pouvez lire le fichier postscript en utilisant le programme 'gv'
(ghostview) ou Le programme ghostscript se trouve dans le paquetage
ghostscript*.rpm et le programme gv dans le paquetage gv*.rpm de Linux
Redhat que l'on peut trouver en choisissant les menus : Panneau de
contrôle | Applications | Graphique. Le programme gv est beaucoup
plus convivial que ghostscript. Les programmes ghostscript et gv sont
disponibles sous d'autres plates-formes telles que OS/2, Windows 95 et
NT, vous pouvez donc visualiser ce document sur ces plates-formes.
Pour lire le document postscript tapez la commande -
gv howto.ps
AATTTTEENNTTIIOONN:: ce document est volumineux, le nombre total de pages
(postscript) imprimées est approximativement de 134.
Vous pouvez lire ce document en format HTML en utilisant Netscape
Navigator, Microsoft Internet explorer, Redhat Baron Web browser ou
n'importe lequel des 10 butineurs web.
Vous pouvez le lire en format latex de sortie de LyX en utilisant LyX,
frontal X-Window pour latex.
33.. LLeess llooiiss ddee llaa PPhhyyssiiqquuee ss''aapppplliiqquueenntt aauu llooggiicciieell !!
Dans ce chapitre, on montrera comment la science joue un rôle
important dans la création de nombreux objets comme le logiciel, cet
univers, la masse, les atomes, les énergies et même vous-même !. Ce
chapitre montre également pourquoi il est important d'avoir des
connaissances en science AVANT de commencer à en utiliser les
produits. Tout en fait partie - par exemple PostgreSQL, le temps, la
masse, l'énergie, les planètes, le soleil, la lune, les étoiles, les
super-amas, les humains etc... sont des objets créés par la science.
Ce chapitre montre également comment les lois de la science et les
statistiques témoignent en faveur de systèmes à code source ouvert
comme PostgreSQL et Linux. La vitesse d'internet s'accroissant de
jour en jour, et internet devenant de PLUS EN PLUS fiable, les
systèmes à code source ouvert gagnent rapidement de l'audience. Et,
si les règles de la statistique et les lois de la physique sont
correctes, les systèmes à code source fermés sont appelés à
DISPARAÎTRE de cette planète.
Les paragraphes ci-dessous montreront - "combien la science est vaste,
combien elle est importante pour les hommes et quel est son impact sur
des projets logiciels comme PostgreSQL, Linux".
Le développement d'un projet tel que PostgreSQL requiert des
ressources telles que de l'énergie et du temps, de ce fait, PostgreSQL
est un produit d'énergie et de temps. Puisque l'énergie et le temps
ne peuvent d'expliquer que par la science, il y a une corrélation
directe entre la physique et les projets tels que PostgreSQL, Linux.
Les lois des sciences (Physique) s'appliquent partout, toujours, à
tout ce que vous faites et même aux projets logiciels. La physique
est en action pendant que vous parlez (ondes sonores), marchez
(frottement entre le sol et vos pieds), lisez un livre ou écrivez un
logiciel. Différentes branches des sciences, telles que la physique,
la chimie, etc... se rejoignent toutes dans un vaste ensemble, les
mathématiques (également nommées Reine des Sciences).
Et tout, dans ce monde, a des racines profondes dans les
mathématiques, y compris PostgreSQL. PostgreSQL utilise «L'algèbre
moderne» qui constitue une petite branche des mathématiques. L'algèbre
moderne concerne la «Théorie des ensembles », «l'algèbre
relationnelle», la science des Groupes, des Anneaux, les Collections,
Ensembles, Unions, Intersections, Exclusions,Domaines, Listes, etc...
Un logiciel tel que PostgreSQL existe aujourd'hui grâce à l'énergie et
au temps. C'est l'énergie qui a créé ce monde, les cerveaux humains
et beaucoup d'autres choses!. Et, la masse et l'énergie sont UNE et
la MMÊÊMMEE entité!. Il y a 100 ans, le fait que la masse et l'énergie
soient la même chose n'était pas connu des gens !
Les cellules des cerveaux humains consomment de l'énergie en
travaillant (à la création d'un logiciel), transformant de l'énergie
chimique en chaleur. Même pendant la lecture de ce paragraphe, les
cellules de votre cerveau consomment du carburant et utilisent de
l'énergie. Donc INTERROMPEZ IMMÉDIATEMENT VOTRE LECTURE!
L'énergie résultant de l'activité des neurones (cellules du cerveau)
peut être mesurée en laboratoire. Par exemple, il y a de nombreux
instruments comme le "détecteur de mensonge" et autres instruments
médicaux qui peuvent mesurer l'activité du cerveau. Tout cela sous-
entend que le cerveau humain est une machine thermodynamique. Et comme
le cerveau humain est une machine thermodynamique, les lois de la
thermodynamique d'appliquent au cerveau et, par conséquent, la
thermodynamique a des effets indirects sur les logiciels comme
PostgreSQL.
Suivant la science, il est impossible de construire tout système ou
théorie (y compris un système logiciel de gestion de base de données)
qui soit parfait à 100 % et sans erreur. C'est comme poursuivre un
mirage, nous ne pourrons JJAAMMAAIISS atteindre l'objectif d'obtenir la
perfection dans un système ou une théorie. Les équations/discussions
mathématiques détaillées pour prouver qu'un "système parfait" (de même
pour prouver qu'un "système imparfait") est impossible sont des sujets
avancés et hors sujet dans ce document. Et une telle étude
mathématique implique la prise en compte d'un nombre infini de
dimensions (ainsi que les dimensions primaires) que l'on trouve dans
la nature. Malheureusement, les humains ne peuvent voir et
conceptualiser que 4 dimensions alors que les mathématiques peuvent
facilement en explorer beaucoup d'autres. Les autres dimensions sont
""iinnffiinniimmeenntt pplluuss ppeettiitteess"" que les atomes, et les atomes eux-mêmes sont
si minuscules que les yeux humains ne peuvent pas les voir ! Pour
analyser et expliquer la naissance et la mort de notre univers, les
mathématiques constituent un outil très puissant. Notre univers, si
vous le regardez à partir d'un autre univers possède pratiquement une
ttaaiillllee nnuullllee et vice versa. Ce qui signifie que notre univers n'est
pas visible (n'existe pas) pour les gens d'un autre univers ! Et vice
versa ! Théoriquement, il est possible de sortir de notre univers et
de voyager sur des distances immenses (milliard d'années lumière) en
un temps nul et de rentrer en un point différent de l'espace-temps !.
La distance entre notre univers et les autres univers est en réalité
nulle !.
Bien qu'il y ait un nombre infini de dimensions, celles-ci peuvent
être déduites/générées à partir d'un nombre restreint de dimensions
PRIMAIRES. C'est-à-dire qu'un nombre infini de dimensions peut se
combiner et se ramener aux dimensions primaires. Les dimensions
primaires absorbent simplement les autres dimensions sans être
détruites. Les mathématiciens utilisent ces dimensions primaires pour
comprendre la naissance et la mort des univers. L'univers où vous
vivez actuellement a commencé à exister lors d'un BBIIGG BBAANNGG, causé par
les interactions de particules atomiques d'autres dimensions, qui
s'est produit il y a des milliards d'années (environ 20 milliards
d'années). Juste avant le big bang il y avait un petit point où la
longueur, la largeur, la hauteur et le temps étaient NULS (
c'est-à-dire que notre univers N'EXISTAIT PAS !!) alors que d'autres
univers et les dimensions primaires existaient. Le temps lui-même
n'existait PAS là et les atomes, les étoiles, les planètes et les
galaxies n'existaient PAS! Les atomes qui sont à l'intérieur de notre
corps n'existaient PAS !!. Tellement de choses se sont passées AVANT
qu le temps n'existe !
Le big bang et donc la naissance de notre univers résulte de quelques
atomes de dimensions primaires. QQUUEELLQQUU''UUNN, (quelque chose ?), a causé
le fracassement de quelques atomes minuscules d'autres dimensions pour
créer notre univers, et de nouvelles dimensions de temps, de longueur,
de largeur et de hauteur étaient nées !. Nous voyons l'effet d'une
quelconque main dans se processus. Ce processus nn''eesstt ppaass
ppaarrffaaiitteemmeenntt ccoommpprriiss par les hommes. Ceux-ci essaient de générer un
autre univers en laboratoire en simulant le big bang (Un accélérateur
très puissant est en construction en Europe, un autre, en cours de
construction à Dallas, aux USA, a été arrêté par le congrès US pour
cause de coupes budgétaires). Il y a des atomes dans d'autres
dimensions exactement comme nous avons des atomes dans notre univers.
Théoriquement, on peut créer/générer un nombre infini d'univers !. Ce
processus est réversible, ce qui veut dire que notre univers peut
complètement s'effondrer sur lui-même et disparaître en quelques
atomes d'autres dimensions !. C'est une analogie similaire à la façon
dont VOUS êtes nés à partir de de deux cellules minuscules qui se sont
FRACASSÉES l'une contre l'autre pour créer une cellule unique. Cette
toute petite cellule s'est divisée et multipliée en 6 billions de
cellules pour devenir cet être humain de 1.80 mètre (que vous êtes !).
Il y a une ressemblance entre les êtres humains et les univers qui
naissent puis meurent, un peu comme les humains.
Puisqu'un état PARFAIT (comme IMPARFAIT) est impossible, des univers
comme le nôtre sont nés et plus tard mourront selon un processus
cyclique. MAIS il ne peut pas y avoir de mort PARFAITE, seules des
transformations sont permises par la science !. Actuellement notre
univers est en expansion à un rythme formidable, il n'est pas statique
mais très dynamique. Cet univers continuera son expansion jusqu'à ce
que quelque chose interfère pour entraîner son effondrement par
l'application de pressions ayant des dimensions externes qui
l'annihileront !!. Il y a deux possibilités : suppression de masse de
l'univers via les trous noirs (processus lent), ou ajout de masse à
l'univers via les trous blancs (processus rapide d'un big crunch). Des
millions d'univers peuvent exister mais seuls très peu d'univers
peuvent être bâtis à partir des dimensions primaires. Vous n'êtes pas
constitués uniquement d'atomes de cet univers mais aussi d'atomes
d'autres dimensions !. Dans les trous noirs les atomes et les
particules de notre univers sont engloutis et entièrement transformés
et convertis en particules d'autres dimensions !. Au centre d'un trou
noir, le temps est nul comme le sont la longueur, la largeur et la
hauteur !. Et le trou noir constitue la porte d'ENTRÉE/SORTIE pour
d'autres univers. Ces portes d'entrée/sortie peuvent s'ouvrir
n'importe où, même à l'intérieur de votre corps !
Il peut y avoir un nombre infini de couleurs, de langages
informatiques, d'architectures de circuits d'ordinateurs et de
théories, mais il NE PEUT PAS y avoir LA PERFECTION pour UN(E) SEUL(E)
couleur, langage informatique, architecture ou système ! Vous ne
pouvez obtenir qu'une couleur (longueur d'onde, qu'un système, qu'une
base de données ou une théorie PRESQUE PARFAITE ! La nature est comme
un kaléidoscope.
En combinant les énergies de millions de personnes à travers le monde
via internet il est possible d'obtenir un système PPRREESSQQUUEE PPAARRFFAAIITT (y
compris un système logiciel de gestion de base de données). Prise
individuellement, l'énergie de chacun est microscopique, mais en
mettant en réseau un très grand nombre de personnes, l'énergie totale
sera énorme, et elle peut être canalisée pour créer un système presque
parfait. Les êtres humains sont des créatures à l'énergie et aux
ressources finies, portés à faire des erreurs allant de la plus
triviale à la plus profonde. Puisque notre propension à faire des
erreurs varie largement en fonction de qualifications particulières,
d'expérience particulière et des humeurs du moment, la découverte et
l'élimination des erreurs logicielles dues à des erreur humaines
ordinaires peut être largement facilitée en concentrant un grand
nombre d'esprits humains à ce problème.
Il est très clair qu'internet peut mettre en réseau un grand nombre de
personnes, ce qui implique qu'internet possède beaucoup d'énergie et
de temps qui peuvent créer des produits logiciels de bien meilleure
qualité, en un temps plus court, que des compagnies commerciales. Même
de grandes compagnies comme Microsoft, IBM ne peuvent pas s'affranchir
des lois de la physique mais finalement SSEE PPLLIIEERR aux lois de la
science !
Aujourd'hui, il y a beaucoup trop de systèmes de base de données
relationnelles SQL RDBMS dans le monde se référant à une spécification
ANSI/ISO SQL unique. LL''hhuummaanniittéé nnee ddooiitt ppaass ppeerrddrree ssoonn tteemmppss àà ccrrééeerr
ddee ttrroopp nnoommbbrreeuuxx ppaaqquueettaaggeess llooggiicciieellss SSIIMMIILLAAIIRREESS OOUU IIDDEENNTTIIQQUUEESS alors
qu'il y a trop d'autres sujets en sciences qui mériteraient
l'attention.
En conclusion, à cause des lois de la science, les systèmes à "code
source ouvert" comme PostgreSQL, Linux seront toujours meilleurs que
les systèmes à "code source fermé", et il est possible de prouver
cette affirmation scientifiquement.
44.. QQuu''eesstt--ccee qquuee PPoossttggrreeSSQQLL ??
PostgreSQL Version 6.5.2 est un SGBD libre, son code source complet
est fourni. De plus, c'est un SGBD Relationnel-Objet pratiquement
conforme (de plus en plus conforme) aux normes ANSI SQL1998,92,89. Il
fonctionne sur diverses plates-formes matérielles sous différents
Systèmes d'Exploitation.
Quelquefois des corrections urgentes d'erreurs sont diffusées après la diffusion
d'une révision de PostgreSQL. Vous pouvez appliquer ces rustines optionnelles
selon les besoins de votre application. Effectuez les étapes suivantes pour
appliquer ces rustines -
cd /usr/src/postgresql6.5.2
man patch
patch -p0 < patchfile
make clean
make
Les fichiers de mise à jour se trouvent dans
· Rustines PostgreSQL :
L'objectif ultime et le but final de PostgreSQL est de devenir
compatible à 100 % à la norme ANSI/ISO SQL ainsi que de devenir le
numéro UN mondial des systèmes de gestion de Base de Données ouverts
génériques. PostgreSQL guidera, conduira, contrôlera, suivra et
dictera le futur de l'ANSI/ISO SQL. C'est-à-dire, l'implémentation et
les idées apparaîtront en premier dans PostgreSQL puis, plus tard,
seront incorporés dans l'ANSI/ISO SQL. PostgreSQL représente "l'état
de l'art" de la technologie des bases de données.
Le serveur Informix Universal (diffusé en 1997) est basé sur une
version précédente de PostgreSQL car Informix a acheté Illustra Inc.
et l'a intégrée à Informix. La base de données Illustra était
complètement basée sur Postgres (version précédente de PostgreSQL).
PostgreSQL est une amélioration du SGBD POSTGRES, prototype de
recherche de SGBD de la prochaine génération. PostgreSQL, tout en
conservant le puissant modèle de données et la richesse des types de
données de POSTGRES, remplace le langage de requête PostQuel par un
sous-ensemble étendu de SQL.
Le développement de PostgreSQL est réalisé par une équipe de
développeurs Internet qui sont tous inscrits à la liste de diffusion
"PostgreSQL développement mailing list". Son coordinateur actuel est
Marc G. Fournier
· scrappy@postgreSQL.org
Cette équipe est maintenant responsable des développements actuels
et futurs de PostgreSQL. Naturellement, l'utilisateur de la base de
données est lui-même développeur de PostgreSQL!. La charge de
développement est répartie au sein d'un grand nombre d'utilisateurs
finaux de bases de données sur internet.
Les auteurs de PostgreSQL 1.01 sont Andrew Yu et Jolly Chen. De
nombreux autres ont contribué au portage, aux tests, à la mise au
point et a l'amélioration du code. Le code original Postgres, duquel
PostgreSQL est issu, est le résultat de l'effort de nombreux étudiants
de troisième cycle, de deuxième cycle et d'enseignants sous la
direction du Professeur Michael Stonebraker de l'université de
Californie, Berkeley.
Le nom original du logiciel à Berkeley était Postgres. Lors de l'ajout
des fonctionnalités SQL en 1995, il fut renommé Postgres95. Ce nom fut
changé à la fin de 1996 en PostgreSQL.
Des millions d'exemplaires du SGBD PostgreSQL sont installés comme
serveurs, serveurs Web et serveurs d'application. Ce SGBD est très
avancé, c'est un SGBD Relationnel-Objet (ORDBMS).
PostgreSQL peut stocker plus de types de données que les types
traditionnels entier, caractères, etc. - L'utilisateur peut créer des
types, des fonctions, de l'héritage de type etc. PostgreSQL fonctionne
sur Solaris, SunOS, HPUX, AIX, Linux, Irix, Digital Unix, BSDi,
NetBSD, FreeBSD, SCO unix, NEXTSTEP, Unixware et toutes sortes d'unix.
Un portage pour Windows 95/NT est en cours de réalisation.
· Titre : PostgreSQL SQL RDBMS Database (Système de Gestion
de Base de Données Relationnelle Objet)
· Version actuelle : 6.5.2
· Age : PostgreSQL a 14 ans. En développement depuis 1985
· Auteurs : Développé par des millions
d'universités/compagnies sur internet au cours de ces 14 dernières
ANNÉES
PostgreSQL et les éléments qui s'y rapportent dans ce document sont
couverts par le COPYRIGHT de l'Université de Californie, Berkeley.
55.. OOùù llee ttrroouuvveerr??
On peut acheter le CDROM Linux Redhat 5.0, le CDROM Linux Debian ou le
CDROM Linux Slackware qui contiennent déjà postgresql sous forme de
paquetage (a la fois en code source et en binaires) au :
· site Web Linux System Labs : (7 U.S.
dollars)
· site Web Cheap Bytes Inc : (7 U.S.
dollars)
· site Web Principal Debian :
L'organisation PostgreSQL vend un 'CDROM PostgreSQL' qui contient le
code source complet et les binaires pour de nombreux systèmes
d'exploitation Unix, ainsi que la documentation complète.
· CDROM PostgreSQL au site Web principal à :
30 (U.S. dollars)
Distributions uniquement en binaire de PostgreSQL :
· On peut exécuter PostgreSQL sans compiler le source. Récupérer les
binaires pour Intel-Linux de l'url
le fichier se nomme
postgresql-6.5.2.i386.rpm. Son format est de type paquetage redhat
'rpm'. Il contient à la fois le source et les binaires de
PostgreSQL.
· Sites binaires pour Solaris, HPUX, AIX, IRIX, Linux :
Si vous faites une
compilation pour n'importe laquelle des plates-formes envoyer le
binaire à ce site, cela peut être utile aux autres.
· site ftp : récupérer les binaires pour Intel-Linux de
le fichier se nomme
postgresql-6.5.2.i386.rpm. Son format est de type paquetage redhat
'rpm'. Il contient à la fois le source et les binaires de
PostgreSQL.
Sites WWW Web :
· Site Web primaire :
· Site Web secondaire :
·
·
·
·
Les sites ftp sont indiqués ci-dessous :-
· Primaire FTP :
· Secondaire FTP :
·
·
·
·
·
·
·
·
·
·
Le code source de PostgreSQL est aussi disponible sur tous les sites
miroirs de sunsite.unc (soit environ 1000 sites autour du globe). Il
se trouve dans la distribution Linux Red Hat dans le fichier
/pub/contrib/i386/postgresql.rpm.
· Pour obtenir la liste des sites miroirs aller à l'url
66.. PPoossttggrreeSSQQLL àà ggrraannddss ppaass
Ce chapitre est destiné à vous aider à installer et à faire tourner la
base de données très rapidement, en moins de 10 minutes.
66..11.. IInnssttaallllaattiioonn eett tteessttss
Étapes rapides pour installer, tester, vérifier et faire tourner
PostgreSQL Connectez-vous en tant qu'utilisateur _r_o_o_t.
______________________________________________________________________
# rpm -qpl postgre*.rpm (pour consulter la liste des fichiers. Pour la documentation 'man rpm')
# rpm -qpi postgre*.rpm (pour prendre connaissance des informations concernant le paquetage)
# cat /etc/passwd | grep postgres
______________________________________________________________________
Note: Si vous voyez un utilisateur 'postgres', vous pouvez avoir à
faire une sauvegarde et un nettoyage du répertoire postgres et à sup
primer l'utilisateur unix 'postgres', une autre solution consiste à
renommer l'utilisateur unix 'postgres' en quelque chose du genre
'postgres2'. L'installation doit être effectuée dans un "répertoire
propre".
______________________________________________________________________
# rpm -i postgre*.rpm (Doit installer tous les paquetages clients, devel, data
et main pour que pgaccess puisse fonctionner )
# chkconfig --add postgresql (pour lancer pg durant le démarrage, voir 'man
chkconfig')
# cp /usr/lib/pgsql/python/_pg.so /usr/lib/python1.5/lib-dynload (pour
python)
# /etc/rc.d/init.d/postgresql start (pour lancer postgres)
# su - postgres
bash$ createdb mydatabase (ceci va créer une base de données de nom :
(pour lire la documentation 'man createdb')
bash$ psql mydatabase (pour lire la documentation 'man psql')
..... dans psql utilisez les flèches haut/bas ou \s pour visualiser l'historique
bash$ export DISPLAY=:0.0; pgaccess mydatabase; (consulter 'man
pgaccess')
______________________________________________________________________
Dès maintenant, vous pouvez commencer à taper des commandes SQL pour
pgaccess ou psql !!
______________________________________________________________________
bash$ cd /usr/doc/postgresql*
______________________________________________________________________
Arrivé là, lisez toutes les FAQ, les manuels du programmeur et de
l'administrateur ainsi que les documents de prise en main (tutorials)
existants.
Pour obtenir des informations complémentaires concernant PostgreSQL,
consultez
66..22.. MMaaxxiimmuumm RRPPMM
Téléchargez le livre 'Maximum RPM' à l' . le nom
du fichier est maximum-rpm.ps.gz Lisez-le sous Linux en utilisant la
commande gv -
______________________________________________________________________
# gv maximum-rpm.ps.gz
______________________________________________________________________
66..33.. TTeesstt ddee PPyyGGrreeSSQQLL -- IInntteerrffaaccee PPyytthhoonn
______________________________________________________________________
bash$ cd /usr/lib/pgsql/python
bash$ createdb thilo
bash$ psql thilo
thilo=> create table test (aa char(30), bb char(30) );
bash$ /usr/bin/python
>>> import _pg
>>> db = _pg.connect('thilo', 'localhost')
>>> db.query("INSERT INTO test VALUES ('ping', 'pong')")
>>> db.query("SELECT * FROM test")
eins|zwei
----+----
ping|pong
(1 row)
>>>CTRL+D
bash$
..... Wow! Cela a l'air de fonctionner - maintenant, installons-le proprement
bash$ su - root
# cp /usr/lib/pgsql/python/_pg.so /usr/lib/python1.5/lib-dynload
______________________________________________________________________
66..44.. TTeesstt ddee PPeerrll -- IInntteerrffaaccee PPeerrll
______________________________________________________________________
bash$ cd /usr/doc/postgresql-6.5.2/examples/perl5
______________________________________________________________________
Note: La variable globale @INC doit inclure le module Pg.pm dans le
répertoire site_perl donc utilisez l'option -I ci-dessous
______________________________________________________________________
bash$ perl -I/usr/lib/perl5/site_perl/5.004/i386-linux-thread ./example.newstyle
______________________________________________________________________
.... Re_Wow! Vous avez fait tourner un perl qui accède à la base de
données PostgreSQL!!
Prenez connaissance des fichiers d'exemples pour l'utilisation de
l'interface perl.
66..55.. TTeesstt ddeess iinntteerrffaacceess lliibbppqq,, lliibbppqq++++
______________________________________________________________________
bash$ cd /usr/doc/postgresql-6.5.2/examples/libpq++
bash$ su root --> to change ownership of examples
# chown -R postgres /usr/doc/postgresql-6.5.2/examples
# exit
bash$ g++ testlibpq0.cc -I/usr/include/pgsql -I/usr/include/pgsql/libpq++
-lpq++ -lpq -lcrypt
bash$ ./a.out (Note: Ignore Error messages if you get any - as below)
> create table foo (aa int, bb char(4));
No tuples returned...
status = 1
Error returned: fe_setauthsvc: invalid name: , ignoring...
> insert into foo values ('4535', 'vasu');
No tuples returned...
status = 1
Error returned: fe_setauthsvc: invalid name: , ignoring...
> select * from foo;
aa |bb |
-----|-----|
4535 |vasu |
Query returned 1 row.
>
>CTRL+D
bash$
______________________________________________________________________
.... Hourra!! Vous venez de faire tourner les interfaces directes de
C/C++ à la base de données PostgreSQL!!
66..66.. TTeesstt ddeess iinntteerrffaacceess JJaavvaa
Pour pouvoir effectuer ceci vous DEVEZ installer le paquetage
jdk-*glibc*.rpm (paquetage Java RPM)
______________________________________________________________________
bash$ cd /usr/doc/postgresql-6.5.2/examples/jdbc
bash$ echo $CLASSPATH
--> Devrait afficher CLASSPATH=/usr/lib/jdk-1.1.6/lib/classes.zip
bash$ export CLASSPATH=$CLASSPATH:.:/usr/lib/pgsql/postgresql.jar
Editer tout le fichier psql.java et enlevez le symbole de commentaire de la ligne 'package'.
bash$ javac psql.java
bash$ java psql jdbc:postgresql:template1 postgres < password>[1] select * from pg_tables;
tablename tableowner hasindexes hasrules
pg_type postgres true false false
pg_attribute postgres true false false
[2]
CTRL+C
bash$
______________________________________________________________________
.... Re_Hourra!! Vous venez de faire tourner les interfaces directes
de Java à la base de données PostgreSQL!!
66..77.. TTeesstt ddeess iinntteerrffaacceess eeccppgg
______________________________________________________________________
bash$ cd /usr/doc/postgresql-6.5.2/examples/ecpg
bash$ ecpg test1.pgc -I/usr/include/pgsql
bash$ cc test1.c -I/usr/include/pgsql -lecpg -lpq -lcrypt
bash$ createdb mm
bash$ ./a.out
______________________________________________________________________
.... Wow!! vous venez de faire tourner le "C"-SQL / base de données
PostgreSQL" intégré!!
66..88.. TTeesstt ddeess eexxeemmpplleess SSQQLL -- TTyyppeess aanndd ffoonnccttiioonnss ddééffiinniiss ppaarr ll''uuttiill
iissaatteeuurr
______________________________________________________________________
bash$ cd /usr/doc/postgresql-6.5.2/examples/sql
Under-development..
______________________________________________________________________
66..99.. TTeesstt ddeess iinntteerrffaacceess TTccll//TTkk
Il y a un exemple d'interfaces Tcl/Tk dans le programme pgaccess.
Lire le fichier /usr/bin/pgaccess à l'aide d'un éditeur de texte -
______________________________________________________________________
bash$ view /usr/bin/pgaccess
bash$ export DISPLAY=:0.0
bash$ createdb mydb
bash$ pgaccess mydb
______________________________________________________________________
66..1100.. TTeesstt ddeess iinntteerrffaacceess OODDBBCC
1. Procurez-vous le pilote win32 pgsql odbc à
2. Voir également
/usr/lib/libpsqlodbc.a
66..1111.. TTeesstt ddeess iinntteerrffaacceess ddee llaa ffeeuuiillllee ddee ttrraavvaaiill MMoottiiff MMPPSSQQLL
Procurez-vous les RPMs auprès de
66..1122.. VVéérriiffiiccaattiioonn
Pour vérifier le parfait fonctionnement de PostgreSQL, faites tourner
le paquetage de test de Régression :- Connectez-vous en tant que root
-
______________________________________________________________________
# rpm -i postgresql*.src.rpm
# cd /usr/src/redhat/SPECS
# more postgresql*.spec (pour savoir quels sont les paquetage RPM que
vous devez installer)
# rpm -bp postgresql*.spec (.. ce qui va préparer le paquetage)
Le test de régression a besoin des Makefiles et de quelques fichiers en-tête
comme *fmgr*.h
qui peuvent être construits par -
# rpm --short-circuit -bc postgresql*.spec ( .. utilisez "short circuit" pour
forcer les choses!)
Interrompre la construction en pressant les touches CTRL+C quand vous voyez
'make -C common SUBSYS.o'
À ce moment là, la configuratioin est réussie, tous les "makefiles" et tous les fichiers en-tête (headers) ont été créés.
Il n'y a rien de plus à faire.
# cd /usr/src/redhat/BUILD
# chown -R postgres postgresql*
# su - postgres
bash$ cd /usr/src/redhat/BUILD/postgresql-6.5.2/src/test/regress
bash$ more README
bash$ make clean; make all runtest
bash$ more regress.out
______________________________________________________________________
77.. PPoossttggrreeSSQQLL SSuuppppoorrttee ddeess BBaassee ddee DDoonnnnééeess eexxttrrêêmmeemmeenntt ggrraannddeess >> 220000
GGiiggaass
Les performances des machines à cpu 32-bit décroissent rapidement
quand la taille de la base de données dépasse 5 GigaBytes. Vous pouvez
faire tourner des bases de données de 30 gigas avec un cpu 32-bit cpu
mais cela ne sera pas très performant. Les machines à CPU 32 bits
imposent une limitation de 2 GB de mémoire RAM, de 2 GB pour le
système de fichier et d'autres limitations dues au système
d'exploitation.
Si vous avez besoin d'utiliser des bases de données extrêmement
grandes, il est fortement recommandé d'utiliser des machines 64-bit
telles que : Digital Alpha cpu, Sun Ultra-sparc 64-bit cpu, Silicon
graphics 64-bit cpu, Intel Merced IA-64 cpu, machines HPUX 64bit ,
machines IBM 64-bit. Si l'on compile PostgreSQL avec un cpu 64-bit il
pourra supporter d'énormes bases de Données et de grosses requêtes.
Les performances de PostgreSQL pour des interrogations sur de grandes
tables et de grandes bases de données sera plus rapide de plusieurs
ordres de grandeurs que sur des machines à cpu 32-bit . L'avantage des
machines 64-bit est qu'elles disposent d'un grand espace d'adressage
mémoire et que le système d'exploitation peut gérer de très grands
systèmes de fichiers. Cela permet des meilleures performances avec de
grandes bases de données, plus de mémoire centrale (RAM), plus de
possibilités etc...
88.. PPoossttggrreeSSQQLL eesstt--iill ffiiaabbllee??
Le paquetage de "Test de Régression" permet de s'assurer de son bon
fonctionnement. Il est inclus (src/test/regress) dans la distribution
et permet à l'ordinateur d'effectuer la vérification des opérations
SQL standard ainsi que des capacités de PostgreSQL. Le paquetage de
test contient déjà des centaines de programmes SQL de test.
L'avantage de ce test effectué par l'ordinateur vient du fait que
celui-ci peut effectuer plusieurs millions de test SQL très
rapidement. La vitesse de l'ordinateur est un milliard de fois plus
rapide que celle de l'esprit humain! Il est donc pertinent d'utiliser
la puissance de calcul de l'ordinateur pour valider un logiciel plutôt
celle de l'esprit humain.
Si c'est nécessaire, vous pouvez en ajouter beaucoup d'autres. Dans ce
cas penser à envoyer ces tests au site PostgreSQL primaire si vous
pensez que cela peut être utile aux autres. Le paquetage de Test de
Régression permet d'asseoir la confiance des utilisateurs en
PostgreSQL et facilite le déploiement rapide de PostgreSQL sur des
systèmes en production sans inquiétude majeure.
Le paquetage "Test de Régression" peut être considéré comme un
document technique ""TTRRÈÈSS SSOOLLIIDDEE"" reconnu mutuellement par les
développeurs et par les utilisateurs finaux. Les développeurs de
PostgreSQL utilisent de façon intensive ce paquetage durant la période
de développement et également avant de mettre le logiciel à la
disposition des utilisateurs pour en assurer la parfaite qualité.
99.. OOuuttiill GGUUII ffrroonnttaall ppoouurr PPoossttggrreeSSQQLL ((IInntteerrffaaccee UUttiilliissaatteeuurr
GGrraapphhiiqquuee))
Le navigateur Web deviendra, dans le futur, l'interface utilisateur
graphique le (GUI) le plus populaire. La plus grande partie du code
doit être écrite en utilisant le langage de scripts de serveurs Web
PHP/Zend (et en le compilant) ``'' combiné avec un peu de JavaScript
du côté du client web. Il est recommandé de migrer vos applications
existantes sous Windows 95/NT vers PHP/Zend.
Les meilleurs outils sont :
· PHP et Zend (script et compilateur) ``''
· X-Designer supporte C++, Java et MFC
· Qt pour Windows95 et Unix à et
· Code Crusader se trouve sur le cdrom linux, logiciel libre basé sur
Code Warrior de MetroWorks
· Code Warrior de MetroWorks
· GNU Prof C++ IDE de Cygnus
· Borland C++ Builder pour Linux
· Borland Java JBuilder pour Linux
Les langages, par ordre de préférence sont :
1. Le langage de script serveur Web PHP avec Javascript pour le
client.
2. Le langage de script Perl en utilisant Perl-Qt ou Perl-Tk ``''
3. Le langage C++ Omniprésent avec QtEZ, QT, Lesstiff ou Motif.
4. Java mais les programmes obtenus sont très lents.
D'autres outils sont disponibles : PostgreSQL possède une
bibliothèque d'interface Tcl/Tk dans la distribution nommée 'pgTcl'.
Il existe un Environnement de Développement Intégré (EDI ou IDE pour
integrated development environment) pour Tcl/Tk nommé SpecTcl.
· L'outil Lesstiff Motif
· Vibe Java/C++ se trouve àt
· JccWarrior
· Tcl/Tk
· Une extension orientée objet de Tcl appelée INCR se trouve à
· Le site Visual TCL
· Le rpm Visual TCL de Redhat à
·
·
·
· FreeBuilder
· SpecTCL
· Kanchenjunga Java RAD Tool pour PostgreSQL
· L'Applixware Tool
· XWPE X Windows Programming Environment
· XWB X Windows Work Bench
· NEdit
Vous pouvez également utiliser Borland C++ Builder, Delphi, Borland
JBuilder, PowerBuilder sous Windows95 pour connecter PostgreSQL
sous unix à travers des pilotes ODBC/JDBC.
1100.. PPiillootteess dd''iinntteerrffaaccee ppoouurr PPoossttggrreeSSQQLL
1100..11.. OODDBBCC PPiillootteess ppoouurr PPoossttggrreeSSQQLL
ODBC signifie 'Open DataBase Connectivity'. C'est une norme répandue
pour accéder aux informations des bases de données de différents
vendeurs. Le fonctionnement des applications écrites en utilisant les
pilotes ODBC est garanti quelle que soient les bases de données
utilisées PostgreSQL, Oracle, Sybase, Informix etc..
· PostODBC est déjà inclus dans
les distributions. Consultez le site web principal
. Il est inclus dans ce CDROM
PostgreSQL.
· Open Link Software Corporation
distribue des ODBC pour PostgreSQL et d'autres bases de données.
Open Link dispose aussi d'ODBC gratuits (quantité limitée) vérifier
auprès d'eux.
· Insight ODBC pour PostgreSQL
C'est le site officiel PostODBC.
Il existe aussi un projet appelé FreeODBC Pack Package . Il n'y a pas
de version PostgreSQL, peut-être pouvez vous y participer.
· c'est une version gratuite
d'ODBC.
1100..22.. PPiillootteess UUDDBBCC ppoouurr PPoossttggrreeSSQQLL
UDBC est une version statique de pilote de gestionnaire et de DLL
d'ODBC indépendant, pour intégrer le support de la connectivité base
de données directement au niveau des applications.
· Open Link Software Corporation vends
UDBC pour PostgreSQL et autres SGBD. Open Link dispose aussi
d'UDBC gratuits (quantité limitée) vérifier auprès d'eux.
1100..33.. PPiillootteess JJDDBBCC ppoouurr PPoossttggrreeSSQQLL
JDBC signifie 'Java DataBase Connectivity'. Java est un langage de
développement indépendant de la plate-forme d'utilisation développé
par Sun Microsystems. Les programmeurs Java sont encouragés à écrire
leurs applications en utilisant JDBC pour faciliter la portabilité
entre différentes plates-formes telles que PostgreSQL, Oracle,
informix, etc. Si vous écrivez des applications Java applications vous
pouvez obtenir les pilotes JDBC pour PostgreSQL à partir des sites
suivants :
Le pilote JDBC est inclus dans la distribution PostgreSQL.
· Sun's Java
connectivity to PostgreSQL
·
· Open Link Software Corporation vends
JDBC pour PostgreSQL et autres SGBD. Open Link dispose aussi
d'JDBC gratuits (quantité limitée) vérifier auprès d'eux.
· Site JDBC UK
· Site JDBC FAQ
Le site JDBC, le guide et les FAQ sont situés à -
· JDBC HOME
· JDBC guide
· JDBC FAQ
1100..44.. JJaavvaa ppoouurr PPoossttggrreeSSQQLL
Ces classes pour PostgreSQL seront très utiles au programmeur JAVA.
· et regardez postgresql-
jdbc-*.rpm
·
1111.. PPiilloottee dd''iinntteerrffaaccee ddee SSGGBBDD PPeerrll ((DDaattaabbaassee IInntteerrffaaccee DDBBII)) ppoouurr
PPoossttggrreeSSQQLL
1111..11.. iinntteerrffaaccee PPeerrll 55 ppoouurr PPoossttggrreeSSQQLL
PERL est l'acronyme de 'Practical Extraction and Report Language'.
Perl est disponible pour tous les systèmes d'exploitation et toutes
les plates-formes matérielles au monde. Vous pouvez utiliser Perl sous
Windows95/NT, Apple Macintosh iMac, toutes les variétés d'Unix
(Solaris, HPUX, AIX, Linux, Irix, SCO etc..), ordinateur central MVS,
ordinateur de bureau OS/2, OS/400, Amdahl UTS et beaucoup d'autres.
Perl tourne MMÊÊMMEE sur de nombreux matériels et systèmes d'exploitations
peu courants/généralement inconnus!! Aussi, ne soyez pas surpris si
vous voyez perl tourner sur un système d'exploitation très rarement
utilisé.
Cette interface est incluse dans la distribution de PostgreSQL. On la
trouve dans le répertoire src/pgsql_perl5.
· Contact pour Pgsql_perl5 par email : E.Mergl@bawue.de
· On la trouve aussi dans -
· Page d'accueil Perl :
· Tutoriel Perl, pour un titre de tutoriel, consultez :
· La FAQ Perl est à :
http://www.yahoo.com/Computers\_and\_Internet/Programming\_Languages/Perl/
· Perl GUI Interfaces Utilisateurs Perl-Qt rpm :
et cherchez
PerlQt-1.06-1.i386.rpm
· Perl GUI Interfaces Utilisateurs Perl-Qt :
· Perl GUI Interfaces Utilisateurs Perl-XForms :
et cherchez
Xforms4Perl-0.8.4-1.i386.rpm
· Perl GUI Interfaces Utilisateurs Perl-Tk :
· Perl GUI kits :
· Interfaces de Base de Données Perl :
· Traducteur de Perl en "C" : et cherchez Compiler-a3.tar.gz
· Traducteur de Bourne shell en Perl :
· awk en perl "a2p" et sed en perl "s2p" sont inclus dans la
distribution PERl.
· Consultez également le forum PERL à comp.lang.perl.*
1111..22.. DDBBII IInntteerrffaaccee ddee BBaassee ddee DDoonnnnééeess PPeerrll
1111..22..11.. QQuu''eesstt--ccee qquuee DDBBII ??
L'interface de SGBD Perl (Perl Database Interface - DBI) est une
interface logicielle d'accès à un SGBD (Application Programming
Interface - API) pour le langage PERL. Les spécifications de l'API DBI
perl définissent un ensemble de fonctions, de variables et de
conventions d'accès à un SGBD cohérent et indépendant du SGBD utilisé.
Les informations concernant cette section DBI ont été prises dans la
"DBI FAQ" dont l'auteur est Alligator Descartes et sont reproduites
ici avec sa permission.
· Alligator Descartes Hermetica peut être contacté à
descarte@hermetica.com
1111..22..22.. PPiilloottee DDBBII ppoouurr PPoossttggrreeSSQQLL DDBBDD--PPgg--00..8899
Vous pouvez obtenir DBD-Pg-0.89.tar.gz de l'un des sites indiqués ci-
dessous :
· DBD-Pg-0.89 :
· Comprehensive Perl Archive Network CPAN
· Liste des pilotes DBI et pages sur les modules DBI
· L'information sur DBI se trouve à
· Site ftp primaire
· Liens divers sur DBI
· Liens divers sur DBI
· Liens divers sur DBI
· Base de Données PostgreSQL
CONTRAINTES :
· - Construire, tester et installer Perl 5 (au moins 5.002)
· - Construire, tester et installer le module DBI (au moins 0.89)
· - Construire, tester et installer PostgreSQL (au moins 6.2)
1111..22..33.. SSuuppppoorrtt tteecchhnniiqquuee ssuurr DDBBII
Veuillez envoyer vos commentaires et vos comptes-rendus d'erreurs à
· E.Mergl@bawue.de
Pensez à inclure la sortie de perl -v, et perl -V, la version de
PostgreSQL, la version de DBD-Pg, et la version de DBI dans votre
compte-rendu d'erreur.
1111..22..44.. QQuu''eesstt--ccee qquuee cc''eesstt qquuee DDBBII,, DDBBppeerrll,, OOrraappeerrll aanndd **ppeerrll??
Pour citer Tim Bunce, l'architecte et l'auteur de DBI :
``DBI est une interface logicielle d'accès aux bases de données
(Application Programming Interface -API) pour le langage Perl. Les
spécifications DBI API définissent un ensemble de fonctions, de
variables et de conventions cohérents d'interfaçage à une base de
données indépendant de la base de données utilisée.''
En langage simple, l'interface DBI permet aux utilisateurs d'accéder
de manière transparente à de multiples base de données. Ainsi, Si vous
vous connectez à une base de données Oracle, Informix, mSQL, Sybase ou
n'importe quelle autre, vous n'avez pas besoin de connaître les
mécanismes sous-jacents de la couche 3GL. L'API définie par DBI
fonctionnera sur tous ces types de bases de données.
On obtient un bénéfice du même ordre en ayant la possibilité de se
connecter à deux bases de données de différents fournisseurs à l'aide
du même script perl, i.e., je veux lire des données d'une base de
données Oracle et les insérer dans une Informix à partir du même
programme. La couche logicielle DBI permet de le réaliser simplement
et efficacement.
DBperl est le nom ancien des spécifications de l'interface. Il est
utilisé maintenant pour désigner les modules perl4 d'interfaçage des
bases de données tels que oraperl, isqlperl, ingperl et autres. Ces
interfaces n'ont pas d'API standard et ne sont généralement pas
supportés.
Voici une liste des modules DBperl, de leur équivalent DBI
correspondants et du support d'information. Notez que les auteurs
cités ici ne maintiennent généralement pas le module DBI de la base de
données. Les adresses E-mail n'ont pas été vérifiées et ne doivent
être utilisées que pour les questions concernant les modules perl4
listés ci-dessous. Les questions sur les pilotes DBI doivent être
directement adressées aux listes de diffusion des utilisateurs DBI.
Nom du module SGBD requis Auteur DBI
----------- ----------------- ------ ---
Sybperl Sybase Michael Peppler DBD::Sybase
Oraperl Oracle 6 & 7 Kevin Stock DBD::Oracle
Ingperl Ingres Tim Bunce & DBD::Ingres
Ted Lemon
Interperl Interbase Buzz Moschetti DBD::Interbase
Uniperl Unify 5.0 Rick Wargo None
Pgperl Postgres Igor Metz DBD::Pg
Btreeperl NDBM John Conover SDBM?
Ctreeperl C-Tree John Conover None
Cisamperl Informix C-ISAM Mathias Koerber None
Duaperl X.500 Directory Eric Douglas None
User Agent
Cependant, certains modules DBI possèdent des couches logicielles
d'émulation. Ainsi DBD::Oracle est livré avec une couche d'émulation
Oraperl, ce qui permet d'exécuter d'anciens scripts oraperl sans modi
fication. La couche logicielle d'émulation traduit les appels oraperl
API en appels DBI et les exécute.
Voici une table des couches d'émulation :
Module Couche d'émulation État
------ --------------- ------
DBD::Oracle Oraperl Complète
DBD::Informix Isqlperl En cours de développement
DBD::Sybase Sybperl Fonctionnelle? ( Nécessite une
vérification)
DBD::mSQL Msqlperl En version expérimentale avec
DBD::mSQL-0.61
L'émulation Msqlperl est un cas particulier. Msqlperl est un pilote
perl5 pour les bases de données mSQL , mais il ne se conforme pas aux
spécifications DBI. On désapprouve son utilisation en faveur de
DBD::mSQL. On peut télé-charger Msqlperl à partir du site CPAN via :
·
1111..22..55.. SSppéécciiffiiccaattiioonnss DDBBII
Il existe quelques sources d'information sur DBI. Spécifications DBI
·
On trouve deux spécifications disponibles à cette adresse: la
nouvelle spécification Draft (édition provisoire) DBI qui est un
document en évolution rapide à mesure que l'équipe de développement
s'approche d'une version stable de l'interface, et l'ancienne
spécification historique DBperl à partir de laquelle l'interface
DBI actuelle a évolué.
Il faut considérer ce dernier document comme ne présentant qu'un
intérêt historique et ne pas l'utiliser en tant que manuel de
programmation ou document de référence. Il demeure cependant une
source d'informations très utile.
Documentation POD (Plain Old Documentation) Les PODs sont des morceaux
de documentation généralement noyés à l'intérieur des programmes perl
qui documentent le code "sur place". Ce sont des ressources très
utiles pour les programmeurs et les utilisateurs des modules. Les PODs
pour DBI et pour les pilotes deviennent monnaie courante et la
documentation pour les modules contenant ces PODs peut être lue avec
les commandes suivantes.
La Spécification DBI Les PODs pour la spécification DBI peut être lue
avec la commande :
perldoc DBI
Oraperl Les utilisateurs de la couche d'émulation fournie avec
DBD::Oracle, peuvent s'informer sur la manière de programmer en
utilisant l'interface Oraperl en tapant:
perldoc Oraperl
Ce qui permettra d'obtenir une copie à jour de la page de manuel
originale écrite par Kevin Stock pour perl4. L'API oraperl y est
entièrement listée et décrite.
DBD::mSQL Les utilisateurs du module DBD::mSQL peuvent lire des
informations sur quelques fonctions privées et bizarreries de ce
pilote en tapant :
perldoc DBD::mSQL
Foire Aux Questions (FAQ) Ce document, la Foire Aux Questions, est
aussi disponible en tant que documentation POD! Vous pouvez le lire
sur votre propre système en tapant :
perldoc DBI::FAQ
Ceci peut être plus pratique pour ceux qui ne sont pas connectés à
l'Internet ou le sont d'une manière peu pratique.
Les POD en général On peut lire des informations sur la manière
d'écrire des PODs, ainsi que sur la philosophie des PODs en général en
tapant :
perldoc perlpod
Les utilisateurs ayant le module Tk installé seront peut-être
intéressés d'apprendre qu'il existe un lecteur de POD basé sur Tk
nommé tkpod. Il formate les POD de manière pratique et lisible.
Discussions, Cancans et Observations
·
Il y a , de temps en temps, une série de discussions de la part de
certaines personnes, dans les listes de diffusion sur DBI.
``DBI -- L'interface de SGBD en perl5'' C'est un article écrit par
Alligator Descartes et Tim Bunce sur la structure de DBI. Il a été
publié dans le numéro 5 de ``The Perl Journal''. Il est extrêmement
bon. Allez acheter ce magazine. En fait, achetez les tous. Le site
WWW de ``The Perl Journal'' est :
·
``DBperl'' Cet article, publié dans l'édition de novembre 1996 du
``Dr. Dobbs Journal'' traitait de DBperl.
``The Perl5 Database Interface'' Cette référence est celle d'un livre
à écrire par Alligator Descartes publié par O'Reilly et Associés.
Listes de diffusion Il y a trois listes de diffusion pour DBI gérées
par Ted Lemon. On peut s'inscrire à toutes et résilier cette
inscription à travers le World Wide Web à :
· Listes de diffusion
Les listes où les utilisateurs peuvent participer sont:
ddbbii--aannnnoouunnccee Cette liste de diffusion est réservée uniquement aux
annonces. Si vous n'arrivez pas à utiliser le formulaire sur la page
WWW indiquée ci-dessus, inscrivez-vous à cette liste de la manière
suivante :
· Email: dbi-announce-request@fugue.com
avec le mot 'subscribe' dans le corps du message.
ddbbii--ddeevv Cette liste de diffusion est à l'usage des développeurs pour
discuter des idées et des concepts de l'interface DBI, API et des
mécanismes des pilotes. Seulement utiles pour les développeurs et les
personnes intéressées. Trafic faible. Si vous n'arrivez pas à
utiliser le formulaire sur la page WWW indiquée ci-dessus, inscrivez-
vous à cette liste de la manière suivante :
· Email: dbi-dev-request@fugue.com
avec 'subscribe' dans le corps du message.
ddbbii--uusseerrss Cette liste de diffusion est un lieu de discussion générale
utilisée pour les rapports d'erreurs, la discussion sur différents
problèmes et des demandes de renseignement d'intérêt général. Si vous
n'arrivez pas à utiliser le formulaire sur la page WWW indiquée ci-
dessus, inscrivez-vous à cette liste de la manière suivante :
· Email: dbi-users-request@fugue.com
avec 'subscribe' dans le corps du message.
Archives des Listes de Diffusion
· Archive des listes de diffusion US
· Archive des listes de diffusion Européennes
1111..22..66.. PPrroobbllèèmmeess ddee ccoommppiillaattiioonn oouu ""IIll éécchhoouuee aauuxx tteessttss""
Si vous avez un vidage mémoire, essayez le module Devel::CoreStack
pour générer une trace de la pile du vidage mémoire. On peut trouver
Devel::CoreStack à :
·
Envoyez un courrier électronique sur la Liste dbi-users contenant la
trace de la pile, les versions des modules, la version de perl, les
situations de test, la version du système d'exploitation et toutes
autres informations pertinentes. Plus vous fournirez d'informations
plus vite les développeurs pourront résoudre les problèmes. Si vous ne
nous envoyez rien, n'attendez rien en retour.
1111..22..77.. DDBBII eesstt--iill ssuuppppoorrttéé ssuurr lleess ppllaatteess--ffoorrmmeess WWiinnddoowwss 9955 // NNTT ??
Les portages de DBI et de DBD::Oracle pour Win32 ports font maintenant
partie intégrante de DBI, donc, la récupération d'une version de DBI
supérieure à 0.81 doit donner satisfaction. Vous pouvez accéder aux
bases de données Microsoft Access et SQL-Server à partir de DBI via
ODBC. Une "couche d'émulation" DBI expérimentale est fournie avec
DBI-0.79 (et suivants ) pour le module Win32::ODBC. Son nom est
DBI::W32ODBC. Vous aurez besoin du module Win32::ODBC.
· Win32 DBI
· Win32 ODBC
1111..22..88.. QQuu''eesstt--ccee qquuee DDBBMM?? EEtt ppoouurrqquuooii ddooiiss--jjee uuttiilliisseerr DDBBII àà ssaa
ppllaaccee??
A l'origine UNIX était bienheureux avec sa "Base de Données" rustique
reposant sur des fichiers, nommée système dbm. Avec dbm vous
enregistrez les données dans des fichiers et les retrouvez rapidement.
Cependant, il souffre de sérieux inconvénients.
Verrouillage des fichiers
Les systèmes dbm ne permettent par un verrouillage particulièrement
robuste des fichiers, de même qu'il n'y a pas de possibilité de
corriger les problèmes survenants lors d'écritures [ dans la base de
données ] simultanées.
Structures de Données Arbitraires
Les systèmes dbm permettent seulement une simple structure de données
fixe: paires clé-valeur. Cette valeur peut être un objet complexe, tel
qu'une structure [ C ], mais la clé doit être unique. Ce fut une
grande limitation dans l'utilité des systèmes dbm.
Cependant, les systèmes dbm continuent d'offrir des fonctions utiles
pour les utilisateurs ayant des ensembles de données simples et des
ressources limitées, puisqu'ils sont rapides, robustes et extrêmement
bien testés. Les modules Perl pour accéder aux systèmes dbm font
maintenant partie intégrante de la distribution Perl via le module
AnyDBM_File.''
Pour résumer, DBM est une solution parfaitement satisfaisante pour les
bases de données essentiellement en lecture seule, ou pour des
ensembles de données simples et réduits. Toutefois, pour des ensembles
de données plus importants, sans mentionner un verrouillage des
transactions robuste, on recommandera aux utilisateurs de préférer
DBI.
1111..22..99.. EEsstt--ccee qquuee << iinnsséérreezz uunnee ffoonnccttiioonnnnaalliittéé iiccii >> eesstt ssuuppppoorrttéé
ppaarr DDBBII??
Si l'on suppose que la fonctionnalité en question n'est pas, en
standard, spécifique d'un SGBD, alors la réponse sera non.
DBI représente un API qui doit fonctionner avec la plupart des SGBD,
et n'a pas de fonctionnalité spécifique à un SGDB particulier.
Cependant, les auteurs d'un pilote peuvent, s'ils le désirent, ajouter
une fonctionnalité spécifique à un SGBD à travers les méthodes func
définies dans l'API DBI. Les développeurs de Scripts doivent noter que
l'utilisation de cette fonctionnalité au travers de ces méthodes func
a de bonnes chances d'en sacrifier la portabilité entre les différents
SGBD.
1111..22..1100.. EEsstt--ccee qquuee DDBBII eesstt dd''uunnee qquueellccoonnqquuee uuttiilliittéé ppoouurr llaa pprrooggrraamm
mmaattiioonn CCGGII??
En un mot, oui! DBI est extrêmement utile pour la programmation CGI!
En fait, la programmation CGI est une des deux principales utilisation
de DBI.
DBI confère aux programmeurs CGI la possibilité d'offrir des base de
données WWW à leurs utilisateurs, ce qui donne à ces utilisateurs la
possibilité d'utiliser de grandes quantités de données bien
organisées. DBI donne aussi la possibilité , si un site reçoit un
trafic trop important pour les performances du serveur, d'améliorer ce
serveur de base de données de façon transparente, sans modifier les
scripts CGI.
1111..22..1111.. CCoommmmeenntt ppuuiiss--jjee oobbtteenniirr uunn tteemmppss ddee ccoonnnneexxiioonn pplluuss rraappiiddee
aavveecc DDBBDD::::OOrraaccllee eett CCGGII CCGGII??
Le serveur httpd Apache maintient un ensemble de processus fils httpd
pour servir les requêtes clients.
En utilisant le module mod_perl Apache de Doug MacEachern,
l'interpréteur perl est inclus dans le processus fils httpd. Les
modules CGI, DBI, et vos autres modules favoris peuvent être chargés
au lancement de chaque processus fils. Ces modules ne seront pas
rechargés à moins d'être modifiés sur disque.
Pour de plus amples informations sur Apache, consultez le site WWW du
Projet Apache à :
· Site WWW du Projet Apache
· Module Mod_perl
1111..22..1122.. CCoommmmeenntt ppuuiiss--jjee oobbtteenniirr uunnee ccoonnnneexxiioonn ppeerrssiissttaannttee aavveecc DDBBII
eett CCGGII??
En utilisant le module Apache::DBI de Edmund Mergl, les connexions à
la base de données sont enregistrées dans une table avec chacun des
processus httpd fils. Si votre application utilise une base de données
simple utilisateur, cette connexion peut être lancée avec chaque
processus fils. Actuellement, les connexions à la base de données ne
peuvent pas être partagées entre processus httpd fils. Apache::DBI
peut être télé-chargé de CPAN via :
·
1111..22..1133.. ""QQuuaanndd jjee llaannccee uunn ssccrriipptt ppeerrll ddee llaa lliiggnnee ddee ccoommmmaannddee,, ççaa
mmaarrcchhee,, mmaaiiss,, qquuaanndd jjee llee llaannccee ssoouuss hhttttppdd,, ççaa éécchhoouuee!!"" PPoouurrqquuooii??
Fondamentalement, il y a une bonne chance que cela provienne du fait
que l'utilisateur à partir duquel vous avez lancé la ligne de commande
a un ensemble de variables d'environnement correctement configuré, ce
sont, dans le cas de DBD::Oracle, des variables telles que
$ORACLE_HOME, $ORACLE_SID ou TWO_TASK. Le processus httpd s'exécute
habituellement sous un utilisateur id ne correspondant pas à un
utilisateur, ce qui implique qu'il n'y a pas d'environnement
configuré. Tous scripts essayant de s'exécuter dans ces circonstances
échoueront. Pour résoudre ce problème, initialisez l'environnement de
votre base de données dans un bloc BEGIN ( ) en tête de votre script.
Ceci devrait résoudre votre problème. De même, vous devriez regarder
votre fichier registre d'erreurs pour y trouver des indices, ainsi que
les guides "Idiot's Guide To Solving Perl / CGI Problems" et "Perl
CGIProgramming FAQ" pour avoir des informations complémentaires. Il
est peu probable que ce problème concerne DBI. Lisez ces DEUX
documents très soigneusement !
· Idiot's Guide to Solving Perl / CGI problems
1111..22..1144.. PPuuiiss--jjee ffaaiirree ddee ll''eexxééccuuttiioonn eenn ppaarraallllèèllee aavveecc DDBBII??
A la date de ce document, non. perl ne permet pas l'exécution en
parallèle. Cependant, l'exécution en parallèle doit faire partie de la
distribution perl de base à compter de la version 5.005, ce qui sous-
entend que le support de l'exécution en parallèle pour DBI devrait
suivre rapidement. Pour quelques exemples de code OCI pour Oracle
ayant des instructions SELECT avec exécution en parallèle, voir :
·
1111..22..1155.. CCoommmmeenntt ppuuiiss--jjee iinnvvooqquueerr ddeess pprrooccéédduurreess eennrreeggiissttrrééeess aavveecc
DDBBII??
En supposant que vous avez créé une procédure enregistrée à
l'intérieur de la base de données cible, e.g., une base de données
Oracle, vous pouvez utiliser $ dbh-> do pour exécuter immédiatement
cette procédure. Par exemple,
$ dbh-> do( "BEGIN someProcedure END" );
1111..22..1166.. CCoommmmeenntt ppuuiiss--jjee rrééccuuppéérreerr lleess vvaalleeuurrss ddee rreettoouurr ddee
pprrooccéédduurreess eennrreeggiissttrrééeess aavveecc DDBBII??
N'oubliez pas d'effectuer un test d'erreur, strict!
$sth = $dbh->prepare( "BEGIN foo(:1, :2, :3); END;" );
$sth->bind_param(1, $a);
$sth->bind_param_inout(2, \$path, 2000);
$sth->bind_param_inout(3, \$success, 2000);
$sth->execute;
1111..22..1177.. CCoommmmeenntt ppuuiiss--jjee ccrrééeerr oouu ssuupppprriimmeerr uunnee bbaassee ddee ddoonnnnééeess aavveecc
DDBBII??
La création et la suppression de bases de données sont des concepts
qui sont beaucoup trop abstraits pour être supportés par DBI. Par
exemple, Oracle ne supporte pas le concept de détruire une base de
données du tout ! Ainsi, dans Oracle, le serveur de base de données
est essentiellement la base de données elle-même alors que dans mSQL,
le processus serveur s'exécute tranquillement sans aucune base de
données créée. C'est un problème trop hétérogène pour s'y attaquer.
Quelques pilotes, cependant, supportent la création et la suppression
de bases de données à travers des méthodes func privées. Il vous faut
regarder dans la documentation des pilotes que vous utilisez pour
vérifier s'ils supportent de tels mécanismes.
1111..22..1188.. CCoommmmeenntt lleess vvaalleeuurrss NNUULLLL ssoonntt--eelllleess pprriisseess eenn ccoommppttee ppaarr
DDBBII??
Les valeurs NULL dans DBI sont traitées comme la valeur undef. Des
NULLs peuvent être insérés dans les bases de données en tant que NULL,
par exemple :
$rv =
$dbh->do( "INSERT INTO table VALUES( NULL )" );
mais lors d'une interrogation, les NULLs devront être testés comme des
undef. C'est une norme pour tous les pilotes.
1111..22..1199.. QQuu''eesstt--ccee qquuee cc''eesstt qquuee cceess hhiissttooiirreess ddee mméétthhooddeess ffuunncc??
Une méthode func est définie à l'intérieur de DBI comme étant un point
d'entrée pour une fonctionnalité d'une base de données spécifique, eg,
la possibilité de créer ou supprimer des bases de données.
L'invocation de ces méthodes spécifiques aux pilotes est simple. Par
exemple, pour invoquer une méthode createDatabase qui n'a qu'un seul
argument, on écrira :
$rv = $dbh->func( 'argument', 'createDatabase' );
Les développeurs de logiciels doivent cependant noter que ces méthodes
func ne sont pas portables entre SGBD.
1111..22..2200.. AAssssiissttaannccee eett ffoorrmmaattiioonn ppaayyaannttee
L'interface aux SGBD Perl5 est un logiciel LIBRE. IL EST DISTRIBUE
SANS GARANTIE D'AUCUNE SORTE. Cependant, quelques organisations
fournissent soit une assistance technique soit des programmes de
formation pour DBI.
PPEERRLL CCLLIINNIICC :: La société "Perl Clinic" peut offrir des contrats
d'assistance payants pour Perl, DBI, DBD::Oracle et Oraperl. Cette
assistance est fournie par la compagnie où travaille Tim Bunce, auteur
de DBI. Pour de plus amples informations concernant leurs services,
consultez :
·
1122.. OOuuttiillss ddee GGeessttiioonn PPoossttggrreeSSQQLL
1122..11.. PPGGAACCCCEESSSS -- UUnn GGUUII ppoouurr llaa ggeessttiioonn ddee PPoossttggrreeSSQQLL
PgAccess est une interface Tcl/Tk à PostgreSQL. Il est déjà inclus
dans la distribution de PostgreSQL. Pour une copie plus récente, vous
pouvez accéder au site web :
·
· Si vous avez des commentaires, des suggestions pour des
améliorations, n'hésitez pas à envoyer un courrier électronique à :
teo@flex.ro
Fonctionnalités de PgAccess
Fenêtres de PgAccess : Fenêtre principale, créateur de tables, vue de
table (interrogation), créateur visuel d'interrogation .
Tables
· - Ouverture de tables pour la visualisation, 200 enregistrements
maximum ( modifiable dans le menu des préférences )
· - re-dimensionnement d'une colonne en tirant la ligne verticale de
la grille ( plus pratique à réaliser à l'intérieur même de la table
que dans l'en-tête)
· - texte encadré dans les cellules - disposition enregistrée pour
chacune des tables)
· - importation/exportation vers des fichiers externes (SDF,CSV)
· - possibilité de filtres (filtre de saisie, tel que (prix>3.14)
· - possibilités de tri (saisie manuelle de(s) champ(s) à trier)
· - édition en ligne
· - assistant générateur de table amélioré
· - édition de champ améliorée
Requêtes
· - définition, édition et enregistrement de "requêtes définies par
l'utilisateur"
· - enregistrement de requêtes en tant que vues
· - exécution des requêtes
· - visualisation des résultats de requêtes de type select
· - suppression et changement de nom de requête
· - créateur visuel de requêtes avec possibilités de
"glisser/déposer". Pour tous ceux d'entre vous qui ont l'extension
pour Netscape Navigator de Tcl/Tk installée, vous pouvez le voir au
travail en cliquant ici
Séquences
· - définition de séquences, ainsi que leurs suppression et
inspection Fonctions
· - définition, inspection et suppression de fonctions en langage SQL
Les futures implémentations disposeront
· - de la conception des tables (ajout de nouveaux champs, changement
de nom, etc.)
· - de la définition de fonction
· - d'un générateur de rapport
· - d'un langage de script de base
Si vous avez des commentaires, ou des suggestions d'amélioration,
envoyez un courrier électronique à :
· teo@flex.ro
Informations concernant libgtcl
Vous aurez également besoin de la bibliothèque d'interface de
PostgreSQL à Tcl, disponible comme module Tcl/Tk chargeable. Son nom
est libpgtcl et le source est situé dans le répertoire PostgreSQL
/src/interfaces/libpgtcl. Précisément, vous aurez besoin d'une
bibliothèque libpgtcl qui soit "chargeable" à partir de Tcl/Tk. Ce
qui est techniquement différent d'un fichier objet chargeable
PostgreSQL ordinaire, car libpgtcl est constituée d'un ensemble de
fichiers objets. Sous Linux, on l'appelle libpgtcl.so. Vous pouvez
télé-charger à partir d'ici une version déjà compilée pour les
systèmes Linux i386. La seule chose à faire est de copier libpgtcl.so
dans le répertoire bibliothèque système (/usr/lib) et c'est tout. Une
solution possible est de supprimer dans le source la ligne contenant
load libpgtcl.so et de charger pgaccess.tcl non pas avec wish, mais
avec pgwish (ou wishpg) le wish qui a été lié avec la bibliothèque
libpgtcl.
1122..22.. OOuuttiill WWiinnddoowwss iinntteerraaccttiiff ddee ggéénnéérraattiioonn ddee rreeqquuêêttee ppoouurr PPoosstt
ggrreeSSQQLL
("Windows Interactive Query Tool" WISQL ou MPSQL) MPSQL offre une
interface SQL graphique à PostgresSQL. MPSQL est identique à la
feuille de programmation SQL d'Oracle et au serveur de requête SQL de
Microsoft WISQL! Il dispose d'un GUI agréable et d'un historique des
commandes. Vous pouvez utiliser le coupé/collé ainsi que d'autres
fonctionnalités sympathiques pour accroître votre productivité.
·
· Email : keidav@whidbey.com
· dans le fichier tcl_syb/wisql.html
·
· Email : de@ucolick.org
1122..33.. OOuuttiill iinntteerraaccttiiff ddee ggéénnéérraattiioonn ddee rreeqquuêêttee ppoouurr PPoossttggrreeSSQQLL --
IISSQQLL
ISQL est destiné aux terminaux fonctionnants en mode ligne de
commande. C'est inclus dans la distribution et nommé PSQL. Il est
très similaire à Sybase ISQL, et à Oracle SQLplus. A l'invite unix
tapez la commande 'psql' qui en retour vous affichera le caractère
d'attente de commande: psql> .
Tapez /h pour obtenir de l'aide sur les commandes utilisables.
C'est très convivial et d'utilisation facile. C'est aussi très utile
pour écrire des scripts pour les interpréteurs de commandes.
1122..44.. MMPPMMGGRR -- UUnn oouuttiill ddee ggeessttiioonn ddee BBaassee ddee DDoonnnnééeess ppoouurr PPoossttggrreessSSQQLL
MPMGR fournira un outil graphique de gestion de Base de Données pour
PostgresSQL. Vous pouvez le trouver à
·
· Email: keidav@mutinybaysoftware.com
·
· Email: keidav@whidbey.com
·
· dans le fichier tcl_syb/wisql.html
· WISQL for PostgreSQL
· Email: de@ucolick.org
1133.. MMiissee eenn ppllaaccee ddee pplluussiieeuurrss mmaacchhiinneess PPoossttggrreeSSQQLL aavveecc uunn sseeuull mmoonnii
tteeuurr
Vous pouvez empiler plusieurs cpu et les connecter à un unique
moniteur en utilisant un commutateur KVM (Keyboard, Video, Monitor)
pour choisir la connexion avec une unité centrale particulière. Ce qui
économise de l'espace et évite l'utilisation de plusieurs écrans,
claviers et mulots (économisant environ de 100 à 500 US dollars par
ensemble) et évite aussi pas mal de pagaille.
En utilisant ce commutateur, vous pouvez empiler plusieurs serveurs
PostgreSQL (développement, test, production), serveurs Web, serveurs
ftp, serveurs Intranet, serveur de Courrier, serveurs de Nouvelles,
sur une étagère. Le boîtier commutateur peut être également utilisé
pour contrôler des machines Windows 95/NT ou OS/2.
Veuillez consulter ces sites :
· DataComm Warehouse Inc.au 1-800-328-2261. Ils fournissent toutes
sortes de matériels informatique Un
commutateur manuel 4-ports KVM (PS/2) vaut environ $89.99.
Référence de l'article : DDS1354
· Network Technologies Inc
(120 dollars/PC 8
ports) qui propose des commutateurs de serveurs 'Server Switches'
et des commutateurs uniquement vidéo
· Scene Double Inc, England
· Cybex corporation
· Raritan Inc
· RealStar Solutions Inc
· Belkin Inc
· DataComm Warehouse Inc Appels 24 heures sur 24, 7 jours sur 7 au
1-800-328-2261 Ils fournissent toutes sortes de matériels
d'ordinateur
· Better Box Communications Ltd.
· Allez chez votre marchand de matériel le plus proche et demandez un
commutateur de serveur "Server Switch" également connu sous le nom
"KVM Auto Commutateurs".
Utilisez le moteur de recherche yahoo pour trouver d'autres compagnies
en utilisant la clé de recherche 'Server Switches' ou "KVM Switches".
Pour avoir de meilleures performances, on recommande instamment
d'avoir une machine unix pour chaque processus serveur PostgreSQL.
Aucun autre programme/traitement ne doit tourner sur cette machine.
Consultez la page Affaires de votre journal local pour trouver des
vendeurs de machines intel nues, avec un moniteur monochrome de 13"
(moniteur particulièrement économique). Les vendeurs locaux vendent
uniquement du matériel SSAANNSS un quelconque Microsoft Windows/DOS (ce
qui vous fait économiser environ $ 150). Vous n'avez pas besoin d'un
moniteur couleur pour un serveur de base de données puisque vous
pouvez en effectuer l'administration à distance à partir d'une station
de travail PC couleur. Procurez-vous le cdrom Linux à l'adresse ci-
dessous -
· Site Web Linux System Labs : 7 (U.S.
dollars)
· Site Web Cheap Bytes Inc : 7 (U.S.
dollars)
Assurez-vous que le matériel que vous achetez est supporté par le
Linux Redhat. Vérifiez sur le site ftp de Redhat le matériel
recommandé tels que les coupleurs SCSI, les cartes video avant
d'acheter. Pour seulement $ 600 vous obtiendrez une machine intel
puissante avec un Linux Redhat faisant tourner PostgreSQL.
Utilisez odbc/jdbc/perl/tcl pour vous connecter à PostgreSQL à
partir de Windows95, OS/2, Unix Motif ou de butineurs web (e.g.
Redbaron, Opera, Netscape, 20 autres). (Les butineurs web sont en
train de rapidement devenir le client standard).
En suivant ce conseil, vous pouvez contrôler de nombreux systèmes à
l'aide de seulement un clavier et un moniteur!
On trouvera ci-dessous un eexxttrraaiitt dduu ccaattaalloogguuee ddee nneettwwoorrkktteecchhnniicc IInncc
Commandez maintenant, appelez le 800-742-8324 (appel gratuit à partir
des USA)
Pour recevoir notre catalogue, veuillez envoyer votre adresse par
courrier électronique à : sales@networktechinc.com
PILOTEZ PLUSIEURS PC's avec un seul clavier, écran et mulot Ces
commutateurs électroniques permettent de piloter jusqu'à 64 PC's avec
un unique clavier, écran et mulot. Son microprocesseur interne simule
la présence constante du clavier, de l'écran et du mulot pour chacun
des PC's connectés.
Fonctionnalités et Applications
· Clavier, face avant ou commande à distance
· utilisation de connecteurs de mulots 9 broches D Série ou 6 broches
miniDIN
· utilisation de connecteurs de clavier 5 broches DIN ou 6 broches
miniDIN
· résolution vidéo 1600x1200 sans dégradation
· Utilisation de câbles standards
· Boîtier pour bureau ou pour montage en rack
Spécifications - Clavier
· Tous les connecteurs dont femelles
· 5 broches DIN ou 6 broches miniDIN
· Permettent un Re-démarrage (boot) matériel ou logiciel de tous les
PC's à chaque instant
Contrôles - Boutons en face avant
· Le toucher d'un bouton permet la connexion au PC correspondant
· L'appui sur un bouton pendant plus de 0.5 secondes entraîne le
fonctionnement dans les modes SCAN, BROADCAST ou COMMAND
· Les LEDs en face avant indiquent le mode d'opération du clavier
· L'appui sur CTRL+* entraîne le fonctionnement en mode COMMAND
· Les modes SCAN, BROADCAST ou COMMAND sont disponibles
Mulot
* 9 broches D série
· o Le commutateur NTI émule le mulot Microsoft série pour tous les
PC's
· o 9 broches D mâle pour mulot
· o 9 broches D femelle pour PC's
* 6 broches miniDIN
· o Le commutateur NTI émule le mulot IBM PS/2 pour tous les PC's
· o Tous les connecteurs sont femelles
Par câble, à distance
· Optionnel--doit être acquis séparément
· Fonctionnement identique à celui "Boutons en face avant"
Moniteur (écran) - VGA
· Bande passante 150 MHz
· Résolution 1600X1200 sans dégradation
· Tous les connecteurs sont des connecteurs femelles
1144.. OOuuttiillss eett AApppplliiccaattiioonnss ppoouurr PPoossttggrreeSSQQLL
1144..11.. LLee ssyyssttèèmmee ddee ddéévveellooppppeemmeenntt AAppppGGEENN PPoossttggrreeSSQQLL 44GGLL ppoouurr lleess
aapppplliiccaattiioonnss ddee bbaasseess ddee ddoonnnnééeess wweebb --
AppGEN peut être télé-chargé de
·
· .
AppGEN est un langage de haut niveau de la quatrième génération
ainsi qu'un générateur d'application pour produire des applications
destinées au World Wide Web (WWW). Ces applications sont
typiquement utilisées à travers l'internet ou dans le cadre d'un
réseau intranet d'entreprise. Les applications AppGEN sont
implantées en scripts C respectants la norme Common Gateway
Interface (CGI) utilisé par la plupart des serveurs Web.
Pour utiliser AppGEN il vous faudra disposer de :-
PostgresSQL, système de gestion de base de données relationnel
Un serveur web compatible CGI tel que HTTPD du NCSA
D'un compilateur ANSI C tel que GCC
AppGEN est constitué des exécutables Unix (Linux) suivants :-
· defgen, qui produit une application cadre, de base, à partir de la
structure logique des données. Ces applications sont capables
d'ajouter, de mettre à jour, de supprimer et de rechercher les
enregistrements d'une base de données tout en conservant
automatiquement l'intégrité référentielle de cette base.
· appgen, le compilateur AppGEN qui compile le code source appgen en
code source C CGI exécutable et en documents formatés HTML prêts
pour leur déploiement sur un serveur web.
· dbf2sql, un utilitaire de conversion de fichiers .dbf compatibles
dBase III en scripts SQL exécutables. Ce qui permet de migrer les
données stockées dans la plupart des bases de données DOS/Windows
vers un serveur SQL tel que PostgresSQL.
· De plus, AppGEN comprend un ensemble de documents HTML , de
fichiers GIF et d'applets Java qui sont utilisés, à l'exécution,
par le système. Et, naturellement, comme pour tout bon logiciel, la
totalité du code source est fournie.
L'auteur, Andrew Whaley, peut être contacté à
· andrew@arthur.smuht.nwest.nhs.uk
1144..22.. WWWWWW WWeebb iinntteerrffaaccee ppoouurr PPoossttggrreessSSQQLL -- DDBBEENNGGIINNEE
dbengine est une interface Web "plug 'n play" pour Postgres95 créée
par Ingo Ciechowski. Il est à :
·
AA pprrooppooss ddee DDBBEENNGGIINNEE :: dbengine est une interface entre le WWW et
Postgres95 qui permet un accès simple à n'importe quelle base de
données existante en seulement quelques minutes.
PHP 3 offre une sorte de langage Perl dans vos documents, mais pas le
vrai Perl alors que AppGen et wdb-p95 nécessite la création d'un
fichier de configuration pour chacune de vos bases de données -- c'est
un peu comme si vous deviez apprendre un nouveau méta-langage avant de
pouvoir commencer à travailler.
A la différence des autres outils, vous n'avez pas à apprendre un
langage de programmation particulier ou un langage de script pour
commencer à utiliser dbengine. De plus, il n'y a pas à créer de
fichier de configuration pour chaque base de données, et vous n'avez
donc pas besoin de vous familiariser avec sa structure. Cependant -
au cas où vous voudriez profiter de toutes les possibilités de
dbengine, ce serait une bonne idée de connaître le langage Perl.
Le système tout entier peut être configuré à l'aide de simples
manipulations d'une base de données complémentaire qui contient les
informations de détail sur la manière de visualiser vos accès à la
base de données. Vous pouvez même spécifier des Champs Virtuels qui
sont calculés en temps réel avant d'être affichés à l'écran.
LLiicceennccee ::
dbengine est un logiciel libre selon les mêmes conditions que Perl.
Lisez sa licence si vous n'êtes pas sûr de ce que vous pouvez ou ne
pouvez pas faire. La dernière ligne indique que c'est une version
plus gentille et plus modérée que celle de la licence GNU -- une de
celle qui n'affecte pas votre travail si vous extrayez des parties de
dbengine ou du paquetage pour l'inclure dans un produit commercial!
1155.. MMoodduullee AAppaacchhee WWeebbsseerrvveerr ppoouurr PPoossttggrreeSSQQLL -- NNeeooSSoofftt NNeeooWWeebbSSccrriipptt
Apache est un serveur Web bien connu. On trouvera un module
d'interface de PostgreSQL pour le serveur Web Apache à -
·
NeoWebScript est un langage de programmation qui permet d'inclure
des programmes simples ou compliqués dans des fichiers HTML.
Quand une page HTML contenant un script NeoWebScript est appelée, le
serveur Web ayant le NeoWebScript activé, exécute le(s) script(s)
inclus, produisant une page Web dont le contenu, personnalisé, a été
créé par le programme.
NeoWebScript est un moyen rapide, sûre, facile à apprendre de créer
des programmes interactifs puissants directement en code HTML dans des
pages Web. Avec NeoWebScript, les compteurs, les formulaires de
courrier électronique, murs à graffitis, livres d'or et suivi des
visiteurs sont aisés, même pour un programmeur débutant. Regardez
comment NeoWebScript se défend bien par rapport à PERL et JavaScript.
Au cas où vous souhaiteriez installer NeoWebScript sur votre serveur
web, votre webmestre doit lire notre "FAQ Sysop" pour se lancer. Le
document "Théorie de fonctionnement" explique comment NeoWebScript
fonctionne, celui d'Installation est un guide pas à pas des opérations
à effectuer. Le guide de Gestion traite de la manière de configurer et
de faire fonctionner le serveur, celui de Tests permet de vérifier le
fonctionnement correct de NeoWebScript, enfin, celui de Maintenance
traite des problèmes de serveur.
Il n'y a aucuns frais pour l'utilisation de NeoWebScript-2.2 que ce
soit pour votre ISP, votre intranet, ou votre extranet. Vous pourrez
voir un licence complète quand vous vous enregistrerez pour
télé-charger le logiciel, mais il en coûte $ 99 si vous désirez
l'inclure dans votre propre produit ou l'utiliser dans un serveur
commercial (eg. SSL).
NeoWebScript est un module pour le serveur web Apache qui vous permet
d'inclure , en tant que langage de script, pour vos pages web, le
langage de programmation Tcl/Tk . Il a été inventé par Karl
Lehenbauer, Directeur Technique chez NeoSoft, et documenté, renforcé
et étendu par les programmeurs de NeoSoft et par des rédacteurs
techniques.
Le serveur Apache est le serveur web le plus populaire au monde,
totalisant 68 % des sites interrogés.
Tcl/Tk est un langage de script puissant, libre et multi-plateformes
développé par le Dr. John Ousterhout. Selon ses propres termes :
"Tcl/Tk permet aux développeurs de logiciels de réaliser un travail
dix fois plus rapidement qu'avec des outils basés sur C ou C++. C'est
aussi un grand langage de synthèse permettant de faire travailler
ensemble des applications existantes en les rendant plus graphiques et
orientées Internet."
Karl Lehenbauer, Fondateur et Directeur Technique de NeoSoft, a
participé au développement de Tcl/Tk dès le tout début. Avec Mark
Diehkans, ils sont les auteurs de Tcl étendu (Extended Tcl), connu
également sous le nom de TclX ou NeoSoft Tcl, qui constitue un
ensemble puissant d'extensions au langage. Beaucoup des commandes
courantes essentielles de Tcl proviennent de Tcl étendu, et furent
introduites dans le langage par le Dr. Ousterhout.
NeoSoft Inc., 1770 St. James Place, Suite 500, Houston, TX 77056 USA
1155..11.. HHEEIITTMMLL,, eexxtteennssiioonn,, ccôôttéé sseerrvveeuurr ddee HHTTMMLL eett llaannggaaggee 44GGLL ppoouurr
PPoossttggrreeSSQQLL
Heitml est un autre outil d'interfaçage de postgres avec le monde du
world wide web. Pour plus de détails contacter
Helmut Emmelmann H.E.I. Informationssyteme GmbH
Wimpfenerstrasse 23 Tel. 49-621-795141
68259 Mannheim Germany Fax. 49-621-795161
· E-mail Mr.Helmut Emmelmann at emmel@h-e-i.de
· Heitml site web principal
· Heitml site web secondaire
Heitml est à la fois une extension, côté serveur, de HTML et un
langage de la quatrième génération (4GL). Avec lui, on peut écrire des
applications web dans un style HTML et en utilisant de nouvelles
balises de style HTML.
heitml (prononcé "H-ail"-TML) est une extension de HTML et un langage
de quatrième génération complet permettant aux Applications utilisant
le web d'interagir avec des données stockées dans des bases de données
SQL, sans mériter l'écriture de scripts CGI complexes.
heitml étend HTML côté serveur, convertissant de manière dynamique les
fichiers ".hei" au format HTML et ainsi, les rendant compatibles avec
n'importe quel butineur web. Il englobe la syntaxe simple et familière
de HTML et apporte un large assortiment de Balises et de Bibliothèques
pré-développées pour prendre en charge les tâches qui auparavant
nécessitaient CGI. De même que XML, heitml permet l'utilisation de
balises définies par l'utilisateur. Avec heitml les marqueurs définis
par l'utilisateur peuvent être traduits en HTML et envoyés à un
butineur.
heitml est destiné à la fois aux concepteurs HTML et aux programmeurs
professionnels. Les concepteurs HTML peuvent utiliser les Balises
heitml pour fabriquer des pages web dynamiques, des accès aux bases de
données SQL ou créer des applications web complètes. On peut créer des
Compteurs, des bases de données d'inscriptions, des formulaires de
recherche, des formulaires de courrier électronique ou des menus
hiérarchisés en utilisant simplement des Balises de style HTML
pré-développées que l'on trouve dans les nombreuses Bibliothèques de
Composants.
Pour les programmeurs, heitml inclut un langage de quatrième
génération complet en HTML
(e.g. , , et Balises),
plus un évaluateur d'expression puissant pour les types de données
entiers, réels, booléens chaîne de caractères et tuple. Les tuples ont
une référence sémantique comme dans les langages orientés objets mod
ernes et sont stockés sur un tas. Les variables heitml y compris
toutes les structures de données complexes stockées sur le tas conser
vent leur valeur de page en page par l'utilisation du Mode Session. Il
vous est possible de définir vos propres balises ou vos balises
d'environnement et même de redéfinir les balises HTML.
Avec heitml il devient possible de
- - - développer des Sites Web de manière structurée et modulaire,
tout en réduisant de façon drastique la surcharge due à la
maintenance.
- - - développer des Sites Web intelligents et interactifs, dont le
contenu s'adapte dynamiquement aux besoins de l'utilisateur.
- - - de visualiser le contenu de bases de données SQL sans autre
programmation que l'utilisation de notre bibliothèque de Balises
pré-définies "dba".
- - - de développer des applications de bases de données complexes et
de Catalogue d'Achat en utilisant les Variables Session
heitml tourne sous Linux avec n'importe quel Serveur Web utilisant
l'interface CGI, et il est particulièrement rapide (mis à part la
surcharge due à CGI) avec le Serveur Web APACHE (version 1.1.1, 1.1.3,
ou 1.2.4) en utilisant l'API apache. Actuellement MSQL (Version 1 et
2), PostgreSQL (Version 6), mysql, et les bases de données yard sont
supportés. heitml tourne sous Linux, BSDi, Solaris et SunOS, de même
que sous Windows NT avec CGI, ISAPI et ODBC et Windows 95.
heitml (sous linux) est libre pour la recherche, et pour une
utilisation privée et non commerciale. Les Sites Web commerciaux
doivent payer une licence. La version totalement opérationnelle de
heitml est disponible pour une période d'essai et peut être
télé-chargé librement. (Notez, cependant, que chaque page Web ".hei"
que vous développerez affichera un message indiquant qu'il s'agit
d'une version à usage non commerciale. Après enregistrement, vous
recevrez une clé pour effacer ce message sans avoir à réinstaller le
programme.)
Les nouvelles fonctionnalités de la version 1.2 sont
- - - Bibliothèque de Composants pour des Formulaires de Recherche
dans un Base de Données, menus hiérarchisés d'ouverture et de
fermeture, formulaires de courrier électronique
- - - Le Mode Session a été re-conçu et amélioré pour conserver toutes
les variables (y compris le tas tout entier) au travers des
différentes pages. Cela signifie que les données, de n'importe quelle
taille sont conservées à l'intérieur d'une session. Ceci offre
l'opportunité d'un champ plus large pour créer de nouvelles
applications, e.g. stockage complet des résultats d'une interrogation
dans la mémoire de la session.
- - - Les instructions d'installation, la documentation et les
bibliothèques d'exemples ont été augmentées de manière significative,
un cours d'auto-formation a été ajouté
- - - Des balises pour exécuter des commandes shell et pour envoyer
des courriers électronique ont été ajoutées
- - - Le support du formatage d'impression et de la mise au point.
heitml affiche votre code source en couleurs dans votre butineur et
signale les erreurs de façon intuitive. En cas d'erreur à l'exécution,
toutes les structures de données internes sont affichées dans le
butineur en indiquant et préservant leurs positions dans le code
source original.
- - - Diverses nouvelles variables serveur et fonctions intégrées ont
été ajoutées
- - - En mode production, heitml collecte maintenant des informations
complètes sur les erreurs survenues lors de l'accès, par des
utilisateurs, à votre site.
Voici ce que dit la page d'accueil de heitml -
heitml (prononcer "H-ail"-TML) étend et augmente de façon
significative les fonctionnalités de HTML grâce aux balises
définissables et aux possibilités complètes de programmation. Ce qui
permet de créer simplement des applications au contenu dynamique et
orientées bases de données dans le monde HTML, sans CGI et sans
scripts externes ou langages de programmation. Cela signifie que
vous, en tant qu'auteur HTML, vous pouvez inclure des applications
dans vos pages web, simplement, en utilisant quelques nouvelles
balises sans CGI et sans programmation. D'un autre côté, comme
utilisateur avancé ou comme programmeur vous pouvez créer et
programmer de puissantes bibliothèques de balises. Cette approche
rend heitml souhaitable à la fois pour les utilisateurs nouveaux de
HTML et pour les programmeurs professionnels. heitml tourne sur le
serveur web et génère dynamiquement du HTML, aussi heitml est
compatible avec les normes internet et avec n'importe quel butineur
web. Il permet un accès total aux bases de données tout en évitant à
l'utilisateur toute la complexité inutile de CGI. heitml a été
développé selon les plus récents critères en matière de construction
de compilateurs et de systèmes transactionnels.
Les pages heitml sont développées exactement de la même façon que les
pages HTML, à l'aide d'un éditeur de texte ou d'un éditeur HTML, et
placées comme d'habitude sur le serveur web. Cependant, maintenant,
les pages peuvent contenir des balises heitml dynamiques et des accès
à des bibliothèques de balises. Vous pouvez utiliser ces balises pour
accéder à une base de données, pour créer un contenu dynamique, pour
envoyer des courriers électronique, et même pour créer de puissantes
applications telles que les bases de données d'inscriptions ou de
systèmes d'achats.
Les nouveaux venus à HTML et les programmeurs professionnels seront
stupéfaits de la vitesse et de la facilités avec lesquelles il peuvent
concevoir des applications passionnantes telle que notre Livre d'Or
Interactif sans nécessiter la complexité et l'apprentissage difficiles
des scripts CGI, simplement en utilisant les outils fournis dans notre
bibliothèque dba.
heitml est accompagné d'un large éventail de bibliothèques de balises,
pour créer des livres d'or, des applications de maintenance de bases
de données, des formulaires puissants de courrier électronique ou de
structuration de votre site web à l'aide de menus hiérarchiques. Ces
outils sont prêts à être utilisés, il suffit simplement d'ajouter les
balises correspondantes à votre site web.
En tant que programmeur expérimenté, vous pouvez pleinement utiliser
l'architecture dynamique persistante de tuple d'heitml : heitml n'est
pas simplement un langage de script à typage dynamique, avec
évaluateur d'expression, procédures récursives et capacités de passage
de paramètres étendues, mais il apporte aussi des possibilités de
tuples persistants dynamiques pour conserver automatiquement des
données de session de n'importe quelle taille.
1155..22.. SSeerrvveeuurr WWeebb AAmmeerriiccaa OOnn--lliinnee AAOOLL ppoouurr PPoossttggrreeSSQQLL
Le serveur web commercial gratuit, AOLserver version 2.3 supporte des
connexions à la base de données PostgreSQL version 6.2.1 et
ultérieure. Pour des informations complémentaires consultez
· AOL Web Server
1155..33.. OOuuttiill SSyyssttèèmmee ddee ssuuiivvii ddee PPrroobbllèèmmee//PPrroojjeett ppoouurr PPoossttggrreeSSQQLL
Se trouve à l'url :
·
1155..44.. CCoonnvveerrssiioonn ddee ffiicchhiieerrss ddbbaassee ddbbff eenn ffiicchhiieerrss PPoossttggrreeSSQQLL
Le programme dbf2msql fonctionne parfaitement avec mSQL et PostgreSQL.
Vous pouvez le trouver à
·
·
Ce programme a été écrit par Maarten Boekhold, Faculty of Electrical
Engineering TU Delft, NL Computer Architecture and Digital Technique
section
· M.Boekhold@et.tudelft.nl
Vous pouvez également utiliser une méthode python pour lire des
fichiers dbf et les charger dans une base de données postgres.
· Voir
1166.. OOuuttiill ddee CCoonncceeppttiioonn//IImmpplléémmeennttaattiioonn ppoouurr SSGGBBDD WWeebb ppoouurr PPoossttggrreeSSQQLL
-- EEAARRPPWW
·
· in the directory 'pub/unix/earp'.
1166..11.. EEAARRPP,, cc''eesstt qquuooii ??
Le "Programme de Réponse Facilement Ajustable" ("Easily Adjustable
Response Program" - EARP) créé par David Dougherty. EARP est un outil
de Conception/Implémentation pour Base De Données Web, réalisé au-
dessus du système de gestion de base de données PostgresSQL. Ses
fonctionnalités comprennent:
· Un système de conception visuel.
· Une interface d'envoi de courrier électronique. (pouvant prendre en
charge le courrier entrant et sortant)
· Un Mécanisme de Sécurité amélioré.
· Un pilote cgi.
1166..22.. IImmppllaannttaattiioonn
L'implantation principale de EARP consiste en un binaire CGI qui
s'exécute sous le démon http pour fournir l'accès au serveur de base
de données. Tous les outils de conception sont intégrés dans le
pilote, aucune conception ne se fait sur le web. Les outils eux-mêmes
requièrent un navigateur graphique, la compatibilité des objets conçus
avec ces outils est indépendante de l'implantation, elle ne dépend
uniquement que des préférences de conception individuelles.
1166..33.. CCee ddoonntt vvoouuss aavveezz bbeessooiinn ppoouurr ffaaiirree ffoonnccttiioonnnneerr EEAARRPP
EARP est sensé fonctionner sur une grande variété de plates-formes
avec peu de modifications sinon pas du tout. Les plates-formes pour
lesquelles le fonctionnement est connu sont les suivantes :
· Solaris 2.5
· Linux 1.2.13+
· GNU C++
· PostgreSQL (Version 1.01 / 1.02 )
· netsite server
· NCSA httpd
· GNU C++
· PostgreSQL (Version 1.01 / 1.02 )
· NCSA httpd
· Apache httpd
La version actuelle (1.3) de Earp a été conçue au-dessus de la
version de libpq livrée avec PostgreSQL v1.01/1.02. Si vous
utilisez une version plus récente de Postgres, vous devez vous
attendre à ce que le programme nécessite quelques modifications
pour fonctionner correctement. Dans la version de développement
(Earp 2.0), la prise en charge de libpq est en cours de prise en
compte en tant que module.
1166..44.. CCoommmmeenntt ffoonnccttiioonnnnee--tt--iill??
Une des fonctionnalités principales de EARP est d'utiliser une
approche orientée objet pour produire des pages html qui s'interfacent
à la base de données. La plupart des pages sont constituées de
plusieurs objets. Chaque objet est produit par une sorte d'outil et
reçoit un nom, les objets sont alors liés ensembles et appelés en
séquence par l'outil de gestion de pages. Les objets sont également
réutilisables à l'intérieur de plusieurs pages. Il existe des outils
de base pour HTML, pour les Requêtes, pour la saisie dans des
formulaires, le formatage variable des requêtes et des objets en
entrée, ainsi que pour lier des objets pour en former de nouveaux. On
trouve également des outils plus avancés tels que l'outil de courrier
électronique et l'outil de création de requêtes en parallèle.
La gestion perfectionnée de la sécurité est une des autres
fonctionnalités de EARP. L'accès aux différentes zones du système
EARP peut être limité par une grande variété de moyens. Pour faciliter
cette sécurité perfectionnée, EARP effectue des contrôles à chaque
connexion au système, et détermine à quels "ids" et "groups"
appartient l'agent qui se connecte. Les accès aux zones sont définis
séparément, et la combinaison des deux permet de décider si l'accès à
une certaine zone de Earp est autorisé. De plus , tout ce qui est
requis pour réaliser les fonctionnalités de sécurité se trouve dans un
serveur http qui effectue une authentification de l'utilisateur
minimale (ou meilleure).
1166..55.. OOùù ppuuiiss--jjee llee ttrroouuvveerr??
EARP est disponible via un ftp anonyme à :
· in the directory 'pub/unix/earp'.
1177.. PPHHPP PPrréé--pprroocceesssseeuurr HHyyppeerrtteexxttee -- LLaannggaaggee ddee ssccrriipptt ccôôttéé sseerrvveeuurr,,
aavveecc HHTTMMLL iinnttééggrréé,, ppoouurr PPoossttggrreeSSQQLL
L'outil d'interfaçage WWW se trouve à :
·
·
PHP possède également un compilateur appelé Zend qui améliore
grandement les performances. En premier lieu, pendant le
développement, les tests et la mise au point, vous écrivez votre
application en utilisant le langage de script PHP. Une fois que le
projet est prêt à être déployé, vous utilisez le compilateur Zend
pour compiler le script PHP et créer un exécutable qui tournera
très rapidement.
PHP 3 est l'ancien nom des Pages d'accueil professionelles et le
nouveau nom est Pré-Processeur Hypertexte PHP
· Des sites miroirs existent dans de nombreux pays à l'adresse
www.COUNTRYCODE.php.org
·
·
·
Pour les questions envoyer un courrier électronique à :
· rasmus@lerdorf.on.ca
PHP 3 est un langage de script côté serveur, avec langage HTML
intégré. Il vous permet d'écrire des scripts simples directement
dans vos fichiers .HTML à la manière JavaScript, sauf que, à la
différence de JavaScript, PHP 3 n'est pas dépendant du butineur
utilisé. JavaScript est un langage, côté client, avec HTML intégré
alors que PHP 3 est un langage côté serveur. PHP 3 est similaire,
dans son concept, au produit LiveWire Pro pour Netscape. Si vous en
avez les moyens, vous utilisez le serveur du commerce Netscape et
l'un des systèmes d'exploitation supportés, et vous jetterez
probablement un oeil sur LiveWire Pro. Si vous préférez un logiciel
libre, évoluant rapidement, qui est disponible avec la totalité de
son code source, vous apprécierez probablement PHP 3.
1177..11.. FFoonnccttiioonnnnaalliittééss pprriinncciippaalleess
Support de CGI Standard, FastCGI et du module Apache. Comme programme
CGI standard, PHP 3 peut être installé sur n'importe quelle machine
Unix sur laquelle tourne n'importe quel serveur web Unix. Avec le
support de la nouvelle norme FastCGI, PHP 3 peut trouver avantage des
gains de vitesse apportés par ce mécanisme. Comme module Apache, PHP 3
devient une alternative extrêmement puissante et brillante à la
programmation CGI.
· Enregistrement des accès Avec les possibilités d'enregistrement des
accès de PHP 3, les utilisateurs peuvent entretenir leur propre
compteur d'accès et l'enregistrer. Il n'utilise en aucune façon les
fichiers de d'enregistrement des connexions du système central, et
il permet un suivi des accès en temps réel. Le Script du
Visualisateur de Connexions fournit un résumé rapide des accès à un
ensemble de pages possédées par un utilisateur individuel. De plus,
le paquetage peut être configuré pour générer un pied de page, sur
chaque page, qui montre l'information sur les accès. Regardez au
bas de cette page pour en avoir un exemple.
· Contrôle d'accès Un écran de configuration intégré, basé sur le
web, permet la configuration du contrôle des accès. Il est possible
de créer des règles d'accès pour toutes ou quelques unes des pages
web possédées par une certaine personne qui met diverses
restrictions sur qui peut voir ces pages et comment elles seront
vues. Les pages peuvent être protégées par un mot de passe,
complètement interdites, à connexion désactivée et l'accès basé sur
le domaine du client, le butineur, l'adresse de courrier
électronique ou même le document auquel on se réfère.
· Support de Postgres Postgres est un SGBDR (RDBMS) avancé libre. PHP
3 supporte les requêtes Postgres95 et PostgreSQL SQL incluses
directement dans les fichiers .html.
· RFC-1867 Support du télé-chargement de fichier Le télé-chargement
de fichier est une nouvelle fonctionnalité de Netscape 2.0. Il
permet aux utilisateurs de télé-charger des fichiers vers le
serveur web. PHP 3 réalise le décodage Mime réel pour faire ce
travail et fournit aussi le cadre additionnel pour faire quelque
chose d'utile avec le fichier télé-chargé une fois que celui-ci a
été reçu.
· Contrôle d'authentification basé sur HTTP PHP 3 peut être utilisé
pour créer des mécanismes d'authentification personnalisés basés
sur HTTP pour le serveur web Apache.
· Variables, Tableaux, Tableaux associatifs PHP 3 supporte des
variables typées, des tableaux et même des tableaux associatifs à
la Perl. Ils peuvent être passés d'une page web à l'autre en
utilisant les méthodes GET ou POST.
· Conditions, Boucles Tant que (While) PHP 3 possède un langage de
script aux fonctionnalités complètes de style C. Vous disposez des
instructions de tests conditionnels if/then/elseif/else/endif ainsi
que des boucles while et des instructions switch/case pour
contrôler l'ordre logique et la manière dont les pages html doivent
être affichées.
· Expressions Régulières étendues Les expressions régulières sont
très utilisées pour le filtrage, le remplacement de séquences et
les manipulations générales de chaînes de caractères. PHP 3
supporte toutes les opérations communes sur les expressions
régulières.
· Contrôle de l'En-tête HTTP brute La possibilité d'envoyer à partir
de pages web des en-têtes HTTP brutes personnalisées en fonction
d'une condition est essentielle pour créer un site web de haut
niveau. Un usage fréquent est l'envoi d'un emplacement: en-tête URL
pour Rediriger le client appelant vers une autre URL. Il peut
aussi être utilisé pour stopper le stockage ou manipuler la
dernière mise à jour de l'en-tête de pages.
· Création d'images KIF à la volée PHP 3 prend en compte la
bibliothèque d'image GD de Thomas Boutell ce qui offre la
possibilité de générer des images GIF à la volée.
· Prise en charge du mode sécurité ("Safe Mode") ISP PHP 3 prend en
charge un "Mode de Sécurité" exceptionnel qui permet d'avoir de
multiples utilisateurs exécutant des scripts PHP en toute sécurité
sur le même serveur.
· C'est Libre! Pour finir, et c'est un point essentiel. Le paquetage
est entièrement libre. Il est sous les conditions de la licence
GPL qui vous permet d'utiliser ce logiciel pour n'importe quel
objectif, commercial ou autre. Reportez-vous au document de la
Licence Publique GNU pour des renseignements détaillés.
1177..22.. CCrrééddiittss
* De grandes parties de ce code ont été développées à et pour
l'université de Toronto. De grands Mercis à Lee Oattes du Département
de Développement des Réseaux à l'université pour ses critiques
constructives permanentes.
* Le code de prise en charge de Postgres95 a été écrit par Adam
Sussman
· asussman@vidya.com
* d'autres, innombrables, ont participé aux tests et à la mise au
point du paquetage.
1177..33.. PPHHPP 33 -- BBrreeff HHiissttoorriiqquuee
PHP a commencé sa vie comme simple petite enveloppe cgi écrite en
Perl. Son utilisation en dehors d'un usage privé n'avait jamais été
envisagée. Le nom de ce premier paquetage était "Personal Home Page
Tools" (Outils pour Page d'Acceuil Personnelle"), qui devint plus tard
"Kit de Construction d'une Page d'Acceuil".
Un outil pour inclure facilement des requêtes SQL dans des pages web a
été écrit. C'était fondamentalement un autre petit programme enveloppe
CGI qui analysait les requêtes SQL et facilitait la création de
formulaires et de tables basés sur ces requêtes. Cet outil fut appelé
FI "Interpréteur de Formulaire" (Form Interpreter).
La version 2.0 PHP/FI est une réécriture complète de ces deux
paquetages combinés pour former un simple programme. il a maintenant
évolué au point de devenir un simple langage de programmation intégré
dans les fichiers HTML. L'acronyme original, PHP, lui est resté. Il
n'est plus réellement approprié. PHP/FI est aujourd'hui plus utilisé
pour mettre en place des sites web entiers que pour de petites pages
d'accueil personnelles. Quel que soit son nom, il élimine le besoin de
recourir à de nombreux petits programmes cgi Perl en permettant
d'insérer de simples scripts directement dans vos fichiers HTML. Ceci
améliore les performances globales de vos pages web puisque la
surcharge due au lancement de processus Perl successifs a été
éliminée. La gestion de larges sites web a également été facilitée en
plaçant tous les composants d'une page web dans un fichier html
unique. En incluant le support de différentes bases de données, il
devient trivial de développer des pages web mettant en oeuvre des
bases de données. Nombreux sont ceux qui trouvent que cette
intégration est plus facile à gérer que d'essayer de créer des
fichiers HTML et CGI séparés.
Tout au long de cette documentation, toute référence à PHP, FI ou
PHP/FI traite de la même chose. La différence entre PHP et FI est
seulement conceptuelle. Les deux sont construits à partir de la même
distribution du code source. Maintenant, PHP/FI a été renommé PHP 3.
1177..44.. BBoonn,, qquuee ppuuiiss--jjee ffaaiirree aavveecc PPHHPP//FFII??
La première chose que vous allez noter, si vous faites tourner une
page par l'intermédiaire de PHP/FI, c'est qu'il ajoute un pied de page
vous informant du nombre d'accès à votre page (si vous incluez le
support des connexions d'accès dans votre binaire). C'est seulement un
tout petit exemple de ce que PHP/FI peut faire pour vous. Il joue
également le rôle très important d'interpréteur de formulaire cgi,
d'où la partie FI de son nom. Par exemple si vous créez un formulaire
dans l'une de vos pages web, vous avez besoin de quelque chose pour
traiter l'information contenue dans ce formulaire. Même si vous
désirez simplement passer l'information à une autre page web, vous
aurez besoin d'un programme cgi pour le faire. PHP/FI facilite
grandement le processus de prise en charge des données du formulaire
pour en faire quelque chose.
1177..55.. UUnn ssiimmppllee eexxeemmppllee
Supposons que vous ayez le formulaire :