Indici Testuali semplici: Demo

Posted by Alessia, Roberta, Saverio ed Antonella | Posted in , , , , | Posted on 15:06

Questo link vi porta alla DEMO.

Dopo lo splash screen vi apparirà una pagina con uno slideshow di opere grafiche ed una casella di ricerca.

Nella casella potete inserire nomi di autori (ad esempio Piranesi, Rossini o altri) oppure indicazioni sul soggetto (Roma, Arco, Campidoglio, Papa...).



Potete scegliere la visualizzazione ad immagini oppure testuale (tab Gallery oppure Gerarchia Opere.

La visualizzazione testuale mostra i contenuti del campo su cui è stato costruito l'indice.

Questa tecnica è molto utile quando si debba realizzare una interfaccia semplice da usare che fornisca risposte in tempi brevi.

Oracle in Pillole: Indici Testuali semplici

Posted by Alessia, Roberta, Saverio ed Antonella | Posted in , , , , , | Posted on 14:35

Che differenza c'è tra un indice testuale ed, ad esempio, i più comuni B-tree indexes?

Semplice: gli indici full text permettono di fare ricerche veloci su ogni parola di un testo.
Gli indici B-tree su stringa, invece, permettono di velocizzare solo le ricerche sui primi caratteri di un campo.

La ricerca testuale è quella che viene effettuata, ad esempio, con i Motori di Ricerca. Quindi la sua utilità è ovvia.

Google utilizza delle tecniche avanzate che gli permettono di ottenere i risultati che tutti sperimentiamo ogni giorno. Ne parleremo presto, affrontando i noSQL Database e le BigTable.

Arriviamo al punto: Oracle permette di creare indici testuali sia per normali tabelle relazionali che per file di vario tipo. Ovviamente il loro utilizzo può essere piuttosto complicato ed impegnativo. In più sono previsti 4 tipi differenti (CONTEXT, CTXCAT, CTXRULE e CTXXPATH).

Uno di questi è semplice da usare e non richiede praticamente manutenzione: CTXCAT.


Supponiamo di avere una tabella che contenga un campo NOTE.
La costruzione dell'indice si effettua con  la seguente istruzione:

 CREATE INDEX indexname ON Miatabella (NOTE) INDEXTYPE IS CTXSYS.CTXCAT;

 Un esempio di query, invece, è il seguente:
 Select cliente from MiaTabella where CATSEARCH (NOTE, 'Reclamo', null) >0;
Dove MiaTabella è il nome della tabella e NOTE è il nome del campo da indicizzare.

Un utilizzo interessante, utile e raramente descritto di questa tecnica, è la creazione di un indice su più di un campo di una o più tabelle.
Per fare un esempio pratico, possiamo ottenere il riferimento di una persona, in base a tutto il suo curriculum a tutte le sue esperienze di studio e di lavoro.

La realizzazione di ciò si ottiene construendo l'indice sulla base del risultato di una funzione PL/SQL che, per ogni persona dell'archivio, fornisca tutte le parole chiave da indicizzare.

Per chi vuole approfondire:

  http://docs.oracle.com/cd/B28359_01/text.111/b28303/ind.htm#i1007263

Oracle in pillole: utilizzo di funzionalità non disponibili nel DBMS ..come faccio?

Posted by Alessia, Roberta, Saverio ed Antonella | Posted in | Posted on 13:26

Semplice.
La scrivo (o la copio da Internet) nel linguaggio di programmazione che conosco, la installo nella rete privata o in Internet, ed infine dico ad Oracle di usarla.

Molto più semplice di creare un servizio Web.

Se vi state chiedendo cosa non si possa fare in Oracle, vi facciamo qualche esempio:
  • Creare file ZIP 
  • Memorizzare oggetti fuori dal Server dove risiede il DBMS
  • Utilizzare alcuni Protocolli
  • Utilizzare dei Servizi Cloud
Quindi preparare una pagina php o una servlet Java che faccia quello che vi serve e la richiamate da PL/SQL utilizzando il protocollo HTTP.

Per fare questo occorre utilizare il package UTL_HTTP che permette di:
  • fare una richiesta tramite un url
  • ricevere un testo in risposta (Stringa, LOB o XML)
Il codice chiave è questo:
  • utl_http.begin_request(url, 'POST'); inizia la richiesta
  • (utl_http.resp) http_resp := utl_http.get_response(http_req); richiede la risposta
  • utl_http.read_text(http_resp, data,4000); legge, con un buffer di 4000 caratteri, tutto il testo della risposta
Esempi completi di codice ed approfondimenti li trovate qui:

http://www.oracle-base.com/articles/misc/RetrievingHTMLandBinariesIntoTablesOverHTTP.php

http://psoug.org/reference/utl_http.html


Oracle in Pillole: Il CUBO facile

Posted by Alessia, Roberta, Saverio ed Antonella | Posted in , , , , | Posted on 07:34

Il Cubo di Dati può essere creato e gestito solo con complessi e costosi prodotti di Business Intelligence?

Niente di più falso.

Se siete capaci di effettuare una Query con il Group by...siete anche capaci di fare un Cubo...

La Query di base:

Select Regione, Venditore, prodotto, sum(vendite_anno), sum(vendite_anno_prec) from vendite group by Regione, Venditore, prodotto

Ecco qui il Cubo:

Select Regione, Venditore, prodotto, sum(vendite_anno), sum(vendite_anno_prec) from vendite
group by Cube (Regione, Venditore, prodotto)

Il risultato? Tutti i raggruppamenti possibili (Totale generale, per Regione, per Venditore, per Prodotto, e per tutte le altre combinazioni possibili).

Se invece le dimensioni sono gerarchiche (non vi serve un Cubo, ma solo tutti i possibili subtotali) la query da utilizzare è:

 Select Regione, Venditore, prodotto, sum(vendite_anno), sum(vendite_anno_prec) from vendite
group by Rollup(Regione, Venditore, prodotto)

Provate per credere!




Idee semplici che diventano Scoperte

Posted by Alessia, Roberta, Saverio ed Antonella | Posted in , , , | Posted on 01:11

Molte persone credono che la scienza sia una scatola nera, chiusa.
Invece è un campo aperto.

Coloro che hanno fatto delle scoperte hanno solo osservato un po' di più quello che li circondava, erano soprattutto più curiosi.

E la loro curiosità ha cambiato il modo in cui tutti vedono il mondo, e quindi...
ha cambiato il mondo.

Se loro lo hanno fatto, lo puoi fare anche TU.

Kartograph

Posted by Alessia, Roberta, Saverio ed Antonella | Posted in , , | Posted on 10:21

Ho trovato questo Sito per caso gironzolando su pinterest


E' un framework basato su SVG (magnifica tecnica) per creare Map Chart  molto belli ed interattivi...
Se vi piacciono le immagini che vedete qui...fateci un salto....kartograph