Gli "stili" di database usano file discreti per le loro tabelle?

2

Ho parlato con alcune persone al lavoro che credono che alcune versioni di un database memorizzino i loro dati in tabelle discrete. Vale a dire che potresti aprire una cartella e vedere un file per ogni tabella nel database, quindi molti altri file di supporto. Non hanno molta esperienza con i database ma ho lavorato solo con loro per poco più di mezzo anno quindi non sono una fonte di informazioni canoniche neanche.

Ho sottolineato i vantaggi di SQL Server rispetto a Access (e prima di questo, Access su Excel. Sono stati fatti passi da gigante :)). Ma, altre persone avevano l'impressione che il / i vantaggio / i dell'utilizzo di SQL Server tramite Access fosse che tutti i dati non erano consolidati in un unico file. Tuttavia, SQL Server racchiude tutto in un unico file .mdf (più il file di registro).

La mia domanda è, esiste un RDBMS che trattiene i suoi dati in più file discreti invece di un file principale? E se la risposta è sì, perché farlo in un modo rispetto all'altro?

modifica

Grazie a tutti per le vostre risposte. Questo ha davvero aiutato a chiarire l'intera situazione.

    
posta Brad 05.04.2012 - 20:43
fonte

5 risposte

2

I database di solito utilizzano un grande file per motivi di prestazioni. Il motore DB può utilizzare la propria struttura interna e non deve limitarsi ai limiti del file system in termini di dimensioni del blocco, dimensione del buffer o criteri di frammentazione. So che alcuni sistemi utilizzati (e possibilmente ancora) forniscono i propri driver di dispositivo a blocchi. Per quei sistemi, devi semplicemente consegnare loro una partizione del disco raw e lasciare che il database gestisca la propria gestione dello storage, eliminando un livello di riferimento indiretto e accelerando tutte le operazioni del disco. È anche più facile mantenere il database in blocchi contigui su disco con il minor numero di file da frammentare.

    
risposta data 06.04.2012 - 19:22
fonte
3

Molti database mantengono i loro dati in un file per tabella. MySQL, ad esempio, fa per le tabelle MyISAM. Se i dati sono tutti tenuti in un file o no non è molto rilevante. Dipende solo dal sistema di storage in uso.

Fondamentalmente, è tra le ultime cose di cui mi preoccupo quando seleziono un server del database. Per i database desktop, i dati dei singoli file potrebbero essere più convenienti.

    
risposta data 05.04.2012 - 21:01
fonte
1

MySql memorizza i dati in un file separato per tabella AFAIK. Non penso ci sia una buona ragione per farlo in un modo o nell'altro, ma molto dipende dai dettagli di implementazione del tuo spazio di archiviazione. Ma non scrivo server di database quindi non posso dirlo con certezza.

Inoltre, il server sql non ha un file di blocco. Ha un file di registro delle transazioni. I blocchi sono per dbs desktop.

    
risposta data 05.04.2012 - 20:59
fonte
1

In Oracle, è possibile definire "Tabelle esterne". Queste tabelle sono solo file di testo separati ma sono accessibili tramite SQL. Nella famiglia di database xBase, ogni database ha il proprio file (.dbf) e ogni indice ha il proprio file (.ndx) (le estensioni variano tra i prodotti).

Gli svantaggi di avere diversi file che rappresentano il tuo database sono la sicurezza e la coerenza del database. La cosa peggiore di MS-Access in particolare è che il file del database memorizza non solo i dati ma anche del codice. Se il file del database è danneggiato, si verifica un problema non solo l'accesso ai dati, ma anche l'accesso a Coed.

    
risposta data 05.04.2012 - 22:30
fonte
1

Non vedo alcun motivo per cui vorresti un file per tabella. Nel server SQL è possibile partizionare i file se si desidera ottenere prestazioni, ma in genere non è necessario farlo finché non si dispone di molti milioni di record.

    
risposta data 06.04.2012 - 17:29
fonte

Leggi altre domande sui tag