Pensamientos computables - www.pensamientoscomputables.com
20

¿Por qué una base de datos no puede ser diseñada por cualquiera?

Publicado el: 13/08/2010
Fragmento de esquema entidad relación
Por desgracia mucha gente, sobre todo en España, piensa que diseñar una base de datos relacional es algo muy sencillo y que cualquiera que vaya a un par de clases de una academia a aprender Microsoft Access puede dedicarse a ello. Pero no ocurre lo mismo cuando en lugar de una base de datos se trata de diseñar un edificio, un avión o un coche. En estos casos la gente tiene bien claro que necesita un arquitecto, un ingeniero aeronáutico y un ingeniero automovilístico, respectivamente. ¿Pero quién tiene la culpa de esta forma de pensar?

Por un lado, la mayoría de la gente que usa un ordenador sólo conoce la existencia de la informática a nivel de usuario, y por ignorancia piensan que no se necesitan profesionales para hacer cualquier cosa relacionada con la informática, porque lo ven todo muy fácil. El nivel de especialización y años de estudio que requieren ciertas ramas de la Informática, como las bases de datos, es algo totalmente desconocido para ellos, por lo que no ven la informática, ni siquiera como una profesión, cuando en realidad es una profesión tan compleja como puede ser la de un médico, un arquitecto o un ingeniero industrial.

Por otro lado, la culpa es del propio Microsoft Access, que se vende como una herramienta que cualquiera puede usar con la misma facilidad que un procesador de textos como el Word, o como una hoja de cálculo como el Excel. Aunque Access, en cuanto a las funcionalidades y rendimiento, sea un Sistema Gestor de Base de Datos (SGBD) de juguete, no significa que diseñar una base de datos con esta herramienta vaya a ser más fácil. Si queréis un buen consejo, nunca vayáis a aprender Access a una academia. Aprender Access requiere aprender primero a diseñar bases de datos y para eso necesitaríais varios años.

Además de eso Access ha influido muy negativamente en el mundo de las bases de datos porque ha conseguido cambiarle el nombre a los elementos del modelo relacional. Si sabéis algo de bases de datos habréis oído los términos tabla, registro, campo y relación que son nombres inventados por Access. En su lugar se debe usar los nombres correctos del modelo relacional que son relación, fila, columna y clave ajena respectivamente.

A menudo, en mi experiencia laboral, me he encontrado con bases de datos de gente que alegremente, sabiendo poco o nada de bases de datos, se la han hecho ellos mismos para su empresa, para después darse cuenta que necesitaban a un profesional para desarrollarla. A continuación voy a exponer los 3 fallos más graves que normalmente me encuentro. Cualquiera de estos fallos provoca tales incoherencias en los datos introducidos que hace que esas bases de datos sólo sirvan para ocupar espacio y perder el tiempo:

1.- Usar menos relaciones (tablas según Access) de las necesarias: El que necesita la aplicación siempre piensa que es muchísimo más sencilla de lo que en realidad es. Para una base de datos pequeña que necesite unas diez relaciones, el usuario pensará que necesita una o dos y para una base de datos grande de unas 200 o 300 relaciones el usuario pensará que necesita diez.

2.- No usar claves primarias. Toda relación debe tener siempre una clave primaria, es decir, una columna cuyo valor no se pueda repetir y que de esta manera identifique unívocamente cada fila de la relación. De lo contrario podremos hacer cosas como, introducir 1.000 veces el mismo cliente en la base de datos, sin saber que ya lo hemos insertado, o que cada fila tenga datos de contacto diferentes para el mismo cliente y además no sea posible establecer claves ajenas en otras relaciones para asignar, por ejemplo, qué pedidos se han hecho a ese cliente.

3.- No usar claves ajenas o no exigir integridad referencial en las claves ajenas. Esto produce incoherencias en inserciones, borrados y actualizaciones. Siguiendo con el ejemplo anterior del cliente que realiza pedidos, podríamos insertar pedidos aunque no tengan cliente asignado, borrar clientes que hayan realizado un pedido o asignarle, en una actualización, un pedido a un cliente que no corresponda.

A parte de todo esto, lo más normal es que la base de datos no esté normalizada, es decir, que esté mal diseñada. Para comprobarlo se aplican las formas normales, que son una manera de asegurar que el diseño de la base de datos se ha realizado correctamente. Primero se comprueba que está en primera forma normal. Si lo está, se comprueba que esta en segunda y así hasta la quinta. Normalmente una base datos realizada por una persona no experta pasa raramente de la primera y nunca de la segunda.

El diseño de una base de datos relacional es algo complejo, es el arte de adaptar lo máximo posible el modelo matemático del álgebra relacional a la realidad. Lo cual no siempre es posible conseguirlo al 100%, por lo que, a veces, hay que recurrir a la programación para solventar los desajustes de la realidad con el modelo. Para encontrar estos desajustes se recurre a otros modelos de datos más expresivos que se van convirtiendo al modelo relacional implementado por el SGBD a utilizar, de forma que se realiza un primer diseño en un modelo conceptual como el modelo Entidad Relación Extendido, luego se convierte a un modelo lógico como el modelo relacional y por último se convierte al modelo físico del SGBD, que suele ser un relacional con ciertas peculiaridades según su implementación. Sólo una persona que haya diseñado una gran cantidad de bases datos y haya estudiado los fallos en cada caso, puede estar capacitada para realizar esta difícil tarea.

Asi mismo hacer que la base de datos se ajuste a la realidad del negocio y a las necesidades del cliente, es algo bastante complejo ya que lo más común es que haya que orientar al cliente sobre qué necesita y, en caso de que sepa lo que quiere, no suele corresponderse con lo que le hace falta. Esta situación además produce que el cliente vaya cambiando continuamente de opinión respecto a lo que desea durante el desarrollo del producto, algo con lo que un profesional está acostumbrado a lidiar.

Ahora sabiendo todo esto ¿Qué pensáis? ¿Dejaríais el diseño de las base de datos de bancos, centros de salud, medios de transporte, etc., en manos de un Ingeniero Informático o en las manos de cualquiera? Independientemente de lo que penséis, la absurda respuesta del gobierno de España, para el caso de las Bases de datos y cualquier otra cosa relacionada con la informática, es dejarlo en manos de cualquiera, en parte por ignorancia y en parte por intereses económicos. Esto, a la larga, nos va a salir caro a todos.

Pensamientos (7): Ver comentarios Comentar
Categorías: ,

Comparte:

Copia y pega en tu página:

Comparte
Escribe tus pensamientos computables

Respondiendo a los siguientes comentarios:

Para comprobar que eres un humano responde correctamente:

Esta pregunta no me gusta, ¡cambialá!

Ninguno de estos datos será almacenado.

(Escribe el correo electrónico)

Campo obligatorio.

(Escribe el correo eléctronico o los correos electrónicos separados por comas)

Campo obligatorio.

Para comprobar que eres un humano responde correctamente:

Esta pregunta no me gusta, ¡cambialá!

Pensamientos
Tobal
Fecha: 15/08/2010 Hora: 20:21:21

En mi opinión no es nada sencillo y si la gente lo ve es porque informáticos lo han hecho de alguna manera más sencilla para el usuario. Creo que ese punto es clave. Los programas fáciles de usar son resultado del trabajo de informáticos que lo han diseñado facil para el usuario.

Dicho esto y despues de 2 meses viendo una base de datos y sigo pensando que es algo muy ODIDO xDDD

Dices que se necesitan dos años pero supongo que te refieres solo a entender en si la base de datos porque si quieres realizar aplicaciones como hemos hablado en algún momento creo que te lleva no solo la carrera sino tiempo de más investigando en el tema.

El problema que planteas es posiblemente el gran problema que existe en este paí y es la falta de profesionales y lo mal reconocido que estan las carreras.

Nadie dudaría que realizar una operación a un paciente (la que sea), la debe realizar un cirujano, o que un arquetecto diseñe un edificio...Es triste que gente con titulo de la ESO ( esto es verídico) trate de contradecirte en conocimientos o que simplemente te comparen (resulta gracioso que digan que una persona que ha impartido muchisimos menos creditos que tu y un temario mucho más light en un tema, este sepa más).

Resulta más gracioso ver esto y lo que es peor, vivirlo tu mismo, cuando hace ya unos meses se habló de frenar la "fuga de cerebros". Pero bueno, no continuo con el tema que enfada xDDDDD

Linkusb
Fecha: 25/08/2010 Hora: 23:24:03
A ver que te parece la Base de Datos Española de Composición de Alimentos construida con los estándares europeos desarrollados por la Red de Excelencia Europea y varios años de trabajo. Crearon una red de Centros de investigación públicos, Administración e Instituciones privadas para mantener esta base de datos. El diseño de la Web que realiza las consultas lo ha realizado un diseñador de niveles para el juego Doom y se nota, el acceso me costó unos cuantos clics al azar. La utilidad de esta base de datos podrá valorarse si incluyen más datos.
Linkusb
Fecha: 25/08/2010 Hora: 23:44:07

Te comento una acedota también que me ocurrió.

Estuve jugando con en una Web de una aerolínea de bajo coste, reservando en un gráfico a color con el dibujo del avión todos los asientos que habían alrededor del mío. Después de obtener mi número de asiento pagué un suplemento adicional para cambiarme otra vez de asiento. A una mujer le imprimieron el mismo número de asiento en su tarjeta de embarque que a mí. Yo quería averiguar la razón o que me explicasen en realidad cual era el asiento que habíamos reservado, pero sentaron a la mujer en el primer asiento y listo, creo que ya ni existen las listas de pasajeros. El sistema me ofrece el asiento como opción y me lo cobra pero no lo graba, quizás porque ya había facturado de forma electrónica, ya no me acuerdo.

Anónimo
Fecha: 18/04/2012 Hora: 14:29:22
Tienes toda la razón, Zapatero a tus Zapatos, pienso que los cursos a que haces referencia son sólo capacitación para el personal que va a ingresar la información y tener conocimiento en el tema, como digitador de la información en un momento puntual más no como diseñador de base de datos.
Sebastian
Fecha: 28/07/2012 Hora: 6:31:03
no se como ven a la informática allá ,pero acá en argentina lo ven como algo bastante complejo y lo respetamos, como un trabajo bastante complicado y estresante :)
Sergy
Fecha: 07/08/2012 Hora: 22:24:17
Estudiante de LADE. Me quedé fascinado por la complejidad en la creación de una base de datos con Access. Desde luego no es tan fácil como lo pintan y requiere una práctica constante, además de cierta capacidad de abstracción.
Ambrosiozack
Fecha: 20/11/2012 Hora: 0:26:34

Yo opino que el trabajo bien hecho es el que esta hecho por profesionales. Me mosquea que mucha gente vaya de listillos en el mundo de la informatica cuando lo unico que han hecho es reparar cuatro ordenadores y hecho cuatro tonterias. A mi me a pasado que por reparar unos pocos ordenadores ya me catalogen como informatico, y pienso que un un profesional es el que tiene unos conocimientos avanzados. Me pasa tambien lo que mencionas en este post y en otros que he leido, que la gente se piensa que las cosas son sencillisimas de hacer y que ellos tambien pueden. Muchas veces me preguntan sobre cosas que se podrian hacer, y muchas veces respondo, que supongo que se podria hacer, ya que si no lo se con exactitud no voy a asegurarlo al 100% y muchas respuestas son , "eso no es tan dificil" y pasa que se realiza la demanda, pero siempre de manera chapucera. No hay que menospreciar el trabajo de un profesional, ya que lo hará mejor que un usuario que va de listillo. Se tiene que empezar a mirar esta rama como algo mas serio, y que la gente empiece a entender que la informatica tiene muchas ramas y que no tienes porque ser experto en todo.

Un saludo.

Daiatron en Google+