Oktatóanyag: Relációs adatbázis tervezése az Azure SQL Database-ben

A következőre vonatkozik: Azure SQL Database

Az Azure SQL Database egy szolgáltatásként nyújtott relációs adatbázis (DBaaS) a Microsoft Azure-ban. Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Csatlakozás az adatbázishoz
  • Táblák létrehozása T-SQL-parancsokkal
  • Adatok kötegelt betöltése a BCP használatával
  • Adatok lekérdezése T-SQL-parancsokkal

Feljegyzés

Ebben az oktatóanyagban az Azure SQL Database-t használjuk. Készletezett adatbázist is használhat rugalmas készletben vagy felügyelt SQL-példányban. Felügyelt SQL-példányhoz való csatlakozáshoz tekintse meg a felügyelt SQL-példányok gyorsútmutatóit: Rövid útmutató: Azure-beli virtuális gép konfigurálása felügyelt Azure SQL-példányhoz való csatlakozáshoz és rövid útmutató: Pont–hely kapcsolat konfigurálása felügyelt Azure SQL-példányhoz a helyszínen.

Előfeltételek

Jelentkezzen be az Azure Portalra

Jelentkezzen be az Azure Portalra.

Kiszolgálószintű IP-tűzfalszabály létrehozása

Az Azure SQL Database kiszolgálószintű IP-tűzfalat hoz létre. Ez a tűzfal megakadályozza, hogy külső alkalmazások és eszközök csatlakozzanak a kiszolgálóhoz és a kiszolgálón lévő adatbázisokhoz, kivéve, ha egy tűzfalszabály engedélyezi az IP-címüket a tűzfalon keresztül. Az adatbázis külső kapcsolatának engedélyezéséhez először hozzá kell adnia egy IP-tűzfalszabályt az IP-címhez (vagy IP-címtartományhoz). Kövesse az alábbi lépéseket egy kiszolgálószintű IP-tűzfalszabály létrehozásához.

Fontos

Az Azure SQL Database az 1433-as porton kommunikál. Ha vállalati hálózaton belülről próbál csatlakozni ehhez a szolgáltatáshoz, előfordulhat, hogy a hálózat tűzfala nem engedélyezi a kimenő forgalmat az 1433-as porton keresztül. Ha igen, csak akkor csatlakozhat az adatbázishoz, ha a rendszergazda meg nem nyitja az 1433-at.

  1. Az üzembe helyezés befejezése után válassza ki az SQL-adatbázisokat az Azure Portal menüjéből, vagy keressen és válasszon SQL-adatbázisokat bármelyik oldalról.

  2. Válassza ki aDatabase-et az SQL-adatbázisok lapján. Megnyílik az adatbázis áttekintő oldala, amelyen a kiszolgáló teljes neve (például contosodatabaseserver01.database.windows.net) látható, és további konfigurációs lehetőségeket biztosít.

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

  3. Másolja ki ezt a teljes kiszolgálónevet a kiszolgálóhoz és az adatbázisokhoz való csatlakozáshoz az SQL Server Management Studióból.

  4. Válassza a Hálózatkezelés lehetőséget a Gépház alatt. Válassza a Nyilvános hozzáférés lapot, majd válassza a Kijelölt hálózatok lehetőséget a Nyilvános hálózati hozzáférés csoportban a Tűzfalszabályok szakasz megjelenítéséhez.

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

  5. Az eszköztáron válassza az Ügyfél IPv4 hozzáadása lehetőséget az aktuális IP-cím új IP-tűzfalszabályhoz való hozzáadásához. Az IP-tűzfalszabály megnyithatja az 1433-at egyetlen IP-címhez vagy IP-címtartományhoz.

  6. Válassza a Mentés lehetőséget. Létrejön egy kiszolgálószintű IP-tűzfalszabály az aktuális IP-cím 1433-at megnyitó portjához a kiszolgálón.

  7. Válassza az OK gombot, majd zárja be a Tűzfal beállításai lapot.

Az IP-cím most már áthaladhat az IP-tűzfalon. Most már csatlakozhat az adatbázishoz az SQL Server Management Studióval vagy egy tetszőleges másik eszközzel. Mindenképpen használja a korábban létrehozott kiszolgálói rendszergazdai fiókot.

Fontos

Alapértelmezés szerint az SQL Database IP-tűzfalon keresztüli hozzáférés minden Azure-szolgáltatáshoz engedélyezve van. Az összes Azure-szolgáltatás letiltásához válassza a KI lehetőséget ezen a lapon.

Csatlakozás az adatbázishoz

Az Azure SQL-adatbázisok logikai SQL-kiszolgálókon belül léteznek. Bejelentkezve csatlakozhat a logikai SQL-kiszolgálóhoz master , majd csatlakozhat az adatbázishoz. Vagy egy tartalmazott felhasználóval közvetlenül csatlakozhat az Azure SQL-adatbázishoz.

