Sdílet prostřednictvím


Kurz: Návrh relační databáze ve službě Azure SQL Database

Platí pro: Azure SQL Database

Azure SQL Database je relační databáze jako služba (DBaaS) v Microsoft Azure. V tomto kurzu se naučíte:

  • Připojte se k databázi.
  • Vytváření tabulek pomocí příkazů T-SQL
  • Hromadně načítat data pomocí BCP
  • Dotazování dat pomocí příkazů T-SQL

Poznámka:

Pro účely tohoto kurzu používáme Službu Azure SQL Database. Můžete také použít databázi ve fondu v elastickém fondu nebo ve spravované instanci SQL. Informace o připojení ke spravované instanci SQL najdete v těchto rychlých startech ke službě SQL Managed Instance: Rychlý start: Konfigurace virtuálního počítače Azure pro připojení ke spravované instanci Azure SQL a rychlý start: Konfigurace připojení typu point-to-site ke spravované instanci Azure SQL z místního prostředí.

Požadavky

Přihlaste se k portálu Azure Portal.

Přihlaste se k portálu Azure.

Vytvoření pravidla brány firewall protokolu IP na úrovni serveru

Azure SQL Database vytvoří bránu firewall protokolu IP na úrovni serveru. Tato brána firewall brání externím aplikacím a nástrojům v připojení k serveru a jakékoli databáze na serveru, pokud pravidlo brány firewall neumožňuje jejich IP adresu prostřednictvím brány firewall. Pokud chcete povolit externí připojení k databázi, musíte nejprve přidat pravidlo brány firewall protokolu IP pro vaši IP adresu (nebo rozsah IP adres). Následujícím postupem vytvoříte pravidlo brány firewall protokolu IP na úrovni serveru.

Důležité

Azure SQL Database používá ke komunikaci port 1433. Pokud se pokoušíte připojit k této službě z podnikové sítě, nemusí brána firewall vaší sítě povolit odchozí provoz přes port 1433. Pokud ano, nemůžete se k databázi připojit, pokud správce neotevře port 1433.

  1. Po dokončení nasazení vyberte databáze SQL z nabídky webu Azure Portal nebo vyhledejte a vyberte databáze SQL z libovolné stránky.

  2. Vyberte databáziDatabase na stránce databáze SQL. Otevře se stránka přehledu pro vaši databázi s plně kvalifikovaným názvem serveru (například contosodatabaseserver01.database.windows.net) a poskytuje možnosti pro další konfiguraci.

    Snímek obrazovky webu Azure Portal se stránkou přehledu databáze se zvýrazněným názvem serveru

  3. Zkopírujte tento plně kvalifikovaný název serveru pro připojení k serveru a databázím z aplikace SQL Server Management Studio.

  4. V části Nastavení vyberte Sítě. Zvolte kartu Veřejný přístup a potom v části Přístup k veřejné síti vyberte Vybrané sítě. Zobrazí se část Pravidla brány firewall.

    Snímek obrazovky webu Azure Portal se stránkou sítě zobrazující, kde nastavit pravidlo brány firewall protokolu IP na úrovni serveru

  5. Na panelu nástrojů vyberte Přidat protokol IPv4 klienta a přidejte aktuální IP adresu do nového pravidla brány firewall protokolu IP. Pravidlo brány firewall protokolu IP může otevřít port 1433 pro jednu IP adresu nebo rozsah IP adres.

  6. Zvolte Uložit. Vytvoří se pravidlo brány firewall protokolu IP na úrovni serveru pro vaši aktuální IP adresu, která otevírá port 1433 na serveru.

  7. Vyberte OK a pak zavřete stránku nastavení brány firewall.

Vaše IP adresa teď může projít bránou firewall protokolu IP. K databázi se teď můžete připojit pomocí aplikace SQL Server Management Studio nebo jiného nástroje podle vašeho výběru. Nezapomeňte použít účet správce serveru, který jste vytvořili dříve.

Důležité

Ve výchozím nastavení je přístup přes bránu firewall protokolu IP služby SQL Database povolený pro všechny služby Azure. Výběrem možnosti VYPNUTO na této stránce zakážete všechny služby Azure.

Připojte se k databázi.

Databáze Azure SQL existují uvnitř logických SQL serverů. Může se připojit k logickému SQL serveru master pomocí přihlášení a pak se připojit k vaší databázi. Nebo se pomocí uživatele s omezením můžete připojit přímo ke své databázi Azure SQL.

