Verschillende databasebeheersystemen definiëren schema op hun eigen manier. Dit kan het voor databaseontwikkelaars moeilijk maken om precies te bepalen wat een schema is, vooral bij het schakelen tussen verschillende DBMS'en.
Dit artikel bevat definities die worden gebruikt door de drie toonaangevende databasesystemen.
MySQL
De MySQL-documentatie definieert een schema vanuit zowel een conceptueel als een fysiek standpunt.
Conceptueel
Conceptueel is een schema een set onderling gerelateerde database-objecten, zoals tabellen, tabelkolommen, gegevenstypen van de kolommen, indexen, externe sleutels, enzovoort. Deze objecten zijn verbonden via SQL-syntaxis, omdat de kolommen de tabellen vormen, de refererende sleutels verwijzen naar tabellen en kolommen, enzovoort. Idealiter zijn ze ook logisch met elkaar verbonden en werken ze samen als onderdeel van een uniforme applicatie of flexibel raamwerk. Bijvoorbeeld het information_schema en performance_schema databases gebruiken "schema" in hun naam om de nauwe relaties tussen de tabellen en kolommen die ze bevatten te benadrukken.
Fysiek
Vervolgens wordt erop gewezen dat er vanuit fysiek oogpunt geen onderscheid is tussen schema's en databases:
In MySQL, fysiek, een schema is synoniem met een database . U kunt het trefwoord SCHEMA
. vervangen in plaats van DATABASE
in MySQL SQL-syntaxis, bijvoorbeeld met behulp van CREATE SCHEMA
in plaats van CREATE DATABASE
.
Bron:"MySQL-woordenlijst". MySQL 5.7 Naslaggids. MijnSQL. Ontvangen 6 juni 2016.
SQL-server
Verklarende woordenlijst
Databaseschema
De namen van tabellen, velden, gegevenstypen en primaire en externe sleutels van een database.
Bron:'Verklarende woordenlijst'. SQL Server 2016 technische documentatie. Microsoft-ontwikkelaarsnetwerk. Ontvangen 6 juni 2016.
SQL Server technisch artikel
In dit artikel over database-objectschema's wordt expliciet het onderscheid gemaakt tussen een databasegebruiker en een schema (dit in tegenstelling tot hoe Oracle schema's definieert - hieronder).
Een schema is een aparte naamruimte om de scheiding, het beheer en het eigendom van database-objecten te vergemakkelijken.
en
Een object dat eigendom is van een databasegebruiker is niet langer aan die gebruiker gebonden. Het object hoort nu bij een schema - een container die veel database-objecten kan bevatten.
en
Door deze scheiding kunnen objecten en schema's worden gemaakt voordat gebruikers aan de database worden toegevoegd. Het betekent ook dat een gebruiker kan worden verwijderd zonder de objecten die eigendom zijn van die gebruiker specifiek te verwijderen.
Bron:"SQL Server Best Practices - Implementatie van database-objectschema's". Microsoft TechNet-artikel. Gepubliceerd:november 2008. Ontvangen op 6 juni 2016.
Oracle-database
Het schemasysteem van Oracle Database is heel anders dan de andere systemen. Het schema van Oracle is sterk gebonden aan de databasegebruiker.
Een schema is een verzameling logische structuren van gegevens of schema-objecten. Een schema is eigendom van een databasegebruiker en heeft dezelfde naam als die gebruiker. Elke gebruiker heeft een enkel schema.
Oracle maakt onderscheid tussen schema-objecten en niet-schema-objecten . Met andere woorden, sommige database-objecten kunnen niet in een schema worden opgenomen.
Schema-objecten
In Oracle Database, schema-objecten omvatten het volgende:
- Clusters
- Beperkingen
- Databaselinks
- Database-triggers
- Afmetingen
- Externe procedurebibliotheken
- Index-georganiseerde tabellen
- Indexen
- Indextypen
- Java-klassen, Java-bronnen, Java-bronnen
- Gematerialiseerde weergaven
- Gematerialiseerde weergavelogboeken
- Mijnbouwmodellen
- Objecttabellen
- Objecttypen
- Objectweergaven
- Operators
- Pakketten
- Sequenties
- Opgeslagen functies, opgeslagen procedures
- Synoniemen
- Tafels
- Beelden
Niet-schema-objecten
In Oracle Database zijn de volgende objecten niet-schema-objecten :
- Contexten
- Mappen
- Edities
- Punten herstellen
- Rollen
- Segmenten terugdraaien
- Tabelruimtes
- Gebruikers
Bron: 'Databaseobjecten'. Oracle Database Online Documentatie 12c Release 1 (12.1). Oracle-helpcentrum. Ontvangen 6 juni 2016.