Gestione ed analisi dei dati con Oracle

Document Sample
Gestione ed analisi dei dati con Oracle Powered By Docstoc
					Gestione ed analisi dei dati con Oracle

                 Cristiano Bozza
             Gruppo Emulsioni Salerno
                 Bari, Gen 2004




      •   Database relazionali: come e perché
      •   Accesso ai dati
      •   Oracle – Concetti base
      •   Oracle – Replicazione
      •   Oracle – Analisi statistica
      •   Oracle all’OPERA
      •   Conclusioni
Database relazionali: come e perché
Database relazionali: come e perché


    “Database”  “archivio dati”

    “Relazionale”  “che tiene conto delle relazioni logiche tra dati”




    Esiste una vera e propria teoria matematica dei database relazionali




    Normalizzazione (1NF, 2NF, 3NF, 4NF, 5NF, BCNF...)
Database relazionali: come e perché

    Tenere traccia delle relazioni ha un costo notevole

    QUANDO NON CONVIENE USARE UN DB RELAZIONALE:

    • Dati che vengono letti e processati sequenzialmente
    (es. Campioni audio, video)
    • Dati completamente scorrelati
    • Dati “non deterministici” da trattare solo in forma “aggregata”
    (numeri reali da statistiche e relativi estimatori)


    QUANDO CONVIENE USARE UN DB RELAZIONALE:

    • Dati su cui si effettuano frequenti ricerche non sequenziali
    • Dati complessi con evidenti correlazioni logiche deterministiche
    • Insiemi di dati in cui si trovano singoli campioni rilevanti, di cui è
    importante l’identità
    (es. Interazioni di neutrino interessanti)
Database relazionali: come e perché

      Struttura funzionale di un DB relazionale



               Librerie di accesso


RDBMS: Relational Data Base Management System     RDBMS

     File(s) di dati
      (e non solo)
                                          Nota:
                                          Non si accede MAI
                                          direttamente ai files di un DB
Database relazionali: come e perché

    Esempi di relazioni logiche tra dati:

    •   Studenti  Professore
    •   Ordini  Cliente
    •   Particelle  Evento
    •   Tracce  Vertice
    •   Lastrine di emulsione nucleare  brick  wall  supermodulo
    •   procedura e insieme di parametri  Risultato di un processo
    •   Directory  file

    Relazioni che includono grandezze “non deterministiche” sono
    mal definite
    • Posizione relativa, in coordinate, di due oggetti
    (se gli errori di misura sono sufficientemente grandi, si possono
    perfino “distruggere” le relazioni topologiche)
    • Appartenenza di una particella ad un fascio non collimato
    (esiste solo una “probabilità” di appartenenza, non una relazione
    certa)
Database relazionali: come e perché


    Vantaggi di un DB relazionale:

    Incorporare la definizione delle relazioni accelera la ricerca e l’accesso

    È impossibile immettere dati che violino le regole logiche
      Es: una base track DEVE avere una e una sola microtraccia per lato
                Es: un evento DEVE “nascere” in un modulo del detector


    Svantaggi:

    La scrittura delle informazioni è rallentata dalla necessità di
    instaurare e controllare le relazioni
Database relazionali: come e perché


    COME SONO ORGANIZZATI I DATI DI UN DB RELAZIONALE?

    Fisicamente: non è importante saperlo!

    Logicamente: per tabelle



    Tabella: insieme di record con identica struttura
    Record: n-upla ORDINATA di dati semplici
    Dato semplice: valore di un tipo predefinito
              (Es: Int, Float, Date/Time, Yes/No, Number, Varchar, Text...)
Database relazionali: come e perché

    Esempi di tabelle

     Studenti:          Nome          Cognome         DataNascita

                        Alcibiade     Pastrocchi      11 Luglio 1980

                        Medea         Ranocchia       3 Marzo 1981




     Tracce:      Grani      SlopeX   SlopeY       PosX     PosY
                  28         0.100    -0.143       1321.3   3213.2
                  30         -0.052   0.350        1260.2   3800.2



    Alle tabelle si accede con appropriate “queries” (interrogazioni)
Database relazionali: come e perché

    Il linguaggio di query è (quasi) lo stesso per tutti i DB relazionali:

    SQL, che (non) significa Structured Query Language

    In pratica, ogni RDBMS usa un “dialetto” di SQL:
    Jet-SQL (MS Access), T-SQL (MS SQL Server), PL/SQL (Oracle)

    I vari dialetti sono però molto simili


    Una query per leggere dati da un DB:
    SELECT Grani, SlopeX, SlopeY FROM Tracce WHERE(Grani>=18)
    (restituisce un insieme di righe con informazioni di tracce)

    Una query per inserire dati in un DB:
    INSERT INTO Tracce (Grani, SlopeX, SlopeY, PosX, PosY)
    VALUES (25, -0.259, 0.034, 1335.3, 1430.7)
    (inserisce una nuova traccia nella tabella delle tracce)
Database relazionali: come e perché

    Un Data Base relazionale si gestisce interamente con queries

    • Creare / eliminare / modificare tabelle

    • Creare / eliminare / modificare altre queries

    • Creare sinonimi

    • Gestire utenti e permessi

    In tutti questi casi, la sintassi del dialetto SQL usato dipende
    strettamente dalle particolarità e dalle prestazioni che il RDBMS
    in esame è in grado di offrire

    Es. Oracle crea una tabella in un tablespace, MS SQL Server lo
    fa in un filegroup
Database relazionali: come e perché

    Il RDBMS usa suoi tipi e sue funzioni interne per gestire i file del
    database.


    Fortunatamente, questi tipi e funzioni sono inaccessibili
    (garanzia di integrità e coerenza dei dati)


    Si accede ai dati di un DB relazionale esclusivamente con
    queries SQL, quale che sia il linguaggio del programma che
    accede al DB (programma client).


    La libreria di accesso consente di lanciare le queries SQL e di
    leggere i risultati
Database relazionali: come e perché

    Differenza tra dati “organizzati/ordinati” e dati “flat stream”

    Esempio: ricercare un nome in un’agenda disordinata/ordinata
    di N elementi
    (a: N=100, b: N=106)

    Agenda disordinata: C=N/2 confronti in media
    (a: C=50, b: N=5×105)

    Agenda ordinata: C=log2N confronti al max
    (a: C7, b: C20)

    Un buon RDBMS organizza i campi indicizzati delle tabelle
    in alberi binari ordinati e bilanciati, senza alcun intervento
    da parte dell’utente/amministratore del DB
Database relazionali: come e perché

    Indici, campi indicizzati, chiavi primarie

    Un indice consente di imporre ordine e vincoli sui record di una
    tabella:
    • Indice senza vincolo di unicità
    • Indice con vincolo di unicità

    Per costruire un indice si usano i valori di uno o più campi.
    Questi campi divengono campi indicizzati e il RDBMS
    costruisce un albero di ricerca e altre strutture che gli
    consentiranno di accelerare le ricerche ed eventualmente di
    verificare rapidamente le condizioni di unicità.

    Esempio 1: Il Nome di uno studente ammette duplicati
    Esempio 2: Il Cognome di uno studente ammette duplicati
    Esempio 3: La coppia (Nome, Cognome) non ammette duplicati
Database relazionali: come e perché

    Indici, campi indicizzati, chiavi primarie

    Esempio 4: Il numero di supermodulo (OPERA) non ammette duplicati
    Esempio 5: Il numero di wall ammette duplicati
    Esempio 6: La coppia (wall, supermodulo) non ammette duplicati

    Se un indice non ammette duplicati, è una buona chiave primaria

    Una chiave primaria IDENTIFICA UNIVOCAMENTE il record in una
    tabella.
    L’uso dei campi e degli indici va ottimizzato allo scopo di ridurre lo
    spazio disco, ottimizzare le ricerche ed eliminare le ridondanze.

                       Ridondanza  Incoerenza
Database relazionali: come e perché

    Indici, campi indicizzati, chiavi primarie

    Per ragioni funzionali, si può decidere di sostituire una chiave
    primaria complessa con una chiave numerica costituita da un solo
    campo (sono accelerati i confronti e le ricerche)

    Esempio:           Nome                  Cognome
                       Epaminonda            Robusti
                       Tersicore             Pistozzi
    Diventa:
         Nome            Cognome         ID
         Epaminonda      Robusti         3
         Tersicore       Pistozzi        7


    La chiave primaria rimane (Nome,Cognome), ma abbiamo ID come
    chiave alternativa
Database relazionali: come e perché

        Relazioni e chiavi esterne

        Una relazione consente di migliorare sia esteticamente che
        funzionalmente il progetto di un DB.

        Esempio: Studenti e Professori

 NomeStudente       CognomeStudente NomeProfessore       CognomeProfessore

 Cornelio           Vinci                Ermenegildo     Perelli

 Asako              Keizumi              Ermenegildo     Perelli

 Tina               Menestrelli          Mìcol           Antoniazzi

 Battista           Amoruso              Ermenegildo     Perelli


        I campi “professore” sono ridondanti e sono potenziale fonte di errori
Database relazionali: come e perché

     Relazioni e chiavi esterne

  Ristrutturiamo il
                                 1   ID     Nome          Cognome
  tutto in due                       4      Ermenegildo   Perelli
  tabelle + una
                                     9      Mìcol         Antoniazzi
  relazione
  (uno a molti)
                                                                            
                      Nome                Cognome         ID        ID_Professore
                      Cornelio            Vinci           1         4
                      Asako               Keizumi         3         4
                      Tina                Menestrelli     4         9
                      Battista            Amoruso         8         4

  Studenti.ID_Professore: chiave esterna

  Professori.ID: chiave alternativa (si può fare anche con la primaria)
Database relazionali: come e perché

      Join

  Se l’informazione che interessa è dispersa su più tabelle si effettua un
  join

      SELECT Studenti.Nome, Studenti.Cognome, Professori.Nome,
      Professori.Cognome FROM Studenti INNER JOIN Professori ON
      (Studenti.ID_Professore = Professori.ID)

  Studenti.Nome    Studenti.Cognome    Professori.Nome   Professori.Cognome

  Cornelio         Vinci               Ermenegildo       Perelli

  Asako            Keizumi             Ermenegildo       Perelli

  Tina             Menestrelli         Mìcol             Antoniazzi

  Battista         Amoruso             Ermenegildo       Perelli
Database relazionali: come e perché

     Join e relazioni

  I join possono essere interni (INNER) o esterni (LEFT, RIGHT).

  Nei join esterni possono comparire anche elementi di una tabella che
  non hanno corrispettivo nell’altra (Es. Professori senza studenti)


  Es. Left join: “tutti i record della tabella menzionata alla sinistra delle
  parole LEFT JOIN, e SOLO i record della tabella menzionata alla
  destra che soddisfano la clausola ON...”


  ATTENZIONE! Nell’esempio studenti-professori, non è possibile avere
  studenti senza professore, perché il RDBMS impedisce di inserire un
  record con un valore della chiave esterna che non sia presente nella
  chiave primaria (o alternativa)