Az SQL Server Management Studióval csatlakozhat az Azure SQL-adatbázishoz.

  1. Nyissa meg az SQL Server Management Studiót.

  2. A Csatlakozás kiszolgálóra párbeszédpanelen adja meg a következő adatokat. Hagyja meg az egyéb beállításokat alapértelmezettként.

    Beállítás Ajánlott érték Leírás
    Kiszolgáló típusa Database engine Kötelezően megadandó érték.
    Kiszolgáló neve Az Azure SQL Database logikai kiszolgálójának teljes neve Például: your_logical_azure_sql_server.database.windows.net.
    Hitelesítés SQL Server-hitelesítés Az SQL Server-hitelesítés használatával adjon meg felhasználónevet és jelszót.
    Microsoft Entra hitelesítés Ha Microsoft Entra-azonosítóval szeretne csatlakozni, ha Ön a Microsoft Entra-kiszolgáló rendszergazdája, válassza a Microsoft Entra MFA-t. További információ: Microsoft Entra-hitelesítés konfigurálása és kezelése az Azure SQL-lel.
    Bejelentkezés A kiszolgálói rendszergazdai fiók HA SQL Server-hitelesítést használ, a kiszolgáló létrehozásakor megadott fiók.
    Jelszó A kiszolgálói rendszergazdai fiók jelszava HA SQL Server-hitelesítést használ, a kiszolgáló létrehozásakor megadott jelszó.

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

  3. Válassza a Beállítások lehetőséget a Csatlakozás kiszolgálóhoz párbeszédpanelen. Az adatbázishoz való Csatlakozás szakaszban adja meg aDatabase nevet az adatbázishoz való csatlakozáshoz.

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

  4. Válassza a Kapcsolódás lehetőséget. Megnyílik az Objektumkezelő ablak az SSMS-ben.

  5. Az Object Explorerben bontsa ki az Adatbázisok elemet, majd bontsa ki aDatabase fájlt a mintaadatbázis objektumainak megtekintéséhez.

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

  6. Az Object Explorerben kattintson a jobb gombbal aDatabase fájlra, és válassza az Új lekérdezés lehetőséget. Megnyílik egy, az adatbázishoz csatlakoztatott üres lekérdezési ablak.

Táblák létrehozása az adatbázisban

Hozzon létre négy táblát, amelyek a Transact-SQL használatával modelleznek egy egyetem hallgatói felügyeleti rendszerét:

  • Person
  • Course
  • Student
  • Credit

Az alábbi ábrán látható, hogyan kapcsolódnak ezek a táblázatok egymáshoz. Ezen táblázatok némelyike más táblák oszlopaira hivatkozik. A tábla például Student a PersonId tábla oszlopára hivatkozik Person . Tanulmányozza a diagramot az ebben az oktatóanyagban szereplő táblák kapcsolatainak megértéséhez. A hatékony normalizált adatbázistáblák létrehozásának részletes ismertetését lásd : Normalizált adatbázis tervezése. Az adattípusok kiválasztására vonatkozó további információkért lásd: Adattípusok. Alapértelmezés szerint a táblák az alapértelmezett dbo sémában jönnek létre, ami azt jelenti, hogy egy tábla dbo.Personkétrészes neve lesz például.

Feljegyzés

Használhatja az SQL Server Management Studio táblatervezőjét is a táblák létrehozásához és tervezéséhez.

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

  1. A lekérdezési ablakban hajtsa végre a következő T-SQL-lekérdezést, hogy négy táblát hozzon létre az adatbázisban:

    -- 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. Bontsa ki a Táblák csomópontot a Database alatt az Object Explorerben a létrehozott négy új tábla megtekintéséhez.

Adatok betöltése a táblákba

  1. Hozzon létre egy sampleData nevű mappát a helyi munkaállomás Letöltések mappájában az adatbázis mintaadatainak tárolásához. Például: c:\Users\<your user name>\Downloads.

  2. Kattintson a jobb gombbal az alábbi hivatkozásokra, és mentse őket a sampleData mappába.

  3. Nyisson meg egy új Windows parancssori ablakot, és keresse meg a sampleData mappát. Például: cd c:\Users\<your user name>\Downloads.

  4. Hajtsa végre a következő bcp parancsokat, hogy mintaadatokat szúrjon be a táblákba a kiszolgáló, az adatbázis, a felhasználó és a jelszó értékeit a környezet értékeire cserélve.

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

Ezzel mintaadatokat töltött be a korábban létrehozott táblákba.

Adatok lekérdezése

Hajtsa végre a következő T-SQL-lekérdezéseket az adatbázistáblák adatainak lekéréséhez.

Ez az első lekérdezés mind a négy táblát összekapcsolja, hogy megtalálja a "Dominik Pápa" által tanított diákokat, akik 75%-nál magasabb osztályzattal rendelkeznek. Egy lekérdezési ablakban hajtsa végre a következő T-SQL-lekérdezést:

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

Ez a lekérdezés mind a négy táblát összekapcsolja, és megkeresi azokat a kurzusokat, amelyeken a "Noe Coleman" valaha regisztrált. Egy lekérdezési ablakban hajtsa végre a következő T-SQL-lekérdezést:

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

Tipp.

Ha többet szeretne megtudni az SQL-lekérdezések írásáról, látogasson el a Transact-SQL-utasítások írása című oktatóanyagba.

Tipp.

Készen áll egy .NET-alkalmazás fejlesztésére? Ez az ingyenes Learn-modul bemutatja, hogyan fejleszthet és konfigurálhat egy Azure SQL Database-t lekérdező ASP.NET alkalmazást, beleértve egy egyszerű adatbázis létrehozását is.

Következő lépés

Folytassa a következő oktatóanyaggal, amely az adatbázisok Visual Studio és C# használatával történő tervezését ismerteti.