Chapitre 11
Bilan du stage
11.1 Evaluation du travail réalisé
L'objectif principal : évaluer si une migration de
Sybase vers PostgreSQL était possible, a été atteint.
En revanche, la réponse qui y a été
apportée n'est pas exactement celle à laquelle on pouvait
s'attendre : la migration paraissait simple mais elle s'est
avérée beaucoup plus complexe que prévue.
11.2 Problèmes rencontrés
L'ensemble du stage s'est bien déroulé. Mais,
comme dans tout projet, nous avons dû faire face à des
problèmes : ceux-ci ont été principalement de nature
technique, mais également organisationnels et au niveau des
connaissances acquises.
11.2.1 Les problèmes techniques
Les fonctions Sybase inexistantes sous
PostgreSQL
Comme toutes les bases de données, Sybase et
PostgreSQL possédent des fonctions internes conçues afin de
faciliter le travail des développeurs. Néanmoins, leur nom et
parfois même leur utilisation différe d'un sytème à
l'autre.
Lors de la migration des vues et des procédures, il
arrive que ce type de fonctions necessite une intervention pour
déterminer la solution à adopter.
Lorsque des fonctions de Sybase n'existent pas sous
PostgreSQL, la solution la plus simple serait de créer des fonctions en
pl/sql portant le même nom que la fonction Sybase et donnant le
même résultat.
Mais cela crée une surcouche et a un impact
néfaste sur les performances (une fonction externe utiisant une ou
plusieurs fonctions internes sera touj ours moins rapide qu'une seule fonction
interne).
Lors de l'écriture du programme de migration, nous
avons donc utilisé autant que possible, des fonctions internes de
PostgreSQL, même si cela nécessitait parfois de remanier les
scripts SQL.
Cependant, dans quelques rares cas, aucune fonction existante ne
pouvant être utiisée, il a fallu en créer des nouvelles
(par exemple voir Source J.1, page 62).
Les differences d'encodage
Le passage successif par différents systèmes met
en lumière les différences de normes d'encodage et d'affichage
(UTF8, ASCII, Latin1,...):
- passage de Sybase à un fichier texte en utilisant un
logiciel tiers (soit bcp soit DbDk) sous Windows,
- transformation par un script Perl sous Linux,
- intégration à PostgreSQL,
- affichage sous les outils RedHat (qui préfère
utiliser l'UTF8).
Ceci nécessite de modifier l'encodage par défaut
ou de forcer celui qui sert à l'affichage, voire même de modifier
l'encodage d'un fichier dans un éditeur de texte (voir Annexe M, page
71) sous peine d'obtenir des retours à la ligne fantaisistes et de
perdre tous les caractères accentués qui se trouvent dans les
documents.
Les problèmes de casse
Windows et Sybase ne gèrent pas les différences
de casse ("E" sera considéré de la même façon que
"e") tandis que Linux et PostgreSQL font cette différenciation. Pour
éviter des problèmes d'appel (par exemple lors de l'utiisation
d'une table ou d'une procédure) il faut uniformiser les noms.
L'ancienneté de la base de données
Sybase
La création de base de donnée sous Sybase a
commencé en 1994. De nombreuses personnes avec des connaissances et des
techniques de programmation différentes ont donc participé
à sa gestion et à l'écriture de nouvelles fonctions. De
plus, les technologies ont évolué : augmentation des
capacités du moteur debase de données, évolution de la
syntaxe utilisée pour la création de vues et des
procédures. Lors de l'écriture des scripts Perl, il a donc fallu
tenir compte des différents types d'écriture afin que toutes les
possibilités soient traitées.
11.2.2 Les problèmes lies a
l'organisation
Peu de problèmes se sont posés en ce qui
concerne l'organisation propre mais les objectifs proposés au
départ ont dû être modifiés. La plannification a
été constament réévaluée afin de tenir
compte des problèmes rencontrés et de l'approche empirique.
11.2.3 Les problèmes lies au manque de
connaissance
Le manque d'informations disponibles, s'est
révélé être un problème important:
très peu de documentation est disponible au sujet de Sybase (et la
plupart de sont prévues pour des versions plus récentes de
Sybase).
Les informations concernant les migrations de base de
données (et tout particulièrement les migrations à partir
de Sybase ou de MS-SQL) sont rares et peu complètes: les seules
indications fournies n'apportent quasiment aucune aide.
|