Saltar al contenido

Vad är ett databasschema?

16 de julio de 2021
info database schema 5c6c1494c9e77c000119fc1c

A databasschema är en samling metadata som beskriver förhållandet mellan objekt och information i en databas. Ett enkelt sätt att föreställa sig ett schema är att tänka på det som en ruta som innehåller tabeller, lagrade procedurer, vyer och relaterade datatillgångar. Ett schema definierar infrastrukturen i denna ruta.

Behållare för datatillgångar

På sin grundnivå fungerar ett schema som en behållare för datatillgångar. Olika databasleverantörer strukturerar emellertid sina scheman på olika sätt. Oracle behandlar till exempel varje schema som ett användarkonto. För att skapa ett nytt schema skapar en databasadministratör en ny databasanvändare med det avsedda schemanamnet.

Varför scheman spelar roll

Eftersom scheman utgör en grundläggande strukturell funktion i en databas tillämpar de flesta databasmiljöer åtkomstbehörigheter till objekt på schemanivå. Till exempel kan en företagsdatabas innehålla en serie användare. Varje användare drabbas av ett schema, men åtkomst till olika scheman beviljas individuellt, och med behörighetens granularitet, till användare utanför hemschemat. De flesta verktyg för databashantering listar inte scheman; istället listar de databaser och användare.

Till exempel skapar ett företag användarkonton (scheman) för Bob och Jane. Det skapar också konton för avdelningar som HR och marknadsföring. Sedan ger det en analytiker i varje avdelning tillgång till sin avdelnings schemakonto. HR-analytikern skapar tabeller och vyer inom HR-schemat och ger åtkomst till Bob att läsa (men inte skriva till) en HR-tabell som listar anställdas namn och anställds ID-nummer. HR-analytikern kan också ge åtkomst till Jane för att läsa och skriva till en HR-tabell som visar anställdas telefonnummer. Genom att ge åtkomst på detta sätt kan bara rätt roller och användare läsa, skriva eller modifiera data i en fristående datatillgång i den större databasen. Varje databasmotor ser på scheman som den grundläggande metoden för att separera data i en fleranvändarmiljö. Olika databasmotorer behandlar användare och scheman på olika sätt. Se dokumentationen för din databasmotor för att upptäcka syntax och logikmodeller som omger användare, scheman och behörighetsbidrag.

Skapa scheman

Ett schema definieras formellt med hjälp av Structured Query Language (SQL). Till exempel i Oracle skapar du ett schema genom att skapa det användarkonto som äger det:

SKAPA ANVÄNDARE bob
IDENTIFIERAS AV temporärt lösenord
STANDARD TABLESPACE exempel
QUOTA 10M ON exempel
TILLFÄLLIGT TABELLRUM temp
QUOTA 5M ON-system
PROFIL app_user
LÖSENORDSUTGÅNG;

Andra användare får tillgång till nya scheman på grund av sitt användarnamn eller genom en eller flera roller som användarkontot har lagts till.

Scheman mot datamodeller

Liksom en datamodell är ett schema inte i sig strukturerat för att göra någonting. Istället är det en infrastruktur för att stödja segmenteringsbehörigheter i en databas. En datamodell är en samling av tabeller och vyer som sammanfogas på specifika nycklar. Dessa datatillgångar tjänar tillsammans ett affärsändamål. Det är acceptabelt att tillämpa en datamodell på ett schema – för stora och komplexa datamodeller kan associering av dem med scheman ge smart databasadministration. Men det är inte logiskt nödvändigt att använda ett schema för en datamodell eller att behandla en datamodell som ett schema.

Databasschema för en butik.

Till exempel kan HR-avdelningen inkludera en datamodell för medarbetarprestationsgranskningar i sitt schema. I stället för att skapa ett schema för dessa recensioner kan datamodellen sitta i HR-schemat (tillsammans med andra datamodeller) och förbli logiskt distinkt genom prefix i tabellen och visa namn för objekten i datamodellen. Datamodellen kan få ett informellt namn, till exempel prestationsrecensioner, och sedan kan alla tabeller och vyer föregås av pr_. Tabellen över anställdas lista kan hänvisas till som hr.pr_medarbetare utan att kräva ett nytt schema för prestationsgranskningarna. FAQ

  • Vad är skillnaden mellan ett databasschema och ett databasläge?

    Medan ett databasschema ger en beskrivning av databasen, hänvisar ett databasstillstånd till innehållet i en databas vid en tidpunkt.

  • Vad är ett relationsschema för en databas?

    Ett relationsschema beskriver relationerna mellan tabeller och objekt som är associerade med varandra.