Está en la página 1de 11

Grao en Informacin e Documentacin: Bases de datos documentais Curso 2013 2014

Autor: Juan Ramn Lpez Rodrguez 1



Problemas de malos diseos
Sabemos ya que la gran mayora de los SGBDs comerciales son relacionales, es decir,
basados en la organizacin de la informacin por medio de tablas. Si contamos con un
gestor de este tipo, disear una BD consistir, por lo tanto, en disear las tablas (y su
estructura) que nos permitirn representar y almacenar la informacin que necesitemos
mantener en la BD.
Desgraciadamente, el proceso de diseo de esas tablas no es tan sencillo como pudiera
parecer en un principio. Un mal diseo puede conducir a graves problemas de redundancia
de informacin, que en ltimo extremo puede dar lugar a su vez a problemas de
inconsistencia ms graves an. Este documento esta destinado a presentar algunos de esos
problemas a partir de un ejemplo ilustrativo.
El ejemplo
El ejemplo que utilizaremos es el de una base de datos en la que pretendemos almacenar
informacin sobre un instituto. Ms en concreto, deseamos almacenar informacin sobre
los profesores del instituto y las asignaturas que se imparten. Hablando de datos ms
concretos, debemos registrar el DNI de los profesores, su nombre y apellidos, y su telfono;
y de cada asignatura, almacenaremos su cdigo, nombre completo, y su tipo (optativa u
obligatoria).
Asumiremos tambin que un profesor puede tener asignada docencia en cuantas asignaturas
sea necesario; que una asignatura puede ser impartida por ms de un profesor en un
momento dado; y que, si un profesor imparte una asignatura, dar clase a todos los alumnos
matriculados en esa asignatura. Pretendemos mantener los datos de todos los profesores en
plantilla, tengan docencia asignada o no en el momento actual.
El primer diseo
Un primer diseo de la BD que podra satisfacer las necesidades de informacin del
ejemplo es el que se muestra en la figura siguiente.
Cdigo Nombre Obligatoria DNI Nombre Apellidos Tlf


En este primer diseo se opta por una nica tabla que permite mantener toda la
informacin. Esa tabla cuenta con columnas suficientes para representar el cdigo, nombre
y tipo de cada asignatura, y el DNI, nombre y apellidos de cada uno de los profesores de
esa asignatura. En esta otra figura, la tabla contiene una fila con los datos de una asignatura
(BDDOC) impartida por un determinado profesor (Mon Lpez).
Cdigo Nombre Obligatoria DNI Nombre Apellidos Tlf
01 BDDOC Si 35X Mon Lpez 666

Grao en Informacin e Documentacin: Bases de datos documentais Curso 2013 2014
Autor: Juan Ramn Lpez Rodrguez 2

Los problemas surgen cuando comenzamos a rellenar la tabla con nuevos datos. Existen
tres operaciones bsicas de actualizacin del contenido de una tabla:
Insercin de informacin
Borrado de informacin
Modificacin de informacin
Veremos que, en el contexto de un mal diseo de la base de datos, cada una de estas tres
operaciones tiene intrnsecamente asociado una serie de problemas o anomalas
especficas:
Anomalas de insercin
Anomalas de borrado
Anomalas de modificacin
Anomalas de insercin
Veremos a continuacin que podemos encontrarnos con problemas al agregar nueva
informacin al contenido de una tabla mal diseada.
Supongamos que una nueva profesora (Marta Barbeito) se incorpora al centro. En
principio, podramos pensar que aadir nueva informacin, como esta, a la BD, debera
implicar una simple adicin de nuevas filas a nuestra tabla. Nada ms lejos de la realidad:
aadir, tal y como est estructurada la tabla, nueva informacin sobre la profesora es ms
complicado.
Si no se le ha asociado todava la docencia de ninguna asignatura, se puede aadir,
efectivamente, una nueva fila con sus datos personales, pero nos veremos obligados
a dejar en blanco la informacin sobre las materias en las que impartir docencia.
Cdigo Nombre Obligatoria DNI Nombre Apellidos Tlf
01 BDDOC Si 35X Mon Lpez 666
47B Marta Barbeito 333

Cuando queramos, ms adelante, aadir una asignatura a la lista de las impartidas
por Marta, se nos plantear una disyuntiva:
o Aadir una nueva fila con los datos de Marta y la asignatura nueva? Eso
implica repetir los datos de Marta en dos filas diferentes: se trata de un caso
de redundancia de informacin, que slo podr ser anulada eliminando la
fila inicial con informacin sobre Marta.
Cdigo Nombre Obligatoria DNI Nombre Apellidos Tlf
01 BDDOC Si 35X Mon Lpez 666
47B Marta Barbeito 333
02 DRI No 47B Marta Barbeito 333

o Modificar la fila ya existente con los datos de Marta, y aadir los datos de
la asignatura?
Grao en Informacin e Documentacin: Bases de datos documentais Curso 2013 2014
Autor: Juan Ramn Lpez Rodrguez 3

Cdigo Nombre Obligatoria DNI Nombre Apellidos Tlf
01 BDDOC Si 35X Mon Lpez 666
02 DRI No 47B Marta Barbeito 333
Eso implica que para aadir nueva informacin a la BD (el hecho de que
Marta imparte DRI) nos vemos obligados a:
1. Comprobar si ya existe una fila en la tabla con informacin
sobre Marta.
2. Si la hay, modificarla.
3. Si no, dar de alta una nueva fila con los datos de Marta y la
asignatura de DRI.
Como se puede apreciar, una operacin de insercin aparentemente sencilla
se convierte en compleja: la operacin se complica por un mal diseo de la
tabla.
Otro caso: supongamos que al dar de alta a Marta ya sabemos que va a impartir
docencia en una asignatura: BDDoc, que casualmente ya aparece en la tabla como
impartida por Mon. Creamos una nueva fila en la tabla con los datos de Marta; y
nos vemos obligados a repetir en ella exactamente toda la informacin
correspondiente a la asignatura. De no hacerlo as, aperecera informacin diferente
sobre la misma materia en dos filas distintas Cmo saber entonces cul es la
buena? Y al hacerlo as, estamos introduciendo redundancia en la tabla para
mantener su consistencia.
Cdigo Nombre Obligatoria DNI Nombre Apellidos Tlf
01 BDDOC Si 35X Mon Lpez 666
01 BDDOC Si 47B Marta Barbeito 333
Conclusiones
Cul es la conclusin que podemos extraer del anlisis de estos ejemplos? La insercin de
informacin en una tabla mal diseada puede conllevar problemas de diferente tipo:
El ms grave de ellos: una simple operacin de adicin de informacin puede
complicarse en demasa: aadir nueva informacin a una tabla no implica aadir
simplemente una nueva fila (que sera lo deseable), sino que puede ser necesario
tambin modificar o eliminar la informacin previamente incluida en otras ya
existentes previa comprobacin, adems)
El ms leve: podemos vernos obligados a repetir la misma informacin varias veces
en diferentes filas de la tabla (redundancia), algo que va a provocar anomalas de
otro tipo, como veremos ms adelante


Ejercicio propuesto
Grao en Informacin e Documentacin: Bases de datos documentais Curso 2013 2014
Autor: Juan Ramn Lpez Rodrguez 4

Buscar algn ejemplo de anomala de insercin en el caso de que se quiera dar de alta una
nueva asignatura en la BD
Anomalas de borrado
Asumamos que tenemos registrada en nuestra BD la siguiente informacin:
Cdigo Nombre Obligatoria DNI Nombre Apellidos Tlf
02 DRI No 35X Mon Lpez 666
01 BDDOC Si 35X Mon Lpez 666
01 BDDOC Si 47B Marta Barbeito 333
Como se puede apreciar, se indica que un profesor, Mon imparte dos asignaturas (DRI y
BDDOC) y que otra profesora (Marta) comparte la docencia de BDDOC.
Supongamos que en este momento debemos dar de baja a Mon como profesor de BDDOC.
En principio, para hacerlo es suficiente con eliminar de la tabla la fila que asocia a Mon con
la asignatura.
Cdigo Nombre Obligatoria DNI Nombre Apellidos Tlf
02 DRI No 35X Mon Lpez 666
01 BDDOC Si 35X Mon Lpez 666
01 BDDOC Si 47B Marta Barbeito 333
El estado de la tabla ser ahora el siguiente:
Cdigo Nombre Obligatoria DNI Nombre Apellidos Tlf
02 DRI No 35X Mon Lpez 666
01 BDDOC Si 47B Marta Barbeito 333
Supongamos ahora que Mon tambin deja de ser el profesor de la asignatura de DRI: se nos
presenta un problema, ya que no podemos eliminar sin ms la fila que asocia al profesor
con la materia. Perderamos la informacin relativa al profesor, y a la asignatura!
Cdigo Nombre Obligatoria DNI Nombre Apellidos Tlf
02 DRI No 35X Mon Lpez 666
01 BDDOC Si 47B Marta Barbeito 333
La nica solucin que nos queda, para no perder esa informacin, es dar de alta dos nuevas
filas con informacin (por separado) relativa a la materia y al profesor.
Cdigo Nombre Obligatoria DNI Nombre Apellidos Tlf
01 BDDOC Si 47B Marta Barbeito 333
02 DRI No
35X Mon Lpez 666



Conclusiones
Grao en Informacin e Documentacin: Bases de datos documentais Curso 2013 2014
Autor: Juan Ramn Lpez Rodrguez 5

Dar de baja informacin en una tabla mal diseada no siempre se reduce a eliminar ciertas
filas: puede implicar la insercin (paradjicamente) de nuevas filas en la tabla, para evitar
perder ms informacin de la debida.
Ejercicio propuesto
Comprobar si, partiendo de la tabla original de este apartado, la baja de una persona
como profesor del centro podra dar lugar a anomalas de borrado.
Anomalas de modificacin.
Para presentar un ejemplo de anomalas de modificacin, volveremos a utilizar la tabla de
partida de la seccin anterior.
Cdigo Nombre Obligatoria DNI Nombre Apellidos Tlf
02 DRI No 35X Mon Lpez 666
01 BDDOC Si 35X Mon Lpez 666
01 BDDOC Si 47B Marta Barbeito 333
En esa tabla, dos filas indican que Mon Lpez es el profesor de un par de asignaturas. En
ambas filas nos vemos obligados, en principio, a repetir exactamente toda la informacin
correspondiente a Mon, para mantener la consistencia de la tabla.
Supongamos que la extensin de telefnica de Marta (como las del resto de los profesores,
por cambios en la gestin del centro) es modificada, pasando a ser de cuatro dgitos. Un
cambio en un cierto dato debera restringirse en la tabla, idealmente, a un cambio en la
informacin recogida en una nica fila. Y, en efecto, dado que la extensin de Marta
aparece en una nica fila, ese es el nico cambio que hay que realizar.
Cdigo Nombre Obligatoria DNI Nombre Apellidos Tlf
02 DRI No 35X Mon Lpez 666
01 BDDOC Si 35X Mon Lpez 666
01 BDDOC Si 47B Marta Barbeito 1333
Y qu sucede con Mon? Cambiar su extensin no es sencillo: aparece en varias filas (una
por cada asignatura impartida por este profesor). El nmero de filas afectadas por la
modificacin de un nico dato es, pues, difcil de prever. As, podemos afirmar que la
redundancia de informacin puede dar lugar a anomalas de modificacin.
Cdigo Nombre Obligatoria DNI Nombre Apellidos Tlf
02 DRI No 35X Mon Lpez 1666
01 BDDOC Si 35X Mon Lpez 1666
01 BDDOC Si 47B Marta Barbeito 1333


Conclusiones
Grao en Informacin e Documentacin: Bases de datos documentais Curso 2013 2014
Autor: Juan Ramn Lpez Rodrguez 6

