Resumen
- SQLite es ideal para gestionar localmente una colección de música física.
- SQLite tiene un proceso de instalación sencillo, adecuado para personas sin experiencia en bases de datos. Las interfaces gráficas de usuario como DB Browser también simplifican la gestión de bases de datos para usuarios novatos.
- Las características de SQLite, como la escritura dinámica, permiten una gestión y personalización eficientes de las bases de datos, lo que permite una organización óptima.
Si eres fanático de la música, probablemente tengas estantes llenos de discos o CD. ¿Cómo les haces un seguimiento? Podrías usar una base de datos, pero ¿no son complicadas de configurar? SQLite es una poderosa herramienta que le permite configurar bases de datos SQL sin un servidor. Es sorprendentemente fácil de configurar. Así es como lo hice, a pesar de tener un conocimiento vago de SQL.
¿Por qué SQLite?
Todavía hay algo en una colección de música física, incluso en la era del streaming. Es por eso que las ventas de discos de vinilo han aumentado en los últimos años.según la RIAA. El nuevo formato de música más popular no es Spotify, MP3 o FLAC, sino el viejo LP.
Siendo un Millennial, mis hábitos de escuchar música se formaron al final de la "Era del álbum". Eso significaba coleccionar álbumes. Como estábamos en los años 90, cuando comencé a interesarme seriamente por la música, el formato dominante era el CD, salvo algunos viejos chiflados que preferían el vinilo. (¿Quién querría esos discos viejos?)

Cuando tienes una colección física sustancial de cualquier tipo, no solo música, resulta difícil para una sola persona realizar un seguimiento de ella. Aquí es donde entran las bases de datos. La base de datos relacional, con sus filas y columnas, es fácil de entender, pero SQL tiene fama de ser complicado de aprender. Había estado expuesto a ello en una clase de sistemas de información informática en la universidad, pero quería sentirme más cómodo con las bases de datos y SQL.
Pensé en instalar un servidor de base de datos en mi máquina como MySQL o PostgreSQL, pero esos son sistemas grandes y complicados cuyo mantenimiento requiere mucho trabajo. Sólo soy un tipo con un teclado y una caja de álbumes.
También podría haber configurado una base de datos en Discogs. Tengo una cuenta de usuario allí, pero quería una base de datos que se ejecutara localmente bajo mi control. Podría haber incluso, pero esto no se ampliaría a una colección más grande.
SQLiteParecía ideal. Era una base de datos relacional que utilizaba SQL como lenguaje de consulta. Es liviano y se ejecutará sin servidor., incluido iTunes. Si SQLite puede administrar una biblioteca de música digital, pensé que podría manejar fácilmente una física. Esta podría ser la razón por la que las colecciones de registros son ejemplos populares para configurar bases de datos relacionales. Son como "¡Hola, mundo!" de bases de datos.
Instalación de SQLite
Como SQLite es gratuito y está disponible en muchas distribuciones de Linux, todo lo que tenía que hacer era usar apt en Ubuntu (estaba en WSL, pero sería igual en cualquier versión de Debian o Ubuntu):
sudo apt install sqliteEso fue todo. Tenía SQLite instalado en uno. Esto muestra lo fácil que es instalar SQLite.
Podría haber descargado la versión nativa de Windows, pero prefiero Linux para cosas relacionadas con la programación.grandes y pequeños, y es por eso que existe WSL.
Creando la base de datos
Con SQLite instalado, llegó el momento de empezar a crear mi base de datos. Pensé en lo que necesitaría. Una base de datos para mi colección de CD y LP debería tener campos para el artista, el título, el año de lanzamiento original y el formato.
Inicié el cliente de línea de comandos con el nombre del archivo de base de datos que quería crear:
sqlite3 music.dbIngresé el código SQL para crear la tabla:
CREATE TABLE albums (artist,title,year,format)Termine cada declaración SQL con un carácter de punto y coma (;).
Lo bueno de SQLite en comparación con otros sistemas de bases de datos es que no necesitaba codificar los tipos de datos de antemano. SQLite utiliza escritura dinámica, donde adivina qué tipo de datos contiene el campo según lo que ingresa en él. Si ingresa una cadena de caracteres, decide que el campo es una cadena. Esto me ahorró tiempo y esfuerzo a la hora de definir la tabla.
Si bien las sentencias SQL se escriben tradicionalmente en mayúsculas, no es necesario. Es una convención, pero puedes ingresar comandos en minúsculas ya que SQLite acepta ambas. Los desarrolladores de SQLite usan minúsculas en su documentación.
Una vez creada la tabla, ahora tenía que colocar registros en ella, y me refiero a los registros de la base de datos, no a los discos de vinilo. Ahí es donde entra en juego el comando INSERTAR EN.
INSERT INTO albums VALUES ("Pink Floyd", "The Dark Side of the Moon", 1973,"LP",)Podría hacer esto para toda mi colección, pero hay una manera más sencilla. Escribir todas las sentencias SQL puede resultar tedioso, por lo que hay varias interfaces auxiliares disponibles. una buena esNavegador de base de datos. Es similar a. Es una interfaz gráfica de usuario que.

