Diversi sistemi di gestione del database definiscono schema a modo loro. Ciò può rendere difficile per gli sviluppatori di database capire esattamente che cos'è uno schema, soprattutto quando si passa da un DBMS all'altro.
Questo articolo fornisce le definizioni utilizzate dai tre principali sistemi di database.
MySQL
La documentazione MySQL definisce uno schema sia dal punto di vista concettuale che fisico.
Concettuale
Concettualmente, uno schema è un insieme di oggetti di database correlati, come tabelle, colonne di tabelle, tipi di dati delle colonne, indici, chiavi esterne e così via. Questi oggetti sono collegati tramite la sintassi SQL, perché le colonne costituiscono le tabelle, le chiavi esterne si riferiscono a tabelle e colonne e così via. Idealmente, sono anche collegati logicamente, lavorando insieme come parte di un'applicazione unificata o di un framework flessibile. Ad esempio, lo schema_informativo e schema_performance i database usano "schema" nei loro nomi per enfatizzare le strette relazioni tra le tabelle e le colonne che contengono.
Fisico
Si fa poi notare che, dal punto di vista fisico, non c'è distinzione tra schemi e database:
In MySQL, fisicamente, uno schema è sinonimo di database . Puoi sostituire la parola chiave SCHEMA
invece di DATABASE
nella sintassi SQL di MySQL, ad esempio usando CREATE SCHEMA
invece di CREATE DATABASE
.
Fonte: "Glossario MySQL". MySQL 5.7 Manuale di riferimento. MySQL. Estratto il 6 giugno 2016.
SQL Server
Glossario
Schema database
I nomi di tabelle, campi, tipi di dati e chiavi primarie ed esterne di un database.
Fonte: "Glossario". Documentazione tecnica di SQL Server 2016. Rete di sviluppatori Microsoft. Estratto il 6 giugno 2016.
Articolo tecnico su SQL Server
Questo articolo sugli schemi degli oggetti del database traccia esplicitamente la distinzione tra un utente del database e uno schema (questo è in contrasto con il modo in cui Oracle definisce gli schemi, di seguito).
Uno schema è uno spazio dei nomi distinto per facilitare la separazione, la gestione e la proprietà degli oggetti del database.
e
Un oggetto di proprietà di un utente del database non è più legato a quell'utente. L'oggetto ora appartiene a uno schema, un contenitore che può contenere molti oggetti di database.
e
Questa separazione significa che gli oggetti e gli schemi possono essere creati prima che gli utenti vengano aggiunti al database. Significa anche che un utente può essere eliminato senza rilasciare specificamente gli oggetti di proprietà di quell'utente.
Fonte: "Procedure consigliate per SQL Server:implementazione di schemi di oggetti di database". Articolo Microsoft TechNet. Pubblicato:novembre 2008. Estratto il 6 giugno 2016.
Database Oracle
Il sistema dello schema di Oracle Database è abbastanza diverso dagli altri sistemi. Lo schema di Oracle è molto legato all'utente del database.
Uno schema è una raccolta di strutture logiche di dati o oggetti dello schema. Uno schema è di proprietà di un utente del database e ha lo stesso nome di quell'utente. Ogni utente possiede un singolo schema.
Oracle distingue tra oggetti schema e oggetti non schema . Quindi, in altre parole, alcuni oggetti di database non possono essere inclusi in uno schema.
Oggetti Schema
In Oracle Database, oggetti schema includere quanto segue:
- Cluster
- Vincoli
- Link al database
- Attivatori di database
- Dimensioni
- Librerie di procedure esterne
- Tabelle organizzate per indici
- Indici
- Tipi di indice
- Classi Java, risorse Java, sorgenti Java
- Viste materializzate
- Registri delle viste materializzate
- Modelli minerari
- Tabelle degli oggetti
- Tipi di oggetti
- Viste degli oggetti
- Operatori
- Pacchetti
- Sequenze
- Funzioni memorizzate, procedure memorizzate
- Sinonimi
- Tabelle
- Viste
Oggetti non schema
In Oracle Database, i seguenti oggetti sono oggetti non schema :
- Contesti
- Elenchi
- Edizioni
- Punti di ripristino
- Ruoli
- Segmenti di rollback
- Spazi tabella
- Utenti
Fonte: "Oggetti di database". Documentazione Oracle Database Online 12c Release 1 (12.1). Centro assistenza Oracle. Estratto il 6 giugno 2016.