Anda di halaman 1dari 24

1

Objetivos del diseo efectivo de una base de datos


U t i l i z a n d o herramientas modernas cualquiera p o d r a construir una base de datos. La pregunta es: ser til esa base de datos? L na base de datos n o ser de mucha u t i l i d a d si n o puede obtener los datos de forma rpida, riable y consistente. N o ser til si est llena de datos incorrectos o contradictorios. T a m p o c o ser til si la roban, se pierde o se c o r r o m p e p o r los datos que estaban s l o escritos a medias cuando fall el sistema. Puede solucionar todos estos problemas potenciales u t i l i z a n d o herramientas modernas para crear bases de datos, u n buen d i s e o y una pizca de sentido c o m n , pero s l o si entiende cules son los problemas p o d r evitarlos. El p r i m e r paso en la b s q u e d a de una base de datos til es entender los objetivos de la base de datos. Q u debera hacer la base de datos? Q u hace que una base de datos sea til y : u problemas puede solucionar? Trabajar con una herramienta de bases de datos potente sin objetivos claros es c o m o volar con u n avin entre nubes sin una brjula: tiene las herramientas necesarias pero n i n g n sentido de la o r i e n t a c i n . Este captulo describe los objetivos del d i s e o de una base de datos. A l estudiar los contenedores de i n f o r m a c i n , c o m o los archivos, que pueden servir c o m o base de datos, se definen las propiedades que tienen las buenas bases de datos y los problemas que deberan evitarse.

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.

Comprender la importancia del diseo


O l v i d e p o r u n m o m e n t o que este l i b r o trata sobre las bases de datos y tenga en cuenta el d i s e o de software en general. E l d i s e o de software juega u n papel fundamental en el desarrollo del software. E l d i s e o establece la estructura general y la direccin que t o m a r el f u t u r o desarrollo. D e t e r m i n a qu partes del sistema interactuarn c o n otras; decide q u subsistemas p r o p o r c i o n a r n apoyo a otras partes de la aplicacin. Si el d i s e o subyacente de una aplicacin es deficiente, el sistema en c o n j u n t o estar en riesgo. Las malas suposiciones en el d i s e o avanzan lentamente p o r el c d i g o en los niveles m s inferiores de la aplicacin, teniendo c o m o resultado u n subsistema deficiente. Los sistemas de m s alto nivel construidos sobre esos subsistemas heredan las deficiencias de d i s e o y p r o n t o su c d i g o t a m b i n estar d a a d o . Algunas veces una cierta decadencia inunda t o d o el sistema y nadie se da cuenta hasta que es relativamente tarde para el p r o ye ct o . C u a n t o m s t i e m p o c o n t i n e el p r o y e c t o m s se atrincheran las suposiciones incorrectas y ms reticentes son los desabolladores a sugerir descartar t o d o el sistema y empezar de nuevo. C u a n t o ms t i e m p o permanezcan los problemas en el sistema, m s difcil ser eliminarlos. E n algn p u n t o puede ser m s fcil dejarlo t o d o a u n lado y empezar desde cero, una d e c i s i n que pocos directores querrn presentar a sus superiores. C o n s t r u i r una aplicacin suele compararse c o n construir una casa o u n rascacielos. Seguramente n o e m p e z a r a construyendo u n rascacielos m u l t i m i l l o n a r i o sin u n d i s e o global que estuviera basado en principios a r q u i t e c t n i c o s bien fundados. Lamentablemente los desarrolladores de software normalmente se precipitan y empiezan a escribir el c d i g o lo antes posible. E l c d i g o es m s divertido e interesante que el d i s e o . E l c d i g o t a m b i n permite a los desarrolladores decir a directores y clientes cuntas lneas de c d i g o han escrito para que parezca que estn haciendo progresos, aunque las lneas estn d a a d a s p o r suposiciones falsas. S l o m s tarde se dan cuenta de que el d i s e o subyacente es deficiente, el c d i g o que han escrito n o tiene valor y el proyecto est en problemas. A h o r a volvamos al d i s e o de la base de datos. Pocas partes del d i s e o de una aplicacin son tan importantes c o m o el d i s e o de una base de datos. La base de datos es la d ep os i t a r a de la i n f o r m a c i n que gestiona el resto de la aplicacin y que visualizan los usuarios. Si la base de datos n o almacena los datos correctos, n o mantiene los datos seguros, o n o permite que la

Objetivos del diseo efectivo de una base de datos


aplicacin encuentre los datos que necesita, entonces la aplicacin tiene pocas posibilidades de xito. A q u el p r i n c i p i o G I G O (Garbage In, Garbage Out; si se i n t r o d u c e i n f o r m a c i n e r r n e a se o b t e n d r n datos e r r n e o s ) es de t o t a l aplicacin. Si los datos subyacentes n o son correctos, n o i m p o r t a lo que haga la aplicacin que los utilice, los resultados sern, p o r l o menos, sospechosos.

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

Objetivos del diseo efectivo de una base de datos


fcilmente porque puede comprar o t r o cuaderno para aadir a su c o l e c c i n cuando el p r i m e r o est lleno. Sin embargo, los contenidos de u n cuaderno se organizan de f o r m a secuencial. Si quiere encontrar i n f o r m a c i n sobre u n tema en particular, t e n d r que examinar todas las p g i n a s de una en una hasta que encuentre lo que quiere. Cuantos m s datos tenga, m s difcil ser este t i p o de b s q u e d a . U n armario archivador puede almacenar mucha m s i n f o r m a c i n que u n cuaderno y puede ampliar fcilmente la base de datos a a d i e n d o m s archivos o armarios. E n c o n t r a r determinada i n f o r m a c i n en el armario archivador puede ser m s fcil que encontrarla en el cuaderno siempre que est buscando el t i p o de datos u t i l i z a d o para organizar los registros. Si el armario archivador est lleno de i n f o r m a c i n de clientes clasificada p o r su n o m b r e y quiere encontrar los datos de u n cliente en concreto tiene suerte. Si quiere encontrar todos los clientes que viven en una ciudad determinada tendr que sumergirse en los archivos de u n o en u n o . El cerebro es la base de datos m s sofisticada que se ha creado nunca. Puede almacenar una cantidad de datos increble y le p e r m i t e recuperar determinados datos de distintas formas. Por ejemplo, j u s t o ahora p o d r a responder fcilmente a las siguientes preguntas sobre los restaurantes que visita de f o r m a habitual: J J J J J C u l est m s cerca de su situacin actual? C u l tiene los mejores postres? C u l tiene el m e j o r servicio? C u l es el menos caro? C u l es el m e j o r para una comida de negocios? C u l de todos ellos es su favorito?

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 .

Ventajas e inconvenientes de los contenedores de informacin


A l entender las ventajas e inconvenientes de los contenedores de i n f o r m a c i n c o m o los descritos en la s e c c i n anterior puede aprender las caractersticas que seran tiles en una base de datos informatizada. A s que, cules son esas ventajas e inconvenientes? La siguiente lista resume las ventajas de algunos contenedores de i n f o r m a c i n : N i n g u n a de esas bases de datos necesita electricidad p o r l o que estn a salvo de los fallos elctricos. ( A u n q u e su cerebro necesita comida.) Estas bases de datos mantienen los datos bastante seguros y de f o r m a permanente (exceptuando los incendios). Los datos n o desaparecen. Estas bases de datos (excluyendo el cerebro) n o son caras y son fciles de comprar. Estas bases de datos tienen interfaces de usuario sencillas p o r l o que casi cualquiera puede utilizarlas. U t i l i z a n d o esas bases de datos es fcil aadir, editar y eliminar datos. E l armario archivador le p e r m i t e localizar r p i d a m e n t e los datos si busca de la misma f o r m a en la que est organizada (por ejemplo, p o r n o m b r e de cliente). Su cerebro le p e r m i t e encontrar datos ut i l i z a nd o distintas claves (por ejemplo, p o r u b i c a c i n , coste o calidad de servicio). Todas ellas le p e r m i t e n encontrar toda la i n f o r m a c i n que contienen, aunque puede tardar u n poco en examinarla toda. Todas ellas (excepto seguramente el cerebro) p r o p o r c i o n a n resultados consistentes en tanto en cuanto los hechos que almacenan sean consistentes. Por ejemplo, dos personas que u t i l i z a n el m i s m o cuaderno e n c o n t r a r n los mismos datos. D e la misma f o r m a , si busca en el m i s m o cuaderno p o s t e r i o r m e n t e , aparecern los mismos datos que ha visto antes (si n o han sido m o d i f i c a d o s ) .

