Nothing Special   »   [go: up one dir, main page]

Grupo5 - Manejador de BD Sqlite

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 30

UNIVERSIDAD NACIONAL DE INGENIERÍA

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE


SISTEMAS

Ingeniería de Sistemas

Trabajo N°1

“Sistema de Gestión de Base de Datos SQLite”

Integrantes:

1. Mayuri Hidalgo, Jesús 20174019C


2. Medina Apaico, Walter 20170007K
3. Pahuara Borda, Yovani 20170022J

Profesor del curso: Ing. Velarde Carpio Manuel Helarf

Nombre del Curso​: Administración de Base de Datos

Curso-Sección: ST 214-U

Facultad: FIIS

2020-1
ÍNDICE

Introducción 3

Objetivos y alcances del trabajo 3

Sistema de Gestión de Bases de Datos 3


Descripción 3
Importancia 4
Tipos 4
Consideraciones a tomar para seleccionarlo 6
ACID 7
Niveles de aislamiento 8
Control de concurrencia 9

SQLite 10
Descripción 10
Aislamiento en SQLite 13
Aislamiento entre conexiones a la Base de Datos 13
Aislamiento y concurrencia 13
Operaciones entre la misma conexión a la Base de Datos 14
Usos recomendados 14
Peculiaridades de SQLite 15
Ventajas y desventajas 17
Ventajas 17
Desventajas 17

Compañías que utilizan SQLite 17

Comparación de rendimiento con SAP SQL Anywhere 18


Acerca de SQL Anywhere 18
Comparación 18

Conclusiones 21

Recomendaciones 21

Referencias bibliográficas: 21
1. Introducción
Hoy en día, debido al aumento creciente de la generación de datos, nos
vemos en la necesidad de tener que almacenar estos datos con seguridad,
velocidad, escalabilidad, flexibilidad y entre otras características.
Para poder satisfacer esta necesidad existen una amplia cantidad de
Gestores de Bases de Datos, una de ellas es SQLite que es una biblioteca en
proceso que implementa un motor de base de datos SQL, SQLite es un
sistema avanzado de base de datos útil para almacenar datos.
Es fácil de usar, funciona y es compatible con múltiples plataformas.
Básicamente se aplica más en sistemas de aplicaciones basados en Android,
también está disponible en sistemas operativos integrados como iOS,
Symbian OS, Maemo, Blackberry y WebOS debido a su flexibilidad e
independencia de plataforma, pequeño tamaño y facilidad de uso.
Contiene tipos de datos simples, con capacidad de consulta dinámica.

2. Objetivos y alcances del trabajo


- Comprender la funcionalidad y la importancia de un Sistema de
Gestión de Base de Datos.
- Analizar las características esenciales del SGBD SQLite.
- Evaluar y comparar el rendimiento de nuestro SGBD con otros en el
mercado.
3. Sistema de Gestión de Bases de Datos
3.1. Descripción
En la actualidad, la mayoría de las empresas recurren al uso de base
de datos, debido a que estas contienen a sus activos más valiosos. La
administración de estos se realiza mediante un SGBD, o también
llamado manejador de base de datos, el cual podemos definir como un
software que ofrece los servicios necesarios para la creación de bases
de datos, la modificación de estas, su mantenimiento y el acceso
eficiente a los datos pertenecientes a estas mediante mecanismos que
evitan la redundancia y el uso irresponsable de la información por
parte de los múltiples usuarios poseedores de distintos privilegios.
3.2. Importancia
Recordando lo descrito anteriormente, las bases de datos almacenan
a los activos intangibles con mayor valor para la compañía, ya que
reflejan los resultados del negocio en términos de venta, costes,
proveedores, etc. Es decir, nos permite realizar el control operativo y
estratégico de la empresa. Además de lo mencionado, la disposición
de bases de datos debidamente administradas cumple con los
siguientes requerimientos:
- Almacenar los datos de manera fiable y segura.
- Permitir el acceso y la modificación de forma transaccional
- Dar soporte de todos los procesos de la empresa.
- Ayudar a compartir la información de la empresa de manera
transversal.
- Controlar la redundancia de los datos.
- Ofrecer un sistema de copias de seguridad y restauración
(BACKUP Y RESTORE) ante posibles fallos que atenten a la
consistencia de los datos.
En conclusión y explicándolo en términos técnicos, la importancia de la
SGBD radica en que estos permiten a un usuario manipular una base
de datos sin afectar a la integridad, confidencialidad,
disponibilidad, calidad y seguridad de los datos.
3.3. Tipos
La clasificación de los SGBD puede variar de acuerdo al criterio que se
elija, por ejemplo sería el tipo de BD que se hará gestión. Con el
desarrollo de la tecnología y la evolución de conceptos los SGBD
pueden abarcar más de un tipo de BD.
3.3.1. Según el acceso:
- Distribuida: donde la BD está conformada por una
matriz de servidores en varias ubicaciones, por tanto la
tarea del SGBD es administrarla como si estuviera
almacenada en una sola ubicación. Esto evita casos de
pérdida de información, así como permite mayor
velocidad de consulta de los datos
- Centralizada: la BD se encuentra en un solo lugar
accesible desde múltiples puntos. Puede ser beneficiosa
de acuerdo al tamaño de la organización que haga su
uso, así como la seguridad que se manejaría para un
solo punto.
3.3.2. Según el modelo:
- Relacional:
Cada fila de la tabla es un registro con ID único llamado
atributo clave. Las columnas de la tabla contiene los
atributos de los datos y cada registro tiene un solo valor
para cada atributo, de esta manera se facilita el
establecimiento de relaciones entre los puntos de datos.
Ejemplo: MySQL, SQL Server, Oracle, SQLite,etc.
- De red o reticular:
Conformada por una colección o set de registros, los
cuales están conectados entre sí por medio de enlaces
en una red(Link), en donde este link está conformado por
2 record types(owner, member) y un set.
El registro es similar al de una entidad como las
empleadas en el modelo relacional.

- Jerárquico:
Basado en el modelo de red, pero más restrictivo. La
implementación de estos modelos se lleva a cabo en
base a punteros, desarrollado con el objetivo de permitir
la representación de hechos de la vida real en los que
predominan las relaciones de “uno a muchos”. De esta
manera se determina una estricta relación PADRE/HIJO,
de tal forma que un padre puede tener varios hijos
localizados al mismo nivel, y el hijo solo puede tener un
solo padre. Su representación gráfica se realiza mediante
la estructura de ÁRBOL donde el nivel superior está
ocupado solo por una entidad, que usualmente se le
llama SEGMENTO RAÍZ.
Ejemplos: IBM Information Management System (IMS)
- Orientado a objetos:
3.3.3. Según el ámbito de aplicación del SGBD:
- Ofimáticos: manipula BD pequeñas orientadas a
almacenar datos domésticos o de pequeñas empresas.
Ejemplo: Microsoft ACCESS o LibreOffice Base.
- Corporativos: tienen la capacidad de gestionar BD
enormes, de medianas o grandes empresas con una
carga de datos y transacciones que requieren de un
servidor de gran capacidad. Ejemplo: ORACLE,
actualmente junto de DB2 el servidor de BD más potente
del mercado.
3.4. Consideraciones a tomar para seleccionarlo
- Tipo de BD del negocio: Para la elección de un SGBD se debe
tener en cuenta el tipo de negocio que se maneja, puede ser
una pyme, mediana o una empresa multinacional, esto
determinará parcialmente de cuanta data se hará manejo y
cuántos recursos se necesitará.
- Fin de uso: Dependiendo el área que manejará también puede
cambiar nuestra decisión sobre qué SGBD elegir. Si esta va
para la administración de la empresa, para un servicio web o si
manejará datos desde el lado del cliente.
- Facilidad de uso: La curva de aprendizaje debe ser lo más
baja posible, de ese modo la capacitación para los futuros
usuarios no será tan demandante. De este modo, el rendimiento
del SGBD será visible lo más pronto posible.
- Seguridad de datos: Este quizá es uno de los aspectos más
importantes, ya que la vulneración de información puede
significar el fin de una organización. Por tanto, el tratamiento de
los datos debe ser de manera confidencial de este modo, evitar
riesgo como corrupción, robo o accesos no autorizados.
- Capacidad de integración: Cuando una empresa entra a un
mercado, está generalmente adquiere los recursos mínimos y
necesario para poder funcionar. Si en la evolución de la
empresa no se consideró que tanto iba a ser su crecimiento, su
integración con otras herramientas de software puede ver
tedios.
- Escalabilidad: Respecto a la modelo de una empresa en el
tiempo, este claramente puede crecer, incluso de no ser así,
con el tiempo mismo los datos van a aumentar, por tanto se
debe tener en cuenta el requisito inicial, así como una
estimación futura.
- Costo: Quizá el otro punto más importante para una empresa
son los costos de adquisición de herramientas. Respecto a esto
hay diversas opciones pero como siempre debe considerarse el
uso que se le va a dar; de adquirir uno barato a futuro puede
significar mayores costes por una nueva adquisición e
implementación y de adquirir uno muy caro no resultaría
eficiente si solo se van a utilizar algunas de sus funcionalidades.
- Disponibilidad de soporte y desarrollo: esto va de la mano
con la decisión si se va adquirir SGBD de la nube o será
manera local, ya que esto determinará que tanto se
preocuparán por el mantenimiento de la BD.
3.5. ACID
Cuando se habla de Base de Datos, es necesario mencionar cuatro
características acerca de las transacciones, considerando estas como
tareas sobre la Base de Datos que se confirmará o anulará de manera
unitaria, concepto muy útil cuando ocurre caídas en el sistema; estas
son:
- Atomicidad (​Atomicity)​ ​: Una transacción en una unidad de
trabajo que comparten un mismo objetivo, la atomicidad permite
que este trabajo solo pueda estar en un estado de ​completo o
anulado​, de manera que si algún fallo en el sistema interrumpe
la transacción a mitad de trabajo, el estado de la Base de Datos
volverá al estado que estaba a antes de iniciar la transacción.
- Consistencia (​Consistency)​ ​: Esta característica asegura que
el estado de nuestra Base de Datos pase de un estado
coherente a otro, donde la coherencia será definida por las
reglas del negocio que tiene implementada la Base de Datos
(constraints, triggers).
- Aislamiento (​Integrity​)​: Cuando existe concurrencia de
transacciones y una de ellas necesita leer datos de otra
transacción, debemos asegurar que esto suceda hasta que la
transacción independiente se haya completado o anulado. Es
decir, cada transacción no sabe lo que está haciendo el resto ni
tiene poder para interrumpirlo.
- Permanencia (​Durability)​ ​: Una vez una transacción se haya
completado, el sistema debe garantizar que estos cambios
permanezcan establecidos incluso si ocurre algún fallo. Por
tanto, el nuevo estado de la Base de Datos debe ser
almacenado en memoria no volátil.
3.5.1. Niveles de aislamiento
Dentro de un SGBD, el aislamiento de uno de los conceptos
más débiles, ya que fortalecerlo significaría una mayor
aproximación al bloqueo entre transacciones, por tanto, pérdida
en concurrencia aunque también existe la opción de
concurrencia por multiversiones​, pero esto requiere añadirle
mayor lógica a la Base de Datos.
Los niveles de aislamiento que se pueden manejar en una Base
de Datos, definidos por el estándar ANSI/ISO SQL son:
- Serializable​: Las transacciones ocurren de forma
totalmente aislada a las demás. Se bloquean las
transacciones de tal manera que ocurren unas detrás de
otras, con nula concurrencia.
- Lectura repetida​: Las lecturas y escrituras se
mantendrán bloqueadas hasta que la transacción en
ejecución se concrete. Es decir que ningún registro leído
por un SELECT puede ser modificado por una
transacción.
- Lectura confirmada​: En este nivel solo la escritura
sobre tablas permanece bloqueada, pero no las lecturas,
por tanto puede ocurrir lo que se denomina ​lectura
no-repetida​.
- Lectura no confirmada​: Este es el nivel más bajo donde
cada transacción puede ver como otras transacciones
operan y realizar sus tareas sobre ello.
3.5.2. Control de concurrencia
Cuando un SGBD ejecuta transacciones en serie, la
concurrencia es nula por tanto se cumple con las propiedades
ACID. Sin embargo, ante un nivel mínimo de concurrencia, los
problemas empiezan a ocurrir, como ​lectura sucia​, ​pérdida de
un valor modificado​, etc. Las empresas que cuentan con una
Base de Datos, suelen tener un SGBD que maneja un gran
volumen de datos, estos modificados continuamente por
transacciones concurrentes. Por lo tanto es menester un control
sobre estas transacciones.
Para el control de concurrencia de transacciones se plantean
los siguientes métodos:
- Bloqueo en dos fases​: Se controla el acceso a la data
mediante un mutex asignado al dato. SI una transacción
quiere realizar alguna instrucción sobre un dato con
mutex activo, se bloquea hasta que el mutex sea
desactivado.
- Serialization graph checking​: Se arma un grafo de
procedencia de transacciones y se usa como planificador
de cuándo ejecutar las transacciones.
- Orden por marca de tiempo​: Se asigna una marca
temporal a cada transacción y se realiza un
ordenamiento de acuerdo a esa marca. Controlando y
revisando el acceso al dato de acuerdo a la marca
- Orden por culminación​: El orden cronológico de los
eventos de culminación de las transacciones es
compatible con el orden de la transacción precedente.
4. SQLite
4.1. Descripción
SQLite es una biblioteca en proceso que implementa un motor de base
de datos SQL transaccional autónomo, de configuración 0, sin
servidor.
Autónomo en el sentido de que tiene pocas dependencias, toda la
biblioteca de SQLite está encapsulada en un único archivo de código
fuente que no requiere más instalaciones o herramientas especiales.
SQLite no necesita de interfaces gráficas o bibliotecas externas
(aparte de algunas llamadas estándar de la biblioteca C).
De configuración 0, en el sentido de que en SQLite no necesita ser
“instalado” antes de ser usado, no hay necesidad de configurar,no
existe un proceso de servidor que deba iniciarse, detenerse o
configurarse.
Sin servidor, debido a que en SQLite no hay un proceso de servidor
separado para instalar, configurar, configurar, inicializar, administrar y
solucionar problemas, no requiere soporte administrativo para
configurar el motor de base de datos antes de ejecutarse. Cualquier
programa que pueda acceder al disco puede usar una base de datos
SQLite.
SQlite es de dominio público, por lo tanto es de uso gratuito para
cualquier propósito, ya sea de manera comercial o privada.
4.2. Arquitectura
La arquitectura de SQLite es relativamente simple, a continuación
realizaremos una breve descripción de sus principales componentes.

Figura 1 : Arquitectura de SQLite


Fuente​ : SQLite.org
La infraestructura SQLite contiene cuatro partes principales como:
- Core : La parte central contiene la interfaz de usuario, el
procesador de comandos de SQL y la máquina virtual.
La interfaz de usuario consiste en una biblioteca de funciones y
estructuras de C para manejar operaciones tales como
inicializar las bases de datos, ejecutar consultas y ver
resultados. Las llamadas a funciones que ejecutan consultas
SQL utilizan el procesador de comandos SQL.
El procesador de comandos funciona exactamente como un
compilador. Al ejecutar un programa, la máquina virtual dirige el
flujo de control a través de una declaración de cambio grande,
que salta a un bloque de código basado en el código de
operación actual
- SQL Compiler : ​El compilador de SQL contiene un tokenizador,
un analizador y un generador de código. Cuando se debe
ejecutar una cadena que contiene instrucciones SQL, la interfaz
pasa esa cadena al tokenizer. El trabajo del tokenizer es dividir
la cadena original en tokens y pasar esos tokens uno por uno al
analizador. El analizador es la pieza que asigna significado a los
tokens en función de su contexto. El analizador para SQLite se
genera utilizando el generador de analizador Lemon LALR 3.
Después de que el analizador ensambla los tokens en
declaraciones SQL completas, llama al generador de código
para producir código de máquina virtual que hará el trabajo que
solicitan las declaraciones SQL.
- Backend: ​El backend contiene B-Tree, Page Cache, Interfaz
del sistema operativo: una base de datos SQLite se mantiene
en el disco utilizando una implementación de B-tree que se
encuentra en el archivo fuente “ btree.c ".
Se utiliza un B-tree separado para cada tabla e índice en la
base de datos Todos los árboles B se almacenan en el mismo
archivo de disco.
El módulo de árbol B solicita información del disco en
fragmentos de tamaño fijo. El caché de página es el
responsable de leer, escribir y almacenar en caché estos
fragmentos. Para proporcionar portabilidad entre POSIX y
Win32, SQLite utiliza una capa de abstracción para interactuar
con el sistema operativo.
- Accessories : ​Los accesorios contienen utilidades y código de
prueba: SQLite proporciona algunas funciones relacionadas con
la utilidad, como la asignación de memoria y las rutinas de
comparación de cadenas sin mayúsculas y minúsculas se
encuentran en util.c , cabe destacar que más de la mitad de la
base de código total de SQLite se dedica a las pruebas
4.3. Aislamiento en SQLite
4.3.1. Aislamiento entre conexiones a la Base de Datos
Sobre distintas conexiones a una misma base de datos, éstas
no comparten caché, por tanto, los cambios parciales que una
conexión realiza no son visibles para otras conexiones cuando
éstas no son confirmadas aún. Es decir, las transacciones son
serializables.
Sin embargo, cuando el usuario habilita el modo ​lectura no
confirmada​, y se encuentra en ​modo caché compartida el
usuario puede ver las modificaciones que realiza otra
transacción incluso cuando no ha sido confirmado.
4.3.2. Aislamiento y concurrencia
En este ámbito SQLite implementa el aislamiento y
concurrencia utilizando registro de diario transitorios que
aparecen en el mismo directorio que el archivo de la base de
datos.
Existen 2 modos de diario, el ​rollback mode ​corresponde al
uso de las opciones "BORRAR", "PERSISTE" o "TRUNCAR",
los cambios se escriben directamente en el archivo de la base
de datos, simultáneamente se construye un registro de diario de
reversión separado que puede restaurar la base de datos a su
estado original si la transacción se revierte.
Wal mode, ​que está a partir de la versión 3.7.0, en este modo
los cambios no se escriben en el archivo de base de datos
original. En cambio, los cambios van a un "registro de escritura
anticipada" o archivo "WAL" separado. Más tarde, después de
que se confirme la transacción, esos cambios se moverán del
archivo WAL nuevamente a la base de datos original en una
operación llamada ​punto de control​.
Cabe resaltar que en el ​Wal mode permite lectores y escritores
simultáneos, puede hacer esto porque los cambios no
sobreescriben el archivo de base de datos original, sino que van
al archivo de registro de escritura anticipada por separado.
4.3.3. Operaciones entre la misma conexión a la Base de Datos
Respecto a una misma conexión, el nivel de aislamiento es de
lectura no confirmada​, es decir, una consulta puede ver las
modificaciones completas en la misma conexión sin importar
que la transacción haya sido confirmada.
4.4. Usos recomendados
● Sistemas embebidos e IoT: ​Una BD basada en SQLite no
requiere de una administración al mismo nivel que una basada en
MySQL, por tanto es ideal para dispositivos que operan sin
soporte humano. Entre estos dispositivos encontramos teléfonos,
televisores, cámaras, relojes, etc.
● Sitios Web: ​Según la página oficial de SQLite, este SGBD
trabaja bien como motor de BD para la mayoría de sitios web con
tráfico medio de datos, pero también aclaran que el tráfico de
datos que pueda manejar este motor dependerá de que tanto uso
haga el sitio web de la base de datos. Sin embargo con buenas
prácticas con el indexado o el uso de transacciones, esta
dificultad sería mermada.
● Data analysis: ​Haciendo uso de la ​línea de comandos propia de
SQLite es posible realizar análisis de grandes datasets. En caso
se desee realizar análisis más complejos, con la ayuda de
lenguajes como ​Python o ​R​, esto puede ser posible. Muchos
bioinformáticos usan esta herramientas para realizar sus
investigaciones.
● DB en el lado del servidor: ​SQLite en el lado del servidor tiene
la ventaja que el programa que hace uso de este, accede al disco
directamente para leer o escribir datos, a diferencia de otros
SGBD que se comunican con el servidor usando IPC.
● Data transfer format: Debido a que SQLite es solo un archivo
compacto, las BDs definidas por este motor usualmente son
usadas como contenedores de información que serán enviadas
de un usuario a otro, quién podrá usar SQL para extraer la
información. Su utilidad se vuelve notable cuando la transferencia
se da entre dispositivos de diferente arquitectura.
● Reemplazo para lectura y escritura de archivos de disco:
Para la versión 3.19.x de SQLite, ésta trabajaba hasta 35% más
rápido en un entorno Windows 10 en lectura y escritura de
archivos.
● DB en-memoria o temporales: Algunos programas o
aplicaciones necesitan filtrar y ordenar una gran cantidad de
datos. Esto se puede realizar de manera eficiente cargando la
data a una BD en memoria (principal) manejada por SQLite, así,
usando consultas como ORDER BY o JOIN podemos realizar las
tareas antes mencionadas.
● Educación y capacitación: Debido a su facilidad de instalación,
que consiste en solo copiar el ejecutable ​sqlite3.exe a la
máquina objetivo, SQLite funciona de manera increíble cuando se
quiere enseñar SQL o como funciona un Sistema Gestor de BD
Relacional.
4.5. Peculiaridades de SQLite
4.5.1. Embebido
Este motor de Base de Datos no nació para ser un reemplazo a
otros SGBD como Oracle o PostgreSQL. SQLite no es
ejecutado como un proceso nuevo o separado en el servidor, es
la misma aplicación que se comunica con la Base de Datos
mediante funciones de llamadas al sistema y no enviando
mensajes a otros procesos.
4.5.2. Tipado flexible
SQLite a diferencia de otros SGBD tiene un tipado flexible, lo
que significa que si se declara una columna como entero y se
intenta ingresar una cadena, SQLite tratará primero de convertir
la cadena a número, esto como muchos otros manejadores lo
hacen, pero la peculiaridad está en que en caso no sea posible
la conversión no sea posible, es decir, se ingrese una cadena
como ‘foo’ o ‘bar’, SQLite no lanzará ningún error, por el
contrario almacenará el dato en el campo del registro. Esto no
es ningún problema hasta cuando se decide mudar de motor a
uno como SQL server o MySQL, donde se maneja un tipado
rígido.
4.5.3. Claves primarias NULL
Cuando se usa SQLite, uno debe tener en consideración que al
declarar un campo de una tabla como PRIMARY KEY se está
haciendo lo mismo que declararlo como UNIQUE. Esto según
su página oficial fue y es un bug, pero cuando intentaron
corregirlo, ya habían empresas de estaban atados a este bug y
no se podían permitir perder información por una corrección de
la base de datos, por tanto las siguiente actualizaciones de
SQLite mantenían ese bug.
Así que cuando se quiera declarar uno o varios campos como
PRIMARY KEY, se debe declarar también explícitamente como
NOT NULL, para evitar futuros inconvenientes.
4.5.4. Keywords usados como identificadores
A diferencia de otros motores de base de datos, SQLite permite
usar palabras claves como UNION, WITH O INTEGER como
identificadores de campos o tablas por ejemplo. Esto le permite
retrocompatibilidad con Bases de Datos que usaban palabras
claves que para su momento aún no eran definidas como tal.
4.5.5. Autoincremento
Los campos autoincrementales trabajan un tanto diferente que
las ROWID, ya que a diferencia de estas, un campo
autoincremental siempre colocará un valor mayor, al menos en
una unidad, comparado a campo de un registro que haya
existido en esa tabla, por tanto se debe hacer un seguimiento
de ese valor máximo el cual se hace a través de la tabla
SQLITE_SEQUENCE, donde una campo es creado a penas se
define la tabla con campo AUTOINCREMENTO.
4.6. Ventajas y desventajas
4.6.1. Ventajas
- Basado en archivos y fácil de configurar y usar
- Adecuado para el desarrollo básico y testeo
- Portátil
- Utiliza sintaxis SQL estándar con pequeñas
modificaciones
- Tecnología sólida y ampliamente utilizada, establecida
desde el año 2000
4.6.2. Desventajas
- No es fácilmente escalable
- No es adecuado para grandes bases de datos
- Carece de funciones de seguridad y administración de
usuarios
- No se puede personalizar
- El rendimiento de SQLite no es confiable

5. Compañías que utilizan SQLite


Según la página oficial de SQLite, estos son algunos de los clientes
considerables que usan este SGBD.
- Adobe Photoshop Elements: Se utiliza SQLite cómo motor de base de
datos cómo sustitución de Microsoft Access.
- Mozilla Firefox: Este utiliza SQLite para poder almacenar cookies,
favoritos, historial entre otros.
- Navegador de Opera : Este usa SQLite para la gestión de base de
datos WebSQL.
- Apple: Algunas de sus aplicaciones como Apple Mail, Aperture usan
SQLite, este último lo hace para guardar las imágenes utilizando el API
de Core Data.
- XBMC Media Center: Es un reproductor de medios de audio, video,
fotos, entre otros, open source multiplataforma. Usa SQLite para
administrar las librerías de música, video, etc.
- Python: Incluye el soporte nativamente desde la versión 2.5
incorporado en su biblioteca estándar sqlite3.
- Skype
- Airbus
- Dropbox
- Facebook
- Google
- McAfee
- Microsoft
6. Comparación de rendimiento con ​SAP SQL Anywhere
6.1. Acerca de SQL Anywhere
Este Sistema de Gestión de Base de Datos es un producto de SAP.
Los archivos de la Base de Datos son independientes del Sistema
Operativo, permitiendo el soporte entre distintas plataformas. SAP
provee distintas interfaces (ODBC, JDBC, etc.).
Este motor de Base de Datos soporta triggers, procedimientos
almacenados, etc. Un detalle también una fuerte criptografía tanto para
los archivos de la Base de Datos así como la la comunicación de
cliente-servidor.

6.2. Comparación

SAP SQL SQLite


Anywhere

Breve descripción RDBMS y RDBMS


tecnología de
sincronización para
servidores,
escritorios remotos
y entornos móviles

Modelo de Base de DBMS Relacional DBMS Relacional


Datos primaria

Desarrollador SAVIA(Anterior Dwayne Richard Hipp


Sybase)

Versión inicial 1992 2000

Licencia Comercial Código abierto

Sistemas operativos AIX Sin servidor


del servidor HP-UX
Linux
OS X
Solaris
Windows

SQL Sí Sí

Esquema de datos Sí Sí(Tipo de columnas


dinámicas)

Lenguajes de C Actionscript
programación C# Ada
soportados C ++ Basic
Delphi C
Java C#
JavaScript C ++
(Node.js) D
Perl Delphi
PHP Forth
Python Fortran
Ruby Haskell
Java
JavaScript
Lisp
Lua
MatLab
Objective-C
OCaml
Perl
PHP
PL / SQL
Python
R
Ruby
Scala
Scheme
Smalltalk
Tcl

Soporte a XML Sí No

Admite claves Sí Sí
foráneas(FK)

Conceptos de ACID ACID


transacciones

Soporte de SÍ Sí(a través de bloqueos del


manipulación sistema de archivos)
concurrente de los
datos(Concurrencia)

