windu.2b Posté(e) le 10 septembre 2007 Partager Posté(e) le 10 septembre 2007 Bonjour, toujours dans le cas de mon stage, j'ai besoin de récupérer des données brutes depuis une BDD puis d'effectuer des calculs dessus (somme, moyenne...) et de les re-stocker ensuite en BDD pour pouvoir les reprendre ultérieurement et ainsi éviter toute l'étape de calculs. Jusque là, tout va bien, mon problème se situant en fait dans la "conversion" des données (données brutes -> données calculées). J'ai pour cela 2 classes: ULBrute et ULCalculee dont les noms me semblent suffisamment explicites (ce qu'est une UL importe peu pour mon explication). Pour passer de l'un à l'autre, j'avais pensé recourir au Design Pattern Adapter, mais je ne suis absolument pas sûr de mon choix. Car ce que je cherche à faire, c'est bien évidemment garder une certaine indépendance entre ULBrute et ULCalculee. Idéalement, elles ne devraient même pas savoir que l'autre existe... L'Adapter serait donc entre les 2 et permettrait de passer des données brutes aux données calculées. En écrivant ce message, je viens de penser à un truc: est-ce que le pattern Decorator ne serait pas plus adapté? Les 2 classes implémenteraient la même interface, et la classe ULCalculee se reposerait soit sur les données de l'ULBrute pour faire les calculs soit sur les données (préalablement calculées) récupérées dans la BDD. Bref, comme vous pouvez le constater, je pédale un peu dans la semoule, pour le coup Lien vers le commentaire Partager sur d’autres sites More sharing options...
PiFou86 Posté(e) le 10 septembre 2007 Partager Posté(e) le 10 septembre 2007 je vais être un peu hors sujet... Mais si tu veux seulement faire du calcul dessus, tu as tout intérêt à faire tes calculs sur le SGBD, soit par requettes si elles ne sont pas compliquées soit par procédures stockées. Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 10 septembre 2007 Auteur Partager Posté(e) le 10 septembre 2007 je vais être un peu hors sujet... Mais si tu veux seulement faire du calcul dessus, tu as tout intérêt à faire tes calculs sur le SGBD, soit par requettes si elles ne sont pas compliquées soit par procédures stockées. En fait, ton message me montre que j'aurais du plus détailler ce point. Les données brutes sont stockées en BDD, car il s'agit de relevés faits sur le terrain. Je dois les extraire, les croiser afin d'en tirer des statistiques qui seront à la fois utilisées pour générer des graphes et pour être stockées à nouveau en BDD, dans le cas où on souhaiterait réimprimer les graphes (dans ce cas, on s'épargne le recalcul et surtout, on est sûr de réimprimer la même fiche, car les données brutes sont susceptibles d'évoluer (rajout de nouvelles données entre temps qui "fausseraient" le résultat). Tout ceci m'est imposé, et je ne peux pas me contenter de faire un SELECT suivi d'un INSERT, car il y a entre temps des calculs de moyenne sur les groupes d'UL à faire... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Azra3l Posté(e) le 10 septembre 2007 Partager Posté(e) le 10 septembre 2007 je vais être un peu hors sujet... Mais si tu veux seulement faire du calcul dessus, tu as tout intérêt à faire tes calculs sur le SGBD, soit par requettes si elles ne sont pas compliquées soit par procédures stockées. En fait, ton message me montre que j'aurais du plus détailler ce point. Les données brutes sont stockées en BDD, car il s'agit de relevés faits sur le terrain. Je dois les extraire, les croiser afin d'en tirer des statistiques qui seront à la fois utilisées pour générer des graphes et pour être stockées à nouveau en BDD, dans le cas où on souhaiterait réimprimer les graphes (dans ce cas, on s'épargne le recalcul et surtout, on est sûr de réimprimer la même fiche, car les données brutes sont susceptibles d'évoluer (rajout de nouvelles données entre temps qui "fausseraient" le résultat). Tout ceci m'est imposé, et je ne peux pas me contenter de faire un SELECT suivi d'un INSERT, car il y a entre temps des calculs de moyenne sur les groupes d'UL à faire... C'est bien ce que disait le post precedent... Etant dans les BDD toute la journee je peux juste te dire une chose: tout cela est faisable en SQL, et si tu es sur MS, dnas ce cas, il y a l'optimum: OLAP, si tes donnees origine changent, elles peuvent etre recalculees en consequence... en bref, ce qui correspond a tes besoin d'analyses et de stats etablies sur des donnees stockees sous forme relationnelle... Si besoin est, tu sais ou sonner... Bon courage. Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 10 septembre 2007 Auteur Partager Posté(e) le 10 septembre 2007 C'est bien ce que disait le post precedent... Etant dans les BDD toute la journee je peux juste te dire une chose: tout cela est faisable en SQL, et si tu es sur MS, dnas ce cas, il y a l'optimum: OLAP, si tes donnees origine changent, elles peuvent etre recalculees en consequence... en bref, ce qui correspond a tes besoin d'analyses et de stats etablies sur des donnees stockees sous forme relationnelle...Si besoin est, tu sais ou sonner... Bon courage. A la réflexion, ton idée commence à me plaire! 2 choses toutefois : La BDD utilisée est Oracle 10g Puis-je lancer l'ordre quand je veux ? Et non pas dès que des données entrent/changent ? Car les données calculées doivent être faites au moment où l'utilisateur le désire Lien vers le commentaire Partager sur d’autres sites More sharing options...
PiFou86 Posté(e) le 10 septembre 2007 Partager Posté(e) le 10 septembre 2007 si tu fais une procédure stockée (stored procedure -> recherche google), tu peux la lancer quand tu veux. (ce n'est pas un trigger) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.