miércoles, 16 de noviembre de 2016

Convertir entidad relación en modelo relacional



Convertir Entidad-Relación en modelo Relacional

  • Se comienza con un modelo E-R
    • Es más fácil de diseñar
    • Tiene dos conceptos: entidad y relación
  • Traducir E-R a relacional, versión simple:
  1. Se agregan claves donde sea necesario.
  2. Cada entidad se transforma en una tabla con los mismos atributos.
    • Atributos multivaluados.
    • atributos derivados.
  3. Cada relación se transforma en una tabla en que los atributos son las claves de cada entidad participante.

Resultado de imagen para traduccion simple entidad relacion pelicula actor estudio

Resultado de imagen para traduccion simple entidad relacion pelicula actor estudio

Combinar relaciones

A veces es posible combinar relaciones
  • El caso típico son las relaciones 1-N
  • Relaciones 1-1 deberían descatarse antes.

Combinar relaciones <ul><li>A veces es posible combinar relaciones </li></ul><ul><ul><li>El caso típico son las relaciones...

Combinando relación 1-N (a)

Normalización de Bases de datos relacionales

Normalización de Bases de datos relacionales

¿Qué es la normalización?

Es un conjunto de reglas que sirven para ayudar a los diseñadores a desarrollar un esquema que minimice los problemas de lógica
Cada regla está basada en la que le antecede, La normalización se adoptó porque el viejo estilo de poner todos los datos en un solo lugar, como un archivo o una tabla de la base de datos, era ineficiente.

Grados de Normalización

Existen tres niveles básicos de normalización
  • Primera Forma Normal.
  • Segunda Forma Normal
  • Tercera Forma Normal
  • Existen Cuatro niveles más:
    • Forma Normal Boyce-Codd
    • Cuarta Forma Normal
    • Quinta Forma Normal
    • Forma Normal de Dominio/Clave
Primera Forma Normal:

Una tabla está en primera Forma Normal si:
  • Todos los atributos son atómicos. Un atributo es atómico si los elementos del dominio son indivisibles, mínimos.
  • La tabla contiene una clave primaria.
  • La clave primaria no contiene atributos nulos.
  • No posee ciclos repetitivos.
  • No debe de existir variación en el número de columnas.
Segunda Forma Normal:

Una tabla en Primera forma normal está en segunda forma normal si y solo si, dada cualquier clave candidata y cualquier atributo que no sea parte de la clave candidata, dicho atributo depende de toda la clave candidata en vez de solo una parte de ella.

Observe que cuando una tabla en primera forma normal no tiene ninguna clave candidata compuesta (claves candidatas consistiendo en más de un atributo), la tabla está automáticamente en segunda forma Normal.

Tercera Forma Normal:

Una tabla está en tercera forma normal si está en segunda forma normal y no existen atributos que no pertenezcan a la clave primaria que puedan ser conocidos mediante otro atributo que no forma parte de la clave primaria, es decir, no hay dependencias funcionales transitivas.



miércoles, 9 de noviembre de 2016

Álgebra Relacional

Álgebra Relacional

  • Se denomina álgebra relacional a un conjunto de operaciones encargadas de la manipulación de datos agrupados (relaciones).
  • Estas operaciones describen la manipulación de datos. Son en sí, una representación intermedia de una consulta a una base de datos.
  • Al aplicarse una operación a una tabla tengo como resultado otra tabla.
Operadores
  • Operadores de comparación
  • Conjunción 
  • Disyunción
  • Negación
Operaciones Unitarias
  • Seleccionar
    • Selecciona el valor de ciertas tuplas.
    • Selecciona filas completas
  • Proyectar
    • Seleccionar el valor de ciertos atributos de todas las tuplas de una relación.
    • Selecciona columnas completas.
  • Eliminar Duplicados
    • Elimina tuplas duplicadas en una relación
Operaciones Binarias

Producto Cartesiano

Operación binaria en donde se obtiene una nueva tabla en base a los atributos de las dos tablas iniciales.

Operaciones de conjuntos

Se trabajan sobre dos o más relaciones que sean compatibles.
  • Unión: Esta operación retorna un conjunto de tuplas que estén en una o en ambas relaciones que se asocian. 
Resultado de imagen para union esta operacion retorna
  • Intersección: Esta operación, obtiene como resultado la cantidad de tuplas que se encuentran en las dos relaciones.
  • Diferencia: Esta operación entrega como resultado la cantidad de tuplas que se encuentren en la primera relación pero no en la segunda.
  • Join: Es equivalente a seleccionar las combinaciones completas del producto cartesiano. Algunos autores indican poner la condición de igualdad.


Left Join / Right Join
  • Join elimina algunos datos
    • Los que no están en las dos tablas.
  • Left Join reemplaza los eliminados por valores nulos en  la tabla de la izquierda.
  • Right Join reemplaza los eliminados por valores nulos en la tabla de la derecha.

Resultado de imagen para ejemplo left join

Fuentes:
  • Galaza. M (2016) "Algera Relacional". Recuperado el 09-06-2016 de http://www2.udla.edu.ec/udlapresencial/mod/resource/view.php?id=594124
  • Fuentes. J (2011)"Lectura 3 - Álgebra Relacional: Select, Project, Join ". Recuperado el 09-06-2016 de  http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week1/lecture3.html
  • Date, C.J. (2001). Introducción a los sistemas de bases de datos (7ª ed.). Prentice-Hall

lunes, 31 de octubre de 2016

Traducción cuando hay subclases



Traducción cuando hay subclases
Entidad-Relación a relacional con subclases:

E-R a relacional con subclases


Opción 1: Directo E-R

Opción 1: directo E-R


Opción 2: Orientado a objetos

Opción 2: orientado a objetos Nota : La tabla vehículo existe en este caso sí y sólo si hay especialización parcial


Opción 3: Valores Nulos

Opción 3: valores nulos


martes, 18 de octubre de 2016

Modelo Relacional







Modelo Relacional

Se fundamenta en el uso de las relaciones, se originó en IBM con Edgar Frank Codd, y es una estructura en base a relaciones en forma de tabla compuesta por registros.

Relación: corresponde a una tabla de datos.

Esquema:

Película (Título, año, duración)

Resultado de imagen para pelicula modelo relacional


Tuplas: Filas o registro completo de algo, es prácticamente un elemento del conjunto.
Dominio: Restricciones que se les asigna a los campos (Tipo de dato, longitud, otras).
Notación:

Atributos          Ai
Relación R         R(A1, A2, A3, ..., An)
Dominio de Ai        dom(Ai)

Relación es un conjunto

  • Por lo tanto, no está ordenado
  • Notación para las tuplas
    • t = <Mar Adentro, 2004, 125> ∈ Matrícula
  • Notación para subconjunto de tupla 
    • t[año, duración] = <2004,125> 
  • Restricción de dominio
    • t[A]= <x> ↔ x ∈ dom(A)
  • En algunos casos
    • NULL ∈ dom(A)
    • En tal caso diremos que la relación acepta valores nulos.
Clave Primaria: Atributo o varios atributos que permiten identificar de manera única a un registro. 
Claves Candidatas:

Resultado de imagen para claves candidatas y primarias ejemplo

  • La elección de una clave primaria es arbitraria (Depende del contexto, de los requerimientos, etc).
  • Se escoge una que tenga pocos atributos
  • Se escoge una que identifique de manera única a cada tupla

Restricciones de Claves

  • Restricción de claves únicas
    • K ⊆ claves (Relación)
    • ∀ t1, t2 ∈ Relación, t1[K] ≠ t2[K]
    • NULL |K| ∉ K
  • Una clave puede ser 
    • Un atributo
    • Varios atributos (clave compuesta)
      • Incluso pueden ser todos los atributos.
Claves Foráneas:

Campo que me permite relacionar una tabla con otra. La clave foránea identifica una columna o grupo de columnas de una tabla, llamada tabla hija o referendo, que se refiere a una columna o grupo de columnas de otra tabla, llamada tabla maestra o referenciada.

Resultado de imagen para claves foraneas blogspot

Integridad Referencial:

Es una propiedad que va a garantizar que una entidad siempre tenga una relación con más entidades válidas existentes en la base de datos.
Esto genera que los datos siempre sean correctos sin datos perdidos, ni repeticiones que no son necesarias.

Resultado de imagen para mejor nombre: ID_XXX mejor dominio: nUMERICO

Mantener Integridad referencial:
  • Al insertar
    • Insertar clave foránea en la otra tabla
    • Rechazar la inserción
  • Al eliminar
    • Eliminar tuplas que apuntan a esta tupla
      • "Cascada" (si borro un registro, todo lo que tiene relación a este registro se borra).
    • Actualizar valores en tuplas que apunten a esta tupla




lunes, 10 de octubre de 2016

Especialización: 

Atributos específicos: cuando se tienen atributos diferenciadores
Relaciones específicas: cuando las entidades se relacionan con diferentes entidades

No hay que especializar demasiado:

  • Está bien que ciertos atributos sean nulos.
    • No toda ausencia/presencia de atributo es relevante
  • Mantener baja la complejidad del problema.
  • Menos entidades es mejor. 
Generalización: 

Encontrar atributos o relaciones en común e intentar generalizar.

Tipo Unión:
  • Hasta el momento siempre hay una superclase
    • Podría no ser el caso
  • Ejemplo:
    • Un banco da créditos para compra de vehículos.
    • Los créditos los da tanto a personas como a empresas.
La subclase unión no tiene atributos propios, tampoco hereda los atributos de las superclases, sino sólo los de una de ellas a la vez.

Resultado de imagen para ejemplo tipo union

Principios de diseño:
  • Correctitud: representar adecuadamente el modelo.
  • Evitar redundancia: (Ej.: relación estudio_película + atributo estudio en película) ¿Por qué?
  • Buscar simplicidad entidades que sean estrictamente necesarias.
  • Cuando aparece un ciclo, hay redundancia, mantener solo si es necesario por eficiencia.
Entidades eliminables:
  • Solo tienen relaciones 1-1 con otra entidad.
    • Ej.: direcciones únicas de personas.
    • Convertir en atributos (al menos durante el proceso de modelamiento).
  • No pensar en las tablas. El modelo E-R es para conceptualizar.
  • Leer y re-leer el diagrama.
    • Simular consultas típicas.
    • Pensar en posible extensiones.
    • Estar preparado para explicar decisiones, si tu haces el modelo, debes saber la función de cada parte.
Resumen:
  • Entidades, Atributos, Relaciones.
  • Diagramas entidad-relación.
  • Buen diseño.
    • "Lo más simple posible pero no más simple que eso" A. Einstein.
    • Resiste el paso del tiempo.
      • No es inmutable: es extensible.
  • Mal diseño
    • Empeora con el tiempo.
      • Casos especiales, más y más entidades, etc. Al final la única solución es deshacerse del diseño.

lunes, 3 de octubre de 2016

Relaciones

Relaciones recursivas:
  • Una relación recursiva puede tener restricciones no especificadas en el diagrama (Ej.: evitar cadenas circulares). 
  • Requiere un nombre (rol) en el vínculo.°°
Restricciones en relaciones:

Cardinalidad
  • 1:1
    • PERSONA es_director_de_departamento DEPTO
  • 1:N o 0:N
    • PERSONA trabaja_en_departamento DEPTO
    • CLIENTE realiza COMPRA
  • N:N
    • ALUMNO inscrito_en_curso CURSO
Simbología:

Resultado de imagen para Entidad débil simbologia
Entidad débil: Entidad que no tiene suficientes atributos para formar una clave primaria.
Entidad Fuerte: Tiene una clave primaria.

Subclases:
Resultado de imagen para subclases