Hva er effekten på basistabellen Når data i en visning er endret?

Hva er effekten på basistabellen Når data i en visning er endret?


Mange moderne database styringssystemer, inkludert Oracle, IBM DB2 og Microsoft SQL Server, kan du bruke databasestrukturer kalt utsikt som et alternativ til datatabeller. En visning er en "virtuell tabell," vises som et sett av kolonner og rader og å ha en tabell som kilde. Som med tabeller, kan du endre data i synet ved hjelp av egnede Structured Query Language uttalelser. Oppdatere data har noen begrensninger som er avhengige av bordene underliggende utsikten.

Visninger

Databaser har utsikt som et praktisk, sikker måte å representere data. Du gjør en visning ved hjelp av databasens "CREATE VIEW" statement, som gir en "SELECT" statement som angir en eller flere tabeller sammen med forholdene. Følgende uttalelse, for eksempel, skaper et syn basert på en kunde tabell:

CREATE VIEW indiana_customers
AS SELECT CUSTOMER_ID, navn, adresse fra kunder
HVOR statlige = 'IN';

Denne visningen viser bare Indiana kunder. En visning kan ha samme antall felt som den overordnede tabellen eller det kan utelate felt. For eksempel kan du gi noen tilgang til en visning basert på et selskaps ansatt bord, men la ut lønn og annen konfidensiell informasjon.

Single Table Visninger

Du kan endre dataene i en oversikt basert på en enkelt bord med noen restriksjoner. "UPDATE", "Sett inn" og "SLETT" SQL-setninger behandle ser det samme som tabeller; endringer som er gjort til de vise data strømme tilbake til den underliggende tabellen. Imidlertid må du være forsiktig med felt regler slik de ikke tillater nullverdier; hvis tabellen inneholder felt med regler, men utsikten ikke gjør det, kan en INSERT-setning mislykkes fordi utsikten ikke kan sende verdier til bordet for disse feltene det inkluderer ikke.

Flere bord visninger

En visning kan innlemme data fra mer enn en tabell; visningens SELECT-setningen kan ha en BLI klausul som forbinder to bord sammen. I dette tilfelle kan visningen kan ha felt fra hver tabell. Du kan endre data i en flertabellvisning, men du må observere noen regler. Man kan endre informasjonen på kun en av de underliggende bord, og at bordet må ha et nøkkelfelt som er tilstede i visningen. Merket av database-programvare kan ha sine egne regler for oppdatering av disse typer visninger.

Non-Oppdater visninger

Noen visninger tillater ikke oppdateringer. For eksempel, har Oracle en "MED READ ONLY" alternativet som hindrer utsikt fra stellebord data. Du kan ikke oppdatere et syn som angir "distinkt" søkeord eller "GROUP BY" klausuler i sine SELECT-setninger, som sine poster består av aggregater av underliggende tabellen poster. Selv om du kan omgå dette med database utløser slik som "i stedet for" denne tilnærmingen legger kompleksitet til dataoppdateringer.