1. Ressources

Le binaire de Sybase SQL Anywhere tel que nous allons l'installer nécessite un espace disque de 167 Mb. Sybase SQL Anywhere est un SGBDR extrêmement simple à administrer. De par son passé, il a été décliné sous de nombreux noms: Watcom SQL, SQL Anywhere, Sybase Anywhere, Adaptive Server Anywhere, Anywhere Studio. Son installation et son administration au niveau du système d'exploitation s'en retrouve grandement simplifié.

La suite Sybase SQL Anywhere comprend toute la gamme des modules. Cette base se situe dans le créneau des bases de données embarquées. Elle est ouverte à un grand nombre de systèmes d'exploitation (Dos, Windows, WinCE, Novell, Unix, PalmOS)

2. Installation du logiciel sur le disque

Une fois n'est pas coutume, nous partirons de la version d'évaluation téléchargeable. Il s'agit en fait d'un exécutable compressé autoextractible SQLAnywhere_1000_Windows.exe que nous exécutons ici.

L'installation se fait via InstallShield.

Image non disponible

L'installateur décompacte les fichiers nécessaires à l'installation

Image non disponible

Choisissons notre langue:

Image non disponible

L'entête de cette nouvelle version 10 apparaît furtivement:

Image non disponible

Puis l'écran d'accueil apparaît

Image non disponible

Cliquons ensuite sur Suivant afin d'accéder à la page des licenses.

Afin d'obtenir le bon texte de loi, choisissons notre langue nationale dans la liste déroulante.

Après lecture du texte, cliquons sur le bouton radio nous faisant accepter les termes de la license. Dans le cas contraire, l'installation s'arrêterait ici.

Image non disponible

A l'écran suivant, il nous faut saisir la clé fastidieuse se trouvant sur la boîte du CD. Cette clé, en plus de permettre l'autentification du produit, va déterminer quelles options vont être disponibles compte tenu de la license choisie.

Notons que si, comme moi, vous êtes en train de tester la version d'évaluation, cette clé vous a été fournie via email et le copier/coller passe à merveille dans ce masque multi-champs.

Image non disponible

Etrangement, nous retombons ici sur une page de licence à valider... en anglais. Ceci est spécifique à la version développeur que nous utilisons.

Image non disponible

Cliquons ensuite sur Suivant afin d'accéder à la page du choix des répertoires.

Image non disponible

Vient ensuite le chemin pour les bases d'exemple. Pour ma part je ne les installe pas, mais de toute manière, je préfère donner un chemin relatif au SGBDR plutôt que celui par défaut installant les bases sur mon profile personnel Windows.

Image non disponible

C'est ici que nous déterminons les variables SQLANY10 et SQLANYSH10, c'est-à-dire l'endroit physique où le logiciel sera installé.

Lorsque notre choix est fait, passons à l'écran suivant: le choix des parties du logiciel à installer. Notons que selon la clé entrée précédemment, les options affichées peuvent différer.

Pour commencer simplement, assurons-nous d'installer les options suivantes:

Image non disponible

Notons que j'ai sciemment annuler l'installation de tout ce qui est Ultra (pour embarqué) car ceci n'est pas le thème du jour. Ceci étant dit, cela à un impact sur la suite... nous devons donc répondre "Non" au message informationnel suivant

Image non disponible

L'écran suivant vous permet de choisir l'emplacement du menu de Windows dans lequel se situeront les raccourcis de SQL Anywhere

Image non disponible

Voici l'écran qui résume vos choix en affichant la liste de tous les modules qui seront installés.

Image non disponible

Ces dernières options validées par un suivant, l'installation des binaires commence et va prendre quelques minutes.

Image non disponible

Si vous avez un firewall actif (ici, celui de Windows XP SP2), il se peut qu'il vous demande autorisation pour deux programmes. Validez selon vos besoins.

Image non disponible
Image non disponible

Voilà. L'installation s'est bien passée. Il ne nous reste plus qu'à installer un serveur de bases de données.

Afin de valider les entrées dans la base de registre au niveau des services et des variables d'environements, il est maintenant nécessaire de redémarrer votre machine. Notons que tant que le redémarrage n'aura pas été accompli, il nous sera impossible de créer une nouvelle base SQL Anywhere.

Image non disponible

3. Création du serveur SQL

Pour l'instant, seuls les répertoires et binaires ont été créés. Aucun service n'est encore installé ou démarré. Tous les raccourcis existent cependant dans l'explorateur Windows

Image non disponible

Nous allons créer maintenant le serveur de données à proprement parler. Pour ce faire, nous allons utiliser Sybase Central, l'outil d'administration universel et convivial de la majeure partie des produits Sybase. Il se trouve dans le menu Démarrer->SQLAnywhere, ou dans le menu défini précédemment.

Image non disponible

Voici Sybase Central. L'interface a été totalement revue pour cette version 10. la partie de droite devient purement contextuelle... avec un peu d'habitude, c'est un véritable régal.

Image non disponible

Double-cliquons donc sur SQL Anywhere 10 pour faire fi de toutes les autres bases et nous concentrer sur la création d'une base. Au sommet à droite, il y a un bouton "Outil" dans lequel nous choisissons "Créer une base de données".

Image non disponible

Voici l'assistant, lui aussi totalement revu et réécrit depuis la 10. On peut dès à présent cocher l'option Ne plus afficher cette page car elle ne nous apporte pas de réelle valeur ajoutée une fois parcourrue. Validons ensuite pas Suivant

Image non disponible

Cet écran nous demande si l'installation est à faire sur la machine locale ou un serveur distant.

Image non disponible

Les 3 écrans suivants nous permettent de localiser 3 fichiers de notre base de données

  • Fichier de données: le fichier dans lequel seront stockées toutes nos données, à savoir toutes nos tables, vues, procédures stockées, déclencheurs, etc.
Image non disponible
  • Journal de transactions: le fichier stockant toutes les transactions (insert / update / delete) passées sur la base en question. Ce fichier est très utile en cas de récupération après un scratch ou lors de réplications (seules ces transactions sont réexécutées sur les bases à répliquer)
Image non disponible
  • Miroir du journal: pour des raisons de sécurité, il est possible de maintenir - de préférence sur un autre disque - une image du journal de transaction. De cette façon, lors d'un crash disque, on récupérera la base d'une dernière sauvegarde, et les dernières transactions jouées du journl de transaction ou de son mirroir.
Image non disponible

L'écran suivant nous permet de spécifier avec quel métamodèle on va vouloir travailler.

Image non disponible

Voici une des nouveautés de la version 10: la possibilité de crypter soit sa base, soient quelques tables.

Image non disponible

L'écran suivant nous permet de spécifier des options avancées de notre base de donnée. A noter les 2 boutons du fond permettant d'attribuer les options par défaut d'une base native SQL Anywhere ou d'une base Sybase ASE/MS-SQL dans le cas d'un portage probable ou d'une réplication.

Image non disponible

L'écran suivant nous pemet de déterminer la taille d'une page interne de SQL Anywhere. Plus la base est orientée décisionnel et gors volumes et plus on optera pour une grande taille de page, plus la base est petite est orientée OLTP et plus on optera pour une page plus petite.

Nouvelle option intéressante de la 10 permettant de faire la part des choses entre l'allocation dynamique est statique des fichiers : la possibilité d'allouer d'entrée de jeu une taille pour le fichier .db. L'utilisation de cettte option nous assure que la taille de la base même vide est réservée sur le disque. Elle améliore ausssi sensiblement les performances, l'allocation au niveau du système d'exploitation étant déjà faite à l'avance.

Image non disponible

Vient maintenant le choix du jeu de caractère qui va définir l'ordre de tri par défaut. A noter qu'SQL Anywhere nous permet de déterminer notre propre séquence-classement si le coeur nous en dit. Par défaut sous Windows, on a tendance à choisir Latin1 (correspondant au ANSI/ISO1). Le choix d'un ISOP15 (pour ajouter le symbole €) peut aussi paraître possible bien qu'il forcera la conversion sur le serveur.

Image non disponible

Nouvelle nouveauté de la 10, la gestion de la caste se fait sur un nouvel écran ou s'ouvre à l'UTF.

Image non disponible

Nous pouvons ensuite déterminer le mot de passe et le nom de l'administrateur de la base. Par défaut, toujours le fameux DBA/sql.

Image non disponible

Tous les paramètres ayant été saisis, le serveur va être créé. Nous devons lui donner un nom, généralement le même que la base de données. Ici je choisis volontairement 2 noms différents afin que l'on se représente plus précisément ce qu'est l'instance et ce qu'est la base.

