Gå til innhold

Poenget med databaser? Sikre solid dataintegritet?


Anbefalte innlegg

Eg satt her og tenkte nettopp på ein ting, når eg bare trenger å lagre data i ein tabell. Trenger eg då å bruke ein database?

 

Ville det ikkje ha vore meir optimalt å bare bruke ein tekstfil.

La oss ta eit eksempel der eg skal lage ein telefonkatalog, då trenger eg 3 datatyper i fila, id, navn og telefonnummer.

 

Vil ikkje fil IO vere mykje raskare enn å bruke ein database som berkeley, sqlite eller mysql?

 

Eg trenger jo ikkje noko form for dataintegritet så lenge eg skriver såkalte *triggers* til fil IO handlinga? Der feks når eg har sletta rekke med id 12 så kræsjer det ikkje men at det bare blir returnert 'empty'

 

Altså kort sagt det eg tenker på er at istadenfor å lagre data i ein database så kan ein heller lagra data i ein datastruktur som bruker ein fil istadenfor minne. Vil ikkje dette bli vanvittig mykje kjappare?

 

Det er jo ingen relasjoner og dermed så vil jo ein database bli rein overkill?

Endret av siDDIs
Lenke til kommentar
Videoannonse
Annonse

Fikk svar her frå ein anna person, alt går på algoritmer, datastruktur og datatilpassning. Normalt sett er dei aller minste databasene meget godt optimaliserte og det vil bare bli ein svært tidskrevane utfordring å skrive noko som fungerer betre enn eksisterandes lausninger.

 

Fil IO lønner seg bare når ein skal feks laste inn veldig små mengder.

Endret av siDDIs
Lenke til kommentar

Så lenge du skal kode noe veldig enkelt, så kan du bruke en tekstfil, men du skal skrive ganske mye kode for å få lage dette feilsikkert i forhold til kræsj (hva gjør du f.eks. hvis programmet kræsjer mellom den gamle fila blir slettet og den nye blir skrevet? Du må i såfall skrive programmet ditt til å lage en ny fil, og så slette den gamle og flytte inn den nye...)

 

 

Databaser sørger for å ha orden på all dataen, så alt du behøver å gjøre, er å skrive koden for å gjøre endringer i databasen.

 

 

Og selvfølgelig; du begynner med navn og nummer, men så plutselig trenger du e-post-adresse, firma, og flere type numre. Da er det kjekt å kunne utvide en database, fremfor å programmere om hele programmet for å lage tekstfila.

Lenke til kommentar
Vil ikkje fil IO vere mykje raskare enn å bruke ein database som berkeley, sqlite eller mysql?

9050522[/snapback]

Det kommer helt klart an på bruken, men du har et godt poeng. Til små datamengder med enkle strukturer vil det typsik være raskest, men ved større mengder data har du en faktor som heter indeksering, som gjør databasene overlegent raskere, hvis du da ikke vil kode din egen indekseringsløsning.

 

Et tilfelle hvor filer virkelig ER raskere er ved sekvensiell skriving av data til disk. Det er ikke uten grunn at man stadig hører snakk om loggfiler, ikke loggdatabaser. Ved hypping skriving til en og samme "struktur" vil det være klart mer effektivt å skrive til en tekstfil enn til en tabell i en database. Ulempen er selvfølgelig at det ikke blir like hyggelig å søke i dataene i etterkant, men det kan f eks løses ved daglige importer av relevante data til en databaseløsning.

Lenke til kommentar
  • 2 uker senere...

De fleste databaser idag er laget slik at samme når maskinen/programmet kræsjer så skal du ikke miste data som er skrevet i en fullført transaksjon og ingen av dataene som er skrevet i en halvveis ferdig transaksjon henger.

 

Du får også ett standard verktøy som de fleste kan bruke for å lese/skrive data uten å måtte forstå DIN kode. Mao, dataene er tilgjengelig for alle.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...