Relationele database
Een relationele database is een set formeel beschreven tabellen waaruit we data op veel verschillende manieren kunnen openen of opnieuw samenstellen. Dit zonder dat we de databasetabellen opnieuw hoeven te rangschikken. De standaard gebruikers- en Applicatie-Programmeer- Interface (API) van een relationele database is de Structured Query Language (SQL). SQL-instructies gebruiken we zowel voor interactieve query’s voor informatie uit een relationele database als voor het verzamelen van data voor rapporten.
De relationele database is in 1970 uitgevonden door E F Codd, toen een jonge programmeur bij IBM. In zijn artikel ‘Een relationeel gegevensmodel voor grote gedeelde databanken’ stelde Codd namelijk voor om over te schakelen van het opslaan van data in hiërarchische of navigatiestructuren naar het organiseren van data in tabellen met rijen en kolommen.
Wanneer we een relationele database maken, kunnen we het domein van mogelijke waarden in een gegevenskolom definiëren. Even als verdere constrains die op die gegevenswaarde van toepassing kunnen zijn. Een domein van mogelijke klanten kan bijvoorbeeld maximaal 10 mogelijke klantnamen toestaan. Maar kan in één tabel worden beperkt zodat slechts drie van deze klantnamen kunnen worden gespecificeerd. Twee constrains hebben betrekking op gegevensintegriteit en de primaire en externe sleutels:
Een typische database voor het invoeren van bedrijfsorders zou bijvoorbeeld een tabel bevatten met een klant met kolommen voor naam, adres, telefoonnummer enzovoort. Een andere tabel beschrijft echter een bestelling: product, klant, datum, verkoopprijs enzovoort. Een gebruiker van een relationele database kan vervolgens een weergave van de database krijgen die aan zijn behoeften voldoet. Een filiaalmanager kan een rapport leuk vinden over alle klanten die na een bepaalde datum producten hebben gekocht. Een finance manager zou uit dezelfde tabellen echter een rapport kunnen verkrijgen over rekeningen die we moeten betalen.
Het relationele model gebruiken we voor het handhaven van de consistentie van data tussen verschillende SaaS applicaties. Als een klant geld opneemt en vervolgens kijkt naar het rekeningsaldo, verwacht hij dat die opname onmiddellijk te zien is. Relationele databases blinken uit in dit soort consistentie van data, zodat meerdere instances van een database altijd dezelfde data hebben.
Dit soort eigenschappen maar de relationele datebase zeer geschikt voor SaaS toepassingen. Bij andere soorten databases is het namelijk moeilijk om deze mate van actuele consistentie te handhaven bij grote hoeveelheden data.
Bij toegang tot data worden veel repetitieve handelingen uitgevoerd. Een query om informatie uit een datatabel te halen zal zich honderden keren herhalen om het gewenste resultaat te produceren. Deze functies voor toegang tot de data vereisen bovendien een bepaald type programmacode voor toegang tot de database. Applicatieontwikkelaars willen echter niet voor elke nieuwe SaaS applicatie nieuwe programmacode schrijven voor deze functies. Gelukkig is het in relationele databases mogelijk opgeslagen procedures te gebruiken. Dit zijn blokken met programmacode die toegankelijk zijn via een eenvoudige oproep vanuit de SaaS applicatie. Met één enkele opgeslagen procedure kunnen we er bijvoorbeeld voor zorgen dat we records consistent toepassen binnen meerdere SaaS applicaties. Opgeslagen procedures kunnen ook helpen erop toe te zien dat bepaalde datafuncties in de SaaS applicatie juist zijn geïmplementeerd.
Het belangrijkste voordeel van relationele databases is dat gebruikers hiermee gemakkelijk data kunnen categoriseren en opslaan die we later kunnen opvragen en filteren om specifieke informatie voor rapporten te extraheren. Relationele databases zijn ook eenvoudig uit te breiden en zijn niet afhankelijk van fysieke organisatie. Nadat de originele database is gemaakt, kunnen we een nieuwe data categorie toevoegen zonder dat we alle bestaande SaaS applicaties hoeven te wijzigen.
Grote voordelen van relationele databases voor SaaS applicaties zijn:
Mogelijk is dit een vertaling van Google Translate en kan fouten bevatten. Klik hier om mee te helpen met het verbeteren van vertalingen.