31
Captulo 1
E n este captulo aprender: P o r qu es i m p o r t a n t e u n buen d i s e o de la base de datos. Ventajas y desventajas de distintos tipos de contenedores de i n f o r m a c i n que pueden actuar c o m o bases de datos. C m o pueden beneficiarse las bases de datos de esas ventajas y evitar esos inconvenientes. C m o ayuda u n buen d i s e o a conseguir los objetivos de la base de datos. Q u es C R U D y A C I D y p o r q u son relevantes para el d i s e o de las bases de datos.
Direccin de
proyectos
U n amigo m o que es ingeniero estaba trabajando en el p r o y e c t o realmente grande de u n satlite. D e s p u s de u n t i e m p o , todos los ingenieros se dieron cuenta de que el p r o y e c t o sencillamente n o era factible dado el estado actual de la t e c n o l o g a y del d i s e o . A l final el director del p r o y e c t o t u v o que a d m i t i r este extremo a sus superiores y fue despedido. El nuevo d i r e c t o r del p r o y e c t o lo m a n t u v o durante u n t i e m p o y d e s p u s t a m b i n tuvo que reconocer a sus superiores que el p r o y e c t o no era factible. T a m b i n fue despedido. Este proceso c o n t i n u durante u n t i e m p o con un nuevo d i r e c t o r d e s p u s de o t r o , que se daba cuenta de l o desesperado del d i s e o y era despedido hasta que al final la direccin t u v o que a d m i t i r que el p r o y e c t o n o iba a funcionar y t o d o se v i n o abajo. P o d r a n haberse ahorrado t i e m p o , d i n e r o y varias carreras profesionales si hubieran dedicado m s t i e m p o p o r adelantado al d i s e o y a solucionar los problemas o haberse dado cuenta entonces de que el p r o y e c t o no iba a funcionar y descartarlo desde el principio.
Imagine p o r ejemplo que ha c o n s t r u i d o u n sistema de seguimiento de pedidos que puede recuperar r p i d a m e n t e la i n f o r m a c i n sobre los pedidos anteriores de u n cliente. Lamentablemente cada vez que pida al programa que recupere los registros determinados de u n cliente devuelve resultados ligeramente distintos. A u n q u e el programa puede encontrar los datos r p i d a m e n t e , los resultados n o son l o suficientemente fiables para ser utilizados. O imagine que construye u n programa asombroso que puede seguir la pista de las miles de tareas que f o r m a n u n n i c o trabajo complejo c o m o la c o n s t r u c c i n de u n crucero o u n avin de pasajeros. Puede seguir el estado de cada parte del proceso, determinar c u n d o es necesario pedir nuevas piezas para ellas para que estn listas en futuras fases de la c o n s t r u c c i n e incluso determinar el valor de las compras presentes o futuras de f o r m a que pueda decidir si es m e j o r comprar las partes ahora o esperar hasta que sean necesarias. Lamentablemente el programa tarda horas en volver a calcular la compleja lista de tareas y los precios. A pesar de que los clculos son correctos, son tan lentos que los usuarios n o pueden realizar n i n g n cambio de f o r m a razonable. Cambiar el c o l o r de la tela de los asientos de u n avin o el suelo u t i l i z a d o en los pasillos del crucero p o d r a retrasar t o d o el p r o y e c t o . O suponga que ha c o n s t r u i d o una aplicacin de s u s c r i p c i n eficiente que p e r m i t e a sus clientes suscribirse al boletn trimestral y a los servicios de datos de su empresa. Le p e r m i t e encontrar y actualizar r p i d a m e n t e cualquier s u s c r i p c i n de u n cliente y siempre muestra los mismos valores para u n cliente en particular de f o r m a consistente. Lamentablemente, cuando cambia el precio de una de sus publicaciones se e n c o n t r a r con que n o todos los registros de los clientes muestran el precio actualizado. Las suscripciones de algunos clientes estn con el precio nuevo, algunas c o n el precio antiguo y algunos parecen tener u n precio que nunca ha existido. (Este ejemplo
33
Captulo 1
n o es tan improbable c o m o puede parecer. A l g u n o s sistemas p e r m i t e n ofrecer los precios de venta o los incentivos especiales a grupos de clientes o p e r m i t e n a los comerciales ofrecer precios especiales a determinados clientes. Este t i p o de sistema requiere u n d i s e o cuidadoso si quiere hacer cosas c o m o cambiar los precios e stn d ar sin mezclarlos con los precios personalizados.) U n mal d i s e o de la base de datos puede llevar a s t o s y otros escenarios molestos y potencialmente caros. U n buen d i s e o crea unos cimientos s l i d o s sobre los que puede construir el resto de la aplicacin. Los desarrolladores con experiencia saben que cuanto m s t i e m p o permanezca u n error en u n sistema m s difcil es encontrarlo y arreglarlo. P o r eso es extremadamente i m p o r t a n t e tener el d i s e o justo antes de que empiece a construir encima de l. E l d i s e o de las bases de datos n o es una e x c e p c i n . U n d i s e o defectuoso puede condenar al fracaso a u n p r o y e c t o antes de que haya empezado, de la misma f o r m a que puede hacerlo una arquitectura de software mal concebida, una mala i m p l e m e n t a c i n o una p r o g r a m a c i n deficiente.
Contenedores de informacin
Q u es una base de datos? s t a puede parecer una pregunta insignificante, pero si se la t o m a en serio el resultado puede ser bastante i l u m i n a d o r . A l estudiar las ventajas e inconvenientes de algunos objetos fsicos que cumplen la definicin de una base de datos puede conocer las caractersticas que le gustara que tuviera una base de datos informatizada.
N o t a : U n a base de datos es una herramienta que almacena datos y que le permite crear, leer, actualizar y eliminar los datos de alguna forma.
s t a es una definicin bastante amplia e incluye a muchos objetos fsicos que la m a y o r a de la gente n o concebira c o m o bases de datos modernas. P o r ejemplo, u n sobre lleno de tarjetas de visita, u n cuaderno, u n armario archivador lleno de registros de clientes y el cerebro, todos ellos se adaptan a esta definicin. Cada unas de estas bases de datos fsicas tiene ventajas y desventajas que pueden poner de relieve las caractersticas que le gustara que tuviera una base de datos informatizada. U n sobre lleno de tarjetas de visita es til siempre y cuando n o contenga muchas. Puede encontrar unos datos en concreto (por ejemplo, el n m e r o de t e l f o n o de una persona) examinando todas las tarjetas. La base de datos es fcil de expandir si metemos m s tarjetas en el sobre, p o r l o menos hasta cierto p u n t o . Si tiene m s de una docena de tarjetas, encontrar una en particular puede llevarle algn t i e m p o . Incluso puede volver a organizar las tarjetas u n poco para mejorar el r e n d i m i e n t o de las que utilice de fo r m a frecuente. Cada vez que utilice una tarjeta, p n g a l a en la parte delantera. C o n el paso del t i e m p o , las m s utilizadas estarn delante. U n cuaderno es p e q u e o , fcil de u t i l i z a r y de llevar, n o necesita electricidad y n o necesita inicializarse antes de ser utilizado. U n a base de datos en u n cuaderno t a m b i n se puede ampliar
Su cerebro p r o p o r c i o n a muchas formas distintas de poder acceder a la misma i n f o r m a c i n sobre .os restaurantes. Puede buscar la misma i n f o r m a c i n b a s n d o s e en distintas claves (ubicacin, calidad de los postres, precio, e t c t e r a ) . Para responder a estas preguntas con u n sobre de tarjetas de visita (o de cajas de cerillas de restaurantes), u n cuaderno o u n armario archivador sera necesario una b s q u e d a larga y agotadora. : r . embargo su cerebro tiene algunos inconvenientes, p o r l o menos c o m o base de datos. E l rr:r.cipal es que se olvida de cosas. Puede que recuerde u n n m e r o increble de cosas pero runas de ellas se vuelven menos fiables o desaparecen completamente con el t i e m p o . R e c u e r d a _: - nombres de todos sus maestros en la escuela? Y o n o . ( N i siquiera recuerdo los nombres de ~:> propios maestros, as que los suyos...)
v
! _ cerebro t a m b i n se cansa y cuando est cansado es menos preciso. A u n q u e su cerebro es bueno en determinadas tareas c o m o reconocer caras o elegir restaurantes, no es tan bueno en otras tareas c o m o p r o p o r c i o n a r una lista precisa de todos los elementos cue ha comprado u n cliente determinado durante el l t i m o a o . Esos elementos tienen una urmficacin menos emocional que, p o r ejemplo, el n o m b r e de su esposa, p o r l o que son m s curales de recordar.
35
Captulo 1
T o d o s esos contenedores de i n f o r m a c i n (tarjetas de visita, cuadernos, armarios archivadores y el cerebro) pueden contaminarse con i n f o r m a c i n e n g a o s a , incorrecta o contradictoria. Si escribe distintas versiones de la misma i n f o r m a c i n en u n cuaderno, los datos no sern consistentes. M s adelante cuando intente buscar esos datos, puede encontrar p r i m e r o una de las dos versiones y puede que n o se d cuenta de que hay otra v e r s i n . (Su cerebro puede llenarse especialmente con i n f o r m a c i n inconsistente y contradictoria, en particular si escucha a los p o l t i c o s durante u n a o de elecciones.) La siguiente s e c c i n resume algunas de las ventajas e inconvenientes de estos contenedores de i n f o r m a c i n .
36
La ventaja final es u n poco m s abstracta que las otras, p o r l o que merece una explicacin i d i c i o n a l . U n a t r a n s a c c i n a t m i c a es una serie posiblemente compleja de acciones que se considera c o m o una nica o p e r a c i n p o r aquellos que n o estn directamente implicados en realizar la transaccin. E l ejemplo clsico es una transferencia de dinero de una cuenta bancaria a otra. Supongamos que A l i c e extiende a Bob u n cheque p o r 100 euros y es necesario transferir r. dinero entre sus cuentas. Se coge el l i b r o de cuentas, se restan 100 euros del registro de A l i c e , ;e aaden 100 euros al registro de Bob y d e s p u s se deja el cuaderno. A l g u i e n p o d r a ver el cuaderno antes de la t r a n s a c c i n (cuando A l i c e tena los 100 euros) o d e s p u s de la t r a n s a c c i n cuando Bob tiene los 100 euros) pero n o l o ver durante la t r a n s a c c i n en la que los 100 euros e han restado de A l i c e pero todava no se han entregado a B o b . A l m a t n de la oficina n o le est p e r m i t i d o coger el l i b r o cuando la o p e r a c i n est a medias. Es una t r a n s a c c i n de t o d o o nada. A d e m s de sus ventajas, los contenedores de i n f o r m a c i n c o m o los cuadernos y los armarios archivadores tienen algunos inconvenientes. Merece la pena estudiar estos inconvenientes de rorma que pueda evitarlos cuando construya bases de datos informatizadas. La siguiente lista resume algunos de los inconvenientes que tienen esos contenedores de informacin: Todas estas bases de datos pueden contener datos i n c o m p l e t o s , incorrectos o contradictorios. A l g u n o s de ellos pueden perderse fcilmente o pueden ser robados. A l g u i e n p o d r a coger su cuaderno mientras e s t c o m i e n d o o leyendo en el a u t o b s . I n c l u s o p o d r a olvidar su cuaderno en el m o s t r a d o r de seguridad mientras sale disparado a coger u n vuelo. E n todas estas bases de datos la c o r r e c c i n de errores importantes en los datos pueden ser difcil. Por ejemplo, es fcil utilizar u n b o l g r a f o para cambiar la direccin de una persona en u n cuaderno de direcciones. Es m u c h o m s difcil actualizar cientos de direcciones si se ha creado una nueva ciudad en su rea. (Esto ha pasado recientemente cerca de donde vivo.) Esta circunstancia requiere una b s q u e d a tediosa en u n c o n j u n t o de tarjetas de visita, u n cuaderno o u n armario archivador. Pueden pasar a o s antes de que su cerebro haga el cambio por completo. Estas bases de datos son relativamente lentas a la hora de crear, recuperar, actualizar y eliminar datos. Su cerebro es m u c h o m s r p i d o que las otras en algunas tareas, pero n o es bueno para manipular mucha i n f o r m a c i n de una vez. P o r ejemplo, c o n q u rapidez puede listar sus 20 amigos m s n t i m o s en o r d e n alfabtico? A n cogiendo los amigos m s cercanos, a veces puede ser difcil. Su cerebro puede dar resultados distintos en m o m e n t o s distintos dependiendo de factores que no se pueden controlar c o m o el estado de n i m o , l o cansado que est e incluso si tiene hambre.
37
Captulo 1
Cada una de estas bases de datos est situada en u n n i c o sitio de forma que n o puede compartirse c o n facilidad. T a m p o c o se puede realizar fcilmente una copia de seguridad de cada una de ellas, p o r l o que si el original se pierde o se destruye, los datos se pierden.
La siguiente seccin tiene en cuenta c m o se trasladan estas ventajas e inconvenientes a las caractersticas que se pueden incorporar o evitar en una base de datos informatizada.
CRUD
C R U D representa las cuatro operaciones fundamentales que tiene que p r o p o r c i o n a r una base de datos: Crear (Crate), Leer (Read), Actualizar (Update) y E l i m i n a r (Delete). Si lee artculos y debates sobre bases de datos en la W e b , seguramente ver a la gente dando vueltas al t r m i n o C R U D . (Puede que l o utilicen s l o para que parezca que estn a la ltima. A h o r a que conoce el t r m i n o t a m b i n usted puede parecerlo.) Puede imaginarse algunos dispositivos que recogen datos especializados y que n o admitan n i n g u n o de estos m t o d o s . P o r ejemplo, la caja negra de los aviones registra la i n f o r m a c i n del vuelo y m s tarde la reproduce sin p e r m i t i r la m o d i f i c a c i n de esos datos. Sin embargo, en general si n o tiene C R U D n o es una base de datos. C R U D es m s una funcin de las bases de datos en general que una caracterstica del buen d i s e o de las bases de datos, pero el buen d i s e o de una base de datos p r o p o r c i o n a C R U D de f o r m a eficiente. P o r ejemplo, supongamos que d i s e a m o s una base de datos para cronometrar su liga de bajada en canoa y necesita las direcciones de los participantes incluyendo u n valor Estado que est presente en la tabla Estados. C u a n d o cree u n nuevo registro (la C (crear) en C R U D ) , la base de datos tiene que validar la nueva entrada del Estado. D e la misma forma,
38
Obtencin
E l t r m i n o retrieval ( o b t e n c i n ) es otra palabra para la R de C R U D en lugar de "read" (leer). La base de datos debera p e r m i t i r l e encontrar todos los datos. N o tiene sentido poner algo en la base de datos si n o hay f o r m a de recuperarlo d e s p u s . (Eso sera u n "agujero negro de datos" n o una base de datos.) La base de datos debera p e r m i t i r l e estructurar los datos para poder encontrar segmentos concretos de datos de una o m s formas especficas. Por ejemplo, debera poder encontrar el registro de facturas de u n cliente buscando p o r el n o m b r e o I D del cliente. r n teora la base de datos t a m b i n le p e r m i t e estructurar los datos para que sea relativamente rpido y fcil obtener los datos de una f o r m a determinada. Por ejemplo, supongamos que quiere ver d n d e viven sus clientes para poder decidir si establece u n servicio de entrega en una nueva ciudad. Para obtener esta i n f o r m a c i n sera til poder buscar clientes p o r su direccin. E n teora p o d r a o p t i m i z a r la estructura de la base de datos para poder Duscar r p i d a m e n t e los clientes p o r sus direcciones. E n contraste, seguramente n o necesitar buscar los clientes p o r su segundo n o m b r e . (Imagine u n cliente l l a m n d o l e y d i c i n d o l e que busque su registro porque n o recuerda si ha pagado la factura _el l t i m o mes. Y que n o recuerde su n m e r o de cuenta n i su apellido, s l o su segundo n o m b r e . ) e s t a r a bien si la b s q u e d a c o m n p o r direccin fuera m s rpida que una rara b s q u e d a p o r segundo n o m b r e . Poder encontrar toda la i n f o r m a c i n de la base de datos de f o r m a rpida y fiable es una parte .mportante del d i s e o de la base de datos. E n c o n t r a r los datos que necesitamos en una base de datos mal d i s e a d a puede llevarle horas o das en lugar de unos segundos.
Consistencia
O t r o aspecto relacionado c o n la R (leer) de C R U D es la consistencia. La base de datos tendra :ue tener resultados consistentes. Si realiza la misma b s q u e d a dos veces seguidas, tendra que obtener los mismos resultados. O t r o usuario que realice la misma b s q u e d a t a m b i n tendra que : crener los mismos resultados.
39
Captulo 1
P o r supuesto c o n esto asumimos que los datos subyacentes n o han cambiado mientras tanto. N o puede esperar que su consulta sobre el p a t r i m o n i o devuelva los mismos resultados todos los das cuando los precios de las acciones fluctan. U n p r o d u c t o de base de datos bien construido puede asegurar que exactamente la misma consulta obtenga el m i s m o resultado, pero el d i s e o t a m b i n juega u n papel i m p o r t a n t e . Si la base de datos e s t m a l diseada puede almacenar datos contradictorios en distintas partes de la base de datos. P o r ejemplo, p o d r a almacenar una i n f o r m a c i n de contacto en el pedido de u n cliente y una i n f o r m a c i n distinta en el registro principal del cliente. M s tarde, si necesita contactar c o n el cliente c o n una pregunta sobre el pedido, cul de las dos informaciones de contacto utilizara?
Validez
La validez e s t estrechamente relacionada c o n la idea de consistencia. La consistencia significa que distintas partes de la base de datos n o tengan vistas contradictorias de la misma i n f o r m a c i n . La validez significa que los datos son validados, donde sea posible, c o n otros datos de la base de datos. E n t r m i n o s C R U D , los datos pueden validarse cuando u n registro se crea, se actualiza o se elimina. D e la misma forma que los contenedores de datos fsicos, una base de datos informatizada puede contener datos incompletos, incorrectos o contradictorios. N u n c a se puede proteger una base de datos de los usuarios que n o saben escribir correctamente o que sencillamente i n t r o d u c e n i n f o r m a c i n errnea, pero u n buen d i s e o puede ayudarle a evitar algunos tipos de errores que una base de datos fsica n o puede evitar. Por ejemplo, la base de datos puede verificar fcilmente que los datos tienen el t i p o correcto. Si el usuario ve u n campo Fecha y escribe " N o gracias, estoy casado", la base de datos puede decirle que ste n o es u n f o r m a t o de fecha vlido y puede rechazar el valor. D e la misma forma, puede decir que " V i e j o " n o es una edad vlida, " M u c h o s " n o es una cantidad vlida y " C o n f u s i n " es demasiado largo para ser la abreviatura de u n estado (aunque ese valor puede reflejar correctamente el estado mental del usuario). La base de datos t a m b i n puede verificar que u n valor i n t r o d u c i d o p o r el usuario est presente en otra parte de la base de datos. P o r ejemplo, u n mal m e c a n g r a f o que est intentando escribir C O en el campo Estado cuando lo correcto es C P . La base de datos puede c o m p r o b a r una lista de estados vlida y rechazar ese dato cuando n o l o encuentre en la lista. (Si la base de datos necesita trabajar s l o c o n algunos estados en concreto, puede restringir la lista para que incluya s l o esos estados y hacer la prueba incluso m s limitada.) La base de datos t a m b i n puede c o m p r o b a r algunos tipos de condiciones de los datos. Supongamos que la base de datos contiene u n sistema de pedido de libros. C u a n d o u n cliente pide 500 copias de este l i b r o (quin n o querra tantas copias?), la base de datos puede
40
41
Captulo 1
A u n q u e las correcciones fciles de los errores son casi gratuitas, necesita hacer u n poco de trabajo extra de d i s e o para hacerlas de una manera eficiente y obtener as los resultados m s efectivos posibles.
Velocidad
U n aspecto i m p o r t a n t e de todos los componentes C R U D es la velocidad. U n a base de datos bien d i s e a d a puede crear, leer, actualizar y eliminar registros r p i d a m e n t e . N o se puede negar que una base de datos informatizada es m u c h o ms rpida que u n cuaderno o u n armario archivador. E n lugar de procesar decenas de registros p o r hora, una base de datos informatizada puede procesar decenas o cientos de registros p o r segundo. ( U n a vez trabaj con u n centro de facturacin que procesaba unos tres millones de cuentas cada tres das.) U n buen d i s e o juega u n papel fundamental en la eficiencia de la base de datos. U n a base de datos mal organizada puede ser m s rpida que su equivalente en papel, pero ser m u c h o m s lenta que una base de datos bien diseada.
Diseo de la base
de
datos
El centro de facturacin que he mencionado en el prrafo anterior tena un problema sencillo: n o p o d a encontrar el cliente que d eb a m s dinero. Cada tres das la base de datos i m p r i m a u n listado de los clientes que deban dinero. La lista era una pila de papel de casi un m e t r o de alto. Lamentablemente, la lista estaba ordenada de forma aleatoria (seguramente ordenada p o r la I D del usuario o p o r el n m e r o de zapato o algo igualmente intil) p o r lo que no p o d a n saber qui n d eb a m s . La m a y o r a de los clientes deban s l o unos cuantos euros, m u y poco para reclamarlo, pero unos cuantos deban decenas de miles de euros. Pasamos este listado a un f o r m a t o e l e c t r n i c o y clasificamos las cuentas p o r su balance. R e s u l t que los clientes realmente p r o b l e m t i c o s s l o llenaban un par de p g i n a s y los primeros cinco clientes deban m s que todos los otros juntos. N o he i n c l u i d o esta historia s l o para impresionarle con mis gestas de p r o g r a m a c i n (para ser totalmente sincero, fue u n proyecto bastante fcil) sino para ilustrar c m o el d i s e o de la base de datos puede suponer una gran diferencia de r e n d i m i e n t o . A q u un sencillo cambio (que cualquier base de datos debera poder a d m i t i r ) supuso la diferencia entre encontrar a los clientes m s p r o b l e m t i c o s en unos segundos o no encontrar nada de nada.
N o todos los cambios en el d i s e o de una base de datos pueden tener resultados tan espectaculares, pero el d i s e o definitivamente juega u n papel i m p o r t a n t e en el r e n d i m i e n t o .
42
Transacciones atmicas
Recuerde que una t r a n s a c c i n a t m i c a es una serie posiblemente compleja de acciones que se considera c o m o una nica o p e r a c i n p o r aquellos que n o estn directamente involucrados en la realizacin de la t r a n s a c c i n . Si realiza una transferencia de 100 euros de la cuenta de A l i c e a la ce B o b , nadie m s puede ver la base de datos mientras est en u n estado i n t e r m e d i o en el que el cunero se ha eliminado de la cuenta de A l i c e pero todava n o se ha a a d i d o a la de B o b . La t r a n s a c c i n o se produce de fo r ma completa o n o se produce en ninguna de sus partes, n o ruede producirse a medias. Lus transacciones a t m i c a s son importantes para mantener la consistencia y la validez y p o r tanto son importantes para las partes R (leer) y U (actualizar) de C R U D . l o s contenedores de datos fsicos c o m o los cuadernos admiten transacciones a t m i c a s porque -.: rmalmente s l o una persona a la vez puede utilizarlos. A n o ser que D e r e k , el m a t n de la oficina, le quite el cuaderno de las manos mientras est escribiendo, puede terminar una serie de .reraciones antes de que llegue el t u r n o de otra persona. A-Tjnos de los tipos m s p r i m i t i v o s de bases de datos, c o m o los archivos planos y los irchivos X M L (que se describen m s adelante en este l i b r o ) , n o admiten de f o r m a inherente u-s transacciones a t m i c a s , pero los productos de bases de datos relacinales m s avanzados B .o hacen. Esas bases de datos le p e r m i t e n empezar una t ra ns a c c i n y realizar una serie ce operaciones. T a m b i n pueden c o n f i r m a r la t r a n s a c c i n para hacer que los cambios sean oermanentes o restaurar la t r a n s a c c i n para deshacerlos todos y restaurar la base de datos al estado que tena antes de que empezara la t r a n s a c c i n . Estas bases de datos t a m b i n restauran de fo r m a a u t o m t i c a cualquier t r a n s a c c i n que est iruerta si la base de datos se detiene de fo r ma inesperada. P o r ejemplo, supongamos que se uricia una trans acci n , cogemos los 100 euros de la cuenta de A l i c e y cuando la mascota de su c o m p a a (un caballo enano) entra en la sala de los ordenadores, tropieza con el cable de la luz y _e corta la corriente a su ordenador principal. C u a n d o reinicie la base de datos ( d e s p u s de enviar e. caballo al departamento de Recursos humanos) se restaura de forma a u t o m t i c a la t r a n s a c c i n ce l o r m a que A l i c e todava tiene su dinero. T e n d r que realizar la t r a n s a c c i n de nuevo, pero p o r . : menos el sistema n o ha perdido el dinero. Las transacciones a t m i c a s son m s una c u e s t i n de u t i l i z a r correctamente las caractersticas ce una base de datos que una c u e s t i n de d i s e o . Si tiene u n p r o d u c t o de base de datos dablemente avanzado y utiliza las transacciones de forma adecuada, tendr todas sus Te-tajas. Si decide utilizar archivos planos para almacenar sus datos necesitar implementar las acciones usted mismo.
ACID
Esta secci n p r o p o r c i o n a mas detalles sobre las transacciones descritas en la s ec c i n anterior er. .ugar de tratar una nueva caracterstica de los contenedores de datos fsicos y de las bases de cutos informatizadas. A C I D es u n a c r n i m o que describe cuatro caractersticas que u n sistema
43
Captulo 1
de transacciones efectivo tiene que proporcionar. A C I D significa Atomicity (Atomicidad), Consistency (Consistencia), Isolation (Aislamiento) y Durability (Durabilidad). Atomicidad significa que las transacciones son a t m i c a s . Las operaciones de una t r a n s a c c i n se producen todas o n o se produce ninguna. Consistencia significa que la t r a n s a c c i n asegura que la base de datos est en u n estado consistente antes y d e s p u s de la t r a n s a c c i n . E n otras palabras, si las operaciones d e n t r o de la t r a n s a c c i n v i o l a n las reglas de la base de datos, la t r a n s a c c i n es restaurada. P o r ejemplo, supongamos que las reglas de la base de datos dicen que una cuenta n o puede hacer u n pago que tenga c o m o resultado u n balance i n f e r i o r a cero. Supongamos t a m b i n que la cuenta de A l i c e tiene u n balance de s l o 75 euros. A h o r a iniciamos una t r a n s a c c i n , a a d i m o s 100 euros a la cuenta de B o b y d e s p u s intentamos quitar 100 euros de la cuenta de A l i c e . Eso p o n d r a la cuenta de A l i c e en n m e r o s rojos, en -25 euros, violando las reglas de la base de datos, p o r lo que la t r a n s a c c i n se cancela y todos intentamos olvidar que este feo incidente se haya p r o d u c i d o alguna vez. ( E n realidad p o d r a m o s hacerle u n cargo a A l i c e p o r e m i t i r u n cheque sin fondos.) A i s l a m i e n t o significa que la transaccin aisla los detalles de la transaccin de t o d o el m u n d o excepto de la persona que realiza la t r a n s a c c i n . Supongamos que empieza una transaccin, quita 100 euros de la cuenta de A l i c e y aade 100 euros a la cuenta de Bob. O t r a persona n o puede echar u n vistazo a la base de datos mientras est en medio de este proceso y ver el estado en el que A l i c e o B o b tienen los 100 euros. Cualquiera que examine la base de datos ve 100 euros en algn lugar, ya sea en la cuenta de A l i c e antes de la t r a n s a c c i n o en la cuenta de B o b d e s p u s de ella. E n particular, dos transacciones operan de f o r m a aislada y n o pueden interferir una c o n otra. Supongamos que una t r a n s a c c i n transfiere 100 euros de A l i c e a B o b y d e s p u s una segunda t r a n s a c c i n transfiere 100 euros de B o b a C i n d y . L g i c a m e n t e una de estas transacciones se produce p r i m e r o y termina antes de que empiece la otra. P o r ejemplo, cuando empieza la segunda t r a n s a c c i n , n o ver los 100 euros que faltan de la cuenta de A l i c e a menos que ya e s t n en la cuenta de B o b .
N o t a : Tenga en cuenta que el orden en el que se produzcan las transacciones puede suponer una gran diferencia. Supongamos que A l i c e tiene 150 euros, B o b 50 euros y C i n d y 50 euros. Ahora supongamos que la secunda transaccin de Bob a C m d \o produce primero. Si la transaccin empieza quitando \ euros de la cuenta de Bob, Bob tendr un descubierto e intentamos vender a B o b p r o t e c c i n contra descubiertos p o r u n precio m n i m o de s l o 10 euro-, al mes. D e s p u s de todo esto, se produce la transaccin de Alice a Bob \s c o n xito 100 euros en la cuenta de B o b . Por el c o n t r a r i o , supongamos que se produce p r i m e r o la t r a n s a c c i n de Alice a Bob. Esa transaccin se produce sin n i n g n problema, p o r l o que la t r a n s a c c i n de B o b a C i n d y empieza, B o b tiene 150 euros y la segunda t r a n s a c c i n puede producirse con xito. La base de datos n o determinar qu transaccin se produce p r i m e r o , s l o que cada una se continua se restaura antes de que empiece la otra.
44
N o t a : U n a base de datos de alto nivel p o d r a p r o p o r c i o n a r durabilidad mediante la realizacin de copias sombra de f o r m a continua. Cada vez que se produce una o p e r a c i n en una base de datos, se produce una copia sombra en o t r o sistema. Si el sistema principal falla, la copia sombra de la base de datos puede ponerse enseguida en funcionamiento. Otras bases de datos p r o p o r c i o n a n durabilidad a travs de registros. Cada vez que una base de datos realiza una o p e r a c i n , se anota la o p e r a c i n en el registro. A h o r a supongamos que el sistema falla. C u a n d o la base de datos se reinicie, vuelve a cargar los l t i m o s datos guardados y d e s p u s vuelve a aplicar todas las operaciones descritas p o r el registro. Esto lleva m s t i e m p o que volver a empezar desde la copia sombra de una base de datos pero requiere menos recursos, p o r lo que generalmente es menos caro. Para p r o p o r c i o n a r durabilidad la base de datos n o puede considerar la t r a n s a c c i n c o m o confirmada hasta que sus cambios estn en una copia sombra o anotados en el registro de f o r m a que la base de datos n o pierda los datos si se produce u n fallo.
45
Captulo 1
cobrar, t e n d r que fiarse de la honestidad de sus clientes para pagarle l o que le deben. A u n q u e nos gustan los clientes, n o estoy m u y seguro de que la m a y o r a de las empresas se fen de ellos hasta ese extremo. E n teora p o d r a hacer copias de u n cuaderno y almacenarlas en sitios distintos para protegerlos de este t i p o de accidentes, pero en la prctica pocas empresas l o hacen (excepto q u i z las de blanqueo de dinero, las de contrabando y otras de ese t i p o en las que es til ensear a los agentes de la ley unos libros y a los "accionistas" o t r o s ) . Sin embargo, es relativamente m s fcil realizar una copia de seguridad de las bases de datos informatizadas. Si la p r d i d a de unos pocos datos no supone u n gran d a o , puede realizar copias de seguridad diarias. Si el fuego, u n virus i n f o r m t i c o o algn o t r o accidente destruyen la base de datos principal, puede volver a cargar la copia de seguridad y estar listo para empezar a trabajar de nuevo en una hora o dos. Si la base de datos es m u y voltil o si perder incluso una p e q u e a cantidad de i n f o r m a c i n ocasiona grandes problemas ( c o n c u n t o dinero cree que se comercia en una hora en la Bolsa de N u e v a Y o r k ? ) , entonces necesita una estrategia de copia de seguridad distinta. M u c h o s productos de bases de datos de alto nivel le p e r m i t e n hacer una copia sombra de todas las operaciones de la base de datos cuando se realizan, de f o r m a que tiene una copia completa de t o d o l o que sucede. Si la base de datos principal es destruida puede volver a la actividad en unos m i n u t o s . Algunas arquitecturas de bases de datos pueden cambiar a una copia de seguridad de la base de datos tan r p i d a m e n t e que n i siquiera los usuarios saben l o que ha pasado.
de
seguridad
Siempre es m e j o r almacenar las copias de seguridad lejos del ordenador en el que se est haciendo la copia de seguridad. E n ese caso, si se produce u n accidente realmente grande c o m o u n fuego y se destruye t o d o el edificio que contiene la base de datos, la copia de seguridad sigue estando a salvo. H e c o n o c i d o muchos grupos de desarrollo que almacenaban sus copias de seguridad justo al lado del ordenador en el que realizaban la copia de seguridad. Eso protege c o n t r a algunos tipos de estupidez (en los equipos en los que he trabajado, aproximadamente unas diez personas al a o borraban de f o r m a accidental u n archivo necesario para recuperar las copias de seguridad) pero no protege contra los grandes accidentes. T a m b i n he c o n o c i d o c o m p a a s que tenan u n plan oficial para realizar copias de seguridad, pero una vez que se realiza una copia de seguridad y estaba lista para ser almacenada, se enviaba p o r barco a o t r o lugar y se tardaba m u c h o t i e m p o en volver a conseguirla si se necesitaba. U n a copia de seguridad no tiene m u c h o sentido si n o se puede utilizar. U n ejemplo m u y e x t r e m o es u n cliente que estaba preocupado porque las copias de seguridad se almacenaran p o r lo menos a 40 k i l m e t r o s de la base de datos. Pensaba que la copia de seguridad n o estara segura en caso de la e r u p c i n de u n volcn o de una e x p l o s i n nuclear.
46
Bajo c o s t e y extensibilidad
En teora la base de datos tendra que ser fcil de conseguir y de instalar, n o tendra que ser cara y tendra que ser fcilmente extensible. Si descubre que necesita procesar muchos m s datos p o r ca de lo que haba esperado, tendra que aumentar la capacidad de la base de datos. A u n q u e algunos p r o d u c t o s de bases de datos son bastante caros, la m a y o r a de ellos tienen actualizaciones razonables, p o r lo que puede c o m p r a r la licencia menos cara que servir para cubrir sus necesidades, p o r l o menos al p r i n c i p i o . P o r ejemplo, S Q L Server, Oracle y M y S Q L c r o p o r c i o n a n versiones gratuitas que puede utilizar para empezar a construir p e q u e a s aplicaciones c o n u n n i c o usuario. T a m b i n disponen de ediciones m s caras, adecuadas para aplicaciones m s grandes que tienen cientos de usuarios. Instalar una base de datos nunca ser tan fcil y tan barato c o m o comprar u n cuaderno, pero tampoco tiene que ser una pesadilla financiera que requiera m u c h o t i e m p o . A u n q u e el gasto y la capacidad son caractersticas m s de u n p r o d u c t o de base de datos en c i r t i c u l a r que del d i s e o de la base de datos, u n buen d i s e o puede ayudar c o n u n t i p o d i s t i n t o de extensibilidad. Supongamos que ha estado ut i l i z a nd o una base de datos en u n cuaderno durante u n t i e m p o y descubre que necesita incorporar u n nuevo t i p o de i n f o r m a c i n . Puede que decida seguir los hbitos de cena de sus clientes para saber q u vale de descuento enviarles en ocasiones especiales. E n ese caso estara bien si pudiera ampliar el d i s e o de la base de datos para que contenga esta i n f o r m a c i n adicional. U n buen d i s e o hace que este t i p o de e x t e n s i n sea posible.
Facilidad de uso
Los cuadernos y los armarios archivadores tienen interfaces de usuario sencillas, p o r lo que casi cualquiera puede utilizarlos de f o r m a efectiva. ( A u n q u e algunas veces incluso se vuelven m u y ".-ordenados porque la gente no sabe c m o archivar los expedientes.) La interfaz de usuario de una aplicacin i n f o r m t i c a determina lo utilizable que puede ser p o r el usuario m e d i o . E l d i s e o de la interfaz de usuario n o es parte del d i s e o de una base de datos, p o r lo que puede que se est preguntando p o r q u mencionamos aqu la facilidad de uso. Los usuarios de p r i m e r nivel de una base de datos suelen ser los programadores y los usuarios relativamente sofisticados que entienden c m o navegar p o r la base de datos. U n buen d i s e o
47
Captulo 1
hace que sea m u c h o m s accesible para esos usuarios. S l o observando los nombres de las tablas, los campos y otras entidades que organizan los datos, este t i p o de usuario debera poder entender q u partes de los datos van juntas y c m o utilizarlas para obtener los datos necesarios. Si esos usuarios sofisticados pueden entender fcilmente la base de datos, pueden c o n s t r u i r mejores interfaces de usuario para los usuarios menos avanzados.
Portabilidad
U n a base de datos informatizada permite una portabilidad que es incluso m s potente que la portabilidad de u n ordenador. Le p e r m i t e acceder a los datos desde cualquier lugar en el que tenga acceso a la W e b sin tener que mover la base de datos fsica. Puede acceder a la base de datos desde cualquier lugar mientras que los propios datos permanecen a salvo en casa, lejos de peligros c o m o los carteristas, que se caiga en u n charco o que se nos olvide en el a u t o b s . D e hecho, el nuevo t i p o de p o r t a b i l i d a d puede ser demasiado fcil. A u n q u e alguien que se siente detrs de usted en el avin pueden mirar p o r encima de su h o m b r o para leer los datos informatizados de la misma f o r m a que l o hara si se tratara de u n cuaderno (bueno, si utiliza u n ordenador p o r t t i l ) , u n pirata i n f o r m t i c o en la otra p u n t a del planeta puede intentar fisgar en su base de datos y hojear los datos de sus clientes mientras duerme. Esto nos lleva al siguiente tema, la seguridad.
Seguridad
Es relativamente fcil perder u n ordenador porttil o que nos l o r o b e n , pero una base de datos altamente porttil puede ser c o m p r o m e t i d a an m s fcilmente. Si puede acceder a su base de datos desde cualquier lugar del m u n d o , t a m b i n pueden hacerlo los cibercriminales y o t r o t i p o de irresponsables. Restringir el acceso a la base de datos es b s i c a m e n t e u n tema de seguridad que debera llevar a cabo u t i l i z a n d o las herramientas de seguridad de su red y de la base de datos. Sin embargo, hay algunas tcnicas de d i s e o que puede utilizar para hacer que la seguridad de la base de datos sea m s fcil. Si separa los datos en las categoras que tienen que manipular distintos tipos de usuarios, puede conceder distintos niveles de permisos a los distintos tipos de usuarios. D a r acceso a los usuarios s l o a aquellos datos que necesiten n o s l o reduce la posibilidad de que u n usuario l e g t i m o haga algo e s t p i d o o inadecuado, sino que t a m b i n disminuye la posibilidad de que u n atacante puede presentarse c o m o ese usuario y hacer algo malicioso. A u n q u e el t i p o m s t o r p e de la oficina n o maltrate los datos de f o r m a intencionada, u n asaltante on-line p o d r a adivinar su c o n t r a s e a (que naturalmente es su n o m b r e de pila) e intentar causar estragos. Si el t i p o t o r p e n o tiene permiso para acceder a los datos de contabilidad tampoco puede hacerlo el asaltante. A u n q u e o t r o aspecto nuevo en la seguridad de las bases de datos es el hecho de que los usuarios pueden acceder a la base de datos de f o r m a remota sin tener una copia de la base de datos de f o r m a local. Puede utilizar u n ordenador de bolsillo para acceder a la base de datos sin almacenar los datos en su ordenador. Eso significa que si pierde su ordenador los datos todava estarn seguros en el ordenador de la base de datos.
48
: - : e e s u n tema m s p r o p i o de la arquitectura de la aplicacin que del d i s e o de la base de datos - J almacenar los datos de fo r ma local en ordenadores p o r t t i l e s ) pero u t i l i z a r u n d i s e o que restrinja el acceso de los usuarios a lo que en realidad necesitan puede ayudar.
Robo
de
informacin
Existen muchas historias espectaculares sobre ordenadores p ort t i l es , discos duros, discos y o t r o t i p o de material que se ha perdido o ha sido robado, lo cual puede dejar al descubierto i n f o r m a c i n potencialmente confidencial. El 22 de enero de 2005 fue robado el disco d u r o de U n i v e r s i t y o f N o r t h e r n C o l o r a d o , que c o n t e n a i n f o r m a c i n personal sobre unos 30.00 empleados, antiguos y actuales, de la universidad. El 22 de diciembre de 2005 fue robado u n ordenador de F o r d M o t o r C o m p a n y que contena los nombres y los n m e r o s de la seguridad social de 70.000 trabajadores antiguos y actuales. S l o tres das d e s p u s , el 25 de diciembre de 2005, fue robado u n porttil de Ame r i p r i se Financial Inc que c o n t e n a i n f o r m a c i n delicada sobre 260.000 clientes (ms tarde se r e c u p e r el p o r t t i l ) . E l 1 de j u n i o de 2006 fue robado u n ordenador que c o n t e n a i n f o r m a c i n sobre unos 243.000 clientes de H o t e l . c o m . El 13 de enero de 2007 fue robado un ordenador de N o r t h Carolina Department o f Reverme que c o n t e n a i n f o r m a c i n fiscal de unos 30.000 contribuyentes. El 24 de enero de 2008 fue robado un ordenador de F a l l n C o m m u n i t y H e a l t h Plan que c o n t e n a i n f o r m a c i n confidencial sobre unos 30.000 pacientes. Por l t i m o , seguramente la p r d i d a de datos m s i m p o r t a n t e , el 3 de mayo de 2006 fue robado un porttil del U . S. D e p a r t m e n t o f Veterans Affairs que contena i n f o r m a c i n sobre casi 28,6 millones de veteranos y personal de responsabilidad en activo.
M i intencin n o es culpar a las v ct i mas . s t e es u n tema i m p ort a nt e y cientos, si n o miles, de empresas en t o d o el m u n d o han visto sus datos en peligro. La p g i n a W e b de Privacy Rights Clearinghouse, llamada " A C h r o n o l o g y o f Data Breaches" que puede encontrar en el sitio www . p r i v a c y r i g h t s . o r g / a r / C h r o n D a t a B r e a c h e s . h t m enumera incidentes que totalizan m s de 230 millones de registros en peligro en los Estados U n i d o s desde que el sitio e m p e z a registrar incidentes en 2005.
Captulo 1
Compartir
N o es fcil c o m p a r t i r u n cuaderno o u n sobre lleno de tarjetas de visita entre mucha gente. Y dos personas tampoco pueden utilizar u n cuaderno a la vez y hay cierto coste en enviar el cuaderno de u n lugar a o t r o entre los usuarios. Tener que caminar de una p u n t a de la oficina a otra una docena de veces al da sera fastidioso; enviar p o r mensajero u n cuaderno p o r el pas cada da sencillamente sera una tontera. Las redes modernas p e r m i t e n a cientos e incluso miles de usuarios acceder a la misma base de datos a la vez en sitios repartidos p o r el m u n d o . A u n q u e s t e es, en su mayor parte, u n ejercicio de redes y de las herramientas proporcionadas p o r u n p r o d u c t o concreto de bases de datos, entran en juego algunos temas de d i s e o . Si divide los datos en categoras que puedan utilizar distintos usuarios c o m o se ha descrito en la seccin anterior, n o solo a y u d a r c o n la seguridad, sino que t a m b i n ayudar a reducir la cantidad de datos que necesitan enviarse a travs de la red. D i v i d i r los datos en fragmentos razonables t a m b i n puede ayudar a coordinar mltiples usuarios. C u a n d o su c o m p a e r o de trabajo de Londres empiece a editar el registro de u n cliente, ese registro tiene que estar bloqueado para que otros usuarios n o puedan entrometerse y liar las cosas antes de que termine la edicin. A g r u p a r los datos de f o r m a apropiada le p e r m i t e bloquear una cantidad m n i m a de datos de forma que haya m s datos disponibles para que los editen otros usuarios. U n d i s e o cuidadoso puede p e r m i t i r a la base de datos realizar algunos clculos y enviar s l o los resultados al jefe que est trabajando en las playas de H a w a i i en lugar de enviar toda la base de datos all y hacer que el ordenador del usuario realice t o d o el trabajo. U n buen d i s e o de la aplicacin t a m b i n es i m p o r t a n t e . Incluso d e s p u s de preparar la base de datos para u n uso eficiente, la aplicacin tiene que utilizarla correctamente. Pero sin u n buen d i s e o de la base de datos estas tcnicas n o son posibles.
50
BB I T C I LO E A
;RUD
Obtencii
Consistencia
alidez
Correccin re errores
51
Captulo 1
Mal d i s e o S l o puede encontrar el registro de u n cliente si conoce su cuenta de 37 dgitos. La b s q u e d a p o r n o m b r e tarda media hora. Las transacciones relacionadas pueden producirse de f o r m a parcial. (Alice pierde 100 euros pero B o b no los recibe. P r e p r e s e para las quejas de los clientes.) La r e c u p e r a c i n de datos perdidos es lenta y dolorosa o puede que imposible. (Pierde todos los pedidos realizados en la l t i m a semana.) E s t l i m i t a d o a una base de datos a p e q u e a escala. ( C u a n d o su sitio W e b empiece a recibir cientos de pedidos p o r segundo la base de datos no puede mantenerlos y p e r d e r miles de ellos a diario. A l g u n o s d e s e a r a m o s tener este problema...) E l d i s e o de la base de datos es confuso y los desarrolladores crean u n programa "hormiguero", confuso y c o n errores. ( H e trabajado en proyectos c o m o ste y no se trata de u n picnic.) Los piratas i n f o r m t i c o s y los empleados descontentos tienen acceso a todo. Los usuarios tienen que descargar muchos m s datos de los que necesitan, reduciendo el r e n d i m i e n t o y d n d o l e s acceso a datos delicados ( c o m o la declaracin de la m i s i n corporativa, demuestrando que la direccin de empresas n o tiene secretos.) Los usuarios bloquean los datos que en realidad no necesitan y se cruzan en el camino unos de o t r o s , ralentizando el trabajo.
Caracterstica Velocidad
Transacciones atmicas
Facilidad de uso
E l d i s e o de la base de datos es claro para que los desarrolladores l o entiendan y construyan una interfaz de usuario magnfica. Los usuarios tienen acceso a los datos que necesitan y nada m s . E l d i s e o permite a distintos usuarios descargar datos relevantes de f o r m a rpida y sencilla.
Seguridad
Portabilidad
Compartir
52
Caracterstica C l c u l o s complejos
Buen diseo Los usuarios pueden realizar fcilmente anlisis complejos para apoyar su trabajo.
Mal d i s e o U n mal d i s e o hace que los clculos tarden m s de lo necesario. ( T r a b a j en u n p r o y e c t o en el que u n sencillo cambio en u n modelo de datos implicaba u n clculo de 20 m i n u t o s . )
Resumen
Este captulo ha explicado la importancia del d i s e o de la base de datos en el desarrollo de . ip.icacin. Si el d i s e o de la base de datos no aporta unos cimientos s l i d o s para que se construya sobre ellos el resto del p r o y e c t o , la aplicacin en c o n j u n t o fallar. Este c a p t u l o ha rescrito d e s p u s los contenedores de datos fsicos que pueden comportarse como bases de datos. Trata las ventajas e inconvenientes de esos objetos y explica c m o una base de datos .-rormatizada puede aportar las ventajas y evitar los inconvenientes. En este captulo ha aprendido que una buena base de datos tiene que aportar: CRUD. Obtencin. Consistencia. Validez. C o r r e c c i n fcil de los errores. Velocidad.
Facilidad de uso. Portabilidad. Seguridad. Posibilidad de compartir. Posibilidad de realizar clculos complej
53
Captulo 1
Este captulo ha u t i l i z a d o objetos fsicos c o m o cuadernos y armarios archivadores para estudiar los objetivos de una base de datos y sus potenciales problemas. Estos sistemas fsicos c u m p l e n algunos de los objetivos de la base de datos, pero n o todos, de f o r m a bastante efectiva. E l siguiente captulo describe distintos tipos de bases de datos informatizadas. Explica los objetivos que cumple cada t i p o de base de datos y los que no. A u n q u e este libro se centra principalmente en las bases de datos relacinales, algunos de estos otros tipos de bases de datos son m s sencillos y m s tiles para algunas aplicaciones. Sin embargo, antes de seguir adelante eche u n vistazo a los siguientes ejercicios y pruebe su conocimiento de los objetivos del diseo de bases de datos descrito en este captulo. Puede encontrar las soluciones de estos ejercicios en el apndice A .
Ejercicios
1. 2. 3. 4. 5. C o m p a r e este l i b r o c o n una base de datos (si asumimos que n o l o utiliza c o m o u n cuaderno, garabateando en los m r g e n e s ) . Q u caractersticas aporta? Q u caractersticas no tiene? Describa dos caractersticas de este l i b r o que le ayuden a buscar fragmentos de datos concretos de formas distintas. Q u significa C R U D ? Q u significan los t r m i n o s que lo forman? C m o i m p l e m e n t a u n encerado los m t o d o s C R U D ? C m o puede comparar las caractersticas de la base de datos del encerado con la de este libro? Si pensamos en u n archivo de recetas que utiliza una nica tarjeta para cada receta y las tarjetas estn almacenadas de f o r m a alfabtica. C m o se comparan las caractersticas de esa base de datos con las de este libro? Q u significa A C I D ? Q u significan los t r m i n o s que lo forman? Supongamos que Alice, B o b y C i n d y tienen todos u n balance en sus cuentas de 100 euros y las base de datos n o p e r m i t e tener u n balance de cuenta i n f e r i o r a cero. A h o r a considere tres transacciones: 1) A l i c e transfiere 125 euros a B o b , 2) B o b transfiere 150 euros a C i n d y y 3) C i n d y transfiere 25 euros a A l i c e y 50 a Bob. E n q u o r d e n pueden realizarse las transacciones con x i t o ? Explique c m o puede una base de datos central proteger los datos confidenciales.
6. 7.
8.
54