Database

Tutta l'informatica

Database

Messaggioda clros » mar ago 17, 2004 12:45 pm

Mi interesserebbe sapere come vengono gestiti gli archivi da dbms tipo DB2 o altri.
In particolare vorrei capire se i vari dbms esistenti memorizzano tutto il db in un unico file (come -mi pare- fa Access), se esistono delle soluzioni alternative (che so, un file per ogni "tabella") e qual'è la migliore soluzione (anche teorica) che permetta un accesso veloce ad un DB anche contenente moltissimi dati.

Scusate le eventuali imprecisioni, ma sono alquanto ignorante in materia :triste:
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Messaggioda ikir » dom ago 22, 2004 3:47 pm

L'esperto di DB non era The Elter? :-) Spero che qualcuno posso darti una spiegazione, o che tu l'abbia già trovata. Sai Agosto è un mese un po' "lento" :-)
Avatar utente
ikir

Admin
 
Messaggi: 10202
Iscritto il: mer gen 08, 2003 7:33 pm
Località: SYS:Prefs/

Re: Database

Messaggioda riko » mar ago 24, 2004 5:03 pm

Allora... io nemmeno mi interesso in modo particolare di DB.
Volevo solo fare una precisazione...
Access non e` un database, e` un frontend per i database, un programma per inserire dati, fari piccole query roba simile.
Access usa come motore di db Jet. Una ciofeca immonda a sentire MS stessa. Loro piuttosto consigliando MSDE oppure (a pagamento MSSQL). Credo che in teoria si possa usare Access per accedere anche a MSSQL... ma devo dire che non ho affatto simpatica per Access.

Per i DB, posso dirti che MySQL usa piu` files.
Ho anche sentito in effetti l'espressione
'MySQL is just an advanced grep'

Ma vabbe`... io se dovessi usare un DB userei Postgre :)
-enrico
fibs = 0 : 1: [ a + b | (a, b) <- zip fibs (tail fibs) ]


Akropolix: Community OFF-TOPIC di IKSnet
http://www.akropolix.net/forum

"se do da mangiare a un affamato mi dicono che sono un santo, se mi chiedo perch? ? affamato mi dicono che sono un comunista" (Helder C?mara, Arcivescovo di Recife)
Avatar utente
riko

Supremo
 
Messaggi: 3329
Iscritto il: gio mar 04, 2004 4:28 pm
Località: Chiba City

Re: Database

Messaggioda Trix180 » mer ago 25, 2004 1:03 pm

clros ha scritto:qual'è la migliore soluzione (anche teorica) che permetta un accesso veloce ad un DB anche contenente moltissimi dati.


Probabilmente la soluzione migliore per un dadtabase di grandi dimensioni piu' che il tipo di occupazione su disco e tenere un botto di cache in memoria, nonche ottimizzare con medodi di ricerca *NON* banali ...
Per linux se devi gestire molti dati e consigliabile Postgres in caso contrario Mysql

buona fortuna :ammicca:
[Trix180]
God invented man, and man invented the metric system.

La guerra e' pace
La liberta' e' schiavitu'
L'ignoranza e' forza

la religione ? l'oppio del popolo.

Jane, da quando ti ho conosciuto faccio caso alle piccole cose delle vita, gli uccellini che cinguettano, la rugiada che si spande tra le foglie, i semafori...
[/Trix180]
Avatar utente
Trix180

Maestro
 
Messaggi: 453
Iscritto il: sab mar 27, 2004 7:46 pm
Località: Val Di Taro

Re: Database

Messaggioda The Elter » lun set 06, 2004 8:05 pm

clros ha scritto:Mi interesserebbe sapere come vengono gestiti gli archivi da dbms tipo DB2 o altri.
In particolare vorrei capire se i vari dbms esistenti memorizzano tutto il db in un unico file (come -mi pare- fa Access), se esistono delle soluzioni alternative (che so, un file per ogni "tabella") e qual'è la migliore soluzione (anche teorica) che permetta un accesso veloce ad un DB anche contenente moltissimi dati.

Scusate le eventuali imprecisioni, ma sono alquanto ignorante in materia :triste:


Mi accorgo ora di questa richiesta (e ikir mi aveva pure messo in mezzo! :ammicca: ) ma come giustamente ha già detto lui durante le vacanze è tutto un po' rallentato!

Dunque se ho capito bene la domanda cerchi un approfondimento teorico su come sono fatti in generale i database...

A parte cercare un libro sulle basi di dati (vedi un po' tu quello che ti ispira di più con un paio di ricerche su internet) ti suggerisco di dare un'occhiata al manuale di mysql (lo trovi online su http://www.mysql.com) dove c'è un capitolo sui vari engine di stoccaggio delle tabelle su disco.

In generale non è importante di per se per l'efficienza se si usa un unico file o più files per tenere i dati, ma come essi sono organizzati.
Se si tiene i dati in un unico file ci sono solo altri tipi di problemi che dipendono dalle peculiarità del filesystem sottostante (ovvero grandezza massima del file gestibile dal filesystem!) e il rischio che se il file si rompe si perde tutto in una botta sola (ma anche questa ultima affermazione dipende da come de facto sono archiviati i dati nel file stesso).

Solitamente i DB più semplici usano un file per una tabella dove allocano i vari record in ordine di inserimento marcando via via i record cancellati per poterli sovrascrivere in seguito (ricompattare il file tutte le volte che si fa una cancellazione è molto oneroso in termini di efficienza), a part eviene tenuto l'indice (o gli indici) che la tabella ha.
Per recuperare i dati si scorre lungo l'indice e si calcolano gli offset dei vari record della tabella per estrarli dal file che li contiene.
L'indice ovviamente sarà una struttura dati che consente un facile recupero/inserimento di informazioni a seconda delle caratteristiche che si richiedono (così a naso mi vengono in mente BTREE o HASH TABLES o comunque una qualche struttura arborea organizzata).

Thats it!

Questo è lo spunto di partenza, buona ricerca e buono studio!
:eheh2:
Quando la tigre ruggisce, si alzano forti venti; quando il drago grida, si addensano le nubi. Il verso della lepre o il raglio dell'asino invece non hanno alcun effetto sul vento e sulle nubi.
Avatar utente
The Elter

Veterano
 
Messaggi: 161
Iscritto il: lun set 22, 2003 10:41 am
Località: Firenze


Torna a Tecnologia, internet, coding

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti