Руководство по проектированию реляционной базы данных в База данных SQL Azure

Применимо к:База данных SQL Azure

База данных SQL Azure — это реляционная база данных как услуга (DBaaS) в Microsoft Azure. В этом руководстве описано следующее:

  • Подключение к базе данных
  • Создание таблиц с помощью команд T-SQL
  • выполнить массовую загрузку данных с помощью BCP;
  • Запрос данных с помощью команд T-SQL

Примечание.

В рамках этого учебника используется База данных SQL Azure. Но вы также можете использовать базу данных в составе эластичного пула или в Управляемом экземпляре SQL. Сведения о процессе подключения к Управляемому экземпляру SQL см. в следующих кратких руководствах: Настройка виртуальной машины Azure для подключения к Управляемому экземпляру SQL Azure и Настройка подключения "точка — сеть" к Управляемому экземпляру SQL Azure из локальной среды.

Необходимые компоненты

Войдите на портал Azure

Войдите на портал Azure.

Создание правила брандмауэра для IP-адресов на уровне сервера

Служба "База данных SQL Azure" создает брандмауэр IP-адресов на уровне сервера. Он не позволяет внешним приложениям и средствам подключаться к серверу и к любой базе данных на сервере, если не создано правило брандмауэра, позволяющее пропускать их IP-адреса через брандмауэр. Чтобы разрешить внешние подключения к базе данных, необходимо сначала добавить правило брандмауэра IP-адресов, указав в нем свой IP-адрес (или диапазон IP-адресов). Выполните следующие действия, чтобы создать правило брандмауэра IP-адресов на уровне сервера.

Важно!

База данных SQL обменивается данными через порт 1433. Если вы пытаетесь подключиться к этой службе из корпоративной сети, исходящий трафик через порт 1433 может быть запрещен сетевым брандмауэром. В таком случае вы не сможете подключиться к базе данных, пока ваш администратор не откроет порт 1433.

  1. После завершения развертывания выберите Базы данных SQL в меню портала Azure или выполните поиск по запросу Базы данных SQL на любой странице и выберите этот пункт.

  2. Выберите yourDatabase на странице Базы данных SQL. После этого откроется страница обзора базы данных, где будет указано полное имя сервера (например, contosodatabaseserver01.database.windows.net) и будут предоставлены параметры для дальнейшей настройки.

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

  3. Скопируйте полное имя сервера. Оно понадобится вам для подключения к серверу и связанным базам данных из SQL Server Management Studio.

  4. В разделе Параметров выберите Сеть. Перейдите на вкладку "Общедоступный доступ", а затем выберите выбранные сети в разделе "Доступ к общедоступной сети", чтобы отобразить раздел правил брандмауэра.

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

  5. Выберите " Добавить IPv4 клиента" на панели инструментов, чтобы добавить текущий IP-адрес в новое правило брандмауэра IP-адресов. С использованием правила брандмауэра IP-адресов можно открыть порт 1433 для одного IP-адреса или диапазона IP-адресов.

  6. Выберите Сохранить. Для текущего IP-адреса будет создано правило брандмауэра для IP-адресов на уровне сервера, с помощью которого можно открыть порт 1433 сервера.

  7. Щелкните ОК, а затем закройте страницу Параметры брандмауэра.

Теперь IP-адрес может проходить через брандмауэр IP-адресов. Теперь можно подключиться к базе данных с помощью SQL Server Management Studio или другого средства по своему усмотрению. Обязательно используйте созданную ранее учетную запись администратора сервера.

Важно!

По умолчанию доступ через брандмауэр IP-адресов Базы данных SQL включен для всех служб Azure. На этой странице щелкните Выкл., чтобы отключить доступ для всех служб Azure.

Подключение к базе данных

Базы данных SQL Azure существуют в логических серверах SQL. Может подключиться к логическому серверу SQL Server master с помощью имени входа, а затем подключиться к базе данных. Или, используя автономного пользователя, вы можете подключиться непосредственно к базе данных SQL Azure.

