Modelo relacional: Base de datos relacional

¬°Hola viajero web! ¬ŅTe esta gustando este curso de base de datos? En verdad espero que si, pero si eres nuevo por aqu√≠ y no has visto ninguno de los cap√≠tulos anteriores, te invito a revisarlos para que comprendas a la perfecci√≥n el tema de hoy ‚ÄúModelo relacional y las bases de datos relacionales‚ÄĚ.

Analizaremos qué es, ventajas y desventajas y como es que a través de este modelo establecemos los fundamentes para el modelado de base de datos relacionales.

Juan Carlos García
by Juan Carlos García24-Ag-20223

Bien, para iniciar con este interesante tema debemos establecer algunos conceptos básicos para ir avanzando paso a paso, así que comencemos con los fundamentos del modelo relacional.

 

¬ŅQu√© es el modelo relacional?

El modelo relacional es el fundamento para el modelado y gestión de bases de datos, esta basado en la lógica de predicados y en la teoría de conjuntos.

 

¬ŅCu√°ndo fue postulado el modelo relacional y por quien?

  • El modelo relacional nace en 1970
  • Fue postulado por Edgar Frank Codd en los laboratorios del gigante de las computadoras IBM.

 

Ventajas del modelo relacional

El modelo relacional es uno de los mas utilizados hasta la fecha en que he escrito este post, incluso, la base de datos de esta página es relacional y así como EWebik, hay millones de sitios web que almacenan la información en bases de datos relacionales, y esto se debe a que tiene grandes ventajas, por ejemplo:

  • Nos proporciona herramientas que nos permiten evitar la duplicidad de registros.
  • Garantiza la integridad de datos, sobre todo en el caso referencial, es decir, cuando eliminamos un dato, se eliminan todos los registros con dependencias.
  • Favorece la normalizaci√≥n.

 

Desventajas del modelo relacional

Si, tiene algunas desventajas, sobre todo para ciertas aplicaciones donde se manipulen datos como:

  • Datos gr√°ficos
  • Multimedia
  • CAD
  • Y en sistemas con datos geogr√°ficos
  • Tipos de datos de texto

Para los casos anteriores se deber√° analizar el tipo de aplicaci√≥n y dise√Īar una base de datos que nos permita manipular la informaci√≥n con el mejor rendimiento posible, por ejemplo, las bases orientadas a objetos, suelen usarse en este tipo de aplicaciones.

 

Fundamentos del modelo relacional

En el modelo relacional los datos se almacenan en relaciones, donde cada relación es considerado un conjunto de datos independiente y dentro de cada conjunto el orden de los datos no es importante. Para comprender como opera el modelo relacional pasemos a analizar las bases de datos relacionales y sus características, ya que de esta manera, estoy seguro comprenderás mejor los conceptos de:

  • Relaciones
  • Tuplas
  • Atributos

Suscribirme

Gracias por tu calificación:

3

Categorías


  • EWebik
  • React JS
  • SQL
  • Base de datos
  • PHP - MySQL
  • P√°gina Web
  • Servidores
  • Flexbox
  • NodeJS
  • WordPress
  • POO

ūü•á Creaci√≥n de p√°ginas web

‚ö°ÔłŹ Quiero mi p√°gina web ūüí™ūüŹľ

¬ŅQu√© es una base de datos relacional?

Una base de datos relacional es un conjunto de relaciones, en donde dichas relaciones son un conjunto de tuplas y cada tupla es un conjunto de atributos.

 

Elementos principales de una base de datos relacional

La definici√≥n anterior quiz√° parezca un trabalenguas y para muchos sea dif√≠cil de comprender, as√≠ que te explicar√© ¬ŅQu√© es una base relacional? Pero, desde una perspectiva diferente, por ejemplo:

 

Relaciones: Matrices o tablas

Primero trata de imaginar que una base de datos de este tipo es un conjunto de matrices o tablas,  y que, a ese conjunto de matrices o tablas le pondremos un nombre, le llamaremos relaciones.

Columna 1 (Atributo 1)

Columna 2 (Atributo 2)

Columna 3 (Atributo 3)

…

Columna n (Atributo n)

a1

a2

a3

…

an

b1

b2

b3

…

bn

…

…

…

…

…

f1

f2

f3

…

fn

 

Atributos (columnas) y tuplas (filas)

Excelente, ahora cada matriz o tabla la vamos a imaginar como:

  • Cada fila como una tupla.
  • Y cada columna como un atributo.

Ya se va entendiendo mejor ¬ŅCierto? Bajo estas consideraci√≥n, es importante que comprendas que:

  • Cada columna o atributos tengan un nombre √ļnico dentro de cada tabla.
  • Al igual que cada tupla o fila, debiera ser diferente.

Ahora, cada atributo se divide en dos partes:

 

