Wat is een databaseschema?


De term databaseschema kan verwijzen naar een visuele weergave van een database, een set van regels die een database besturen of de volledige reeks objecten die aan een bepaalde gebruiker toebehoren. Lees verder voor meer informatie over databaseschema's en hoe ze gebruikt worden.

Wat is een databaseschema?

Een databaseschema stelt de logische configuratie voor van een relationele database, of een onderdeel daarvan. Het kan bestaan uit een visuele weergave of uit een reeks formules - integriteitsbeperkingen - die een database beheren. Deze formules worden uitgedrukt in een Data Definition Language (DDL) zoals SQL. Het databaseschema maakt deel uit van de Database Dictionary en geeft aan hoe de entiteiten die de database vormen met elkaar verbonden zijn, zoals tabellen, weergaven, opgeslagen procedures en nog veel meer.

logisch en fysiek databaseschema

Een databaseontwerper creëert gewoonlijk een databaseschema als hulpmiddel voor programmeurs wiens software op de database zal inwerken. Het proces waarbij een databaseschema opgesteld wordt, wordt datamodellering genoemd. Wanneer het drie-schema-model wordt gevolgd voor databaseontwerp, volgt deze stap op de creatie van een conceptueel schema. Conceptuele schema's zijn gericht op de informatiebehoefte van een organisatie en niet zozeer op de structuur van de database.

Er zijn twee belangrijke soorten databaseschema's:

  1. Een logisch databaseschema communiceert de logische beperkingen die op de opgeslagen gegevens van toepassing zijn. Het kan integriteitsbeperkingen, weergaven en tabellen definiëren.
  2. Een fysiek databaseschema toont hoe gegevens fysiek worden opgeslagen met betrekking tot bestanden en indexen.

Op het meest elementaire niveau geeft een databaseschema weer uit welke tabellen of relaties de database bestaat, maar ook de velden op elke tabel. Daarom zijn de termen schemadiagram en entiteit-relatiediagram vaak verwisselbaar.

Schema in Oracle-databasesysteem

In het Oracle-databasesysteem heeft de term databaseschema, ook gekend als SQL-schema, een andere betekenis. Hier kan een database meerdere schema's hebben. Elk van die schema's bevat alle objecten die door een bepaalde gebruiker van de database gecreëerd werden. Die objecten kunnen tabellen, weergaven, synoniemen en nog veel meer omvatten. Sommige objecten kunnen niet in een schema worden opgenomen, bijvoorbeeld gebruikers, contexten, rollen en directory-objecten.

schema relationele database

Gebruikers kunnen (geval per geval) de toestemming krijgen om in te loggen voor individuele schema's en de eigendom is overdraagbaar. Omdat elk object met een specifiek schema geassocieerd wordt - wat dienst doet als een soort naamruimte - kan het nuttig zijn om synoniemen te gebruiken, waardoor gebruikers toegang krijgen tot het object zonder dat ze eerst het schema waartoe het object behoort, moeten refereren.

Deze schema's geven niet noodzakelijk weer hoe de databestanden fysiek worden opgeslagen. Schema-objecten worden in de plaats daarvan logisch opgeslagen in een tablespace. De databasebeheerder kan bepalen hoeveel ruimte aan een bepaald object binnen een databestand wordt toegewezen.

Tenslotte zijn schema's en tablespaces niet noodzakelijk perfect op elkaar afgestemd: objecten in één schema kunnen in meerdere tablespaces voorkomen en een tablespace kan objecten uit meerdere schema's bevatten.

Database-instantie of databaseschema?

Hoewel deze termen gerelateerd zijn, betekenen ze niet hetzelfde. Een databaseschema is een schets van een geplande database. Het schema zelf bevat geen gegevens.

Een database-instantie is daarentegen een momentopname van een database, zoals die op een bepaald moment bestond. Database-instanties kunnen dus mettertijd evolueren, terwijl een databaseschema gewoonlijk onveranderlijk is - het is moeilijk om de structuur van een werkende database te wijzigen.

Databaseschema's en database-instanties kunnen elkaar beïnvloeden via een Database Management System (DBMS). Een DBMS zorgt ervoor dat elke database-instantie voldoet aan de beperkingen die door de ontwerpers werden bepaald in het databaseschema.

Vereisten voor schema-integratie

Het kan nuttig zijn om meerdere bronnen in een schema te verwerken. Zorg ervoor dat aan deze vereisten wordt voldaan, voor een naadloze overgang.

Behoud van overlapping

Elk overlappend element in de schema's die u integreert, moet in een tabel van het databaseschema staan.

Uitgebreid behoud van overlapping

Elementen die slechts in één bron voorkomen, maar verwant zijn aan overlappende elementen, moeten naar het resulterende databaseschema worden gekopieerd.

Normalisatie

Onafhankelijke relaties en entiteiten mogen niet in één tabel van het databaseschema worden samengepakt.

Minimaliteit

Het is ideaal als geen enkel element in geen enkele bron verloren gaat.

Soorten databaseschema

Er hebben zich bepaalde patronen ontwikkeld bij het ontwerpen van databaseschema's.

Het veelgebruikte sterschema is ook het eenvoudigst. Hierin zijn een of meer feitentabellen gelinkt aan een onbepaald aantal dimensionale tabellen. Dit is de beste optie voor eenvoudige opdrachten.

Het verwante sneeuwvlokschema wordt ook gebruikt om een multidimensionale database voor te stellen. In dit patroon worden dimensies echter genormaliseerd in een groot aantal aparte tabellen, waardoor een sneeuwvlokachtige structuur ontstaat.