Todo lo que tuve que hacer fue instalarlo también en Ubuntu, aunque también está disponible para Windows.
Para instalarlo en Ubuntu, use este comando:
sudo apt install sqlitebrowserPara trabajar en una base de datos SQLite, simplemente abro el archivo music.db que creé yendo a Archivo > Abrir base de datos > y navegando hasta el archivo de la base de datos. Con la base de datos creada, puedo agregar campos con la pestaña "Buscar datos" y luego presionar el botón "Insertar registro". Muestra una tabla similar a una hoja de cálculo. Puedo completar los campos de los álbumes que tengo. Detrás de escena, utiliza las transacciones que se mencionan más adelante para protegerse contra cambios no deseados.
Aunque esta es una base de datos personal, quiero establecer algunos buenos hábitos. Cuando se trabaja con datos, es mejor tener una copia de seguridad. El cliente de línea de comandos SQLite me permite guardar una copia de seguridad de mi base de datos con el comando .backup:
.backup music.db.bakPodría haber llamado el archivo como quisiera, pero tiendo a usar la extensión .bak para copias de seguridad de archivos.
Cuando trabaja en una base de datos, desea tener una forma de revertir los cambios si algo que hace provoca que suceda algo malo. SQLite, como muchos otros sistemas de bases de datos, tiene un sistema de transacciones. Con las transacciones de bases de datos, una operación se completa o no.
Más importante aún, si comete un error, puede retroceder a estados anteriores con el comando ROLLBACK. Es como la operación de deshacer en un procesador de textos.
Tom Scott aprendió por las malas los peligros de descuidar el uso de transacciones y copias de seguridad mientras trabaja en una base de datos:
Para iniciar una transacción, use este comando:
BEGIN TRANSACTION;Se mostrará todo lo que haga en la base de datos, como agregar, eliminar o modificar registros, pero no se guardarán hasta el final de una transacción, con el comando COMMIT:
COMMIT;Aquí hay un ejemplo de cómo agregar algunos álbumes a la base de datos.
BEGIN TRANSACTION;
INSERT INTO albums VALUES ("Pearl Jam","Ten",1991,"CD");
INSERT INTO albums VALUES ("Nirvana", "Nevermind",1991,"CD");
INSERT INTO albums VALUES ("Pink Floyd","Wish You Were Here", 1975,"Pink Floyd Records");
COMMIT;Haga una copia de seguridad y active las transacciones antes de realizar cambios en una base de datos.
Explorando mi base de datos
Con mi base de datos llenándose lentamente, podría intentar consultarla. De forma predeterminada, SQLite genera registros separados por "|" personaje. Para verlos en columnas, configuro el modo:
.mode columnLos comandos que forman parte de SQLite 3 como ese no usan punto y coma al final.
Para ver mi colección completa, podría usar el comando SELECT *:
SELECT * FROM albums;
El * es un comodín, similar a, eso me permite seleccionar cada registro. Por supuesto, sólo me gustaría ver algunos registros de una época. Puedo hacer eso con el comando LIMIT:
SELECT * FROM albums LIMIT 5;
Para encontrar campos que coincidan con criterios, como artistas, podría usar una cláusula WHERE:
SELECT * FROM albums WHERE artist LIKE '%pink floyd%';Las declaraciones LIKE de SQLite coinciden parcialmente con un campo y no distinguen entre mayúsculas y minúsculas en SQLite.
¡Vaya, necesito más campos!
Incluso con el cuidado con el que diseña los campos en una base de datos, parece que necesita ajustar las tablas cuando se da cuenta de que necesita otro campo. Me di cuenta de que sería bueno tener un campo para el sello discográfico. Afortunadamente, fue fácil cambiar mi tabla en SQLite.
Para ver cómo están estructurados los datos, utilizo el comando .schema.

Abrí el cliente de línea de comandos y escribí;
ALTER TABLE albums ADD label;También podría haberlo hecho fácilmente a través de DB Browser. Simplemente hago clic en la tabla de álbumes en la pestaña "Estructura de la base de datos" y hago clic en la función "Modificar tabla". Puedo agregar o eliminar filas, así como seleccionar los tipos como restricción. Cuando estaba ingresando el año de lanzamiento en DB Browser, noté que no ordenaba correctamente el año de lanzamiento para las entradas que agregué. Le dije a SQLite explícitamente que el año de lanzamiento era un número a través del menú seleccionando la opción "INTEGER", y eso pareció solucionar el problema.

Es posible agregar la etiqueta a álbumes ya ingresados con un comando ACTUALIZAR como este:
UPDATE albums SET label = 'Factory' WHERE artist = 'Joy Division';Para actualizaciones simples, usar DB Browser podría ser mejor porque puede editar las entradas directamente y utiliza transacciones automáticamente por seguridad. Esta fue también la oportunidad de crear una vista. Una vista es similar a una. Esto le permite guardar consultas complicadas que realiza con frecuencia.
Creé uno para mis álbumes de vinilo:
CREATE VIEW vinyl AS SELECT * FROM albums WHERE format = "LP";

Para volver a mi vista, simplemente ejecuto esta consulta como si la vista fuera otra tabla:
SELECT * FROM vinyl;Ahora puedo seguir añadiendo y examinando mi colección de música, y SQLite lo hizo posible.
