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 :

SGBDR : Algèbre relationnelle ( Exercice )


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 14
    Points : 16
    Points
    16
    Par défaut SGBDR : Algèbre relationnelle ( Exercice )
    Bonjour!

    Je croyais que je comprenais déja bien l'algèbre relationnelle mais arrivant à cette question je reconnais que ce n'est pas le cas

    Soient deux relations : F(A,B) et N(A,B)

    ( avec A est la clé des deux relations )

    Soiet T = F U N ( F union N ) , et R = F intersection N .

    Quelle est la clé de T et la clé de R? Justifiez.


    Mon intuition me dit que pour l'union la clé est A,B et pour l'intersection c'est A , mais pour la justification ( si mon intuition a raison ) j'y arrive pas .... est-ce ça doit etre par des exemple en tableau des enregistrements?

    J'en serai tellement reconnaissante pour votre aide!

  2. #2
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 107
    Points
    1 107
    Par défaut
    Bonjour,

    Pour répondre à cette question il ne suffit pas de se baser sur l'intuition.

    Les opérateurs d'intersection et d'union ont pour opérandes des relations de même type, des relations ayant le même en-tête. Le résultat de ces deux opérateur est une relation ayant le même en-tête que les opérandes.

    Donc, par exemple, si l'opérateur AS sert à nommer une relation.

    Cette opération donnera une relation U composée des attributs {A, B}.

    De même pour :
    La relation I aura l'en-tête {A, B}.

    Pour ces opérations, la relation en "sortie" a le même en-tête, le même sens que les relation en "entrée".
    Donc la dépendance fonctionnelle qui a permis d'affirmer que l'attribut A est la clé de F et N est toujours présente et vaut aussi pour les relations U et I.

    Je dirais que dans les 2 cas, il n'y a qu'une clé, c'est A.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 14
    Points : 16
    Points
    16
    Par défaut
    Bonjour!
    Pour l'union j'ai essayé d'apporter un contre-exemple. (voir l'image et remarquer les enregistrements devant lesquels j'ai mis un point rouge )

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 812
    Points : 52 868
    Points
    52 868
    Billets dans le blog
    5
    Par défaut
    Cette UNION n'apportera qu'un seul tuple : 1, DUPONT. La clef est bien conservée !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 107
    Points
    1 107
    Par défaut
    Bonjour,

    Alors effectivement j'ai répondu beaucoup trop vite et me suis trompé.

    Donc je rappelle ici la définition du concept de clé:
    Une clé est un sous-ensemble d'attributs K de l'en-tête d'une relvar (relation) R, respectant les deux contraintes suivantes:
    • Unicité. Deux tuples distincts ne peuvent avoir une même de K
    • Irréductibilité. Il n'existe pas de sous-ensemble strict de K garantissant la règle d'unicité.

    Citation Envoyé par looking_4truth Voir le message
    Bonjour!
    Pour l'union j'ai essayé d'apporter un contre-exemple. (voir l'image et remarquer les enregistrements devant lesquels j'ai mis un point rouge )
    Dans le résultat de l'UNION, on aura bien deux n-uplets avec la valeur 6 pour l'attribut numEnseignant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    numEnseignant   nomEnseignant
          6            MARTIN
          6            MICHEL
    L'attribut numEnseignant tout seul ne garanti pas la propriété d'unicité. C'est donc l'ensemble des attributs {numEnseignant, nomEnseignant} qui est la clé de cette nouvelle relation.

    Pour l'intersection, seul l'attribut A dans l'exemple précédent, ou numEnseignant est clé puisqu'il n'y aura jamais deux fois une même valeur pour cet attribut dans le résultat de l'opération.

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 812
    Points : 52 868
    Points
    52 868
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Cette UNION n'apportera qu'un seul tuple : 1, DUPONT. La clef est bien conservée !

    A +
    Pardon, j'ai dit une grosse bétise. J'étais dans ma tête sur l'intersection.

    Sur l'union, cela donnera :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    1   DUPONT
    3   DURAND
    4   MARTIN
    6   MARTIN
    6   MICHEL
    7   BERTRAND
    et la clef est A, B

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. petit prob en algèbre relationnelle
    Par touf54 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/04/2008, 10h51
  2. restriction: algèbre relationnelle
    Par Ex0w@tt dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/12/2007, 23h36
  3. Règles d'algèbre relationnelle
    Par Ralfman68 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/12/2006, 15h53
  4. [Algèbre relationnelle]Expression algébrique
    Par yoshï dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 07/04/2006, 15h10

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