Skip to content

rociobenitez/car-fleet-sql-db

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Base de Datos Relacional de Gestión de Flota de Coches

Este repositorio contiene el diseño, estructura y scripts SQL para una base de datos relacional orientada a la gestión de flotas de vehículos. El modelo está optimizado para almacenar y consultar información sobre coches, revisiones técnicas, pólizas de seguro, características técnicas y estructura de marcas.

Archivos

📁 car-fleet-sql-db/
├── script_mysql.sql        → Script SQL completo para MySQL
├── script_postgresql.sql   → Versión adaptada a PostgreSQL
├── coches.csv              → Dataset con más de 80 coches
├── coches.sql              → Archivo de base de datos para MySQL
├── diagrams.pdf            → Diagrama E-R completo
└── README.md

Enfoque de Negocio

La base de datos está pensada como un sistema modular y escalable para compañías que gestionan una flota de vehículos, como:

  • Empresas de renting o leasing
  • Concesionarios de automóviles
  • Aseguradoras
  • Talleres con flota asociada
  • Plataformas de movilidad (sharing, logística, etc.)

Este sistema facilita un seguimiento detallado de:

  • Vehículos y sus atributos (modelo, marca, color, grupo, kms, fecha de compra)
  • Historial de revisiones con control de kilometraje, fechas e importes
  • Pólizas de seguro activas por vehículo y aseguradora correspondiente
  • Monedas utilizadas en las transacciones

Modelo Relacional

La base de datos está compuesta por 9 tablas relacionales conectadas a través de claves primarias y foráneas.

  • Coche: Información clave de cada vehículo (matrícula, modelo, kms, etc.).
  • Revisión: Registro de mantenimientos y revisiones, con importe y fecha.
  • Moneda: Control multimoneda para las transacciones de revisiones.
  • Seguro: Pólizas y fecha de alta asociadas a cada coche.
  • Aseguradora: Catálogo de compañías aseguradoras.
  • Modelo: Modelos específicos de vehículos.
  • Marca: Marca a la que pertenece cada modelo.
  • Grupo: Agrupación de marcas (conglomerados automovilísticos).
  • Color: Catálogo de colores disponibles.

📎 Consulta el diagrama completo en diagrams.pdf o en este enlace (diagrams.net).

Relaciones y Cardinalidad

  • 1:N → Un modelo pertenece a una marca, una marca a un grupo, etc.
  • 1:1 → Un coche tiene su póliza activa más reciente (seguro actual).
  • N:M simulada → Se pueden registrar múltiples pólizas por coche a lo largo del tiempo.
  • 1:N → Un coche puede tener múltiples revisiones (historial técnico).

Scripts Disponibles

En la raíz del repositorio encontrarás los siguientes archivos SQL:

  • script_mysql.sql: Script completo para la creación y carga de datos en MySQL.
  • script_postgresql.sql: Versión adaptada para PostgreSQL (estructura y consultas).

Datos y Consultas

Incluye más de 80 modelos de coches, pólizas históricas, colores, aseguradoras, y un histórico de revisiones técnicas con importes y fechas en varias monedas (EUR, USD, COP, MXN).

Algunas consultas destacadas incluidas:

-- Vehículos con su marca, grupo y aseguradora actual
SELECT
  c.matricula,
  c.fecha_compra,
  m.nombre_modelo,
  ma.nombre_marca,
  g.nombre_grupo,
  col.nombre_color,
  c.kms_totales,
  s.n_poliza,
  a.nombre_aseguradora
FROM coche c
JOIN modelo m ON c.id_modelo = m.id_modelo
JOIN marca ma ON m.id_marca = ma.id_marca
JOIN grupo g ON ma.id_grupo = g.id_grupo
JOIN color col ON c.id_color = col.id_color
JOIN (
  SELECT matricula, MAX(fecha_alta_seguro) AS ultima_fecha
  FROM seguro
  GROUP BY matricula
) s_max ON s_max.matricula = c.matricula
JOIN seguro s ON s.matricula = s_max.matricula AND s.fecha_alta_seguro = s_max.ultima_fecha
JOIN aseguradora a ON s.id_aseguradora = a.id_aseguradora
ORDER BY c.matricula;

Cómo usar este repositorio

  1. Clona el repositorio:
git clone git@github.com:rociobenitez/car-fleet-sql-db.git
  1. Carga el script en tu gestor de base de datos
  • Para MySQL: importa script_mysql.sql
  • Para PostgreSQL: usa script_postgresql.sql
  1. Explora los datos
  • Revisa la estructura de tablas.
  • Lanza consultas predefinidas.
  • Usa los datos reales del CSV coches.csv si quieres importarlos como tabla de referencia.

About

Scripts SQL para una base de datos relacional orientada a la gestión de flotas de vehículos.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published