Modelo Relacional de Bases de Datos: Claves – Relaciones – NULL

En este post aprenderemos el modelo relacional de bases de datos (SQL) y sus componentes. En este post incluyo muchos conceptos teóricos valiosos para tu futuro como desarrollador, desde la base aprenderemos los modelos y a diseñar nuestros propios modelos de bases de datos para nuestra aplicación. Veremos:

Modelo relacional de bases de datos✅ La importancia de elegir el modelo correcto y diseñar bien tu base de datos relacional.

✅ Los componentes del modelo relacional: campo, registro, tabla, clave primaria y foránea.

✅ Cómo funcionan las relaciones entre tablas y los diferentes tipos de relaciones.

✅ Qué es el valor nulo (Null) y por qué no se permite en las claves y otras reglas básicas.

 

Vimos anteriormente que existen dos modelos de bases de datos, el modelo relacional de bases de datos conocido popularmente como (SQL) y el modelo no-relacional o llamado (NoSQL).

Abajo te dejo un diagrama explicativo de lo que vimos en la entrada anterior para que te resulte más fácil la comprensión de la introducción a modelos de bases de datos brindada anteriormente.

 

Modelo relacional (SQL) vs Modelo no relacional (NoSQL) de bases de datos

bases-de-datos-modelo-relacional-vs-no-relacional-sqlComo ya sabes predominan dos modelos a la hora de diseñar una base de datos. Es muy importante que comprendas estos conceptos, porque si te interesa aprender a programar de manera profesional tienes que tener claro que la administración de la información es crucial Neo..

Importante comprender y aplicar estos conceptos:

Imagina que programas un sistema de gestión de productos, clientes, o un simple sistema de registro y login de usuarios. Estarás trabajando con información sensible y personal, datos privados que las personas te han confiado. Quizás sin saberlo tú eres responsable de su seguridad, gestión, organización, consulta, permanencia, entre otras.

La elección del modelo y el diseño de la base de datos influyen muchísimo en como tu código python gestionará los datos.

 

Pero tranqui, aquí te enseñaré todo lo que sé para que tus datos estén seguros y tu código sea eficiente siguiendo buenas prácticas de programación.

 

Cuando hablamos de modelo relacional de bases de datos nos referimos normalmente al modelo aplicado para trabajar con datos que tienen numerosas relaciones entre sí y que las seguirán teniendo a medida que se ingresen nuevos datos.

Al añadir o eliminar datos en la base de datos se crearán y eliminarán relaciones. Si eliges mal el modelo o no lo diseñas correctamente, puedes terminar con desorden, redundancia, errores y muchos problemas. Y créeme: los problemas con enormes cantidades de información mal relacionada se traducen en fuertes dolores de cabeza.

 

El modelo relacional de bases de datos y sus componentes

El modelo relacional se basa en que los datos se almacenan en campos según atributos (columnas), dentro de registros (tuplas o filas), que conforman archivos (tablas). Estas tablas o datos se pueden relacionar entre sí.

componentes del modelo relacional de bases de datos en diagrama

Una bases de datos relacional a menudo se compone de:

Campo

Un campo puede verse como una celda, un espacio o una variable. Normalmente admite un solo tipo de dato, aunque a veces puede admitir diferentes tipos (por ejemplo, un nick de usuario que contiene letras y números, o una dirección). Estos campos están dentro de registros. Cada registro es una tupla. Los campos se organizan en columnas, donde cada columna determina el tipo de dato. Si almacenamos datos de una persona, un campo será su nombre (tipo texto), otro su teléfono (tipo entero). Cada persona será un registro: («Marcelo», 34351532123). («Carlos», 34351522113). No se admitiría (342134561, «Carla») porque el primer campo esperaría texto y el segundo número, y eso causaría problemas al buscar a Carla por su nombre.

Registro

Un registro es un conjunto de campos y puede verse como una tupla de datos o como una fila de una tabla. Así tenemos una tabla compuesta de columnas (atributos) (determinan el tipo de dato y tienen un identificador, por ejemplo «Nombre» (tipo texto)) y filas (registros) que representan una entidad. Ejemplo: («Josele», «Pérez», 18, «Av Arias 101»).

Archivo o tabla

Llamamos archivo al conjunto de registros (término más usado en el modelo no relacional). En el modelo relacional se le llama tabla. Una base de datos puede tener varias tablas. Por ejemplo, tabla Alumnos y tabla Profesores. Entre ambas tablas existe una relación. Para conectar una tabla con otra se utilizan claves o llaves.

Clave o llave

Una clave o llave es un identificador único. Puede diferenciar una entidad (un registro) de otra, o bien relacionar una entidad con otra. Todo registro debe tener un identificador único para poder referirse a él (clave primaria). Normalmente se especifica en la columna que se trata del tipo «clave».

 

Ojo, ojito, oje..!
Un identificador único de la entidad Persona no puede ser, por ejemplo, su «Nombre». ¿Por qué? Porque puede haber dos personas con el mismo nombre. Si quieres acceder a una de ellas, ¿cómo harías? Tendrías un problema.
Los atributos que se definan como claves primarias deben elegirse cuidadosamente.
Al hablar de IDENTIFICADOR ÚNICO hablamos de CLAVE PRIMARIA.

Clave o llave primaria

