Download - BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Transcript
Page 1: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Facultad de Estadística e Informática

BASES DE DATOS AVANZADAS

Page 2: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Clase 24

Page 3: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Agenda

➢ Ejemplo base de datos móviles: Aplicación Android SQLite

Page 4: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Aplicación Android SQLiteEjemplo

Page 5: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Aplicación Android SQLite

• Se desarrollará una pequeña aplicación que validará la existencia y registrará un usuario.

• Sistema operativo cliente: Android.• Plataforma de desarrollo: Xamarin, implementación

libre de la plataforma de desarrollo .NET para dispositivos Android, iOS y GNU/Linux.

• Base de datos: SQLite

Page 6: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Aplicación Android SQLite

Page 7: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Aplicación Android SQLite

Puesto que no se instalará el emulador de Android, se depurará en un dispositivo móvil. Para ello se debe habilitar la “depuración por usb” en el aparato.

En Configuracion Acerca del teléfono Versión de compilación (Hacer clic varias veces)

Programador/Developer Depuracion por usb

Page 8: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Aplicación Android SQLite

• Paso 1. Crear el proyecto

Page 9: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Aplicación Android SQLite

• Paso 2. Agregar la vista para usuario nuevo.

• En la carpeta Resources

layout

Page 10: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Aplicación Android SQLite

Newuser

Page 11: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Aplicación Android SQLite

• Código para archivo Newuser.axml

<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><EditTextandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/txtUserName"android:hint="Nombre de usuario" /><EditTextandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/txtPassword"android:hint="Contraseña" /><Buttonandroid:text="Crear"android:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/btnCrear" /></LinearLayout>

Page 12: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Aplicación Android SQLite

• Código para archivo Main.axml

<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><EditText

android:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/txtUserName"android:hint="Nombre de usuario" />

<EditTextandroid:inputType="textPassword"android:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/txtPassword"android:hint="Contraseña" />

<Buttonandroid:text="Entrar"android:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/btnLogin" />

<Buttonandroid:text="Registrar"android:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/btnRegistrar" />

</LinearLayout>

Page 13: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Aplicación Android SQLite

• Paso 3: Agregar la Actividad RegisterActivityen la raíz del proyecto

RegisterActivity

Page 14: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Aplicación Android SQLite

• Añadir el código correspondiente a RegisterActivity.cs

using System;using System.Collections.Generic;using System.Linq;using System.Text;

using Android.App;using Android.Content;using Android.OS;using Android.Runtime;using Android.Views;using Android.Widget;using System.IO;using SQLite;

