Hopp til innhold
NorscodeNorscode

En database som følger med

ArtikkelAv Norscode-prosjektet

NorsDB gir deg SQL-liknende spørringer og transaksjoner rett i standardbiblioteket — nok til ekte apper.

En database som følger med appen din samme språk SQL NorsDB transaksjoner

De fleste programmer trenger et sted å lagre ting: brukere, innlegg, bestillinger. I mange språk begynner det med å velge en database, installere en driver og koble opp et bibliotek. I Norscode følger en database med.

NorsDB

Standardbiblioteket har NorsDB, en lettvekts database du snakker med gjennom kjente, SQL-liknende spørringer. Du oppretter tabeller, setter inn og henter rader, og pakker flere endringer i en transaksjon som enten går helt igjennom eller ikke i det hele tatt. Det er nok til å drive ekte applikasjoner — nettstedet du leser dette på lagrer alt innholdet sitt i NorsDB.

Hvorfor det er greit at den følger med

Å ha en database rett i standardbiblioteket betyr at du kommer i gang uten oppsett, og at det er én mindre ekstern del å holde oppdatert. For en app som ikke trenger en tung databaseserver ved siden av, er det ofte akkurat passe: lite å drifte, enkelt å flytte, og alt på ett språk.

Ærlig om hva den er

NorsDB er laget for å være enkel og følge med, ikke for å konkurrere med tunge databaser bygget for enorme datamengder og mange samtidige skrivere. Trenger du det, kan du fortsatt snakke med en ekstern database. Men for det store flertallet av applikasjoner er «den som følger med» mer enn nok — og den sparer deg for et helt lag med oppsett.

En database du ikke må velge, installere og koble opp, er en database du faktisk begynner å bruke med en gang.

Litt mer enn å hente ett tall

En ekte app gjør mer enn å telle rader. Med std.db oppretter du tabeller, setter inn og henter data, og oppdaterer den med vanlige SQL-setninger:

db.execute(h, "INSERT INTO notat (id, tekst) VALUES (1, 'hei')")
la tekst = db.query_text(h, "SELECT tekst FROM notat WHERE id=1")

For verdier som kommer utenfra — fra en bruker eller et API — bør du bruke de bundne variantene som execute_bundet og query_text_bundet. De holder dataene atskilt fra selve setningen, så en ondsinnet inndata ikke kan endre spørringen. Det er den trygge vanen, og den er verdt å ta med fra dag én.

Alt eller ingenting

Skal flere endringer henge sammen — trekke fra én konto og legge til på en annen — pakker du dem i en transaksjon med begin, commit og rollback, eller lar transaction gjøre det for deg. Enten går alt igjennom, eller så gjøres ingenting. Du slipper å ende i en halvferdig tilstand hvis noe feiler midtveis.

Når du trenger mer

NorsDB er laget for å være enkel og følge med, ikke for å konkurrere med tunge databaser bygget for enorme datamengder. Vokser behovet forbi det, kan du fortsatt snakke med en ekstern database. Men for det store flertallet av applikasjoner er «den som følger med» mer enn nok.

Les også

Tilbake til oversikten