La modificacin de informacin elemental en una tabla mal diseada se complica cuando el
diseo induce la redundancia de informacin: la modificacin de un nico dato puede
requerir la modificacin de mltiples filas.
Ejercicio propuesto
Comprobar si la redundancia introducida en las tablas de la primera seccin de este
documento (anomalas de insercin) podra dar lugar a anomalas de modificacin.
Diseo alternativo
Hemos dicho (y demostrado) que el mal diseo de las tablas de una BD puede producir
todo tipo de anomalas a la hora de actualizar la informacin almacenada en dicha BD. Sin
embargo por qu el diseo propuesto en este documento es un mal diseo?
Bsicamente, el problema se reduce a lo siguiente: estamos incluyendo, en la misma tabla,
informacines de diferente naturaleza, que deberan ser tratadas de forma independiente.
Las propiedades esenciales de un profesor (DNI, nombre completo, extensin) poco tienen
que ver con las propiedades esenciales de una asignatura (cdigo, nombre, obligatoriedad).
El nico nexo de unin entre los dos es la posibilidad de que un profesor imparta un
asignatura. Pero que profesor y asignatura estn relacionados (o no) no modifica en modo
alguno sus caractersticas esenciales y definitorias. Mezclar informaciones tan dispares en
una tabla conduce a la necesidad de introducir redundancia (ver ejemplos anteriores) en la
informacin registrada, redundancia que termina por dar lugar a las anomalas descritas.
Un buen diseo de nuestra BD debe pasar, por lo tanto, por la descomposicin de la tabla
de partida, separando los diferentes componentes de informacin y manteniendo unidos
slo aquellos ntimamente ligados. Por eso, descomponemos la tabla original en dos tablas:
una con informacin exclusiva de las asignaturas, y otra con informacin sobre los
profesores.
Cdigo Nombre Obligatoria
01 BDDOC Si
Asignaturas
DNI Nombre Apellidos Tlf
35X Mon Lpez 666
Profesores
Para poder saber qu profesores imparten qu asignaturas, estas dos tablas no son
suficientes. Creamos pues una tabla nueva en la que combinamos la mnima informacin
imprescindible sobre ambos elementos.
Cdigo DNI
01 35X
Imparticin
Es fcil comprobar que, con este diseo, las anomalas antes expuestas desaparecen:
I nsercin:
Es sencillo dar de alta, en esta BD, a la nueva profesora Marta Barbeito, aadiendo una
nica nueva fila en la tabla de profesores.

Cdigo Nombre Obligatoria DNI Nombre Apellidos Tlf
Grao en Informacin e Documentacin: Bases de datos documentais Curso 2013 2014
Autor: Juan Ramn Lpez Rodrguez 7

01 BDDOC Si
Asignaturas
35X Mon Lpez 666
47B Marta Barbeito 333
Profesores
Cdigo DNI
01 35X
Imparticin
Aadir una nueva materia tambin implica aadir una nica fila, esta vez en la tabla de
asignaturas:
Cdigo Nombre Obligatoria
01 BDDOC Si
02 DRI No
Asignaturas
DNI Nombre Apellidos Tlf
35X Mon Lpez 666
47B Marta Barbeito 333
Profesores
Cdigo DNI
01 35X
Imparticin
Y asignar nuevas materias a Marta y Mon implica tambin aadir, respectivamente, una
nica fila en otra de las tablas:
Cdigo Nombre Obligatoria
01 BDDOC Si
02 DRI No
Asignaturas
DNI Nombre Apellidos Tlf
35X Mon Lpez 666
47B Marta Barbeito 333
Profesores
Cdigo DNI
01 35X
02 35X
01 47B
Imparticin
Como se puede ver, en ningn caso se introduce redundancia ni es necesario modificar o
eliminar filas ya existentes.
Borrado:
Dar de baja a Mon como profesor de DRI y BDDOC implica eliminar nicamente las dos
filas correspondientes. No se pierde ms informacin de la necesaria. Seguimos
manteniendo informacin sobre el profesor y sobre las asignaturas (ahora por separado). Y,
por supuesto, no es necesario ningn otro tipo de operacin adicional al borrado de filas:
Cdigo Nombre Obligatoria
01 BDDOC Si
02 DRI No
Asignaturas
DNI Nombre Apellidos Tlf
35X Mon Lpez 666
47B Marta Barbeito 333
Profesores
Cdigo DNI
01 35X
02 35X
01 47B
Imparticin
Modificacin:
Grao en Informacin e Documentacin: Bases de datos documentais Curso 2013 2014
Autor: Juan Ramn Lpez Rodrguez 8

