¿Por qué importa cómo guardamos los datos?
Una base de datos es una colección organizada de información, pensada para guardarla, buscarla y modificarla de forma rápida y confiable — la estructura que hay detrás de cada app que "recuerda" algo sobre nosotros.
Pensá en una base de datos como el archivo de legajos de tu escuela. Si hay dos fichas con el mismo alumno pero con datos distintos, ¿cuál es la correcta? ¿Qué pasa si borrás a un alumno y sin querer también se va todo su historial académico?
Esos problemas existen en cualquier sistema informático que almacene información. Para evitarlos, las bases de datos tienen mecanismos de integridad y coherencia. Además, a veces necesitamos herramientas especiales para convertir o editar esos datos: ahí entran los programas utilitarios.
Integridad
Garantiza que los datos sean correctos, válidos y que cumplan con las reglas del sistema. Ejemplo: que la edad de un alumno no sea negativa.
Coherencia
Asegura que los datos no se contradigan entre sí dentro de la base. Si un alumno está en dos tablas, debe ser el mismo alumno.
Utilitarios
Programas que permiten convertir archivos entre formatos o editar datos directamente, sin necesidad del sistema principal.
Pregunta para entrar en calor
Una base de datos de una biblioteca tiene registros de libros prestados. En un registro dice que el libro fue devuelto el 5 de marzo, pero en otro registro del mismo préstamo dice que todavía está prestado. ¿Qué problema describe esto?
Bases de datos relacionales y no relacionales
Hasta acá hablamos de "la base de datos" como si fuera una sola cosa, pero en realidad existen distintas formas de organizar la información. Las dos grandes familias son las relacionales (también llamadas SQL) y las no relacionales (también llamadas NoSQL). Entender esta diferencia es la base para todo lo que viene después: integridad, coherencia y utilitarios funcionan distinto según el tipo de base con la que estemos trabajando.
Relacionales (SQL)
Organizan los datos en tablas de filas y columnas, como una planilla de cálculo. Las tablas se relacionan entre sí mediante claves, y tienen un esquema fijo: todas las filas de una tabla respetan la misma estructura.
No relacionales (NoSQL)
Guardan la información en formatos más libres: documentos, pares clave-valor, grafos o columnas. No exigen un esquema fijo, así que cada registro puede tener una estructura distinta.
Un mismo dato, dos formas de guardarlo
Pensemos en guardar la información de una alumna y sus notas.
Tabla ALUMNOS
| ID (PK) | Nombre | Curso |
|---|---|---|
| 1001 | García, Lucía | 4°A |
Tabla NOTAS
| ID_Alumno (FK) | Materia | Nota |
|---|---|---|
| 1001 | Matemática | 8 |
| 1001 | Historia | 7 |
En el modelo relacional, la alumna y sus notas viven en tablas separadas conectadas por una clave (ID_Alumno). En el modelo no relacional, todo puede guardarse junto, anidado, en un solo documento — no hace falta "unir" dos tablas para consultar la información completa.
Comparación rápida
| Aspecto | Relacional (SQL) | No relacional (NoSQL) |
|---|---|---|
| Estructura | Tablas con filas y columnas | Documentos, clave-valor, grafos o columnas |
| Esquema | Fijo, definido de antemano | Flexible, puede variar entre registros |
| Relaciones | Claves primarias y foráneas | Datos anidados o referencias simples |
| Lenguaje | SQL | Varía según el motor |
| Escalabilidad | Vertical (mejorar un servidor) | Horizontal (sumar más servidores) |
| Ejemplos | MySQL, PostgreSQL, SQL Server, Oracle, SQLite | MongoDB, Firebase, Redis, Cassandra, Neo4j |
¿Cuándo conviene una base relacional?
Cuando los datos tienen una estructura clara y estable, y las relaciones entre ellos son importantes: sistemas de gestión escolar, bancos, tiendas con inventario. La integridad y la coherencia (los temas que vienen ahora) son especialmente fuertes en este modelo.
¿Cuándo conviene una base no relacional?
Cuando el volumen de datos es enorme, la estructura cambia todo el tiempo, o el sistema necesita crecer sumando servidores rápidamente: redes sociales, sensores IoT, apps con millones de usuarios simultáneos.
Elegí el modelo correcto (1)
El sistema de inscripciones del colegio guarda alumnos, materias y notas, todos relacionados entre sí mediante claves, con una estructura que no cambia. ¿Qué tipo de base de datos es la más adecuada?
Elegí el modelo correcto (2)
Una red social necesita guardar millones de publicaciones por día, con comentarios, fotos y reacciones que varían mucho de un posteo a otro, y crecer sumando servidores fácilmente. ¿Qué tipo de base de datos conviene más?
Integridad en Bases de Datos
La integridad de datos es la propiedad que garantiza que la información almacenada es correcta, válida y consistente según las reglas del sistema. Es como tener un inspector que revisa cada dato antes de guardarlo.
Tipos de Integridad
Integridad de Entidad
Cada registro debe ser único e identificable. Ninguna clave primaria puede ser nula ni repetirse. Ejemplo: dos alumnos no pueden tener el mismo número de legajo.
Integridad Referencial
Si una tabla hace referencia a otra, esa referencia debe ser válida. Ejemplo: no podés registrar una nota de una materia que no existe en el sistema.
Integridad de Dominio
Los valores deben estar dentro del rango o tipo permitido. Ejemplo: la nota de un alumno debe ser un número entre 1 y 10, no puede ser "banana".
Integridad Definida por el Usuario
Reglas de negocio específicas del sistema. Ejemplo: un alumno no puede tener más de 5 materias desaprobadas para pasar de año.
// EJEMPLO: Tabla de Alumnos con errores de integridad
| ID_Alumno (PK) | Nombre | DNI | Nota Promedio | Estado |
|---|---|---|---|---|
| 1001 | García, Lucía | 45123456 | 7.5 | ✅ Correcto |
| NULL | Pérez, Tomás | 46789012 | 6.0 | ❌ ID nulo — viola entidad |
| 1003 | López, Sofía | 47001234 | 15 | ❌ Nota fuera de rango — viola dominio |
| 1001 | Rodríguez, Bruno | 48567890 | 8.0 | ❌ ID repetido — viola entidad |
| 1005 | Martínez, Ana | 49112233 | 9.2 | ✅ Correcto |
¿Qué tipo de integridad se viola aquí?
En la tabla de inscripciones, hay un registro que dice que el alumno con ID 9999 se inscribió a Matemáticas. Pero en la tabla de alumnos, no existe ningún alumno con ID 9999.
Coherencia en Bases de Datos
La coherencia (también llamada consistencia) garantiza que la base de datos pase de un estado válido a otro estado válido. Es decir: después de cualquier operación, los datos no deben contradecirse entre sí.
Si una transferencia bancaria descuenta plata de una cuenta pero falla antes de acreditarla en la otra, la base quedaría incoherente. Para eso existen las transacciones.
Las propiedades ACID
Las transacciones deben cumplir cuatro propiedades para garantizar la coherencia:
A — Atomicidad
La operación es "todo o nada". Si algo falla a la mitad, se deshace todo. No puede quedar a medias.
C — Consistencia
La base debe estar en un estado válido antes y después de cada transacción. Las reglas se respetan siempre.
I — Aislamiento
Las operaciones simultáneas no se interfieren entre sí. Cada transacción "ve" los datos como si fuera la única.
D — Durabilidad
Una vez confirmada la operación, los cambios persisten aunque el sistema se caiga o haya un corte de luz.
Mecanismos para mantener la coherencia
Transacciones (COMMIT / ROLLBACK)
Agrupan operaciones. Si todo sale bien, se confirman (COMMIT). Si algo falla, se revierten (ROLLBACK) y la base vuelve al estado anterior.
Bloqueos (Locks)
Cuando dos usuarios acceden al mismo registro a la vez, el sistema "bloquea" el registro para evitar que ambos lo modifiquen simultáneamente.
Triggers y Restricciones
El propio motor de base de datos puede ejecutar acciones automáticas cuando se detecta un cambio, para asegurar que todo quede coherente.
Situación del aula
La secretaría está pasando notas finales al sistema. A la mitad del proceso, se va la luz. Cuando vuelve la corriente, la mitad de los alumnos tiene nota cargada y la otra mitad no. ¿Qué propiedad ACID debería haber evitado esto?
Programas Utilitarios para Datos
Los programas utilitarios son software de soporte que realizan tareas específicas de mantenimiento, conversión o manipulación de datos. No son el sistema principal, sino herramientas que lo complementan.
Hacé click en cada tarjeta para ver más detalles.
Conversores de Formato
Transforman archivos de un formato a otro sin perder información.
Editores Hexadecimales
Permiten ver y editar los datos binarios directamente, byte a byte.
Herramientas ETL
Extraen, transforman y cargan datos entre sistemas distintos.
Editores CSV / TSV
Permiten abrir y editar archivos de datos en texto plano estructurado.
Utilidades de Backup
Exportan la base de datos a un archivo para guardar copias de seguridad.
Clientes de BD (CLI)
Permiten ejecutar consultas y editar datos directamente desde la terminal.
¿Por qué son importantes?
Interoperabilidad
Permiten que sistemas distintos compartan información aunque usen formatos diferentes.
Mantenimiento
Ayudan a reparar, limpiar o reorganizar datos sin tocar el sistema en producción.
Eficiencia
Automatizan tareas repetitivas que serían muy lentas o propensas a error si se hacen manualmente.
¿Qué utilitario usarías?
El colegio cambió de sistema de gestión académica. El sistema viejo guarda los datos en formato .XLS y el nuevo solo acepta .CSV. ¿Qué tipo de programa usarías para hacer la migración?
Actividad Integradora
Ahora que vimos todos los conceptos, es momento de integrarlos. Las siguientes actividades pueden hacerse de forma individual o en pares.
Identificá el problema
Para cada situación, indicá si hay un problema de integridad o coherencia, qué tipo específico es y cómo se podría solucionar:
- En la base de datos del hospital, hay un paciente con fecha de nacimiento: 32/13/1985.
- Al mismo tiempo, dos médicos intentan registrar turnos para el mismo consultorio a la misma hora.
- Una tabla de pedidos tiene registros que referencian a un cliente con ID 777, pero ese cliente no existe en la tabla de clientes.
- Se cortó la luz mientras se procesaba el pago de una compra online: se debitó el dinero pero no se registró el pedido.
Utilitarios en la vida real
Buscá en internet y respondé:
- ¿Qué es SQLite Browser? ¿Para qué se usa? ¿Es gratuito?
- Nombra dos programas gratuitos que permitan convertir archivos PDF a Word.
- ¿Qué hace el comando
mysqldump? ¿Es un utilitario de backup? - ¿Qué formato es más eficiente para guardar grandes cantidades de datos: .CSV o .JSON? Justificá.
- Elegí una app o servicio que uses a diario (por ejemplo Instagram, Spotify o el sistema de notas del colegio). ¿Con qué tipo de base de datos creés que guarda su información: relacional o no relacional? ¿Por qué?
Para pensar en grupo
Discutí con tus compañeros:
- ¿Qué pasaría si el sistema del ANSES o del PAMI no tuviera mecanismos de integridad? ¿Qué consecuencias reales podría tener?
- ¿Conocen algún caso de la vida cotidiana donde hayan visto datos incoherentes en un sistema? (turnos médicos, notas del colegio, transporte público, etc.)
- Si tuvieras que migrar todos los datos del sistema de notas de tu colegio a uno nuevo, ¿qué pasos seguirías para no perder información?
Lo que vimos hoy
🗄️ Relacional / No relacional
Tablas con esquema fijo (SQL) vs. documentos flexibles (NoSQL). No hay una mejor: depende del problema.
🛡️ Integridad
Validez de los datos individuales. Tipos: entidad, referencial, dominio y definida por usuario.
🔗 Coherencia
No contradicción entre datos. Se mantiene con transacciones ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad).
🛠️ Utilitarios
Conversores, editores hex, ETL, clientes de BD, backup. Complementan el sistema principal.