3. Diseñando tu modelo de datos conceptual

Video síntesis de este recurso #

Cómo utilizar este recurso #

Si ya sabes qué es una base de datos y tienes claro cuáles son tus objetivos y consultas a la base de datos (deberás tener una comprensión clara de estos problemas para seguir adelante con este recurso), entonces es tiempo de diseñar su modelo de datos conceptuales y determinar sus listas controladas de términos.

En el contexto de nuestra línea de tiempo para desarrollar tu base de datos, te encuentras aquí:

Si estás en la etapa de descubrir de qué se trata esto, entonces la primera sección de este recurso es para ti. Allí, explicamos qué es un modelo de datos conceptual, por qué es importante usarlo y mapeamos sus componentes principales: entidades, relaciones y atributos.

Si ya tienes algún tipo de sistema o has estado pensando en un modelo de datos para organizar tus datos, pero sigue siendo demasiado complicado; tienes dificultades para capturar interacciones entre los elementos, o no puedes darle un sentido -de manera clara y sistemática- a las relaciones de la vida real, es posible que desees explorar más a fondo la segunda sección del recurso. ¡Allí, ofrecemos pasos clave, consejos y ejercicios para que puedas afrontar esto!

En la tercera sección, encontrarás algunas notas sobre desafíos y consejos que quizás desees conocer y tener en mente. Compartimos la experiencia de Berkeley Copwatch para mostrar cómo han abordado situaciones desafiantes relacionadas con su modelo de datos. También proporcionamos una breve actividad que esperamos agregue valor a tu proceso de diseño de un modelo de datos conceptual.

Nuestra intención al crear este recurso es presentarte y compartir una forma de pensar en torno a cómo organizar tu información. Hemos diseñado esto para profesionales y defensores de los derechos humanos que no necesariamente tienen experiencia en la gestión de información. Sabemos que esto puede parecer complicado al principio, pero una vez que comprendas y revises los conceptos básicos, ¡verás todos los beneficios de ahondar en este proceso!

¿Qué es un modelo de datos conceptual y porqué es importante? #

Un modelo de datos conceptual (también conocido como “esquema conceptual”) es una descripción de alto nivel de las necesidades de información que subyacen al diseño de una base de datos. Representa los conceptos principales de tu base de datos y las relaciones entre ellos. A menudo se representa gráficamente mediante un diagrama de flujo u otro tipo de diagrama.

Es importante determinar un modelo de datos conceptual apropiado para tu información. Si se hace bien, el modelo de datos conceptual te permitirá responder a las consultas a tu base de datos (las preguntas que deseas que tu información responda), y superar algunos de los desafíos que pueden surgir al usar una hoja de cálculo como medio principal para gestionar la información. Si quieres revisar esto, vuelve a la sección anterior: “¿Qué es una base de datos y porqué la necesito?”.

El proceso de conceptualizar un modelo de datos nos permite traducir las relaciones del mundo real dentro de un marco para comprender nuestros datos.

Recuerda, no necesitas saber cómo tu software de base de datos conectará toda esta información. Para eso sirve un modelo de datos técnico. Por ahora, solo queremos ofrecer un mapa de lo que creemos que debe capturarse, y cómo esto se relaciona conceptualmente con otras entidades.

Para hacer esta idea más concreta, comenzaremos por dar un ejemplo para describir los componentes básicos de un modelo de datos, y luego compartiremos los pasos que puedes seguir para diseñar tu propio modelo.

Estructura general de un modelo de datos conceptual #

Empecemos con un ejemplo. Supongamos que una organización quiere responder a esta pregunta: ¿cuántos presos están detenidos ilegalmente en cada prisión del país x?

Para responder a esto, un modelo de datos conceptual apropiado incluirá al menos dos entidades (‘Prisionero’ y ‘Prisión’, por ejemplo), conectadas por una relación. Determinar el número de presos detenidos en cada prisión requiere una relación, un “puente” entre estas dos entidades (‘Prisionero’ y ‘Prisión’), que permita el acceso a la información de cada entidad. Los diferentes atributos surgen como ramificaciones de cada entidad, y sirven para describirlas.

Un posible modelo de datos conceptuales para este ejemplo podría verse de la siguiente manera:

Imagen 1

