Partage
  • Partager sur Facebook
  • Partager sur Twitter

Traduire une DTD en un schéma relationnel

Définir un schéma de stockage relationnel à partir de la DTD

    24 octobre 2018 à 10:09:05

    Bonjour,

    je souhaite définir un schéma de stockage relationnel à partir de la DTD suivante :

    〈!DOCTYPE batiment
    [
    〈!ELEMENT batiment (etage)+〉
    〈!ELEMENT etage (description,(bureau+|salle+))〉
    〈!ELEMENT description (#PCDATA)〉
    〈!ELEMENT bureau (code, personne*)〉
    〈!ELEMENT code (#PCDATA)〉
    〈!ELEMENT personne (#PCDATA)〉
    〈!ELEMENT salle (nombrePlaces)〉
    〈!ELEMENT nombrePlaces (#PCDATA)〉
    ]〉
    

    voila ce que j'ai fais moi :

    CREATE  TABLE  batiment
    (
        idBatiment  INTEGER PRIMARY  KEY ,
        nom  VARCHAR (50)
     );
    
    CREATE  TABLE  etage
    (
        idBatiment  INTEGER ,
        idEtage  INTEGER ,
        description  VARCHAR (10),
        PRIMARY KEY(idBatiment ,idEtage),
        FOREIGN KEY (idBatiment) REFERENCES  batiment(idBatiment)
    );
    
    CREATE  TABLE  bureau
    (
      idBatiment  INTEGER ,
      idEtage  INTEGER ,
      idBureau  INTEGER ,
      code  VARCHAR (10) ,
      personne INTEGER ,
      PRIMARY KEY(idBatiment ,idEtage ,idBureau),
      FOREIGN KEY(idEtage) REFERENCES  etage(idEtage),
      FOREIGN KEY (idBatiment) REFERENCES  batiment(idBatiment)
    );
    
    CREATE  TABLE  salle
    (
      idBatiment  INTEGER ,
      idEtage  INTEGER ,
      idSalle  INTEGER ,
      nbPlace  INTEGER,
      PRIMARY KEY(idBatiment ,idEtage ,idSalle),
      FOREIGN KEY(idEtage) REFERENCES  etage(idEtage),
      FOREIGN KEY (idBatiment) REFERENCES  batiment(idBatiment)
    );
    

    et ça m'affiche l'erreure suivant :

    SQL> @batiment.sql
    
    Table created.
    
    
    Table created.
    
      FOREIGN KEY(idEtage) REFERENCES  etage(idEtage),
                                             *
    ERROR at line 9:
    ORA-02270: no matching unique or primary key for this column-list
    
    
      FOREIGN KEY(idEtage) REFERENCES  etage(idEtage),
                                             *
    ERROR at line 8:
    ORA-02270: no matching unique or primary key for this column-list
    
    
    SQL> 
    SQL> 
    

    je ne comprend pas pourquoi ou est le soucis.

    merci d'avance pour vos réponses.



    • Partager sur Facebook
    • Partager sur Twitter

    Traduire une DTD en un schéma relationnel

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown