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

Langage SQL Discussion :

"Doublons" bases de donneés


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Par défaut "Doublons" bases de donneés
    Salut à tous,

    Je suis novice dans la base de données. Je souhaiterais crée une base de données sachant que cette dernière est un petit peu particulière. En effet voici le modèle de la base de données :

    N°att Nom
    1 Champ1
    2 Champ2
    3 Champ3
    4 Champ4


    A partir de cette table, je souhaite créer une table de règles comportant des combinaisons de ou, et, et/ou :
    Ex:
    Regles:

    regle 1 : 1 et 2 et 3 et 4
    regle 2 : 1 et 2 ou 3 et 4
    regle 3 : 2 et 1 ou 4 et 3
    regle 4 : 4 et 1 et 3 et 2
    regle 5 : 1 et/ou 2 et 3 et 4

    En créant toutes les combinaisons de regles possibles, il s'avere que on se retrouve avec des regles identiques (exemple 1 : regle 1 = regle 4 | exemple 2 : regle 2 = regle 3 avec les numeros inversés), Je ne sais pas si le termes "doublons" est approprié à ce type de situation.
    Et donc j'aimerais eviter cette duplication de regles de cette table en question.
    Je precise une chose c'est que je suis a l'etat de reflection de ma base de données, je ne suis pas encore en train coder. Pour voir si c'est possible de le faire et eviter de me lancer dans l'inconnu.

    Merci d'avance.
    J'attends vos conseils.

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Par défaut
    Bonjour,

    Ce serait sous quel SGBD...?
    A quoi cela te servira ...?

    Normal que tu te retrouve avec des règles en doubles puisque tu exprime la même chose au travers de même valeur !

    Je vois pas trop l'intérêt ?

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  3. #3
    Membre averti
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Par défaut
    Bonjour Chtulus

    ben je pense que ca sera sous SQL
    Ces regles me serviront pour la creation d'un moteur d'inference ...
    Si tu ne vois pas l'interet peut etre que tu as une critique a emetre sur ma facon de faire donc j'aimerais que tu me dise si il y aurait une maniere de traduire peut etre que ta facon de faire est beaucoup mieux ...

  4. #4
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Salut !

    En gros, tu souhaites créer une contrainte lors des insertions/modifications de règles pour ne pas créer de doublons ?

    Dans ce cas, il faut que tu te trouves une "normalisation" de ces règles.
    D'une part, des règles pour générer soit une forme réduite, soit une forme développée (du moment que la forme est constante).
    Ensuite, une règle du genre les "éléments basiques" (genre 1, 2, 3...) "apparaîssent" toujours dans le même ordre dans la proposition.
    A ce moment là, tu moment que tu formattes ta règle en entrée sous la forme définie, il n'y aura plus de doublons "d'expression" (deux doublons logiques seront exprimés sous la même forme)

    Par contre, le problème, c'est que comme ta proposition est sous forme de chaîne, il va être difficile de mettre une contrainte de type "clef étrangère"...

  5. #5
    Membre averti
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Par défaut
    Citation Envoyé par pacmann Voir le message
    Salut !

    En gros, tu souhaites créer une contrainte lors des insertions/modifications de règles pour ne pas créer de doublons ?

    Dans ce cas, il faut que tu te trouves une "normalisation" de ces règles.
    D'une part, des règles pour générer soit une forme réduite, soit une forme développée (du moment que la forme est constante).
    Ensuite, une règle du genre les "éléments basiques" (genre 1, 2, 3...) "apparaîssent" toujours dans le même ordre dans la proposition.
    A ce moment là, tu moment que tu formattes ta règle en entrée sous la forme définie, il n'y aura plus de doublons "d'expression" (deux doublons logiques seront exprimés sous la même forme)

    Par contre, le problème, c'est que comme ta proposition est sous forme de chaîne, il va être difficile de mettre une contrainte de type "clef étrangère"...
    Salut Pacmann!
    Merci pour ton soutien ...

    Ben c'est exactement ca, créer une contrainte lors des insertions/modifications de règles pour ne pas créer de doublons ?
    La solution que tu proposes j'y ai pensé, mais est ce que le faite de mettre des connecteurs logiques entre les termes ( 1 et 2 ou 3 et 4 ) ne va pas fausser mon classement alphanumérique ...?? parce qu'il peut y avoir differentes regles avec les termes (1,2,3,4) mais avec des connecteurs logiques differents ...

    Par contre ton histoire de clefs etrangeres je ne l'ai pas compris tu peux m'expliquer stp (dsl d'etre debutant) ...
    Merci encore

  6. #6
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Non, ça ne pose pas de problème si tu arrives à déterminer une forme développée unique.
    1 ET 2 ET 3 ET 4 est différent de 1 OU 2 ET 3 ET 4...
    En gros, les différences de formes sur un même résultat logique ne doivent pouvoir provenir que d'opérations logique qui laissent l'expression invariante d'un point de vue logique :
    - Factorisation
    - Distribution
    - Commutations
    - Associations
    - Opérateurs dont une série de compositions valent l'identité (tout ça pour désigner le non logique )

    En identifiant toutes ces règles, tu pourras mettre tes prédicats sous un format commun...

    L'histoire des clefs étrangères :
    Tes numéros de règles font références à ta première table. A chaque fois qu'un tel lien existe entre tes données, on définit une clef étrangère afin d'assurer la cohérence des données.
    Par exemple, si une règle utilise l'Id 2, il doit être impossible dans l'autre table de supprimer l'id 2...

Discussions similaires

  1. [QtSql] Eviter doublons dans base de données
    Par joh_77 dans le forum PyQt
    Réponses: 3
    Dernier message: 27/03/2014, 15h10
  2. [MySQL] Problème des doubles quotes dans la base de données
    Par betadev dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 16/02/2012, 14h46
  3. Doublons en base de données
    Par _lolo_ dans le forum JPA
    Réponses: 2
    Dernier message: 16/07/2007, 10h10

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