Aseveraciones. Disparadores. Ejemplo de aseveración. Ejemplo de disparador. Ejemplo de disparador en SQL:1999

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Aseveraciones. Disparadores. Ejemplo de aseveración. Ejemplo de disparador. Ejemplo de disparador en SQL:1999"

Transcripción

1 Tema 4: Otros conceptos de diseño de bases de datos relacionales Aseveraciones Disparadores (triggers) Seguridad Autorización NORMALIZACIÓN Primera forma normal Problemas en el diseño lógico relacional Dependencias funcionales Descomposición Forma normal de Boyce-Codd Tercera forma normal Otras formas normales y dependencias multivaluadas Proceso global de diseño de bases de datos Aseveraciones Una aseveración es un predicado que expresa una condición que queremos que se cumpla siempre en la base de datos. Cuando se hace una aseveración, el sistema comprueba su validez, y la comprueba de nuevo en cada actualización que puede violar la aseveración Esta comprobación puede introducir una sobrecarga importante; por tanto las aseveraciones se deben utilizar con mucho cuidado. Aseverar para todo X, P(X) se consigue de manera indirecta con no existe X tal que no P(X) Bases de datos Bases de datos Ejemplo de aseveración Disparadores La suma de todos los préstamos de cada sucursal debe ser menor que la suma de todos los saldos de cuentas de esa sucursal. create assertion restriccion-suma check (not exists (select * from sucursal where (select sum(cantidad) from prestamo where prestamo.-nombre-sucursal = sucursal.nombre-sucursal) >= (select sum(saldo) from cuenta where cuenta.nombre-sucursal = sucursal. nombre-sucursal))) Un disparador es una sentencia que se ejecuta automáticamente por el sistema como efecto lateral de una modificación de la base de datos. Para especificar un disparador debemos: Especificar las condiciones par a su ejecución. Especificar las acciones a realizar cuando se ejecuta. Los disparadores se introdujeron en el estándar SQL en SQL:999, pero eran soportados antes por la mayoría de los gestores de bases de datos mediante sintaxis no estándar. Bases de datos 3 Bases de datos 4 Ejemplo de disparador Supongamos que en vez de permitir saldos de cuenta negativos, el banco trata los descubiertos de la siguiente manera: poniendo el saldo de la cuenta a cero creando un préstamo por la cantidad del descubierto dando a ese préstamo un número de préstamo idéntico al número de cuenta de la cuenta al descubierto La condición para ejecutar el disparador será una actualización de la relación cuenta que dé lugar a un valor de saldo negativo. Ejemplo de disparador en SQL:999 create trigger descubierto after update on cuenta referencing new row as nrow for each row when nrow.saldo < 0 begin atomic insert into prestatario (select nombre-cliente, numero-cuenta from depositante where nrow.numero-cuenta = depositante.numero-cuenta); insert into prestamo values (n.row.numero-cuenta, nrow.nombre-sucursal, nrow.saldo); update cuenta set saldo = 0 where cuenta.numero-cuenta = nrow.numero-cuenta end Bases de datos 5 Bases de datos 6

2 Eventos y acciones de disparadores en SQL Disparadores a nivel de sentencia Los eventos de disparo pueden ser: insertar, eliminar o actualizar Los disparadores sobre actualizaciones se pueden restringir a determinados atributos P.e. create trigger descubierto after update of saldo on cuenta Se pueden referenciar los valores anteriores y posteriores a una actualización Los disparadores se pueden activar antes de un evento, con lo que pueden servir como restricciones adicionales. P.e. convertir blancos a nulos: create trigger ponernulos before update on r referencing new row as nrow for each row when nrow.numero-telefono= set nrow.numero-telefono= null En vez de ejecutar una acción separada para cada fila afectada, se puede ejecutar una sola acción para todas las filas afectadas por una transacción Utilizar for each statement en vez de for each row Utilizar referencing old table o referencing new table para referirse a tablas temporales (llamadas tablas de transición) que contengan las filas afectadas Puede ser más eficiente cuando tratamos sentencias SQL que afectan a muchas filas Bases de datos 7 Bases de datos 8 Seguridad Seguridad (Cont.) Seguridad protección frenet a intentos maliciosos de robar o modificar datos. Nivel de sistema de bases de datos Mecanismos de autentificación y autorización permiten a determinados usuarios acceder sólo a los datos requeridos Nivel de sistema operativo Los superusuarios del sistema operativo pueden hacer cualquier cosa en las bases de datos! Se necesita una buena seguridad a nivel de sistema operativo. Nivel de red: debemos utilizar cifrado para prevenir Escuchas (lecturas no autorizadas de mensajes) Suplantaciones (pretender ser un usuario autorizado o enviar mensajes supuestamente de usuarios autorizados) Nivel físico El acceso físico a los servidores permite que los intrusos destruyan datos; se necesita seguridad física tradicional Las máquinas deben protegerse también contra líquidos, fuego, etc. Nivel humano Nos debemos asegurar de que los usuarios no den acceso a intrusos Uso adecuado de password Bases de datos 9 Bases de datos 0 Autorización Autorización (Cont.) Formas de autorización sobre partes de la base de datos: Autorización de lectura se permite leer, pero no modificar los datos. Autorización de inserción se permite introducir nuevos datos, pero no modificar los existentes. Autorización de actualización se permite modificar, pero no borrar datos. Autorización de eliminación se permite eliminar datos. Formas de autorización para modificar el esquema de la base de datos: Autorización de índexado se permite crear y eliminar índices. Autorización de recursos se permite crear nuevas relaciones. Autorización de alteración se permite añadir o eliminar atributos de una relación. Autorización de borrado se permite borrar relaciones. Bases de datos Bases de datos

3 Autorización y vistas Ejemplo de vista Los usuarios pueden obtener autorizaciones sobre vistas, sin tener ninguna autorización sobre las relaciones utilizadas en la definición de la vista La característica de las vistas de ocultar datos sirve tanto para simplificar el uso del sistema como para aumentar la seguridad permitiendo a los usuarios que sólo accedan a los datos que necesitan para su trabajo Se puede utilizar una combinación de seguridad a nivel relacional y seguridad a nivel de vista para limitar los accesos de los usuarios a los datos que necesitan. Supongamos que un cajero necesita conocer los nombres de los clientes de cada sucursal, pero no está autorizado para ver información específica sobre los créditos. Aproximación: Denegar el acceso directo a la relación prestamo, pero permitir el acceso a la vista cliente-prestamo, que está formada solamente por los nombres de los clientes y las sucursales en las que tienen un préstamo. La vista cliente-prestamo en SQL se define así: create view cliente-prestamo as select nombre-sucursal, nombre-cliente from prestatario, prestamo where prestatario.numero.prestamo = prestamo.numeroprestamo Bases de datos 3 Bases de datos 4 Ejemplo de vista (Cont.) Autorización sobre vistas El cajero estará autorizado a ver el resultado de la consulta: select * from cliente-prestamo Cuando el procesador de consultas transforme el resultado en una consulta de las relaciones de la base de datos, obtendremos una consulta sobre prestatario y prestamo. Las autorizaciones se deben comprobar sobre la consulta del cajero antes de que el procesador de consultas reemplace una vista por la definición de la vista. La creación de vistas no requiere autorización de recursos dado que no se está creando ninguna relación real El creador de la vista obtiene solo aquellos privilegios que suponen que no exista autorización adicional sobre la que ya tenía. P.e. si el creador de la vista cliente-prestamo sólo tenía autorización de lectura sobre prestatario y prestamo, sólo obtiene autorización de lectura sobre cliente-prestamo Bases de datos 5 Bases de datos 6 Concesión de privilegios El paso de autorización de un usuario a otro se puede representar mediante un grafo de autorización. Los nodos del grafo representan usuarios. La raíz del grafo es el administrador de la base de datos. Consideremos el grafo para autorizaciones de actualización sobre prestamo. Una flecha U i U j indica que el usuario U i ha concedido autorización de actualización sobre prestamo a U j. U U 4 Grafo de concesión de privilegios Requisito: Todas las flechas de un grafo de autorización deben partir de un camino que tenga su origen en el administrador de bases de datos Si el DBA revoca el privilegio para U : Se debe revocar la concesión de U 4 dado que U ya no tiene autorización No se debe revocar la autorización de U 5 dado que U 5 tiene otro camino de autorización desde DBA a través de U Se deben prevenir ciclos de concesiones sin camino desde la raíz: DBA concede autorización a U 7 U 7 concede autorización a U 8 U 8 concede autorización a U 7 DBA U U 5 DBA revoca la autorización a U 7 Se debe revocar la concesión de U 7 a U 8 y de U 8 a U 7 dado que no queda ningún camino desde DBA a U 7 o a U 8. Bases de datos U 3 7 Bases de datos 8

4 Roles Los roles permiten especificar sólo una vez privilegios comunes a varios usuarios. Los privilegios se conceden o revocan a los roles igual que para usuarios individuales Los roles se pueden asignar a usuarios o a otros roles SQL:999 soporta roles create role cajero create role gestor NORMALIZACIÓN grant select on sucursal to cajero grant update (saldo) on cuentas to cajero grant all privileges on cuentas to gestor grant cajero to gestor grant cajero to alicia, juan grant gestorr to ana Bases de datos 9 Bases de datos Manuel Ramos Cabrer 0 Primera forma normal Problemas en el diseño lógico relacional Un dominio es atómico si sus elementos se pueden considerar unidades indivisibles Ejemplos de dominios no atómicos: Nombres, atributos compuestos Números de identificación como que se pueden dividir en partes Un esquema relacional R esté en primera forma normal si los dominios de todos los atributos de R son atómicos Los valores no atómicos complican el almacenamiento y dan lugar a redundancia P.e. Conjunto de cuentas almacenado con cada cliente, y conjunto de propietarios almacenado con cada cuenta Vamos a asumir que todas las relaciones están en primera forma normal El diseño de bases de datos relacionales requiere encontrar un buen conjunto de esquemas de relación. Un mal diseño puede dar lugar a: Repetición de información (redundancia) Imposibilidad de representar cierta información. Objetivos de diseño: Evitar la redundancia Asegurar que se representan las asociaciones entre atributos Facilitar la comprobación de las violaciones de restricciones de integridad en las actualizaciones de las bases de datos. Bases de datos Bases de datos Ejemplo Consideremos el siguiente esquema de relación: Esquema-prestamo = (nombre-sucursal, ciudad-sucursal, activos, nombre-cliente, numero-prestamo, cantidad) ciudadsucursal nombresucursal nombrecliente activos numeroprestamo cantidad Vigo Vigo Sánchez L Santiago Santiago Gómez L Madrid- Madrid López L Vigo Vigo Veiga L Redundancia: Los datos de nombre-sucursal, ciudad-sucursal, activos se repiten para cada préstamo que hace una sucursal Gasto de espacio Se complica la actualización, introduciendo la posibilidad de inconsistencias Valores nulos: No se puede almacenar información sobre una sucursal si no existen préstamos Se pueden utilizar valores nulos, pero son difíciles de gestionar. Bases de datos 3 Descomposición Descompongamos el esquema de relación Esquema-prestamo en: Esquema-sucursal = (nombre-sucursal, ciudad-sucursal, activos) Esquema-info-prestamo = (nombre-cliente, numero-cliente, nombre-sucursal, cantidad) Todos los atributos del esquema original (R) deben aparecer en la descomposición (R, R ): R = R R Descomposición reversible por join Para todas las posibles relaciones r en el esquema R r = R (r) R (r) Bases de datos 4

5 Ejemplo de descomposición no reversible por join Objetivo Una teoría para: Descomposición de R = (A, B) R = (A) R = (B) A (r) A r B (r) B A A (r) A B Bases de datos 5 B B(r) Decidir cuando una determinada relación R está en un estado adecuado. En el caso de que la relación R no sea buena, descomponerla en un conjunto de relaciones {R, R,..., R n } tales que Cada relación esté en estado adecuado La descomposición sea reversible por join Nuestra teoría está basada en: Dependencias funcionales Dependencias multivaluadas Bases de datos 6 Dependencias funcionales Dependencias funcionales (Cont.) Restricciones sobre el conjunto de relaciones permitidas en un conjunto relación. Introducen como restricción que el valor de un conjunto determinado de atributos determina de manera única el valor de otro conjunto de atributos. El concepto de dependencia funcional es una generalización del concepto de clave. Dado un esquema de relación R R y R La dependencia funcional se da en R si y solo si para cualquier relación legal r(r), cuando dos tuplas cualquiera t yt de r coinciden en los valores de los atributos, entonces también coinciden en lso valores de los atributos. Es decir, t [] = t [] t [ ] = t [ ] Ejemplo: Consideremos r(a,b) con la siguiente instancia de r En esta instancia, A B NO se da, pero B A si. Bases de datos 7 Bases de datos 8 Dependencias funcionales (Cont.) Uso de Dependencias Funcionales K es una superclave del esquema de relación R si y solo si K R K es una clave candidata de R si y solo si K R, y Para ningún K, R Las dependencias funcionales nos permiten expresar restricciones que no se pueden expresar mediante superclaves. Consideremos el esquema: Esquema-info-prestamo = (nombre-cliente, numero-prestamo, nombre-sucursal, cantidad). Debemos esperar que se cumplan las siguientes dependencias funcionales: numero-prestamo cantidad numero-prestamo nombre-sucursal pero debemos esperar que no se cumpla: numero-prestamo nombre-cliente Bases de datos 9 Utilizamos dependencias funcionales para:: Comprobar las relaciones para ver si son legales bajo un conjunto dado de dependencias funcionales. Si una relación r es legal bajo un conjunto F de dependencias funcionales, decimos que r satisface F. Especificar restricciones sobre un conjunto de relaciones legales Decimos que F se da en R si todas las relaciones legales sobre R satisfacen el conjunto de dependencias funcionales F. Nota: Una instancia específica de un esquema de relación puede satisfacer una dependencia funcional aun cuando la dependencia funcional no se dé en todas las instancias legales. Por ejemplo, una instancia específica de Esquema-prestamo puede, por tanto, satisfacer numero-prestamo nombre-cliente. Bases de datos 30

6 Dependencias funcionales (Cont.) Una dependencia funcional es trivial si se satisface para todas las instancias de una relación P.e. nombre-cliente, numero-prestamo nombre-cliente nombre-cliente nombre-cliente En general, es trivial si Cierre de un conjunto de dependencias funcionales Dado un conjunto F de dependencias funcionales, hay otras dependencias funcionales que se pueden inferir de F. P.e. Si A B y B C, entonces podemos inferir que A C El conjunto de todas las dependencias funcionales que se pueden inferir de F forman el cierre de F. Denotaremos el cierre de F por F +. Podemos calcular F + aplicando los Axiomas de Armstrong: si, entonces si, entonces γ γ (reflexividad) (aumentación) si, y γ, entonces γ (transitividad) Estas reglas son consistentes (generan solo dependencias funcionales que se dan) y completas (generan todas las dependencias funcionales que se dan) Bases de datos 3 Bases de datos 3 R = (A, B, C, G, H, I) F = { A B A C CG H CG I B H} Algunos miembros de F + A H Ejemplo Por transitividad de A B y B H AG I por aumentación de A C con G, que da AG CG y después por transitividad con CG I CG HI de CG H y CG I : la regla de la unión se puede inferir de La definición de dependencia funcional, o Por aumentación de CG I para inferir CG CGI, aumentación de CG H para inferir CGI HI, y entonces transitividad Bases de datos 33 Procedimiento de cálculo de F + Para calcular el cierre de un conjunto de dependencias funcionales F: F + = F repetir para cada dependencia funcional f en F + aplicar las reglas de reflexividad y aumentación a f añadir las dependencias funcionales resultantes a F + para cada par de dependencias funcionales f y f en F + si f y f se pueden combinar por transitividad entonces añadir la dependencia funcional resultante a F + hasta que F + no cambie Bases de datos 34 Cierre de dependencias funcionales (Cont.) Podemos simplificar el cálculo manual de F + utilizando las siguientes reglas adicionales. Si se da y γse da, entonces γ se da (unión) Si γ se da, entonces se da y γse da (decomposición) Si se da y γ δ se da, entonces γ δse da (pseudotransitividad) Estas reglas (y otras) se pueden inferir de los axiomas de Armstrong. Cierre de un conjunto de atributos Dado un conjunto de atributos, definimos el cierre de bajo F (denotado por + ) como el conjunto de atributos funcionalmente determinados por bajo F: está en F + + Algoritmo para calcular +, el cierre de bajo F resultado := ; mientras (cambie resultado) hacer para cada γen F hacer begin si resultado entonces resultado := resultado γ end Bases de datos 35 Bases de datos 36

