Video: Section 8 2024
Det kan oppstå en situasjon der du må gi SQL-privilegier på tvers av nivåer. Mye av arkitekturen av strukturerte typer er avledet fra ideene om objektorientert programmering. Et av ideene som kommer ut av det er ideen om et hierarki , der en type kan ha undertyper som utlede noen av deres attributter av typen de kommer fra (sin super ).
I tillegg til de arvede attributter, kan de også ha egenskaper som utelukkende er egne. Det kan være flere nivåer av et slikt hierarki, med typen nederst som kalles bladtype .
Et tastetabell er et bord hvor hver rad som er lagret i tabellen, er en forekomst av tilhørende strukturert type. Et skrevet tabell har en kolonne for hvert attributt av tilhørende strukturert type. Navnet og datatypen til kolonnen er det samme som navnet og datatypen til attributten.
For eksempel, anta at du er en skaper av malerier som du selger gjennom gallerier. I tillegg til originale kunstverk, selger du også signerte, nummererte, begrensede utgaver, usignerte unnumbered åpne utgaver og plakater. Du kan lage en strukturert type for illustrasjonen din som følger:
CREATE TYPE artwork (artist CHARACTER VARYING (30), tittel CHARACTER VARYING (50), beskrivelse CHARACTER VARYING (256), medium CHARACTER VARYING (20), creationDate DATE) IKKE ENDELIG
Her er et annet tilfelle av en funksjon som ikke er tilstede på alle DBMS-produkter. PostgreSQL har imidlertid CREATE TYPE-setningen, som gjør Oracle 11g og SQL Server 2012.
Som kunstner som prøver å holde oversikt over beholdningen, vil du skille mellom originaler og reproduksjoner. Du vil kanskje videre skille mellom ulike former for reproduksjoner. Kunstverkstypen kan ha undertyper, som i sin tur kan ha egne undertyper.
Det er en en-til-en korrespondanse mellom typene i typen hierarki og tabellene i det typede tabellhierarkiet. Standardtabeller kan ikke plasseres i et hierarki som ligner det som diskuteres her for typede tabeller.
I stedet for en primærnøkkel har et tastetabell en selvreferanse kolonne som garanterer unikhet, ikke bare for den maksimale supertabelen til et hierarki, men også for alle dens undergrupper. Selvreferanse kolonnen er angitt av en REF IS-klausul i den maksimale supertabellens CREATE-setning. Når referansen er systemgenerert, er unikt over hele linjen garantert.