|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : mars 2003 Messages : 216 ![]() |
Bonjour,
Je suis en train de me poser la question sur le choix entre l’utilisation d’une base données ou de XML. Mon projet concerne la création de règles qui serviront dans la RH. Ces règles permettent de calculer les heures supp, les primes,… une règle est composée de condition, d’action. Une condition peut être simple ou complexe (groupement d’autres règles simple). La question que je me pose est il bénéfique d’utiliser XML dans le stockage de l’information ou une base de données relationnelle? La recherche d’information dans un fichier XML est assez lente comparée à une base de données relationnelle. Mais l’imbrication de la condition (condition complexe) n’avantage t-il pas le fichier XML ? Je sollicite votre expertise pour m’aider à faire le choix entre un fichier XML et une base de données. C’est surtout du coté de la performance qui est important. Actuellement, je combine les deux outils c'est-à-dire, j’utilise une base de données relationnelle où je stocke mes informations sur les variables, les actions,les conditions, les règles sous format XML. Je vous remercie à l’avance de votre aide |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Inscription : décembre 2004 Messages : 1 602 ![]() |
Je suis curieux de savoir quel schéma de BDD tu proposes pour stocker des règles. En fonction de ta réponse, on pourra sans doute te donner notre avis.
__________________
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. [SHADOKS] Retrouvez mes cours et tutos autour d'Android/Java/Eclipse sur http://olegoaer.developpez.com/
|
|
|
00
|
|
|
#3 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 12 080 ![]() |
Vous pouvez parfaitement définir une structure arborescente dans votre modèle de données afin de représenter une règle qui en englobe d'autres. Pour cela vous pouvez utiliser des requêtes récursives ou bien le mode intervallaire de représentation des arborescences.
Sur ces deux éléments, consultez les papiers que j'ai écrit : http://sqlpro.developpez.com/cours/s...te-recursives/ http://sqlpro.developpez.com/cours/arborescence/ A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Michel BosseauxDéveloppeur Web Inscription : mai 2009 Messages : 164 ![]() |
A priori, je dirais que XML est à réserver à un fichier d'exportation, pour passer des données d'un programme à un autre, ou bien à des données qui ne doivent pas être (souvent) modifiées. Dans les deux cas, il ne faut pas non plus que le volume de données dans le fichier soit trop important.
Et pour les données dont la représentation est plus simple en XML, la solution de mettre du XML en DB n'est pas mauvaise, mais là non plus il ne faut pas en abuser. Il sera toujours plus efficace (même si p-e moins simple à mettre en place) d'avoir les champs en DB plutôt qu'un XML à décoder. |
|
|
00
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2004 Messages : 4 538 ![]() |
Bonjour,
pour la sérialisation de données hiérarchiques, j'aurais tendance à favoriser XML. Il y a tout un ensemble de technologies conçues pour permettre de requêter (XPath, XQuery), transformer (XSLT), valider (W3C XML Schema, Relax NG), manipuler (DOM) des données dans ce format, de manière plus simple qu'avec une base de données relationnelle. Si les performances sont un problème, il existe des bases de données natives XML (eXist, XIndice) offrant des possibilités d'indexation et de cache. Mais ce n'est qu'une tendance, dans un projet complexe, comme cela semble être le cas ici, il y a bien d'autres paramètres à considérer. Si le but est d'externaliser hors de l'application les règles métiers et de créer un moteur de règles, il y a peut-être une autre possibilité, mais qui n'a plus grand chose à voir avec les bases de données ; ce serait de modéliser les régles dans un langage de script pouvant être interprété par l'application principale, à l'instar de ce qui existe pour Java 6 et Javascript (il y a d'autres langages de script disponibles).
__________________
FAQ XML ------------ « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser » Giacomo Leopardi |
|
|
00
|
|
|
#6 | ||
|
Membre du Club
![]() Inscription : mars 2003 Messages : 216 ![]() |
Une règle est composée d’une et une action et une et une condition
Règle(IDRègle, NomRegle, …, #IDAction,#IDCondition) Une action est composée d’une et une variable Action(IDAction,NomAction,…,#IDVariable) Variable Les données sur la variables peuvent être modifiées en table variable Citation:
Citation:
J’ai regardé un peu les solutions qui vous avez proposé et il parait que SQL server n’est pas très performant dans les requêtes imbriquées. La solution avec une définition des parents et fils dans les conditions peuvent être une solution efficace, qu'est ce que vous en pensez? Le projet de générateur de règle tourne sur SQL Server donc ça limite les possibilités. |
||
|
|
00
|
|
|
#7 | |
![]() ![]() |
Citation:
Soyons sérieux, et postez des sources si vous avancez ce genre d'argument, sinon à part mettre SQLPro en colère vous n'arriverez à rien ! A ma connaissance il n'y a aucun soucis avec SQL Server et les requêtes imbriquées, vous avez du confondre avec Access ou MySQL. Pas de soucis avec les hierarchies non plus.
__________________
Email : http://scr.im/waldar |
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() Inscription : mars 2003 Messages : 216 ![]() |
Je vous remercie pour vos reponses. En conclusion, il est tout a fait faisable de representer ce projet avec seulement l'aide d'une base données.
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com