Руководство по проектированию реляционной базы данных в База данных 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) и будут предоставлены параметры для дальнейшей настройки.

    Снимок экрана: страница обзора портал Azure базы данных с выделенным именем сервера.

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

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

    Снимок экрана: страница портал Azure, сетевая страница, на которой показано, где задать правило брандмауэра IP-адресов на уровне сервера.

  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 пароль, указанный при создании сервера.

    Снимок экрана: диалоговое окно подключения к База данных SQL Azure логическому серверу в SQL Server Management Studio (SSMS).

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

    Снимок экрана: вкладка параметров диалогового окна подключения к серверу в SQL Server Management Studio (SSMS).

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

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

    Снимок экрана: СРЕДА SQL Server Management Studio (SSMS) с объектами базы данных в обозревателе объектов.

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

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

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

  • Person
  • Course
  • Student
  • Credit

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

Примечание.

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

Снимок экрана: конструктор таблиц в SQL Server Management Studio (SSMS), показывающий связи таблиц.

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

    Снимок экрана: SSMS с скриптом создания таблиц успешно выполнен.

  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# см. в следующем руководстве.