Modificar la extensin de Mon o de Marta implica la modificacin de dos filas (una por
cada uno de ellos). Ya no hay redundancia, y las anomalas desaparecen.
Cdigo Nombre Obligatoria
01 BDDOC Si
02 DRI No
Asignaturas
DNI Nombre Apellidos Tlf
35X Mon Lpez 1666
47B Marta Barbeito 1333
Profesores
Cdigo DNI
01 35X
02 35X
01 47B
Imparticin
Conclusiones
El diseo de las tablas que componen la estructura de una BD no es sencillo. Es ms que
probable, si la BD presenta una complejidad relativamente alta, realizar un diseo que de
lugar a anomalas de insercin, modificacin o borrado. Con relativo esfuerzo, podemos
llegar a un diseo correcto, pero qu pasar cuando llegue el momento de realizar algn
cambio en el diseo? Convertirn las modificaciones al diseo en incorrecto?
Dado que el diseo directo de las tablas resulta una tarea complicada, lo normal es proceder
de forma gradual: para disear una base de datos, lo que haremos ser desempear una
metodologa en varias etapas, que nos permitir llegar a un diseo de tablas correcto de una
forma intuitiva y sencilla: comenzaremos por un anlisis a alto nivel de las necesidades de
informacin, sin tener en cuenta inicialmente cuestiones de implementacin, y iremos
descendiendo progresivamente de nivel, hasta llegar a los detalles fsicos de construccin
de la base de datos. Las fases genricas que comprende habitualmente una metodologa de
este tipo son:
Anlisis de requerimientos
Diseo conceptual
Diseo lgico
Diseo fsico
Durante la fase inicial de anlisis de requerimientos, deberemos determinar qu
informacin deseamos recoger en nuestra base de datos, sin prestar atencin, por el
momento, a cmo vamos a almacenarla. Y, dado que la informacin se almacena por algn
motivo, deber ser determinados tambin el uso que se le va a dar a esa informacin: la
utilidad que se le va a dar. Eso implica decidir la funcionalidad de los programas y
aplicaciones informticas que van a acceder a la BD. Toda la informacin que se necesita
durante esta fase se determina principalmente a travs de entrevistas y reuniones con los
futuros usuarios (que son los que habitualmente conocen mejor que nadie sus propias
necesidades). En ocasiones ser oportuno tambin contar con el asesoramiento de
especialistas en el tema considerado.
Una vez determinados los requerimientos de la base de datos, ser el turno de la fase de
diseo conceptual. Esta etapa est destinada a la elaboracin un modelo de datos de alto
nivel (el esquema conceptual), que constituya una fiel descripcin de la informacin que
Grao en Informacin e Documentacin: Bases de datos documentais Curso 2013 2014
Autor: Juan Ramn Lpez Rodrguez 9

