Tutorial: Diseño de una base de datos relacional en Azure SQL Database

Se aplica a:Azure SQL Database

Azure SQL Database es una base de datos como servicio (DBaaS) relacional en Microsoft Azure. En este tutorial, aprenderá a:

  • Conexión a la base de datos
  • Creación de tablas con comandos de T-SQL
  • Carga masiva de datos con BCP
  • Consulta de datos con comandos de T-SQL

Nota:

Para este tutorial, se utiliza Azure SQL Database. También puede usar una base de datos agrupada en un grupo elástico o una instancia administrada de SQL. Para la conectividad con una instancia administrada de SQL, consulte estos artículos de inicio rápido sobre Instancia administrada de SQL: Inicio rápido: Configuración de una máquina virtual de Azure para una instancia administrada de Azure SQL e Inicio rápido: Configuración de una conexión de punto a sitio a una instancia administrada de Azure SQL desde el entorno local.

Requisitos previos

Inicio de sesión en Azure Portal

Inicie sesión en Azure Portal.

Creación de una regla de firewall de IP de nivel de servidor

Azure SQL Database crea un firewall de IP en el nivel de servidor. Este firewall evita que las herramientas y aplicaciones externas se conecten al servidor o a las bases de datos de este, a menos que una regla de firewall permita sus direcciones IP. Para habilitar la conectividad externa a la base de datos, primero debe agregar una regla de firewall para la dirección IP (o un intervalo de direcciones IP). Siga estos pasos para crear una regla de firewall de IP de nivel de servidor.

Importante

Azure SQL Database se comunica a través del puerto 1433. Si intenta conectarse a este servicio desde dentro de una red corporativa, es posible que el firewall de la red no permita el tráfico de salida a través del puerto 1433. En ese caso, no puede conectarse a la base de datos, salvo que el administrador abra el puerto 1433.

  1. Una vez finalizada la implementación, seleccione Bases de datos SQL en el menú de Azure Portal o busque y seleccione Bases de datos SQL desde cualquier página.

  2. Seleccione yourDatabase en la página Bases de datos SQL. Se abre la página de información general de la base de datos, que muestra el nombre del servidor (por ejemplo, contosodatabaseserver01.database.windows.net) y proporciona opciones para otras configuraciones.

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

  3. Copie el nombre completo del servidor para conectarse a su servidor y a sus bases de datos de SQL Server Management Studio.

  4. Seleccione Redes en Configuración. Elija la pestaña Acceso público y, después, seleccione Redes seleccionadas en Public network access (Acceso a la red pública) para mostrar la sección Reglas de firewall.

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

  5. Haga clic en Add your client IPv4 (Agregar IPv4 de cliente) en la barra de herramientas para agregar la dirección IP actual a la nueva regla de firewall de IP. La regla de firewall de IP puede abrir el puerto 1433 para una única dirección IP o un intervalo de direcciones IP.

  6. Seleccione Guardar. Se crea una regla de firewall de IP en el nivel de servidor para el puerto 1433 de la dirección IP actual en el servidor.

  7. Seleccione Aceptar y después cierre la página Configuración de firewall.

Ahora la dirección IP puede pasar a través del firewall de IP; además, puede conectarse a la base de datos mediante SQL Server Management Studio u otra herramienta que elija. Asegúrese de usar la cuenta de administración de servidor que creó anteriormente.

Importante

De forma predeterminada, el acceso a través del firewall por IP de SQL Database está habilitado para todos los servicios de Azure. Seleccione DESACTIVAR en esta página para deshabilitar todos los servicios de Azure.

Conectarse a la base de datos

Las bases de datos de Azure SQL existen dentro de servidores SQL lógicos. Puede conectarse al master del servidor SQL lógico mediante un inicio de sesión y, a continuación, conectarse a la base de datos. O bien, mediante un usuario independiente, puede conectarse directamente a la base de datos de Azure SQL.