7 Ejemplo de cierre de un conjunto de atributos R = (A, B, C, G, H, I) F = {A B A C CG H CG I B H} (AG) +. resultado = AG. resultado = ABCG (A C y A B) 3. resultado = ABCGH (CG H y CG AGBC) 4. resultado = ABCGHI (CG I y CG AGBCH) AG es una clave candidata?. AG es una superclave?. AG R? == (AG) + R. Algún subconjunto de AG es una superclave?. A R? == (A) + R. G R? == (G) + R Bases de datos 37 Utilidad del cierre de atributos Hay varias utilidades del algoritmo de cierre de atributos Comprobar una superclave: Para comprobar si es una superclave, calculamos +, y comprobamos si + contiene todos los atributos de R. Comprobar dependencias funcionales Para comprobar si una dependencia funcional se da (o, en otras palabras, está en F + ), se comprueba si +. Es decir, calculamos + utilizando el cierre de atributos, y entonces comprobamos si contiene. Es una comprobación simple y poco costosa, y muy útil Cálculo del cierre de F Para cada γ R, buscamos el cierre γ +, y para cada S γ +, generamos la dependencia funcional γ S. Bases de datos 38 Objetivos de la normalización Decidir cuando una determinada relación R está en un estado adecuado. En el caso de que la relación R no sea buena, descomponerla en un conjunto de relaciones {R, R,..., R n } tales que Cada relación esté en estado adecuado La descomposición sea reversible por join Nuestra teoría está basada en: Dependencias funcionales Dependencias multivaluadas Descomposición Descompongamos el esquema de relación Esquema-prestamo en: Esquema-sucursal = (nombre-sucursal, ciudad-sucursal, activos) Esquema-info-prestamo = (nombre-cliente, numero-cliente, nombre-sucursal, cantidad) Todos los atributos del esquema original (R) deben aparecer en la descomposición (R, R ): R = R R Descomposición reversible por join Para todas las posibles relaciones r en el esquema R r = R (r) R (r) Una descomposición de R en R y R es reversible por join si y sólo si al menos una de las siguientes dependencias funcionales está en F + : R R R R R R Bases de datos 44 Bases de datos 45 Ejemplo de descomposición no reversible por join Las descomposiciones no reversibles por join dan lugar a alteraciones de la información. Ejemplo: Descomposición de R = (A, B) R = (A) R = (B) A (r) A r B (r) B A A (r) A B Bases de datos 46 B B(r) Normalización utilizando dependencias funcionales Cuando descomponemos un esquema de relación R con un conjunto de dependencias funcionales F en R, R,.., R n queremos: Descomposición reversible por join: Si no la descomposición puede suponer alteraciones de la información. Sin redundancia. Preservación de dependencias: Dado F i como el conjunto de dependencias F + que incluya sólo atributos de R i. La descomposición debería preservar las dependencias, es decir, (F F F n ) + = F + Si no perdemos dependencias, que son restricciones introducudas en la fase de diseño para modelar adecuadamente la aplicación. No es deseable. Bases de datos 47

8 R = (A, B, C) F = {A B, B C) Ejemplo Se puede descomponer de dos maneras diferentes R = (A, B), R = (B, C) Descomposición reversible por join: R R = {B} y B BC Preserva las dependencias R = (A, B), R = (A, C) Descomposición reversible por join: R R = {A} y A AB No preserva las dependencias (se pierde B C) Bases de datos 48 Comprobación de preservación de dependencias Para comprobar si una dependencia se preserva en una descomposición de R en R, R,, R n aplicamos la siguiente comprobación simplificada (con el cierre de atributos realizado respecto a F) resultado = while (cambie resultado) do for each R i en la descomposición t = (resultado R i ) + R i resultado = resultado t Si resultado contiene todos los atributos de, entonces se preserva la dependencia funcional. Debemos aplicar el test a todas las dependencias de F para comprobar si la descomposición preserva las dependencias Este procedimiento tiene una complejidad temporal polinomial, frente a la complejidad exponencial de calcular F + y (F F F n ) + Bases de datos 49 Forma Normal de Boyce-Codd Ejemplo Un esquema de relación está en FNBC con respecto a un conjunto de dependencias funcionales F si para todas las dependencias funcionales de F +,, donde R y R, se cumple al menos una de las siguientes condiciones: es trivial (es decir, ) es una superclave de R R = (A, B, C) F = {A B B C} Clave = {A} R no está en FNBC Descomposición R = (A, B), R = (B, C) R y R en FNBC Reversible por join Preserva las dependencias Bases de datos 50 Bases de datos 5 Comprobación de la FNBC Algoritmo de descomposición en FNBC Para comprobar si una dependencia no trivial cumple la FNBC. calcular + (el cierre de atributos de ), y. verificar que incluye todos los atributos de R, es decir, es una superclave de R. Comprobación simplificada: Para comprobar si un esquema de relación R está en FNBC, es suficiente comprobar las dependencias del conjunto F, en vez de comprobar todas las dependencias de F +. Si ninguna de las dependencias de F viola la FNBC, entonces ninguna de las dependencias de F + violará la FNBC. Pero, es incorrecto utilizar sólo F cuando se comprueba una relación de una descomposición de R P.e. Consideremos R (A, B, C, D), con F = { A B, B C} Descomponemos R en R (A,B) y R (A,C,D) Ninguna de las dependencias de F contiene sólo atributos de (A,C,D) por eso podríamos cometer el error de pensar que R está en FNBC. De hecho, la dependencia A C de F + indica que R no está en FNBC. Bases de datos 5 resultado := {R}; hecho := false; calcular F + ; while (not hecho) do if (hay un esquema R i en resultado que no está en FNBC) then begin dada una dependencia funcional no trivial que se da en R i tal que R i no está en F +, y = ; resultado := (resultado R i ) (R i ) (, ); end else hecho := true; Nota: cada R i está en FNBC, y la descomposición es sin pérdidas. Bases de datos 53

