Esercitazione: Progettare un database relazionale nel database SQL di Azure usando Azure Data Studio (ADS)

Si applica a: Database SQL di Azure

Il database SQL di Azure è un database relazionale distribuito come servizio in Microsoft Cloud (Azure). In questa esercitazione viene illustrato come usare il portale di Azure e Azure Data Studio (ADS) per:

  • Connettersi al database con Azure Data Studio
  • Creare tabelle con Azure Data Studio
  • Eseguire il caricamento bulk dei dati con BCP
  • Eseguire query di dati con Azure Data Studio

Nota

Per le finalità di questa esercitazione viene usato il database SQL di Azure. È anche possibile usare un database in un pool elastico o un'istanza gestita di SQL. Per la connettività a un’istanza gestita di SQL, consultare i seguenti avvii rapidi per l’istanza gestita di SQL: Avvio rapido: configurare una VM di Azure per connettersi a un’istanza gestita di SQL di Azure e Avvio rapido: configurare una connessione da punto a sito a un’istanza gestita di SQL di Azure da locale.

Prerequisiti

Per completare questa esercitazione, assicurarsi di aver installato quanto segue:

Accedere al portale di Azure

Accedere al portale di Azure.

Creare una regola del firewall IP a livello di server

Database SQL di Azure crea un firewall IP a livello di server. Questo impedisce alle applicazioni e agli strumenti esterni di connettersi al server e ai database nel server a meno che una regola del firewall non consenta allo specifico indirizzo IP di superare il firewall. Per abilitare la connettività esterna al database, è prima di tutto necessario aggiungere una regola del firewall IP per l'indirizzo IP o l'intervallo di indirizzi IP. Per creare una regola del firewall IP a livello di server, seguire questa procedura.

Importante

Il database SQL di Azure comunica sulla porta 1433. Se si intende connettersi a questo servizio da una rete aziendale, il firewall della rete potrebbe non consentire il traffico in uscita sulla porta 1433. In questo caso, non è possibile connettersi al database a meno che l'amministratore non apra la porta 1433.

  1. Al termine della distribuzione, selezionare database SQL dal menu del portale di Azure oppure cercare e selezionare database SQL da qualsiasi pagina.

  2. Selezionare yourDatabase nella pagina database SQL. Verrà visualizzata la pagina di panoramica del database, che mostra il nome completo del server, ad esempio contosodatabaseserver01.database.windows.net, e offre altre opzioni per la configurazione.

    Screenshot della pagina di panoramica de database SQL nel portale di Azure con il nome del server evidenziato.

  3. Copiare il nome completo del server per usarlo per la connessione al server e ai database da SQL Server Management Studio.

  4. Selezionare Rete in IMPOSTAZIONI. Scegliere la scheda Accesso pubblico e quindi selezionare Reti selezionate in Accesso alla rete pubblica per mostrare la sezione Regole del firewall.

    Screenshot della pagina Rete del portale di Azure che mostra la regola del firewall IP a livello di server.

  5. Selezionare Aggiungi IPv4 client sulla barra degli strumenti per aggiungere l'indirizzo IP corrente a una nuova regola del firewall IP. Una regola del firewall per gli indirizzi IP può aprire la porta 1433 per un singolo indirizzo IP o un intervallo di indirizzi IP.

  6. Seleziona Salva. Viene creata una regola del firewall IP a livello di server per l'indirizzo IP corrente, che apre la porta 1433 nel server.

  7. Selezionare OK e quindi chiudere la pagina Impostazioni del firewall.

L'indirizzo IP può ora superare il firewall per gli indirizzi IP. È quindi possibile connettersi al database usando SQL Server Management Studio o un altro strumento di propria scelta. Assicurarsi di usare l'account amministratore del server creato in precedenza.

Importante

Per impostazione predefinita, l'accesso attraverso il firewall per gli indirizzi IP di Database SQL è abilitato per tutti i servizi di Azure. Selezionare NO in questa pagina per disabilitare tutti i servizi di Azure.

Stabilire la connessione al database