Abra SQL Server Management Studio y conéctese a su base de datos de Azure SQL.

  1. Abra SQL Server Management Studio.

  2. En el cuadro de diálogo Conectar con el servidor, especifique la siguiente información. Deje el resto de opciones con los valores predeterminados.

    Configuración Valor sugerido Descripción
    Tipo de servidor Motor de base de datos Este valor es necesario.
    Nombre del servidor El nombre completo del servidor lógico de Azure SQL Database Por ejemplo, your_logical_azure_sql_server.database.windows.net.
    Autenticación SQL Server Authentication Utilice la autenticación de SQL Server para escribir un nombre de usuario y una contraseña.
    Autenticación de Microsoft Entra Para conectarse con Microsoft Entra ID, si es el administrador del servidor de Microsoft Entra, seleccione Microsoft Entra MFA. Para obtener más información, consulte Configuración y administración de la autenticación de Microsoft Entra con Azure SQL.
    Inicio de sesión La cuenta de administrador del servidor Si usa la autenticación de SQL Server, la cuenta que especificó al crear el servidor.
    Contraseña La contraseña de la cuenta de administrador del servidor Si usa la autenticación de SQL Server, la contraseña que especificó al crear el servidor.

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

  3. Seleccione Opciones en el cuadro de diálogo Conectar con el servidor. En la sección Conectar con base de datos, escriba yourDatabase para conectarse a esta base de datos.

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

  4. Seleccione Conectar. Se abre la ventana del Explorador de objetos en SSMS.

  5. En el Explorador de objetos, expanda Bases de datos y, después, expanda yourDatabase para ver los objetos de la base de datos de ejemplo.

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

  6. En el Explorador de objetos, haga clic con el botón derecho en yourDatabase y seleccione Nueva consulta. Se abre una ventana de consulta en blanco que está conectada a la base de datos.

Creación de tablas en la base de datos

Cree cuatro tablas que modelan un sistema de administración de estudiantes para universidades con Transact-SQL:

  • Person
  • Course
  • Student
  • Credit

En el diagrama siguiente se muestra cómo estas tablas se relacionan entre sí. Algunas de estas tablas hacen referencia a columnas de otras tablas. Por ejemplo, la tabla Student hace referencia a la columna PersonId de la tabla Person. Estudie el diagrama para entender cómo se relacionan las tablas de este tutorial entre sí. Para obtener información detallada sobre cómo crear tablas de base de datos normalizadas eficaces, consulte Diseño de una base de datos normalizada. Para obtener información sobre cómo elegir tipos de datos, vea Data types (Tipos de datos). De forma predeterminada, las tablas se crean en el esquema predeterminado dbo, lo que significa que el nombre de dos partes de una tabla será dbo.Person, por ejemplo.

Nota:

También puede usar el Diseñador de tablas de SQL Server Management Studio para crear y diseñar las tablas.

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

  1. En la ventana de consulta, ejecute la siguiente consulta T-SQL para crear cuatro tablas en la base de datos:

    -- 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. Expanda el nodo Tablas en yourDatabase en el Explorador de objetos para ver las cuatro tablas nuevas que ha creado.

Carga de datos en las tablas

  1. Cree una carpeta denominada sampleData en la carpeta Descargas de la estación de trabajo local para almacenar datos de ejemplo para la base de datos. Por ejemplo, c:\Users\<your user name>\Downloads.

  2. Haga clic con el botón derecho en los vínculos siguientes y guárdelos en la carpeta sampleData.

  3. Abra una nueva ventana del símbolo del sistema de Windows y navegue hasta la carpeta sampleData. Por ejemplo, cd c:\Users\<your user name>\Downloads.

  4. Ejecute los comandos bcp siguientes para insertar datos de ejemplo en las tablas y reemplace los valores de server, database, user y password por los valores correspondientes al entorno.

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

De esta forma, ya ha cargado los datos de ejemplo en las tablas que ha creado anteriormente.

Consultar datos

Ejecute las siguientes consultas T-SQL para recuperar información de las tablas de base de datos.

Esta primera consulta combina las cuatro tablas para buscar los alumnos del profesor "Dominick Pope" que tienen una calificación superior al 75 %. Ejecute la siguiente consulta T-SQL en una ventana de consulta:

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

Esta consulta combina las cuatro tablas y busca los cursos en los que nunca se ha matriculado "Noe Coleman". Ejecute la siguiente consulta T-SQL en una ventana de consulta:

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

Sugerencia

Para obtener más información sobre cómo escribir consultas SQL, visite Tutorial: Escritura de instrucciones Transact-SQL.

Sugerencia

¿Está listo para empezar a desarrollar una aplicación .NET? El siguiente módulo gratuito de Microsoft Learn le enseña cómo Desarrollar y configurar una aplicación de ASP.NET que consulta una instancia de Azure SQL Database, incluida la creación de una base de datos simple.

Paso siguiente

Avance hasta el próximo tutorial para obtener información sobre cómo diseñar una base de datos mediante Visual Studio y C#.