Wanneer een bestand niet meer genoeg is
SQLite: de database in je broekzak
Ik noemde SQLite ooit de database in je broekzak. Als je dit op een telefoon leest, is die beschrijving bijna letterlijk waar: elk Android-apparaat en elke iPhone bevat SQLite. Dat geldt ook voor Chrome, Firefox, Safari en veel televisies en entertainmentsystemen in auto’s.
De ontwikkelaars van SQLite noemen het de meest verspreide database-engine ter wereld. Het woord “Lite” in de naam betekent niet dat het een speeltje voor oefenlessen is. Het is volwassen software met uitgebreide mogelijkheden die onopvallend nuttig werk doet op miljarden apparaten.
Wat SQLite precies is
Stel je voor dat een notitie-app een nieuwe notitie opslaat. De app kan SQLite vragen om de notitie te organiseren en op te slaan. De software die dat werk uitvoert, heet een database-engine.
SQLite zelf is niet het databasebestand. Het is een bibliotheek binnen een ander programma. Ons toekomstige bestand lending.db bevat de opgeslagen gegevens.
Lending program → SQLite engine → lending.db
Het uitleenprogramma vraagt SQLite om iets te doen en SQLite leest uit het bestand of schrijft ernaartoe.
Veel databasesystemen draaien als een aparte server waarmee programma’s contact maken. SQLite draait binnen het programma dat het gebruikt. Dat bedoelen we hier met een ingebedde database: er is geen databaseserver die we apart moeten installeren en onderhouden.
Waarom SQLite bij deze cursus past
Via de module sqlite3 in de standaardbibliotheek van Python kunnen we SQLite gebruiken. We werken met een echte SQL-database zonder een account aan te maken of een online dienst te starten.
SQLite is compact en vraagt weinig geheugen, opslagruimte en installatie. Doordat de engine bij de lokale gegevens draait, is er ook niet voor elke vraag een netwerkverbinding nodig. SQLite kan efficiënt op een telefoon draaien en tegelijk geschikt zijn voor serieuze software.
SQLite is niet voor elke taak de juiste keuze. Een database waar veel computers tegelijk naar moeten schrijven, kan een systeem zoals PostgreSQL nodig hebben. Dat is een andere gebruikssituatie, niet de scheidslijn tussen een speelgoeddatabase en een echte database.
Welke uitspraak beschrijft SQLite en lending.db correct?
Je weet nu wat de uitleencatalogus gaat beheren en waar de gegevens kunnen staan. Laten we vervolgens bekijken hoe de gegevens over voorwerpen binnen die database zijn ingedeeld.