9 Ejemplo de descomposición en FNBC Comprobación de descomposición en FNBC R = (nombre-sucursal, ciudad-sucursal, activos, nombre-cliente, numero-prestamo, cantidad) F = {nombre-sucursal activos ciudad-sucursal numero-prestamo cantidad nombre-sucursal} Clave = {numero-prestamo, nombre-cliente} Decomposición R = (nombre-sucursal, ciudad-sucursal, activos) R = (nombre-sucursal, nombre-cliente, numero-prestamo, cantidad) R 3 = (nombre-sucursal, numero-prestamo, cantidad) R 4 = (nombre-cliente, numero-prestamo) Descomposición final R, R 3, R 4 Para comprobar si una relación R i de una descomposición de R está en FNBC, o bien comprobar si R i está en FNBC con respecto a la restricción de F a R i (es decir, todas las DFs de F + que contienen sólo atributos de R i ) o utilizar el conjunto original de dependencias F que se dan en R, pero con la siguiente comprobación: para cada conjunto de atributos R i, comprobar que + (el cierre de atributos de ) o bien no incluye ningún atributo de R i -, o incluye todos los atributos de R i. Si la condición se viola por algún de F, la dependencia ( + - ) R i se da en R i, y R i viola la FNBC. Utilizaremos la dependencia anterior para descomponer R i Bases de datos 54 Bases de datos 55 FNBC y preservación de dependencias Tercera Forma Normal: Motivación No siempre es posible llegar a una descomposición en FNBC que preserve las dependencias R = (J, K, L) F = {JK L L K} Dos claves candidatas = JK y JL R no está en FNBC Cualquier descomposición de R no preserva Hay algunas situaciones en las que La FNBC no preserva las dependencias Solución: definir una forma normal más débil, denominada Tercera Forma Normal. Permite cierta redundancia (con los problemas consabidos) Pero siempre existe una descomposición a 3FN que es reversible por join y que preserva las dependencias: JK L Bases de datos 56 Bases de datos 57 Tercera Forma Normal 3FN (Cont.) Un esquema de relación R está en tercera forma normal (3FN) si para todas las: de F + se cumple am menos una de las siguientes condiciones: es trivial (es decir, ) es una superclave de R Cada atributo A de está contenido en una clave candidata de R. (NOTA: cada atributo puede estar en una clave candidata diferente) Si una relación está en FNBC entonces también está en 3FN (dado que en FNBC se debe dar una de las dos primeras condiciones). La tercera condición es una relajación mínima de la FNBC que asegura la preservación de dependencias funcionales. Ejemplo R = (J, K, L) F = {JK L, L K} Dos claves candidatas: JK y JL R está en 3FN JK L L K JK es una superclave K está contenida en una clave candidata La descomposición en FNBC da (JL) y (LK) Se pierde JK L Hay cierta redundancia en este esquema Bases de datos 58 Bases de datos 59

10 Comprobación de la 3FN Optimización: Sólo es necesario comprobar las dependencias funcionales de F, no todas las de F +. Utilizar el cierre de atributos para comprobar en cada dependencia, si es una superclave. Si no es superclave, tenemos que verificar si cada atributo de está contenido en una clave candidata de R Esta comprobación es bastante más costosa, dado que supone encontrar las claves candidatas Se ha demostrado que comprobar la 3FN es NP-hard Por suerte, descomponer a 3FN se puede hacer con una complejidad polinomial Algoritmo de descomposición a 3FN Dado el conjunto de dependencias funcionales F; i := 0; for each dependencia funcional de F do if ninguno de los esquemas R j, j i contiene then begin i := i + ; R i := end if ninguno de los esquemas R j, j i contiene una clave candidata de R then begin i := i + ; R i := cualquier clave candidata de R; end return (R, R,..., R i ) Bases de datos 60 Bases de datos 6 Algoritmo de descomposición a 3FN (Cont.) Ejemplo El algoritmo anterior asegura: que cada esquema de relación R i está en 3FN La descomposición es reversible por join y preserva las dependencias Esquema de relación: Esquema-info-banquero = (nombre-sucursal, nombre-cliente, nombre-banquero, numero-despacho) Las dependencias funcionales para este esquema de relación son: nombre-banquero nombre-sucursal numero-despacho nombre-cliente nombre-oficina nombre-banquero La clave es: {nombre-cliente, nombre-sucursal} Bases de datos 6 Bases de datos 63 Aplicando 3FN a Esquema-info info-banquero Comparación de FNBC y 3FN El bucle for del algoritmo hace que incluyamos los siguientes esquemas en nuestra descomposición: Esquema-despacho-banquero = (nombre-banquero, nombre-oficina, numero-despacho) Esquema-banquero = (nombre-cliente, nombre-sucursal, nombre-banquero) Dado que Esquema-banquero contiene una clave candidata para Esquema-info-banquero, hemos terminado el proceso de descomposición. Siempre es posible descomponer una relación en relaciones en 3FN y La descomposición es reversible por join Se preservan las dependencias Siempre es posible descomponer una relación en relaciones en FNBC y La descomposición es reversible por join Puede que no se preserven las dependencias Bases de datos 64 Bases de datos 65

11 Comparación de FNBC y 3FN (Cont.) Objetivos de diseño Ejemplo de problemas debidos a la redundancia en la 3FN R = (J, K, L) F = {JK L, L K} J j j j 3 null L l l l l K k k k k Un esquema que está en 3FN pero no en FNBC tiene problemas de Repetición de información (p.e., la asociación l, k ) Necesidad de utilizar valores nulos (p.e., para representar la asociación l, k que no tiene valor para J). Bases de datos 66 El objetivo de un diseño de base de datos relacional es: FNBC. Descomposición reversible por join. Preservación de dependencias. Si no se puede conseguir, podemos aceptar o bien perder la preservación de dependencias, o bien la existencia de redundancia debida al uso de la 3FN (suele ser la opción preferible) Sorprendentemente, SQL no proporciona un mecanismo directo de especificar dependencias funcionales distintas de las superclaves. Se pueden especificar DFs como aseveraciones, pero son costosas de comprobar Aunque tengamos una descomposición que preserve las dependencias, utilizando SQL no podremos comprobar de manera eficiente una dependencia funcional cuya parte izquierda no sea una clave. Bases de datos 67 Otras formas normales Dependencias multivaluadas Existen otras formas normales que es deseable que se den en una relación: Cuarta Forma Normal (4FN), Quinta Forma Normal (5FN), La 3FN es la forma ideal en lo referente a dependencias funcionales. Por qué existen entonces otras formas normales? Pues porque pueden existir otras dependencias en una base de datos además de las dependencias funcionales, aunque estas últimas son las más habituales. Las dependencias no funcionales más habituales son las dependencias multivaluadas. Dado un esquema de relación R y dados R y R. La dependencia multivaluada se da en R si en cualquier relación posible r(r), para todos los pares de tuplas t y t de r tales que t [] = t [], existen en r las tuplas t 3 y t 4 tales que: t [] = t [] = t 3 [] = t 4 [] t 3 [] = t [] t 3 [R ] = t [R ] t 4 [] = t [] t 4 [R ] = t [R ] Bases de datos 68 Bases de datos 69 Dependencias multivaluadas (Cont.) Dependencias multivaluadas Representación gráfica de t t t 3 t 4 a a i a i+ a j a a i b i+ b j a a i a i+ a j a a i b i+ b j R- - a j+ a n b j+ b n b j+ b n a j+ a n Definición alternativa: Dado un esquema de relación R con un conjunto de atributos particionado en tres subconjuntos no vacíos Y, Z, W Decimos que Y Z (Y multidefine a Z) si y sólo si para todas las relaciones posibles r(r) si < y, z, w > r y < y, z, w > r entonces < y, z, w > r y < y, z, w > r Bases de datos 70 Bases de datos 7

12 Proceso global de diseño de bases de datos El modelo E-A E A y la normalización Hemos asumido que un esquema R viene dado por R puede haber sido generado por el paso de un diagrama E-A a un conjunto de relaciones. R puede ser una única relación que contiene todos los atributos de interés (se denomina relación universal). La normalización divide R en relaciones más pequeñas. R puede ser el resultado de algún otro proceso de diseño de relaciones, el cual comprobamos/convertimos a forma normal. Cuando un diagrama E-A se diseña adecuadamente, identificando todas las entidades correctamente, las relaciones generadas a partir del diagrama E-A no deberían necesitar normalización adicional. No obstante, en un diseño real (imperfecto) puede haber dependencias funcionales desde atributos que no sean clave de una entidad hacia otros atributos de la entidad. P.e. La entidad empleado con atributos numero-despacho y localizacion-despacho, y una dependencia funcional numero-despacho localización-despacho En un buen diseño se debería haber creado una entidad despacho Es posible encontrar dependencias funcionales desde atributos de un conjunto asociación que no sean clave, pero no es frecuente --- la mayoría de los conjuntos asociación son binarios Bases de datos 7 Bases de datos 73 Otros aspectos de diseño La normalización no se ocupa de algunos aspectos del diseño de bases de datos. Ejemplos de malos diseños de bases de datos que se deben evitar: En vez de beneficios(id-empresa, año, cantidad), utilizar beneficios-000, beneficios-00, beneficios-00, etc., todos con el esquema (id-empresa, beneficios). Las relaciones anteriores están en FNBC, pero hacer consultas que afecten a varios años es difícil y además se necesita una tabla nueva para cada año. empresa-año(id-empresa, beneficios-000, beneficios-00, beneficios-00) También está en FNBC, pero también es difícil hacer consultas que afecten a varios años y necesita un atributo nuevo cada año. Es un ejemplo de una tabla cruzada, en la que los valores de un atributo se utilizan como nombres de columnas. Se utiliza sobre todo en hojas de cálculo, y en herramientas de análisis de datos. Fin del tema 4 Bases de datos 74 Bases de datos Manuel Ramos Cabrer 75

TEMA 8.- DISEÑO TEORICO DE BASES DE DATOS RELACIONALES. 1. TEORÍA DE LAS DEPENDENCIAS FUNCIONALES

TEMA 8.- DISEÑO TEORICO DE BASES DE DATOS RELACIONALES. 1. TEORÍA DE LAS DEPENDENCIAS FUNCIONALES TEMA 8.- DISEÑO TEORICO DE BASES DE DATOS RELACIONALES. Teoría de las Dependencias Funcionales. Teoría de la Normalización. Formas Normales. Conclusiones. 1. TEORÍA DE LAS DEPENDENCIAS FUNCIONALES Las

Más detalles

Dependencias Funcionales. Bibliografía: Fundamentos de bases de datos Korth, Silberschatz

Dependencias Funcionales. Bibliografía: Fundamentos de bases de datos Korth, Silberschatz Dependencias Funcionales Bibliografía: Fundamentos de bases de datos Korth, Silberschatz Conceptos básicos Las DF son un tipo particular de restricción. Permiten expresar hechos acerca de la realidad que

Más detalles

Normalización n de Bases de Datos Relacionales. Bases de Datos. Malos Diseños. Índice. Muchos Problemas. Definición

Normalización n de Bases de Datos Relacionales. Bases de Datos. Malos Diseños. Índice. Muchos Problemas. Definición Normalización n de Relacionales Malos Diseños Qué puede salir mal cuando se hace un mal diseño de una base de datos relacional? Esquema_prestamo= (nombre_sucursal, ciudad_sucursal, activo, nombre_cliente,

Más detalles

DISEÑO DE BASES DE DATOS RELACIONALES

DISEÑO DE BASES DE DATOS RELACIONALES DISEÑO DE BASES DE DATOS RELACIONALES Bases de Datos I MIS. Lizbeth Alejandra Hernández González Introducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de

Más detalles

Integridad y Seguridad. Integridad y Seguridad. Restricción de Dominio. Protección. Índice. create domain. Dominios

Integridad y Seguridad. Integridad y Seguridad. Restricción de Dominio. Protección. Índice. create domain. Dominios Protección Integridad y Seguridad Las Restricciones de Integridad aseguran que las modificaciones realizadas por usuarios autorizados no provocan perdidas de Consistencia Semántica El Control de Acceso

Más detalles

2.6.2.- Aplicaciones de las vistas. 2.6.1.- Concepto de vista. 2.6.3.- Vistas en SQL. 2.6.3.- Vistas en SQL.

2.6.2.- Aplicaciones de las vistas. 2.6.1.- Concepto de vista. 2.6.3.- Vistas en SQL. 2.6.3.- Vistas en SQL. 2.6.1.- Concepto de vista. Una vista es una tabla derivada de otras tablas (básicas o virtuales). Una vista se caracteriza porque: Se considera que forma parte del esquema externo. Una vista es una tabla

Más detalles

Tema 6. Restricciones a la Base de Datos: Integridad y seguridad

Tema 6. Restricciones a la Base de Datos: Integridad y seguridad Tema 6. Restricciones a la Base de Datos: Integridad y seguridad Juan Ignacio Rodríguez de León Resumen Las restricciones desde el punto de vista de integridad de bases de datos. se presentan dependencias

Más detalles

TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL

TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL 5.6 MODIFICACIÓN DE LA BASE DE DATOS SQL posee comandos destinados también para modificar la base de datos, entre estos se tienen operaciones de borrado,

Más detalles

Restricciones de Integridad

Restricciones de Integridad Restricciones de Integridad Amparo López Gaona México, D.F. Semestre 2000-I Restricciones de Integridad Las principales restricciones de integridad que pueden indicarse son: La clave primaria. Claves candidatas.

Más detalles

- Bases de Datos - - Diseño Físico - Luis D. García

- Bases de Datos - - Diseño Físico - Luis D. García - Diseño Físico - Luis D. García Abril de 2006 Introducción El diseño de una base de datos está compuesto por tres etapas, el Diseño Conceptual, en el cual se descubren la semántica de los datos, definiendo

Más detalles

DISEÑO DE BASES DE DATOS RELACIONALES Normalización Parte 2 FNBC, 3FN

DISEÑO DE BASES DE DATOS RELACIONALES Normalización Parte 2 FNBC, 3FN DISEÑO DE BASES DE DATOS RELACIONALES Normalización Parte 2 FNBC, 3FN Bases de Datos I MIS. Lizbeth Alejandra Hernández González FNBC (Forma Normal de Boyce-Codd) Un esquema de relación R está en FNBC

Más detalles

Consultas con combinaciones

Consultas con combinaciones UNIDAD 1.- PARTE 2 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES Xochitl Clemente Parra Armando Méndez Morales Consultas con combinaciones Usando combinaciones (joins), se pueden

Más detalles

Principios de Bases de Datos Relacionales, Normalización. Unidad 4

Principios de Bases de Datos Relacionales, Normalización. Unidad 4 Principios de Bases de Datos Relacionales, Normalización Unidad 4 Introducción Dependencia Funcional La dependencia funcional es una restricción entre dos conjuntos de atributos en una relación de una

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 9. Reglas de Integridad 1.- Introducción. 2.- Claves Primarias. 3.- Regla de Integridad de Entidades. 4.- Claves Ajenas. 5.- Regla de Integridad

Más detalles

4.Diseño de Bases de Datos (I)

4.Diseño de Bases de Datos (I) 4.Diseño de Bases de Datos (I) 4.1 Anomalías. Se denominan así en teoría de Bases de Datos a ciertos problemas que aparecen con frecuencia en el manejo de las mismas cuando el diseño no ha sido realizado

Más detalles

Este es un ejemplo muy sencillo, un esquema de empleados que trabajan en proyectos, en una relación muchos a muchos.

Este es un ejemplo muy sencillo, un esquema de empleados que trabajan en proyectos, en una relación muchos a muchos. 28/04/2012 La teoría de la normalización va perdiendo peso con el paso de los años como herramienta de diseño de bases de datos relacionales en favor de modelos de datos más ricos en su representación,

Más detalles

Ficheros y Bases de Datos Curso 2009-10 Ingeniería Técnica de Informática Primer Parcial. 1-Junio-2010. Nombre:

Ficheros y Bases de Datos Curso 2009-10 Ingeniería Técnica de Informática Primer Parcial. 1-Junio-2010. Nombre: Ficheros y Bases de Datos Curso 2009-10 Ingeniería Técnica de Informática Primer Parcial. 1-Junio-2010 Nombre: Se debe entregar esta hoja 2 horas 1 (3,5 puntos A partir de la información sobre la BD que

Más detalles

Integridad y Seguridad en los sistemas de Bases de Datos. Javier Escobar Luis Ramirez Omar Asprino

Integridad y Seguridad en los sistemas de Bases de Datos. Javier Escobar Luis Ramirez Omar Asprino Integridad y Seguridad en los sistemas de Bases de Datos Javier Escobar Luis Ramirez Omar Asprino Contenido 1. Restricciones de Integridad 1. Claves Primarias 2. Restricciones de los Dominios 3. Integridad

Más detalles

Las restricciones de integridad proporcionan un medio de asegurar que las modificaciones

Las restricciones de integridad proporcionan un medio de asegurar que las modificaciones CAPÍTULO 6 INTEGRIDAD Y SEGURIDAD Las restricciones de integridad proporcionan un medio de asegurar que las modificaciones hechas a la base de datos por los usuarios autorizados no provoquen la pérdida

Más detalles

Normalización. Universidad Nacional de Colombia Facultad de Ingeniería

Normalización. Universidad Nacional de Colombia Facultad de Ingeniería Normalización Preparó: Ismael Castañeda Fuentes Fuente principal: Database Systems A Practical Approach to Design, Implementation, and Management. Thomas Connolly, Carolyn Begg Universidad Nacional de

Más detalles

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS AUTORÍA JOSEFA PÉREZ DOMÍNGUEZ TEMÁTICA NUEVAS TECNOLOGIAS ETAPA CICLOS FORMATIVOS DE GRADO SUPERIOR DE INFORMÁTICA Resumen En esta publicación se

Más detalles

1. DML. Las subconsultas

1. DML. Las subconsultas 1.1 Introducción 1. DML. Las subconsultas Una subconsulta es una consulta que aparece dentro de otra consulta o subconsulta en la lista de selección, en la cláusula WHERE o HAVING, originalmente no se

Más detalles

LAS SUBCONSULTAS SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

LAS SUBCONSULTAS SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE LAS SUBCONSULTAS SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE LAS SUBCONSULTAS Una subconsulta es una consulta que aparece dentro de otra consulta o subconsultas, en

Más detalles

Normalización. El diseño que hemos recibido está compuesto de estas dos relaciones:

Normalización. El diseño que hemos recibido está compuesto de estas dos relaciones: Normalización 1. Introducción Nuestro departamento de informática ha recibido el encargo de diseñar una base de datos para llevar el control de las piezas, proveedores y proyectos que realiza nuestra empresa.

Más detalles

Normalización. Carlos A. Olarte Bases de Datos I

Normalización. Carlos A. Olarte Bases de Datos I Carlos A. Olarte Bases de Datos I Outline 1 Introducción 2 Dependencias Funcionales 3 Diseño de Bases de Datos 4 Forma Normal Boyce-Codd (FNBC) 5 3FN 6 Dependneicas Funcionales Multivaluadas 7 4FN Introducción

Más detalles

NORMALIZACIÓN DE BASES DE DATOS RELACIONALES

NORMALIZACIÓN DE BASES DE DATOS RELACIONALES NORMALIZACIÓN DE BASES DE DATOS RELACIONALES El proceso de normalización fue introducido por Codd en el año 1974. Busca encontrar errores en el diseño de un esquema relacional debido a la presencia de

Más detalles

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo. CONSULTAS CON SQL 1. Qué es SQL? Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar entre unos y otras sería realmente complicada a gestionar de no ser por la existencia

Más detalles

proceso que consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional.

proceso que consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional. Que es una normalización de una base de datos proceso que consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional. Para que sirve

Más detalles

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas. El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los

Más detalles

Tema 5: Diseño de Bases de Datos

Tema 5: Diseño de Bases de Datos Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan David González Cobas Universidad de Oviedo. Departamento de Informática ÒÓÙÒ ÓÚ º Ó ÙÒ ÓÚ º ÙÖ Ó ¾¼¼ ¹¾¼½¼ Produced with L A T E X seminar style

Más detalles

Antes de entrar a definir la forma normal de Boyce-Codd, necesitamos conocer qué se entiende por determinante.

Antes de entrar a definir la forma normal de Boyce-Codd, necesitamos conocer qué se entiende por determinante. 28/04/2012 1 2 Antes de entrar a definir la forma normal de Boyce-Codd, necesitamos conocer qué se entiende por determinante. Empecemos extrayendo las claves candidatas presentes en este gráfico de dependencias

Más detalles

4 Integridad de datos relacional: llaves candidatas y temas relacionados.

4 Integridad de datos relacional: llaves candidatas y temas relacionados. 4 Integridad de datos relacional: llaves candidatas y temas relacionados. 4.1 Introducción. 4.2 Llaves candidatas. 4.3 Llaves primarias y llaves alternas. 4.4 Llaves foráneas. 4.5 Reglas de llaves foráneas.

Más detalles

Un nombre de usuario de 30 caracteres o menos, sin caracteres especiales y que inicie con una letra.

Un nombre de usuario de 30 caracteres o menos, sin caracteres especiales y que inicie con una letra. Unidad IV: Seguridad 4.1 Tipos de usuario El objetivo de la creación de usuarios es establecer una cuenta segura y útil, que tenga los privilegios adecuados y los valores por defecto apropiados Para acceder

Más detalles

NORMALIZACION. Definición.

NORMALIZACION. Definición. NORMALIZACION Definición. La normalización es una técnica que se utiliza para crear relaciones lógicas apropiadas entre tablas de una base de datos. La normalización se adoptó porque el viejo estilo de

Más detalles

Repaso de Conceptos Básicos de Bases de Datos

Repaso de Conceptos Básicos de Bases de Datos escuela técnica superior de ingeniería informática Repaso de Conceptos Básicos de Bases de Datos Departamento de Lenguajes Grupo de Ingeniería del Software Septiembre 2004 Definición Una base de datos

Más detalles

Lenguaje para descripción de datos

Lenguaje para descripción de datos Amparo López Gaona tación Fac. Ciencias, UNAM Mayo 2012 Definición de Datos El lenguaje para definición de datos permite especificar: Esquema de cada relación. El dominio de cada atributo. Restricciones

Más detalles

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros La sentencia INSERT permite agregar nuevas filas de datos a las tablas existentes. Está sentencia

Más detalles

Tema 6. Transacciones y seguridad

Tema 6. Transacciones y seguridad Tema 6. Transacciones y seguridad Las aplicaciones de bases de datos a gran escala, con bases de datos de gran tamaño y con cientos de usuarios concurrentes, como los sistemas de reservas, los bancos,

Más detalles

Oracle 12c DISEÑO Y PROGRAMACIÓN

Oracle 12c DISEÑO Y PROGRAMACIÓN Oracle 12c Se estudia el servidor de bases de datos empresarial Oracle 12c, centrándose especialmente en el punto de vista de un diseñador o programador de bases de datos, pero explicando también cómo

Más detalles

Temario Curso Bases de Datos

Temario Curso Bases de Datos Temario Curso Bases de Datos TEMA 1. INTRODUCCION A LAS BASES DE DATOS 1. Cualidades De La Información 2. Sistemas de Información 2.1. Componentes de un Sistema de Información 3. Niveles de Gestión de

Más detalles

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN Tipos de datos SQL admite una variada gama de tipos de datos para el tratamiento de la información contenida en las tablas, los tipos

Más detalles

Tema 6: Teoría de la Normalización

Tema 6: Teoría de la Normalización Tema 6: Teoría de la Normalización 1. Introducción Si definimos una base de datos como; una colección de información estructurada, referente a objetos y hechos de la realidad, y almacenados en un ordenador

Más detalles

Base de datos relacional

Base de datos relacional Base de datos relacional Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para modelar problemas reales y administrar

Más detalles

OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL. Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007

OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL. Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007 OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007 Álgebra Relacional Álgebra Relacional El álgebra relacional es

Más detalles

Sistemas de Bases de Datos I. Modelo Lógico Modelo Relacional

Sistemas de Bases de Datos I. Modelo Lógico Modelo Relacional Sistemas de Bases de Datos I Modelo Lógico Modelo Relacional Modelo Lógico Modelo Relacional Esquema Relacional (E- R) Es la representación de un DER mediante tablas. Algebra Relacional Modelo Relacional

Más detalles

Proceso de normalización Normalización 1/5 El proceso de normalización es un estándar que consiste, básicamente, en un proceso de conversión de las relaciones entre las entidades, evitando: La redundancia

Más detalles

Manual de usuario del Centro de Control

Manual de usuario del Centro de Control Manual de usuario del Centro de Control www.ximdex.com Tabla de contenidos 1. Centro de Control...4 2. Gestor de Canales...5 2.1. Añadir un nuevo canal...6 2.2. Modificar las propiedades del canal...6

Más detalles

Modelos y Bases de Datos

Modelos y Bases de Datos Modelos y Bases de Datos MODELOS Y BASES DE DATOS 1 Sesión No. 12 Nombre: Lenguaje SQL: Valores Nulos Contextualización Qué más ofrece el lenguaje SQL? Así como te has introducido en el desarrollo de la

Más detalles

Tema 2: Modelo Entidad-Asociación (E-A)

Tema 2: Modelo Entidad-Asociación (E-A) Tema 2: Modelo Entidad-Asociación (E-A) Conjuntos entidad Conjuntos asociación Cuestiones de diseño Restricciones de asociaciones Claves Diagrama E-A Características del modelo E-A ampliado Diseño de un

Más detalles

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) El lenguaje de consulta estructurado o SQL (por sus siglas en inglés Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite

Más detalles

Un ejemplo teórico de trigger podría ser éste:

Un ejemplo teórico de trigger podría ser éste: 9. TRIGGERS EN LA BASE DE DATOS Un trigger (disparador sería la traducción técnica) es un bloque PLSQL que se ejecuta implícitamente cuando ocurre un evento y pueden ser de base de datos o de aplicación.

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

Base de Datos. Profesor: José Miguel Rubio L. P. UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA ESCUELA DE ING.

Base de Datos. Profesor: José Miguel Rubio L. P. UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA ESCUELA DE ING. P. UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA ESCUELA DE ING. INFORMÁTICA Base de Datos Usuario A Programa de Aplicación Bodega Usuario B Usuario N Insumo Proveedor Profesor: José Miguel

Más detalles

Normalización. Tema 16

Normalización. Tema 16 Normalización Tema 16 Contenido Introducción Normalización de Relaciones Bibliogra;a 2 Introducción Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue

Más detalles

Que es normalización? Normalización de una base de datos Grados de normalización: Primera Forma Grados de normalización: Segunda Forma Grados de

Que es normalización? Normalización de una base de datos Grados de normalización: Primera Forma Grados de normalización: Segunda Forma Grados de Sergio Sánchez Que es normalización? Normalización de una base de datos Grados de normalización: Primera Forma Grados de normalización: Segunda Forma Grados de normalización: Tercera Forma Otras formas

Más detalles

Tema 5: Teoría de diseño de Bases de Datos Relacionales.

Tema 5: Teoría de diseño de Bases de Datos Relacionales. Tema 5: Teoría de diseño de Bases de Datos Relacionales. I. Introducción. Fases de diseño de una base de datos. 1. Mod. Conceptual (MERE) -> Mod. Lógico (Relacional). 2. Mod. Lógico (Relacional). En el

Más detalles

abacformacio@abacformacio.com 1

abacformacio@abacformacio.com 1 Cu Oracle 10gg Estudia el servidor de bases de datos Oracle 10g desde el punto de vista de un diseñador y programador de bases de datos, prestando atención a los objetos que puede crear, como tablas, consultas

Más detalles

T12 Vistas y tablas temporales

T12 Vistas y tablas temporales 1 de 9 17/05/2013 14:01 Lecciones SQL > T12 Vistas y tablas temporales En esta sesión vamos a mostrar dos tipos de objetos de uso habitual en cualquier SGBD: las vistas y las tablas temporales. Mientras

Más detalles

Microsoft SQL Server 2005

Microsoft SQL Server 2005 Microsoft SQL Server 2005 Módulo 1: Diseño y programación Estudia el servidor de bases de datos SQL Server 2005 desde el punto de vista de un diseñador y programador de bases de datos, prestando atención

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 8. Elementos Básicos 1.- Ejemplo Introductorio. 2.- Dominios. 3.- Relaciones. 4.- Bases de Datos Relacionales. (Capítulo 11 del Date) EJEMPLO

Más detalles

Base de datos en Excel

Base de datos en Excel Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de

Más detalles

Teoría formal de la normalización de esquemas relacionales. Definición formal de las tres primeras Formas Normales

Teoría formal de la normalización de esquemas relacionales. Definición formal de las tres primeras Formas Normales Teoría formal de la normalización de esquemas relacionales. Definición formal de las tres primeras Formas Normales Normalización de esquemas relacionales Motivación Sea la BD de proveedores y partes, con

Más detalles

Diseño de bases de datos Diapositiva 1

Diseño de bases de datos Diapositiva 1 Diseño o de bases de datos Objetivos del Diseño Principios del Diseño de BD Proceso de Diseño Normalización Diseño de Tablas: Claves Relaciones Integridad referencial Convenciones de nomenclatura Diseño

Más detalles

Sub consultas avanzadas

Sub consultas avanzadas Sub consultas avanzadas Objetivo Después de completar este capítulo conocerá lo siguiente: Escribir una consulta de múltiples columnas Describir y explicar el comportamiento de las sub consultas cuando

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse. TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.

Más detalles

Bases de datos relacionales y el modelo entidad-relación

Bases de datos relacionales y el modelo entidad-relación Bases de datos relacionales y el modelo entidad-relación Qué es una base de datos relacional? El sistema gestor de bases de datos El modelo entidad-relación entidad, atributos y elementos (tablas, columnas

Más detalles

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Diseño Lógico. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Diseño Lógico. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com. Maestría en Bioinformática Bases de Datos y Sistemas de Información Diseño Lógico Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.uy Agenda Conceptos Herramientas Diseño lógico Modelo Relacional Las

Más detalles

BASES DE DATOS TEMA 4 DISEÑO DE BASES DE DATOS RELACIONALES

BASES DE DATOS TEMA 4 DISEÑO DE BASES DE DATOS RELACIONALES BASES DE DATOS TEMA 4 DISEÑO DE BASES DE DATOS RELACIONALES El modelo relacional se basa en dos ramas de las matemáticas: la teoría de conjuntos y la lógica de predicados de primer orden. El hecho de que

Más detalles

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin. PHPMYADMIN Y MYSQL Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin. PhpMyAdmin es una herramienta para la administración del servidor de base de datos MySQL que dispone

Más detalles

UNIDAD DIDACTICA 1: SISTEMAS GESTORES DE BASES DE DATOS

UNIDAD DIDACTICA 1: SISTEMAS GESTORES DE BASES DE DATOS UNIDAD DIDACTICA 1: SISTEMAS GESTORES DE BASES DE DATOS Índice de contenido: 1. Concepto de base de datos (BD)... 3 2. Los sistemas gestores de bases de datos (SGBD)... 3 3. Arquitectura de los sistemas

Más detalles

Un ejemplo simple de normalización de bases de datos relacionales (hasta 3FN)

Un ejemplo simple de normalización de bases de datos relacionales (hasta 3FN) OpenStax-CNX module: m18350 1 Un ejemplo simple de normalización de bases de datos relacionales (hasta 3FN) Miguel-Angel Sicilia This work is produced by OpenStax-CNX and licensed under the Creative Commons

Más detalles

select nombre from profesores where categoria='aso6';

select nombre from profesores where categoria='aso6'; 1 de 10 17/05/2013 14:00 Lecciones SQL > T11 Conjuntos Operaciones de conjuntos y MySQL Un operador sobre conjuntos combina el resultado de dos sentencias select en un único resultado. Dependiendo del

Más detalles

Toda base de datos relacional se basa en dos objetos

Toda base de datos relacional se basa en dos objetos 1. INTRODUCCIÓN Toda base de datos relacional se basa en dos objetos fundamentales: las tablas y las relaciones. Sin embargo, en SQL Server, una base de datos puede contener otros objetos también importantes.

Más detalles

WINDOWS 2008 7: COPIAS DE SEGURIDAD

WINDOWS 2008 7: COPIAS DE SEGURIDAD 1.- INTRODUCCION: WINDOWS 2008 7: COPIAS DE SEGURIDAD Las copias de seguridad son un elemento fundamental para que el trabajo que realizamos se pueda proteger de aquellos problemas o desastres que pueden

Más detalles

NORMALIZACIÓN DE BASES DE DATOS

NORMALIZACIÓN DE BASES DE DATOS NORMALIZACIÓN DE BASES DE DATOS El proceso de normalización de bases de datos, consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad relación al modelo relacional.

Más detalles

Estructura de Bases de datos. Leonardo Víquez Acuña

Estructura de Bases de datos. Leonardo Víquez Acuña Estructura de Bases de datos Leonardo Víquez Acuña Lenguajes de Bases de Datos Un sistema de bases de datos proporciona Un lenguaje de definición de datos para especificar el esquema de la base de datos

Más detalles

Normalización. Bases de Datos

Normalización. Bases de Datos Normalización Bases de Datos Primera Forma Normal El dominio de todo atributo de cualquier relación debe incluir sólo valores atómicos. El valor de cualquier tupla debe ser un elemento simple del dominio.

Más detalles

CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES

CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES Tema 6. CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES TRANSACCIONES Una transacción es una unidad lógica de trabajo o procesamiento (ejecución de un programa que incluye operaciones de acceso a la base de

Más detalles

Indicaciones específicas para los análisis estadísticos.

Indicaciones específicas para los análisis estadísticos. Tutorial básico de PSPP: Vídeo 1: Describe la interfaz del programa, explicando en qué consiste la vista de datos y la vista de variables. Vídeo 2: Muestra cómo crear una base de datos, comenzando por

Más detalles

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle: PL/SQL (Procedural Language/Structured Query Language) PL/SQL es el lenguaje de programación que proporciona Oracle para extender el SQL estándar con otro tipo de instrucciones y elementos propios de los

Más detalles

TRANSMISIÓN DE TRANSMISIÓN DE TRANSMISIÓN DE RESULTADOS DILIGENCIAS TRABAS DE VALIDACIÓN DE TRABAS. Si hay rechazo

TRANSMISIÓN DE TRANSMISIÓN DE TRANSMISIÓN DE RESULTADOS DILIGENCIAS TRABAS DE VALIDACIÓN DE TRABAS. Si hay rechazo ANEXO I Especificaciones técnicas sobre los procesos de transmisión centralizada de diligencias de embargo de cuentas bancarias, recepción de las trabas y comunicación de resultados (EDITRAN) 1. Descripción

Más detalles

GENERACIÓN DE ANTICIPOS DE CRÉDITO

GENERACIÓN DE ANTICIPOS DE CRÉDITO GENERACIÓN DE ANTICIPOS DE CRÉDITO 1 INFORMACIÓN BÁSICA La aplicación de generación de ficheros de anticipos de crédito permite generar fácilmente órdenes para que la Caja anticipe el cobro de créditos

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

Curso Online de Microsoft

Curso Online de Microsoft Curso Online de Microsoft SQL Server Presentación: Estudia el servidor de bases de datos empresarial Microsoft SQL Server 2005 centrándose especialmente en el punto de vista de un diseñador o programador

Más detalles

MANUAL PARA LA GESTIÓN DEL PRÉSTAMO ENTRE LAS BIBLIOTECAS DE LA RED DE LECTURA PÚBLICA DE EUSKADI

MANUAL PARA LA GESTIÓN DEL PRÉSTAMO ENTRE LAS BIBLIOTECAS DE LA RED DE LECTURA PÚBLICA DE EUSKADI MANUAL PARA LA GESTIÓN DEL PRÉSTAMO ENTRE LAS BIBLIOTECAS DE LA RED DE LECTURA PÚBLICA DE EUSKADI El presente documento recoge el procedimiento mediante el cual las bibliotecas pertenecientes a la red

Más detalles

GENERALIDADES DE BASES DE DATOS

GENERALIDADES DE BASES DE DATOS GENERALIDADES DE BASES DE DATOS A fin de evitar que idénticos datos se encuentren repetidos en múltiples archivos, parece necesario que los comunes se almacenen en un archivo único y que este archivo sea

Más detalles

Normalización de bases de datos

Normalización de bases de datos Normalización de bases de datos Se explican los conceptos de la normalización de bases de datos, mismos que son necesarios para un buen diseño de una base de datos. Fecha de creación: 29 May del 2003-12:31

Más detalles

Tema 6: Diseño de bases de datos relacionales.

Tema 6: Diseño de bases de datos relacionales. 6.1 Introducción. Tema 6:. Las dificultades inherentes al diseño de una base de datos han de afrontarse con procedimientos ordenados y metódicos. En el proceso de diseño de una base de datos hemos de distinguir

Más detalles

IAP 1003 - ENTORNOS INFORMATIZADOS CON SISTEMAS DE BASES DE DATOS

IAP 1003 - ENTORNOS INFORMATIZADOS CON SISTEMAS DE BASES DE DATOS IAP 1003 - ENTORNOS INFORMATIZADOS CON SISTEMAS DE BASES DE DATOS Introducción 1. El propósito de esta Declaración es prestar apoyo al auditor a la implantación de la NIA 400, "Evaluación del Riesgo y

Más detalles

1.- INTRODUCCIÓN 2.- PARÁMETROS

1.- INTRODUCCIÓN 2.- PARÁMETROS 1.- INTRODUCCIÓN Hemos diseñado una aplicación que facilite el envío a las entidades bancarias de las de cobro por domiciliación. La entrada de esta aplicación pueden ser, tanto ficheros cuyos formatos

Más detalles

Creación y administración de grupos de dominio

Creación y administración de grupos de dominio Creación y administración de grupos de dominio Contenido Descripción general 1 a los grupos de Windows 2000 2 Tipos y ámbitos de los grupos 5 Grupos integrados y predefinidos en un dominio 7 Estrategia

Más detalles

El modelo relacional

El modelo relacional El modelo relacional El modelo relacional constituye una alternativa para la organización y representación de la información que se pretende almacenar en una base de datos. Se trata de un modelo teórico

Más detalles

Unidad 3. NORMALIZACIÓN.

Unidad 3. NORMALIZACIÓN. Unidad 3. NORMALIZACIÓN. PRACTICA " Definición y Concepto de Normalización " 1. El alumno deberá conseguir información de 3 fuentes bibliográficas distintas, el concepto de Definición. 2. No olvidar hacer

Más detalles

Trabajos de Ampliación. Bases de datos NoSQL.

Trabajos de Ampliación. Bases de datos NoSQL. BASES DE DATOS NoSql Son bases de datos pensadas para aplicaciones que hagan un uso intensivo de la misma. Estas bases de datos permiten una mayor flexibilidad y facilidad a la hora de introducir los datos

Más detalles

Modelo Relacional. Normalización

Modelo Relacional. Normalización Modelo Relacional Normalización Concepto El proceso de normalización consiste en aplicar a un modelo relacional un conjunto de normas que eviten la duplicidad y la perdida de integridad de los datos. Las

Más detalles

Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE

Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE Técnicas de prueba El desarrollo de Sistemas de software implica la realización de una serie de actividades predispuestas a incorporar errores (en la etapa de definición de requerimientos, de diseño, de

Más detalles

INTRODUCCION. entidades. Modelo lógico de la base de datos. Matricula. carne. codigo_curso. año semestre nota. propiedades

INTRODUCCION. entidades. Modelo lógico de la base de datos. Matricula. carne. codigo_curso. año semestre nota. propiedades INTRODUCCION Uno de los objetivos del curso es modelar a través de un diagrama las estructuras lógicas requeridas para almacenar los datos y resolver las consultas del sistema información que requiera

Más detalles

Tema 3. El modelo Relacional

Tema 3. El modelo Relacional Tema 3. El modelo Relacional Juan Ignacio Rodríguez de León Resumen Presenta el modelo entidad-relación. Visión de alto nivel de las cuestiones referentes a diseño de bases de datos y los problemas encontrados

Más detalles

Manual del Cotizador

Manual del Cotizador 1 agosto de 2011 INDICE 1. Pantalla de inicio 3 2. Realizar una oferta 3 2.1. Cliente 4 2.2. Vehículo 5 2.3. Equipamiento 7 2.4. Prestaciones 8 2.5. Tarificación 10 2.6. Oferta 13 3. Recuperación de una

Más detalles