Questa è un'umile domanda posta nello spirito di accrescere la mia conoscenza; sii gentile nella tua risposta.
Come sviluppatore di applicazioni di lunga data, so a un certo livello che cos'è una transazione (le uso sempre). Lasciando da parte i livelli di isolamento delle transazioni per il momento, a un livello elevato una transazione consente di completare un blocco di lavoro completamente o per niente e consente una certa quantità di isolamento da altre attività di modifica del database.
So anche che cos'è (in vari database) un blocco, o almeno come ci si comporta (se blocco in modo esplicito una tabella, nessun altro processo o thread può aggiornare nulla su quella tabella).
Quello che sto più distintamente non chiare sul è: in varie banche dati, quando chiudo in modo esplicito una riga o una tabella, sto utilizzando gli stessi costrutti esatti che vengono utilizzati dai servizi di transazione del database sotto le coperte per far funzionare delle transazioni correttamente?
Cioè, mi viene in mente che, affinché una transazione sia atomica e isolata, deve essere bloccata. Questo blocco avviato dalla transazione, nascosto da tranasction, è lo stesso tipo di blocco a cui vari database mi consentono di accedere attraverso costrutti come comandi SELECT FOR UPDATE
espliciti LOCK
? O questi due concetti sono completamente diversi?
Ancora una volta, mi scuso per l'ingenuità di questa domanda; Sono felice di essere indirizzato a fonti più fondamentali.