Et databaseskjema er en samling metadata som beskriver relasjonene mellom objekter og informasjon i en database. En enkel måte å se for seg et skjema på er å tenke på det som en boks som inneholder tabeller, lagrede prosedyrer, visninger og relaterte dataressurser. Et skjema definerer infrastrukturen til denne boksen.
bunnlinjen
På sitt grunnleggende nivå fungerer et skjema som en beholder for dataressurser. Imidlertid strukturerer forskjellige databaseleverandører skjemaene sine på forskjellige måter. Oracle, for eksempel, behandler hvert skjema som en brukerkonto. For å opprette et nytt skjema, oppretter en databaseadministrator en ny databasebruker med det tiltenkte skjemanavnet.
Why Schemas Matter
Fordi skjemaer utgjør en grunnleggende strukturell funksjon i en database, bruker de fleste databasemiljøer tilgangstillatelser til objekter på skjemanivå.
For eksempel kan en firmadatabase inneholde en rekke brukere. Hver bruker pådrar seg et skjema, men tilgang til forskjellige skjemaer gis individuelt, og med detaljerte tillatelser, til brukere utenfor hjemmeskjemaet.
De fleste verktøy for databasebehandling viser ikke skjemaer; i stedet viser de databaser og brukere.
For eksempel oppretter et selskap brukerkontoer (skjemaer) for Bob og Jane. Den oppretter også kontoer for avdelinger som HR og markedsføring. Deretter gir den en analytiker i hver avdeling tilgang til avdelingens skjemakonto.
HR-analytikeren oppretter tabeller og visninger i HR-skjemaet og gir tilgang til Bob til å lese (men ikke skrive til) en HR-tabell som viser ansattes navn og medarbeider-ID-numre. HR-analytikeren kan også gi Jane tilgang til å lese og skrive til en HR-tabell som viser ansattes telefonnumre.
Ved å gi tilgang på denne måten kan bare de riktige rollene og brukerne lese, skrive eller endre dataene i et selvstendig dataelement i den større databasen.
Hver databasemotor ser på skjemaer som den grunnleggende metoden for å segregere data i et flerbrukermiljø.
Ulike databasemotorer behandler brukere og skjemaer forskjellig. Se dokumentasjonen for databasemotoren din for å finne syntaks- og logikkmodellene rundt brukere, skjemaer og tillatelser.
Creating Schemas
Et skjema er formelt definert ved hjelp av Structured Query Language (SQL). I Oracle oppretter du for eksempel et skjema ved å opprette brukerkontoen som eier det:
CREATE USER bob
IDENTIFISED BY temporary_password
DEFAULT TABLESPACE-eksempel
QUOTA 10M ON-eksempel
MIDLERTIDIG TABLESPACE-temp
QUOTA 5M PÅ system
PROFILE app_user
PASSORD UTLØPER;
Andre brukere får tilgang til nye skjemaer i kraft av brukernavnet sitt eller av en eller flere roller som brukerkontoen er lagt til.
skjemaer vs. datamodeller
Som en datamodell er ikke et skjema i seg selv strukturert for å gjøre noe. I stedet er det en infrastruktur for å støtte segmenteringstillatelser i en database.
En datamodell er en samling av tabeller og visninger som er satt sammen på bestemte nøkler. Disse datamidlene tjener sammen et forretningsformål. Det er akseptabelt å bruke en datamodell på et skjema – for store og komplekse datamodeller, og å knytte dem til skjemaer gir smart databaseadministrasjon. Men det er ikke logisk nødvendig å bruke et skjema for en datamodell eller å behandle en datamodell som et skjema.
For eksempel kan HR-avdelingen inkludere en datamodell for ansattes ytelsesgjennomganger i skjemaet sitt. I stedet for å lage et skjema for disse gjennomgangene, kan datamodellen sitte i HR-skjemaet (sammen med andre datamodeller) og forbli logisk forskjellig gjennom prefikser i tabellen og visningsnavn for objektene i datamodellen.
Datamodellen kan få et uformelt navn, for eksempel ytelsesanmeldelser, og da kan alle tabeller og visninger ha prefikset med pr_ Tabellen med ansattoppføringer kan bli referert til som hr.pr_employee uten at det kreves et nytt skjema for resultatgjennomgangene.
FAQ
Hva er forskjellen mellom et databaseskjema og en databasetilstand?
Et databaseskjema beskriver databasen. En databasetilstand refererer til innholdet i en database på et tidspunkt og kan betraktes som en utvidelse av databaseskjemaet.
Hva er et relasjonsskjema for en database?
Et relasjonsskjema skisserer relasjonene mellom tabeller og elementer som er knyttet til hverandre. Et skjema kan være en grafisk illustrasjon eller diagram, eller det kan skrives i SQL-kode.