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...
- Fácil de consultar
- Consistente
- Fácil de mantener
Esto se explica mejor con una imagen
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
- Duración
- Estabilidad
- 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".
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
Normalmente, se hace uso de esta llave cuando la llave natural...
- No existe
- No se conoce
- Puede cambiar (por eso los nombres de una persona no se usan como llave)
- Es muy grande
- Puede quedar invalidada
Conclusiones
Debes quedarte con estos conceptos antes de poder avanzar
- Base de datos
- Relaciones
- Tuplas
- Atributos
- El orden de las tuplas no importa (por eso existen las llaves para identificarlas)
- Los atributos no se repiten
- Datos simples y compuestos
- EVITAR LA REDUNDANCIA FUERTE
- Identificación de las tuplas (llaves)
- Llaves primarias
- Naturales
- 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.