Database relazionali: come e perché

     Join e relazioni
                                1   ID     Nome          Cognome
                                    4      Ermenegildo   Perelli
                                    9      Mìcol         Antoniazzi

                                                                             
                     Nome                Cognome         ID        ID_Professore
                     Cornelio            Vinci           1         4
                     Asako               Keizumi         3         5 (NO!)
                     Tina                Menestrelli     4         9
                     Battista            Amoruso         8         4

   Questo è il tipico esempio di errore che viene impedito da un DB
   relazionale.
   Es. Non posso inserire un evento se il brick a cui mi riferisco non esiste
Database relazionali: come e perché

     Join e relazioni


   Join: strumento sintattico / semantico per costruire queries che
   reperiscano dati da più di una tabella


   Relazioni: sono inerenti alla logica stessa dei dati e dello schema


   Un join NON è una relazione, ma si usa un join per ricostruire dati
   dispersi su più tabelle che sono in relazione


   Si può usare un join anche dove non c’è una relazione, ma il tempo di
   accesso usualmente scala di ordini di grandezza (non si possono più
   usare alberi e strutture di ricerca)
Database relazionali: come e perché

     Vincoli (Constraints)


   In moltissimi casi reali, esistono dei vincoli che i dati devono rispettare



   Esempio: il numero di foglio in un brick di OPERA deve essere tra 1 e 57


   Un RDBMS è in grado di rifiutare l’immissione di dati che non rispettino i
   vincoli imposti


   I vincoli possono essere espressi con funzioni logico-matematiche
   complesse
   Esempio: (IsCS = 1 AND PLATE > 0) OR (IsCS = 0 AND PLATE >= 1
   AND PLATE <= 57)
Database relazionali: come e perché

     Normalizzazione

   Esistono regole matematiche ben precise che definiscono il modo
   corretto di costruire uno schema per un DB relazionale

   Riduzione alla 1a forma normale, 2a forma normale, 3a forma normale,
   forma normale di Boyce-Codd (BCNF), 4a forma normale, ecc...


   Logica in comune a tutte le procedure di normalizzazione:
                             Evitare ridondanze


   Le procedure di normalizzazione “dividono” le tabelle in sottotabelle e
   creano nuove relazioni
Database relazionali: come e perché

     Normalizzazione

   Esempio: catalogo CD-autori

       Titolo                       Nome       Cognome autore
                                    autore
       Mi tierra                    Gloria     Estefan

       El apartamiento              Gilberto   Santarosa

       El apartamiento              Willy      Rosario

       Tres gotas de agua bendita   Gloria     Estefan

       Tres gotas de agua bendita   Celia      Cruz


   Diventa...
Database relazionali: come e perché

          Normalizzazione
  ID         Titolo                         Una dipendenza a più valori
  3          Mi tierra                      (MVD-Multi Valued Dependency)
  5          El apartamiento                si realizza con una tabella pivot
  8          Tres gotas de agua bendita     Questa tabella pivot è fatta solo di
                                            chiavi primarie, ma i singoli indici
      ID_CD       ID_Autore                 possono essere duplicati
      3           5
                                     ID   Nome         Cognome
      5           4
                                     2    Gilberto     Santarosa
      8           1
                                     1    Celia        Cruz
      8           5
                                     4    Willy        Rosario
      5           2
                                     5    Gloria       Estefan
      SELECT tb_CD.Titolo, tb_Autori.Nome, tb_Autori.Cognome FROM tb_CD
      INNER JOIN (tb_Pivot INNER JOIN tb_Autori ON (tb_Pivot.ID_Autore =
      tb_Autori.ID)) ON (tb_CD.ID = tb_Pivot.ID_CD)
Database relazionali: come e perché

     Normalizzazione

   Al procedere della normalizzazione, il numero di tabelle aumenta
   Aumenta il numero di join richiesti nelle queries

   A volte si “denormalizza” volontariamente un DB relazionale quando lo
   schema rischia di diventare troppo artificioso e le prestazioni cominciano
   a risentirne

   Sono scelte potenzialmente rischiose, che riguardano di solito tabelle su
   cui vi sono continui accessi, critiche per le prestazioni complessive

   Appositi programmi, detti analizzatori di schema / query, aiutano il
   DBA (Data Base Administrator) ad effettuare queste scelte.
Database relazionali: come e perché

 Esempio di un frammento di schema di DB relazionale per la Fisica

   (Adattato dall’OPERA Emulsion Scanning DB)


  Tb_Plates   Tb_MicroTracks          Tb_VolumeTracks
  ID          ID                      ID
  ID_Brick    ID_Plate                SlopeX
  Number      SlopeX                  SlopeY
              SlopeY                  PosX                     Tb_Vertices
              PosX                    PosY                     ID
              PosY                    ID_DownstreamVtx         PosX
              ID_VolumeTrack          ID_UpstreamVtx           PosY


              Rappresentazione della ricostruzione di un evento nel
              volume sensibile del detector, a partire dalle misure di
              piani traccianti
Accesso ai dati
Accesso ai dati

     Un DB relazionale non è legato ad alcun particolare linguaggio di
     programmazione o tecnologia software:
     i dati sono completamente autoconsistenti

     La libreria di accesso che consente di lanciare le queries SQL
     e di leggere i risultati dipende innanzitutto dalla tecnologia
     software:
     Open Data Base Connectivity (ODBC)
     OLE DB
     OCI/OCCI (Oracle C/C++ Interface)
     GDA (GNOME Data Access)
     ODP.NET (Oracle Data Provider for .NET)

     Una stessa tecnologia software può essere resa disponibile per diversi
     linguaggi:
     C/C++, C#, Pascal, BASIC, Java, Perl, Python, ecc...
Accesso ai dati

     Tutte le tecnologie d’accesso hanno elementi comuni:


       1. Connessione ad un RDBMS
       2. Invio di testo SQL al RDBMS
       3. Lettura dei risultati delle queries
       4. Traduzione dei risultati dal formato del DB al formato nativo
          del linguaggio del programma
               (può essere necessario un passo intermedio)


     La tendenza generale è di rendere più semplice possibile la
     connessione a RDBMS
     (Le applicazioni finanziarie, mediche, industriali, Web fanno ormai
     uso estesissimo di RDBMS)
Accesso ai dati

     A seconda della libreria possono esserci leggere differenze nella
     sintassi SQL:

       SELECT Grani, SlopeX, SlopeY FROM Tracce WHERE(Grani>=18)

       SELECT “Grani”, “SlopeX”, “SlopeY” FROM “Tracce” WHERE(“Grani”>=18)

       SELECT [Grani], [SlopeX], [SlopeY] FROM [Tracce] WHERE([Grani]>=18)


     Il fenomeno è evidente nel caso delle queries parametrizzate
       INSERT INTO Tracce (Grani, SlopeX, SlopeY, PosX, PosY)
       VALUES (?, ?, ?, ?, ?)

       INSERT INTO Tracce (Grani, SlopeX, SlopeY, PosX, PosY)
       VALUES (:gr, :sx, :sy, :px, :py)

     L’identificazione dei parametri può avvenire talvolta per nome,
     talvolta per posizione
Accesso ai dati

     Queries parametrizzate

     L’esecuzione di una query richiede diverse fasi:

       1. Controllo sintattico
       2. Riconoscimento semantico
       3. Elaborazione di un “piano di esecuzione” (execution plan)
       4. Esecuzione delle operazioni richieste
       5. Eventuale presentazione di dati in uscita

     Le fasi 4 e 5 sono le sole che si possano considerare attive
     È possibile ottimizzare le fasi 1-3 con queries parametrizzate
       INSERT INTO Tracce (Grani, SlopeX, SlopeY, PosX, PosY)
       VALUES (:gr, :sx, :sy, :px, :py)

     Interpretata e pianificata 1 volta – eseguita N volte sostituendo i
     parametri
Accesso ai dati

     Protezione dei dati

     I dati sono spesso preziosi e possono costare molto lavoro
     Es. Il nostro conto in banca è semplicemente... un numero!
     Un evento di oscillazione di neutrino può costare 10 anni di lavoro
     e molti finanziamenti

     Ottica dei DB relazionali:
     i dati sono più importanti dei programmi che li producono e
     gestiscono!

     I buoni DB relazionali offrono protezione ai dati a prescindere dal
     file system che li supporta

     All’interno di un DB esistono diversi livelli di criticità dei dati, e il
     file system non può tener conto di questa specificità:
     Il file system non è organizzato per dati ma per gruppi di
     dati scorrelati (files)!!!
Accesso ai dati

     Protezione dei dati

     • Protezione da lettura: restrizione di SELECT su una tabella
     (o addirittura su singole colonne)

     • Protezione da scrittura: restrizione di INSERT su una tabella

     • Protezione da alterazione: restrizione di UPDATE su una tabella (o
     addirittura su singole colonne)

     • Protezione da cancellazione: restrizione di DELETE su una tabella

     I permessi di accesso su un oggetto possono essere diversi da
     utente a utente

     È possibile raggruppare insiemi di permessi in ruoli e assegnare
     ruoli (cumulativamente) agli utenti
Accesso ai dati

     Protezione dei dati

     L’accesso ad alcuni dati può essere ristretto anche per ragioni di
     praticità:

     Es. Impedire il SELECT su una tabella che contenga 108 record
     per evitare l’intasamento della rete
     In tal caso, si preparano delle queries o delle stored procedures
     predefinite e ben controllate, che gli utenti possono usare per
     accedere indirettamente ai dati della tabella.

     Accanto ai permessi, esistono i privilegi

     Permesso: riferito sempre ad un oggetto

     Privilegio: diritto di compiere un’azione che non coinvolge un oggetto
     esistente (Es. creare un oggetto, assegnare permessi)
Accesso ai dati

     Generazione di identità

     È spesso necessario generare dei codici numerici che identifichino
     univocamente un record in una tabella


     Normalmente, un DB accetta connessioni contemporanee da
     diversi utenti

     Bisogna evitare “collisioni” (Id clashing) nella generazione di
     questi numeri  non possono essere i clients a generarli, ma il
     RDBMS deve farsi carico di questo


     Il RDBMS è l’unica entità in grado di serializzare gli accessi ad una
     tabella, e quindi è l’unica entità che può avere una “ricetta” per
     creare gli identificatori
Accesso ai dati

     Generazione di identità

     Esistono due “ricette” base che con diverse varianti possono
     essere usate per generare identificatori


     1. Sequenze a “contatore”
     2. GUID (numeri a 128 bit creati con un algoritmo che minimizza
        statisticamente la possibilità di duplicazione)

     Il metodo 2 è particolarmente lento, ma ottimo per esigenze di
     replicazione (vedi seguito)


     Il metodo 1 è semplice, ma nel caso di replicazione va
     opportunamente modificato (vedi seguito)
