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.