SQL kan worden gebruikt om re­la­ti­o­ne­le databases te maken en een reeks be­wer­kin­gen uit te voeren op bestaande databases, waaronder ge­ge­vens­query’s. De taal maakt deel uit van het stan­daard­re­per­toi­re van we­bont­wik­ke­laars, data-analisten en on­der­zoe­kers. Maar in ver­ge­lij­king met andere pro­gram­meer­ta­len is SQL bijzonder. We leggen de kenmerken van de taal uit.

Wat is SQL precies?

SQL staat voor ‘Struc­tu­red Query Language’. Het kan worden gebruikt om query’s uit te voeren op databases die ge­struc­tu­reer­de of re­la­ti­o­ne­le gegevens bevatten. De taal is gebaseerd op**‘re­la­ti­o­ne­le algebra**’. Dit is een wis­kun­di­ge theorie voor het struc­tu­re­ren van gegevens en het berekenen van de re­sul­ta­ten van query’s. Veel van de speciale kenmerken van SQL als pro­gram­meer­taal zijn afgeleid van deze wis­kun­di­ge basis. SQL is ont­wik­keld in het midden van de jaren zeventig en wordt nu beschouwd als de standaard pro­gram­meer­taal voor da­ta­ba­setoe­pas­sin­gen.

Een be­lang­rijk detail over SQL is dat het een pure query- of pro­gram­meer­taal is , en geen uit­ge­breid da­ta­ba­se­be­heer­sys­teem (DBMS). Enkele populaire DBMS’en die SQL im­ple­men­te­ren zijn MySQL, Oracle SQL en SQLite. Deze DBMS’en gebruiken echter meestal dialecten van SQL, die aan­vul­len­de en/of andere commando’s kunnen hebben.

SQL als do­mein­spe­ci­fie­ke en de­cla­ra­tie­ve taal

In ver­ge­lij­king met de meeste ge­ves­tig­de pro­gram­meer­ta­len is SQL bijzonder omdat het een do­mein­spe­ci­fie­ke taal (DSL) is. In te­gen­stel­ling tot de algemene pro­gram­meer­ta­len (GPL’s), die geschikt zijn voor gebruik in veel ver­schil­len­de toe­pas­sin­gen, kan SQL slechts voor één ding worden gebruikt: databases.

SQL is ook een de­cla­ra­tie­ve pro­gram­meer­taal. Dit betekent dat de pro­gram­meur een gewenst resultaat als commando invoert en het systeem ervoor zorgt dat dit resultaat wordt bereikt. Dit staat in contrast met im­pe­ra­tie­ve pro­gram­me­ring, waarbij de af­zon­der­lij­ke stappen om de doelen te bereiken expliciet in de code worden ge­de­fi­ni­eerd.

Waarvoor wordt SQL gebruikt?

SQL dient als interface voor in­ter­ac­tie met re­la­ti­o­ne­le da­ta­ba­sema­na­ge­ment­sys­te­men (RDBMS). Een re­la­ti­o­ne­le database kan worden gezien als een tabel waarin elke rij een vooraf bepaalde set at­tri­bu­ten heeft die zijn gevuld met waarden. De SQL-code kan door mensen worden ingevoerd via een op tekst ge­ba­seer­de interface of worden ge­ïn­te­greerd in API-toegangen.

Tip

Heb je een veilige thuis­ba­sis nodig voor je SQL-ge­ba­seer­de web­pro­ject? Lees meer over SQL-ser­ver­hos­ting bij IONOS. Met een server van IONOS profiteer je van de modernste hard­wa­re­com­po­nen­ten en 24/7 on­der­steu­ning en advies.

Voordelen en nadelen van SQL

Voordelen van SQL

Het grootste voordeel van SQL ligt in de hoge be­kend­heid en het wijd­ver­brei­de gebruik van de tech­no­lo­gie. Sinds het ontstaan in de jaren 70 is SQL de in­du­strie­stan­daard voor da­ta­ba­setoe­pas­sin­gen. Hierdoor is het relatief eenvoudig om ervaren SQL-pro­gram­meurs te vinden, evenals in­ter­fa­ces met andere gangbare tech­no­lo­gie­ën en talen.

Bovendien is SQL niet voor niets de in­du­strie­stan­daard geworden. De taal is gebaseerd op een robuuste wis­kun­di­ge basis die optimale ge­ge­vens­op­slag mogelijk maakt. Re­la­ti­o­ne­le databases vereisen echter een gedegen kennis van de tech­no­lo­gie en theorie, evenals vaar­dig­heid en planning bij het mo­del­le­ren. Maar een goed ontworpen da­ta­ba­se­sche­ma maakt het mogelijk om door middel van passende query’s nieuwe inzichten uit de gegevens te ver­krij­gen.

Nadelen van SQL

Een nadeel van SQL en re­la­ti­o­ne­le databases in het algemeen is de hoge com­plexi­teit van de tech­no­lo­gie. SQL bestaat uit honderden commando’s en clausules, wat een grote uitdaging vormt voor nieuw­ko­mers. Veel daarvan zijn im­ple­men­ta­tie­spe­ci­fiek, wat het nog uit­da­gen­der maakt.

Bovendien vereist de structuur van een re­la­ti­o­ne­le database een aantal aannames over de op te slaan gegevens. Deze dienen om de kwaliteit van de op­ge­sla­gen gegevens te waar­bor­gen, maar brengen ook een aantal be­per­kin­gen met zich mee die per­ma­nen­te problemen kunnen ver­oor­za­ken als het schema slecht is ontworpen. Wij­zi­gin­gen in het schema tijdens het gebruik kunnen een serieuze uitdaging vormen. Naast dit gebrek aan flexi­bi­li­teit is het meestal erg lastig om een SQL-database ge­o­gra­fisch te dis­tri­bu­e­ren. Het op­ti­ma­li­se­ren van de pres­ta­ties van een database door middel van de­cen­tra­li­sa­tie is dan ook al­les­be­hal­ve eenvoudig.

Een laatste nadeel van SQL is dat het niet com­pa­ti­bel is met het veel­ge­bruik­te ob­ject­ge­o­ri­ën­teer­de pro­gram­me­ren, dat steeds re­le­van­ter wordt. Bij ob­ject­ge­o­ri­ën­teerd pro­gram­me­ren worden gegevens en ‘gedrag’ (methoden) in­ge­kap­seld in objecten. Gegevens en methoden worden over­ge­no­men via klas­sen­hi­ë­rar­chie­ën. De re­la­ti­o­ne­le be­na­de­ring is fun­da­men­teel anders, omdat gegevens over meerdere tabellen kunnen worden verdeeld. Bovendien is het on­mo­ge­lijk om het gedrag van een object te mo­del­le­ren. Om deze reden kunnen objecten niet 1:1 worden overgezet naar re­la­ti­o­ne­le da­ta­ba­se­struc­tu­ren.

Al­ter­na­tie­ven voor SQL

Aangezien SQL aan het begin van de digitale revolutie werd uit­ge­von­den, heeft de taal niets aan re­le­van­tie ingeboet. Er zijn echter inmiddels enkele al­ter­na­tie­ve schema’s ontstaan die voor sommige toe­pas­sin­gen wellicht ge­schik­ter zijn.

Object-re­la­ti­o­ne­le da­ta­ba­sema­na­ge­ment­sys­te­men

Object-re­la­ti­o­ne­le da­ta­ba­sema­na­ge­ment­sys­te­men (ORDBMS) zoals Post­greSQL gebruiken SQL als querytaal, maar on­der­steu­nen ook kern­con­cep­ten van ob­ject­ge­o­ri­ën­teerd pro­gram­me­ren. Ob­ject­hi­ë­rar­chie­ën, over­er­ving en ob­ject­ge­drag kunnen worden gebruikt zonder gebruik te maken van object-re­la­ti­o­ne­le mapping (ORM). Met name door de gebruiker ge­de­fi­ni­eer­de en sa­men­ge­stel­de ge­ge­vens­ty­pen ver­min­de­ren de com­plexi­teit van schema’s en query’s.

NoSQL

SQL-ge­ba­seer­de DBMS’en zijn in de eerste plaats bedoeld voor het opslaan van ge­struc­tu­reer­de gegevens, maar niet alle gegevens volgen een vast schema. Hier komen NoSQL-databases om de hoek kijken. De term NoSQL verwijst naar een familie van niet-re­la­ti­o­ne­le DBMS’en. In plaats van gegevens te mo­del­le­ren als velden in een tabel, worden ver­schil­len­de andere be­na­de­rin­gen gebruikt.

Een populaire be­na­de­ring is het do­cu­ment­ge­ba­seerd opslaan van gegevens. Hierbij worden gegevens op­ge­sla­gen in af­zon­der­lij­ke do­cu­men­ten in plaats van in een tabel. Een voordeel van de do­cu­ment­ge­ba­seer­de be­na­de­ring is dat de gegevens zelf­schrij­vend kunnen zijn. Dit betekent dat het schema van de gegevens wordt bepaald door het af­zon­der­lij­ke document, niet door de database, waardoor ge­ge­vens­in­voer ver­schil­len­de schema’s kan volgen.

NoSQL-op­los­sin­gen zijn doorgaans minder complex en bieden voordelen op het gebied van schaal­baar­heid en pres­ta­tie­op­ti­ma­li­sa­tie. Bovendien is het meestal een­vou­di­ger om het schema tijdens het gebruik te wijzigen of gegevens flexibel op te slaan. Aan de andere kant zijn er mogelijk minder garanties met be­trek­king tot de kwaliteit van de gegevens.

Ga naar hoofdmenu