Поделиться через


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

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

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

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

Внимание

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

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

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

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

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

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

    Setting Предлагаемое значение Description
    Тип сервера Ядро СУБД. Это значение обязательно.
    Имя сервера Полное имя логического сервера базы данных Azure SQL Например, 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 используется пароль, указанный при создании сервера.

    снимок экрана диалогового окна

  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,
        MiddleInitial NVARCHAR (10),
        LastName NVARCHAR (128) NOT NULL,
        DateOfBirth DATE NOT NULL
    );
    
    -- Create Student table
    CREATE TABLE Student
    (
        StudentId INT IDENTITY PRIMARY KEY,
        PersonId INT FOREIGN KEY 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 FOREIGN KEY REFERENCES Student (StudentId),
        CourseId INT FOREIGN KEY REFERENCES Course (CourseId),
        Grade DECIMAL (5, 2) CHECK (Grade <= 100.00),
        Attempt TINYINT,
        CONSTRAINT [UQ_studentgrades]
            UNIQUE CLUSTERED (StudentId, CourseId, Grade, Attempt)
    );
    

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

  2. Разверните узел Tables под вашейБазыДанных в Обозреватель объектов, чтобы увидеть четыре новые созданные таблицы.

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

  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 для получения сведений из таблиц базы данных.

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

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