Este diagrama representa la estructura básica y los componentes de un modelo de datos conceptual. Las entidades se representan con un cuadrado. Los atributos, con un óvalo o elipse.
La línea sólida gruesa () entre ‘Prisionero’ y ‘Prisión’ representa una relación entre estas entidades. La línea discontinua (- – -) significa que se trata de un atributo de esta entidad.

Si quisiéramos plasmar esto de una manera puramente abstracta, el mismo diagrama se vería así:

Imagen 2

Componentes esenciales de un modelo de datos conceptual #

Diseñar un modelo de datos conceptual requiere una comprensión de los tipos de componentes que se van a describir, y de cómo se relacionan entre sí.

Como puede verse en los diagramas anteriores, hay tres componentes básicos en cualquier modelo de datos:

  1. Entidades: cosas de la vida real -personas, objetos, eventos, entre otras- sobre las que la base de datos contiene información. (por ejemplo, ‘Oficiales’, ‘Incidentes’, ‘Videos’, ‘Prisioneros’, ‘Prisiones’). Los tipos de entidad (entity type) describen el tipo de información que se está registrando (‘Persona’, ‘Prisión’, ‘Evento’, etc.).
  2. Relaciones: cómo se asocian las diferentes entidades entre sí. Estas relaciones entre los diferentes elementos de su modelo de datos pueden ser relaciones de la vida real. A menudo, una relación se expresa utilizando la fórmula sustantivo-verbo-sustantivo (por ejemplo, preso “detenido en” prisión).
  3. Atributos: aspectos de las entidades y/o relaciones. En una base de datos, los atributos se mostrarán como campos en cada entidad (por ejemplo, para una entidad ‘Oficial’, los atributos podrían ser: ‘Nombre’, ‘Apellido’, ‘Género’, ‘Ubicación’, ‘Número de escudo’).

Un proceso paso a paso para diseñar tu modelo de datos conceptual #

Paso 1: Identifica tus entidades (o tipos de entidades) #

Como se indicó en la sección anterior, una entidad es un objeto único del mundo real que va a registrarse. Por único queremos decir que, para ser una entidad, este objeto necesita ser distinguible de otros (una persona específica, un lugar específico, por ejemplo).

Para comenzar a hacer una lluvia de ideas sobre las entidades necesarias para tu modelo de datos conceptual, vuelve sobre las preguntas que desea que respondan tus datos (tus preguntas de investigación y consultas a la base de datos). Pregúntate: ¿cuáles son las cosas de la vida real (personas, objetos, instituciones, incidentes) sobre las que estamos haciendo preguntas?

Por ejemplo, la organización que quiere saber el número de presos detenidos ilegalmente en cada prisión, tendrá como mínimo las entidades ‘Prisión’ y ‘Prisionero’. Un punto de partida para identificar estas entidades puede ser a través de completar un “Formulario de prisionero”, ya sea en formato papel o en un dispositivo, llenado por quien esté encargado de recopilar la información.

Al ver esta información, nos preguntamos, ¿cuáles son las cosas de la vida real (personas, objetos, instituciones, incidentes) sobre las que estamos haciendo preguntas? Hay dos tipos de entidades que destacan de esta información:

✍🏾 Ahora puedes intentar identificar tus entidades y tipos de entidades. Usa el Ejercicio 1 en esta hoja de trabajo para escribir una lista de las cosas de la vida real (personas, objetos, instituciones, incidentes) y luego agrúpalas en entidades más amplias que tengan atributos/propiedades similares. Es posible que debas bocetar algunos modelos de datos conceptuales diferentes antes de determinar cuál es el mejor enfoque para tu información. [Estamos trabajando en un recurso que ofrecerá múltiples modelos de datos utilizando la misma información. ¡Estén atentos!]

Paso 2: identifica relaciones entre entidades #

El siguiente paso es generar las relaciones que queremos examinar entre los tipos de entidad. En el contexto de este recurso, el término relación significa un estado de conexión o una asociación entre dos cosas en una base de datos (Harpring and Baca, 2010).

Las relaciones definirán cómo interactúan las entidades. Por ejemplo, un acto puede tener varias víctimas, el responsable de un crimen puede estar involucrado en varios actos, etc.

Siguiendo con nuestro ejemplo anterior, la relación que conecta las entidades ‘Kevin Costa’ (el preso) y ‘Lima City Prison’ (la prisión) sería ‘Está detenido en’:

