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

Débats sur le développement - Le Best Of Discussion :

Est-il préférable que le métier soit coté Db ou language tiers ?


Sujet :

Débats sur le développement - Le Best Of

  1. #1
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 495
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 495
    Points : 6 067
    Points
    6 067
    Par défaut Est-il préférable que le métier soit coté Db ou language tiers ?
    Bonjour,

    Je voudrais savoir, quel est le critère pour vous pour décider si le métier sera coté base de données ou langage tiers (.net, java, ruby, php ,...)

    A titre personnel étant plus à l'aise coté base de données j'aurais dis Db. Néanmoins, je pense qu'il y a des critères à prendre en compte.

    Quels sont les critères pour vous ?

    Merci

  2. #2
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 841
    Points : 6 514
    Points
    6 514
    Par défaut
    Quelques réponses ici :
    http://www.developpez.net/forums/d12...ures-stockees/

    Personnellement j'évite toujours les procédures stockées. Dernier exemple en date : avec mon équipe on refait une appli métier qui utilise une base SQL Server et emploie abondamment des centaines de proc stock... On refait l'appli en PHP en utilisant la même base, mais on code toute la logique métier dans nos classes PHP sans jamais appeler une seule proc stock (et pour info on utilise l'ORM Doctrine 2).

    Je pense que la logique métier a sa place dans le code et pas ailleurs. C'est plus souple :
    • plus logique dans le cadre d'une approche objet : c'est l'objet qui possède ses méthodes et non la DB qui ne sert "que" de stockage.
    • plus facile à débugger (avec les outils du langage applicatif) et à maintenir (il "suffit" d'une personne connaissant le langage applicatif, pas besoin d'un DBA spécialisé sur le moteur de DB utilisé)
    • plus puissant (les langages de programmation des DB sont quand même plus limités que les langages classiques)

    La DB doit par contre toujours gérer l'intégrité référentielle directement

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    On peut être d'accord ou pas avec les réponses du lien!

    Dans une approche très bases de données avec beaucoup de code en base, on pourra espérer de meilleurs performances, mais il faudra bien documenter son code...

    Avec des soluces à la click/click/click/hibernate (avec des dévelopeurs qui ne comprennent pas l'architecture du SGBD employé), on pourra toujours blâmer le dba en cas de problèmes de perf...

    Bon ça va si tu géres la collection de vinyls de ta grand-mère ...

    Il y a aussi les solutions mixtes, avec beaucoup de logique dans l'appli (java) et des vues et procédures en BD pour améliorer les perfs.


    PS: je ne sais pas si ma réponse fait avancer le schmilblik, je pense qu'il faut tout d'abord bien comprendre l'architecture et considérer les besoins de performance et de "scalability" (j'ai pas le mot sur la langue, sorry)

  4. #4
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 495
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 495
    Points : 6 067
    Points
    6 067
    Par défaut
    Citation Envoyé par ovh Voir le message
    Quelques réponses ici :
    http://www.developpez.net/forums/d12...ures-stockees/

    Personnellement j'évite toujours les procédures stockées. Dernier exemple en date : avec mon équipe on refait une appli métier qui utilise une base SQL Server et emploie abondamment des centaines de proc stock... On refait l'appli en PHP en utilisant la même base, mais on code toute la logique métier dans nos classes PHP sans jamais appeler une seule proc stock (et pour info on utilise l'ORM Doctrine 2).

    Je pense que la logique métier a sa place dans le code et pas ailleurs. C'est plus souple :
    • plus logique dans le cadre d'une approche objet : c'est l'objet qui possède ses méthodes et non la DB qui ne sert "que" de stockage.
    • plus facile à débugger (avec les outils du langage applicatif) et à maintenir (il "suffit" d'une personne connaissant le langage applicatif, pas besoin d'un DBA spécialisé sur le moteur de DB utilisé)
    • plus puissant (les langages de programmation des DB sont quand même plus limités que les langages classiques)

    La DB doit par contre toujours gérer l'intégrité référentielle directement
    La question, c'est pourquoi avez-vous besoin de re-coder ? Les besoins ont changé ou c'est simplement pour changer.
    Maintenant, tu soulèves un os qui pour moi peut être flou pour beaucoup.
    La DB doit par contre toujours gérer l'intégrité référentielle directement
    Il est logique que cette partie là puisse être géré via des procédures. S'assurer que l'information enregistrée ou retournée puissent être correcte. Du coup, la frontière entre la validation des données et les opérations métier peut être floues ou dépassées.

  5. #5
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 841
    Points : 6 514
    Points
    6 514
    Par défaut
    Citation Envoyé par berceker united Voir le message
    La question, c'est pourquoi avez-vous besoin de re-coder ? Les besoins ont changé ou c'est simplement pour changer.
    Parce que le client l'a demandé
    En fait l'appli actuelle est un vieux brol écrit en PowerBuilder, pas ergonomique pour un sou, qu'ils utilisent tous en terminal server... Bref pas souple du tout, donc ils ont décidé de tout réécrire en mode web. (ce qui nous mène d'ailleurs à un autre débat récent http://www.developpez.net/forums/d10...tions-lourdes/ )

    Citation Envoyé par berceker united Voir le message
    Il est logique que cette partie là puisse être géré via des procédures. S'assurer que l'information enregistrée ou retournée puissent être correcte. Du coup, la frontière entre la validation des données et les opérations métier peut être floues ou dépassées.
    Quand je parlais d'intégrité référentielle, je parlais uniquement des contraintes, telles que les clés primaires et étrangères.

  6. #6
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 495
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 495
    Points : 6 067
    Points
    6 067
    Par défaut
    Citation Envoyé par ovh Voir le message
    Parce que le client l'a demandé
    En fait l'appli actuelle est un vieux brol écrit en PowerBuilder, pas ergonomique pour un sou, qu'ils utilisent tous en terminal server... Bref pas souple du tout, donc ils ont décidé de tout réécrire en mode web. (ce qui nous mène d'ailleurs à un autre débat récent http://www.developpez.net/forums/d10...tions-lourdes/ )


    Quand je parlais d'intégrité référentielle, je parlais uniquement des contraintes, telles que les clés primaires et étrangères.
    Le souci c'est que ça fait très chère le SQLServer juste pour lui demander de faire cela. A titre personnel, j'ai un peut de mal. Après est-ce pas lié au faite de là ou nous nous sentons plus à l'aise sgbd ou language. N'est-ce pas ça l'une de condition ?

  7. #7
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 841
    Points : 6 514
    Points
    6 514
    Par défaut
    Dans ce cas précis, le client utilise aussi d'autres fonctionalités de SQL Server telles que les backups et réplication, et surtout le reporting avec SSRS (que nous interfaçons grâce aux web services dans notre appli, comme j'ai montré dans mon article http://ovanhoof.developpez.com/utili...zend-framework). De plus SQL Server nous a été imposé, car il est utilisé par l'appli actuelle (qui fonctionnait initialement sur du sysbase, dont l'évolution naturelle est SQL Server); si on avait pu choisir, on aurait probablement mis du mysql ou du postgresql

  8. #8
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par ovh Voir le message
    si on avait pu choisir, on aurait probablement mis du mysql


    Pourquoi changer un SGDB extrémement riche fonctionnellement pour un extrémement pauvre ?

  9. #9
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 495
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 495
    Points : 6 067
    Points
    6 067
    Par défaut
    Citation Envoyé par Bluedeep Voir le message


    Pourquoi changer un SGDB extrémement riche fonctionnellement pour un extrémement pauvre ?
    Je suis d'accord sur ton interrogation mais peut être pour des questions de coût.

  10. #10
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par berceker united Voir le message
    Je suis d'accord sur ton interrogation mais peut être pour des questions de coût.
    Ben justement.
    Quand tu te penches sur le TCO de MySql quand tu veux lui faire faire la même chose que Sql Server ou Oracle, cela devient très vite "gratiné" ....

    Concernant la comparaison de TCO entre Sql Server et PostGre en revanche, je ne me prononcerais pas.

  11. #11
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Je me poserais les questions suivante

    • Que développes-tu?
    • Qu'est-ce qui est le plus important pour toi? L'application ou les données?
    • Quelles sont tes contraintes de performances et de disponibilité?
    • Quelle est ton architecture?
    • Quel est ton budget?

Discussions similaires

  1. [EDI] Quel est l'éditeur que vous recommandez pour PHP ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 400
    Dernier message: 10/04/2018, 20h08
  2. File.exists() est false, alors que je m'attends à ce qu'elle soit true
    Par domxaline dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 19/01/2014, 13h20
  3. Réponses: 15
    Dernier message: 15/12/2008, 17h29
  4. est ce normal que le module NET::FTP soit TRES lent ?
    Par ramislebob dans le forum Modules
    Réponses: 4
    Dernier message: 14/03/2006, 09h13
  5. DBExpress est plus lent que BDE?
    Par palassou dans le forum Bases de données
    Réponses: 4
    Dernier message: 02/07/2004, 08h39

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