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:
- Conectarse 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
- Utilice SQL Server Management Studio (la versión más reciente) o el Editor de consultas de Azure Portal para Azure SQL Database.
- También puede seguir este mismo tutorial con Azure Data Studio (ADS).
- BCP y SQLCMD (la versión más reciente).
- Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
- Si aún no tiene una instancia de Azure SQL Database creada, visite Inicio rápido: Creación de una base de datos única. Busque la opción de usar la oferta para probar Azure SQL Database de forma gratuita (versión preliminar).
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.
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.
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.Copie el nombre completo del servidor para conectarse a su servidor y a sus bases de datos de SQL Server Management Studio.
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.
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.
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.
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.
Abra SQL Server Management Studio.
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. 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.
Seleccione Conectar. Se abre la ventana del Explorador de objetos en SSMS.
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.
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.
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 ) )
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
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
.Haga clic con el botón derecho en los vínculos siguientes y guárdelos en la carpeta sampleData.
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
.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.
Contenido relacionado
- Tutorial: Diseño de una base de datos relacional en Azure SQL Database con Azure Data Studio (ADS)
- Probar Azure SQL Database gratis (vista previa)
- Novedades de Azure SQL Database
- Configuración y administración de la referencia de contenido: Azure SQL Database
- Planeamiento y administración de los costos de Azure SQL Database
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#.