Image non disponible

Dans le cas ou vous auriez oublié de redémarrer votre système après la phase d'installation des binaires, vous obtiendrez le message d'erreur suivant.

Image non disponible

Ne vous restera plus qu'à redémarrer votre Windows et a recommencer la procédure de création de base.

Sinon, une engine SQL Anywhere démarre et la base se créé

Image non disponible
Image non disponible
Image non disponible

A la fin de la génération, on se retrouve connecté à la base créée via Sybase Central

Image non disponible

On peut par cette interface graphique générer la plupart des objets qu'il nous faudra, mais le script SQL reste la façon la plus rapide pour créer une base complète. Relevons que dans le package Adaptive Server Anywhere Studio, une version allégée de PowerAMC est mise à disposition. Elle offre un environemnt de développement bien plus évolué en ce qui concerne la modélisation de la base.

4. Arrêt et redémarrage du serveur de données

La commande suivante démarre la base créée. Il est donc vivement conseillé de créer un racourci pour chaque instance:

 
Sélectionnez
"%SQLANY10%\win32\dbsrv10.exe" -c 8m -n dvp_instance C:\temp\dvp.db

Dans notre cas, puisque nous avions crypté la base, il ne faut pas omettre le -ep. Cette option nous invite à entrer la clé de cryptage.

 
Sélectionnez
"%SQLANY10%\win32\dbsrv10.exe" -c 8m -n dvp_instance C:\temp\dvp.db -ep
Image non disponible

Après quelques secondes, la fenêtre de l'instance s'icônise.

Image non disponible

Pour arrêter le serveur de données, la commande en ligne dbstop.exe existe, mais il est nettement plus simple de double-cliquer sur l'icône SQL située dans la barre de menu et de cliquer ensuite sur le bouton Arrêter

5. Ma première connexion

5-A. Connexion via Interactive SQL

Par le menu Démarrer de Windows vu précédemment, choisissons de démarrer SQL Anywhere -> SQL Anywhere 10 -> Interactive SQL

La connexion ODBC demande un utilisateur et un mot-de-passe. Par défaut, le login est DBA et son mot-de-passe SQL.

Image non disponible

Dans l'onglet suivant Base de données, on spécifie le nom de l'instance précisé plus haut. Notons que le serveur peut être "découvert" via le bouton Rechercher... La clé de cryptage, puisqu'elle est nécessaire au démarrage de la base, se spécifie au besoin ici aussi.

Image non disponible

Cliquons ensuite sur le bouton Ok pour nous connecter. Nous voici donc maintenant dans Interactive SQL.

  • Les commandes SQL se tapent dans la fenêtre Instructions SQL.
  • La touche F5 permet d'exécuter les instructions SQL.
  • La touche F7 permet d'afficher la liste des tables (puis des colonnes d'une table) de la base.
  • Le résultat de la requête apparaît dans la fenêtre inférieure Résultats.
Image non disponible

Les onglets inférieurs sont très utiles.

  • L'onglet Messages permet d'afficher les messages système du serveur, le temps d'exécution de la transaction, le nombre d'enregistrements impactés...
Image non disponible
  • L'onglet Plan permet d'afficher le plan d'exécution de l'optimiseur (choix des indexes, des jointures, des méthodes d'accès)
Image non disponible

5-B. Connexion via ligne de commande

Exemple sous Windows, dans une fenêtre de commande

 
Sélectionnez

Microsoft Windows XP [version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\>%SQLANY10%\win32>dbisql.exe -nogui -c "user=DBA;password=SQL" "SELECT table_name FROM SYSTABLE where table_name LIKE 'jdbc%'" -host localhost -port 2638
Temps d'exécution : 0,04 seconde(s)
table_name
---------------------
jdbc_columnprivileges
jdbc_function_escapes
jdbc_helpkeys
jdbc_indexhelp
jdbc_indexhelp2
jdbc_procedurecolumns
jdbc_tablehelp
jdbc_tableprivileges
jdbc_versions  (9 premières lignes)
 C:\>exit

Félicitons-nous. Nous en avons fini avec notre première installation de Sybase SQL Anywhere. Le plus dur reste à venir: modéliser et développer correctement les objets de notre base de données... mais ceci est une autre histoire.