

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Creare uno schema
<a name="t_creating_schema"></a>

Dopo aver creato un nuovo database, è possibile creare un nuovo schema nel database corrente. Uno *schema è uno* spazio dei nomi che contiene oggetti di database denominati come tabelle, viste e funzioni definite dall'utente (). UDFs Un database può contenere uno o più schemi e ogni schema appartiene a un solo database. Due schemi possono avere oggetti diversi che condividono lo stesso nome.

È possibile creare più schemi nello stesso database per organizzare i dati nel modo desiderato o per raggruppare i dati in modo funzionale. Ad esempio, è possibile creare uno schema per memorizzare tutti i dati dell'area di gestione temporanea e un altro schema per memorizzare tutte le tabelle di reporting. È inoltre possibile creare schemi diversi per memorizzare i dati relativi a diversi business group che si trovano nello stesso database. Ogni schema può memorizzare diversi oggetti di database, come tabelle, viste e funzioni definite dall'utente (). UDFs Inoltre, è possibile creare schemi con la clausola AUTHORIZATION. Questa clausola conferisce la proprietà a un utente specificato o imposta una quota sulla quantità massima di spazio su disco che lo schema specificato può utilizzare. 

Amazon Redshift crea automaticamente uno schema chiamato `public` per ogni nuovo database. Quando non si specifica il nome dello schema durante la creazione di oggetti di database, gli oggetti vanno nello schema `public`.

Per accedere a un oggetto in uno schema, qualificare l'oggetto utilizzando la notazione `schema_name.table_name`. Il nome qualificato dello schema è costituito dal nome dello schema e dal nome della tabella separati da un punto. Ad esempio, è possibile avere uno schema `sales` che ha una tabella `price` e uno schema `inventory` che ha una tabella `price`. Quando si fa riferimento alla tabella `price`, è necessario qualificarla come `sales.price` o `inventory.price`.

Nell'esempio seguente viene creato uno schema denominato **SALES** per l'utente `GUEST`.

```
CREATE SCHEMA SALES AUTHORIZATION GUEST;
```

Per informazioni sulle opzioni di altri comandi, consultare [CREATE TABLE](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_SCHEMA.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.

Per visualizzare l'elenco degli schemi nel database, emettere il comando seguente.

```
select * from pg_namespace;
```

L’output visualizzato dovrebbe essere simile al seguente:

```
  nspname             | nspowner |         nspacl
----------------------+----------+--------------------------
  sales               |  100     |
  pg_toast            |   1      |
  pg_internal         |   1      |
  catalog_history     |   1      |
  pg_temp_1           |   1      | 
  pg_catalog          |   1      | {rdsdb=UC/rdsdb,=U/rdsdb}
  public              |   1      | {rdsdb=UC/rdsdb,=U/rdsdb}
  information_schema  |   1      | {rdsdb=UC/rdsdb,=U/rdsdb}
```

Per ulteriori informazioni su come eseguire query sulle tabelle di catalogo, consultare [Query sulle tabelle di catalogo](https://docs.aws.amazon.com/redshift/latest/dg/c_join_PG.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.

Utilizzare l'istruzione GRANT per concedere autorizzazioni agli utenti per gli schemi.

Nell’esempio seguente viene concesso il privilegio all’utente `GUEST` per selezionare i dati da tutte le tabelle o viste nello schema `SALES` utilizzando un’istruzione SELECT. 

```
GRANT SELECT ON ALL TABLES IN SCHEMA SALES TO GUEST;
```

Nell’esempio seguente vengono concessi tutti i privilegi disponibili all’utente `GUEST` in una sola volta.

```
GRANT ALL ON SCHEMA SALES TO GUEST;
```