Een relationele database kan gegevens in verschillende tabellen relateren door het gebruik van sleutels. Een primaire sleutel (PK) is een unieke waarde voor ieder record van de tabel. Verschillende tabellen kunnen met elkaar worden verbonden door een kolom toe te voegen waarin een verwijzing staat naar de PK van een andere tabel. Dit wordt de Foreign Key (FK) genoemd.

Redundantie Wanneer de gegevens in een relationele database goed gestructureerd zijn, wordt duplicatie van gegevens tot een minimum beperkt en worden fouten in de gegevensverwerking voorkomen. Efficiënte opslag Gegevens worden maar één keer en op één plaats opgeslagen. Dit zorgt ervoor dat een wijziging of verwijdering van informatie altijd maar op één plaats hoeft te gebeuren. SQL Voor het bevragen van een relationele database is een krachtige 'query taal' beschikbaar met de naam 'Structured Query Language' (SQL). Deze taal maakt het onder andere mogelijk om zeer geavanceerde gegevensselecties te maken uit de database.

image

Data Manipulation Statements

Deze statements zijn de belangrijkste want ze worden gebruikt om gegevens uit een databank op te halen, toe te voegen, te verwijderen of aan te passen. De tabelstructuur wordt hiermee niet gewijzigd.

Het SELECT statement
Het SELECT statement wordt gebruikt om gegevens uit een tabel op te vragen.

SELECT <column1>, <column2>, … FROM <tablename> WHERE <condition>

Het INSERT statement
Met het INSERT statement worden één of meerdere records toegevoegd aan een tabel.

INSERT INTO <tablename> (<column1>, <column2>,...) VALUES (<value1>, <value2>,....)

Het UPDATE statement
Het UPDATE statement wijzigt één of meerdere records van een tabel

UPDATE <tablename> SET <column1> = <newvalue1>, <column2> = <newvalue2>, … WHERE <condition>

Het DELETE statement
Met het DELETE statement worden één of meerdere records uit een tabel verwijderd.

DELETE <tablename> WHERE <condition>

Een alternatief voor het DELETE statement is het TRUNCATE statement. Er is een verschil tussen de twee statements: DELETE:

  • verwijdert één of meerdere rijen, die beantwoorden aan de WHERE conditie;
  • elke verwijderde rij wordt bijgehouden in een transaction log;
  • identity kolom wordt niet gereset, bijvoorbeeld een automatische nummering.

TRUNCATE

  • verwijdert alle data uit de tabel;
  • transactie wordt niet gelogd;
  • identity kolom wordt gereset.

Stored Procedures

Een opgeslagen procedure (“stored procedure”) is een programma dat bewaard en uitgevoerd wordt binnen een databank op de databankserver.

Gebruik

Stored procedures worden gebruikt voor het uitvoeren van UPDATE, DELETE of INSERT statements, … maar ook gewoon om data terug te geven, zowel voor één bepaalde waarde als een volledige dataset.

Parameters

Via parameters kunnen aan een stored procedure selecties doorgegeven worden. Er zijn zowel input als output parameters.

Geschreven taal

Opgeslagen procedures worden gewoonlijk geschreven in een daarvoor geschikte databanktaal. De databanktaal van Microsoft SQL Server is Transact-SQL. Transact-SQL is een taal bovenop SQL die zorgt voor meer functies.

Minder netwerkverkeer

Een procedure heeft direct toegang tot de gegevens die ze moet manipuleren en moet alleen de resultaten naar de gebruiker terugsturen. Dit vermijdt het over en weer sturen van grote hoeveelheden gegevens. Een operatie die honderden regels SQL-code vereist, kan worden uitgevoerd met één enkele opdracht over het netwerk.

Snelle uitvoering

Als de bewerking veel code bevat of dikwijls herhaald wordt, dan zijn opgeslagen procedures sneller dan herhaalde SQL-opdrachten. Ze kunnen eenmaal ontleed en geoptimaliseerd worden en daarna kunnen ze in het geheugen blijven. Omdat de procedure in een geoptimaliseerde vorm opgeslagen wordt, is het niet nodig de procedure telkens te optimaliseren wanneer ze uitgevoerd wordt.

Beveiliging

Stored Procedures kunnen gebruikt worden als een beveiligingstechniek. Gebruikers kunnen het recht krijgen een opgeslagen procedure uit te voeren, zelfs als ze niet het recht hebben de afzonderlijke opdrachten in de procedure direct uit te voeren.

Betere onderhoudbaarheid

Opgeslagen procedures laten toe om "modulair" te programmeren. De procedure kan eenmaal worden aangemaakt en bewaard in de database, en vervolgens meermalen opgeroepen worden in een programma.

Verschil met views

Een view is een object in de database dat op dezelfde manier is te benaderen als een tabel. Met een view is het enkel mogelijk een “select statement” te definiëren die informatie haalt uit één of meerdere tabellen. Parameters kunnen niet meegegeven worden met een view.

Triggers

Triggers zijn een speciaal type van stored procedures die uitgevoerd worden als er een bepaalde actie plaatsvindt op een tabel. Deze acties zijn:

  • INSERT,
  • Update,
  • Delete

Triggers worden dus automatisch uitgevoerd en kunnen niet zelfstandig opgeroepen worden. Ook belangrijk om weten is dat triggers geassocieerd zijn met een tabel.

M.a.w probeer zoveel mogelijk op SQLserver te programmeren voor snelheid winst.

Aut.Eric De Decker