Gegevenstoegang beheren met weergaven in SQL

click fraud protection

Database views verminderen de complexiteit van de eindgebruikerservaring en beperken de toegang van gebruikers tot gegevens in databasetabellen. In wezen gebruikt een weergave de resultaten van a databasequery om de inhoud van een virtuele databasetabel dynamisch te vullen.

Waarom weergaven gebruiken?

Er zijn twee hoofdredenen om gebruikers toegang te geven tot gegevens via weergaven in plaats van ze rechtstreeks toegang te geven tot databasetabellen:

  • Weergaven bieden eenvoudige, gedetailleerde beveiliging. Gebruik een weergave om de gegevens te beperken die een gebruiker in een tabel mag zien. Als u bijvoorbeeld een werknemerstabel heeft en sommige gebruikers toegang wilt geven tot de records van fulltime werknemers, kunt u een weergave maken die alleen die records bevat. Dit is veel eenvoudiger dan het alternatief (het maken en onderhouden van een schaduwtabel) en zorgt voor de integriteit van de gegevens.
  • Weergaven vereenvoudigen de gebruikerservaring. Weergaven verbergen complexe details van uw databasetabellen voor eindgebruikers die ze niet hoeven te zien. Als een gebruiker de inhoud van een weergave dumpt, zien ze de tabelkolommen die niet door de weergave zijn geselecteerd niet en begrijpen ze deze mogelijk niet. Dit beschermt hen tegen de verwarring die wordt veroorzaakt door slecht benoemde kolommen, unieke identifiers en
    instagram viewer
    tafel toetsen.

Een weergave maken

Het maken van een weergave is vrij eenvoudig: maak gewoon een query die de beperkingen bevat die u wilt afdwingen en plaats deze in de opdracht CREATE VIEW. Hier is de algemene syntaxis:

CREATE VIEW viewname AS

Als u bijvoorbeeld de weergave van de fulltime werknemer wilt maken, geeft u de volgende opdracht op:

MAAK VIEW fulltime AS
SELECT voornaam, achternaam, werknemer_id
VAN medewerkers
WHERE-status='FT';

Een weergave wijzigen

Het wijzigen van de inhoud van een weergave gebruikt exact dezelfde syntaxis als het maken van een weergave, maar gebruik de opdracht ALTER VIEW in plaats van de opdracht CREATE VIEW. Om bijvoorbeeld een beperking toe te voegen aan de fulltime weergave die het telefoonnummer van de medewerker aan de resultaten toevoegt, geeft u de volgende opdracht:

ALTER VIEW fulltime AS
SELECT voornaam, achternaam, werknemer_id, telefoon
VAN medewerkers
WHERE-status='FT';

Een weergave verwijderen

Het is eenvoudig om een ​​weergave uit een database te verwijderen met de opdracht DROP VIEW. Als u bijvoorbeeld de weergave van de fulltime werknemer wilt verwijderen, gebruikt u de volgende opdracht:

DROP VIEW fulltime; 

Weergaven versus Gematerialiseerde weergaven

Een view is een virtuele tafel. EEN gematerialiseerde weergave is diezelfde weergave naar schijf geschreven en benaderd alsof het een tabel op zich is.

Wanneer u een query uitvoert op een weergave, wordt de secundaire query die de weergave vormt in realtime uitgevoerd en worden die resultaten vervolgens teruggekoppeld naar de oorspronkelijke hoofdquery. Als uw weergaven uitzonderlijk complex zijn, of als uw hoofdquery een groot aantal hash-joins tussen verschillende tabellen en weergaven vereist, wordt uw hoofdquery uitgevoerd met de snelheid van een schildpad.

Een gerealiseerde weergave versnelt de uitvoering van query's omdat deze functioneert als een vooraf gecompileerde query die naar schijf wordt geschreven en daarom net zo snel wordt uitgevoerd als een tabel. Gerealiseerde weergaven zijn echter slechts zo goed als de gebeurtenisprocedures die ze vernieuwen. Op de lange termijn, met goed onderhoud, versnellen gematerialiseerde weergaven dingen met een kleine inruil in lag-verversingstijd, zonder de behoefte aan een aantal schaduwtabellen die inactief kunnen worden en ofwel schijfruimte in beslag nemen of de vragen van iemand anders oproepen ongepast.

instagram story viewer