36

Objetivos del diseo efectivo de una base de datos


J Todas ellas excepto el armario archivador son p o r t t i l e s . E l cerebro puede realizar clculos complejos, p o r l o menos de u n t i p o y cantidad l i m i t a d o s . Todos ellos p r o p o r c i o n a n transacciones a t m i c a s .

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.

Caractersticas deseables en una base de datos


Examinando las ventajas y desventajas de las bases de datos fsicas podemos crear una lista de las caractersticas que debera tener una base de datos informatizada. Algunas de ellas son caractersticas fundamentales que tiene que tener cualquier base de datos. (Tiene que poder obtener datos de ella, eso es obvio, n o ? ) Sin embargo, la m a y o r a de estas caractersticas dependen, p o r l o menos en parte, de u n buen d i s e o de una base de datos. Si n o realiza u n buen d i s e o , se p e r d e r algunas o todas las ventajas de estas caractersticas. P o r ejemplo, cualquier base de datos decente p r o p o r c i o n a la funcin de copia de seguridad pero u n buen d i s e o puede hacer la copia de seguridad y la r e c u p e r a c i n m u c h o m s rpida y fcil. Las siguientes secciones describen algunas de las caractersticas que tendra que tener u n buen sistema de base de datos y se explica hasta qu p u n t o dependen del buen d i s e o de la base de datos.

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

Objetivos del diseo efectivo de una base de datos


cuando se actualiza u n registro (la U (actualizar) en C R U D ) la base de datos tiene que validar la entrada modificada del Estado. C u a n d o elimine una entrada en la tabla Estados (la D (eliminar) en C R U D ) , la base de datos tiene que verificar que n o hay registros de n i n g n participante que utilice ese estado. P o r l t i m o , cuando lea los datos (la R (leer) en C R U D ) el d i s e o de la base de datos determina si encuentra los datos que quiere en segundos, horas o n o los encuentra. M u c h o s de los conceptos descritos en las siguientes secciones estn relacionados c o n operaciones C R U D .

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

Objetivos del diseo efectivo de una base de datos


comprobar otra parte de la base de datos para ver si ese n m e r o de copias est disponible (la mavora de las libreras s l o tienen unas cuantas copias de u n l i b r o determinado) y rechazar el cedido si n o hay suficientes copias. U n buen d i s e o t a m b i n puede ayudar a proteger la base de datos de cambios incorrectos. Supongamos que el servicio de r e p a r a c i n de una m q u i n a de capuchino deja de dar cobertura a una ciudad cercana. C u a n d o intenta eliminar esa ciudad de la lista de localidades vlidas la base de datos puede decirle que hay clientes en esa ciudad. Dependiendo del d i s e o de la base de datos, p o d r a rechazar la eliminacin de esa ciudad hasta que se disculpe c o n esos clientes y los elimine de la base de datos. Todas estas tcnicas dependen de u n d i s e o bueno y s l i d o de la base de datos. A u n as n o p o d r n protegerse de u n usuario que escriba el n o m b r e en el campo apellido o que pulse de forma accidental la T E C L A D E B L O Q U E O D E M A Y S C U L A S , pero puede evitar muchos tipos de errores que u n cuaderno n o puede.

Correccin fcil de los errores


Incluso una base de datos perfectamente d i s e a d a n o puede asegurar una validez perfecta. C m o puede saber la base de datos que el n o m b r e de u n cliente se escribe "Pheidaux" y n o "Fido" c o m o ha escrito el usuario? C o r r e g i r u n n i c o error en u n cuaderno es bastante fcil. S l o tiene que tachar el valor incorrecto y escribir el nuevo. C o r r e g i r los errores s i s t e m t i c o s en u n cuaderno es m u c h o m s difcil. Supongamos que contrata a una persona en prcticas durante el verano para que vaya puerta a puerta vendiendo productos de menaje y realiza u n m o n t n de pedidos de " D u c k Tape" cuando el n o m b r e real del p r o d u c t o es " D u c t Tape". A r r e g l a r todos estos errores sera tedioso y llevara m u c h o t i e m p o . (Por supuesto, las personas en p r c t i c a s estn para hacer trabajos tediosos y que llevan m u c h o t i e m p o as que podemos hacer que l m i s m o l o arregle.) P o d r a ignorar el problema y dejar los pedidos tal y c o m o e s t n , pero entonces tendra dos nombres distintos para el m i s m o p r o d u c t o . En una base de datos informatizada este t i p o de c o r r e c c i n es insignificante. U n a sencilla instruccin puede actualizar cualquier incidencia c o n el n o m b r e del p r o d u c t o a travs de t o d o el sistema. ( D e hecho, este t i p o de arreglo algunas veces es demasiado fcil de hacer. Si n o tiene cuidado, puede que cambie de forma accidental los nombres de todos los productos, incluso aquellos que n o estuvieran escritos de f o r m a incorrecta. Puede evitarlo construyendo una mterfaz de usuario segura para la base de datos o siendo m u y cuidadoso.) La c o r r e c c i n fcil de los errores es una caracterstica incorporada en las bases de datos mformatizadas, pero para sacar el m x i m o p a r t i d o de esta caracterstica necesita u n buen diseo. Si la i n f o r m a c i n de los pedidos e s t en una s e c c i n de t e x t o de f o r m a t o libre, la base de datos t e n d r problemas para corregir los errores. Si pone el n o m b r e del p r o d u c t o en u n campo distinto, la base de datos puede realizar este cambio fcilmente.

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

Objetivos del diseo efectivo de una base de datos

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

Objetivos del diseo efectivo de una base de datos


D u r a b i l i d a d significa que una vez que la t r a n s a c c i n se ha c o n f i r m a d o , n o d es a p a rec er Dosteriormente. Si la corriente elctrica falla, cuando la base de datos se reinicie los efectos de esta t r a n s a c c i n todava estarn ah. E l requisito de durabilidad depende de la regla de consistencia. La consistencia asegura que la t r a n s a c c i n n o se c o m p l e t a r si deja la base de datos en u n estado que viole sus reglas. La durabilidad significa que la base de datos n o decidir m s :arde que la t r a n s a c c i n ha causado ese estado y eliminar de f o r m a retroactiva la t r a n s a c c i n . U n a vez que la t r an sacci n se ha c o n f i r m a d o , es definitiva.

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.

Persistencia y copias de seguridad


Los datos tienen que ser persistentes. N o deberan cambiar o desaparecer p o r s mismos. Si n o puede confiar en la base de datos para mantener los datos seguros, la base de datos n o tiene m u c h o valor. Los productos de bases de datos hacen lo que pueden para mantener los datos seguros, y en operaciones normales n o es necesario hacer m u c h o para sacar provecho de la persistencia de los datos. Sin embargo, cuando pasa algo poco frecuente puede que necesite llevar a cabo una accin especial que implique una planificacin anterior. P o r ejemplo, supongamos que el disco que contiene la base de datos sencillamente se estropea. O u n fuego reduce el ordenador a u n m o n t n de chatarra incandescente. O u n usuario elimina de f o r m a intencionada o accidental la base de datos. ( U n usuario l o i n t e n t una vez en u n p r o y e c t o en el que estaba trabajando. N o fue divertido.) E n estos casos extremos la base de datos p o r s misma n o puede ayudarle. Para protegerse contra este t i p o de problemas es necesario realizar copias de seguridad de f o r m a regular. N o r m a l m e n t e es difcil realizar una copia de seguridad de contenedores de datos fsicos c o m o los cuadernos, por l o que es difcil protegerlos contra los d a o s . Si el fuego destruye su cuaderno de cuentas a

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.

Planificacin de las copias

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

Objetivos del diseo efectivo de una base de datos


La f o r m a exacta en la que implemente las copias de seguridad de la base de datos depende de varios factores c o m o la probabilidad de que se produzca u n problema, lo r p i d o que necesite recuperarse de l y l o desastroso que sera perder algunos datos y dedicar t i e m p o a restaurarlos desde la base de datos, pero una base de datos informatizada le p r o p o r c i o n a m s opciones de l o que hace u n cuaderno. U n buen d i s e o puede ayudar a hacer las copias de seguridad u n poco m s fciles. Si organiza .os datos de f o r m a que los cambios se p r o d u z c a n en una zona bastante localizada, puede realizar copias de seguridad de esa zona m s frecuentemente y n o perder el t i e m p o copiando los datos que s l o cambian en raras ocasiones.

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

Objetivos del diseo efectivo de una base de datos

