Descripción general del proyecto
Este repositorio contiene el código y los recursos necesarios para modelar una base de datos transaccional utilizando SQL Server. El objetivo principal es estructurar las entidades y relaciones a partir de un archivo de texto descargado de Kaggle, luego poblar las tablas correspondientes mediante un procedimiento almacenado y realizar un análisis de datos con SQL Server. El objetivo es proporcionar una estructura completa para el almacenamiento y análisis de datos. En este proyecto, se han seguido los siguientes pasos para llevar a cabo el modelado y la carga de datos:
Recolección de Requisitos
Diseño Conceptual
Diseño Lógico
Diseño Físico
Implementación
Pruebas y Validación
Recolección y Análisis de Datos
Para modelar una base de datos transaccional basada en los datos de los archivos .txt descargados de Kaggle, podemos seguir un proceso estructurado, desde la recolección y análisis de los datos hasta el diseño y creación de la base de datos.
Entender los Datos
Es crucial comenzar por comprender la estructura y el contenido de los datos. Esto implica revisar las cabeceras y el formato de los archivos para identificar las columnas y tipos de datos que se manejarán. A continuación se muestra un ejemplo de cómo se ven las cabeceras de los datos en el archivo:
Cabeceras de los Datos
Al revisar las cabeceras, podemos determinar qué tipo de información está contenida en cada columna y cómo se relacionan entre sí. Este paso es fundamental para planificar cómo los datos se modelarán en la base de datos. La siguiente imagen muestra un ejemplo detallado de las cabeceras y algunos datos de muestra:
Las columnas identificadas en los datos son las siguientes:
Características de los Datos:
Modelo Físico OLTP

Creación de la Base de Datos
En esta sección se describen los comandos utilizados para la creación de la base de datos en SQL Server. Estos comandos se aplican a lo largo del desarrollo de la base de datos para definir la creación de la base de datos, tablas, restricciones y otras estructuras necesarias. Esta documentación sirve como referencia para entender y reproducir el proceso de creación de la base de datos.
Comandos Utilizados
CREATE DATABASE:
Se utiliza para crear un nuevo esquema en la base de datos, que sirve como un contenedor para las tablas y otros objetos.
IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'Importaciones'):
BEGIN ... END:
CREATE DATABASE Importaciones:
Este comando crea la base de datos llamada 'Importaciones'.
ON PRIMARY:
LOG ON:
USE Importaciones:
GO:
Este script asegura que la base de datos 'Importaciones' se cree solo si no existe previamente en el servidor de SQL Server. Una vez creada, cambia el contexto para que todos los comandos posteriores se ejecuten dentro de esta base de datos.
CREATE TABLE:
Se utiliza para crear una nueva tabla dentro del esquema especificado. Define la estructura de la tabla, incluyendo las columnas y sus tipos de datos.
IF OBJECT_ID('marca', 'U') IS NOT NULL:
TRUNCATE TABLE marca:
CREATE TABLE marca:
IDENTITY:
Se utiliza para definir una columna de tipo entero que se auto incrementa automáticamente en SQL Server. Es útil para crear identificadores únicos y autoincrementales para las filas de una tabla. Al especificar IDENTITY, se puede definir el valor inicial y el incremento para la columna.
id_marca INT IDENTITY(1,1) NOT NULL
En este ejemplo:
La columna id_marca se llenará automáticamente con valores únicos y secuenciales a medida que se inserten nuevas filas en la tabla, sin necesidad de especificar manualmente el valor para esta columna.
PRIMARY KEY: Se utiliza para definir una clave primaria en una tabla, que asegura la unicidad y no nulidad de los valores en una columna o conjunto de columnas. UNIQUE: Se utiliza para asegurar que los valores en una columna o conjunto de columnas sean únicos en la tabla. FOREIGN KEY: Se utiliza para definir una clave foránea en una tabla, que crea una relación entre columnas de diferentes tablas. Asegura la integridad referencial entre las tablas. Tipos de Datos Utilizados en el Modelamiento En el modelamiento de la base de datos, se han utilizado diferentes tipos de datos para representar adecuadamente las características y restricciones de los datos que se van a almacenar. Los tipos de datos seleccionados se basan en un análisis detallado de los datos proporcionados y en las necesidades específicas del sistema. A continuación, se describen algunos de los tipos de datos clave utilizados:
El uso adecuado de estos tipos de datos garantiza que los datos se almacenen de manera eficiente y que las operaciones sobre ellos sean rápidas y precisas. Además, se asegura la integridad de los datos al definir restricciones y reglas específicas para cada columna.

Store Procedure para la Carga de Información En el procedimiento almacenado creado para la carga de información, se utilizan diversos comandos y técnicas para asegurar una limpieza y una carga adecuada de los datos. A continuación, se describen los principales elementos y comandos utilizados: Comandos Utilizados UPPER: Se utiliza para convertir todos los datos a mayúsculas, asegurando así una homologación de la información. LTRIM y RTRIM: Se utilizan para eliminar espacios en blanco al inicio y al final de los datos. UPDATE: Se utiliza para realizar una limpieza y actualización de los datos. Por ejemplo, en casos donde se detectó que la marca "GREAT DANE" estaba escrita incorrectamente como "RATE DANE". DELETE: Se utiliza para eliminar la información de las tablas antes de la ejecución del stored procedure, evitando así errores al momento de la población. INSERT INTO: Se utiliza para eliminar la información de las tablas antes de la ejecución del stored procedure, evitando así errores al momento de la población. LEFT JOIN e INNER JOIN: Se utilizan para poblar tablas que dependen de otras tablas de catálogo previamente pobladas, de manera que se puedan obtener sus llaves primarias. Bucle WHILE: Se utiliza para recorrer los registros de la tabla temporal y, en la recursividad, extraer las llaves de cada catálogo para poblar la tabla base que contiene los registros de las importaciones. GROUP BY: Se utiliza para agrupar los datos de los catálogos al momento de la carga. ORDER BY: Se utiliza para ordenar los datos al momento de insertarlos, asegurando que las claves automáticas se generen en el orden correcto.