Archivio musicale di lirica

di il
21 risposte

Archivio musicale di lirica

Buon giorno a tutti,
sono un nuovo iscritto e, poiché sto studiando autonomamente Access, vorrei avere da persone esperte alcuni suggerimenti su come procedere, dal momento che, pur avendo nozioni di database e di programmazione (acquisite peraltro qualche decennio fa...), mi manca sia la visione d'insieme, sia la praticità che può derivare da un corso universitario o specifico.
Mi sono prefisso di creare in Access un database che raccolga tutte le edizioni di lirica che ho, in modo da estrarre diverse informazioni, come ad esempio quante opere ho di un dato compositore, o quante edizioni ho di un'opera.
Sto cercando di capire come strutturare il DB e ho cominciato dalle tabelle di dati: ho pensato quindi di creare una TabOpere, in cui inserire tutti i titoli di opere liriche, una TabPersonaggi, con tutti i personaggi, una TabCompositori e così via. Poiché ho capito che è importante che i dati non siano ripetuti inutilmente, sto ragionando su come impostare la tabella che dovrà contenere i dati diciamo finali, cioè la tabella da cui dovrò estrarre le informazioni di interesse, che chiamerò TabDatiArchivio.
Il problema (o quel che mi appare ora come tale) è che ogni opera ha diversi personaggi (e quindi diversi interpreti) e che ogni edizione di quel titolo, pur conservando ovviamente gli stessi personaggi, ha un insieme di interpreti diverso da ogni altro. Mi chiedo quindi se ha senso costruire la tabella TabDatiArchivio con un certo numero di campi da riservare ai personaggi, distinti da un indice in base al quale individuare anche l'interprete per ciascuna edizione. Ad esempio, i campi di TabDatiArchivio potrebbero essere:

IDEdizione IDOpera IDCompositore IDPersonaggio1 IDVoce1 IDCantante1 ... IDPersonaggioN IDVoceN IDCantanteN IDOrchestra IDDirettore ecc.

Usando solo gli ID per i diversi campi (per non ripetere i dati e non appesantire il DB), e dovendo stabilire una relazione molti-a-molti tra TabDatiArchivio e TabCantanti e una relazione molti-a-molti tra TabDatiArchivio e TabVoci, mi chiedo innanzitutto se l'impostazione è corretta e se è possibile che TabDatiArchivio sia la tabella di giunzione sia per la prima, sia per la seconda relazione molti-a-molti.

In attesa di un vostro suggerimento, vi ringrazio.
Donizetti

Come si fa ad aver vissuto senza mai aver ascoltato la Bohème o la Traviata?

21 Risposte

  • Re: Archivio musicale di lirica

    E vai: pane per i miei denti! Benvenuto nel forum.

    Donizetti ha scritto:


    Poiché ho capito che è importante che i dati non siano ripetuti inutilmente, sto ragionando su come impostare la tabella che dovrà contenere i dati diciamo finali, cioè la tabella da cui dovrò estrarre le informazioni di interesse, che chiamerò TabDatiArchivio.
    Questo risultato finale che vorrai ottenere verrà esplicitato da una QUERY che svolge proprio il compito di "radunare" le tabelle utili a ciò che tu vorrai vedere.
    Vorrei farti notare che la TABELLE in Access sono i "contenitori rozzi/primordiali" dei dati, quelli più indispensabili e "normalizzati". Qualcosa di buono l'hai già messa in campo, ma procediamo con ordine.

    1. Occorre fare questa considerazione: Verdi Giuseppe, Donizetti Gaetano, Mahler Gustav, Karajan Herbert von, Muti Riccardo, Ricciarelli Katia, Pavarotti Luciano sono tutte PERSONE con Cognome e Nome. Chiamiamoli più correttamente Artisti. Essi possono rientrare tutti nella medesima tabella Artisti. Direi che in questa tabella ci puoi mettere anche le Orchestre (anch'esse sono tutto sommato Artisti).

    2. Interessante il dilemma Personaggi di Opera e Interpreti (legati ai Personaggi) di Opera.
    L'Opera quando nasce, partorisce un solo set di Personaggi, che rimarrà in eterno nella storia. Ma che verrà ripreso molte volte da ogni Interpretazione.
    Io separerei le 2 cose:
    - Opere uno-a-molti Personaggi da una parte.
    - Le Interpretazioni vanno a confluire in una Edizione, quest'ultima potrebbe essere una della molte versioni di Aida, Rigoletto, Turandot…

    3. L'Edizione poi avrà i suoi Interpreti, quindi Edizioni uno-a-molti Interpreti.

    4. Mo che succede agli Artisti?
    In certi casi sono Compositori (io li chiamo Autori)
    In altri Direttori, altri Cantanti, altri Orchestre: tutti questi sono Interpreti.
    Gli Autori sono Artisti che DIVENTANO Autori nella tabella Autorità...io non dimenticherei anche i Librettisti.
    I Cantanti/Direttori/Registi/Orchestre sono Artisti che DIVENTANO Interpreti nella tabella Interpretazioni.

    5. Considerato che vi è ripetitività sistematica di Opere in Edizioni...espliciterei (buona parte del database) così:
    Opere uno-a-molti Personaggi
    Opere uno-a-molti Autorità
    Opere uno-a-molti Edizioni
    Artisti uno-a-molti Autorità
    Edizioni uno-a-molti Interpretazioni
    Artisti uno-a-molti Interpretazioni

    Mi fermo qui per ora.
  • Re: Archivio musicale di lirica

    Ciao Osvaldo,
    grazie per il benvenuto! Da come hai esordito, immagino che anche tu sia appassionato di lirica e che quindi hai ben in mente ciò che sto cercando di fare; beh, oggigiorno non è facile trovare appassionati e quindi la cosa mi rallegra e mi spinge a “tartassarti”…
    Per seguire i tuoi punti:
    1. Effettivamente non avevo pensato di mettere Compositori, Cantanti, Direttori, Orchestre, Cori e Maestri del Coro in un’unica tabella TabArtisti; benissimo. Ma al punto 5 mi scrivi “ Gli Autori sono Artisti che DIVENTANO Autori nella tabella Autorità…” e ”I Cantanti/Direttori/Registi/Orchestre sono Artisti che DIVENTANO Interpreti nella tabella Interpretazioni “. Non mi è chiaro il concetto in base al quale alcuni dati DIVENTANO qualcosa e altri dati qualcos’altro: se ho messo tutto in una tabella, a cosa mi serve scinderla poi (e come si fa?) in due altre tabelle? Tanto vale partire subito con le due tabelle TabAutorità e TabInterpretazioni. Mi sfugge qualcosa…
    2. TabEdizioni, in base alla tua distinzione, è quella che ho chiamato TabDatiArchivio: conterrà tutti dati delle varie edizioni di tutte le opere del mio archivio.
    3. TabEdizioni contiene l’insieme degli interpreti (TabArtisti) per ciascuna opera; quindi l’insieme dei suoi record è ciò che mi occorre. E allora TabInterpretazioni a cosa serve?
    4. Quasi chiaro…
    Ci ragionerò su; intanto grazie per l’interessamento.
    Come si fa ad aver vissuto senza mai aver ascoltato la Bohème o la Traviata?
  • Re: Archivio musicale di lirica

    Donizetti ha scritto:


    Da come hai esordito, immagino che anche tu sia appassionato di lirica e che quindi hai ben in mente ciò che sto cercando di fare
    Ho un database "Cultura" che abbraccia musica, cinema, libri, arte...tutto insieme. La parte più prevalente è la musica.

    Donizetti ha scritto:


    1. Effettivamente non avevo pensato di mettere Compositori, Cantanti, Direttori, Orchestre, Cori e Maestri del Coro in un’unica tabella TabArtisti; benissimo. Ma al punto 5 mi scrivi “ Gli Autori sono Artisti che DIVENTANO Autori nella tabella Autorità…” e ”I Cantanti/Direttori/Registi/Orchestre sono Artisti che DIVENTANO Interpreti nella tabella Interpretazioni “. Non mi è chiaro il concetto in base al quale alcuni dati DIVENTANO qualcosa e altri dati qualcos’altro: se ho messo tutto in una tabella, a cosa mi serve scinderla poi (e come si fa?) in due altre tabelle? Tanto vale partire subito con le due tabelle TabAutorità e TabInterpretazioni. Mi sfugge qualcosa…
    Io ho dato solo indicazioni "generali" elencando "quelle" tabelle con le relazioni uno-a-molti. Le relazioni uno-a-molti si esplicitano con i campi "chiave primaria (PK)" (i classici IDQualcosa, di tipo numerazione automatica) e "chiave esterna (FK)" (di tipo numerico).
    Elencherò nomi tabelle e campi per rispondere solo a questo punto:
    Artisti
    IDArtista (PK)

    Autorità
    IDAutorità (PK)
    IDAutore (FK, numerico)
    IDOpera (FK, numerico)

    Opere
    IDOpera (PK)
    Titolo

    Interpretazioni
    IDInterpretazione (PK)
    IDInterprete (FK)
    Ruolo (dico genericamente Ruolo perché per i cantanti sarà il Personaggio, per gli altri sarà "Orchestra", "Direttore", "Regia"...)
    IDEdizione (FK)

    Relazioni:
    Artisti.IDArtista uno-a-molti Autorità.IDAutore
    Artisti.IDArtista uno-a-molti Interpretazioni.IDInterprete
    Opere.IDOpera uno-a-molti Autorità.IDOpera
    Edizioni.IDEdizione uno-a-molti Interpretazioni.IDEdizione (la tabella Edizioni non l'ho nominata...ma penso tu abbia capito il senso di questa relazione)

    Donizetti ha scritto:


    2. TabEdizioni, in base alla tua distinzione, è quella che ho chiamato TabDatiArchivio: conterrà tutti dati delle varie edizioni di tutte le opere del mio archivio.
    Non proprio. La tabella Edizioni è certamente una delle più importanti. Stiamo parlando proprio del CD, LP, DVD, Libretto...ossia un oggetto fisico che tu prendi in mano e collochi in un particolare Scaffale (ecco servirà una tabella Scaffali). Ma in tabella Edizioni non puoi scrivere tutto insieme dentro. Gli Interpreti sono MOLTI rispetto alla UNO Edizione. Pertanto serve la relazione Edizioni.IDEdizione uno-a-molti Interpretazioni.IDEdizione.
    Una denominazione TabDatiArchivio mi sembra inappropriata.

    Donizetti ha scritto:


    3. TabEdizioni contiene l’insieme degli interpreti (TabArtisti) per ciascuna opera; quindi l’insieme dei suoi record è ciò che mi occorre. E allora TabInterpretazioni a cosa serve?
    L'ho spiegato prima.

    Donizetti ha scritto:


    4. Quasi chiaro…
    Ho risposto qui al punto 1.
  • Re: Archivio musicale di lirica

    Ciao Osvaldo,
    sto ragionando sui tuoi suggerimenti, ma forse sono troppo principiante e ho la sensazione di perdermi in un labirinto…

    Dunque, ricapitolo il mio scopo: vorrei avere in un DB tutte le informazioni relative alla mia collezione di opere liriche (e solo di esse) e, quindi, disporre di titolo, compositore (autore), cantanti (in numero variabile da 1 a 18), orchestra, coro, M° del coro, Direttore, tipo di registrazione (live, in studio), luogo di registrazione, data di registrazione, supporto (CD, DVD, Disco, musicassetta, digitale). A me occorre avere il dettaglio dei cantanti, ossia sapere per ogni opera quale cantante ha interpretato quel dato personaggio: ci sono diversi esempi in cui un cantante ha interpretato, nella stessa opera, personaggi diversi (la Caballè ha cantato sia Norma, sia Adalgisa); o addirittura un cantante ha interpretato personaggi di timbro diverso (Domingo ha cantato il Duca e Rigoletto, ovviamente in edizioni diverse; essendo stato quasi esclusivamente un tenore, in una ricerca a me interesserà sapere quanti Duca ho con Domingo, non sapere quante edizioni ho del Rigoletto con Domingo tra il cast).

    Alla luce di questo, in Edizioni potrei memorizzare il dato aggregato di un’opera (Norma-Bellini-Sutherland-Pavarotti-Caballé-Ramey-…-Welsh*National*Opera-Bonynge-Greenwood-In*studio-Londra-1984) e in Interpretazioni esplicitare il dettaglio di quella edizione (titolo: Norma; Compositore: Bellini; Norma: Joan Sutherland; Pollione: Luciano Pavarotti; ecc). Mi chiedo se è necessario, ma se lo è ho capito la relazione uno-a-molti che deve esserci tra Edizioni.IDEdizione e Interpretazioni.IDEdizione. In più, credo di aver capito che le due chiavi in relazione non devono avere lo stesso nome-campo, come invece pensavo.

    Resta il problema di capire come tenere conto, nella tabella Interpretazioni, del numero variabile di personaggi e, quindi, di cantanti. Per esempio, se occorre inserire 18 campi per il nome del personaggio, 18 campi per il timbro e 18 per il cantante, mi chiedo se una chiave primaria può essere in relazione con una chiave esterna 18 volte…

    Devo continuare a studiare…

    Come si fa ad aver vissuto senza mai aver ascoltato la Bohème o la Traviata?
  • Re: Archivio musicale di lirica

    Donizetti ha scritto:


    Dunque, ricapitolo il mio scopo: vorrei avere in un DB tutte le informazioni relative alla mia collezione di opere liriche (e solo di esse) e, quindi, disporre di titolo, compositore (autore), cantanti (in numero variabile da 1 a 18), orchestra, coro, M° del coro, Direttore, tipo di registrazione (live, in studio), luogo di registrazione, data di registrazione, supporto (CD, DVD, Disco, musicassetta, digitale). A me occorre avere il dettaglio dei cantanti, ossia sapere per ogni opera quale cantante ha interpretato quel dato personaggio: ci sono diversi esempi in cui un cantante ha interpretato, nella stessa opera, personaggi diversi (la Caballè ha cantato sia Norma, sia Adalgisa); o addirittura un cantante ha interpretato personaggi di timbro diverso (Domingo ha cantato il Duca e Rigoletto, ovviamente in edizioni diverse; essendo stato quasi esclusivamente un tenore, in una ricerca a me interesserà sapere quanti Duca ho con Domingo, non sapere quante edizioni ho del Rigoletto con Domingo tra il cast).
    La sostanza non cambia. Nei casi in cui uno stesso Interprete (esempio Caballè=Norma, Adalgisa) tu compilerai 2 record.

    Donizetti ha scritto:


    Alla luce di questo, in Edizioni potrei memorizzare il dato aggregato di un’opera (Norma-Bellini-Sutherland-Pavarotti-Caballé-Ramey-…-Welsh*National*Opera-Bonynge-Greenwood-In*studio-Londra-1984) e in Interpretazioni esplicitare il dettaglio di quella edizione (titolo: Norma; Compositore: Bellini; Norma: Joan Sutherland; Pollione: Luciano Pavarotti; ecc). Mi chiedo se è necessario, ma se lo è ho capito la relazione uno-a-molti che deve esserci tra Edizioni.IDEdizione e Interpretazioni.IDEdizione.

    In Edizioni non devi mettere tutto il cast, ma solo quella COMBINAZIONE VALORI-CAMPI che ti assicurano UNIVOCITA'. In pratica stiamo parlando di quello che dovremmo/dovresti trovare scritto sul bordo del Supporto (CD, DVD…) stesso.
    Sappiamo che solo "Bellini Vincenzo - Norma" non bastano perché esistono molte interpretazioni. Ma se aggiungi il Direttore...direi che hai ottime probabilità di univocità. Dico "ottime" perché per mia statistica posso dire che nel 95-99% dei casi è così. Si dà pure il caso di Direttori che hanno interpretato stessa opera in Anni diversi. In questi casi prevedi un campo aggiuntivo di distinguo Anno appunto.

    Donizetti ha scritto:


    In più, credo di aver capito che le due chiavi in relazione non devono avere lo stesso nome-campo, come invece pensavo.
    Vero. I manuali li chiamano con lo stesso nome...e io mi adeguo volentieri. I pignoli preferiscono chiamarli diversamente, per esempio PkEdizione e FkEdizione.

    Donizetti ha scritto:


    Resta il problema di capire come tenere conto, nella tabella Interpretazioni, del numero variabile di personaggi e, quindi, di cantanti. Per esempio, se occorre inserire 18 campi per il nome del personaggio, 18 campi per il timbro e 18 per il cantante, mi chiedo se una chiave primaria può essere in relazione con una chiave esterna 18 volte…
    NO 18 CAMPI. Ogni Opera ha un Numero cast variabile. A te questo non implica alcun vincolo perché compili VERTICALMENTE il cast e non vi è alcun limite al riguardo.
  • Re: Archivio musicale di lirica

    Vero. I manuali li chiamano con lo stesso nome...e io mi adeguo volentieri. I pignoli preferiscono chiamarli diversamente, per esempio PkEdizione e FkEdizione.
    Mi sono espresso male: intendevo dire che la chiave esterna che è in relazione con una chiave primaria non deve avere necessariamente lo stesso nome; infatti tu hai scritto Artisti.IDArtista uno-a-molti Autorità.IDAutore.
    NO 18 CAMPI. Ogni Opera ha un Numero cast variabile. A te questo non implica alcun vincolo perché compili VERTICALMENTE il cast e non vi è alcun limite al riguardo.
    Quindi la TABInterpretazioni avrà un aspetto del tipo:
    Titolo=Norma (IDOpera)
    Autore=Bellini (IDAutorità)
    Personaggio1=Cantante1 (IDArtista)
    Personaggio2=Cantante2 (IDArtista)
    ...
    Personaggiox=Cantantex (IDArtista)
    ecc
    ecc

    Se per dire ho 1.000 edizioni complessive delle 300 opere, la TABInterpretazioni avrà, che so, 15.000 record o più; potrebbe essere un problema, anche se alla fine saranno tutti numeri?
  • Re: Archivio musicale di lirica

    Donizetti ha scritto:


    Quindi la TABInterpretazioni avrà un aspetto del tipo:
    Titolo=Norma (IDOpera)
    Autore=Bellini (IDAutorità)
    Personaggio1=Cantante1 (IDArtista)
    Personaggio2=Cantante2 (IDArtista)
    ...
    Personaggiox=Cantantex (IDArtista)
    ecc
    ecc
    I campi di Interpretazioni (visti in verticale come foglio dati) sara così:
    IDInterpretazione | IDInterprete | Ruolo | IDEdizione
    401 | Stratas Teresa | Nedda | 12
    402 | Domingo Placido | Canio | 12
    403 | Pons Juan | Tonio | 12
    404 | Orchestra Teatro alla Scala | orchestra | 12
    405 | Pretre Georges | direttore | 12

    Ho scritto qui i nomi degli Interpreti, ma considera che al loro di sotto ci sarà IDInterprete (numerico) che svilupperai con una comoda casella combinata.
    Il numero 12 si riferisce alla Edizione (DVD) relativa a "Leoncavallo Ruggero - Pagliacci - Pretre Georges" presi tutti e 3 insieme. L'Edizione 12 è diversa dalla Edizione 13 relativa a "Leoncavallo Ruggero - Pagliacci - Karajan Herbert von"
    Per tanto nella tabella Interpretazioni non devi scrivere l'Autore, nemmeno il Titolo. Riguarda bene la prima struttura che ti ho proposto. "Pagliacci" può essere ripetitivo in Edizioni. Edizioni deve avere un campo IDTitolo (FK)
    Leoncavallo è ripetitivo su Titoli...quindi un campo IDAutore1: scrivilo così per ora perchè in verità le opere hanno più autori, vedi uno o più librettisti...questa cosa devi capire se vuoi gestirla oppure no.

    Donizetti ha scritto:


    Se per dire ho 1.000 edizioni complessive delle 300 opere, la TABInterpretazioni avrà, che so, 15.000 record o più; potrebbe essere un problema, anche se alla fine saranno tutti numeri?
    Assolutamente no. Access da questo punto di vista è potentissimo anche con tabelle con centinaia di migliaia di record.
  • Re: Archivio musicale di lirica

    Grazie Osvaldo,
    intanto mi studio i tuoi suggerimenti e preparo le tabelle, con le relazioni. Se poi posso, te le mostro per vedere se sto impostando il tutto correttamente.

    Ovviamente anche il campo Ruolo sarà un numero, avendo a disposizione la TabPersonaggi.

    L’IDEdizione=12 fa riferimento a "Leoncavallo Ruggero - Pagliacci - Pretre Georges", che, se ho ben capito, è in realtà è una stringa del tipo “17 – 67 – 28”, dove 17 è un IDAutore-->IDArtista (il/i Librettista/i lo/li specifico nella TabOpere e mi servirà, eventualmente, se vorrò visualizzare una scheda Opera), 67 è un IDTitolo e 28 è un IDArtista; questo campo mi servirà per visualizzare in una maschera o report l’Autore, il Titolo e il Direttore, immagino attraverso una query.

    Come si fa ad aver vissuto senza mai aver ascoltato la Bohème o la Traviata?
  • Re: Archivio musicale di lirica

    Donizetti ha scritto:


    Ovviamente anche il campo Ruolo sarà un numero, avendo a disposizione la TabPersonaggi.
    Per me più NO che Sì. Ti spiego dopo.

    Donizetti ha scritto:


    L’IDEdizione=12 fa riferimento a "Leoncavallo Ruggero - Pagliacci - Pretre Georges", che, se ho ben capito, è in realtà è una stringa del tipo “17 – 67 – 28”, dove 17 è un IDAutore-->IDArtista (il/i Librettista/i lo/li specifico nella TabOpere e mi servirà, eventualmente, se vorrò visualizzare una scheda Opera), 67 è un IDTitolo e 28 è un IDArtista;
    Sei relativamente sulla buona strada...però dimentichi che un Titolo è strettamente legato al proprio Autore. Ci sono alcuni rari casi in cui lo stesso Titolo ha 2 Compositori diversi e si sta parlando di 2 Opere diverse.

    Ti faccio vedere come avrei elaborato l'intera struttura:

    Artisti
    IDArtista (PK)
    Artista

    Autorità
    IDAutorità (PK)
    IDAutore (FK)
    RuoloAutore (testo)
    IDTitolo (FK)

    Titoli
    IDTitolo (PK)
    Articolo (io uso questo campo perché quando ti servirà richiamare un TitoloOpera ci sono alcuni casi in cui non ricordi se si chiama La Boheme o Boheme, La traviata o Traviata…)
    Titolo (senza l'articolo ovviamente)
    IDCompositore (FK)

    Personaggi
    IDPersonaggio (PK)
    Personaggio (testo)
    IDTitolo (FK)

    Edizioni
    IDEdizione (PK)
    IDTitolo (FK)(questo si porterà appresso automaticamente il proprio Compositore)
    IDDirettore (FK)
    Anno
    Durata

    Interpretazioni
    IDInterpretazione (PK)
    IDInterprete (FK)
    RuoloInterprete (testo)
    IDEdizione (FK)

    Relazioni indispensabili:
    Titoli.IDTitolo uno-a-molti Autorità.IDTitolo
    Titoli.IDTitolo uno-a-molti Personaggi.IDTitolo
    Titoli.IDTitolo uno-a-molti Edizioni.IDTitolo
    Edizioni.IDEdizione uno-a-molti Interpretazioni.IDEdizione

    A tutti i campi FK ti consiglio di usare le "caselle combinate" ottimizzandole così


    Come puoi notare le tabelle Personaggi e Interpretazioni sono slegate. E questo per il motivo già spiegato

    OsvaldoLaviosa ha scritto:


    2. Interessante il dilemma Personaggi di Opera e Interpreti (legati ai Personaggi) di Opera.
    L'Opera quando nasce, partorisce un solo set di Personaggi, che rimarrà in eterno nella storia. Ma che verrà ripreso molte volte da ogni Interpretazione.
    Io separerei le 2 cose:
    - Opere uno-a-molti Personaggi da una parte.
    - Le Interpretazioni vanno a confluire in una Edizione, quest'ultima potrebbe essere una della molte versioni di Aida, Rigoletto, Turandot…

    3. L'Edizione poi avrà i suoi Interpreti, quindi Edizioni uno-a-molti Interpretazioni.
    Quando vorrai alimentare in maniera semi-automatica Interpretazioni avendo già la lista dei Personaggi precompilata, ti servirai di una "query di accodamento" che va a prelevare il recordset Personaggi relativo all'Opera che stai trattando nella tua Edizione. Orchestra e Direttore li compilerai poi manualmente.
    È rilevante osservare che i campi Personaggi.Personaggio e Interpretazioni.RuoloInterprete abbiano la stessa "dimensione campo" per non avere problemi di compatibilità con la query di accodamento.
    Questa cosa della query di accodamento la vediamo in un secondo momento.
  • Re: Archivio musicale di lirica

    La notte porta consiglio? Nel mio post precedente mi sono fatto prendere la mano dalla MIA logica ripetitivo-sistematica...che tra l'altro avresti esposto anche tu all'inizio

    Donizetti ha scritto:


    Sto cercando di capire come strutturare il DB e ho cominciato dalle tabelle di dati: ho pensato quindi di creare una TabOpere, in cui inserire tutti i titoli di opere liriche, una TabPersonaggi, con tutti i personaggi, una TabCompositori e così via. Poiché ho capito che è importante che i dati non siano ripetuti inutilmente
    Ma non so se tutto il discorso che ho prodotto nel precedente post è chiaro. Ci sono molti punti che rischiano di essere farraginosi se non si comprende il perché. Provo a formulare un'altra ipotesi progettuale, poi valuteremo pro e contro.

    Struttura 2:

    Artisti
    IDArtista (PK)
    Artista

    Edizioni
    IDEdizione (PK)
    IDCompositore (FK)
    Articolo (è l'articolo del Titolo)
    Titolo (senza l'Articolo)
    IDDirettore (FK)
    Anno
    Durata

    Casts
    IDCast (PK)
    IDArtista (FK)
    Ruolo
    IDEdizione (FK)

    Relazioni obbligatorie:
    Artisti.IDArtista uno-a-molti Casts.IDArtista
    Edizioni.IDEdizione uno-a-molti Casts.IDEdizione

    Caselle combinate su tutti i campi FK.

    Questa struttura ha il vantaggio di essere molto più snella, intuitiva e a portata di "colpo d'occhio" dell'utente. Con poche maschere da mettere in gioco. Anche le query saranno più semplici.
    In fondo, quando tu prendi in mano il tuo DVD, lo guardi e scrivi i dettagli dentro il database. E cosa fai?
    1. Guardi il retro copertina
    2. Scrivi in Edizioni tutti i dati relativi a IDCompositore, Titolo, IDDirettore, Anno...indispensabili per rendere UNIVOCA l'Edizione.
    3. Poi apri Casts e inserisci TUTTI gli Artisti coinvolti...compreso il Librettista...io ripeterei anche Compositore e Direttore per motivi di coerenza con Casts e probabilmente per future query che in certi casi potrebbero essere più logiche a partire da Casts che non da Edizioni.
    Stop!

    Struttura 2 perde però la RIPETITIVITA' SISTEMATICA del Titolo. Se hai 20 Edizioni di "Il barbiere di Siviglia", devi fare attenzione che la coppia IDCompositore - Titolo sia digitata 20 volte esattamente uguale.

    Come si risolve il problema di un nuovo Cast di una stessa Opera digitata in precedenza?
    Opportuna query può andare a ripescare con apposito filtro la combinazione campi Edizioni.IDCompositore e Titolo con tutto il proprio Cast. Di questo Cast si prelevano solo i campi Ruolo e IDEdizione (corrente) e li si accodando di conseguenza. Poi compili gli IDArtista vuoti.
  • Re: Archivio musicale di lirica

    Forse troppi input per il mio grado di conoscenza... ho bisogno di metabolizzare...
    Ho realizzato una relazione tra le tabelle della prima struttura, che ti allego.
    Archivio_musicale_IP2_Relazioni_Tabelle.JPG
    Archivio_musicale_IP2_Relazioni_Tabelle.JPG

  • Re: Archivio musicale di lirica

    LuogoNascita, DataNascita, LuogoMorte, DataMorte sono strettamente legati a un Artista, quindi devono stare nella tabella Artisti.
    LuogoRegistrazione, DataRegistrazione sono strettamente legati a Edizioni, quindi devono stare nella tabella Edizioni.

    Il Supporto (DVD, CD…) è l'Edizione, deve stare nella tabella Edizioni, quindi la relazione Supporti.IDSupporto uno-a-molti Edizioni.IDSupporto. Ovviamente togli il campo IDSupporto da Interpretazioni.

    Campo Titoli.Librettista: perché sta là? Se i Librettisti sono più di uno (è capitato nella storia) come vorresti gestire questo campo? La tabella Autorità serve a elencare proprio Compositore e Librettista/i...ma...
    Io, nel mio database ho la tabella Autorità perché gestisco molto altro che va al di là delle sole Opere Liriche. E si tratta di casi di Titoli aventi davvero molti Autori. Se tu ritieni che "tutto sommato" stai gestendo solo opere liriche, o anche altra musica con POCHI Autori, se l'aspetto Autorità (dal lato molti) ti sembra "marginale", puoi bypassare/eliminare la tabella Autorità e trovare un compromesso direttamente in Titoli.

    Non condivido l'idea del campo Artisti.TipoArtista. La tipologia dell'Artista (secondo me) non è "assoluta". Come ti regoli per quei Compositori "contemporanei" che sono sia Compositori, sia Direttori o uno dei Cantanti? Non si tratta di un errore grave, ma riflettici un po'.

    In tabella Artisti hai già deciso che vuoi escludere le "Ensemble" ossia le Orchestre? Vedo i campi Cognome Nome separati.

    Questa è una mia pignoleria "estetica". Quando compili la Finestra Relazioni evita di far incrociare le linee di join. Potresti spostare Artisti a destra di Autorità. Edizioni più al centro e Interpretazion, Supporti alla sua sinistra.
  • Re: Archivio musicale di lirica

    LuogoNascita, DataNascita, LuogoMorte, DataMorte sono strettamente legati a un Artista, quindi devono stare nella tabella Artisti.
    Pensavo di inserire tali dati per prevedere la possibilità di aprire delle schede per ogni compositore: effettivamente nulla vieta di fare altrettanto con gli artisti, comprese le Orchestre e i Cori.
    LuogoRegistrazione, DataRegistrazione sono strettamente legati a Edizioni, quindi devono stare nella tabella Edizioni.
    Vero, ma avevo capito che TabEdizioni servisse solo per memorizzare Compositore - Titolo - Direttore - Anno.
    Campo Titoli.Librettista: perché sta là? Se i Librettisti sono più di uno (è capitato nella storia) come vorresti gestire questo campo? La tabella Autorità serve a elencare proprio Compositore e Librettista/i...ma...
    Ho messo il campo Librettista in TabTitoli perché non devo gestirli: è vero che ci sono molti casi di librettista doppio (pensa solo a Puccini, con Giacosa e Illica), ma in definitiva mi servirà per aprire una scheda dell'Opera, in cui ricapitolo il titolo, il Compositore, che tipo di opera è, chi ha scritto il testo, quando è andata in scena per la prima volta e, magari, una breve storia sulla sua genesi e fortuna.
    Io, nel mio database ho la tabella Autorità perché gestisco molto altro che va al di là delle sole Opere Liriche. E si tratta di casi di Titoli aventi davvero molti Autori. Se tu ritieni che "tutto sommato" stai gestendo solo opere liriche, o anche altra musica con POCHI Autori, se l'aspetto Autorità (dal lato molti) ti sembra "marginale", puoi bypassare/eliminare la tabella Autorità e trovare un compromesso direttamente in Titoli.
    In realtà, il mio scopo principale è quello di avere un'idea più chiara del mio archivio di lirica: ho talmente tante edizioni, che, oltre a non sapere i dettagli, rischio di acquisire dei doppioni, anche perché la memoria ormai è in inarrestabile declino... Del resto, però, avevo pensato di allargare, per così dire, il campo anche all'altrettanto voluminoso archivio di musica classica (sinfonica, da camera, sacra, ecc); ma sia per la lirica, sia per la classica, ogni composizione ha un solo autore (mi viene ora in mente solo un caso di autori multipli: ma si tratta delle variazioni su un valzer di Diabelli, per le quali diversi compositori scrissero un brano, che, per "colpa" di Beethoven, si ridussero al capolavoro del solo genio di Bonn). Forse ci sarà qualche altro caso, ma non credo di averlo in archivio. Potrei usare una TabCompositori.
    Non condivido l'idea del campo Artisti.TipoArtista. La tipologia dell'Artista (secondo me) non è "assoluta". Come ti regoli per quei Compositori "contemporanei" che sono sia Compositori, sia Direttori o uno dei Cantanti? Non si tratta di un errore grave, ma riflettici un po'.
    Pensando al mio archivio, mi viene in mente che c'è solo Mascagni presente come Compositore e come Direttore, peraltro di opere sue. Nell'ottica della TabArtista, pensavo di distinguere proprio con quel campo il tipo di Artista, visto che lì ci metto tutti: compositori, cantanti, direttori, orchestre, cori, ecc. Quindi: IDArtista=32|Cognome=Mascagni|Nome=Pietro|TipoArtista=Compositore e IDArtista=77| Cognome=Mascagni| Nome=Pietro|TipoArtista=Direttore. In origine pensavo di distinguere tutte queste tipologie, ma poi il tuo suggerimento di riunirli tutti in un'unica tabella mi è sembrato giusto.
    In tabella Artisti hai già deciso che vuoi escludere le "Ensemble" ossia le Orchestre? Vedo i campi Cognome Nome separati.
    No, non le escludo, le indico nel campo Nome; è concettualmente e/o praticamente sbagliato?
    Questa è una mia pignoleria "estetica". Quando compili la Finestra Relazioni evita di far incrociare le linee di join. Potresti spostare Artisti a destra di Autorità. Edizioni più al centro e Interpretazioni, Supporti alla sua sinistra.
    Anche io non sopporto gli incroci, ma non volevo perdere altro tempo...


    Come si fa ad aver vissuto senza mai aver ascoltato la Bohème o la Traviata?
  • Re: Archivio musicale di lirica

    Così va meglio, decisamente.

    Archivio_musicale_Relazioni_Tabelle_2.JPG
    Archivio_musicale_Relazioni_Tabelle_2.JPG


    Come si fa ad aver vissuto senza mai aver ascoltato la Bohème o la Traviata?
Devi accedere o registrarti per scrivere nel forum
21 risposte