Zelfstudie: Een relationele database ontwerpen in Azure SQL Database

Van toepassing op: Azure SQL Database

Azure SQL Database is een relationele database-as-a-service (DBaaS) in Microsoft Azure. In deze zelfstudie leert u het volgende:

  • Verbinding maken met de database
  • Tabellen maken met T-SQL-opdrachten
  • Gegevens bulksgewijs laden met BCP
  • Query's uitvoeren op gegevens met T-SQL-opdrachten

Notitie

Voor deze zelfstudie wordt gebruikgemaakt van Azure SQL Database. U kunt ook een gepoolde database in een elastische pool of een met SQL beheerd exemplaar gebruiken. Zie de volgende quickstarts voor SQL Managed Instance: Quickstart: Azure VM configureren om verbinding te maken met een beheerd exemplaar van Azure SQL en quickstart: Een punt-naar-site-verbinding met een azure SQL Managed Instance configureren vanuit on-premises.

Vereisten

Meld u aan bij Azure Portal

Meld u aan bij de Azure-portal.

Een IP-firewallregel op serverniveau maken

Azure SQL Database maakt een IP-firewall op serverniveau. De firewall voorkomt dat externe toepassingen en hulpprogramma's verbinding maken met de server of databases op de server, tenzij een firewallregel hun IP via de firewall toestaat. Als u externe connectiviteit voor uw database wilt inschakelen, moet u eerst een IP-firewallregel voor uw IP-adres (of IP-adresbereik) toevoegen. Volg deze stappen als u een IP-firewallregel op serverniveau wilt maken.

Belangrijk

Azure SQL Database communiceert via poort 1433. Als u verbinding met deze service probeert te maken vanuit een bedrijfsnetwerk, wordt uitgaand verkeer via poort 1433 mogelijk niet toegestaan door de firewall van uw netwerk. In dat geval kunt u geen verbinding maken met uw database, tenzij de beheerder poort 1433 openstelt.

  1. Selecteer nadat de implementatie is voltooid SQL databases in het Azure Portal-menu of zoek ernaar en selecteer SQL databases in een andere pagina.

  2. Selecteer yourDatabase in de pagina SQL databases. De overzichtspagina voor de database wordt geopend, met de volledig gekwalificeerde Servernaam (bijvoorbeeld contosodatabaseserver01.database.windows.net) en opties voor verdere configuratie.

    Screenshot of the Azure portal, database overview page with the server name highlighted.

  3. Kopieer vanuit SQL Server Management Studio deze volledig gekwalificeerde servernaam om verbinding te maken met de server en de databases.

  4. Selecteer Netwerken onder Instellingen. Kies het tabblad Openbare toegang en selecteer vervolgens Geselecteerde netwerken onder Openbare netwerktoegang om de sectie Firewallregels weer te geven .

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

  5. Selecteer Uw client-IPv4 toevoegen op de werkbalk om uw huidige IP-adres toe te voegen aan een nieuwe IP-firewallregel. Een IP-firewallregel kan poort 1433 openen voor een afzonderlijk IP-adres of voor een aantal IP-adressen.

  6. Selecteer Opslaan. Er wordt een IP-firewallregel op serverniveau gemaakt voor uw huidige IP-adres waarbij poort 1433 wordt geopend op de server.

  7. Selecteer OK en sluit de pagina Firewallinstellingen.

Uw IP-adres wordt niet meer geblokkeerd via de IP-firewall. U kunt nu verbinding maken met uw database met SQL Server Management Studio of een ander hulpprogramma naar keuze. Gebruik het beheerdersaccount voor de server dat u eerder hebt gemaakt.

Belangrijk

Voor alle Azure-services is toegang via de IP-firewall van SQL Database standaard ingeschakeld. Kies UIT op deze pagina om dit voor alle Azure-services uit te schakelen.

Verbinding maken met de database

Azure SQL-databases bestaan in logische SQL-servers. Kan verbinding maken met de logische SQL-server master via een aanmelding en vervolgens verbinding maken met uw database. Of als u een ingesloten gebruiker gebruikt, kunt u rechtstreeks verbinding maken met uw Azure SQL-database.