Используйте SQL Server Management Studio для подключения к базе данных SQL Azure.

  1. Откройте SQL Server Management Studio.

  2. В диалоговом окне Подключение на сервер введите следующие сведения. Оставьте другие параметры по умолчанию.

    Параметр Предлагаемое значение Описание
    Тип сервера Ядро СУБД. Это значение обязательно.
    Имя сервера Полное База данных SQL Azure имя логического сервера Например, your_logical_azure_sql_server.database.windows.net.
    Аутентификация Проверка подлинности SQL Server Используйте проверку подлинности SQL Server, чтобы ввести имя пользователя и пароль.
    Проверка подлинности Microsoft Entra Чтобы подключиться с помощью идентификатора Microsoft Entra, если вы являетесь администратором сервера Microsoft Entra, выберите Microsoft Entra MFA. Дополнительные сведения см. в разделе о настройке и администрировании проверки подлинности Microsoft Entra с помощью Azure SQL.
    Имя входа Учетная запись администратора сервера При использовании проверки подлинности SQL Server учетная запись, указанная при создании сервера.
    Пароль Пароль для учетной записи администратора сервера При использовании проверки подлинности SQL Server пароль, указанный при создании сервера.

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

  3. Выберите параметры в диалоговом окне Подключение сервера. В разделе Подключение к базе данных введите yourDatabase, чтобы подключиться к этой базе данных.

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

  4. Нажмите Подключиться. В SSMS откроется окно Обозреватель объектов.

  5. В обозревателе объектов разверните Базы данных, а затем выберите yourDatabase, чтобы просмотреть объекты в образце базы данных.

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

  6. В обозревателе объектов щелкните правой кнопкой мыши yourDatabase и выберите команду Создать запрос. Откроется пустое окно запроса, подключенное к базе данных.

Создание таблиц в базе данных

Создайте четыре таблицы, моделировающие систему управления учащимися для университетов с помощью Transact-SQL:

  • Person
  • Course
  • Student
  • Credit

На приведенной ниже схеме показано, как эти таблицы связаны друг с другом. Некоторые из этих таблиц ссылаются на столбцы в других таблицах. Например, Student таблица ссылается на PersonId столбец Person таблицы. Изучите схему, чтобы понять, как таблицы в этом руководстве связаны друг с другом. Подробные сведения о создании эффективных нормализованных таблиц баз данных см. в статье "Проектирование нормализованной базы данных". Дополнительные сведения о выборе типов данных см. в этой статье. По умолчанию таблицы создаются в схеме по умолчанию dbo , что означает, что имя таблицы dbo.Personбудет двух частей, например.

Примечание.

Для создания и проектирования таблиц можно также использовать конструктор таблиц в SQL Server Management Studio.

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

  1. В окне запроса выполните следующий запрос T-SQL, чтобы создать четыре таблицы в базе данных:

    -- 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. Разверните узел таблиц под базой данныхDatabase в обозреватель объектов, чтобы увидеть четыре созданные новые таблицы.

Загрузка данных в таблицу

  1. Создайте папку с именем sampleData в папке загрузки локальной рабочей станции, чтобы сохранить примеры данных для базы данных. Например, c:\Users\<your user name>\Downloads.

  2. Щелкните правой кнопкой мыши приведенные ниже ссылки и сохраните их в папку sampleData.

  3. Откройте новое окно командной строки Windows и перейдите в папку sampleData . Например, cd c:\Users\<your user name>\Downloads.

  4. Выполните следующие bcp команды, чтобы вставить примеры данных в таблицы, заменив значения сервера, базы данных, пользователя и пароля значениями для вашей среды.

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

Итак, вы загрузили пример данных в созданные ранее таблицы.

Запрос данных

Выполните следующие запросы T-SQL для получения сведений из таблиц базы данных.

Этот первый запрос присоединяет все четыре таблицы, чтобы найти студентов, обучаемых "Доминик Папа", которые имеют оценку выше 75%. В окне запроса выполните следующий запрос 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;

Этот запрос объединяет все четыре таблицы и находит курсы, в которых "Noe Coleman" когда-либо зарегистрирован. В окне запроса выполните следующий запрос 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';

Совет

Дополнительные сведения о написании запросов SQL см . в руководстве по написанию инструкций Transact-SQL.

Совет

Готовы приступить к разработке приложения .NET? В этом модуле free Learn показано, как разрабатывать и настраивать приложение ASP.NET, которое запрашивает База данных SQL Azure, включая создание простой базы данных.

Следующий шаг

Дополнительные сведения о проектировании базы данных с помощью Visual Studio и C# см. в следующем руководстве.