Atributos Simples (datos atómicos)

También denominados datos atómicos son aquellos que ya no pueden subdividirse en datos más simples, por ejemplo la edad de una persona.

 

Atributos Complejos (datos no atómicos)

Conocidos también como datos no atómicos, este tipo de atributos son aquellos datos que se pueden dividir en datos más simples, no obstante existen dos tipos de datos no atómicos, por ejemplo:

  • Un tipo ser√≠a aquellos datos que se repiten, pero que al dividirse en datos m√°s simples, significan lo mismo, por ejemplo: una lista de n√ļmeros de cuenta: 123456, 234567, 345678, al dividirlos tendr√≠amos:
    • Cuenta1: 123456
    • Cuenta2: 234567
    • Cuenta3: 345678
  • Otro tipo ser√≠a aquellos datos que se pueden dividir, pero que al ser divididos tienen diferente significado, por ejemplo: una direcci√≥n: Republica del Salvador, Olivar, Ciudad de M√©xico, al dividirse cada uno de los elementos cuenta con un significado diferente:
    • Calle: Republica del Salvador
    • Colonia: Olivar
    • Estado: Ciudad de M√©xico

Ahora ¬ŅC√≥mo puedo decidir para ocupar, atributos at√≥micos, no at√≥micos y que tipo? ūü§Ē Esto realmente depende de la naturaleza de tu proyecto, por ejemplo:

  • Quiz√° tengas una aplicaci√≥n donde registras el nombre de una persona, pero no te interesa saber cual es su nombre, cual es su apellido paterno o materno, tu aplicaci√≥n no lo demanda, para ese caso, podr√≠as utilizar un atributo no at√≥mico que simplemente se llame ‚Äúnombre‚ÄĚ.
  • Pero ahora, si tu aplicaci√≥n es de prestamos o renta de inmuebles, claro que te interesa conocer a las personas lo mejor posible, para este caso, si deber√≠as ocupar un dato at√≥mico, es decir, incrementar la exactitud de los datos en tus tablas, por lo tanto, descompondr√≠as el nombre en, otros atributos at√≥micos, tal como:
    • nombre
    • apellido_paterno
    • apellido_materno

ūüďĆ NOTA: como desarrolladores, siempre debemos ver hacia futuro para poder tomar este tipo de decisiones, muchas veces no tenemos en cuenta que nuestras aplicaciones van a crecer y cuando llega ese momento la base de datos queda corta y hay que redise√Īar e incluso en casos m√°s serios, volver a crearla desde cero, siempre ten en cuenta el costo beneficio, tu presupuesto y sobre todo, la √©tica para hacer un buen dise√Īo de base de datos.

Cuando hayas tomado la decisión y estés utilizando un tipo de atributo u otro, debes mantener la consistencia de los datos en todas tus tablas y recordar que los datos atómicos son mas fácil de consultar y mantener que los datos que no son atómicos, a continuación veremos algo de esto.

 

Concepto de derivabilidad en el modelo relacional

El concepto derivabilidad es algo abstracto, pero en resumen significa que:

Podemos considerar una tabla o relación derivable, siempre y cuando podamos extraer sus atributos desde otras relaciones u otras partes mediante una serie de operaciones.

Desde otra perspectiva este concepto indica que podemos dividir una relación en relaciones más simples, pero para poder explicarte mejor este concepto pasemos a ver el termino de redundancia y verás que te de quedará mucho más claro.

 

Concepto de redundancia de datos en el modelo relacional

Cuando hablamos de redundancia simplemente hacemos referencia a la duplicidad de los datos y la podemos dividir en dos partes:

  • Redundancia fuerte: este tipo de redundancia la encontramos en relaciones que tienen datos derivables y por ende son innecesarios y en la mayor√≠a de los casos debe ser evitada.
  • Redundancia d√©bil: en este caso solo existen datos no derivables y mediante operaciones podremos obtener datos derivables, pero sin caer en el primer caso o redundancia fuerte, cabe mencionar que este caso es el m√°s com√ļn al que deber√≠amos llegar en la mayor√≠a de nuestras aplicaciones.

Suscribirme

Gracias por tu calificación:

3

Categorías


  • EWebik
  • React JS
  • SQL
  • Base de datos
  • PHP - MySQL
  • P√°gina Web
  • Servidores
  • Flexbox
  • NodeJS
  • WordPress
  • POO

ūü•á Creaci√≥n de p√°ginas web

‚ö°ÔłŹ Quiero mi p√°gina web ūüí™ūüŹľ

Ejemplo de redundancia y derivabilidad

Para comprender a la perfecci√≥n estos dos conceptos que desde mi punto de vista son bastante abstracto, revisemos el siguiente ejemplo sobre ‚ÄúSalas de cines‚ÄĚ donde tenemos una tabla con una redundancia fuerte.

Cines

Salas

Películas

Cine 1

Sala 1

Película 1

Cine 1

Sala 2

Película 2

Cine 2

Sala 1

Película 1

Cine 2

Sala 2

Película 2

Podemos ver f√°cilmente que hay una redundancia fuerte, ya que en pr√°cticamente todas las columnas hay datos repetidos y por ende pueden ser derivables, tal como muestra la siguiente imagen, donde:

  • Dividimos la relaci√≥n o tabla anterior en relaciones m√°s simples.
  • Y mediante un conjunto de operaciones (Las cuales represent√© mediante las flechas), podemos obtener los datos derivables.

 

Ejemplo de como eliminar la redundancia fuerte en el modelo relacional

Este ejemplo aun se puede simplificar m√°s y te invito a seguir simplific√°ndolo por ti mismo, al al finalizar de leer este post.

 

Consistencia de los datos en el modelo relacional

La consistencia de los datos se refieren simplemente a la "calidad de los datos" y este termino lo podemos interpretar mediante la duración, estabilidad y veracidad de los datos.

No obstante existen situaciones que bajan dicha calidad de los datos y nos pueden llevar a la inconsistencia de los mismo, por ejemplo:

  • Existe error en la entrada de datos, ya sea por que hay reglas de negocio poco claras, error en la validaci√≥n de datos o quiz√° se ha ingresado informaci√≥n mal intencionada por usuarios que desean hacer da√Īo a nuestra informaci√≥n.
  • Tambi√©n podemos caer en inconsistencia debido a la falta de datos, ya sea por una mala ejecuci√≥n de las operaciones causando perdida en la informaci√≥n y creando datos que no est√°n relacionados y por ende quedan perdidos en nuestras tablas.

Excelente viajero, si has llegado hasta aquí ya conoces a la perfección lo que es una relación, atributos y tuplas y, como esto se relaciona con matrices y tablas, ahora pasaremos a uno de los temas principales dentro del modelo relacional, el cual es el tema de las llaves (También se conocen como clave o Keys).

 

Identificación inequívoca de los datos: Creación de llaves (claves o keys)

Uno de los aspectos m√°s importantes dentro del modelo relacional y por obvias razones de las bases de datos relacionales, es la identificaci√≥n √ļnica o inequ√≠voca de los datos, esto quiere decir que, cada dato dentro de una relaci√≥n debe estar identificado plenamente y en forma √ļnica. Veamos un ejemplo para que se comprenda mejor.

Columna 1 (Atributo 1)

Columna 2 (Atributo 2)

Columna 3 (Atributo 3)

Columna n (Atributo n)

a1

a2

a3

a4

b1

b2

b3

b4

c1

c2

c3

c4

d1

d2

d3

d5

Bien, de la tabla anterior trata de ubicar el dato ‚Äúb2‚ÄĚ ¬ŅLo lograste? Si trataste de ubicarlo quiz√° te diste cuenta de lo siguiente:

  • Podemos decir que b2 esta en la Columna 2.
  • Sin embargo, si ahora lo tratamos de ubicar por tupla o fila, no podemos asegurar que se encuentra en la fila 2, ya que en el modelo relacional, las filas no tienen un orden determinado.

Es aquí donde todo comienza a tener sentido las bases de datos relacionales, ya que para poder identificar un dato que pertenece a una fila, necesitamos crear llaves.

 

¬ŅQu√© son las llaves o claves en una base de datos relacional?

Una llave es un atributo con un valor √ļnico para cada tupla, lo que nos permite identificar a una y solo una tupla o fila dentro de nuestra relaci√≥n o tabla.

¬ŅQu√© tal? Ves como todo tiene un por qu√©, ahora si agregamos un llave a nuestra tabla tendremos lo siguiente:

Columna 0 (Atributo 0)

Columna 1 (Atributo 1)

Columna 2 (Atributo 2)

Columna 3 (Atributo 3)

Columna n (Atributo n)

1

a1

a2

a3

a4

2

b1

b2

b3

b4

3

c1

c2

c3

c4

4

d1

d2

d3

d5

ūüďĆ Con tan solo agregar dicha llave, la cual tiene datos que no se pueden repetir todo cambia, ahora si, intenta nuevamente Identificar al dato b2:

  • b2, se encuentra en la tupla con llave 2 y Atributo 2

Excelente, pero ¬ŅLa llave siempre debe ser un n√ļmero consecutivo como en el ejemplo? Y la respuesta es NO, aunque m√°s adelante veremos el tema de los √≠ndices y sus tipos y hay una correlaci√≥n con el orden, por el momento solo piensa en esto, nosotros podemos identificar a un smartphone de forma natural, mediante:

  • IMEI
  • N√ļmero de tel√©fono
  • Direcci√≥n MAC
  • UID