Usare Azure Data Studio per stabilire una connessione al database.

  1. Aprire Azure Data Studio.

  2. In Nuova connessione su Esplora oggetti per creare una nuova connessione e immettere le informazioni seguenti. Lasciare tutte le altre opzioni come impostazione predefinita.

    Impostazione Valore suggerito Descrizione
    Tipo di connessione Microsoft SQL Server Questo valore è obbligatorio.
    Nome server Nome completo del server logico del database SQL di Azure Ad esempio: your_logical_azure_sql_server.database.windows.net.
    Tipo di autenticazione Autenticazione di SQL Server Usare l'autenticazione di SQL Server per immettere nome utente e password.
    Autenticazione Microsoft Entra Se si è l’amministratore del server Microsoft Entra, per connettersi usando Microsoft Entra ID scegliere Microsoft Entra ID - Universale con supporto per assistente cartelle gestite. Per altre informazioni, vedere Configurare e gestire l'autenticazione di Microsoft Entra con Azure SQL.
    Accesso Account amministratore del server Account specificato quando è stato creato il server.
    Password Password per l'account amministratore del server Password specificata quando è stato creato il server.

    Screenshot della finestra di dialogo Connessione in ADS.

  3. Selezionare Connetti. In ADS si aprirà la finestra Esplora oggetti.

  4. In Esplora oggetti espandere Database e quindi yourDatabase per visualizzare gli oggetti presenti nel database di esempio.

  5. In Esplora oggetti fare clic con il pulsante destro del mouse su yourDatabase e scegliere Nuova query. Viene visualizzata una finestra di query vuota, connessa al database.

Creare tabelle nel database

Creare uno schema del database con quattro tabelle che modellano un sistema di gestione degli studenti per le università usando la Progettazione tabelle su Azure Data Studio:

  • Person
  • Course
  • Student
  • Credit

Nel diagramma seguente viene illustrato come queste tabelle sono correlate tra loro. Alcune di queste tabelle fanno riferimento a delle colonne in altre tabelle. Per esempio, la tabella Student fa riferimento alla colonna PersonId della tabella Person. Studiare il diagramma per comprendere come sono correlate tra loro le tabelle in questa esercitazione. Per informazioni approfondite su come fare a creare tabelle di database normalizzate efficaci, consultare Progettazione di un database normalizzato. Per informazioni sulla scelta dei tipi di dati, vedere Tipi di dati. Per impostazione predefinita, le tabelle vengono create nello schema dbo, il che significa che il nome a due parti di una tabella sarà, ad esempio, dbo.Person.

Screenshot delle Relazioni tabelle.

  1. In Esplora oggetti selezionare yourDatabase che espande il menu a discesa di tutti i processi archiviati in questo database, fare clic con il pulsante destro del mouse sulla cartella Tabelle, scegliere Nuova tabella. Si aprirà una finestra Progettazione tabelle vuota collegata al database.

  2. Usare l'interfaccia progettazione tabelle per creare queste quattro tabelle nel database. Per altre informazioni sulla creazione di tabelle usando Progettazione tabelle, consultare la documentazione di Progettazione tabelle:

    • Tabella Persone

      Screenshot della tabella Persona in Progettazione tabelle.

      Assicurarsi di configurare le impostazioni della chiave primaria per la tabella Persone come illustrato di seguito:

      Screenshot della tabella Persona in Progettazione tabelle che mostra le impostazioni della chiave primaria.

    • Tabella Studenti

      Screenshot della tabella Studente in Progettazione tabelle.

      Assicurarsi di configurare le impostazioni della chiave primaria per la tabella Studenti come illustrato di seguito: Screenshot della tabella Studente in Progettazione tabelle che mostra le impostazioni della chiave primaria.

      Assicurarsi di configurare le impostazioni della chiave esterna per la tabella Studenti come illustrato di seguito: Screenshot della tabella Studente in Progettazione tabelle che mostra le impostazioni della chiave esterna.

    • Tabella Corsi

      Screenshot della tabella Corso in Progettazione tabelle.

      Assicurarsi di configurare le impostazioni della chiave primaria per la tabella Corsi come illustrato di seguito: Screenshot della tabella Corso in Progettazione tabelle che mostra le impostazioni della chiave primaria.

    • Tabella Riconoscimenti

      Screenshot della tabella Credito in Progettazione tabelle.

      Assicurarsi di configurare le impostazioni della chiave esterna per la tabella Riconoscimenti come illustrato di seguito: Screenshot della tabella Credito in Progettazione tabelle che mostra le impostazioni della chiave esterna.

      Assicurarsi di configurare le impostazioni de vincolo CHECK per la tabella Riconoscimenti come illustrato di seguito: Screenshot della tabella Credito in Progettazione tabelle che mostra le impostazioni del vincolo Check.

    Se si preferisce usare T-SQL per creare le quattro nuove tabelle, ecco il T-SQL da eseguire in un nuovo intervallo di query.

    -- Create Person table
    CREATE TABLE Person
    (
        PersonId INT IDENTITY PRIMARY KEY,
        FirstName NVARCHAR(128) NOT NULL,
        MiddelInitial NVARCHAR(10),
        LastName NVARCHAR(128) NOT NULL,
        DateOfBirth DATE NOT NULL
    )
    
    -- Create Student table
    CREATE TABLE Student
    (
        StudentId INT IDENTITY PRIMARY KEY,
        PersonId INT REFERENCES Person (PersonId),
        Email NVARCHAR(256)
    )
    
    -- Create Course table
    CREATE TABLE Course
    (
        CourseId INT IDENTITY PRIMARY KEY,
        Name NVARCHAR(50) NOT NULL,
        Teacher NVARCHAR(256) NOT NULL
    )
    
    -- Create Credit table
    CREATE TABLE Credit
    (
        StudentId INT REFERENCES Student (StudentId),
        CourseId INT REFERENCES Course (CourseId),
        Grade DECIMAL(5,2) CHECK (Grade <= 100.00),
        Attempt TINYINT,
        CONSTRAINT [UQ_studentgrades] UNIQUE CLUSTERED
        (
            StudentId, CourseId, Grade, Attempt
        )
    )
    
  3. In Esplora oggetti, espandere il nodo Tabelle sotto la voce yourDatabase per visualizzare le quattro nuove tabelle create.

    Screenshot delle tabelle create in ADS.

