Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Migration SGBD Discussion :

Migration Sybase vers SGBD Open Source


Sujet :

Migration SGBD

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    avril 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 22
    Points : 13
    Points
    13
    Par défaut Migration Sybase vers SGBD Open Source
    Bonjour tout le monde,

    Je suis actuellement en stage en entreprise et mon sujet est la migration d'une base de données Sybase vers un SGBD Open Source. Donc j'ai épluché les principaux SGBD Open Source à savoir MySQL, PostgreSQL, Ingres et Firebird. Le SGBD d'origine dispose de plus de 300 procédures stockées, des index, des triggers et j'en passe. Une procédure peut avoir jusqu'à 300 paramètres. DOnc je vous rassure ce n'est pas moi qui est fait ca mdr mais le problème et que maintenant je dois migrer cette base de donnée, vous comprenez donc mon désarroi. Il semblerait qu'aucun SGBD soit susceptible de supporter cette migration pour ces raisons la :

    PostgreSQL 8.3.7 :

    - Les fonctions stockées prennent au maximum 100 paramètres en entrée.
    - Pas d'instruction GOTO.
    - Pas de synonymes.
    - On ne peut pas assigner de valeur par défaut aux paramètres d'une fonction.

    MySQL 5.1 :

    - Pas de gestion des rôles.
    - Ne gère pas les curseurs dynamiques dans les procédures stockées.
    - Pas d'instruction GOTO.
    - Pas de synonymes.

    Ingres 9.2 :

    - Pas d'instruction GOTO et IF EXISTS.
    - Il n'est pas possible de déclarer des curseurs dans les procédures stockées.
    - Pas de TRUNCATE.
    - Pas de SQL dynamique possible dans les procédures stockées.

    Firebird 2.1 :

    - Création des utilisateurs non disponible en SQL seulement en ligne de commande.
    - Pas d'instruction GOTO et IF EXISTS.
    - Pas de synonymes.
    - Pas de type booléen.
    - Pas de FOR EACH ROW dans les triggers.
    - Pas de TRUNCATE.
    - Pas de curseur dynamique possible dans les procédures stockées.

    Comme vous pouvez le voir certaines fonctionnalités peuvent être esquiver facilement en utilisant des astuces cependant pour remplacer l'instruction GOTO par exemple ou encore permettre les curseurs dynamiques, c'est à se tirer une balle. Je me suis donc dis, je vais externalisé mes procédures en utilisant les UDF (User Defined Function) pour pouvoir bénéficier du GOTO présent en langage C mais le hic c'est que elles sont limités en paramètres d'entrée :

    10 pour Firebird
    2 pour Ingres
    100 pour PostgreSQL

    Il faut savoir qu'actuellement dans l'entreprise ou je suis la base de donnée Sybase est reproduite sous Oracle, DB2 et SQL Server comme par hasard les 4 serveurs qui possèdent l'instruction GOTO.

    Me voila donc complètement déprimer en train de me demander comment je vais faire. Si quelqu'un a un début d'idée, Merci d'avance.

  2. #2
    Modérateur

    Homme Profil pro
    Consultant Teradata
    Inscrit en
    septembre 2008
    Messages
    7 927
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Teradata

    Informations forums :
    Inscription : septembre 2008
    Messages : 7 927
    Points : 15 860
    Points
    15 860
    Par défaut
    En tout cas vous avez déjà trouver de solides arguments pour ne pas migrer.
    Si une telle migration dure deux ans et coûte cinq années de licence, il peut être plus sage de ne pas la faire.
    Incluez donc Sybase dans vos bases cibles.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    mars 2002
    Messages
    728
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2002
    Messages : 728
    Points : 757
    Points
    757
    Par défaut
    Firebird 2.1 :

    - Création des utilisateurs non disponible en SQL seulement en ligne de commande.
    tu peux aussi le faire par l'api mais en 2.5 ce sera disponible.
    De toute façon, le contournement de ce problème ne me parait pas insurmontable

    - Pas de type booléen.
    http://www.firebirdfaq.org/faq12/

    - Pas de FOR EACH ROW dans les triggers.
    c'est assez bizarre comme truc de modifier tous les enregistrements d'une table quand on en modifie un seul !
    Mais tu peux appeler une procédure que te fera le boulot.

    - Pas de TRUNCATE.
    - Pas de curseur dynamique possible dans les procédures stockées.
    un peu de lecture
    http://www.firebirdsql.org/manual/mi...ql-syntax.html

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    avril 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    Merci pour vos réponses,

    Cependant VLDG, j'avais bien préciser dans mon post que certains problèmes pouvait être résolu. J'avais donc déjà pris connaissance des alternatives que tu me propose et je te remercie de me les avoir proposé. Cependant le problème majeur qui est l'utilisation du GOTO est ma principale barrière car Firebird ne le possède pas non plus. Or pour contourner ce problème, je ne vois pas de solution. Donc si tu as une solution pour le GOTO aussi VLDG, ce serait sympa de me transmettre ta solution. Si tu peux j'aimerais aussi avoir ton avis sur la faisabilité de la migration sur les différents SGBD et si celle-ci est faisable le temps que cela prendrait. C'est ma première migration est je suis tous sauf un spécialiste des SGBD. J'essaye de faire mon possible avec les connaissances que j'ai acquise en licence. Merci à vous deux et bonne journée.

  5. #5
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    mai 2002
    Messages
    19 540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 19 540
    Points : 46 237
    Points
    46 237
    Par défaut
    Quel est le volume de votre base de données ? Peut elle est découpée en plusieurs ?? Si telle est le cas vous pouvez alors aussi y inclure MS SQL Server version Express (limitée à des bases de 4 Go, mais pas limité en nombre de bases, ce qui permet de les agréger...)

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

Discussions similaires

  1. Réponses: 194
    Dernier message: 21/08/2014, 00h23
  2. [Migration]Avis sur un SGBD Open Source
    Par O Oøps O dans le forum Débuter
    Réponses: 7
    Dernier message: 30/04/2009, 09h38
  3. [débutant] chercher SGBD Open source
    Par aymenznaidi dans le forum Débuter
    Réponses: 10
    Dernier message: 16/02/2006, 09h35
  4. Les SGBD OPEN sources sur le marché
    Par inseaiste dans le forum Décisions SGBD
    Réponses: 16
    Dernier message: 17/03/2005, 11h36
  5. Choix d'un sgbd open source pour de la production
    Par gueeyom dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 14/05/2004, 12h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo