parallax background image

T-SQL en de relationele theorie

Gepubliceerd op 23 februari 2019 Leestijd : 2 minuten
Databases zijn in deze tijd onmisbaar. Bijna elke website of applicatie maakt hier gebruik van. Een van de talen die gebruikt kan worden om informatie op te halen vanaf een database is T-SQL, een dialect van SQL. Om de taal goed te begrijpen moeten we de basis ervan begrijpen. T-SQL is namelijk gebasseerd op het rationele model uit de wiskunde. Maar wat is dit model nu eigenlijk?
 

Set theorie

Een onderdeel van de relationele theorie is de set theorie. De wiskunde beschrijft een set als volgt:
“By a "set" we mean any collection into a whole M of definite, distinct objects m of our intuition or our thought. These objects are called the "elements" of M.”
- George Cantor in “Georg Cantor” door Joseph W. Dauben (Princeton Unicversity Press, 1990)
 
Bovenstaande definitie heeft een aantal indicaties:
 
  1. De set moet gezien worden als één geheel
  2. De set is distinct, dus is uniek en heeft geen duplicaten
  3. De volgende implicatie staat niet expliciet in bovenstaande definitie maar wordt geïmpliceerd: De volgorde van een set is onbelangrijk

Predicate Logic

Een onderdeel van de relationele theorie is predicate logic. Een predicaat is een expressie die, wanneer gekoppeld aan een bepaald object, waar of onwaar kan zijn. Een voorbeeld is ‘langer dan 5 meter’. Als je dit predicaat koppelt aan een schip van 10 meter, dan is het predicaat waar. Als je het predicaat koppelt aan een schip van 3 meter dan is het predicaat onwaar. Zo bepaalt het object of het predicaat wel of niet waar is. Binnen T-SQL worden predicaten gebruikt om de set te filteren en subsets te definiëren of om een set zelf te definiëren.
 
Hoe kunnen we bovenstaande theorieën nu toepassen binnen T-SQL? Er bestaat een misopvatting over databases en de relationele theorie. Er wordt vaak gedacht dat de onderlinge relaties tussen tabellen met foreign keys de relatie binnen relationele theorie is. Dit is incorrect. Een tabel zelf benaderd de definitie van de relationele theorie. De uitleg is als volgt. Een relatie heeft een heading met een set van attributen en een body met een set van tupels. In de wiskunde en informatica is een tupel een eindige rij van objecten. Binnen de rij van tupels is de volgorde van belang. Als de volgorde van de objecten anders is, is het een andere tupel. De objecten binnen een tupel hoeven niet per se van hetzelfde datatype te zijn. Een voorbeeld van een tupel is een adres: Eikenlaan 5, 1234 AB Amsterdam.
 
T-SQL probeert dit te benaderen met kolommen als de attributen en een set van tupels met een rij. Het attribuut heeft een naam en een type en elke tupel heeft een heading en waarden met specifieke typen.
 
Waarom is T-SQL dan een benadering van het relationele model? Dit zal uitgelegd worden in de volgende blog.
Onze klanten
Onze oplossingen