Migration base de données - SQL/NoSQL - Programmation
Marsh Posté le 03-09-2007 à 11:48:19
J'ai l'impression que tu confonds un peu tout. (étudiant en début de seconde année ?)
La base de donnée s'occupe des données et elles sont accessibles quelque soit le langage utilisé. Le fait de changer de langage (pour passer à un langage .net par exemple) ne nécessite pas de changer de base de donnée.
En résumé, access peut très bien être utilisé avec un logiciel fait en ".net". Mysql, sql server, oracle ... le peuvent aussi mais t'as déjà access alors autant continuer avec celui là.
Au niveau des langages ".net", l'asp.net est fait pour les sites web. Si tu veux faire une application fenêtré alors il vaut mieux que tu te tournes vers un autre langage ("C#.net" ou "VB.net" par exemple)
Marsh Posté le 03-09-2007 à 12:01:21
omega2 a écrit : J'ai l'impression que tu confonds un peu tout. (étudiant en début de seconde année ?) |
Non j'ai finit mes études, mais on a vraiment survoler les bases de données (malheuresement).
On m'as demander (mon supérieur) de faire migrer la base de données car la base sous acess devient trop lourd.
Je pourrais donc faire migrer la base de données vers du mysql ou du sql server, et programme le frontal ( interface graphique )en vb.net?
Merci de ton aide
Marsh Posté le 03-09-2007 à 12:16:33
Normalement, tu peux faire migrer la base de donnée sans remplacer le programme par un nouveau. (j'ai déjà géré la migration d'access vers mysql pour plusieurs sites web et les changements nécessaire étaient mineurs)
T'auras surement des requêtes à modifier ainsi que certains paramètres et dans certains langages (php par exemple) t'auras des fonctions à remplacer par d'autres mais ça sera plus rapide que de tout refaire depuis zéro. Maintenant si tes supérieurs veulent en profiter pour faire des changements profond dans le programme ça peut valoir le coup de faire un nouveau logiciel et d'utiliser un langage plus adapté aux besoins.
Pour le programme qui te permettra de migrer automatiquement les données et la struture de ta base, je n'avais pas utilisé ceux que tu indiques, il va falloir que tu les essayes pour voir s'il n'y a pas d'effets secondaires indésirable.
Marsh Posté le 03-09-2007 à 14:38:27
omega2 a écrit : Normalement, tu peux faire migrer la base de donnée sans remplacer le programme par un nouveau. (j'ai déjà géré la migration d'access vers mysql pour plusieurs sites web et les changements nécessaire étaient mineurs) |
Oui mais le frontal, c'est un truc acess non?.
C'est la base de données de l'entreprise, elle n'est pas utilisé pour un site web mais pour la gestion des commandes, des pieces, des heures, etc...
Marsh Posté le 03-09-2007 à 14:51:07
Ca dépend 100% de votre base actuelle et du frontal effectivement.
S'il s'agit d'une application "tierce" écrite en VB par exemple, il suffit de migrer les données depuis la base Access vers un serveur de SGBD plus puissant (franchement, entre MySQL et SQL Server 2005 Express, moi je me pose pas de question, oublie MySQL).
Si "l'application", c'est des formulaires Access, effectivement là ça devient très chiant, et il faut pour ainsi dire TOUT réécrire.
C'est l'occasion de remettre à plat l'ensemble de l'application, et décider de faire des évolutions substancielles (quand il s'agit de tout réécrire, autant repartir sur un bon pied et faire sauter les limitations de la version d'origine).
A nouveau, je te conseille SQL Server 2005 Express pour le moteur de base de données, pour une série de raisons que je ne vais pas m'amuser à détailler (on va dire simplement que si actuellement vous avez du Access, c'est que vous avez des PC sous Windows, et donc aucune raison de bouder le SGBD de Microsoft).
Ensuite, niveau technologie, "on t'as demandé de faire du .NET". Super. Tu dois déjà choisir le langage .NET que tu utiliseras : VB.NET, C# ou J# ? (ou autrechose). Je préconnise C#.
Ensuite, client lourd ? Site web ? Application client/server ? A nouveau, c'est un choix à étudier. A noter que pour ce qui est de site web vs client lourd pour ce qui est de la possibilité d'accéder à la base depuis l'extérieur est un faux débat : les web services sont tes amis, et pour les utiliser massivement chez plusieurs clients, je peux dire que ça tiens très bien la route et permet de faire une abstraction totale de la connection à internet.
Bref, la question reste tout de même ouverte. A noter qu'un site web, c'est pas seulement un frontal pour des clients. Ici, je suis dans une centrale d'achats d'une chaîne de magasins, et notamment j'ai écrit plusieurs applications web, permettant aux magasins de préparer leurs commandes d'achats auprès de fournisseurs référencés, ou simplement consulter en temps réel les stocks de la centrale. L'intérêt d'un site web par rapport à une application lourde, c'est que pour un déploiement sur des sites distants, t'as pas besoin de faire une installation compliquée : un navigateur web et roule ma poule.
Pour ce qui est de ma recommandation de SQL Server 2005, tout de même un truc : écrire du .NET implique l'utilisation de Visual Studio 2005. Et VS2005 dispose de tout ce qu'il faut pour modéliser/administrer une base SQL Server 2005 en ce qui concerne le développement. C'est quand même bien pratique au sein d'une même GUI de modéliser sa base, écrire et tester ses requêtes, puis les utiliser dans le programme. Avec MySQL par exemple, rien que pour trouver u outils d'administration digne de ce nom, c'est tout de suite la galère. Mais bon, concrètement ça change pas grand chose pour l'application finale.
Marsh Posté le 03-09-2007 à 14:54:35
S'ils n'ont utilisé qu'access pour faire les interfaces de saisie alors là oui tu seras obligé de tout refaire. D'ailleurs, vu les inconvénients, je n'ai jamais compris pourquoi tant de gens utilisent access de cette manière là pour des applis professionnelles.
S'ils ont fait un logiciel en dehors d'access pour gérer les saisies et afficher les données demandé, alors tu pourras réutiliser ce qui est déjà fait.
PS : S'ils ont tout fait dans access, alors vérifie bien l'architecture de la base access par ce qu'il risque d'y avoir des absurdités du genre "je rajoute un code dans la case de l'adresse mail pour dire qu'elle n'est plus bonne" (ça, c'est un cas pas trop grave mais j'ai déjà vu bien pire). En plus de ça, c'est le genre d'absurdité qu'on ne voit pas dans la structure de la base mais dans les données elles même ou en posant des questions à ceux qui utilisent le logiciel (c'est l'abscence de colonne prévus pour cette info qui peut mettre la puce à l'oreille).
S'ils t'en laissent la possibilité, et qu'il y a des problèmes dans leur base, alors ça pourrait être une bonne idée de leur proposer quelques petites améliorations (du genre proposer une case à cocher pour dire que l'adresse mail n'est plus valide et évidement rajouter une colonne dans la base dans laquelle tu gardes cette info)
EDIT : Grillé par MagicBuzz qui est beaucoup plus clair que moi dans ses explications.
Marsh Posté le 03-09-2007 à 15:16:00
Merci beaucoup pour tes ces explications, c'est vrai que je débarque dans cette entreprise avec de l'existant et que c'est pas facile de si plonger dedans.
J'avais penser à vb.net car je vais devoir me mettre au vb pour de la supervision, donc je me suis que je pourrais "groupé" les 2 plutot que de bosser sur deux languages différents. (En plus j'aurai probablement une formation sur le vb)
Pour le frontal, c'est un fichier .mde, autant dire que suis quasi sur de refaire toute l'interface.
Pour ce qui est de sql server 2005 express, c'est donc une version gratuite, mais qu'elles sont les limitations?
L'entreprise compte une quinzaine de poste, et ces postes ont besoin de temps en temps d'y acceder (à la bdd).
Pensez vous que la version express conviendrait?
Marsh Posté le 03-09-2007 à 16:29:01
entre VB6 et VB.NET c'est un peu la même différence qu'entre QBASIC et VB6 (sans aucune éxagération de ma part).
Je pense donc qu'il vaut mieux passer à C# directement, et apprendre VB6 séparément. L'intérêt, c'est que ça t'éviteras pas mal de confusions.
Deplus, si ensuite l'équipe qui bosse en VB6 passe à VB.NET pour d'obscures raisons, la lecture d'un code *.NET reste aussi limpide quelle que soit le langage utilisé : c'est les mêmes noms d'objets, méthodes, etc. Y'a que la syntaxe qui change de façon pour ou moins substancielle, ainsi que quelques "trucs" spécifiques au langages.
Marsh Posté le 03-09-2007 à 16:38:38
SOF40 a écrit : |
- Effectivement, si c'est un MDE, c'est de l'Access. Par contre, "bonne nouvelle" : tu devrais pouvoir faire la migration en deux temps : en effet Access permet sans trop de problèmes de se connecter à une source de données. Tu pourras donc remplacer les tables dans Access par des liens vers SQL Server, et ce, de façon assez transparente. Ainsi, sans devoir tout réécrire, tu pourras faire une partie de la migration : Access ne servira plus que de GUI. Ceci dit, ça ne doit rester qu'une étape dans la migration. Il vaut mieux une application complètement séparée des données, et pas de l'Access. Rien que pour des problèmes de coûts de déploiement... A 1000 € la licence d'Office Pro, ça fait un peu cher.
- SQL Server 2005 Express est effectivement la version gratuite. Les limitations sont relativement limitées. C'est à dire que... En fait, tant que t'as pas un gros mainframe et de gros besoins, tu ne les sentiras pas. Les limitations s'appliquent à des fonctionalités très avancées, à la prise en charge de gros serveurs, ou le clustering, etc. Pour une utilisation "en remplacement d'Access", je ne vois absolument aucune contre-indication possible. La seule "vraie" limitation se trouve au niveau du nombre de CPU exploitables par le serveur : SQL Express est limité à 1 CPU. Donc si vous avez avec serveur à base de Core 2 Duo, bah il sera intéressant de mettre une autre appli sur le serveur, sinon y'a un des deux cores qui va vraiment se faire chier Idem, il ne sait pas utiliser plus de 1 Go de mémoire. Mais ça représente déjà une jolie base de données pour avoir un besoin pareil. Ces deux limitation en font une version particulièrement bien adaptée aux serveurs Web, puisqu'on a la garantie que le moteur SQL ne va pas empiéter sur les ressources requises pour le site web.
Marsh Posté le 06-09-2007 à 13:17:29
MagicBuzz a écrit : (franchement, entre MySQL et SQL Server 2005 Express, moi je me pose pas de question, oublie MySQL). |
Juste pour savoir, tu pourrais m'envoyer un MP pour m'indiquer de la documentation sur les avantages de sql server? J'avoue ne pas très bien connaitre cette base là.
Marsh Posté le 06-09-2007 à 13:40:13
sans passer par un mp, je ne parlerai que de l'intégration au système et de la distribution de la base avec ton logiciel.
sql server, t'installe, ça marche avec n'importe quel langage.
mysql t'installe, tu t'emmerdes à trouver un drivers pour OLEDB ou .NET qui soit pas trop pourri, et t'as la moitié des types de données qui posent problème.
ensuite, niveau fonctionnalités avancées, sql server écrase complètement mysql, y compris les dernières versions, mais bon, après faut en avoir l'utilité.
Marsh Posté le 03-09-2007 à 11:00:58
Bonjour,
dans le cadre de mon travail, je dois effectuer la migration d'une base de donnés access vers la technologie ".net"
donc si j'ai bien compris je dois migrer la base de données d'acess vers un format mysql par exemple, et aprés recréer le frontal avec une technologie de type .net.
Je dois aussi me mettre au visual basic, je voulais savoir si je pouvais donc creer le frontal avec visual basic.net ou asp.net ou autre.net?
Pour convertir la base de données, je pense utilisaier ce logiciel http://www.bullzip.com/products/a2m/info.php ou
Access-MySql-converter http://francias.softpicks.net/soft [...] -26760.htm
Merci d'avance