Hay muchas relaciones posibles que podría imaginar, pero concéntrese en crear aquellas que:

  1. Reflejan las relaciones de la vida real.
  2. Pueden responder a sus preguntas de investigación, al tiempo que son las más simples (dentro de lo posible).
  3. Usan la fórmula: entidad (sustantivo) — verbo — entidad (sustantivo)

Ejemplos de relaciones en un modelo de datos conceptual relacionados con violaciones de derechos humanos:

  • Un preso – está detenido en – prisión
  • Una víctima – estuvo involucrada en – un acto/incidente
  • Un perpetrador – estuvo involucrado en – un acto/incidente
  • Un video – es una representación de – un acto/incidente
  • Un incidente — tiene como fuente secundaria — un artículo de noticias
  • Una persona – es miembro de – un grupo (por ejemplo, un grupo armado)
  • Acto de violación — se vincula con — documento
  • Acto de violación – declaración relacionada – recomendación de la ONU
  • Un grupo armado – está presente en – un estado
  • Una empresa – explota – trabajadores
  • Un caso — se vincula con — un caso

✍🏾 Utiliza el ejercicio 2 de esta ficha de ejercicios para trabajar con tus ideas para las relaciones.

Paso 3: identifica atributos para tus entidades #

Los atributos describen una entidad. A veces también describen una relación (pero profundizaremos sobre esto en otro recurso).

Técnicamente hablando, un atributo identifica, nombra y define una característica o propiedad de una entidad, y determina los campos de una base de datos.

Comencemos de manera simple, por nombrar qué atributos queremos capturar para cada entidad.

Para identificar tus atributos, vuelve a tu lista de entidades. Pregúntate: ¿Cuáles son las características que debo conocer sobre cada una de mis entidades para poder responder a mis consultas a la base de datos? Por ejemplo, una entidad llamada ‘Prisionero’ puede incluir: ‘Nombre’, ‘Raza’, ‘Género’, ‘Estado migratorio’, ‘Estado de salud’, etc.

La organización interesada en conocer el número de presos detenidos ilegalmente en cada prisión del país X, debe determinar los atributos de las entidades ‘Prisión’ y ‘Prisionero’. Por ejemplo:

  • Un ‘Prisionero’ (Kevin Costa, en nuestro ejemplo) tiene atributos importantes que incluyen ‘Nombre’, ‘Fecha de nacimiento’, ‘Sexo’, ‘Fecha de detención’ y ‘Cargos’.
  • Una ‘Prisión’ (‘Lima City Prison’) tiene igualmente atributos importantes como ‘Nombre’, ‘Ubicación’ y ‘País de jurisdicción’.

Aquí podemos ver los atributos que pertenecen a la entidad ‘Prisionero’:

Está claro que falta una pieza de información en el ‘Formulario de prisionero’: los cargos. Así que esto es algo que tendría que ser investigado más a fondo.

Cuando miramos los atributos para el tipo de entidad ‘Prisión’ vemos que el ‘Formulario de prisionero’ no proporciona mucha información, pero, de todos modos, podemos determinar los valores con un poco de investigación:

Determina que NO incluir en su base de datos #

Puede ser tentador querer recopilar y conservar todo lo que pueda sobre una persona y/o un evento. Al tomar decisiones sobre cómo administrar su información, es importante ser explícito e intencional sobre lo que incluye o excluye en su base de datos.

Pregúntate: ¿hasta qué punto es realmente necesario un atributo en relación con tu trabajo y tus objetivos? ¿Realmente necesitas recopilar el ‘Lugar de nacimiento’, ‘Nombre de la madre’, ‘Nombre del padre’, ‘Sexualidad’, ‘Número de pasaporte’, ‘Estado migratorio’ de una persona? Esta información profundamente personal es también potencialmente peligrosa si cae en las manos equivocadas.

Puedes leer más sobre los peligros de recopilar información de identificación personal y cómo ser un administrador responsable de estos datos en el Manual de datos responsables: Diseño de un proyecto de datos responsables (en inglés).

🌱 [Estaremos creando recursos relacionados con estas preocupaciones. Si conoce algún recurso existente, ¡háganoslo saber!]