: - : 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.

Posibilidad de realizar clculos complejos


Comparados c o n el cerebro h u m a n o , los ordenadores son idiotas. Necesitan u n hardware m u y potente y algoritmos asombrosamente sofisticados para realizar tareas que usted da p o r hecho, c o m o reconocer caras, la voz de una persona y la escritura (aunque n i el cerebro humano n i los ordenadores han conseguido descifrar las recetas de los m d i c o s ) . E l cerebro humano t a m b i n se programa l m i s m o de forma que puede aprender nuevas tareas de f o r m a flexible y relativamente rpida. A u n q u e u n ordenador carece de la adaptabilidad del cerebro humano, es bueno para realizar una serie de tareas bien definidas de forma rpida, repetida y fiable. U n ordenador n o se aburre, n o deja que su at e n ci n divague n i realiza errores aritmticos (a n o ser que sufra del infame error F D I V del P e n t i u m , el error fOOf, el error de coma flotante de C y r i x o algn o t r o ) . La c u e s t i n es que si el hardware y el software subyacentes funcionan correctamente, el ordenador puede realizar las mismas tareas una y otra vez millones de veces p o r segundo sin cometer errores. E n l o que respecta a cuadrar libros de cuentas, buscar cuentas c o n balances inferiores a cero y realizar otras tareas relacionadas c o n el procesamiento de datos n u m r i c o s , el ordenador es m u c h o m s r p i d o y menos tendente a cometer errores que el cerebro h u m a n o .

50

BB I T C I LO E A

Objetivos del diseo efectivo de una base de datos


El ordenador es de forma natural m s r p i d o en este t i p o de clculos, pero su sorprendente rapidez no le a y u d a r si la base de datos est mal diseada. U n buen d i s e o puede marcar la diferencia entre encontrar los datos que necesita en segundos en lugar de horas, das o n o encontrarlos.

Consecuencias de un buen y mal diseo


-a siguiente tabla resume c m o puede afectar u n buen o mal d i s e o a las caractersticas descrita en las secciones anteriores.

Tabla 1.1. Consecuencias de un buen o mal diseo.


Caracterstica Buen diseo Puede encontrar los datos que necesita de f o r m a rpida y fcil. La base de datos evita cambios inconsistentes. Mal d i s e o Encuentra los datos que necesita m u y lentamente o n o los encuentra. Puede i n t r o d u c i r datos inconsistentes o modificar y eliminar datos para hacer el resultado inconsistente. (Sus productos van a la direccin o persona equivocadas.) N o puede encontrar los datos que necesita r p i d a m e n t e . (Su cliente espera al t e l f o n o durante 45 m i n u t o s para obtener u n sencillo balance de la cuenta.) Distintas partes de i n f o r m a c i n contienen datos contradictorios. (Las facturas de u n cliente se envan a una direccin pero los avisos de pago retrasado se envan a otra.) Los campos contienen u n galimatas. (La direccin de su empresa tiene el valor de Estado " C o n f u s i n " . A u n q u e la base de datos contenga ese valor es posible corregirlo en algn nivel.) Los cambios sencillos y a gran escala n o se producen nunca. (Miles de facturas de clientes son devueltas porque el c d i g o postal ha cambiado y la base de datos n o se ha actualizado.)

;RUD

Obtencii

Puede encontrar los datos correctos de forma rpida y fcil.

Consistencia

Todas las partes de la base de datos coinciden en datos comunes.

alidez

Los campos contienen datos vlidos.

Correccin re errores

Es fcil actualizar datos incorrectos.

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

Buen d i s e o Puede encontrar r p i d a m e n t e los clientes p o r n o m b r e , n m e r o de cuenta o n m e r o de t e l f o n o .

Transacciones atmicas

Las transacciones relacionadas o bien se p r o d u c e n todas o n o se produce ninguna.

Persistencia y copias de seguridad

Puede recuperarse de u n ordenador que ha fallado. Los datos estn a salvo.

Bajo coste y extensibilidad

Puede cambiarse a una base de datos m a y o r cuando sea necesario.

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

Los usuarios pueden manipular los datos que necesitan.

52

Objetivos del diseo efectivo de una base de datos

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.

Transacciones a t m i c a s . ACID. Persistencia y copias de seguridad. Bajo coste y extensibilidad.

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

Anda mungkin juga menyukai