Newsgroup: it.comp.programmare
Titolo: database

Ho collegato alla mia form un file access con 180.000 record.
nella ricerca di un record specifico l'attesa non č poca!!!
cosa ho sbagliato?
Devo gestire i dati con un database che non sia un file access?
oppure
devo dividere il mio file access in piů fiel di dimensioni piů piccole?
hepl me
-- 
Posted from  [212.171.103.237] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 devo dividere il mio file access in più fiel di dimensioni più piccole?
Dipende da come hai strutturato il DB...
Ciao
Alessio

scusami ma sono un po nuovello!!!
innanzitutto sto parlando di vb e prima non l'avevo detto.
cosa intendi per indici?
poi spiegarmi cos'è DBMS?
Infine sai cosigliarmi un testo che possa aiutarmi nell'apprendimento più
approffondito a riguardo??
Alessandro
-- 
Posted from 
a-ve25-59.tin.it
 [213.45.171.122] 


 approffondito a riguardo??
Ne esistono tantissimi, più o meno validi, sia in inglese che in italiano.
Io ho preparato l'esame di sistemi informativi 2 e di basi di dati su
"Basi di Dati, Concetti, linguaggi e architetture" di Atzeni et al.
L'ultima edizione, tra l'altro, la dovrebbero aver stampata non più di un
anno fa.
E' un libro piuttosto completo, che affronta gli argomenti dalla
progettazione di un DB secondo lo schema relazionale, alla sua
ristrutturazione, all'indicizzazione con i vari metodi, fino alla tecnologia
dei DB Server e all' accesso concorrente ai dati.
Ciao
Alessio

 Alessandro
Sulla def di DBMS ti hanno gia' risposto.
Ti do qualche info sulla def. di indice.
Supponi di avere 1.000.000 di record in una tabella (ogi record rappresenta
l'anagrafica di una persona: cf, nome, cognome, ecc.).
Supponi di dover trovare 1 solo record, la ricerca secondo te deve essere
proporzionale al milione di record o al solo record che devi trovare?
Se pensi che la risposta esatta sia la (1) dovresti effettuare una scansione
di tutti i record della tabella per cercare il record voluto.....per trovare
1 record scansioni 1.000.000 ......scelta altamente inifficiente.
Per rendere la ricerca proporzionale al risultato voluto si introduce il
concetto di indice. Un indice non e' altro che una funzione che permette di
raggruppare i record in "gruppi simili", ti spiego meglio:
Supponi di indicizzare i record rispetto ad campo di tipo numerico, e che
tale campo presenti i seguenti valori:
1, 4,3,5, 10,14,-5,-3,12,-32,-1,24......
Un'indicizzazione potrebbe essere quella di considerare la funzione
modulo....in questo modo se cerchi il valore "1" la ricerca verra'
effettuato solo sui campi il cui modulo e' pari ad 1 (quindi solo sui due
campi "1" e "-1" anziche' su tutti gli altri).
Se il campo da indicizzare e' una stringa, solitamente si indicizza
sommando il corrispondente valore ASCII di ciascun carattere (il valore
ottenuto puo' essere diviso per un eventuale valore).
Queste tecniche di indicizzazione prendono il nome di tecniche hash. Il
punto di forza e' la ricerca del singolo elemento (pessime nel caso di
ricerca di intervalli: in questo caso si considerano le tecniche B+Tree). Il
problema nasce quando si ceffettuano delle modifiche sul record indicizzato
(si perde tempo in quanto bisogna riindicizzarlo).
Spero di essere stato chiaro e di esserti stato utile
ciao
e.

Ok mezzo discorso l'ho capito l'altro mezzo un po meno!!!
Prendiamo in considerazione il mio caso specifico:
Devo usare un database in Access in cui sono presenti 180.000 recors
(nello specifico un intero listino formato da codici articolo, descrizioni,
prezzo, ect..)
Come hai già detto tu ho provato una ricerca con la scansione di tutti i
180.000 records ed effettivamente l'attesa per la visualizzazione del codice è
troppo lunga!!
Ma a questo punto devo usare "l'indicizzazione dei record"??
Tu dice di usare la funzione modulo? cioè?
Non capisco inoltre cosa significa più dettagliatamente indicizzare il campo!!
Scusami porta pazienza!
Potresti farmi u esempio nel mio caso specifico?
Alessandro
-- 
Posted from 
a-ve20-69.tin.it
 [213.45.165.228] 
