Una aplicación, particularmente de la teoría de modelos finitos, está en las bases de datos.
Por ejemplo, si piensa en una base de datos relacional como una estructura, donde los elementos en las columnas de la base de datos forman el universo de la estructura y las tablas forman las relaciones, entonces puede preguntar qué tipos de consultas de base de datos son o no expresables.
Aquí hay una ilustración. Suponga que tiene una base de datos similar a Quora que contiene una sola tabla “Siguiente”, donde (Alice, Bob) es una fila en la tabla si Alice sigue a Bob. Una consulta como “dame a todas las personas que siguen a Alice” se expresa en SQL mediante
- Si se empaqueta de pared a pared, ¿qué podría contener más personas: la Gran Muralla de China o todo el Empire State Building?
- Cómo graficar y = 4x-3
- ¿Qué es 506 ^ 2? Debe hacer esto mentalmente, sin trabajo ni calculadora. ¿Puedes encontrar el truco?
- ¿Qué son las splines generalizadas?
- Un tanque se llena en 3 horas, pero debido a una fuga, lleva 1 hora más llenarlo. ¿Cuánto tiempo llevará vaciar el tanque?
seleccione seguidor de siguiente
donde seguido = ‘alice’
y en lógica de primer orden por
[matemáticas] q (x) = Siguiendo (x, “Alicia”) [/ matemáticas]
Pero, ¿qué sucede si queremos hacer una consulta más complicada, como “¿está conectado el siguiente gráfico?” o “dame todos los seguidores de Alicia, los seguidores de los seguidores de Alicia, los seguidores de los seguidores de los seguidores de Alicia, etc.” (En términos teóricos de grafos, queremos expresar la conectividad de grafos y la accesibilidad dirigida).
La teoría de modelos finitos puede ayudar a responder si estas consultas son expresables en SQL (no lo son), cómo necesitaríamos diseñar un lenguaje db para expresar estas consultas (por ejemplo, la lógica de primer orden por sí sola no puede preguntar si Alice y Bob tiene el mismo número de seguidores, pero SQL tiene lógica de primer orden más conteo , por lo que puede), y lo que perderíamos y ganaríamos al usar este otro lenguaje.