+ All Categories
Home > Documents > BASES DE DATOS AVANZADAS - uv.mx · clase LoginTable.cs, ... Introducción Generalmente las bases...

BASES DE DATOS AVANZADAS - uv.mx · clase LoginTable.cs, ... Introducción Generalmente las bases...

Date post: 14-Oct-2018
Category:
Upload: ledang
View: 215 times
Download: 0 times
Share this document with a friend
34
Facultad de Estadística e Informática BASES DE DATOS AVANZADAS
Transcript

Facultad de Estadística e Informática

BASES DE DATOS AVANZADAS

Clase 24

Agenda

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

Aplicación Android SQLiteEjemplo

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

Aplicación Android SQLite

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

Aplicación Android SQLite

• Paso 1. Crear el proyecto

Aplicación Android SQLite

• Paso 2. Agregar la vista para usuario nuevo.

• En la carpeta Resources

layout

Aplicación Android SQLite

Newuser

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>

Aplicación Android SQLite

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

RegisterActivity

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();}}}}

Aplicación Android SQLite

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

LoginTable

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

Aplicación Android SQLite

• Paso 5. Agregar la referencia SQLite

Aplicación Android SQLite

sqlite-net-pcl

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;}}}

Aplicación Android SQLite

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

Bases de datos en la nubeCÓMPUTO EN LA NUBE

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”

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.

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.

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).

Bases de datos en la nubeBASES DE DATOS EN LA NUBE

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.

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.

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.

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.

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.

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

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

Gracias por su atención

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/


Recommended