Een databaseschema is een verzameling metadata die de relaties tussen objecten en informatie in een database beschrijft. Een eenvoudige manier om een schema voor te stellen, is door het te zien als een doos met tabellen, opgeslagen procedures, weergaven en gerelateerde gegevensactiva. Een schema definieert de infrastructuur van deze box.
Bottom Line
Op het basisniveau dient een schema als een container voor gegevensactiva. Verschillende databaseleveranciers structureren hun schema's echter op verschillende manieren. Oracle behandelt bijvoorbeeld elk schema als een gebruikersaccount. Om een nieuw schema te maken, maakt een databasebeheerder een nieuwe databasegebruiker met de beoogde schemanaam.
Waarom schema's ertoe doen
Omdat schema's een structureel elementair kenmerk van een database vormen, passen de meeste databaseomgevingen toegangsrechten toe op objecten op schemaniveau.
Een bedrijfsdatabase kan bijvoorbeeld een reeks gebruikers bevatten. Elke gebruiker krijgt een schema, maar toegang tot verschillende schema's wordt individueel en met de granulariteit van machtigingen verleend aan gebruikers buiten het thuisschema.
De meeste hulpprogramma's voor databasebeheer vermelden geen schema's; in plaats daarvan vermelden ze databases en gebruikers.
Een bedrijf maakt bijvoorbeeld gebruikersaccounts (schema's) voor Bob en Jane. Het maakt ook accounts aan voor afdelingen zoals HR en Marketing. Vervolgens geeft het een analist in elke afdeling toegang tot het schema-account van hun afdeling.
De HR-analist maakt tabellen en weergaven binnen het HR-schema en verleent Bob toegang tot het lezen (maar niet schrijven naar) een HR-tabel met namen van werknemers en ID-nummers van werknemers. De HR-analist kan Jane ook toegang verlenen om te lezen en te schrijven naar een HR-tabel met telefoonnummers van werknemers.
Door op deze manier toegang te verlenen, kunnen alleen de juiste rollen en gebruikers de gegevens lezen, schrijven of wijzigen in een op zichzelf staand gegevensitem binnen de grotere database.
Elke database-engine kijkt naar schema's als de fundamentele methode voor het scheiden van gegevens in een omgeving met meerdere gebruikers.
Verschillende database-engines behandelen gebruikers en schema's verschillend. Raadpleeg de documentatie voor uw database-engine om de syntaxis en logische modellen rond gebruikers, schema's en machtigingen te ontdekken.
Schema's maken
Een schema wordt formeel gedefinieerd met behulp van Structured Query Language (SQL). In Oracle maakt u bijvoorbeeld een schema door het gebruikersaccount aan te maken waarvan het de eigenaar is:
CREATE USER bob
IDENTIFIED BY tijdelijk_wachtwoord
DEFAULT TABLESPACE voorbeeld
QUOTA 10M ON voorbeeld
TIJDELIJKE TABLESPACE temp
QUOTA 5M OP systeem
PROFILE app_user
PASSWORD EXPIRE;
Andere gebruikers krijgen toegang tot nieuwe schema's op grond van hun gebruikersnaam of door een of meer rollen waaraan het gebruikersaccount is toegevoegd.
Schema's versus gegevensmodellen
Net als een datamodel is een schema niet intrinsiek gestructureerd om iets te doen. In plaats daarvan is het een infrastructuur om segmentatierechten in een database te ondersteunen.
Een gegevensmodel is een verzameling tabellen en weergaven die op specifieke sleutels zijn samengevoegd. Deze data-assets dienen samen een zakelijk doel. Het is acceptabel om een datamodel toe te passen op een schema - voor grote en complexe datamodellen, het associëren ervan met schema's zorgt voor slim databasebeheer. Maar het is logischerwijs niet nodig om een schema voor een datamodel te gebruiken of een datamodel als een schema te behandelen.
De HR-afdeling kan bijvoorbeeld een gegevensmodel voor prestatiebeoordelingen van werknemers in het schema opnemen. In plaats van een schema voor deze beoordelingen te maken, kan het datamodel in het HR-schema zitten (samen met andere datamodellen) en logisch onderscheiden blijven door prefixen van de tabel en weergavenamen voor de objecten in het datamodel.
Het gegevensmodel kan een informele naam krijgen, zoals prestatiebeoordelingen, en dan kunnen alle tabellen en weergaven worden voorafgegaan door pr_ Er kan naar de tabel met werknemersvermeldingen worden verwezen als hr.pr_employee zonder dat er een nieuw schema voor de prestatiebeoordelingen nodig is.
FAQ
Wat is het verschil tussen een databaseschema en een databasestatus?
Een databaseschema beschrijft de database. Een databasestatus verwijst naar de inhoud van een database op een bepaald moment en kan worden beschouwd als een uitbreiding van het databaseschema.
Wat is een relationeel schema van een database?
Een relationeel schema schetst de relaties tussen tabellen en items die aan elkaar zijn gekoppeld. Een schema kan een grafische illustratie of grafiek zijn, of het kan in SQL-code worden geschreven.