Está en la página 1de 7

ITSCO

Dependencia
Dependencia funcional

B es funcionalmente dependiente de A. Una dependencia funcional es una conexin entre uno o ms atributos. Por ejemplo si se conoce el valor de DNI tiene una conexin con Apellido o Nombre . Las dependencias funcionales del sistema se escriben utilizando una flecha, de la siguiente manera: FechaDeNacimiento Edad

De la normalizacin (lgica) a la implementacin (fsica o real) puede ser sugerible tener stas dependencias funcionales para lograr la eficiencia en las tablas.

Propiedades de la Dependencia funcional


Existen 3 axiomas de Armstrong: Dependencia funcional Reflexiva Si "x" est incluido en "x" entonces x x A partir de cualquier atributo o conjunto de atributos siempre puede deducirse l mismo. Si la direccin o el nombre de una persona estn incluidos en el DNI, entonces con el DNI podemos determinar la direccin o su nombre. Dependencia funcional Aumentativa entonces DNI nombre nombre,direccin

DNI,direccin

Si con el DNI se determina el nombre de una persona, entonces con el DNI ms la direccin tambin se determina el nombre y su direccin. Dependencia funcional transitiva

Luis Cacuango

5to. Sistemas

ITSCO

Dependencia funcional transitiva. Sean X, Y, Z tres atributos (o grupos de atributos) de la misma entidad. Si Y depende funcionalmente de X y Z de Y, pero X no depende funcionalmente de Y, se dice entonces que Z depende transitivamente de X. Simblicamente sera: X Y Z entonces X Z Edad

FechaDeNacimiento Edad Conducir

FechaDeNacimiento

Edad

Conducir

Entonces tenemos que FechaDeNacimiento determina a Edad y la Edad determina a Conducir, indirectamente podemos saber a travs de FechaDeNacimiento a Conducir (En muchos pases, una persona necesita ser mayor de cierta edad para poder conducir un automvil, por eso se utiliza este ejemplo).

Propiedades deducidas
Unin y entonces

Pseudo-transitiva y Descomposicin y est incluido en entonces entonces

Claves
Una clave primaria es aquella columna (o conjunto de columnas) que identifica nicamente a una fila. La clave primaria es un identificador que va a ser siempre nico para cada fila. Se acostumbra a poner la clave primaria como la primera columna de la tabla pero es ms una conveniencia que una obligacin. Muchas veces la clave primaria es numrica auto-

Luis Cacuango

5to. Sistemas

ITSCO

incrementada, es decir, generada mediante una secuencia numrica incrementada automticamente cada vez que se inserta una fila. En una tabla puede que tengamos ms de una columna que puede ser clave primaria por s misma. En ese caso se puede escoger una para ser la clave primaria y las dems claves sern claves candidatas. Una clave ajena (foreign key o clave fornea) es aquella columna que existiendo como dependiente en una tabla, es a su vez clave primaria en otra tabla. Una clave alternativa es aquella clave candidata que no ha sido seleccionada como clave primaria, pero que tambin puede identificar de forma nica a una fila dentro de una tabla. Ejemplo: Si en una tabla clientes definimos el nmero de documento (id_cliente) como clave primaria, el nmero de seguro social de ese cliente podra ser una clave alternativa. En este caso no se us como clave primaria porque es posible que no se conozca ese dato en todos los clientes. Una clave compuesta es una clave que est compuesta por ms de una columna. La visualizacin de todas las posibles claves candidatas en una tabla ayudan a su optimizacin. Por ejemplo, en una tabla PERSONA podemos identificar como claves su DNI, o el conjunto de su nombre, apellidos, fecha de nacimiento y direccin. Podemos usar cualquiera de las dos opciones o incluso todas a la vez como clave primaria, pero es mejor en la mayora de sistemas la eleccin del menor nmero de columnas como clave primaria.

Luis Cacuango

5to. Sistemas

ITSCO

Tablas de referencias cruzadas Introduccin

Cuando queremos representar una consulta sumaria con dos columnas de agrupacin como una tabla de doble entrada en la que cada una de las columnas de agrupacin es una entrada de la tabla utilizaremos una consulta de tabla de referencias cruzadas. Por ejemplo queremos obtener las ventas mensuales de nuestros empleados. Tenemos que disear una consulta sumaria calculando la suma de los importes de los pedidos agrupando por empleado y mes de la venta. La consulta sera: SELECT rep as empleado, month(fechapedido) as mes, sum(importe) as vendido FROM pedidos GROUP BY rep, month(fechapedido) El resultado sera la tabla que aparece a la derecha: La consulta quedara mucho ms elegante y clara presentando los datos en un formato ms compacto como el siguiente:

Pues este ltimo resultado se obtiene mediante una consulta de referencias cruzadas. Observar que una de las columnas de agrupacin (rep) sigue definiendo las filas que aparecen (hay una fila por cada empleado), mientras que la otra columna de agrupacin (mes) ahora sirve para definir las otras columnas, cada valor de mes define una columna en el resultado, y la celda

Luis Cacuango

5to. Sistemas

ITSCO

