MS Sql 70-461: Chapter 1

Les 1

Dialect
T-SQL is een dialect van de standaard SQL van Microsoft. (T-)Sql is gebaseerd op een sterk mathematisch fundament. Voorbeelden van dialecten van T-SQL zijn: '!=', 'CONVERT()', weglaten van puntkomma. Dit zijn voorbeelden die dus niet onderdeel zijn van de Sql-standaard.

Relational model
Sql is gebaseerd op het relationele model, wat een model is voor het beheren en manipuleren van data. Een algemene misvatting is dat het woordje relationeel slaat op de relatie tussen tabellen. Dit is niet correct, de waarheid is dat het woordje relational slaat op het mathematische concept relation.
Een relation in het relation model is wat Sql noemt een tabel. Men zou kunnen stellen dat een tabel is Sql's poging om een relation voor te laten stellen.
Een relation heeft een body en een header. De heading is een set van attributen met elk een eigen type, wat in Sql de kolommen zijn en de body is een set van tubles, wat in Sql de rijen zijn.
De andere mathematische tak waar het relational model op gebaseerd is heet predicate logic. Een predicate is een expressie dat als die op een object wordt gezet, er een stelling ontstaat waar enkel true of false uit komt. Een voorbeeld hiervan is: salaris meer dan €50.000 per jaar. Deze stelling kan bijv op een medewerken gezet worden.

Les 2

T-Sqlkent zowel een logische als een fysieke kant. Logisch is de conceptuele interpretatie van de query die uitlegt wat het juiste resultaat van de query is. Het fysieke deel is de verwerking van de query door de database engine. Het fysieke deel moet het resultaat produceren die door de query is vastgesteld. Om dit te bereiken kan de database engine optiization toepassen. Optimazation kan stappen herindelen of stappen verwijderen, maar alleen als het resultaat hetzelfde blijft.

Sql is een declaratieve taal, wat betekent dat gedefinieerd wordt wat je wilt. Dit in tegenstelling tot een imperatieve taal, wat ook definierd hoe je het wilt. De Sql beschrijft dus wat je wilt en de database engine bepaalt hoe de data wordt opgehaald.

De keyed-in order is de volgorde waarin Sql clauses moeten worden geschreven. De keyed in order is:
Select, From, Where, Grou By, Having, Order By.
De volgorde waarop een logische query wordt verwerkt is anders. Deze volgorde is:
From, Where, Group By, Having, Select, Order By.

Elke fase levert een of meerdere tabellen op als input voor de volgende fase.
Een veel vooromende vergissing is om in de Where clause een alias te gebruiken. Dit is niet mogelijk omdat eerst de Where wordt geevalueerd en later pas de Select. Het volgende is ook niet mogelijk:

SELECT  YEAR(hiredate) AS yearhired, yearhired - 1 AS prevyear

year-hired-1 geeft een foutmelding. Dit komt omdat alle expressies die in de Select list staan (conceptueel) gelijktijdig worden uitgevoerd.

Reacties

Populaire posts van deze blog

[SQL Server] varchar vs nvarchar

MS Sql 70-461: Chapter 5

[C#] Class serialiseren en deserialiseren