Ett databasschema är en samling metadata som beskriver relationerna mellan objekt och information i en databas. Ett enkelt sätt att föreställa sig ett schema är att se det som en ruta som innehåller tabeller, lagrade procedurer, vyer och relaterade datatillgångar. Ett schema definierar infrastrukturen för denna box.
Bottom Line
På sin grundläggande nivå fungerar ett schema som en behållare för datatillgångar. Men olika databasleverantörer strukturerar sina scheman på olika sätt. Oracle, till exempel, behandlar 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.
Why Schemas Matter
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 ådrar sig ett schema, men åtkomst till olika scheman ges individuellt och med granularitet av behörigheter till användare utanför hemschemat.
De flesta databashanteringsverktyg listar inte scheman; istället listar de databaser och användare.
Ett företag skapar till exempel 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 på 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 medarbetar-ID-nummer. Dessutom kan HR-analytikern ge åtkomst till Jane att läsa och skriva till en HR-tabell som listar anställdas telefonnummer.
Genom att ge åtkomst på det här sättet kan bara rätt roller och användare läsa, skriva eller ändra data i en fristående datatillgång i den större databasen.
Varje databasmotor ser till scheman som den grundläggande metoden för att segregera data i en miljö med flera användare.
Olika databasmotorer behandlar användare och scheman olika. Se dokumentationen för din databasmotor för att upptäcka syntax- och logikmodellerna kring användare, scheman och beviljande av behörigheter.
Skapa scheman
Ett schema definieras formellt med Structured Query Language (SQL). Till exempel, i Oracle skapar du ett schema genom att skapa användarkontot som äger det:
SKAPA ANVÄNDARE bob
IDENTIFIERAD AV temporary_password
DEFAULT TABLESPACE-exempel
QUOTA 10M ON-exempel
TEMPORARY TABLESPACE temp
QUOTA 5M PÅ system
PROFILE app_user
LÖSENORD UTGÅR UT;
Andra användare ges tillgång till nya scheman i kraft av sitt användarnamn eller av en eller flera roller som användarkontot har lagts till.
Schema vs. datamodeller
Som en datamodell är ett schema inte inbyggt 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 tabeller och vyer sammanfogade på specifika nycklar. Dessa datatillgångar tjänar tillsammans ett affärssyfte. Det är acceptabelt att tillämpa en datamodell på ett schema - för stora och komplexa datamodeller, associering av dem med scheman ger 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.
Till exempel kan HR-avdelningen inkludera en datamodell för medarbetargranskning i sitt schema. Istället för att skapa ett schema för dessa granskningar, kan datamodellen sitta i HR-schemat (tillsammans med andra datamodeller) och förbli logiskt distinkt genom prefix i tabellen och vynamn för objekten i datamodellen.
Datamodellen kan få ett informellt namn, t.ex. prestandarecensioner, och då kan alla tabeller och vyer ha prefixet pr_ Tabellen för medarbetarlistor kan refereras till som hr.pr_employee utan att det krävs ett nytt schema för prestationsrecensioner.
FAQ
Vad är skillnaden mellan ett databasschema och ett databastillstånd?
Ett databasschema beskriver databasen. Ett databastillstånd hänvisar till innehållet i en databas vid ett ögonblick och kan betraktas som en förlängning av databasschemat.
Vad är ett relationsschema för en databas?
Ett relationsschema beskriver relationerna mellan tabeller och objekt som är associerade med varandra. Ett schema kan vara en grafisk illustration eller ett diagram, eller så kan det skrivas i SQL-kod.