Diseñar y crear bases de datos en SQL

En un artículo pasado estuvimos viendo como empezar a instalar un gestor de base de datos de SQL. Ahora daremos un repaso a cómo podemos diseñar y crear bases de datos en SQL. En este post te familiarizas con los siguientes temas: creación de una base de datos, creación de una tabla sencilla y conocer tipos de datos.

SQL Server debe de contener por lo menos dos archivos. Uno de ellos es el log de transacciones y el otro un de grupo lógico. El grupo lógico es donde está contenida la mayor parte de información, el grupo lógico por default es el grupo Primary.

Nuestra base de datos entonces contiene un archivo log de transacciones con extensión ldf y también un grupo lógico primary asociado un archivo con la extensión mdf. También los grupos lógicos pueden tener asociados a otros grupos lógicos o extensiones denominados en archivos con extensión ndf.

Diseñar y crear bases de datos en SQL

Los archivos ndf tienen como objetivo distribuir las cargas de almacenamiento de datos en distintos discos duros. La recomendación sería que los archivos lógicos los mdf y ndf estén almacenados en distintos discos duros, para aprovechar el rendimiento del servidor y recursos de cómputo.

Diseñar y crear bases de datos en SQL

Ahora bien, vamos a empezar a crear una base de datos en SQL. Para ello debemos ir al SQL Server Management Studio (SSMS) y proceder a la creación de base de datos. Para hacerlo vía código debemos ejecutar una nueva consulta o new query. O presionando las teclas Crtl +N.

En el siguiente código SQL debemos tomar en cuenta que después de poner la ruta path de salvado de los archivos mdf y ldf, estoy utilizando las instrucciones size y filegrowth. En donde size indicamos el tamaño inicial de la base de datos y el filegrowth si el tamaño de la base de datos se llena, indicamos el crecimiento de la misma.

---Crear una base de datos
Create database Supermercado
on Primary ---Crea sobre el grupo lógico
(name=SupermercadoPrimary, filename='C:\DataBase\supermercado.mdf',
size=50MB, filegrowth=25%) ---Se ha creado el path donde se guardará el archivo mdf
log on
(name=SupermercadoLog, filename='C:\DataBase\supermercado.ldf' 
, size=25MB, filegrowth=25%) ---Se ha creado el path donde se guardará el archivo ldf
GO

Después de escribir el código SQL en la consulta o query, para ejecutar el código basta dar clic en el botón de ejecutar query o presionar la tecla F5. Al ejecutar la consulta notarás que se abre automáticamente un panel de mensajes. Si la consulta fue bien realizada te regresa el mensaje “Command(s) completed successfully“.

Diseñar y crear bases de datos en SQL

También notarás que después de mandar la instrucción de creación de base de datos, en el panel de explorador de objetos en Databases estará creada la base de datos Supermercado.

Agregando nuevos filegroups en SQL para una base de datos

Ahora que ya tenemos creada la base de datos, mencioné al principio que esta puede contener varios grupos lógicos. En donde el principal grupo lógico por default y que por ende el primario, vendría siendo el grupo lógico con extensión de archivo mdf. Pero también se puede agregar extensiones de grupos lógicos ndf, con el objetivo de distribuir las cargas de trabajo en la base de datos.

En la siguiente consulta SQL voy a crear un nuevo grupo lógico o filegroup y lo voy a asociar a un archivo ndf.

Alter Database Supermercado ---Comando Alter es para hacer una modificación, en este caso la base de datos
add filegroup Ventas ---Creamos un nuevo grupo lógico llamado ventas
go

Alter database Supermercado
add file (name=SupermercadoVentas, filename='C:\DataBase\SupermercadoVentas.ndf'
,size=50MB, filegrowth=25%) to filegroup Ventas
go

Al ejecutar la consulta se han creado el grupo lógico adicional.

 

En las propiedades de la base de datos supermercado, en la sección de files(archivos) podemos ver listados los archivos lógicos y el archivo de logs.

Listado de filegroup en base de datos SQL

Cambiar el filegroup predeterminado en SQL

Hemos estado trabajando con dos grupos lógicos de trabajo una que es el grupo PRIMARY y este último que fue Ventas, estos grupos los podemos ver en las propiedades de la base de datos, como se muestra a continuación en la siguiente imagen.

Podemos apreciar que el filegroup está activado como default, esto significa que todas las tablas nuevas que se crean irán a ese filegroup.

Cambiar el filegroup predeterminado en SQL

Si quisiéramos cambiar el default al filegroup de Ventas, bastase con dar clic en la casilla correspondiente. Pero te explico la otra forma de hacerlo por medio de una consulta SQL.

Alter database Supermercado
modify filegroup [Ventas] default --- Se modifica el filegroup default a Ventas
go

Después de ejecutarlo nos regresa el mensaje “The filegroup property ‘DEFAULT’ has been set.

Diseño de tablas para una base de datos SQL

Antes de pasar al tema de tablas en una base de datos de SQL, valdría la pena comentar que es una tabla o como está conformada y cuáles son sus características.

Pues bien, una tabla como los define Microsoft SQL es:

Las tablas son objetos de base de datos que contienen todos sus datos. En las tablas, los datos se organizan con arreglo a un formato de filas y columnas, similar al de una hoja de cálculo. Cada fila representa un registro único y cada columna un campo dentro del registro.

Por ejemplo, una hoja de cálculo de Excel contiene tablas y esas tablas columnas y filas. Si la diseño en Excel una tabla quedaría de la siguiente forma.

En la tabla anterior diseñada en Excel, podemos ver varias características. La primera característica es que hay encabezados en la tabla, estos encabezados serían los campos en una base de datos. La segunda característica son las filas, esta serían los registros en una base de datos (donde estos contenidos los valores).

La última característica que notamos en la tabla anterior es el campo Codigo_Cliente y este campo contiene valores únicos que no deben de ser repetidos en una tabla.

Ahora vamos a llevar a cabo la creación de la tabla por medio de SQL, por medio de una consulta.

Use Supermercado
go

Create table clientes(
codigocliente int identity(1,1) not null primary key,
nombre varchar(100),
direccion varchar(200),
telefono varchar(20),
email varchar(50),
fechanacimiento date
)
go

Breve explicación tipos de datos en campos de tabla SQL

Algo que comentar los nombres de campos cuando se crean, siempre es importante declarar el tipo de dato que son. Por ejemplo, para un nombre el tipo de dato sería varchar, lo cual significa texto. Para el campo codigocliente tenemos el tipo int, lo cual significa números enteros. Para el campo fechanacimiento se usa el tipo date, para enmarcar fechas.

Habrás notado que en el campo codigocliente se utilizó la siguiente expresión identity(1,1), es como un contador que indica que va a empezar un conteo del número uno y así será creciendo de uno en uno. También se le puso la instrucción de not null, la cual estamos solicitando que el registro no contenga valores vacíos. Por último, asociamos la llave primaria o primary key al campo codigocliente. ¿Porque es importante la primary key? esto nos va a servir para relacionar con otras tablas en la base de datos que tenga en común ese mismo campo. Estos temas se ven en las uniones de tablas (SQL Joins).

Diseñar y crear bases de datos en SQL

Con esto ya dimos una explicación de cómo puedes crear una base de datos desde cero, crear los filegroups y además diseñar una tabla para la base de datos SQL.

Autor: DonBloguero

Desarrollador Backend

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *