database grafico: come evitare che il bordo diventi un vertice

1

Nel mio progetto attuale ho una situazione in cui avrei bisogno di usare una collezione di bordi come raccolta di vertici. Mi piacerebbe trovare un modo per evitarlo. Questo è lo scenario (ridotto).

Questi sono i vertici: Alunno, Scuola, Vacanza Questi sono i bordi: visitsSchool

Pupil
  |   {from}
  +-------------> Holiday
  |   {to}
  +-------------> Holiday
  |
 ---
 \ /
  '
School

Desidero che l'utente mantenga le vacanze o altri eventi. Dovrebbe essere possibile che un alunno visita una certa scuola dall'inizio dell'anno fino alle vacanze estive. Nelle vacanze estive l'alunno visita un'altra scuola. Dopodiché dovrebbe tornare di nuovo alla scuola originale. Il problema è che la vacanza (o altri eventi della data) può essere mantenuta molto irregolare. Per evitare l'utilizzo di un servizio che aggiorna tutte le mie raccolte di bordi di visitSchool, mi è sembrato il modo migliore per collegare il bordo al vertice della vacanza.

    
posta Richard Burkhardt 29.08.2017 - 09:23
fonte

1 risposta

1

C'è un Approccio tematico alla modellazione.

Credo che l'uso dell'approccio tematico con i costrutti del grafico (cioè le relazioni binarie) sia talvolta definito come l'approccio Davidsonian o Neo-Davidsonian.

Questo approccio richiede la creazione di un'identità per un evento, come un nodo semplice, e quindi la descrizione dell'evento utilizzando come soggetto di un numero di relazioni tematiche individualmente semplici come has-patient, has-agent, ecc. .. Puoi avere anche relazioni temporali, forse nel tuo caso ha-begin-time e ha-end-time.

Un vantaggio di questo approccio è che funziona con ambienti di modellazione primitivi, come RDF, che non supportano più delle relazioni oggetto-verb-oggetto binario, e anche quelli che non supportano le istruzioni di ordine superiore (es. sulle dichiarazioni). Questo approccio supporta abbastanza bene le informazioni facoltative / mancanti (e senza l'uso di nulls come si potrebbe trovare un modello relazionale con molti attributi nella tabella dove potrebbero essere trovati null per informazioni mancanti / opzionali).

Tuttavia, uno svantaggio è l'esplosione dei bordi e il possibile aumento della complessità delle query.

Tutto sommato da un punto di vista matematico questo è simile al tuo approccio usando i vertici di ordine superiore (un vertice che può riferirsi a un altro vertice), quindi si tratta di standardizzare sulla terminologia e sulle capacità del tuo ambiente di modellazione (ad es. se è supportato l'ordine superiore).

Tuttavia, se il tuo sistema di modellazione non supporta più spigoli tra lo stesso soggetto e oggetto (nella stessa direzione, usando lo stesso verbo / relazione), allora usando il tuo approccio basato sui vertici non sarai necessariamente in grado di distinguere tra diversi presenze della stessa persona nella stessa scuola - mentre con l'approccio tematico si potrebbe (dal momento che si utilizzano i nodi per gli eventi anziché i bordi, assumendo che si possa semplicemente creare un nuovo nodo unico per altri nodi).

    
risposta data 29.08.2017 - 21:52
fonte

Leggi altre domande sui tag