IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Bases de données Delphi Discussion :

Choix de la base de données


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 17
    Points : 17
    Points
    17
    Par défaut Choix de la base de données
    Bonjour à tous,

    Je viens solliciter vos différente expériences et connaissances afin de pouvoir éclairer ma lanterne sur certains points.

    Le contexte

    J'ai développé il y a quelques années une application de gestion de restaurant sous D7 professionnel en utilisant une base de donnée MS access. Tout fonctionne relativement bien, pas de soucis majeur dans le fonctionnement au quotidien à part quand la base de données à un moment contient un nombre de lignes trop important sur une ou plusieurs tables (100.000 ou un peu plus), je suis obligé de la vider, la compacter et créer une sauvegarde de cette base de données dans un dossier séparer.

    Afin de pouvoir créer des postes distants, j'ai installer mon application sur une tablette avec une réplique de la base de donnée principale mai en liant les tables nécessaires à la prises de commandes essentiellement (c'est à dire TB_COM TB_COM_DETAIL, FACTURE ..) ce qui m'a permis de réduire de façon relative la lourdeur de l'application lors des requêtes. Vous conviendrez avec moi que cette solution est loin d'être optimale.

    OBJECTIFS

    Aujourd’hui je souhaiterai faire évoluer cette application en ayant notamment la possibilité de
    > choisir une base de donnée qui répondrai plus efficacement à mon besoin et me donnant la possibilité de pouvoir partager ma base de données en locale vers des postes client (windows) sans que cela ne pose de soucis de fluidité

    > aussi si je voulais créer un back-office admin accessible de façon distante via un navigateur, donc pouvoir accéder à cette base de données depuis l’extérieur.
    (existe t-til des composants sous D7 me le permettant ?)

    > à terme pouvoir créer des interfaces sur des plateformes android (delphi 10 starter) qui pourrait interagir avec ma base de données (en local exclusivement) en remplacement des tablettes windows.

    Quels sont selon les outils que je devrais utilisé pour pouvoir évoluer vers un tel résultat ?

    Je vous remercie d'avance pour toutes vos recommandations

    techno que j'utilise : HTML, CSS, JAVASCRIPT, JAVAEE, DELPHI

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    mon avis pour ce qu'il vaut : Access, on oublie surtout dans un environnement multi-utilisateur.
    Ensuite tout dépend de la technique que vous voulez utiliser à terme
    - si vous optez pour du multi-tiers en utilisant REST/JSON seul votre "serveur" est important donc n'importe quelle bonne SGBD (PostGres,Firebird pour les vrai gratuites), MySQL (faux gratuit), MariaDB ? et les poids plus lourds comme Interbase, MS SQL conviennent
    - si vous optez pour du client serveur (plus facile à développer) votre choix sera plus limité Interbase serait une solution possible puisque le déploiement du client pourrait se faire sur des mobiles,
    je tente de vérifier actuellement si Firebird ne pourrait pas lui aussi être utilisable mais pour l'instant c'est "niet"
    - une solution Intraweb (et ce c'est valable depuis D7) peut être envisagée dans ce cas même réponse que le multi-tiers

    après il s'agit d'une question de moyen
    delphi 10 starter
    non, déjà la version starter est "out of date", vous avez maintenant la version community mais ces versions ainsi que la version Pro ne permettent pas de se connecter à des bases distantes
    D7 ? si vous vous posez la question d'un composant de connexion vers des bases non prise en charge par D7, il existe ZEOSDBO
    Le multi-tiers, c'est le top mais n'oubliez pas que vous devez développer le programme serveur et le(s) programme(s) client(s)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 17
    Points : 17
    Points
    17
    Par défaut
    Bonjour SergioMaster

    Merci pour tous ces éclaircissements, du coup en supposant que je n'ai que la version community à ma portée, quelles sont les options qui s'offrent à moi ?

    > En utilisant une des base de données citées plus haut, m'est-il possible de procéder à un "partage" des ressources comme je l'aurais fait avec access via des postes client sans pour autant passer par du REST ? par exemple avoir 2 postes dans le restaurant accédant à la base de données en même temps.

    Merci bien

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par bogus01 Voir le message
    Merci pour tous ces éclaircissements, du coup en supposant que je n'ai que la version community à ma portée, quelles sont les options qui s'offrent à moi ?
    En utilisant une des base de données citées plus haut, m'est-il possible de procéder à un "partage" des ressources comme je l'aurais fait avec access via des postes client sans pour autant passer par du REST ? par exemple avoir 2 postes dans le restaurant accédant à la base de données en même temps.
    Avec les composants de base fournis, tant que vous resterez dans une optique client-serveur sur un réseau local : Oui
    Toujours dans une solution client-serveur et en restant dans le gratuit, vous serez un peu pénalisé par rapport à Firedac (les composants de liaisons au SGBD) mais ZEOSDBO est un bon remplaçant.
    Pour ce qui est des postes tant que vous resterez sur du windows (en grso si vos tablettes sont des tablettes windows) : pas de soucis, tout les SGBD sont possibles. Bon ma préférence irait sur Firebird (open source) mais c'est celui que je maitrise le mieux et des avancées sont en cours pour la partie Androïd.

    Ah, un petit point, qui dit client-serveur dit un poste (pas forcément windows) qui hébergera la base de données, et il devra bien sûr être allumé pour que les clients fonctionnent. Par contre on ne parle pas de "partage" comme on doit le faire je présume pour Access, les bibliothèques serveur et client communiquent sans besoin de partage. Contrairement à access, une gestion des utilisateurs permet des autorisations fines sur l'accés aux données (i.e. tel utilisateur peut lire mais ne peut modifier telle colonne de telle table)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    SQLite avec l'ORM client-serveur mORMot :-)
    http://blog.synopse.info/post/2014/0...and-PostgreSQL

  6. #6
    Membre éprouvé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 420
    Points : 1 102
    Points
    1 102
    Par défaut
    Bonjour,

    Citation Envoyé par GoustiFruit Voir le message
    SQLite avec l'ORM client-serveur mORMot :-)
    http://blog.synopse.info/post/2014/0...and-PostgreSQL
    SQLITE étant connoté monoposte il est incompatible avec le souhait exprimé :
    > choisir une base de donnée qui répondrai plus efficacement à mon besoin et me donnant la possibilité de pouvoir partager ma base de données en locale vers des postes client (windows) sans que cela ne pose de soucis de fluidité
    https://www.sqlite.org/whentouse.html

    sauf en cas d'architecture multi tiers avec assez peu de trafic.

    Cordialement

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 17
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Avec les composants de base fournis, tant que vous resterez dans une optique client-serveur sur un réseau local : Oui
    Toujours dans une solution client-serveur et en restant dans le gratuit, vous serez un peu pénalisé par rapport à Firedac (les composants de liaisons au SGBD) mais ZEOSDBO est un bon remplaçant.
    Bonjour à tous,

    Tout d'abord je tiens à m'excuser de ne as avoir rebondit depuis la dernière fois mais j'étais pris par autre chose

    est-il possible si par exemple j'ai 2 applications identiques, l'une sur le poste principal hébergeant la base de données (tout sauf access lol), et l'autre sur un réseau local pointant sur la base de donnée avec la propriété DATABASE : 128.178.0.1/mabase. Ce que j'aimerai comprendre c'est l’intérêt de passer par du client serveur (avec datasnap par exple) si cette configuration fonctionnerai et pourrai gérer mes multi-users en local(disons 3-4) ?

    - si j'avais accès aux composants Firedac, et que je souhait créer des appli pour mobile (vu qu'ils sont multiplateform) dont le TFDConnection.databasame pointerait lui aussi sur cette base cela marcherai aussi ?

    si cela est faisable alors quelles seraient les limites d'une telle solution ?

    Merci pour vos réponses

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par bogus01 Voir le message
    Est-il possible si par exemple j'ai 2 applications identiques, l'une sur le poste principal hébergeant la base de données (tout sauf access lol), et l'autre sur un réseau local pointant sur la base de donnée avec la propriété DATABASE : 128.178.0.1/mabase.
    c'est le principe du client/serveur et oui cela fonctionnera parfaitement multi-utilisateurs en local comme via internet (pour peu que vous ayez une adresse FAI fixe)

    Ce que j'aimerai comprendre c'est l’intérêt de passer par du client serveur (avec datasnap par exple)
    DataSnap ce n'est plus du client serveur mais du multi-tiers

    - si j'avais accès aux composants Firedac, et que je souhaites créer des appli pour mobile (vu qu'ils sont multiplateform) dont le TFDConnection.databasame pointerait lui aussi sur cette base cela marcherai aussi ?
    Toujours en client server, Oui dans les limites que je vous ai déjà indiquées c'est-à-dire le SGBD choisi (à noter qu'en utilisant un composant tiers ANYDAC, j'ai réussi à connecter mon mobile Android sur une base de données Firebird d'un poste en réseau local)
    si cela est faisable alors quelles seraient les limites d'une telle solution ?
    Limites ? En nombre de postes connectés ? Je dirais plusieurs dizaines dans la limite où le programme est bien écrit et tient bien compte du fait qu'il y a plusieurs utilisateurs connectés en même temps

    L'avantage du multi-tiers (DataSnap , techniques REST/JSON) c'est que toutes les transactions des postes "clients" passent par une sorte de centrale (le programme sur le poste serveur qui héberge la base de données) de ce fait il y a moins de possibilités de problème sur la base de données puisqu'elle n'a qu'un seul "interlocuteur". Le second avantage de REST est que des programmes en langages divers peuvent accéder aux données.
    Bien sûr la complexité de développement augmente
    D7+Access << Client-Serveur + SGBD < Multi-tiers + SGBD
    Si je retrouve, j'ai déjà vu un schéma expliquant les différences entre Client-Serveur et Multi-Tiers
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 17
    Points : 17
    Points
    17
    Par défaut
    SergioMastrer,

    Merci infiniment pour toutes ces explications, qui m'ont énormément guidé dans mes recherches. on ne le dit peu être pas assez souvent mais merci pour le temps que vous consacrez tous sur ces forums pour nous venir en aide.

    A ce stade je peux déclarer ce sujet comme 100% résolu, je finirai par une dernière question, je dirai plutôt avoir un avis :

    entre
    >>> la technique client serveur "classique" (ou je pointe sur les BDD distantes)
    et
    >>> datasnap + sgbd mais en mode "de base" (c'est à dire sans REST/JSON) juste à l'ancienne avec les clientdataset connecté à une source de données etc

    laquelle technique devrais-je implémenter ? sachant que j'aurai toujours au grand max 6 utilisateurs simultanés voulant se connecter à la base, (2-3 clients mobile + éventuellement 1 client desktop) mais aussi garder la possibilité de me connecter via internet pour consulter des données.

    Je vous remercie encore un fois pour votre participation.


    A bientôt.

  10. #10
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    À mon avis, partant de D7 et Access vous avez tout intérêt à rester sur du client serveur.
    DataSnap c'est déjà du multi-tiers (donc 2 programmes à minima), pour info et en "vulgarisant" REST/JSON ce n'est qu'un format plus standard de ce que datasnap (format "propriétaire") propose comme échange de données
    techno que j'utilise : HTML, CSS, Delphi
    En stade intermédiaire, il y a la possibilité Intraweb (existant déjà à l'époque de D7) ne nécessitant aucun déploiement sur les postes clients (seulement le besoin d'un explorateur internet)

    Enfin c'est une question de moyens en ce qui concerne le client/serveur
    1 - les versions CE et professionnelle sont limitées par rapport à une version Entreprise ou Architecte, je ne crois pas qu'il soit possible de se connecter à la base de données via internet dans le premier cas
    2 - Cibler les mobiles réduit le champ des possibles côté SGBD il faut installer une bibliothèque cliente compatible
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. choix d'une Base de donnée
    Par haganidjamel dans le forum Bases de données
    Réponses: 2
    Dernier message: 29/08/2005, 22h44
  2. choix d'une base de données simple
    Par semenzato dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 12/07/2005, 14h18
  3. choix d'une base de donnée
    Par frisouille dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 17/06/2005, 15h52
  4. Choix d'une base de données
    Par AlexB59 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 07/06/2005, 17h02
  5. Choix d'une base de données
    Par maurice66 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 15/07/2004, 10h14

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