DB2 - Schemi
Questo capitolo introduce e descrive il concetto di Schema.
introduzione
Uno schema è una raccolta di oggetti denominati classificati logicamente nel database.
In un database, non è possibile creare più oggetti di database con lo stesso nome. A tale scopo, lo schema fornisce un ambiente di gruppo. È possibile creare più schemi in un database e creare più oggetti di database con lo stesso nome, con diversi gruppi di schemi.
Uno schema può contenere tabelle, funzioni, indici, spazi tabella, procedure, trigger, ecc. Ad esempio, si creano due diversi schemi denominati "Professionale" e "Personale" per un database "dipendente". È possibile creare due diverse tabelle con lo stesso nome "Employee". In questo ambiente, una tabella contiene informazioni professionali e l'altra contiene informazioni personali del dipendente. Nonostante abbiano due tabelle con lo stesso nome, hanno due schemi differenti "Personale" e "Professionale". Quindi, l'utente può lavorare con entrambi senza incontrare alcun problema. Questa funzione è utile quando sono presenti vincoli sulla denominazione delle tabelle.
Vediamo alcuni comandi relativi a Schema:
Recupero dello schema attualmente attivo
Syntax:
db2 get schema
Example: [Per ottenere lo schema del database corrente]
db2 get schema
Impostazione di un altro schema nell'ambiente corrente
Syntax:
db2 set schema=<schema_name>
Example: [Per disporre "schema1" nell'ambiente di istanza corrente]
db2 set schema=schema1
Creazione di un nuovo schema
Syntax: [Per creare un nuovo schema con ID utente autorizzato]
db2 create schema <schema_name> authroization <inst_user>
Example: [Per creare lo schema "schema1" autorizzato con "db2inst2"]
db2 create schema schema1 authorization db2inst2
Esercizio
Creiamo due tabelle differenti con lo stesso nome ma due schemi differenti. Qui crei la tabella dei dipendenti con due schemi diversi, uno per le informazioni personali e l'altro per le informazioni professionali.
Step 1: Crea due schemi.
Schema 1: [Per creare uno schema denominato professionale]
db2 create schema professional authorization db2inst2
Schema 2: [Per creare uno schema denominato personale]
db2 create schema personal authorization db2inst2
Step 2: Crea due tabelle con lo stesso nome per i dettagli del dipendente
Table1: professionale.impiegato
[Per creare una nuova tabella "dipendente" nel database utilizzando il nome dello schema "professionale"]
db2 create table professional.employee(id number, name
varchar(20), profession varchar(20), join_date date,
salary number);
Table2: personale.impiegato
[Per creare una nuova tabella "dipendente" nello stesso database, con nome schema "personale"]
db2 create table personal.employee(id number, name
varchar(20), d_birth date, phone bigint, address
varchar(200));
Dopo aver eseguito questi passaggi, si ottengono due tabelle con lo stesso nome "dipendente", con due schemi diversi.