Che cos'è uno schema di database?

Sommario:

Che cos'è uno schema di database?
Che cos'è uno schema di database?
Anonim

Uno schema di database è una raccolta di metadati che descrive le relazioni tra oggetti e informazioni in un database. Un modo semplice per immaginare uno schema è pensarlo come una scatola che contiene tabelle, stored procedure, viste e risorse di dati correlate. Uno schema definisce l'infrastruttura di questa scatola.

Linea inferiore

Al suo livello di base, uno schema funge da contenitore per le risorse di dati. Tuttavia, diversi fornitori di database strutturano i propri schemi in modi diversi. Oracle, ad esempio, tratta ogni schema come un account utente. Per creare un nuovo schema, un amministratore del database crea un nuovo utente del database con il nome dello schema previsto.

Perché gli schemi sono importanti

Poiché gli schemi costituiscono una caratteristica strutturale di base di un database, la maggior parte degli ambienti di database applica autorizzazioni di accesso agli oggetti a livello di schema.

Ad esempio, un database aziendale potrebbe contenere una serie di utenti. Ogni utente ha uno schema, ma l'accesso a schemi diversi viene concesso individualmente e con la granularità delle autorizzazioni agli utenti al di fuori dello schema home.

La maggior parte degli strumenti di gestione del database non elenca gli schemi; invece, elencano database e utenti.

Image
Image

Ad esempio, un'azienda crea account utente (schemi) per Bob e Jane. Crea anche account per dipartimenti come Risorse umane e Marketing. Quindi, fornisce a un analista di ciascun dipartimento l'accesso all'account schema del proprio dipartimento.

L'analista delle risorse umane crea tabelle e viste all'interno dello schema delle risorse umane e concede a Bob l'accesso per leggere (ma non scrivere) una tabella delle risorse umane che elenca i nomi dei dipendenti e i numeri ID dei dipendenti. Inoltre, l'analista delle risorse umane può concedere a Jane l'accesso per leggere e scrivere su una tabella delle risorse umane che elenca i numeri di telefono dei dipendenti.

Concedendo l'accesso in questo modo, solo i ruoli e gli utenti corretti possono leggere, scrivere o modificare i dati in un asset di dati autonomo all'interno del database più grande.

Ogni motore di database considera gli schemi come il metodo fondamentale per separare i dati in un ambiente multiutente.

Motori di database diversi trattano utenti e schemi in modo diverso. Fare riferimento alla documentazione del motore di database per scoprire la sintassi e i modelli logici relativi a utenti, schemi e autorizzazioni.

Creazione di schemi

Uno schema viene definito formalmente utilizzando SQL (Structured Query Language). Ad esempio, in Oracle, crei uno schema creando l'account utente che lo possiede:

CREATE USER bob

IDENTIFIED BY temporary_password

DEFAULT TABLESPACE esempio

QUOTA 10M ON esempio

TEMPORARY TABLESPACE temp

QUOTA 5M SU sistema

PROFILO utente_app

PASSWORD SCADENZA;

Altri utenti possono accedere ai nuovi schemi in virtù del loro nome utente o di uno o più ruoli a cui è stato aggiunto l'account utente.

Schemi e modelli di dati

Come un modello di dati, uno schema non è intrinsecamente strutturato per fare qualcosa. Si tratta invece di un'infrastruttura per supportare le autorizzazioni di segmentazione in un database.

Un modello di dati è una raccolta di tabelle e viste unite su chiavi specifiche. Queste risorse di dati, insieme, servono a uno scopo aziendale. È accettabile applicare un modello di dati a uno schema, per modelli di dati di grandi dimensioni e complessi, associarli a schemi rende l'amministrazione intelligente del database. Ma non è logicamente necessario utilizzare uno schema per un modello di dati o trattare un modello di dati come uno schema.

Image
Image

Ad esempio, il dipartimento delle risorse umane potrebbe includere nel proprio schema un modello di dati per le revisioni delle prestazioni dei dipendenti. Invece di creare uno schema per queste revisioni, il modello di dati può risiedere nello schema HR (insieme ad altri modelli di dati) e rimanere logicamente distinto tramite i prefissi della tabella e i nomi delle viste per gli oggetti nel modello di dati.

Il modello di dati potrebbe ottenere un nome informale, come recensioni di prestazioni, e quindi tutte le tabelle e le visualizzazioni potrebbero essere precedute da pr_ La tabella dell'elenco dei dipendenti potrebbe essere indicata come hr.pr_employee senza richiedere un nuovo schema per le revisioni delle prestazioni.

Domande frequenti

    Qual è la differenza tra uno schema di database e uno stato di database?

    Uno schema di database descrive il database. Uno stato del database si riferisce al contenuto di un database in un determinato momento e può essere considerato un'estensione dello schema del database.

    Che cos'è uno schema relazionale di un database?

    Uno schema relazionale delinea le relazioni tra tabelle ed elementi che sono associati tra loro. Uno schema può essere un'illustrazione grafica o un grafico oppure può essere scritto in codice SQL.

Consigliato: