9. [Introducción a base de datos] - Modelo Relacional (Profundización y conceptos)

En el numero anterior se vio el modelo relacional, que es y como se come

Pero ahora toca ver conceptos mas profundizados acerca de ese modelo. Ya no te tomes tan a la ligera las entradas que siguen de ahora en adelante, así que presta mucha atención

Un pequeño flashback de como se compone el modelo relacional

1. Relación (Tablas)

La relación se puede representar como una "tabla".

2. Tupla (Fila)

Corresponde a una serie de datos relacionada. Pero, cada fila es distinta y no importa el orden en que estén dentro de la relación.

3. Atributos (Columna)

Las columnas no se pueden repetir,  "describen" las datos de las tuplas.


Entrando un poco más a detalle con los atributos...
Existen 2 tipos de atributos, se les conoce con varios nombres.


SIMPLES: Son datos que no pueden ser descritos de manera mas "profunda", por ejemplo, una edad es un número que indica la antigüedad de algo. No se le puede sacar más desglose cuando se pregunta por la edad.

COMPLEJOS: Estos datos se pueden desglosar para ser más específicos con su información. Por ejemplo, cuando se pregunta por el nombre de una persona, podemos desglosar en su primer nombre, segundo nombre, apodo, apellido materno, apellido paterno, etc.
De igual forma con la dirección, podemos desglosar en país, estados, ciudad, colonia, calle, etc.

Un ejemplo de base de datos



Una base de datos con información relacionada entre si (Acerca de felinos).

Dos Relaciones (tablas)
1. Acerca de mis mascotas
2. Acerca de las razas de gatos

Varias tuplas (filas)
1. Mis mascotas contiene a michi, benita, alfonsino, etc. 
2. Razas de gatos contiene las razas que existen de gatos

Varios atributos (columnas)
1. Una contiene datos de mis mascotas, como su peso, cola, cintura, la raza, etc.
2. En cambio, la otra contiene el nombre de la raza y un texto con características acerca de esa raza.


Datos simples VS Datos Compuestos ¿Cual elegir?

Si te fijas en el ejemplo de la base de datos (imagen de mas arriba), tiene todas las características. Relación, tuplas, atributos.

Pero, ¿que criterio se debe elegir para determinar que ese atributo sea simple o compuesto?

Depende de lo que quieras hacer.

Por ejemplo. (Para un dato simple)

Para datos "sencillos" que no pueden ser desglosados en mas tópicos

Digamos que tenemos una red social (facebook) que nos manda un mensaje de feliz cumpleaños.

Bueno, para esa tarea necesitamos un dato "simple" (su fecha de nacimiento) , nos basta con saber el mes y día para saber cuando mandar esa felicitación, con eso nos basta para recibir un "Feliz cumpleaños guapo".

Por ejemplo (Para un dato compuesto)

Para obtener información que puede ser desglosada y necesitamos que sea puntual

Ahora pensemos en una situación donde quisiéramos promediar los tiempos de entrega (amazon) para determinar el nivel de eficiencia. Podríamos utilizar una fecha de emisión y una fecha de entrega ¿cierto? Pero para ser mas exactos, se puede incluir la hora de emisión/entrega. 

Es muy importante saber si utilizaremos datos simples o compuestos en la relación (tabla), de esta forma se puede desglosar la información y acceder a ciertos datos de forma puntual.
Si bien, podemos incluir la fecha en un solo atributo (columna), si quisiéramos acceder a un dato especifico (la hora por ejemplo), en practicas reales seria tedioso discriminar el dato, siendo mas sencillo acceder directamente a un atributo especifico que ya se había pensado en el diseño de la base de datos.

Otra razón para escoger un dato compuesto, es para que la información que se este manejando sea...
  1. Fácil de consultar
  2. Consistente
  3. Fácil de mantener
Esto se explica mejor con una imagen

4. Derivabilidad

Una relación R es derivable de un conjunto de relaciones S si existe una secuencia de operaciones
sobre el conjunto S que den como resultado R. 
En otra palabras... La derivabilidad permite derivar información implícita que no está almacenada en la base de datos

Por ejemplo

En el sistema de información relativo a la docencia en una universidad, existen las siguientes reglas de conocimiento o propiedades que sólo tienen sentido en el contexto de una universidad:

R1: “se consideran estudios de primer ciclo los tres primeros años del plan de estudios de una titulación, y estudios de segundo ciclo los años posteriores (si es que existen)”.

Explicitamente, la base de datos no indica si una materia es de 1 o 2 ciclo, si no que en base a la relación de esta regla se puede inferir si la materia pertenece al primero o segundo ciclo. Y así se puede hacer con demás reglas e información de las relaciones


5. Redundancia

En bases de datos o en ficheros, la redundancia hace referencia al almacenamiento de los mismos datos varias veces en diferentes lugares. 
Este concepto se utiliza normalmente para indicar la redundancia fuerte, la que es causante de errores e irregularidades en la base de datos, es la que se debe evitar.
Un ejemplo de redundancia fuerte (la que se debe corregir y evitar)

Los nombres de los alumnos, apellidos y cursos se repiten, algo que no debe suceder. Por varios motivos, solo por mencionar uno, hace mucho espacio en la base de datos. Esta información se puede derivar para evitar malas practicas.

6. Consistencia

Determina la calidad de la base de datos en base a
  1. Duración
  2. Estabilidad
  3. Veracidad de los datos
Elementos que afectan negativamente la consistencia de una base de datos.

7. Identificación inequívoca de los datos

Quiere decir que podemos identificar la información y recuperarla para hacer las acciones pertinentes con ella. La pregunta es ¿Cómo identificamos la información de las tuplas una de otra? Con las llaves.

¿Llaves?
Es el campo de una tupla que ayuda a identificarla/distinguirla de las demás.

Ejemplos de llaves.
  • Código de profesor
  • Número de alumno
  • Carnet de identidad
  • Código de empleado
  • N° Pasaporte
  • Carnet de la biblioteca
  • N° Afiliado
  • Licencia de conducir

Algunos tipos de llaves...
Llave natural
Una llave natural o identificador natural es un identificador real generalmente aceptado que se usa para distinguir, es decir, identifica de manera única objetos reales.
Por ejemplo:
  • Las personas con su nombre, aunque tal vez existan muchas personas con el nombre Pedro, solo existe un Pedro Sanchez De La Paz (en teoría).
  • También los equipos de computo, aunque existan muchas marcas y modelos, cada maquina se diferencia con el firmware que se carga en ella para funcionar.

¿Como saber si es una llave natural?
Su nombre lo dice, es una propiedad natural, las personas (todas) tienen un nombre, esa podria ser su llave natural porque la personas ya tienen esta información con ellas desde que nacieron
Los equipos de computo igual, tienen un numero de serie, modelo, etc para identificar a cada uno de los equipos producidos. Esta identificación no fue inventada de la nada, si no que ya venía "incluida".

Llave suplente
Sigue siendo una llave para identificar de manera inequívoca las tuplas, la diferencia es que esta llave es un valor asignado de acuerdo a un criterio para poder identificar las tuplas una de otra.
Por ejemplo.
Si quisiéramos identificar los colores. Los colores "no tienen" una forma que las pueda diferenciar una de otra. Entonces, si les asigna una propiedad "manualmente" para poder diferencia las tuplas una de otra
  1. Rojo
  2. Amarillo
  3. Azul
  4. Verde
  5. ...

Normalmente, se hace uso de esta llave cuando la llave natural...
  1. No existe
  2. No se conoce
  3. Puede cambiar (por eso los nombres de una persona no se usan como llave)
  4. Es muy grande
  5. Puede quedar invalidada

Conclusiones

Debes quedarte con estos conceptos antes de poder avanzar
  1.  Base de datos
    1. Relaciones
    2. Tuplas
    3. Atributos
  2. El orden de las tuplas no importa (por eso existen las llaves para identificarlas)
  3. Los atributos no se repiten
  4. Datos simples y compuestos
  5. EVITAR LA REDUNDANCIA FUERTE
  6. Identificación de las tuplas (llaves)
  7. Llaves primarias
    1. Naturales
    2. Suplentes

Son muchos conceptos, no es necesario memorizarlos, pero si tener en cuenta que la base de datos se compone de ciertos puntos y se sugieren ciertas practicas para evitar un mal diseño de la base de datos que resulte en errores fatales de la aplicación que se enriquezca de esta información. Esta entrada puede servir para tener a la mano los conceptos y hechar un ojo cuando se este en la practica.
Muchos vídeos en Internet pasan directamente a la practica sin tener en cuenta conceptos para evitar diseñar mal la BD.

8. [Introducción a base de datos] - Introducción al Modelo Relacional

 

Prefacio

¿No sabes nada de base de datos, te piden ser un experto diseñando la BD o simplemente quieres aprender?

Bueno, esta es la entrada que te ayudara (aunque todavía no veré nada de "código") a iniciarte en esta rama de la TI, Bases de Datos (te recomendaría leer los números anteriores de esta serie).

Sencillamente, este modelo se utiliza demasiado en el campo laboral por su facilidad y solidez. Cambien, recomendaría iniciar estudiando y practicando BD utilizando este modelo, después puedes practicar con otro tipo de modelo (Como los Modelos NO Relacionales, pero enfoquemonos primero en este).

Con este prefacio, pretendo que estudies, investigues y practiques utilizando este modelo si apenas vas iniciando en las BD. Bueno, si ya estas convencido de iniciar el camino ninja con este modelo, empecemos con el tema de esta serie. 

Estas entradas serán lo más cortas posibles (si se puede) y "modularizados", así que, si no entiendes algún tema, puedes leer los numeros anteriores de mi serie para agarrar el hilo del tema que hablo. Pero si no lo quieres hacer, "no importa", siempre ire al grano con los conceptos, las explicaciones y ejemplos. 

Introducción

(Si te saltaste el prefacio) Este modelo de datos es el más utilizado por su solides y consistencia, permitiendo modelar una gran cantidad de relaciones sin tanta dificultad.

Por esta razón es la que se hablara durante toda la serie.

¿Qué es el modelo relacional?

[1] Un modelo que representa datos por medio de tablas relacionadas cuyas filas se llaman tuplas y las columnas variables, conformando así una base de datos.

Se basan en la en la teoría de conjuntos, la lógica de predicados y álgebra de conjuntos. Fue creado por Edgar Codd en 1970.

- Es importante, recalcar que este modelo se basa en la teoría de conjuntos. Así que, no debemos dejarnos engañar por las tablas y pensar que es algo "sencillo", ni difícil pero tampoco fácil. Me gustaría tocar los conjuntos y , para que veas su importancia. Así que sí, hablare de conjuntos y seria bueno que lo leas.

¿Qué es un conjunto?

[3] Es una colección de elementos considerada en si misma como un objeto. Se dice que un elemento pertenece al conjunto si esta definido como incluido de algún modo dentro de él.

Relacionando teoría de conjuntos con las BD

¿Lo ves? Se muestra un conjunto de colores, puede ser una paleta de azules, rojos, amarillos, etc.
Estos conjuntos, son una fila (una tupla). Pero no necesariamente tengo que usar colores en hexadecimal. Que tal si ahora pongo un conjunto de carros.


Ahora tengo un conjuntos de autos, si te fijas, decidí hacerlo en un conjunto diferente, no estoy mezclando colores y autos, si no que son conjuntos independientes. Pero, no significa que no los pueda relacionar, ¿verdad? Ahora voy hacer otro conjunto.

Ahora tengo un conjunto de catalogo-ventas donde agrego a los 2 primeros que hice. ¿Ya cobra algo mas de sentido no?
Con esto te puedes dar una idea de un catalogo donde vendo carros y que pueden ser de varios colores.
Este conjunto de catalogo-ventas puedo agrupar más cosas, como las nacionalidades, los seguros de auto, etc. Así, mi catalogo tiene mas peso al incluir más información, claro, cada conjunto esta separada con información relevante entre sí, pero se relacionan.
Toma un descanso para asimilar lo que has léido. Por lo pronto, debes quedarte con estas ideas
  • ¿Qué es el modelo relacional?
  • ¿Qué es un conjunto?
  • Las relaciones de este modelo funcionan porque se basa en la teoría de conjuntos (que no te engañen esas "inofensivas tablas").

¿Por qué utilizar el modelo relacional?

Como decía, este modelo funciona con la teoría de conjuntos, lo que nos da estas ventajas sobre los demás modelos planteados en anteriores números.
  • Permite utilizar las características de los conjuntos
  • Provee las bases para un lenguaje de consulta de alto nivel (Es decir, que brinda independencia de la estructura de los datos en la máquina)
  • Describe los datos en su estructura natural
  • Sus bases solidas permiten tratar problemas como la derivabilidad, redundancia, consistencia de datos y limitaciones lógicas.
- Estas ventajas facilitan la vida para modelar una base de datos, y todas estas características son importantes. Pero haré incapie en "características de los conjuntos".

¿Qué son las características de los conjuntos?

[2] La característica esencial de un conjunto es la de estar bien definido, es decir que dado un objeto particular, determinar si este pertenece o no al conjunto. 

¿Y esto en las bases de datos, que?

Bueno, esto permite realizar operaciones entre los datos. Tales como:
  • Unión
  • Intersección
  • Diferencia
  • Complemento
  • Producto cartesiano
  • Etc...
Estas operaciones, nos ayudaran a saber si la información que estamos relacionando en nuestro modelo es de la forma correcta.

Conclusiones

Bien, he terminado de explicarte lo que debes de saber (en cuestion de conceptos) acerca del modelo relacional. Sin duda este modelo es muy bueno por basarse en la teoría de conjuntos, no es de extrañar que sea muy usada incluso en proyectos grandes.
Para terminar, mi intención es que te lleves estos conceptos contigo
  • De que trata el modelo relacional
  • Por que es uno de los mas usados
  • Que funciona con la teoría de conjuntos
Para el siguiente numero del blog...
Sería ventajoso que ya sepas algo de la teoría de conjuntos, pero, si literalmente no sabes nada, recomendaría que investigues acerca del tema si quieres continuar con las demás entradas, no es obligatorio, pero solo es una sugerencia.

Bibliografía

1. Arias, Enrique Rus. economipedia. economipedia. [En línea] [Citado el: 21 de Noviembre de 2020.] https://economipedia.com/definiciones/modelo-relacional.html.

2. nikemilio. clubensayos. clubensayos. [En línea] 21 de Febrero de 2014. [Citado el: 21 de Noviembre de 2020.] https://www.clubensayos.com/Tecnología/Características-De-Los-Conjuntos/1468708.html.

3. Pacay, Daniel. idocpub. idocpub. [En línea] Diciembre de 2019. [Citado el: 21 de Noviembre de 2020.] https://idoc.pub/documents/idocpub-jlk90r72e545.

 


7. [Introducción a base de datos] - Modelo de bases de datos - Modelo de Redes

Introducción

Vamos en orden cronológico. El primer modelo en existir fue el modelo jerárquico, funcionaba, pero con sus deficiencias, específicamente no permitir relación muchos a muchos. Es aquí donde llega el modelo de redes.

¿Qué es el modelo de redes?

[1] Un modelo que se construye con conjuntos de registros relacionados. Cada conjunto consiste de un registro propietario o principal y uno o más registros miembros o secundarios. Un registro puede ser miembro o secundario en múltiples conjuntos, permitiendo que este modelo represente relaciones complejas.

Si... Ojala pudiera dar una definición un poco menos "técnica", pero cuando fue presentada como otra opción para modelar la información, su definición se torno muy complicada y difícil de entender.

Modelo Jerárquico VS Modelo de Redes

Este modelo se basa en los grafos, que es un diagrama que permite múltiples relaciones entre los elementos, es decir, permite relación de muchos a muchos, cosa que el modelo jerárquico no puede hacer.

Veamos con un ejemplo el porque se propuso como una mejor alternativa. Tomando como ejemplo este enunciado.

UNA ESCUELA, LA CUAL ESTA CONFORMADA POR ALUMNOS, MAESTROS Y CURSOS.

Si comparamos los esquemas de cada uno, el modelo de redes se ve mucho mejor porque no duplica los elementos, permite hacer relaciones de muchos a muchos y permite relaciones entre todas las entidades del sistema.

¿Entonces es mejor el modelo de redes?

No necesariamente, depende del proyecto que se requiera realizar.

Se debe considerar sus pros y contras para decidir si conviene o no utilizar este modelo, en lo personal, sigo prefiriendo el modelo relacional. Pero ya depende de cada quien si le conviene utilizarlo.

Ventajas

  • Utiliza reglas de integridad
  • Mantiene,asegura la exactitud y consistencia de los datos durante todo el ciclo de vida

Desventajas

  • Utiliza apuntadores (Muy complejo)
  • Extremadamente difícil de mantener

Conclusiones

Este modelo, al igual que el jerarquico, puede que se siga utilizando, lo cual es poco probable teniendo a la mano el modelo relacional.
Y, para recapitular.
  • Es una estructura basada en grafos
  • Permite relaciones N:M
  • Estructuralmente difícil
  • Maneja apuntadores

Bibliografía

1. basesdedatos. basesdedatos. [En línea] [Citado el: 21 de Noviembre de 2020.] https://basededatos.top/modelo-de-base-de-datos/.

 

6. [Introducción a base de datos] - Modelo de bases de datos - Modelo Jerárquico

Introducción

Este fue el primer modelo creado y utilizado para gestionar la información. Fue un boom apoyado por IBM.

¿Que es el modelo jerárquico?

Es un modelo que organiza la información en una estructura de tipo árbol invertido

Un ejemplo del modelo jerarquico con información de simios

- Podría hablar de como organizar la información con este modelo, aunque, no vale tanto la pena, este modelo se usa pero ya no tanto, de hecho es muy raro utilizarlo. Así que me voy a limitar mencionando las nomenclaturas y estructura porque pueden servir para otros campos que tienen funcionamiento/estructuras iguales.

Nomenclatura

  • Raíz: Es el primero nodo del arbol (Sería "Great apes" la raiz de este caso)
  • Camino: Una secuencia de nodos y brazos conectados con un nodo descendiente.
  • Padre: La noción inversa de hijo.
  • Hijo: Un nodo conectado directamente con otro cuando se aleja de la raíz.
  • Hermanos:  Un conjunto de nodos con el mismo padre.
  • Nodo: Un nodo con al menos un hijo
  • HojaUn nodo sin hijos.
- Aun hay más nomenclaturas por mencionar, pero no es el caso, no se trata de ver a fondo este modelo cuando no es muy usado, a menos que requieras utilizarlo en un caso especial (no necesariamente en las bases de datos). Lo que si te puedo compartir, es algunos ejemplos de este modelo en la vida real y que tal vez no te hallas dado cuenta.

Ejemplos de Modelo Jerárquico

  1. HTML
Así es, el lenguaje de etiquetas funciona como un modelo jerárquico.
    
    2. JSON

 
    3. Menús desplegables
Un ejemplo más cotidiano, los menús desplegables. Cuando seleccionas una opción y esta te arroja mas opciones. Por ejemplo, para la presentación de power point que te pidieron para este tema vas a incluir multimedia que enriquezca la clase, ¿de que tipo? Imágenes o Vídeos
¿Y si es vídeo? ¿De donde lo vas a sacar, desde tu pc o lo buscaras en linea?

¿Por que no es tan utilizado el modelo jerárquico?

Una sencilla razón, NO PERMITE RELACIONES MUCHOS A MUCHOS (N:M)
Esto implica, que para "imitar" esta relación se afecte el rendimiento de la base de datos al haber una redundancia de datos.

Veamos esto con un ejemplo.
QUEREMOS MODELAR QUE ALBERTO TIENE UN PAPÁ (JOSE LUIS) Y UNA MADRE (PATRICIA), ese es nuestro objetivo, una relación que denote el enunciado.

Con estos datos, podemos visualizar las entidades y pensar en como hacer la relación con el modelo jerárquico.

¿Como se haría esta relación? En la imagen esta mostrado como se debe hacer

  • Izquierda: No hay mucho que decir, que dos padres apunten al mismo hijo no se puede. Cada "padre" tiene sus propios hijos, no los pueden compartir. (Eso nos dice el modelo jerárquico)
  • Derecha: Es lo "correcto", tendríamos que hacer una copia de Alberto para que Patricia tenga a su hijo que tiene con José Luis, que se denote que es su madre. Pero hacer esto, solo hará mas difícil de entender el modelo (aunque este "organizado") por las múltiples copias que se hacen, y no solo mas difícil de entender, si no que el rendimiento del modelo lo alentaría por tener muchas copias al intentar imitar la relación muchos a muchos.
Por esta razón, ya no se usa, habiendo mejores opciones, como el modelo relacional.

Conclusiones

Este tipo de modelos aun se siguen utilizando, pero ya son contadas ocasiones.
Se llegó a utilizar en los 60's por ser de los únicos modelos para relacionar la información. Ya es remplazado por el modelo relacional que es mucho mas solido y flexible.

5. [Introducción a base de datos] - Modelo de bases de datos - Archivos Planos

¿Qué es un modelo de archivos planos?

Son una colección de información que está almacenada con una estructura poco organizada. Se caracteriza porque en este modelo la información no se maneja fácilmente (de hecho es casi imposible).

Clasificación de los archivos planos

  • Texto plano
  • Archivos binarios

Texto Plano

Ejemplos de archivos planos

  • Los Comma Separated Values (valores separados por comas) 

  • Marcados (Como HTML)

  • Sin formato

Archivos Binarios

Son las bases de datos donde los datos no son archivos de texto, archivos que no podemos leer.
Los ejemplos que se muestran, no son fáciles de leer, se puede hacer, pero tomaría mucho tiempo descifrar lo que dicen. En esta clasificación no hablamos exclusivamente del binario

Ejemplos de Archivos Binarios

  • Binario
  • Hexadecimal

  • Procesador de palabras
Es un procesador de palabras con un archivo corrompido, que puede ser salvable con la información dañada que contiene, conocemos algunos caracteres, como las letras u otros símbolos, pero eso no significa que lo podamos leer fácilmente, a pesar de que es información.
  • Hoja de calculo
Mismo caso, conocemos algunos caracteres pero eso no significa que entandamos la información que contiene. Y no necesariamente es un archivo binario

Ventajas de los archivos planos

  • Fáciles de comprimir
  • Tasa de transferencia alta
  • Son humanamente legibles

Desventajas de los archivos planos
  • Estructura poco organizadas
  • Manejable solo con volúmenes pequeños
  • Carecen de seguridad
  • Difícil de hacer relaciones
  • Los datos se corrompen fácilmente
En esta lectura no hice nada más que arrojar teoría, porque es lo único que hay para esta entrada.

4. [Introducción a base de datos] - Modelos de bases de datos (Prefacio)

Ya tenemos ciertos conocimientos de este tema, y como te decía en otras entradas, existen varios tipos de bases de datos. Es hora de que aterricemos en uno de esos tipos para ponernos manos a la obra.

Te voy adelantar de una vez cual tipo se manejara en esta serie de entradas. EL MODELO RELACIONAL, pero antes de llegar a eso, veamos un poco los otros tipos que se manejan, por conocimiento "general" de un informático. 

Para ser mas organizado. Estos son los tipos de modelos que se verán.

Tranquilo, no estas "obligado" a aprender utilizar todos los modelos (a excepción del modelo relacional) que se muestran, porque de hecho, hay algunos que ya no se utilizan y si lo hacen, es muy poco, aunque igual no es tan necesario aprender a utilizarlos.

Es como el tipo que quiera aprender a programar en binario y con tarjetas perforadas, no esta mal, pero teniendo los lenguajes de alto nivel...


3. [Introducción a base de datos] ¿Qué es un modelo de datos?

 Introducción

Cuando se intenta diseñar una base de datos, podemos dibujar y escribir todo lo que queramos para dar a entender como funciona la base de datos, aunque, posiblemente solo nosotros entendamos lo que plasmamos. Es aquí donde entran los modelos para intentar "estandarizar" la representación y construcción, de forma que todos puedan comprender el diseño.

¿Qué es un modelo de datos?

Es un lenguaje de modelado para la definición de esquemas, es decir, una representación gráfica o simbólica de cosas materiales o inmateriales, un modelo de datos va a ser una representación gráfica de cómo interactuan los datos entre sí y cómo se relacionan con las propiedades del mundo externo.

Y... ¿esto que tiene que ver con el código o las bases de datos?

Ejemplo de modelo de datos

En la imagen se muestra una representación real del despliegue de una aplicación, supongamos que se trata de un sitio web que vende playeras.

  1. Cliente-Vendedor: Los clientes interesados en ciertas playeras y el vendedor interesado en vender sus productos. Para eso, deben hablar en el mismo canal, es decir, debe haber un modelo de datos para que ambos se entiendan
  2. Vendedor-Sistema: El vendedor gestiona todo desde su sistema, pero para esto, el vendedor debe entender al sistema y viceversa. Otro modelo de datos para que el sistema sea "usable" y el vendedor sepa manipularlo al estar en el mismo "canal".
  3. Código-Software: La programación se comunica con el software para hacer lo que se pide, lo mismo, el software debe ser capaz de reconocer el lenguaje de programación y el lenguaje a la arquitectura del software. Por ejemplo, Java con Android pero no Java con Apple. Otro modelo de datos para que estos se entiendan.
  4. Software-Almacenamiento: Todos los datos se deben guardar para su posterior uso en algún futuro. Estos dispositivos físicos de almacenamiento deben comunicarse con el software para permitir el guardado como lo dicta el software, de nuevo un modelo de datos.
Todos los involucrados se comunican entre sí.

¿Para qué usar un modelo de datos?

Para definir esquemas

¿Y qué es un esquema?

Esquema: Representación gráfica o simbólica de cosas materiales o inmateriales. 

¿Para que sirven los esquemas?

1. Un lenguaje común

Permitirá que la interacción entre las entidades se comprendan entre ellas. Por ejemplo. Si yo te pongo 
ерунда для тех, кто не говорит по русски

¿No lo entiendes verdad? Que tal ahora
es un texto sin sentido para el que no habla ruso

Pero que tal esto
c = a + b

No importa que idioma hables, chino, ingles, ruso, español, etc. TODOS entendemos la suma anterior, no tenemos los datos, pero sabemos que es la suma de 2 variables. Las matemáticas son un lenguaje común porque todos lo podemos entender.

2. Identificar entidades

Sirve para identificar a los involucrados del sistema
Por ejemplo, retomando la venta de playeras.
Las entidades se identifican fácilmente como sustantivos. No siempre es así, las facturas existen, explicitamente no se muestra en el modelo, pero ahí están una vez hechas las ventas.


3. Reglas del negocio

¿Cómo se hacen las cosas? ¿Que procede después de realizar x acción? 
Un ejemplo de reglas, pero antes, la siguiente definición.

En las entidades Facturas-Playeras.
¿Que regla podemos sacar con estas? 
Que las facturas son hechas al menos con una playera y no hay limite en las playeras que se pongan. 
Esta "regla" se denota con una FLECHA CERRADA apuntando a la entidad playeras para denotar que debe haber almenos una playera y el signo infinito para denotar que no hay limite en la cantidad. Con esto se ha hecho una cardinalidad de 1 a muchos.

¿Qué es la cardinalidad?
El numero de elementos de un conjunto.

Pero ojo, también hay que establecer las reglas de Playeras-Facturas.
Ahora se analiza en el sentido opuesto. Haciendo estas cuestiones
¿Los productos aparecen en factura? Si
¿Los productos pueden NO APARECER en las facturas? Si
Existe la situación en que no se vendan todas las playeras, y no por eso tienen que tener factura. 

Con una FLECHA ABIERTA apuntando a la entidad facturas para denotar que puede playeras sin facturas, y ademas, que no hay limite. Es decir, podemos tener todas las playeras que queramos sin vender (sin facturar)denotado con un signo infinito.
Quedando una relación como la mostrada en la imagen.
Es importante respetar los símbolos que se usan en un esquema, ya que son un "estándar" para que todos podamos entenderlo, si o si nos debemos apegar a sus símbolos.

Conclusión

Hubo mas explicación que definiciones, pero el punto es conocer el concepto de modelos de datos, su finalidad y porque debería interesarle a la persona que planea diseñar aplicaciones que contengan bases de datos
Así que, unos puntos para recapitular de los conceptos que debes llevarte.
Los modelos de datos...
  • Son una estructura abstracta
  • Documenta, organiza y estructura la información
  • Define un lenguaje común para entendernos
  • Identifica entidades
  • Describe las reglas del negocio(relaciones)
  • Son utilizados para diferentes campos, base de datos, contaduría, negocios, etc.
  • Son claros (no ambiguos)
  • Independientes de los dispositivos
  • Flexible, Estable y reutilizable

2. [Introducción a base de datos] ¿Qué es una Base de Datos?

Introducción

¿Emocionado por aprender bases de datos y dominar el mundo creando un monopolio como Google?

Bueno, primero conozcamos que es una base de datos antes de ponernos manos a la obra con conceptos "avanzados" y ejercicios que nos ayuden a construir una base de datos bien estructurada.

¿Qué es una base de datos?

Una colección de información organizada de tal modo que sea fácilmente accesible, gestionada y actualizada.

Ejemplo de una base de datos

No, no voy a mostrar un pantallaso del MySQL con un montón de tablas. La sinfonía n°5 de Beethoven es una base de datos.

 

¿Me estas tomando el pelo?

- Pues no, y te explicare porque estoy escribiendo tal cosa 

La sinfonía se compone de "notas". Una como esta.


 La cual contiene ciertos meta-datos, como los tiempos, el nombre de la nota, su símbolo (y todos los datos que queramos incluir).

Pero, la sinfonía no se compone de un solo dato, si no de varios (en este caso las notas) para conformar la sinfonía. Hay que dejar en claro, que la sinfonía es una BD por que los datos ESTÁN ORGANIZADOS, TIENEN EL MISMO CONTEXTO (notas musicales) Y UN USO (tocar la sinfonía para ser escuchada).

Si no se cumplen estar características, pues solo tendríamos una serie de datos sin sentido, no podría considerarse una base de datos.

1. [Introducción a base de datos] - ¿Qué es un dato?

Introducción

Estos conceptos ¿para que me sirven o para que me interesa conocerlos? Bueno, estos son conceptos básicos que alguien sumergido en la programación debería conocer, es como si un cocinero preparara la mejor pizza del mundo y no sepa como se hace un huevo, es elemental.
Para un programador, estos conceptos van de la mano con una área de la TI, las Bases de Datos.
Así que, si no conoces nada de las bases de datos, esta lectura te puede servir para comenzar en esa rama, antes de crear tablas en SQL y hacer tablas que ni tu entiendes pero "ahí funcionan".

¿Qué es un dato?

Representación simbólica de un atributo o variable cuantitativa o cualitativaDescribe una Entidad, un Hecho, un Momento de la vida real.Aisladamente es incomprensible, irrelevante, no genera ni contiene información.

Ejemplo de un dato

Un ejemplo de dato, el 3.
Pero, tres ¿qué? 
  • ¿3 perros?
  • ¿3 sandías?
  • ¿3 novias?
Por si solo, este dato aislado, no significada nada, puede significar muchas cosas, pero sin mas datos es irrelevante conocerlo.
Entonces... Si tuviera más datos
¿Podría darle algún significado a ese numero 3? Es correcto

Primero conozcamos la definición de meta-dato.

¿Qué es un meta-dato?

También conocida como meta-datos descriptivos, son datos que describen a otro datoListo, así de sencillo. 

Ejemplo de un meta-dato

Retomando el dato 3.
Agregando esos meta-datos, ahora cobra mayor sentido. 
Ya sabemos que se trata de la edad de un animal que es mamífero.
Pero aun así, todavía hay muchas incógnitas.
Por ejemplo, uno se puede preguntar:

¿Que animal es?
¿Este mamífero pone huevos?
¿En que parte se puede encontrar este mamífero?
¿Cómo es el mamífero? Etc...

¿Qué es una entidad?

Es una colección de datos que mantienen una relación entre sí.

Bien, digamos, que tenemos una colección larga de datos que nos describen mejor a este animal mamífero.

Ya no se hablan de 3 meta-datos, si no de varios datos (atributos), muchísimos, que nos describen muy bien al animal (la entidad).

Conclusiones

Bien, para recapitular, deberían quedar claro los conceptos. Pero, por si acaso.
  • Los atributos (datos) describen a las entidades (cosas, objetos).
  • Los meta-datos son datos que describen a los datos
  • Un dato, por si solo, es irrelevante, no tienen ningún sentido
  • Aunque los datos sean concretos, NO SON INFORMACIÓN NI CONOCIMIENTO.
Con esto, espero haber ayudado a que se conocieran algunos conceptos básicos, antes de entrar de lleno a la practica, que de hecho, hay mucho por explicar antes de meter mano a los motores de bases de datos. ¿Por qué?
Bueno, existen varios tipos de bases de datos, pero eso es para otro tema. Pero para darte una idea.
Manejar un carro y un autobús ¿es lo mismo? Pues, hasta cierto punto si. Aquí es lo mismo, algunos conceptos (como los explicados en este blog) se aplican en ambos tipos, pero algunos quitan/agregan modifican su forma de trabajo. Se debe tener el conocimiento correctos para dichos casos aunque sean "parecidos".

Nube de imagenes