Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-09-2012
ElMug ElMug is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 163
Poder: 15
ElMug Va por buen camino
Aca en Saturo todo es al revez: hasta el menos sabio sabe que DOS cosas no pueden estar al mismo tiempo en un solo lugar, que todas la bases de datos, hasta las mas robustas, usan sistemas de locks y esperas.

En el planeta tierra, ni se diga, es como tumban los sitios ahi: con un tumulto de accesos.

Y aunque los terricolas no lo sepan, o por discutir, se les olvida que "simultaneo" no quiere decir realmente "simultaneo", sino bastante rapido como para que PAREZCA "simultaneo".

Las bases de datos tipo servidor usan muchos archivos, para "cachar" informacion mientras se libera el record o bloque donde tiene que hacerse la grabacion final.

Muchas de sus base de datos se bloquean cuando no son de las mas robustas, y viven las esperas requeridas.

SQLite es igual, o similar, bloquea por milisegundos, en transacciones tipicas, y usa archivos temporales escritos a disco o a memoria. Solo que es para uso LEVE en ese asunto. Y es por eso que se llama a si misma "lite", que quiere decir "ligera".

En cuanto a encriptar a SQLite, hay como en casi todo hoy en dia, gratuito y a costo. Cual sirva o no sirva, no viene al caso sin tener como base la experiencia del haberlo verificado.

Pero, en Saturno como el el planeta Tierra, la mayoria de las bases de datos no usan encriptamiento y toda data que no este encriptada, se puede leer.

Alquien de este foro usa encriptacion en sus bases de datos?
Responder Con Cita
  #2  
Antiguo 05-09-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por ElMug Ver Mensaje
Aca en Saturo todo es al revez: hasta el menos sabio sabe que DOS cosas no pueden estar al mismo tiempo en un solo lugar, que todas la bases de datos, hasta las mas robustas, usan sistemas de locks y esperas. En el planeta tierra, ni se diga, es como tumban los sitios ahi: con un tumulto de accesos. Y aunque los terricolas no lo sepan, o por discutir, se les olvida que "simultaneo" no quiere decir realmente "simultaneo", sino bastante rapido como para que PAREZCA "simultaneo". Las bases de datos tipo servidor usan muchos archivos, para "cachar" informacion mientras se libera el record o bloque donde tiene que hacerse la grabacion final. Muchas de sus base de datos se bloquean cuando no son de las mas robustas, y viven las esperas requeridas. SQLite es igual, o similar, bloquea por milisegundos, en transacciones tipicas, y usa archivos temporales escritos a disco o a memoria. Solo que es para uso LEVE en ese asunto. Y es por eso que se llama a si misma "lite", que quiere decir "ligera".
No, no es exactamente así.
Responder Con Cita
  #3  
Antiguo 06-09-2012
ElMug ElMug is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 163
Poder: 15
ElMug Va por buen camino
Explica, tu, como es, casimiro.
Responder Con Cita
  #4  
Antiguo 06-09-2012
ElMug ElMug is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 163
Poder: 15
ElMug Va por buen camino
Amigos del foro,

Les platico esto que les pueda ser de interes, en cuanto a el tema tratado en este hilo:

Hice una prueba usando una aplciacion que desarrolle , que puede mandar a una base de datos SQLite3 un conjunto de renglones para cargar le bastante data en una transaccion.

La data es real (la consegui del web) consiste de cargar 239 paises, o sea una tabla con 15 columnas y 239 renglones. Las columnas son codigo de pais,nombre de pais, continente, region, superficie, año de independencia, poblacion, vida promedio de habitantes, GNP, gnpANTERIOR, nombre local, tipo de gobierno, presidente o cabeza de estado, capital, codigo1, Codigo2.

En total son 3,585 datos a cargar a cada tabla.

Corri 2 instancias de la misma aplicacion, y a cada una la prepare para que mandara la misma data, CREANDO cada una tabla identica, pero con nombres Pais1 y la otra Pais2, a la misma base de datos, que ya cada instancia tenia abierta. Cada transaccion crea su tabla y la carga de datos.

Puse los botones de mando de cada aplicacion pegaditos (usando always on top) a manera de que pude hacer click una aplicacion y la otra al instante.

No recibi ningun mensaje de error, y casi ni lo creia, cuando vi que INSTANTANEAMENTE, se crearon en la MISMA base de datos DOS tablas, Pais1 y Pais2, identicas, cada una con 3585 datso reales cada tabla, que son 7,170 datos en total, contenidos en 239 renglones mult. por 2 = 478 renglones que cargo sin chistar.

Esto debio de haber ocurrido en milisegundos, pues hasta parecio que no habia habido respuesta a los dos clicks practicamente simultaneos, mas rapido no podria haber picado los botones uno tras otro, pues estaban pegaditos.

Si esto no es acceso concurrente, alguien tendria que tener base para negarlo.