namespace SQLite{[Activity(Label = "RegisterActivity")]public class RegisterActivity : Activity{EditText txtusername;EditText txtPassword;Button btncreate;protected override void OnCreate(Bundle savedInstanceState){base.OnCreate(savedInstanceState);// Set our view from the "main" layout resourceSetContentView(Resource.Layout.Newuser);

// Create your application herebtncreate = FindViewById<Button>(Resource.Id.btnCrear);txtusername = FindViewById<EditText>(Resource.Id.txtUserName);txtPassword = FindViewById<EditText>(Resource.Id.txtPassword);btncreate.Click += Btncreate_Click;}private void Btncreate_Click(object sender, EventArgs e){try{string dpPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "user.db3");var db = new SQLiteConnection(dpPath);db.CreateTable<LoginTable>();LoginTable tbl = new LoginTable();tbl.username = txtusername.Text;tbl.password = txtPassword.Text;db.Insert(tbl);Toast.MakeText(this, "Record Added Successfully...,", ToastLength.Short).Show();}catch (Exception ex){Toast.MakeText(this, ex.ToString(), ToastLength.Short).Show();}}}}

Page 15: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Aplicación Android SQLite

• Paso 4. Agregar la clase LoginTable.cs, en la raíz del proyecto

LoginTable

Page 16: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Aplicación Android SQLiteusing System;using System.Collections.Generic;using System.Linq;using System.Text;

using Android.App;using Android.Content;using Android.OS;using Android.Runtime;using Android.Views;using Android.Widget;

namespace SQLite{class LoginTable{[PrimaryKey, AutoIncrement, Column("_Id")]public int id { get; set; }

[MaxLength(25)]public string username { get; set; }

[MaxLength(15)]public string password { get; set; }

}}

• Añadir código a la clase LoginTable.cs

Page 17: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Aplicación Android SQLite

• Paso 5. Agregar la referencia SQLite

Page 18: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Aplicación Android SQLite

sqlite-net-pcl

Page 19: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Aplicación Android SQLite

• Paso 6. Agregar el código correspondiente a la clase MainActivity.cs

using Android.App;using Android.Widget;using Android.OS;using System;using System.IO;using SQLite;

namespace SQLite{[Activity(Label = "SQLite", MainLauncher = true, Icon = "@drawable/icon")]public class MainActivity : Activity{EditText txtusername;EditText txtPassword;Button btncreate;Button btnsign;protected override void OnCreate(Bundle bundle){base.OnCreate(bundle);

// Set our view from the "main" layout resourceSetContentView(Resource.Layout.Main);

// Get our button from the layout resource, // and attach an event to itbtnsign = FindViewById<Button>(Resource.Id.btnLogin);btncreate = FindViewById<Button>(Resource.Id.btnRegistrar);txtusername = FindViewById<EditText>(Resource.Id.txtUserName);txtPassword = FindViewById<EditText>(Resource.Id.txtPassword);btnsign.Click += Btnsign_Click;btncreate.Click += Btncreate_Click;CreateDB();}

private void Btncreate_Click(object sender, EventArgs e){StartActivity(typeof(RegisterActivity));}

private void Btnsign_Click(object sender, EventArgs e){try{string dpPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "user.db3"); //Call Databasevar db = new SQLiteConnection(dpPath);var data = db.Table<LoginTable>(); //Call Tablevar data1 = data.Where(x => x.username == txtusername.Text && x.password == txtPassword.Text).FirstOrDefault(); //Linq Queryif (data1 != null){Toast.MakeText(this, "Login Success", ToastLength.Short).Show();}else{Toast.MakeText(this, "Username or Password invalid", ToastLength.Short).Show();}}catch (Exception ex){Toast.MakeText(this, ex.ToString(), ToastLength.Short).Show();}}public string CreateDB(){var output = "";output += "Creating Databse if it doesnt exists";string dpPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "user.db3"); //Create New Databasevar db = new SQLiteConnection(dpPath);output += "\n Database Created....";return output;}}}

Page 20: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Aplicación Android SQLite

• Paso 7. Compila la aplicación y ejecútala.

Page 21: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Bases de datos en la nubeCÓMPUTO EN LA NUBE

Page 22: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Facultad de Estadística e Informática

IntroducciónGeneralmente las bases de datos empresariales siempre han sido la respuesta para almacenar los datos en las empresas.

Pero la demanda de mayores capacidades de almacenamiento y necesidad de mayor velocidad de implementación, así como los costos de mantenimiento, han ocasionado que las soluciones locales, ya no sean la mejor solución.

“Se necesitan semanas para configurar una nueva base de datos. ¡La necesito ahora!”

“¿Necesito comprar un servidor completo para nuestra pequeña base de datos?”

“Es muy costoso el mantenimiento (conectividad, respaldos, licencias) de nuestra base de datos”

Page 23: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Facultad de Estadística e Informática

Cómputo en la nubeLa computación en nube se refiere a una categoría de soluciones de tecnología que permite a los usuarios acceder a recursos informáticos (en este caso, a recursos de datos) on-demand, según sea necesario, así los recursos sean físicos o virtuales, dedicados o compartidos, y sin importar la forma en que se acceda a ellos (mediante conexión directa, red de área local [LAN], red de área amplia [WAN] o Internet).

Los usuarios no necesitan ni el conocimiento, ni el control de la tecnología, ni la infraestructura subyacente que dan soporte al conjunto de servicios.

Page 24: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Facultad de Estadística e Informática

Ventajas de Cómputo en la nube➢Escalabilidad.

➢Rapidez de implementación.

➢Costos variables.

➢Seguridad y fiabilidad.◦ P.ej. Microsoft garantiza un 99,99 % de tiempo de actividad para

los niveles Básico, Estándar y Premium de SQL Database.

Page 25: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Facultad de Estadística e Informática

Desventajas de Cómputo en la nube•Falta de control sobre los datos físicos.

•Confidencialidad en la transmisión de los datos.

•Falta de control físico sobre la arquitectura de software y hardware.

•Dependencia de terceros e incremento de posibles puntos críticos (fallo en las comunicaciones).

Page 26: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Bases de datos en la nubeBASES DE DATOS EN LA NUBE

Page 27: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Facultad de Estadística e Informática

Bases de datos en la nube (DaaS)Consiste en auto-solicitar un espacio de almacenamiento en Internet (la nube), con características (capacidad, velocidad, costo) de acuerdo a las necesidades. Todo esto de forma inmediata y listo para explotarse.

Es un intento por minimizar los costos y tiempos de implementación de servidores de bases de datos, las organizaciones se están moviendo hacia un modelo de Base de Datos Como Servicio (Database as a Service o DaaS).

Evita la compra/instalación de licencias de sistemas operativos de servidor y sistemas manejadores de bases de datos.

Simplemente se “renta” (normalmente a un bajo costo) el servicio de base de datos, se utiliza y si cuando ya no se necesite, se desecha.

Page 28: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Facultad de Estadística e Informática

Tipos de nubesPúblicas. Recursos proporcionados por un proveedor externo y que accedemos por medio de Internet.

Privadas. Recursos propios de la empresa. Algunos beneficios del cómputo en la nube eliminando algunos inconvenientes.

Híbridas. Uso combinado. ◦ Ofrece varias opciones.

◦ Contingencias

◦ Mayor control.

Page 29: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Facultad de Estadística e Informática

CaracterísticasParámetros preconfigurados:

◦ Las bases de datos en la nube suelen estar preconfigurados con un razonable conjunto de parámetros y valores adecuados para la clase de instancia que vaya a utilizar.

Supervisión y métricas:

◦ Las bases de datos en la nube poseen herramientas para ver métricas operativas clave de las instancias que se encuentran en ejecución, incluido el uso de la capacidad de CPU, memoria, almacenamiento, operaciones de entrada y salida, y conexiones.

Parches de software automáticos:

◦ Las bases de datos en la nube suelen garantizar que el software de la base de datos permanezca actualizado con los últimos parches disponibles en el mercado.

Page 30: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Facultad de Estadística e Informática

CaracterísticasCopia de seguridad automatizadas:◦ Las bases de datos en la nube tienen de forma predeterminada la función de

copia de base de datos y transacciones reteniéndolas según especifique el usuario, permitiéndole restaurar la instancia de base de datos en cualquier segundo de lo retenido.

Escalamiento automático:◦ Las bases de datos en la nube poseen la capacidad de escalar rápidamente en

minutos recursos como capacidad de proceso, memoria y almacenamiento.

Page 31: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Facultad de Estadística e Informática

CaracterísticasAislamiento y seguridad◦ Las bases de datos en la nube brindan el aislamiento de las

instancias de la base de datos mediante conexiones seguras, como IPsec (Internet Security Protocol que asegura las comunicaciones sobre el Protocolo de Internet) mediante la encriptación de las comunicaciones.

Page 32: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Facultad de Estadística e Informática

Bases de datos comercialesRelacionales NoSQL

Amazon Web Services2002

MySQLOracleMSSQL

SimpleDBDynamoDB

Windows Azure2009

SQL DatabaseMySQLPostgres

Azure BlobsAzure TablesAzure Files

Google API2006

Google Cloud SQL Persistent DiskCloud Bigtable

Page 33: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Facultad de Estadística e Informática

BD locales Vs BD en la nube

BD Locales BD en la nube

Recuperación de fallos manual Rápida recuperación de fallos

Configuraciones avanzadas Configuración sencilla, interfaz para cualquier usuario

Respaldo y restauración de manera manual Respaldos y restauración de forma automática mediante consola Web

Requiere de herramientas externas para comprobar disponibilidad

Monitoreo automático incluido

Requiere de conocimiento de sistemas operativos

No es necesario ningún conocimiento del sistema operativo

Escalado y reconfiguración manual Proceso automatizado de escalamiento definiendo las reglas de escalabilidad

Costo por el lugar físico, el hardware, licencias de software y especialistas en mantenimiento

Costo solo por el uso de la base de datos

Page 34: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Gracias por su atención

Page 35: BASES DE DATOS AVANZADAS - Universidad … · Ejemplo base de datos móviles: Aplicación ... Ejemplo. Aplicación Android SQLite •Se desarrollará una pequeña aplicación que

Facultad de Estadística e Informática

ReferenciasEvolución de las Bases de Datos: de Fijas a Móviles (2009).Paola Delgado, Luis Gama. Universidad Autónoma de Baja California. Obtenido de: http://campusv.uaem.mx/cicos/imagenes/memorias/7mocicos2009/Articulos/Evolucion%20de%20las%20Bases%20de%20Datos.pdf

Mobile Databases (2012). Niloofar Banivaheb. Lassonde School of Engineering. Obtenido de: http://www.cse.yorku.ca/~jarek/courses/6421/F12/presentations/Mobile-Databases_%20Presentation.pdf

Mobile Database Systems (2006). Vijal Kumar. Computer Science and Informatics. University of Missouri-Kansas City. Wiley Press. Obtenido de: https://www.cs.uic.edu/~boxu/mp2p/mobile-databases.pdf

Aplicación Android SQLite

http://www.c-sharpcorner.com/article/xamarin-android-create-login-using-sqlite-database/