|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
"Les bases de données, l'Amiga, etc." Le but de cet article, en quelques mots, sera de vous présenter brièvement un des systèmes de gestion de base de données parmi les plus classiques : mSQL. Nous en étudierons quelques-uns des concepts les plus simples. Ainsi, chacun pourra mesurer toute l'universalité de ce système. Il se trouve que ce système fonctionne sur mon Amiga. J'en déduis qu'il devrait fonctionner aussi sur le vôtre, pour peu que le prérequis soit respecté. Par contre, je suis obligé d'avouer qu'il faut savoir piloter un Amiga pour envisager cette installation. En effet, la mise en oeuvre de ce système requiert des connaissances assez poussées de l'Amiga :
Les Systèmes de Gestion de Base de Données 1.1 Architecture L'informatique sert à traiter des données, dit-on. En effet, et la formule la plus couramment adoptée est la base de données. Cette base pourrait parfaitement être un fichier de tableur, bien sûr, bien que si cette base était accédée par plusieurs personnes, il serait plus sage de l'écarter du contact direct des utilisateurs. Dans cette optique, un Serveur de Base de Données est une couche entre des bases et des clients, qui interrogent ces bases : base <----> serveur <----> client Il s'agit donc d'une architecture client/serveur, qui utilise TCP/IP pour transporter ses commandes. 1.2 SQL ou Structured Query Language Né aux environs de 1977, ce langage fut conçu pour interroger les bases de données et pour les piloter. Devenu une norme, il a été décliné sous de nombreuses versions on peut citer par exemple : mSQL, MySQL, PostGreSQL. Dans notre cas, nous nous intéresseront à mSQL 1.3 Fonctionnement Le serveur, tournant en tâche de fond, est interrogé par les clients qui s'y connectent. Le serveur nourrit la base et la maintient. Seul. Cela signifie qu'il n'est pas nécessaire pour les clients de savoir où ces fameuses bases se trouvent. De même, la structure physique des données sur le disque n'a aucune sorte d'importance. Il est administré par ceux qui peuvent exécuter les commandes msql, soit l'utilisateur nommé msql, soit le super-utilisateur : root. Ces commandes, externes au serveur, sont utilisées pour créer ou détruire des bases, voire pour importer des données... Pour le reste du monde, seule la commande msql est accessible, bien que par sécurité, il faille restreindre les accès, à l'aide par exemple, d'une table d'IP créée dans le fichier netdb de votre configuration TCP/IP à la rubrique ACCESS. Pour vraiment exploiter ce SGBD de façon académique, il faut interdire toute connexion externe (hors localhost), et travailler avec un serveur Web, qui interroge la base à l'aide de scripts, par exemple, écrits en php. Ce genre de configuration est possible avec un Amiga, bien entendu. 1.4 mSQL pour mini-SQL Ce système de Hugues Technologies, emprunte tout au SQL, bien qu'il soit moins étoffé. D'où son nom : Mini-SQL, il est multi plates-formes, et il existe un kit msql pour Amiga, dont l'auteur est Christophe Sollet ; il s'agit d'un portage très fidèle de la version Un*X, démontrant une fois de plus le sex-appeal de notre dream-machine favorite. 1.5 Mini, mini, c'est vite dit ! Mouillé, le bébé peut peser très lourd : le nombre d'enregistrements est énorme. La documentation déclare que le logiciel accepte dans le million d'enregistrements, paf. Si vous voulez faire une base de votre collection de CD c'est parfait. Les commandes Shell du paquet msql2 sont totalement identiques à celles de Linux, par exemple. Le portage Amiga est total, vous pouvez donc, grâce à ces commandes, piloter une base située sur une machine Linux ; ou utiliser Linux pour interroger un serveur Amiga. Yark. Un serveur Amiga. Après tout, ça chauffe pas, un Amiga, en plus, l'alimentation, elle fait à peine 25W, c'est écolo ! Au menu :
Avec du matériel d'occasion et le programme entièrement gratuit, il ne reste qu'Internet à payer... Vous remarquerez par exemple une version très ancienne d'AmiTCP, cette version de bêta-test gratuite est compatible avec les autres logiciels. Je suppose que Miami fonctionne avec aussi, mais je n'ai pas testé... Le E est optionnel, la programmation aussi, mais un Amiga aussi est optionnel, d'ailleurs, éteignez cet écran, levez-vous, marchez vers la fenêtre et volez ! Dans le même esprit, vous pouvez vous passer de la pile TCP/IP et de MultiUser. Le serveur pouvant sous certaines conditions tourner sans. Malgré tout, je vous le conseille fermement. Pour ma part voici mon équation Amiga : Matériel : A1200, Kickstart 3.1, 68060 à 50 MHz, 48 Mo de mémoire, disque dur 1 Go, SCSI (lecteur de CD, disque dur, SyQuest). Logiciels : Workbench 3.1, MuPFS2, Executive 2, AmiTCP V3. 2. Installation ! Considérons l'interface réseau par défaut, lo0, comme étant fonctionnelle, soit :
Considérons que MultiUser est actif :
Nous sommes root et possédons tous les droits. A supposer que les répertoires de MultiUser et ou de AmiTCP pointent vers les répertoires standard de l'Amiga soit S: pour les scripts et C: pour les commandes (la structure de votre système de fichiers n'en sera que simplifiée et les protections aussi). Attention, c'est très chaud (conseil MultiUser : utiliser MuMu1.0 est une bonne idée). On a donc :
Nous créons un nouvel utilisateur par addition d'une ligne au fichier des mots de passe, exemple :
Avec, par exemple, le fichier de groupe (multiuser.group) :
On a omis le dernier champ de S:passwd, "NewCLI" par exemple, pour ne pas laisser de "trou de sécurité". Parce que SQL n'est pas un utilisateur mais l'identité sous laquelle tourne cette base de données. Cette combine ne nous prive pas du droit de faire "su msql" et d'obtenir un Shell sous cet utilisateur, pour la maintenance, par exemple... On lui choisira un mot de passe, pour éviter les bavures, avec passwd msql. Après avoir décompressé les archives msql2-0.10... Le lha (si c'est une archive lha) par :
Le tar par :
Le tgz par :
La commande Tar est trouvée dans l'archive Geek-Gadgets par exemple. Que l'on utilise ou non des chemins Amiga (tronc:branche/feuille) ou UniX (/tronc/branche/feuille) importe peu, puisque ceci est paramétrable grâce à ixprefs, ce qui nous permet au passage de vérifier que la couche réseau est bien du type AmiTCP et que celle de sécurité est bien MultiUser. En fait, Assign: équivaut à /Assign/, c'est tout. Il n'y a pas de "/." chez Amiga. A supposer que l'installation de msql se trouve une fois décompressée dans sys:msql (on a utilisé pour cela le script Installer fourni avec). On doit d'abord attribuer une assignation à mslq :
De même, certains fichiers se doivent d'appartenir au serveur :
Bien que j'ai un doute sur msql2.sock, enfin si quelqu'un a une bonne idée, je lui suggère de me la confier. J'en ferais part aux autres ! :-) De même, voici le fichier de configuration msql.conf :
# Pour lancer le serveur :
Voilà, si quelque chose a raté, les messages d'erreur fournis par les différentes applications sont suffisamment clairs pour pouvoir analyser la situation et remédier au problème, malgré tout, utilisez SnoopDOS et lisez les fichiers .log, en dernier lieu, laissez un message sur mon adresse électronique. Pour vérifier que tout fonctionne :
Donc tous les cadrans au vert, on peut envisager la seconde partie de l'opération. J'aime quand un plan se déroule sans accroc. 3. Usage Les commandes msql : La base lancée, le serveur tourne en tâche de fond, seul moyen d'y accéder, les commandes livrées avec : msqladmin msql relshow msqlimport msqlexport Création d'une base : A cet effet nous utilisons
-q Quiet mode. No verification OF commands. Ce qui est lumineux, et appelle peu de commentaires. D'où :
Création d'une table : A présent, nous devons nous connecter, à l'aide du client msql.
Nous sommes à présent connecté à notre base vide. Créons une table, table qui sera la brique fondamentale de notre base, elle sera constituée par la liste de nos copains, avec leur adresse électronique. Soit un tableau de 3 colonnes : nom, prénom, courriel. Appelons ce tableau "carnet" et donnons une longueur quelconque aux chaînes :
Récapitulons : //g exécute la phrase sql, qui se lit dans le sens naturel du langage : "crée une table dont le nom est carnet dont les éléments sont successivement nom qui est du type chaîne de 15 caractères maximum de longueur puis prénom qui est du type..." Jusqu'à présent seule l'ossature de la base est créée. Or, il nous faut remplir ce récipient. Dès lors quittons le client pour donner à manger à notre base.
Production des données : Utilisons Ed pour cette tâche :
Notre saisie terminée, il suffit de l'importer dans la base :
Les requêtes d'interrogation : Notre base est nourrie, examinons-la avec le client msql :
Soit la phrase : "Sélectionne tout le contenu de la table carnet" :
De la même façon :
Cette requête est donc : "Sélectionne dans la table carnet le(s) nom(s) pour le(s)quel(s) la première lettre du prénom est 'o' " J'espère que maintenant vous commencez à entrevoir les possibilités offertes par cette philosophie ! Terminons cette introduction par un outil, relshow, qui permettra d'apprécier le trajet parcouru :
Allons, toutes les bonnes choses ayant une fin, nous voici à la fin de ce laborieux article. J'espère que personne n'est traumatisé, j'adorerais avoir des retours sur la formule employée d'alternance de lignes de commentaires parmi des lignes d'AmigaDOS. En attendant la suite, je vous conseille de bien réviser, parce que la fois prochaine, on programmera un peu, en E, en ARexx, en SQL donc, ou encore en AmigaGuide ou en Installer, parce que les langages de script ne manquent pas sur notre machine. En effet, pourquoi ne pas fournir une interface en AmigaGuide, qui lance des scripts ARexx générant des pages AmigaGuide dynamiques, en fonction des requêtes, voilà une solution système, pure ligne du Parti ! Jusqu'à cette occasion je vous dis :
Pour faire propre. :-) Après tout, en Linux je vous dirais : "shutdown -fr now", mais ce n'est pas Linux, car pour éteindre un Amiga, point n'est besoin de devoir gratter plus sur les disques durs, on se penche et on arrache la prise du mur. Il est temps d'aller manger un tube d'Aspirine ! Avec deux verres d'alcool à bruler.
|