Ahora, comparen lo que se tardarian operadores terricolas tecleando esta informacion y mandandola para grabarla, a la base de datos. Tal vez unos cuatro capturistas tardarian un par de dias en hacerlo y no veo como SQLite no tuviese la capacidad de manejarlos a todos simultaneamente.

Les aviso que soy pianista y puedo picar botones con mucha rapidez.

De todas maneras, les recuerdo que nunca dije, ni diria, que SQlite sea mejor que otra, pero que es multiconcurrente y mltiusuario, con sus limitaciones, claro, sostengo que SI lo es.

Bueno, hasta la vista.
Responder Con Cita
  #5  
Antiguo 06-09-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por ElMug Ver Mensaje
Si esto no es acceso concurrente, alguien tendria que tener base para negarlo.
No, eso no es acceso concurrente.
Responder Con Cita
  #6  
Antiguo 06-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por ElMug Ver Mensaje
No recibi ningun mensaje de error, y casi ni lo creia, cuando vi que INSTANTANEAMENTE, se crearon en la MISMA base de datos DOS tablas, Pais1 y Pais2, identicas, cada una con 3585 datso reales cada tabla, que son 7,170 datos en total, contenidos en 239 renglones mult. por 2 = 478 renglones que cargo sin chistar.
Claramente, esto no es un acceso concurrente. Tendrías que haber insertado en la misma tabla para poder hablar de concurrencia y aún así, si no se repite la llave primaria, tampoco estarías hablando de concurrencia.

Yo entiendo tu defensa de SQLite, y también creo que el concepto de concurrencia es discutible, pero tampoco hay que exagerar y hacer ver a SQLite como uno de los grandes no Lite.

// Saludos
Responder Con Cita
  #7  
Antiguo 06-09-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Amigo ElMug, si quieres hagamos una prueba, a ver si sqlite la pasa con éxito:

En una tabla donde tengas ya registros, o creas una nueva, no importa que sea simple, ejemplo:
Código SQL [-]
create table tbPrueba (
  id integer not null,
  nombre varchar(64),
  telefono varchar(9),
  importe float,
  primary key (id)
)
En esa tabla inserta 100, 500, 1000 registros, los que quieras.
El 'id' será la clave primaria, así que introduce 1,2,3,4,5,... 999,1000
El resto de campos, lo que te parezca, cualquier dato aleatorio.

Ahora crea un programita sencillo en plan rápido que haga esto:
Código Delphi [-]
var
  iX , iCodigo : integer;  
begin  
  query.close;
  query.sql.text := 'update tbPruebas set nombre= :nombre, importe= :importe where id= :id';

  for iX:=1 to 100000 do  // cien mil actualizaciones, para que dé tiempo probar.
  begin
    iCodigo := random(1000);  // esto devuelve un número aleatorio entre 1 y 1000 (o los registros que existan en la tabla)
    query.close;
    query.params[0].asstring := inttostr(iCodigo);
    query.params[1].asfloat := iCodigo;
    query.params[2].asinteger := iCodigo;
    query.execsql;
  end;
end;

Pones 1 botón y ejecutas. No debe fallar.
Ahora abres otra instancia del programita, vamos a simular 2 usuarios trabajando.
Ejecutas y pruebas. Si no falla, puede ser que no falle si no coinciden en actualizar el mismo registro.
Ahora abres otra instancia del programita, ahora serán 3 usuarios trabajando.
Y así hasta que te aburras. A ver qué ocurre.

Cuantos más registros tengas, menos posibilidades de que toquen el mismo registro al mismo tiempo.
Cuantos menos registros tengas, más posibilidades de que seleccionen el mismo.
Cuantos más usuarios al mismo tiempo, más posibilidades de que seleccionen el mismo.

Es sólo algo didáctico, por probar.

p.d. He puesto más o menos como debe ser el código, no tengo ningún delphi/lazarus para probar.

Última edición por Casimiro Noteví fecha: 06-09-2012 a las 18:05:03.
Responder Con Cita
  #8  
Antiguo 06-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Oye Casimiro, ¿y qué pasa en Firebird si hago esta misma prueba que propones? ¿Qué pasa si dos usuarios tocan el mismo registro al mismo tiempo?

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
SQLITE:Establecer Contraseña a mi db bitbow Conexión con bases de datos 0 17-09-2010 23:48:34
Usuario y Contraseña??? danytorres Oracle 1 24-07-2007 16:16:19
Usuario, contraseña, rol santiago14 Firebird e Interbase 1 11-12-2006 00:00:38
Form con usuario y contraseña nenufer Varios 3 19-05-2006 11:37:35
Usuario y contraseña con ADOconnection Gelmin Conexión con bases de datos 3 27-09-2005 08:42:48


La franja horaria es GMT +2. Ahora son las 09:07:42.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi