Samouczek: projektowanie relacyjnej bazy danych w usłudze Azure SQL Database przy użyciu programu Azure Data Studio (ADS)

Dotyczy: Azure SQL Database

Usługa Azure SQL Database to relacyjna baza danych oferowana jako usługa (DBaaS, database-as-a service) na platformie Microsoft Cloud (Azure). Z tego samouczka dowiesz się, jak używać witryny Azure Portal i programu Azure Data Studio (ADS) do:

  • Nawiązywanie połączenia z bazą danych za pomocą narzędzia Azure Data Studio
  • Tworzenie tabel za pomocą narzędzia Azure Data Studio
  • Ładowanie zbiorcze danych za pomocą narzędzia BCP
  • Wykonywanie zapytań dotyczących danych za pomocą narzędzia Azure Data Studio

Uwaga

Na potrzeby tego samouczka używamy usługi Azure SQL Database. Można również użyć bazy danych w puli elastycznej lub wystąpienia zarządzanego SQL. Aby uzyskać informacje na temat łączności z usługą SQL Managed Instance, zobacz następujące przewodniki Szybki start: Konfigurowanie maszyny wirtualnej platformy Azure w celu nawiązania połączenia z usługą Azure SQL Managed Instance i Szybki start: Konfigurowanie połączenia punkt-lokacja z usługą Azure SQL Managed Instance ze środowiska lokalnego.

Wymagania wstępne

Aby ukończyć kroki tego samouczka, upewnij się, że zainstalowano następujące elementy:

Zaloguj się do witryny Azure Portal.

Zaloguj się w witrynie Azure Portal.

Tworzenie reguły zapory bazującej na adresach IP na poziomie serwera

Usługa Azure SQL Database tworzy zaporę adresów IP na poziomie serwera. Ta zapora uniemożliwia zewnętrznym aplikacjom i narzędziom łączenie się z serwerem i wszelkimi bazami danych na tym serwerze, chyba że reguła zapory zezwala na przechodzenie ruchu z ich adresów IP przez zaporę. Aby włączyć łączność zewnętrzną z bazą danych, musisz najpierw dodać regułę zapory ip dla adresu IP (lub zakresu adresów IP). Wykonaj następujące kroki, aby utworzyć regułę zapory adresów IP na poziomie serwera.

Ważne

Usługa Azure SQL Database komunikuje się przez port 1433. Jeśli próbujesz nawiązać połączenie z tą usługą z sieci firmowej, ruch wychodzący przez port 1433 może nie być dozwolony przez zaporę sieci. Jeśli tak, nie możesz nawiązać połączenia z bazą danych, chyba że administrator otworzy port 1433.

  1. Po zakończeniu wdrażania wybierz pozycję Bazy danych SQL z menu witryny Azure Portal lub wyszukaj i wybierz pozycję Bazy danych SQL na dowolnej stronie.

  2. Wybierz bazę danych Na stronie Bazy danych SQL. Zostanie otwarta strona przeglądu bazy danych zawierająca w pełni kwalifikowaną nazwę serwera (na przykład contosodatabaseserver01.database.windows.net) i opcje dalszej konfiguracji.

    Zrzut ekranu przedstawiający stronę przeglądu bazy danych w witrynie Azure Portal z wyróżnioną nazwą serwera.

  3. Skopiuj tę w pełni kwalifikowaną nazwę serwera w celu nawiązania połączenia z serwerem i bazami danych w programie SQL Server Management Studio.

  4. Wybierz pozycję Sieć w obszarze Ustawienia. Wybierz kartę Dostęp publiczny, a następnie wybierz pozycję Wybrane sieci w obszarze Dostęp do sieci publicznej, aby wyświetlić sekcję Reguły zapory.

    Zrzut ekranu przedstawiający stronę sieciową witryny Azure Portal, na której ma być ustawiona reguła zapory adresów IP na poziomie serwera.

  5. Wybierz pozycję Dodaj adres IPv4 klienta na pasku narzędzi, aby dodać bieżący adres IP do nowej reguły zapory adresów IP. Reguła zapory bazująca na adresach IP może otworzyć port 1433 dla pojedynczego adresu IP lub zakresu adresów IP.

  6. Wybierz pozycję Zapisz. Reguła zapory adresów IP na poziomie serwera jest tworzona dla bieżącego adresu IP otwierającego port 1433 na serwerze.

  7. Wybierz przycisk OK, a następnie zamknij stronę Ustawienia zapory.

