normalizacion y algebra relacional

39
NORMALIZACIÓN Y ALGEBRA RELACIONAL

Upload: angelica-gomez

Post on 25-Nov-2015

36 views

Category:

Documents


5 download

TRANSCRIPT

  • NORMALIZACIN YALGEBRA RELACIONAL

  • INTRODUCCIN DE NORMALIZACIN Es un proceso que clasifica relaciones, objetos, formas de relacin y dems elementos en grupos, en base a las caractersticas que cada uno posee. Si se identifican ciertas reglas, se aplica un categora; si se definen otras reglas, se aplicar otra categora.

    Las bases de datos relacionales se normalizan para:Evitar la redundancia de los datos.Evitar problemas de actualizacin de los datos en las tablas.Proteger la integridad de los datos.

    .

  • La relacin que est en la forma normal ms elevada posible es que mejor se adapta a nuestras necesidades debido a que optimiza las condiciones que son de importancia para nosotros: La cantidad de espacio requerido para almacenar los datos es la menor posible; La facilidad para actualizar la relacin es la mayor posible; La explicacin de la base de datos es la ms sencilla posible.

  • INTRODUCCIN ALGEBRA RELACIONAL

    Se denomina algebra relacional a un conjunto de operaciones encargadas de la manipulacin de datos agrupados (relaciones).

    Estas operaciones describen la manipulacin de datos. Son en si, una representacin intermedia de una consulta a una base de datos.

    Debido a sus propiedades algebraicas, estas operaciones sirven para obtener una versin ms optimizada y eficiente de dicha consulta.

  • Trminos necesarios de entenderRelacin: Se le denomina relacin a un conjuntos de datos ordenados en forma de filas y columnas, los cuales estn relacionados por algn contexto. Estas relaciones contienen dentro de sus partes a la cabecera, tuplas y campos.

    CabeceraTuplasCampo

    Campo1zCampo2Campo3Valor 1Valor 2Valor 3Valor nValor nValor n

  • 2. Tuplas: Es una parte de una relacin, un conjunto de datos que entregan una informacin relacionada. Enfocado a las bases de datos puede llamarse registro filas de una tabla.

    CabeceraTuplas

    Campo1Campo2Campo3Valor 1Valor 2Valor 3Valor nValor nValor n

  • UNIN Esta operacin retorna un conjunto de tuplas que estn en una o en ambas relaciones que se asocian. Para poder realizar esta operacin, es necesario que las dos relaciones sean compatibles.

    El resultado de esta operacin entregar a lo ms la cantidad de tuplas de la primera relacin sumada a la cantidad de tuplas de la segunda. Los elementos repetidos aparecern solo una vez.Se simboliza con ( )

  • EJEMPLO DE UNION:

  • INTERSECCINEsta operacin, obtiene como resultado la cantidad de tuplas que se encuentran en las dos relaciones. Estas relaciones deben ser compatibles para poder obtener un resultado.

    El resultado de esta operacin, a lo ms entrega el total de tuplas de una de las dos relaciones.

    Se simboliza con ( )

  • EJEMPLO DE INTERSECCIN

  • DIFERENCIAEsta operacin entrega como resultado la cantidad de tuplas que se encuentren en la primera relacin pero no en la segunda. Estas relaciones deben ser compatibles para poder obtener un resultado.

    El resultado de esta operacin, a lo ms entrega el total de tuplas de la primera relacin.

    Se simboliza con (-)

  • EJEMPLO DE DIFERENCIA

  • SELECCIN

    Permite seleccionar un subconjunto de tuplas de una relacin (R), todas aquellas que cumplan la(s) condicin(es) P

    Se simboliza con ()

  • EJEMPLO DE SELECCIN

  • OPERACIN PROYECCIN

    La operacin proyeccin es una operacin unaria que devuelve su relacin de argumentos, excluyendo algunos argumentos. Dado que las relaciones son conjuntos, se eliminan todas las filas duplicadas.

    La proyeccin se denota por la letra griega mayscula ()

  • EJEMPLO DE PROYECCIN

  • PRODUCTO CARTESIANOEl producto cartesiano de dos relaciones se escribe como La entrega a una relacin, cuyo esquema corresponde a una combinacin de todas las tuplas de R con cada una de las tuplas de S, y sus atributos corresponden a los de R seguidos por los de S.Se simboliza con (x)

  • EJEMPLO PRODUCTO CARTESIANO

  • La sentencia join en SQL permite combinar registros de dos o ms tablas en una base de datos relacional. En el Lenguaje de Consultas Estructurado (SQL), hay tres tipo de JOIN: interno, externo, y cruzado.

  • Con esta operacin se calcula el producto cruzado de todos los registros; as cada registro en la tabla A es combinado con cada registro de la tabla B; pero slo permanecen aquellos registros en la tabla combinada que satisfacen las condiciones que se especifiquen. Este es el tipo de JOIN ms utilizado por lo que es considerado el tipo de combinacin predeterminado.

  • A. Ejemplo de la sentencia INNER JOIN explcita:SELECT * FROM empleado INNER JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento

    B. Ejemplo de la sentencia INNER JOIN implcita:SELECT * FROM empleado, departamento WHERE empleado.IDDepartamento = departamento.IDDepartamento

    EJEMPLOS DE JOIN

  • RESULTADOS

    Empleado.ApellidoEmpleado.IDdepartamentodepartamento.NombreDepartamentodepartamento.IDDepartamentoZolano34Produccin34Jordn33Ingeniera33Rbinson34Produccin34Steinberg33Ingeniera33Andrade31Ventas31

  • Presenta el producto cartesiano de todos los registros de las dos tablas. El cdigo SQL para realizar este producto cartesiano enuncia las tablas que sern combinadas, pero no incluye algn predicado que filtre el resultado.

    F. Ejemplo de combinacin cruzada explcita: SELECT * FROM empleado CROSS JOIN departamento

    G. Ejemplo de combinacin cruzada implcita: SELECT * FROM empleado, departamento;

  • Mediante esta operacin no se requiere que cada registro en las tablas a tratar tenga un registro equivalente en la otra tabla. El registro es mantenido en la tabla combinada si no existe otro registro que le corresponda. En SQL:2003 no existe una notacin implcita para las combinaciones externas. Este tipo de operacin se subdivide dependiendo de la tabla a la cual se le admitirn los registros que no tienen correspondencia, ya sean de tabla izquierda, de tabla derecha, o combinacin completa.

  • SELECT * FROM empleado LEFT OUTER JOIN departamento ON empleado.IDDepartamento= departamento.IDDepartamento

    Empleado.ApellidoEmpleado.IDDepartamentoDepartamento.NombreDepartamentoDepartamento.IDDepartamentoJordn33Ingeniera33Andrade31Ventas31Rbinson34Produccin34Zolano34Produccin34Gaspar36NULLNULLSteinberg33Ingeniera33

  • SELECT * FROM empleado RIGHT OUTER JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento

    Empleado.ApellidoEmpleado.IDDepartamentoDepartamento.NombreDepartamentoDepartamento.IDDepartamentoZolano34Produccin34Jordn33Ingeniera33Rbinson34Produccin34Steinberg33Ingeniera33Andrade31Ventas31NULLNULLMercadeo35

  • La sentenciajoinenSQLpermite combinarregistrosde dos o msTablasen unabase de datos relacional. En el Lenguaje de Consultas Estructurado (SQL), hay tres tipo deJOIN: interno, externo, y cruzado. En casos especiales una tabla puede unirse a s misma, produciendo una auto-combinacin,SELF-JOIN. Matemticamente,JOINes composicin relacional, la operacin fundamental en ellgebra relacional, y generalizando es una funcin de composicin.

  • TABLAS DE EJEMPLO

    Todas las explicaciones que estn a continuacin utilizan las siguientes dos tablas para ilustrar el efecto de diferentes clases de uniones JOIN.

    Tabla EmpleadoApellidoIDDepartamentoAndrade31Jordn33Steinberg33Rbinson34Zolano34Gaspar36

    Tabla DepartamentoNombreDepartamentoIDDepartamentoVentas31Ingeniera33Produccin34Mercadeo35

  • La tabla Empleado contiene a los empleados con el nmero del departamento al que pertenecen; mientras que la tabla Departamento, contiene el nombre de los departamentos de la empresa, se puede notar que existe un empleado que tiene asignado un nmero de departamento que no se encuentra en la tabla Departamento (Gaspar), igualmente, en la tabla Departamento existe un departamento al cual no pertenece empleado alguno (Mercadeo). Esto servir para presentar algunos ejemplos ms adelante.

  • Con esta operacin se calcula el producto cruzado de todos los registros; as cada registro en la tabla A es combinado con cada registro de la tabla B; pero slo permanecen aquellos registros en la tabla combinada que satisfacen las condiciones que se especifiquen. Este es el tipo deJOINms utilizado por lo que es considerado el tipo de combinacin predeterminado.

    SQL:2003especifica dos formas diferentes para expresar estas combinaciones. La primera, conocida comoexplcitausa la palabraJOIN, mientras que la segunda esimplcitay usa ',' para separar las tablas a combinar en la sentencia FROM de la declaracin SELECT. Entonces siempre se genera el producto cruzado del cual se seleccionan las combinaciones que cumplan lo que indica la sentencia WHERE.

  • A.Ejemplo de la sentenciaINNER JOINexplcita:SELECT * FROM emleado INNER JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento B.Ejemplo de la sentenciaINNER JOINimplcita:SELECT * FROM empleado, departamento WHERE empleado.IDDepartamento = departamento.IDDepartamento

  • Empleado.ApellidoEmpleado.IDdepartamentodepartamento.NombreDepartamentodepartamento.IDDepartamentoZolano34Produccin34Jordn33Ingeniera33Rbinson34Produccin34Steinberg33Ingeniera33Andrade31Ventas31

  • El empleado Gaspar y el departamento de Mercadeo no son presentados en los resultados ya que ninguno de stos tiene registros correspondientes en la otra tabla. No existe un departamento con nmero 36 ni existe un empleado con nmero de departamento 35. La combinacin que utiliza comparaciones dentro del predicadoJOINse le llamatheta-join. Ejemplo de combinacin tipotheta:

    SELECT * FROM empleado INNER JOIN departamento ON empleado.IDDepartamento < departamento.IDDepartamento

  • Las operacionesINNER JOINpuede ser clasificadas como de equivalencia, naturales, y cruzadas.Es una especie detheta-joinque usa comparaciones de igualdad en el predicadoJOIN. Cuando se usan operadores, tales comono se puede clasificar en este rango.D.Ejemplo de combinacin de equivalencia:

    SELECT * FROM empleado INNER JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento

  • Natural (Natural join) Es una especializacin de la combinacin de equivalencia, anteriormente mencionada. En este caso se comparan todas las columnas que tengan el mismo nombre en ambas tablas. La tabla resultante contiene slo una columna por cada par de columnas con el mismo nombre.E.Ejemplo de combinacin natural:

    SELECT * FROM empleado NATURAL JOIN departamento

  • El resultado es un poco diferente al del ejemplo D, ya que esta vez la columna IDDepartamento se muestra sola una vez en la tabla resultante.

    Empleado.ApellidoIDDepartamentoDepartamento.NombreDepartamentoZolano34ProduccinJordn33IngenieraRbinson34ProduccinSteinberg33IngenieraAndrade31Ventas

  • DIVISIONSupongamos que tenemos dos relaciones A(x, y) y B(y) donde el dominio deyen A y B, es el mismo.El operador divisinA / Bretorna todos los distintos valores dextales que para todo valoryen B existe una tuplaen A.Se simboliza con (:)

  • EJEMPLO DIVISIN