|
|
|
|
.grande:maestro.
Registered: Nov 2005
Posts: 652 (0.10 al dì)
Location:
Corso:
Anno:
Time Online: 121 Days, 13:57:11 [...]
Status: Offline
Edit | Report | IP: Logged |
Si, ovviamente si complica il tutto, ma è strutturalmente molto più corretto. Per le funzioni da implementare in questo progetto probabilmente non ti serve nè ti porta alcun vantaggio, però se progetti pensando a futuri sviluppi non si può tralasciare questo aspetto.
Dato che non è richiesto dalle specifiche, puoi tranquillamente non farlo, così eviti di incasinarti troppo se non hai troppa padronanza con la materia.
Nel caso lo facessi ovviamente in fase di inserimento devi inserire nelle due tabelle, associando ad annuncio la chiave dell'immobile inserito.
Se l'immobile è già presente invece devi solamente inserire in annuncio.
Con una semplice join arrivi allo stesso punto di avere un'unica tabella, quindi per le funzioni di ricerca ti cambia relativamente.
Tra l'altro leggo che richiede viste materializzate, quindi a maggior ragione cambia nulla.
Mi dite cosa intende per clustering? Oltre che concettualmente, proprio tecnicamente vorrei sapere come andrebbero implementati questi raggruppamenti.
Perché se è quello che intendo io, va fatto con tecniche di partizionamento che mi sembra tutt'altro che semplice.
Per quanto riguarda la tua soluzione per me è 'scorretta' per due motivi:
1) come vedi avrebbe più senso legarla ad immobile e non ad annuncio (è l'appartamento ad avere la portineria, non l'annuncio: lo stesso appartamento avrà la portineria in tutti gli annunci che gli associ)
2) non c'è motivo di dividere in due tabelle quegli attributi che saranno sempre da esplicare per ogni annuncio, dato che non splitti in base alla categoria di immobile.
Guarda qualche post sopra che se ne è discusso. Direi che ad occhio quelle son le uniche due opzioni valutabili.
__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com
Last edited by number15 on 06-01-2012 at 11:30
|
06-01-2012 11:24 |
|
|
| |
|
.consigliere.
Registered: Jun 2010
Posts: 100 (0.02 al dì)
Location:
Corso:
Anno:
Time Online: 1 Day, 7:05:10 [...]
Status: Offline
Edit | Report | IP: Logged |
Raggruppamento per similarita. Gli annunci possono essere raggruppati in cluster sulla
base di criteri di similarita. Un cluster e un gruppo di annunci che risultano simili rispetto
a un dato criterio. Ad esempio, utilizzando la vicinanza geograca come criterio di simila-
rita, si otterranno cluster che raggruppano annunci di immobili collocati in aree vicine. Il
1Lo studente decide a priori e documenta le tipologie disponibili.
2
criterio di similarita puo essere dotato di parametri che ne in
uenzano il comportamento2.
Un esempio di parametro e la tolleranza che stabilisce la soglia entro la quale considerare
simili due annunci. Ad esempio, utilizzando la vicinanza geograca come criterio, la tolle-
ranza puo essere di 10km per fare in modo che gli annunci di immobili nel raggio di 10km
vengano raggruppati nel medesimo cluster. Il sistema deve supportare ALMENO 2 criteri
di similarita dierenti. Il criterio per vicinanza geograca deve essere obbligatoriamente
supportato dalla base di dati. Gli utenti registrati e non registrati possono visualizzare gli
annunci raggruppati in cluster secondo un criterio di similarita predenito scelto dall'am-
ministratore dell'applicazione. L'amministratore puo cambiare la visualizzazione in cluster
selezionando un diverso criterio di similarita tra quelli supportati dall'applicazione. Nella
realizzazione del progetto, si consideri che l'inserimento, la modica e la cancellazione di
annunci richiede l'aggiornamento dei cluster.
io l'ho implementato cn le viste materializzate con opportuni trigger
|
06-01-2012 11:32 |
|
|
| |
|
.grande:maestro.
Registered: Nov 2005
Posts: 652 (0.10 al dì)
Location:
Corso:
Anno:
Time Online: 121 Days, 13:57:11 [...]
Status: Offline
Edit | Report | IP: Logged |
Si, avevo capito a cosa servissero, ma non mi era ben chiaro come volesse che fosse realizzato il tutto.
Spero vivamente che dobbiate farlo con le viste materializzate, ma il dubbio mi era sorto perché sopra parla chiaramente di viste materializzate
E’ pertanto necessario realizzare gli opportuni trigger che mantengano aggiornate tali viste in relazione all’inserimento
o alla modifica di annunci.
mentre qua altrettanto chiaramente parla di cluster
Nella realizzazione del progetto, si consideri che l'inserimento, la modica e la cancellazione di annunci richiede l'aggiornamento dei cluster.
__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com
|
06-01-2012 11:36 |
|
|
| |
|
.consigliere.
Registered: Jun 2010
Posts: 100 (0.02 al dì)
Location:
Corso:
Anno:
Time Online: 1 Day, 7:05:10 [...]
Status: Offline
Edit | Report | IP: Logged |
Gia ma dato k alle lezioni ci siamo concentrati soprattutto sullòe viste m. e dato che il partizionamento in laboratoriomanco l abbiamo fatto io l'hoimplementato cosi e x questo per nn rendere troppo complesso il tutto ho usato una sola tabella annuncio..cmq è un ottima soluzione anke la tua
|
06-01-2012 11:40 |
|
|
| |
|
.grande:maestro.
Registered: Nov 2005
Posts: 652 (0.10 al dì)
Location:
Corso:
Anno:
Time Online: 121 Days, 13:57:11 [...]
Status: Offline
Edit | Report | IP: Logged |
Come ti ho detto credo e spero che voglia viste materializzate
Usare solo la tabella annuncio rispetta le specifiche quindi è senz'altro corretto.
Quando diedi io l'esame era espressamente richiesto che fosse tutto in terza forma normale.
Ora nel testo non lo vedo scritto, ma dateci un occhio comunque che potrebbero chiedervelo in fase di discussione del progetto.
__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com
|
06-01-2012 11:51 |
|
|
| |
|
.consigliere.
Registered: Jun 2010
Posts: 100 (0.02 al dì)
Location:
Corso:
Anno:
Time Online: 1 Day, 7:05:10 [...]
Status: Offline
Edit | Report | IP: Logged |
sISI poi cmq il prof ha dtt k c possono essere diverse soluzioni quindi io l ho implementato cosi..inoltre a me ha dtt espressamente che vogliono vedere cm facciamo i trigger quindi penso si concentrino su quello sopratutto
|
06-01-2012 11:53 |
|
|
| |
|
.grande:maestro.
Registered: Nov 2005
Posts: 652 (0.10 al dì)
Location:
Corso:
Anno:
Time Online: 121 Days, 13:57:11 [...]
Status: Offline
Edit | Report | IP: Logged |
Se ti vengono i trigger sei già a buon punto, dato che spesso è la cosa più ostica da gestire, o meglio, si sbaglia sempre qualcosa nella sintassi agli inizi.
__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com
|
06-01-2012 11:57 |
|
|
| |
|
.amico.
Registered: Oct 2010
Posts: 34 (0.01 al dì)
Location: Milano
Corso: Informatica
Anno: 3°
Time Online: 1 Day, 20:29:12 [...]
Status: Offline
Edit | Report | IP: Logged |
Ragazzi ma per quanto riguarda il raggruppamento di similarità della vicinanza geografica, io ho trovato questa formula:
Siano x1, y1, x2, y2 la latitudine (x) e la longitudine (y) rispettivamente dei punti A e B; sia DELTA1 la differenza tra le due longitudini e DELTA2 la distanza angolare tra i due punti considerati (A,B).
La distanza angolare tra A e B è data dalla formula:
DELTA1 = y1 - y2
DELTA2 = arccos(sin(x1)*sin(x2) + cos(x1)*cos(x2)*cos(DELTA1))
Sia R il raggio della terra arrotondato e D la distanza in Km tra A e B.
La distanza in Km tra A e B è data dalla formula:
R = 6360
D = DELTA2*R
Qualcuno ha fatto così?
Inoltre usando questa formula, dovrei basarmi su una coppia di coordinate "prestabilite" per verificare la vicinanza con tutte le altre coppie. Quale coppia di coordinate "prestabilite" scegliere?
Fatemi sapere, grazie!
Last edited by spikey on 08-01-2012 at 15:24
|
08-01-2012 15:11 |
|
|
| |
|
.consigliere.
Registered: Sep 2007
Posts: 147 (0.02 al dì)
Location: Milano
Corso: Informatica
Anno: Secondo anno
Time Online: 1 Day, 11:23:27 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by spikey
Inoltre usando questa formula, dovrei basarmi su una coppia di coordinate "prestabilite" per verificare la vicinanza con tutte le altre coppie. Quale coppia di coordinate "prestabilite" scegliere?
Fatemi sapere, grazie!
Io pensavo di implementare in PHP questo algoritmo qua: Dbscan
A prima vista non mi sembra complicato e fa tutto quello che serve e gli unici parametri che gli devi dare sono la soglia e il numero minimo di elementi in un cluster (che può tranquillamente essere 1), quindi non hai nessun problema di scelta delle coordinate "prestabilite"
Ovviamente se qualcuno ha già trovato in rete un'implementazione già fatta ben venga!
__________________
Eidolon64|Blog
|
08-01-2012 16:02 |
|
|
| |
|
.grande:maestro.
Registered: Nov 2005
Posts: 652 (0.10 al dì)
Location:
Corso:
Anno:
Time Online: 121 Days, 13:57:11 [...]
Status: Offline
Edit | Report | IP: Logged |
@Spikey
Io in altri progetti utilizzo questa formula:
SELECT ROUND(((ACOS(SIN($lat * PI() / 180) * SIN(t.lat * PI() / 180) + COS($lat * PI() / 180) * COS(t.lat * PI() / 180) *
COS(($lon - t.lon) * PI() / 180)) * 180 / PI()) * 60 * 1.1515 $unit), 2) AS distance
FROM table t
$unit = '*1.609344' per i km
$lat e $lon sono le coordinate dell'oggetto che si prende come riferimento.
Questo però non fa quello richiesto dal progetto, perché i raggruppamenti vanno fatti a monte e soprattutto non rispetto ad un punto sulla mappa, ma rispetto ai vari punti sulla mappa.
@Shaper
Credo possa essere una buona soluzione: l'unico dubbio è che solitamente non sono richieste particolari algoritmi a livello di programmazione, e in questo caso non mi pare proprio semplicissimo.
Onestamente non saprei proprio aiutarvi su sta cosa.
Tra l'altro è una funzione di cui non capisco l'utilità.
Boh boh, mi vien da pensare però che ci voglia per forza un punto di riferimento.
__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com
Last edited by number15 on 09-01-2012 at 19:51
|
08-01-2012 19:46 |
|
|
| |
|
.illuminato.
Registered: Jul 2010
Posts: 248 (0.05 al dì)
Location: Novara
Corso: informatica
Anno:
Time Online: 2 Days, 0:46:30 [...]
Status: Offline
Edit | Report | IP: Logged |
Scusate una cosa che non centra niente..qualcuno sa se per lo scritto di basi c'è il salto appello?
|
09-01-2012 18:16 |
|
|
| |
|
.consigliere.
Registered: Sep 2007
Posts: 147 (0.02 al dì)
Location: Milano
Corso: Informatica
Anno: Secondo anno
Time Online: 1 Day, 11:23:27 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by pintu
Scusate una cosa che non centra niente..qualcuno sa se per lo scritto di basi c'è il salto appello?
Per quello di settembre c'era, presumo anche per questo..
__________________
Eidolon64|Blog
|
09-01-2012 19:26 |
|
|
| |
|
.novellino.
Registered: Jan 2010
Posts: 6 (0.00 al dì)
Location: Milano
Corso: Informatica
Anno: 2
Time Online: 3:35:19 [...]
Status: Offline
Edit | Report | IP: Logged |
Ciao a tutti.
Anche io sono in procinto di consegnare il progetto ma ancora non ho trovato un modo logico di risolvere la questione della divisione in cluster... Ho pensato di "farla sporca" e implementare una funzione che ritorni, usando la funzione distanza, tutti gli annunci entro un raggio di N Km da un dato annuncio. Funzione che poi andrei ad usare nella visualizzazione del singolo annuncio dove visualizzerei tutti gli annunci che distano al massimo N Km dall'annuncio visualizzato.
Questa cosa però non mi convince perchè sembra dal testo che la divisione in cluster vada fatta quando si inserisce un nuovo annuncio e tutto vada salvato nel db. Ma come si può suddividere gli annunci in distanza senza avere un punto da cui calcolare le distanze?
Quanlcuno di voi ha avuto qualche idea in merito?
|
15-01-2012 10:39 |
|
|
| |
|
.consigliere.
Registered: Sep 2007
Posts: 147 (0.02 al dì)
Location: Milano
Corso: Informatica
Anno: Secondo anno
Time Online: 1 Day, 11:23:27 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by basettoni
Ciao a tutti.
Anche io sono in procinto di consegnare il progetto ma ancora non ho trovato un modo logico di risolvere la questione della divisione in cluster... Ho pensato di "farla sporca" e implementare una funzione che ritorni, usando la funzione distanza, tutti gli annunci entro un raggio di N Km da un dato annuncio. Funzione che poi andrei ad usare nella visualizzazione del singolo annuncio dove visualizzerei tutti gli annunci che distano al massimo N Km dall'annuncio visualizzato.
Questa cosa però non mi convince perchè sembra dal testo che la divisione in cluster vada fatta quando si inserisce un nuovo annuncio e tutto vada salvato nel db. Ma come si può suddividere gli annunci in distanza senza avere un punto da cui calcolare le distanze?
Quanlcuno di voi ha avuto qualche idea in merito?
Come ho detto qualche post fa, l'algoritmo Dbscan fa proprio questo: divide un insieme di punti in cluster, senza la necessità di fornirgli nessun parametro a parte il numero minimo di punti che deve avere un cluster per essere considerato tale e la soglia.
Io lo sto implementando e credo di avere quasi finito: è un po' una rottura, ma è fattibile, con un po' di manipolazione di array.
Più che altro, ma poi il risultato dev'essere memorizzato nel database? Se faccio in modo che venga eseguito l'algoritmo ogni volta che si vogliono visualizzare i cluster non va bene lo stesso? Ok, come efficienza non sarà il massimo, ma non stiamo parlando di algoritmi poi così eterni..
__________________
Eidolon64|Blog
|
15-01-2012 10:45 |
|
|
| |
|
.novellino.
Registered: Jan 2010
Posts: 6 (0.00 al dì)
Location: Milano
Corso: Informatica
Anno: 2
Time Online: 3:35:19 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by Shaper
Come ho detto qualche post fa, l'algoritmo Dbscan fa proprio questo: divide un insieme di punti in cluster, senza la necessità di fornirgli nessun parametro a parte il numero minimo di punti che deve avere un cluster per essere considerato tale e la soglia.
Io lo sto implementando e credo di avere quasi finito: è un po' una rottura, ma è fattibile, con un po' di manipolazione di array.
Più che altro, ma poi il risultato dev'essere memorizzato nel database? Se faccio in modo che venga eseguito l'algoritmo ogni volta che si vogliono visualizzare i cluster non va bene lo stesso? Ok, come efficienza non sarà il massimo, ma non stiamo parlando di algoritmi poi così eterni..
A pagina 3 dice:
"... si consideri consideri che l'inserimento, la modifica e la cancellazione di annunci richiede l'aggiornamento dei cluster."
Comunque se ho capito bene questo algoritmo in sostanza aggiunge un punto a un dato cluster se la distanza tra lui e un punto del cluster è minore di una data soglia imposta giusto?
Last edited by basettoni on 15-01-2012 at 11:01
|
15-01-2012 10:56 |
|
|
| |
|
All times are GMT. The time now is 15:07. |
|
|
|
|
|
|
|
| |
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|