jueves, 13 de diciembre de 2018

Álgebra Relacional

Es un método que consiste básicamente en crear o construir nuevas relaciones a partir de relaciones existentes.
Existen 2 tipos de operadores algebraicos:
  • Operadores básicos o primitivos.
  • Operadores no básicos o derivados.
Operadores básicos o primitivos.
Se clasifican en:
  1. Proyección (π).
  2. Selección (σ).
  3. Unión (U).
  4. Diferencia (-).
  5. Producto cartesiano (X).
Proyección.
Este operador permite extraer columnas de una relación y de esta manera crea un subconjunto de atributos de la relación, además elimina las filas duplicadas.
Ejemplo
PERSONA
CODIGONOMBREEDADTELEFONOCIUDAD
1PEDRO243182405QUITO
2SONIA153234534QUITO
3ERIK184102405GUAYAQUIL
4ANDREA274089129GUAYAQUIL
π NOMBRE, CUIDAD (PERSONA)
NOMBRECUIDAD
PEDROQUITO
SONIAQUITO
ERIKGUAYAQUIL
ANDREAGUAYAQUIL
Selección.
Este operador permite seleccionar un subconjunto de filas o registros de una relación y de acuerdo a la condición planteada los registros serán seleccionados para formar parte de un nuevo subconjunto.
Ejemplo
PERSONA
CODIGONOMBREEDADTELEFONOCIUDAD
1PEDRO243182405QUITO
2SONIA153234534QUITO
3ERIK184102405GUAYAQUIL
4ANDREA274089129GUAYAQUIL
σ CODIGO>2 (PERSONA)
CODIGONOMBREEDADTELEFONOCIUDAD
3ERIK184102405GUAYAQUIL
4ANDREA274089129GUAYAQUIL
Unión.
La unión de 2 relaciones R y S es otra relación la cual va a tener los registros de R en  S o en ambas, además se eliminan los registros duplicados.
En esta relación R y S deben ser compatibles es decir que deben estar definidas sobre el mismo conjunto de atributos.
Ejemplo
EMPLEADO
CÓDIGONOMBRESUELDO
1KEVIN550
2EDUARDO300
3JESSICA240
4NANCY430
JEFE
CÓDIGONOMBRESUELDO
5PEDRO800
2EDUARDO300
6ADRIAN1000
4NANCY430
8JUAN180
EMPLEADO U JEFE
CÓDIGONOMBRESUELDO
1KEVIN550
2EDUARDO300
3JESSICA240
4NANCY430
5PEDRO800
6ADRIAN1000
8JUAN180
Diferencia.
La diferencia de 2 relaciones R y S es otra relación la cual va a tener los registros que están en R pero no están en S.
En esta relación R y S deben ser compatibles.
Ejemplo
EMPLEADO
CÓDIGONOMBRESUELDO
1KEVIN550
2EDUARDO300
3JESSICA240
4NANCY430
JEFE
CÓDIGONOMBRESUELDO
5PEDRO800
2EDUARDO300
6ADRIAN1000
4NANCY430
8JUAN180
EMPLEADO – JEFE
CODIGONOMBRESUELDO
1KEVIN550
3JESSICA240
JEFE – EMPLEADO
CODIGONOMBRESUELDO
5PEDRO800
6ADRIAN1000
8JUAN180
Producto cartesiano.
Es  una relación que consiste en la concatenación de cada una de las filas de la relación R con cada una de las filas de la relación S.
Ejemplo
PROVINCIA
CÓDIGONOMBREPOBLACION
5PICHINCHA800
2AZUAY300
6GUAYAS1000
4COTOPAXI430
CIUDAD
CÓDIGOCIUDAD
C1QUITO
C2CUENCA
C3GUAYAQUIL
PROVINCIA X CIUDAD
CÓDIGONOMBREPOBLACIONCODIGOCIUDAD
5PICHINCHA800C1QUITO
5PICHINCHA800C2CUENCA
5PICHINCHA800C3GUAYAQUIL
2AZUAY300C1QUITO
2AZUAY300C2CUENCA
2AZUAY300C3GUAYAQUIL
6GUAYAS1000C1QUITO
6GUAYAS1000C2CUENCA
6GUAYAS1000C3GUAYAQUIL
4COTOPAXI430C1QUITO
4COTOPAXI430C2CUENCA
4COTOPAXI430C3GUAYAQUIL
Operadores no básicos o derivados.
Se clasifican en:
  1. Intersección (∩).
  2. Unión natural ().
  3. División (/).
Intersección.
Es  una relación que contiene el conjunto de todas las filas que están tanto en la relación R como en S.
R y S deben ser compatibles.
Ejemplo
EMPLEADO
CODIGONOMBRESUELDO
1KEVIN550
2EDUARDO300
3JESSICA240
4NANCY430
JEFE
CODIGONOMBRESUELDO
5PEDRO800
2EDUARDO300
6ADRIAN1000
4NANCY430
8JUAN180
EMPLEADO – JEFE
CODIGONOMBRESUELDO
2EDUARDO300
4NANCY430
Unión natural.
El resultado es una relación con los atributos de ambas relaciones y se obtiene combinando vas filas de ambas relaciones que tengan el mismo valor en los atributos comunes.
El join se lo usa entre los atributos comunes de las entidades o tablas que poseen la clave primaria de una tabla foránea correspondiente de otra entidad.
Ejemplo
PROVINCIA
CODIGONOMBREPOBLACIONCODIGO_CIUDAD
5PICHINCHA8001
2AZUAY3003
6GUAYAS10003
4COTOPAXI4301
CIUDAD
CODIGO_CIUDADCIUDAD
1QUITO
2CUENCA
3GUAYAQUIL
CÓDIGONOMBREPOBLACIONCODIGO_CIUDADCODIGO_CIUDADCIUDAD
5PICHINCHA80011QUITO
5PICHINCHA80012CUENCA
5PICHINCHA80013GUAYAQUIL
2AZUAY30031QUITO
2AZUAY30032CUENCA
2AZUAY30033GUAYAQUIL
6GUAYAS100031QUITO
6GUAYAS100032CUENCA
6GUAYAS100033GUAYAQUIL
4COTOPAXI43011QUITO
4COTOPAXI43012CUENCA
4COTOPAXI43013GUAYAQUIL
RESULTADO
CODIGONOMBREPOBLACIONCODIGO_CIUDADCODIGO_CIUDADCIUDAD
5PICHINCHA80011QUITO
2AZUAY30033GUAYAQUIL
6GUAYAS100033GUAYAQUIL
4COTOPAXI43011QUITO
Outer Join.
Es una variante del join en la que se intenta mantener toda va información de los operandos, incluso para aquellas que no encajan o entran en juego en el Join, se rellena con nulos las filas que no tienen correspondencia en el Join.
Existen 3 variantes:
  1. Left.
  2. Right
  3. Full
Left
Se tiene en cuenta todas las filas del primer operando.
Right
Se tiene en cuenta todas las filas del segundo operando.
Full
Se tiene en cuenta todas las filas de ambos operandos.
División.
Define una relación sobre el conjunto de atributos C, incluido en la relación R, y que contiene el conjunto de valores de S, que en las filas de R están combinadas con cada una de las filas de S.
R
ABCD
1235
4359
3281
1227
1327
S
CD
35
27
R / S
AB
12

Modelo Relacional

El modelo relacional, para el modelado y la gestión de bases de datos, es un modelo de datos basado en la lógica de predicados y en la teoría de conjuntos.
Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos.
Su idea fundamental es el uso de relaciones. Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados tuplas. Pese a que esta es la teoría de las bases de datos relacionales creadas por Codd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar, pensando en cada relación como si fuese una tablaque está compuesta por registros (cada fila de la tabla sería un registro o "tupla") y columnas (también llamadas "campos").
Es el modelo más utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente.

Ventajas

  • Provee herramientas que garantizan evitar la duplicidad de registros.
  • Garantiza la integridad referencial, así, al eliminar un registro elimina todos los registros relacionados dependientes.
  • Favorece la normalización por ser más comprensible y aplicable.

Desventajas

  • Presentan deficiencias con datos gráficos, multimedia, CAD y sistemas de información geográfica.
  • No se manipulan de forma eficiente los bloques de texto como tipo de dato.
Las bases de datos orientadas a objetos (BDOO) se propusieron con el objetivo de satisfacer las necesidades de las aplicaciones anteriores y así, complementar pero no sustituir a las bases de datos relacionales.

Descripción

En este modelo todos los datos son almacenados en relaciones, y como cada relación es un conjunto de datos, el orden en el que estos se almacenen no tiene relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar por un usuario no experto. La información puede ser recuperada o almacenada por medio de consultas que ofrecen una amplia flexibilidad y poder para administrar la información.
Este modelo considera la base de datos como una colección de relaciones. De manera simple, una relación representa una tabla que no es más que un conjunto de filas, cada fila es un conjunto de campos y cada campo representa un valor que interpretado describe el mundo real. Cada fila también se puede denominar tupla o registro y a cada columna también se le puede llamar campo o atributo.
Para manipular la información utilizamos un lenguaje relacional, actualmente se cuenta con dos lenguajes formales el Álgebra relacional y el Cálculo relacional. El Álgebra relacional permite describir la forma de realizar una consulta, en cambio, el Cálculo relacional solamente indica lo que se desea devolver.

Esquema

Un esquema contiene la definición de una estructura (generalmente relaciones o tablas de una base de datos), es decir, determina la identidad de la relación y qué tipo de información podrá ser almacenada dentro de ella; en otras palabras, el esquema contiene los metadatos de la relación. Todo esquema constará de:
  • Nombre de la relación (su identificador).
  • Nombre de los atributos (o campos) de la relación y sus dominios; el dominio de un atributo o campo define los valores permitidos para el mismo, equivalente al tipo de dato por ejemplo characterintegerdatestring...

Instancias

Una instancia de manera formal es la aplicación de un esquema a un conjunto finito de datos. En palabras no tan técnicas, se puede definir como el contenido de una tabla en un momento dado, pero también es válido referirnos a una instancia cuando trabajamos o mostramos únicamente un subconjunto de la información contenida en una relación o tabla, como por ejemplo:
  • Ciertos caracteres y números (una sola columna de una sola fila).
  • Algunas o todas las filas con todas o algunas columnas
    • Cada fila es una tupla. El número de filas es llamado cardinalidad.
    • El número de columnas es llamado aridad o grado.
    • Resultado de imagen para ejemplos de modelo de relacional base de datos

Modelo de Red

Una base de datos de red está conformada por una colección o set de registros, los cuales están conectados entre sí por medio de enlaces en una red. El registro es similar al de una entidad como las empleadas en el modelo relacional.  El modelo de datos en red general representa las entidades en forma de nodos de un  grafo,  y las interrelaciones entre estas mediante arcos que unen dichos nodos. En principio esta  representación no impone restricción alguna acerca del tipo y el número de arcos que puede  haber, con lo que se pueden modelar estructuras de datos tan complejas como sea necesario.
Una restricción bastante importante de este modelo, es que una ocurrencia de registro miembro puede pertenecer como máximo a una sola instancia de un determinado conjunto, aunque puede participar en varios tipos de conjuntos distintos
Si, las siglas ER, modelo entidad-relación y reciben este nombre ya que los elementos principales son las interrelaciones y entidades que puedan haber. En este modelo uno de los modos de modelización de datos que más se utiliza pues es simple y fácil de aprender. La transformación E-R es una herramienta muy útil pues ayuda al diseñador a reflejar un modelo conceptual de los verdaderos requisitos para que, pueda interactuar con el usuario final y corroborar la satisfacción de las necesidades de los usuarios.
LAS ENTIDADES- se representan en un pequeño recuadro
LOS ATRIBUTOS- se representan mediante sus propios nombres pero en minúsculas; todos deben ser univaluados.
LA CLAVE PRIMARIA- debe estar subrayada para poder diferenciarla de las demás
Ejemplos:
Resultado de imagen para ejemplos de modelo de red base de datos

Modelo Jerarquico

Una base de datos jerárquica es un tipo de sistema de gestión de bases de datos que almacenan la información en una estructura jerárquica que enlaza los registros en forma de estructura de árbol  en donde un nodo padre de información puede tener varios nodos hijo. De la misma manera se puede establecer relación entre los nodos hermanos En este caso la estructura en forma de árbol se convierte en una estructura en forma de grafo dirigido.
El modelo jerárquico se clasifica en estructuras lineales y arborescentes. La primera clase de estructura, cada tipo de registro padre sólo puede tener un tipo de registro hijo. La segunda, un tipo de registro padre puede tener varios tipos de registros hijos. El producto comercial de tipo Jerárquico más extendido y el único que ha llegado hasta nuestros días es el IMS de IBM
El modelo jerárquico facilita relaciones padre-hijo, es decir, relaciones 1:N (de uno a varios) del modelo relacional. Pero a diferencia de éste último, las relaciones son unidireccionales. En justicia, dichas relaciones son hijo-padre, pero no padre-hijo. Por ejemplo, el registro de un empleado (nodo hijo) puede relacionarse con el registro de su departamento (nodo padre), pero no al contrario. Esto implica que solamente se puede consultar la base de datos desde los nodos hoja hacia el nodo raíz. La consulta en el sentido contrario requiere una búsqueda secuencial por todos los registros de la base de datos (por ejemplo, para consultar todos los empleados de un departamento). En las bases de datos jerárquicas no existen índices que faciliten esta tarea
Una de las principales limitaciones de este modelo es su incapacidad de representar eficientemente la redundancia de datos. De la misma manera, otra limitación es, no garantiza la inexistencia de registros duplicados. Esto también es cierto para los campos “clave”. Es decir, no se garantiza que dos registros cualesquiera tengan diferentes valores en un subconjunto concreto de campos.

domingo, 28 de octubre de 2018

Normalizacion

 Normalización de Base de Datos, es el proceso de organizar los datos en una base de datos que incluye la creación de tablas y el establecimiento de relaciones entre ellas.
Este proceso es utilizado para ayudar a eliminar los datos redundantes.
Cinco formas de normalización (FN: Forma normal)
1FN: Eliminar grupos repetitivos
2FN: Eliminar datos redundantes
3FN: Eliminar columnas no depende de clave
4FN: Aislar Relaciones Múltiples Independientes
5FN: Aislar relaciones semánticamente relacionadas múltiples

Primera Forma Normal (1FN)

La primera forma normal significa que los datos están en un formato de entidad, lo que significa que se han cumplido las siguientes condiciones:
  • Eliminar grupos repetidos en tablas individuales
  • Crear una tabla independiente para cada conjunto de datos relacionados
  • Identificar cada conjunto de relacionados con la clave principal
No utilice varios campos en una sola tabla para almacenar datos similares
EJEMPLO DE NORMALIZACIÓN

En el ejemplo tenemos una tabla No Normalizada que contiene Estudiantes, Tutor, Habitación y las Clases 1,2 y 3. Vamos a implementar la primera forma normal, luego la segunda y la tercera. Al aplicarle la primera forma normal eliminamos los grupos repetidos quedándonos con una sola columna de clases y repitiendo los datos del estudiante tutor y habitación y ahora no tenemos grupos repetidos porque aplicamos la primera forma normal (1FN).

Segunda Forma Normal (2FN)

La segunda forma normal asegura que cada atributo describe la entidad
Crear tablas separadas para el conjunto de valores y los registros múltiples, estas tablas se deben relacionar con una clave externa.
Los registros no deben depender de otra cosa que la clave principal de la tabla, incluida la clave compuesta si es necesario
Al pasar a la segunda forma normal vamos a eliminar los datos redundantes, y para lograrlo vamos a crear dos tablas. Una  tabla se llamara Estudiantes donde eliminaremos los datos redundantes quedándonos con los datos únicos (Estudiante, Tutor y Habitación) y en una segunda tabla que llamaremos Registro para el numero de estudiante y las clases que llevara en el ejemplo el estudiante 1606 y 2602 llevara cada uno tres clases. El contenido de la (1FN) Primera Forma Normal que estaba en una tabla ha sido divido en dos tablas para eliminar los datos redundantes e introducirlo a la (2FN) Segunda Forma Normal.

Tercera forma normal (3FN)

La tercera forma normal comprueba las dependencias transitivas, eliminando campos que no dependen de la clave principal.
Los valores que no dependen de la clave principal no pertenecen a la tabla
Los campos que no pertenecen a la clave principal colóquelos en una tabla aparte y relacionen ambas tablas por medio de una clave externa.
Para pasar a la tercera forma normal tenemos que eliminar los campos de No Dependen de la Clave y para lograrlo dividimos la tabla estudiante en dos tablas y creamos la tabla Facultad donde trasladaremos la columna habitación que No Depende de la Clave que es la columna estudiante, el nombre del tutor sera el enlace con al tabla estudiante aunque también podría ser la columna estudiante.

Otras formas de normalización

La cuarta forma normal también se llama la forma normal de Boyce Codd (BCNF) y la quinta forma normal existe, pero rara vez se consideran en el diseño práctico.
El no tener en cuenta estas dos reglas de normalización adicionales puede resultar en un diseño de base de datos menos perfecto pero no debería afectar a la funcionalidad
La normalización de base de datos es un punto muy importante que deberíamos de tomar muy en serio para establecer cimientos sólidos sobre los cuales podemos construir aplicaciones robustas que en el futuro no presenten problemas de base de datos difíciles de solucionar.