Pomocí aplikace SQL Server Management Studio se připojte k databázi Azure SQL.

  1. Otevřete sadu SQL Server Management Studio.

  2. V dialogovém okně Připojit k serveru zadejte následující informace. Ostatní možnosti ponechte jako výchozí.

    Nastavení Navrhovaná hodnota Popis
    Typ serveru Databázový stroj Tato hodnota je povinná.
    Název serveru Plně kvalifikovaný název logického serveru Azure SQL Database Například your_logical_azure_sql_server.database.windows.net.
    Authentication Ověřování serveru SQL Server K zadání uživatelského jména a hesla použijte ověřování SQL Serveru.
    Ověřování Microsoft Entra Pokud se chcete připojit pomocí MICROSOFT Entra ID, pokud jste správcem serveru Microsoft Entra, zvolte Microsoft Entra MFA. Další informace najdete v tématu Konfigurace a správa ověřování Microsoft Entra pro Azure SQL.
    Přihlášení Účet správce serveru Pokud používáte ověřování SQL Serveru, účet, který jste zadali při vytváření serveru.
    Heslo Heslo pro účet správce serveru Pokud používáte ověřování SQL Serveru, heslo, které jste zadali při vytváření serveru.

    Snímek obrazovky s dialogovým oknem pro připojení k logickému serveru služby Azure SQL Database v aplikaci SQL Server Management Studio (SSMS).

  3. V dialogovém okně Připojit k serveru vyberte Možnosti. V části Připojit k databázi zadejte databázi a připojte se k této databázi.

    Snímek obrazovky s kartou možností dialogového okna Připojit k serveru v aplikaci SQL Server Management Studio (SSMS).

  4. Vyberte Připojit. Otevře se okno Průzkumník objektů v aplikaci SSMS.

  5. V Průzkumník objektů rozbalte databáze a potom rozbalte databáziDatabase, abyste zobrazili objekty v ukázkové databázi.

    Snímek obrazovky aplikace SQL Server Management Studio (SSMS) zobrazující databázové objekty v Průzkumníku objektů

  6. V Průzkumník objektů klikněte pravým tlačítkem na databáziDatabase a vyberte Nový dotaz. Otevře se prázdné okno dotazu připojené k vaší databázi.

Vytváření tabulek v databázi

Vytvořte čtyři tabulky, které modeluje systém správy studentů pro univerzity pomocí jazyka Transact-SQL:

  • Person
  • Course
  • Student
  • Credit

Následující diagram znázorňuje, jak spolu tyto tabulky vzájemně souvisejí. Některé z těchto tabulek odkazují na sloupce v jiných tabulkách. Například Student tabulka odkazuje na PersonId sloupec Person tabulky. Prohlédněte si diagram, abyste pochopili, jak spolu tabulky v tomto kurzu souvisejí. Podrobné informace o vytváření efektivních normalizovaných databázových tabulek najdete v tématu Návrh normalizované databáze. Informace o výběru datových typů najdete v tématu Datové typy. Ve výchozím nastavení se tabulky vytvářejí ve výchozím dbo schématu, což znamená, že název tabulky bude dbo.Persondvoudílný, například.

Poznámka:

Tabulky můžete také vytvářet a navrhovat pomocí Návrháře tabulky v aplikaci SQL Server Management Studio.

Snímek obrazovky návrháře tabulek v aplikaci SQL Server Management Studio (SSMS) zobrazující relace mezi tabulkami

  1. V okně dotazu spusťte následující dotaz T-SQL a vytvořte v databázi čtyři tabulky:

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

    Snímek obrazovky SSMS znázorňující úspěšné spuštění skriptu pro vytvoření tabulek

  2. Rozbalte uzel Tabulky v databáziDatabase v Průzkumník objektů zobrazte čtyři nové tabulky, které jste vytvořili.

Načtení dat do tabulek

  1. Vytvořte složku s názvem sampleData v místní složce stažené pracovní stanice pro ukládání ukázkových dat pro vaši databázi. Například c:\Users\<your user name>\Downloads.

  2. Klikněte pravým tlačítkem myši na následující odkazy a uložte je do složky sampleData .

  3. Otevřete nové okno příkazového řádku windows a přejděte do složky sampleData . Například cd c:\Users\<your user name>\Downloads.

  4. Spuštěním následujících bcp příkazů vložte ukázková data do tabulek a nahraďte hodnoty pro server, databázi, uživatele a heslo hodnotami pro vaše prostředí.

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

Teď jste načetli ukázková data do tabulek, které jste předtím vytvořili.

Zadávání dotazů na data

Spuštěním následujících dotazů T-SQL načtěte informace z databázových tabulek.

Tento první dotaz spojí všechny čtyři tabulky a najde studenty, které učí "Dominick Pope", kteří mají známku vyšší než 75 %. V okně dotazu spusťte následující dotaz T-SQL:

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

Tento dotaz spojí všechny čtyři tabulky a najde kurzy, ve kterých se kdy zaregistroval Noe Coleman. V okně dotazu spusťte následující dotaz T-SQL:

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

Další informace o psaní dotazů SQL najdete v kurzu: Psaní příkazů jazyka Transact-SQL.

Tip

Jste připravení začít vyvíjet aplikaci .NET? V tomto bezplatném modulu Learn se dozvíte, jak vyvíjet a konfigurovat ASP.NET aplikaci, která dotazuje službu Azure SQL Database, včetně vytvoření jednoduché databáze.

Další krok

V následujícím kurzu se dozvíte, jak navrhnout databázi pomocí sady Visual Studio a jazyka C#.