Gebruik SQL Server Management Studio om verbinding te maken met uw Azure SQL-database.

  1. Open SQL Server Management Studio.

  2. Voer in het dialoogvenster Verbinding maken server de volgende gegevens in. Laat andere opties standaard staan.

    Instelling Voorgestelde waarde Beschrijving
    Servertype Database-engine Deze waarde is vereist.
    Servernaam De volledig gekwalificeerde naam van de logische Azure SQL Database-server Bijvoorbeeld: your_logical_azure_sql_server.database.windows.net.
    Verificatie SQL-serververificatie Gebruik SQL Server-verificatie om een gebruikersnaam en wachtwoord in te voeren.
    Microsoft Entra-verificatie Als u verbinding wilt maken met behulp van Microsoft Entra ID, kiest u Microsoft Entra MFA als u de Microsoft Entra-serverbeheerder bent. Zie Microsoft Entra-verificatie configureren en beheren met Azure SQL voor meer informatie.
    Aanmelding Het beheerdersaccount voor de server Als u SQL Server-verificatie gebruikt, is het account dat u hebt opgegeven toen u de server maakte.
    Wachtwoord Het wachtwoord voor het beheerdersaccount voor de server Als u SQL Server-verificatie gebruikt, wordt het wachtwoord dat u hebt opgegeven bij het maken van de server.

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

  3. Selecteer Opties in het dialoogvenster Verbinding maken naar server. Voer in de sectie Verbinding maken met databaseyourDatabase in om verbinding te maken met deze database.

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

  4. Selecteer Verbinding maken. Het venster Objectverkenner wordt geopend in SSMS.

  5. In Objectverkenner vouwt u Databases en daarna yourDatabase uit om de objecten in de voorbeelddatabase weer te geven.

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

  6. Klik in Objectverkenner met de rechtermuisknop op yourDatabase en selecteer Nieuwe query. Er wordt een leeg queryvenster geopend dat is verbonden met uw database.

Tabellen maken in uw database

Maak vier tabellen die een studentbeheersysteem modelleren voor universiteiten met behulp van Transact-SQL:

  • Person
  • Course
  • Student
  • Credit

Het volgende diagram laat zien hoe deze tabellen aan elkaar zijn gerelateerd. Sommige van deze tabellen verwijzen naar kolommen in andere tabellen. De tabel verwijst bijvoorbeeld Student naar de PersonId kolom van de Person tabel. Bekijk het diagram goed om te begrijpen hoe de tabellen in deze zelfstudie aan elkaar zijn gerelateerd. Zie Een genormaliseerde database ontwerpen voor uitgebreide informatie over het maken van effectieve genormaliseerde databasetabellen. Zie Gegevenstypen voor informatie over het kiezen van gegevenstypen. Standaard worden tabellen gemaakt in het standaardschema dbo , wat betekent dat de tweedelige naam van een tabel bijvoorbeeld is dbo.Person.

Notitie

U kunt ook de functie voor het ontwerpen van tabellen in SQL Server Management Studio gebruiken om tabellen te maken en ontwerpen.

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

  1. Voer in het queryvenster de volgende T-SQL-query uit om vier tabellen in uw database te maken:

    -- 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. Vouw het knooppunt Tabellen onder uwDatabase uit in het Objectverkenner om de vier nieuwe tabellen te zien die u hebt gemaakt.

Gegevens laden in de tabellen

  1. Maak een map met de naam sampleData in de map Downloads van uw lokale werkstation om voorbeeldgegevens voor uw database op te slaan. Bijvoorbeeld: c:\Users\<your user name>\Downloads.

  2. Klik met de rechtermuisknop op de volgende koppelingen en sla deze op in de map sampleData.

  3. Open een nieuw Windows-opdrachtpromptvenster en navigeer naar de map sampleData . Bijvoorbeeld: cd c:\Users\<your user name>\Downloads.

  4. Voer de volgende bcp opdrachten uit om voorbeeldgegevens in te voegen in de tabellen, waarbij u de waarden voor server, database, gebruiker en wachtwoord vervangt door de waarden voor uw omgeving.

    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 ","
    

U hebt nu voorbeeldgegevens geladen in de tabellen die u eerder hebt gemaakt.

Querygegevens

Voer de volgende T-SQL-query's uit om informatie op te halen uit de databasetabellen.

Met deze eerste query worden alle vier de tabellen samengevoegd om de studenten te vinden die zijn geleerd door 'Dominick Pope' die een cijfer hoger dan 75% hebben. Voer in een queryvenster de volgende T-SQL-query uit:

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

Met deze query worden alle vier de tabellen samengevoegd en worden de cursussen gevonden waarin Noe Coleman ooit is ingeschreven. Voer in een queryvenster de volgende T-SQL-query uit:

-- 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';

Tip

Ga naar Zelfstudie: Transact-SQL-instructies schrijven voor meer informatie over het schrijven van SQL-query's.

Tip

Bent u klaar om te beginnen met het ontwikkelen van een .NET-toepassing? Deze gratis Learn-module laat zien hoe u een ASP.NET-toepassing ontwikkelt en configureert waarmee een query wordt uitgevoerd op een Azure SQL Database, inclusief het maken van een eenvoudige database.

Volgende stap

Ga naar de volgende zelfstudie als u alles wilt weten over het ontwerpen van een database met Visual Studio en C#.