Caricare i dati nelle tabelle

  1. Creare una cartella chiamata sampleData nella cartella Download della workstation locale per archiviare dati campione per il database. Ad esempio: c:\Users\<your user name>\Downloads.

  2. Fare clic con il pulsante destro del mouse sui collegamenti seguenti e salvare i dati nella cartella sampleData.

  3. Aprire una nuova finestra del prompt dei comandi Windows e spostarsi nella cartella sampleData. Ad esempio: cd c:\Users\<your user name>\Downloads.

  4. Eseguire i seguenti comandi bcp per inserire i dati campione nelle tabelle, sostituendo i valori per server, database, utenti e password con i valori dell'ambiente in uso.

    bcp Course in SampleCourseData -S <server>.database.windows.net -d <database> -U <user> -P <password> -q -c -t ","
    bcp Person in SamplePersonData -S <server>.database.windows.net -d <database> -U <user> -P <password> -q -c -t ","
    bcp Student in SampleStudentData -S <server>.database.windows.net -d <database> -U <user> -P <password> -q -c -t ","
    bcp Credit in SampleCreditData -S <server>.database.windows.net -d <database> -U <user> -P <password> -q -c -t ","
    

A questo punto, sono stati caricati i dati di esempio nelle tabelle create in precedenza.

Eseguire query sui dati

Eseguire le query T-SQL seguenti per riprendere le informazioni dalle tabelle del database.

La prima query crea un join di tutte le quattro tabelle per trovare tutti gli studenti che hanno "Dominick Pope" come insegnante e un voto superiore al 75%. In una intervallo di query, eseguire la query T-SQL di seguito:

-- Find the students taught by Dominick Pope who have a grade higher than 75%
SELECT  person.FirstName, person.LastName, course.Name, credit.Grade
FROM  Person AS person
    INNER JOIN Student AS student ON person.PersonId = student.PersonId
    INNER JOIN Credit AS credit ON student.StudentId = credit.StudentId
    INNER JOIN Course AS course ON credit.CourseId = course.courseId
WHERE course.Teacher = 'Dominick Pope'
    AND Grade > 75;

questa query crea un join di tutte le quattro tabelle e trova i corsi a cui è stato iscritto "Noe Coleman". In una intervallo di query, eseguire la query T-SQL di seguito:

-- Find all the courses in which Noe Coleman has ever enrolled
SELECT  course.Name, course.Teacher, credit.Grade
FROM  Course AS course
    INNER JOIN Credit AS credit ON credit.CourseId = course.CourseId
    INNER JOIN Student AS student ON student.StudentId = credit.StudentId
    INNER JOIN Person AS person ON person.PersonId = student.PersonId
WHERE person.FirstName = 'Noe'
    AND person.LastName = 'Coleman';

Suggerimento

Per altre informazioni sulla scrittura di query SQL, consultare Esercitazione: Scrivere istruzioni Transact-SQL.

Suggerimento

È tutto pronto per iniziare a sviluppare un'applicazione .NET? Questo modulo di apprendimento gratuito mostra come fare a Sviluppare e configurare un'applicazione ASP.NET che esegue query su un database SQL di Azure, inclusa la creazione di un database semplice.

Passaggio successivo

Per informazioni sulla progettazione di un database con Visual Studio e C#, passare all'esercitazione successiva.