Scroll to top

Wat zijn de verschillen tussen SAP R/3 en SAP S/4HANA in de databasestructuur?

Marc Bunt

SAP speelt een belangrijke rol in de wereld van ERP-systemen. De twee bekendste versies van SAP zijn SAP R/3 en het nieuwere SAP S/4HANA. Maar wat zijn de verschillen tussen deze twee versies? En waarom is het goed om dat als fiscalist te weten? In dit blog duiken we dieper in een belangrijk verschil: de databasestructuur. Klinkt abstract? Geen zorgen, we nemen een voorbeeldtabel met factuurgegevens om de verschillen duidelijk te maken.

 

Het grote verschil in de databasestructuur tussen SAP R/3 en SAP S/4HANA: rij-gebaseerd versus kolom-gebaseerd

Een fundamenteel verschil tussen SAP R/3 en SAP S/4HANA ligt in de onderliggende databasestructuur. SAP R/3 maakt gebruik van een rij-gebaseerde database. Dit betekent dat de gegevens in rijen worden opgeslagen. In deze structuur worden alle gegevens van een record, bijvoorbeeld een factuur, in één enkele rij opgeslagen. Dit is handig voor traditionele transacties waarbij snel toegang nodig is tot complete records. Het nadeel is dat het minder efficiënt is bij het uitvoeren van complexe analytische queries, zoals rapportages over grote hoeveelheden data.

SAP S/4HANA daarentegen maakt gebruik van een kolom-gebaseerde database. Bij kolom-gebaseerde opslag worden de gegevens per kolom opgeslagen, in plaats van per rij. Hierdoor kunnen analytische queries veel sneller uitgevoerd worden, vooral bij grote hoeveelheden gegevens. De database kan bijvoorbeeld sneller gegevens filteren, aggregeren en samenvatten. Dit is zeker nuttig voor bedrijven die grote hoeveelheden data willen analyseren: het zorgt ervoor dat S/4HANA veel efficiënter is in het verwerken van rapportages. Denk bijvoorbeeld aan rapportages waarbij je gegevens wil samenstellen vanuit meerdere facturen.

Hoe werkt kolom-gebaseerde opslag in SAP S/4HANA eigenlijk?

Bij kolomopslag is het concept van rijen nog steeds aanwezig. Het grote verschil is dat de gegevens voor elke rij in afzonderlijke kolommen opgeslagen, in plaats van samen in één blok. Omdat kolomopslag de gegevens per kolom – in plaats van per rij – opslaat, moet er een mechanisme zijn om de kolommen aan elkaar te koppelen. Dit mechanisme verloopt via een uniek veld, dit wordt de Primary Key genoemd. Hiermee kunnen individuele records (of rijen) nog steeds worden gereconstrueerd.

In-memory database

Het inzetten van kolomopslag levert een aantal voordelen op. Omdat de data in een kolom van meer homogene aard is, worden betere compressie-resultaten behaald. Hierdoor kan de HANA-database kleiner zijn en past deze eerder in veel snellere (en vaak duurdere) geheugentypes. Dit geeft kansen om de snelheid nog verder te verbeteren.

Praktisch voorbeeld over de databaseverschillen tussen SAP R/3 en SAP S/4HANA

Om de verschillen verder te illustreren, duiken we een voorbeeld uit de praktijk in. Daarvoor nemen we onderstaande tabel met factuurgegevens:

Stel, we zoeken nu naar facturen met meer dan 2000 omzet én op of na 1 maart 2025.

De query voor deze combinatie is in beide modellen gelijk:

SELECT * FROM Facturen

WHERE Omzet > 2000

AND Datum >= ‘2025-03-01’;


Wat zijn de stappen voor deze query in de rij-gebaseerde database in SAP R/3?

