SOFTWARE II— EETP 468 ING "LUIS B LAPORTE"

Software:
Bases de Datos &
Programas Utilitarios

¿De qué vamos a hablar hoy?

¿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?

Antes de seguir

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.

// MODELO RELACIONAL — dos tablas vinculadas

Tabla ALUMNOS

ID (PK)NombreCurso
1001García, Lucía4°A

Tabla NOTAS

ID_Alumno (FK)MateriaNota
1001Matemática8
1001Historia7
// MODELO NO RELACIONAL — un documento
{ "alumno": "García, Lucía", "curso": "4°A", "notas": [ { "materia": "Matemática", "nota": 8 }, { "materia": "Historia", "nota": 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

AspectoRelacional (SQL)No relacional (NoSQL)
EstructuraTablas con filas y columnasDocumentos, clave-valor, grafos o columnas
EsquemaFijo, definido de antemanoFlexible, puede variar entre registros
RelacionesClaves primarias y foráneasDatos anidados o referencias simples
LenguajeSQLVaría según el motor
EscalabilidadVertical (mejorar un servidor)Horizontal (sumar más servidores)
EjemplosMySQL, PostgreSQL, SQL Server, Oracle, SQLiteMongoDB, 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.

💡 No es "una mejor que la otra": son herramientas distintas para problemas distintos. Muchos sistemas grandes (como una red social) usan ambas combinadas, cada una para lo que mejor resuelve.

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?

Concepto 1 de 2

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

1

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.

2

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.

3

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".

4

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.

Concepto 2 de 2

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?

Herramientas

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.

🔄
Conversión

Conversores de Formato

Transforman archivos de un formato a otro sin perder información.

🔬
Edición Raw

Editores Hexadecimales

Permiten ver y editar los datos binarios directamente, byte a byte.

📦
Migración

Herramientas ETL

Extraen, transforman y cargan datos entre sistemas distintos.

📊
Edición de datos

Editores CSV / TSV

Permiten abrir y editar archivos de datos en texto plano estructurado.

💾
Backup

Utilidades de Backup

Exportan la base de datos a un archivo para guardar copias de seguridad.

💻
Línea de Comandos

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?

Cierre de clase

Actividad Integradora

Ahora que vimos todos los conceptos, es momento de integrarlos. Las siguientes actividades pueden hacerse de forma individual o en pares.

✏️ Actividad 1 — Análisis de casos

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:

  1. En la base de datos del hospital, hay un paciente con fecha de nacimiento: 32/13/1985.
  2. Al mismo tiempo, dos médicos intentan registrar turnos para el mismo consultorio a la misma hora.
  3. Una tabla de pedidos tiene registros que referencian a un cliente con ID 777, pero ese cliente no existe en la tabla de clientes.
  4. Se cortó la luz mientras se procesaba el pago de una compra online: se debitó el dinero pero no se registró el pedido.
🔍 Actividad 2 — Investigación

Utilitarios en la vida real

Buscá en internet y respondé:

  1. ¿Qué es SQLite Browser? ¿Para qué se usa? ¿Es gratuito?
  2. Nombra dos programas gratuitos que permitan convertir archivos PDF a Word.
  3. ¿Qué hace el comando mysqldump? ¿Es un utilitario de backup?
  4. ¿Qué formato es más eficiente para guardar grandes cantidades de datos: .CSV o .JSON? Justificá.
  5. 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é?
💬 Actividad 3 — Debate grupal

Para pensar en grupo

Discutí con tus compañeros:

  1. ¿Qué pasaría si el sistema del ANSES o del PAMI no tuviera mecanismos de integridad? ¿Qué consecuencias reales podría tener?
  2. ¿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.)
  3. 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?

Resumen

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.