en la interseccin de un valor de rep y un valor de mes es la columna resumen, la que contiene la funcin de columna (la suma de importe). Las consultas de referencias cruzadas se pueden crear utilizando el asistente, es mucho ms cmodo pero es til saber cmo hacerlo directamente en SQL por si queremos variar algn dato una vez realizada la consulta con el asistente o si queremos definir una consulta de referencias cruzadas que no se puede definir con el asistente. La sentencia TRANSFORM La sentencia TRANSFORM es la que se utiliza para definir una consulta de referencias cruzadas. La sintaxis es la siguiente:

Resultado es la funcin de columna que permite obtener el resultado de las celdas. En la SELECT la columna fija es la columna que define el encabezado de filas, el origen que indicamos en la clusula FROM es la tabla (o tablas) de donde sacamos la informacin, y en la clusula GROUP BY ponemos la columna que va a definir las filas del resultado. La SELECT puede contener una clusula WHERE para seleccionar la fila que se utilizan para calcular el resultado, puede contener subconsultas pero no la clusula HAVING. En la clusula PIVOT indicamos la columna cuyos valores van a definir columnas dinmicas del resultado a esta columna la llamaremos pivote. La clusula IN permite definir el conjunto de valores que queremos que aparezcan como columnas dinmicas. Es conveniente que la columna pivote que sirve de encabezado de columna tenga un nmero limitado de posibles valores para que no se generen demasiadas columnas. En nuestro ejemplo es mejor utilizar el mes como encabezado de columna y no de fila ya que posibles empleados hay muchos ms y adems el mes toma valores que conocemos y podemos utilizar por lo tanto la clusula IN para que aparezcan todos los meses del ao. En nuestro ejemplo resultado sera SUM(importe), la columna fija es rep con un alias para

Luis Cacuango

5to. Sistemas

ITSCO

que salga la palabra empleado en el encabezado, el origen de datos es la tabla pedidos (porque el resultado SUM(importe) se obtiene de pedidos), la columna del GROUP BY es rep ya que queremos una fila por cada representante, la columna dinmica, la que ponemos en la clusula PIVOT sera MONTH(fechapedido). La sentencia quedara de la siguiente forma: TRANSFORM Sum(importe) SELECT rep as empleado FROM pedidos GROUP BY rep PIVOT month(fechapedido) Lo mejor para montar una consulta de referencias cruzadas en SQL es pensar la sumaria normal y luego distribuir los trminos segn corresponda. Modelado conceptual
El modelo Entidad/Relacin (es un modelo de datos semntico cuyo objetivo inicial era vencer algunas de las dificultades mostradas por el modelo relacional, al que pretenda sustituir. Concretamente, pretenda dotar de "significado" a las estructuras de datos, carentes del mismo, del modelo relacional. En la prctica, este modelo de datos no ha llegado a implementarse en ningn DBMS comercial, pero ha tenido una enorme repercusin como herramienta de modelado de bases de datos (paradjicamente, bases de datos relacionales), existiendo hoy en da herramientas de diseo conceptual que incorporan la totalidad de sus conceptos e incluso productos que transforman diagramas conceptuales E/R en bases de datos reales en diversos formatos. Consideramos que el modelado E/R se ha convertido en estndar para el diseo de bases de datos relacionales, por lo que lo utilizaremos para describir nuestra implementacin. Esta aseveracin se ve reforzada por la eleccin de este modelo de datos, por ejemplo, en proyectos tan importantes como Multilex.

Modelado Fsico
El paso de un modelo lgico a uno fsico requiere un profundo entendimiento del manejador de bases de datos que se desea emplear, incluyendo caractersticas como:

Conocimiento a fondo de los tipos de objetos (elementos) soportados Detalles acerca del indexamiento, integridad referencial, restricciones, tipos de datos, etc Detalles y variaciones de las versiones Parmetros de configuracin Data Definition Language (DDL)

Luis Cacuango

5to. Sistemas

ITSCO

Como se coment en el modelado lgico el paso de convertir el modelo a tablas hace que las entidades pasen a ser tablas (ms las derivadas de las relaciones) y los atributos se convierten en las columnas de dichas tablas. Fsicamente esta metfora de una tabla se mapea al medio fsico, con algunas consideraciones como se menciona en las siguientes secciones.
Los dos modelos fundamentales de datos son el conceptual y el lgico. Ambos son conceptuales en el sentido de que convierten parmetros del mundo real en abstracciones que permiten entender los datos sin tener en cuenta la fsica de los mismos.

Diferencias entre el modelo lgico y el conceptual El modelo conceptual es independiente del DBMS que se vaya a utilizar. El

lgico

depende de un tipo de SGBD en particular El modelo lgico es ms cercano al ordenador Es ms cercano al usuario el modelo conceptual, el lgico forma el paso entre el informtico y el sistema. Algunos ejemplos de modelos conceptuales son: Modelo E/R Modelo RM/T Modelos semntico Ejemplos de modelos lgicos son: Modelo relacional Codasyl Jerrquico

Luis Cacuango

5to. Sistemas

También podría gustarte