In de rij-gebaseerde database in SAP R/3 worden de gegevens per rij opgeslagen. De zoekmethode werkt dan als volgt:

  1. Start bij de eerste rij (RowID 1):
    • Kijk naar de omzet van 1000 en controleer of deze groter dan 2000 is. Nee, het is kleiner.
    • Deze rij wordt niet meegenomen in de resultaten.
  2. Ga naar de tweede rij (RowID 2):
    • Kijk naar de omzet van 2000. Deze is niet groter dan 2000.
    • Deze rij wordt niet meegenomen in de resultaten.
  3. Ga naar de derde rij (RowID 3):
    • Kijk naar de omzet van 1500. Deze is niet groter dan 2000.
    • Deze rij wordt niet meegenomen in de resultaten.
  1. Ga naar de vierde rij (RowID 4):
    • Kijk naar de omzet van 1700. Deze is niet groter dan 2000.
    • Deze rij wordt niet meegenomen in de resultaten.
  2. Ga naar de vijfde rij (RowID 5):
    • Kijk naar de omzet van 3000. Deze is groter dan 2000.
    • Controleer de datum (1-5-2025). Deze is groter dan of gelijk aan 1 maart 2025.
    • Deze rij wordt meegenomen in de resultaten.
  3. Ga naar de zesde rij (RowID 6):
    • Kijk naar de omzet van 2100. Deze is groter dan 2000.
    • Controleer de datum (1-6-2025). Deze is groter dan of gelijk aan 1 maart 2025.
    • Deze rij wordt meegenomen in de resultaten.
  4. Ga naar de zevende rij (RowID 7):
    • Kijk naar de omzet van 1900. Deze is niet groter dan 2000.
    • Deze rij wordt niet meegenomen in de resultaten.
  5. Ga naar de achtste rij (RowID 8):
    • Kijk naar de omzet van 2750. Deze is groter dan 2000.
    • Controleer de datum (1-8-2025). Deze is groter dan of gelijk aan 1 maart 2025.
    • Deze rij wordt meegenomen in de resultaten.

Wat zijn de stappen voor deze query in de kolom-gebaseerde database in SAP S/4HANA?

In de kolom-gebaseerde database in SAP S/4HANA worden de gegevens per kolom opgeslagen, wat de efficiëntie verhoogt. Dit is vooral zo bij zoekopdrachten zoals de onze, die gericht zijn op specifieke kolommen (omzet en datum). De zoekmethode werkt als volgt:

  1. Stap 1: Zoek in de “Omzet” kolom:
    • Zoek alle waarden die groter zijn dan 2000.
    • Resultaten: 3000, 2100, 2750 (uit de facturen met RowID 5, 6, 8).
  2. Stap 2: Zoek in de “Datum” kolom:
    • Controleer of de datum op of na 1 maart 2025 is voor de gevonden resultaten.
    • Resultaten: 1-5-2025, 1-6-2025, 1-8-2025 (deze voldoen aan de datumvoorwaarde).
  3. Stap 3: Combineer de resultaten:
    • De facturen met RowID 5, 6 en 8 voldoen aan beide voorwaarden (omzet > 2000 en datum >= 1 maart 2025).
  4. Resultaat:
    • De rijen die voldoen aan de zoekcriteria zijn RowID 5, 6 en 8.

De verschillen tussen de twee soorten databases

De uitkomsten zijn bij beide soorten databases hetzelfde. De rijen die in ons voorbeeld voldoen aan de zoekcriteria voor zowel de rij-gebaseerde als de kolom-gebaseerde database zijn:

  • RowID 5: Omzet = 3000, Datum = 1-5-2025
  • RowID 6: Omzet = 2100, Datum = 1-6-2025
  • RowID 8: Omzet = 2750, Datum = 1-8-2025

Het verschil zit hem met name in de snelheid van de berekeningen.

  • Rij-gebaseerde database: De zoekmethode gaat rij voor rij door de tabel en controleert zowel de omzet als de datum voor elke rij.
  • Kolom-gebaseerde database: De zoekmethode zoekt eerst de omzetkolom op en selecteert de waarden die groter zijn dan 2000. Vervolgens wordt de datumkolom gecontroleerd om te bevestigen of de datums op of na 1 maart 2025 liggen. Omdat de kolommen apart worden opgeslagen, is dit proces efficiënter.

Snellere resultaten met de databasestructuur van SAP S4/HANA

De conclusie? De verschillen in de databasestructuur tussen SAP R/3 en SAP S4/HANA zijn aanzienlijk. Uit het praktijkvoorbeeld blijkt waarom de structuur van SAP S4/HANA tot snellere resultaten kan leiden, zeker bij complexere berekeningen en rapportages.

Meer weten over het verschil tussen SAP R/3 en SAP S4/HANA?

Er zijn nog veel meer aspecten die een rol spelen. Nieuwsgierig? Neem contact op met Marc Bunt via https://theresource.nl/marc-bunt/.