Sunteți pe pagina 1din 29

UNIVERSIDAD TANGAMANGA DIRECCIN ACADMICA CARRERA MATERIA TOTAL DE ENCUENTROS DOCENTE Ingeniera en Tecnologas de la Informacin y Telecomunicaciones Bases de Datos

2 (BAD5) 8 Clases ISC Sergio Chvez Azuara

Para el estudio de la materia se dispone de:


Libros de referencia Sitios Web

Competencias a alcanzar:
Asegurar la integridad de los datos de una base de datos Proveer los mecanismos adecuados para extraer informacin de una base de datos por diversos usuarios simultneos. Proveer de los elementos mnimos e indispensables para asegurar la seguridad de los datos almacenados en una base de datos. Plasmar todos stos conocimientos en casos prcticos.

Conocimientos previos que el alumno debe tener:


Algebra relacional Lenguaje SQL Estar familiarizado con el manejo de un SGBD (Sistema de gestin de bases de datos)

Software a utilizar durante el curso:


MySQL Versin 5.0 Cliente, servidor, Administrator, Query Browser DBDesigner 4.0 PostgreSQL Todos ya sea en versiones para Windows y/o GNU/Linux

CONTENIDOS DE LA MATERIA
UNIDAD 1. RECUPERACIN
1.1 1.2 1.3 1.4 1.5 Concepto Transacciones Fallas de transaccin Fallas del sistema Fallas en el medio

UNIDAD 3. CONCURRENCIA
3.1 Definicin 3.2 Problemas que se representan (actualizacin, prdida, etc.) 3.3 Seriabilidad 3.4 Mecanismo de seguros Tipos de seguros Protocolos Dead lock Tcnicas para prevenirlo Tcnicas para deshacerlo 3.5 Etiquetas de tiempo

UNIDAD 2. INTEGRIDAD
2.1 2.2 2.3 2.4 2.5 Definicin Reglas de integridad Reglas de integridad de dominio Reglas de integridad de relacin Mecanismos de visitas para implantacin de integridad

UNIDAD 4. SEGURIDAD
4.1 4.2 4.3 4.4 4.5 4.6 4.7 Concepto. Identificacin y autenticacin. Matriz de autorizacin. Definicin de un esquema de seguridad Mecanismo de vistas para implantacin de seguridad. Base de datos estadsticos. Encriptacin de datos (codificacin).

UNIDAD 5. ELABORACION DE PROYECTO FINAL

ORGANIZACIN DE LA MATERIA POR ETAPAS.


PRIMERA ETAPA Total de clases para la etapa: ____ UNIDADES DEL PROGRAMA QUE COMPRENDE: UNIDAD 1. RECUPERACIN
1.1 1.2 1.3 1.4 1.5 Concepto Transacciones Fallas de transaccin Fallas del sistema Fallas en el medio

UNIDAD 2. INTEGRIDAD
2.1 2.2 2.3 2.4 2.5 Definicin Reglas de integridad Reglas de integridad de dominio Reglas de integridad de relacin Mecanismos de visitas para implantacin de integridad

OBJETIVOS A ALCANZAR

El alumno comprender la importancia que tiene para cualquier organizacin el hecho de poder garantizar la integridad de los datos y su correcta recuperacin. Asimismo aprender los diferentes mecanismos que se pueden utilizar para asegurar estos objetivos.
CONTENIDO A DESARROLLAR UNIDAD I
TRANSACCIONES ACID

El concepto de transaccin es definir una unidad bsica (lgicamente hablando) de trabajo. Esta unidad bsica de trabajo est compuesta por un conjunto de tareas o instrucciones a realizar. ACID en ingls quiere decir que nuestras transacciones cumplen las propiedades de A (atomicidad), C (coherencia), I (aislamiento, isolation en ingls) y D (Durabilidad). Veamos un poco Cada propiedad que garantiza una transaccin ACID. Pero primero, para que nos quede ms claro, definamos un ejemplo de una transaccin: Supongamos que usted posee un paquete de cuenta corriente y caja de ahorros en un banco determinado. Posee $1000 depositados en su caja de ahorros y $2000 depositados en su cuenta corriente. Llega el momento de pagar la tarjeta de crdito, la cual se debita automticamente de la caja de ahorro y el importe a pagar por sta es de $1300. Como usted no dispone de esa cifra y no quiere que Ie cobren inters por no realizar el pago por el importe total de ella, se dirige a un cajero automtico y realiza la siguiente operacin, retira electrnicamente $300 de su cuenta corriente y los deposita electrnicamente en su caja de ahorros. Ahora bien, qu hubiera pasado si en el nterin entre que usted retira el dinero $300 de su cuenta corriente y antes de depositario en su caja de ahorros ocurriera cualquier tipo de desperfecto tcnico o informtico? A usted se le hubieran esfumado o pulverizado $300 sin siquiera poder verlos y/o tocarlos.

Para que esto no suceda, es que se define el concepto de transaccin. En nuestro caso, la transaccin comenzara ni bien usted se loguea o identifica en el cajero y finalizara en el momento que usted termina esta operacin, con lo cual el sacar $ 300 de su cuenta corriente y depositar los $300 en su caja de ahorros sera una nica transaccin. Ahora que nos qued claro qu es una transaccin, veamos las propiedades de ella.

Atomicidad La propiedad de atomicidad garantiza que todas las modificaciones realizadas sobre los datos de una transaccin se completen o confirmen como un grupo si la transaccin tiene xito o en caso contrario, si la transaccin falla, no se registre ninguna de las modificaciones hechas en los datos de ella. La transaccin se debe realizar como si fuera una unidad atmica de ah el trmino atomicidad. En nuestro ejemplo, o se depositan en la caja de ahorros los $300 retirados de la cuenta corriente (transaccin exitosa) o nunca pas nada y nuestra caja de ahorro posee $1000 y nuestra cuenta corriente $ 2000 (transaccin fallida). En este ltimo caso, al ocurrir el error se deshacen todas las modificaciones realizadas antes de que ocurriera el error y se deja a los datos en su estado original. Consistencia Dicha propiedad de las transacciones garantizan que estas dejen los datos de la base en un estado consistente, ms all de que la transaccin finalice exitosa o fallidamente. O sea la integridad de los datos se preserva al finalizar la transaccin con xito o por fallo. Una aclaracin importante es que la base de datos se debe encontrar consistente antes de empezar la transaccin. Aislamiento Esta propiedad garantiza que los efectos provocados por una transaccin estn aislados de los efectos que provocan otras transacciones concurrentes. Para ser ms claro, es como si la transaccin fuera la nica que se estuviera ejecutando en todo el sistema y no afectara ni fuese afectada por nada (otra transaccin). Esto implica que una transaccin no se ver afectada por otra transaccin hasta que dicho cambio provocado por la otra transaccin se confirme. Es como si existiera un delay o un tiempo latente. El nivel de aislamiento determina en qu grado la transaccin acepta datos inconsistentes, o sea el grado que se asla una transaccin dada, de las dems.

Un nivel de aislamiento alto permite datos ms exactos, pero como contrapartida impide o disminuye el nmero de transacciones concurrentes (que pueden suceder simultneamente o al mismo tiempo). Como contrapartida, un nivel bajo de aislamiento permite mayor cantidad de transacciones concurrentes, pero como contrapartida los datos obtenidos en ella sern menos certeros. SQL Server maneja cuatro niveles distintos de aislamiento y ellos mismos, por lo que explicamos anteriormente sobre la concurrencia, condicionan el comportamiento con respecto al nivel de bloqueo de las instrucciones involucradas. El nivel ms bajo es el de lecturas desconfirmadas y el aislamiento que estas poseen es garantizar que no se lean datos en mal estado fsico.
Luego le sigue el nivel de lecturas confirmadas el cual solo permite la lectura de datos que han sido confirmados, o sea datos que se convirtieron en datos permanentes de Ia base de datos. SQL Server utiliza este nivel de aislamiento por defecto. Un nivel ms alto de aislamiento posee el de lecturas repetibles, el cual garantiza que la lectura repetida de una o mas filas de la transaccin Siempre obtenga el mismo resultado. Y por ltimo, el nivel de aislamiento ms alto de todos que es el nivel serializable que garantiza que las transacciones estn completamente aisladas una de las otras. Se llama de esta manera pues provoca la sensacin de que las transacciones se ejecutan una detrs de la otra como si se ejecutaran en Serie. Veremos, en la siguiente grilla un resumen de lo expresado (Tabla 1).
NIVELES DE AISLAMIENTO DE LAS TRANSACCIONES LECTURA LECTURA LECTURA DESCENTRALIZADA CONFIRMADA REPETIBLE S NO NO SI SI SI SI SI NO

TIPOS DE LECTURA Lectura desactualizada Lectura Fantasma Lectura no repetible

LECTURA SERIALIZABLE NO NO NO

Tabla 1. Relacin entre los niveles de aislamiento y los tipos de lecturas de transacciones concurrentes.

Para definir el nivel de aislamiento mediante TSQL se utiliza el siguiente Cdigo: SET TRANSACTION ISOLATION LEVEL READ UNCOMMITED | READ COMMITED | REPEATABLE READ | SERIALIZABLE Se debe elegir qu nivel de aislamiento desea entre los cuatro y escribir solamente uno de ellos. En particular, le dira que sea muy cuidadoso al utilizarlos y le aconsejo, en principio que deje el que SQL Server utiliza por defecto (READ COMMITED), que en el 99 % de las veces funciona correctamente. Para averiguar el nivel de aislamiento vigente, se debe utilizarla siguiente instruccin: DBCC USEROPTIONS Durabilidad Esta propiedad de las transacciones garantiza que una vez Confirmada sus efectos son permanentes en la base de datos aunque posteriormente falle el sistema. El registro de transacciones que posee el SQL Server y los backup de la base de datos garantizan la durabilidad de la base de datos. Aunque algn componente fsico o lgico falle cuando se reinicie SQL Server, las bases de datos se recuperarn

automticamente sin que usted haga nada, lo nico que debe tener es paciencia, ya que en funcin del tamao de ellas y las caractersticas de su hardware esta operacin puede demorar un tiempo indefinido de antemano. Esto puede fallar si el problema que existe es en los medios fsicos que guardan las copias de seguridad. Adems, cuanto ms actualizadas posea sus copias de seguridad existe una probabilidad mayor que la recuperacin sea exitosa.

MODOS DE CONFIRMACIN
Los modos de confirmacin de transacciones en SQL Server son tres: confirmacin automtica (este es el modo de confirmacin por defecto), confirmacin explcita o confirmacin implcita. Veamos cada uno en detalle. Confirmacin automtica En este modo cada una de las instrucciones se confirma automticamente a medida que van concluyendo. En este modo no hacen falta instrucciones extras. Pero como contrapartida observe que cada instruccin es una transaccin, en realidad no se preserva el concepto original que definimos para transacciones. Este modo es til cuando se ejecuta una instruccin de T-SQL desde la lnea de comandos por medio de las aplicaciones ISQL u OSQL (casi no usadas en la actualidad) o cuando ejecuta una nica instruccin en el query analizer. Confirmacin explcita Este es el modo ms utilizado al realizar aplicaciones, procedimientos almacenados (stored procedures) triggers, cursores y secuencia de instrucciones. Como su nombre lo indica, la confirmacin explcita necesita que se defina explcitamente el lugar o instruccin donde comienza la transaccin y el lugar o instruccin donde ella finaliza, de modo que las instrucciones involucradas modifiquen y confirmen los datos en caso que la transaccin finalice exitosamente o se deshagan todas las modificaciones generadas por las instrucciones en cuestin, en el caso que la transaccin falle o fracase. Veamos un caso concreto como el de nuestra caja de ahorros y cuenta corriente y el giro de dinero. Supongamos que poseemos una tabla Caja_Ahorros con los atributos (nrocaja, nroclente, importe, operacin, mporte_total) y una tabla Cuenta_Corriente con los atributos (nrocuenta, nroclente, importe, operacin, mporte_total, giro_desc). Cmo sera la definicin de dicha transaccin?

Adems se pueden anidar transacciones, pero estas Se deben definir de forma explcita. El tema puntual en este caso es que mientras las transacciones internas del anidamiento no se confirman el recurso no est disponible para el resto de las

transacciones, no obstante, la Confirmacin de todas las transacciones anidadas sucede cuando se confirma la transaccin externa o la ms externa de todas las transacciones del anidamiento. No vamos a entrar en detalle en dicho tema, pues est fuera del alcance del libro y Se puede encontrar una explicacin clara y concreta en la ayuda de SQL Server. Confirmacin implcita Este modo se activa de forma implcita cuando Se define alguna de estas instrucciones: CREATE DROP ALTER TABLE DELETE INSERT GRANT REVOKE FETCH SELECT UPDATE TRUNCATE TABLE OPEN

Pero se debe terminar de forma explcita con un commit tran o un rollback tran, si no se explicitan ninguna de estas dos formas de finalizar la transaccin, esta Concluir cuando el usuario cierre la Sesin (Se desconecte). Para que el query analizer acepte las transacciones implcitas hay que activar dicha opcin mediante la instruccin TSQL: SET IMPLICIT_TRANSACTION ON Y para desactivar la Opcin que permite transacciones implcitas se utiliza la misma instruccin T-SQL, pero con el parmetro off como se muestra a continuacin, SET IMPLICIT_TRANSACTION OFF Al desactivar este modo se activa el modo de confirmacin automtic a.

DESHACER TRANSACCIONES
Existen dos formas que SQL Server deshaga las transacciones. La primera es que el motor de base de datos deshaga automticamente la transaccin y la segunda manera es que el usuario lo haga de forma explcita mediante la instruccin ROLLBACK. En realidad si usted defini explcitamente la transaccin mediante una instruccin BEGIN TRANSACTION sera lgico que definiera su finalizacin por medio de la instruccin COMMIT TRANSACTION, en caso que ella finalizara correctamente o que definiera la instruccin ROLLBACK TRANSACTION, considerando usted en qu momento del cdigo se debera deshacer la transaccin en cuestin en caso de error y volver todo para atrs. Deshacer transacciones automticamente Cuando alguna transaccin falla SQL Server automticamente deshace dicha transaccin, esto puede suceder por alguna falla del hardware, falla en la conexin, falla de la aplicacin o falla del sistema entre tantas otras posibilidades. Deshacer la transaccin implica que anula todas las modificaciones realizadas por ella y luego libera todos los recursos que dicha transaccin estaba utilizando. Ahora bien, si una instruccin provoca un fallo o error en tiempo de ejecucin, SQL Server solo deshace de forma automtica los efectos provocados nicamente por dicha instruccin. Para lograr que el motor de base de datos deshaga toda la transaccin a partir de la instruccin que provoc el error en tiempo de ejecucin se utiliza la instruccin XACT_ABORT. Si a dicha instruccin se le coloca el parmetro ON esto provocar que el motor de base de datos deshaga toda la transaccin a partir de la instruccin que provoc el error en tiempo de ejecucin. SET XACT_ABORT ON Por defecto el motor de base de datos posee XACT_0R'I' en OPI-, por tal motivo el motor de base de datos solo deshace la instruccin en cuestin. SET XACT_ABORT OFF Deshacer transacciones de manera explcita

Si por algn motivo usted desea deshacer una transaccin de forma manual debe utilizar la instruccin ROLLBACK TRANSACTION. Dicha instruccin termina la transaccin y anula todo los cambios realizados por ella. A partir de esta instruccin, el resto de las instrucciones que componen la transaccin o mejor dicho la transaccin, ser ignorada. Cuando esta instruccin ocurre dentro de un STORED PROCEDURE (procedimiento almacenado, este tema lo veremos en captulos posteriores), dicho procedimiento Se anula y se contina con la instruccin siguiente su invocacin. En general la instruccin ROLLBACK estar incluida dentro de una instruccin IfThen...Else donde usted desear comprobar si algo se confirm antes de seguir adelante. Por ejemplo, en nuestro caso de la transferencia de dinero de la cuenta corriente a la caja de ahorros, no tendra sentido que usted actualizara los valores de la caja de ahorros si nunca pudo sustraer plata de la cuenta corriente, con lo cual podramos optimizar nuestro cdigo de la siguiente manera: BEGIN TRANSACTION /* Se puede abreviar por la palabra TRAN adems la transaccin puede. Poseer una etiqueta o nombre en tal caso habra que escribir el mismo en la instruccin begin tran plata_a_girar y en la instruccin commit tran plata_a_girar */

Como vemos en el ejemplo del cdigo anterior, luego del primer Update cargamos en la variable @Err_Op1 el cdigo de error que se encuentra en la variable interna @@Error (cada vez que se ejecuta una instruccin T-SQL se guarda dentro de esta variable si se ha provocado un error, contendr un valor distinto de 0 o ha funcionado todo correctamente, contendr un valor igual a 0). Luego se hace lo mismo con la segunda instruccin Update, se guarda el contenido de la variable interna @@Error dentro de la variable @Err_Op2. Antes de confirmar la transaccin Se verifica primero si no ha ocurrido ningn

error con la instruccin IF @Err_Op1 = 0 and @Err_Op2 = 0. En caso que esta condicin no sea cierta (O sea que algunos de los Update fall) se ejecutar el cdigo que se encuentra despus del ELSE (cada uno de los IF se fijan cual de los Update fall y ejecutan la instruccin ROLLBACK TRANSACTION). Puntos de almacenamiento Existe la posibilidad de crear o definir puntos de almacenamiento. Dichos puntos hacen que la transaccin se confirme hasta donde ellos estn definidos y en caso que se deshaga la transaccin o se la confirme, ser desde o mejor dicho a partir de dicho punto de almacenamiento. Para obtener ms informacin sobre este tema resulta siempre conveniente consultar la ayuda de T-SQL.

BLOQUEO EN EL USO DE TRANSACCIONES


Como explicamos anteriormente, al utilizar transacciones el motor de base de datos aplica la utilizacin de bloqueo. Esto es para evitar que diferentes usuarios accedan (consulten y modifiquen) aquellos datos en el mismo instante de tiempo. Cuando un usuario accede a un conjunto de datos se genera un bloqueo sobre los datos en cuestin que impiden a otros usuarios acceder a ellos. Se pueden realizar bloqueos de filas, de clave, de pginas, de extensin (ocho pginas simultneas), de tablas y de toda la base de datos. Un punto a saber es que dos usuarios diferentes no pueden tener bloqueados los mismos datos, o sea dos usuarios diferentes no pueden bloquear la misma fila O la misma tabla en el mismo instante de tiempo. Cabe aclarar que el bloqueo de fila es el menor nivel de bloqueo que se puede realizar, mientras que el bloqueo de base de datos es el de mayor nivel. Cuanto ms alto es el nivel de bloqueo menor es la cantidad de concurrencia de usuarios que puede existir sobre los elementos y como contrapartida, cuando el nivel de bloqueo es menor, mayor podr ser la concurrencia. Existen seis modos de bloqueo que pasamos a describir. Dichos modos definen cmo ser la concurrencia entre diferentes transacciones. Vale aclarar que la concurrencia es sobre las transacciones y no sobre los usuarios. Compartido Dicho modo se utiliza para operaciones de lectura como la instruccin SELECT. Este modo permite que transacciones concurrentes accedan al mismo recurso Simultneamente. Pero ninguna de ellas puede modificar los datos. Actualizacin Solo una transaccin puede obtener dicho tipo de bloqueo en un momento dado para realizar una actualizacin. Dicho bloqueo se transforma automticamente en un bloqueo exclusivo, si no se transforma en un bloqueo compartido. Exclusivo Este modo se utiliza cuando se van a realizar operaciones de actualizacin, insercin o eliminacin. Al establecerse este modo de bloqueo por medio de alguna transaccin, ninguna otra (transaccin) puede acceder a los datos bloqueados por la primera. De intencin Dicho modo se utiliza para definir una jerarqua sobre los bloqueos. Si existe algn bloqueo de este tipo generado por una transaccin, otra transaccin no podr generar un bloqueo exclusivo sobre los datos bloqueados por la primera. Esquema Este modo Se utiliza cuando Se ejecuta una operacin que genera un cambio sobre el esquema de una tabla, por ejemplo cuando se agrega una columna a una tabla. Actualizacin masiva Este modo se utiliza cuando se copian masivamente datos a una tabla. En general no es aconsejable cambiar el tipo de bloqueo que define automticamente el motor de base de datos, ya que se corre el riesgo de administrarlos mal de forma manual y generar un abrazo mortal. Esto sucede cuando dos transacciones diferentes bloquean recursos diferentes que luego deben compartir.