No obstante, ahora debemos elegir cual ser√° la llave de nuestra tabla, si yo tuviera que elegir, seleccionar√≠a el IMEI, por ser un n√ļmero √ļnico y que no se repite.

Si bien cada uno de los par√°metros anteriores puede identificar de forma natural a un smartphone, dado que cada par√°metro es inherente al dispositivo, que pasa con aquellas relaciones donde los datos no tienen un identificador natural ¬ŅQu√© clave debemos elegir? Realmente no hay que complicarnos, simplemente debemos tomar un n√ļmero que se vaya incrementado y listo, a esto se le conoce como llave suplente, por ejemplo:

Lave suplente

Fruta

1

Naranja

2

Fresa

3

Pera

4

Platano

 

Tipos de claves

Ahora que ya conocemos el funcionamiento de las llaves, es importante que también comprendas que hay distintos tipos que nos ayudarán con la relación de nuestros datos, por ejemplo:

 

Clave primaria (Primary Key)

Una llave primaria o Primary Key en ingles la podemos representar mediante ‚ÄúPK‚ÄĚ y, es aquella columna dentro de nuestra tabla y que hemos elegido nosotros para definir de manera un√≠vocamente a cada una de nuestras filas, tal y como lo hicimos en los ejemplos anteriores. En la pr√°ctica nuestra Primary Key, puede estar conformada por una o mas columnas de nuestra tabla, esto se debe a que en muchas ocasiones por reglas de negocio deseamos que ciertos datos no se dupliquen en mas de dos columnas por cada fila, por ejemplo:

  1. Supongamos que tenemos una aplicación que reporta la fecha hora del evento de encendido y apagado de un smartphone.
  2. En nuestra tabla mínimo deberíamos tener los atributos:
    1. Llave
    2. Fecha hora
    3. Evento
  3. Y ahora supongamos que quizá por alguna razón, el smartphone envía dos veces el evento de apagado con la misma fecha hora.
  4. Si solo definimos como llave primaria al atributo llave, tendríamos una redundancia fuerte dentro de nuestra tabla, cada vez que el smartphone duplique la información, aquí no hay forma de subdividir nuestra tabla para eliminar dicha redundancia.
  5. Para estas situaciones podemos definir una llave primaria con más e un atributo, que para este caso serían las tres columnas.
  6. Con esta nueva llave primaria, cada vez que se intente agregar una fila duplicada, la base de datos rechazará la acción y mantendremos la calidad de los datos intacta.

Suscribirme

Gracias por tu calificación:

3

Categorías


  • EWebik
  • React JS
  • SQL
  • Base de datos
  • PHP - MySQL
  • P√°gina Web
  • Servidores
  • Flexbox
  • NodeJS
  • WordPress
  • POO

ūü•á Creaci√≥n de p√°ginas web

‚ö°ÔłŹ Quiero mi p√°gina web ūüí™ūüŹľ

Clave externa o for√°nea

Mediante este tipo de llave podemos relacionar tablas, es decir, una llave for√°nea o Foreign Key la cual se representa a trav√©s de ‚ÄúFK‚ÄĚ, es una referencia a una clave de otra tabla, las claves for√°neas no requieren ser datos √ļnicos en la tabla donde se localizan, pero si lo deben ser en la tabla de referencia.

 

Llave índice

Los √≠ndices los veremos adelante, por lo pronto qu√©date con la idea de que nosotros podemos seleccionar cualquier atributo como √≠ndice y nos servir√° para realizar b√ļsquedas m√°s r√°pidas dentro de nuestra tabla.

 

¬ŅQu√© sigue? Bien, en este post, hemos aprendido varios conceptos importantes y las bases que establece el modelo relacional, ahora, toca revisar uno de los temas que matem√°ticamente har√° que nos vuele la cabeza, pero yo te lo tratare de hac√©rtelo a meno, en el siguiente post tratare de explicarte todo lo relacionado con el √°lgebra relaciona.

ūüßź Autoevaluaci√≥n: Modelo relacional

1 ¬ŅQu√© es el modelo relacional?

2 ¬ŅCu√°les son los dos fundamentos del modelo relacional?

3 ¬ŅQui√©n creo el modelo relacional?

Juan Carlos García

Juan Carlos García

Durante a√Īos he desarrollado plataformas dedicadas al rastreo satelital y varios sitios web que se encuentran en la primera p√°gina de Google, y hoy quiero compartir contigo lo que se en tecnolog√≠as como: Node JS, PHP, C# y Bases de datos.

Si quieres apoyarme sígueme en mis redes sociales y suscríbete a mi canal de YouTube.

Desarrollador de software

© 2022 EWebik

Dise√Īo de p√°ginas web y aplicaciones moviles.