CENTRO DE ALTOS ESTUDIOS EN CIENCIAS,
TECNOLOGÍAS Y SEGURIDAD DE LA INFORMACIÓN
Administración de Base de Datos SQL Server 2022
Guía de práctica
SQL Server 2022: Implementación y Configuración de Base de Datos
Creación de una nueva base de datos
1. Creamos en la unidad D:\ la carpeta DATA donde se almacenarán los archivos .mdf,
.ldf y .ndf
2. Creamos la base de datos BdLibreria
USE Master
GO
IF EXISTS (SELECT * FROM sysdatabases WHERE NAME='BdLibreria')
DROP DATABASE BdLibreria
GO
CREATE DATABASE BdLibreria
ON PRIMARY
(NAME = BdLibreria_data,
FILENAME = 'D:\DATA\[Link]',
SIZE = 10MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB)
LOG ON
(NAME = BdLibreria_log,
FILENAME = 'D:\DATA\[Link]',
SIZE = 5MB,
MAXSIZE = 10MB,
FILEGROWTH = 5%)
GO
Visualizar los archivos de la base de datos creada:
EXEC sp_helpdb BdLibreria
Ing. Wilson Gerardo Cardoza Llontop 1
CIETSI Administración de Base de Datos SQL Server 2022
Creación de las estructuras de almacenamiento de datos
En la base de datos BdLibreria
BDLIBRERIA
PRIMARY FG_VENTAS
[Link]
FG_COMPRAS FG_LOGISTICA
[Link]
[Link]
[Link]
[Link]
[Link]
1. Adicionar un archivo secundario a la base de datos BdLibreria con nombre lógico
BdLibreria_data1, con nombre físico [Link], tamaño 15MB, tamaño máximo
70MB y porcentaje de aumento 10%
ALTER DATABASE BdLibreria
ADD FILE
(NAME = BdLibreria_data1,
FILENAME = 'D:\DATA\[Link]',
SIZE = 15MB,
MAXSIZE = 70MB,
FILEGROWTH = 10%)
2. Crear un Filegroup llamado FG_VENTAS y adicionarle el archivo secundario con
nombre lógico BdLibreria_data2 y con nombre físico [Link], tamaño 8MB,
tamaño máximo 25MB y aumento 2MB
a) Creamos el Filegroup
ALTER DATABASE BdLibreria
ADD FILEGROUP FG_VENTAS
Ing. Wilson Gerardo Cardoza Llontop 2
CIETSI Administración de Base de Datos SQL Server 2022
b) Adicionamos el archivo secundario al Filegroup FG_VENTAS
ALTER DATABASE BdLibreria
ADD FILE
(NAME=BdLibreria_data2,
FILENAME ='D:\DATA\[Link]',
SIZE = 8MB,
MAXSIZE = 25MB,
FILEGROWTH = 2MB
) TO FILEGROUP FG_VENTAS
3. Crear un Filegroup llamado FG_COMPRAS y adicionarle el archivo secundario nombre
lógico BdLibreria_data3 y con nombre físico [Link], tamaño 5MB, tamaño
máximo 20MB y aumento 3MB
a) Creamos el Filegroup
ALTER DATABASE BdLibreria
ADD FILEGROUP FG_COMPRAS
b) Adicionamos el archivo secundario al Filegroup FG_COMPRAS
ALTER DATABASE BdLibreria
ADD FILE
(NAME=BdLibreria_data3,
FILENAME ='D:\DATA\[Link]',
SIZE = 5MB,
MAXSIZE = 20MB,
FILEGROWTH = 3MB
) TO FILEGROUP FG_COMPRAS
4. Crear un Filegroup llamado FG_LOGISTICA y adicionarle el archivo secundario nombre
lógico BdLibreria_data4 y con nombre físico [Link], tamaño 12MB, tamaño
máximo 200MB y aumento 8MB
a) Creamos el Filegroup
ALTER DATABASE BdLibreria
ADD FILEGROUP FG_LOGISTICA
b) Adicionamos el archivo secundario al Filegroup FG_LOGISTICA
ALTER DATABASE BdLibreria
ADD FILE
Ing. Wilson Gerardo Cardoza Llontop 3
CIETSI Administración de Base de Datos SQL Server 2022
(NAME=BdLibreria_data4,
FILENAME ='D:\DATA\[Link]',
SIZE = 12MB,
MAXSIZE = 200MB,
FILEGROWTH = 8MB
) TO FILEGROUP FG_LOGISTICA
5. En el Filegroup FG_LOGISTICA adicionarle el archivo secundario nombre lógico
BdLibreria_data5 y con nombre físico [Link], tamaño 15MB, tamaño máximo
250MB y aumento 10MB
ALTER DATABASE BdLibreria
ADD FILE
(NAME=BdLibreria_data5,
FILENAME ='D:\DATA\[Link]',
SIZE = 15MB,
MAXSIZE = 250MB,
FILEGROWTH = 10MB
) TO FILEGROUP FG_LOGISTICA
Visualizar los filegroups creados:
SELECT * FROM [Link]
Requerimientos solicitados
6. Modificar el tamaño del archivo de datos primario de 10MB a 40MB y el tamaño máximo
de 100MB a 150MB de la base de datos BdLibreria
ALTER DATABASE BdLibreria
MODIFY FILE (NAME = BdLibreria_data, SIZE=40MB, MAXSIZE=150MB)
GO
7. Renombrar los archivos de base de datos .mdf y .ldf
a) Visualizamos los nombres de los archivos físicos
EXEC sp_helpdb BdLibreria
Ing. Wilson Gerardo Cardoza Llontop 4
CIETSI Administración de Base de Datos SQL Server 2022
b) Cambiamos el estado de la base de datos en modo de usuario único y cerramos todas las
conexiones
ALTER DATABASE BdLibreria
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
c) Cambiamos los nombres lógicos
ALTER DATABASE BdLibreria MODIFY FILE (NAME = BdLibreria_data,
NEWNAME = BdTiendaLibros_data)
ALTER DATABASE BdLibreria MODIFY FILE (NAME = BdLibreria_log,
NEWNAME = BdTiendaLibros_log)
d) Cambiamos los nombres físicos y la ruta de ubicación de los archivos físicos
ALTER DATABASE BdLibreria MODIFY FILE (NAME =
'BdTiendaLibros_data', FILENAME = 'D:\DATA\[Link]')
ALTER DATABASE BdLibreria MODIFY FILE (NAME =
'BdTiendaLibros_log', FILENAME = 'D:\DATA\[Link]')
e) Desconectamos la base de datos
USE Master
GO
ALTER DATABASE BdLibreria SET OFFLINE
f) En el explorador de Windows, ubicamos archivos .mdf y .ldf y cambiamos el nombre
exactamente como se especificó en el punto anterior
g) Colocamos la base de datos en línea
ALTER DATABASE BdLibreria SET ONLINE
GO
h) Cambiamos el estado de la base de datos en modo de usuario múltiple
ALTER DATABASE BdLibreria SET MULTI_USER
GO
i) Visualizamos los nombres de los archivos de la base de datos
USE BdLibreria
GO
SELECT file_id, name As Nombre_Lógico, physical_name As
Nombre_Físico
FROM sys.database_files
Ing. Wilson Gerardo Cardoza Llontop 5
CIETSI Administración de Base de Datos SQL Server 2022
8. Cambiar el nombre de la base de datos
USE Master
GO
ALTER DATABASE BdLibreria SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
ALTER DATABASE BdLibreria MODIFY NAME = BdTiendaLibros
GO
ALTER DATABASE BdTiendaLibros SET MULTI_USER
GO
9. Mover los archivos de base de datos .mdf y .ldf a otra ubicación
a) Ejecutamos el siguiente script para poder establecer una nueva ubicación para los
archivos de base de datos SQL:
ALTER DATABASE BdTiendaLibros
MODIFY FILE (NAME = BdTiendaLibros_Data,
FILENAME = 'D:\DATA2\[Link]')
GO
ALTER DATABASE BdTiendaLibros
MODIFY FILE (NAME = BdTiendaLibros_Log,
FILENAME = 'D:\DATA2\[Link]')
GO
b) Cambiamos el estado de la base de datos en modo de usuario único y cerramos todas las
conexiones
ALTER DATABASE BdTiendaLibros
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
c) Desconectamos la base de datos
ALTER DATABASE BdTiendaLibros SET OFFLINE
GO
d) Cortamos y pegamos los archivos .mdf y .ldf en la nueva ubicación
e) Colocamos la base de datos en línea
ALTER DATABASE BdTiendaLibros SET ONLINE
GO
Ing. Wilson Gerardo Cardoza Llontop 6
CIETSI Administración de Base de Datos SQL Server 2022
j) Cambiamos el estado de la base de datos en modo de usuario múltiple
ALTER DATABASE BdTiendaLibros SET MULTI_USER
GO
f) Ejecutamos la siguiente consulta para verificar que el proceso haya terminado con éxito
SELECT name, physical_name AS Nueva_Ruta, state_desc AS Estado
FROM sys.master_files
WHERE database_id = DB_ID(N'BdTiendaLibros')
GO
10. Cambiar el nombre al filegroup FG_VENTAS por FG_SALES
ALTER DATABASE BdTiendaLibros
MODIFY FILEGROUP FG_VENTAS NAME = FG_SALES
GO
--Verificamos el cambio de nombre del Filegroup FG_VENTAS
SELECT Name FROM [Link]
11. Eliminar el archivo secundario [Link] que tiene como nombre lógico
BdLibreria_data4 de la base de datos BdTiendaLibros
Escenario A: Si el archivo está vacío
ALTER DATABASE BdTiendaLibros
REMOVE FILE BdLibreria_data4
GO
--Verificamos los archivos de la base de datos
EXEC sp_helpdb 'BdTiendaLibros'
Escenario B: Si el archivo contiene datos
a) Volvemos a crear el archivo [Link]'
ALTER DATABASE BdTiendaLibros
ADD FILE
(NAME=BdLibreria_data4,
FILENAME ='D:\DATA\[Link]',
SIZE = 12MB,
MAXSIZE = 200MB,
FILEGROWTH = 8MB
) TO FILEGROUP FG_LOGISTICA
Ing. Wilson Gerardo Cardoza Llontop 7
CIETSI Administración de Base de Datos SQL Server 2022
b) Creamos la tabla Pais
USE BdTiendaLibreria
GO
CREATE TABLE Pais(
CodPais int Identity Primary key,
NomPais varchar(35) not null
) ON FG_LOGISTICA
GO
c) Insertamos registros a la tabla Pais
BEGIN TRANSACTION
INSERT INTO Pais values('Brasil')
INSERT INTO Pais values('Bolivia')
INSERT INTO Pais values('Ecuador')
INSERT INTO Pais values('Perú')
INSERT INTO Pais values('Paraguay')
INSERT INTO Pais values('Venezuela')
INSERT INTO Pais values('Uruguay')
INSERT INTO Pais values('Colombia')
INSERT INTO Pais values('Argentina')
INSERT INTO Pais values('Chile')
COMMIT TRANSACTION
GO
1. Intente eliminar el archivo [Link]
ALTER DATABASE BdTiendaLibros
REMOVE FILE BdLibreria_data4
2. Dejamos vacío el archivo [Link]
DBCC SHRINKFILE (BdLibreria_data4, EMPTYFILE)
3. Eliminamos el archivo [Link]
ALTER DATABASE BdTiendaLibros
REMOVE FILE BdLibreria_data4
4. Verificamos los archivos de la base de datos
EXEC sp_helpdb 'BdTiendaLibros'
Ing. Wilson Gerardo Cardoza Llontop 8
CIETSI Administración de Base de Datos SQL Server 2022
Lenguaje de definición de datos y Restricciones
a) Creamos la tabla Cliente en el Filegroup FG_COMPRAS
CREATE TABLE Cliente(
IdCliente bigint Identity(1,1) Primary key,
Nombre varchar(50) not null,
FechaIng Datetime not null,
RUC char(11) not null,
Telefono char(9)
)ON FG_COMPRAS
b) Agregamos a la tabla Cliente la restricción Check en el campo RUC
ALTER TABLE Cliente
ADD CONSTRAINT Ck_Cliente_Ruc
CHECK (RUC LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]
[0-9][0-9]')
c) Agregamos a la tabla Cliente la restricción Unique en el campo RUC
ALTER TABLE Cliente
ADD CONSTRAINT Uq_Cliente_Ruc UNIQUE(RUC)
d) Creamos la tabla Editorial en el Filegroup PRIMARY
CREATE TABLE Editorial(
IdEditorial char(5) not null,
NomEditorial varchar(50) not null,
Email varchar(80) not null,
Pais varchar(30) not null
)
e) Agregamos a la tabla Editorial la restricción Primary Key en el campo IdEditorial
ALTER TABLE Editorial
ADD CONSTRAINT Pk_Editorial_Id Primary Key(IdEditorial)
f) Creamos la tabla Especialidad en el Filegroup PRIMARY
CREATE TABLE Especialidad(
IdEspecialidad Char(5) Not Null Primary Key,
NomEspecialidad Varchar(60) Not Null
Ing. Wilson Gerardo Cardoza Llontop 9
CIETSI Administración de Base de Datos SQL Server 2022
)
g) Creamos la tabla Libro en el Filegroup FG_LOGISTICA
CREATE TABLE Libro(
IdLibro bigint Identity(1, 1) Primary Key,
Titulo varchar(80) not null,
Stock tinyint not null CONSTRAINT Ck_Libro_Stock CHECK (Stock>=0),
PrecioUnidad smallmoney not null CONSTRAINT Ck_Libro_Pu CHECK
(PrecioUnidad > 0),
FechaPub smalldatetime not Null,
NumPag smallint not null CONSTRAINT Ck_Libro_NumPag CHECK (NumPag
> 0),
Edicion varchar(25) not null,
IdEdit char(5) not null Foreign Key References Editorial
(IdEditorial),
IdEspec char(5) Not Null Foreign Key References Especialidad
(IdEspecialidad)
) ON FG_LOGISTICA
h) Creamos la tabla Pedido en el Filegroup FG_VENTAS
CREATE TABLE Pedido(
NumPedido bigint Identity(1,1) Primary Key,
FechaPedido datetime not null,
FechaEntrega datetime not null,
IdCli bigint not null, Constraint Fk_cliente Foreign key(IdCli)
References Cliente(IdCliente)
) ON FG_SALES
i) Creamos la tabla Detalle_Pedido en el Filegroup FG_VENTAS
CREATE TABLE Detalle_Pedido(
NumPed bigint not null,
IdLib bigint not null,
Cantidad tinyint,
PrecioVenta smallmoney not null,
Constraint Fk_pedido Foreign key(NumPed) References
Pedido(NumPedido),
Constraint Fk_libro Foreign key(IdLib) References Libro(IdLibro),
Constraint Pk_detalle_pedido Primary Key(NumPed, IdLib)
) ON FG_SALES
Ing. Wilson Gerardo Cardoza Llontop 10
CIETSI Administración de Base de Datos SQL Server 2022
Visualizar información de tablas y filegroups:
SELECT [Link], [Link], [Link], I.index_id, [Link]
FROM [Link] I INNER JOIN [Link] FG ON
I.data_space_id = FG.data_space_id INNER JOIN
sys.all_objects O ON I.object_id = O.object_id WHERE
I.data_space_id = FG.data_space_id AND [Link] = 'U'
Visualizar las restricciones de una tabla:
EXEC sp_helpconstraint 'Cliente'
Visualizar las tablas creadas:
SELECT Name FROM [Link]
Ing. Wilson Gerardo Cardoza Llontop 11
CIETSI Administración de Base de Datos SQL Server 2022
Visualizar información de una tabla
EXEC sp_help 'Cliente'
j) Finalmente generamos el diagrama de la base de datos creada
1. Desglosamos la base de datos BdTiendaLibros
2. Hacemos anticlic en la carpeta Diagrama de base de datos y seleccionamos la opción
Nuevo diagrama de base de datos
Ing. Wilson Gerardo Cardoza Llontop 12
CIETSI Administración de Base de Datos SQL Server 2022
3. Se presenta el siguiente mensaje y hacemos clic en el botón Sí
4. Se muestra la siguiente ventana con las tablas las mismas que las seleccionamos y
hacemos clic en el botón Agregar, esperamos que se agreguen la tablas y luego clic en el
botón Cerrar
5. Se muestra el diagrama de la base de datos BdTiendaLibros
Ing. Wilson Gerardo Cardoza Llontop 13
CIETSI Administración de Base de Datos SQL Server 2022
k) Adicionar el campo Direccion a la tabla Cliente
ALTER TABLE Cliente
ADD Direccion varchar(30)
l) Modificar el tamaño del campo Direccion en la tabla Cliente
ALTER TABLE Cliente
ALTER COLUMN Direccion varchar(50)
m) Agregar una restricción CHECK a la columna Cantidad de la tabla Detalle_Pedido que sea
mayor a cero
ALTER TABLE Detalle_Pedido
ADD CONSTRAINT Ck_Detallepedido_cantidad CHECK(Cantidad > 0)
n) A la columna Cantidad de la tabla Detalle_Pedido colocarle que sea NOT NULL
ALTER TABLE Detalle_Pedido
ALTER COLUMN Cantidad tinyint NOT NULL
o) Renombrar el Campo Cantidad a Cant de la tabla Detalle_Pedido
EXEC sp_rename 'Detalle_Pedido.Cantidad', 'Cant', 'COLUMN'
Nota: Primero debe eliminarse la restricción asignada al campo cantidad.
ALTER TABLE Detalle_Pedido
DROP CONSTRAINT Ck_Detallepedido_cantidad
p) Renombrar el nombre de la tabla Detalle_Pedido a Detalle_Pedidos
Ing. Wilson Gerardo Cardoza Llontop 14
CIETSI Administración de Base de Datos SQL Server 2022
EXEC sp_rename 'Detalle_Pedido', 'Detalle_Pedidos'
q) Eliminar el campo Direccion en la Tabla Cliente
ALTER TABLE Cliente
DROP COLUMN Direccion
r) Eliminar los campos Cant y PrecioVenta de la tabla Detalle_Pedidos
ALTER TABLE Detalle_Pedidos
DROP COLUMN Cant, PrecioVenta
s) Eliminar la restricción del campo RUC de la tabla Cliente
ALTER TABLE Cliente
DROP CONSTRAINT Ck_Cliente_Ruc
Ing. Wilson Gerardo Cardoza Llontop 15