Delen via


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 gebruiken we Azure SQL Database. U kunt ook een pooldatabase gebruiken in een elastische pool of een met SQL beheerd exemplaar. Zie de volgende quickstarts voor SQL Managed Instance: quickstart: Azure VM configureren om verbinding te maken met een met Azure SQL beheerd exemplaar en quickstart: Een punt-naar-site-verbinding met een met Azure SQL beheerd exemplaar configureren vanuit on-premises.

Voorwaarden

Aanmelden 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. Deze firewall voorkomt dat externe toepassingen en hulpprogramma's verbinding maken met de server en databases op de server, tenzij een firewallregel het IP-adres via de firewall toestaat. Als u externe connectiviteit met uw database wilt inschakelen, moet u eerst een IP-firewallregel toevoegen voor uw IP-adres (of IP-adresbereik). Volg deze stappen om een IP-firewallregel op serverniveau te maken.

Belangrijk

Azure SQL Database communiceert via poort 1433. Als u verbinding probeert te maken met deze service vanuit een bedrijfsnetwerk, is uitgaand verkeer via poort 1433 mogelijk niet toegestaan door de firewall van uw netwerk. Zo ja, dan kunt u geen verbinding maken met uw database, tenzij de beheerder poort 1433 opent.

  1. Nadat de implementatie is voltooid, selecteert u SQL-databases in het menu van Azure Portal of zoekt en selecteert u SQL-databases op een willekeurige pagina.

  2. Selecteer yourDatabase op de pagina SQL-databases. De overzichtspagina voor uw database wordt geopend, met de volledig gekwalificeerde servernaam (zoals contosodatabaseserver01.database.windows.net) en opties voor verdere configuratie.

    Schermopname van Azure Portal, pagina databaseoverzicht met de servernaam gemarkeerd.

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

  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.

    Schermopname van Azure Portal, netwerkpagina, waarin wordt weergegeven waar de IP-firewallregel op serverniveau moet worden ingesteld.

  5. Selecteer Voeg je client-IPv4 toe op de werkbalk om uw huidige IP-adres toe te voegen aan een nieuwe IP-firewallregel. Een IP-firewallregel kan poort 1433 openen voor één IP-adres of een bereik van IP-adressen.

  6. Selecteer opslaan. Er wordt een IP-firewallregel op serverniveau gemaakt voor uw huidige IP-adres dat poort 1433 op de server opent.

  7. Selecteer OK- en sluit vervolgens de pagina firewallinstellingen.

Uw IP-adres kan nu via de IP-firewall worden doorgegeven. U kunt nu verbinding maken met uw database met behulp van SQL Server Management Studio of een ander hulpprogramma van uw keuze. Zorg ervoor dat u het serverbeheerdersaccount gebruikt dat u eerder hebt gemaakt.

Belangrijk

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

Verbinding maken met de database

Azure SQL-databases bevinden zich binnen logische SQL-servers. Kan verbinding maken met de master van de logische SQL-server met behulp van een aanmelding en vervolgens verbinding maken met uw database. Of, door gebruik te maken van een gebruiker die inis ingesloten, 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 met 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 Server-verificatie Gebruik SQL Server-verificatie om een gebruikersnaam en wachtwoord in te voeren.
    Microsoft Entra-verificatie Als u de Microsoft Entra-serverbeheerder bent, kiest u Microsoft Entra MFA-om verbinding te maken met behulp van Microsoft Entra ID. Zie Microsoft Entra-verificatie configureren en beheren met Azure SQLvoor meer informatie.
    Inloggen Het beheerdersaccount van de server Als u SQL Server-verificatie gebruikt, is het account dat u hebt opgegeven toen u de server maakte.
    wachtwoord Het wachtwoord voor uw serverbeheerdersaccount Als u SQL Server-verificatie gebruikt, is het wachtwoord dat u hebt opgegeven bij het aanmaken van de server van toepassing.

    Schermopname van het dialoogvenster Verbinding maken met server in SQL Server Management Studio (SSMS).

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

    Schermopname van het tabblad Opties van het dialoogvenster Verbinding maken met server in SQL Server Management Studio (SSMS).

  4. Selecteer Maak verbinding. Het venster Objectverkenner wordt geopend in SSMS.

  5. Vouw in ObjectverkennerDatabases uit en vouw vervolgens yourDatabase uit om de objecten in de voorbeelddatabase weer te geven.

    Schermopname van SQL Server Management Studio (SSMS) met databaseobjecten in objectverkenner.

  6. Klik in Objectverkennermet de rechtermuisknop op jouwDatabase 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

In het volgende diagram ziet u hoe deze tabellen aan elkaar zijn gerelateerd. Sommige van deze tabellen verwijzen naar kolommen in andere tabellen. De Student tabel verwijst bijvoorbeeld naar de kolom PersonId van de Person tabel. Bekijk het diagram om te begrijpen hoe de tabellen in deze zelfstudie zijn gerelateerd aan elkaar. Zie Een genormaliseerde database ontwerpenvoor een uitgebreid overzicht van het maken van effectieve genormaliseerde databasetabellen. Zie Gegevenstypenvoor meer informatie over het kiezen van gegevenstypen. Standaard worden tabellen gemaakt in het standaardschema dbo, wat betekent dat de tweedelige naam van een tabel bijvoorbeeld wordt dbo.Person.

Notitie

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

Schermopname van de tabelontwerper in SQL Server Management Studio (SSMS) met de tabelrelaties.

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

    Schermopname van SSMS waarin het script voor het maken van tabellen is uitgevoerd.

  2. Vouw het knooppunt Tabellen uit onder yourDatabase- in de Objectverkenner om de vier nieuwe tabellen te zien die u hebt gemaakt.

Gegevens in de tabellen laden

  1. Maak een map met de naam sampleData op uw lokale werkstation Download map 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 de waarden voor server, database, gebruikeren wachtwoord worden vervangen 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.

Query's uitvoeren op gegevens

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

Suggestie

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

Fooi

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 query's worden uitgevoerd op een Azure SQL Database-, inclusief het maken van een eenvoudige database.

Volgende stap

Ga naar de volgende zelfstudie voor meer informatie over het ontwerpen van een database met Visual Studio en C#.