Professional Documents
Culture Documents
La integridad en una base de datos es la correccin y exactitud de la informacin contenida. Adems de conservar la seguridad en un sistema de bases de datos que permite el acceso a mltiples usuarios en tiempos paralelos.
Condiciones de la Integridad
Las condiciones que garantizan la integridad de los datos pueden ser de dos tipos: 1. Las restricciones de integridad de usuario: son condiciones especficas de una base de datos concreta; son las que se deben cumplir en una base de datos articular con unos usuarios concretos, pero que no son necesariamente relevantes en otra Base de Datos. 2. Las reglas de integridad de modelo: son condiciones propias de un modelo de datos, y se deben cumplir en toda base de datos que siga dicho modelo. Los SGBD deben proporcionar la forma de definir las restricciones de integridad de usuario de una base de datos y una vez definida, debe velar por su cumplimiento. Las reglas de integridad del modelo, en cambio, no se deben definir para cada base de datos concreta, porque se consideran preestablecidas para todas las base de datos de un modelo. Un SGBD de un modelo determinado debe velar por el cumplimiento de las reglas de integridad preestablecidas por su modelo.
Reglas de Integridad
Regla de integridad de unicidad de la clave primaria
La regla de integridad de unicidad est relacionada con la definicin de clave primaria que establece que toda clave primaria que se elija para una relacin no debe tener valores repetidos por lo que el conjunto de atributos CP es la clave primaria de una relacin R, entonces la extensin de R no puede tener en ningn momento dos tuplas con la misma combinacin de valores para los atributos de CP.
establecer una conexin con la clave primaria que referencian. Si un valor de una clave fornea no estuviese presente. Restriccin La restriccin en caso de borrado, consiste en no permitir borrar una tupla si tiene una clave primaria referenciada por alguna clave fornea y la restriccin en caso de modificacin consiste en no permitir modificar ningn atributo de la clave primaria de una tupla si tiene una clave primaria referenciada por alguna clave fornea. Actualizacin en cascada La actualizacin en cascada consiste en permitir la operacin de actualizacin de la tupla, y en efectuar operaciones compensatorias que propaguen en cascada la actualizacin a las tuplas que la referenciaban; se acta de este modo para mantener la integridad referencial. La actualizacin en cascada en caso de borrado consiste en permitir el borrado de una tupla t que tiene una clave primaria referenciada, y borrar tambin todas las tuplas que referencian t y la actualizacin en cascada en caso de modificacin consiste en permitir la modificacin de atributos de la clave primaria de una tupla t que tiene una clave primaria referenciada, y modificar del mismo modo todas las tuplas que referencian t. Anulacin La anulacin consiste en permitir la operacin de actualizacin de la tupla y en efectuar operaciones compensatorias que pongan valores nulos a los atributos de la clave fornea de las tuplas que la referencian; esta accin se lleva a cabo para mantener la integridad referencial. Los SGBD relacionales permiten establecer que un determinado atributo de una relacin no admite valores nulos, slo se puede aplicar la poltica de anulacin si los atributos de la clave fornea s los admiten. Ms concretamente, la anulacin en caso de borrado consiste en permitir el borrado de una tupla t que tiene una clave referenciada y, adems, modificar todas las tuplas que referencian t, de modo que los atributos de la clave fornea correspondiente tomen valores nulos y la anulacin en caso de modificacin consiste en permitir la modificacin de atributos de la clave primaria de una tupla t que tiene una clave referenciada y, adems, modificar todas las tuplas que referencian t, de modo que los atributos de la clave fornea correspondiente tomen valores nulos.
La primera condicin consiste en que un valor no nulo de un atributo Ai debe pertenecer al dominio del atributo Ai; es decir, debe pertenecer a dominio(Ai). Esta condicin implica que todos los valores no nulos que contiene la base de datos para un determinado atributo deben ser del dominio declarado para dicho atributo.
La segunda condicin sirve para establecer que los operadores que pueden aplicarse sobre los valores dependen de los dominios de estos valores; es decir, un operador determinado slo se puede aplicar sobre valores que tengan dominios que le sean adecuados.
Integridad de datos
El trmino integridad de datos se refiere a la correccin y complementacin de los datos en una base de datos. Cuando los contenidos se modifican con sentencias INSERT, DELETE o UPDATE, la integridad de los datos almacenados puede perderse de muchas maneras diferentes. Pueden aadirse datos no vlidos a la base de datos, tales como un pedido que especifica un producto no existente. Pueden modificarse datos existentes tomando un valor incorrecto, como por ejemplo si se reasigna un vendedor a una oficina no existente. Los cambios en la base de datos pueden perderse debido a un error del sistema o a un fallo en el suministro de energa. Los cambios pueden ser aplicados parcialmente, como por ejemplo si se aade un pedido de un producto sin ajustar la cantidad disponible para vender. Una de las funciones importantes de un DBMS relacional es preservar la integridad de sus datos almacenados en la mayor medida posible.
Chequeo de Validez: cuando se crea una tabla cada columna tiene un tipo de datos y el DBMS asegura que solamente los datos del tipo especificado sean ingresados en la tabla.
Integridad de entidad: establece que la clave primaria de una tabla debe tener un valor nico para cada fila de la tabla; si no, la base de datos perder su integridad. Se especifica en la sentencia CREATE TABLE. El DBMS comprueba automticamente la unicidad del valor de la clave primaria con cada sentencia INSERT Y UPDATE. Un intento de insertar o actualizar una fila con un valor de la clave primaria ya existente fallar.
Integridad referencial: asegura la integridad entre las llaves forneas y primarias (relaciones padre/hijo). Existen cuatro actualizaciones de la base de datos que pueden corromper la integridad referencial:
La insercin de una fila hijo se produce cuando no coincide la llave fornea con la llave primaria del padre.
La actualizacin en la llave fornea de la fila hijo, donde se produce una actualizacin en la clave ajena de la fila hijo con una sentencia UPDATE y la misma no coincide con ninguna llave primaria.
La supresin de una fila padre, con la que, si una fila padre -que tiene uno o ms hijos- se suprime, las filas hijos quedarn hurfanas.
La actualizacin de la llave primaria de una fila padre, donde si en una fila padre, que tiene uno o ms hijos se actualiza su llave primaria, las filas hijos quedarn hurfanas.
Objetivo de la normalizacin
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.
En el modelo relacional es frecuente llamar tabla a una relacin, aunque para que una tabla bidimensional sea considerada como una relacin tiene cumplir con algunas restricciones:
Cada columna debe tener su nombre nico. No puede haber dos filas iguales. No se permiten los duplicados. Todos los datos en una columna deben ser del mismo tipo.
Terminologa equivalente
relacin = tabla o archivo tupla = registro, fila o rengln atributo = campo o columna base de datos = banco de datos dependencia multivaluada = dependencia multivalor clave = llave clave primaria = superclave clave ajena = clave extranjera o clave fornea RDBMS = del ingls Relational Data Base Manager System que significa, Sistema Gestor de Base de Datos Relacionales
Dependencia funcional Una dependencia funcional son conexiones entre uno o ms atributos. Por ejemplo si conocemos el valor de FechaDeNacimiento podemos conocer el valor de Edad. Las dependencias funcionales se escriben utilizando una flecha, de la siguiente manera: FechaDeNacimiento->Edad Aqu a FechaDeNacimiento se le conoce como un determinante. Se puede leer de dos formas FechaDeNacimiento determina a Edad o Edad es funcionalmente dependiente de FechaDeNacimiento. De la normalizacin (lgica) a la implementacin (fsica o real) puede ser sugerible tener stas dependencias funcionales para lograr mayor eficiencia en las tablas. Dependencia funcional transitiva Supongamos que los estudiantes solo pueden estar matriculados en un solo curso y supongamos que los profesores solo pueden dar un curso. ID_Estudiante -> Curso_Tomando Curso_Tomando -> Profesor_Asignado ID_Estudiante -> Curso_Tomando -> Profesor_Asignado Entonces tenemos que ID_Estudiante determina a Curso_Tomando y el Curso_Tomando determina a Profesor_Asignado, indirectamente podemos saber a travs del ID_estudiante el Profesor_Asignado. Entonces tenemos una dependencia transitiva.
Claves
Clave ajena
Cuando se tienen dos tablas o ms, una clave ajena es aquella columna de una tabla que hace referencia a una clave primaria de otra tabla. Tambin existe el caso de Relaciones Autoreferenciales. Sucede cuando en la misma relacin se tiene una clave ajena que hace referencia a la clave primeria de la misma relacin. Por otro lado las claves ajenas pueden tomar valores nulos.
La integridad referencial exige concordancia en las claves ajenas, con las claves primerias, no con la claves alternativas. Los conceptos de clave ajena e integridad referencial se definen uno en termino del otro.
Clave candidata
Por lo general la forma ms eficiente y segura para escoger o hacer la clave primaria es poniendo un nmero y aumentando ste a medida que se van aadiendo filas, pero si de casualidad se diera el caso de que
existan varias claves candidatas de las cuales se deba escoger la clave primaria, esta eleccin se hace utilizando el sentido comn.
Claves alternativas
Son aquellas claves candidatas que no han sido elegidas.
Clave simple
Es una clave que esta compuesta solo de un atributo.
Clave compuesta
Es una clave que esta compuesta por ms de un atributo.
Formas Normales
Las primeras tres formas normales son suficientes para cubrir las necesidades de la mayora de las bases de datos. El creador de estas 3 primeras formas normales (o reglas) fue Edgar F. Codd, ste introdujo la normalizacin en un artculo llamado A Relational Model of Data for Large Shared Data Banks.
Una tabla est en FNBC s y slo s las nicas dependencias funcionales elementales son aquellas en las que la clave primaria determinan un atributo.
Reglas de Codd
Codd se dio de cuenta que existan bases de datos en el mercado las cuales decan ser relacionales, pero lo nico que hacan era guardar la informacin en las tablas, sin estas tablas estar literalmente normalizadas; entonces ste public 12 reglas que un verdadero sistema relacional debera de tener, en la prctica algunas de ellas son difciles de realizar.Un sistema podr considerarse "ms relacional" cuanto ms siga estas reglas.
La descripcin de la base de datos es almacenada de la misma manera que los datos ordinarios, esto es, en tablas y columnas, y debe ser accesible a los usuarios autorizados. La informacin de tablas, vistas, permisos de acceso de usuarios autorizados, etc, debe ser almacenada exactamente de la misma manera: En tablas. Estas tablas deben ser accesibles igual que todas las tablas, a travs de sentencias de SQL.
La independencia lgica de los datos especifica que los programas de aplicacin y las actividades de terminal deben ser independientes de la estructura lgica, por lo tanto los cambios en la estructura lgica no deben alterar o modificar estos programas de aplicacin.
Ningn componente de una clave primaria puede tener valores en blanco o nulos. (esta es la norma bsica de integridad). Para cada valor de clave fornea deber existir un valor de clave primaria concordante. La combinacin de estas reglas aseguran que haya Integridad referencial.
Algebra relacional
Es un mtodo que consiste bsicamente en crear o construir nuevas relaciones a partir de relaciones existentes. Existen 2 tipos de operadores algebraicos:
1. Proyeccin (). 2. Seleccin (). 3. Unin (U). 4. Diferencia (-). 5. Producto cartesiano (X). Proyeccin. Este operador permite extraer columnas de una relacin y de esta manera crea un subconjunto de atributos de la relacin, adems elimina las filas duplicadas. Ejemplo PERSONA CODIGO NOMBRE EDAD TELEFONO CIUDAD
PEDRO
24
3182405
QUITO
SONIA
15
3234534
QUITO
ERIK
18
4102405
GUAYAQUIL
ANDREA
27
4089129
GUAYAQUIL
PEDRO
QUITO
SONIA
QUITO
ERIK
GUAYAQUIL
ANDREA Seleccin.
GUAYAQUIL
Este operador permite seleccionar un subconjunto de filas o registros de una relacin y de acuerdo a la condicin planteada los registros sern seleccionados para formar parte de un nuevo subconjunto. Ejemplo PERSONA CODIGO NOMBRE EDAD TELEFONO CIUDAD
PEDRO
24
3182405
QUITO
SONIA
15
3234534
QUITO
ERIK
18
4102405
GUAYAQUIL
ANDREA
27
4089129
GUAYAQUIL
ERIK
18
4102405
GUAYAQUIL
4 Unin.
ANDREA
27
4089129
GUAYAQUIL
La unin de 2 relaciones R y S es otra relacin la cual va a tener los registros de R en S o en ambas, adems se eliminan los registros duplicados. En esta relacin R y S deben ser compatibles es decir que deben estar definidas sobre el mismo conjunto de atributos. Ejemplo EMPLEADO CDIGO NOMBRE SUELDO
KEVIN
550
EDUARDO
300
JESSICA
240
4 JEFE CDIGO
NANCY
430
NOMBRE
SUELDO
PEDRO
800
EDUARDO
300
ADRIAN
1000
NANCY
430
JUAN
180
KEVIN
550
EDUARDO
300
JESSICA
240
NANCY
430
PEDRO
800
ADRIAN
1000
8 Diferencia.
JUAN
180
La diferencia de 2 relaciones R y S es otra relacin la cual va a tener los registros que estn en R pero no estn en S. En esta relacin R y S deben ser compatibles. Ejemplo EMPLEADO CDIGO NOMBRE SUELDO
KEVIN
550
EDUARDO
300
JESSICA
240
4 JEFE CDIGO
NANCY
430
NOMBRE
SUELDO
PEDRO
800
EDUARDO
300
ADRIAN
1000
NANCY
430
JUAN
180
NOMBRE
SUELDO
KEVIN
550
3 JEFE EMPLEADO
JESSICA
240
CODIGO
NOMBRE
SUELDO
PEDRO
800
ADRIAN
1000
8 Producto cartesiano.
JUAN
180
Es una relacin que consiste en la concatenacin de cada una de las filas de la relacin R con cada una de las filas de la relacin S. Ejemplo PROVINCIA CDIGO NOMBRE POBLACION
PICHINCHA
800
AZUAY
300
GUAYAS
1000
4 CIUDAD CDIGO
COTOPAXI
430
CIUDAD
C1
QUITO
C2
CUENCA
GUAYAQUIL
POBLACION
CODIGO
CIUDAD
PICHINCHA
800
C1
QUITO
PICHINCHA
800
C2
CUENCA
PICHINCHA
800
C3
GUAYAQUIL
AZUAY
300
C1
QUITO
AZUAY
300
C2
CUENCA
AZUAY
300
C3
GUAYAQUIL
GUAYAS
1000
C1
QUITO
GUAYAS
1000
C2
CUENCA
GUAYAS
1000
C3
GUAYAQUIL
COTOPAXI
430
C1
QUITO
COTOPAXI
430
C2
CUENCA
COTOPAXI
430
C3
GUAYAQUIL
Operadores no bsicos o derivados. Se clasifican en: 1. Interseccin (). 2. Unin natural (). 3. Divisin (/). Interseccin. Es una relacin que contiene el conjunto de todas las filas que estn tanto en la relacin R como en S. R y S deben ser compatibles. Ejemplo EMPLEADO CODIGO NOMBRE SUELDO
KEVIN
550
EDUARDO
300
JESSICA
240
4 JEFE CODIGO
NANCY
430
NOMBRE
SUELDO
PEDRO
800
EDUARDO
300
ADRIAN
1000
NANCY
430
JUAN
180
NOMBRE
SUELDO
EDUARDO
300
4 Unin natural.
NANCY
430
El resultado es una relacin con los atributos de ambas relaciones y se obtiene combinando vas filas de ambas relaciones que tengan el mismo valor en los atributos comunes. El join se lo usa entre los atributos comunes de las entidades o tablas que poseen la clave primaria de una tabla fornea correspondiente de otra entidad. Ejemplo PROVINCIA CODIGO NOMBRE POBLACION CODIGO_CIUDAD
PICHINCHA
800
AZUAY
300
GUAYAS
1000
4 CIUDAD CODIGO_CIUDAD
COTOPAXI
430
CIUDAD
QUITO
CUENCA
GUAYAQUIL
CDIGO
NOMBRE
POBLACION
CODIGO_CIUDAD
CODIGO_CIUDAD
CIUDAD
PICHINCHA
800
QUITO
PICHINCHA
800
CUENCA
PICHINCHA
800
GUAYAQUIL
AZUAY
300
QUITO
AZUAY
300
CUENCA
AZUAY
300
GUAYAQUIL
GUAYAS
1000
QUITO
GUAYAS
1000
CUENCA
GUAYAS
1000
GUAYAQUIL
COTOPAXI
430
QUITO
COTOPAXI
430
CUENCA
4 RESULTADO CODIGO
COTOPAXI
430
GUAYAQUIL
NOMBRE
POBLACION
CODIGO_CIUDAD
CODIGO_CIUDAD
CIUDAD
PICHINCHA
800
QUITO
AZUAY
300
GUAYAQUIL
GUAYAS
1000
GUAYAQUIL
4 Outer Join.
COTOPAXI
430
QUITO
Es una variante del join en la que se intenta mantener toda va informacin de los operandos, incluso para aquellas que no encajan o entran en juego en el Join, se rellena con nulos las filas que no tienen correspondencia en el Join.
Existen 3 variantes: 1. Left. 2. Right 3. Full Left Se tiene en cuenta todas las filas del primer operando. Right Se tiene en cuenta todas las filas del segundo operando. Full Se tiene en cuenta todas las filas de ambos operandos. Divisin. Define una relacin sobre el conjunto de atributos C, incluido en la relacin R, y que contiene el conjunto de valores de S, que en las filas de R estn combinadas con cada una de las filas de S. R A B C D
1 S
2 R/S A