Control de acceso a Derechos de No


usuarios acceso de grano
fino(FGA) según el
estándar SQL
7. Aplicaciones
Para darle una aplicación a SQLite, haremos uso de la herramienta
DBBrowser y la herramienta CASE Erwin para visualizar con mayor facilidad
los datos y tablas que hemos creado e insertado mediante comandos SQL.
Para este caso tratamos de simular una agenda de contactos con registro de
llamadas telefónicas.
Definiciones de entidades y reglas del negocio:
- La entidad usuario es aquella que tiene a su “email” como identificador
único. Esto es muy común en cuentas de Google disponibles para
celular donde los usuarios van agregando a sus familiares, amigos, etc
a su lista de contactos mediante su cuenta de Gmail o una con
dominio compatible con la de Google, como nuestro correo uni: uni.pe.
De esta forma se guardan las copias de seguridad necesarias para
una posible restauración.
- El usuario puede tener a varios contactos agregados, sin embargo
esto no necesariamente se cumple en sentido inverso. Es decir, algo
análogo a lo observado en la red social Instagram donde una persona
puede seguir a un usuario, pero este no a él. Para ello usamos el
concepto de “Rolename”, la cual nos permite diferenciar las FK cuando
hay más de una relación existente entre dos entidades.
- Las llamadas telefónicas se realizan entre usuarios y es necesario
diferenciar entre el emisor y el receptor. De esta forma podremos
conocer si para determinado usuario la llamada fue “Entrante” o
“Saliente”
Modelo físico:

CREACIÓN DE TABLAS:
Podemos corroborar que las tablas se crearon correctamente con la GUI del DB
Browser

INSERCIÓN DE DATOS
Para esta inserción de datos como contraseñas, que necesitan ser encriptadas,
SQLite tiene programas exclusivos de paga para usar comandos de cifrado de datos
y tablas. Para motivo de prueba solo insertamos los datos de manera directa.

Podemos corroborar la inserción de los datos desde la GUI de la siguiente forma:


TABLA USUARIO:
TABLA CONTACTO:

TABLA LLAMADA TELEFÓNICA:

CONSULTAS:
Estas se han realizado en base a los posibles requerimientos de información de un
usuario.
- Consulta de los contactos agregados:
El usuario con correo “​jesusmh@gmail.com​” desea conocer los usuarios que
ha agregado a su cuenta de google registrada en su dispositivo móvil.
- Consulta del registro telefónico:
El usuario con correo “​jesusmh@gmail.com​” desea conocer las llamadas
telefónicas que ha recibido y ha realizado con sus contactos o con teléfonos
que no tiene registrado.

- Actualización de datos de uno de sus contactos


El usuario con correo “​jesusmh@gmail.com​” desea actualizar los datos de su
contacto registrado dentro de un sistema online con el correo
“​yovanipb@gmail.com​”, como el apellido.
Para requerimientos como el agregado de contactos, solo deberíamos realizar un
insert adicional.
Encontramos algunas facilidades con el uso del programa DB Browser, tales como
la verificación de la inserción de datos y creación de tablas. Sin embargo el SGBD
en sí, tiene algunas deficiencias para el despliegue a gran escala de datos, como lo
es el uso de procedimientos almacenados o funciones de TRANSACT SQL.

