Basi di Dati XML

  1. Tradurre il seguente schema ER in uno schema XML, includendo nello schema XML anche i vincoli di integrità referenziale (chiavi primarie e chiavi esterne) e identificando eventuali vincoli dello schema ER che non sono esprimibili nello schema XML. Per lo schema XML si usi la notazione sintetica proposta durante il corso (Target Language).
    // Schema
    db((E | F)*)
    E(KE, R+)
      R(A, rho+)
      A(KA, KE, (B | C | D)?)
        B(beta)
        C(gamma)
        D(delta)
    F(KF, S+)
      S(KE)
    
    // Vincoli referenziali
    KEY(E.KE)
    KEY(A.KA, A.KE)
    KEY(F.KF)
    KEYREF(S.KE --> E.KE)  
    
    // Vincoli non esprimibili
    CHECK(E.KE = A.KE)
    CHECK("Ogni istanza di E è associata tramite S ad almeno una istanza di F")
          
    
  2. Scrivene un breve documento XML ben formato che sia valido rispetto allo schema XML risultato del punto precedente. Popolare il documento con i valori per gli attributi chiave primaria e chiave esterna (è possibile tralasciare i valori per gli altri attributi). [Soluzione]