El éxito de una aplicación depende directamente de su estructura de datos. Aprender como definir e identificar entidades y atributos es el primer paso crítico para cualquier desarrollador que aspire a construir sistemas escalables. Si el modelo inicial es incorrecto, el código del backend se volverá complejo y las consultas a la base de datos serán ineficientes.
En esta guía te enseñaremos una metodología práctica para extraer estos componentes a partir de requerimientos reales del mundo del software.
¿Qué es una Entidad?
En el modelo entidad relacion, una entidad es cualquier objeto, persona, concepto o evento del mundo real sobre el cual el sistema necesita almacenar información.
Regla de oro: Si puedes identificarlo con un sustantivo y tiene características que lo describen, es una entidad.
- Objetos físicos: Producto, Libro, Vehículo.
- Personas: Usuario, Cliente, Empleado.
- Conceptos/Eventos: Venta, Curso, Inscripción.
¿Qué son los Atributos de una Entidad?
Los atributos de una entidad son las propiedades o características que describen a esa entidad. Son los datos específicos que guardaremos en las columnas de nuestras tablas.
- Para una entidad Usuario, sus atributos serían:
nombre,email,fecha_nacimiento.
Metodología: Cómo identificar entidades y atributos paso a paso
Para no fallar en el proceso de como hacer un erd (Diagrama Entidad Relación), sigue estos pasos analizando los requerimientos del cliente:
1. Identificar Sustantivos (Entidades)
Lee la descripción del proyecto y subraya los sustantivos. Aquellos que representan “cosas” con identidad propia suelen ser tus entidades.
2. Identificar Adjetivos o Propiedades (Atributos)
Busca palabras que describan a esos sustantivos. Por ejemplo: “El producto tiene un precio, un nombre y un stock”.
3. Validar la Relevancia
No todo sustantivo es una entidad. Si solo necesitas guardar un dato simple (como “Color”), quizás sea un atributo de “Producto” y no una entidad propia.
Tabla: Ejemplos de entidades y atributos
| Entidad | Atributos (Ejemplos) | Tipo de Atributo |
|---|---|---|
| Cliente | nombre, rfc, telefono | Descriptivo |
| Venta | folio, fecha, total | Evento |
| Producto | sku, precio, marca | Objeto |
| Cita Médica | fecha_hora, consultorio | Concepto |
Caso Práctico: Modelando una Plataforma de Cursos
Supongamos que el cliente dice: “Necesito un sistema donde los alumnos se inscriban a cursos. Los cursos tienen un título y una descripción. Debo saber en qué fecha se inscribió el alumno”.
Análisis de componentes:
- Entidad 1: Alumno (
id,nombre,email). - Entidad 2: Curso (
id,titulo,descripcion). - Atributo de relación:
fecha_inscripcion(Dato que nace cuando el alumno se une al curso).
Ejemplo de Pseudo-Modelado:
ENTIDAD: Alumno
- id (PK)
- nombre
- email
ENTIDAD: Curso
- id (PK)
- titulo
- descripcion
RELACIÓN: Inscripción (Alumno - Curso)
- fecha_inscripcion
Errores comunes al identificar componentes
- Confundir Atributos con Entidades: Crear una tabla para “Nombre” cuando debería ser una columna de “Usuario”.
- Atributos Multivaluados: Guardar varios teléfonos en una sola columna. Lo correcto es crear una entidad “Teléfono” relacionada.
- Ignorar Atributos Derivados: Intentar guardar la “Edad” en lugar de la “Fecha de Nacimiento”. La edad cambia cada año; la fecha de nacimiento es un dato estático del cual se deriva la edad.