🌱 Consejos para identificar atributos #

  • Cualquier entidad puede tener un número infinito de atributos. Elije los que sean importantes para identificar entidades y responder preguntas. Consulta la sección Determinando la lista controlada de términos 🪴 para obtener más orientación.
  • Si hay un atributo importante que no pertenece a ninguna de las entidades ya identificadas, considera crear una nueva entidad. No intentes encajar atributos por la fuerza en una entidad que no describen.
  • Considera de manera realista qué datos puedes recopilar. Sé realista en términos de la cantidad de esfuerzo y recursos necesarios para recopilar los datos de estos atributos y la disponibilidad de los datos. ¿Dónde están disponibles? ¿Con qué frecuencia se actualizan? Es bueno considerar el flujo de trabajo desde el principio.
  • Evita usar números estáticos. Deberían ser dinámicos. Esto incluye evitar números que cambiarán dependiendo de cuándo se acceda a la información. Por ejemplo, registra ‘Fecha de nacimiento’ en lugar de ‘Edad’, o ‘Fecha de detención’ en lugar de ‘Tiempo de permanencia en prisión’.

🤔 Una pregunta común sobre las entidades es: ¿cómo saber si algo es una entidad o un atributo? Esta es una muy buena pregunta y puede que no siempre tenga una respuesta sencilla. Por lo general, será conveniente convertir una cosa en entidad cuando sepas que es una unidad de análisis importante en tu base de datos y que tendrá atributos propios. Por ejemplo, en nuestro ejemplo hipotético de la organización que quiere saber la cantidad de presos detenidos ilegalmente en cada prisión, elegimos mostrar la prisión como una entidad, pero uno también podría imaginar una prisión como un atributo. Si todo lo que necesita saber sobre la prisión es el nombre, entonces tal vez un atributo sea una mejor manera de resolver esto, y de mantenerlo simple. Pero, si desea que la prisión también tenga una ubicación geográfica, un nombre de distrito o cualquier otra información adjunta, es mejor convertirla en una entidad.

✍🏾 ¡Ahora te toca a ti poner esto en práctica! Utiliza el Ejercicio 3 de esta hoja de trabajo para generar una lluvia de ideas sobre tus atributos.

🙌 Utiliza la siguiente actividad grupal (en inglés): “Conectar los puntos para diseñar en conjunto su modelo de datos”, y asegúrate que todos comprendan la estructura común que se está buscando desarrollar.

Desafíos y consejos: aprendiendo de Berkeley Copwatch #

Berkeley Copwatch pasó por el proceso de diseñar su modelo de datos conceptual para construir la “Base de datos de personas para la responsabilidad policial basada en la comunidad“. En esta sección, profundizaremos en su proceso e identificaremos algunas áreas donde las cosas pueden volverse un poco más complejas o desafiantes al diseñar un modelo de datos conceptual.

Nota: hay muchas formas diferentes de modelar o representar cosas y relaciones de la vida real. Cada grupo debe tomar decisiones sobre cómo hará esto, y este ejemplo de Berkeley Copwatch ilustra cómo una organización elige representar la información que recopila.

Primero, Berkeley Copwatch identificó sus entidades examinando qué preguntas de investigación tenían para su base de datos. Comenzaron desglosando su pregunta, reflexionando sobre “¿qué necesitamos saber para responder esta pregunta?”

Para la pregunta 1 “¿Realizan los oficiales cacheos (o allanamientos) motivados por la raza de las personas?”,  necesitaban saber:

  • Información sobre el oficial.
  • Información sobre los cacheos.
  • Información sobre la persona afectada, incluyendo su raza.
  • Que, efectivamente, la persona fue registrada.
  • Cuántas veces se cacheó a una persona de una raza frente a personas de otras razas.

Enumeraron las COSAS principales a la izquierda y luego determinaron las ENTIDADES que pueden representar estas cosas a la derecha.

COSAS – ¿Cuáles son las cosas de la vida real de las que tratan estas preguntas? ENTIDADES – ¿Se pueden generalizar las cosas anteriores en una entidad más amplia?
OficialesOficial
Horarios/registros de cacheos realizadosIncidente
Personas que son cacheadasPersona afectada

Finalmente, definieron estas tres entidades para comenzar:

Luego, el equipo de Berkeley Copwatch utilizó la actividad “Conectando los puntos” para identificar relaciones entre entidades. El equipo del proyecto anotó las diferentes entidades en trozos de papel, las pegó en una pared y usó una cuerda para conectarlas donde identificaban relaciones.

Para responder a la pregunta de investigación “¿Los oficiales realizan búsquedas en función de la raza de las personas?”,el grupo determinó que necesitaban captar las siguientes relaciones:

  • ‘Incidente’ involucra a ‘Oficial’ (y a la inversa, ‘Oficial’ está involucrado en ‘Incidente’)
  • ‘Incidente’ involucra a ‘Persona’ (y a la inversa, ‘Persona’ está involucrada en ‘Incidente’).

Esto se puede ilustrar así:

Es posible que tú te preguntes: “¿Por qué no combinar ‘Oficial’ y ‘Persona afectada’ en un único tipo de entidad, llamado ‘Persona’?” Más abajo abordaremos esta cuestión.

Luego, identificaron los atributos de cada entidad para asegurarse de que tuvieran la información adecuada para responder a sus preguntas de investigación.

Berkeley Copwatch quería capturar atributos para las entidades que ayudarían a responder la pregunta: “¿Los oficiales realizan búsquedas en función de la raza de las personas?”. Por lo tanto, querían asegurarse de capturar ‘Tipo de incidente’ en la entidad ‘Incidente’ y ‘Raza’ en la entidad ‘Persona’, como se ve en el diagrama a continuación.

Es importante tener en cuenta que diferentes contextos tendrán diferentes formas de identificar a los oficiales. Por ejemplo, en países donde no existe el estado de derecho, es imposible solicitar documentación como forma de identificar a un oficial, por lo que quizás tenga otros atributos que lo ayuden a describir y distinguir a esta persona, como ‘Descripción uniforme’.

🤔 Una pregunta que puede surgir al identificar sus entidades es: ¿cómo saber cuál es el nivel correcto de abstracción?

En este ejemplo, Berkeley Copwatch decidió usar diferentes entidades para ‘Oficial’ y ‘Persona afectada’, en lugar de usar una entidad llamada ‘Persona’, y luego diferenciar entre un oficial y una persona afectada usando atributos. Ambos enfoques son válidos. Cada enfoque tiene sus ventajas y desventajas.

El uso de un tipo de entidad más abstracto puede llevar a tener muchos campos vacíos en cada entidad, porque deberá tener los atributos necesarios para cubrir las características de más entidades en su base de datos. Por ejemplo, los atributos que son específicos de un oficial de policía, como ‘Número de placa’, ‘Descripción del uniforme’ o ‘Número de comisaría’, no se pueden aplicar a una víctima o testigo del incidente. En este sentido, si usas esta opción, te quedarás con muchos campos de atributos en blanco.

Por el contrario, puedes encontrar y ver que dos tipos de entidades tienen muchos atributos superpuestos, por lo que tiene más sentido combinarlos en un solo tipo de entidad.

Una situación que querrás evitar es cualquier duplicación de información en tu base de datos. Por ejemplo, una base de datos puede utilizar el tipo de entidad ‘Recluso fallecido’ y otro tipo de entidad denominado ‘Prisionero’. Es posible que un registro en su base de datos catalogado como ‘Recluso’ se convierta en ‘Recluso fallecido’, lo que requeriría una nueva entidad para capturar esta información, resultando en dos entidades con información sobre la misma persona. Esto puede conducir a muchos problemas con el análisis. En situaciones como estas, es mejor ser más abstracto y encontrar otra forma de registrar si el recluso ha fallecido o no (por ejemplo, utilizando una lista de términos llamada ‘Estado’ e incluyendo ‘Fallecido’ como una de las opciones). [Planeamos indagar más en esta pregunta sobre la profundidad de la abstracción, sus respuestas, y cómo puede afectar tu modelo de datos conceptual, en un futuro recurso. Si tienes ejemplos específicos o preguntas, ¡ponte en contacto!]🌱

Referencias #

  1. Patricia Harpring. Introducción a los vocabularios controlados: terminologías de Arte, Arquitectura y otras obras culturales. (2010). Consultado por última vez el 27 de enero de 2022 desde https://www.getty.edu/research/publications/electronic_publications/intro_controlled_vocab/

Otras lecturas #

Patrick Ball. ¿Quién hizo qué a quién? Planificación e implementación de un proyecto de datos de derechos humanos a gran escala. Asociación Americana para el Avance de la Ciencia (AAAS). (1996). Consultado por última vez el 11 de diciembre de 2021 en https://hrdag.org/whodidwhattowhom/contents.htm

The Engine Room. Manual de datos responsables: diseño de un proyecto de datos responsables. (2016). Consultado por última vez el 2 de enero de 2022 en https://the-engine-room.github.io/responsible-data-handbook/chapters/chapter-01-designing-a-project.html

Powered by BetterDocs