Archivo de la categoría: SQLite
SQLite vs SQL Server Compact Edition Parte 1
Recientemente tuvimos que desarrollar un sistema que debía funcionar con una base de datos embebida. Hay varias soluciones en el mercado, SQLite y SQL Server Compact Edition son de las más populares. (También exista VistaDB, pero es paga).
Cuales son las ventas y desventajas de usar una base u otra?
SQLite:
Pros:
- Es Open Source
- Es multiplataforma (Funciona en Linux, Windows, MacOs)
- Es ultra liviana y rápida. Instalación super sencilla, es un solo archivo.
- Tiene Triggers y Vistas
- Se puede agregar externamente User Defined Functions (UDF)
- Soporta operaciones en memoria.
- Posibilidad de usar 2 o más bases de datos en la misma consulta (ATTACH)
Contras:
- Cuando se hace una operación de escritura, se bloquea la base.
- Es typeless. Si bien se pueden definir tipos de datos, no hace ningún tipo de validación a la hora de insertar o actualizar datos.
- No tiene Foreign Keys (se pueden emular con triggers)
- No tiene un campo datetime (tiene un date y un time, pero no un campo que una ambos. Hay que usar varchar para estos casos).
- No tiene ningún mecanismo de replicación y sincronización de datos.
- El comando ALTER TABLE está limitado a RENAME TABLE y ADD COLUMN
- No soporta ni RIGHT JOIN ni FULL JOIN.
- No tiene Nested transactions (Transacciones en cadena)
- No soporta INFORMATION_SCHEMA (usa sus propias funciones para inspeccionar la metadata).
- Admite campos autonumericos, pero no permite setear el valor inicial del campo ni el valor del salto de incremento (Identity seed e Identity Increment en SQL Server, muy utiles a la hora de replicar).
SQL Server Compact Edition
Pros:
- Es gratis (pero no Open Source)
- Está integrado con el framework de sincronización, Sync Framework for ADO.NET. Lo que permite sincronizar datos entre una base embebida y una base SQL Server de manera casi trivial.
- Tiene mecanismo de replicación nativo.
- Hace validación de tipos y tiene mayor cantidad de tipos de datos que SQLite.
- Se puede usar como IDE Visual Studio 2005/2008 o Management Studio de SQL Server
- Soporta INFORMATION_SCHEMA
Contras:
- Cuando se hace una operación de escritura, se bloquea la tabla.
- No soporta operaciones en memoria.
- No es multiplataforma (Solo funciona en Windows)
- No tiene ni triggers ni vistas.
- No soporta User Defined Functions (UDF)
- No soporta RIGHT JOIN
- No tiene Nested transactions (Transacciones en cadena)