Tutorial: Diseño de una base de datos relacional en Azure SQL Database con Azure Data Studio (ADS)

Se aplica a:Azure SQL Database

Azure SQL Database es una base de datos como servicio (DBaaS) relacional en Microsoft Cloud (Azure). En este tutorial se aprenderá a usar Azure Portal y Azure Data Studio (ADS) para:

  • Conectarse a la base de datos mediante Azure Data Studio
  • Crear tablas con Azure Data Studio
  • Carga masiva de datos con BCP
  • Consultar datos con Azure Data Studio

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

Para completar este tutorial, asegúrese de que tiene instalados los siguientes elementos:

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

Use Azure Data Studio para establecer una conexión con la base de datos.

  1. Abra Azure Data Studio.

  2. En la nueva conexión del Explorador de objetos para crear una nueva conexión y escribir la siguiente información. Deje el resto de opciones con los valores predeterminados.

    Configuración Valor sugerido Descripción
    Tipo de conexión Microsoft SQL Server 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.
    Tipo de 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 ID - Universal compatible con 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 Es la cuenta que especificó cuando creó el servidor.
    Contraseña La contraseña de la cuenta de administrador del servidor Es la contraseña que especificó cuando creó el servidor.

    Screenshot of connection dialog box in ADS.

  3. Seleccione Conectar. Se abre la ventana del Explorador de objetos en ADS.

  4. 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.

  5. 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 un esquema de base de datos con cuatro tablas que modelan un sistema de administración de estudiantes para universidades con el Diseñador de tablas en Azure Data Studio:

  • 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.

Screenshot of Table relationships.

  1. En el Explorador de objetos, seleccione yourDatabase, que expandirá el menú desplegable de todos los procesos almacenados en esta base de datos, haga clic con el botón derecho en la carpeta Tablas y seleccione Nueva tabla. Se abre un Diseñador de tablas en blanco que está conectado a la base de datos.

  2. Use la interfaz del Diseñador de tablas para crear estas cuatro tablas en la base de datos. Para más información sobre cómo crear tablas mediante el Diseñador de tablas, consulte la documentación sobre el Diseñador de tablas:

    • Tabla Person

      Screenshot of Person Table in Table Designer.

      Asegúrese de configurar la configuración de la clave principal para la tabla Person como se muestra más abajo:

      Screenshot of Person table in Table Designer showing the Primary Key settings.

    • Tabla de alumnos

      Screenshot of Student table in Table Designer.

      Asegúrese de configurar las opciones de clave principal para la tabla Student, como se muestra a continuación: Screenshot of Student table in Table Designer showing Primary Key settings.

      Asegúrese de configurar las opciones de clave externa para la tabla Student, como se muestra a continuación: Screenshot Student table in Table Designer showing Foreign Key settings.

    • Tabla de cursos

      Screenshot of Course Table in Table Designer.

      Asegúrese de configurar las opciones de clave principal para la tabla Course, como se muestra a continuación: Screenshot of Course table in Table Designer showing Primary Key settings.

    • Tabla de crédito

      Screenshot of Credit Table in Table Designer.

      Asegúrese de configurar las opciones de clave externa para la tabla Credit, como se muestra a continuación: Screenshot of Credit Table in Table Designer showing Foreign Key settings.

      Asegúrese de configurar las opciones de restricción CHECK para la tabla Credit, como se muestra a continuación: Screenshot of Credit Table in Table Designer showing Check Constraint settings.

    Si prefiere usar T-SQL para crear las cuatro tablas nuevas, este es el T-SQL que se ejecutará en una nueva ventana de consulta.

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

    Screenshot of created tables in ADS.

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#.