Forskellige databasestyringssystemer definerer skema på deres egen måde. Dette kan gøre det vanskeligt for databaseudviklere at finde ud af præcis, hvad et skema er – især når der skiftes mellem forskellige DBMS'er.
Denne artikel indeholder definitioner, der bruges af de tre førende databasesystemer.
MySQL
MySQL-dokumentationen definerer et skema fra både et konceptuelt og et fysisk synspunkt.
Konceptuel
Konceptuelt er et skema et sæt af indbyrdes forbundne databaseobjekter, såsom tabeller, tabelkolonner, datatyper for kolonnerne, indekser, fremmednøgler og så videre. Disse objekter er forbundet via SQL-syntaks, fordi kolonnerne udgør tabellerne, fremmednøglerne refererer til tabeller og kolonner, og så videre. Ideelt set er de også logisk forbundet og arbejder sammen som en del af en samlet applikation eller fleksibel ramme. For eksempel informationsskemaet og performance_schema databaser bruger "skema" i deres navne for at understrege de tætte relationer mellem de tabeller og kolonner, de indeholder.
Fysisk
Det påpeges derefter, at der fra et fysisk synspunkt ikke er nogen forskel mellem skemaer og databaser:
I MySQL, fysisk, et skema er synonymt med en database . Du kan erstatte søgeordet SCHEMA
i stedet for DATABASE
i MySQL SQL-syntaks, for eksempel ved hjælp af CREATE SCHEMA
i stedet for CREATE DATABASE
.
Kilde: "MySQL-ordliste". MySQL 5.7 Referencemanual. MySQL. Hentet 6. juni 2016.
SQL-server
Ordliste
Databaseskema
Navnene på tabeller, felter, datatyper og primære og fremmede nøgler i en database.
Kilde: "Ordliste". SQL Server 2016 teknisk dokumentation. Microsoft Developer Network. Hentet 6. juni 2016.
SQL Server teknisk artikel
Denne artikel om databaseobjektskemaer tegner eksplicit sondringen mellem en databasebruger og et skema (dette er i modsætning til, hvordan Oracle definerer skemaer – nedenfor).
Et skema er et særskilt navneområde for at lette adskillelsen, administrationen og ejerskabet af databaseobjekter.
og
Et objekt, der ejes af en databasebruger, er ikke længere bundet til denne bruger. Objektet tilhører nu et skema – en beholder, der kan indeholde mange databaseobjekter.
og
Denne adskillelse betyder, at objekter og skemaer kan oprettes, før brugere føjes til databasen. Det betyder også, at en bruger kan droppes uden specifikt at droppe de objekter, der ejes af denne bruger.
Kilde: "SQL Server Best Practices – Implementation of Database Object Schemas". Microsoft TechNet artikel. Udgivet:november 2008. Hentet 6. juni 2016.
Oracle-database
Oracle Databases skemasystem er ret anderledes end de andre systemer. Oracles skema er meget knyttet til databasebrugeren.
Et skema er en samling af logiske strukturer af data eller skemaobjekter. Et skema ejes af en databasebruger og har samme navn som denne bruger. Hver bruger ejer et enkelt skema.
Oracle skelner mellem skemaobjekter og ikke-skemaobjekter . Så med andre ord, nogle databaseobjekter kan ikke inkluderes i et skema.
Skemaobjekter
I Oracle Database, skemaobjekter inkludere følgende:
- Klynger
- Begrænsninger
- Databaselinks
- Databaseudløsere
- Dimensioner
- Eksterne procedurebiblioteker
- Indeksorganiserede tabeller
- Indekser
- Indekstyper
- Java-klasser, Java-ressourcer, Java-kilder
- Materialiserede visninger
- Materialiserede visningslogfiler
- Minedriftsmodeller
- Objekttabeller
- Objekttyper
- Objektvisninger
- Operatører
- Pakker
- Sekvenser
- Gemme funktioner, lagrede procedurer
- Synonymer
- Tabeller
- Visninger
Ikke-skemaobjekter
I Oracle Database er følgende objekter ikke-skemaobjekter :
- Kontekster
- Mappen
- Udgaver
- Gendannelsespunkter
- Roller
- Tilbageføringssegmenter
- Tablespaces
- Brugere
Kilde: "Databaseobjekter". Oracle Database Online Dokumentation 12c Release 1 (12.1). Oracle Hjælpecenter. Hentet 6. juni 2016.