Bem, eu não sou um cara do SQL Server, então, não falarei sobre isso.
Mas, como a pergunta está marcada como 'oracle' e o pôster também perguntou como funciona no Oracle, vou abordar essa parte.
No Oracle, o nível de isolamento de transação padrão é READ COMMITTED. Além disso, o Oracle sempre é bloqueado no nível de linha e nunca encaminha um bloqueio para o nível de bloqueio (chamado de página no SQL Server?).
Portanto, se você bloquear a linha 'a' em uma tabela e outra sessão tentar bloquear a linha 'b' na mesma tabela, esse bloqueio será bem-sucedido, mesmo se as linhas estiverem em o mesmo bloco.
Quanto ao "início de uma transação", no Oracle, qualquer DML iniciará implicitamente uma transação, se ainda não tiver sido iniciada. Essa transação permanecerá aberta até que a sessão seja confirmada ou revertida explicitamente, ou seja, cancelada (nesse caso, o Oracle reverterá a transação).
No entanto, o Oracle tem uma sintaxe de "transação inicial", que é 'set transaction'. Isso pode ser usado para iniciar uma transação somente leitura ou leitura, ou para definir o nível de isolamento.
Um uso interessante de uma transação somente de leitura é que (além de ser somente leitura), ela fornece todas as consultas que são executadas nessa transação, leia a consistência até o ponto no tempo do início da transação. Assim, uma vez que você 'set transaction read only', qualquer consulta executada retornará resultados consistentes com a hora do início da transação. (Normalmente, os resultados da consulta são autoconsistentes com o ponto no tempo do início da execução da consulta, mas com uma transação somente leitura, todas as consultas executadas na transação serão consistentes com o início da transação.)