View Full Version : [java] Mysql e coerenza dati
franksisca
09-10-2006, 13:00
Ragazzi, come faccio ad assicurare la coerenza dati su un dbms mysql al quale sono collegati 10 o più computer???
Per coerenza dei dati cosa intendi?
Integrità referenziale? Che i dati abbiano certe restrizioni? Altro?
Considera che mysql non ha il concetto di check constraint, quindi se vuoi che non si possano inserire schifezze devi simulare il meccanismo via trigger (se vuoi che sia il db ad occuparsene).
fabianoda
09-10-2006, 13:33
Spero che per "coerenza" ti riferisca alla consistenza, vero?
Utilizzi le transazioni, ovvero garantisci che le cosiddette proprietà ACID siano verificate (atomicity, consistency, isolation, durability).
In pratica la raggiungi tramite i costrutti
* set autocommit
* commit
* rollback
"set autocommit" indica la strategia da utilizzare: se utilizzi autocommit = 1 allora ogni statement viene automaticamente memorizzato, mentre se usi autocommit = 0 devi esplicitamente utilizzare il comando commit per apportare le modifiche.
Rollback ti permette di tornare indietro, quando hai autocommit a 0.
Quando esegui delle operazioni di insert, update, delete (con autocommit a 0) vengono lockate le righe delle tabelle su cui vai ad agire (o legate con foreign keys alle tue tabelle), e solo dopo aver dato esplicitamente il commit gli altri possono visualizzare i dati.
Questa è la base.. poi un bell'articolo (semplice) con esempi è il seguente:
http://www.databasejournal.com/features/mysql/article.php/3382171
oppure con le operazioni di LOCK TABLES e UNLOCK TABLES per le tabelle MyISAM...
franksisca
09-10-2006, 16:31
ok, adesso ho una base su cui lavorare, se ho problemi mi faccio vivo.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.