8. Conclusiones

● La importancia de los SGDB radica en que ofrece disponibilidad de


datos del negocio que pasarán a ser información, y la relativa facilidad
para administrarlos, manteniendo la seguridad, integridad y
confidencialidad de los datos.

● Para la elección de una herramienta, siempre se debe tener en


consideración diversos factores acerca de su uso. Respecto a un
SGBD, entre los más importantes tenemos al costo, de adquisición y
capacitación, así como el modelo que es capaz de manejar tal que
coincida con el de la empresa.

● La mayoría de empresas, si no son todas, tienen una base de datos a


la cual requieren acceder continuamente y desde diversas conexiones,
lo cual genera concurrencia. Debemos corroborar como el SGBD
electo maneja esto y si se cumple las propiedades ACID.

● Las transacciones en SQLite tienen un nivel de aislamiento


serializable, por tanto el manejo de concurrencia no es notable, por lo
que se recomienda usar SQLite en un sistema que requiera modificar
remotamente la base de datos.

● Gran parte de la velocidad de respuesta de las queries en SQLite es


debido a que SQLite es un software escrito en C que utiliza
directamente llamadas al sistema, por lo cual no necesita ejecutar
nuevos procesos por cada consulta en el dispositivo huésped.

● SQLite tiene algunos ​features y​ ​bugs que en cierto modo lo diferencian


de otros SGBD, entre algunos, su tipado flexible o las claves primarias
nulas, así como no requerir ejecutarse en un servidor; fueron algunas
de las características que le permitieron ser el motor de base de datos
más ampliamente desplegado en el mercado.

9. Recomendaciones
● En casos donde la base de datos a implementar se pretende escalar
no se recomienda usar Sqlite.
● En el caso de que se necesite manejar una aplicación que sea
portable y que no necesite gran cantidad de manejo de datos es
recomendable usar SQLite.
● Si se desea implementar bases de datos para aplicaciones, en este
ámbito SQLite presenta una mayor ventaja con sus competidores ya
sea por la compatibilidades de lenguajes, fácil uso, y entre otras de
sus características ya mencionadas
10. Referencias bibliográficas

● Garzón Peréz, T. (2010, 30 mayo). SISTEMAS GESTORES DE BASE


DE DATOS. CSIF.
https://archivos.csif.es/archivos/andalucia/ensenanza/revistas/csicsif/re
vista/pdf/Numero_30/TERESA_GARZON_1.pdf

● Gándara Alonso, J. (2014). Administración y monitorización de los


SGBD. IFC T0310 (1.a ed.). ic editorial.
https://books.google.es/books?hl=es&lr=&id=4hLmCQAAQBAJ&oi=fnd
&pg=PT4&dq=sgbd&ots=yWggtCttA8&sig=T1lll2-vFVITCh-OW9ZoVX
XjduQ#v=onepage&q=sgbd&f=false

● ObjectBox. (2020, 4 marzo). SQLite alternatives - NoSQL and SQL


edge and mobile databases in a handy comparison matrix.
https://objectbox.io/sqlite-alternatives/

● SQLite. (s. f.). SQLite Home Page. Recuperado 22 de julio de 2020, de


https://sqlite.org/index.html

● Datacamp. (s. f.). Beginners Guide to SQLite. DataCamp Community.


Recuperado 22 de julio de 2020, de
https://www.datacamp.com/community/tutorials/beginners-guide-to-sqli
te

● Maceira, Y. M. (2020, 6 julio). SQLite para Android: La herramienta


definitiva. OpenWebinars.net.
https://openwebinars.net/blog/sqlite-para-android-la-herramienta-definit
iva/

● Tecnologías INFORMACIÓN. (s. f.). Bases de Datos Distribuidas:


Popularidad, Uso y Tipos. Recuperado 18 de julio de 2020, de
https://www.tecnologias-informacion.com/distribuidas.html

● Vélez de Guevara, L. (2018). Gestión de Base de datos (1.a ed.).


Desconocido.

También podría gustarte