Esercitazione: Progettare un database relazionale nel database SQL di Azure

Si applica a:Database SQL di Azure

Il database SQL di Azure è un database relazionale distribuito come servizio (DBaaS) in Microsoft Azure. In questa esercitazione apprenderai a:

  • Stabilire la connessione al database
  • Creare tabelle con i comandi T-SQL
  • Eseguire il caricamento bulk dei dati con BCP
  • Eseguire query sui dati con i comandi di T-SQL

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

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 al 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 of the Azure portal, database overview page with the server name highlighted.

  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 visualizzare la sezione Regole del firewall.

    Screenshot of the Azure portal, networking page, showing where to set the server-level IP firewall rule.

  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

I database SQL di Azure sono presenti all'interno di SQL Server logici. È possibile connettersi a SQL server logico master usando un account di accesso, quindi connettersi al database. In alternativa, è possibile connettersi direttamente al database SQL di Azure usando un utente indipendente.

Usare SQL Server Management Studio per connettersi al database SQL di Azure.

  1. Aprire SQL Server Management Studio.

  2. Immettere le informazioni seguenti nella finestra di dialogo Connetti al server. Lasciare tutte le altre opzioni come impostazione predefinita.

    Impostazione Valore suggerito Descrizione
    Tipo di server Motore di database 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.
    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, scegliere Microsoft Entra Assistente cartelle gestite per collegarsi usando Microsoft Entra ID. Per altre informazioni, vedere Configurare e gestire l'autenticazione di Microsoft Entra con Azure SQL.
    Accesso Account amministratore del server Se si usa l'autenticazione di SQL Server, usare l'account specificato durante la creazione del server.
    Password Password per l'account amministratore del server Se si usa l'autenticazione di SQL Server, usare la password specificata durante la creazione del server.

    Screenshot of the connect to an Azure SQL Database logical server server dialog box in SQL Server Management Studio (SSMS).

  3. Selezionare Opzioni nella finestra di dialogo Connetti al server. Nella sezione Connetti al database immettere yourDatabase per connettersi a tale database.

    Screenshot of the options tab of the connect to server dialog box in SQL Server Management Studio (SSMS).

  4. Selezionare Connetti. In SSMS verrà visualizzata la finestra Esplora oggetti.

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

    Screenshot of SQL Server Management Studio (SSMS) showing database objects in object explorer.

  6. 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 tabelle che modellano un sistema sistema di gestione degli studenti per le università usando Transact-SQL:

  • 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.

Nota

È anche possibile usare la Progettazione delle tabelle in SQL Server Management Studio per creare e progettare le tabelle.

Screenshot of the table designer in SQL Server Management Studio (SSMS) showing the table relationships.

  1. Nell'intervallo di query, eseguire la query T-SQL seguente per creare quattro tabelle nel database:

    -- 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
        )
    )
    

    Screenshot from SSMS showing the create tables script has been successfully executed.

  2. In Esplora oggetti, espandere il nodo Tabelle sotto la voce yourDatabase per visualizzare le quattro nuove tabelle create.

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.