Gestire un database con SQL Server
Published: 2023-10-03 14:26:52

---
title: Gestire un database con SQL Server
published: true
date: 2022-11-17 00:00:00 UTC
tags: 
canonical_url: 
---

Come creare un database? Come gestirlo? Cosa sono i database di sistema? Queste sono solo alcune delle domande a cui cercheremo di rispondere oggi: parliamo quindi di come gestire un database con SQL Server!

# Cosa vedrai

- [Definizione di database](#definizione-di-database)
- [Creare un database](#creare-un-database)
- [Risorse utili](#risorse-utili)

# Definizione di database

In SQL Server è una <ins>raccolta di una o più tabelle in cui vengono organizzati e memorizzati dei dati strutturati.
</ins>

Ogni tabella sarà costituita da diverse **righe** e **colonne** , che vengono chiamate rispettivamente anche _record_ e_attributi_.

## Database di sistema

SQL Server contiene principalmente quattro database di sistema (_master, modello, msdb, tempdb_). Ciascuno di essi viene utilizzato da SQL Server per scopi separati; di tutti i database, il database _master_ è il database più importante. Il database _master_ contiene informazioni sulla configurazione del server SQL.

Il database _model_ imposta un template per ogni database appena creato. Serve come _modello_ per il server SQL per creare un nuovo database.

Il database _msdb_ viene utilizzato principalmente da SQL Server Management Studio e SQL Server Agent per archiviare attività di sistema come jobs del server SQL, posta, broker di servizi, manutenzione, cronologia di backup del database di utenti e di sistema, informazioni sulla replicazione, e molto altro.

Dal nome del database stesso, possiamo identificare lo scopo del database _tempdb_: questo è accessibile da tutti gli utenti nell’istanza di SQL Server ed è un luogo dove si procede all’archiviazione di tabelle temporanee (globale e locale) e stored procedure temporanee che contengono risultati intermedi durante l’ordinamento o l’elaborazione di query e i cursori.

# Creare un database

Per aggiungere un database alla nostra istanza SQL Server, sarà sufficiente cliccare con il destro sulla voce “Database” nella finestra a sinistra e inserire le informazioni richieste, come mostrato in figura:

![Creazione di un database](https://theredcode.it/img/mssql-create-db.png) _Creazione di un database_

Per il nome del database, scegliere un nome che sia significativo ma non eccessivamente lungo: capiterà molto spesso infatti che si debbano eseguire delle query in cui, oltre a scrivere il nome della tabella, sarà necessario scrivere anche il nome del database!

Oltre al nome, abbiamo la possibilità di scegliere il file che conterrà i nostri **dati** e il file di **log** che conterrà le informazioni relative alle operazioni eseguite all’interno del database. Queste informazioni possono essere lasciate così come sono impostate di default.

![Opzioni di creazione di un database](https://theredcode.it/img/mssql-create-db-opt.png) _Opzioni per la creazione di un database_

Interessante è la funzionalità relativa all’_aumento automatico_ delle dimensioni del database: di base, come mostrato in figura, la dimensione allocata inizialmente è di 8 MB. Una volta che questo spazio sarà stato occupato, seguendo la configurazione di default prevede che vengano allocati 64 MB in più per il database.

Questa opzione può essere gestita in maniera che le dimensioni massime siano limitate a un valore specifico oltre il quale il database non scrive più, oppure, come di default, non abbia alcun limite.

In questa tabella di riepilogo è inoltre specificato il percorso dove i file relativi ai dati del database verranno memorizzati; solitamente, si trovano sotto la cartella di installazione di SQL Server Express sotto la cartella _data_.

![File dei dati memorizzati in SQL Server](https://theredcode.it/img/mssql-data-path.png) _File dei dati memorizzati in SQL Server_

# Risorse utili

- [Documentazione ufficiale](https://docs.microsoft.com/it-it/sql/sql-server/?view=sql-server-ver16&viewFallbackFrom=sqlallproducts-allversions)
- [Basi di Dati](https://amzn.to/3ABUix3)