Almacenamiento en ficheros
Antes de ver una base de datos que incluya su propio lenguaje de consultas, es importante entender cómo se almacena la información en ficheros. Los ficheros son una forma básica de almacenamiento de datos y pueden clasificarse en diferentes tipos según diferentes criterios. Aquí te presento una breve descripción de los tipos más comunes:
Ficheros planos
Almacenan datos en un formato simple, como texto plano, donde cada línea representa un registro y los campos están separados por delimitadores (como comas o tabulaciones) o por un tamaño fijo. Son fáciles de crear y leer, pero no son eficientes para búsquedas complejas o grandes volúmenes de datos.
Un ejemplo de fichero plano puede ser tu /etc/passwd
en sistemas Unix, donde cada línea contiene información sobre un usuario del sistema, separada por dos puntos (:
).
root:$6$rounds=656000$fANgFBb34rdBOP9X$EKIZ0Ueb53z0Y4QrrLzaolKJ5ATJVboh01LYleGd6Z7HqgaBzgClhrQmo7PLCflHfg8mTKz2ynaV/TIPw5mhe1:20139:0:99999:7:::
datadiego:$6$rounds=656000$iRfAKVuwPF6rtXfe$xTmvv/.IA6n5f1aEHfEbYBEaH2yPwOf8gLt1VlHzEj2X1DDPLe2MHBhH9gIainckdpMJLZkDt3gmXVb6wadd6/:20272:0:99999:7:::
daemon:*:20139:0:99999:7:::
bin:*:20139:0:99999:7:::
sys:*:20139:0:99999:7:::
sync:*:20139:0:99999:7:::
games:*:20139:0:99999:7:::
man:*:20139:0:99999:7:::
lp:*:20139:0:99999:7:::
mail:*:20139:0:99999:7:::
news:*:20139:0:99999:7:::
uucp:*:20139:0:99999:7:::
proxy:*:20139:0:99999:7:::
www-data:*:20139:0:99999:7:::
backup:*:20139:0:99999:7:::
mysql:*:19250:0:99999:7:::
En este ejemplo no hay información acerca de que es cada uno de los campos que componen cada linea! el código que los interpreta si debe conocerlos y deben respetar el orden en el que se declaran o no funcionarán correctamente.
Pares clave-valor
Vamos a observar otro ejemplo en /etc/ssh/sshd_config
:
# Puerto en el que escuchará el servidor SSH
Port 22
ListenAddress 0.0.0.0
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
LoginGraceTime 60
MaxAuthTries 3
ClientAliveInterval 60
ClientAliveCountMax 3
Esta estructura es conocida como clave-valor, en la que se nos da una palabra clave que define que dato es el que vamos a escribir, junto a su propio valor.
Verás esta misma forma de acceder a datos a lo largo de diferentes contextos durante el curso, asi que es muy importante tenerla clara.
Puedes extraer información de estos archivos utilizando herramientas de línea de comandos como
awk
,sed
ocut
si necesitas scriptar o procesar los datos de manera programática.