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((A | E)*)
    A(KA, ((B, C?, D?) | (C, D?) | D), R+)
      B(beta)
      C(gamma)
      D(delta)
      R(KE, rho+)
       rho(rho1+, rho2)
    E(KE, S)
     S(G)
      G(KG)
        
    // Vincoli referenziali
    KEY(A.KA)
    KEY(E.KE)
    KEY(G.KG)
    KEYREF(R.KE -> E.KE)       
    check("Ogni istanza di E è associata tramite R ad almeno una istanza di A")
    
  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]