Adres IP może teraz być przekazywany przez zaporę IP. Teraz możesz nawiązać połączenie z bazą danych przy użyciu programu SQL Server Management Studio lub innego wybranego narzędzia. Używaj wcześniej utworzonego konta administratora serwera.

Ważne

Domyślnie dostęp przez zaporę IP usługi SQL Database jest włączony dla wszystkich usług platformy Azure. Wybierz przycisk WYŁ. na tej stronie, aby wyłączyć tę opcję dla wszystkich usług platformy Azure.

Łączenie z bazą danych

Użyj narzędzia Azure Data Studio , aby nawiązać połączenie z bazą danych.

  1. Otwórz narzędzie Azure Data Studio.

  2. W obszarze Nowe połączenie z Eksplorator obiektów utwórz nowe połączenie i wprowadź następujące informacje. Pozostaw inne opcje jako domyślne.

    Ustawienie Sugerowana wartość Opis
    Connection type (Typ połączenia) Microsoft SQL Server Wartość ta jest wymagana.
    Nazwa serwera W pełni kwalifikowana nazwa serwera logicznego usługi Azure SQL Database Na przykład your_logical_azure_sql_server.database.windows.net.
    Literówka uwierzytelniania Uwierzytelnianie programu SQL Server Użyj uwierzytelniania programu SQL Server, aby wprowadzić nazwę użytkownika i hasło.
    Uwierzytelnianie Microsoft Entra Aby nawiązać połączenie przy użyciu identyfikatora Entra firmy Microsoft, jeśli jesteś administratorem serwera Entra firmy Microsoft, wybierz pozycję Microsoft Entra ID — universal with MFA support (Obsługa uwierzytelniania wieloskładnikowego). Więcej informacji można znaleźć w temacie Konfigurowanie uwierzytelniania usługi Microsoft Entra i zarządzanie nim za pomocą usługi Azure SQL.
    Logowanie Konto administratora serwera Konto określone podczas tworzenia serwera.
    Hasło Hasło konta administratora serwera Hasło określone podczas tworzenia serwera.

    Zrzut ekranu przedstawiający okno dialogowe połączenia w narzędziu ADS.

  3. Wybierz pozycję Połącz. Zostanie otwarte okno Eksplorator obiektów w usłudze ADS.

  4. W Eksploratorze obiektów rozwiń pozycję Bazy danych, a następnie rozwiń pozycję yourDatabase, aby wyświetlić obiekty w przykładowej bazie danych.

  5. W Eksploratorze obiektów kliknij prawym przyciskiem myszy pozycję yourDatabase i wybierz pozycję Nowe zapytanie. Zostanie otwarte puste okno zapytania, które jest połączone z Twoją bazą danych.

Tworzenie tabel w bazie danych

Utwórz schemat bazy danych z czterema tabelami, które modeluje system zarządzania studentami dla uniwersytetów przy użyciu projektanta tabel w usłudze Azure Data Studio:

  • Person
  • Course
  • Student
  • Credit

Na poniższym diagramie przedstawiono, jak te tabele są ze sobą powiązane. Niektóre z tych tabel odwołują się do kolumn w innych tabelach. Na przykład Student tabela odwołuje się do PersonId kolumny Person tabeli. Zapoznaj się z tym diagramem, aby zrozumieć, jak tabele w tym samouczku są ze sobą powiązane. Aby uzyskać szczegółowe informacje na temat tworzenia efektywnych znormalizowanych tabel baz danych, zobacz Projektowanie znormalizowanej bazy danych. Aby uzyskać informacje dotyczące wybierania typów danych, zobacz Typy danych. Domyślnie tabele są tworzone w schemacie domyślnym dbo , co oznacza, że na przykład dwuczęściowa nazwa tabeli to dbo.Person, na przykład .

