Inhoudsopgave
Wat is een SQL-database?
Een SQL-database is een relationele database die opgemaakt is uit tabellen met gestructureerde gegevens, en die compatibel is met de Structured Query Language (SQL). Met behulp van SQL kan uit de database informatie opgevraagd worden en kunnen gegevens worden aangepast. SQL wordt als standaardtaal gezien door zowel de ANSI (American Standards Institute) als de ISO -organisatie. De meeste moderne databases zijn SQL-databases.
Een database op zich is eigenlijk hardware . Om via SQL acties te kunnen uitvoeren, moet er een Database Management System (DBMS) geïnstalleerd zijn. Het is dit systeem dat SQL begrijpt, en zo commando’s kan interpreteren om data weer te geven of aan te passen. De meest bekende DBMS zijn Oracle 19c, SAP HANA , Microsoft SQL Server en Amazon RDS.
De basiscommando’s van SQL zijn hetzelfde voor alle DBMS. Dit zijn commando’s zoals CREATE, INSERT, UPDATE, REMOVE, etc. Toch zijn er verschillen tussen SQL-databasemanagementsystemen. Voor meer specifieke commando’s zullen de DBMS van verschillende fabrikanten verschillende namen hebben, net als er bijvoorbeeld een verschil is in het menu van een Android- en iOS-apparaat.
Tip! Er zijn erg veel DBMS op de markt. Projectleiders verliezen dus al snel het overzicht. In de ERP Wijzer 2024 staat daarom een overzicht van verschillende SQL-databasesystemen.
Welke functionaliteiten biedt SQL?
Om te begrijpen wat er met SQL allemaal gedaan kan worden in een database, moet je naar de commando’s kijken. Deze bepalen de mogelijkheden. Er zijn 5 soorten SQL-commando’s.
- DDL (Data Definition Language): deze commando’s bepalen het schema of de structuur van de database. Voorbeelden hiervan zijn: CREATE (maken), ALTER (aanpassen), DROP (volledige tabel verwijderen), RENAME (hernoemen) en COMMENT (commentaar toevoegen).
- DQL (Data Query Language): deze commando’s worden gebruikt om de database te raadplegen. Zo kan er bijvoorbeeld een zoekresultaat worden opgevraagd, maar ook een hele tabel. SELECT is een veelgebruikt DQL-commando. Hiermee wordt een soort filter ingesteld op de database, en worden alleen de data van de geselecteerde objecten (tabellen, kolommen etc.) geselecteerd.
- DML (Data Manipulation Language): met deze commando’s kunnen de gegevens in de database bewerkt worden. Dit zijn de meest gebruikte commando’s. Voorbeelden ervan zijn: INSERT (data invoegen in een tabel), DELETE (alle data verwijderen, tabel blijft bestaan), UPDATE (data updaten in een tabel), MERGE (data samenvoegen), LOCK TABLE (tabel niet-bewerkbaar maken), en EXPLAIN PLAN (de toegang tot data bepalen).
- DCL (Data Control Language): deze commando’s staan in voor de beveiliging van de database. Ze zorgen ervoor dat elke gebruiker de juiste autorisaties heeft. De meest voorkomende DCL-commando’s zijn: GRANT (een gebruiker autorisatie geven) en REVOKE (een gebruiker autorisatie afnemen).
- TCL (Transaction Control Language): deze commando’s beheren de transacties die plaatsvinden in de database. Ze controleren de andere commando’s en de manier waarop die invloed hebben op de database. Vandaar dat ze niet altijd als ‘originele’ SQL-commando’s gezien worden. Voorbeelden van TCL-commando’s zijn: COMMIT (de transactie uitvoeren), ROLLBACK (de transactie terugdraaien in geval van een fout) en SAVEPOINT (een herstelpunt opstellen voor een transactie).
Wat is het verschil tussen SQL en NoSQL?
De traditionele SQL-database heeft er een concurrent bijgekregen, de NoSQL. Dit databasebeheersysteem is niet, zoals het SQL-systeem, gebaseerd op tabellen, maar gebruikt een dynamische structuur. Zo kunnen er ook ongestructureerde data beheerd worden. NoSQL wordt vooral gebruikt voor het beheren van grote hoeveelheden data (Big data ) binnen dezelfde database, hoewel dit soms (nog) ten koste gaat van de precisie. Vooral bekende social media sites, zoals Facebook en Twitter, gebruiken NoSQL om alle persoonlijke data te structureren en de connecties tussen mensen weer te geven. Enkele voorbeelden van NoSQL-DBMS zijn: MongoDB, Redis en Apache CouchDB.
Opmerking: NoSQL betekent niet dat SQL niet ondersteund wordt. Veel NoSQL-databases ondersteunen, onder andere, SQL. Daarom wordt er ook wel gesproken van Not only SQL.
Over NoSQL wordt gezegd dat het een sneller systeem is dan SQL, maar daar moet een kanttekening bij gemaakt worden. NoSQL kan niet zulke ingewikkelde verzoeken uitvoeren als SQL. Het NoSQL-systeem is goed om eenvoudige relaties tussen data weer te geven of om ze te sorteren, maar niet veel meer dan dat. Bovendien moeten gebruikers bij het invoeren van de data heel goed voor ogen hebben op welke manier ze de output willen gaan gebruiken. Er moet op voorhand een schema worden opgesteld, zodat de uiteindelijke output in het gewenste formaat wordt weergegeven. Een SQL-systeem neemt dit schema voor eigen rekening. Een NoSQL-systeem heeft dus gewoon ‘minder werk’ dan een SQL-systeem.
Een groot voordeel van NoSQL is dat het systeem erg schaalbaar en flexibel is. Het ontbreken van een vaste structuur en de decentralisering van data zorgen ervoor dat het systeem erg snel kan schakelen om grote hoeveelheden data te verwerken. Een NoSQL-DMBS kan ingezet worden voor een brede waaier aan soorten data, platformen, analysetools etc.
NoSQL heeft dus zijn voordelen, maar het systeem heeft ook nog een lange weg te gaan. Er is niet veel (technische) ondersteuning beschikbaar, plug-ins zijn schaars, en het DBMS is niet altijd even precies en coherent. Bovendien kan een NoSQL-database niet gekoppeld worden aan een SQL-database. Voorlopig is het systeem dus vooral rendabel voor bedrijven die op piekmomenten heel grote hoeveelheden data moeten verwerken, die een erg schaalbaar systeem zoeken of waarbij er geen homogeen databaseschema is.
Vergelijking SQL en NoSQL
SQL | NoSQL | |
---|---|---|
Gestructureerd | Ja | Nee |
Schaalbaarheid | Laag | Hoog |
Flexibiliteit | Laag | Hoog |
Standaardisering | Ja | Nee |
Functionaliteiten | Veel | Weining |
Compatibel met een andere SQL-database | Ja | Nee |
Ondersteuning | Veel | Weining |
Precisie | Hoog | Laag |