Escolar Documentos
Profissional Documentos
Cultura Documentos
AVANZADAS
PROCESADOR DE
ANÁLISIS LÉXICO, GENERADOR DE
OPTIMIZADOR DE BASE DE DATOS RESULTADO DE
SINTÁCTICO Y CÓDIGO DE
CONSULTAS EN TIEMPO DE LA CONSULTA
VALIDACIÓN CONSULTAS
EJECUCIÓN
El código puede:
Ejecutarse directamente (modo interpretado)
Almacenarse y ejecutarse después cuando se
necesite (modo compilado)
Tema 2. Bases de Datos Distribuidas
(BDD).
Procesamiento y optimización de consultas
➢Analizador léxico Identifica los símbolos del lenguaje
➢Analizador sintáctico Revisa la sintaxis de la consulta
➢Validación Comprueba atributos y relaciones válidas y tengan
sentido
Consulta SQL
Consulta optimizada
(3)
(2)
E
(1)
P
Facultad de Estadística e Informática
Tema 2. Bases de Datos Distribuidas (BDD).
Procesamiento y optimización de consultas
➢Uso de heurísticas en la optimización de consultas.
➢ Para transformar el árbol de consulta inicial en un árbol de consulta
final, cuya ejecución sea eficiente, el optimizador incluye reglas de
equivalencia.
➢Las reglas heurísticas emplean estas expresiones de equivalencia para
realizar la trasformación del árbol.
Orden de ejecución
X
X PROYECTO
TRABAJA_E
EMPLEADO N
NUMEROP=NUMP
NSSE=NSS NOMBREP=‘FEI’
X
PROYECTO
FECHA_NCTO>’31-DIC-1980’ TRABAJA_EN
EMPLEADO
Facultad de Estadística e Informática
Tema 2. Bases de Datos Distribuidas (BDD).
Procesamiento y optimización de consultas
➢Uso de heurísticas en la optimización de consultas.
➢ 2. Se genera un árbol mejorado aplicando primero las operaciones
SELECCIONAR, reduciendo el número de tuplas que aparecen en el
producto cartesiano.
NSSE=NSS
NUMEROP=NUMP FECHA_NCTO>’31-DIC-1980’
X
EMPLEADO
NOMBREP=‘FEI’ TRABAJA_EN
PROYECTO
NSSE=NSS
NUMEROP=NUMP FECHA_NCTO>’31-DIC-1980’
EMPLEADO
NOMBREP=‘FEI’ TRABAJA_EN
PROYECTO
NSSE=NSS
Desplazamiento de las
operaciones PROYECTAR hacia
abajo en el árbol de consulta ∏NSEE ∏NSS,APELLIDO
NUMEROP=NUMP FECHA_NCTO>’31-DIC-1980’
NOMBREP=‘FEI’ TRABAJA_EN
PROYECTO
∏APELLIDO
Orden de ejecución
X
X PROYECTO
TRABAJA_E
EMPLEADO N
NUMEROP=NUMP
NSSE=NSS NOMBREP=‘FEI’
X
PROYECTO
FECHA_NCTO>’31-DIC-1980’ TRABAJA_EN
EMPLEADO
NSSE=NSS
NUMEROP=NUMP FECHA_NCTO>’31-DIC-1980’
X
EMPLEADO
NOMBREP=‘FEI’ TRABAJA_EN
PROYECTO
NSSE=NSS
NUMEROP=NUMP FECHA_NCTO>’31-DIC-1980’
EMPLEADO
NOMBREP=‘FEI’ TRABAJA_EN
PROYECTO
NSSE=NSS
∏NSEE ∏NSS,APELLIDO
NUMEROP=NUMP FECHA_NCTO>’31-DIC-1980’
NOMBREP=‘FEI’ TRABAJA_EN
PROYECTO
• 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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/r
Aplicación Android SQLite es/android"
android:orientation="vertical"
android:layout_width="match_parent"
• Código para android:layout_height="match_parent">
<EditText
android:layout_width="match_parent"
archivo android:layout_height="wrap_content"
android:id="@+id/txtUserName"
Newuser.axml android:hint="Nombre de usuario" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/txtPassword"
android:hint="Contraseña" />
<Button
android: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
RegisterActivity
en la raíz del
proyecto
RegisterActivity
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;
namespace SQLite
{
• Añadir el código
[Activity(Label = "RegisterActivity")]
public class RegisterActivity : Activity
{
EditText txtusername;
EditText txtPassword;
correspondiente a
Button btncreate;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
RegisterActivity.cs
SetContentView(Resource.Layout.Newuser);
• Paso 4.
Agregar la
clase
LoginTable.cs,
en la raíz del
proyecto LoginTable
Aplicación Android SQLite
using System;
using System.Collections.Generic;
a la clase using
using
using
Android.App;
Android.Content;
Android.OS;
using Android.Runtime;
LoginTable.cs using
using
Android.Views;
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; }
}
}
Aplicación Android SQLite
• Paso 5. Agregar
la referencia
SQLite
Aplicación Android SQLite
sqlite-net-pcl
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
{
el código
btnsign.Click += Btnsign_Click;
btncreate.Click += Btncreate_Click;
CreateDB();
}
correspondient
StartActivity(typeof(RegisterActivity));
}
e a la clase
{
string dpPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "user.db3"); //Call Database
var db = new SQLiteConnection(dpPath);
var data = db.Table<LoginTable>(); //Call Table
var data1 = data.Where(x => x.username == txtusername.Text && x.password == txtPassword.Text).FirstOrDefault(); //Linq Query
if (data1 != null)
{
MainActivity.cs
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 Database
var 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
nube
CÓMPUTO EN LA NUBE
Introducción
Generalmente 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!”
“Es muy costoso el mantenimiento (conectividad, respaldos, licencias) de nuestra base de datos”
Costo por el lugar físico, el hardware, licencias de Costo solo por el uso de la base de datos
software y especialistas en mantenimiento
HTTPS://AZURE.MICROSOFT.COM/ES-MX/
Obtener cuenta
Usuario: erikamricouv
Contraseña: Erika-0380
¿Qué es?
Sistemas
Distribuidas de Autónomas
Integración
Poco
estructuradas
Definición:
Ofrece una vista virtual que responde las
consultas de los usuarios . La integración de
los datos se hace en tiempo real,
consultando cada una de las fuentes Consulta 1.1 Consulta 1.2 Consulta 1.3
Integra la 4 1
información
virtualmente
Mediador
3 2 3 2 3 2 3 2
…..
Ciudad de
Veracruz México
Yucatán Zacatecas
Bases de datos
ALMACÉN DE DATOS
OLAP
METADATOS MINERÍA DE
Actualizaciones / Nuevos datos DATOS
Detalle