UNIDAD 2 INTEGRIDAD INFORMTICA ENFOCADA A LAS BASES DE DATOS INTRODUCCIN


Las bases de datos y los sistemas de bases de datos son un componente esencial de la vida cotidiana en la sociedad

moderna. Actualmente, la mayora de nosotros nos enfrentamos a diversas actividades que implican cierta interaccin con una base de datos. Por ejemplo, ir al banco a depositar o retirar fondos, realizar una reserva en un hotel o una compaa area, acceder al catlogo computarizado de una biblioteca para buscar un libro, o comprar algo online (un juguete o un computador, por ejemplo), son actividades que implican que alguien o algn programa de computador acceda a una base de datos. Incluso la compra de productos en un supermercado, en muchos casos, provoca la actualizacin automtica de la base de datos que mantiene el stock de la tienda. Dada la frecuencia con las que se realizan las actividades antes mencionadas es que debe drsele mucha importancia a la integridad de las aplicaciones tecnolgicas. En este informe nos centraremos en la integridad de las bases de datos.

INTEGRIDAD EN LAS BASES DE DATOS


Definicin de una base de datos Una base de datos es una coleccin de datos relacionados. Con la palabra "datos" nos referimos a los hechos conocidos que se pueden grabar y que tienen un significado implcito. Por ejemplo, los nombres, nmeros de telfono y direcciones de un grupo de personas. Esta coleccin de datos relacionados con un significado implcito es una base de datos. Sin embargo, la definicin anterior es muy genrica. No obstante, el uso comn del trmino "Base de datos" es normalmente ms restringido. Una base de datos tiene las siguientes propiedades implcitas: Una base de datos representa algn aspecto del mundo real, lo que en ocasiones se denomina "minimundo" o "universo de discurso". Los cambios introducidos en el minimundo se reflejan en la base de datos. Una base de datos es una coleccin de datos lgicamente coherente con algn tipo de significado inherente. No es correcto denominar base de datos a un surtido aleatorio de datos. Una base de datos se disea, construye y rellena con datos para un propsito especfico. Dispone de un grupo pretendido de usuarios y algunas aplicaciones preconcebidas en las que esos usuarios estn interesados.

En otras palabras, una base de datos tiene algn origen del que se derivan los datos, algn grado de interaccin con eventos del mundo real y un pblico que est activamente interesado en su contenido. Al objeto de que una base de datos sea en todo momento precisa y fiable, debe ser un reflejo exacto del minimundo que representa; por consiguiente, en la base de datos deben reflejarse los cambios tan pronto como sea posible. Por ltimo cabe destacar que una base de datos puede ser de cualquier tamao y complejidad. Y adems esta puede mantenerse manualmente o de forma automtica. Definicin de DBMS Un DBMS (DataBase Management System) es una coleccin de programas que permite a los usuarios crear y mantener una base de datos. El DBMS es un sistema de software de propsito general que facilita los procesos de definicin, construccin, manipulacin y comparticin de bases de datos entre varios usuarios y aplicaciones. Definir una base de datos implica especificar los tipos de datos, estructuras y restricciones de los datos que se almacenarn en la base de datos. La definicin o informacin descriptiva de una base de datos tambin se almacena en esta ltima en forma de catlogo o diccionario de la base de datos; es lo que se conoce como metadatos. La construccin de la base de datos es el proceso consistente en almacenar los datos en algn medio de almacenamiento controlado por el DBMS. La manipulacin de una base de datos incluye funciones como la consulta de la base de datos para recuperar datos especficos, actualizar la base de datos para reflejar los cambios introducidos en el minimundo y generar informes a partir de los datos. Compartir una base de datos permite que varios usuarios y programas accedan a la base de datos de forma simultnea. Otras funciones importantes ofrecidas por el DBMS son la proteccin de la base de datos y su mantenimiento durante un largo perodo. La proteccin incluye la proteccin del Sistema contra el funcionamiento defectuoso del hardware o el software (cadas) y la proteccin de la seguridad contra el acceso no autorizado o malintencionado. Una gran base de datos tpica puede tener un ciclo de vida de muchos aos, por lo que el DBMS debe ser capaz de mantener el sistema de bases de datos permitiendo que este evolucione segn cambian los requisitos en el tiempo. Definicin de Integridad La integridad en una base de datos se refiere a la correccin y exactitud de la informacin contenida. Una base de datos determinada podra estar sujeta a cualquier cantidad de restricciones de integridad (en general) de una complejidad arbitraria. En la mayora de los sistemas actuales, la verificacin de la integridad se realiza mediante cdigos de procedimientos escritos por los usuarios.

Algunos ejemplos de restricciones de integridad seran: Los dueos de cuentas de ahorro no pueden solicitar un monto mayor de dinero del que hayan juntado hasta la fecha. Para que un cliente sea considerado especial, deber tener un mnimo de USD 1.000 en compras promedio al ao.

La Integridad es el trmino utilizado para decir que la informacin almacenada tiene calidad. El DBMS tiene que asegurar que los datos se almacenan de acuerdo a las polticas previamente determinadas por el DBA. En otras palabras, el DBMS debe principalmente, a este respecto, comprobar las restricciones de integridad, controlar la correcta ejecucin de las actualizaciones y recuperar la base de datos en caso de prdida. La Integridad conserva la seguridad en un sistema de bases de datos que permite el acceso a mltiples usuarios en tiempos paralelos. Un control de integridad o restriccin es aquel que nos permite definir con precisin el rango de valores vlidos para un elemento y/o las operaciones que sern consideraciones vlidas en la relacin de tales elementos. Reglas de Integridad Una vez definida la estructura de datos del modelo relacional (es decir, una vez que se determina el modelo conceptual) pasamos a estudiar las reglas de integridad que los datos almacenados en dicha estructura deben cumplir para garantizar que son correctos. Al definir cada atributo sobre un dominio se impone una restriccin sobre el conjunto de valores permitidos para cada atributo. A este tipo de restricciones se les denomina restricciones de dominio. Hay adems dos reglas de integridad muy importantes que son restricciones que se deben cumplir en todas las bases de datos relacionales y en todos sus estados o instancias (las reglas se deben cumplir todo el tiempo). Estas reglas son la de integridad de entidades y la de integridad referencial. Antes de definirlas es preciso conocer el concepto de nulo y dominio. Nulo: Es un indicador que le dice al usuario que el dato falta o no es aplicable. Por conveniencia, un dato que falta normalmente se dice que tiene valor Nulo, pero el valor de Nulo no es un valor de dato real. En vez de ello es una seal o un recordatorio de que el valor falta o es desconocido. Dominio: Posibles valores que puede tener un campo. Un dominio no es ms que un tipo de dato; posiblemente un tipo simple definido por el sistema o por el usuario. El Dominio de un atributo define los valores posibles que puede tomar este atributo. Adems de los Dominios "naturales", usados como tipos de datos, el administrador del sistema puede generar sus propios dominios definiendo el conjunto de valores permitidos. Esta caracterstica, usada en forma correcta, se convierte en mecanismo de control, restriccin y validacin de los datos a ingresar.

Reglas de Integridad - Dominio


Un Dominio de valores posibles puede estar asociado a cada atributo. Los lmites de Dominio son la forma ms elemental de restricciones de Integridad. Son fciles de probar en el sistema siempre que se introduce un nuevo dato en el sistema. Por ejemplo:

Una definicin bien adecuada de restricciones de dominio no slo nos permite probar valores insertados en la base de datos. Tambin nos permite probar consultas para asegurarnos de que las comparaciones que se hacen tienen sentido. Reglas de Integridad - Relacin Las reglas de Integridad de relacin son restricciones que se deben cumplir en todas las bases de datos relacionales y en todos sus estados o instancias, es decir, se deben cumplir todo el tiempo. Existen bsicamente dos reglas de Integridad asociadas con el modelo relacional: la Integridad de Entidad y la Integridad Referencial. Estas dos reglas son generales y tienen relacin con las llaves primarias y forneas. Integridad de Entidad Las restricciones de entidades aseguran la integridad de las entidades que son modeladas por el sistema. En el nivel ms simple, la existencia de una clave principal es una restriccin de entidad que impone la regla "cada entidad debe estar identificada de forma nica". En esta no est permitido que algn componente de la clave primaria acepte valores nulos. Las razones de esta regla son: Las tuplas en las relaciones base representan entidades en la realidad. Las entidades en la realidad son identificables por definicin. Sus contrapartes en la base de datos tambin deben ser identificables. Los valores de la clave primaria sirven como identificadores en la base de datos. Los valores de clave primaria no pueden ser nulos.

INTEGRIDAD REFERENCIAL
La regla de Integridad referencial define que la base de datos no debe contener valores de claves forneas sin concordancia. Esta regla se aplica a las claves forneas. Si en una relacin hay alguna clave fornea, entonces sus valores deben coincidir con los valores de la clave primaria a la que hace referencia, o bien, debe ser completamente nulo. Esta regla impide que, por ejemplo, en una base de datos acadmica, exista un profesor en un departamento inexistente, o un curso impartido por un profesor inexistente. Hemos de recordar que slo los productos puramente relacionales implementan realmente estas dos reglas generales de Integridad relacional. En otros, destinados al mercado domstico (un Microsoft Access por ejemplo), estas incongruencias son admitidas sin problemas. As que cuando se realiza una operacin ilegal, existen dos opciones: rechazar la operacin ilegal o bien aceptar la operacin y realizar operaciones adicionales compensatorias que conduzcan a volverla legal. Por lo tanto, para cada clave fornea en la base de datos habr que contestar a dos preguntas: 1. Regla de los nulos: tiene sentido que la clave fornea acepte nulos? 2. Regla de borrado: Qu ocurre si se intenta borrar la tupla referenciada por la clave fornea? Restringir: no se permite borrar la tupla referenciada. Propagar: se borra la tupla referenciada y se propaga el borrado a las tuplas que hacen referencia mediante la clave fornea. Anular: se borra la tupla referenciada y las tuplas que la referenciaban indicando un valor nulo a la clave fornea (slo si acepta nulos). La Integridad referencial tambin vigila que se cumplan las siguientes reglas: No se podr introducir un valor en la tabla relacionada si antes no ha sido introducida en la tabla principal. No se puede eliminar un registro de una tabla principal si existen registros coincidentes en la tabla relacionada. No se puede cambiar un valor de la clave primaria en la tabla principal si el registro tiene registros relacionados.

Mecanismos de Vistas para la implementacin de Integridad Las vistas son expresiones del lgebra relacional con un nombre determinado. Por ejemplo, veamos la tabla siguiente que contiene informacin sobre los vendedores de una ferretera.

Supongamos que el dueo del negocio quiere conocer a los mejores vendedores para premiarlos con un bono especial al final del ao. Para hacerlo, l considera un buen vendedor a aquel que iguale o supere los $100.000 en ventas. Utilizando una vista en SQL podramos decir: var BUEN_VENDEDOR view (V where venta >= 100000) { Clave, Nombre, Ciudad} Al ejecutar esta instruccin, la expresin del lgebra relacional no es evaluada, sino que es recordada por el sistema de tal forma que para el usuario es como si en realidad tuviera una tabla denominada BUEN_VENDEDOR con los registros y atributos que se muestran a continuacin: En otras palabras, una vista es una ventana a travs de la cual se puede consultar o cambiar informacin de la tabla a la que est asociada. Esto, claro est, en relacin con los privilegios que posea el usuario de la base de datos. Si el usuario solamente tiene privilegios de lectura en una entidad, en la vista tampoco podr agregar o modificar informacin; si el usuario no tiene acceso a determinadas tablas, tampoco podr crear una vista con informacin proveniente de las mismas. Las vistas tienen la misma estructura que una tabla: filas y columnas. La nica diferencia es que slo se almacena de ellas la definicin, no los datos. Los datos que se recuperan mediante una consulta en una vista se presentarn igual que los de una tabla. De hecho, si no se sabe que se est trabajando con una vista, nada hace suponer que es as. Al igual que sucede con una tabla, se pueden insertar, actualizar, borrar y seleccionar datos. Esto significa que una vista no contiene datos duplicados de una tabla de la base de datos. No tiene absolutamente ningn dato, pues como ya se mencionaba, no es una tabla real. Es decir, se percibe como una tabla virtual. Por qu utilizar vistas? Las vistas pueden proporcionar un nivel adicional de seguridad. Las vistas permiten ocultar la complejidad de los datos. Una base de datos se compone de muchas tablas. La informacin de dos o ms tablas puede recuperarse utilizando una combinacin de tablas, y estas combinaciones pueden resultar muy confusas. Creando una vista se hace visualmente todo ms simple. Las vistas ayudan a mantener unos nombres razonables para las consultas. Por ejemplo, en lugar de la instruccin:

Select Clave, Nombre, Ciudad from Vendedores where Venta > 100000 Se utiliza slo la frase: Buen_Vendedor * En las vistas remotas y en las vistas sin conexin puede crear reglas a nivel de campo y de registro para validar datos introducidos localmente antes de enviarlos al origen de datos remoto. Puesto que el objetivo de estas reglas es impedir que se enve al origen de datos cualquier dato que pueda ser rechazado por las reglas de Integridad del servidor, debe reproducir las reglas del origen de datos en las reglas que se crean para la vista remota. Por ejemplo, si la clave de un vendedor est formada por cuatro dgitos y as lo establecen las restricciones de Integridad de la tabla Vendedores, entonces en la vista, cuando un vendedor se d de alta, tambin se deber cumplir con esa restriccin. Existen funciones en los DBMS para crear reglas para las vistas, y es precisamente as como una vista puede implementarse para garantizar la Integridad de la base de datos; tambin, mediante las vistas, es posible determinar si existen datos referenciados que pudieran comprometer la Integridad relacional.

ACTIVIDADES A REALIZAR POR EL ESTUDIANTE EN LA CLASE Y FUERA DE LA CLASE PARA LA COMPRENSIN Y DESARROLLO DE LAS COMPETENCIAS PROFESIONALES.
Actividad 1. Se realizarn ejemplos prcticos donde se puedan realizar las transacciones y asegurar la integridad de los datos en caso de diversos fallos.

ACTIVIDADES A REALIZAR DE TAREA PARA CONSOLIDAR EL CONTENIDO DE LA UNIDAD, A PRESENTAR EN LAS CLASES SEGN INDIQUE EL DOCENTE.
Actividad 1. Se dejarn por equipos diversos ejercicios en los cuales debern implementar la integridad de los datos. Actividad 2. Se dejarn por equipos diversos ejercicios en los cuales debern implementar transacciones exitosas en bases de datos multiusuario.

BIBLIOGRAFA BSICA A CONSULTAR PARA ESTUDIAR EL TEMA

Fundamentos de Bases de Datos. Silberschatz, Korth, Sudasrhan. 4a Edicin. Mc Graw Hill. Introduccin a los sistemas de bases de datos. C. J. Date. 6. Edicin. Addison Wesley iberoamericana. Programacin MySQL. Paul Dubois. Anaya multimedia. Bases de datos y su aplicacin con SQL. Sergio Ezequiel Rozic. MP Ediciones. Argentina. Tutorial de SQL. http://www.desarrolloweb.com/manuales/9/ MySQL con Clase. Curso de bases de datos con MySQL. http://mysql.conclase.net/ Manual de referencia oficial de MySQL. http://dev.mysql.com/doc/refman/5.0/es/index.html

SITIOS WEB:

EVALUACIN DE LA PRIMERA ETAPA


Para la evaluacin de la primera etapa se tomar en cuenta la asistencia, las tareas, las actividades de clase y un examen parcial que contendr tanto conceptos vistos en las dos unidades como ejercicios de arreglos y registros, para tener derecho a esta evaluacin tendr que haber cumplido por lo menos el 85% de las asistencias. Despus de 10 minutos de comenzada la clase se tomar como retardo y por cada 3 retardos se tomar como una falta, el peso que se le dar a cada uno de los componentes de la calificacin es el siguiente: Asistencia: 20% Tareas: 30% Examen: 50% La asistencia que contar ser desde el inicio de clase hasta un da hbil antes de la evaluacin .

SEGUNDA ETAPA Total de clases para la etapa: ____ UNIDADES DEL PROGRAMA QUE COMPRENDE: UNIDAD 3. CONCURRENCIA
3.1 Definicin 3.2 Problemas que se representan (actualizacin, prdida, etc.) 3.3 Seriabilidad 3.4 Mecanismo de seguros 3.5 Tipos de seguros 3.6 Protocolos 3.7 Dead lock 3.8 Tcnicas para prevenirlo 3.9 Tcnicas para deshacerlo 3.1 0 Etiquetas de tiempo

UNIDAD 4. SEGURIDAD
4.1 4.2 4.3 4.4 4.5 Concepto Identificacin y autenticacin Matriz de autorizacin Definicin de un esquema de seguridad Mecanismo de vistas para implantacin de seguridad 4.6 Base de datos estadsticos 4.7 Encriptacin de datos (codificacin)

OBJETIVOS A ALCANZAR
El alumno deber de implementar las tcnicas adecuadas para lograr que varios usuarios simultneos puedan obtener y/o modificar datos de una base de datos. El alumno conocer y deber implementar diferentes mecanismos de seguridad a los sistemas de bases de datos.

CONTENIDO A DESARROLLAR UNIDAD 3 Control de concurrencia en bases de datos relacionales


La mayora de las bases de datos se utilizan en entornos multi-usuario, en los que muchos clientes utilizando la misma aplicacin, o muchas aplicaciones cada una con uno o muchos clientes acceden a la misma base de datos. Cada una de esas aplicaciones enviar consultas al gestor, y normalmente cada hilo de ejecucin ser una transaccin diferente. En la mayora de los sistemas operativos actuales, las diferentes tareas o hilos se ejecutan de forma intercalada (incluso en el caso de mquinas con varios procesadores). Es decir, el sistema operativo decide por su cuenta cuando suspender una de las tareas y darle un poco de tiempo de ejecucin a otra. Si hay tareas simultneas o concurrentes sobre la misma base de datos, esta intercalacin puede resultar en que las lecturas y escrituras de las diferentes tareas o aplicaciones en el medio fsico se realicen en cualquier orden y secuencia. El acceso simultneo descrito puede dar como resultados informacin inconsistente o simplemente incorrecta, dependiendo de la mala o buena suerte que tengamos en la intercalacin de las lecturas y escrituras simultneas. Esta problemtica ha llevado a disear e implementar diferentes estrategias de control de concurrencia, que se encargan de evitar todos esos problemas, de modo que los desarrolladores de las aplicaciones pueden olvidarse de ellos al escribir su cdigo. Por ejemplo, si tenemos una estructura de tablas relacional que incluye las siguientes: PEDIDO(id, num-cliente, id-prod, cantidad, precio) PRODUCTO(id-prod, nombre, ..., stock) ... Pueden ocurrir diferentes problemas relacionados con la escritura simultnea con otras escrituras o lecturas,

incluyendo los siguientes: 1. Dos sentencias UPDATE que actualicen un mismo producto decrementando el stock del mismo en una unidad podran terminar en que una de ellas no se realizase. Si pensamos en un UPDATE como una secuencia de una lectura y una escritura, puede que ambos UPDATE hagan la lectura, por ejemplo, de un stock de 10, y despus las escrituras, decrementan ese dato, quedando el resultado en 9, mientras que lo correcto era un resultado de 8. 2. Supongamos una sentencia que primero comprueba que hay stock del producto P, y despus inserta un nuevo PEDIDO de diez unidades del producto P, que tiene un stock de 10, seguido de un UPDATE al stock por esa cantidad. Puede que otra insercin de un pedido se ejecute antes del UPDATE pero despus de la comprobacin, haciendo quedar el stock del producto en negativo. Existen varias tcnicas para controlar la concurrencia. Los bloqueos son los ms conocidos, aunque tambin se utiliza el control multi-versin y otras tcnicas como las marcas de tiempo. Los bloqueos como solucin al problema de la concurrencia Una forma de controlar la concurrencia es hacer que cada transaccin deba adquirir un derecho de acceso exclusivo a cada fragmento de datos que necesite modificar. A estos derechos se les denomina bloqueos. Bloqueos binarios La forma ms simple de bloquear es utilizar bloqueos binarios. En un bloqueo binario, cada transaccin debe solicitar el bloqueo de cada fragmento de datos A que vaya a utilizar antes de acceder a l (sea para leerlo o escribirlo), mediante una operacin bloquear(A). Deber liberar todos los bloqueos, mediante una operacin desbloquear(A) de modo que otras tareas puedan tomarlos. Este sistema de bloqueos tiene una implementacin muy simple, ya que solo requiere mantener una tabla que indica qu partes de los datos est bloqueada y por qu transaccin. Bloqueos de lectura/escritura El sistema de bloqueos binarios es simple pero demasiado restrictivo, ya que no permite que dos transacciones que van a leer el mismo fragmento de datos A lo hagan simultneamente, cuando en realidad, no puede haber problemas en varios lectores simultneos. Los bloqueos de lectura/escritura hacen ms dbil la restriccin permitiendo la siguiente compatibilidad de bloqueos.

En este caso, las operaciones que las transacciones deben realizar son tres: desbloquear(A) y bloquear_para_lectura(A) o bloquear_para_escritura(A). Ntese que esas llamadas se implementan de diferentes formas en diferentes gestores de bases de datos. Por ejemplo, en MySQL, tanto las solicitudes de bloqueos como las liberaciones se realizan mediante una sola llamada del API de los gestores de almacenamiento: store_lock(THD *thd, THR_LOCK_DATA **to, enum thr_lock_type lock_type)
Cada llamada a store_lock utiliza el manejador de una tabla thd concreta, y se indica la informacin de los datos a bloquear mediante la variable to, y el tipo de bloqueo mediante lock_type (el nmero de tipos definidos en MySQL es muy grande, ya que cubre todos los tipos de bloqueo que implementan los mltiples gestores de almacenamiento disponibles).

Serializacin de los bloqueos de lectura/escritura La serializacin de las operaciones de lectura y escritura consiste en ordenar esas operaciones para un conjunto de transacciones concurrentes de modo que los resultados de las operaciones sean correctos. Por ejemplo, si tenemos las siguientes transacciones X e Y, puede darse la siguiente situacin.

En esa situacin, la ejecucin de TX y TY hace que el dato original slo se haya incrementado una vez, cuando tena que haberse incrementado dos veces. Sin embargo, si hubisemos tenido suerte y todas las operaciones de TX se hubiesen realizado antes que las de TY, el resultado habra sido correcto. La conclusin es que el mero mecanismo de los bloqueos garantiza el acceso exclusivo a un dato o fragmento de informacin (evitando ciertos problemas), pero los problemas asociados a la intercalacin de las operaciones compuestas an pueden darse. Por lo tanto, hace falta alguna poltica o mecanismo de adquisicin y liberacin de bloqueos que permita hacer las operaciones serializables. El bloqueo en dos fases permite la serializacin El protocolo de bloqueo en dos fases fuerza a las transacciones cuando todas las operaciones de adquisicin de bloqueos (bloquear_lectura, bloquear_escritura) preceden a la primera operacin de desbloqueo (desbloquear). Dicho de otro modo, primero hay que adquirir todos los bloqueos, y despus se pueden liberar. Cuando se utiliza el protocolo de bloqueo en dos fases, puede demostrarse que la ejecucin ser serializable. Inconvenientes de los bloqueos y la serializacin Un problema del protocolo de bloqueo en dos fases es que puede llevar a situaciones de interbloqueo. La siguiente es una secuencia de operaciones que lleva al interbloqueo pero cumple perfectamente l protocolo de bloqueo en dos fases.

El inconveniente est en que puede que en la fase de adquisicin de bloqueos (fase de expansin), ms de una transaccin est interesada en los mismos dos fragmentos de datos, y la mala suerte nos lleve a una situacin en la que ambos quedan suspendidos, sin posibilidad de avanzar. Bloqueos ms grandes o ms pequeos? Un aspecto que an no se ha tratado en la discusin anterior es cun grandes son los elementos de datos que se deben bloquear. Una opcin posible es bloquear tablas enteras. Esto hace que la gestin de los bloqueos sea simple y tenga poca sobrecarga (solo hay que guardar el estado de bloqueo de las N tablas). No obstante, esto impide que dos transacciones que van a manipular filas diferentes de una tabla puedan progresar en paralelo. Una segunda opcin es utilizar bloqueos al nivel de las filas. En este caso, se hacen mayores las posibilidades de concurrencia, pero por otro lado, hay que mantener mucha ms informacin sobre los bloqueos (ya que el nmero de filas es en general muy grande respecto al nmero de tablas), y el servidor se sobrecarga ms con la gestin de los bloqueos. Hay gestores de bases de datos que permiten seleccionar el tipo de bloqueo que queremos para nuestra base de datos. Por ejemplo, en MySQL hay gestores de almacenamiento que ofrecen bloqueo a nivel de fila, y otros bloqueos a nivel de tabla. No obstante lo anterior, hay sentencias que siempre producirn un bloqueo de tabla, como por ejemplo una sentencia ALTER TABLE. Guardando instantneas de los datos: el Control Multi-versin El protocolo de bloqueo en dos fases limita considerablemente las posibilidades de concurrencia. Si observamos los problemas que causan los bloqueos no serializados, veremos que muchos de los problemas estn en que una transaccin lee un cierto dato y antes de escribir el resultado, otra transaccin lee el dato antiguo. En ese momento, cada transaccin trabaja con un estado de informacin inconsistente. Para paliar esos problemas, pero permitir la mayor concurrencia posible, se han diseado los protocolos de control multi-versin. La idea bsica es que cuando una transaccin modifica un dato, se crea una nueva versin del mismo, pero se guarda la anterior. De este modo, al acabar la ejecucin de las transacciones, se puede utilizar para cada una de ellas la versin de los datos que hace la ejecucin correcta, es decir, que hace la ejecucin serializable. Lgicamente, estas tcnicas requieren ms espacio de almacenamiento para guardar las diferentes versiones.

UNIDAD 4

SEGURIDAD EN BASES DE DATOS


INTRODUCCIN
En los ltimos aos el tema de la seguridad en los sistemas se ha tornado en un asunto de primera importancia dado el incremento de prestaciones de las mismas, as como la imparable ola de ataques o violaciones a las barreras de acceso a los sistemas implementados en aquellas. Los "incidentes de seguridad" reportados continan creciendo cada vez a un ritmo ms acelerado, a la par de la masificacin del Internet y de la complejidad del software desarrollado. Teniendo presente que no existe un sistema seguro pero que si se puede proteger es que existen mtodos para proteger los datos de un sistema as mismo recomendaciones para el uso de dichos sistemas. La mayora de las bases de datos contienen, propietario y/o informacin privada. Esto puede incluir informacin del cliente, sueldos de empleado, registros de pacientes, nmeros tarjetas de crdito. La clave para mantener esta informacin de forma segura es la confidencialidad y las empresas que no puedan garantizar la seguridad de esta informacin confidencial de riesgos de vergenza, sanciones econmicas, y a veces incluso de la misma empresa.

