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 :

entité faible en sql


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut entité faible en sql
    Bonsoir,

    j'ai un soucil de traduction merise --> sql,

    dans mon diagramme E/R, j'ai une entité faible comme sur l'image ci-dessous :



    d'apres mes cours une entité faible doit, pour être identifiée, posséder la (ou les) clé primaire de sa table ET la (ou les) clé primaire de l'autre entité.

    ma question est :
    comment déclarer une clé primaire qui n'est pas directement dans la table ?

    j'ai admis qu'il fallait recréer les attributs et les référencer commes clés primaires et étrangères comme écrit cei dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    CREATE TABLE TABLE_A
    (
         numeroA CHAR(5),
         nomA VARCHAR(20),
         prenomA VARCHAR(20),
         CONSTRAINT pk_A PRIMARY KEY (numeroA)
    )
     
    CREATE TABLE TABLE_B
    (
         numeroB CHAR(5),
         anneeB CHAR(4),
         titreB VARCHAR(20),
         numeroA CHAR(5),
         CONSTRAINT pk_B PRIMARY KEY (numeroA,numeroB),
         CONSTRAINT fk1_B FOREIGN KEY (numeroA) REFERENCES TABLE_A(numeroA)
    )

    me trompais'je ?

    merci de m'éclairer


    edit : j'ai rectifié une erreur pour la clé primaire de Table_A

  2. #2
    Membre expérimenté
    Avatar de Adjanakis
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    739
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2004
    Messages : 739
    Points : 1 351
    Points
    1 351
    Par défaut
    Bonjour,

    J'ai perdu pas mal de notions théoriques sur Merise, ce qui me fait m'interoger sur la clé primaire de la TABLE_B. En fait, je me demande si numeroB est une "clé référentielle"(je ne me souvient plus du terme exact) par rapport a numeroA. Bref la question est :

    Combien y a t il des numeroB identiques dans la table TABLE_B ?

    ps: il y a une coquille dans la creation de TABLE_A
    Pensez au tag

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Ta question signifie que tu remets en cause la présence d'une entité faible dans ce cas ?

    Je répondrai à ta question en disant que il y a plusieurs numeroB identiques dans Table_B, mais combien ça je ne peut pas répondre.

    Donc la clé numeroB ne suffit pas à identifier le tuple, j'ai besoin des clés des 2 tables.

    Pour le terme de clé référentielle il faut que je cherche dans mes cours je ne me rappelle pas l'avoir vu.


    merci.

  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 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    c'est bon mais le (1,1) est inutile. Le 1,1 est suffisant. Ce (1,1) est utile si il n'y a que des (1,1) identifiant des relations.

    Exemple : http://sqlpro.developpez.com/cours/gestiontemps/
    le modèle merise du point 3.1 montre une double relation 1.1 pour la table des jours fériés fixe, car pour identifier un jour férié fixe il n'y a pas besoin de clef dans l'entité : les clef MOIS et JOUR dont cet entitée héritera lors du passage MCD / MLD (ou MPD) lui donnerons la clef.
    Voyez d'ailleurs le schéma suivant qui montre le résultat...

    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. [MCD] identification relative et entité faible
    Par erox44 dans le forum Schéma
    Réponses: 5
    Dernier message: 07/03/2008, 09h21
  2. Access et entités faibles et spécifiques ?
    Par maph1 dans le forum Modélisation
    Réponses: 6
    Dernier message: 20/02/2008, 18h33
  3. PB! entité faible sous MySQL
    Par Bugger24 dans le forum Requêtes
    Réponses: 0
    Dernier message: 10/10/2007, 20h50
  4. Générer un identifiant relatif > l'entité faible en prati
    Par vmolines dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 19/08/2005, 15h59
  5. ENTITE FAIBLE
    Par Whismeril dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/01/2005, 22h53

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