se almacenar en la base de datos, incluyendo todos los elementos de informacin
necesarios y las dependencias y relaciones entre los mismos. La idea es que el esquema
conceptual describa, en trminos asequibles y sencillos, aquella parte del mundo real que
nos interesa representar o reflejar en la BD.
Para preservar la claridad y sencillez del esquema, este no deber incluir, bajo ningn
concepto, detalles de implementacin; eso significa que la definicin de las tablas que
estructurarn la base de datos debe dejarse para ms adelante. Adems, se deber huir en lo
posible del uso de cualquier tipo de terminologa informtica. Esto permitir a los futuros
usuarios de la BD, personas no familiarizadas con ese tipo de conceptos, colaborar en su
validacin final, para asegurarse que refleje realmente todas sus necesidades de
informacin.
Comenzar a disear la informacin a nivel conceptual tiene dos ventajas: por un lado, al
obviar las cuestiones de implementacin, la descripcin es independiente de la eleccin de
cualquier tipo de SGBD, que puede ser pospuesta hasta un momento ms avanzado del
proceso de desarrollo de la BD. Por otro lado, realizar una descripcin a alto nivel de los
datos simplifica inicialmente el problema de organizar la informacin: para nosotros ser
ms asequible describir un problema utilizando conceptos y trminos con los que nos
encontremos plenamente familiarizados - cindonos a la descripcin de la informacin en
s - en lugar de tener que emplear cualquier clase de jerigonza informtica, y estar
obligados a disear estructuras tales como unas tablas, de acuerdo con unas reglas y un
formato determinado. Quin piensa en tablas en la vida real? Estamos acostumbrados a
manejar conceptos como el de libro, biblioteca, socio, prstamo, alumno, asignatura,
matrcula, empleado, contrato...
Lamentablemente, una organizacin de los datos a tan alto nivel ser difcilmente
interpretable y manipulable por un programa informtico, o por un SGBD. Por lo tanto no
ser posible utilizarla directamente para nuestro propsito de construir una BD. Sin
embargo, es posible realizar la definicin del esquema conceptual de tal modo que sirva
como base o referencia para un diseo de ms bajo nivel (donde ya se defina, por ejemplo,
la estructura de aquellas tablas en las que se vayan a almacenar los datos).
Es en la etapa de diseo lgico en la que se lleva a cabo esa tarea. El esquema lgico
constituye una descripcin a un nivel menor de abstraccin de las estructuras que
permitirn almacenar la informacin. Esta etapa implica ya la seleccin de un determinado
tipo de SGBD (normalmente un SGBD relacional) que prescriba las estructuras a definir
(normalmente tablas).
Adems, al tiempo que se disee el esquema lgico de la BD ser realizado el diseo de los
programas que accedern a la base de datos.
La ltima etapa es la de diseo fsico de la BD. En esta fase, habiendo ya seleccionado un
SGBD concreto, es necesario adaptar el diseo lgico de la BD a la organizacin interna
del sistema: deben definirse las estructuras de almacenamiento internas, el formato de los
archivos en los que el SGBD almacenar la informacin, y los mtodos de acceso a los
mismos, que permitirn la manipulacin de la informacin. El diseo fsico de la BD va
acompaado, habitualmente, de la construccin e implementacin de los programas
informticos que accedern a la misma.
Grao en Informacin e Documentacin: Bases de datos documentais Curso 2013 2014
Autor: Juan Ramn Lpez Rodrguez 10

Modelos de datos
Hemos visto que el diseo de una BD comprende varias fases, siendo el resultado de cada
una de ellas una descripcin (a diferente nivel de abstraccin) de la informacin a
representar en la BD.
La pregunta que surge es cmo deben ser esas descripciones? Para facilitar su realizacin,
contamos con diferentes modelos de datos de referencia. Esos modelos constituyen una
gua para la realizacin de las descripciones, proporcionndonos los conceptos, estructuras
y elementos a emplear, y la forma de utilizarlos y presentarlos.
El modelo entidad-relacin (o modelo ER) es un modelo de datos de alto nivel, que
permite utilizar conceptos muy cercanos a los utilizados por el razonamiento humano. De
acuerdo con este modelo, la realidad est constituida por entidades (objetos del mundo real
con existencia tangible y distinguible, tales como un libro, un alumno, una biblioteca o un
socio de la biblioteca) y relaciones entre esas entidades (la vinculacin entre un socio y una
biblioteca, por ejemplo). Y esa debe ser la visin que debe reflejar toda descripcin
realizada en base al modelo. Su cercana al modo humano de percibir e interpretar la
realidad lo convierte en un modelo idneo para utilizar en la definicin del esquema
conceptual de una base de datos.
El modelo relacional es un modelo mucho ms cercano a una interpretacin de la realidad
asequible para un programa informtico. Los elementos manejados por el modelo relacional
son las relaciones (no confundir con las relaciones del modelo ER), una suerte de tablas
que contienen datos sobre la realidad a representar en la BD. Es por ello que suele ser el
modelo de referencia ms utilizado para la definicin del esquema lgico de una BD.


Grao en Informacin e Documentacin: Bases de datos documentais Curso 2013 2014
Autor: Juan Ramn Lpez Rodrguez 11

Bibliografa

- R. Elmasri y S. Navathe. Fundamentos de los Sistemas de Bases de Datos (3 edicin).
Addison-Wesley, 2002.
- A. Silberschatz, H. F. Korth y S. Sudarshan. Fundamentos de Bases de Datos (4
edicin). McGraw Hill, 2002

También podría gustarte