SEGURIDAD
Es la capacidad del Sistema para proteger Datos, Servicios y Recursos de usuarios no autorizados. El fin de la seguridad es garantizar la proteccin o estar libre de todo peligro y/o dao, y que en cierta manera es infalible. Confidencialidad: nos dice que los objetos de un sistema han de ser accedidos nicamente por elementos autorizados a ello, y que esos elementos autorizados no van a convertir esa informacin en disponible para otras entidades. Integridad: significa que los objetos slo pueden ser modificados por elementos autorizados, y de una manera controlada. Disponibilidad: indica que los objetos del sistema tienen que permanecer accesibles a elementos autorizados; es el contrario de la negacin de servicio.

De qu nos queremos proteger A continuacin se presenta una relacin de los elementos que potencialmente pueden amenazar a nuestro sistema. Personas o Pasivos: aquellos que husmean por el sistema pero no lo modifican/ destruyen. o Activos: aquellos que daan el objetivo atacado o lo modifican en su favor. Describiremos algunos de ataques que realizan las personas: o Personal o Ex-empleados o Curiosos o Hackers o Terroristas Amenazas Lgicas o Software incorrecto o Herramientas de seguridad o Puertas traseras o Canales cubiertos o Virus o Gusanos o Caballos de Troya

ENCRIPTACION
La mayor parte de bases de datos contienen la informacin sensible, propia, y/o privada. Esto puede incluir la informacin de cliente, salarios de empleado, registros pacientes, nmeros de la tarjeta de crdito - la lista contina y sobre. La llave al mantenimiento de esta informacin en una manera segura es la confidencialidad y las empresas que no pueden asegurar la seguridad(el valor) para la vergenza de riesgo confidencial de la informacin, penas financieras, y a veces an el negocio s mismo. Hara usted el negocio con un banco(una orilla) si usted descubriera que la cuenta de otros clientes information (incluyendo la informacin que puede ser usada hacer transferencias de cable) con frecuencia se filtraba y us por criminales?

Encriptacin de datos en transito La mayora de los ambientes de base de datos utilizan TCP/IP y el servidor de base de datos escucha algunos puertos y acepta las conexiones iniciadas por los clientes de la base de datos. Mientras que los puertos son configurables, la mayora de la gente utiliza los puertos por defecto del servidor que esta usando, por ejemplo: puerto 1433 para el servidor de Microsoft SQL, puerto 1521 para Oracle, puerto 4100 para Sybase, puerto 50000 para DB2, y puerto 3306 para MySQL. Los clientes de la base de datos se conectan con el servidor sobre estos puertos predefinidos para iniciar una comunicacin, dependiendo del tipo de la base de datos y la configuracin del servidor, redireccionando a otro puerto o terminando la comunicacin entera sobre el mismo puerto del servidor. En un de alto nivel, esto significa que con las herramientas derechas y el acceso correcto a la red, cualquiera puede golpear ligeramente en sus conversaciones de la base de datos y escuchar detrs de las puertas encendido el acceso de base de datos - capturando y robando ambas las declaraciones que usted publica tan bien como los datos volvi por el servidor de base de datos. Meterse en tu base de datos de comunicaciones es relativamente fcil, porque la base de datos de comunicaciones son en su mayora en texto en claro-o lo suficientemente cerca para borrar texto. Por lo tanto, mediante el uso de los servicios pblicos y en su mayora simples herramientas libres, que un hacker pueda escuchar y robar informacin. La manera de evitar que esto suceda-y el tema de esta seccin es para encriptar las comunicaciones entre la base de datos de clientes y servidores de bases de datos. Este tipo de cifrado es llamado cifrado de los datos en trnsito porque todos (o de las piezas), las comunicaciones entre el cliente y el servidor estn encriptadas. La encriptacin se produce en los extremos. Aunque an no he de definir qu criterios de valoracin son (y sern diferentes en los distintos sistemas de cifrado), una parte cifrar los datos se transmitan a travs de la red y el otro-el que descifrar los datos almacenados en las tablas y los datos utilizados en la aplicacin no est cifrada. Aunque el cifrado de los datos en trnsito se est convirtiendo en popular, no quiero dar la impresin errnea de que la mayora de las personas-no encriptan los datos en trnsito, y para muchos ambientes en que est perfectamente bien. Si usted cree que un potencial espa, es algo que no puede vivir con el, entonces usted debera cifrar los datos en trnsito. Si considera que esto es poco probable y le parece extrao que, sobre la posibilidad de que este no se produce cabezas rodarn, entonces tal vez no valga la pena el esfuerzo y la degradacin del rendimiento. Degradacin depende del mtodo de cifrado, as como la base de datos, sino como un ejemplo, las comunicaciones son generalmente MySQL 35% ms lento cuando se utilizan conexiones SSL. En cualquier caso, antes de examinar las diversas opciones para la encriptacin de las comunicaciones la base de datos, vamos a entender un poco ms sobre lo que sucede cuando se utiliza sin cifrar cadenas. Anatoma de la Vulnerabilidad: Sniffing De Datos Si un hacker va a espiar y robar datos, debe de suceder dos cosas: 1. El hacker debe ser capaz de colgarse fsicamente en las comunicaciones entre los clientes de la base de datos y el Servidor de bases de datos. 2. El hacker debe ser capaz de entender el flujo de comunicacin a un nivel que le permita la extraccin de los datos sensibles. De los dos, el conseguir la llave fsica es seguramente la tarea ms difcil, sobre todo en redes de conmutacin bien diseadas. Con el fin de aprovechar el flujo de comunicacin TCP/IP, un hacker debe ejecutar sus herramientas en una mquina que sea capaz de ver los paquetes transmitidos desde el cliente al servidor y viceversa. Una opcin es ejecutar estas herramientas en la mquina cliente, y otra es ejecutar las herramientas en el Servidor de Base de Datos en ambos casos las maquinas puede ver todo el flujo de la comunicacin. Implementar Opciones para Encriptacin de Datos en Trnsito. El cifrado es una tecnologa madura, y la obtencin de base de datos de las comunicaciones implica generalmente asegurar TCP / IP de sesiones. Como resultado de ello, puede elegir entre un buen nmero de opciones de ejecucin cuando se desea cifrar la base de datos sesiones. Estos van desde la base de datos especfica de los servicios de cifrado para el uso de los servicios bsicos prestados por el sistema operativo. En concreto, vers las siguientes opciones que ofrecen una muestra de la amplia gama de tcnicas: Caractersticas especficas de la Base de datos (ejemplo, Oracle Advanced Security). Mtodos de conexin de base (ejemplo, usar protocolo Secure Sockets Layer [SSL]). Garantizar los tneles (ejemplo, mediante el sistema Secure Shell [SSH] tneles). Basndose en el sistema operativo (ejemplo, el cifrado IPSec).

Uso de SSL para conexiones de base de datos segura Gracias a la web y comercio electrnico, SSL se ha convertido en el estndar de facto para garantizar la informacin sensible a travs de TCP / IP. Es, por tanto, no es de extraar que la mayora de entornos de base de datos de uso de SSL como una instalacin para la base de datos de cifrado de comunicaciones. Por ejemplo, si desea habilitar el SSL para Sybase ASE, es necesario cambiar las interfaces de entrada en su archivo. Tneles SSH SSH es otro estndar de factor en el mundo de cifrado y es usado en una amplia variedad de usos, incluyendo sesiones de Shell Seguras (como un reemplazo para el protocolo inseguro telnet), copia segura de archivos (SCP y SFTP-USADO en vez del FTP), y creacin de encriptados tneles. Estos tneles proporcionan una facilidad cifrada TCP/IP que puede ser usada (como su nombre implica) al tnel cualquier conversacin, incluyendo sesiones de base de datos. La cosa es limpia realmente que la base de datos es ajena a esta accin, y es completamente transparente para la base de datos de cliente y el servidor de base de datos. Desde una perspectiva de servidor de base de datos, los paquetes que se envan a la base de datos en red las bibliotecas son "normales" ya que son descifradas antes de que lleguen a la base de datos. En la red los datos se cifran mientras viaja a travs del tnel SSH, los cuales le ofrecen lo mejor de ambos mundos. Puede configurar tneles SSH para cifrar el trfico de la base de datos la capacidad de reenvo de puertos de llamado. En este esquema de configurar un perodo de sesiones encriptadas entre la mquina cliente y el servidor utilizando SSH. El puerto transmisin le da la opcin especificar un puerto local en la mquina cliente que ser el punto de entrada a un tnel SSH la conexin a este puerto local sern recogidos por el tnel SSH y entregados al servidor en el puerto designado.

Caso Prctico
Supongamos que desea un tnel de conexiones desde la maquina cliente Linux con 192.168.1.168 a un servidor con MySQL instalado con direccin IP 192.168.3.33 el cual escucha el puerto estndar 3306. En este caso podra usar el siguiente comando para configurar el tnel:

Este comando crea un tnel SSH enviando desde el puerto 10000 de la mquina cliente al puerto 3306 en el servidor de base de datos, como se muestra en la Figura 3.1.

Aqu es donde se produce la magia: la base de datos de cliente y el servidor de bases de datos son ajenos a la encriptacin de lugar, pero los datos en el cable ser cifrada por el tnel SSH. Algunos de los otros argumentos en la lnea de comandos para crear el tnel SSH como se indica anteriormente son los siguientes:

IPSec (Internet Protocol security) El uso de IPSec es otra opcin de infraestructura que protege la base de datos de las complejidades de cifrado a nivel de cable, este proporcionan las instalaciones de cifrado al nivel de Sistema Operativo y el cifrado es por lo tanto transparente a la Base de Datos. Conceptualmente, IPSec tambin crea una especie de tnel cifrado, pero esta vez esto se hace por el sistema operativo y se hace para toda la pila TCP/IP. IPSec es un estndar del sector definido por la Internet Engineering Task Force (IETF). Definido como un

conjunto de protocolos cuya funcin es asegurar las comunicaciones sobre el Protocolo de Internet (IP) Autenticando y/o Cifrando cada paquete IP en un flujo de datos. IPsec tambin incluye protocolos para el establecimiento de claves de cifrado. Los protocolos de IPsec actan en la capa de red, la capa 3 del modelo OSI., por tanto, una solucin de infraestructura que tiene algunas ventajas sobre SSL. La encriptacin es transparente para las capas superiores, incluida la base de datos de cliente y servidor. Su desventaja es que slo protege el trfico IP. Por ltimo, la directiva IPSec utilizando Administracin de equipos, se puede asignar la poltica adecuada, ya sea mediante el uso de uno de los incorporados en las polticas o por su propia definicin de la poltica; se apoyan muchas opciones aqu. El valor por defecto son las siguientes polticas: Slo responde el cliente: Este es el modo por defecto para los clientes, lo que significa que normalmente no son las comunicaciones encriptadas a menos que un servidor solicita una conexin segura, en cuyo caso, slo que la conexin est encriptada. Solicitud del servidor de seguridad: Este modo se usa para servidores de e implica que el servidor intentar iniciar una conexin segura con el cliente. Si el cliente no es capaz de alojar una conexin encriptada y, a continuacin, el servidor de recurrir a una conexin sin encriptar. Exigir que el servidor de seguridad: En este modo, el servidor no se caiga de nuevo a una conexin sin encriptar, y slo podr servir a clientes que pueden acomodar una conexin segura.

En ambos casos, el servidor de cifrado se realiza por la capa de IPSec, y tanto la base de datos y servidores de bases de datos de clientes enviar y recibir la informacin sin encriptar, as que no hay en la base de datos de configuracin de nivel.

ENCRIPTACION DE DATOS EN REPOSO


El otro uso de cifrado en entornos de base de datos es la encriptacin de los datos propiamente dichos (es decir, la encriptacin de los valores que estn almacenados en la base de datos de las tablas). Esta capa adicional de seguridad a menudo es usada para datos sensibles, que, como se considera, son sumamente confidenciales y tienen que ser ms protegidos que los medios de datos. La motivacin puede estar en los reglamentos, directrices, la privacidad, o simplemente buenas prcticas. Anatoma de la Vulnerabilidad: Buscar lo Interesante y Robo de Archivos Hay dos escenarios al que el cifrado de datos en reposo se orienta. Estos no son vulnerabilidades en el sentido verdadero de la palabra, porque el cifrado de datos en reposo es ms sobre una capa adicional de seguridad. El primer problema que la encriptacin de datos en reposo abordar es el de los usuarios de la base de datos quienes buscan datos que no deberan de observar, aunque esto no tenga sentido de revocar estos permisos a los usuarios. El otro problema en la encriptacin de datos en reposo implica el robo de archivos o del disco duro. Incluso si el control de acceso a su base de datos es perfecta, un hacker todava puede robar o copiar los archivos (sobre el sistema de archivos) ser usado por la base de datos o an el disco entero. Opciones de Aplicacin: Implementar el Cifrado En ambos escenarios mencionados, el cifrado de datos proporciona una capa de proteccin til. El objetivo de encriptar es el reemplazar de texto plano con el texto de cifrado que incluso as sea visto por personas no autorizadas esto no presenta ninguna violacin de seguridad. En ambos escenarios de vulnerabilidad, los datos cifrados que se almacenan dentro de la base de datos no puede utilizarse si se cae en las manos equivocadas. La principal decisin que tendr que hacer a la hora de elegir una opcin de ejecucin es decidir en qu capa se realizara el cifrado. Las opciones que se ver en las siguientes secciones se diferencian principalmente en trminos de quin est haciendo el cifrado/descifrado, en todos los casos, los datos en la base de datos se mantiene como texto cifrado. Cifrado en la Capa de Aplicacin Un enfoque sobre que consiste la encriptacin de la capa de aplicacin. Este enfoque pasa cuando los desarrolladores de aplicaciones utilizan algunas bibliotecas criptogrficas para cifrar y descifrar los datos y el acceso a la base de datos es realizado usando texto cifrado.

Este acercamiento es completamente transparente a la base de datos; no hay nada que hacer en el nivel de base de datos aparte de asegurarse que las longitudes de los atributos sean bastante largas como para sostener el texto de cifrado (menudo ms largo que el texto plano equivalente). Sin embargo, este enfoque tiene algunos inconvenientes importantes que a menudo hacen poco prctico para las necesidades especficas de cifrado. Cifrado en el Sistema de Archivos El segundo acercamiento toma el otro extremo, el paso de la carga al sistema operativo. Este acercamiento usa las instalaciones que estn por lo general disponibles en sistemas de archivos avanzados para almacenar datos sobre el disco dentro de un formato cifrado. Cifrado de Bases de Datos Finalmente, conseguimos a la opcin ms prctica, la de utilizar la base de datos para cifrar y descifrar datos. Esta categora de mtodos el poner en prctica incluye tanto rutinas empotradas en la Base de Datos o el empleo de extensiones de tercero a bases de datos populares. En ambos casos, los elementos importantes de un esquema de cifrado de datos bueno son el acceso a funciones criptogrficas, administrar llaves seguras, y el manejo transparente de datos cifrados. Las funciones criptogrficas son complejas y seguramente no desea escribir su propia versin de estos algoritmos. Realice buenas prcticas de implementacin dentro de la Base de Datos o compre Aplicaciones complementarias. Ahora veremos la gestin de llaves. La buena gestin de llaves es crucial en una estrategia de encriptacin, y se debe entender cules son las opciones: Siempre se define una columna para el cifrado requerido, donde se selecciona una llave simtrica. Una sola llave simtrica puede ser usada para cifrar los datos que tienen la misma clasificacin y son usados dentro de un mismo contexto, o una llave diferente puede ser usada para cada tabla o la columna. Los datos que no guardan relacin deben utilizar llave simtrica distinta, para asegurar que un usuario que obtiene la llave simtrica solo acceda a una parte de la informacin y no pueden acceder a todas las partes. Conceder a cada usuario una llave pblica y una llave privada. La llave privada de cada usuario tpicamente es protegida por la contrasea del usuario, que es usada como palabra secreta. Cuando se concede a un usuario el permiso de tener acceso a datos cifrados, la llave simtrica que es usada para cifrar/descifrar aquel elemento de datos es cifrado con la llave pblica de aquel usuario y colocado en un lugar pblico. Slo aquellos usuarios que se les ha concedido el permiso de tener acceso a los datos sensibles, podrn conseguir el acceso a la llave simtrica con el empleo de su llave privada (que es accesible porque el usuario tiene la palabra secreta correcto).

La estrategia descrita aqu (y tambin se muestra en la Figura 10.7) no es trivial y no se admite en algunos entornos de base de datos. Debido a que este puede implicar la integracin con otro producto, muchas personas tienden a omitir el desarrollo de una buena estrategia de gestin de claves y simplemente almacenar las claves de los datos en una tabla y el uso que el acceso de la mesa de control para determinar quin tiene acceso a las llaves. Esta estrategia puede ser dbil, y lo hara mejor, adems, a proteger las claves de los usuarios de claves pblica / privada y proteger la clave privada con la contrasea de usuario. Qu Consideraciones al Seleccionar una Opcin a Ejecutar El cifrado de datos en reposo es una tcnica importante que se debe considerar cuando se desea una capa adicional de defensa contra el acceso de datos no autorizado, la cual tiene un precio. Antes de que usted implante esta tcnica en su entorno, se debera tomar conciencia de las implicaciones que se afrontaran en una base diaria. Si no se logra entender y se aplica guas, se podra terminar con problemas serios que sern difciles de resolverse. La siguiente es una lista que usted debe revisar para asegurarse de que no sorprendido e indefenso: Gestin de Llaves, se debe entender que las llaves son usadas para cifrar/descifrar los datos y donde ellos residen. Estn en la base de datos o fuera de la base de datos? - Qu protege las llaves? Se utilizan contraseas para proteger las llaves, y de ser as esto significa que cualquier persona que tenga acceso a una cuenta de usuario automticamente tiene acceso a datos cifrados? - Se usan certificados para obtener las llaves, y de ser as dnde estn almacenados? Recuerde que el cifrado de toda la estrategia se basa en estas llaves, si no est claro para usted que las llaves son seguras, entonces usted est aadiendo complejidad a los gastos generales y su entorno, sin aadir ningn valor claro a esta. Recuperacin, un tema relacionado a la gestin de claves tiene que ver con la recuperacin. Puedes

perder tus llaves? - Qu sucede si lo hace? - Nunca va a poder acceder a sus datos? Una vez ms, esta es una de las cuestiones clave en la gestin, sino que debe preguntar a s mismo (o el instrumento que decida el vendedor) antes de empezar. Integracin con Sistemas de Infraestructura de Llave Pblica (PKI), este es otro tema que es sinnimo de la gestin de llaves. Debido a la naturaleza comn de estos temas, una categora de herramientas llamado ICP ha urgido, y estas herramientas ofrecen una gama completa de soluciones a los problemas de gestin de llaves. Por lo tanto, sera prudente examinar esas capacidades, sobre todo si un proveedor de eleccin para ICP ya se utiliza dentro de su empresa. BackUp y Recuperacin, Cmo afecta la Encriptacin a los BackUp? De otra manera, un ladrn simplemente podra ponerse los archivos de reserva con los datos no descifrados ms bien que toman los datos de la base de datos. El segundo (y ms complejo) la publicacin tiene que hacer otra vez con la direccin clave. Qu pasa si las llaves de vez en cuando son cambiadas? Cmo salvar las llaves que fueron usadas en los BackUp anteriores, donde guardadas estas llaves, como se les asegura, y como son asociadas los BackUp con las llaves sin las cuales estas sean intiles? Clustering, Cmo afecta la encriptacin a las opciones de Clustering? Son compartidas las llaves por todos los Grupos del Sistema, y apoya su estrategia de gestin de llave su estrategia Clustering? Rendimiento. Cmo afecta la encriptacin al rendimiento de la Base de Datos? No hay ninguna manera en el hecho de que el cifrado y descifrado se afectar a su base de datos de rendimiento, y lo mucho que depende de cunto encriptar, algoritmos de cifrado que se utiliza, y la solucin de cifrado que usted seleccione. Como un ejemplo, en un punto de referencia realizado por el Grupo de Tecnologas de Servidor de base de datos sobre la seguridad social 1,6 millones de nmeros almacenados en Oracle 9.2.0.1, SELECCIONE consultas contra todos los registros usando la encriptacin DES fueron ms de 200 veces ms lento que en la versin sin cifrar, mientras que en contra de la ACTUALIZACIONES registros fueron cuatro veces ms lenta utilizando DES y ocho veces lento utilizando triple DES. Por lo tanto, usted debe recordar algunos lineamientos importantes: o o Encriptar selectivamente. Elija lo que es importante y que slo cifrar datos. Nunca cifrar columnas que se utilizan como llaves o ndices. Esto obligar a descifrar de tablas con funciones (de los grandes cuadros es equivalentes a cometer suicidio profesional). Como ejemplo, se puede cifrar el nmero de tarjeta de crdito del cliente dentro de un cuadro. Este cuadro suele tener un customer_id columna, que es la clave para la mesa, y usted probablemente se basa en la seleccin de ID en lugar del nmero de tarjeta de crdito. En este ejemplo, no codificar el ID de cliente. Dse el tiempo suficiente al iniciar este proyecto para hacer un anlisis comparativo, antes del inicio de la aplicacin y ajuste en las etapas avanzadas de la aplicacin.

Espacio en disco. Datos cifrados siempre ocupa ms espacio que los datos sin encriptar, porque por encima de los metadatos, el hecho de que los datos que a menudo ocupa ms bytes, los datos numricos y porque a menudo se convierte en una forma compacta menos antes de ser encriptados. Para estar seguro que usted debe asumir que el 50% ms de espacio que se necesita para los datos cifrados. Pista de auditora. Hay un visible e independiente de auditora sobre el uso de claves y contraseas?

Como puede ver, un buen nmero de cuestiones que se han alineado con su estrategia de cifrado antes de empezar a cifrar sus datos. Hasta hace relativamente poco, el apoyo para el cifrado de datos en el resto-dentro de la base de datos de productos fue parcial y no aborda todas estas cuestiones de forma nativa. Debido a la complejidad de este tema y las complejas cuestiones listedearlier, algunos terceros proveedores ofrecen una "solucin completa", que aborda todas estas cuestiones dentro de su producto. En el momento de escribir este libro, SQL 2005 es la ms cercana al abordar plenamente el cifrado de datos en el descanso y proporciona una solucin integrada que aborda todas estas cuestiones. Si su proveedor de la solucin de base de datos parece demasiado parcial para usted, quizs merezca la pena su tiempo para examinar esos productos de terceros para ahorrarle la molestia (y posiblemente de la vergenza), que podra convertirse en una parte de la aplicacin de cifrado de sus datos.

CONCLUSIONES
La criptografa da un nivel de seguridad necesario e importante que debe implantarse en un sistema de base de datos. Al encriptar la base de datos surge una degradacin y esto depende del mtodo de cifrado a utilizar. Dentro de un sistema es recomendable los dos tipos de encriptacin en trnsito y en la base de datos. De los dos tipos de encriptacin la ms vulnerable es la encriptacin en trnsito. El ataque spoffing es difcil de evitar por lo cual tiene a mantenerse una buena encriptacin de datos en trnsito.

DESARROLLO DEL CONTENIDO A) Listado de los conceptos bsicos, enunciados de leyes, teoras. B) Descripcin de los procedimientos. C) Explicaciones, esquemas, cuadros, grficos que establezcan ideas esenciales y relaciones. ACTIVIDADES A REALIZAR POR EL ESTUDIANTE EN LA CLASE Y FUERA DE LA CLASE PARA LA COMPRENSIN Y DESARROLLO DE LAS COMPETENCIAS PROFESIONALES.
Actividad 1. Durante la clase se elaborarn casos prcticos donde se pondrn a prueba los conceptos de concurrencia. Actividad 2. Durante la clase se realizarn ejemplos prcticos donde se analizarn los diversos tipos de seguridad que se le puede aplicar a las bases de datos.

ACTIVIDADES A REALIZAR DE TAREA PARA CONSOLIDAR EL CONTENIDO DE LA UNIDAD, A PRESENTAR EN LAS CLASES SEGN INDIQUE EL DOCENTE.
Actividad 1.

BIBLIOGRAFA BSICA A CONSULTAR PARA ESTUDIAR EL TEMA


Fundamentos de Bases de Datos. Silberschatz, Korth, Sudasrhan. 4a Edicin. Mc Graw Hill. Introduccin a los sistemas de bases de datos. C. J. Date. 6. Edicin. Addison Wesley iberoamericana. Programacin MySQL. Paul Dubois. Anaya multimedia. Bases de datos y su aplicacin con SQL. Sergio Ezequiel Rozic. MP Ediciones. Argentina.

SITIOS WEB.

Control de concurrencia en bases de datos relacionales. http://cnx.org/content/m18939/latest/ Seguridad en Bases de datos. http://www.scribd.com/doc/14870070/Seguridad-en-Base-de-Datos

EVALUACIN DE LA SEGUNDA ETAPA


Para la evaluacin de la primera etapa se tomar en cuenta la asistencia, las tareas, las actividades de clase y un examen parcial que contendr tanto conceptos vistos en las dos unidades como ejercicios de arreglos y registros, para tener derecho a esta evaluacin tendr que haber cumplido por lo menos el 85% de las asistencias. Despus de 10 minutos de comenzada la clase se tomar como retardo y por cada 3 retardos se tomar como una falta, el peso que se le dar a cada uno de los componentes de la calificacin es el siguiente: Asistencia: 20% Tareas: 30% Examen: 50% La asistencia que contar ser desde el inicio de clase hasta un da hbil antes de la evaluacin.

TERCERA ETAPA Total de clases para la etapa: ____ UNIDADES DEL PROGRAMA QUE COMPRENDE: UNIDAD 5. ELABORACIN DE PROYECTO DE CURSO. OBJETIVOS A ALCANZAR
En sta ltima parte del curso el alumno pondr en prctica los conceptos aprendidos desarrollando una aplicacin que involucre el manejo de bases de datos.

CONTENIDO A DESARROLLAR
El proyecto debe incluir los siguientes elementos: Debe de ser capaz de implementar mecanismos de recuperacin de informacin en caso de fallas de energa elctrica o del medio. Debe tener la capacidad de asegurar la integridad de los datos Debe resolver favorablemente las situaciones de concurrencia Debe implementar mecanismos de seguridad ya sea en el medio o en la base de datos en s

Podrn utilizarse cualquiera de stos gestores de bases de datos: MySQL PostgreSQL

DESARROLLO DEL CONTENIDO D) Listado de los conceptos bsicos, enunciados de leyes, teoras. E) Descripcin de los procedimientos. F) Explicaciones, esquemas, cuadros, grficos que establezcan ideas esenciales y relaciones. ACTIVIDADES A REALIZAR POR EL ESTUDIANTE EN LA CLASE Y FUERA DE LA CLASE PARA LA COMPRENSIN Y DESARROLLO DE LAS COMPETENCIAS PROFESIONALES.
Actividad 1. Durante sta ltima parte del curso se elaborar un proyecto en comn que dar pauta a que desarrollen su proyecto propio.

ACTIVIDADES A REALIZAR DE TAREA PARA CONSOLIDAR EL CONTENIDO DE LA UNIDAD, A PRESENTAR EN LAS CLASES SEGN INDIQUE EL DOCENTE.
Actividad 1. Durante esta ltima parte los alumnos debern en equipos de mximo 2 personas elaborar un proyecto de bases de datos que involucre los conceptos vistos durante el curso.

BIBLIOGRAFA BSICA A CONSULTAR PARA ESTUDIAR EL TEMA


Fundamentos de Bases de Datos. Silberschatz, Korth, Sudasrhan. 4a Edicin. Mc Graw Hill. Introduccin a los sistemas de bases de datos. C. J. Date. 6. Edicin. Addison Wesley iberoamericana. Programacin MySQL. Paul Dubois. Anaya multimedia. Bases de datos y su aplicacin con SQL. Sergio Ezequiel Rozic. MP Ediciones. Argentina.

EVALUACIN DE LA TERCERA ETAPA


Para la evaluacin de la primera etapa se tomar en cuenta la asistencia, las tareas, las actividades de clase y un examen parcial que contendr tanto conceptos vistos en las dos unidades como ejercicios de arreglos y registros, para tener derecho a esta evaluacin tendr que haber cumplido por lo menos el 85% de las asistencias. Despus de 10 minutos de comenzada la clase se tomar como retardo y por cada 3 retardos se tomar como una falta, el peso que se le dar a cada uno de los componentes de la calificacin es el siguiente: Asistencia: 20% Tareas: 30% Examen: 50%

La asistencia que contar ser desde el inicio de clase hasta un da hbil antes de la evaluacin.

EVALUACION GENERAL DE LA MATERIA


Exmenes parciales: 40% Proyecto final: 60% Para la evaluacin general los alumnos debern realizar su proyecto final con los trminos especificados en la tercera etapa de ste curso.

S-ar putea să vă placă și