Una llave o clave primaria es un campo (o grupo de campos, en una clave primaria compuesta) que identifica de manera inequívoca un registro. Ningún otro registro puede tener el mismo valor en ese campo. Por eso es único e irrepetible, y normalmente se auto-incrementa. Por ejemplo, al añadir dos registros, uno puede tener `id = 1` y el otro `id = 2`. Si eliminamos el primero y añadimos otro, se asignará `id = 3`. Jamás se reutiliza una clave primaria eliminada, porque eso generaría inconsistencia de datos. La clave primaria puede ser un `id`, un `DNI`, un `CUIT`, etc.

Las claves primarias permiten relacionar un registro de una tabla con otro de otra tabla. Por ejemplo, en la tabla Alumnos y Profesores, podemos poner un `id` a cada alumno y profesor. Luego, en una tabla llamada Materias, usamos la clave primaria de Profesores para indicar qué profesor dicta cada materia. Así, en la tabla Materias tenemos una clave primaria (identificador de la materia) y una clave foránea (identificador del profesor).

Es importante diferenciar los dos tipos de claves:

modelo de bases de datos relacional diagrama llave primaria y llave foránea

 

 

Las claves FORÁNEAS identifican y determinan una relación. Pueden ser internas (dentro de la misma tabla) o externas (en una tabla aparte, como en el ejemplo de CURSOS).

Podemos decir:
El Alumno «Mariano» cuya clave primaria id_Alumno = 1 cursa dos materias con id_curso = 101 y 102 (Python y Bases de datos).

 

En resumen:

Una clave puede identificar una entidad (registro) de las demás, o una relación (que también es una entidad) entre ellas.
De ello dependerá que sea primaria o foránea.

Las foráneas pueden ser internas (en la misma tabla) o externas (en una tabla aparte).

Clave o llave foránea

Veamos otro ejemplo:

Ejemplo:

modelo de bases de datos relacional clave foranea ejemplos diagrama

 

Fíjate que en cada tabla, excepto en VENTAS, encontramos claves primarias (id_Cliente, id_Producto, id_Fecha).Las llaves foráneas son una limitación referencial entre dos tablas. Identifican una columna o grupo de columnas en una tabla (hija) que se refiere a otra tabla (maestra). Las columnas en la tabla hija deben ser la clave primaria o una candidata en la tabla referenciada.En la tabla VENTAS, todas las claves son foráneas y permiten relacionar los registros de las demás tablas a través de sus claves primarias. Así se crea una «relación» entre las tablas.

Relaciones

Esta es la parte más importante del modelo relacional. Su nombre proviene precisamente de las relaciones entre los datos y la facilidad para establecerlas. Una base de datos relacional tendrá relaciones definidas por el diseñador, con ciertos criterios y tipos de relaciones. Todas se definen mediante una clave foránea (interna o externa). En el diagrama anterior, las líneas con `1` y `n` simbolizan una relación «uno a varios»: un cliente puede participar en varias ventas.

El tipo de dato nulo (NULL) en el modelo relacional

«En una clave primaria el valor nulo está prohibido.»

Principio fundamental del modelo relacional

El valor nulo representa un campo que aún no ha sido definido o cuyo valor se desconoce, pero no su tipo. El diseñador de la base de datos puede permitir o no valores nulos. Por ejemplo, en la tabla Alumnos podemos permitir dejar vacío el número de teléfono al rellenar un formulario e insertar null en la base de datos para ese campo. (colocar `NULL`).

modelo relacional de bases de datos y el-tipo null vs vacío vs cero.

¡Cuidado!
Jamás, jamás debemos permitir valores nulos en campos importantes para consultas, y menos en claves primarias o foráneas. Una clave primaria o foránea no puede admitir valores nulos.

Errores comunes con el tipo «null» en bases de datos relacionales

Es importante saber que `NULL` no es igual a una cadena vacía (`»`) ni al número cero. `NULL` significa «ausencia de valor» o «valor desconocido».

No se puede comparar con `=`; se usa `IS NULL` o `IS NOT NULL`. Por ejemplo, `WHERE telefono IS NULL` encuentra registros sin teléfono. Confundir `NULL` con `»` o `0` es un error común para quienes empiezan.

No permitir valores nulos se configura al crear la tabla. Así evitamos que el usuario deje en blanco atributos importantes como nombre, apellido, edad, etc.

Un valor nulo puede reemplazarse después por un valor real igualmente, siempre que sea del tipo definido. Por ejemplo, un usuario puede dejar su edad en blanco (obtenemos `NULL`) y luego completarla con un número entero. Jamás podrá colocar otro tipo de dato (como texto), porque el diseñador ya especificó el tipo.

Ya tienes una base teórica sólida del modelo relacional para empezar a trabajar y diseñar bases de datos. En la siguiente entrada aprenderemos el diagrama Entidad-Relación, las buenas prácticas y las reglas de normalización.

¿Qué es lo importante en estos post?
En estos post de bases de datos comencé explicando que existen distintos modelos y formas de trabajar con las bases de datos porque pretendo aprendas desde la base o el inicio a manejar los datos correctamente pensando como un verdadero desarrollador.

Por supuesto, podría omitir mucho más las explicaciones y ejemplos que utilizo o más bien hacerlo más «práctico». Pero está bueno que logres fijar estos conocimientos, créeme que te ayudaran en momentos de profunda obscuridad 😂

meme nerd simpsonAl final de estos post aprenderás a diseñar tus modelos y bases de datos relacionales para trabajar con MySQL, SQLite, MONGODB, etc y podrás crear aplicaciones complejas sin incoherencias en la gestión de los datos.¡Ahora ve a contarle a tus amigos lo que has aprendido… NEEERD!

 
 

¡Compartir es una forma de agradecer! :)

Deja un comentario

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

Scroll al inicio