Thumbnail for ¿Qué son las BASES DE DATOS? - La mejor explicación en español by EDteam

¿Qué son las BASES DE DATOS? - La mejor explicación en español

EDteam

23m 13s3,439 words~18 min read
YouTube auto captions
Transcript source

YouTube auto captions

This transcript was extracted from YouTube's auto-generated caption track. The transcript below is server-rendered so it can be read, searched, cited, and shared without opening the original YouTube player.

Pull quotes
[0:00]Cuando estaba en la universidad, allá en los lejanos años 90 y me tocaba ir a la biblioteca a buscar un libro, encontrarlo requería usar unos enormes ficheros que estaban a lo largo de toda la pared de la biblioteca.
[0:00]Eran unos muebles con unos cajones pequeños, cuadrados pequeños, pero muy largos, entonces tú lo jalabas y había un montón de fichas dentro de estos cajones.
[0:00]Cuando encontrabas el libro, cogías un pedazo de papel, habían unas notas, unos papeles ahí, anotabas y lo llevabas al bibliotecario.
[0:00]Con ese código, el bibliotecario podía saber en qué estante, en qué fila, en qué lugar específico estaba el libro que tú buscabas.
Use this transcript
Related transcript hubs

[0:00]Cuando estaba en la universidad, allá en los lejanos años 90 y me tocaba ir a la biblioteca a buscar un libro, encontrarlo requería usar unos enormes ficheros que estaban a lo largo de toda la pared de la biblioteca. Eran unos muebles con unos cajones pequeños, cuadrados pequeños, pero muy largos, entonces tú lo jalabas y había un montón de fichas dentro de estos cajones. Cuando encontrabas el libro, cogías un pedazo de papel, habían unas notas, unos papeles ahí, anotabas y lo llevabas al bibliotecario. Con ese código, el bibliotecario podía saber en qué estante, en qué fila, en qué lugar específico estaba el libro que tú buscabas. Entonces, siempre a mí me llamó mucho la atención, me impresionó mucho el trabajo de los bibliotecarios, porque imagínate, catalogar esa enorme cantidad de libros. Con el tiempo entendí que esto que hacían los bibliotecarios se llama base de datos. Y con el tiempo también entendí que las bases de datos son las que dominan la tecnología y las que dominan el mundo. Y en este video quiero contarte en qué consisten las bases de datos. Si es la primera vez que vienes a este canal, permíteme presentarme. Soy Álvaro Felipe y soy parte de Team. Somos la única red social educativa en español en la que puedes conocer gente apasionada como tú y también puedes aprender y dominar la tecnología, el diseño y los negocios. Con el Team puedes convertirte en programador o ser un mejor programador de lo que ya eres, ser un buen diseñador o incluso aprender a crear tu propio negocio. Si quieres saber más, puedes comenzar a estudiar gratis hoy mismo visitando nuestra página web en ED.team. Hace un momento dije dos cosas importantes. Número uno, que lo que hacían los bibliotecarios eran base de datos. Y número dos, que las base de datos dominan el mundo de la tecnología. Vamos a entender estas dos afirmaciones. Comencemos por la número uno. Qué cosa es una base de datos. Una base de datos es un conjunto de información almacenado y consultado sistemáticamente. Vamos a desmenuzar esta definición para que te quede completamente clara. En primer lugar, conjunto de información. Okay, qué es un conjunto de información? Es mucha información, bastante información. Recetas de cocina serían información? Sí. Toda esa información tú la puedes almacenar en algún lugar. Es decir, puedes guardar esas listas de recetas en un cuaderno. Luego, consultada, es decir, que una base de datos no es solamente guardar los datos, sino que tenemos que consultarlos. Entonces, podría yo buscar mi cuaderno de recetas para preparar algún platillo en una fecha especial. Pero en la última parte viene la parte más importante de esta definición, sistemáticamente. Es decir, no almaceno y consulto los datos al azar, como caigan. Si un profesor anota la calificación de un estudiante en un papelito, se lo mete en el bolsillo, el papelito luego no sabe dónde lo dejó y anota la calificación de otro estudiante en otro lugar y todo está desordenado y no sabes dónde quedaron las cosas, obviamente no hay un sistema. Estás poniendo las cosas donde caigan. Nosotros necesitamos un sistema, es decir, un plan, un protocolo. Reglas definidas de cómo almacenar la información y cómo consultar la información. Si no hay un sistema, no podemos hablar de base de datos. Entonces, si las calificaciones de los estudiantes están guardados por año, por mes, en orden alfabético, hablamos de un sistema. Entonces, cuando yo busco la calificación de un estudiante, sé dónde buscarla. Si yo organizo mis recetas de cocina en orden alfabético, sé dónde buscarla. Obviamente, la llegada de las computadoras ayuda muchísimo a que las bases de datos sean más eficientes, porque este sistema, por más organizado que sea, es un sistema lento, es un sistema difícil de escalar. Con la humedad o con el paso del tiempo, el papel puede malograrse y perderse la información. Mientras que con base de datos digitales, con informática, podemos guardar o reservar la integridad de los datos, garantizarla, hacer incluso copias de seguridad. Podemos ser más escalables y más eficientes, porque para hacer una consulta utilizamos el poder de cómputo. Ya no utilizamos a una persona abriendo ficheros, abriendo cajones, abriendo cajas. Utilizamos el poder de cómputo y los algoritmos. Entonces, cómo se llevan las bases de datos tradicionales en papel a una base de datos digital controlada por software, a través de algo llamado sistema gestor de base de datos. Entonces, tenemos por un lado el sistema gestor de base de datos, que es el software que se encarga de hacer toda la gestión de la base de datos y la base de datos como tal, que es la información guardada ahí. Entonces, recuerda, no es lo mismo base de datos que sistema gestor de base de datos. Esta base de datos es la información y este sistema gestor es el software. Con los sistemas gestores de base de datos, nosotros podemos crear la estructura de nuestras base de datos, podemos escribir información en nuestra base de datos, podemos consultar información, podemos asegurar la integridad de los datos y también podemos controlar el acceso a esta información. Definir los permisos de quién puede y quién no puede visualizar o acceder a esta información. Hay que tener en cuenta que las computadoras modernas electrónicas se crean en los años 40 en el siglo XX. Tenemos un video aquí en EDteam donde te contamos cómo se crean las computadoras y cómo se inventa la programación. Cómo las mujeres inventaron la programación. Si quieres ver ese video, por aquí va a salir una tarjetita para que no te lo pierdas. Pero volviendo al punto, en los años 40 se crean las computadoras, pero estas no tenían memoria, era volátil. Introducíamos los datos y los datos se iban. Entonces un gran reto de la computación era cómo guardar los datos. En los años 50 se empiezan a guardar los datos en cintas magnéticas, lo cual está muy bien. A nada. El problema con las cintas magnéticas es que son secuenciales. Hay que recorrer toda la cinta magnética para llegar al lugar donde está la información. Por ejemplo, imagínate que tú estás en un pasillo muy largo y al final del pasillo hay una caja que tú debes recoger. Entonces tú debes caminar todo el pasillo, porque no puedes teletransportarte como Goku. Tienes que caminar todo el pasillo y recoger la caja y traerla. Más o menos así funcionan las cintas magnéticas. Nosotros tenemos que recorrer toda la cinta para llegar a la información, pero es la primera versión de base de datos que podemos tener en el mundo informático. A esta la llaman base de datos de navegación. En los años 70, Edgar Cod escribe un documento en el que define los principios de las base de datos relacionales para que sean más eficientes frente a las bases de datos de navegación. Obviamente, también el soporte era mejor, porque ya no teníamos las cintas magnéticas, sino teníamos discos duros, que eran de más rápido acceso. Estas bases de datos relacionales son las que cambian completamente la industria y cambian el mercado, porque ya hay una estructura definida, ya hay relaciones. Tú te preguntarás qué es relación. Te lo explico muy rápido así. Tú puedes tener una lista de cursos en una universidad y una lista de estudiantes en la misma universidad. No todos los estudiantes toman los mismos cursos, entonces hay que relacionarlos. Qué cursos toma cada estudiante? Esa es la manera más sencilla de explicarte por qué se llaman base de datos relacionales. En los años 70 se define este modelo relacional y los expertos en informática se dan cuenta que hay una enorme oportunidad de negocio, porque imagínate llevar los datos de las empresas a un sistema informático escalable, es dinero, dinero contante y sonante, porque los datos son la base de las operaciones de las empresas. El más exitoso de todas estas personas fue Larry Ellison, que fundó Oracle a finales de los años 70 y se hizo multimillonario con sus bases de datos Oracle. En los años 80 aparece SQL Server de Microsoft y en los años 90 aparece MySQL y Postgres, que son sistemas de base de datos Open Source. Ya no necesitamos pagar una licencia y los podemos usar libremente. Aunque luego, años después, Oracle compra San Microsystems, con lo cual se lleva a Java y se lleva a MySQL a su casa. Pero esa es otra historia. En los años 2000, inicios de los años 2000, el mundo cambia completamente, aparece algo llamado web 2.0. Revienta la burbuja.com, muchas empresas quiebran y empieza la web 2.0, una web más democrática, una web en que los usuarios crean contenido. Antes, las empresas eran las que definían el contenido, definían la estructura de su información. Pero aparecen los blogs, aparecen las redes sociales y aparecen muchos sitios como foros, como comunidades, donde nosotros podemos empezar a crear nuestra propia información. Era una revolución total. Entonces, el acceso a los datos se hace más complicado. Hay tanta información creándose todos los días, porque son los usuarios las que la crean, que las base de datos relacionales empiezan a quedarse cortas para esta escala. Entonces, aparecen las base de datos no relacionales. Entonces, ya no tenemos lista de alumnos y lista de cursos y los relacionamos. Porque en el momento en que lo relacionamos, cuando queremos consultar la información, tenemos que buscar aquí, tenemos que buscar aquí y tenemos que buscar la relación, el famoso join. Entonces eso es lento. Claro, no es lento cuando consultamos cientos o miles de datos, pero cuando consultamos millones o miles de millones a gran escala, ya la cosa se pone un poco complicada. Entonces, en vez de tener una lista y una lista, metámolo todo junto. Así consultamos de una sola vez. Hablemos ahora sí un poquito más en detalle de las base de datos relacionales o base de datos SQL. Estas base de datos, como su nombre lo dice, tienen relaciones, es decir, tú creas entidades que son datos que mantienen cierta estructura y los relacionas entre ellos. Te voy a poner un ejemplo muy sencillo para que lo entiendas, el ejemplo de la lista en la universidad. Tienes cursos por un lado, tienes estudiantes por un lado, tienes profesores por otro lado. Entonces, un profesor no dicta todos los cursos, un estudiante no lleva todos los cursos, entonces hay que definir las relaciones entre ellos. Pero, pero en el mismo lugar donde tú guardas a los cursos, no vas a guardar a los estudiantes, vas a mezclar cursos con estudiantes, no tiene sentido. Tampoco vas a mezclar estudiantes con profesores o profesores con cursos. Entonces, tú defines un lugar donde están solo los estudiantes, otro lugar solo para los profesores y otro lugar solamente para los cursos. Cada uno de esos lugares se llama tabla. Y dentro de las tablas existen registros. Los registros son cada uno de esos datos guardados en esa tabla. Por ejemplo, cada profesor es un registro en la tabla profesores, cada curso es un registro en la tabla cursos, cada alumno es un registro en la tabla alumnos y cada uno de los registros tiene campos. Por ejemplo, cada alumno tiene nombres, apellidos, correo electrónico, teléfono, el semestre en el que está estudiando, etcétera. Esos son los campos. Si te das cuenta, esto es una tabla. El término tabla no es una abstracción, realmente es una tabla. Hay filas que son los registros y hay columnas que son los campos. Sí, igual que una tabla en una hoja de cálculo, en un Excel, idéntico. Y lo que hay que hacer es hacer las relaciones entre las tablas. Todo este proceso de abstraer la necesidad del cliente, la necesidad del producto que estamos desarrollando y diseñar las tablas de datos se hace con algo llamado modelo entidad relación. Entonces, ahí tú dibujas las entidades, dibuja las relaciones que van a haber entre ellas y de esa manera diseñas tu base de datos. Este tipo de base de datos se llaman SQL también por el lenguaje de consultas SQL o Structured Query Language. Este lenguaje no solamente permite consultar información, también nos permite escribir información. Como me dijo Alexis Lozada, mientras me entrenaba para este video, SQL les quedó chiquito. Porque query es consulta, pero en realidad hace mucho más que consultas este lenguaje SQL. SQL realmente se divide en tres lenguajes. El primero es DDL o Data Definition Language, que como su nombre lo dice, define las estructuras. Con DDL, tú lo que haces es definir las estructuras, definir cómo van a ser cuáles van a ser las tablas, cómo van a ser los registros, qué campos van a tener los registros, pero no llenas información con DDL. Para llenar información necesitas DML, que es Data Manipulation Language. Con DML ya haces el famoso crud, haces el insert, que es llenar de datos las tablas, haces el select, que es leer datos de estas tablas, haces el update, que es actualizar los datos y haces el delete, que es borrar datos de esta tabla. Y por último tenemos el DCL, que es el Data Control Language, con el cual tú controlas los permisos de acceso a estas bases de datos. Debes tener en cuenta que aunque existen varios sistemas de base de datos relacionales, como Oracle, SQL Server, MySQL o Postgres por citar a los más importantes, todos ellos usan SQL. Si tú sabes SQL, tú puedes escribir código SQL y consultar datos de cualquiera de estos sistemas. Cada uno de estos sistemas va a tener funciones muy propias de ellos, que no comparte con otro sistema. Por ejemplo, en Postgres puedes consultar la fecha de una forma y en MySQL puedes consultarla de otra, pero esas son funciones propias. El lenguaje SQL es estándar para todos los sistemas de base de datos relacionales. Y además de las bases de datos relacionales, tenemos las no relacionales o también conocidas como NoSQL o Not only SQL. Estas bases de datos tienen como principal diferencia que no tienen una estructura definida. Cuando tú creas una base de datos relacional, tienes que hacer un proceso llamado diseño de la base de datos, donde usas el modelo entidad relación, donde abstraes lo que necesita la aplicación, el software, el cliente y lo llevas a un diseño. En una base de datos no relacional, no necesitas hacer esa definición tan estricta. Tú puedes tener redundancia de datos. Ejemplo, tienes aquí los cursos y tienes aquí los alumnos. Y luego defines las relaciones. En una base de datos no relacional, puedes tener los cursos y dentro de cada curso, dentro, como si fueran campos, tener a todos los estudiantes de ese curso. Y en el curso dos, tener a todos los estudiantes de este curso. Y es un poco raro porque el estudiante se va a repetir, si un estudiante lleva dos cursos, se va a repetir en varios lugares. Eso es inaceptable en una base de datos relacional. Por eso se normalizan las bases de datos para no tener redundancia, pero en las bases de datos no relacionales, eso es permitido. Porque lo que se busca es un acceso muy rápido, muy veloz, ahorrar poder de cómputo. Hay que tener en cuenta que este tipo de base de datos es creado por empresas que necesitan muchísimo rendimiento. Y cuando hablo de muchísimo rendimiento, hablo de muchísimo rendimiento. No creas que porque tú tienes 1000 usuarios ya es mucho rendimiento. Hablo de mucho rendimiento. Casos como Amazon que creó DynamoDB porque necesitaba reducir en décimas de segundo la respuesta para sus clientes. Porque esas décimas de segundo le cuestan miles de dólares. Entonces crearon su propio sistema que es DynamoDB y que tú también lo puedes usar desde AWS, o por ejemplo, Facebook que crea Cassandra. Nuevamente con la misma finalidad de poder responder a esa demanda gigantesca de usuarios que están consultando, leyendo, escribiendo información todo el tiempo. Entonces, las bases de datos no relacionales tienen como prioridad no la integridad de los datos, sino la velocidad. La escala super rápida, pero hay que tener en cuenta algo muy interesante. Todas las empresas usan stacks distribuidos. Es decir, pueden usar más de un lenguaje de programación, pueden usar más de un sistema en la nube, pueden usar más de una base de datos o de un sistema gestor de base de datos. Porque cuando crecen las aplicaciones, empiezan a tener servicios distribuidos que luego se van conectando según su necesidad. No hay como, no hay un sistema monolítico donde todo esté empaquetado. Entonces va a ser normal que tú veas, por ejemplo, que Netflix usa MySQL para ciertas cosas y usa DynamoDB para otras. Va a ser normal. El detalle es que tú tienes que definir claramente tus necesidades. Bueno, realmente tú no, sino el sitio de tu empresa, salvo que sea un proyecto pequeño o un emprendimiento en el que tú sí tendrías que definir con mucha sabiduría qué tipo de sistema de base de datos utilizar. Por ejemplo, en el mundo de las finanzas o en el mundo empresarial, no sería buena idea tener base de datos no relacionales, porque en el mundo de las finanzas, la integridad y la normalización de los datos es vital. No puedes tener datos repetidos. En una red social que necesite escalar mucho, o en un sistema como Netflix, que necesita responder muy rápido a los usuarios, una base de datos no relacional podría ser la idea. Pero recuerda que estamos hablando de gran volumen de información. Hay empresas gigantes como Slack que usan base de datos relacionales, MySQL en este caso. Dropbox usa MySQL también. Entonces, uno de los mitos que hay que quitarnos es que las base de datos no relacionales son más veloces y por ende, si tú quieres velocidad, cámbiate a una base de datos no relacional. La diferencia de velocidad realmente es muy pequeña. Tendrías que estar en entornos de altísima demanda, que solamente lo tienen pocas empresas en el mundo para notar realmente la diferencia. Para el resto de mortales, la diferencia es muy pequeña y la decisión va a depender de criterios muchísimo más técnicos que tan solo moda o tan solo hablar de velocidad. Es más complejo el asunto. Como ejemplo de base de datos no relacionales tenemos a MongoDB, Cassandra, DynamoDB, CouchDB o Redis. Al iniciar este video te dije que las bases de datos dominan el mundo de la tecnología. Pero no te expliqué por qué. Si has estado atento a este video te darás cuenta de por qué no existe tecnología sin datos. De hecho, la programación en sí misma es manipular datos. Cómo manipulas datos si no los puedes almacenar en ningún lugar. Sería una programación volátil, una programación de momento y que luego desaparece y que no tiene ninguna aplicación práctica. De hecho, ese fue el primer problema de la programación que hubo que resolver, cómo guardar esos datos. Además, hoy vivimos en una época en la que la información es dinero. Vivimos en la economía de la información. Cuando nosotros decimos que Facebook nos espía o que Google nos espía, o vemos que que entramos a una página web y luego los anuncios de esa página web nos persiguen por todo el internet, es porque alguien guardó esa visita tuya en una base de datos y luego te estuvo persiguiendo por internet dándote publicidad. El dinero sale de los datos. El machine learning, que es entrenar a las computadoras, se hace con datos. El marketing, la analítica, todo en este mundo se hace con datos. Cuando tú escribes un tweet, publicas una foto en Instagram, subes una historia, son datos. Que en algún lugar están almacenados y con esos datos se hace muchísimo dinero. Las base de datos dominan el mundo de la tecnología. Y si tú quieres dominar el mundo de la tecnología y quieres conocer el mundo de las base de datos, obviamente el lugar adecuado para ti es EDteam. Te invito a ir a ED.team/cursos para buscar nuestros cursos de base de datos y convertirte en un experto del mundo de la tecnología. Yo soy Álvaro Felipe, espero que este video te haya gustado mucho. Si es así, por favor, suscríbete, compártelo, cuéntale a tus amigos para que también vengan a EDteam y no te olvides de ir a nuestra página web ED.team para que conozcas más del mundo de la tecnología y puedas empezar a estudiar gratis o premium hoy mismo. Nos vemos en el próximo video. Hasta la próxima. Chao.

Need another transcript?

Paste any YouTube URL to get a clean transcript in seconds.

Get a Transcript