Accesso ai dati

     Generazione di identità

     • Campi “Contatore” (Autonumber)
     • Sequenze (min, max, incremento)

     Le due tecniche sono sostanzialmente equivalenti
     La seconda richiede però l’innesco di un trigger (vedi seguito)


     Problema teorico: se le identità sono generate dal RDBMS, come
     si può conoscere a posteriori l’id che è stato assegnato ad una
     nuova riga?

     Non necessariamente è l’id più grande:
     • le sequenze non sono sempre crescenti
     • è possibile che arrivino richieste di inserimento da altri processi
Accesso ai dati

       Generazione di identità

       Problema pratico: come si “aggancia” una microtrack alla volume
       track a cui appartiene, visto che l’id è ignoto a priori?

  Tb_Plates     Tb_MicroTracks         Tb_VolumeTracks
  ID            ID                     ID
  ID_Brick      ID_Plate               SlopeX
  Number        SlopeX                 SlopeY
                SlopeY                 PosX                    Tb_Vertices
                PosX                   PosY                    ID
                PosY                   ID_DownstreamVtx        PosX
                ID_VolumeTrack         ID_UpstreamVtx          PosY

       La soluzione esatta DIPENDE dal RDBMS usato, e la sintassi SQL
       relativa varia
Accesso ai dati

     Generazione di identità

     MS SQL Server, MS Access richiedono 2 queries e l’accesso ad una
     variabile di sistema
       • INSERT INTO Tb_VolumeTracks (SlopeX, SlopeY, PosX, PosY,
       ID_DownstreamVtx, ID_UpstreamVtx) VALUES (?, ?, ?, ?, ?, ?)
       • SELECT @@IDENTITY oppure SELECT @@SCOPE_IDENTITY


     Oracle richiede una query e una sintassi SQL non standard
       • INSERT INTO Tb_VolumeTracks (SlopeX, SlopeY, PosX, PosY,
       ID_DownstreamVtx, ID_UpstreamVtx) VALUES (:sx, :sy, :px, :py,
       :iddw, :idup) RETURNING ID INTO :newid

     Con Oracle l’uso di queries parametrizzate è obbligatorio per
     leggere il parametro di uscita newid
Accesso ai dati

     Procedure (stored procedures)

     I buoni RDBMS consentono di programmare delle operazioni che
     vanno eseguite spesso e di conservarle all’interno del DB, per
     essere richiamate quando serve

     Le stored procedures vengono “compilate” in un piano di
     esecuzione una volta per tutte, e risultano di norma più veloci di
     un’analoga sequenza di istruzioni generata “al volo”.

     Una stored procedure può avere parametri in ingresso e in uscita,
     e un valore di ritorno

     Una stored procedure può essere “autorizzata” a compiere
     operazioni delicate per le quali l’utente non ha i privilegi necessari
Accesso ai dati

     Triggers

     Un RDBMS può essere istruito a compiere delle azioni in risposta
     ad un determinato evento

     Esempio 1: correzione automatica di un valore errato prima di
     inserirlo in una tabella (ON BEFORE INSERT, ON BEFORE
     UPDATE)

     Esempio 2: generazione di un’identità per l’inserimento di una
     nuova riga (ON BEFORE INSERT)


     Esempio 3: invio di una mail di notifica al magazzino che un
     determinato prodotto è esaurito a seguito di un prelievo
     (ON AFTER UPDATE)
Accesso ai dati

     Transazioni

     Oltre all’integrità referenziale dei singoli dati, si vuole preservare
     l’integrità logica di complessi di dati

     Esempio: inserendo 10000 tracce in un DB, per un errore di rete
     la comunicazione si interrompe dopo 583 tracce

     Problema: è meglio riprendere la scrittura dopo la 583a o
     annullare e ripetere tutto?
     Se non si annulla la scrittura, un’interrogazione al DB fatta subito
     dopo l’interruzione “vedrà” una zona di 583 tracce anziché 10000
     risposta non deterministica!!! NO!

     La scrittura delle 10000 tracce deve essere resa “atomica” cioè
     “non suddivisibile”
Accesso ai dati

     Transazioni

     • Una transazione viene aperta su richiesta del client

     • Se una sola operazione fallisce, tutta la transazione è annullata
     (operazione di rollback)

     • Se tutte le operazioni hanno successo, il client sceglie se
     accettare la transazione (operazione di commit) o annullarla
     (operazione di rollback)

     • Per tutta la durata della transazione, rispetto agli altri client le
     tabelle coinvolte appaiono congelate nello stato che avevano
     prima dell’inizio della transazione

     Tutto ciò assomiglia molto a un prelievo con carta di
     credito/bancomat... Che non sia solo una coincidenza?
Accesso ai dati

      Transazioni

      Esempio: due PC scrivono contemporaneamente risultati di
      scanning sulla stessa tabella (usando due transazioni diverse
      contemporanee)



          PCMic#1                                        PCMic#2

Gli Id generati
non si ripetono,     ID       ID_Brick   Grs   SX      SY     PX     PY
ma in ogni         190976      1563      28    0.32   0.02    12.0   43.4
transazione        190977      2432      20    -0.2   -0.03   20.2   21.2
non sono           190978      1563      25    0.12   0.13    12.2   42.2
sempre             190979      1563      26    0.22   0.05    13.7   43.8
consecutivi!!!              Se una transazione viene annullata, rimarrà un
                                            “buco” nella sequenza degli Id
Accesso ai dati

     Esempi di codice

     Esempio 1 (C++ / OCCI): elenco dei vertici d’interazione


    const string userName = “OPERA";
    const string password = “operaPwd812g";
    const string connectString = “dbfarm1.scanning.sa.infn.it:1521:OPERADB1";

    Environment *env = Environment::createEnvironment();
    {
      Connection *conn = env->createConnection(userName, password, connectString);
      Statement *stmt = conn->createStatement("SELECT PosX, PosY, PosZ FROM TB_VERTICES");
      ResultSet *rs = stmt->executeQuery();
      while (rs->next())
         cout << “X: " << rs->getFloat(1) << “ Y: “ << rs->getFloat(2) << “ Z: “ << rs->getFloat(3);
      stmt->closeResultSet(rs);
      conn->terminateStatement(stmt);
      env->terminateConnection(conn);
    }
    Environment::terminateEnvironment(env);
Accesso ai dati

     Esempi di codice

     Esempio 2 (C#): ricerca di una traccia di scanback e
     aggiornamento per inseguimento sul prossimo foglio
       OleDbConnection myconn = new OleDbConnection("Provider=OraOLEDB.Oracle;Data
                    Source=OPERADB1;User ID=KRYSS; Password=MYPASSWD; OLEDB.NET=
                    True");
       myconn.Open();
       DataSet ds = new DataSet();
       OleDbDataAdapter da = new OleDbDataAdapter(“SELECT ID, PosX, PosY, SlopeX,
                    SlopeY FROM TB_BaseTracks WHERE(ID_ZONE=34321 AND ABS(PosX –
                    12004.3) < 20 AND ABS(PosY – 4302.2) < 20 AND ABS(SlopeX – 0.043) <
                    0.003 AND ABS(SlopeY + 0.012) < 0.003)”, myconn);
       da.Fill(ds);
       DataRow bestdr = null;
       double bestpar = 0.0;
       foreach (DataRow dr in ds.Tables[0].Rows)
       {
                    ... Seleziona la migliore secondo un certo criterio
       }
       new OleDbCommand(“INSERT INTO TB_ScanBack (ID_ZONE, ID_BASETRACK) VALUES
                    (34321, “ + bestdr[0].ToString() + “)”, myconn, null).ExecuteNonQuery();
       myconn.Close();
Oracle – Concetti base
Oracle – Concetti base

    Pregi di Oracle
    È il sistema di DB relazionale disponibile su più piattaforme
    (Windows, Linux, AIX, Solaris, etc...)
    Scalabile
    Robusto e affidabile
    Flessibile e relativamente facile da amministrare
    Supporto, documentazione e base di conoscenza buoni
    Difetti di Oracle
    Non è tra i più veloci (alcuni RDBMS commerciali sono 3 volte
    più veloci a parità di hardware)
    È tra i sistemi più costosi (licenze per numero di processori)
                  (ma è gratis per gli esperimenti affiliati al CERN!!!)
Oracle – Concetti base             Processi client
                                    (via TCP/IP)
    Architettura




  File(s) di dati


                     Oracle 9iDS
                     (DB server)
  Archivio
  transazioni
Oracle – Concetti base

    Architettura
                                  Listener




                                        DS Workflow




    Oracle 9iDS NON funziona come un Web Server

    Accesso tramite Listener, connessioni stabili con i processi client
Oracle – Concetti base

    Architettura

       Web server: in ascolto (listening) su porta 80

       Le richieste HTTP vengono esaudite senza connessione
       permanente (modello “connectionless”)




       Oracle server: in ascolto (listening) su porta 1521 (o altra a
       seconda della configurazione)

       Per tutto il tempo necessario, la connessione con ogni singolo
       client viene mantenuta stabile
Oracle – Concetti base

    Architettura

       Un DB di Oracle ha un nome di servizio

       Diversi servizi possono condividere la stessa listening port


       Nome di un DB Oracle:
       dbfarm1.scanning2.sa.infn.it:1521:OPERADB1


              Macchina              Porta    Servizio


       È possibile definire delle “scorciatoie” per i nomi (TNS names)
Oracle – Concetti base

    Architettura

       Oracle immagazzina fisicamente i dati in tablespaces

       Ogni utente può avere il suo schema logico

       Ogni utente può accedere agli schemi di altri utenti
       (se permessi e privilegi sono configurati correttamente)

       È possibile creare sinonimi generali in modo che tutti gli utenti
       possano riferirsi ad uno stesso oggetto con lo stesso nome

       Esempio: l’utente OPERA può creare le sue tabelle nel
       tablespace OPERADATA, nello schema OPERA e pubblica dei
       sinonimi che consentono a tutti gli utenti di accedere agli oggetti
       del suo schema senza il prefisso “OPERA.”
Oracle – Concetti base

    Amministrazione



       Oracle 9iDS ha un pacchetto di software basato su Java che
       ne consente l’amministrazione anche in remoto,
       indipendentemente dal sistema operativo ospite


       Strumenti principali:

       • Net Configuration Assistant
       • Enterprise Manager Console
       • SQL Plus Worksheet
Oracle – Concetti base

    Amministrazione – Net Configuration Assistant
Oracle – Concetti base

    Amministrazione – Enterprise Manager Console
Oracle – Concetti base

    Amministrazione – SQL Plus Worksheet
Oracle – Concetti base

    Software del Server

       L’installazione del software del server è (quasi) completamente
       automatica (dipende dal sistema operativo ospite)

       Una volta completata la procedura di installazione, è possibile
       creare in pochissimo tempo un DB

    Software del Client

       Il software per i clients consiste in pacchetti in Java che
       consentono anche l’amministrazione remota, e alcune librerie

       Librerie installate:
       • OCI/OCCI
       • OraOLEDB (solo versioni Windows)
       • ODP.NET (solo versioni Windows)
       • ODBC
       • JDBC
Oracle – Concetti base

    Preparazione di un client Oracle


       Nella configurazione più semplice, basta importare un file
       TNSNAMES.ORA prodotto da un’altra macchina che accede ai
       server di interesse


       In alternativa, si può usare il Net Configuration Assistant per
       creare nuove connessioni


       In scenari più complessi, installando OMS (Oracle Management
       Server) e gli Oracle Directory Services è possibile realizzare
       schemi di connessione avanzati
Oracle – Concetti base

    Object - Relational Programming


       Un grafo di classi può essere tradotto in un grafo di tabelle e
       relazioni



       OTT – traduce le gerarchie di classi in oggetti



       Tipi e oggetti XML – supporto XML  Web Services
Oracle – Replicazione
Oracle – Replicazione

    Generalità


       La replicazione consente di soddisfare due esigenze:

       1. Incrementare la potenza, distribuendo il carico di lavoro su
          più macchine
       2. Migliorare la stabilità del servizio

       La replicazione non è soltanto un backup


       Vengono replicati i DB e i server, non solo i dati

       La replicazione è un processo dinamico: server diversi devono
       rispondere alle queries allo stesso modo  Sincronizzazione
Oracle – Replicazione

    Multi-Master Replication


       Viene stabilita una topologia di replicazione




       La replicazione avviene con la tecnica delle transazioni
       ritardate (delayed transactions)


       Espressioni SQL che modifichino il contenuto delle tabelle
       (DML statements) eseguite su un server vengono
       “riecheggiate” sugli altri ad intervalli prestabiliti
Oracle – Replicazione

    Multi-Master Replication


       Il sistema tenta di correggere automaticamente eventuali errori
       di replicazione:

       • Indisponibilità di un server
       • Errori di rete
       • Ambiguità

       Eventuali transazioni comunque fallite vengono registrate in un
       apposito “replication journal” e possono essere corrette dagli
       amministratori del gruppo di replicazione


       Se INSERT, UPDATE e DELETE avvengono su una sola
       macchina, la generazione degli Id non è un problema
Oracle – Replicazione

    Multi-Master Replication


       Se le modifiche dei dati possono avvenire su diverse macchine,
       bisogna costruire gli Id in maniera tale da evitare “collisioni”


       2 soluzioni:

       1. Sostituzione di sequenze con GUID
       2. Generazione di sequenze senza intersezione


       La soluzione 1 funziona (statisticamente) ma è lenta

       La soluzione 2 richiede un minimo di amministrazione in più
Oracle – Replicazione

    Materialized Views


       Una vista è il risultato di una query di SELECT registrata nel
       database; in pratica, un modo per “vedere” una parte dei dati
       in una tabella

       Una vista è calcolata “al volo” quando serve

       Una vista materializzata (materialized view) è in pratica
       una replica di un sottoinsieme dei dati di una tabella

       • il suo contenuto dipende dalla tabella
       • occupa fisicamente spazio disco
Oracle – Replicazione

    Materialized Views


       Le viste materializzate possono essere modificabili o non
       modificabili


       Quando gli utenti locali di un database centrale sono interessati
       solo ad un sottoinsieme ben definito dei record in una tabella,
       una vista materializzata è l’ideale per minimizzare il carico di
       replicazione


       Una modifica in una vista materializzata modificabile viene
       “riecheggiata” verso il master con una transazione ritardata
Oracle – Replicazione

    Materialized Views


       Una query definisce i records che devono apparire in una vista
       materializzata

       Esempio: un laboratorio di scanning può aver bisogno di una
       copia locale dei suoi dati, per non dover sempre accedere al
       server centrale


       Usare sequenze di Id senza intersezione è un modo efficace
       per “districare” i dati provenienti da laboratori diversi senza
       dover effettuare molti join
Oracle – Replicazione

     Materialized Views


        Esempio di corretta generazione di sequenze per replicazione



         Lab #1                                   Lab #2


Il lab #1 genera    ID    ID_Brick Grs     SX   SY    PX    PY

Id da 100000 a    100234    1563   28    0.32  0.02  12.0  43.4

199999            202346    2432   20     -0.2 -0.03 20.2  21.2

Il lab #2 genera 100235     1563   25    0.12  0.13  12.2  42.2

Id da 200000 a    100236    1563   26    0.22  0.05  13.7  43.8

299999
            ATTENZIONE! Una politica di generazione di sequenze
                 di Id non sostituisce l’integrità relazionale!!!
Oracle – Replicazione

    Materialized Views


       Ogni laboratorio ha copia solo dei propri dati

                             ID     ID_Brick   Grs   SX      SY     PX     PY
                           100234    1563      28    0.32   0.02    12.0   43.4
                           100235    1563      25    0.12   0.13    12.2   42.2
        Lab #1             100236    1563      26    0.22   0.05    13.7   43.8




                             ID     ID_Brick   Grs   SX      SY     PX     PY
                           202344    2432      27    0.22   0.02    19.2   21.6
                           202345    2432      23    0.13   0.17    21.3   22.3
        Lab #2             202346    2432      20    -0.2   -0.03   20.2   21.2
Oracle – Analisi statistica
Oracle – Analisi statistica

     OLAP –Data Mining


       I DB relazionali vengono usati estesamente nei processi
       decisionali

       OLAP = On Line Analytical Processing
       Data Mining = “scavare nei dati”


       Le tecniche OLAP – Data Mining consentono di effettuare un
       trattamento statistico dei dati in maniera (quasi)
       completamente automatica

       I dati vengono organizzati in maniera da ottimizzare
       l’esecuzione di funzioni statistiche
Oracle – Analisi statistica

     Programmi di analisi statistica


        I buoni programmi di analisi statistica permettono accesso a
        DB relazionali, di solito con ODBC


        In generale, il risultato di una query ha la stessa struttura
        logica di una n-upla

        • Microcal Origin
        • SySal QuickDataCheck
        • ROOT TSQL... Classes + Oracle.so library
                (OracleServer, OracleResult, OracleRow)
Oracle all’OPERA
Oracle all’OPERA




 Oracle  European Scanning System
                                              European Emulsion Scanning Data Base
         (OPERA Internal Note #38: “Database architecture for the European Emulsion Scanning System)




 Oracle  Brick Manipulator System




 Oracle  ...??? (DB generale ???)
Oracle all’OPERA
                                                                                                   OPERA European Emulsion Scanning DB
                                                                     TB_PREDICTIONS                                                                                                                                                                                              TB_VERTICES
                                                                                                                                                          TB_PHYSICSIDS                                                       TB_VERTEXTYPES
                                                                                                                                                                                                                                                                           ID                <pk>
                                                                     ID    <ak>                                                                          ID          <ak>                                                    ID          <ak>                              ID_RECONSTRUCTION <fk1>                  FK_VOLTKS_UPVTX
                                                                     Run <pk>                                                                            DESCRIPTION <pk>                                                    DESCRIPTION <pk>                              POSX
                                                                     Event <pk>                 FK_PHYSIDS_PREDTRACKS
                                                                                                                                                                                                                                                                           POSY                                                              TB_VOLUMETRACKS
                                                                     X                                                                                                                                                                                 FK_VERTEXTYPES_VERTICES
                                                                                                                                                                                                                                                                           POSZ                                                       ID                         <pk>
                                                                     Y
                                                                     Z                                                                                                                                                                                                     AVERAGEDISTANCE                                            ID_RECONSTRUCTION          <fk1>
                                                                                                                                                                                                                                                                           ID_VERTEXTYPE     <fk2>                                    SIGMA
                                                                                                                                                                                                                                                                                                                                      DOWNZ
                                                                                                                                                                                                                                                                                                                      FK_VOLTKS_DOWNVTX

                                                                                                                                                                                                                                                                                                                                      UPZ
                                                                                                                                                                                                                                                                                                                                      DOWNPOSX
                                                                                                 TB_PREDICTEDTRACKS                                        FK_PHYSIDS_VOLTKS                                                                                                                                                          DOWNPOSY
                                                         FK_PREDICTIONS_PREDTRACKS               ID                   <ak>                                                                                                                                                                                                            DOWNPOSZ
                                                                                                 ID_PREDICTION        <pk,fk1>                                                                                                                                                                                                        DOWNSLOPEX
                                                                                                 ID_TRACK             <pk>                                                                                                                                                                                                            DOWNSLOPEY
                                                                                                 ID_PHYSICS           <fk2>                                                                                                                                                                                                           UPPOSX
                                                                                                 POSX                                                                                                                                                                                                                                 UPPOSY
                                                                                                                                                                                                                                                                                                             FK_RECON_VOLTKS
                                                                                                 POSY                                                                                                                                                                                                                                 UPPOSZ
                                                                                                 POSZ                                                                                                                                                                                                                                 UPSLOPEX
                                                                                                 SLOPEX                                                                                                                                                                                                                               UPSLOPEY
                                                                                                 SLOPEY                                                                                                                                                                                                                               MOMENTUM
                                                                                                 CHI2                                                                                                                                                                                                                                 ENERGY
                                                                                                                                                                                                                                                                                                                                      ID_PARTICLE         <fk4>
                                                                                                                                                                                                                                                                                   FK_RECON_VERTICES
                                                                                                                                                                                                                                                                                                                                      RECONSTRUCTIONNOTES
                                                                                                                                                                                                                                                                                                                                      ID_DOWNVERTEX       <fk2>
                                                                                                                                                                                                                                                                                                                                      ID_UPVERTEX         <fk3>


                                                                                                                                       Predictions and Final Results with Physics Info
                                                                                               FK_PROCSTART_PREDTKS

                                                                                                                                                                                                                                                                                                                                                   FK_VOLTKS_ALIGNBASE
                                                                                                                                                                        TB_SITES                          TB_PRIVILEGES
                                   TB_PROCSTARTUPSELECTIONS
                                                                                                                                                                  ID             <ak>
                                                                                                                                                                                   FK_SITES_PRIVILEGES
                                                                                                                                                                                                  ID_USER                    <pk,fk1>
                                   ID_PROCESS        <pk,fk2>                                                                                                     NAME           <pk>             ID_SITE                    <pk,fk2>
        FK_PROCSTART_SELECTION     ID_PREDICTEDTRACK <pk,fk1>                                                    FK_MACHINES_SITE                                 LATITUDE                        REQUESTSCAN
                                   ID_SELECTION      <pk,fk3>                                                                                                     LONGITUDE                       REQUESTWEBANALYSIS
                                                                                                                          TB_MACHINES                                                                                                                                                TB_RECONSTRUCTIONS
                                                                                                                                                                  LOCALTIMEFUSE                   REQUESTDATAPROCESSING
                                                                                                           ID                                     <ak2>                                                                                                                          ID                              <pk>
                                                                                                                                                                                                  REQUESTDATADOWNLOAD                                                                                                                      TB_ALIGNEDBASETRACKS
                                                                                                           NAME                                   <pk>                                                                                                                           ID_RECONSTRUCTOR                <fk2>
                                                                                                           ADDRESS                                <ak1>                                           REQUESTPROCESSSTARTUP
                                                                                                                                                                                                              FK_PROCOPERA_RECON
                                                                                                                                                                                                                                                                                 ISCOMPLETE                                             ID                       <pk>
                                                                                                           ISSCANNINGSERVER                                                                                                                                                      ID_PROGRAMSETTINGS           <fk3>                     ID_MIPBASETRACK          <fk1>
                                                                                                           ISBATCHSERVER                                                                                                                                                         ID_PROCESSOPERATION                                    ID_RECONSTRUCTION
                                                                                                                                                                                                                                                                                                              <fk1>FK_RECON_ALIGNEDTRACKS                        <fk4>
                                                                                                           ISDATAPROCESSINGSERVER                                                                                                                                                                                                       ID_ALIGNEDZONE           <fk3>
                                                                                                           ISWEBSERVER                                                                                                                                                                           FK_RECON_ALIGNEDZONE                   ID_VOLUMETRACK           <fk2>
                                                                                                                                                                                 FK_BATCHES_MACHINES
                                                                                                           ISDATABASESERVER                                                                                                                                                                   TB_ALIGNEDZONES                           POSX
                                                                                                           ISLOCALMASTERCONTROLLER                                                                                                                                                                                                      POSY
                                                                                                           ID_SITE                                <fk>                                                                                                                                   ID                     <ak>
                                                                                                                                                                                                                                                                                                                                        GRAINS
                                                                                                                                                                                                                                                                                         ID_ZONE                <pk,fk1>
                                                                                                                                                                                                                                                                                                                                        AREASUM
                                                                                                                                                                                                                    FK_USERS_PRIVILEGES                                                  ID_RECONSTRUCTION <pk,fk2>
                       TB_SELECTIONS                                                                                                                                                                                                                                                                                                    SLOPEX
                                                                                              TB_OPERATIONS                                                                                                                                                                              PLATE
                 ID
                 ID_OPERATION
                 ID_SELECTOR
                                         <ak>
                                         <pk,fk1>
                                         <pk,fk2>
                                                              FK_SELECTIONS_OPS
                                                                                          ID
                                                                                          NAME
                                                                                                      <ak>
                                                                                                      <pk>
                                                                                                                                    System Management                                                                       ID
                                                                                                                                                                                                                                 TB_USERS
                                                                                                                                                                                                                                          <ak1>
                                                                                                                                                                                                                                                             FK_RECON_USERS
                                                                                                                                                                                                                                                                                         MAPXX
                                                                                                                                                                                                                                                                                         MAPXY
                                                                                                                                                                                                                                                                                         MAPYX
                                                                                                                                                                                                                                                                                                                                        SLOPEY
                                                                                                                                                                                                                                                                                                                                        SIGMA

                                                                                          ISSCANNING                       FK_MACHINES_PROCOPERATIONS

                 SELECTIONTEXT                                                            ISTRANSPORT                                                                  FK_SITES_USERS                                       USERNAME      <ak2>                                          MAPYY
                 SELECTIONDATE           <pk>                                                                                                                                                                               PWD                                                          MAPDX
                 DESCRIPTION             <pk>                                                                                                                                                                               NAME          <pk>                                           MAPDY
                                                                                                                                                                                                                                                                                                                                    FK_ALIGN_ZONESTRACKS
                                                                                                                                                                                                                            SURNAME       <pk>                                           MAPDZ
                                  FK_SELECTIONS_USERS
                                                                                                                                                                                                                            INSTITUTION                                                  SLOPEDSX
                                                                                                                                                                                                                            ID_SITE       <fk>                                           SLOPEDSY
                                                                                                                                                                                                                            EMAIL                                                        SLOPEMSX

          Scanning Predictions                                                                   FK_OPERATIONS_PROCOPERATIONS
                                                                                                                                 TB_PROC_OPERATIONS
                                                                                                                                 ID           <ak>
                                                                                                                                                                                                                            ADDRESS
                                                                                                                                                                                                                            PHONE
                                                                                                                                                                                                                                                                                         SLOPEMSY
                                                                                                                                                                                                                                                                                         REFX
                                                                                                                                                                                                                                                                                         REFY
                                                                                                                                 ID_PROCESS <pk,fk3>                                                                                                                                     REFZ
                                                                                                                                 ID_OPERATION <pk,fk1>                                                                                                                                   DOWNZ
                                                                                                                                                                                                                                                           FK_PROCOPS_VTXLOCS
                                                                                                                                 ID_MACHINE   <fk2>                                                                                                                                      UPZ
                                                                                                                                 STARTTIME

                                                                                                         FK_PROCESSES_PROCOPS
                                                                                                                                 FINISHTIME                                                                  FK_USERS_PROGSETTINGS

                                                                                                                                                                                                                                                                                      Event Reconstruction
                                                                                                         TB_PROCESSES                                                                         TB_PROGRAMSETTINGS
                                           FK_PROCSTARTUPS_PROCS
                                                                                                         ID         <pk>                                                                      ID                     <ak>                                         FK_PROGSETTING_RECON

                                                                                                         ID_BRICK <fk>                                                                        MODULENAME             <pk>                                                                                   TB_VTXLOC_SELECTIONS
                                                                                                         STARTTIME                                                                            MODULEIDENTITY         <pk>
                                                                                                                                                                                                                                          FK_VTXLOC_USERS_VSELS                                         ID                            <ak>
                                                                                                         FINISHTIME                                                                           SETTINGS
                                                                                                                                                                                                                                                                                                        ID_PLATE                      <pk,fk2>
                                                                                                                                                                                              ID_AUTHOR              <fk>
                                                                                                                                                                                                                                                                                                        ID_PROCESSOPERATION           <pk,fk1>
           FK_VTXLOC_SEL_VSEL
                                                                                                                                                                                                                                                                                                        ID_SELECTOR                   <fk4>
                                                                                                                                                                                           FK_PROGSETTING_BATCHES
                                                                                                                                                                                                                                                                                                        ID_SELECTIONTEXT              <fk3>
                                                                                                                                                                                                                             FK_BATCHES_REQUESTER
                                                TB_BRICKS
                                                ID   <pk>                                        FK_BRICKS_PROCESSES
                                                MINX                                                                                                                                    TB_BATCHES
                      FK_TEMPLATEMARKSETS
                                                MAXX                                                                                                                       ID                            <pk>
                                                MINY                                                                                                                       ID_PLATE                      <fk4>                                                                           FK_VTXLOC_VSEL_SELTKS
                                                MAXY                                                                                                                       ID_MACHINE                    <fk2>
                                                MINZ                                                                                                                       ID_PROGRAMSETTINGS            <fk1>                                                                                                       TB_VTXLOC_SELECTION_REASONS
                                                MAXZ                                                                                                                       ID_REQUESTER                  <fk3>                                                                                                       ID          <ak>
                                                                                                                                                                           TEMPLATEMARKS                                                                                                                             DESCRIPTION <pk>
                                                                        TB_PLATES                                                                                          REQUESTTIME
                                                                                                                             FK_BATCHES_PLATES
                 TB_TEMPLATEMARKSETS                              ID                  <ak>                                                                                 STARTTIME
                                                                                                                                                                                                                                                                                FK_ZONES_ALIGNEDZONES
                 ID              <ak>                             ID_BRICK            <pk,fk>                                                                              ENDTIME
                                                                                                                                                                                                                                                                                                         FK_VTXLOC_PLATES_SELS
                 ID_BRICK        <pk,fk>                          PLATE               <pk>
                 ID_MARK         <pk>                             CALIBRATION
                 POSX                           FK_PLATES_BRICK   Z
                 POSY                                             ISCS                <pk>                                                                                                                                                                                                     TB_VTXLOC_SELTRACKS
                 MARKROW         <pk>                             EXPOSURESTART                                                       TB_ZONES                                                                                                                                                ID             <ak>
                 MARKCOL         <pk>                             EXPOSUREFINISH                                                                                                                                                                                                              ID_VTXLOC_SEL  <pk,fk1>
                                                                                                                                 ID            <pk>                                               FK_ZONES_MIPBASE
                 SHAPE                                            MAPXX                                                                                                                                                                                                                       ID_BASETRACK   <pk,fk2>
                                                                                                                                 ID_BATCH      <fk>
                                                                  MAPXY                                                                                                                                                                                                                       ID_MOTHERTRACK
                                                                                                                                 MINX                                   FK_BATCHES_ZONES                                                                                                                        FK_VTXLOC_SELRSN_SELTKS
                                                                  MAPYX                                                                                                                                   TB_MIPBASETRACKS                                                                    ID_REASON      <fk3>
                                                                                                                                 MAXX                                                                                                                                                                                                              FK_ALIGNEDBASE_MIPBASE
                                                                  MAPYY
                                                                                                                                 MINY                                                                    ID                    <pk>
                                                                  MAPDX
                     FK_MARKS_TEMPLATEMARK
                                                                  MAPDY
                                                                                                                                 MAXY
                                                                                                                                 RAWDATAPATH
                                                                                                                                 STARTTIME
                                                                                                                                                                                                         ID_ZONE
                                                                                                                                                                                                         POSX
                                                                                                                                                                                                         POSY
                                                                                                                                                                                                                               <fk1>
                                                                                                                                                                                                                                                                                               Vertex Location
                                                 TB_MARKS                                                                        ENDTIME                                                                 GRAINS                                                                          FK_VTXLOC_MIPBASE_SELTKS

                                        ID              <ak>                                                                     BASETHICKNESS                                                           AREASUM
                                                                             FK_MARKS_PLATE
                                        ID_PLATE        <pk,fk1>                                                                                                                                         SLOPEX
                                        ID_TEMPLATEMARK <fk2>                                                                                    TB_MIPEMULSIONTRACKS                                    SLOPEY
                                                                                                                                                                                    FK_BASE_UPTRACK
                                        POSX                                                                                FK_ZONES_MIPEMU                                                              SIGMA
                                                                                                                                                 ID      <pk>
                                        POSY                                                                                                                                                             ID_DOWNTRACK          <fk3>
                                                                                                                                                 ID_ZONE <fk>
                                                                                                                                                                                                         ID_UPTRACK            <fk2>
                                                                                                                                                 SIDE
                                                                                                                                                 POSX
                           Bricks and Plates                                                                                                     POSY
                                                                                                                                                 GRAINS
                                                                                                                                                                                   FK_BASE_DOWNTRACK



                                                                                                                                                 AREASUM
                                                                                                                                                 SLOPEX
                                                                                                                                                 SLOPEY
                                                                                                                                                 SIGMA


                                                                                                                                                          Scanning Data
                                                                                     SLOPEY
                                                                                     CHI2



      Oracle all’OPERA
                                                                                                                                                                                                                                                             FK_RECON_VERTICES




                                                                                                                         Predictions and Final Results with Physics Info
                                                                                 FK_PROCSTART_PREDTKS


                                                                                                                                                    TB_SITES                          TB_PRIVILEGES
                           TB_PROCSTARTUPSELECTIONS
                                                                                                                                              ID             <ak>
                                                                                                                                                               FK_SITES_PRIVILEGES
                                                                                                                                                                              ID_USER                    <pk,fk1>
                           ID_PROCESS        <pk,fk2>                                                                                         NAME           <pk>             ID_SITE                    <pk,fk2>
FK_PROCSTART_SELECTION     ID_PREDICTEDTRACK <pk,fk1>                                               FK_MACHINES_SITE                          LATITUDE                        REQUESTSCAN
                           ID_SELECTION      <pk,fk3>                                                                                         LONGITUDE                       REQUESTWEBANALYSIS
                                                                                                            TB_MACHINES                                                                                                                                        TB_RECONSTRUCTIONS
                                                                                                                                              LOCALTIMEFUSE                   REQUESTDATAPROCESSING
                                                                                               ID                                  <ak2>                                                                                                                   ID                              <
                                                                                                                                                                              REQUESTDATADOWNLOAD
                                                                                               NAME                                <pk>                                                                                                                    ID_RECONSTRUCTOR                <
                                                                                               ADDRESS                             <ak1>                                      REQUESTPROCESSSTARTUP
                                                                                                                                                                                          FK_PROCOPERA_RECON
                                                                                                                                                                                                                                                           ISCOMPLETE
                                                                                               ISSCANNINGSERVER                                                                                                                                            ID_PROGRAMSETTINGS              <
                                                                                               ISBATCHSERVER                                                                                                                                               ID_PROCESSOPERATION             <
                                                                                               ISDATAPROCESSINGSERVER
                                                                                               ISWEBSERVER                                                                                                                                                                    FK_RECON_ALIGN
                                                                                                                                                            FK_BATCHES_MACHINES
                                                                                               ISDATABASESERVER                                                                                                                                                          TB_ALIGNEDZON
                                                                                               ISLOCALMASTERCONTROLLER
                                                                                               ID_SITE                             <fk>                                                                                                                            ID
                                                                                                                                                                                                                                                                   ID_ZONE
                                                                                                                                                                                              FK_USERS_PRIVILEGES                                                  ID_RECONSTRUCTION
               TB_SELECTIONS                                                    TB_OPERATIONS                                                                                                                                                                      PLATE
         ID
         ID_OPERATION
         ID_SELECTOR
                                <ak>
                                <pk,fk1>
                                <pk,fk2>
                                                     FK_SELECTIONS_OPS
                                                                              ID
                                                                              NAME
                                                                                          <ak>
                                                                                          <pk>
                                                                                                                       System Management                                                              ID
                                                                                                                                                                                                           TB_USERS
                                                                                                                                                                                                                    <ak1>
                                                                                                                                                                                                                                       FK_RECON_USERS
                                                                                                                                                                                                                                                                   MAPXX
                                                                                                                                                                                                                                                                   MAPXY
                                                                                                                                                                                                                                                                   MAPYX
                                                                              ISSCANNING                     FK_MACHINES_PROCOPERATIONS

         SELECTIONTEXT                                                        ISTRANSPORT                                                         FK_SITES_USERS                                      USERNAME      <ak2>                                          MAPYY
         SELECTIONDATE          <pk>                                                                                                                                                                  PWD                                                          MAPDX
         DESCRIPTION            <pk>                                                                                                                                                                  NAME          <pk>                                           MAPDY
                                                                                                                                                                                                      SURNAME       <pk>                                           MAPDZ
                          FK_SELECTIONS_USERS
                                                                                                                                                                                                      INSTITUTION                                                  SLOPEDSX
                                                                                                                                                                                                      ID_SITE       <fk>                                           SLOPEDSY
                                                                                                                                                                                                      EMAIL                                                        SLOPEMSX

  Scanning Predictions                                                               FK_OPERATIONS_PROCOPERATIONS
                                                                                                                    TB_PROC_OPERATIONS
                                                                                                                    ID             <ak>
                                                                                                                                                                                                      ADDRESS
                                                                                                                                                                                                      PHONE
                                                                                                                                                                                                                                                                   SLOPEMSY
                                                                                                                                                                                                                                                                   REFX
                                                                                                                                                                                                                                                                   REFY
                                                                                                                    ID_PROCESS     <pk,fk3>                                                                                                                        REFZ
                                                                                                                    ID_OPERATION   <pk,fk1>                                                                                                                        DOWNZ
                                                                                                                                                                                                                                     FK_PROCOPS_VTXLOCS
                                                                                                                    ID_MACHINE     <fk2>                                                                                                                           UPZ
                                                                                                                    STARTTIME

                                                                                             FK_PROCESSES_PROCOPS
                                                                                                                    FINISHTIME                                                         FK_USERS_PROGSETTINGS

                                                                                                                                                                                                                                                                Event R
                                                                                            TB_PROCESSES                                                                TB_PROGRAMSETTINGS
                                   FK_PROCSTARTUPS_PROCS
                                                                                            ID         <pk>                                                             ID                     <ak>                                         FK_PROGSETTING_RECON

                                                                                            ID_BRICK <fk>                                                               MODULENAME             <pk>                                                                                   TB_V
                                                                                            STARTTIME                                                                   MODULEIDENTITY         <pk>
                                                                                                                                                                                                                    FK_VTXLOC_USERS_VSELS                                         ID
                                                                                            FINISHTIME                                                                  SETTINGS
                                                                                                                                                                                                                                                                                  ID_PLATE
                                                                                                                                                                        ID_AUTHOR              <fk>
                                                                                                                                                                                                                                                                                  ID_PROC
   FK_VTXLOC_SEL_VSEL
                                                                                                                                                                                                                                                                                  ID_SELE
                                                                                                                                                                     FK_PROGSETTING_BATCHES
                                                                                                                                                                                                                                                                                  ID_SELE
                                                                                                                                                                                                       FK_BATCHES_REQUESTER
                                        TB_BRICKS
                                        ID   <pk>                                    FK_BRICKS_PROCESSES
                                        MINX                                                                                                                       TB_BATCHES
              FK_TEMPLATEMARKSETS
                                        MAXX                                                                                                          ID                           <pk>
                                        MINY                                                                                                          ID_PLATE                     <fk4>                                                                           FK_VTXLOC_VSEL_SELTKS
                                        MAXY                                                                                                          ID_MACHINE                   <fk2>
                                        MINZ                                                                                                          ID_PROGRAMSETTINGS           <fk1>
                                        MAXZ                                                                                                          ID_REQUESTER                 <fk3>
                                                                                                                                                      TEMPLATEMARKS
                                                               TB_PLATES                                                                              REQUESTTIME
                                                                                                               FK_BATCHES_PLATES
         TB_TEMPLATEMARKSETS                             ID                <ak>                                                                       STARTTIME
                                                                                                                                                                                                                                                          FK_ZONES_ALIGNEDZONES
         ID              <ak>                            ID_BRICK          <pk,fk>                                                                    ENDTIME
                                                                                                                                                                                                                                                                                   FK_VTXLOC
         ID_BRICK        <pk,fk>                         PLATE             <pk>
         ID_MARK         <pk>                            CALIBRATION
         POSX                          FK_PLATES_BRICK   Z
Oracle all’OPERA
                                                                TB_PREDICTIONS                                                               TB_PHYSICSIDS                                              TB_VERTEXTYPES
                                                                ID    <ak>                                                                  ID          <ak>                                           ID          <ak>
                                                                Run <pk>                                                                    DESCRIPTION <pk>                                           DESCRIPTION <pk>
                                                                Event <pk>         FK_PHYSIDS_PREDTRACKS

                                                                X                                                                                                                                                           FK_VERTEXTYPES_VERT

                                                                Y
                                                                Z




                                                                                     TB_PREDICTEDTRACKS                                       FK_PHYSIDS_VOLTKS

                                                    FK_PREDICTIONS_PREDTRACKS       ID                    <ak>
                                                                                    ID_PREDICTION         <pk,fk1>
                                                                                    ID_TRACK              <pk>
                                                                                    ID_PHYSICS            <fk2>
                                                                                    POSX
                                                                                    POSY
                                                                                    POSZ
                                                                                    SLOPEX
                                                                                    SLOPEY
                                                                                    CHI2




                                                                                                                           Predictions and Final Results with Ph
                                                                                   FK_PROCSTART_PREDTKS


                                                                                                                                                           TB_SITES                          TB_PRIVILEGES
                               TB_PROCSTARTUPSELECTIONS
                                                                                                                                                     ID             <ak>
                                                                                                                                                                      FK_SITES_PRIVILEGES
                                                                                                                                                                                     ID_USER                    <pk,fk1>
                               ID_PROCESS        <pk,fk2>                                                                                            NAME           <pk>             ID_SITE                    <pk,fk2>
     FK_PROCSTART_SELECTION    ID_PREDICTEDTRACK <pk,fk1>                                           FK_MACHINES_SITE                                 LATITUDE                        REQUESTSCAN
                               ID_SELECTION      <pk,fk3>                                                                                            LONGITUDE                       REQUESTWEBANALYSIS
                                                                                                              TB_MACHINES
                                                                                                                                                     LOCALTIMEFUSE                   REQUESTDATAPROCESSING
                                                                                               ID                                    <ak2>
                                                                                                                                                                                     REQUESTDATADOWNLOAD
                                                                                               NAME                                  <pk>
                                                                                               ADDRESS                               <ak1>                                           REQUESTPROCESSSTARTUP
                                                                                                                                                                                                 FK_PROCOPERA_RECON

                                                                                               ISSCANNINGSERVER
                                                                                               ISBATCHSERVER
                                                                                               ISDATAPROCESSINGSERVER
                                                                                               ISWEBSERVER
                                                                                                                                                                    FK_BATCHES_MACHINES
                                                                                               ISDATABASESERVER
                                                                                               ISLOCALMASTERCONTROLLER
                                                                                               ID_SITE                               <fk>

                                                                                                                                                                                              FK_USERS_PRIVILEGES
                    TB_SELECTIONS                                                 TB_OPERATIONS
              ID
              ID_OPERATION
              ID_SELECTOR
                                    <ak>
                                    <pk,fk1>
                                    <pk,fk2>
                                                         FK_SELECTIONS_OPS
                                                                                 ID
                                                                                 NAME
                                                                                             <ak>
                                                                                             <pk>
                                                                                                                       System Management                                                              ID
                                                                                                                                                                                                           TB_USERS
                                                                                                                                                                                                                    <ak1>
                                                                                                                                                                                                                                 FK_RECON_USER

                                                                                 ISSCANNING                    FK_MACHINES_PROCOPERATIONS

              SELECTIONTEXT                                                      ISTRANSPORT                                                              FK_SITES_USERS                              USERNAME      <ak2>
              SELECTIONDATE         <pk>                                                                                                                                                              PWD
              DESCRIPTION           <pk>                                                                                                                                                              NAME          <pk>
                                                                                                                                                                                                      SURNAME       <pk>
                              FK_SELECTIONS_USERS
                                                                                                                                                                                                      INSTITUTION
                                                                                                                                                                                                      ID_SITE       <fk>
                                                                                                                                                                                                      EMAIL

       Scanning Predictions                                                          FK_OPERATIONS_PROCOPERATIONS
                                                                                                                     TB_PROC_OPERATIONS
                                                                                                                     ID              <ak>
                                                                                                                                                                                                      ADDRESS
                                                                                                                                                                                                      PHONE

                                                                                                                     ID_PROCESS      <pk,fk3>
                                                                                                                     ID_OPERATION    <pk,fk1>
                                                                                                                                                                                                                               FK_PROCOPS_VTXL
                                                                                                                     ID_MACHINE      <fk2>
                                                                                                                     STARTTIME
                                                                                                                     FINISHTIME                                                           FK_USERS_PROGSETTINGS

                                                                                             FK_PROCESSES_PROCOPS


                                                                                            TB_PROCESSES                                                                       TB_PROGRAMSETTINGS
                   TB_SELECTIONS                                                        TB_OPERATIONS
             ID
             ID_OPERATION
                                    <ak>
                                    <pk,fk1>
                                                                                    ID
                                                                                    NAME
                                                                                                <ak>
                                                                                                <pk>
                                                                                                                          System Management                                                                    TB_USERS                      FK_RECON




Oracle all’OPERA
                                                         FK_SELECTIONS_OPS
             ID_SELECTOR            <pk,fk2>                                        ISSCANNING                    FK_MACHINES_PROCOPERATIONS                                                                ID            <ak1>
             SELECTIONTEXT                                                          ISTRANSPORT                                                        FK_SITES_USERS                                       USERNAME      <ak2>
             SELECTIONDATE          <pk>                                                                                                                                                                    PWD
             DESCRIPTION            <pk>                                                                                                                                                                    NAME          <pk>
                                                                                                                                                                                                            SURNAME       <pk>
                             FK_SELECTIONS_USERS
                                                                                                                                                                                                            INSTITUTION
                                                                                                                                                                                                            ID_SITE       <fk>
                                                                                                                                                                                                            EMAIL

       Scanning Predictions                                                               FK_OPERATIONS_PROCOPERATIONS
                                                                                                                         TB_PROC_OPERATIONS
                                                                                                                         ID              <ak>
                                                                                                                                                                                                            ADDRESS
                                                                                                                                                                                                            PHONE

                                                                                                                         ID_PROCESS      <pk,fk3>
                                                                                                                         ID_OPERATION    <pk,fk1>
                                                                                                                                                                                                                                           FK_PROCOPS
                                                                                                                         ID_MACHINE      <fk2>
                                                                                                                         STARTTIME
                                                                                                                         FINISHTIME                                                          FK_USERS_PROGSETTINGS

                                                                                                  FK_PROCESSES_PROCOPS


                                                                                                 TB_PROCESSES                                                                 TB_PROGRAMSETTINGS
                                      FK_PROCSTARTUPS_PROCS
                                                                                                 ID         <pk>                                                              ID                     <ak>                                         FK_PRO

                                                                                                 ID_BRICK <fk>                                                                MODULENAME             <pk>
                                                                                                 STARTTIME                                                                    MODULEIDENTITY         <pk>
                                                                                                                                                                                                                          FK_VTXLOC_USERS_VSELS
                                                                                                 FINISHTIME                                                                   SETTINGS
                                                                                                                                                                              ID_AUTHOR              <fk>
       FK_VTXLOC_SEL_VSEL


                                                                                                                                                                           FK_PROGSETTING_BATCHES           FK_BATCHES_REQUESTER
                                           TB_BRICKS
                                           ID   <pk>                                      FK_BRICKS_PROCESSES
                                           MINX                                                                                                                         TB_BATCHES
                  FK_TEMPLATEMARKSETS
                                           MAXX                                                                                                            ID                            <pk>
                                           MINY                                                                                                            ID_PLATE                      <fk4>
                                           MAXY                                                                                                            ID_MACHINE                    <fk2>
                                           MINZ                                                                                                            ID_PROGRAMSETTINGS            <fk1>
                                           MAXZ                                                                                                            ID_REQUESTER                  <fk3>
                                                                                                                                                           TEMPLATEMARKS
                                                                   TB_PLATES                                                                               REQUESTTIME
                                                                                                                    FK_BATCHES_PLATES
             TB_TEMPLATEMARKSETS                             ID                 <ak>                                                                       STARTTIME
            ID              <ak>                             ID_BRICK           <pk,fk>                                                                    ENDTIME
            ID_BRICK        <pk,fk>                          PLATE              <pk>
            ID_MARK         <pk>                             CALIBRATION
            POSX                           FK_PLATES_BRICK   Z
            POSY                                             ISCS               <pk>
            MARKROW         <pk>                             EXPOSURESTART                                                    TB_ZONES
            MARKCOL         <pk>                             EXPOSUREFINISH
                                                                                                                         ID            <pk>                                       FK_ZONES_MIPBASE
            SHAPE                                            MAPXX
                                                                                                                         ID_BATCH      <fk>
                                                             MAPXY
                                                                                                                         MINX                           FK_BATCHES_ZONES
                                                             MAPYX                                                                                                                        TB_MIPBASETRACKS
                                                                                                                         MAXX
                                                             MAPYY
                                                                                                                         MINY                                                            ID                   <pk>
                                                             MAPDX
                                                                                                                         MAXY                                                            ID_ZONE              <fk1>
                                                             MAPDY
                FK_MARKS_TEMPLATEMARK                                                                                    RAWDATAPATH                                                     POSX
                                                                                                                         STARTTIME                                                       POSY
                                            TB_MARKS                                                                     ENDTIME                                                         GRAINS
                                   ID              <ak>                                                                  BASETHICKNESS                                                   AREASUM
                                                                       FK_MARKS_PLATE
                                   ID_PLATE        <pk,fk1>                                                                                                                              SLOPEX
                                   ID_TEMPLATEMARK <fk2>                                                                                TB_MIPEMULSIONTRACKS                             SLOPEY
                                                                                                                                                                    FK_BASE_UPTRACK
                                   POSX                                                                            FK_ZONES_MIPEMU                                                       SIGMA
                                                                                                                                        ID      <pk>
                                   POSY                                                                                                                                                  ID_DOWNTRACK         <fk3>
                                                                                                                                        ID_ZONE <fk>
                                                                                                                                                                                         ID_UPTRACK           <fk2>
                                                                                                                                        SIDE
                                                                                                                                        POSX
                      Bricks and Plates                                                                                                 POSY
                                                                                                                                        GRAINS
                                                                                                                                                                   FK_BASE_DOWNTRACK



                                                                                                                                        AREASUM
                                                                                                                                        SLOPEX
                                                                                                                                        SLOPEY
                                                                                                                                        SIGMA


                                                                                                                                               Scanning Data
EDTKS

                                                                                                                                                                                                                            FK_VOLTKS_ALIGNBASE
                                                  TB_SITES                                       TB_PRIVILEGES


         Oracle all’OPERA
                                            ID            <ak>
                                                            FK_SITES_PRIVILEGES
                                                                           ID_USER                    <pk,fk1>
                                            NAME          <pk>             ID_SITE                    <pk,fk2>
  FK_MACHINES_SITE                          LATITUDE                       REQUESTSCAN
          TB_MACHINES                       LONGITUDE                      REQUESTWEBANALYSIS
                                            LOCALTIMEFUSE                                                                                                     TB_RECONSTRUCTIONS
                                                                           REQUESTDATAPROCESSING
                                 <ak2>                                                                                                                    ID                              <pk>
                                                                           REQUESTDATADOWNLOAD                                                                                                                       TB_ALIGNEDBASETRACKS
 ME                              <pk>                                                                                                                     ID_RECONSTRUCTOR                <fk2>
DDRESS                           <ak1>                                     REQUESTPROCESSSTARTUP
                                                                                       FK_PROCOPERA_RECON
                                                                                                                                                          ISCOMPLETE                                              ID                      <pk>
SCANNINGSERVER                                                                                                                                            ID_PROGRAMSETTINGS           <fk3>                      ID_MIPBASETRACK         <fk1>
BATCHSERVER                                                                                                                                               ID_PROCESSOPERATION          <fk1>                      ID_RECONSTRUCTION
                                                                                                                                                                                             FK_RECON_ALIGNEDTRACKS                       <fk4>
DATAPROCESSINGSERVER                                                                                                                                                                                              ID_ALIGNEDZONE          <fk3>
WEBSERVER                                                                                                                                                                 FK_RECON_ALIGNEDZONE                    ID_VOLUMETRACK          <fk2>
                                                          FK_BATCHES_MACHINES
DATABASESERVER                                                                                                                                                         TB_ALIGNEDZONES                            POSX
LOCALMASTERCONTROLLER                                                                                                                                                                                             POSY
_SITE                 <fk>                                                                                                                                        ID                     <ak>
                                                                                                                                                                                                                  GRAINS
                                                                                                                                                                  ID_ZONE                <pk,fk1>
                                                                                                                                                                                                                  AREASUM
                                                                                             FK_USERS_PRIVILEGES                                                  ID_RECONSTRUCTION <pk,fk2>
                                                                                                                                                                                                                  SLOPEX
NS                                                                                                                                                                PLATE
ak>
pk>
                     System Management
           FK_MACHINES_PROCOPERATIONS                                                                ID
                                                                                                          TB_USERS
                                                                                                                   <ak1>
                                                                                                                                      FK_RECON_USERS
                                                                                                                                                                  MAPXX
                                                                                                                                                                  MAPXY
                                                                                                                                                                  MAPYX
                                                                                                                                                                                                                  SLOPEY
                                                                                                                                                                                                                  SIGMA

                                                FK_SITES_USERS                                       USERNAME      <ak2>                                          MAPYY
                                                                                                     PWD                                                          MAPDX
                                                                                                     NAME          <pk>                                           MAPDY
                                                                                                                                                                                                              FK_ALIGN_ZONESTRACKS
                                                                                                     SURNAME       <pk>                                           MAPDZ
                                                                                                     INSTITUTION                                                  SLOPEDSX
                                                                                                     ID_SITE       <fk>                                           SLOPEDSY
                                                                                                     EMAIL                                                        SLOPEMSX
                                                                                                     ADDRESS                                                      SLOPEMSY
                  TB_PROC_OPERATIONS
                                                                                                     PHONE                                                        REFX
_PROCOPERATIONS   ID             <ak>                                                                                                                             REFY
                  ID_PROCESS     <pk,fk3>                                                                                                                         REFZ
                  ID_OPERATION   <pk,fk1>                                                                                                                         DOWNZ
                                                                                                                                    FK_PROCOPS_VTXLOCS
                  ID_MACHINE     <fk2>                                                                                                                            UPZ
                  STARTTIME

OCESSES_PROCOPS
                  FINISHTIME                                                          FK_USERS_PROGSETTINGS

                                                                                                                                                               Event Reconstruction
PROCESSES                                                              TB_PROGRAMSETTINGS
       <pk>                                                            ID                     <ak>                                         FK_PROGSETTING_RECON

RICK <fk>                                                              MODULENAME             <pk>                                                                                   TB_VTXLOC_SELECTIONS
RTTIME                                                                 MODULEIDENTITY         <pk>
                                                                                                                   FK_VTXLOC_USERS_VSELS                                         ID                            <ak>
 HTIME                                                                 SETTINGS
                                                                                                                                                                                 ID_PLATE                      <pk,fk2>
                                                                       ID_AUTHOR              <fk>
                                                                                                                                                                                 ID_PROCESSOPERATION           <pk,fk1>
                                                                                                                                                                                 ID_SELECTOR                   <fk4>
                                                                    FK_PROGSETTING_BATCHES
                                                                                                                                                                                 ID_SELECTIONTEXT              <fk3>
                                                                                                      FK_BATCHES_REQUESTER


CESSES
                                                                 TB_BATCHES
                                                    ID                            <pk>
                                                    ID_PLATE                      <fk4>                                                                           FK_VTXLOC_VSEL_SELTKS
                                                    ID_MACHINE                    <fk2>
                                                    ID_PROGRAMSETTINGS            <fk1>                                                                                                      TB_VTXLOC_SELECTION_REASONS
                                                    ID_REQUESTER                  <fk3>                                                                                                       ID          <ak>
                                                    TEMPLATEMARKS                                                                                                                             DESCRIPTION <pk>
                                                    REQUESTTIME
             FK_BATCHES_PLATES
                                                    STARTTIME
                                                                                                                                                         FK_ZONES_ALIGNEDZONES
                                                    ENDTIME
                                                                                                                                                                                  FK_VTXLOC_PLATES_SELS




                                                                                                                                                                        TB_VTXLOC_SELTRACKS
                       TB_ZONES                                                                                                                                        ID                    <ak>
                  ID                <pk>                                   FK_ZONES_MIPBASE
                                                                                                                                                                       ID_VTXLOC_SEL         <pk,fk1>
                                                                                                                                                                       ID_BASETRACK          <pk,fk2>
                  ID_BATCH          <fk>
                                                                                                                                                                       ID_MOTHERTRACK
                  MINX                           FK_BATCHES_ZONES                                                                                                                                 FK_VTXLOC_SELRSN_SELTKS
                                                                                   TB_MIPBASETRACKS                                                                    ID_REASON             <fk3>
                  MAXX                                                                                                                                                                                                      FK_ALIGNEDBASE_MIPBASE

                  MINY                                                            ID                    <pk>
                  MAXY
                  RAWDATAPATH
                  STARTTIME
                                                                                  ID_ZONE
                                                                                  POSX
                                                                                  POSY
                                                                                                        <fk1>
                                                                                                                                                                        Vertex Location
                  ENDTIME                                                         GRAINS                                                                          FK_VTXLOC_MIPBASE_SELTKS
<pk>
         Oracle all’OPERA
REDICTIONS
<ak>
                                                                         TB_PHYSICSIDS
                                                                        ID          <ak>
                                                                        DESCRIPTION <pk>
                                                                                                                                    TB_VERTEXTYPES
                                                                                                                                   ID          <ak>
                                                                                                                                   DESCRIPTION <pk>
                                                                                                                                                                            ID

                                                                                                                                                                            POSX
                                                                                                                                                                                  TB_VERTICES
                                                                                                                                                                                              <pk>
                                                                                                                                                                            ID_RECONSTRUCTION <fk1>        FK_VOLTKS_UPVTX

<pk>           FK_PHYSIDS_PREDTRACKS
                                                                                                                                                                            POSY
                                                                                                                                                        FK_VERTEXTYPES_VERTICES                                                  TB_VOLUMETRACKS
                                                                                                                                                                            POSZ                                               ID                       <pk>
                                                                                                                                                                            AVERAGEDISTANCE                                    ID_RECONSTRUCTION        <fk1>
                                                                                                                                                                            ID_VERTEXTYPE     <fk2>                            SIGMA
                                                                                                                                                                                                                               DOWNZ
                                                                                                                                                                                                               FK_VOLTKS_DOWNVTX

                                                                                                                                                                                                                               UPZ
                                                                                                                                                                                                                               DOWNPOSX
                 TB_PREDICTEDTRACKS                                       FK_PHYSIDS_VOLTKS                                                                                                                                    DOWNPOSY
TRACKS          ID                    <ak>                                                                                                                                                                                     DOWNPOSZ
                ID_PREDICTION         <pk,fk1>                                                                                                                                                                                 DOWNSLOPEX
                ID_TRACK              <pk>                                                                                                                                                                                     DOWNSLOPEY
                ID_PHYSICS            <fk2>                                                                                                                                                                                    UPPOSX
                POSX                                                                                                                                                                                                           UPPOSY
                                                                                                                                                                                                     FK_RECON_VOLTKS
                POSY                                                                                                                                                                                                           UPPOSZ
                POSZ                                                                                                                                                                                                           UPSLOPEX
                SLOPEX                                                                                                                                                                                                         UPSLOPEY
                SLOPEY                                                                                                                                                                                                         MOMENTUM
                CHI2                                                                                                                                                                                                           ENERGY
                                                                                                                                                                                                                               ID_PARTICLE              <fk4>
                                                                                                                                                                                 FK_RECON_VERTICES
                                                                                                                                                                                                                               RECONSTRUCTIONNOTES
                                                                                                                                                                                                                               ID_DOWNVERTEX            <fk2>
                                                                                                                                                                                                                               ID_UPVERTEX              <fk3>


                                                       Predictions and Final Results with Physics Info
               FK_PROCSTART_PREDTKS

                                                                                                                                                                                                                                         FK_VOLTKS_ALIGNBASE
                                                                                        TB_SITES                              TB_PRIVILEGES
                                                                                 ID            <ak>
                                                                                                 FK_SITES_PRIVILEGES
                                                                                                                ID_USER                    <pk,fk1>
                                                                                 NAME          <pk>             ID_SITE                    <pk,fk2>
                                FK_MACHINES_SITE                                 LATITUDE                       REQUESTSCAN
                                          TB_MACHINES                            LONGITUDE                      REQUESTWEBANALYSIS
                                                                                 LOCALTIMEFUSE                                                                                    TB_RECONSTRUCTIONS
                                                                                                                REQUESTDATAPROCESSING
                           ID                                    <ak2>                                                                                                          ID                      <pk>
                                                                                                                REQUESTDATADOWNLOAD                                                                                             TB_ALIGNEDBASETRACKS
                           NAME                                  <pk>                                                                                                           ID_RECONSTRUCTOR        <fk2>
                           ADDRESS                               <ak1>                                          REQUESTPROCESSSTARTUP
                                                                                                                            FK_PROCOPERA_RECON
                                                                                                                                                                                ISCOMPLETE                                          ID                  <pk>
                           ISSCANNINGSERVER                                                                                                                                     ID_PROGRAMSETTINGS       <fk3>                      ID_MIPBASETRACK     <fk1>
                           ISBATCHSERVER                                                                                                                                        ID_PROCESSOPERATION      <fk1>                      ID_RECONSTRUCTION
                                                                                                                                                                                                               FK_RECON_ALIGNEDTRACKS                   <fk4>
                           ISDATAPROCESSINGSERVER                                                                                                                                                                                   ID_ALIGNEDZONE      <fk3>
                           ISWEBSERVER                                                                                                                                                      FK_RECON_ALIGNEDZONE                    ID_VOLUMETRACK      <fk2>
                                                                                                FK_BATCHES_MACHINES
                           ISDATABASESERVER                                                                                                                                              TB_ALIGNEDZONES                            POSX
                           ISLOCALMASTERCONTROLLER                                                                                                                                                                                  POSY
                           ID_SITE                               <fk>                                                                                                               ID                     <ak>
                                                                                                                                                                                                                                    GRAINS
                                                                                                                                                                                    ID_ZONE                <pk,fk1>
                                                                                                                                                                                                                                    AREASUM
                                                                                                                          FK_USERS_PRIVILEGES                                       ID_RECONSTRUCTION <pk,fk2>
                                                                                                                                                                                                                                    SLOPEX
              TB_OPERATIONS                                                                                                                                                         PLATE


OPS
             ID
             NAME
                         <ak>
                         <pk>
                                                   System Management                                                              ID
                                                                                                                                       TB_USERS
                                                                                                                                                <ak1>
                                                                                                                                                             FK_RECON_USERS
                                                                                                                                                                                    MAPXX
                                                                                                                                                                                    MAPXY
                                                                                                                                                                                    MAPYX
                                                                                                                                                                                                                                    SLOPEY
                                                                                                                                                                                                                                    SIGMA

             ISSCANNING                    FK_MACHINES_PROCOPERATIONS

             ISTRANSPORT                                                              FK_SITES_USERS                              USERNAME      <ak2>                               MAPYY
                                                                                                                                  PWD                                               MAPDX
                                                                                                                                  NAME          <pk>                                MAPDY
                                                                                                                                                                                                                                FK_ALIGN_ZONESTRACKS
                                                                                                                                  SURNAME       <pk>                                MAPDZ
                                                                                                                                  INSTITUTION                                       SLOPEDSX
                                                                                                                                  ID_SITE       <fk>                                SLOPEDSY
                                                                                                                                  EMAIL                                             SLOPEMSX

ons              FK_OPERATIONS_PROCOPERATIONS
                                                 TB_PROC_OPERATIONS
                                                 ID              <ak>
                                                                                                                                  ADDRESS
                                                                                                                                  PHONE
                                                                                                                                                                                    SLOPEMSY
                                                                                                                                                                                    REFX
                                                                                                                                                                                    REFY
                                                 ID_PROCESS      <pk,fk3>                                                                                                           REFZ
                                                 ID_OPERATION    <pk,fk1>                                                                                                           DOWNZ
                                                                                                                                                           FK_PROCOPS_VTXLOCS
                                                 ID_MACHINE      <fk2>                                                                                                              UPZ
                                                 STARTTIME

                         FK_PROCESSES_PROCOPS
                                                 FINISHTIME                                                           FK_USERS_PROGSETTINGS

                                                                                                                                                                                   Event Reconstruction
Conclusioni
Conclusioni



 DB Relazionale  Archivio dati “intelligente”, che si adatta ai dati stessi




 Oracle  Soluzione affidabile, efficiente ed evoluta
                                                        (Oracle 10g, DB per Grid)




 Oracle  Non sostituisce gli strumenti di analisi dati, ma li integra con
         un solido supporto di archiviazione e gestione