Zrzut ekranu przedstawiający relacje tabeli.

  1. W Eksplorator obiektów wybierz bazę danych, która rozwija menu rozwijane wszystkich procesów przechowywanych w tej bazie danych, kliknij prawym przyciskiem myszy folder Tables, wybierz pozycję Nowa tabela. Zostanie otwarty pusty projektant tabel połączony z bazą danych.

  2. Użyj interfejsu projektanta tabel, aby utworzyć te cztery tabele w bazie danych. Aby dowiedzieć się więcej na temat tworzenia tabel przy użyciu projektanta tabel, zapoznaj się z dokumentacją projektanta tabel:

    • Tabela osób

      Zrzut ekranu przedstawiający tabelę osób w projektancie tabel.

      Pamiętaj, aby skonfigurować ustawienia klucza podstawowego dla tabeli osoby , jak pokazano poniżej:

      Zrzut ekranu przedstawiający tabelę Person w projektancie tabel z ustawieniami klucza podstawowego.

    • Tabela uczniów

      Zrzut ekranu przedstawiający tabelę Student w projektancie tabel.

      Pamiętaj, aby skonfigurować ustawienia klucza podstawowego dla tabeli uczniów, jak pokazano poniżej:Zrzut ekranu przedstawiający tabelę Student w projektancie tabel z ustawieniami klucza podstawowego.

      Pamiętaj, aby skonfigurować ustawienia klucza obcego dla tabeli uczniów, jak pokazano poniżej:Zrzut ekranu przedstawiający tabelę Student w Projektancie tabel z wyświetlonymi ustawieniami klucza obcego.

    • Tabela kursu

      Zrzut ekranu przedstawiający tabelę Course Table w projektancie tabel.

      Pamiętaj, aby skonfigurować ustawienia klucza podstawowego dla tabeli Kursu , jak pokazano poniżej: Zrzut ekranu przedstawiający tabelę Course w projektancie tabel z ustawieniami klucza podstawowego.

    • Tabela środków

      Zrzut ekranu przedstawiający tabelę środków w projektancie tabel.

      Pamiętaj, aby skonfigurować ustawienia klucza obcego dla tabeli kredytowej, jak pokazano poniżej:Zrzut ekranu przedstawiający tabelę środków w projektancie tabel z ustawieniami klucza obcego.

      Pamiętaj, aby skonfigurować ustawienia sprawdzanie ograniczeń dla tabeli kredytowej, jak pokazano poniżej:Zrzut ekranu przedstawiający tabelę środków w projektancie tabel z wyświetlonymi ustawieniami ograniczeń sprawdzania.

    Jeśli wolisz użyć języka T-SQL do utworzenia czterech nowych tabel, oto język T-SQL do wykonania w nowym oknie zapytania.

    -- 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
        )
    )
    
  3. Rozwiń węzeł Tabele w obszarze yourDatabase w Eksplorator obiektów, aby wyświetlić cztery utworzone nowe tabele.

    Zrzut ekranu przedstawiający utworzone tabele w usłudze ADS.

Ładowanie danych do tabel

  1. Utwórz folder o nazwie sampleData w lokalnym folderze pobranej stacji roboczej, aby przechowywać przykładowe dane dla bazy danych. Na przykład c:\Users\<your user name>\Downloads.

  2. Kliknij prawym przyciskiem myszy poniższe linki i zapisz je w folderze sampleData.

  3. Otwórz nowe okno wiersza polecenia systemu Windows i przejdź do folderu sampleData . Na przykład cd c:\Users\<your user name>\Downloads.

  4. Wykonaj następujące bcp polecenia, aby wstawić przykładowe dane do tabel, zastępując wartości serwera, bazy danych, użytkownika i hasła wartościami środowiska.

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

Przykładowe dane zostaną załadowane do utworzonych wcześniej tabel.

Zapytania o dane

Wykonaj następujące zapytania T-SQL, aby pobrać informacje z tabel bazy danych.

To pierwsze zapytanie łączy wszystkie cztery tabele, aby znaleźć uczniów nauczanych przez "Dominick Pope", którzy mają ocenę wyższą niż 75%. W oknie zapytania wykonaj następujące zapytanie 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;

To zapytanie łączy wszystkie cztery tabele i znajduje kursy, w których kiedykolwiek zarejestrowano "Noe Coleman". W oknie zapytania wykonaj następujące zapytanie 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';

Napiwek

Aby dowiedzieć się więcej na temat pisania zapytań SQL, odwiedź stronę Samouczek: pisanie instrukcji języka Transact-SQL.

Napiwek

Chcesz rozpocząć tworzenie aplikacji platformy .NET? W tym bezpłatnym module Learn pokazano, jak opracowywać i konfigurować aplikację ASP.NET, która wysyła zapytania do usługi Azure SQL Database, w tym tworzenie prostej bazy danych.

Następny krok

Przejdź do następnego samouczka, aby dowiedzieć się, jak projektować bazy danych przy użyciu programu Visual Studio i języka C#.