Professional Documents
Culture Documents
de datos no relacionales el
futuro?
9 junio, 2014 Tecnologa 9
Una tabla de una base de datos relacional tiene una estructura semejante a la
de una hoja de clculo
Este modelo parece perfecto, o casi. Permite crear desde bases de datos muy
sencillas hasta las ms complejas, garantiza la integridad de los datos y
dispone de un lenguaje sencillo y que casi cualquier programador conoce bien.
El principal problema de este modelo es que todo esto es costoso en
trminos de rendimiento. No es que las bases de datos relacionales sean
terriblemente lentas pero cada operacin tiene un coste de tiempo elevado,
precisamente, por todas esas garantas sobre los datos y las transacciones.
Adems, las estructuras que se crean estn diseadas para modificarse poco.
Si necesitamos aadir un nuevo dato a algunos de nuestros empleados, la
tabla Empleado necesitar una nueva columna. Todos los empleados
existentes tendrn ese nuevo campo, lo necesiten o no. Esto puede hacer que
una base de datos cuya estructura necesite ser modificada peridicamente
crezca a lo ancho, aumentando la necesidad de almacenamiento y los tiempos
de proceso.
LA APROXIMACIN NO RELACIONAL
Las bases de datos basadas en SQL son parte de las habilidades bsicas de la
mayora de programadores. Incluso los especializados en reas bien alejadas
de las aplicaciones de gestin conocen los principios bsicos y son capaces de
utilizar el lenguaje SQL en caso de necesidad.
Esto hace que la forma de disear estas bases de datos pueda resultar un
impedimento: las bases no relacionales exigen pensar de otra forma desde el
principio.
Por ejemplo en MongoDB (la base de datos ms utilizada), nuestras tablas
Empleados y Vacaciones, podran quedar as:
Consulta en SQL
SELECT*FROMEMPLEADOS,NOMINAS,VACACIONES
WHEREEMPLEADOS.ID_EMPLEADO=NOMINAS.ID_EMPLEADO
ANDEMPLEADOS.ID_EMPLEADO=VACACIONES.ID_EMPLEADO
ANDEMPLEADOS.APELLIDOS="FERNNDEZGARCA"
Consulta en MongoDB
db.empleados.find({apellidos:'FERNNDEZGARCA'})
Actualizacin en MongoDB
db.empleados.update(
{apellidos:"FERNNDEZGARCA"},
{$push:{vacaciones:{"fecha_inicio":"20/07/2014",
"fecha_fin":"31/07/2014"}}}
)