32

Qué es SQL y NoSQL

43864Puntos

hace 6 años

Transcripción

Las bases de datos son la fundación de todas nuestras aplicaciones, aplicaciones web, aplicaciones de escritorio. Cualquier cosa tiene que lidiar con datos, sean imágenes, sea texto, sea lo que sea. Esa aplicación de Instagram tiene una base de datos, Tinder una base de datos. Todo tiene una base de datos por detrás.

Hay dos tipos de bases de datos, relacionales y no-relacionales. Las relacionales son las que hemos conocido toda la vida. Las no-relacionales son un nuevo concepto que está tomándose por completo al mundo. Para hablar de una base de datos relacional, podemos pensar en un restaurante. Un restaurante tiene un menú, y el menú tiene ítems dentro del menú. Esto es simplemente una relación. Los restaurantes tienen menús y los menús tienen ítems. Vean como todo va en un arbolito y todo está interconectado entre sí. Si tenemos un restaurante podemos tener muchos restaurantes y todos esos restaurantes tienen un modelo que tiene un menú, y el menú tiene ítems. Si lo expandimos más, a la misma altura del menú el restaurante también tiene meseros y cocineros. Menú, meseros, cocineros son parte de la relación restaurante.

El menú tiene ítems. Los meseros tienen detalles, por ejemplo, los meseros tienen nombre, tienen fecha de entrada, tienen horarios de salida, estos son atributos del mesero, estos son los elementos que no relacionan al mesero con el resto, sino que generan sus datos y siempre son el mismo. En las bases de datos relacionales, cuando definimos un elemento, un ítem que es conocido como una tabla, siempre tiene los mismos ítems. ¿Qué pasa en una base de datos relacional cuándo, digamos, quiero agregar que si los meseros son hombre o mujer? ¿Qué pasa cuando en la base de datos quiero agregar la fecha del mesero y no lo pensé por primera vez? Y digamos que ya tengo 5.000 meseros. Tendríamos que cambiar todo el modelo. Tendríamos que agregar el campo de edad e irnos uno por uno agregando la edad. Generaríamos una redundancia increíble.

Normalmente, las bases de datos relacionales arreglan esto con algo llamado normalización. Normalización es simplemente optimizar la base de datos para eliminar la redundancia. Pero resulta que en el mundo real, siempre hay redundancia. En el mundo real nadie es igual. Por ello, llego NoSQL. NoSQL también conocido como “Not only SQL”, o “No solamente SQL”, es la nueva forma de crear bases de datos.
Pausa. ¿Ustedes entienden que es SQL? SQL es un término con el que ustedes se van a enfrentar muchísimo cuando estén aprendiendo base de datos. SQL viene de Structured Query Language o Lenguaje Estructurado de Consultas. Es una forma, se siente como programar, pero no es realmente programar, para preguntar en la base de datos ciertos datos. Por ejemplo, en una base de datos relacional, yo le puedo decir, “Selecciona todos los meseros del restaurante Ofelie”. Y me va a devolver sólo los meseros que cumplan con esa condición o con una serie de condición.

Desde el mundo muy alto todo esto tiene que ver con algo llamado teoría de conjuntos. Pero no se preocupen de eso por ahora.
Por cierto, dato histórico, SQL se le dice “sequel”, en vez de S-Q-L, porque el primer motor de bases de datos que lo uso se llamaba Secuela, sequel, y simplemente se quedó en el saber popular que en vez S-Q-L decimos sequel. Esto sólo se los pueden contar sus padres.

¿Cómo funciona una base de datos no-relacional? En el mismo modelo de restaurantes-meseros lo que tenemos es documentos o variables. Tenemos una colección de datos que se parecen entre sí, pero que no son necesariamente iguales. En nuestro ejemplo podemos tener una colección de meseros que le pertenece a un restaurante. Los meseros pueden tener nombre, todos, algunos pueden tener su fecha de nacimiento, no importa si algunos no lo tienen, y otros pueden tener su turno, su sexo, sus años de experiencia y un ranking interno. No necesitamos crear relaciones nuevas cuando queremos agregarle atributos nuevos a los objetos de una colección o de un documento en una base de datos no-relacional.

¿Qué tiene de ventaja? No hay redundancia, es mucho más liviana y es mucho más veloz como bases de datos. También existen bases de datos no-relacionales increíblemente livianas. Yéndonos un poco técnicos, las típicas bases de datos relacionales son MySQL, Oracle, Postgres. Aunque algunas de estas como Postgres, tienen modos no-relacionales. Las típicas bases de datos no-relacionales o NoSQL son mongoDB, Redis, o manCouch [SP].

Redis es un caso extremo. Redis es una base de datos donde solamente tengo un nombre y una variable. Yo puedo guardar con un nombre o una llave una variable específica. En las bases de datos relacionales, siempre tenemos una llave que nos identifica quién es. Por ejemplo, cuando ustedes son ciudadanos su llave identificación es la cédula de ciudadanía, el DNI, el pasaporte. En una base de datos no relacional, podemos tener una llave pero realmente no la necesitamos. Simplemente necesitamos un indicador único como tu nombre de usuario.
Las bases de datos no-relacionales tienen la gran ventaja de ser ridículamente veloces. ¿Y si no usamos SQL, qué usamos? Usamos algo llamado JSON.

No en todos los casos. JSON, Javascript Object Notation, es la forma en la que internamente tienden a organizarse muchas bases de datos NoSQL populares. Pero JSON no es un lenguaje de programación para hacer una búsqueda, es simplemente una forma de estructurar los datos de tal manera que cualquier programa de computación los pueda entender. La respuesta es Javascript.
Donde en las bases de datos relacionales que usamos SQL, en las bases de datos no-relacionales usamos Javascript.

Esto es una pequeña muestra de la gran cantidad de conocimiento que ustedes van a obtener en el curso profesional de bases de datos. Tenemos…

Freddy
Freddy
freddier

43864Puntos

hace 6 años

Todas sus entradas
Escribe tu comentario
+ 2
1
32Puntos

Somos un grupo de personas que han tomado la decisión de ayudar a las personas con necesidades financieras, ponemos a disposición de todas las personas necesitadas una suma de dinero que puede ayudar a resolver esta necesidad financiera, necesitamos conocer más personas contactadas vía
email : [email protected]