Creo que está malinterpretando lo que significa el término “pares clave-valor” en una base de datos relacional (RDBMS), en comparación con una base de datos orientada a documentos (NoSQL-).
Al escribir en una base de datos NoSQL, está escribiendo datos estructurados (por ejemplo, una matriz asociativa de longitud arbitraria) para almacenarlos en una sola clave (que sería su clave principal en un RDMBS tradicional). Las otras columnas se generarían dinámicamente según su recuento y su nombre. Si traduce esta estructura a una tabla RDBMS, imagine que tendría la unión de todas las claves de matriz existentes como sus columnas. Si selecciona una fila (identificada por su clave principal) que no contiene la clave de matriz que está buscando para el conjunto, simplemente devolverá NULL.
Puede implementar dicha técnica en un RDBMS, pero necesitaría usar muchas instrucciones ALTER TABLE para cada instrucción INSERT / UPDATE, lo que por supuesto no es práctico.
- ¿Cómo se puede corromper el valor 5 enviado desde la computadora emisora a 13 cuando llega a la computadora receptora?
- ¿Cuáles son las aplicaciones de la informática afectiva en los negocios electrónicos?
- ¿Qué tan similares son Haskell y Scheme?
- ¿Vale la pena sobresalir con un título de CS si solo quieres una habilidad comercial flexible que pagará las facturas mientras haces lo que realmente quieres?
- ¿Cómo puede determinar eficientemente el k-ésimo elemento máximo en un árbol de búsqueda binario?
Podría, por supuesto, hacer lo mismo usando solo una tabla con tres columnas: pkey, key, value
con (pkey, key) como su clave principal. Luego, para una matriz (digamos $helloworld = Array("hello"=>"world", "foo"=>"bar")
), insertaría dos filas:
pkey = ‘helloworld’, clave = ‘hola’, valor = ‘mundo’
pkey = ‘helloworld’, clave = ‘foo’, valor = ‘bar’
Sin embargo, para poder utilizar esta estructura de una manera que un NoSQL-DBMS lo admita, tendrías que hacer muchas autouniones. Para obtener el valor de “hola” donde el valor de “foo” es igual a “barra” (que es una tarea fácil en las bases de datos NoSQL) tendría que escribir algo como
SELECT b.hello FROM keyvalues a INNER JOIN keyvalues b ON a.pkey = b.pkey AND a.key = 'foo' AND b.key = 'hello' WHERE a.key = 'foo' AND a.value = 'bar'
que no es realmente eficiente (al menos no en comparación con una base de datos NoSQL).
SQL, InnoDB o cualquier otro motor de base de datos no lo ayudará en absoluto a utilizar un RDBMS como reemplazo de los datos NoSQL. Depende de usted definir una estructura de tabla y consulta que se adapte a sus necesidades.